{"version":3,"sources":["webpack:///./node_modules/url/url.js","webpack:///./src/mixins/edit.js","webpack:///./src/mixins/score.js","webpack:///./src/mixins/countrygroup.js","webpack:///./src/mixins/filter.js","webpack:///./src/mixins/no-login.js","webpack:///./node_modules/base64-js/index.js","webpack:///./node_modules/url/util.js","webpack:///./node_modules/core-js/modules/_object-to-array.js","webpack:///./src/mixins/list.js","webpack:///(webpack)/buildin/module.js","webpack:///./node_modules/ieee754/index.js","webpack:///./node_modules/querystring-es3/decode.js","webpack:///./node_modules/pdfjs-dist/build/pdf.js","webpack:///./node_modules/querystring-es3/index.js","webpack:///./node_modules/buffer/index.js","webpack:///./src/functions/index.js","webpack:///(webpack)/node_modules/punycode/punycode.js","webpack:///./node_modules/querystring-es3/encode.js","webpack:///./node_modules/isarray/index.js","webpack:///./src/views/training/modules-certifications.vue","webpack:///./src/views/shared/mediaFileList.vue","webpack:///src/views/shared/mediaFileList.vue","webpack:///./src/views/shared/mediaFileList.vue?acd3","webpack:///./src/views/shared/mediaFileList.vue?574a","webpack:///src/views/training/modules-certifications.vue","webpack:///./src/views/training/modules-certifications.vue?42b5","webpack:///./src/views/training/modules-certifications.vue?e188","webpack:///./node_modules/core-js/modules/es7.object.entries.js"],"names":["punycode","util","Url","this","protocol","slashes","auth","host","port","hostname","hash","search","query","pathname","path","href","exports","parse","urlParse","resolve","urlResolve","resolveObject","urlResolveObject","format","urlFormat","protocolPattern","portPattern","simplePathPattern","delims","unwise","concat","autoEscape","nonHostChars","hostEndingChars","hostnameMaxLen","hostnamePartPattern","hostnamePartStart","unsafeProtocol","hostlessProtocol","slashedProtocol","querystring","url","parseQueryString","slashesDenoteHost","isObject","u","obj","isString","prototype","call","source","relative","TypeError","queryIndex","indexOf","splitter","uSplit","split","slashRegex","replace","join","rest","trim","length","simplePath","exec","substr","proto","lowerProto","toLowerCase","match","atSign","hostEnd","i","hec","lastIndexOf","slice","decodeURIComponent","parseHost","ipv6Hostname","hostparts","l","part","newpart","j","k","charCodeAt","validParts","notHost","bit","push","unshift","toASCII","p","h","ae","esc","encodeURIComponent","escape","qm","s","Object","keys","stringify","charAt","rel","result","tkeys","tk","tkey","rkeys","rk","rkey","v","relPath","shift","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","pop","isNullOrUndefined","authInHost","isNull","last","hasTrailingSlash","up","splice","isAbsolute","mounted","_this","$","$el","validate","ready","resource","get","id","$route","params","then","a","assign","form","body","methods","submit","e","_this2","preventDefault","valid","update","$router","alertError","back","go","data","rows","load","init","table","dataTable","aoColumns","_toConsumableArray","Array","bSortable","Promise","score","countryGUSAList","loadCountryGUSA","computed","countryUSId","getCountryIdByCode","countryCAId","country","getGUSA","isoCode","countrId","forEach","item","filters","money","amount","toFixed","formatDate","time","date","isLogin","byteLength","toByteArray","fromByteArray","lookup","revLookup","Arr","Uint8Array","code","len","getLens","b64","Error","validLen","placeHoldersLen","lens","_byteLength","tmp","arr","curByte","tripletToBase64","num","encodeChunk","uint8","start","end","output","extraBytes","parts","maxChunkLength","len2","module","arg","getKeys","toIObject","isEnum","f","isEntries","it","key","O","fnDestroy","destroy","map","is","setTimeout","remove","confirm","lang","deleteconfirm","delete","fnDeleteRow","webpackPolyfill","deprecate","paths","children","defineProperty","enumerable","read","buffer","offset","isLE","mLen","nBytes","m","eLen","eMax","eBias","nBits","d","NaN","Infinity","Math","pow","write","value","c","rt","abs","isNaN","floor","log","LN2","hasOwnProperty","prop","qs","sep","eq","options","regexp","maxKeys","kstr","vstr","x","idx","isArray","xs","toString","root","factory","modules","installedModules","__w_pdfjs_require__","moduleId","name","getter","o","r","Symbol","toStringTag","t","mode","__esModule","ns","create","bind","n","object","property","pdfjsSharedUtil","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDOMUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","setPDFNetworkStreamFactory","Response","ReadableStream","PDFFetchStream","PDFNetworkStream","build","version","getDocument","LoopbackPort","PDFDataRangeTransport","PDFWorker","renderTextLayer","AnnotationLayer","createPromiseCapability","PasswordResponses","InvalidPDFException","MissingPDFException","SVGGraphics","NativeImageDecoding","CMapCompressionType","PermissionFlag","UnexpectedResponseException","OPS","VerbosityLevel","UNSUPPORTED_FEATURES","createValidAbsoluteUrl","createObjectURL","removeNullCharacters","shadow","Util","URL","RenderingCancelledException","getFilenameFromUrl","LinkTarget","addLinkAttributes","loadScript","GlobalWorkerOptions","apiCompatibilityParams","unreachable","warn","utf8StringToString","stringToUTF8String","stringToPDFString","stringToBytes","string32","setVerbosityLevel","readUint32","readUint16","readInt8","log2","isEvalSupported","isLittleEndian","isSameOrigin","isSpace","isNum","isEmptyObj","isBool","isArrayBuffer","info","getVerbosityLevel","getLookupTableFactory","getInheritableProperty","deprecated","bytesToString","assert","arraysToBytes","arrayByteLength","FormatError","XRefParseException","toRomanNumerals","UnknownErrorException","TextRenderingMode","StreamType","PasswordException","MissingDataException","AbortException","ImageKind","FontType","AnnotationType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","undefined","_typeof","iterator","constructor","_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","unknown","forms","javaScript","smask","shadingPattern","font","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","level","Number","isInteger","msg","console","details","cond","baseUrl","otherUrl","base","origin","other","_isValidProtocol","absoluteUrl","ex","configurable","writable","initializer","message","status","begin","NullCharactersRegExp","str","bytes","MAX_ARGUMENT_COUNT","String","fromCharCode","apply","strBuf","chunkEnd","min","chunk","subarray","itemLength","resultLength","ii","pos","set","ceil","buffer8","view32","Uint32Array","Function","_ref","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","max","inverseTransform","apply3dTransform","singularValueDecompose2dScale","transpose","first","second","sqrt","sx","sy","normalizeRect","rect","intersect","rect1","rect2","compare","orderedX","sort","orderedY","ROMAN_NUMBER_MAP","number","lowerCase","arguments","romanBuf","romanStr","PDFStringTranslateTable","unescape","ch","capability","promise","reject","digits","contentType","forceDataSchema","blob","Blob","type","b1","b2","b3","d1","d2","d3","d4","globalScope","_pdfjsCompatibilityChecked","hasDOM","window","document","btoa","chars","Buffer","from","atob","input","scripts","getElementsByTagName","Element","parentNode","removeChild","div","createElement","classList","toggle","originalDOMTokenListToggle","DOMTokenList","token","force","includes","WeakMap","codePointAt","fromCodePoint","global","self","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","__e","dP","createDesc","anObject","IE8_DOM_DEFINE","toPrimitive","Attributes","fn","val","valueOf","bitmap","has","SRC","TO_STRING","$toString","TPL","inspectSource","safe","isFunction","px","random","aFunction","that","isRegExp","defined","NAME","cof","MATCH","store","uid","_Symbol","USE_SYMBOL","$exports","SHARED","copyright","KEY","re","$includes","el","toLength","toAbsoluteIndex","IS_INCLUDES","$this","fromIndex","index","IObject","propertyIsEnumerable","toInteger","UNSCOPABLES","ArrayProto","gOPS","pIE","toObject","$assign","A","K","T","aLen","getSymbols","$keys","enumBugKeys","arrayIndexOf","IE_PROTO","names","shared","getOwnPropertySymbols","isFinite","classof","test","TAG","ARG","tryGet","callee","$at","iterated","_t","_i","point","done","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","Base","Constructor","next","DEFAULT","IS_SET","FORCED","IteratorPrototype","getMethod","kind","DEF_VALUES","VALUES_BUG","$native","$default","$entries","$anyNative","entries","descriptor","dPs","Empty","_createDict","iframeDocument","iframe","lt","gt","style","display","appendChild","src","contentWindow","open","close","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","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","USE_NATIVE","FakePromise","PromiseRejectionEvent","isThenable","notify","isReject","_n","chain","_c","_v","ok","_s","run","reaction","exited","handler","fail","domain","_h","onHandleUnhandled","enter","exit","onUnhandled","unhandled","isUnhandled","emit","onunhandledrejection","reason","error","_a","onrejectionhandled","$reject","_d","_w","$resolve","wrapper","executor","err","onFulfilled","onRejected","C","$$reject","iter","all","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","now","port2","port1","onmessage","postMessage","addEventListener","importScripts","clear","un","macrotask","Observer","MutationObserver","WebKitMutationObserver","head","flush","parent","navigator","standalone","node","createTextNode","observe","characterData","PromiseCapability","$$resolve","promiseCapability","DESCRIPTORS","SAFE_CLOSING","riter","skipClosing","onFinally","callbackfn","InternalMap","each","meta","weak","fails","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","ufstore","$WeakMap","freeze","getConstructor","NEED","method","_f","asc","TYPE","$create","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","res","original","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","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","isReadableStreamSupported","controller","_typeof2","_require","IsPropertyKey","argument","Call","V","typeIsObject","createDataProperty","createArrayFromList","elements","ArrayBufferCopy","dest","destOffset","srcOffset","CreateIterResultObject","IsFiniteNonNegativeNumber","InvokeOrNoop","PromiseInvokeOrNoop","returnValueE","PromiseInvokeOrPerformFallback","argsF","methodE","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","highWaterMark","ValidateAndNormalizeQueuingStrategy","size","rethrowAssertionErrorRejection","AssertionError","stack","_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","stream","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","defaultWriterClosedPromiseReject","_closedPromise","catch","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","desiredSize","_closedPromise_resolve","_closedPromise_reject","_readyPromise_resolve","_readyPromise_reject","container","pair","_require4","_require5","underlyingSource","_reader","_disturbed","_readableStreamController","typeString","ReadableByteStreamController","ReadableStreamDefaultController","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","_ref2","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","_ref3","readable","pipeTo","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_ref4","preventClose","preventAbort","preventCancel","Boolean","reader","shuttingDown","currentWrite","pipeLoop","ReadableStreamDefaultReaderRead","_ref5","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","view","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","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","ReadableByteStreamControllerShiftPendingPullInto","DataView","BYTES_PER_ELEMENT","emptyView","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","remainderSize","remainder","ReadableByteStreamControllerRespondInternal","firstPendingPullInto","transferredBuffer","transferredView","transformStream","readableStream","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","sink","_writable","isURLSupported","PolyfillURL","OriginalURL","revokeObjectURL","relativePathDotMapping","isRelativeScheme","scheme","invalid","_isInvalid","IDNAToASCII","percentEscape","unicode","percentEscapeQuery","EOF","ALPHA","ALPHANUMERIC","stateOverride","errors","cursor","seenAt","seenBracket","loop","_scheme","_isRelative","_query","_fragment","_schemeData","_host","_port","_path","_username","_password","nextC","nextNextC","cp","tempC","temp","parseInt","JURL","_url","authority","_","PDFPageProxy","PDFDocumentProxy","_slicedToArray","sliceIterator","_arr","_e","_util","_dom_utils","_font_loader","_api_compatibility","_canvas","_global_scope","_global_scope2","_interopRequireDefault","_worker_options","_message_handler","_metadata","_transport_stream","_webgl","default","arr2","DEFAULT_RANGE_CHUNK_SIZE","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerFilesLoader","useRequireEnsure","requirejs","toUrl","createPDFNetworkStream","dynamicLoaderSupported","worker","WorkerMessageHandler","pdfjsFilePath","currentScript","pdfNetworkStreamFactory","PDFDocumentLoadingTask","range","rangeTransport","pdfBytes","location","rangeChunkSize","CMapReaderFactory","DOMCMapReaderFactory","ignoreErrors","stopAtErrors","pdfBug","NativeImageDecoderValues","nativeImageDecoderSupport","maxImageSize","disableFontFace","disableRange","disableStream","disableAutoFetch","disableCreateObjectURL","workerParams","postMessageTransfers","workerPort","fromPort","_worker","docId","destroyed","_fetchDocument","workerId","networkStream","PDFDataTransportStream","initialData","httpHeaders","withCredentials","messageHandler","MessageHandler","transport","WorkerTransport","_transport","send","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","docBaseUrl","nextDocumentId","onPassword","onProgress","onUnsupportedFeature","transportDestroyed","_rangeListeners","_progressListeners","_progressiveReadListeners","_readyCapability","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","return","loaded","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_this3","_iteratorNormalCompletion3","_didIteratorError3","_iteratorError3","_step3","_iterator3","pdfInfo","loadingTask","_pdfInfo","pageNumber","getPage","ref","getPageIndex","getDestinations","getDestination","getPageLabels","getPageMode","getAttachments","getJavaScript","getOutline","getPermissions","getMetadata","getData","downloadInfoCapability","getStats","startCleanup","numPages","fingerprint","loadingParams","pageIndex","pageInfo","_pageInfo","_stats","StatTimer","DummyStatTimer","_pdfBug","commonObjs","objs","PDFObjects","cleanupAfterRender","pendingCleanup","intentStates","rotate","userUnit","getViewport","scale","dontFlip","PageViewport","viewBox","rotation","getAnnotations","intent","annotationsPromise","annotationsIntent","render","_this4","stats","renderingIntent","canvasFactory","DOMCanvasFactory","webGLContext","WebGLContext","enable","enableWebGL","intentState","displayReadyCapability","receivingOperatorList","operatorList","fnArray","argsArray","lastChunk","renderInteractiveForms","complete","renderTasks","internalRenderTask","_tryCleanup","timeEnd","InternalRenderTask","useRequestAnimationFrame","renderTask","transparency","initializeGraphics","operatorListChanged","getOperatorList","opListReadCapability","opListTask","streamTextContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","normalizeWhitespace","combineTextItems","disableCombineTextItems","textContent","items","getTextContent","pump","_textContent$items","styles","getReader","_destroy","pageCache","waitOn","renderCompleted","cancel","cleanup","resetStats","some","_startRenderPage","_renderPageChunk","operatorListChunk","_listeners","_defer","_deferred","transfers","_this5","cloneValue","cloned","transferable","desc","nextFakeWorkerId","getWorkerSrc","workerSrc","getMainThreadWorkerMessageHandler","pdfjsWorker","fakeWorkerFilesLoadedCapability","setupFakeWorkerGlobal","mainWorkerMessageHandler","loader","createCDNWrapper","pdfWorkerPorts","_ref2$name","_ref2$port","_ref2$postMessageTran","_ref2$verbosity","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","_this6","Worker","terminateEarly","removeEventListener","onWorkerError","terminate","_setupFakeWorker","supportTypedArray","supportTransfers","sendTest","testObj","_this7","workerHandler","setup","fontLoader","FontLoader","_params","cMapUrl","isCompressed","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","pagePromises","setupMessageHandler","_this8","page","terminated","cancelAllRequests","_this9","getFullReader","evt","total","onPull","enqueue","onCancel","_this10","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","pdfDocument","exception","_this11","updatePassword","_this12","_data","exportedData","hasData","exportedError","fontRegistry","FontInspector","enabled","registerFont","fontAdded","FontFaceObject","_onUnsupportedFeature","fontReady","fontObjs","_data2","imageData","pageProxy","img","Image","onload","onerror","MAX_IMAGE_SIZE_TO_STORE","pageNum","_data3","imageUrl","components","width","height","rgbaLength","buf","Uint8ClampedArray","tmpCanvas","tmpCtx","getContext","drawImage","getImageData","_j","fetch","_ref6","featureId","_this13","_this14","results","metadata","Metadata","contentDispositionFilename","filename","_this15","ensureObj","objId","resolved","callback","isResolved","RenderTask","_internalRenderTask","onContinue","canvasInRendering","operatorListIdx","running","graphicsReadyCallback","graphicsReady","cancelled","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","canvasContext","canvas","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","imageLayer","beginDrawing","viewport","background","updateOperatorList","_this16","requestAnimationFrame","_this17","executeOperatorList","endDrawing","DOMSVGFactory","DEFAULT_LINK_REL","SVG_NS","canvasAndContext","_ref$baseUrl","_ref$isCompressed","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","response","responseText","cMapData","compressionType","svg","createElementNS","setAttribute","_ref3$offsetX","offsetX","_ref3$offsetY","offsetY","_ref3$dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","_ref4$scale","_ref4$rotation","_ref4$dontFlip","y","tl","br","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","link","title","LinkTargetValues","targetIndex","anchor","substring","started","times","Date","longest","_ii","span","duration","padEnd","script","_possibleConstructorReturn","ReferenceError","_inherits","subClass","superClass","BaseFontLoader","nativeFontFaces","styleElement","loadingContext","requests","nextRequestId","nativeFontFace","fonts","add","rule","styleSheet","sheet","insertRule","cssRules","rules","fontsToLoad","fontLoadPromises","getNativeFontPromise","family","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","addNativeFontFace","createFontFaceRule","_queueLoadingCallback","isSyncFontLoadingSupported","_prepareFontLoadEvent","completeRequest","otherRequest","_BaseFontLoader","GenericFontLoader","loadTestFontId","int32","spliceString","insert","chunk1","chunk2","called","isFontReady","fillText","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","loadedName","fontFamily","supported","getLoadTestFont","IsEvalSupportedCached","translatedData","_ref$isEvalSupported","_ref$disableFontFace","_ref$ignoreErrors","_ref$onUnsupportedFea","_ref$fontRegistry","compiledGlyphs","FontFace","mimetype","character","cmds","current","js","cmd","compatibilityParams","isIE","isIOSChrome","_pattern_helper","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","addContextCurrentTransform","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","translate","_originalTransform","_originalSetTransform","setTransform","_transformMatrix","_transformStack","ad_bc","bc_ad","old","prev","angle","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","reset","compileType3Glyph","imgData","j0","POINT_TO_PROCESS_LIMIT","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","sum","steps","Int32Array","outlines","pp","coords","p0","drawOutline","beginPath","jj","CanvasExtraState","alphaIsShape","fontSize","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","resumeSMaskCtx","clone","setCurrentPoint","EXECUTION_TIME","EXECUTION_STEPS","canvasCtx","stateStack","pendingClip","pendingEOFill","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","cachedCanvases","_cachedGetSinglePixelWidth","putBinaryImageData","ImageData","putImageData","destPos","thisChunkHeight","elemsInThisChunk","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","putBinaryImageMask","copyCtxState","sourceCtx","destCtx","properties","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","composeFn","hasBackdrop","PIXELS_TO_PROCESS","row","chunkHeight","composeSMask","scaleX","scaleY","isEnabled","composed","layer","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","op","_ref$background","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","fnId","chunkOperations","endTime","breakIt","deps","nn","depObjId","objsPool","endSMaskGroup","endLayout","limit","dashArray","dashPhase","flatness","states","suspendSMaskGroup","beginSMaskGroup","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","startTransformInverse","mozCurrentTransformInverse","deltaTransform","clearRect","resumeSMaskGroup","ops","getSinglePixelWidth","xw","yh","bezierCurveTo","consumePath","getPattern","isPatternFill","needRestore","pendingTextPaths","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","getPathGenerator","strokeText","glyphs","showType3Text","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","glyph","scaledX","scaledY","scaledAccentX","scaledAccentY","vmetric","vx","vy","restoreNeeded","fontChar","accent","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","charWidth","spacingLength","isTextInvisible","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","color","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","getShadingPatternFromIR","patternIR","inv","bl","ul","ur","x0","y0","x1","y1","matrix","bbox","group","isolated","knockout","bounds","canvasBounds","imageSmoothingEnabled","mozImageSmoothingEnabled","domImage","position","getCanvasPosition","appendImage","left","top","compiled","maskCanvas","positions","images","image","imgToPaint","widthScale","heightScale","HTMLElement","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","inverse","ShadingIRs","fromIR","raw","colorStops","r1","grad","createLinearGradient","createRadialGradient","addColorStop","createMeshCanvas","drawTriangle","c1","c2","c3","colors","rowSize","x2","y2","x3","y3","xa","car","cag","cab","xb","cbr","cbg","cbb","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","round","maxY","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","cols","q","combinesScale","figures","backgroundColor","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","drawFigures","shadingIR","Mesh","owner","matrixScale","temporaryPatternCanvas","createPattern","Dummy","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","createPatternCanvas","topLeft","botRight","curMatrixScale","combinedScale","graphics","setFillAndStrokeStyleToContext","setScale","transformToScale","tmpTranslate","clipBbox","tmpScale","scaleToContext","bboxWidth","bboxHeight","cssColor","_regenerator","_regenerator2","resolveCall","_asyncToGenerator","mark","_callee","thisArg","_context","abrupt","stop","_x2","_x3","gen","wrapReason","makeReasonSerializable","resolveOrReject","success","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbacksCapabilities","ah","actionHandler","_onComObjOnMessage","_processStreamMessage","isReply","_sourceName","_targetName","_createStreamSink","actionName","scope","queueingStrategy","startCapability","startCall","isClosed","pullCapability","pullCall","cancelCapability","cancelCall","sendStreamRequest","streamSink","isCancelled","lastDesiredSize","sinkCapability","sendStreamResponse","deleteStreamController","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","skipTempReset","sent","_sent","delegate","tryEntries","resetTryEntry","rootEntry","rootRecord","completion","rval","dispatchException","handle","loc","caught","record","tryLoc","hasCatch","hasFinally","catchLoc","finallyLoc","finallyEntry","afterLoc","finish","thrown","delegateYield","resultName","nextLoc","protoGenerator","generator","_invoke","makeInvokeMethod","tryCatch","unwrapped","previousPromise","callInvokeWithMethodAndArg","doneResult","delegateResult","maybeInvokeDelegate","pushTryEntry","locs","iteratorMethod","_xml_parser","_repair","parser","SimpleXMLParser","xmlDocument","parseFromString","_parse","codes","rdf","nodeName","firstChild","nextSibling","hasChildNodes","childNodes","_get","receiver","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","isWhitespaceString","XMLParserBase","entity","onResolveEntity","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","_resolveEntities","parsed","attrStart","ch2","onError","onEndElement","pi","_parseProcessingInstruction","onPi","onComment","onCdata","q2","complexDoctype","doctypeContent","onDoctype","content","_parseContent","onBeginElement","text","onText","isEmpty","SimpleDOMNode","nodeValue","child","_XMLParserBase","_currentFragment","_stack","_errorCode","parseXml","lastElement","_queuedChunks","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","addRangeListener","_onReceiveData","addProgressListener","_onProgress","addProgressiveReadListener","transportReady","PDFDataTransportStreamReader","queuedChunks","_done","_filename","_requests","_headersReady","PDFDataTransportStreamRangeReader","_begin","_end","_queuedChunk","_enqueue","found","firstReader","_removeRangeReader","requestDataRange","readers","abort","requestCapability","requestsCapability","_callee2","_context2","_ref$enable","_enabled","WebGLUtils","tryInitGL","loadShader","gl","shaderType","shader","createShader","shaderSource","compileShader","getShaderParameter","COMPILE_STATUS","errorMsg","getShaderInfoLog","createVertexShader","VERTEX_SHADER","createFragmentShader","FRAGMENT_SHADER","createProgram","shaders","program","attachShader","linkProgram","linked","getProgramParameter","LINK_STATUS","getProgramInfoLog","createTexture","textureId","activeTexture","texture","bindTexture","TEXTURE_2D","texParameteri","TEXTURE_WRAP_S","CLAMP_TO_EDGE","TEXTURE_WRAP_T","TEXTURE_MIN_FILTER","NEAREST","TEXTURE_MAG_FILTER","texImage2D","RGBA","UNSIGNED_BYTE","currentGL","currentCanvas","generateGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","initSmaskGL","vertexShader","fragmentShader","useProgram","resolutionLocation","getUniformLocation","positionLocation","getAttribLocation","backdropLocation","subtypeLocation","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","createBuffer","bindBuffer","ARRAY_BUFFER","bufferData","Float32Array","STATIC_DRAW","enableVertexAttribArray","vertexAttribPointer","FLOAT","uniform1i","drawingBufferWidth","drawingBufferHeight","uniform2f","uniform4f","TEXTURE0","maskTexture","TEXTURE1","clearColor","BLEND","blendFunc","ONE","ONE_MINUS_SRC_ALPHA","COLOR_BUFFER_BIT","drawArrays","TRIANGLES","deleteTexture","deleteBuffer","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","scaleLocation","offsetLocation","colorLocation","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","isAllWhitespace","styleBuf","appendText","geom","textDiv","textDivProperties","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_textDivProperties","tx","_viewport","atan2","fontName","PI","fontHeight","fontAscent","ascent","descent","_fontInspectorEnabled","dataset","_textContentStream","_layoutText","_enhanceTextSelection","angleCos","angleSin","divWidth","divHeight","_bounds","right","bottom","_canceled","textDivs","textDivsLength","_renderingDone","expand","expanded","expandBounds","divProperties","ts","Float64Array","findPositiveMin","boxScale","boxes","box","x1New","x2New","expandBoundsLTR","fakeBoundary","horizon","boundary","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","used","TextLayerRenderTask","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","renderParameters","_render","timeout","clearTimeout","_processItems","styleCache","textLayerFrag","mozOpaque","textItems","textStyles","expandTextDivs","expandDivs","padding","AnnotationElementFactory","parameters","annotationType","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","linkService","downloadManager","imageResourcesPath","svgFactory","_createContainer","transformOrigin","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","trigger","popupElement","PopupElement","contents","hideWrapper","popup","_AnnotationElement","className","newWindow","externalLinkTarget","externalLinkRel","_bindNamedAction","_bindLink","destination","getDestinationHash","onclick","navigateTo","getAnchorUrl","executeNamedAction","_AnnotationElement2","hasPopup","alt","l10nId","l10nArgs","_createPopup","_AnnotationElement3","_WidgetAnnotationElem","hasAppearance","fieldValue","TEXT_ALIGNMENT","element","multiLine","disabled","readOnly","maxLen","maxLength","comb","fieldWidth","combWidth","letterSpacing","verticalAlign","_setTextStyle","textAlignment","textAlign","direction","fontWeight","fontStyle","_WidgetAnnotationElem2","_WidgetAnnotationElem3","fieldName","buttonValue","_LinkAnnotationElemen","_WidgetAnnotationElem4","selectElement","combo","multiSelect","multiple","option","optionElement","displayValue","exportValue","_AnnotationElement4","IGNORE_TYPES","parentType","selector","parentId","parentElement","querySelector","parentLeft","parseFloat","parentWidth","pinned","BACKGROUND_ENLIGHT","hideElement","_formatContents","_toggle","_show","_hide","lines","line","pin","hasAttribute","removeAttribute","zIndex","unpin","_AnnotationElement5","lineCoordinates","append","_AnnotationElement6","square","_AnnotationElement7","circle","_AnnotationElement8","containerClassName","svgElementName","vertices","polyline","_PolylineAnnotationEl","_AnnotationElement9","inkLists","inkList","_AnnotationElement10","_AnnotationElement11","_AnnotationElement12","_AnnotationElement13","_AnnotationElement14","_AnnotationElement15","_this23","_this23$data$file","file","eventBus","dispatch","_download","downloadData","annotations","_is_node","_is_node2","SVG_DEFAULTS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","maxBlockLength","deflateBlocks","idat","adler","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opListLen","pf","pm","acos","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","XML_NS","XLINK_NS","clipCount","maskCount","tgrp","executeOpTree","loadDependencies","fnArrayLen","getSVG","svgElement","convertOpList","REVOPS","opTreeLen","lineMatrix","xcoords","tspan","setAttributeNS","txtElement","txtgrp","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","setStrokeAlpha","setFillAlpha","opLength","clipId","clipPath","clipElement","cloneNode","getAttributeNS","imgObj","imgEl","imgSrc","cliprect","definitions","rootGroup","_ensureClipGroup","_network_utils","fs","http","https","fileUriRegex","parseUrl","sourceUrl","parsedUrl","isHttp","isFsUrl","_fullRequest","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_loaded","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","BaseRangeReader","createRequestOptions","headers","_BaseFullReader","handleResponse","statusCode","_setReadableStream","getResponseHeader","_validateRangeRequest","validateRangeRequestCapabilities","allowRangeRequests","suggestedLength","extractFilenameFromHeader","_request","_BaseRangeReader","_httpHeaders","_BaseFullReader2","lstat","createReadStream","_BaseRangeReader2","validateResponseStatus","createResponseStatusError","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","_filename2","attributePattern","flags","RegExp","textdecode","encoding","decoder","TextDecoder","fatal","decode","matches","_match","_match2","quot","_matches$_n","_quot","_part","quotindex","extvalue","encodingend","langvalue","charset","hex","createFetchOptions","abortController","signal","credentials","redirect","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","Headers","rangeStr","NetworkManager","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getXhr","currXhrId","pendingRequests","loadedRequests","getArrayBuffer","xhr","array","supportsMozChunked","_source","_manager","PDFNetworkStreamFullRequestReader","manager","onHeadersReceived","_onHeadersReceived","onProgressiveData","_onProgressiveData","onDone","_onDone","_onError","_fullRequestId","requestFull","_headersReceivedCapability","_cachedChunks","PDFNetworkStreamRangeRequestReader","_requestId","requestRange","onClosed","listeners","xhrId","pendingRequest","setRequestHeader","expectedStatus","useMozChunkedLoading","mozChunked","onStateChange","onprogress","xhrStatus","ok_response_on_range_request","rangeHeader","hasPendingRequests","getRequestXhr","isStreamingRequest","isPendingRequest","isLoadedRequest","abortAllRequests","_onRangeRequestReaderClosed","fullRequestXhrId","fullRequestXhr","networkManager","lengthComputable","_close","base64","ieee754","typedArraySupport","foo","kMaxLength","TYPED_ARRAY_SUPPORT","encodingOrOffset","allocUnsafe","fromArrayBuffer","fromString","fromObject","assertSize","alloc","checked","string","isEncoding","actual","fromArrayLike","isBuffer","copy","isnan","SlowBuffer","loweredCase","utf8ToBytes","base64ToBytes","slowToString","hexSlice","utf8Slice","asciiSlice","latin1Slice","base64Slice","utf16leSlice","swap","bidirectionalIndexOf","dir","indexSize","arrLength","valLength","readUInt16BE","foundIndex","hexWrite","strLen","utf8Write","blitBuffer","asciiWrite","asciiToBytes","latin1Write","base64Write","ucs2Write","utf16leToBytes","secondByte","thirdByte","fourthByte","tempCodePoint","firstByte","codePoint","bytesPerSequence","decodeCodePointsArray","INSPECT_MAX_BYTES","poolSize","_augment","species","allocUnsafeSlow","_isBuffer","list","swap16","swap32","swap64","equals","inspect","thisStart","thisEnd","thisCopy","targetCopy","toJSON","MAX_ARGUMENTS_LENGTH","codePoints","toHex","checkOffset","ext","checkInt","objectWriteUInt16","littleEndian","objectWriteUInt32","checkIEEE754","writeFloat","noAssert","writeDouble","newBuf","sliceLen","readUIntLE","mul","readUIntBE","readUInt8","readUInt16LE","readUInt32LE","readUInt32BE","readIntLE","readIntBE","readInt16LE","readInt16BE","readInt32LE","readInt32BE","readFloatLE","readFloatBE","readDoubleLE","readDoubleBE","writeUIntLE","maxBytes","writeUIntBE","writeUInt8","writeUInt16LE","writeUInt16BE","writeUInt32LE","writeUInt32BE","writeIntLE","sub","writeIntBE","writeInt8","writeInt16LE","writeInt16BE","writeInt32LE","writeInt32BE","writeFloatLE","writeFloatBE","writeDoubleLE","writeDoubleBE","targetStart","INVALID_BASE64_RE","base64clean","stringtrim","units","leadSurrogate","byteArray","hi","lo","dst","alert","nodeType","freeGlobal","maxInt","tMin","tMax","skew","damp","initialBias","initialN","delimiter","regexPunycode","regexNonASCII","regexSeparators","baseMinusTMin","stringFromCharCode","mapDomain","labels","encoded","ucs2decode","extra","ucs2encode","basicToDigit","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","basic","oldi","baseMinusT","inputLength","bias","handledCPCount","basicLength","currentValue","handledCPCountPlusOne","qMinusT","toUnicode","stringifyPrimitive","objectKeys","ks","_vm","_self","staticClass","attrs","directives","rawName","expression","$event","$$selectedVal","filter","selected","_value","domProps","pleaseselect","passed","regdate","passdate","daysofvalidity","validtodate","filteredRows","moduleRegistrationTime","passedTime","daysOfValidity","validToDate","isHasCert","downloadCertification","cert","showMediaFile","moduleLanguageId","studynow","clickQuize","takequize","reapply","_m","staticRenderFns","staticStyle","fileData","mediaImage","fileType","convertToImage","imageName","showFile","fileName","playerOptions","videoPlayer","mlId","$refs","$emit","imageType","getUrl","getURI","getFile","download","vm","mediaId","click","checkEdge","isEdge","show","getmodulecourseware","_loop","azure","getTrainingURI","uri","controls","preload","muted","language","fluid","playbackRates","sources","modal","keyboard","component","mediaFileList","mixins","bodyText","GetContactModuleRegistration","cms","getUserLanguageId","userlanguage","loadImage","userlanguageId","getElementById","loadField","field","getParameterContent","parameter","createPDF","doc","wh","jsPDF","html2canvas","addImage","toDataURL","msSaveOrOpenBlob","paractxres","modulegrouptitle","moduleGroupTitle","firstname","firstName","lastname","lastName","countryname","countryName","fullname","fullName","accountname","accountName","dt","getMonth","mmddyyyy","getDate","getFullYear","paractx","posistion","fieldText","certificateParameterId","StartTakeQuiz","watch","val2"],"mappings":"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","file":"js/chunk-464a08e4.7eddd622.js","sourcesContent":["// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","import {\r\n alertError\r\n} from '@/functions'\r\nexport default {\r\n mounted() {\r\n $(this.$el).validate();\r\n this.ready = this.resource.get({\r\n id: this.$route.params.id\r\n });\r\n this.ready.then(a => {\r\n Object.assign(this.form, a.body);\r\n });\r\n },\r\n methods: {\r\n submit(e) {\r\n e.preventDefault();\r\n if ($(this.$el).valid()) {\r\n this.resource.update({\r\n id: this.$route.params.id\r\n }, this.form).then(\r\n a => {\r\n this.$router.push(\"..\");\r\n }, alertError\r\n );\r\n }\r\n },\r\n back(e) {\r\n e.preventDefault();\r\n this.$router.go(-1);\r\n }\r\n }\r\n}\r\n","export default {\r\n data() {\r\n return {\r\n rows: []\r\n };\r\n },\r\n mounted() {\r\n this.load().then(this.init);\r\n },\r\n methods: {\r\n init() {\r\n this.table = $(\".table\").dataTable({\r\n aoColumns: [...new Array($('table th').length - 1), {\r\n bSortable: false\r\n }]\r\n });\r\n },\r\n load() {\r\n return new Promise(resolve => {\r\n this.resource.score({ id: this.$route.params.id }).then(a => {\r\n this.rows = a.body;\r\n resolve();\r\n });\r\n })\r\n }\r\n }\r\n }\r\n ","import { country } from '@/resource';\r\n export default {\r\n data() {\r\n return {\r\n countryGUSAList: [],\r\n };\r\n },\r\n mounted() {\r\n this.loadCountryGUSA();\r\n },\r\n computed: {\r\n countryUSId() {\r\n return this.getCountryIdByCode(\"US\");\r\n },\r\n countryCAId() {\r\n return this.getCountryIdByCode(\"CA\");\r\n }\r\n },\r\n methods: {\r\n loadCountryGUSA() {\r\n country.getGUSA().then(a => {\r\n this.countryGUSAList = a.body;\r\n })\r\n },\r\n getCountryIdByCode(isoCode) {\r\n let countrId = null;\r\n this.countryGUSAList.forEach(function (item) {\r\n if (item.isoCode == isoCode)\r\n countrId = item.id;\r\n });\r\n return countrId;\r\n }\r\n }\r\n }\r\n ","export default {\r\n filters: {\r\n money(amount) {\r\n if (amount != null) {\r\n return amount.toFixed(2).replace(/(\\d)(?=(\\d\\d\\d)+(?!\\d))/g, \"$1,\");\r\n }\r\n else\r\n return '';\r\n },\r\n formatDate(time) {\r\n if (time != null) {\r\n var date = time.substr(0, 10);\r\n return date;\r\n }\r\n else\r\n return '';\r\n }\r\n }\r\n }\r\n ","import { auth } from '@/helpers'\r\nexport default {\r\n mounted() {\r\n if (auth.isLogin())\r\n this.$router.push('/');\r\n }\r\n}","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n for (var i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(\n uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)\n ))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","var getKeys = require('./_object-keys');\nvar toIObject = require('./_to-iobject');\nvar isEnum = require('./_object-pie').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) if (isEnum.call(O, key = keys[i++])) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n } return result;\n };\n};\n","export default {\r\n data() {\r\n return {\r\n rows: []\r\n };\r\n },\r\n mounted() {\r\n this.load().then(this.init)\r\n },\r\n methods: {\r\n init() {\r\n if (this.table != null) this.table.dataTable().fnDestroy()\r\n this.table = $('.table').dataTable({\r\n destroy: true,\r\n aoColumns: $('.table th').map(function (a) {\r\n return $(this).is('.actions') ? { bSortable: false } : {}\r\n })\r\n });\r\n },\r\n load() {\r\n return new Promise(resolve => {\r\n this.resource.get().then(a => {\r\n this.rows = a.body\r\n setTimeout(resolve);\r\n })\r\n })\r\n },\r\n remove(id, i) {\r\n if (!confirm(this.lang.deleteconfirm)) return;\r\n this.resource.delete({\r\n id: id\r\n }).then(a => {\r\n this.rows.splice(i, 1);\r\n this.table.fnDeleteRow(i);\r\n });\r\n }\r\n },\r\n filters: {\r\n formatDate(time) {\r\n if (time != null) {\r\n var date = time.substr(0, 10);\r\n return date;\r\n }\r\n else\r\n return '';\r\n }\r\n }\r\n}\r\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","exports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","/**\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\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__w_pdfjs_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__w_pdfjs_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__w_pdfjs_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__w_pdfjs_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__w_pdfjs_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__w_pdfjs_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__w_pdfjs_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__w_pdfjs_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pdfjsVersion = '2.0.943';\nvar pdfjsBuild = 'dc98bf76';\nvar pdfjsSharedUtil = __w_pdfjs_require__(1);\nvar pdfjsDisplayAPI = __w_pdfjs_require__(129);\nvar pdfjsDisplayTextLayer = __w_pdfjs_require__(145);\nvar pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(146);\nvar pdfjsDisplayDOMUtils = __w_pdfjs_require__(130);\nvar pdfjsDisplaySVG = __w_pdfjs_require__(147);\nvar pdfjsDisplayWorkerOptions = __w_pdfjs_require__(135);\nvar pdfjsDisplayAPICompatibility = __w_pdfjs_require__(132);\n{\n var isNodeJS = __w_pdfjs_require__(4);\n if (isNodeJS()) {\n var PDFNodeStream = __w_pdfjs_require__(148).PDFNodeStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFNodeStream(params);\n });\n } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') {\n var PDFFetchStream = __w_pdfjs_require__(151).PDFFetchStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFFetchStream(params);\n });\n } else {\n var PDFNetworkStream = __w_pdfjs_require__(152).PDFNetworkStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {\n return new PDFNetworkStream(params);\n });\n }\n}\nexports.build = pdfjsDisplayAPI.build;\nexports.version = pdfjsDisplayAPI.version;\nexports.getDocument = pdfjsDisplayAPI.getDocument;\nexports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;\nexports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;\nexports.PDFWorker = pdfjsDisplayAPI.PDFWorker;\nexports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;\nexports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;\nexports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;\nexports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;\nexports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;\nexports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;\nexports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;\nexports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;\nexports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;\nexports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;\nexports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;\nexports.OPS = pdfjsSharedUtil.OPS;\nexports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;\nexports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;\nexports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;\nexports.createObjectURL = pdfjsSharedUtil.createObjectURL;\nexports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;\nexports.shadow = pdfjsSharedUtil.shadow;\nexports.Util = pdfjsSharedUtil.Util;\nexports.ReadableStream = pdfjsSharedUtil.ReadableStream;\nexports.URL = pdfjsSharedUtil.URL;\nexports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDOMUtils.loadScript;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;\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.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__(2);\n\nvar _streams_polyfill = __w_pdfjs_require__(125);\n\nvar _url_polyfill = __w_pdfjs_require__(127);\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/* 2 */\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__(3);\nif (!globalScope._pdfjsCompatibilityChecked) {\n globalScope._pdfjsCompatibilityChecked = true;\n var isNodeJS = __w_pdfjs_require__(4);\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__(5);\n })();\n (function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n __w_pdfjs_require__(33);\n })();\n (function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n __w_pdfjs_require__(42);\n })();\n (function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = __w_pdfjs_require__(52);\n })();\n (function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = __w_pdfjs_require__(54);\n })();\n (function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = __w_pdfjs_require__(56);\n })();\n (function checkPromise() {\n if (globalScope.Promise) {\n return;\n }\n globalScope.Promise = __w_pdfjs_require__(59);\n })();\n (function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = __w_pdfjs_require__(94);\n })();\n (function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n String.codePointAt = __w_pdfjs_require__(111);\n })();\n (function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = __w_pdfjs_require__(113);\n })();\n (function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n __w_pdfjs_require__(115);\n })();\n (function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = __w_pdfjs_require__(122);\n })();\n}\n\n/***/ }),\n/* 3 */\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/* 4 */\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/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(6);\nmodule.exports = __w_pdfjs_require__(9).String.includes;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar context = __w_pdfjs_require__(25);\nvar INCLUDES = 'includes';\n$export($export.P + $export.F * __w_pdfjs_require__(32)(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/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar core = __w_pdfjs_require__(9);\nvar hide = __w_pdfjs_require__(10);\nvar redefine = __w_pdfjs_require__(20);\nvar ctx = __w_pdfjs_require__(23);\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/* 8 */\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/* 9 */\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/* 10 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(11);\nvar createDesc = __w_pdfjs_require__(19);\nmodule.exports = __w_pdfjs_require__(15) ? 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/* 11 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(14);\nvar toPrimitive = __w_pdfjs_require__(18);\nvar dP = Object.defineProperty;\nexports.f = __w_pdfjs_require__(15) ? 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/* 12 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n\n/***/ }),\n/* 13 */\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/* 14 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () {\n return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', {\n get: function get() {\n return 7;\n }\n }).a != 7;\n});\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = !__w_pdfjs_require__(16)(function () {\n return Object.defineProperty({}, '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 = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar document = __w_pdfjs_require__(8).document;\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\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/* 19 */\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/* 20 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar hide = __w_pdfjs_require__(10);\nvar has = __w_pdfjs_require__(21);\nvar SRC = __w_pdfjs_require__(22)('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n__w_pdfjs_require__(9).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/* 21 */\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/* 22 */\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/* 23 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(24);\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/* 24 */\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/* 25 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isRegExp = __w_pdfjs_require__(26);\nvar defined = __w_pdfjs_require__(31);\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/* 26 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar cof = __w_pdfjs_require__(27);\nvar MATCH = __w_pdfjs_require__(28)('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n\n/***/ }),\n/* 27 */\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/* 28 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar store = __w_pdfjs_require__(29)('wks');\nvar uid = __w_pdfjs_require__(22);\nvar _Symbol = __w_pdfjs_require__(8).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/* 29 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar core = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(8);\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__(30) ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = false;\n\n/***/ }),\n/* 31 */\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/* 32 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar MATCH = __w_pdfjs_require__(28)('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/* 33 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(34);\nmodule.exports = __w_pdfjs_require__(9).Array.includes;\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar $includes = __w_pdfjs_require__(35)(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__(41)('includes');\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toIObject = __w_pdfjs_require__(36);\nvar toLength = __w_pdfjs_require__(38);\nvar toAbsoluteIndex = __w_pdfjs_require__(40);\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/* 36 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar IObject = __w_pdfjs_require__(37);\nvar defined = __w_pdfjs_require__(31);\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(27);\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(39);\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;\n};\n\n/***/ }),\n/* 39 */\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/* 40 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(39);\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/* 41 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar UNSCOPABLES = __w_pdfjs_require__(28)('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(43);\nmodule.exports = __w_pdfjs_require__(9).Object.assign;\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S + $export.F, 'Object', { assign: __w_pdfjs_require__(44) });\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(45);\nvar gOPS = __w_pdfjs_require__(49);\nvar pIE = __w_pdfjs_require__(50);\nvar toObject = __w_pdfjs_require__(51);\nvar IObject = __w_pdfjs_require__(37);\nvar $assign = Object.assign;\nmodule.exports = !$assign || __w_pdfjs_require__(16)(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/* 45 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(46);\nvar enumBugKeys = __w_pdfjs_require__(48);\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(21);\nvar toIObject = __w_pdfjs_require__(36);\nvar arrayIndexOf = __w_pdfjs_require__(35)(false);\nvar IE_PROTO = __w_pdfjs_require__(47)('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/* 47 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar shared = __w_pdfjs_require__(29)('keys');\nvar uid = __w_pdfjs_require__(22);\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n\n/***/ }),\n/* 48 */\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/* 49 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = Object.getOwnPropertySymbols;\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = {}.propertyIsEnumerable;\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar defined = __w_pdfjs_require__(31);\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(53);\nmodule.exports = __w_pdfjs_require__(9).Math.log2;\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(55);\nmodule.exports = __w_pdfjs_require__(9).Number.isNaN;\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n return number != number;\n }\n});\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(57);\nmodule.exports = __w_pdfjs_require__(9).Number.isInteger;\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\n$export($export.S, 'Number', { isInteger: __w_pdfjs_require__(58) });\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(60);\n__w_pdfjs_require__(62);\n__w_pdfjs_require__(72);\n__w_pdfjs_require__(75);\n__w_pdfjs_require__(92);\n__w_pdfjs_require__(93);\nmodule.exports = __w_pdfjs_require__(9).Promise;\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(61);\nvar test = {};\ntest[__w_pdfjs_require__(28)('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(27);\nvar TAG = __w_pdfjs_require__(28)('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/* 62 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $at = __w_pdfjs_require__(63)(true);\n__w_pdfjs_require__(64)(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/* 63 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar toInteger = __w_pdfjs_require__(39);\nvar defined = __w_pdfjs_require__(31);\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/* 64 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(30);\nvar $export = __w_pdfjs_require__(7);\nvar redefine = __w_pdfjs_require__(20);\nvar hide = __w_pdfjs_require__(10);\nvar Iterators = __w_pdfjs_require__(65);\nvar $iterCreate = __w_pdfjs_require__(66);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar getPrototypeOf = __w_pdfjs_require__(71);\nvar ITERATOR = __w_pdfjs_require__(28)('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/* 65 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = {};\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar create = __w_pdfjs_require__(67);\nvar descriptor = __w_pdfjs_require__(19);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar IteratorPrototype = {};\n__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(28)('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/* 67 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\nvar dPs = __w_pdfjs_require__(68);\nvar enumBugKeys = __w_pdfjs_require__(48);\nvar IE_PROTO = __w_pdfjs_require__(47)('IE_PROTO');\nvar Empty = function Empty() {};\nvar PROTOTYPE = 'prototype';\nvar _createDict = function createDict() {\n var iframe = __w_pdfjs_require__(17)('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n __w_pdfjs_require__(69).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/* 68 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar dP = __w_pdfjs_require__(11);\nvar anObject = __w_pdfjs_require__(12);\nvar getKeys = __w_pdfjs_require__(45);\nmodule.exports = __w_pdfjs_require__(15) ? 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/* 69 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar document = __w_pdfjs_require__(8).document;\nmodule.exports = document && document.documentElement;\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar def = __w_pdfjs_require__(11).f;\nvar has = __w_pdfjs_require__(21);\nvar TAG = __w_pdfjs_require__(28)('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/* 71 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar has = __w_pdfjs_require__(21);\nvar toObject = __w_pdfjs_require__(51);\nvar IE_PROTO = __w_pdfjs_require__(47)('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/* 72 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $iterators = __w_pdfjs_require__(73);\nvar getKeys = __w_pdfjs_require__(45);\nvar redefine = __w_pdfjs_require__(20);\nvar global = __w_pdfjs_require__(8);\nvar hide = __w_pdfjs_require__(10);\nvar Iterators = __w_pdfjs_require__(65);\nvar wks = __w_pdfjs_require__(28);\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/* 73 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar addToUnscopables = __w_pdfjs_require__(41);\nvar step = __w_pdfjs_require__(74);\nvar Iterators = __w_pdfjs_require__(65);\nvar toIObject = __w_pdfjs_require__(36);\nmodule.exports = __w_pdfjs_require__(64)(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/* 74 */\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/* 75 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar LIBRARY = __w_pdfjs_require__(30);\nvar global = __w_pdfjs_require__(8);\nvar ctx = __w_pdfjs_require__(23);\nvar classof = __w_pdfjs_require__(61);\nvar $export = __w_pdfjs_require__(7);\nvar isObject = __w_pdfjs_require__(13);\nvar aFunction = __w_pdfjs_require__(24);\nvar anInstance = __w_pdfjs_require__(76);\nvar forOf = __w_pdfjs_require__(77);\nvar speciesConstructor = __w_pdfjs_require__(81);\nvar task = __w_pdfjs_require__(82).set;\nvar microtask = __w_pdfjs_require__(84)();\nvar newPromiseCapabilityModule = __w_pdfjs_require__(85);\nvar perform = __w_pdfjs_require__(86);\nvar userAgent = __w_pdfjs_require__(87);\nvar promiseResolve = __w_pdfjs_require__(88);\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__(28)('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__(89)($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__(70)($Promise, PROMISE);\n__w_pdfjs_require__(90)(PROMISE);\nWrapper = __w_pdfjs_require__(9)[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__(91)(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/* 76 */\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/* 77 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(23);\nvar call = __w_pdfjs_require__(78);\nvar isArrayIter = __w_pdfjs_require__(79);\nvar anObject = __w_pdfjs_require__(12);\nvar toLength = __w_pdfjs_require__(38);\nvar getIterFn = __w_pdfjs_require__(80);\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/* 78 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\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/* 79 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar Iterators = __w_pdfjs_require__(65);\nvar ITERATOR = __w_pdfjs_require__(28)('iterator');\nvar ArrayProto = Array.prototype;\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar classof = __w_pdfjs_require__(61);\nvar ITERATOR = __w_pdfjs_require__(28)('iterator');\nvar Iterators = __w_pdfjs_require__(65);\nmodule.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];\n};\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\nvar aFunction = __w_pdfjs_require__(24);\nvar SPECIES = __w_pdfjs_require__(28)('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/* 82 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(23);\nvar invoke = __w_pdfjs_require__(83);\nvar html = __w_pdfjs_require__(69);\nvar cel = __w_pdfjs_require__(17);\nvar global = __w_pdfjs_require__(8);\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__(27)(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/* 83 */\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/* 84 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar macrotask = __w_pdfjs_require__(82).set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = __w_pdfjs_require__(27)(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/* 85 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar aFunction = __w_pdfjs_require__(24);\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/* 86 */\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/* 87 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar navigator = global.navigator;\nmodule.exports = navigator && navigator.userAgent || '';\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar anObject = __w_pdfjs_require__(12);\nvar isObject = __w_pdfjs_require__(13);\nvar newPromiseCapability = __w_pdfjs_require__(85);\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/* 89 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefine = __w_pdfjs_require__(20);\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/* 90 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar dP = __w_pdfjs_require__(11);\nvar DESCRIPTORS = __w_pdfjs_require__(15);\nvar SPECIES = __w_pdfjs_require__(28)('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/* 91 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ITERATOR = __w_pdfjs_require__(28)('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/* 92 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar core = __w_pdfjs_require__(9);\nvar global = __w_pdfjs_require__(8);\nvar speciesConstructor = __w_pdfjs_require__(81);\nvar promiseResolve = __w_pdfjs_require__(88);\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/* 93 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar newPromiseCapability = __w_pdfjs_require__(85);\nvar perform = __w_pdfjs_require__(86);\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/* 94 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(60);\n__w_pdfjs_require__(72);\n__w_pdfjs_require__(95);\n__w_pdfjs_require__(107);\n__w_pdfjs_require__(109);\nmodule.exports = __w_pdfjs_require__(9).WeakMap;\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar each = __w_pdfjs_require__(96)(0);\nvar redefine = __w_pdfjs_require__(20);\nvar meta = __w_pdfjs_require__(100);\nvar assign = __w_pdfjs_require__(44);\nvar weak = __w_pdfjs_require__(101);\nvar isObject = __w_pdfjs_require__(13);\nvar fails = __w_pdfjs_require__(16);\nvar validate = __w_pdfjs_require__(102);\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__(103)(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/* 96 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar ctx = __w_pdfjs_require__(23);\nvar IObject = __w_pdfjs_require__(37);\nvar toObject = __w_pdfjs_require__(51);\nvar toLength = __w_pdfjs_require__(38);\nvar asc = __w_pdfjs_require__(97);\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/* 97 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar speciesConstructor = __w_pdfjs_require__(98);\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n\n/***/ }),\n/* 98 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar isArray = __w_pdfjs_require__(99);\nvar SPECIES = __w_pdfjs_require__(28)('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/* 99 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar cof = __w_pdfjs_require__(27);\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n\n/***/ }),\n/* 100 */\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__(22)('meta');\nvar isObject = __w_pdfjs_require__(13);\nvar has = __w_pdfjs_require__(21);\nvar setDesc = __w_pdfjs_require__(11).f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !__w_pdfjs_require__(16)(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/* 101 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar redefineAll = __w_pdfjs_require__(89);\nvar getWeak = __w_pdfjs_require__(100).getWeak;\nvar anObject = __w_pdfjs_require__(12);\nvar isObject = __w_pdfjs_require__(13);\nvar anInstance = __w_pdfjs_require__(76);\nvar forOf = __w_pdfjs_require__(77);\nvar createArrayMethod = __w_pdfjs_require__(96);\nvar $has = __w_pdfjs_require__(21);\nvar validate = __w_pdfjs_require__(102);\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/* 102 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\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/* 103 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar $export = __w_pdfjs_require__(7);\nvar redefine = __w_pdfjs_require__(20);\nvar redefineAll = __w_pdfjs_require__(89);\nvar meta = __w_pdfjs_require__(100);\nvar forOf = __w_pdfjs_require__(77);\nvar anInstance = __w_pdfjs_require__(76);\nvar isObject = __w_pdfjs_require__(13);\nvar fails = __w_pdfjs_require__(16);\nvar $iterDetect = __w_pdfjs_require__(91);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar inheritIfRequired = __w_pdfjs_require__(104);\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/* 104 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar setPrototypeOf = __w_pdfjs_require__(105).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/* 105 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar isObject = __w_pdfjs_require__(13);\nvar anObject = __w_pdfjs_require__(12);\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__(23)(Function.call, __w_pdfjs_require__(106).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/* 106 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar pIE = __w_pdfjs_require__(50);\nvar createDesc = __w_pdfjs_require__(19);\nvar toIObject = __w_pdfjs_require__(36);\nvar toPrimitive = __w_pdfjs_require__(18);\nvar has = __w_pdfjs_require__(21);\nvar IE8_DOM_DEFINE = __w_pdfjs_require__(14);\nvar gOPD = Object.getOwnPropertyDescriptor;\nexports.f = __w_pdfjs_require__(15) ? 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/* 107 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(108)('WeakMap');\n\n/***/ }),\n/* 108 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\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/* 109 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(110)('WeakMap');\n\n/***/ }),\n/* 110 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar aFunction = __w_pdfjs_require__(24);\nvar ctx = __w_pdfjs_require__(23);\nvar forOf = __w_pdfjs_require__(77);\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/* 111 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(112);\nmodule.exports = __w_pdfjs_require__(9).String.codePointAt;\n\n/***/ }),\n/* 112 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar $at = __w_pdfjs_require__(63)(false);\n$export($export.P, 'String', {\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n\n/***/ }),\n/* 113 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(114);\nmodule.exports = __w_pdfjs_require__(9).String.fromCodePoint;\n\n/***/ }),\n/* 114 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar toAbsoluteIndex = __w_pdfjs_require__(40);\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/* 115 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(116);\n__w_pdfjs_require__(60);\nmodule.exports = __w_pdfjs_require__(9).Symbol;\n\n/***/ }),\n/* 116 */\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__(8);\nvar has = __w_pdfjs_require__(21);\nvar DESCRIPTORS = __w_pdfjs_require__(15);\nvar $export = __w_pdfjs_require__(7);\nvar redefine = __w_pdfjs_require__(20);\nvar META = __w_pdfjs_require__(100).KEY;\nvar $fails = __w_pdfjs_require__(16);\nvar shared = __w_pdfjs_require__(29);\nvar setToStringTag = __w_pdfjs_require__(70);\nvar uid = __w_pdfjs_require__(22);\nvar wks = __w_pdfjs_require__(28);\nvar wksExt = __w_pdfjs_require__(117);\nvar wksDefine = __w_pdfjs_require__(118);\nvar enumKeys = __w_pdfjs_require__(119);\nvar isArray = __w_pdfjs_require__(99);\nvar anObject = __w_pdfjs_require__(12);\nvar isObject = __w_pdfjs_require__(13);\nvar toIObject = __w_pdfjs_require__(36);\nvar toPrimitive = __w_pdfjs_require__(18);\nvar createDesc = __w_pdfjs_require__(19);\nvar _create = __w_pdfjs_require__(67);\nvar gOPNExt = __w_pdfjs_require__(120);\nvar $GOPD = __w_pdfjs_require__(106);\nvar $DP = __w_pdfjs_require__(11);\nvar $keys = __w_pdfjs_require__(45);\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__(121).f = gOPNExt.f = $getOwnPropertyNames;\n __w_pdfjs_require__(50).f = $propertyIsEnumerable;\n __w_pdfjs_require__(49).f = $getOwnPropertySymbols;\n if (DESCRIPTORS && !__w_pdfjs_require__(30)) {\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__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\nsetToStringTag($Symbol, 'Symbol');\nsetToStringTag(Math, 'Math', true);\nsetToStringTag(global.JSON, 'JSON', true);\n\n/***/ }),\n/* 117 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nexports.f = __w_pdfjs_require__(28);\n\n/***/ }),\n/* 118 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar global = __w_pdfjs_require__(8);\nvar core = __w_pdfjs_require__(9);\nvar LIBRARY = __w_pdfjs_require__(30);\nvar wksExt = __w_pdfjs_require__(117);\nvar defineProperty = __w_pdfjs_require__(11).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/* 119 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(45);\nvar gOPS = __w_pdfjs_require__(49);\nvar pIE = __w_pdfjs_require__(50);\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/* 120 */\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__(36);\nvar gOPN = __w_pdfjs_require__(121).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/* 121 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $keys = __w_pdfjs_require__(46);\nvar hiddenKeys = __w_pdfjs_require__(48).concat('length', 'prototype');\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n\n/***/ }),\n/* 122 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\n__w_pdfjs_require__(123);\nmodule.exports = __w_pdfjs_require__(9).Object.values;\n\n/***/ }),\n/* 123 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar $export = __w_pdfjs_require__(7);\nvar $values = __w_pdfjs_require__(124)(false);\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n\n/***/ }),\n/* 124 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar getKeys = __w_pdfjs_require__(45);\nvar toIObject = __w_pdfjs_require__(36);\nvar isEnum = __w_pdfjs_require__(50).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/* 125 */\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__(126).ReadableStream;\n}\n\n/***/ }),\n/* 126 */\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/* 127 */\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__(128).URL;\n var OriginalURL = __w_pdfjs_require__(3).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/* 128 */\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/* 129 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.build = exports.version = exports.setPDFNetworkStreamFactory = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.getDocument = 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 _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 _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__(1);\n\nvar _dom_utils = __w_pdfjs_require__(130);\n\nvar _font_loader = __w_pdfjs_require__(131);\n\nvar _api_compatibility = __w_pdfjs_require__(132);\n\nvar _canvas = __w_pdfjs_require__(133);\n\nvar _global_scope = __w_pdfjs_require__(3);\n\nvar _global_scope2 = _interopRequireDefault(_global_scope);\n\nvar _worker_options = __w_pdfjs_require__(135);\n\nvar _message_handler = __w_pdfjs_require__(136);\n\nvar _metadata = __w_pdfjs_require__(141);\n\nvar _transport_stream = __w_pdfjs_require__(143);\n\nvar _webgl = __w_pdfjs_require__(144);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\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\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_RANGE_CHUNK_SIZE = 65536;\nvar isWorkerDisabled = false;\nvar fallbackWorkerSrc = void 0;\nvar fakeWorkerFilesLoader = null;\n{\n var useRequireEnsure = false;\n if (typeof window === 'undefined') {\n isWorkerDisabled = true;\n if (typeof require.ensure === 'undefined') {\n require.ensure = require('node-ensure');\n }\n useRequireEnsure = true;\n } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {\n useRequireEnsure = true;\n }\n if (typeof requirejs !== 'undefined' && requirejs.toUrl) {\n fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');\n }\n var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? function () {\n return new Promise(function (resolve, reject) {\n require.ensure([], function () {\n try {\n var worker = void 0;\n worker = require('./pdf.worker.js');\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject, 'pdfjsWorker');\n });\n } : dynamicLoaderSupported ? function () {\n return new Promise(function (resolve, reject) {\n requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {\n try {\n resolve(worker.WorkerMessageHandler);\n } catch (ex) {\n reject(ex);\n }\n }, reject);\n });\n } : null;\n if (!fallbackWorkerSrc && typeof document !== 'undefined') {\n var pdfjsFilePath = document.currentScript && document.currentScript.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n}\nvar createPDFNetworkStream;\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\nfunction getDocument(src) {\n var task = new PDFDocumentLoadingTask();\n var source;\n if (typeof src === 'string') {\n source = { url: src };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = { data: src };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src };\n } else {\n if ((typeof src === 'undefined' ? 'undefined' : _typeof(src)) !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error('Invalid parameter object: need either .data, .range or .url');\n }\n source = src;\n }\n var params = Object.create(null);\n var rangeTransport = null;\n var worker = null;\n for (var key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n params[key] = new _util.URL(source[key], window.location).href;\n continue;\n } else if (key === 'range') {\n rangeTransport = source[key];\n continue;\n } else if (key === 'worker') {\n worker = source[key];\n continue;\n } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {\n var pdfBytes = source[key];\n if (typeof pdfBytes === 'string') {\n params[key] = (0, _util.stringToBytes)(pdfBytes);\n } else if ((typeof pdfBytes === 'undefined' ? 'undefined' : _typeof(pdfBytes)) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if ((0, _util.isArrayBuffer)(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');\n }\n continue;\n }\n params[key] = source[key];\n }\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);\n if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;\n }\n if (!Number.isInteger(params.maxImageSize)) {\n params.maxImageSize = -1;\n }\n if (typeof params.isEvalSupported !== 'boolean') {\n params.isEvalSupported = true;\n }\n if (typeof params.disableFontFace !== 'boolean') {\n params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;\n }\n if (typeof params.disableRange !== 'boolean') {\n params.disableRange = false;\n }\n if (typeof params.disableStream !== 'boolean') {\n params.disableStream = false;\n }\n if (typeof params.disableAutoFetch !== 'boolean') {\n params.disableAutoFetch = false;\n }\n if (typeof params.disableCreateObjectURL !== 'boolean') {\n params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;\n }\n (0, _util.setVerbosityLevel)(params.verbosity);\n if (!worker) {\n var workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity\n };\n var workerPort = _worker_options.GlobalWorkerOptions.workerPort;\n if (workerPort) {\n workerParams.port = workerPort;\n worker = PDFWorker.fromPort(workerParams);\n } else {\n worker = new PDFWorker(workerParams);\n }\n task._worker = worker;\n }\n var docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n var networkStream = void 0;\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n var transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n }\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId: docId,\n apiVersion: '2.0.943',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n disableCreateObjectURL: source.disableCreateObjectURL,\n postMessageTransfers: worker.postMessageTransfers,\n docBaseUrl: source.docBaseUrl,\n nativeImageDecoderSupport: source.nativeImageDecoderSupport,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported\n }).then(function (workerId) {\n if (worker.destroyed) {\n throw new Error('Worker was destroyed');\n }\n return workerId;\n });\n}\nvar PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {\n var nextDocumentId = 0;\n function PDFDocumentLoadingTask() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = 'd' + nextDocumentId++;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n PDFDocumentLoadingTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n destroy: function destroy() {\n var _this = this;\n\n this.destroyed = true;\n var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();\n return transportDestroyed.then(function () {\n _this._transport = null;\n if (_this._worker) {\n _this._worker.destroy();\n _this._worker = null;\n }\n });\n },\n\n then: function PDFDocumentLoadingTask_then(onFulfilled, onRejected) {\n return this.promise.then.apply(this.promise, arguments);\n }\n };\n return PDFDocumentLoadingTask;\n}();\n\nvar PDFDataRangeTransport = function () {\n function PDFDataRangeTransport(length, initialData) {\n _classCallCheck(this, PDFDataRangeTransport);\n\n this.length = length;\n this.initialData = initialData;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(PDFDataRangeTransport, [{\n key: 'addRangeListener',\n value: function addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n }, {\n key: 'addProgressListener',\n value: function addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n }, {\n key: 'addProgressiveReadListener',\n value: function addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n }, {\n key: 'onDataRange',\n value: function onDataRange(begin, chunk) {\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var listener = _step.value;\n\n listener(begin, chunk);\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n }\n }, {\n key: 'onDataProgress',\n value: function onDataProgress(loaded) {\n var _this2 = this;\n\n this._readyCapability.promise.then(function () {\n var _iteratorNormalCompletion2 = true;\n var _didIteratorError2 = false;\n var _iteratorError2 = undefined;\n\n try {\n for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var listener = _step2.value;\n\n listener(loaded);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n });\n }\n }, {\n key: 'onDataProgressiveRead',\n value: function onDataProgressiveRead(chunk) {\n var _this3 = this;\n\n this._readyCapability.promise.then(function () {\n var _iteratorNormalCompletion3 = true;\n var _didIteratorError3 = false;\n var _iteratorError3 = undefined;\n\n try {\n for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {\n var listener = _step3.value;\n\n listener(chunk);\n }\n } catch (err) {\n _didIteratorError3 = true;\n _iteratorError3 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion3 && _iterator3.return) {\n _iterator3.return();\n }\n } finally {\n if (_didIteratorError3) {\n throw _iteratorError3;\n }\n }\n }\n });\n }\n }, {\n key: 'transportReady',\n value: function transportReady() {\n this._readyCapability.resolve();\n }\n }, {\n key: 'requestDataRange',\n value: function requestDataRange(begin, end) {\n (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');\n }\n }, {\n key: 'abort',\n value: function abort() {}\n }]);\n\n return PDFDataRangeTransport;\n}();\n\nvar PDFDocumentProxy = function () {\n function PDFDocumentProxy(pdfInfo, transport, loadingTask) {\n _classCallCheck(this, PDFDocumentProxy);\n\n this.loadingTask = loadingTask;\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n _createClass(PDFDocumentProxy, [{\n key: 'getPage',\n value: function getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n }, {\n key: 'getPageIndex',\n value: function getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n }, {\n key: 'getDestinations',\n value: function getDestinations() {\n return this._transport.getDestinations();\n }\n }, {\n key: 'getDestination',\n value: function getDestination(id) {\n return this._transport.getDestination(id);\n }\n }, {\n key: 'getPageLabels',\n value: function getPageLabels() {\n return this._transport.getPageLabels();\n }\n }, {\n key: 'getPageMode',\n value: function getPageMode() {\n return this._transport.getPageMode();\n }\n }, {\n key: 'getAttachments',\n value: function getAttachments() {\n return this._transport.getAttachments();\n }\n }, {\n key: 'getJavaScript',\n value: function getJavaScript() {\n return this._transport.getJavaScript();\n }\n }, {\n key: 'getOutline',\n value: function getOutline() {\n return this._transport.getOutline();\n }\n }, {\n key: 'getPermissions',\n value: function getPermissions() {\n return this._transport.getPermissions();\n }\n }, {\n key: 'getMetadata',\n value: function getMetadata() {\n return this._transport.getMetadata();\n }\n }, {\n key: 'getData',\n value: function getData() {\n return this._transport.getData();\n }\n }, {\n key: 'getDownloadInfo',\n value: function getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n }, {\n key: 'getStats',\n value: function getStats() {\n return this._transport.getStats();\n }\n }, {\n key: 'cleanup',\n value: function cleanup() {\n this._transport.startCleanup();\n }\n }, {\n key: 'destroy',\n value: function destroy() {\n return this.loadingTask.destroy();\n }\n }, {\n key: 'numPages',\n get: function get() {\n return this._pdfInfo.numPages;\n }\n }, {\n key: 'fingerprint',\n get: function get() {\n return this._pdfInfo.fingerprint;\n }\n }, {\n key: 'loadingParams',\n get: function get() {\n return this._transport.loadingParams;\n }\n }]);\n\n return PDFDocumentProxy;\n}();\n\nvar PDFPageProxy = function PDFPageProxyClosure() {\n function PDFPageProxy(pageIndex, pageInfo, transport) {\n var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n this.pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this.transport = transport;\n this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n PDFPageProxy.prototype = {\n get pageNumber() {\n return this.pageIndex + 1;\n },\n get rotate() {\n return this._pageInfo.rotate;\n },\n get ref() {\n return this._pageInfo.ref;\n },\n get userUnit() {\n return this._pageInfo.userUnit;\n },\n get view() {\n return this._pageInfo.view;\n },\n getViewport: function getViewport(scale) {\n var rotate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.rotate;\n var dontFlip = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n return new _dom_utils.PageViewport({\n viewBox: this.view,\n scale: scale,\n rotation: rotate,\n dontFlip: dontFlip\n });\n },\n\n getAnnotations: function PDFPageProxy_getAnnotations(params) {\n var intent = params && params.intent || null;\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this.transport.getAnnotations(this.pageIndex, intent);\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n },\n render: function PDFPageProxy_render(params) {\n var _this4 = this;\n\n var stats = this._stats;\n stats.time('Overall');\n this.pendingCleanup = false;\n var renderingIntent = params.intent === 'print' ? 'print' : 'display';\n var canvasFactory = params.canvasFactory || new _dom_utils.DOMCanvasFactory();\n var webGLContext = new _webgl.WebGLContext({ enable: params.enableWebGL });\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n var intentState = this.intentStates[renderingIntent];\n if (!intentState.displayReadyCapability) {\n intentState.receivingOperatorList = true;\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n stats.time('Page Request');\n this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: params.renderInteractiveForms === true\n });\n }\n var complete = function complete(error) {\n var i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n if (_this4.cleanupAfterRender) {\n _this4.pendingCleanup = true;\n }\n _this4._tryCleanup();\n if (error) {\n internalRenderTask.capability.reject(error);\n } else {\n internalRenderTask.capability.resolve();\n }\n stats.timeEnd('Rendering');\n stats.timeEnd('Overall');\n };\n var internalRenderTask = new InternalRenderTask(complete, params, this.objs, this.commonObjs, intentState.operatorList, this.pageNumber, canvasFactory, webGLContext, this._pdfBug);\n internalRenderTask.useRequestAnimationFrame = renderingIntent !== 'print';\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n var renderTask = internalRenderTask.task;\n intentState.displayReadyCapability.promise.then(function (transparency) {\n if (_this4.pendingCleanup) {\n complete();\n return;\n }\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n },\n getOperatorList: function PDFPageProxy_getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n var i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n var renderingIntent = 'oplist';\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n var intentState = this.intentStates[renderingIntent];\n var opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.receivingOperatorList = true;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false\n };\n this._stats.time('Page Request');\n this.transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageIndex,\n intent: renderingIntent\n });\n }\n return intentState.opListReadCapability.promise;\n },\n streamTextContent: function streamTextContent() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var TEXT_CONTENT_CHUNK_SIZE = 100;\n return this.transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: params.normalizeWhitespace === true,\n combineTextItems: params.disableCombineTextItems !== true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size: function size(textContent) {\n return textContent.items.length;\n }\n });\n },\n\n getTextContent: function PDFPageProxy_getTextContent(params) {\n params = params || {};\n var readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function (_ref) {\n var _textContent$items;\n\n var value = _ref.value,\n done = _ref.done;\n\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));\n pump();\n }, reject);\n }\n var reader = readableStream.getReader();\n var textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n },\n _destroy: function PDFPageProxy_destroy() {\n this.destroyed = true;\n this.transport.pageCache[this.pageIndex] = null;\n var waitOn = [];\n Object.keys(this.intentStates).forEach(function (intent) {\n if (intent === 'oplist') {\n return;\n }\n var intentState = this.intentStates[intent];\n intentState.renderTasks.forEach(function (renderTask) {\n var renderCompleted = renderTask.capability.promise.catch(function () {});\n waitOn.push(renderCompleted);\n renderTask.cancel();\n });\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n },\n cleanup: function cleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.pendingCleanup = true;\n this._tryCleanup(resetStats);\n },\n _tryCleanup: function _tryCleanup() {\n var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {\n var intentState = this.intentStates[intent];\n return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList;\n }, this)) {\n return;\n }\n Object.keys(this.intentStates).forEach(function (intent) {\n delete this.intentStates[intent];\n }, this);\n this.objs.clear();\n this.annotationsPromise = null;\n if (resetStats && this._stats instanceof _dom_utils.StatTimer) {\n this._stats = new _dom_utils.StatTimer();\n }\n this.pendingCleanup = false;\n },\n\n _startRenderPage: function PDFPageProxy_startRenderPage(transparency, intent) {\n var intentState = this.intentStates[intent];\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n },\n _renderPageChunk: function PDFPageProxy_renderPageChunk(operatorListChunk, intent) {\n var intentState = this.intentStates[intent];\n var i, ii;\n for (i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n for (i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n this._tryCleanup();\n }\n },\n get stats() {\n return this._stats instanceof _dom_utils.StatTimer ? this._stats : null;\n }\n };\n return PDFPageProxy;\n}();\n\nvar LoopbackPort = function () {\n function LoopbackPort() {\n var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, LoopbackPort);\n\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n _createClass(LoopbackPort, [{\n key: 'postMessage',\n value: function postMessage(obj, transfers) {\n var _this5 = this;\n\n function cloneValue(value) {\n if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) !== 'object' || value === null) {\n return value;\n }\n if (cloned.has(value)) {\n return cloned.get(value);\n }\n var result;\n var buffer;\n if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {\n var transferable = transfers && transfers.includes(buffer);\n if (value === buffer) {\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset, value.byteLength);\n } else {\n result = new value.constructor(value);\n }\n cloned.set(value, result);\n return result;\n }\n result = Array.isArray(value) ? [] : {};\n cloned.set(value, result);\n for (var i in value) {\n var desc,\n p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === 'undefined' || typeof desc.value === 'function') {\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n if (!this._defer) {\n this._listeners.forEach(function (listener) {\n listener.call(this, { data: obj });\n }, this);\n return;\n }\n var cloned = new WeakMap();\n var e = { data: cloneValue(obj) };\n this._deferred.then(function () {\n _this5._listeners.forEach(function (listener) {\n listener.call(this, e);\n }, _this5);\n });\n }\n }, {\n key: 'addEventListener',\n value: function addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n }, {\n key: 'removeEventListener',\n value: function removeEventListener(name, listener) {\n var i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n }, {\n key: 'terminate',\n value: function terminate() {\n this._listeners = [];\n }\n }]);\n\n return LoopbackPort;\n}();\n\nvar PDFWorker = function PDFWorkerClosure() {\n var nextFakeWorkerId = 0;\n function getWorkerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n function getMainThreadWorkerMessageHandler() {\n try {\n if (typeof window !== 'undefined') {\n return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;\n }\n } catch (ex) {}\n return null;\n }\n var fakeWorkerFilesLoadedCapability = void 0;\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();\n var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n if (mainWorkerMessageHandler) {\n fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n var loader = fakeWorkerFilesLoader || function () {\n return (0, _dom_utils.loadScript)(getWorkerSrc()).then(function () {\n return window.pdfjsWorker.WorkerMessageHandler;\n });\n };\n loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);\n return fakeWorkerFilesLoadedCapability.promise;\n }\n function createCDNWrapper(url) {\n var wrapper = 'importScripts(\\'' + url + '\\');';\n return _util.URL.createObjectURL(new Blob([wrapper]));\n }\n var pdfWorkerPorts = new WeakMap();\n function PDFWorker() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$name = _ref2.name,\n name = _ref2$name === undefined ? null : _ref2$name,\n _ref2$port = _ref2.port,\n port = _ref2$port === undefined ? null : _ref2$port,\n _ref2$postMessageTran = _ref2.postMessageTransfers,\n postMessageTransfers = _ref2$postMessageTran === undefined ? true : _ref2$postMessageTran,\n _ref2$verbosity = _ref2.verbosity,\n verbosity = _ref2$verbosity === undefined ? (0, _util.getVerbosityLevel)() : _ref2$verbosity;\n\n if (port && pdfWorkerPorts.has(port)) {\n throw new Error('Cannot use more than one PDFWorker per port');\n }\n this.name = name;\n this.destroyed = false;\n this.postMessageTransfers = postMessageTransfers !== false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n pdfWorkerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n PDFWorker.prototype = {\n get promise() {\n return this._readyCapability.promise;\n },\n get port() {\n return this._port;\n },\n get messageHandler() {\n return this._messageHandler;\n },\n _initializeFromPort: function PDFWorker_initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);\n this._messageHandler.on('ready', function () {});\n this._readyCapability.resolve();\n },\n _initialize: function PDFWorker_initialize() {\n var _this6 = this;\n\n if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {\n var workerSrc = getWorkerSrc();\n try {\n if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {\n workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href);\n }\n var worker = new Worker(workerSrc);\n var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);\n var terminateEarly = function terminateEarly() {\n worker.removeEventListener('error', onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (_this6.destroyed) {\n _this6._readyCapability.reject(new Error('Worker was destroyed'));\n } else {\n _this6._setupFakeWorker();\n }\n };\n var onWorkerError = function onWorkerError() {\n if (!_this6._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener('error', onWorkerError);\n messageHandler.on('test', function (data) {\n worker.removeEventListener('error', onWorkerError);\n if (_this6.destroyed) {\n terminateEarly();\n return;\n }\n if (data && data.supportTypedArray) {\n _this6._messageHandler = messageHandler;\n _this6._port = worker;\n _this6._webWorker = worker;\n if (!data.supportTransfers) {\n _this6.postMessageTransfers = false;\n }\n _this6._readyCapability.resolve();\n messageHandler.send('configure', { verbosity: _this6.verbosity });\n } else {\n _this6._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on('ready', function (data) {\n worker.removeEventListener('error', onWorkerError);\n if (_this6.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch (e) {\n _this6._setupFakeWorker();\n }\n });\n var sendTest = function sendTest() {\n var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]);\n try {\n messageHandler.send('test', testObj, [testObj.buffer]);\n } catch (ex) {\n (0, _util.info)('Cannot use postMessage transfers');\n testObj[0] = 0;\n messageHandler.send('test', testObj);\n }\n };\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)('The worker has been disabled.');\n }\n }\n this._setupFakeWorker();\n },\n _setupFakeWorker: function PDFWorker_setupFakeWorker() {\n var _this7 = this;\n\n if (!isWorkerDisabled) {\n (0, _util.warn)('Setting up fake worker.');\n isWorkerDisabled = true;\n }\n setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {\n if (_this7.destroyed) {\n _this7._readyCapability.reject(new Error('Worker was destroyed'));\n return;\n }\n var port = new LoopbackPort();\n _this7._port = port;\n var id = 'fake' + nextFakeWorkerId++;\n var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);\n _this7._messageHandler = messageHandler;\n _this7._readyCapability.resolve();\n }).catch(function (reason) {\n _this7._readyCapability.reject(new Error('Setting up fake worker failed: \"' + reason.message + '\".'));\n });\n },\n destroy: function PDFWorker_destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n pdfWorkerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n };\n PDFWorker.fromPort = function (params) {\n if (!params || !params.port) {\n throw new Error('PDFWorker.fromPort - invalid method signature.');\n }\n if (pdfWorkerPorts.has(params.port)) {\n return pdfWorkerPorts.get(params.port);\n }\n return new PDFWorker(params);\n };\n PDFWorker.getWorkerSrc = function () {\n return getWorkerSrc();\n };\n return PDFWorker;\n}();\n\nvar WorkerTransport = function () {\n function WorkerTransport(messageHandler, loadingTask, networkStream, params) {\n _classCallCheck(this, WorkerTransport);\n\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader(loadingTask.docId);\n this._params = params;\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.pageCache = [];\n this.pagePromises = [];\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n _createClass(WorkerTransport, [{\n key: 'destroy',\n value: function destroy() {\n var _this8 = this;\n\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));\n }\n var waitOn = [];\n this.pageCache.forEach(function (page) {\n if (page) {\n waitOn.push(page._destroy());\n }\n });\n this.pageCache = [];\n this.pagePromises = [];\n var terminated = this.messageHandler.sendWithPromise('Terminate', null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(function () {\n _this8.fontLoader.clear();\n if (_this8._networkStream) {\n _this8._networkStream.cancelAllRequests();\n }\n if (_this8.messageHandler) {\n _this8.messageHandler.destroy();\n _this8.messageHandler = null;\n }\n _this8.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n }, {\n key: 'setupMessageHandler',\n value: function setupMessageHandler() {\n var messageHandler = this.messageHandler,\n loadingTask = this.loadingTask;\n\n messageHandler.on('GetReader', function (data, sink) {\n var _this9 = this;\n\n (0, _util.assert)(this._networkStream);\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = function (evt) {\n _this9._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = function () {\n _this9._fullReader.read().then(function (_ref3) {\n var value = _ref3.value,\n done = _ref3.done;\n\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n sink.onCancel = function (reason) {\n _this9._fullReader.cancel(reason);\n };\n }, this);\n messageHandler.on('ReaderHeadersReady', function (data) {\n var _this10 = this;\n\n var headersCapability = (0, _util.createPromiseCapability)();\n var fullReader = this._fullReader;\n fullReader.headersReady.then(function () {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (_this10._lastProgress && loadingTask.onProgress) {\n loadingTask.onProgress(_this10._lastProgress);\n }\n fullReader.onProgress = function (evt) {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n };\n }\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n }, this);\n messageHandler.on('GetRangeReader', function (data, sink) {\n (0, _util.assert)(this._networkStream);\n var rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n sink.onPull = function () {\n rangeReader.read().then(function (_ref4) {\n var value = _ref4.value,\n done = _ref4.done;\n\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)((0, _util.isArrayBuffer)(value));\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(function (reason) {\n sink.error(reason);\n });\n };\n sink.onCancel = function (reason) {\n rangeReader.cancel(reason);\n };\n }, this);\n messageHandler.on('GetDoc', function (_ref5) {\n var pdfInfo = _ref5.pdfInfo;\n\n this.numPages = pdfInfo.numPages;\n this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);\n loadingTask._capability.resolve(this.pdfDocument);\n }, this);\n messageHandler.on('PasswordRequest', function (exception) {\n var _this11 = this;\n\n this._passwordCapability = (0, _util.createPromiseCapability)();\n if (loadingTask.onPassword) {\n var updatePassword = function updatePassword(password) {\n _this11._passwordCapability.resolve({ password: password });\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n return this._passwordCapability.promise;\n }, this);\n messageHandler.on('PasswordException', function (exception) {\n loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));\n }, this);\n messageHandler.on('InvalidPDF', function (exception) {\n loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));\n }, this);\n messageHandler.on('MissingPDF', function (exception) {\n loadingTask._capability.reject(new _util.MissingPDFException(exception.message));\n }, this);\n messageHandler.on('UnexpectedResponse', function (exception) {\n loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));\n }, this);\n messageHandler.on('UnknownError', function (exception) {\n loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));\n }, this);\n messageHandler.on('DataLoaded', function (data) {\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.length,\n total: data.length\n });\n }\n this.downloadInfoCapability.resolve(data);\n }, this);\n messageHandler.on('StartRenderPage', function (data) {\n if (this.destroyed) {\n return;\n }\n var page = this.pageCache[data.pageIndex];\n page._stats.timeEnd('Page Request');\n page._startRenderPage(data.transparency, data.intent);\n }, this);\n messageHandler.on('RenderPageChunk', function (data) {\n if (this.destroyed) {\n return;\n }\n var page = this.pageCache[data.pageIndex];\n page._renderPageChunk(data.operatorList, data.intent);\n }, this);\n messageHandler.on('commonobj', function (data) {\n var _this12 = this;\n\n if (this.destroyed) {\n return;\n }\n\n var _data = _slicedToArray(data, 3),\n id = _data[0],\n type = _data[1],\n exportedData = _data[2];\n\n if (this.commonObjs.hasData(id)) {\n return;\n }\n switch (type) {\n case 'Font':\n var params = this._params;\n if ('error' in exportedData) {\n var exportedError = exportedData.error;\n (0, _util.warn)('Error during font loading: ' + exportedError);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n var fontRegistry = null;\n if (params.pdfBug && _global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled) {\n fontRegistry = {\n registerFont: function registerFont(font, url) {\n _global_scope2.default['FontInspector'].fontAdded(font, url);\n }\n };\n }\n var font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry: fontRegistry\n });\n var fontReady = function fontReady(fontObjs) {\n _this12.commonObjs.resolve(id, font);\n };\n this.fontLoader.bind([font], fontReady);\n break;\n case 'FontPath':\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error('Got unknown common object type ' + type);\n }\n }, this);\n messageHandler.on('obj', function (data) {\n if (this.destroyed) {\n return;\n }\n\n var _data2 = _slicedToArray(data, 4),\n id = _data2[0],\n pageIndex = _data2[1],\n type = _data2[2],\n imageData = _data2[3];\n\n var pageProxy = this.pageCache[pageIndex];\n if (pageProxy.objs.hasData(id)) {\n return;\n }\n switch (type) {\n case 'JpegStream':\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () {\n resolve(img);\n };\n img.onerror = function () {\n reject(new Error('Error during JPEG image loading'));\n };\n img.src = imageData;\n }).then(function (img) {\n pageProxy.objs.resolve(id, img);\n });\n case 'Image':\n pageProxy.objs.resolve(id, imageData);\n var MAX_IMAGE_SIZE_TO_STORE = 8000000;\n if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n break;\n default:\n throw new Error('Got unknown object type ' + type);\n }\n }, this);\n messageHandler.on('DocProgress', function (data) {\n if (this.destroyed) {\n return;\n }\n if (loadingTask.onProgress) {\n loadingTask.onProgress({\n loaded: data.loaded,\n total: data.total\n });\n }\n }, this);\n messageHandler.on('PageError', function (data) {\n if (this.destroyed) {\n return;\n }\n var page = this.pageCache[data.pageNum - 1];\n var intentState = page.intentStates[data.intent];\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(data.error);\n } else {\n throw new Error(data.error);\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (var i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n }\n }, this);\n messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);\n messageHandler.on('JpegDecode', function (data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n if (typeof document === 'undefined') {\n return Promise.reject(new Error('\"document\" is not defined.'));\n }\n\n var _data3 = _slicedToArray(data, 2),\n imageUrl = _data3[0],\n components = _data3[1];\n\n if (components !== 3 && components !== 1) {\n return Promise.reject(new Error('Only 3 components or 1 component can be returned'));\n }\n return new Promise(function (resolve, reject) {\n var img = new Image();\n img.onload = function () {\n var width = img.width;\n var height = img.height;\n var size = width * height;\n var rgbaLength = size * 4;\n var buf = new Uint8ClampedArray(size * components);\n var tmpCanvas = document.createElement('canvas');\n tmpCanvas.width = width;\n tmpCanvas.height = height;\n var tmpCtx = tmpCanvas.getContext('2d');\n tmpCtx.drawImage(img, 0, 0);\n var data = tmpCtx.getImageData(0, 0, width, height).data;\n if (components === 3) {\n for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {\n buf[j] = data[i];\n buf[j + 1] = data[i + 1];\n buf[j + 2] = data[i + 2];\n }\n } else if (components === 1) {\n for (var _i = 0, _j = 0; _i < rgbaLength; _i += 4, _j++) {\n buf[_j] = data[_i];\n }\n }\n resolve({\n data: buf,\n width: width,\n height: height\n });\n };\n img.onerror = function () {\n reject(new Error('JpegDecode failed to load image'));\n };\n img.src = imageUrl;\n });\n }, this);\n messageHandler.on('FetchBuiltInCMap', function (data) {\n if (this.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n return this.CMapReaderFactory.fetch({ name: data.name });\n }, this);\n }\n }, {\n key: '_onUnsupportedFeature',\n value: function _onUnsupportedFeature(_ref6) {\n var featureId = _ref6.featureId;\n\n if (this.destroyed) {\n return;\n }\n if (this.loadingTask.onUnsupportedFeature) {\n this.loadingTask.onUnsupportedFeature(featureId);\n }\n }\n }, {\n key: 'getData',\n value: function getData() {\n return this.messageHandler.sendWithPromise('GetData', null);\n }\n }, {\n key: 'getPage',\n value: function getPage(pageNumber) {\n var _this13 = this;\n\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) {\n return Promise.reject(new Error('Invalid page request'));\n }\n var pageIndex = pageNumber - 1;\n if (pageIndex in this.pagePromises) {\n return this.pagePromises[pageIndex];\n }\n var promise = this.messageHandler.sendWithPromise('GetPage', { pageIndex: pageIndex }).then(function (pageInfo) {\n if (_this13.destroyed) {\n throw new Error('Transport destroyed');\n }\n var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug);\n _this13.pageCache[pageIndex] = page;\n return page;\n });\n this.pagePromises[pageIndex] = promise;\n return promise;\n }\n }, {\n key: 'getPageIndex',\n value: function getPageIndex(ref) {\n return this.messageHandler.sendWithPromise('GetPageIndex', { ref: ref }).catch(function (reason) {\n return Promise.reject(new Error(reason));\n });\n }\n }, {\n key: 'getAnnotations',\n value: function getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise('GetAnnotations', {\n pageIndex: pageIndex,\n intent: intent\n });\n }\n }, {\n key: 'getDestinations',\n value: function getDestinations() {\n return this.messageHandler.sendWithPromise('GetDestinations', null);\n }\n }, {\n key: 'getDestination',\n value: function getDestination(id) {\n if (typeof id !== 'string') {\n return Promise.reject(new Error('Invalid destination request.'));\n }\n return this.messageHandler.sendWithPromise('GetDestination', { id: id });\n }\n }, {\n key: 'getPageLabels',\n value: function getPageLabels() {\n return this.messageHandler.sendWithPromise('GetPageLabels', null);\n }\n }, {\n key: 'getPageMode',\n value: function getPageMode() {\n return this.messageHandler.sendWithPromise('GetPageMode', null);\n }\n }, {\n key: 'getAttachments',\n value: function getAttachments() {\n return this.messageHandler.sendWithPromise('GetAttachments', null);\n }\n }, {\n key: 'getJavaScript',\n value: function getJavaScript() {\n return this.messageHandler.sendWithPromise('GetJavaScript', null);\n }\n }, {\n key: 'getOutline',\n value: function getOutline() {\n return this.messageHandler.sendWithPromise('GetOutline', null);\n }\n }, {\n key: 'getPermissions',\n value: function getPermissions() {\n return this.messageHandler.sendWithPromise('GetPermissions', null);\n }\n }, {\n key: 'getMetadata',\n value: function getMetadata() {\n var _this14 = this;\n\n return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null\n };\n });\n }\n }, {\n key: 'getStats',\n value: function getStats() {\n return this.messageHandler.sendWithPromise('GetStats', null);\n }\n }, {\n key: 'startCleanup',\n value: function startCleanup() {\n var _this15 = this;\n\n this.messageHandler.sendWithPromise('Cleanup', null).then(function () {\n for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) {\n var page = _this15.pageCache[i];\n if (page) {\n page.cleanup();\n }\n }\n _this15.commonObjs.clear();\n _this15.fontLoader.clear();\n });\n }\n }, {\n key: 'loadingParams',\n get: function get() {\n var params = this._params;\n return (0, _util.shadow)(this, 'loadingParams', {\n disableAutoFetch: params.disableAutoFetch,\n disableCreateObjectURL: params.disableCreateObjectURL,\n disableFontFace: params.disableFontFace,\n nativeImageDecoderSupport: params.nativeImageDecoderSupport\n });\n }\n }]);\n\n return WorkerTransport;\n}();\n\nvar PDFObjects = function PDFObjectsClosure() {\n function PDFObjects() {\n this.objs = Object.create(null);\n }\n PDFObjects.prototype = {\n ensureObj: function PDFObjects_ensureObj(objId) {\n if (this.objs[objId]) {\n return this.objs[objId];\n }\n var obj = {\n capability: (0, _util.createPromiseCapability)(),\n data: null,\n resolved: false\n };\n this.objs[objId] = obj;\n return obj;\n },\n get: function PDFObjects_get(objId, callback) {\n if (callback) {\n this.ensureObj(objId).capability.promise.then(callback);\n return null;\n }\n var obj = this.objs[objId];\n if (!obj || !obj.resolved) {\n throw new Error('Requesting object that isn\\'t resolved yet ' + objId);\n }\n return obj.data;\n },\n resolve: function PDFObjects_resolve(objId, data) {\n var obj = this.ensureObj(objId);\n obj.resolved = true;\n obj.data = data;\n obj.capability.resolve(data);\n },\n isResolved: function PDFObjects_isResolved(objId) {\n var objs = this.objs;\n if (!objs[objId]) {\n return false;\n }\n return objs[objId].resolved;\n },\n hasData: function PDFObjects_hasData(objId) {\n return this.isResolved(objId);\n },\n getData: function PDFObjects_getData(objId) {\n var objs = this.objs;\n if (!objs[objId] || !objs[objId].resolved) {\n return null;\n }\n return objs[objId].data;\n },\n clear: function PDFObjects_clear() {\n this.objs = Object.create(null);\n }\n };\n return PDFObjects;\n}();\nvar RenderTask = function RenderTaskClosure() {\n function RenderTask(internalRenderTask) {\n this._internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n RenderTask.prototype = {\n get promise() {\n return this._internalRenderTask.capability.promise;\n },\n cancel: function RenderTask_cancel() {\n this._internalRenderTask.cancel();\n },\n then: function RenderTask_then(onFulfilled, onRejected) {\n return this.promise.then.apply(this.promise, arguments);\n }\n };\n return RenderTask;\n}();\nvar InternalRenderTask = function InternalRenderTaskClosure() {\n var canvasInRendering = new WeakMap();\n function InternalRenderTask(callback, params, objs, commonObjs, operatorList, pageNumber, canvasFactory, webGLContext) {\n var pdfBug = arguments.length > 8 && arguments[8] !== undefined ? arguments[8] : false;\n\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this.pageNumber = pageNumber;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this._pdfBug = pdfBug;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this.useRequestAnimationFrame = false;\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n InternalRenderTask.prototype = {\n initializeGraphics: function initializeGraphics(transparency) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (canvasInRendering.has(this._canvas)) {\n throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');\n }\n canvasInRendering.set(this._canvas, this);\n }\n if (this._pdfBug && _global_scope2.default.StepperManager && _global_scope2.default.StepperManager.enabled) {\n this.stepper = _global_scope2.default.StepperManager.create(this.pageNumber - 1);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n var params = this.params;\n this.gfx = new _canvas.CanvasGraphics(params.canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, params.imageLayer);\n this.gfx.beginDrawing({\n transform: params.transform,\n viewport: params.viewport,\n transparency: transparency,\n background: params.background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n },\n\n cancel: function InternalRenderTask_cancel() {\n this.running = false;\n this.cancelled = true;\n if (this._canvas) {\n canvasInRendering.delete(this._canvas);\n }\n this.callback(new _dom_utils.RenderingCancelledException('Rendering cancelled, page ' + this.pageNumber, 'canvas'));\n },\n operatorListChanged: function InternalRenderTask_operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n return;\n }\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n if (this.running) {\n return;\n }\n this._continue();\n },\n _continue: function InternalRenderTask__continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n },\n _scheduleNext: function InternalRenderTask__scheduleNext() {\n var _this16 = this;\n\n if (this.useRequestAnimationFrame && typeof window !== 'undefined') {\n window.requestAnimationFrame(function () {\n _this16._nextBound().catch(_this16.callback);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this.callback);\n }\n },\n _next: function InternalRenderTask__next() {\n var _this17 = this;\n\n return new Promise(function () {\n if (_this17.cancelled) {\n return;\n }\n _this17.operatorListIdx = _this17.gfx.executeOperatorList(_this17.operatorList, _this17.operatorListIdx, _this17._continueBound, _this17.stepper);\n if (_this17.operatorListIdx === _this17.operatorList.argsArray.length) {\n _this17.running = false;\n if (_this17.operatorList.lastChunk) {\n _this17.gfx.endDrawing();\n if (_this17._canvas) {\n canvasInRendering.delete(_this17._canvas);\n }\n _this17.callback();\n }\n }\n });\n }\n };\n return InternalRenderTask;\n}();\nvar version, build;\n{\n exports.version = version = '2.0.943';\n exports.build = build = 'dc98bf76';\n}\nexports.getDocument = getDocument;\nexports.LoopbackPort = LoopbackPort;\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\nexports.PDFWorker = PDFWorker;\nexports.PDFDocumentProxy = PDFDocumentProxy;\nexports.PDFPageProxy = PDFPageProxy;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = version;\nexports.build = build;\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.loadScript = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.getFilenameFromUrl = exports.addLinkAttributes = exports.RenderingCancelledException = exports.PageViewport = 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__(1);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar DEFAULT_LINK_REL = 'noopener noreferrer nofollow';\nvar SVG_NS = 'http://www.w3.org/2000/svg';\n\nvar DOMCanvasFactory = function () {\n function DOMCanvasFactory() {\n _classCallCheck(this, DOMCanvasFactory);\n }\n\n _createClass(DOMCanvasFactory, [{\n key: 'create',\n value: function create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\n }\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n canvas.width = width;\n canvas.height = height;\n return {\n canvas: canvas,\n context: context\n };\n }\n }, {\n key: 'reset',\n value: function reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error('canvas is not specified');\n }\n if (width <= 0 || height <= 0) {\n throw new Error('invalid canvas size');\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n }, {\n key: 'destroy',\n value: function destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error('canvas is not specified');\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n }]);\n\n return DOMCanvasFactory;\n}();\n\nvar DOMCMapReaderFactory = function () {\n function DOMCMapReaderFactory(_ref) {\n var _ref$baseUrl = _ref.baseUrl,\n baseUrl = _ref$baseUrl === undefined ? null : _ref$baseUrl,\n _ref$isCompressed = _ref.isCompressed,\n isCompressed = _ref$isCompressed === undefined ? false : _ref$isCompressed;\n\n _classCallCheck(this, DOMCMapReaderFactory);\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n _createClass(DOMCMapReaderFactory, [{\n key: 'fetch',\n value: function fetch(_ref2) {\n var _this = this;\n\n var name = _ref2.name;\n\n if (!this.baseUrl) {\n return Promise.reject(new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.'));\n }\n if (!name) {\n return Promise.reject(new Error('CMap name must be specified.'));\n }\n return new Promise(function (resolve, reject) {\n var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : '');\n var request = new XMLHttpRequest();\n request.open('GET', url, true);\n if (_this.isCompressed) {\n request.responseType = 'arraybuffer';\n }\n request.onreadystatechange = function () {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n var data = void 0;\n if (_this.isCompressed && request.response) {\n data = new Uint8Array(request.response);\n } else if (!_this.isCompressed && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n if (data) {\n resolve({\n cMapData: data,\n compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE\n });\n return;\n }\n }\n reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url));\n };\n request.send(null);\n });\n }\n }]);\n\n return DOMCMapReaderFactory;\n}();\n\nvar DOMSVGFactory = function () {\n function DOMSVGFactory() {\n _classCallCheck(this, DOMSVGFactory);\n }\n\n _createClass(DOMSVGFactory, [{\n key: 'create',\n value: function create(width, height) {\n (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions');\n var svg = document.createElementNS(SVG_NS, 'svg:svg');\n svg.setAttribute('version', '1.1');\n svg.setAttribute('width', width + 'px');\n svg.setAttribute('height', height + 'px');\n svg.setAttribute('preserveAspectRatio', 'none');\n svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);\n return svg;\n }\n }, {\n key: 'createElement',\n value: function createElement(type) {\n (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type');\n return document.createElementNS(SVG_NS, type);\n }\n }]);\n\n return DOMSVGFactory;\n}();\n\nvar PageViewport = function () {\n function PageViewport(_ref3) {\n var viewBox = _ref3.viewBox,\n scale = _ref3.scale,\n rotation = _ref3.rotation,\n _ref3$offsetX = _ref3.offsetX,\n offsetX = _ref3$offsetX === undefined ? 0 : _ref3$offsetX,\n _ref3$offsetY = _ref3.offsetY,\n offsetY = _ref3$offsetY === undefined ? 0 : _ref3$offsetY,\n _ref3$dontFlip = _ref3.dontFlip,\n dontFlip = _ref3$dontFlip === undefined ? false : _ref3$dontFlip;\n\n _classCallCheck(this, PageViewport);\n\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n var centerX = (viewBox[2] + viewBox[0]) / 2;\n var centerY = (viewBox[3] + viewBox[1]) / 2;\n var rotateA = void 0,\n rotateB = void 0,\n rotateC = void 0,\n rotateD = void 0;\n rotation = rotation % 360;\n rotation = rotation < 0 ? rotation + 360 : rotation;\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n default:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n var offsetCanvasX = void 0,\n offsetCanvasY = void 0;\n var width = void 0,\n height = void 0;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n _createClass(PageViewport, [{\n key: 'clone',\n value: function clone() {\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref4$scale = _ref4.scale,\n scale = _ref4$scale === undefined ? this.scale : _ref4$scale,\n _ref4$rotation = _ref4.rotation,\n rotation = _ref4$rotation === undefined ? this.rotation : _ref4$rotation,\n _ref4$dontFlip = _ref4.dontFlip,\n dontFlip = _ref4$dontFlip === undefined ? false : _ref4$dontFlip;\n\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale: scale,\n rotation: rotation,\n offsetX: this.offsetX,\n offsetY: this.offsetY,\n dontFlip: dontFlip\n });\n }\n }, {\n key: 'convertToViewportPoint',\n value: function convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n }, {\n key: 'convertToViewportRectangle',\n value: function convertToViewportRectangle(rect) {\n var tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n return [tl[0], tl[1], br[0], br[1]];\n }\n }, {\n key: 'convertToPdfPoint',\n value: function convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n }]);\n\n return PageViewport;\n}();\n\nvar RenderingCancelledException = function RenderingCancelledException() {\n function RenderingCancelledException(msg, type) {\n this.message = msg;\n this.type = type;\n }\n RenderingCancelledException.prototype = new Error();\n RenderingCancelledException.prototype.name = 'RenderingCancelledException';\n RenderingCancelledException.constructor = RenderingCancelledException;\n return RenderingCancelledException;\n}();\nvar LinkTarget = {\n NONE: 0,\n SELF: 1,\n BLANK: 2,\n PARENT: 3,\n TOP: 4\n};\nvar LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];\nfunction addLinkAttributes(link) {\n var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n url = _ref5.url,\n target = _ref5.target,\n rel = _ref5.rel;\n\n link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : '';\n if (url) {\n var LinkTargetValues = Object.values(LinkTarget);\n var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE;\n link.target = LinkTargetStringMap[targetIndex];\n link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL;\n }\n}\nfunction getFilenameFromUrl(url) {\n var anchor = url.indexOf('#');\n var query = url.indexOf('?');\n var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf('/', end) + 1, end);\n}\n\nvar StatTimer = function () {\n function StatTimer() {\n var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n _classCallCheck(this, StatTimer);\n\n this.enabled = !!enable;\n this.started = Object.create(null);\n this.times = [];\n }\n\n _createClass(StatTimer, [{\n key: 'time',\n value: function time(name) {\n if (!this.enabled) {\n return;\n }\n if (name in this.started) {\n (0, _util.warn)('Timer is already running for ' + name);\n }\n this.started[name] = Date.now();\n }\n }, {\n key: 'timeEnd',\n value: function timeEnd(name) {\n if (!this.enabled) {\n return;\n }\n if (!(name in this.started)) {\n (0, _util.warn)('Timer has not been started for ' + name);\n }\n this.times.push({\n 'name': name,\n 'start': this.started[name],\n 'end': Date.now()\n });\n delete this.started[name];\n }\n }, {\n key: 'toString',\n value: function toString() {\n var times = this.times;\n var out = '',\n longest = 0;\n for (var i = 0, ii = times.length; i < ii; ++i) {\n var name = times[i]['name'];\n if (name.length > longest) {\n longest = name.length;\n }\n }\n for (var _i = 0, _ii = times.length; _i < _ii; ++_i) {\n var span = times[_i];\n var duration = span.end - span.start;\n out += span['name'].padEnd(longest) + ' ' + duration + 'ms\\n';\n }\n return out;\n }\n }]);\n\n return StatTimer;\n}();\n\nvar DummyStatTimer = function () {\n function DummyStatTimer() {\n _classCallCheck(this, DummyStatTimer);\n\n (0, _util.unreachable)('Cannot initialize DummyStatTimer.');\n }\n\n _createClass(DummyStatTimer, null, [{\n key: 'time',\n value: function time(name) {}\n }, {\n key: 'timeEnd',\n value: function timeEnd(name) {}\n }, {\n key: 'toString',\n value: function toString() {\n return '';\n }\n }]);\n\n return DummyStatTimer;\n}();\n\nfunction loadScript(src) {\n return new Promise(function (resolve, reject) {\n var script = document.createElement('script');\n script.src = src;\n script.onload = resolve;\n script.onerror = function () {\n reject(new Error('Cannot load script at: ' + script.src));\n };\n (document.head || document.documentElement).appendChild(script);\n });\n}\nexports.PageViewport = PageViewport;\nexports.RenderingCancelledException = RenderingCancelledException;\nexports.addLinkAttributes = addLinkAttributes;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.LinkTarget = LinkTarget;\nexports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;\nexports.DOMCanvasFactory = DOMCanvasFactory;\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\nexports.DOMSVGFactory = DOMSVGFactory;\nexports.StatTimer = StatTimer;\nexports.DummyStatTimer = DummyStatTimer;\nexports.loadScript = loadScript;\n\n/***/ }),\n/* 131 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.FontLoader = exports.FontFaceObject = 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__(1);\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 BaseFontLoader = function () {\n function BaseFontLoader(docId) {\n _classCallCheck(this, BaseFontLoader);\n\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)('Cannot initialize BaseFontLoader.');\n }\n this.docId = docId;\n this.nativeFontFaces = [];\n this.styleElement = null;\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n }\n\n _createClass(BaseFontLoader, [{\n key: 'addNativeFontFace',\n value: function addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n document.fonts.add(nativeFontFace);\n }\n }, {\n key: 'insertRule',\n value: function insertRule(rule) {\n var styleElement = this.styleElement;\n if (!styleElement) {\n styleElement = this.styleElement = document.createElement('style');\n styleElement.id = 'PDFJS_FONT_STYLE_TAG_' + this.docId;\n document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);\n }\n var styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n }, {\n key: 'clear',\n value: function clear() {\n this.nativeFontFaces.forEach(function (nativeFontFace) {\n document.fonts.delete(nativeFontFace);\n });\n this.nativeFontFaces.length = 0;\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n }, {\n key: 'bind',\n value: function bind(fonts, callback) {\n var rules = [];\n var fontsToLoad = [];\n var fontLoadPromises = [];\n var getNativeFontPromise = function getNativeFontPromise(nativeFontFace) {\n return nativeFontFace.loaded.catch(function (reason) {\n (0, _util.warn)('Failed to load font \"' + nativeFontFace.family + '\": ' + reason);\n });\n };\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = fonts[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var font = _step.value;\n\n if (font.attached || font.missingFile) {\n continue;\n }\n font.attached = true;\n if (this.isFontLoadingAPISupported) {\n var nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n fontLoadPromises.push(getNativeFontPromise(nativeFontFace));\n }\n } else {\n var rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n rules.push(rule);\n fontsToLoad.push(font);\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n var request = this._queueLoadingCallback(callback);\n if (this.isFontLoadingAPISupported) {\n Promise.all(fontLoadPromises).then(request.complete);\n } else if (rules.length > 0 && !this.isSyncFontLoadingSupported) {\n this._prepareFontLoadEvent(rules, fontsToLoad, request);\n } else {\n request.complete();\n }\n }\n }, {\n key: '_queueLoadingCallback',\n value: function _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');\n request.done = true;\n while (context.requests.length > 0 && context.requests[0].done) {\n var otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n var context = this.loadingContext;\n var request = {\n id: 'pdfjs-font-loading-' + context.nextRequestId++,\n done: false,\n complete: completeRequest,\n callback: callback\n };\n context.requests.push(request);\n return request;\n }\n }, {\n key: '_prepareFontLoadEvent',\n value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');\n }\n }, {\n key: 'isFontLoadingAPISupported',\n get: function get() {\n (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');\n }\n }, {\n key: 'isSyncFontLoadingSupported',\n get: function get() {\n (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');\n }\n }, {\n key: '_loadTestFont',\n get: function get() {\n (0, _util.unreachable)('Abstract method `_loadTestFont`.');\n }\n }]);\n\n return BaseFontLoader;\n}();\n\nvar FontLoader = void 0;\n{\n exports.FontLoader = FontLoader = function (_BaseFontLoader) {\n _inherits(GenericFontLoader, _BaseFontLoader);\n\n function GenericFontLoader(docId) {\n _classCallCheck(this, GenericFontLoader);\n\n var _this = _possibleConstructorReturn(this, (GenericFontLoader.__proto__ || Object.getPrototypeOf(GenericFontLoader)).call(this, docId));\n\n _this.loadTestFontId = 0;\n return _this;\n }\n\n _createClass(GenericFontLoader, [{\n key: '_prepareFontLoadEvent',\n value: function _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n var chunk1 = s.substring(0, offset);\n var chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n var i = void 0,\n ii = void 0;\n var canvas = document.createElement('canvas');\n canvas.width = 1;\n canvas.height = 1;\n var ctx = canvas.getContext('2d');\n var called = 0;\n function isFontReady(name, callback) {\n called++;\n if (called > 30) {\n (0, _util.warn)('Load test font never loaded.');\n callback();\n return;\n }\n ctx.font = '30px ' + name;\n ctx.fillText('.', 0, 20);\n var imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n var loadTestFontId = 'lt' + Date.now() + this.loadTestFontId++;\n var data = this._loadTestFont;\n var COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n var CFF_CHECKSUM_OFFSET = 16;\n var XXXX_VALUE = 0x58585858;\n var checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n var url = 'url(data:font/opentype;base64,' + btoa(data) + ');';\n var rule = '@font-face {font-family:\"' + loadTestFontId + '\";src:' + url + '}';\n this.insertRule(rule);\n var names = [];\n for (i = 0, ii = fonts.length; i < ii; i++) {\n names.push(fonts[i].loadedName);\n }\n names.push(loadTestFontId);\n var div = document.createElement('div');\n div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');\n for (i = 0, ii = names.length; i < ii; ++i) {\n var span = document.createElement('span');\n span.textContent = 'Hi';\n span.style.fontFamily = names[i];\n div.appendChild(span);\n }\n document.body.appendChild(div);\n isFontReady(loadTestFontId, function () {\n document.body.removeChild(div);\n request.complete();\n });\n }\n }, {\n key: 'isFontLoadingAPISupported',\n get: function get() {\n var supported = typeof document !== 'undefined' && !!document.fonts;\n if (supported && typeof navigator !== 'undefined') {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] < 63) {\n supported = false;\n }\n }\n return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);\n }\n }, {\n key: 'isSyncFontLoadingSupported',\n get: function get() {\n var supported = false;\n if (typeof navigator === 'undefined') {\n supported = true;\n } else {\n var m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n if (m && m[1] >= 14) {\n supported = true;\n }\n }\n return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);\n }\n }, {\n key: '_loadTestFont',\n get: function get() {\n var getLoadTestFont = function getLoadTestFont() {\n return atob('T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA' + 'FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA' + 'ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA' + 'AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1' + 'AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD' + '6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM' + 'AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D' + 'IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA' + 'AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA' + 'AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB' + 'AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY' + 'AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA' + 'AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' + 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA' + 'AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC' + 'AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3' + 'Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj' + 'FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==');\n };\n return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());\n }\n }]);\n\n return GenericFontLoader;\n }(BaseFontLoader);\n}\nvar IsEvalSupportedCached = {\n get value() {\n return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());\n }\n};\n\nvar FontFaceObject = function () {\n function FontFaceObject(translatedData, _ref) {\n var _ref$isEvalSupported = _ref.isEvalSupported,\n isEvalSupported = _ref$isEvalSupported === undefined ? true : _ref$isEvalSupported,\n _ref$disableFontFace = _ref.disableFontFace,\n disableFontFace = _ref$disableFontFace === undefined ? false : _ref$disableFontFace,\n _ref$ignoreErrors = _ref.ignoreErrors,\n ignoreErrors = _ref$ignoreErrors === undefined ? false : _ref$ignoreErrors,\n _ref$onUnsupportedFea = _ref.onUnsupportedFeature,\n onUnsupportedFeature = _ref$onUnsupportedFea === undefined ? null : _ref$onUnsupportedFea,\n _ref$fontRegistry = _ref.fontRegistry,\n fontRegistry = _ref$fontRegistry === undefined ? null : _ref$fontRegistry;\n\n _classCallCheck(this, FontFaceObject);\n\n this.compiledGlyphs = Object.create(null);\n for (var i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n _createClass(FontFaceObject, [{\n key: 'createNativeFontFace',\n value: function createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n var nativeFontFace = new FontFace(this.loadedName, this.data, {});\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n return nativeFontFace;\n }\n }, {\n key: 'createFontFaceRule',\n value: function createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n var data = (0, _util.bytesToString)(new Uint8Array(this.data));\n var url = 'url(data:' + this.mimetype + ';base64,' + btoa(data) + ');';\n var rule = '@font-face {font-family:\"' + this.loadedName + '\";src:' + url + '}';\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n return rule;\n }\n }, {\n key: 'getPathGenerator',\n value: function getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n var cmds = void 0,\n current = void 0;\n try {\n cmds = objs.get(this.loadedName + '_path_' + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n if (this._onUnsupportedFeature) {\n this._onUnsupportedFeature({ featureId: _util.UNSUPPORTED_FEATURES.font });\n }\n (0, _util.warn)('getPathGenerator - ignoring character: \"' + ex + '\".');\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n if (this.isEvalSupported && IsEvalSupportedCached.value) {\n var args = void 0,\n js = '';\n for (var i = 0, ii = cmds.length; i < ii; i++) {\n current = cmds[i];\n if (current.args !== undefined) {\n args = current.args.join(',');\n } else {\n args = '';\n }\n js += 'c.' + current.cmd + '(' + args + ');\\n';\n }\n return this.compiledGlyphs[character] = new Function('c', 'size', js);\n }\n return this.compiledGlyphs[character] = function (c, size) {\n for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {\n current = cmds[_i];\n if (current.cmd === 'scale') {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n }]);\n\n return FontFaceObject;\n}();\n\nexports.FontFaceObject = FontFaceObject;\nexports.FontLoader = FontLoader;\n\n/***/ }),\n/* 132 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar compatibilityParams = Object.create(null);\n{\n var isNodeJS = __w_pdfjs_require__(4);\n var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';\n var isIE = /Trident/.test(userAgent);\n var isIOSChrome = /CriOS/.test(userAgent);\n (function checkOnBlobSupport() {\n if (isIE || isIOSChrome) {\n compatibilityParams.disableCreateObjectURL = true;\n }\n })();\n (function checkFontFaceAndImage() {\n if (isNodeJS()) {\n compatibilityParams.disableFontFace = true;\n compatibilityParams.nativeImageDecoderSupport = 'none';\n }\n })();\n}\nexports.apiCompatibilityParams = Object.freeze(compatibilityParams);\n\n/***/ }),\n/* 133 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.CanvasGraphics = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _pattern_helper = __w_pdfjs_require__(134);\n\nvar MIN_FONT_SIZE = 16;\nvar MAX_FONT_SIZE = 100;\nvar MAX_GROUP_SIZE = 4096;\nvar MIN_WIDTH_FACTOR = 0.65;\nvar COMPILE_TYPE3_GLYPHS = true;\nvar MAX_SIZE_TO_COMPILE = 1000;\nvar FULL_CHUNK_HEIGHT = 16;\nvar IsLittleEndianCached = {\n get value() {\n return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)());\n }\n};\nfunction addContextCurrentTransform(ctx) {\n if (!ctx.mozCurrentTransform) {\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n Object.defineProperty(ctx, 'mozCurrentTransform', {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, 'mozCurrentTransformInverse', {\n get: function getCurrentTransformInverse() {\n var m = this._transformMatrix;\n var a = m[0],\n b = m[1],\n c = m[2],\n d = m[3],\n e = m[4],\n f = m[5];\n var ad_bc = a * d - b * c;\n var bc_ad = b * c - a * d;\n return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];\n }\n });\n ctx.save = function ctxSave() {\n var old = this._transformMatrix;\n this._transformStack.push(old);\n this._transformMatrix = old.slice(0, 6);\n this._originalSave();\n };\n ctx.restore = function ctxRestore() {\n var prev = this._transformStack.pop();\n if (prev) {\n this._transformMatrix = prev;\n this._originalRestore();\n }\n };\n ctx.translate = function ctxTranslate(x, y) {\n var m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n this._originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n var m = this._transformMatrix;\n m[0] = m[0] * x;\n m[1] = m[1] * x;\n m[2] = m[2] * y;\n m[3] = m[3] * y;\n this._originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];\n ctx._originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n ctx.rotate = function ctxRotate(angle) {\n var cosValue = Math.cos(angle);\n var sinValue = Math.sin(angle);\n var m = this._transformMatrix;\n this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];\n this._originalRotate(angle);\n };\n }\n}\nvar CachedCanvases = function CachedCanvasesClosure() {\n function CachedCanvases(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n CachedCanvases.prototype = {\n getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {\n var canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n return canvasEntry;\n },\n clear: function clear() {\n for (var id in this.cache) {\n var canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n };\n return CachedCanvases;\n}();\nfunction compileType3Glyph(imgData) {\n var POINT_TO_PROCESS_LIMIT = 1000;\n var width = imgData.width,\n height = imgData.height;\n var i,\n j,\n j0,\n width1 = width + 1;\n var points = new Uint8Array(width1 * (height + 1));\n var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n var lineSize = width + 7 & ~7,\n data0 = imgData.data;\n var data = new Uint8Array(lineSize * height),\n pos = 0,\n ii;\n for (i = 0, ii = data0.length; i < ii; i++) {\n var mask = 128,\n elem = data0[i];\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n var count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n var outlines = [];\n for (i = 0; count && i <= height; i++) {\n var p = i * width1;\n var end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n var coords = [p % width1, i];\n var type = points[p],\n p0 = p,\n pp;\n do {\n var step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n coords.push(p % width1);\n coords.push(p / width1 | 0);\n --count;\n } while (p0 !== p);\n outlines.push(coords);\n --i;\n }\n var drawOutline = function drawOutline(c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.beginPath();\n for (var i = 0, ii = outlines.length; i < ii; i++) {\n var o = outlines[i];\n c.moveTo(o[0], o[1]);\n for (var j = 2, jj = o.length; j < jj; j += 2) {\n c.lineTo(o[j], o[j + 1]);\n }\n }\n c.fill();\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nvar CanvasExtraState = function CanvasExtraStateClosure() {\n function CanvasExtraState() {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = '#000000';\n this.strokeColor = '#000000';\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.resumeSMaskCtx = null;\n }\n CanvasExtraState.prototype = {\n clone: function CanvasExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return CanvasExtraState;\n}();\nvar CanvasGraphics = function CanvasGraphicsClosure() {\n var EXECUTION_TIME = 15;\n var EXECUTION_STEPS = 10;\n function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState();\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.webGLContext = webGLContext;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n this._cachedGetSinglePixelWidth = null;\n }\n function putBinaryImageData(ctx, imgData) {\n if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0,\n destPos;\n var src = imgData.data;\n var dest = chunkImgData.data;\n var i, j, thisChunkHeight, elemsInThisChunk;\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n var srcLength = src.byteLength;\n var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n var dest32DataLength = dest32.length;\n var fullSrcDiff = width + 7 >> 3;\n var white = 0xFFFFFFFF;\n var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n var srcDiff = srcLength - srcPos;\n var k = 0;\n var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n var kEndUnrolled = kEnd & ~7;\n var mask = 0;\n var srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error('bad image kind: ' + imgData.kind);\n }\n }\n function putBinaryImageMask(ctx, imgData) {\n var height = imgData.height,\n width = imgData.width;\n var partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n var srcPos = 0;\n var src = imgData.data;\n var dest = chunkImgData.data;\n for (var i = 0; i < totalChunks; i++) {\n var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n var destPos = 3;\n for (var j = 0; j < thisChunkHeight; j++) {\n var mask = 0;\n for (var k = 0; k < width; k++) {\n if (!mask) {\n var elem = src[srcPos++];\n mask = 128;\n }\n dest[destPos] = elem & mask ? 0 : 255;\n destPos += 4;\n mask >>= 1;\n }\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n }\n function copyCtxState(sourceCtx, destCtx) {\n var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font'];\n for (var i = 0, ii = properties.length; i < ii; i++) {\n var property = properties[i];\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n }\n function resetCtxToDefault(ctx) {\n ctx.strokeStyle = '#000000';\n ctx.fillStyle = '#000000';\n ctx.fillRule = 'nonzero';\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = 'source-over';\n ctx.font = '10px sans-serif';\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n }\n function composeSMaskBackdrop(bytes, r0, g0, b0) {\n var length = bytes.length;\n for (var i = 3; i < length; i += 4) {\n var alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n var alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n }\n function composeSMaskAlpha(maskData, layerData, transferMap) {\n var length = maskData.length;\n var scale = 1 / 255;\n for (var i = 3; i < length; i += 4) {\n var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n }\n function composeSMaskLuminosity(maskData, layerData, transferMap) {\n var length = maskData.length;\n for (var i = 3; i < length; i += 4) {\n var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n }\n function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {\n var hasBackdrop = !!backdrop;\n var r0 = hasBackdrop ? backdrop[0] : 0;\n var g0 = hasBackdrop ? backdrop[1] : 0;\n var b0 = hasBackdrop ? backdrop[2] : 0;\n var composeFn;\n if (subtype === 'Luminosity') {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n var PIXELS_TO_PROCESS = 1048576;\n var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (var row = 0; row < height; row += chunkSize) {\n var chunkHeight = Math.min(chunkSize, height - row);\n var maskData = maskCtx.getImageData(0, row, width, chunkHeight);\n var layerData = layerCtx.getImageData(0, row, width, chunkHeight);\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n maskCtx.putImageData(layerData, 0, row);\n }\n }\n function composeSMask(ctx, smask, layerCtx, webGLContext) {\n var mask = smask.canvas;\n var maskCtx = smask.context;\n ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);\n var backdrop = smask.backdrop || null;\n if (!smask.transferMap && webGLContext.isEnabled) {\n var composed = webGLContext.composeSMask({\n layer: layerCtx.canvas,\n mask: mask,\n properties: {\n subtype: smask.subtype,\n backdrop: backdrop\n }\n });\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(composed, smask.offsetX, smask.offsetY);\n return;\n }\n genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);\n ctx.drawImage(mask, 0, 0);\n }\n var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n var NORMAL_CLIP = {};\n var EO_CLIP = {};\n CanvasGraphics.prototype = {\n beginDrawing: function beginDrawing(_ref) {\n var transform = _ref.transform,\n viewport = _ref.viewport,\n transparency = _ref.transparency,\n _ref$background = _ref.background,\n background = _ref$background === undefined ? null : _ref$background;\n\n var width = this.ctx.canvas.width;\n var height = this.ctx.canvas.height;\n this.ctx.save();\n this.ctx.fillStyle = background || 'rgb(255, 255, 255)';\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n if (transparency) {\n var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx);\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n }\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n },\n\n executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var i = executionStartIdx || 0;\n var argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function';\n var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n var steps = 0;\n var commonObjs = this.commonObjs;\n var objs = this.objs;\n var fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n var deps = argsArray[i];\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var depObjId = deps[n];\n var common = depObjId[0] === 'g' && depObjId[1] === '_';\n var objsPool = common ? commonObjs : objs;\n if (!objsPool.isResolved(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n },\n endDrawing: function CanvasGraphics_endDrawing() {\n if (this.current.activeSMask !== null) {\n this.endSMaskGroup();\n }\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n this.cachedCanvases.clear();\n this.webGLContext.clear();\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n },\n setLineWidth: function CanvasGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n },\n setLineCap: function CanvasGraphics_setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function CanvasGraphics_setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n },\n setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {\n var ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n },\n setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {},\n setFlatness: function CanvasGraphics_setFlatness(flatness) {},\n setGState: function CanvasGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'RI':\n this.setRenderingIntent(value);\n break;\n case 'FL':\n this.setFlatness(value);\n break;\n case 'Font':\n this.setFont(value[0], value[1]);\n break;\n case 'CA':\n this.current.strokeAlpha = state[1];\n break;\n case 'ca':\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n case 'BM':\n this.ctx.globalCompositeOperation = value;\n break;\n case 'SMask':\n if (this.current.activeSMask) {\n if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {\n this.suspendSMaskGroup();\n } else {\n this.endSMaskGroup();\n }\n }\n this.current.activeSMask = value ? this.tempSMask : null;\n if (this.current.activeSMask) {\n this.beginSMaskGroup();\n }\n this.tempSMask = null;\n break;\n }\n }\n },\n beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {\n var activeSMask = this.current.activeSMask;\n var drawnWidth = activeSMask.canvas.width;\n var drawnHeight = activeSMask.canvas.height;\n var cacheId = 'smaskGroupAt' + this.groupLevel;\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var currentCtx = this.ctx;\n var currentTransform = currentCtx.mozCurrentTransform;\n this.ctx.save();\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);\n groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n this.ctx.save();\n copyCtxState(groupCtx, this.ctx);\n this.current.resumeSMaskCtx = groupCtx;\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n this.ctx.transform.apply(this.ctx, deltaTransform);\n groupCtx.save();\n groupCtx.setTransform(1, 0, 0, 1, 0, 0);\n groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);\n groupCtx.restore();\n },\n resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.current.resumeSMaskCtx;\n var currentCtx = this.ctx;\n this.ctx = groupCtx;\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n },\n endSMaskGroup: function CanvasGraphics_endSMaskGroup() {\n var groupCtx = this.ctx;\n this.groupLevel--;\n this.ctx = this.groupStack.pop();\n composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);\n this.ctx.restore();\n copyCtxState(groupCtx, this.ctx);\n var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);\n this.ctx.transform.apply(this.ctx, deltaTransform);\n },\n save: function CanvasGraphics_save() {\n this.ctx.save();\n var old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n this.current.resumeSMaskCtx = null;\n },\n restore: function CanvasGraphics_restore() {\n if (this.current.resumeSMaskCtx) {\n this.resumeSMaskGroup();\n }\n if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {\n this.endSMaskGroup();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n this.ctx.restore();\n this.pendingClip = null;\n this._cachedGetSinglePixelWidth = null;\n }\n },\n transform: function CanvasGraphics_transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedGetSinglePixelWidth = null;\n },\n constructPath: function CanvasGraphics_constructPath(ops, args) {\n var ctx = this.ctx;\n var current = this.current;\n var x = current.x,\n y = current.y;\n for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n if (width === 0) {\n width = this.getSinglePixelWidth();\n }\n if (height === 0) {\n height = this.getSinglePixelWidth();\n }\n var xw = x + width;\n var yh = y + height;\n this.ctx.moveTo(x, y);\n this.ctx.lineTo(xw, y);\n this.ctx.lineTo(xw, yh);\n this.ctx.lineTo(x, yh);\n this.ctx.lineTo(x, y);\n this.ctx.closePath();\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n break;\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n j += 6;\n break;\n case _util.OPS.curveTo2:\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n j += 4;\n break;\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n current.setCurrentPoint(x, y);\n },\n closePath: function CanvasGraphics_closePath() {\n this.ctx.closePath();\n },\n stroke: function CanvasGraphics_stroke(consumePath) {\n consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n var ctx = this.ctx;\n var strokeColor = this.current.strokeColor;\n ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);\n ctx.globalAlpha = this.current.strokeAlpha;\n if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n if (consumePath) {\n this.consumePath();\n }\n ctx.globalAlpha = this.current.fillAlpha;\n },\n closeStroke: function CanvasGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n fill: function CanvasGraphics_fill(consumePath) {\n consumePath = typeof consumePath !== 'undefined' ? consumePath : true;\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var needRestore = false;\n if (isPatternFill) {\n ctx.save();\n if (this.baseTransform) {\n ctx.setTransform.apply(ctx, this.baseTransform);\n }\n ctx.fillStyle = fillColor.getPattern(ctx, this);\n needRestore = true;\n }\n if (this.pendingEOFill) {\n ctx.fill('evenodd');\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath();\n }\n },\n eoFill: function CanvasGraphics_eoFill() {\n this.pendingEOFill = true;\n this.fill();\n },\n fillStroke: function CanvasGraphics_fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n },\n eoFillStroke: function CanvasGraphics_eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n },\n closeFillStroke: function CanvasGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n },\n endPath: function CanvasGraphics_endPath() {\n this.consumePath();\n },\n clip: function CanvasGraphics_clip() {\n this.pendingClip = NORMAL_CLIP;\n },\n eoClip: function CanvasGraphics_eoClip() {\n this.pendingClip = EO_CLIP;\n },\n beginText: function CanvasGraphics_beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n endText: function CanvasGraphics_endText() {\n var paths = this.pendingTextPaths;\n var ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (var i = 0; i < paths.length; i++) {\n var path = paths[i];\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n },\n setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n },\n setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n },\n setHScale: function CanvasGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setLeading: function CanvasGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setFont: function CanvasGraphics_setFont(fontRefName, size) {\n var fontObj = this.commonObjs.get(fontRefName);\n var current = this.current;\n if (!fontObj) {\n throw new Error('Can\\'t find font for ' + fontRefName);\n }\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)('Invalid font matrix for font ' + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n var name = fontObj.loadedName || 'sans-serif';\n var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal';\n var italic = fontObj.italic ? 'italic' : 'normal';\n var typeface = '\"' + name + '\", ' + fontObj.fallbackName;\n var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;\n this.current.fontSizeScale = size / browserFontSize;\n var rule = italic + ' ' + bold + ' ' + browserFontSize + 'px ' + typeface;\n this.ctx.font = rule;\n },\n setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n },\n setTextRise: function CanvasGraphics_setTextRise(rise) {\n this.current.textRise = rise;\n },\n moveText: function CanvasGraphics_moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n },\n setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.sqrt(a * a + b * b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n },\n nextLine: function CanvasGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n paintChar: function paintChar(character, x, y, patternTransform) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var textRenderingMode = current.textRenderingMode;\n var fontSize = current.fontSize / current.fontSizeScale;\n var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n var patternFill = current.patternFill && font.data;\n var addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n var paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x: x,\n y: y,\n fontSize: fontSize,\n addToPath: addToPath\n });\n }\n },\n\n get isFontSubpixelAAEnabled() {\n var ctx = this.canvasFactory.create(10, 10).context;\n ctx.scale(1.5, 1);\n ctx.fillText('I', 0, 10);\n var data = ctx.getImageData(0, 0, 10, 10).data;\n var enabled = false;\n for (var i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled);\n },\n showText: function CanvasGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n var fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n var ctx = this.ctx;\n var fontSizeScale = current.fontSizeScale;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var spacingDir = vertical ? 1 : -1;\n var defaultVMetrics = font.defaultVMetrics;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n var patternTransform = void 0;\n if (current.patternFill) {\n ctx.save();\n var pattern = current.fillColor.getPattern(ctx, this);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n var lineWidth = current.lineWidth;\n var scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._cachedGetSinglePixelWidth = null;\n lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n var x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n if ((0, _util.isNum)(glyph)) {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n var restoreNeeded = false;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var character = glyph.fontChar;\n var accent = glyph.accent;\n var scaledX, scaledY, scaledAccentX, scaledAccentY;\n var width = glyph.width;\n if (vertical) {\n var vmetric, vx, vy;\n vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n var characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (glyph.isInFont || font.missingFile) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n scaledAccentX = scaledX + accent.offset.x / fontSizeScale;\n scaledAccentY = scaledY - accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n },\n showType3Text: function CanvasGraphics_showType3Text(glyphs) {\n var ctx = this.ctx;\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n var fontDirection = current.fontDirection;\n var spacingDir = font.vertical ? 1 : -1;\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var textHScale = current.textHScale * fontDirection;\n var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n var glyphsLength = glyphs.length;\n var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n var i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if ((0, _util.isNum)(glyph)) {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n (0, _util.warn)('Type3 character \"' + glyph.operatorListId + '\" is not available.');\n continue;\n }\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n },\n setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},\n setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.clip();\n this.endPath();\n },\n getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {\n var _this = this;\n\n var pattern;\n if (IR[0] === 'TilingPattern') {\n var color = IR[1];\n var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n var canvasGraphicsFactory = {\n createCanvasGraphics: function createCanvasGraphics(ctx) {\n return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);\n }\n return pattern;\n },\n setStrokeColorN: function CanvasGraphics_setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n },\n setFillColorN: function CanvasGraphics_setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n },\n setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n },\n setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n },\n shadingFill: function CanvasGraphics_shadingFill(patternIR) {\n var ctx = this.ctx;\n this.save();\n var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);\n ctx.fillStyle = pattern.getPattern(ctx, this, true);\n var inv = ctx.mozCurrentTransformInverse;\n if (inv) {\n var canvas = ctx.canvas;\n var width = canvas.width;\n var height = canvas.height;\n var bl = _util.Util.applyTransform([0, 0], inv);\n var br = _util.Util.applyTransform([0, height], inv);\n var ul = _util.Util.applyTransform([width, 0], inv);\n var ur = _util.Util.applyTransform([width, height], inv);\n var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.restore();\n },\n beginInlineImage: function CanvasGraphics_beginInlineImage() {\n (0, _util.unreachable)('Should not call beginInlineImage');\n },\n beginImageData: function CanvasGraphics_beginImageData() {\n (0, _util.unreachable)('Should not call beginImageData');\n },\n paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n this.baseTransform = this.ctx.mozCurrentTransform;\n if (Array.isArray(bbox) && bbox.length === 4) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.clip();\n this.endPath();\n }\n },\n paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n },\n beginGroup: function CanvasGraphics_beginGroup(group) {\n this.save();\n var currentCtx = this.ctx;\n if (!group.isolated) {\n (0, _util.info)('TODO: Support non-isolated groups.');\n }\n if (group.knockout) {\n (0, _util.warn)('Knockout groups not supported.');\n }\n var currentTransform = currentCtx.mozCurrentTransform;\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n if (!group.bbox) {\n throw new Error('Bounding box is required.');\n }\n var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n var scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n var cacheId = 'groupAt' + this.groupLevel;\n if (group.smask) {\n cacheId += '_smask_' + this.smaskCounter++ % 2;\n }\n var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n var groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX: offsetX,\n offsetY: offsetY,\n scaleX: scaleX,\n scaleY: scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n this.current.activeSMask = null;\n },\n endGroup: function CanvasGraphics_endGroup(group) {\n this.groupLevel--;\n var groupCtx = this.ctx;\n this.ctx = this.groupStack.pop();\n if (this.ctx.imageSmoothingEnabled !== undefined) {\n this.ctx.imageSmoothingEnabled = false;\n } else {\n this.ctx.mozImageSmoothingEnabled = false;\n }\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n } else {\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n }\n this.restore();\n },\n beginAnnotations: function CanvasGraphics_beginAnnotations() {\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n },\n endAnnotations: function CanvasGraphics_endAnnotations() {\n this.restore();\n },\n beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {\n this.save();\n resetCtxToDefault(this.ctx);\n this.current = new CanvasExtraState();\n if (Array.isArray(rect) && rect.length === 4) {\n var width = rect[2] - rect[0];\n var height = rect[3] - rect[1];\n this.ctx.rect(rect[0], rect[1], width, height);\n this.clip();\n this.endPath();\n }\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n },\n endAnnotation: function CanvasGraphics_endAnnotation() {\n this.restore();\n },\n paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {\n var domImage = this.objs.get(objId);\n if (!domImage) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n this.save();\n var ctx = this.ctx;\n ctx.scale(1 / w, -1 / h);\n ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);\n if (this.imageLayer) {\n var currentTransform = ctx.mozCurrentTransformInverse;\n var position = this.getCanvasPosition(0, 0);\n this.imageLayer.appendImage({\n objId: objId,\n left: position[0],\n top: position[1],\n width: w / currentTransform[0],\n height: h / currentTransform[3]\n });\n }\n this.restore();\n },\n paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {\n var ctx = this.ctx;\n var width = img.width,\n height = img.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var glyph = this.processingType3;\n if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {\n if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {\n glyph.compiled = compileType3Glyph({\n data: img.data,\n width: width,\n height: height\n });\n } else {\n glyph.compiled = null;\n }\n }\n if (glyph && glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n this.paintInlineImageXObject(maskCanvas.canvas);\n },\n paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, imgData);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n var ctx = this.ctx;\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n ctx.save();\n ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {\n var ctx = this.ctx;\n var fillColor = this.current.fillColor;\n var isPatternFill = this.current.patternFill;\n for (var i = 0, ii = images.length; i < ii; i++) {\n var image = images[i];\n var width = image.width,\n height = image.height;\n var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);\n var maskCtx = maskCanvas.context;\n maskCtx.save();\n putBinaryImageMask(maskCtx, image);\n maskCtx.globalCompositeOperation = 'source-in';\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, image.transform);\n ctx.scale(1, -1);\n ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n },\n paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n this.paintInlineImageXObject(imgData);\n },\n paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n var width = imgData.width;\n var height = imgData.height;\n var map = [];\n for (var i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n },\n paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {\n var width = imgData.width;\n var height = imgData.height;\n var ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n var currentTransform = ctx.mozCurrentTransformInverse;\n var a = currentTransform[0],\n b = currentTransform[1];\n var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);\n var c = currentTransform[2],\n d = currentTransform[3];\n var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);\n var imgToPaint, tmpCanvas;\n if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n imgToPaint = tmpCanvas.canvas;\n }\n var paintWidth = width,\n paintHeight = height;\n var tmpCanvasId = 'prescale1';\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n var newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n imgToPaint = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';\n }\n ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);\n if (this.imageLayer) {\n var position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: width / currentTransform[0],\n height: height / currentTransform[3]\n });\n }\n this.restore();\n },\n paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {\n var ctx = this.ctx;\n var w = imgData.width;\n var h = imgData.height;\n var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h);\n var tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData);\n for (var i = 0, ii = map.length; i < ii; i++) {\n var entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n if (this.imageLayer) {\n var position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData: imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n ctx.restore();\n }\n },\n paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {\n this.ctx.fillRect(0, 0, 1, 1);\n },\n paintXObject: function CanvasGraphics_paintXObject() {\n (0, _util.warn)('Unsupported \\'paintXObject\\' command.');\n },\n markPoint: function CanvasGraphics_markPoint(tag) {},\n markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},\n beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},\n beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},\n endMarkedContent: function CanvasGraphics_endMarkedContent() {},\n beginCompat: function CanvasGraphics_beginCompat() {},\n endCompat: function CanvasGraphics_endCompat() {},\n consumePath: function CanvasGraphics_consumePath() {\n var ctx = this.ctx;\n if (this.pendingClip) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip('evenodd');\n } else {\n ctx.clip();\n }\n this.pendingClip = null;\n }\n ctx.beginPath();\n },\n getSinglePixelWidth: function getSinglePixelWidth(scale) {\n if (this._cachedGetSinglePixelWidth === null) {\n var inverse = this.ctx.mozCurrentTransformInverse;\n this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));\n }\n return this._cachedGetSinglePixelWidth;\n },\n\n getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {\n var transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n };\n for (var op in _util.OPS) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n return CanvasGraphics;\n}();\nexports.CanvasGraphics = CanvasGraphics;\n\n/***/ }),\n/* 134 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TilingPattern = exports.getShadingPatternFromIR = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar ShadingIRs = {};\nShadingIRs.RadialAxial = {\n fromIR: function RadialAxial_fromIR(raw) {\n var type = raw[1];\n var colorStops = raw[2];\n var p0 = raw[3];\n var p1 = raw[4];\n var r0 = raw[5];\n var r1 = raw[6];\n return {\n type: 'Pattern',\n getPattern: function RadialAxial_getPattern(ctx) {\n var grad;\n if (type === 'axial') {\n grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);\n } else if (type === 'radial') {\n grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);\n }\n for (var i = 0, ii = colorStops.length; i < ii; ++i) {\n var c = colorStops[i];\n grad.addColorStop(c[0], c[1]);\n }\n return grad;\n }\n };\n }\n};\nvar createMeshCanvas = function createMeshCanvasClosure() {\n function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n var coords = context.coords,\n colors = context.colors;\n var bytes = data.data,\n rowSize = data.width * 4;\n var tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n var x1 = (coords[p1] + context.offsetX) * context.scaleX;\n var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n var x2 = (coords[p2] + context.offsetX) * context.scaleX;\n var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n var x3 = (coords[p3] + context.offsetX) * context.scaleX;\n var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n var c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n var c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n var c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n var minY = Math.round(y1),\n maxY = Math.round(y3);\n var xa, car, cag, cab;\n var xb, cbr, cbg, cbb;\n var k;\n for (var y = minY; y <= maxY; y++) {\n if (y < y2) {\n k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n var x1_ = Math.round(Math.min(xa, xb));\n var x2_ = Math.round(Math.max(xa, xb));\n var j = rowSize * y + x1_ * 4;\n for (var x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n k = k < 0 ? 0 : k > 1 ? 1 : k;\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n }\n function drawFigure(data, figure, context) {\n var ps = figure.coords;\n var cs = figure.colors;\n var i, ii;\n switch (figure.type) {\n case 'lattice':\n var verticesPerRow = figure.verticesPerRow;\n var rows = Math.floor(ps.length / verticesPerRow) - 1;\n var cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n var q = i * verticesPerRow;\n for (var j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case 'triangles':\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error('illegal figure');\n }\n }\n function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {\n var EXPECTED_SCALE = 1.1;\n var MAX_PATTERN_SIZE = 3000;\n var BORDER_SIZE = 2;\n var offsetX = Math.floor(bounds[0]);\n var offsetY = Math.floor(bounds[1]);\n var boundsWidth = Math.ceil(bounds[2]) - offsetX;\n var boundsHeight = Math.ceil(bounds[3]) - offsetY;\n var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n var scaleX = boundsWidth / width;\n var scaleY = boundsHeight / height;\n var context = {\n coords: coords,\n colors: colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n var paddedWidth = width + BORDER_SIZE * 2;\n var paddedHeight = height + BORDER_SIZE * 2;\n var canvas, tmpCanvas, i, ii;\n if (webGLContext.isEnabled) {\n canvas = webGLContext.drawFigures({\n width: width,\n height: height,\n backgroundColor: backgroundColor,\n figures: figures,\n context: context\n });\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);\n tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n } else {\n tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);\n var tmpCtx = tmpCanvas.context;\n var data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n var bytes = data.data;\n for (i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (i = 0; i < figures.length; i++) {\n drawFigure(data, figures[i], context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n canvas = tmpCanvas.canvas;\n }\n return {\n canvas: canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n return createMeshCanvas;\n}();\nShadingIRs.Mesh = {\n fromIR: function Mesh_fromIR(raw) {\n var coords = raw[2];\n var colors = raw[3];\n var figures = raw[4];\n var bounds = raw[5];\n var matrix = raw[6];\n var background = raw[8];\n return {\n type: 'Pattern',\n getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {\n var scale;\n if (shadingFill) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n if (matrix) {\n var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);\n if (!shadingFill) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n if (matrix) {\n ctx.transform.apply(ctx, matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');\n }\n };\n }\n};\nShadingIRs.Dummy = {\n fromIR: function Dummy_fromIR() {\n return {\n type: 'Pattern',\n getPattern: function Dummy_fromIR_getPattern() {\n return 'hotpink';\n }\n };\n }\n};\nfunction getShadingPatternFromIR(raw) {\n var shadingIR = ShadingIRs[raw[0]];\n if (!shadingIR) {\n throw new Error('Unknown IR type: ' + raw[0]);\n }\n return shadingIR.fromIR(raw);\n}\nvar TilingPattern = function TilingPatternClosure() {\n var PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n };\n var MAX_PATTERN_SIZE = 3000;\n function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n this.type = 'Pattern';\n this.ctx = ctx;\n }\n TilingPattern.prototype = {\n createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {\n var operatorList = this.operatorList;\n var bbox = this.bbox;\n var xstep = this.xstep;\n var ystep = this.ystep;\n var paintType = this.paintType;\n var tilingType = this.tilingType;\n var color = this.color;\n var canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)('TilingType: ' + tilingType);\n var x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n var topLeft = [x0, y0];\n var botRight = [x0 + xstep, y0 + ystep];\n var width = botRight[0] - topLeft[0];\n var height = botRight[1] - topLeft[1];\n var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE);\n height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE);\n var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true);\n var tmpCtx = tmpCanvas.context;\n var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n this.setScale(width, height, xstep, ystep);\n this.transformToScale(graphics);\n var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];\n graphics.transform.apply(graphics, tmpTranslate);\n this.clipBbox(graphics, bbox, x0, y0, x1, y1);\n graphics.executeOperatorList(operatorList);\n return tmpCanvas.canvas;\n },\n setScale: function TilingPattern_setScale(width, height, xstep, ystep) {\n this.scale = [width / xstep, height / ystep];\n },\n transformToScale: function TilingPattern_transformToScale(graphics) {\n var scale = this.scale;\n var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];\n graphics.transform.apply(graphics, tmpScale);\n },\n scaleToContext: function TilingPattern_scaleToContext() {\n var scale = this.scale;\n this.ctx.scale(1 / scale[0], 1 / scale[1]);\n },\n clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {\n if (Array.isArray(bbox) && bbox.length === 4) {\n var bboxWidth = x1 - x0;\n var bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.clip();\n graphics.endPath();\n }\n },\n setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {\n var context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n var ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new _util.FormatError('Unsupported paint type: ' + paintType);\n }\n },\n getPattern: function TilingPattern_getPattern(ctx, owner) {\n var temporaryPatternCanvas = this.createPatternCanvas(owner);\n ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.baseTransform);\n ctx.transform.apply(ctx, this.matrix);\n this.scaleToContext();\n return ctx.createPattern(temporaryPatternCanvas, 'repeat');\n }\n };\n return TilingPattern;\n}();\nexports.getShadingPatternFromIR = getShadingPatternFromIR;\nexports.TilingPattern = TilingPattern;\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});\nvar GlobalWorkerOptions = Object.create(null);\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\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.MessageHandler = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\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__(1);\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/* 137 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nmodule.exports = __w_pdfjs_require__(138);\n\n/***/ }),\n/* 138 */\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__(139);\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/* 139 */\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__(140)(module)))\n\n/***/ }),\n/* 140 */\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/* 141 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.Metadata = 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__(1);\n\nvar _xml_parser = __w_pdfjs_require__(142);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Metadata = function () {\n function Metadata(data) {\n _classCallCheck(this, Metadata);\n\n (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string');\n data = this._repair(data);\n var parser = new _xml_parser.SimpleXMLParser();\n var xmlDocument = parser.parseFromString(data);\n this._metadata = Object.create(null);\n if (xmlDocument) {\n this._parse(xmlDocument);\n }\n }\n\n _createClass(Metadata, [{\n key: '_repair',\n value: function _repair(data) {\n return data.replace(/>\\\\376\\\\377([^<]+)/g, function (all, codes) {\n var bytes = codes.replace(/\\\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {\n return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);\n }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {\n switch (name) {\n case 'amp':\n return '&';\n case 'apos':\n return '\\'';\n case 'gt':\n return '>';\n case 'lt':\n return '<';\n case 'quot':\n return '\\\"';\n }\n throw new Error('_repair: ' + name + ' isn\\'t defined.');\n });\n var chars = '';\n for (var i = 0, ii = bytes.length; i < ii; i += 2) {\n var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);\n if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {\n chars += String.fromCharCode(code);\n } else {\n chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';';\n }\n }\n return '>' + chars;\n });\n }\n }, {\n key: '_parse',\n value: function _parse(xmlDocument) {\n var rdf = xmlDocument.documentElement;\n if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.firstChild;\n while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {\n rdf = rdf.nextSibling;\n }\n }\n var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;\n if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {\n return;\n }\n var children = rdf.childNodes;\n for (var i = 0, ii = children.length; i < ii; i++) {\n var desc = children[i];\n if (desc.nodeName.toLowerCase() !== 'rdf:description') {\n continue;\n }\n for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {\n if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {\n var entry = desc.childNodes[j];\n var name = entry.nodeName.toLowerCase();\n this._metadata[name] = entry.textContent.trim();\n }\n }\n }\n }\n }, {\n key: 'get',\n value: function get(name) {\n return this._metadata[name] || null;\n }\n }, {\n key: 'getAll',\n value: function getAll() {\n return this._metadata;\n }\n }, {\n key: 'has',\n value: function has(name) {\n return typeof this._metadata[name] !== 'undefined';\n }\n }]);\n\n return Metadata;\n}();\n\nexports.Metadata = Metadata;\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});\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 _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\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 XMLParserErrorCode = {\n NoError: 0,\n EndOfDocument: -1,\n UnterminatedCdat: -2,\n UnterminatedXmlDeclaration: -3,\n UnterminatedDoctypeDeclaration: -4,\n UnterminatedComment: -5,\n MalformedElement: -6,\n OutOfMemory: -7,\n UnterminatedAttributeValue: -8,\n UnterminatedElement: -9,\n ElementNeverBegun: -10\n};\nfunction isWhitespace(s, index) {\n var ch = s[index];\n return ch === ' ' || ch === '\\n' || ch === '\\r' || ch === '\\t';\n}\nfunction isWhitespaceString(s) {\n for (var i = 0, ii = s.length; i < ii; i++) {\n if (!isWhitespace(s, i)) {\n return false;\n }\n }\n return true;\n}\n\nvar XMLParserBase = function () {\n function XMLParserBase() {\n _classCallCheck(this, XMLParserBase);\n }\n\n _createClass(XMLParserBase, [{\n key: '_resolveEntities',\n value: function _resolveEntities(s) {\n return s.replace(/&([^;]+);/g, function (all, entity) {\n if (entity.substring(0, 2) === '#x') {\n return String.fromCharCode(parseInt(entity.substring(2), 16));\n } else if (entity.substring(0, 1) === '#') {\n return String.fromCharCode(parseInt(entity.substring(1), 10));\n }\n switch (entity) {\n case 'lt':\n return '<';\n case 'gt':\n return '>';\n case 'amp':\n return '&';\n case 'quot':\n return '\\\"';\n }\n return this.onResolveEntity(entity);\n });\n }\n }, {\n key: '_parseContent',\n value: function _parseContent(s, start) {\n var pos = start,\n name = void 0,\n attributes = [];\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') {\n skipWs();\n var attrName = '',\n attrValue = '';\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {\n attrName += s[pos];\n ++pos;\n }\n skipWs();\n if (s[pos] !== '=') {\n return null;\n }\n ++pos;\n skipWs();\n var attrEndChar = s[pos];\n if (attrEndChar !== '\\\"' && attrEndChar !== '\\'') {\n return null;\n }\n var attrEndIndex = s.indexOf(attrEndChar, ++pos);\n if (attrEndIndex < 0) {\n return null;\n }\n attrValue = s.substring(pos, attrEndIndex);\n attributes.push({\n name: attrName,\n value: this._resolveEntities(attrValue)\n });\n pos = attrEndIndex + 1;\n skipWs();\n }\n return {\n name: name,\n attributes: attributes,\n parsed: pos - start\n };\n }\n }, {\n key: '_parseProcessingInstruction',\n value: function _parseProcessingInstruction(s, start) {\n var pos = start,\n name = void 0,\n value = void 0;\n function skipWs() {\n while (pos < s.length && isWhitespace(s, pos)) {\n ++pos;\n }\n }\n while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {\n ++pos;\n }\n name = s.substring(start, pos);\n skipWs();\n var attrStart = pos;\n while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {\n ++pos;\n }\n value = s.substring(attrStart, pos);\n return {\n name: name,\n value: value,\n parsed: pos - start\n };\n }\n }, {\n key: 'parseXml',\n value: function parseXml(s) {\n var i = 0;\n while (i < s.length) {\n var ch = s[i];\n var j = i;\n if (ch === '<') {\n ++j;\n var ch2 = s[j];\n var q = void 0;\n switch (ch2) {\n case '/':\n ++j;\n q = s.indexOf('>', j);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onEndElement(s.substring(j, q));\n j = q + 1;\n break;\n case '?':\n ++j;\n var pi = this._parseProcessingInstruction(s, j);\n if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {\n this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);\n return;\n }\n this.onPi(pi.name, pi.value);\n j += pi.parsed + 2;\n break;\n case '!':\n if (s.substring(j + 1, j + 3) === '--') {\n q = s.indexOf('-->', j + 3);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedComment);\n return;\n }\n this.onComment(s.substring(j + 3, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === '[CDATA[') {\n q = s.indexOf(']]>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedCdat);\n return;\n }\n this.onCdata(s.substring(j + 8, q));\n j = q + 3;\n } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {\n var q2 = s.indexOf('[', j + 8);\n var complexDoctype = false;\n q = s.indexOf('>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n if (q2 > 0 && q > q2) {\n q = s.indexOf(']>', j + 8);\n if (q < 0) {\n this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);\n return;\n }\n complexDoctype = true;\n }\n var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));\n this.onDoctype(doctypeContent);\n j = q + (complexDoctype ? 2 : 1);\n } else {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n break;\n default:\n var content = this._parseContent(s, j);\n if (content === null) {\n this.onError(XMLParserErrorCode.MalformedElement);\n return;\n }\n var isClosed = false;\n if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') {\n isClosed = true;\n } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') {\n this.onError(XMLParserErrorCode.UnterminatedElement);\n return;\n }\n this.onBeginElement(content.name, content.attributes, isClosed);\n j += content.parsed + (isClosed ? 2 : 1);\n break;\n }\n } else {\n while (j < s.length && s[j] !== '<') {\n j++;\n }\n var text = s.substring(i, j);\n this.onText(this._resolveEntities(text));\n }\n i = j;\n }\n }\n }, {\n key: 'onResolveEntity',\n value: function onResolveEntity(name) {\n return '&' + name + ';';\n }\n }, {\n key: 'onPi',\n value: function onPi(name, value) {}\n }, {\n key: 'onComment',\n value: function onComment(text) {}\n }, {\n key: 'onCdata',\n value: function onCdata(text) {}\n }, {\n key: 'onDoctype',\n value: function onDoctype(doctypeContent) {}\n }, {\n key: 'onText',\n value: function onText(text) {}\n }, {\n key: 'onBeginElement',\n value: function onBeginElement(name, attributes, isEmpty) {}\n }, {\n key: 'onEndElement',\n value: function onEndElement(name) {}\n }, {\n key: 'onError',\n value: function onError(code) {}\n }]);\n\n return XMLParserBase;\n}();\n\nvar SimpleDOMNode = function () {\n function SimpleDOMNode(nodeName, nodeValue) {\n _classCallCheck(this, SimpleDOMNode);\n\n this.nodeName = nodeName;\n this.nodeValue = nodeValue;\n Object.defineProperty(this, 'parentNode', {\n value: null,\n writable: true\n });\n }\n\n _createClass(SimpleDOMNode, [{\n key: 'hasChildNodes',\n value: function hasChildNodes() {\n return this.childNodes && this.childNodes.length > 0;\n }\n }, {\n key: 'firstChild',\n get: function get() {\n return this.childNodes[0];\n }\n }, {\n key: 'nextSibling',\n get: function get() {\n var index = this.parentNode.childNodes.indexOf(this);\n return this.parentNode.childNodes[index + 1];\n }\n }, {\n key: 'textContent',\n get: function get() {\n if (!this.childNodes) {\n return this.nodeValue || '';\n }\n return this.childNodes.map(function (child) {\n return child.textContent;\n }).join('');\n }\n }]);\n\n return SimpleDOMNode;\n}();\n\nvar SimpleXMLParser = function (_XMLParserBase) {\n _inherits(SimpleXMLParser, _XMLParserBase);\n\n function SimpleXMLParser() {\n _classCallCheck(this, SimpleXMLParser);\n\n var _this = _possibleConstructorReturn(this, (SimpleXMLParser.__proto__ || Object.getPrototypeOf(SimpleXMLParser)).call(this));\n\n _this._currentFragment = null;\n _this._stack = null;\n _this._errorCode = XMLParserErrorCode.NoError;\n return _this;\n }\n\n _createClass(SimpleXMLParser, [{\n key: 'parseFromString',\n value: function parseFromString(data) {\n this._currentFragment = [];\n this._stack = [];\n this._errorCode = XMLParserErrorCode.NoError;\n this.parseXml(data);\n if (this._errorCode !== XMLParserErrorCode.NoError) {\n return undefined;\n }\n\n var _currentFragment = _slicedToArray(this._currentFragment, 1),\n documentElement = _currentFragment[0];\n\n if (!documentElement) {\n return undefined;\n }\n return { documentElement: documentElement };\n }\n }, {\n key: 'onResolveEntity',\n value: function onResolveEntity(name) {\n switch (name) {\n case 'apos':\n return '\\'';\n }\n return _get(SimpleXMLParser.prototype.__proto__ || Object.getPrototypeOf(SimpleXMLParser.prototype), 'onResolveEntity', this).call(this, name);\n }\n }, {\n key: 'onText',\n value: function onText(text) {\n if (isWhitespaceString(text)) {\n return;\n }\n var node = new SimpleDOMNode('#text', text);\n this._currentFragment.push(node);\n }\n }, {\n key: 'onCdata',\n value: function onCdata(text) {\n var node = new SimpleDOMNode('#text', text);\n this._currentFragment.push(node);\n }\n }, {\n key: 'onBeginElement',\n value: function onBeginElement(name, attributes, isEmpty) {\n var node = new SimpleDOMNode(name);\n node.childNodes = [];\n this._currentFragment.push(node);\n if (isEmpty) {\n return;\n }\n this._stack.push(this._currentFragment);\n this._currentFragment = node.childNodes;\n }\n }, {\n key: 'onEndElement',\n value: function onEndElement(name) {\n this._currentFragment = this._stack.pop();\n var lastElement = this._currentFragment[this._currentFragment.length - 1];\n for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {\n lastElement.childNodes[i].parentNode = lastElement;\n }\n }\n }, {\n key: 'onError',\n value: function onError(code) {\n this._errorCode = code;\n }\n }]);\n\n return SimpleXMLParser;\n}(XMLParserBase);\n\nexports.SimpleXMLParser = SimpleXMLParser;\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.PDFDataTransportStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _util = __w_pdfjs_require__(1);\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 PDFDataTransportStream = function PDFDataTransportStreamClosure() {\n function PDFDataTransportStream(params, pdfDataRangeTransport) {\n var _this = this;\n\n (0, _util.assert)(pdfDataRangeTransport);\n this._queuedChunks = [];\n var initialData = params.initialData;\n if (initialData && initialData.length > 0) {\n var buffer = new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {\n _this._onReceiveData({\n begin: begin,\n chunk: chunk\n });\n });\n this._pdfDataRangeTransport.addProgressListener(function (loaded) {\n _this._onProgress({ loaded: loaded });\n });\n this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {\n _this._onReceiveData({ chunk: chunk });\n });\n this._pdfDataRangeTransport.transportReady();\n }\n PDFDataTransportStream.prototype = {\n _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {\n var buffer = new Uint8Array(args.chunk).buffer;\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n var found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n (0, _util.assert)(found);\n }\n },\n _onProgress: function PDFDataTransportStream_onDataProgress(evt) {\n if (this._rangeReaders.length > 0) {\n var firstReader = this._rangeReaders[0];\n if (firstReader.onProgress) {\n firstReader.onProgress({ loaded: evt.loaded });\n }\n }\n },\n _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) {\n var i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n },\n getFullReader: function PDFDataTransportStream_getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n var queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks);\n },\n getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {\n var reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n },\n cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n var readers = this._rangeReaders.slice(0);\n readers.forEach(function (rangeReader) {\n rangeReader.cancel(reason);\n });\n this._pdfDataRangeTransport.abort();\n }\n };\n function PDFDataTransportStreamReader(stream, queuedChunks) {\n this._stream = stream;\n this._done = false;\n this._filename = null;\n this._queuedChunks = queuedChunks || [];\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n PDFDataTransportStreamReader.prototype = {\n _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n return;\n }\n this._queuedChunks.push(chunk);\n },\n get headersReady() {\n return this._headersReady;\n },\n get filename() {\n return this._filename;\n },\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n },\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n },\n get contentLength() {\n return this._stream._contentLength;\n },\n read: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!(this._queuedChunks.length > 0)) {\n _context.next = 3;\n break;\n }\n\n chunk = this._queuedChunks.shift();\n return _context.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 3:\n if (!this._done) {\n _context.next = 5;\n break;\n }\n\n return _context.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 5:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n return _context.abrupt('return', requestCapability.promise);\n\n case 8:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFDataTransportStreamReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n }\n };\n function PDFDataTransportStreamRangeReader(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n PDFDataTransportStreamRangeReader.prototype = {\n _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n var requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n },\n get isStreamingSupported() {\n return false;\n },\n read: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!this._queuedChunk) {\n _context2.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n\n this._queuedChunk = null;\n return _context2.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n return _context2.abrupt('return', requestCapability.promise);\n\n case 9:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref2.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n this._stream._removeRangeReader(this);\n }\n };\n return PDFDataTransportStream;\n}();\nexports.PDFDataTransportStream = PDFDataTransportStream;\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.WebGLContext = 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__(1);\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar WebGLContext = function () {\n function WebGLContext(_ref) {\n var _ref$enable = _ref.enable,\n enable = _ref$enable === undefined ? false : _ref$enable;\n\n _classCallCheck(this, WebGLContext);\n\n this._enabled = enable === true;\n }\n\n _createClass(WebGLContext, [{\n key: 'composeSMask',\n value: function composeSMask(_ref2) {\n var layer = _ref2.layer,\n mask = _ref2.mask,\n properties = _ref2.properties;\n\n return WebGLUtils.composeSMask(layer, mask, properties);\n }\n }, {\n key: 'drawFigures',\n value: function drawFigures(_ref3) {\n var width = _ref3.width,\n height = _ref3.height,\n backgroundColor = _ref3.backgroundColor,\n figures = _ref3.figures,\n context = _ref3.context;\n\n return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);\n }\n }, {\n key: 'clear',\n value: function clear() {\n WebGLUtils.cleanup();\n }\n }, {\n key: 'isEnabled',\n get: function get() {\n var enabled = this._enabled;\n if (enabled) {\n enabled = WebGLUtils.tryInitGL();\n }\n return (0, _util.shadow)(this, 'isEnabled', enabled);\n }\n }]);\n\n return WebGLContext;\n}();\n\nvar WebGLUtils = function WebGLUtilsClosure() {\n function loadShader(gl, code, shaderType) {\n var shader = gl.createShader(shaderType);\n gl.shaderSource(shader, code);\n gl.compileShader(shader);\n var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);\n if (!compiled) {\n var errorMsg = gl.getShaderInfoLog(shader);\n throw new Error('Error during shader compilation: ' + errorMsg);\n }\n return shader;\n }\n function createVertexShader(gl, code) {\n return loadShader(gl, code, gl.VERTEX_SHADER);\n }\n function createFragmentShader(gl, code) {\n return loadShader(gl, code, gl.FRAGMENT_SHADER);\n }\n function createProgram(gl, shaders) {\n var program = gl.createProgram();\n for (var i = 0, ii = shaders.length; i < ii; ++i) {\n gl.attachShader(program, shaders[i]);\n }\n gl.linkProgram(program);\n var linked = gl.getProgramParameter(program, gl.LINK_STATUS);\n if (!linked) {\n var errorMsg = gl.getProgramInfoLog(program);\n throw new Error('Error during program linking: ' + errorMsg);\n }\n return program;\n }\n function createTexture(gl, image, textureId) {\n gl.activeTexture(textureId);\n var texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n return texture;\n }\n var currentGL, currentCanvas;\n function generateGL() {\n if (currentGL) {\n return;\n }\n currentCanvas = document.createElement('canvas');\n currentGL = currentCanvas.getContext('webgl', { premultipliedalpha: false });\n }\n var smaskVertexShaderCode = '\\\n attribute vec2 a_position; \\\n attribute vec2 a_texCoord; \\\n \\\n uniform vec2 u_resolution; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_texCoord = a_texCoord; \\\n } ';\n var smaskFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n uniform vec4 u_backdrop; \\\n uniform int u_subtype; \\\n uniform sampler2D u_image; \\\n uniform sampler2D u_mask; \\\n \\\n varying vec2 v_texCoord; \\\n \\\n void main() { \\\n vec4 imageColor = texture2D(u_image, v_texCoord); \\\n vec4 maskColor = texture2D(u_mask, v_texCoord); \\\n if (u_backdrop.a > 0.0) { \\\n maskColor.rgb = maskColor.rgb * maskColor.a + \\\n u_backdrop.rgb * (1.0 - maskColor.a); \\\n } \\\n float lum; \\\n if (u_subtype == 0) { \\\n lum = maskColor.a; \\\n } else { \\\n lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \\\n maskColor.b * 0.11; \\\n } \\\n imageColor.a *= lum; \\\n imageColor.rgb *= imageColor.a; \\\n gl_FragColor = imageColor; \\\n } ';\n var smaskCache = null;\n function initSmaskGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, smaskVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');\n cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');\n var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');\n var texLayerLocation = gl.getUniformLocation(program, 'u_image');\n var texMaskLocation = gl.getUniformLocation(program, 'u_mask');\n var texCoordBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(texCoordLocation);\n gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);\n gl.uniform1i(texLayerLocation, 0);\n gl.uniform1i(texMaskLocation, 1);\n smaskCache = cache;\n }\n function composeSMask(layer, mask, properties) {\n var width = layer.width,\n height = layer.height;\n if (!smaskCache) {\n initSmaskGL();\n }\n var cache = smaskCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n if (properties.backdrop) {\n gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);\n } else {\n gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);\n }\n gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0);\n var texture = createTexture(gl, layer, gl.TEXTURE0);\n var maskTexture = createTexture(gl, mask, gl.TEXTURE1);\n var buffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, buffer);\n gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n gl.clearColor(0, 0, 0, 0);\n gl.enable(gl.BLEND);\n gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);\n gl.clear(gl.COLOR_BUFFER_BIT);\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n gl.flush();\n gl.deleteTexture(texture);\n gl.deleteTexture(maskTexture);\n gl.deleteBuffer(buffer);\n return canvas;\n }\n var figuresVertexShaderCode = '\\\n attribute vec2 a_position; \\\n attribute vec3 a_color; \\\n \\\n uniform vec2 u_resolution; \\\n uniform vec2 u_scale; \\\n uniform vec2 u_offset; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n vec2 position = (a_position + u_offset) * u_scale; \\\n vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \\\n gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \\\n \\\n v_color = vec4(a_color / 255.0, 1.0); \\\n } ';\n var figuresFragmentShaderCode = '\\\n precision mediump float; \\\n \\\n varying vec4 v_color; \\\n \\\n void main() { \\\n gl_FragColor = v_color; \\\n } ';\n var figuresCache = null;\n function initFiguresGL() {\n var canvas, gl;\n generateGL();\n canvas = currentCanvas;\n currentCanvas = null;\n gl = currentGL;\n currentGL = null;\n var vertexShader = createVertexShader(gl, figuresVertexShaderCode);\n var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);\n var program = createProgram(gl, [vertexShader, fragmentShader]);\n gl.useProgram(program);\n var cache = {};\n cache.gl = gl;\n cache.canvas = canvas;\n cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');\n cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');\n cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');\n cache.positionLocation = gl.getAttribLocation(program, 'a_position');\n cache.colorLocation = gl.getAttribLocation(program, 'a_color');\n figuresCache = cache;\n }\n function drawFigures(width, height, backgroundColor, figures, context) {\n if (!figuresCache) {\n initFiguresGL();\n }\n var cache = figuresCache,\n canvas = cache.canvas,\n gl = cache.gl;\n canvas.width = width;\n canvas.height = height;\n gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);\n gl.uniform2f(cache.resolutionLocation, width, height);\n var count = 0;\n var i, ii, rows;\n for (i = 0, ii = figures.length; i < ii; i++) {\n switch (figures[i].type) {\n case 'lattice':\n rows = figures[i].coords.length / figures[i].verticesPerRow | 0;\n count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;\n break;\n case 'triangles':\n count += figures[i].coords.length;\n break;\n }\n }\n var coords = new Float32Array(count * 2);\n var colors = new Uint8Array(count * 3);\n var coordsMap = context.coords,\n colorsMap = context.colors;\n var pIndex = 0,\n cIndex = 0;\n for (i = 0, ii = figures.length; i < ii; i++) {\n var figure = figures[i],\n ps = figure.coords,\n cs = figure.colors;\n switch (figure.type) {\n case 'lattice':\n var cols = figure.verticesPerRow;\n rows = ps.length / cols | 0;\n for (var row = 1; row < rows; row++) {\n var offset = row * cols + 1;\n for (var col = 1; col < cols; col++, offset++) {\n coords[pIndex] = coordsMap[ps[offset - cols - 1]];\n coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];\n coords[pIndex + 2] = coordsMap[ps[offset - cols]];\n coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];\n coords[pIndex + 4] = coordsMap[ps[offset - 1]];\n coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];\n colors[cIndex] = colorsMap[cs[offset - cols - 1]];\n colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];\n colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];\n colors[cIndex + 3] = colorsMap[cs[offset - cols]];\n colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];\n colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];\n colors[cIndex + 6] = colorsMap[cs[offset - 1]];\n colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];\n colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];\n coords[pIndex + 6] = coords[pIndex + 2];\n coords[pIndex + 7] = coords[pIndex + 3];\n coords[pIndex + 8] = coords[pIndex + 4];\n coords[pIndex + 9] = coords[pIndex + 5];\n coords[pIndex + 10] = coordsMap[ps[offset]];\n coords[pIndex + 11] = coordsMap[ps[offset] + 1];\n colors[cIndex + 9] = colors[cIndex + 3];\n colors[cIndex + 10] = colors[cIndex + 4];\n colors[cIndex + 11] = colors[cIndex + 5];\n colors[cIndex + 12] = colors[cIndex + 6];\n colors[cIndex + 13] = colors[cIndex + 7];\n colors[cIndex + 14] = colors[cIndex + 8];\n colors[cIndex + 15] = colorsMap[cs[offset]];\n colors[cIndex + 16] = colorsMap[cs[offset] + 1];\n colors[cIndex + 17] = colorsMap[cs[offset] + 2];\n pIndex += 12;\n cIndex += 18;\n }\n }\n break;\n case 'triangles':\n for (var j = 0, jj = ps.length; j < jj; j++) {\n coords[pIndex] = coordsMap[ps[j]];\n coords[pIndex + 1] = coordsMap[ps[j] + 1];\n colors[cIndex] = colorsMap[cs[j]];\n colors[cIndex + 1] = colorsMap[cs[j] + 1];\n colors[cIndex + 2] = colorsMap[cs[j] + 2];\n pIndex += 2;\n cIndex += 3;\n }\n break;\n }\n }\n if (backgroundColor) {\n gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);\n } else {\n gl.clearColor(0, 0, 0, 0);\n }\n gl.clear(gl.COLOR_BUFFER_BIT);\n var coordsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.positionLocation);\n gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);\n var colorsBuffer = gl.createBuffer();\n gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);\n gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);\n gl.enableVertexAttribArray(cache.colorLocation);\n gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);\n gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);\n gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);\n gl.drawArrays(gl.TRIANGLES, 0, count);\n gl.flush();\n gl.deleteBuffer(coordsBuffer);\n gl.deleteBuffer(colorsBuffer);\n return canvas;\n }\n return {\n tryInitGL: function tryInitGL() {\n try {\n generateGL();\n return !!currentGL;\n } catch (ex) {}\n return false;\n },\n\n composeSMask: composeSMask,\n drawFigures: drawFigures,\n cleanup: function cleanup() {\n if (smaskCache && smaskCache.canvas) {\n smaskCache.canvas.width = 0;\n smaskCache.canvas.height = 0;\n }\n if (figuresCache && figuresCache.canvas) {\n figuresCache.canvas.width = 0;\n figuresCache.canvas.height = 0;\n }\n smaskCache = null;\n figuresCache = null;\n }\n };\n}();\nexports.WebGLContext = WebGLContext;\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});\nexports.renderTextLayer = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _global_scope = __w_pdfjs_require__(3);\n\nvar _global_scope2 = _interopRequireDefault(_global_scope);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar renderTextLayer = function renderTextLayerClosure() {\n var MAX_TEXT_DIVS_TO_RENDER = 100000;\n var NonWhitespaceRegexp = /\\S/;\n function isAllWhitespace(str) {\n return !NonWhitespaceRegexp.test(str);\n }\n var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';'];\n function appendText(task, geom, styles) {\n var textDiv = document.createElement('div');\n var textDivProperties = {\n style: null,\n angle: 0,\n canvasWidth: 0,\n isWhitespace: false,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1\n };\n task._textDivs.push(textDiv);\n if (isAllWhitespace(geom.str)) {\n textDivProperties.isWhitespace = true;\n task._textDivProperties.set(textDiv, textDivProperties);\n return;\n }\n var tx = _util.Util.transform(task._viewport.transform, geom.transform);\n var angle = Math.atan2(tx[1], tx[0]);\n var style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);\n var fontAscent = fontHeight;\n if (style.ascent) {\n fontAscent = style.ascent * fontAscent;\n } else if (style.descent) {\n fontAscent = (1 + style.descent) * fontAscent;\n }\n var left;\n var top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n styleBuf[1] = left;\n styleBuf[3] = top;\n styleBuf[5] = fontHeight;\n styleBuf[7] = style.fontFamily;\n textDivProperties.style = styleBuf.join('');\n textDiv.setAttribute('style', textDivProperties.style);\n textDiv.textContent = geom.str;\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n if (geom.str.length > 1) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n if (task._enhanceTextSelection) {\n var angleCos = 1,\n angleSin = 0;\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n var divHeight = fontHeight;\n var m, b;\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m: m\n });\n }\n }\n function render(task) {\n if (task._canceled) {\n return;\n }\n var textDivs = task._textDivs;\n var capability = task._capability;\n var textDivsLength = textDivs.length;\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n if (!task._textContentStream) {\n for (var i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n task._renderingDone = true;\n capability.resolve();\n }\n function expand(task) {\n var bounds = task._bounds;\n var viewport = task._viewport;\n var expanded = expandBounds(viewport.width, viewport.height, bounds);\n for (var i = 0; i < expanded.length; i++) {\n var div = bounds[i].div;\n var divProperties = task._textDivProperties.get(div);\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n task._textDivProperties.set(div, divProperties);\n continue;\n }\n var e = expanded[i],\n b = bounds[i];\n var m = b.m,\n c = m[0],\n s = m[1];\n var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n var ts = new Float64Array(64);\n points.forEach(function (p, i) {\n var t = _util.Util.applyTransform(p, m);\n ts[i + 0] = c && (e.left - t[0]) / c;\n ts[i + 4] = s && (e.top - t[1]) / s;\n ts[i + 8] = c && (e.right - t[0]) / c;\n ts[i + 12] = s && (e.bottom - t[1]) / s;\n ts[i + 16] = s && (e.left - t[0]) / -s;\n ts[i + 20] = c && (e.top - t[1]) / c;\n ts[i + 24] = s && (e.right - t[0]) / -s;\n ts[i + 28] = c && (e.bottom - t[1]) / c;\n ts[i + 32] = c && (e.left - t[0]) / -c;\n ts[i + 36] = s && (e.top - t[1]) / -s;\n ts[i + 40] = c && (e.right - t[0]) / -c;\n ts[i + 44] = s && (e.bottom - t[1]) / -s;\n ts[i + 48] = s && (e.left - t[0]) / s;\n ts[i + 52] = c && (e.top - t[1]) / -c;\n ts[i + 56] = s && (e.right - t[0]) / s;\n ts[i + 60] = c && (e.bottom - t[1]) / -c;\n });\n var findPositiveMin = function findPositiveMin(ts, offset, count) {\n var result = 0;\n for (var i = 0; i < count; i++) {\n var t = ts[offset++];\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n return result;\n };\n var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n task._textDivProperties.set(div, divProperties);\n }\n }\n function expandBounds(width, height, boxes) {\n var bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n var expanded = new Array(boxes.length);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n });\n boxes.map(function (box, i) {\n var e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n bounds.forEach(function (b) {\n var i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n });\n return expanded;\n }\n function expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n var fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n var horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n bounds.forEach(function (boundary) {\n var i = 0;\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n var j = horizon.length - 1;\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n var horizonPart, affectedBoundary;\n var q,\n k,\n maxXNew = -Infinity;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var xNew;\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n boundary.x1New = maxXNew;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n var changedHorizon = [],\n lastBoundary = null;\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n if (lastBoundary === useBoundary) {\n changedHorizon[changedHorizon.length - 1].end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n if (boundary.y2 < horizon[j].end) {\n changedHorizon[changedHorizon.length - 1].end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n var used = false;\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));\n });\n horizon.forEach(function (horizonPart) {\n var affectedBoundary = horizonPart.boundary;\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n });\n }\n function TextLayerRenderTask(_ref) {\n var textContent = _ref.textContent,\n textContentStream = _ref.textContentStream,\n container = _ref.container,\n viewport = _ref.viewport,\n textDivs = _ref.textDivs,\n textContentItemsStr = _ref.textContentItemsStr,\n enhanceTextSelection = _ref.enhanceTextSelection;\n\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!(_global_scope2.default.FontInspector && _global_scope2.default.FontInspector.enabled);\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n }\n TextLayerRenderTask.prototype = {\n get promise() {\n return this._capability.promise;\n },\n cancel: function TextLayer_cancel() {\n if (this._reader) {\n this._reader.cancel(new _util.AbortException('text layer task cancelled'));\n this._reader = null;\n }\n this._canceled = true;\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n this._capability.reject('canceled');\n },\n _processItems: function _processItems(items, styleCache) {\n for (var i = 0, len = items.length; i < len; i++) {\n this._textContentItemsStr.push(items[i].str);\n appendText(this, items[i], styleCache);\n }\n },\n _layoutText: function _layoutText(textDiv) {\n var textLayerFrag = this._container;\n var textDivProperties = this._textDivProperties.get(textDiv);\n if (textDivProperties.isWhitespace) {\n return;\n }\n var fontSize = textDiv.style.fontSize;\n var fontFamily = textDiv.style.fontFamily;\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = fontSize + ' ' + fontFamily;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n var width = this._layoutTextCtx.measureText(textDiv.textContent).width;\n var transform = '';\n if (textDivProperties.canvasWidth !== 0 && width > 0) {\n textDivProperties.scale = textDivProperties.canvasWidth / width;\n transform = 'scaleX(' + textDivProperties.scale + ')';\n }\n if (textDivProperties.angle !== 0) {\n transform = 'rotate(' + textDivProperties.angle + 'deg) ' + transform;\n }\n if (transform !== '') {\n textDivProperties.originalTransform = transform;\n textDiv.style.transform = transform;\n }\n this._textDivProperties.set(textDiv, textDivProperties);\n textLayerFrag.appendChild(textDiv);\n },\n\n _render: function TextLayer_render(timeout) {\n var _this = this;\n\n var capability = (0, _util.createPromiseCapability)();\n var styleCache = Object.create(null);\n var canvas = document.createElement('canvas');\n canvas.mozOpaque = true;\n this._layoutTextCtx = canvas.getContext('2d', { alpha: false });\n if (this._textContent) {\n var textItems = this._textContent.items;\n var textStyles = this._textContent.styles;\n this._processItems(textItems, textStyles);\n capability.resolve();\n } else if (this._textContentStream) {\n var pump = function pump() {\n _this._reader.read().then(function (_ref2) {\n var value = _ref2.value,\n done = _ref2.done;\n\n if (done) {\n capability.resolve();\n return;\n }\n Object.assign(styleCache, value.styles);\n _this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\"' + ' parameters specified.');\n }\n capability.promise.then(function () {\n styleCache = null;\n if (!timeout) {\n render(_this);\n } else {\n _this._renderTimer = setTimeout(function () {\n render(_this);\n _this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n },\n expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n for (var i = 0, ii = this._textDivs.length; i < ii; i++) {\n var div = this._textDivs[i];\n var divProperties = this._textDivProperties.get(div);\n if (divProperties.isWhitespace) {\n continue;\n }\n if (expandDivs) {\n var transform = '',\n padding = '';\n if (divProperties.scale !== 1) {\n transform = 'scaleX(' + divProperties.scale + ')';\n }\n if (divProperties.angle !== 0) {\n transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;\n }\n if (divProperties.paddingLeft !== 0) {\n padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;';\n transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)';\n }\n if (divProperties.paddingTop !== 0) {\n padding += ' padding-top: ' + divProperties.paddingTop + 'px;';\n transform += ' translateY(' + -divProperties.paddingTop + 'px)';\n }\n if (divProperties.paddingRight !== 0) {\n padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;';\n }\n if (divProperties.paddingBottom !== 0) {\n padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;';\n }\n if (padding !== '') {\n div.setAttribute('style', divProperties.style + padding);\n }\n if (transform !== '') {\n div.style.transform = transform;\n }\n } else {\n div.style.padding = 0;\n div.style.transform = divProperties.originalTransform || '';\n }\n }\n }\n };\n function renderTextLayer(renderParameters) {\n var task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n task._render(renderParameters.timeout);\n return task;\n }\n return renderTextLayer;\n}();\nexports.renderTextLayer = renderTextLayer;\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.AnnotationLayer = 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 _dom_utils = __w_pdfjs_require__(130);\n\nvar _util = __w_pdfjs_require__(1);\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 AnnotationElementFactory = function () {\n function AnnotationElementFactory() {\n _classCallCheck(this, AnnotationElementFactory);\n }\n\n _createClass(AnnotationElementFactory, null, [{\n key: 'create',\n value: function create(parameters) {\n var subtype = parameters.data.annotationType;\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case _util.AnnotationType.WIDGET:\n var fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case 'Tx':\n return new TextWidgetAnnotationElement(parameters);\n case 'Btn':\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case 'Ch':\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n }]);\n\n return AnnotationElementFactory;\n}();\n\nvar AnnotationElement = function () {\n function AnnotationElement(parameters) {\n var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n _classCallCheck(this, AnnotationElement);\n\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderInteractiveForms = parameters.renderInteractiveForms;\n this.svgFactory = parameters.svgFactory;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n }\n\n _createClass(AnnotationElement, [{\n key: '_createContainer',\n value: function _createContainer() {\n var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n var data = this.data,\n page = this.page,\n viewport = this.viewport;\n var container = document.createElement('section');\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n container.setAttribute('data-annotation-id', data.id);\n var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n container.style.transform = 'matrix(' + viewport.transform.join(',') + ')';\n container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px';\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = data.borderStyle.width + 'px';\n if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {\n width = width - 2 * data.borderStyle.width;\n height = height - 2 * data.borderStyle.width;\n }\n var horizontalRadius = data.borderStyle.horizontalCornerRadius;\n var verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';\n container.style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = 'solid';\n break;\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = 'dashed';\n break;\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)('Unimplemented border style: beveled');\n break;\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)('Unimplemented border style: inset');\n break;\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = 'solid';\n break;\n default:\n break;\n }\n if (data.color) {\n container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n container.style.left = rect[0] + 'px';\n container.style.top = rect[1] + 'px';\n container.style.width = width + 'px';\n container.style.height = height + 'px';\n return container;\n }\n }, {\n key: '_createPopup',\n value: function _createPopup(container, trigger, data) {\n if (!trigger) {\n trigger = document.createElement('div');\n trigger.style.height = container.style.height;\n trigger.style.width = container.style.width;\n container.appendChild(trigger);\n }\n var popupElement = new PopupElement({\n container: container,\n trigger: trigger,\n color: data.color,\n title: data.title,\n contents: data.contents,\n hideWrapper: true\n });\n var popup = popupElement.render();\n popup.style.left = container.style.width;\n container.appendChild(popup);\n }\n }, {\n key: 'render',\n value: function render() {\n (0, _util.unreachable)('Abstract method `AnnotationElement.render` called');\n }\n }]);\n\n return AnnotationElement;\n}();\n\nvar LinkAnnotationElement = function (_AnnotationElement) {\n _inherits(LinkAnnotationElement, _AnnotationElement);\n\n function LinkAnnotationElement(parameters) {\n _classCallCheck(this, LinkAnnotationElement);\n\n var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);\n return _possibleConstructorReturn(this, (LinkAnnotationElement.__proto__ || Object.getPrototypeOf(LinkAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(LinkAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'linkAnnotation';\n var data = this.data,\n linkService = this.linkService;\n\n var link = document.createElement('a');\n (0, _dom_utils.addLinkAttributes)(link, {\n url: data.url,\n target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget,\n rel: linkService.externalLinkRel\n });\n if (!data.url) {\n if (data.action) {\n this._bindNamedAction(link, data.action);\n } else {\n this._bindLink(link, data.dest);\n }\n }\n this.container.appendChild(link);\n return this.container;\n }\n }, {\n key: '_bindLink',\n value: function _bindLink(link, destination) {\n var _this2 = this;\n\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = function () {\n if (destination) {\n _this2.linkService.navigateTo(destination);\n }\n return false;\n };\n if (destination) {\n link.className = 'internalLink';\n }\n }\n }, {\n key: '_bindNamedAction',\n value: function _bindNamedAction(link, action) {\n var _this3 = this;\n\n link.href = this.linkService.getAnchorUrl('');\n link.onclick = function () {\n _this3.linkService.executeNamedAction(action);\n return false;\n };\n link.className = 'internalLink';\n }\n }]);\n\n return LinkAnnotationElement;\n}(AnnotationElement);\n\nvar TextAnnotationElement = function (_AnnotationElement2) {\n _inherits(TextAnnotationElement, _AnnotationElement2);\n\n function TextAnnotationElement(parameters) {\n _classCallCheck(this, TextAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (TextAnnotationElement.__proto__ || Object.getPrototypeOf(TextAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(TextAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'textAnnotation';\n var image = document.createElement('img');\n image.style.height = this.container.style.height;\n image.style.width = this.container.style.width;\n image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg';\n image.alt = '[{{type}} Annotation]';\n image.dataset.l10nId = 'text_annotation_type';\n image.dataset.l10nArgs = JSON.stringify({ type: this.data.name });\n if (!this.data.hasPopup) {\n this._createPopup(this.container, image, this.data);\n }\n this.container.appendChild(image);\n return this.container;\n }\n }]);\n\n return TextAnnotationElement;\n}(AnnotationElement);\n\nvar WidgetAnnotationElement = function (_AnnotationElement3) {\n _inherits(WidgetAnnotationElement, _AnnotationElement3);\n\n function WidgetAnnotationElement() {\n _classCallCheck(this, WidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (WidgetAnnotationElement.__proto__ || Object.getPrototypeOf(WidgetAnnotationElement)).apply(this, arguments));\n }\n\n _createClass(WidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n return this.container;\n }\n }]);\n\n return WidgetAnnotationElement;\n}(AnnotationElement);\n\nvar TextWidgetAnnotationElement = function (_WidgetAnnotationElem) {\n _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);\n\n function TextWidgetAnnotationElement(parameters) {\n _classCallCheck(this, TextWidgetAnnotationElement);\n\n var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n return _possibleConstructorReturn(this, (TextWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(TextWidgetAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(TextWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n var TEXT_ALIGNMENT = ['left', 'center', 'right'];\n this.container.className = 'textWidgetAnnotation';\n var element = null;\n if (this.renderInteractiveForms) {\n if (this.data.multiLine) {\n element = document.createElement('textarea');\n element.textContent = this.data.fieldValue;\n } else {\n element = document.createElement('input');\n element.type = 'text';\n element.setAttribute('value', this.data.fieldValue);\n }\n element.disabled = this.data.readOnly;\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n if (this.data.comb) {\n var fieldWidth = this.data.rect[2] - this.data.rect[0];\n var combWidth = fieldWidth / this.data.maxLen;\n element.classList.add('comb');\n element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)';\n }\n } else {\n element = document.createElement('div');\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = 'middle';\n element.style.display = 'table-cell';\n var font = null;\n if (this.data.fontRefName) {\n font = this.page.commonObjs.getData(this.data.fontRefName);\n }\n this._setTextStyle(element, font);\n }\n if (this.data.textAlignment !== null) {\n element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n this.container.appendChild(element);\n return this.container;\n }\n }, {\n key: '_setTextStyle',\n value: function _setTextStyle(element, font) {\n var style = element.style;\n style.fontSize = this.data.fontSize + 'px';\n style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr';\n if (!font) {\n return;\n }\n style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal';\n style.fontStyle = font.italic ? 'italic' : 'normal';\n var fontFamily = font.loadedName ? '\"' + font.loadedName + '\", ' : '';\n var fallbackName = font.fallbackName || 'Helvetica, sans-serif';\n style.fontFamily = fontFamily + fallbackName;\n }\n }]);\n\n return TextWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar CheckboxWidgetAnnotationElement = function (_WidgetAnnotationElem2) {\n _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);\n\n function CheckboxWidgetAnnotationElement(parameters) {\n _classCallCheck(this, CheckboxWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (CheckboxWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(CheckboxWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(CheckboxWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'buttonWidgetAnnotation checkBox';\n var element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'checkbox';\n if (this.data.fieldValue && this.data.fieldValue !== 'Off') {\n element.setAttribute('checked', true);\n }\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return CheckboxWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar RadioButtonWidgetAnnotationElement = function (_WidgetAnnotationElem3) {\n _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);\n\n function RadioButtonWidgetAnnotationElement(parameters) {\n _classCallCheck(this, RadioButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (RadioButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(RadioButtonWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(RadioButtonWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'buttonWidgetAnnotation radioButton';\n var element = document.createElement('input');\n element.disabled = this.data.readOnly;\n element.type = 'radio';\n element.name = this.data.fieldName;\n if (this.data.fieldValue === this.data.buttonValue) {\n element.setAttribute('checked', true);\n }\n this.container.appendChild(element);\n return this.container;\n }\n }]);\n\n return RadioButtonWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PushButtonWidgetAnnotationElement = function (_LinkAnnotationElemen) {\n _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);\n\n function PushButtonWidgetAnnotationElement() {\n _classCallCheck(this, PushButtonWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (PushButtonWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement)).apply(this, arguments));\n }\n\n _createClass(PushButtonWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n var container = _get(PushButtonWidgetAnnotationElement.prototype.__proto__ || Object.getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), 'render', this).call(this);\n container.className = 'buttonWidgetAnnotation pushButton';\n return container;\n }\n }]);\n\n return PushButtonWidgetAnnotationElement;\n}(LinkAnnotationElement);\n\nvar ChoiceWidgetAnnotationElement = function (_WidgetAnnotationElem4) {\n _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);\n\n function ChoiceWidgetAnnotationElement(parameters) {\n _classCallCheck(this, ChoiceWidgetAnnotationElement);\n\n return _possibleConstructorReturn(this, (ChoiceWidgetAnnotationElement.__proto__ || Object.getPrototypeOf(ChoiceWidgetAnnotationElement)).call(this, parameters, parameters.renderInteractiveForms));\n }\n\n _createClass(ChoiceWidgetAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'choiceWidgetAnnotation';\n var selectElement = document.createElement('select');\n selectElement.disabled = this.data.readOnly;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n for (var i = 0, ii = this.data.options.length; i < ii; i++) {\n var option = this.data.options[i];\n var optionElement = document.createElement('option');\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (this.data.fieldValue.includes(option.displayValue)) {\n optionElement.setAttribute('selected', true);\n }\n selectElement.appendChild(optionElement);\n }\n this.container.appendChild(selectElement);\n return this.container;\n }\n }]);\n\n return ChoiceWidgetAnnotationElement;\n}(WidgetAnnotationElement);\n\nvar PopupAnnotationElement = function (_AnnotationElement4) {\n _inherits(PopupAnnotationElement, _AnnotationElement4);\n\n function PopupAnnotationElement(parameters) {\n _classCallCheck(this, PopupAnnotationElement);\n\n var isRenderable = !!(parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (PopupAnnotationElement.__proto__ || Object.getPrototypeOf(PopupAnnotationElement)).call(this, parameters, isRenderable));\n }\n\n _createClass(PopupAnnotationElement, [{\n key: 'render',\n value: function render() {\n var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink'];\n this.container.className = 'popupAnnotation';\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n var selector = '[data-annotation-id=\"' + this.data.parentId + '\"]';\n var parentElement = this.layer.querySelector(selector);\n if (!parentElement) {\n return this.container;\n }\n var popup = new PopupElement({\n container: this.container,\n trigger: parentElement,\n color: this.data.color,\n title: this.data.title,\n contents: this.data.contents\n });\n var parentLeft = parseFloat(parentElement.style.left);\n var parentWidth = parseFloat(parentElement.style.width);\n this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;\n this.container.style.left = parentLeft + parentWidth + 'px';\n this.container.appendChild(popup.render());\n return this.container;\n }\n }]);\n\n return PopupAnnotationElement;\n}(AnnotationElement);\n\nvar PopupElement = function () {\n function PopupElement(parameters) {\n _classCallCheck(this, PopupElement);\n\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.title = parameters.title;\n this.contents = parameters.contents;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n _createClass(PopupElement, [{\n key: 'render',\n value: function render() {\n var BACKGROUND_ENLIGHT = 0.7;\n var wrapper = document.createElement('div');\n wrapper.className = 'popupWrapper';\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.setAttribute('hidden', true);\n var popup = document.createElement('div');\n popup.className = 'popup';\n var color = this.color;\n if (color) {\n var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);\n }\n var contents = this._formatContents(this.contents);\n var title = document.createElement('h1');\n title.textContent = this.title;\n this.trigger.addEventListener('click', this._toggle.bind(this));\n this.trigger.addEventListener('mouseover', this._show.bind(this, false));\n this.trigger.addEventListener('mouseout', this._hide.bind(this, false));\n popup.addEventListener('click', this._hide.bind(this, true));\n popup.appendChild(title);\n popup.appendChild(contents);\n wrapper.appendChild(popup);\n return wrapper;\n }\n }, {\n key: '_formatContents',\n value: function _formatContents(contents) {\n var p = document.createElement('p');\n var lines = contents.split(/(?:\\r\\n?|\\n)/);\n for (var i = 0, ii = lines.length; i < ii; ++i) {\n var line = lines[i];\n p.appendChild(document.createTextNode(line));\n if (i < ii - 1) {\n p.appendChild(document.createElement('br'));\n }\n }\n return p;\n }\n }, {\n key: '_toggle',\n value: function _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n }, {\n key: '_show',\n value: function _show() {\n var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (pin) {\n this.pinned = true;\n }\n if (this.hideElement.hasAttribute('hidden')) {\n this.hideElement.removeAttribute('hidden');\n this.container.style.zIndex += 1;\n }\n }\n }, {\n key: '_hide',\n value: function _hide() {\n var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n if (unpin) {\n this.pinned = false;\n }\n if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {\n this.hideElement.setAttribute('hidden', true);\n this.container.style.zIndex -= 1;\n }\n }\n }]);\n\n return PopupElement;\n}();\n\nvar LineAnnotationElement = function (_AnnotationElement5) {\n _inherits(LineAnnotationElement, _AnnotationElement5);\n\n function LineAnnotationElement(parameters) {\n _classCallCheck(this, LineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (LineAnnotationElement.__proto__ || Object.getPrototypeOf(LineAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(LineAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'lineAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var line = this.svgFactory.createElement('svg:line');\n line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute('stroke-width', data.borderStyle.width);\n line.setAttribute('stroke', 'transparent');\n svg.appendChild(line);\n this.container.append(svg);\n this._createPopup(this.container, line, data);\n return this.container;\n }\n }]);\n\n return LineAnnotationElement;\n}(AnnotationElement);\n\nvar SquareAnnotationElement = function (_AnnotationElement6) {\n _inherits(SquareAnnotationElement, _AnnotationElement6);\n\n function SquareAnnotationElement(parameters) {\n _classCallCheck(this, SquareAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (SquareAnnotationElement.__proto__ || Object.getPrototypeOf(SquareAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(SquareAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'squareAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var square = this.svgFactory.createElement('svg:rect');\n square.setAttribute('x', borderWidth / 2);\n square.setAttribute('y', borderWidth / 2);\n square.setAttribute('width', width - borderWidth);\n square.setAttribute('height', height - borderWidth);\n square.setAttribute('stroke-width', borderWidth);\n square.setAttribute('stroke', 'transparent');\n square.setAttribute('fill', 'none');\n svg.appendChild(square);\n this.container.append(svg);\n this._createPopup(this.container, square, data);\n return this.container;\n }\n }]);\n\n return SquareAnnotationElement;\n}(AnnotationElement);\n\nvar CircleAnnotationElement = function (_AnnotationElement7) {\n _inherits(CircleAnnotationElement, _AnnotationElement7);\n\n function CircleAnnotationElement(parameters) {\n _classCallCheck(this, CircleAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (CircleAnnotationElement.__proto__ || Object.getPrototypeOf(CircleAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(CircleAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'circleAnnotation';\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var borderWidth = data.borderStyle.width;\n var circle = this.svgFactory.createElement('svg:ellipse');\n circle.setAttribute('cx', width / 2);\n circle.setAttribute('cy', height / 2);\n circle.setAttribute('rx', width / 2 - borderWidth / 2);\n circle.setAttribute('ry', height / 2 - borderWidth / 2);\n circle.setAttribute('stroke-width', borderWidth);\n circle.setAttribute('stroke', 'transparent');\n circle.setAttribute('fill', 'none');\n svg.appendChild(circle);\n this.container.append(svg);\n this._createPopup(this.container, circle, data);\n return this.container;\n }\n }]);\n\n return CircleAnnotationElement;\n}(AnnotationElement);\n\nvar PolylineAnnotationElement = function (_AnnotationElement8) {\n _inherits(PolylineAnnotationElement, _AnnotationElement8);\n\n function PolylineAnnotationElement(parameters) {\n _classCallCheck(this, PolylineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n\n var _this15 = _possibleConstructorReturn(this, (PolylineAnnotationElement.__proto__ || Object.getPrototypeOf(PolylineAnnotationElement)).call(this, parameters, isRenderable, true));\n\n _this15.containerClassName = 'polylineAnnotation';\n _this15.svgElementName = 'svg:polyline';\n return _this15;\n }\n\n _createClass(PolylineAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var vertices = data.vertices;\n var points = [];\n for (var i = 0, ii = vertices.length; i < ii; i++) {\n var x = vertices[i].x - data.rect[0];\n var y = data.rect[3] - vertices[i].y;\n points.push(x + ',' + y);\n }\n points = points.join(' ');\n var borderWidth = data.borderStyle.width;\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n svg.appendChild(polyline);\n this.container.append(svg);\n this._createPopup(this.container, polyline, data);\n return this.container;\n }\n }]);\n\n return PolylineAnnotationElement;\n}(AnnotationElement);\n\nvar PolygonAnnotationElement = function (_PolylineAnnotationEl) {\n _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);\n\n function PolygonAnnotationElement(parameters) {\n _classCallCheck(this, PolygonAnnotationElement);\n\n var _this16 = _possibleConstructorReturn(this, (PolygonAnnotationElement.__proto__ || Object.getPrototypeOf(PolygonAnnotationElement)).call(this, parameters));\n\n _this16.containerClassName = 'polygonAnnotation';\n _this16.svgElementName = 'svg:polygon';\n return _this16;\n }\n\n return PolygonAnnotationElement;\n}(PolylineAnnotationElement);\n\nvar InkAnnotationElement = function (_AnnotationElement9) {\n _inherits(InkAnnotationElement, _AnnotationElement9);\n\n function InkAnnotationElement(parameters) {\n _classCallCheck(this, InkAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n\n var _this17 = _possibleConstructorReturn(this, (InkAnnotationElement.__proto__ || Object.getPrototypeOf(InkAnnotationElement)).call(this, parameters, isRenderable, true));\n\n _this17.containerClassName = 'inkAnnotation';\n _this17.svgElementName = 'svg:polyline';\n return _this17;\n }\n\n _createClass(InkAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = this.containerClassName;\n var data = this.data;\n var width = data.rect[2] - data.rect[0];\n var height = data.rect[3] - data.rect[1];\n var svg = this.svgFactory.create(width, height);\n var inkLists = data.inkLists;\n for (var i = 0, ii = inkLists.length; i < ii; i++) {\n var inkList = inkLists[i];\n var points = [];\n for (var j = 0, jj = inkList.length; j < jj; j++) {\n var x = inkList[j].x - data.rect[0];\n var y = data.rect[3] - inkList[j].y;\n points.push(x + ',' + y);\n }\n points = points.join(' ');\n var borderWidth = data.borderStyle.width;\n var polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute('points', points);\n polyline.setAttribute('stroke-width', borderWidth);\n polyline.setAttribute('stroke', 'transparent');\n polyline.setAttribute('fill', 'none');\n this._createPopup(this.container, polyline, data);\n svg.appendChild(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n }]);\n\n return InkAnnotationElement;\n}(AnnotationElement);\n\nvar HighlightAnnotationElement = function (_AnnotationElement10) {\n _inherits(HighlightAnnotationElement, _AnnotationElement10);\n\n function HighlightAnnotationElement(parameters) {\n _classCallCheck(this, HighlightAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (HighlightAnnotationElement.__proto__ || Object.getPrototypeOf(HighlightAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(HighlightAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'highlightAnnotation';\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return HighlightAnnotationElement;\n}(AnnotationElement);\n\nvar UnderlineAnnotationElement = function (_AnnotationElement11) {\n _inherits(UnderlineAnnotationElement, _AnnotationElement11);\n\n function UnderlineAnnotationElement(parameters) {\n _classCallCheck(this, UnderlineAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (UnderlineAnnotationElement.__proto__ || Object.getPrototypeOf(UnderlineAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(UnderlineAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'underlineAnnotation';\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return UnderlineAnnotationElement;\n}(AnnotationElement);\n\nvar SquigglyAnnotationElement = function (_AnnotationElement12) {\n _inherits(SquigglyAnnotationElement, _AnnotationElement12);\n\n function SquigglyAnnotationElement(parameters) {\n _classCallCheck(this, SquigglyAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (SquigglyAnnotationElement.__proto__ || Object.getPrototypeOf(SquigglyAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(SquigglyAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'squigglyAnnotation';\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return SquigglyAnnotationElement;\n}(AnnotationElement);\n\nvar StrikeOutAnnotationElement = function (_AnnotationElement13) {\n _inherits(StrikeOutAnnotationElement, _AnnotationElement13);\n\n function StrikeOutAnnotationElement(parameters) {\n _classCallCheck(this, StrikeOutAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (StrikeOutAnnotationElement.__proto__ || Object.getPrototypeOf(StrikeOutAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(StrikeOutAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'strikeoutAnnotation';\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return StrikeOutAnnotationElement;\n}(AnnotationElement);\n\nvar StampAnnotationElement = function (_AnnotationElement14) {\n _inherits(StampAnnotationElement, _AnnotationElement14);\n\n function StampAnnotationElement(parameters) {\n _classCallCheck(this, StampAnnotationElement);\n\n var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);\n return _possibleConstructorReturn(this, (StampAnnotationElement.__proto__ || Object.getPrototypeOf(StampAnnotationElement)).call(this, parameters, isRenderable, true));\n }\n\n _createClass(StampAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'stampAnnotation';\n if (!this.data.hasPopup) {\n this._createPopup(this.container, null, this.data);\n }\n return this.container;\n }\n }]);\n\n return StampAnnotationElement;\n}(AnnotationElement);\n\nvar FileAttachmentAnnotationElement = function (_AnnotationElement15) {\n _inherits(FileAttachmentAnnotationElement, _AnnotationElement15);\n\n function FileAttachmentAnnotationElement(parameters) {\n _classCallCheck(this, FileAttachmentAnnotationElement);\n\n var _this23 = _possibleConstructorReturn(this, (FileAttachmentAnnotationElement.__proto__ || Object.getPrototypeOf(FileAttachmentAnnotationElement)).call(this, parameters, true));\n\n var _this23$data$file = _this23.data.file,\n filename = _this23$data$file.filename,\n content = _this23$data$file.content;\n\n _this23.filename = (0, _dom_utils.getFilenameFromUrl)(filename);\n _this23.content = content;\n if (_this23.linkService.eventBus) {\n _this23.linkService.eventBus.dispatch('fileattachmentannotation', {\n source: _this23,\n id: (0, _util.stringToPDFString)(filename),\n filename: filename,\n content: content\n });\n }\n return _this23;\n }\n\n _createClass(FileAttachmentAnnotationElement, [{\n key: 'render',\n value: function render() {\n this.container.className = 'fileAttachmentAnnotation';\n var trigger = document.createElement('div');\n trigger.style.height = this.container.style.height;\n trigger.style.width = this.container.style.width;\n trigger.addEventListener('dblclick', this._download.bind(this));\n if (!this.data.hasPopup && (this.data.title || this.data.contents)) {\n this._createPopup(this.container, trigger, this.data);\n }\n this.container.appendChild(trigger);\n return this.container;\n }\n }, {\n key: '_download',\n value: function _download() {\n if (!this.downloadManager) {\n (0, _util.warn)('Download cannot be started due to unavailable download manager');\n return;\n }\n this.downloadManager.downloadData(this.content, this.filename, '');\n }\n }]);\n\n return FileAttachmentAnnotationElement;\n}(AnnotationElement);\n\nvar AnnotationLayer = function () {\n function AnnotationLayer() {\n _classCallCheck(this, AnnotationLayer);\n }\n\n _createClass(AnnotationLayer, null, [{\n key: 'render',\n value: function render(parameters) {\n for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {\n var data = parameters.annotations[i];\n if (!data) {\n continue;\n }\n var element = AnnotationElementFactory.create({\n data: data,\n layer: parameters.div,\n page: parameters.page,\n viewport: parameters.viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || '',\n renderInteractiveForms: parameters.renderInteractiveForms || false,\n svgFactory: new _dom_utils.DOMSVGFactory()\n });\n if (element.isRenderable) {\n parameters.div.appendChild(element.render());\n }\n }\n }\n }, {\n key: 'update',\n value: function update(parameters) {\n for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {\n var data = parameters.annotations[i];\n var element = parameters.div.querySelector('[data-annotation-id=\"' + data.id + '\"]');\n if (element) {\n element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')';\n }\n }\n parameters.div.removeAttribute('hidden');\n }\n }]);\n\n return AnnotationLayer;\n}();\n\nexports.AnnotationLayer = AnnotationLayer;\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.SVGGraphics = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _dom_utils = __w_pdfjs_require__(130);\n\nvar _is_node = __w_pdfjs_require__(4);\n\nvar _is_node2 = _interopRequireDefault(_is_node);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar SVGGraphics = function SVGGraphics() {\n throw new Error('Not implemented: SVGGraphics');\n};\n{\n var SVG_DEFAULTS = {\n fontStyle: 'normal',\n fontWeight: 'normal',\n fillColor: '#000000'\n };\n var convertImgDataToPng = function convertImgDataToPngClosure() {\n var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n var CHUNK_WRAPPER_SIZE = 12;\n var crcTable = new Int32Array(256);\n for (var i = 0; i < 256; i++) {\n var c = i;\n for (var h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedB88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n crcTable[i] = c;\n }\n function crc32(data, start, end) {\n var crc = -1;\n for (var i = start; i < end; i++) {\n var a = (crc ^ data[i]) & 0xff;\n var b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n return crc ^ -1;\n }\n function writePngChunk(type, body, data, offset) {\n var p = offset;\n var len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n var crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n function adler32(data, start, end) {\n var a = 1;\n var b = 0;\n for (var i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return b << 16 | a;\n }\n function deflateSync(literals) {\n if (!(0, _is_node2.default)()) {\n return deflateSyncUncompressed(literals);\n }\n try {\n var input;\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = new Buffer(literals);\n }\n var output = require('zlib').deflateSync(input, { level: 9 });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);\n }\n return deflateSyncUncompressed(literals);\n }\n function deflateSyncUncompressed(literals) {\n var len = literals.length;\n var maxBlockLength = 0xFFFF;\n var deflateBlocks = Math.ceil(len / maxBlockLength);\n var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n var pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n var pos = 0;\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n var adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n function encode(imgData, kind, forceDataSchema, isMask) {\n var width = imgData.width;\n var height = imgData.height;\n var bitDepth, colorType, lineSize;\n var bytes = imgData.data;\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error('invalid format');\n }\n var literals = new Uint8Array((1 + lineSize) * height);\n var offsetLiterals = 0,\n offsetBytes = 0;\n var y, i;\n for (y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n for (y = 0; y < height; y++) {\n offsetLiterals++;\n for (i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xFF;\n }\n }\n }\n var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n var idat = deflateSync(literals);\n var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n var data = new Uint8Array(pngLength);\n var offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk('IHDR', ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk('IDATA', idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk('IEND', new Uint8Array(0), data, offset);\n return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema);\n }\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n var SVGExtraState = function SVGExtraStateClosure() {\n function SVGExtraState() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = '#000000';\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = '';\n this.lineCap = '';\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = '';\n }\n SVGExtraState.prototype = {\n clone: function SVGExtraState_clone() {\n return Object.create(this);\n },\n setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n };\n return SVGExtraState;\n }();\n exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() {\n function opListToTree(opList) {\n var opTree = [];\n var tmp = [];\n var opListLen = opList.length;\n for (var x = 0; x < opListLen; x++) {\n if (opList[x].fn === 'save') {\n opTree.push({\n 'fnId': 92,\n 'fn': 'group',\n 'items': []\n });\n tmp.push(opTree);\n opTree = opTree[opTree.length - 1].items;\n continue;\n }\n if (opList[x].fn === 'restore') {\n opTree = tmp.pop();\n } else {\n opTree.push(opList[x]);\n }\n }\n return opTree;\n }\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n var s = value.toFixed(10);\n var i = s.length - 1;\n if (s[i] !== '0') {\n return s;\n }\n do {\n i--;\n } while (s[i] === '0');\n return s.substring(0, s[i] === '.' ? i : i + 1);\n }\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return '';\n }\n return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n var a = Math.acos(m[0]) * 180 / Math.PI;\n return 'rotate(' + pf(a) + ')';\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n }\n }\n return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';\n }\n function SVGGraphics(commonObjs, objs, forceDataSchema) {\n this.svgFactory = new _dom_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n }\n var XML_NS = 'http://www.w3.org/XML/1998/namespace';\n var XLINK_NS = 'http://www.w3.org/1999/xlink';\n var LINE_CAP_STYLES = ['butt', 'round', 'square'];\n var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];\n var clipCount = 0;\n var maskCount = 0;\n SVGGraphics.prototype = {\n save: function SVGGraphics_save() {\n this.transformStack.push(this.transformMatrix);\n var old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n },\n restore: function SVGGraphics_restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n },\n group: function SVGGraphics_group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n },\n loadDependencies: function SVGGraphics_loadDependencies(operatorList) {\n var _this = this;\n\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var argsArray = operatorList.argsArray;\n for (var i = 0; i < fnArrayLen; i++) {\n if (_util.OPS.dependency === fnArray[i]) {\n var deps = argsArray[i];\n for (var n = 0, nn = deps.length; n < nn; n++) {\n var obj = deps[n];\n var common = obj.substring(0, 2) === 'g_';\n var promise;\n if (common) {\n promise = new Promise(function (resolve) {\n _this.commonObjs.get(obj, resolve);\n });\n } else {\n promise = new Promise(function (resolve) {\n _this.objs.get(obj, resolve);\n });\n }\n this.current.dependencies.push(promise);\n }\n }\n }\n return Promise.all(this.current.dependencies);\n },\n transform: function SVGGraphics_transform(a, b, c, d, e, f) {\n var transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n },\n getSVG: function SVGGraphics_getSVG(operatorList, viewport) {\n var _this2 = this;\n\n this.viewport = viewport;\n var svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(function () {\n _this2.transformMatrix = _util.IDENTITY_MATRIX;\n var opTree = _this2.convertOpList(operatorList);\n _this2.executeOpTree(opTree);\n return svgElement;\n });\n },\n convertOpList: function SVGGraphics_convertOpList(operatorList) {\n var argsArray = operatorList.argsArray;\n var fnArray = operatorList.fnArray;\n var fnArrayLen = fnArray.length;\n var REVOPS = [];\n var opList = [];\n for (var op in _util.OPS) {\n REVOPS[_util.OPS[op]] = op;\n }\n for (var x = 0; x < fnArrayLen; x++) {\n var fnId = fnArray[x];\n opList.push({\n 'fnId': fnId,\n 'fn': REVOPS[fnId],\n 'args': argsArray[x]\n });\n }\n return opListToTree(opList);\n },\n executeOpTree: function SVGGraphics_executeOpTree(opTree) {\n var opTreeLen = opTree.length;\n for (var x = 0; x < opTreeLen; x++) {\n var fn = opTree[x].fn;\n var fnId = opTree[x].fnId;\n var args = opTree[x].args;\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n case _util.OPS.dependency:\n break;\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case _util.OPS.endText:\n this.endText();\n break;\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n case _util.OPS.fill:\n this.fill();\n break;\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n case _util.OPS.stroke:\n this.stroke();\n break;\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case _util.OPS.clip:\n this.clip('nonzero');\n break;\n case _util.OPS.eoClip:\n this.clip('evenodd');\n break;\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case _util.OPS.paintJpegXObject:\n this.paintJpegXObject(args[0], args[1], args[2]);\n break;\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case _util.OPS.closePath:\n this.closePath();\n break;\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case _util.OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTree[x].items);\n break;\n default:\n (0, _util.warn)('Unimplemented operator ' + fn);\n break;\n }\n }\n },\n setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n },\n setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n },\n nextLine: function SVGGraphics_nextLine() {\n this.moveText(0, this.current.leading);\n },\n setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {\n var current = this.current;\n this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.txtElement = this.svgFactory.createElement('svg:text');\n current.txtElement.appendChild(current.tspan);\n },\n beginText: function SVGGraphics_beginText() {\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.lineMatrix = _util.IDENTITY_MATRIX;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.txtElement = this.svgFactory.createElement('svg:text');\n this.current.txtgrp = this.svgFactory.createElement('svg:g');\n this.current.xcoords = [];\n },\n moveText: function SVGGraphics_moveText(x, y) {\n var current = this.current;\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n current.xcoords = [];\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n },\n showText: function SVGGraphics_showText(glyphs) {\n var current = this.current;\n var font = current.font;\n var fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n var charSpacing = current.charSpacing;\n var wordSpacing = current.wordSpacing;\n var fontDirection = current.fontDirection;\n var textHScale = current.textHScale * fontDirection;\n var glyphsLength = glyphs.length;\n var vertical = font.vertical;\n var widthAdvanceScale = fontSize * current.fontMatrix[0];\n var x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n var glyph = glyphs[i];\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if ((0, _util.isNum)(glyph)) {\n x += -glyph * fontSize * 0.001;\n continue;\n }\n var width = glyph.width;\n var character = glyph.fontChar;\n var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n var charWidth = width * widthAdvanceScale + spacing * fontDirection;\n if (!glyph.isInFont && !font.missingFile) {\n x += charWidth;\n continue;\n }\n current.xcoords.push(current.x + x * textHScale);\n current.tspan.textContent += character;\n x += charWidth;\n }\n if (vertical) {\n current.y -= x * textHScale;\n } else {\n current.x += x * textHScale;\n }\n current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' '));\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);\n current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);\n }\n var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, 'fill', current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, 'fill', 'transparent');\n } else {\n current.tspan.setAttributeNS(null, 'fill', 'none');\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n this._setStrokeAttributes(current.tspan);\n }\n var textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)');\n current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');\n current.txtElement.appendChild(current.tspan);\n current.txtgrp.appendChild(current.txtElement);\n this._ensureTransformGroup().appendChild(current.txtElement);\n },\n setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n },\n addFontStyle: function SVGGraphics_addFontStyle(fontObj) {\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement('svg:style');\n this.cssStyle.setAttributeNS(null, 'type', 'text/css');\n this.defs.appendChild(this.cssStyle);\n }\n var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += '@font-face { font-family: \"' + fontObj.loadedName + '\";' + ' src: url(' + url + '); }\\n';\n },\n setFont: function SVGGraphics_setFont(details) {\n var current = this.current;\n var fontObj = this.commonObjs.get(details[0]);\n var size = details[1];\n this.current.font = fontObj;\n if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;\n var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal';\n var italic = fontObj.italic ? 'italic' : 'normal';\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement('svg:tspan');\n current.tspan.setAttributeNS(null, 'y', pf(-current.y));\n current.xcoords = [];\n },\n endText: function endText() {\n var current = this.current;\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip('nonzero');\n this.endPath();\n }\n },\n\n setLineWidth: function SVGGraphics_setLineWidth(width) {\n this.current.lineWidth = width;\n },\n setLineCap: function SVGGraphics_setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n },\n setLineJoin: function SVGGraphics_setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n },\n setMiterLimit: function SVGGraphics_setMiterLimit(limit) {\n this.current.miterLimit = limit;\n },\n setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n },\n setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n this.current.strokeColor = color;\n },\n setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n },\n setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {\n var color = _util.Util.makeCssRgb(r, g, b);\n this.current.fillColor = color;\n this.current.tspan = this.svgFactory.createElement('svg:tspan');\n this.current.xcoords = [];\n },\n setDash: function SVGGraphics_setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n },\n constructPath: function SVGGraphics_constructPath(ops, args) {\n var current = this.current;\n var x = current.x,\n y = current.y;\n current.path = this.svgFactory.createElement('svg:path');\n var d = [];\n var opLength = ops.length;\n for (var i = 0, j = 0; i < opLength; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n var width = args[j++];\n var height = args[j++];\n var xw = x + width;\n var yh = y + height;\n d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z');\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push('M', pf(x), pf(y));\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push('L', pf(x), pf(y));\n break;\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n case _util.OPS.curveTo2:\n x = args[j + 2];\n y = args[j + 3];\n d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n j += 4;\n break;\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n case _util.OPS.closePath:\n d.push('Z');\n break;\n }\n }\n current.path.setAttributeNS(null, 'd', d.join(' '));\n current.path.setAttributeNS(null, 'fill', 'none');\n this._ensureTransformGroup().appendChild(current.path);\n current.element = current.path;\n current.setCurrentPoint(x, y);\n },\n endPath: function SVGGraphics_endPath() {\n if (!this.pendingClip) {\n return;\n }\n var current = this.current;\n var clipId = 'clippath' + clipCount;\n clipCount++;\n var clipPath = this.svgFactory.createElement('svg:clipPath');\n clipPath.setAttributeNS(null, 'id', clipId);\n clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n var clipElement = current.element.cloneNode(true);\n if (this.pendingClip === 'evenodd') {\n clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');\n } else {\n clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');\n }\n this.pendingClip = null;\n clipPath.appendChild(clipElement);\n this.defs.appendChild(clipPath);\n if (current.activeClipUrl) {\n current.clipGroup = null;\n this.extraStack.forEach(function (prev) {\n prev.clipGroup = null;\n });\n clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);\n }\n current.activeClipUrl = 'url(#' + clipId + ')';\n this.tgrp = null;\n },\n clip: function SVGGraphics_clip(type) {\n this.pendingClip = type;\n },\n closePath: function SVGGraphics_closePath() {\n var current = this.current;\n if (current.path) {\n var d = current.path.getAttributeNS(null, 'd');\n d += 'Z';\n current.path.setAttributeNS(null, 'd', d);\n }\n },\n setLeading: function SVGGraphics_setLeading(leading) {\n this.current.leading = -leading;\n },\n setTextRise: function SVGGraphics_setTextRise(textRise) {\n this.current.textRise = textRise;\n },\n setTextRenderingMode: function setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n },\n\n setHScale: function SVGGraphics_setHScale(scale) {\n this.current.textHScale = scale / 100;\n },\n setGState: function SVGGraphics_setGState(states) {\n for (var i = 0, ii = states.length; i < ii; i++) {\n var state = states[i];\n var key = state[0];\n var value = state[1];\n switch (key) {\n case 'LW':\n this.setLineWidth(value);\n break;\n case 'LC':\n this.setLineCap(value);\n break;\n case 'LJ':\n this.setLineJoin(value);\n break;\n case 'ML':\n this.setMiterLimit(value);\n break;\n case 'D':\n this.setDash(value[0], value[1]);\n break;\n case 'Font':\n this.setFont(value);\n break;\n case 'CA':\n this.setStrokeAlpha(value);\n break;\n case 'ca':\n this.setFillAlpha(value);\n break;\n default:\n (0, _util.warn)('Unimplemented graphic state ' + key);\n break;\n }\n }\n },\n fill: function SVGGraphics_fill() {\n var current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, 'fill', current.fillColor);\n current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);\n this.endPath();\n }\n },\n stroke: function SVGGraphics_stroke() {\n var current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, 'fill', 'none');\n this.endPath();\n }\n },\n _setStrokeAttributes: function _setStrokeAttributes(element) {\n var current = this.current;\n element.setAttributeNS(null, 'stroke', current.strokeColor);\n element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);\n element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit));\n element.setAttributeNS(null, 'stroke-linecap', current.lineCap);\n element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);\n element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px');\n element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' '));\n element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px');\n },\n\n eoFill: function SVGGraphics_eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fill();\n },\n fillStroke: function SVGGraphics_fillStroke() {\n this.stroke();\n this.fill();\n },\n eoFillStroke: function SVGGraphics_eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');\n }\n this.fillStroke();\n },\n closeStroke: function SVGGraphics_closeStroke() {\n this.closePath();\n this.stroke();\n },\n closeFillStroke: function SVGGraphics_closeFillStroke() {\n this.closePath();\n this.fillStroke();\n },\n closeEOFillStroke: function closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n },\n\n paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() {\n var current = this.current;\n var rect = this.svgFactory.createElement('svg:rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', '1px');\n rect.setAttributeNS(null, 'height', '1px');\n rect.setAttributeNS(null, 'fill', current.fillColor);\n this._ensureTransformGroup().appendChild(rect);\n },\n paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) {\n var imgObj = this.objs.get(objId);\n var imgEl = this.svgFactory.createElement('svg:image');\n imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);\n imgEl.setAttributeNS(null, 'width', pf(w));\n imgEl.setAttributeNS(null, 'height', pf(h));\n imgEl.setAttributeNS(null, 'x', '0');\n imgEl.setAttributeNS(null, 'y', pf(-h));\n imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');\n this._ensureTransformGroup().appendChild(imgEl);\n },\n paintImageXObject: function SVGGraphics_paintImageXObject(objId) {\n var imgData = this.objs.get(objId);\n if (!imgData) {\n (0, _util.warn)('Dependent image isn\\'t ready yet');\n return;\n }\n this.paintInlineImageXObject(imgData);\n },\n paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) {\n var width = imgData.width;\n var height = imgData.height;\n var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n var cliprect = this.svgFactory.createElement('svg:rect');\n cliprect.setAttributeNS(null, 'x', '0');\n cliprect.setAttributeNS(null, 'y', '0');\n cliprect.setAttributeNS(null, 'width', pf(width));\n cliprect.setAttributeNS(null, 'height', pf(height));\n this.current.element = cliprect;\n this.clip('nonzero');\n var imgEl = this.svgFactory.createElement('svg:image');\n imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);\n imgEl.setAttributeNS(null, 'x', '0');\n imgEl.setAttributeNS(null, 'y', pf(-height));\n imgEl.setAttributeNS(null, 'width', pf(width) + 'px');\n imgEl.setAttributeNS(null, 'height', pf(height) + 'px');\n imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')');\n if (mask) {\n mask.appendChild(imgEl);\n } else {\n this._ensureTransformGroup().appendChild(imgEl);\n }\n },\n paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) {\n var current = this.current;\n var width = imgData.width;\n var height = imgData.height;\n var fillColor = current.fillColor;\n current.maskId = 'mask' + maskCount++;\n var mask = this.svgFactory.createElement('svg:mask');\n mask.setAttributeNS(null, 'id', current.maskId);\n var rect = this.svgFactory.createElement('svg:rect');\n rect.setAttributeNS(null, 'x', '0');\n rect.setAttributeNS(null, 'y', '0');\n rect.setAttributeNS(null, 'width', pf(width));\n rect.setAttributeNS(null, 'height', pf(height));\n rect.setAttributeNS(null, 'fill', fillColor);\n rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')');\n this.defs.appendChild(mask);\n this._ensureTransformGroup().appendChild(rect);\n this.paintInlineImageXObject(imgData, mask);\n },\n paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n if (Array.isArray(bbox) && bbox.length === 4) {\n var width = bbox[2] - bbox[0];\n var height = bbox[3] - bbox[1];\n var cliprect = this.svgFactory.createElement('svg:rect');\n cliprect.setAttributeNS(null, 'x', bbox[0]);\n cliprect.setAttributeNS(null, 'y', bbox[1]);\n cliprect.setAttributeNS(null, 'width', pf(width));\n cliprect.setAttributeNS(null, 'height', pf(height));\n this.current.element = cliprect;\n this.clip('nonzero');\n this.endPath();\n }\n },\n paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {},\n _initialize: function _initialize(viewport) {\n var svg = this.svgFactory.create(viewport.width, viewport.height);\n var definitions = this.svgFactory.createElement('svg:defs');\n svg.appendChild(definitions);\n this.defs = definitions;\n var rootGroup = this.svgFactory.createElement('svg:g');\n rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));\n svg.appendChild(rootGroup);\n this.svg = rootGroup;\n return svg;\n },\n\n _ensureClipGroup: function SVGGraphics_ensureClipGroup() {\n if (!this.current.clipGroup) {\n var clipGroup = this.svgFactory.createElement('svg:g');\n clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl);\n this.svg.appendChild(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n },\n _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement('svg:g');\n this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().appendChild(this.tgrp);\n } else {\n this.svg.appendChild(this.tgrp);\n }\n }\n return this.tgrp;\n }\n };\n return SVGGraphics;\n }();\n}\nexports.SVGGraphics = SVGGraphics;\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.PDFNodeStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\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__(1);\n\nvar _network_utils = __w_pdfjs_require__(149);\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 fs = require('fs');\nvar http = require('http');\nvar https = require('https');\nvar url = require('url');\n\nvar fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n var parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === 'file:' || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse('file:///' + sourceUrl);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = 'file:';\n }\n return parsedUrl;\n}\n\nvar PDFNodeStream = function () {\n function PDFNodeStream(source) {\n _classCallCheck(this, PDFNodeStream);\n\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:';\n this.isFsUrl = this.url.protocol === 'file:';\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequest = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFNodeStream, [{\n key: 'getFullReader',\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequest);\n this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequest;\n }\n }, {\n key: 'getRangeReader',\n value: function getRangeReader(start, end) {\n var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n }, {\n key: 'cancelAllRequests',\n value: function cancelAllRequests(reason) {\n if (this._fullRequest) {\n this._fullRequest.cancel(reason);\n }\n var readers = this._rangeRequestReaders.slice(0);\n readers.forEach(function (reader) {\n reader.cancel(reason);\n });\n }\n }]);\n\n return PDFNodeStream;\n}();\n\nvar BaseFullReader = function () {\n function BaseFullReader(stream) {\n _classCallCheck(this, BaseFullReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n var source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n _createClass(BaseFullReader, [{\n key: 'read',\n value: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, buffer;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context.next = 4;\n break;\n }\n\n return _context.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context.abrupt('return', this.read());\n\n case 10:\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n buffer = new Uint8Array(chunk).buffer;\n return _context.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 14:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n }, {\n key: '_error',\n value: function _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n }, {\n key: '_setReadableStream',\n value: function _setReadableStream(readableStream) {\n var _this = this;\n\n this._readableStream = readableStream;\n readableStream.on('readable', function () {\n _this._readCapability.resolve();\n });\n readableStream.on('end', function () {\n readableStream.destroy();\n _this._done = true;\n _this._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException('streaming is disabled'));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }, {\n key: 'headersReady',\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: 'filename',\n get: function get() {\n return this._filename;\n }\n }, {\n key: 'contentLength',\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: 'isRangeSupported',\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return BaseFullReader;\n}();\n\nvar BaseRangeReader = function () {\n function BaseRangeReader(stream) {\n _classCallCheck(this, BaseRangeReader);\n\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n var source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n _createClass(BaseRangeReader, [{\n key: 'read',\n value: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, buffer;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n if (!this._done) {\n _context2.next = 4;\n break;\n }\n\n return _context2.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 4:\n if (!this._storedError) {\n _context2.next = 6;\n break;\n }\n\n throw this._storedError;\n\n case 6:\n chunk = this._readableStream.read();\n\n if (!(chunk === null)) {\n _context2.next = 10;\n break;\n }\n\n this._readCapability = (0, _util.createPromiseCapability)();\n return _context2.abrupt('return', this.read());\n\n case 10:\n this._loaded += chunk.length;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\n }\n buffer = new Uint8Array(chunk).buffer;\n return _context2.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 14:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref2.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n }, {\n key: '_error',\n value: function _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n }, {\n key: '_setReadableStream',\n value: function _setReadableStream(readableStream) {\n var _this2 = this;\n\n this._readableStream = readableStream;\n readableStream.on('readable', function () {\n _this2._readCapability.resolve();\n });\n readableStream.on('end', function () {\n readableStream.destroy();\n _this2._done = true;\n _this2._readCapability.resolve();\n });\n readableStream.on('error', function (reason) {\n _this2._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return BaseRangeReader;\n}();\n\nfunction createRequestOptions(url, headers) {\n return {\n protocol: url.protocol,\n auth: url.auth,\n host: url.hostname,\n port: url.port,\n path: url.path,\n method: 'GET',\n headers: headers\n };\n}\n\nvar PDFNodeStreamFullReader = function (_BaseFullReader) {\n _inherits(PDFNodeStreamFullReader, _BaseFullReader);\n\n function PDFNodeStreamFullReader(stream) {\n _classCallCheck(this, PDFNodeStreamFullReader);\n\n var _this3 = _possibleConstructorReturn(this, (PDFNodeStreamFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFullReader)).call(this, stream));\n\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException('Missing PDF \"' + _this3._url + '\".');\n _this3._storedError = error;\n _this3._headersCapability.reject(error);\n return;\n }\n _this3._headersCapability.resolve();\n _this3._setReadableStream(response);\n var getResponseHeader = function getResponseHeader(name) {\n return _this3._readableStream.headers[name.toLowerCase()];\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: _this3._rangeChunkSize,\n disableRange: _this3._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this3._isRangeSupported = allowRangeRequests;\n _this3._contentLength = suggestedLength || _this3._contentLength;\n _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n _this3._request = null;\n if (_this3._url.protocol === 'http:') {\n _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n } else {\n _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);\n }\n _this3._request.on('error', function (reason) {\n _this3._storedError = reason;\n _this3._headersCapability.reject(reason);\n });\n _this3._request.end();\n return _this3;\n }\n\n return PDFNodeStreamFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamRangeReader = function (_BaseRangeReader) {\n _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);\n\n function PDFNodeStreamRangeReader(stream, start, end) {\n _classCallCheck(this, PDFNodeStreamRangeReader);\n\n var _this4 = _possibleConstructorReturn(this, (PDFNodeStreamRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamRangeReader)).call(this, stream));\n\n _this4._httpHeaders = {};\n for (var property in stream.httpHeaders) {\n var value = stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n _this4._httpHeaders[property] = value;\n }\n _this4._httpHeaders['Range'] = 'bytes=' + start + '-' + (end - 1);\n var handleResponse = function handleResponse(response) {\n if (response.statusCode === 404) {\n var error = new _util.MissingPDFException('Missing PDF \"' + _this4._url + '\".');\n _this4._storedError = error;\n return;\n }\n _this4._setReadableStream(response);\n };\n _this4._request = null;\n if (_this4._url.protocol === 'http:') {\n _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n } else {\n _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);\n }\n _this4._request.on('error', function (reason) {\n _this4._storedError = reason;\n });\n _this4._request.end();\n return _this4;\n }\n\n return PDFNodeStreamRangeReader;\n}(BaseRangeReader);\n\nvar PDFNodeStreamFsFullReader = function (_BaseFullReader2) {\n _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);\n\n function PDFNodeStreamFsFullReader(stream) {\n _classCallCheck(this, PDFNodeStreamFsFullReader);\n\n var _this5 = _possibleConstructorReturn(this, (PDFNodeStreamFsFullReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsFullReader)).call(this, stream));\n\n var path = decodeURIComponent(_this5._url.path);\n if (fileUriRegex.test(_this5._url.href)) {\n path = path.replace(/^\\//, '');\n }\n fs.lstat(path, function (error, stat) {\n if (error) {\n if (error.code === 'ENOENT') {\n error = new _util.MissingPDFException('Missing PDF \"' + path + '\".');\n }\n _this5._storedError = error;\n _this5._headersCapability.reject(error);\n return;\n }\n _this5._contentLength = stat.size;\n _this5._setReadableStream(fs.createReadStream(path));\n _this5._headersCapability.resolve();\n });\n return _this5;\n }\n\n return PDFNodeStreamFsFullReader;\n}(BaseFullReader);\n\nvar PDFNodeStreamFsRangeReader = function (_BaseRangeReader2) {\n _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);\n\n function PDFNodeStreamFsRangeReader(stream, start, end) {\n _classCallCheck(this, PDFNodeStreamFsRangeReader);\n\n var _this6 = _possibleConstructorReturn(this, (PDFNodeStreamFsRangeReader.__proto__ || Object.getPrototypeOf(PDFNodeStreamFsRangeReader)).call(this, stream));\n\n var path = decodeURIComponent(_this6._url.path);\n if (fileUriRegex.test(_this6._url.href)) {\n path = path.replace(/^\\//, '');\n }\n _this6._setReadableStream(fs.createReadStream(path, {\n start: start,\n end: end - 1\n }));\n return _this6;\n }\n\n return PDFNodeStreamFsRangeReader;\n}(BaseRangeReader);\n\nexports.PDFNodeStream = PDFNodeStream;\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.validateResponseStatus = exports.validateRangeRequestCapabilities = exports.extractFilenameFromHeader = exports.createResponseStatusError = undefined;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _content_disposition = __w_pdfjs_require__(150);\n\nfunction validateRangeRequestCapabilities(_ref) {\n var getResponseHeader = _ref.getResponseHeader,\n isHttp = _ref.isHttp,\n rangeChunkSize = _ref.rangeChunkSize,\n disableRange = _ref.disableRange;\n\n (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero');\n var returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n var length = parseInt(getResponseHeader('Content-Length'), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader('Accept-Ranges') !== 'bytes') {\n return returnValues;\n }\n var contentEncoding = getResponseHeader('Content-Encoding') || 'identity';\n if (contentEncoding !== 'identity') {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n var contentDisposition = getResponseHeader('Content-Disposition');\n if (contentDisposition) {\n var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n if (/\\.pdf$/i.test(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && /^file:/.test(url)) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF \"' + url + '\".', status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\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});\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\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n var needsEncodingFixup = true;\n var tmp = toParamRegExp('filename\\\\*', 'i').exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n var filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n var _filename = rfc2047decode(tmp);\n return fixupEncoding(_filename);\n }\n tmp = toParamRegExp('filename', 'i').exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n var _filename2 = rfc2616unquote(tmp);\n _filename2 = rfc2047decode(_filename2);\n return fixupEncoding(_filename2);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp('(?:^|;)\\\\s*' + attributePattern + '\\\\s*=\\\\s*' + '(' + '[^\";\\\\s][^;\\\\s]*' + '|' + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + ')', flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n var decoder = new TextDecoder(encoding, { fatal: true });\n var bytes = new Array(value.length);\n for (var i = 0; i < value.length; ++i) {\n bytes[i] = value.charCodeAt(i);\n }\n value = decoder.decode(new Uint8Array(bytes));\n needsEncodingFixup = false;\n } catch (e) {\n if (/^utf-?8$/i.test(encoding)) {\n try {\n value = decodeURIComponent(escape(value));\n needsEncodingFixup = false;\n } catch (err) {}\n }\n }\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode('utf-8', value);\n if (needsEncodingFixup) {\n value = textdecode('iso-8859-1', value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDisposition) {\n var matches = [],\n match = void 0;\n var iter = toParamRegExp('filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)', 'ig');\n while ((match = iter.exec(contentDisposition)) !== null) {\n var _match = match,\n _match2 = _slicedToArray(_match, 4),\n n = _match2[1],\n quot = _match2[2],\n part = _match2[3];\n\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n var parts = [];\n for (var _n = 0; _n < matches.length; ++_n) {\n if (!(_n in matches)) {\n break;\n }\n\n var _matches$_n = _slicedToArray(matches[_n], 2),\n _quot = _matches$_n[0],\n _part = _matches$_n[1];\n\n _part = rfc2616unquote(_part);\n if (_quot) {\n _part = unescape(_part);\n if (_n === 0) {\n _part = rfc5987decode(_part);\n }\n }\n parts.push(_part);\n }\n return parts.join('');\n }\n function rfc2616unquote(value) {\n if (value.charAt(0) === '\"') {\n var parts = value.slice(1).split('\\\\\"');\n for (var i = 0; i < parts.length; ++i) {\n var quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replace(/\\\\(.)/g, '$1');\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n var encodingend = extvalue.indexOf('\\'');\n if (encodingend === -1) {\n return extvalue;\n }\n var encoding = extvalue.slice(0, encodingend);\n var langvalue = extvalue.slice(encodingend + 1);\n var value = langvalue.replace(/^[^']*'/, '');\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (value.slice(0, 2) !== '=?' || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (_, charset, encoding, text) {\n if (encoding === 'q' || encoding === 'Q') {\n text = text.replace(/_/g, ' ');\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch (e) {}\n return textdecode(charset, text);\n });\n }\n return '';\n}\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\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.PDFFetchStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\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__(1);\n\nvar _network_utils = __w_pdfjs_require__(149);\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: 'GET',\n headers: headers,\n signal: abortController && abortController.signal,\n mode: 'cors',\n credentials: withCredentials ? 'include' : 'same-origin',\n redirect: 'follow'\n };\n}\n\nvar PDFFetchStream = function () {\n function PDFFetchStream(source) {\n _classCallCheck(this, PDFFetchStream);\n\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _createClass(PDFFetchStream, [{\n key: 'getFullReader',\n value: function getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n }, {\n key: 'getRangeReader',\n value: function getRangeReader(begin, end) {\n var reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n }, {\n key: 'cancelAllRequests',\n value: 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\n return PDFFetchStream;\n}();\n\nvar PDFFetchStreamReader = function () {\n function PDFFetchStreamReader(stream) {\n var _this = this;\n\n _classCallCheck(this, PDFFetchStreamReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n var source = stream.source;\n this._withCredentials = source.withCredentials;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = new Headers();\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\n }\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n _this._reader = response.body.getReader();\n _this._headersCapability.resolve();\n var getResponseHeader = function getResponseHeader(name) {\n return response.headers.get(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: _this._stream.isHttp,\n rangeChunkSize: _this._rangeChunkSize,\n disableRange: _this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n _this._isRangeSupported = allowRangeRequests;\n _this._contentLength = suggestedLength || _this._contentLength;\n _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (!_this._isStreamingSupported && _this._isRangeSupported) {\n _this.cancel(new _util.AbortException('streaming is disabled'));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamReader, [{\n key: 'read',\n value: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var _ref2, value, done, buffer;\n\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return this._headersCapability.promise;\n\n case 2:\n _context.next = 4;\n return this._reader.read();\n\n case 4:\n _ref2 = _context.sent;\n value = _ref2.value;\n done = _ref2.done;\n\n if (!done) {\n _context.next = 9;\n break;\n }\n\n return _context.abrupt('return', {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n buffer = new Uint8Array(value).buffer;\n return _context.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 13:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }, {\n key: 'headersReady',\n get: function get() {\n return this._headersCapability.promise;\n }\n }, {\n key: 'filename',\n get: function get() {\n return this._filename;\n }\n }, {\n key: 'contentLength',\n get: function get() {\n return this._contentLength;\n }\n }, {\n key: 'isRangeSupported',\n get: function get() {\n return this._isRangeSupported;\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return PDFFetchStreamReader;\n}();\n\nvar PDFFetchStreamRangeReader = function () {\n function PDFFetchStreamRangeReader(stream, begin, end) {\n var _this2 = this;\n\n _classCallCheck(this, PDFFetchStreamRangeReader);\n\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n var source = stream.source;\n this._withCredentials = source.withCredentials;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n if (typeof AbortController !== 'undefined') {\n this._abortController = new AbortController();\n }\n this._headers = new Headers();\n for (var property in this._stream.httpHeaders) {\n var value = this._stream.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n this._headers.append(property, value);\n }\n var rangeStr = begin + '-' + (end - 1);\n this._headers.append('Range', 'bytes=' + rangeStr);\n var url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n _this2._readCapability.resolve();\n _this2._reader = response.body.getReader();\n });\n this.onProgress = null;\n }\n\n _createClass(PDFFetchStreamRangeReader, [{\n key: 'read',\n value: function () {\n var _ref3 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var _ref4, value, done, buffer;\n\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n _context2.next = 2;\n return this._readCapability.promise;\n\n case 2:\n _context2.next = 4;\n return this._reader.read();\n\n case 4:\n _ref4 = _context2.sent;\n value = _ref4.value;\n done = _ref4.done;\n\n if (!done) {\n _context2.next = 9;\n break;\n }\n\n return _context2.abrupt('return', {\n value: value,\n done: done\n });\n\n case 9:\n this._loaded += value.byteLength;\n if (this.onProgress) {\n this.onProgress({ loaded: this._loaded });\n }\n buffer = new Uint8Array(value).buffer;\n return _context2.abrupt('return', {\n value: buffer,\n done: false\n });\n\n case 13:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref3.apply(this, arguments);\n }\n\n return read;\n }()\n }, {\n key: 'cancel',\n value: function cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n }, {\n key: 'isStreamingSupported',\n get: function get() {\n return this._isStreamingSupported;\n }\n }]);\n\n return PDFFetchStreamRangeReader;\n}();\n\nexports.PDFFetchStream = PDFFetchStream;\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.NetworkManager = exports.PDFNetworkStream = undefined;\n\nvar _regenerator = __w_pdfjs_require__(137);\n\nvar _regenerator2 = _interopRequireDefault(_regenerator);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(149);\n\nvar _global_scope = __w_pdfjs_require__(3);\n\nvar _global_scope2 = _interopRequireDefault(_global_scope);\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\n;\nvar OK_RESPONSE = 200;\nvar PARTIAL_CONTENT_RESPONSE = 206;\nfunction NetworkManager(url, args) {\n this.url = url;\n args = args || {};\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || {};\n this.withCredentials = args.withCredentials || false;\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n this.loadedRequests = Object.create(null);\n}\nfunction getArrayBuffer(xhr) {\n var data = xhr.response;\n if (typeof data !== 'string') {\n return data;\n }\n var array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\nvar supportsMozChunked = function supportsMozChunkedClosure() {\n try {\n var x = new XMLHttpRequest();\n x.open('GET', _global_scope2.default.location.href);\n x.responseType = 'moz-chunked-arraybuffer';\n return x.responseType === 'moz-chunked-arraybuffer';\n } catch (e) {\n return false;\n }\n}();\nNetworkManager.prototype = {\n requestRange: function NetworkManager_requestRange(begin, end, listeners) {\n var args = {\n begin: begin,\n end: end\n };\n for (var prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n },\n requestFull: function NetworkManager_requestFull(listeners) {\n return this.request(listeners);\n },\n request: function NetworkManager_request(args) {\n var xhr = this.getXhr();\n var xhrId = this.currXhrId++;\n var pendingRequest = this.pendingRequests[xhrId] = { xhr: xhr };\n xhr.open('GET', this.url);\n xhr.withCredentials = this.withCredentials;\n for (var property in this.httpHeaders) {\n var value = this.httpHeaders[property];\n if (typeof value === 'undefined') {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && 'begin' in args && 'end' in args) {\n var rangeStr = args.begin + '-' + (args.end - 1);\n xhr.setRequestHeader('Range', 'bytes=' + rangeStr);\n pendingRequest.expectedStatus = 206;\n } else {\n pendingRequest.expectedStatus = 200;\n }\n var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData;\n if (useMozChunkedLoading) {\n xhr.responseType = 'moz-chunked-arraybuffer';\n pendingRequest.onProgressiveData = args.onProgressiveData;\n pendingRequest.mozChunked = true;\n } else {\n xhr.responseType = 'arraybuffer';\n }\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n },\n onProgress: function NetworkManager_onProgress(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n if (pendingRequest.mozChunked) {\n var chunk = getArrayBuffer(pendingRequest.xhr);\n pendingRequest.onProgressiveData(chunk);\n }\n var onProgress = pendingRequest.onProgress;\n if (onProgress) {\n onProgress(evt);\n }\n },\n onStateChange: function NetworkManager_onStateChange(xhrId, evt) {\n var pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n var xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n var xhrStatus = xhr.status || OK_RESPONSE;\n var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n return;\n }\n this.loadedRequests[xhrId] = true;\n var chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n var rangeHeader = xhr.getResponseHeader('Content-Range');\n var matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n var begin = parseInt(matches[1], 10);\n pendingRequest.onDone({\n begin: begin,\n chunk: chunk\n });\n } else if (pendingRequest.onProgressiveData) {\n pendingRequest.onDone(null);\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk: chunk\n });\n } else if (pendingRequest.onError) {\n pendingRequest.onError(xhr.status);\n }\n },\n hasPendingRequests: function NetworkManager_hasPendingRequests() {\n for (var xhrId in this.pendingRequests) {\n return true;\n }\n return false;\n },\n getRequestXhr: function NetworkManager_getXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n },\n isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) {\n return !!this.pendingRequests[xhrId].onProgressiveData;\n },\n isPendingRequest: function NetworkManager_isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n },\n isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) {\n return xhrId in this.loadedRequests;\n },\n abortAllRequests: function NetworkManager_abortAllRequests() {\n for (var xhrId in this.pendingRequests) {\n this.abortRequest(xhrId | 0);\n }\n },\n abortRequest: function NetworkManager_abortRequest(xhrId) {\n var xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n};\nfunction PDFNetworkStream(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n}\nPDFNetworkStream.prototype = {\n _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) {\n var i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n },\n getFullReader: function PDFNetworkStream_getFullReader() {\n (0, _util.assert)(!this._fullRequestReader);\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n },\n getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) {\n var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n },\n cancelAllRequests: function PDFNetworkStream_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};\nfunction PDFNetworkStreamFullRequestReader(manager, source) {\n this._manager = manager;\n var args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n}\nPDFNetworkStreamFullRequestReader.prototype = {\n _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() {\n var fullRequestXhrId = this._fullRequestId;\n var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n var getResponseHeader = function getResponseHeader(name) {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader: getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n }),\n allowRangeRequests = _validateRangeRequest.allowRangeRequests,\n suggestedLength = _validateRangeRequest.suggestedLength;\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n var networkManager = this._manager;\n if (networkManager.isStreamingRequest(fullRequestXhrId)) {\n this._isStreamingSupported = true;\n } else if (this._isRangeSupported) {\n networkManager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n },\n _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) {\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(chunk);\n }\n },\n _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) {\n if (args) {\n this._onProgressiveData(args.chunk);\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n },\n _onError: function PDFNetworkStreamFullRequestReader_onError(status) {\n var url = this._url;\n var exception = (0, _network_utils.createResponseStatusError)(status, url);\n this._storedError = exception;\n this._headersReceivedCapability.reject(exception);\n this._requests.forEach(function (requestCapability) {\n requestCapability.reject(exception);\n });\n this._requests = [];\n this._cachedChunks = [];\n },\n _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) {\n if (this.onProgress) {\n this.onProgress({\n loaded: data.loaded,\n total: data.lengthComputable ? data.total : this._contentLength\n });\n }\n },\n get filename() {\n return this._filename;\n },\n get isRangeSupported() {\n return this._isRangeSupported;\n },\n get isStreamingSupported() {\n return this._isStreamingSupported;\n },\n get contentLength() {\n return this._contentLength;\n },\n get headersReady() {\n return this._headersReceivedCapability.promise;\n },\n read: function () {\n var _ref = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this._storedError) {\n _context.next = 2;\n break;\n }\n\n throw this._storedError;\n\n case 2:\n if (!(this._cachedChunks.length > 0)) {\n _context.next = 5;\n break;\n }\n\n chunk = this._cachedChunks.shift();\n return _context.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 5:\n if (!this._done) {\n _context.next = 7;\n break;\n }\n\n return _context.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 7:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n return _context.abrupt('return', requestCapability.promise);\n\n case 10:\n case 'end':\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function read() {\n return _ref.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n};\nfunction PDFNetworkStreamRangeRequestReader(manager, begin, end) {\n this._manager = manager;\n var args = {\n onDone: this._onDone.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this.onProgress = null;\n this.onClosed = null;\n}\nPDFNetworkStreamRangeRequestReader.prototype = {\n _close: function PDFNetworkStreamRangeRequestReader_close() {\n if (this.onClosed) {\n this.onClosed(this);\n }\n },\n _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) {\n var chunk = data.chunk;\n if (this._requests.length > 0) {\n var requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n this._close();\n },\n _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) {\n if (!this.isStreamingSupported && this.onProgress) {\n this.onProgress({ loaded: evt.loaded });\n }\n },\n get isStreamingSupported() {\n return false;\n },\n read: function () {\n var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator2.default.mark(function _callee2() {\n var chunk, requestCapability;\n return _regenerator2.default.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n if (!(this._queuedChunk !== null)) {\n _context2.next = 4;\n break;\n }\n\n chunk = this._queuedChunk;\n\n this._queuedChunk = null;\n return _context2.abrupt('return', {\n value: chunk,\n done: false\n });\n\n case 4:\n if (!this._done) {\n _context2.next = 6;\n break;\n }\n\n return _context2.abrupt('return', {\n value: undefined,\n done: true\n });\n\n case 6:\n requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n return _context2.abrupt('return', requestCapability.promise);\n\n case 9:\n case 'end':\n return _context2.stop();\n }\n }\n }, _callee2, this);\n }));\n\n function read() {\n return _ref2.apply(this, arguments);\n }\n\n return read;\n }(),\n\n cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) {\n this._done = true;\n this._requests.forEach(function (requestCapability) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n });\n this._requests = [];\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n};\nexports.PDFNetworkStream = PDFNetworkStream;\nexports.NetworkManager = NetworkManager;\n\n/***/ })\n/******/ ]);\n});\n//# sourceMappingURL=pdf.js.map","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","export const alertError = a => {\r\n alert(Object.entries(a.body)\r\n .map(b => {\r\n return b[1].join(\"\\n\");\r\n })\r\n .join(\"\\n\")\r\n );\r\n}\r\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"trainingcontainer\",attrs:{\"id\":\"contentcontainer\"}},[_c('div',[_c('div',{staticClass:\"mb-3\"},[_c('div',{staticClass:\"row\"},[_c('div',{staticClass:\"col col-sm-4\"},[_vm._v(\"\\n Status\\n \"),_c('select',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.status),expression:\"status\"}],staticClass:\"form-control\",attrs:{\"required\":\"\"},on:{\"change\":function($event){var $$selectedVal = Array.prototype.filter.call($event.target.options,function(o){return o.selected}).map(function(o){var val = \"_value\" in o ? o._value : o.value;return val}); _vm.status=$event.target.multiple ? $$selectedVal : $$selectedVal[0]}}},[_c('option',{domProps:{\"value\":null}},[_vm._v(_vm._s(_vm.lang.pleaseselect))]),_c('option',{attrs:{\"value\":\"Passed\"}},[_vm._v(_vm._s(_vm.lang.passed))])])])])]),_c('div',{staticClass:\"table-responsive\"},[_c('table',{staticClass:\"table table-bordered table-striped mb-none\"},[_c('thead',{staticClass:\"thead-dark\"},[_c('tr',[_c('th',[_vm._v(_vm._s(_vm.lang.title))]),_c('th',[_vm._v(_vm._s(_vm.lang.regdate))]),_c('th',[_vm._v(_vm._s(_vm.lang.passdate))]),_c('th',[_vm._v(_vm._s(_vm.lang.daysofvalidity))]),_c('th',[_vm._v(_vm._s(_vm.lang.validtodate))]),_c('th',[_vm._v(_vm._s(_vm.lang.status))]),_c('th')])]),_c('tbody',_vm._l((_vm.filteredRows),function(item){return _c('tr',{key:item.id},[_c('td',[_vm._v(_vm._s(item.title))]),_c('td',[_vm._v(_vm._s(_vm._f(\"formatDate\")(item.moduleRegistrationTime)))]),_c('td',[_vm._v(_vm._s(_vm._f(\"formatDate\")(item.passedTime)))]),_c('td',[_vm._v(_vm._s(item.daysOfValidity))]),_c('td',[_vm._v(_vm._s(_vm._f(\"formatDate\")(item.validToDate)))]),_c('td',[_vm._v(_vm._s(item.status))]),_c('td',[_c('div',{staticClass:\"actionbutton\"},[(item.status=='Passed' && item.isHasCert)?_c('button',{staticClass:\"btn btn-primary ui-btn ui-shadow ui-corner-all\",on:{\"click\":function($event){return _vm.downloadCertification(item)}}},[_vm._v(_vm._s(_vm.lang.cert))]):_vm._e(),(item.status=='Registered' || item.status=='Passed')?_c('button',{staticClass:\"btn btn-primary ui-btn ui-shadow ui-corner-all\",on:{\"click\":function($event){return _vm.showMediaFile(item.moduleLanguageId)}}},[_vm._v(_vm._s(_vm.lang.studynow))]):_vm._e(),(item.status=='Registered')?_c('button',{staticClass:\"btn btn-primary ui-btn ui-shadow ui-corner-all\",on:{\"click\":function($event){return _vm.clickQuize(item.moduleId,item.title)}}},[_vm._v(_vm._s(_vm.lang.takequize))]):_vm._e(),(item.status=='ApplyExpired' || item.status=='Failed' || item.status=='CertificationExpired')?_c('router-link',{staticClass:\"btn btn-primary ui-btn ui-shadow ui-corner-all font-weight-normal\",attrs:{\"to\":{ path: '/training/certified-training/certification-registration', query: {id: item.moduleId}}}},[_vm._v(_vm._s(_vm.lang.reapply))]):_vm._e()],1)])])}),0)])]),_c('mediaFileList',{ref:\"mediaFileList\",attrs:{\"title\":\"Media File List\"}}),_vm._m(0)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"line-height\":\"22px\",\"overflow-x\":\"auto\",\"display\":\"flex\",\"flex-wrap\":\"wrap\",\"opacity\":\"0.0\"},attrs:{\"id\":\"editorContent\"}},[_c('div',{staticStyle:{\"display\":\"inline-block\",\"vertical-align\":\"top\",\"position\":\"relative\"},attrs:{\"id\":\"showBox\"}},[_c('canvas',{attrs:{\"id\":\"canvas\"}})])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"modal fade\"},[_c('div',{staticClass:\"modal-dialog modal-dialog-centered modal-80\",attrs:{\"role\":\"document\"}},[_c('div',{staticClass:\"modal-content\"},[_c('div',{staticClass:\"modal-header\"},[_c('h5',{staticClass:\"modal-title\"},[_vm._v(_vm._s(_vm.title))]),_vm._m(0)]),_c('form',{ref:\"form\",staticClass:\"form-horizontal\"},[_c('div',{staticClass:\"modal-body\"},[_c('ul',{staticClass:\"mb-3\"},_vm._l((_vm.fileData),function(item){return _c('li',{key:item.filename},[(item.mediaImage && item.fileType!=3)?_c('img',{attrs:{\"src\":_vm.convertToImage(item.mediaImage,item.imageName)}}):_vm._e(),(item.fileType==1 && !item.mediaImage)?_c('i',{staticClass:\"fa fa-file-image-o\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),(item.fileType==2 && !item.mediaImage)?_c('i',{staticClass:\"fa fa-file-pdf-o\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),(item.fileType==3 && !item.mediaImage)?_c('i',{staticClass:\"fa fa-file-video-o\",attrs:{\"aria-hidden\":\"true\"}}):_vm._e(),_vm._v(\" \\n \"),(item.fileType!=3)?_c('a',{attrs:{\"href\":\"javascript:void(0)\"},on:{\"click\":function($event){return _vm.showFile(item)}}},[_vm._v(_vm._s(item.fileName))]):_vm._e(),_c('div',{staticClass:\"d-inline-block\",staticStyle:{\"width\":\"400px\"}},[(item.fileType==3 && item['playerOptions'])?_c('video-player',{staticClass:\"video-player-box\",attrs:{\"options\":item.playerOptions,\"playsinline\":true,\"customEventName\":\"customstatechangedeventname\"}}):_vm._e()],1)])}),0)]),_vm._m(1)])])])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('button',{staticClass:\"close\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\",\"aria-label\":\"Close\"}},[_c('span',{attrs:{\"aria-hidden\":\"true\"}},[_vm._v(\"×\")])])\n},function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"modal-footer\"},[_c('button',{staticClass:\"btn btn-default btn-sm\",attrs:{\"type\":\"button\",\"data-dismiss\":\"modal\"}},[_vm._v(\"Cancel\")])])\n}]\n\nexport { render, staticRenderFns }","\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mediaFileList.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./mediaFileList.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./mediaFileList.vue?vue&type=template&id=5cc02e9a&\"\nimport script from \"./mediaFileList.vue?vue&type=script&lang=js&\"\nexport * from \"./mediaFileList.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modules-certifications.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./modules-certifications.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./modules-certifications.vue?vue&type=template&id=67524bf6&\"\nimport script from \"./modules-certifications.vue?vue&type=script&lang=js&\"\nexport * from \"./modules-certifications.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $entries = require('./_object-to-array')(true);\n\n$export($export.S, 'Object', {\n entries: function entries(it) {\n return $entries(it);\n }\n});\n"],"sourceRoot":""}