diff --git a/res/static/misc/pdf-viewer/build/pdf.js b/res/static/misc/pdf-viewer/build/pdf.js index dcefe07..33b6253 100644 --- a/res/static/misc/pdf-viewer/build/pdf.js +++ b/res/static/misc/pdf-viewer/build/pdf.js @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * Javascript code in this page * - * Copyright 2019 Mozilla Foundation + * Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -30,256 +30,650 @@ else root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); })(this, function() { -return /******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __w_pdfjs_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __w_pdfjs_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __w_pdfjs_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __w_pdfjs_require__.d = function(exports, name, getter) { -/******/ if(!__w_pdfjs_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __w_pdfjs_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __w_pdfjs_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __w_pdfjs_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __w_pdfjs_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __w_pdfjs_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __w_pdfjs_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __w_pdfjs_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +return /******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var pdfjsVersion = '2.2.228'; -var pdfjsBuild = 'd7afb74a'; -var pdfjsSharedUtil = __w_pdfjs_require__(1); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.addLinkAttributes = addLinkAttributes; +exports.deprecated = deprecated; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.getPdfFilenameFromUrl = getPdfFilenameFromUrl; +exports.isDataScheme = isDataScheme; +exports.isFetchSupported = isFetchSupported; +exports.isPdfFile = isPdfFile; +exports.isValidFetchUrl = isValidFetchUrl; +exports.loadScript = loadScript; +exports.StatTimer = exports.RenderingCancelledException = exports.PDFDateString = exports.PageViewport = exports.LinkTarget = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.BaseCMapReaderFactory = exports.BaseCanvasFactory = void 0; -var pdfjsDisplayAPI = __w_pdfjs_require__(147); +var _util = __w_pdfjs_require__(2); -var pdfjsDisplayTextLayer = __w_pdfjs_require__(162); +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; +const SVG_NS = "http://www.w3.org/2000/svg"; -var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(163); +class BaseCanvasFactory { + constructor() { + if (this.constructor === BaseCanvasFactory) { + (0, _util.unreachable)("Cannot initialize BaseCanvasFactory."); + } + } -var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(151); + create(width, height) { + (0, _util.unreachable)("Abstract method `create` called."); + } -var pdfjsDisplaySVG = __w_pdfjs_require__(164); - -var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(156); - -var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(153); - -{ - var isNodeJS = __w_pdfjs_require__(4); - - if (isNodeJS()) { - var PDFNodeStream = __w_pdfjs_require__(165).PDFNodeStream; - - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - return new PDFNodeStream(params); - }); - } else { - var PDFNetworkStream = __w_pdfjs_require__(168).PDFNetworkStream; - - var PDFFetchStream; - - if (pdfjsDisplayDisplayUtils.isFetchSupported()) { - PDFFetchStream = __w_pdfjs_require__(169).PDFFetchStream; + reset(canvasAndContext, width, height) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); } - pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) { - if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) { - return new PDFFetchStream(params); - } + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } - return new PDFNetworkStream(params); + canvasAndContext.canvas.width = width; + canvasAndContext.canvas.height = height; + } + + destroy(canvasAndContext) { + if (!canvasAndContext.canvas) { + throw new Error("Canvas is not specified"); + } + + canvasAndContext.canvas.width = 0; + canvasAndContext.canvas.height = 0; + canvasAndContext.canvas = null; + canvasAndContext.context = null; + } + +} + +exports.BaseCanvasFactory = BaseCanvasFactory; + +class DOMCanvasFactory extends BaseCanvasFactory { + constructor({ + ownerDocument = globalThis.document + } = {}) { + super(); + this._document = ownerDocument; + } + + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + + const canvas = this._document.createElement("canvas"); + + const context = canvas.getContext("2d"); + canvas.width = width; + canvas.height = height; + return { + canvas, + context + }; + } + +} + +exports.DOMCanvasFactory = DOMCanvasFactory; + +class BaseCMapReaderFactory { + constructor({ + baseUrl = null, + isCompressed = false + }) { + if (this.constructor === BaseCMapReaderFactory) { + (0, _util.unreachable)("Cannot initialize BaseCMapReaderFactory."); + } + + this.baseUrl = baseUrl; + this.isCompressed = isCompressed; + } + + async fetch({ + name + }) { + if (!this.baseUrl) { + throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); + } + + if (!name) { + throw new Error("CMap name must be specified."); + } + + const url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : ""); + const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; + return this._fetchData(url, compressionType).catch(reason => { + throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${url}`); }); } + + _fetchData(url, compressionType) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } + } -exports.build = pdfjsDisplayAPI.build; -exports.version = pdfjsDisplayAPI.version; -exports.getDocument = pdfjsDisplayAPI.getDocument; -exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort; -exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport; -exports.PDFWorker = pdfjsDisplayAPI.PDFWorker; -exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer; -exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer; -exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability; -exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses; -exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException; -exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException; -exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics; -exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding; -exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType; -exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag; -exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException; -exports.OPS = pdfjsSharedUtil.OPS; -exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel; -exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES; -exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl; -exports.createObjectURL = pdfjsSharedUtil.createObjectURL; -exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters; -exports.shadow = pdfjsSharedUtil.shadow; -exports.Util = pdfjsSharedUtil.Util; -exports.ReadableStream = pdfjsSharedUtil.ReadableStream; -exports.URL = pdfjsSharedUtil.URL; -exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException; -exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl; -exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget; -exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes; -exports.loadScript = pdfjsDisplayDisplayUtils.loadScript; -exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString; -exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions; -exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams; + +exports.BaseCMapReaderFactory = BaseCMapReaderFactory; + +class DOMCMapReaderFactory extends BaseCMapReaderFactory { + _fetchData(url, compressionType) { + if (isFetchSupported() && isValidFetchUrl(url, document.baseURI)) { + return fetch(url).then(async response => { + if (!response.ok) { + throw new Error(response.statusText); + } + + let cMapData; + + if (this.isCompressed) { + cMapData = new Uint8Array(await response.arrayBuffer()); + } else { + cMapData = (0, _util.stringToBytes)(await response.text()); + } + + return { + cMapData, + compressionType + }; + }); + } + + return new Promise((resolve, reject) => { + const request = new XMLHttpRequest(); + request.open("GET", url, true); + + if (this.isCompressed) { + request.responseType = "arraybuffer"; + } + + request.onreadystatechange = () => { + if (request.readyState !== XMLHttpRequest.DONE) { + return; + } + + if (request.status === 200 || request.status === 0) { + let cMapData; + + if (this.isCompressed && request.response) { + cMapData = new Uint8Array(request.response); + } else if (!this.isCompressed && request.responseText) { + cMapData = (0, _util.stringToBytes)(request.responseText); + } + + if (cMapData) { + resolve({ + cMapData, + compressionType + }); + return; + } + } + + reject(new Error(request.statusText)); + }; + + request.send(null); + }); + } + +} + +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; + +class DOMSVGFactory { + create(width, height) { + (0, _util.assert)(width > 0 && height > 0, "Invalid SVG dimensions"); + const svg = document.createElementNS(SVG_NS, "svg:svg"); + svg.setAttribute("version", "1.1"); + svg.setAttribute("width", width + "px"); + svg.setAttribute("height", height + "px"); + svg.setAttribute("preserveAspectRatio", "none"); + svg.setAttribute("viewBox", "0 0 " + width + " " + height); + return svg; + } + + createElement(type) { + (0, _util.assert)(typeof type === "string", "Invalid SVG element type"); + return document.createElementNS(SVG_NS, type); + } + +} + +exports.DOMSVGFactory = DOMSVGFactory; + +class PageViewport { + constructor({ + viewBox, + scale, + rotation, + offsetX = 0, + offsetY = 0, + dontFlip = false + }) { + this.viewBox = viewBox; + this.scale = scale; + this.rotation = rotation; + this.offsetX = offsetX; + this.offsetY = offsetY; + const centerX = (viewBox[2] + viewBox[0]) / 2; + const centerY = (viewBox[3] + viewBox[1]) / 2; + let rotateA, rotateB, rotateC, rotateD; + rotation %= 360; + + if (rotation < 0) { + rotation += 360; + } + + switch (rotation) { + case 180: + rotateA = -1; + rotateB = 0; + rotateC = 0; + rotateD = 1; + break; + + case 90: + rotateA = 0; + rotateB = 1; + rotateC = 1; + rotateD = 0; + break; + + case 270: + rotateA = 0; + rotateB = -1; + rotateC = -1; + rotateD = 0; + break; + + case 0: + rotateA = 1; + rotateB = 0; + rotateC = 0; + rotateD = -1; + break; + + default: + throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees."); + } + + if (dontFlip) { + rotateC = -rotateC; + rotateD = -rotateD; + } + + let offsetCanvasX, offsetCanvasY; + let width, height; + + if (rotateA === 0) { + offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; + offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; + width = Math.abs(viewBox[3] - viewBox[1]) * scale; + height = Math.abs(viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = Math.abs(viewBox[2] - viewBox[0]) * scale; + height = Math.abs(viewBox[3] - viewBox[1]) * scale; + } + + this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; + this.width = width; + this.height = height; + } + + clone({ + scale = this.scale, + rotation = this.rotation, + offsetX = this.offsetX, + offsetY = this.offsetY, + dontFlip = false + } = {}) { + return new PageViewport({ + viewBox: this.viewBox.slice(), + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + + convertToViewportPoint(x, y) { + return _util.Util.applyTransform([x, y], this.transform); + } + + convertToViewportRectangle(rect) { + const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); + + const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); + + return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; + } + + convertToPdfPoint(x, y) { + return _util.Util.applyInverseTransform([x, y], this.transform); + } + +} + +exports.PageViewport = PageViewport; + +class RenderingCancelledException extends _util.BaseException { + constructor(msg, type) { + super(msg); + this.type = type; + } + +} + +exports.RenderingCancelledException = RenderingCancelledException; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +exports.LinkTarget = LinkTarget; + +function addLinkAttributes(link, { + url, + target, + rel, + enabled = true +} = {}) { + (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must provided.'); + const urlNullRemoved = (0, _util.removeNullCharacters)(url); + + if (enabled) { + link.href = link.title = urlNullRemoved; + } else { + link.href = ""; + link.title = `Disabled: ${urlNullRemoved}`; + + link.onclick = () => { + return false; + }; + } + + let targetStr = ""; + + switch (target) { + case LinkTarget.NONE: + break; + + case LinkTarget.SELF: + targetStr = "_self"; + break; + + case LinkTarget.BLANK: + targetStr = "_blank"; + break; + + case LinkTarget.PARENT: + targetStr = "_parent"; + break; + + case LinkTarget.TOP: + targetStr = "_top"; + break; + } + + link.target = targetStr; + link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL; +} + +function isDataScheme(url) { + const ii = url.length; + let i = 0; + + while (i < ii && url[i].trim() === "") { + i++; + } + + return url.substring(i, i + 5).toLowerCase() === "data:"; +} + +function isPdfFile(filename) { + return typeof filename === "string" && /\.pdf$/i.test(filename); +} + +function getFilenameFromUrl(url) { + const anchor = url.indexOf("#"); + const query = url.indexOf("?"); + const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); + return url.substring(url.lastIndexOf("/", end) + 1, end); +} + +function getPdfFilenameFromUrl(url, defaultFilename = "document.pdf") { + if (typeof url !== "string") { + return defaultFilename; + } + + if (isDataScheme(url)) { + (0, _util.warn)('getPdfFilenameFromUrl: ignore "data:"-URL for performance reasons.'); + return defaultFilename; + } + + const reURI = /^(?:(?:[^:]+:)?\/\/[^/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; + const reFilename = /[^/?#=]+\.pdf\b(?!.*\.pdf\b)/i; + const splitURI = reURI.exec(url); + let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); + + if (suggestedFilename) { + suggestedFilename = suggestedFilename[0]; + + if (suggestedFilename.includes("%")) { + try { + suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; + } catch (ex) {} + } + } + + return suggestedFilename || defaultFilename; +} + +class StatTimer { + constructor() { + this.started = Object.create(null); + this.times = []; + } + + time(name) { + if (name in this.started) { + (0, _util.warn)(`Timer is already running for ${name}`); + } + + this.started[name] = Date.now(); + } + + timeEnd(name) { + if (!(name in this.started)) { + (0, _util.warn)(`Timer has not been started for ${name}`); + } + + this.times.push({ + name, + start: this.started[name], + end: Date.now() + }); + delete this.started[name]; + } + + toString() { + const outBuf = []; + let longest = 0; + + for (const time of this.times) { + const name = time.name; + + if (name.length > longest) { + longest = name.length; + } + } + + for (const time of this.times) { + const duration = time.end - time.start; + outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\n`); + } + + return outBuf.join(""); + } + +} + +exports.StatTimer = StatTimer; + +function isFetchSupported() { + return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype && typeof ReadableStream !== "undefined"; +} + +function isValidFetchUrl(url, baseUrl) { + try { + const { + protocol + } = baseUrl ? new URL(url, baseUrl) : new URL(url); + return protocol === "http:" || protocol === "https:"; + } catch (ex) { + return false; + } +} + +function loadScript(src, removeScriptElement = false) { + return new Promise((resolve, reject) => { + const script = document.createElement("script"); + script.src = src; + + script.onload = function (evt) { + if (removeScriptElement) { + script.remove(); + } + + resolve(evt); + }; + + script.onerror = function () { + reject(new Error(`Cannot load script at: ${script.src}`)); + }; + + (document.head || document.documentElement).appendChild(script); + }); +} + +function deprecated(details) { + console.log("Deprecated API usage: " + details); +} + +let pdfDateStringRegex; + +class PDFDateString { + static toDateObject(input) { + if (!input || !(0, _util.isString)(input)) { + return null; + } + + if (!pdfDateStringRegex) { + pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?"); + } + + const matches = pdfDateStringRegex.exec(input); + + if (!matches) { + return null; + } + + const year = parseInt(matches[1], 10); + let month = parseInt(matches[2], 10); + month = month >= 1 && month <= 12 ? month - 1 : 0; + let day = parseInt(matches[3], 10); + day = day >= 1 && day <= 31 ? day : 1; + let hour = parseInt(matches[4], 10); + hour = hour >= 0 && hour <= 23 ? hour : 0; + let minute = parseInt(matches[5], 10); + minute = minute >= 0 && minute <= 59 ? minute : 0; + let second = parseInt(matches[6], 10); + second = second >= 0 && second <= 59 ? second : 0; + const universalTimeRelation = matches[7] || "Z"; + let offsetHour = parseInt(matches[8], 10); + offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; + let offsetMinute = parseInt(matches[9], 10) || 0; + offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; + + if (universalTimeRelation === "-") { + hour += offsetHour; + minute += offsetMinute; + } else if (universalTimeRelation === "+") { + hour -= offsetHour; + minute -= offsetMinute; + } + + return new Date(Date.UTC(year, month, day, hour, minute, second)); + } + +} + +exports.PDFDateString = PDFDateString; /***/ }), -/* 1 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 2 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.arrayByteLength = arrayByteLength; exports.arraysToBytes = arraysToBytes; exports.assert = assert; exports.bytesToString = bytesToString; +exports.createObjectURL = createObjectURL; exports.createPromiseCapability = createPromiseCapability; +exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.escapeString = escapeString; +exports.getModificationDate = getModificationDate; exports.getVerbosityLevel = getVerbosityLevel; exports.info = info; exports.isArrayBuffer = isArrayBuffer; exports.isArrayEqual = isArrayEqual; +exports.isAscii = isAscii; exports.isBool = isBool; -exports.isEmptyObj = isEmptyObj; exports.isNum = isNum; -exports.isString = isString; -exports.isSpace = isSpace; exports.isSameOrigin = isSameOrigin; -exports.createValidAbsoluteUrl = createValidAbsoluteUrl; -exports.isLittleEndian = isLittleEndian; -exports.isEvalSupported = isEvalSupported; -exports.log2 = log2; -exports.readInt8 = readInt8; -exports.readUint16 = readUint16; -exports.readUint32 = readUint32; +exports.isString = isString; +exports.objectFromMap = objectFromMap; +exports.objectSize = objectSize; exports.removeNullCharacters = removeNullCharacters; exports.setVerbosityLevel = setVerbosityLevel; exports.shadow = shadow; exports.string32 = string32; exports.stringToBytes = stringToBytes; exports.stringToPDFString = stringToPDFString; +exports.stringToUTF16BEString = stringToUTF16BEString; exports.stringToUTF8String = stringToUTF8String; +exports.unreachable = unreachable; exports.utf8StringToString = utf8StringToString; exports.warn = warn; -exports.unreachable = unreachable; -Object.defineProperty(exports, "ReadableStream", { - enumerable: true, - get: function get() { - return _streams_polyfill.ReadableStream; - } -}); -Object.defineProperty(exports, "URL", { - enumerable: true, - get: function get() { - return _url_polyfill.URL; - } -}); -exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = 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 = void 0; +exports.VerbosityLevel = exports.Util = exports.UNSUPPORTED_FEATURES = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.IsLittleEndianCached = exports.IsEvalSupportedCached = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0; -__w_pdfjs_require__(2); +__w_pdfjs_require__(3); -var _streams_polyfill = __w_pdfjs_require__(143); - -var _url_polyfill = __w_pdfjs_require__(145); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; exports.IDENTITY_MATRIX = IDENTITY_MATRIX; -var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; -var NativeImageDecoding = { - NONE: 'none', - DECODE: 'decode', - DISPLAY: 'display' -}; -exports.NativeImageDecoding = NativeImageDecoding; -var PermissionFlag = { +const PermissionFlag = { PRINT: 0x04, MODIFY_CONTENTS: 0x08, COPY: 0x10, @@ -290,7 +684,7 @@ var PermissionFlag = { PRINT_HIGH_QUALITY: 0x800 }; exports.PermissionFlag = PermissionFlag; -var TextRenderingMode = { +const TextRenderingMode = { FILL: 0, STROKE: 1, FILL_STROKE: 2, @@ -303,13 +697,13 @@ var TextRenderingMode = { ADD_TO_PATH_FLAG: 4 }; exports.TextRenderingMode = TextRenderingMode; -var ImageKind = { +const ImageKind = { GRAYSCALE_1BPP: 1, RGB_24BPP: 2, RGBA_32BPP: 3 }; exports.ImageKind = ImageKind; -var AnnotationType = { +const AnnotationType = { TEXT: 1, LINK: 2, FREETEXT: 3, @@ -338,7 +732,30 @@ var AnnotationType = { REDACT: 26 }; exports.AnnotationType = AnnotationType; -var AnnotationFlag = { +const AnnotationStateModelType = { + MARKED: "Marked", + REVIEW: "Review" +}; +exports.AnnotationStateModelType = AnnotationStateModelType; +const AnnotationMarkedState = { + MARKED: "Marked", + UNMARKED: "Unmarked" +}; +exports.AnnotationMarkedState = AnnotationMarkedState; +const AnnotationReviewState = { + ACCEPTED: "Accepted", + REJECTED: "Rejected", + CANCELLED: "Cancelled", + COMPLETED: "Completed", + NONE: "None" +}; +exports.AnnotationReviewState = AnnotationReviewState; +const AnnotationReplyType = { + GROUP: "Group", + REPLY: "R" +}; +exports.AnnotationReplyType = AnnotationReplyType; +const AnnotationFlag = { INVISIBLE: 0x01, HIDDEN: 0x02, PRINT: 0x04, @@ -351,7 +768,7 @@ var AnnotationFlag = { LOCKEDCONTENTS: 0x200 }; exports.AnnotationFlag = AnnotationFlag; -var AnnotationFieldFlag = { +const AnnotationFieldFlag = { READONLY: 0x0000001, REQUIRED: 0x0000002, NOEXPORT: 0x0000004, @@ -373,7 +790,7 @@ var AnnotationFieldFlag = { COMMITONSELCHANGE: 0x4000000 }; exports.AnnotationFieldFlag = AnnotationFieldFlag; -var AnnotationBorderStyleType = { +const AnnotationBorderStyleType = { SOLID: 1, DASHED: 2, BEVELED: 3, @@ -381,46 +798,76 @@ var AnnotationBorderStyleType = { UNDERLINE: 5 }; exports.AnnotationBorderStyleType = AnnotationBorderStyleType; -var StreamType = { - UNKNOWN: 0, - FLATE: 1, - LZW: 2, - DCT: 3, - JPX: 4, - JBIG: 5, - A85: 6, - AHX: 7, - CCF: 8, - RL: 9 +const AnnotationActionEventType = { + E: "Mouse Enter", + X: "Mouse Exit", + D: "Mouse Down", + U: "Mouse Up", + Fo: "Focus", + Bl: "Blur", + PO: "PageOpen", + PC: "PageClose", + PV: "PageVisible", + PI: "PageInvisible", + K: "Keystroke", + F: "Format", + V: "Validate", + C: "Calculate" +}; +exports.AnnotationActionEventType = AnnotationActionEventType; +const DocumentActionEventType = { + WC: "WillClose", + WS: "WillSave", + DS: "DidSave", + WP: "WillPrint", + DP: "DidPrint" +}; +exports.DocumentActionEventType = DocumentActionEventType; +const PageActionEventType = { + O: "PageOpen", + C: "PageClose" +}; +exports.PageActionEventType = PageActionEventType; +const StreamType = { + UNKNOWN: "UNKNOWN", + FLATE: "FLATE", + LZW: "LZW", + DCT: "DCT", + JPX: "JPX", + JBIG: "JBIG", + A85: "A85", + AHX: "AHX", + CCF: "CCF", + RLX: "RLX" }; exports.StreamType = StreamType; -var FontType = { - UNKNOWN: 0, - TYPE1: 1, - TYPE1C: 2, - CIDFONTTYPE0: 3, - CIDFONTTYPE0C: 4, - TRUETYPE: 5, - CIDFONTTYPE2: 6, - TYPE3: 7, - OPENTYPE: 8, - TYPE0: 9, - MMTYPE1: 10 +const FontType = { + UNKNOWN: "UNKNOWN", + TYPE1: "TYPE1", + TYPE1C: "TYPE1C", + CIDFONTTYPE0: "CIDFONTTYPE0", + CIDFONTTYPE0C: "CIDFONTTYPE0C", + TRUETYPE: "TRUETYPE", + CIDFONTTYPE2: "CIDFONTTYPE2", + TYPE3: "TYPE3", + OPENTYPE: "OPENTYPE", + TYPE0: "TYPE0", + MMTYPE1: "MMTYPE1" }; exports.FontType = FontType; -var VerbosityLevel = { +const VerbosityLevel = { ERRORS: 0, WARNINGS: 1, INFOS: 5 }; exports.VerbosityLevel = VerbosityLevel; -var CMapCompressionType = { +const CMapCompressionType = { NONE: 0, BINARY: 1, STREAM: 2 }; exports.CMapCompressionType = CMapCompressionType; -var OPS = { +const OPS = { dependency: 1, setLineWidth: 2, setLineCap: 3, @@ -514,21 +961,36 @@ var OPS = { constructPath: 91 }; exports.OPS = OPS; -var UNSUPPORTED_FEATURES = { - unknown: 'unknown', - forms: 'forms', - javaScript: 'javaScript', - smask: 'smask', - shadingPattern: 'shadingPattern', - font: 'font' +const UNSUPPORTED_FEATURES = { + unknown: "unknown", + forms: "forms", + javaScript: "javaScript", + signatures: "signatures", + smask: "smask", + shadingPattern: "shadingPattern", + font: "font", + errorTilingPattern: "errorTilingPattern", + errorExtGState: "errorExtGState", + errorXObject: "errorXObject", + errorFontLoadType3: "errorFontLoadType3", + errorFontState: "errorFontState", + errorFontMissing: "errorFontMissing", + errorFontTranslate: "errorFontTranslate", + errorColorSpace: "errorColorSpace", + errorOperatorList: "errorOperatorList", + errorFontToUnicode: "errorFontToUnicode", + errorFontLoadNative: "errorFontLoadNative", + errorFontBuildPath: "errorFontBuildPath", + errorFontGetPath: "errorFontGetPath", + errorMarkedContent: "errorMarkedContent" }; exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES; -var PasswordResponses = { +const PasswordResponses = { NEED_PASSWORD: 1, INCORRECT_PASSWORD: 2 }; exports.PasswordResponses = PasswordResponses; -var verbosity = VerbosityLevel.WARNINGS; +let verbosity = VerbosityLevel.WARNINGS; function setVerbosityLevel(level) { if (Number.isInteger(level)) { @@ -542,13 +1004,13 @@ function getVerbosityLevel() { function info(msg) { if (verbosity >= VerbosityLevel.INFOS) { - console.log('Info: ' + msg); + console.log(`Info: ${msg}`); } } function warn(msg) { if (verbosity >= VerbosityLevel.WARNINGS) { - console.log('Warning: ' + msg); + console.log(`Warning: ${msg}`); } } @@ -563,17 +1025,19 @@ function assert(cond, msg) { } function isSameOrigin(baseUrl, otherUrl) { - try { - var base = new _url_polyfill.URL(baseUrl); + let base; - if (!base.origin || base.origin === 'null') { + try { + base = new URL(baseUrl); + + if (!base.origin || base.origin === "null") { return false; } } catch (e) { return false; } - var other = new _url_polyfill.URL(otherUrl, base); + const other = new URL(otherUrl, base); return base.origin === other.origin; } @@ -583,11 +1047,11 @@ function _isValidProtocol(url) { } switch (url.protocol) { - case 'http:': - case 'https:': - case 'ftp:': - case 'mailto:': - case 'tel:': + case "http:": + case "https:": + case "ftp:": + case "mailto:": + case "tel:": return true; default: @@ -601,7 +1065,7 @@ function createValidAbsoluteUrl(url, baseUrl) { } try { - var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url); + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); if (_isValidProtocol(absoluteUrl)) { return absoluteUrl; @@ -613,7 +1077,7 @@ function createValidAbsoluteUrl(url, baseUrl) { function shadow(obj, prop, value) { Object.defineProperty(obj, prop, { - value: value, + value, enumerable: true, configurable: true, writable: false @@ -621,137 +1085,106 @@ function shadow(obj, prop, value) { return value; } -var PasswordException = function PasswordExceptionClosure() { - function PasswordException(msg, code) { - this.name = 'PasswordException'; - this.message = msg; +const BaseException = function BaseExceptionClosure() { + function BaseException(message) { + if (this.constructor === BaseException) { + unreachable("Cannot initialize BaseException."); + } + + this.message = message; + this.name = this.constructor.name; + } + + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; +}(); + +exports.BaseException = BaseException; + +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg); this.code = code; } - PasswordException.prototype = new Error(); - PasswordException.constructor = PasswordException; - return PasswordException; -}(); +} exports.PasswordException = PasswordException; -var UnknownErrorException = function UnknownErrorExceptionClosure() { - function UnknownErrorException(msg, details) { - this.name = 'UnknownErrorException'; - this.message = msg; +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg); this.details = details; } - UnknownErrorException.prototype = new Error(); - UnknownErrorException.constructor = UnknownErrorException; - return UnknownErrorException; -}(); +} exports.UnknownErrorException = UnknownErrorException; -var InvalidPDFException = function InvalidPDFExceptionClosure() { - function InvalidPDFException(msg) { - this.name = 'InvalidPDFException'; - this.message = msg; - } - - InvalidPDFException.prototype = new Error(); - InvalidPDFException.constructor = InvalidPDFException; - return InvalidPDFException; -}(); +class InvalidPDFException extends BaseException {} exports.InvalidPDFException = InvalidPDFException; -var MissingPDFException = function MissingPDFExceptionClosure() { - function MissingPDFException(msg) { - this.name = 'MissingPDFException'; - this.message = msg; - } - - MissingPDFException.prototype = new Error(); - MissingPDFException.constructor = MissingPDFException; - return MissingPDFException; -}(); +class MissingPDFException extends BaseException {} exports.MissingPDFException = MissingPDFException; -var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() { - function UnexpectedResponseException(msg, status) { - this.name = 'UnexpectedResponseException'; - this.message = msg; +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg); this.status = status; } - UnexpectedResponseException.prototype = new Error(); - UnexpectedResponseException.constructor = UnexpectedResponseException; - return UnexpectedResponseException; -}(); +} exports.UnexpectedResponseException = UnexpectedResponseException; -var FormatError = function FormatErrorClosure() { - function FormatError(msg) { - this.message = msg; - } - - FormatError.prototype = new Error(); - FormatError.prototype.name = 'FormatError'; - FormatError.constructor = FormatError; - return FormatError; -}(); +class FormatError extends BaseException {} exports.FormatError = FormatError; -var AbortException = function AbortExceptionClosure() { - function AbortException(msg) { - this.name = 'AbortException'; - this.message = msg; - } - - AbortException.prototype = new Error(); - AbortException.constructor = AbortException; - return AbortException; -}(); +class AbortException extends BaseException {} exports.AbortException = AbortException; -var NullCharactersRegExp = /\x00/g; +const NullCharactersRegExp = /\x00/g; function removeNullCharacters(str) { - if (typeof str !== 'string') { - warn('The argument for removeNullCharacters must be a string.'); + if (typeof str !== "string") { + warn("The argument for removeNullCharacters must be a string."); return str; } - return str.replace(NullCharactersRegExp, ''); + return str.replace(NullCharactersRegExp, ""); } function bytesToString(bytes) { - assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString'); - var length = bytes.length; - var MAX_ARGUMENT_COUNT = 8192; + assert(bytes !== null && typeof bytes === "object" && bytes.length !== undefined, "Invalid argument for bytesToString"); + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; if (length < MAX_ARGUMENT_COUNT) { return String.fromCharCode.apply(null, bytes); } - var strBuf = []; + const strBuf = []; - for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) { - var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); - var chunk = bytes.subarray(i, chunkEnd); + for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) { + const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length); + const chunk = bytes.subarray(i, chunkEnd); strBuf.push(String.fromCharCode.apply(null, chunk)); } - return strBuf.join(''); + return strBuf.join(""); } function stringToBytes(str) { - assert(typeof str === 'string', 'Invalid argument for stringToBytes'); - var length = str.length; - var bytes = new Uint8Array(length); + assert(typeof str === "string", "Invalid argument for stringToBytes"); + const length = str.length; + const bytes = new Uint8Array(length); - for (var i = 0; i < length; ++i) { - bytes[i] = str.charCodeAt(i) & 0xFF; + for (let i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xff; } return bytes; @@ -762,41 +1195,38 @@ function arrayByteLength(arr) { return arr.length; } - assert(arr.byteLength !== undefined); + assert(arr.byteLength !== undefined, "arrayByteLength - invalid argument."); return arr.byteLength; } function arraysToBytes(arr) { - if (arr.length === 1 && arr[0] instanceof Uint8Array) { + const length = arr.length; + + if (length === 1 && arr[0] instanceof Uint8Array) { return arr[0]; } - var resultLength = 0; - var i, - ii = arr.length; - var item, itemLength; + let resultLength = 0; - for (i = 0; i < ii; i++) { - item = arr[i]; - itemLength = arrayByteLength(item); - resultLength += itemLength; + for (let i = 0; i < length; i++) { + resultLength += arrayByteLength(arr[i]); } - var pos = 0; - var data = new Uint8Array(resultLength); + let pos = 0; + const data = new Uint8Array(resultLength); - for (i = 0; i < ii; i++) { - item = arr[i]; + for (let i = 0; i < length; i++) { + let item = arr[i]; if (!(item instanceof Uint8Array)) { - if (typeof item === 'string') { + if (typeof item === "string") { item = stringToBytes(item); } else { item = new Uint8Array(item); } } - itemLength = item.byteLength; + const itemLength = item.byteLength; data.set(item, pos); pos += itemLength; } @@ -808,103 +1238,107 @@ function string32(value) { return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); } -function log2(x) { - if (x <= 0) { - return 0; +function objectSize(obj) { + return Object.keys(obj).length; +} + +function objectFromMap(map) { + const obj = Object.create(null); + + for (const [key, value] of map) { + obj[key] = value; } - return Math.ceil(Math.log2(x)); -} - -function readInt8(data, start) { - return data[start] << 24 >> 24; -} - -function readUint16(data, offset) { - return data[offset] << 8 | data[offset + 1]; -} - -function readUint32(data, offset) { - return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0; + return obj; } function isLittleEndian() { - var buffer8 = new Uint8Array(4); + const buffer8 = new Uint8Array(4); buffer8[0] = 1; - var view32 = new Uint32Array(buffer8.buffer, 0, 1); + const view32 = new Uint32Array(buffer8.buffer, 0, 1); return view32[0] === 1; } +const IsLittleEndianCached = { + get value() { + return shadow(this, "value", isLittleEndian()); + } + +}; +exports.IsLittleEndianCached = IsLittleEndianCached; + function isEvalSupported() { try { - new Function(''); + new Function(""); return true; } catch (e) { return false; } } -var Util = function UtilClosure() { - function Util() {} +const IsEvalSupportedCached = { + get value() { + return shadow(this, "value", isEvalSupported()); + } - var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')']; +}; +exports.IsEvalSupportedCached = IsEvalSupportedCached; +const hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, "0")); - Util.makeCssRgb = function Util_makeCssRgb(r, g, b) { - rgbBuf[1] = r; - rgbBuf[3] = g; - rgbBuf[5] = b; - return rgbBuf.join(''); - }; +class Util { + static makeHexColor(r, g, b) { + return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; + } - Util.transform = function Util_transform(m1, m2) { + static transform(m1, m2) { 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]]; - }; + } - Util.applyTransform = function Util_applyTransform(p, m) { - var xt = p[0] * m[0] + p[1] * m[2] + m[4]; - var yt = p[0] * m[1] + p[1] * m[3] + m[5]; + static applyTransform(p, m) { + const xt = p[0] * m[0] + p[1] * m[2] + m[4]; + const yt = p[0] * m[1] + p[1] * m[3] + m[5]; return [xt, yt]; - }; + } - Util.applyInverseTransform = function Util_applyInverseTransform(p, m) { - var d = m[0] * m[3] - m[1] * m[2]; - var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; - var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; + static applyInverseTransform(p, m) { + const d = m[0] * m[3] - m[1] * m[2]; + const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d; + const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d; return [xt, yt]; - }; + } - Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) { - var p1 = Util.applyTransform(r, m); - var p2 = Util.applyTransform(r.slice(2, 4), m); - var p3 = Util.applyTransform([r[0], r[3]], m); - var p4 = Util.applyTransform([r[2], r[1]], m); + static getAxialAlignedBoundingBox(r, m) { + const p1 = Util.applyTransform(r, m); + const p2 = Util.applyTransform(r.slice(2, 4), m); + const p3 = Util.applyTransform([r[0], r[3]], m); + const p4 = Util.applyTransform([r[2], r[1]], m); 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])]; - }; + } - Util.inverseTransform = function Util_inverseTransform(m) { - var d = m[0] * m[3] - m[1] * m[2]; + static inverseTransform(m) { + const d = m[0] * m[3] - m[1] * m[2]; 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]; - }; + } - Util.apply3dTransform = function Util_apply3dTransform(m, v) { + static apply3dTransform(m, v) { 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]]; - }; + } - Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) { - var transpose = [m[0], m[2], m[1], m[3]]; - var a = m[0] * transpose[0] + m[1] * transpose[2]; - var b = m[0] * transpose[1] + m[1] * transpose[3]; - var c = m[2] * transpose[0] + m[3] * transpose[2]; - var d = m[2] * transpose[1] + m[3] * transpose[3]; - var first = (a + d) / 2; - var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2; - var sx = first + second || 1; - var sy = first - second || 1; + static singularValueDecompose2dScale(m) { + const transpose = [m[0], m[2], m[1], m[3]]; + const a = m[0] * transpose[0] + m[1] * transpose[2]; + const b = m[0] * transpose[1] + m[1] * transpose[3]; + const c = m[2] * transpose[0] + m[3] * transpose[2]; + const d = m[2] * transpose[1] + m[3] * transpose[3]; + const first = (a + d) / 2; + const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2; + const sx = first + second || 1; + const sy = first - second || 1; return [Math.sqrt(sx), Math.sqrt(sy)]; - }; + } - Util.normalizeRect = function Util_normalizeRect(rect) { - var r = rect.slice(0); + static normalizeRect(rect) { + const r = rect.slice(0); if (rect[0] > rect[2]) { r[0] = rect[2]; @@ -917,16 +1351,16 @@ var Util = function UtilClosure() { } return r; - }; + } - Util.intersect = function Util_intersect(rect1, rect2) { + static intersect(rect1, rect2) { function compare(a, b) { return a - b; } - var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare), - orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare), - result = []; + const orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare); + const orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare); + const result = []; rect1 = Util.normalizeRect(rect1); rect2 = Util.normalizeRect(rect2); @@ -934,42 +1368,71 @@ var Util = function UtilClosure() { result[0] = orderedX[1]; result[2] = orderedX[2]; } else { - return false; + return null; } if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) { result[1] = orderedY[1]; result[3] = orderedY[2]; } else { - return false; + return null; } return result; - }; + } - return Util; -}(); +} exports.Util = Util; -var 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]; +const 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]; function stringToPDFString(str) { - var i, - n = str.length, - strBuf = []; + const length = str.length, + strBuf = []; - if (str[0] === '\xFE' && str[1] === '\xFF') { - for (i = 2; i < n; i += 2) { + if (str[0] === "\xFE" && str[1] === "\xFF") { + for (let i = 2; i < length; i += 2) { strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1))); } + } else if (str[0] === "\xFF" && str[1] === "\xFE") { + for (let i = 2; i < length; i += 2) { + strBuf.push(String.fromCharCode(str.charCodeAt(i + 1) << 8 | str.charCodeAt(i))); + } } else { - for (i = 0; i < n; ++i) { - var code = PDFStringTranslateTable[str.charCodeAt(i)]; + for (let i = 0; i < length; ++i) { + const code = PDFStringTranslateTable[str.charCodeAt(i)]; strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); } } - return strBuf.join(''); + return strBuf.join(""); +} + +function escapeString(str) { + return str.replace(/([()\\\n\r])/g, match => { + if (match === "\n") { + return "\\n"; + } else if (match === "\r") { + return "\\r"; + } + + return `\\${match}`; + }); +} + +function isAscii(str) { + return /^[\x00-\x7F]*$/.test(str); +} + +function stringToUTF16BEString(str) { + const buf = ["\xFE\xFF"]; + + for (let i = 0, ii = str.length; i < ii; i++) { + const char = str.charCodeAt(i); + buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff)); + } + + return buf.join(""); } function stringToUTF8String(str) { @@ -980,28 +1443,20 @@ function utf8StringToString(str) { return unescape(encodeURIComponent(str)); } -function isEmptyObj(obj) { - for (var key in obj) { - return false; - } - - return true; -} - function isBool(v) { - return typeof v === 'boolean'; + return typeof v === "boolean"; } function isNum(v) { - return typeof v === 'number'; + return typeof v === "number"; } function isString(v) { - return typeof v === 'string'; + return typeof v === "string"; } function isArrayBuffer(v) { - return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined; + return typeof v === "object" && v !== null && v.byteLength !== undefined; } function isArrayEqual(arr1, arr2) { @@ -1009,22 +1464,28 @@ function isArrayEqual(arr1, arr2) { return false; } - return arr1.every(function (element, index) { - return element === arr2[index]; - }); + for (let i = 0, ii = arr1.length; i < ii; i++) { + if (arr1[i] !== arr2[i]) { + return false; + } + } + + return true; } -function isSpace(ch) { - return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A; +function getModificationDate(date = new Date()) { + const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, "0"), date.getUTCDate().toString().padStart(2, "0"), date.getUTCHours().toString().padStart(2, "0"), date.getUTCMinutes().toString().padStart(2, "0"), date.getUTCSeconds().toString().padStart(2, "0")]; + return buffer.join(""); } function createPromiseCapability() { - var capability = Object.create(null); - var isSettled = false; - Object.defineProperty(capability, 'settled', { - get: function get() { + const capability = Object.create(null); + let isSettled = false; + Object.defineProperty(capability, "settled", { + get() { return isSettled; } + }); capability.promise = new Promise(function (resolve, reject) { capability.resolve = function (data) { @@ -1040,8862 +1501,109 @@ function createPromiseCapability() { return capability; } -var createObjectURL = function createObjectURLClosure() { - var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/='; - return function createObjectURL(data, contentType) { - var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; +function createObjectURL(data, contentType = "", forceDataSchema = false) { + if (URL.createObjectURL && !forceDataSchema) { + return URL.createObjectURL(new Blob([data], { + type: contentType + })); + } - if (!forceDataSchema && _url_polyfill.URL.createObjectURL) { - var blob = new Blob([data], { - type: contentType - }); - return _url_polyfill.URL.createObjectURL(blob); - } + const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let buffer = `data:${contentType};base64,`; - var buffer = 'data:' + contentType + ';base64,'; - - for (var i = 0, ii = data.length; i < ii; i += 3) { - var b1 = data[i] & 0xFF; - var b2 = data[i + 1] & 0xFF; - var b3 = data[i + 2] & 0xFF; - var d1 = b1 >> 2, + for (let i = 0, ii = data.length; i < ii; i += 3) { + const b1 = data[i] & 0xff; + const b2 = data[i + 1] & 0xff; + const b3 = data[i + 2] & 0xff; + const d1 = b1 >> 2, d2 = (b1 & 3) << 4 | b2 >> 4; - var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64; - var d4 = i + 2 < ii ? b3 & 0x3F : 64; - buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; - } + const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64; + const d4 = i + 2 < ii ? b3 & 0x3f : 64; + buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4]; + } - return buffer; - }; -}(); - -exports.createObjectURL = createObjectURL; - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var globalScope = __w_pdfjs_require__(3); - -if (!globalScope._pdfjsCompatibilityChecked) { - globalScope._pdfjsCompatibilityChecked = true; - - var isNodeJS = __w_pdfjs_require__(4); - - var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object'; - - (function checkNodeBtoa() { - if (globalScope.btoa || !isNodeJS()) { - return; - } - - globalScope.btoa = function (chars) { - return Buffer.from(chars, 'binary').toString('base64'); - }; - })(); - - (function checkNodeAtob() { - if (globalScope.atob || !isNodeJS()) { - return; - } - - globalScope.atob = function (input) { - return Buffer.from(input, 'base64').toString('binary'); - }; - })(); - - (function checkChildNodeRemove() { - if (!hasDOM) { - return; - } - - if (typeof Element.prototype.remove !== 'undefined') { - return; - } - - Element.prototype.remove = function () { - if (this.parentNode) { - this.parentNode.removeChild(this); - } - }; - })(); - - (function checkDOMTokenListAddRemove() { - if (!hasDOM || isNodeJS()) { - return; - } - - var div = document.createElement('div'); - div.classList.add('testOne', 'testTwo'); - - if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) { - return; - } - - var OriginalDOMTokenListAdd = DOMTokenList.prototype.add; - var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove; - - DOMTokenList.prototype.add = function () { - for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) { - tokens[_key] = arguments[_key]; - } - - for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) { - var token = _tokens[_i]; - OriginalDOMTokenListAdd.call(this, token); - } - }; - - DOMTokenList.prototype.remove = function () { - for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { - tokens[_key2] = arguments[_key2]; - } - - for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) { - var token = _tokens2[_i2]; - OriginalDOMTokenListRemove.call(this, token); - } - }; - })(); - - (function checkDOMTokenListToggle() { - if (!hasDOM || isNodeJS()) { - return; - } - - var div = document.createElement('div'); - - if (div.classList.toggle('test', 0) === false) { - return; - } - - DOMTokenList.prototype.toggle = function (token) { - var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token); - return this[force ? 'add' : 'remove'](token), force; - }; - })(); - - (function checkStringStartsWith() { - if (String.prototype.startsWith) { - return; - } - - __w_pdfjs_require__(5); - })(); - - (function checkStringEndsWith() { - if (String.prototype.endsWith) { - return; - } - - __w_pdfjs_require__(36); - })(); - - (function checkStringIncludes() { - if (String.prototype.includes) { - return; - } - - __w_pdfjs_require__(38); - })(); - - (function checkArrayIncludes() { - if (Array.prototype.includes) { - return; - } - - __w_pdfjs_require__(40); - })(); - - (function checkArrayFrom() { - if (Array.from) { - return; - } - - __w_pdfjs_require__(47); - })(); - - (function checkObjectAssign() { - if (Object.assign) { - return; - } - - __w_pdfjs_require__(70); - })(); - - (function checkMathLog2() { - if (Math.log2) { - return; - } - - Math.log2 = __w_pdfjs_require__(75); - })(); - - (function checkNumberIsNaN() { - if (Number.isNaN) { - return; - } - - Number.isNaN = __w_pdfjs_require__(77); - })(); - - (function checkNumberIsInteger() { - if (Number.isInteger) { - return; - } - - Number.isInteger = __w_pdfjs_require__(79); - })(); - - (function checkPromise() { - if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype["finally"]) { - return; - } - - globalScope.Promise = __w_pdfjs_require__(82); - })(); - - (function checkWeakMap() { - if (globalScope.WeakMap) { - return; - } - - globalScope.WeakMap = __w_pdfjs_require__(102); - })(); - - (function checkWeakSet() { - if (globalScope.WeakSet) { - return; - } - - globalScope.WeakSet = __w_pdfjs_require__(119); - })(); - - (function checkStringCodePointAt() { - if (String.codePointAt) { - return; - } - - String.codePointAt = __w_pdfjs_require__(123); - })(); - - (function checkStringFromCodePoint() { - if (String.fromCodePoint) { - return; - } - - String.fromCodePoint = __w_pdfjs_require__(125); - })(); - - (function checkSymbol() { - if (globalScope.Symbol) { - return; - } - - __w_pdfjs_require__(127); - })(); - - (function checkStringPadStart() { - if (String.prototype.padStart) { - return; - } - - __w_pdfjs_require__(134); - })(); - - (function checkStringPadEnd() { - if (String.prototype.padEnd) { - return; - } - - __w_pdfjs_require__(138); - })(); - - (function checkObjectValues() { - if (Object.values) { - return; - } - - Object.values = __w_pdfjs_require__(140); - })(); + return buffer; } /***/ }), /* 3 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => { -module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {}; + +var _is_node = __w_pdfjs_require__(4); + +; /***/ }), /* 4 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports) => { -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } -module.exports = function isNodeJS() { - return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'] && !process.versions['electron']; -}; +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.isNodeJS = void 0; +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +exports.isNodeJS = isNodeJS; /***/ }), /* 5 */ -/***/ (function(module, exports, __w_pdfjs_require__) { +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -"use strict"; -__w_pdfjs_require__(6); - -module.exports = __w_pdfjs_require__(9).String.startsWith; - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var toLength = __w_pdfjs_require__(28); - -var context = __w_pdfjs_require__(30); - -var STARTS_WITH = 'startsWith'; -var $startsWith = ''[STARTS_WITH]; -$export($export.P + $export.F * __w_pdfjs_require__(35)(STARTS_WITH), 'String', { - startsWith: function startsWith(searchString) { - var that = context(this, searchString, STARTS_WITH); - var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length)); - var search = String(searchString); - return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search; - } -}); - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var core = __w_pdfjs_require__(9); - -var hide = __w_pdfjs_require__(10); - -var redefine = __w_pdfjs_require__(20); - -var ctx = __w_pdfjs_require__(26); - -var PROTOTYPE = 'prototype'; - -var $export = function $export(type, name, source) { - var IS_FORCED = type & $export.F; - var IS_GLOBAL = type & $export.G; - var IS_STATIC = type & $export.S; - var IS_PROTO = type & $export.P; - var IS_BIND = type & $export.B; - var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE]; - var exports = IS_GLOBAL ? core : core[name] || (core[name] = {}); - var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {}); - var key, own, out, exp; - if (IS_GLOBAL) source = name; - - for (key in source) { - own = !IS_FORCED && target && target[key] !== undefined; - out = (own ? target : source)[key]; - exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; - if (target) redefine(target, key, out, type & $export.U); - if (exports[key] != out) hide(exports, key, exp); - if (IS_PROTO && expProto[key] != out) expProto[key] = out; - } -}; - -global.core = core; -$export.F = 1; -$export.G = 2; -$export.S = 4; -$export.P = 8; -$export.B = 16; -$export.W = 32; -$export.U = 64; -$export.R = 128; -module.exports = $export; - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); -if (typeof __g == 'number') __g = global; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var core = module.exports = { - version: '2.6.9' -}; -if (typeof __e == 'number') __e = core; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(11); - -var createDesc = __w_pdfjs_require__(19); - -module.exports = __w_pdfjs_require__(15) ? function (object, key, value) { - return dP.f(object, key, createDesc(1, value)); -} : function (object, key, value) { - object[key] = value; - return object; -}; - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var IE8_DOM_DEFINE = __w_pdfjs_require__(14); - -var toPrimitive = __w_pdfjs_require__(18); - -var dP = Object.defineProperty; -exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) { - anObject(O); - P = toPrimitive(P, true); - anObject(Attributes); - if (IE8_DOM_DEFINE) try { - return dP(O, P, Attributes); - } catch (e) {} - if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!'); - if ('value' in Attributes) O[P] = Attributes.value; - return O; -}; - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -module.exports = function (it) { - if (!isObject(it)) throw TypeError(it + ' is not an object!'); - return it; -}; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -module.exports = function (it) { - return _typeof(it) === 'object' ? it !== null : typeof it === 'function'; -}; - -/***/ }), -/* 14 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () { - return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', { - get: function get() { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 15 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = !__w_pdfjs_require__(16)(function () { - return Object.defineProperty({}, 'a', { - get: function get() { - return 7; - } - }).a != 7; -}); - -/***/ }), -/* 16 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (exec) { - try { - return !!exec(); - } catch (e) { - return true; - } -}; - -/***/ }), -/* 17 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var document = __w_pdfjs_require__(8).document; - -var is = isObject(document) && isObject(document.createElement); - -module.exports = function (it) { - return is ? document.createElement(it) : {}; -}; - -/***/ }), -/* 18 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -module.exports = function (it, S) { - if (!isObject(it)) return it; - var fn, val; - if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val; - if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val; - throw TypeError("Can't convert object to primitive value"); -}; - -/***/ }), -/* 19 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (bitmap, value) { - return { - enumerable: !(bitmap & 1), - configurable: !(bitmap & 2), - writable: !(bitmap & 4), - value: value - }; -}; - -/***/ }), -/* 20 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var hide = __w_pdfjs_require__(10); - -var has = __w_pdfjs_require__(21); - -var SRC = __w_pdfjs_require__(22)('src'); - -var $toString = __w_pdfjs_require__(23); - -var TO_STRING = 'toString'; -var TPL = ('' + $toString).split(TO_STRING); - -__w_pdfjs_require__(9).inspectSource = function (it) { - return $toString.call(it); -}; - -(module.exports = function (O, key, val, safe) { - var isFunction = typeof val == 'function'; - if (isFunction) has(val, 'name') || hide(val, 'name', key); - if (O[key] === val) return; - if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); - - if (O === global) { - O[key] = val; - } else if (!safe) { - delete O[key]; - hide(O, key, val); - } else if (O[key]) { - O[key] = val; - } else { - hide(O, key, val); - } -})(Function.prototype, TO_STRING, function toString() { - return typeof this == 'function' && this[SRC] || $toString.call(this); -}); - -/***/ }), -/* 21 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var hasOwnProperty = {}.hasOwnProperty; - -module.exports = function (it, key) { - return hasOwnProperty.call(it, key); -}; - -/***/ }), -/* 22 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var id = 0; -var px = Math.random(); - -module.exports = function (key) { - return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); -}; - -/***/ }), -/* 23 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = __w_pdfjs_require__(24)('native-function-to-string', Function.toString); - -/***/ }), -/* 24 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var core = __w_pdfjs_require__(9); - -var global = __w_pdfjs_require__(8); - -var SHARED = '__core-js_shared__'; -var store = global[SHARED] || (global[SHARED] = {}); -(module.exports = function (key, value) { - return store[key] || (store[key] = value !== undefined ? value : {}); -})('versions', []).push({ - version: core.version, - mode: __w_pdfjs_require__(25) ? 'pure' : 'global', - copyright: '© 2019 Denis Pushkarev (zloirock.ru)' -}); - -/***/ }), -/* 25 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = false; - -/***/ }), -/* 26 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var aFunction = __w_pdfjs_require__(27); - -module.exports = function (fn, that, length) { - aFunction(fn); - if (that === undefined) return fn; - - switch (length) { - case 1: - return function (a) { - return fn.call(that, a); - }; - - case 2: - return function (a, b) { - return fn.call(that, a, b); - }; - - case 3: - return function (a, b, c) { - return fn.call(that, a, b, c); - }; - } - - return function () { - return fn.apply(that, arguments); - }; -}; - -/***/ }), -/* 27 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it) { - if (typeof it != 'function') throw TypeError(it + ' is not a function!'); - return it; -}; - -/***/ }), -/* 28 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var min = Math.min; - -module.exports = function (it) { - return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; -}; - -/***/ }), -/* 29 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ceil = Math.ceil; -var floor = Math.floor; - -module.exports = function (it) { - return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); -}; - -/***/ }), -/* 30 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isRegExp = __w_pdfjs_require__(31); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (that, searchString, NAME) { - if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!"); - return String(defined(that)); -}; - -/***/ }), -/* 31 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var cof = __w_pdfjs_require__(32); - -var MATCH = __w_pdfjs_require__(33)('match'); - -module.exports = function (it) { - var isRegExp; - return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp'); -}; - -/***/ }), -/* 32 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toString = {}.toString; - -module.exports = function (it) { - return toString.call(it).slice(8, -1); -}; - -/***/ }), -/* 33 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var store = __w_pdfjs_require__(24)('wks'); - -var uid = __w_pdfjs_require__(22); - -var _Symbol = __w_pdfjs_require__(8).Symbol; - -var USE_SYMBOL = typeof _Symbol == 'function'; - -var $exports = module.exports = function (name) { - return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name)); -}; - -$exports.store = store; - -/***/ }), -/* 34 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it) { - if (it == undefined) throw TypeError("Can't call method on " + it); - return it; -}; - -/***/ }), -/* 35 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var MATCH = __w_pdfjs_require__(33)('match'); - -module.exports = function (KEY) { - var re = /./; - - try { - '/./'[KEY](re); - } catch (e) { - try { - re[MATCH] = false; - return !'/./'[KEY](re); - } catch (f) {} - } - - return true; -}; - -/***/ }), -/* 36 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(37); - -module.exports = __w_pdfjs_require__(9).String.endsWith; - -/***/ }), -/* 37 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var toLength = __w_pdfjs_require__(28); - -var context = __w_pdfjs_require__(30); - -var ENDS_WITH = 'endsWith'; -var $endsWith = ''[ENDS_WITH]; -$export($export.P + $export.F * __w_pdfjs_require__(35)(ENDS_WITH), 'String', { - endsWith: function endsWith(searchString) { - var that = context(this, searchString, ENDS_WITH); - var endPosition = arguments.length > 1 ? arguments[1] : undefined; - var len = toLength(that.length); - var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len); - var search = String(searchString); - return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search; - } -}); - -/***/ }), -/* 38 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(39); - -module.exports = __w_pdfjs_require__(9).String.includes; - -/***/ }), -/* 39 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var context = __w_pdfjs_require__(30); - -var INCLUDES = 'includes'; -$export($export.P + $export.F * __w_pdfjs_require__(35)(INCLUDES), 'String', { - includes: function includes(searchString) { - return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -/***/ }), -/* 40 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(41); - -module.exports = __w_pdfjs_require__(9).Array.includes; - -/***/ }), -/* 41 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $includes = __w_pdfjs_require__(42)(true); - -$export($export.P, 'Array', { - includes: function includes(el) { - return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); - } -}); - -__w_pdfjs_require__(46)('includes'); - -/***/ }), -/* 42 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toIObject = __w_pdfjs_require__(43); - -var toLength = __w_pdfjs_require__(28); - -var toAbsoluteIndex = __w_pdfjs_require__(45); - -module.exports = function (IS_INCLUDES) { - return function ($this, el, fromIndex) { - var O = toIObject($this); - var length = toLength(O.length); - var index = toAbsoluteIndex(fromIndex, length); - var value; - if (IS_INCLUDES && el != el) while (length > index) { - value = O[index++]; - if (value != value) return true; - } else for (; length > index; index++) { - if (IS_INCLUDES || index in O) { - if (O[index] === el) return IS_INCLUDES || index || 0; - } - } - return !IS_INCLUDES && -1; - }; -}; - -/***/ }), -/* 43 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var IObject = __w_pdfjs_require__(44); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (it) { - return IObject(defined(it)); -}; - -/***/ }), -/* 44 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(32); - -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) { - return cof(it) == 'String' ? it.split('') : Object(it); -}; - -/***/ }), -/* 45 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var max = Math.max; -var min = Math.min; - -module.exports = function (index, length) { - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - -/***/ }), -/* 46 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var UNSCOPABLES = __w_pdfjs_require__(33)('unscopables'); - -var ArrayProto = Array.prototype; -if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {}); - -module.exports = function (key) { - ArrayProto[UNSCOPABLES][key] = true; -}; - -/***/ }), -/* 47 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(48); - -__w_pdfjs_require__(63); - -module.exports = __w_pdfjs_require__(9).Array.from; - -/***/ }), -/* 48 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $at = __w_pdfjs_require__(49)(true); - -__w_pdfjs_require__(50)(String, 'String', function (iterated) { - this._t = String(iterated); - this._i = 0; -}, function () { - var O = this._t; - var index = this._i; - var point; - if (index >= O.length) return { - value: undefined, - done: true - }; - point = $at(O, index); - this._i += point.length; - return { - value: point, - done: false - }; -}); - -/***/ }), -/* 49 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (TO_STRING) { - return function (that, pos) { - var s = String(defined(that)); - var i = toInteger(pos); - var l = s.length; - var a, b; - if (i < 0 || i >= l) return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - 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; - }; -}; - -/***/ }), -/* 50 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var LIBRARY = __w_pdfjs_require__(25); - -var $export = __w_pdfjs_require__(7); - -var redefine = __w_pdfjs_require__(20); - -var hide = __w_pdfjs_require__(10); - -var Iterators = __w_pdfjs_require__(51); - -var $iterCreate = __w_pdfjs_require__(52); - -var setToStringTag = __w_pdfjs_require__(60); - -var getPrototypeOf = __w_pdfjs_require__(61); - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var BUGGY = !([].keys && 'next' in [].keys()); -var FF_ITERATOR = '@@iterator'; -var KEYS = 'keys'; -var VALUES = 'values'; - -var returnThis = function returnThis() { - return this; -}; - -module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { - $iterCreate(Constructor, NAME, next); - - var getMethod = function getMethod(kind) { - if (!BUGGY && kind in proto) return proto[kind]; - - switch (kind) { - case KEYS: - return function keys() { - return new Constructor(this, kind); - }; - - case VALUES: - return function values() { - return new Constructor(this, kind); - }; - } - - return function entries() { - return new Constructor(this, kind); - }; - }; - - var TAG = NAME + ' Iterator'; - var DEF_VALUES = DEFAULT == VALUES; - var VALUES_BUG = false; - var proto = Base.prototype; - var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; - var $default = $native || getMethod(DEFAULT); - var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; - var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; - var methods, key, IteratorPrototype; - - if ($anyNative) { - IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); - - if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { - setToStringTag(IteratorPrototype, TAG, true); - if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); - } - } - - if (DEF_VALUES && $native && $native.name !== VALUES) { - VALUES_BUG = true; - - $default = function values() { - return $native.call(this); - }; - } - - if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { - hide(proto, ITERATOR, $default); - } - - Iterators[NAME] = $default; - Iterators[TAG] = returnThis; - - if (DEFAULT) { - methods = { - values: DEF_VALUES ? $default : getMethod(VALUES), - keys: IS_SET ? $default : getMethod(KEYS), - entries: $entries - }; - if (FORCED) for (key in methods) { - if (!(key in proto)) redefine(proto, key, methods[key]); - } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); - } - - return methods; -}; - -/***/ }), -/* 51 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = {}; - -/***/ }), -/* 52 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var create = __w_pdfjs_require__(53); - -var descriptor = __w_pdfjs_require__(19); - -var setToStringTag = __w_pdfjs_require__(60); - -var IteratorPrototype = {}; - -__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(33)('iterator'), function () { - return this; -}); - -module.exports = function (Constructor, NAME, next) { - Constructor.prototype = create(IteratorPrototype, { - next: descriptor(1, next) - }); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - -/***/ }), -/* 53 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var dPs = __w_pdfjs_require__(54); - -var enumBugKeys = __w_pdfjs_require__(58); - -var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); - -var Empty = function Empty() {}; - -var PROTOTYPE = 'prototype'; - -var _createDict = function createDict() { - var iframe = __w_pdfjs_require__(17)('iframe'); - - var i = enumBugKeys.length; - var lt = '<'; - var gt = '>'; - var iframeDocument; - iframe.style.display = 'none'; - - __w_pdfjs_require__(59).appendChild(iframe); - - iframe.src = 'javascript:'; - iframeDocument = iframe.contentWindow.document; - iframeDocument.open(); - iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); - iframeDocument.close(); - _createDict = iframeDocument.F; - - while (i--) { - delete _createDict[PROTOTYPE][enumBugKeys[i]]; - } - - return _createDict(); -}; - -module.exports = Object.create || function create(O, Properties) { - var result; - - if (O !== null) { - Empty[PROTOTYPE] = anObject(O); - result = new Empty(); - Empty[PROTOTYPE] = null; - result[IE_PROTO] = O; - } else result = _createDict(); - - return Properties === undefined ? result : dPs(result, Properties); -}; - -/***/ }), -/* 54 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var dP = __w_pdfjs_require__(11); - -var anObject = __w_pdfjs_require__(12); - -var getKeys = __w_pdfjs_require__(55); - -module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) { - anObject(O); - var keys = getKeys(Properties); - var length = keys.length; - var i = 0; - var P; - - while (length > i) { - dP.f(O, P = keys[i++], Properties[P]); - } - - return O; -}; - -/***/ }), -/* 55 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $keys = __w_pdfjs_require__(56); - -var enumBugKeys = __w_pdfjs_require__(58); - -module.exports = Object.keys || function keys(O) { - return $keys(O, enumBugKeys); -}; - -/***/ }), -/* 56 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(21); - -var toIObject = __w_pdfjs_require__(43); - -var arrayIndexOf = __w_pdfjs_require__(42)(false); - -var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); - -module.exports = function (object, names) { - var O = toIObject(object); - var i = 0; - var result = []; - var key; - - for (key in O) { - if (key != IE_PROTO) has(O, key) && result.push(key); - } - - while (names.length > i) { - if (has(O, key = names[i++])) { - ~arrayIndexOf(result, key) || result.push(key); - } - } - - return result; -}; - -/***/ }), -/* 57 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var shared = __w_pdfjs_require__(24)('keys'); - -var uid = __w_pdfjs_require__(22); - -module.exports = function (key) { - return shared[key] || (shared[key] = uid(key)); -}; - -/***/ }), -/* 58 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(','); - -/***/ }), -/* 59 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var document = __w_pdfjs_require__(8).document; - -module.exports = document && document.documentElement; - -/***/ }), -/* 60 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var def = __w_pdfjs_require__(11).f; - -var has = __w_pdfjs_require__(21); - -var TAG = __w_pdfjs_require__(33)('toStringTag'); - -module.exports = function (it, tag, stat) { - if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { - configurable: true, - value: tag - }); -}; - -/***/ }), -/* 61 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var has = __w_pdfjs_require__(21); - -var toObject = __w_pdfjs_require__(62); - -var IE_PROTO = __w_pdfjs_require__(57)('IE_PROTO'); - -var ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function (O) { - O = toObject(O); - if (has(O, IE_PROTO)) return O[IE_PROTO]; - - if (typeof O.constructor == 'function' && O instanceof O.constructor) { - return O.constructor.prototype; - } - - return O instanceof Object ? ObjectProto : null; -}; - -/***/ }), -/* 62 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var defined = __w_pdfjs_require__(34); - -module.exports = function (it) { - return Object(defined(it)); -}; - -/***/ }), -/* 63 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var $export = __w_pdfjs_require__(7); - -var toObject = __w_pdfjs_require__(62); - -var call = __w_pdfjs_require__(64); - -var isArrayIter = __w_pdfjs_require__(65); - -var toLength = __w_pdfjs_require__(28); - -var createProperty = __w_pdfjs_require__(66); - -var getIterFn = __w_pdfjs_require__(67); - -$export($export.S + $export.F * !__w_pdfjs_require__(69)(function (iter) { - Array.from(iter); -}), 'Array', { - from: function from(arrayLike) { - var O = toObject(arrayLike); - var C = typeof this == 'function' ? this : Array; - var aLen = arguments.length; - var mapfn = aLen > 1 ? arguments[1] : undefined; - var mapping = mapfn !== undefined; - var index = 0; - var iterFn = getIterFn(O); - var length, result, step, iterator; - if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2); - - if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) { - for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) { - createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value); - } - } else { - length = toLength(O.length); - - for (result = new C(length); length > index; index++) { - createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]); - } - } - - result.length = index; - return result; - } -}); - -/***/ }), -/* 64 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -module.exports = function (iterator, fn, value, entries) { - try { - return entries ? fn(anObject(value)[0], value[1]) : fn(value); - } catch (e) { - var ret = iterator['return']; - if (ret !== undefined) anObject(ret.call(iterator)); - throw e; - } -}; - -/***/ }), -/* 65 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var Iterators = __w_pdfjs_require__(51); - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var ArrayProto = Array.prototype; - -module.exports = function (it) { - return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); -}; - -/***/ }), -/* 66 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $defineProperty = __w_pdfjs_require__(11); - -var createDesc = __w_pdfjs_require__(19); - -module.exports = function (object, index, value) { - if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value; -}; - -/***/ }), -/* 67 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var classof = __w_pdfjs_require__(68); - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var Iterators = __w_pdfjs_require__(51); - -module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) { - if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)]; -}; - -/***/ }), -/* 68 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(32); - -var TAG = __w_pdfjs_require__(33)('toStringTag'); - -var ARG = cof(function () { - return arguments; -}()) == 'Arguments'; - -var tryGet = function tryGet(it, key) { - try { - return it[key]; - } catch (e) {} -}; - -module.exports = function (it) { - var O, T, B; - 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; -}; - -/***/ }), -/* 69 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ITERATOR = __w_pdfjs_require__(33)('iterator'); - -var SAFE_CLOSING = false; - -try { - var riter = [7][ITERATOR](); - - riter['return'] = function () { - SAFE_CLOSING = true; - }; - - Array.from(riter, function () { - throw 2; - }); -} catch (e) {} - -module.exports = function (exec, skipClosing) { - if (!skipClosing && !SAFE_CLOSING) return false; - var safe = false; - - try { - var arr = [7]; - var iter = arr[ITERATOR](); - - iter.next = function () { - return { - done: safe = true - }; - }; - - arr[ITERATOR] = function () { - return iter; - }; - - exec(arr); - } catch (e) {} - - return safe; -}; - -/***/ }), -/* 70 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(71); - -module.exports = __w_pdfjs_require__(9).Object.assign; - -/***/ }), -/* 71 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S + $export.F, 'Object', { - assign: __w_pdfjs_require__(72) -}); - -/***/ }), -/* 72 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var getKeys = __w_pdfjs_require__(55); - -var gOPS = __w_pdfjs_require__(73); - -var pIE = __w_pdfjs_require__(74); - -var toObject = __w_pdfjs_require__(62); - -var IObject = __w_pdfjs_require__(44); - -var $assign = Object.assign; -module.exports = !$assign || __w_pdfjs_require__(16)(function () { - var A = {}; - var B = {}; - var S = Symbol(); - var K = 'abcdefghijklmnopqrst'; - A[S] = 7; - K.split('').forEach(function (k) { - B[k] = k; - }); - return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; -}) ? function assign(target, source) { - var T = toObject(target); - var aLen = arguments.length; - var index = 1; - var getSymbols = gOPS.f; - var isEnum = pIE.f; - - while (aLen > index) { - var S = IObject(arguments[index++]); - var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S); - var length = keys.length; - var j = 0; - var key; - - while (length > j) { - key = keys[j++]; - if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key]; - } - } - - return T; -} : $assign; - -/***/ }), -/* 73 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = Object.getOwnPropertySymbols; - -/***/ }), -/* 74 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = {}.propertyIsEnumerable; - -/***/ }), -/* 75 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(76); - -module.exports = __w_pdfjs_require__(9).Math.log2; - -/***/ }), -/* 76 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S, 'Math', { - log2: function log2(x) { - return Math.log(x) / Math.LN2; - } -}); - -/***/ }), -/* 77 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(78); - -module.exports = __w_pdfjs_require__(9).Number.isNaN; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S, 'Number', { - isNaN: function isNaN(number) { - return number != number; - } -}); - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(80); - -module.exports = __w_pdfjs_require__(9).Number.isInteger; - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -$export($export.S, 'Number', { - isInteger: __w_pdfjs_require__(81) -}); - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var floor = Math.floor; - -module.exports = function isInteger(it) { - return !isObject(it) && isFinite(it) && floor(it) === it; -}; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(83); - -__w_pdfjs_require__(48); - -__w_pdfjs_require__(84); - -__w_pdfjs_require__(87); - -__w_pdfjs_require__(100); - -__w_pdfjs_require__(101); - -module.exports = __w_pdfjs_require__(9).Promise; - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var classof = __w_pdfjs_require__(68); - -var test = {}; -test[__w_pdfjs_require__(33)('toStringTag')] = 'z'; - -if (test + '' != '[object z]') { - __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() { - return '[object ' + classof(this) + ']'; - }, true); -} - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $iterators = __w_pdfjs_require__(85); - -var getKeys = __w_pdfjs_require__(55); - -var redefine = __w_pdfjs_require__(20); - -var global = __w_pdfjs_require__(8); - -var hide = __w_pdfjs_require__(10); - -var Iterators = __w_pdfjs_require__(51); - -var wks = __w_pdfjs_require__(33); - -var ITERATOR = wks('iterator'); -var TO_STRING_TAG = wks('toStringTag'); -var ArrayValues = Iterators.Array; -var DOMIterables = { - CSSRuleList: true, - CSSStyleDeclaration: false, - CSSValueList: false, - ClientRectList: false, - DOMRectList: false, - DOMStringList: false, - DOMTokenList: true, - DataTransferItemList: false, - FileList: false, - HTMLAllCollection: false, - HTMLCollection: false, - HTMLFormElement: false, - HTMLSelectElement: false, - MediaList: true, - MimeTypeArray: false, - NamedNodeMap: false, - NodeList: true, - PaintRequestList: false, - Plugin: false, - PluginArray: false, - SVGLengthList: false, - SVGNumberList: false, - SVGPathSegList: false, - SVGPointList: false, - SVGStringList: false, - SVGTransformList: false, - SourceBufferList: false, - StyleSheetList: true, - TextTrackCueList: false, - TextTrackList: false, - TouchList: false -}; - -for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) { - var NAME = collections[i]; - var explicit = DOMIterables[NAME]; - var Collection = global[NAME]; - var proto = Collection && Collection.prototype; - var key; - - if (proto) { - if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues); - if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = ArrayValues; - if (explicit) for (key in $iterators) { - if (!proto[key]) redefine(proto, key, $iterators[key], true); - } - } -} - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var addToUnscopables = __w_pdfjs_require__(46); - -var step = __w_pdfjs_require__(86); - -var Iterators = __w_pdfjs_require__(51); - -var toIObject = __w_pdfjs_require__(43); - -module.exports = __w_pdfjs_require__(50)(Array, 'Array', function (iterated, kind) { - this._t = toIObject(iterated); - this._i = 0; - this._k = kind; -}, function () { - var O = this._t; - var kind = this._k; - var index = this._i++; - - if (!O || index >= O.length) { - this._t = undefined; - return step(1); - } - - if (kind == 'keys') return step(0, index); - if (kind == 'values') return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); -Iterators.Arguments = Iterators.Array; -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (done, value) { - return { - value: value, - done: !!done - }; -}; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var LIBRARY = __w_pdfjs_require__(25); - -var global = __w_pdfjs_require__(8); - -var ctx = __w_pdfjs_require__(26); - -var classof = __w_pdfjs_require__(68); - -var $export = __w_pdfjs_require__(7); - -var isObject = __w_pdfjs_require__(13); - -var aFunction = __w_pdfjs_require__(27); - -var anInstance = __w_pdfjs_require__(88); - -var forOf = __w_pdfjs_require__(89); - -var speciesConstructor = __w_pdfjs_require__(90); - -var task = __w_pdfjs_require__(91).set; - -var microtask = __w_pdfjs_require__(93)(); - -var newPromiseCapabilityModule = __w_pdfjs_require__(94); - -var perform = __w_pdfjs_require__(95); - -var userAgent = __w_pdfjs_require__(96); - -var promiseResolve = __w_pdfjs_require__(97); - -var PROMISE = 'Promise'; -var TypeError = global.TypeError; -var process = global.process; -var versions = process && process.versions; -var v8 = versions && versions.v8 || ''; -var $Promise = global[PROMISE]; -var isNode = classof(process) == 'process'; - -var empty = function empty() {}; - -var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper; -var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f; -var USE_NATIVE = !!function () { - try { - var promise = $Promise.resolve(1); - - var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(33)('species')] = function (exec) { - exec(empty, empty); - }; - - return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1; - } catch (e) {} -}(); - -var isThenable = function isThenable(it) { - var then; - return isObject(it) && typeof (then = it.then) == 'function' ? then : false; -}; - -var notify = function notify(promise, isReject) { - if (promise._n) return; - promise._n = true; - var chain = promise._c; - microtask(function () { - var value = promise._v; - var ok = promise._s == 1; - var i = 0; - - var run = function run(reaction) { - var handler = ok ? reaction.ok : reaction.fail; - var resolve = reaction.resolve; - var reject = reaction.reject; - var domain = reaction.domain; - var result, then, exited; - - try { - if (handler) { - if (!ok) { - if (promise._h == 2) onHandleUnhandled(promise); - promise._h = 1; - } - - if (handler === true) result = value;else { - if (domain) domain.enter(); - result = handler(value); - - if (domain) { - domain.exit(); - exited = true; - } - } - - if (result === reaction.promise) { - reject(TypeError('Promise-chain cycle')); - } else if (then = isThenable(result)) { - then.call(result, resolve, reject); - } else resolve(result); - } else reject(value); - } catch (e) { - if (domain && !exited) domain.exit(); - reject(e); - } - }; - - while (chain.length > i) { - run(chain[i++]); - } - - promise._c = []; - promise._n = false; - if (isReject && !promise._h) onUnhandled(promise); - }); -}; - -var onUnhandled = function onUnhandled(promise) { - task.call(global, function () { - var value = promise._v; - var unhandled = isUnhandled(promise); - var result, handler, console; - - if (unhandled) { - result = perform(function () { - if (isNode) { - process.emit('unhandledRejection', value, promise); - } else if (handler = global.onunhandledrejection) { - handler({ - promise: promise, - reason: value - }); - } else if ((console = global.console) && console.error) { - console.error('Unhandled promise rejection', value); - } - }); - promise._h = isNode || isUnhandled(promise) ? 2 : 1; - } - - promise._a = undefined; - if (unhandled && result.e) throw result.v; - }); -}; - -var isUnhandled = function isUnhandled(promise) { - return promise._h !== 1 && (promise._a || promise._c).length === 0; -}; - -var onHandleUnhandled = function onHandleUnhandled(promise) { - task.call(global, function () { - var handler; - - if (isNode) { - process.emit('rejectionHandled', promise); - } else if (handler = global.onrejectionhandled) { - handler({ - promise: promise, - reason: promise._v - }); - } - }); -}; - -var $reject = function $reject(value) { - var promise = this; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - promise._v = value; - promise._s = 2; - if (!promise._a) promise._a = promise._c.slice(); - notify(promise, true); -}; - -var $resolve = function $resolve(value) { - var promise = this; - var then; - if (promise._d) return; - promise._d = true; - promise = promise._w || promise; - - try { - if (promise === value) throw TypeError("Promise can't be resolved itself"); - - if (then = isThenable(value)) { - microtask(function () { - var wrapper = { - _w: promise, - _d: false - }; - - try { - then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); - } catch (e) { - $reject.call(wrapper, e); - } - }); - } else { - promise._v = value; - promise._s = 1; - notify(promise, false); - } - } catch (e) { - $reject.call({ - _w: promise, - _d: false - }, e); - } -}; - -if (!USE_NATIVE) { - $Promise = function Promise(executor) { - anInstance(this, $Promise, PROMISE, '_h'); - aFunction(executor); - Internal.call(this); - - try { - executor(ctx($resolve, this, 1), ctx($reject, this, 1)); - } catch (err) { - $reject.call(this, err); - } - }; - - Internal = function Promise(executor) { - this._c = []; - this._a = undefined; - this._s = 0; - this._d = false; - this._v = undefined; - this._h = 0; - this._n = false; - }; - - Internal.prototype = __w_pdfjs_require__(98)($Promise.prototype, { - then: function then(onFulfilled, onRejected) { - var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); - reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; - reaction.fail = typeof onRejected == 'function' && onRejected; - reaction.domain = isNode ? process.domain : undefined; - - this._c.push(reaction); - - if (this._a) this._a.push(reaction); - if (this._s) notify(this, false); - return reaction.promise; - }, - 'catch': function _catch(onRejected) { - return this.then(undefined, onRejected); - } - }); - - OwnPromiseCapability = function OwnPromiseCapability() { - var promise = new Internal(); - this.promise = promise; - this.resolve = ctx($resolve, promise, 1); - this.reject = ctx($reject, promise, 1); - }; - - newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) { - return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { - Promise: $Promise -}); - -__w_pdfjs_require__(60)($Promise, PROMISE); - -__w_pdfjs_require__(99)(PROMISE); - -Wrapper = __w_pdfjs_require__(9)[PROMISE]; -$export($export.S + $export.F * !USE_NATIVE, PROMISE, { - reject: function reject(r) { - var capability = newPromiseCapability(this); - var $$reject = capability.reject; - $$reject(r); - return capability.promise; - } -}); -$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { - resolve: function resolve(x) { - return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x); - } -}); -$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(69)(function (iter) { - $Promise.all(iter)['catch'](empty); -})), PROMISE, { - all: function all(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var resolve = capability.resolve; - var reject = capability.reject; - var result = perform(function () { - var values = []; - var index = 0; - var remaining = 1; - forOf(iterable, false, function (promise) { - var $index = index++; - var alreadyCalled = false; - values.push(undefined); - remaining++; - C.resolve(promise).then(function (value) { - if (alreadyCalled) return; - alreadyCalled = true; - values[$index] = value; - --remaining || resolve(values); - }, reject); - }); - --remaining || resolve(values); - }); - if (result.e) reject(result.v); - return capability.promise; - }, - race: function race(iterable) { - var C = this; - var capability = newPromiseCapability(C); - var reject = capability.reject; - var result = perform(function () { - forOf(iterable, false, function (promise) { - C.resolve(promise).then(capability.resolve, reject); - }); - }); - if (result.e) reject(result.v); - return capability.promise; - } -}); - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (it, Constructor, name, forbiddenField) { - if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) { - throw TypeError(name + ': incorrect invocation!'); - } - - return it; -}; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var call = __w_pdfjs_require__(64); - -var isArrayIter = __w_pdfjs_require__(65); - -var anObject = __w_pdfjs_require__(12); - -var toLength = __w_pdfjs_require__(28); - -var getIterFn = __w_pdfjs_require__(67); - -var BREAK = {}; -var RETURN = {}; - -var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) { - var iterFn = ITERATOR ? function () { - return iterable; - } : getIterFn(iterable); - var f = ctx(fn, that, entries ? 2 : 1); - var index = 0; - var length, step, iterator, result; - if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!'); - if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) { - result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); - if (result === BREAK || result === RETURN) return result; - } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) { - result = call(iterator, f, step.value, entries); - if (result === BREAK || result === RETURN) return result; - } -}; - -_exports.BREAK = BREAK; -_exports.RETURN = RETURN; - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var aFunction = __w_pdfjs_require__(27); - -var SPECIES = __w_pdfjs_require__(33)('species'); - -module.exports = function (O, D) { - var C = anObject(O).constructor; - var S; - return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); -}; - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var invoke = __w_pdfjs_require__(92); - -var html = __w_pdfjs_require__(59); - -var cel = __w_pdfjs_require__(17); - -var global = __w_pdfjs_require__(8); - -var process = global.process; -var setTask = global.setImmediate; -var clearTask = global.clearImmediate; -var MessageChannel = global.MessageChannel; -var Dispatch = global.Dispatch; -var counter = 0; -var queue = {}; -var ONREADYSTATECHANGE = 'onreadystatechange'; -var defer, channel, port; - -var run = function run() { - var id = +this; - - if (queue.hasOwnProperty(id)) { - var fn = queue[id]; - delete queue[id]; - fn(); - } -}; - -var listener = function listener(event) { - run.call(event.data); -}; - -if (!setTask || !clearTask) { - setTask = function setImmediate(fn) { - var args = []; - var i = 1; - - while (arguments.length > i) { - args.push(arguments[i++]); - } - - queue[++counter] = function () { - invoke(typeof fn == 'function' ? fn : Function(fn), args); - }; - - defer(counter); - return counter; - }; - - clearTask = function clearImmediate(id) { - delete queue[id]; - }; - - if (__w_pdfjs_require__(32)(process) == 'process') { - defer = function defer(id) { - process.nextTick(ctx(run, id, 1)); - }; - } else if (Dispatch && Dispatch.now) { - defer = function defer(id) { - Dispatch.now(ctx(run, id, 1)); - }; - } else if (MessageChannel) { - channel = new MessageChannel(); - port = channel.port2; - channel.port1.onmessage = listener; - defer = ctx(port.postMessage, port, 1); - } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) { - defer = function defer(id) { - global.postMessage(id + '', '*'); - }; - - global.addEventListener('message', listener, false); - } else if (ONREADYSTATECHANGE in cel('script')) { - defer = function defer(id) { - html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () { - html.removeChild(this); - run.call(id); - }; - }; - } else { - defer = function defer(id) { - setTimeout(ctx(run, id, 1), 0); - }; - } -} - -module.exports = { - set: setTask, - clear: clearTask -}; - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (fn, args, that) { - var un = that === undefined; - - switch (args.length) { - case 0: - return un ? fn() : fn.call(that); - - case 1: - return un ? fn(args[0]) : fn.call(that, args[0]); - - case 2: - return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]); - - case 3: - return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]); - - case 4: - return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]); - } - - return fn.apply(that, args); -}; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var macrotask = __w_pdfjs_require__(91).set; - -var Observer = global.MutationObserver || global.WebKitMutationObserver; -var process = global.process; -var Promise = global.Promise; -var isNode = __w_pdfjs_require__(32)(process) == 'process'; - -module.exports = function () { - var head, last, notify; - - var flush = function flush() { - var parent, fn; - if (isNode && (parent = process.domain)) parent.exit(); - - while (head) { - fn = head.fn; - head = head.next; - - try { - fn(); - } catch (e) { - if (head) notify();else last = undefined; - throw e; - } - } - - last = undefined; - if (parent) parent.enter(); - }; - - if (isNode) { - notify = function notify() { - process.nextTick(flush); - }; - } else if (Observer && !(global.navigator && global.navigator.standalone)) { - var toggle = true; - var node = document.createTextNode(''); - new Observer(flush).observe(node, { - characterData: true - }); - - notify = function notify() { - node.data = toggle = !toggle; - }; - } else if (Promise && Promise.resolve) { - var promise = Promise.resolve(undefined); - - notify = function notify() { - promise.then(flush); - }; - } else { - notify = function notify() { - macrotask.call(global, flush); - }; - } - - return function (fn) { - var task = { - fn: fn, - next: undefined - }; - if (last) last.next = task; - - if (!head) { - head = task; - notify(); - } - - last = task; - }; -}; - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var aFunction = __w_pdfjs_require__(27); - -function PromiseCapability(C) { - var resolve, reject; - this.promise = new C(function ($$resolve, $$reject) { - if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor'); - resolve = $$resolve; - reject = $$reject; - }); - this.resolve = aFunction(resolve); - this.reject = aFunction(reject); -} - -module.exports.f = function (C) { - return new PromiseCapability(C); -}; - -/***/ }), -/* 95 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (exec) { - try { - return { - e: false, - v: exec() - }; - } catch (e) { - return { - e: true, - v: e - }; - } -}; - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var navigator = global.navigator; -module.exports = navigator && navigator.userAgent || ''; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var anObject = __w_pdfjs_require__(12); - -var isObject = __w_pdfjs_require__(13); - -var newPromiseCapability = __w_pdfjs_require__(94); - -module.exports = function (C, x) { - anObject(C); - if (isObject(x) && x.constructor === C) return x; - var promiseCapability = newPromiseCapability.f(C); - var resolve = promiseCapability.resolve; - resolve(x); - return promiseCapability.promise; -}; - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var redefine = __w_pdfjs_require__(20); - -module.exports = function (target, src, safe) { - for (var key in src) { - redefine(target, key, src[key], safe); - } - - return target; -}; - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var dP = __w_pdfjs_require__(11); - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var SPECIES = __w_pdfjs_require__(33)('species'); - -module.exports = function (KEY) { - var C = global[KEY]; - if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, { - configurable: true, - get: function get() { - return this; - } - }); -}; - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var core = __w_pdfjs_require__(9); - -var global = __w_pdfjs_require__(8); - -var speciesConstructor = __w_pdfjs_require__(90); - -var promiseResolve = __w_pdfjs_require__(97); - -$export($export.P + $export.R, 'Promise', { - 'finally': function _finally(onFinally) { - var C = speciesConstructor(this, core.Promise || global.Promise); - var isFunction = typeof onFinally == 'function'; - return this.then(isFunction ? function (x) { - return promiseResolve(C, onFinally()).then(function () { - return x; - }); - } : onFinally, isFunction ? function (e) { - return promiseResolve(C, onFinally()).then(function () { - throw e; - }); - } : onFinally); - } -}); - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var newPromiseCapability = __w_pdfjs_require__(94); - -var perform = __w_pdfjs_require__(95); - -$export($export.S, 'Promise', { - 'try': function _try(callbackfn) { - var promiseCapability = newPromiseCapability.f(this); - var result = perform(callbackfn); - (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v); - return promiseCapability.promise; - } -}); - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(83); - -__w_pdfjs_require__(84); - -__w_pdfjs_require__(103); - -__w_pdfjs_require__(115); - -__w_pdfjs_require__(117); - -module.exports = __w_pdfjs_require__(9).WeakMap; - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var each = __w_pdfjs_require__(104)(0); - -var redefine = __w_pdfjs_require__(20); - -var meta = __w_pdfjs_require__(108); - -var assign = __w_pdfjs_require__(72); - -var weak = __w_pdfjs_require__(109); - -var isObject = __w_pdfjs_require__(13); - -var validate = __w_pdfjs_require__(110); - -var NATIVE_WEAK_MAP = __w_pdfjs_require__(110); - -var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global; -var WEAK_MAP = 'WeakMap'; -var getWeak = meta.getWeak; -var isExtensible = Object.isExtensible; -var uncaughtFrozenStore = weak.ufstore; -var InternalMap; - -var wrapper = function wrapper(get) { - return function WeakMap() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}; - -var methods = { - get: function get(key) { - if (isObject(key)) { - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key); - return data ? data[this._i] : undefined; - } - }, - set: function set(key, value) { - return weak.def(validate(this, WEAK_MAP), key, value); - } -}; - -var $WeakMap = module.exports = __w_pdfjs_require__(111)(WEAK_MAP, wrapper, methods, weak, true, true); - -if (NATIVE_WEAK_MAP && IS_IE11) { - InternalMap = weak.getConstructor(wrapper, WEAK_MAP); - assign(InternalMap.prototype, methods); - meta.NEED = true; - each(['delete', 'has', 'get', 'set'], function (key) { - var proto = $WeakMap.prototype; - var method = proto[key]; - redefine(proto, key, function (a, b) { - if (isObject(a) && !isExtensible(a)) { - if (!this._f) this._f = new InternalMap(); - - var result = this._f[key](a, b); - - return key == 'set' ? this : result; - } - - return method.call(this, a, b); - }); - }); -} - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var ctx = __w_pdfjs_require__(26); - -var IObject = __w_pdfjs_require__(44); - -var toObject = __w_pdfjs_require__(62); - -var toLength = __w_pdfjs_require__(28); - -var asc = __w_pdfjs_require__(105); - -module.exports = function (TYPE, $create) { - var IS_MAP = TYPE == 1; - var IS_FILTER = TYPE == 2; - var IS_SOME = TYPE == 3; - var IS_EVERY = TYPE == 4; - var IS_FIND_INDEX = TYPE == 6; - var NO_HOLES = TYPE == 5 || IS_FIND_INDEX; - var create = $create || asc; - return function ($this, callbackfn, that) { - var O = toObject($this); - var self = IObject(O); - var f = ctx(callbackfn, that, 3); - var length = toLength(self.length); - var index = 0; - var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined; - var val, res; - - for (; length > index; index++) { - if (NO_HOLES || index in self) { - val = self[index]; - res = f(val, index, O); - - if (TYPE) { - if (IS_MAP) result[index] = res;else if (res) switch (TYPE) { - case 3: - return true; - - case 5: - return val; - - case 6: - return index; - - case 2: - result.push(val); - } else if (IS_EVERY) return false; - } - } - } - - return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result; - }; -}; - -/***/ }), -/* 105 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var speciesConstructor = __w_pdfjs_require__(106); - -module.exports = function (original, length) { - return new (speciesConstructor(original))(length); -}; - -/***/ }), -/* 106 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var isArray = __w_pdfjs_require__(107); - -var SPECIES = __w_pdfjs_require__(33)('species'); - -module.exports = function (original) { - var C; - - if (isArray(original)) { - C = original.constructor; - if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined; - - if (isObject(C)) { - C = C[SPECIES]; - if (C === null) C = undefined; - } - } - - return C === undefined ? Array : C; -}; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var cof = __w_pdfjs_require__(32); - -module.exports = Array.isArray || function isArray(arg) { - return cof(arg) == 'Array'; -}; - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var META = __w_pdfjs_require__(22)('meta'); - -var isObject = __w_pdfjs_require__(13); - -var has = __w_pdfjs_require__(21); - -var setDesc = __w_pdfjs_require__(11).f; - -var id = 0; - -var isExtensible = Object.isExtensible || function () { - return true; -}; - -var FREEZE = !__w_pdfjs_require__(16)(function () { - return isExtensible(Object.preventExtensions({})); -}); - -var setMeta = function setMeta(it) { - setDesc(it, META, { - value: { - i: 'O' + ++id, - w: {} - } - }); -}; - -var fastKey = function fastKey(it, create) { - if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - - if (!has(it, META)) { - if (!isExtensible(it)) return 'F'; - if (!create) return 'E'; - setMeta(it); - } - - return it[META].i; -}; - -var getWeak = function getWeak(it, create) { - if (!has(it, META)) { - if (!isExtensible(it)) return true; - if (!create) return false; - setMeta(it); - } - - return it[META].w; -}; - -var onFreeze = function onFreeze(it) { - if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it); - return it; -}; - -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var redefineAll = __w_pdfjs_require__(98); - -var getWeak = __w_pdfjs_require__(108).getWeak; - -var anObject = __w_pdfjs_require__(12); - -var isObject = __w_pdfjs_require__(13); - -var anInstance = __w_pdfjs_require__(88); - -var forOf = __w_pdfjs_require__(89); - -var createArrayMethod = __w_pdfjs_require__(104); - -var $has = __w_pdfjs_require__(21); - -var validate = __w_pdfjs_require__(110); - -var arrayFind = createArrayMethod(5); -var arrayFindIndex = createArrayMethod(6); -var id = 0; - -var uncaughtFrozenStore = function uncaughtFrozenStore(that) { - return that._l || (that._l = new UncaughtFrozenStore()); -}; - -var UncaughtFrozenStore = function UncaughtFrozenStore() { - this.a = []; -}; - -var findUncaughtFrozen = function findUncaughtFrozen(store, key) { - return arrayFind(store.a, function (it) { - return it[0] === key; - }); -}; - -UncaughtFrozenStore.prototype = { - get: function get(key) { - var entry = findUncaughtFrozen(this, key); - if (entry) return entry[1]; - }, - has: function has(key) { - return !!findUncaughtFrozen(this, key); - }, - set: function set(key, value) { - var entry = findUncaughtFrozen(this, key); - if (entry) entry[1] = value;else this.a.push([key, value]); - }, - 'delete': function _delete(key) { - var index = arrayFindIndex(this.a, function (it) { - return it[0] === key; - }); - if (~index) this.a.splice(index, 1); - return !!~index; - } -}; -module.exports = { - getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) { - var C = wrapper(function (that, iterable) { - anInstance(that, C, NAME, '_i'); - that._t = NAME; - that._i = id++; - that._l = undefined; - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - }); - redefineAll(C.prototype, { - 'delete': function _delete(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key); - return data && $has(data, this._i) && delete data[this._i]; - }, - has: function has(key) { - if (!isObject(key)) return false; - var data = getWeak(key); - if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key); - return data && $has(data, this._i); - } - }); - return C; - }, - def: function def(that, key, value) { - var data = getWeak(anObject(key), true); - if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value; - return that; - }, - ufstore: uncaughtFrozenStore -}; - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -module.exports = function (it, TYPE) { - if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!'); - return it; -}; - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var $export = __w_pdfjs_require__(7); - -var redefine = __w_pdfjs_require__(20); - -var redefineAll = __w_pdfjs_require__(98); - -var meta = __w_pdfjs_require__(108); - -var forOf = __w_pdfjs_require__(89); - -var anInstance = __w_pdfjs_require__(88); - -var isObject = __w_pdfjs_require__(13); - -var fails = __w_pdfjs_require__(16); - -var $iterDetect = __w_pdfjs_require__(69); - -var setToStringTag = __w_pdfjs_require__(60); - -var inheritIfRequired = __w_pdfjs_require__(112); - -module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) { - var Base = global[NAME]; - var C = Base; - var ADDER = IS_MAP ? 'set' : 'add'; - var proto = C && C.prototype; - var O = {}; - - var fixMethod = function fixMethod(KEY) { - var fn = proto[KEY]; - redefine(proto, KEY, KEY == 'delete' ? function (a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'has' ? function has(a) { - return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'get' ? function get(a) { - return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a); - } : KEY == 'add' ? function add(a) { - fn.call(this, a === 0 ? 0 : a); - return this; - } : function set(a, b) { - fn.call(this, a === 0 ? 0 : a, b); - return this; - }); - }; - - if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () { - new C().entries().next(); - }))) { - C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER); - redefineAll(C.prototype, methods); - meta.NEED = true; - } else { - var instance = new C(); - var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance; - var THROWS_ON_PRIMITIVES = fails(function () { - instance.has(1); - }); - var ACCEPT_ITERABLES = $iterDetect(function (iter) { - new C(iter); - }); - var BUGGY_ZERO = !IS_WEAK && fails(function () { - var $instance = new C(); - var index = 5; - - while (index--) { - $instance[ADDER](index, index); - } - - return !$instance.has(-0); - }); - - if (!ACCEPT_ITERABLES) { - C = wrapper(function (target, iterable) { - anInstance(target, C, NAME); - var that = inheritIfRequired(new Base(), target, C); - if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that); - return that; - }); - C.prototype = proto; - proto.constructor = C; - } - - if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) { - fixMethod('delete'); - fixMethod('has'); - IS_MAP && fixMethod('get'); - } - - if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER); - if (IS_WEAK && proto.clear) delete proto.clear; - } - - setToStringTag(C, NAME); - O[NAME] = C; - $export($export.G + $export.W + $export.F * (C != Base), O); - if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP); - return C; -}; - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var setPrototypeOf = __w_pdfjs_require__(113).set; - -module.exports = function (that, target, C) { - var S = target.constructor; - var P; - - if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) { - setPrototypeOf(that, P); - } - - return that; -}; - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var isObject = __w_pdfjs_require__(13); - -var anObject = __w_pdfjs_require__(12); - -var check = function check(O, proto) { - anObject(O); - if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!"); -}; - -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) { - try { - set = __w_pdfjs_require__(26)(Function.call, __w_pdfjs_require__(114).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch (e) { - buggy = true; - } - - return function setPrototypeOf(O, proto) { - check(O, proto); - if (buggy) O.__proto__ = proto;else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var pIE = __w_pdfjs_require__(74); - -var createDesc = __w_pdfjs_require__(19); - -var toIObject = __w_pdfjs_require__(43); - -var toPrimitive = __w_pdfjs_require__(18); - -var has = __w_pdfjs_require__(21); - -var IE8_DOM_DEFINE = __w_pdfjs_require__(14); - -var gOPD = Object.getOwnPropertyDescriptor; -exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) { - O = toIObject(O); - P = toPrimitive(P, true); - if (IE8_DOM_DEFINE) try { - return gOPD(O, P); - } catch (e) {} - if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); -}; - -/***/ }), -/* 115 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(116)('WeakMap'); - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - of: function of() { - var length = arguments.length; - var A = new Array(length); - - while (length--) { - A[length] = arguments[length]; - } - - return new this(A); - } - }); -}; - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(118)('WeakMap'); - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var aFunction = __w_pdfjs_require__(27); - -var ctx = __w_pdfjs_require__(26); - -var forOf = __w_pdfjs_require__(89); - -module.exports = function (COLLECTION) { - $export($export.S, COLLECTION, { - from: function from(source) { - var mapFn = arguments[1]; - var mapping, A, n, cb; - aFunction(this); - mapping = mapFn !== undefined; - if (mapping) aFunction(mapFn); - if (source == undefined) return new this(); - A = []; - - if (mapping) { - n = 0; - cb = ctx(mapFn, arguments[2], 2); - forOf(source, false, function (nextItem) { - A.push(cb(nextItem, n++)); - }); - } else { - forOf(source, false, A.push, A); - } - - return new this(A); - } - }); -}; - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(83); - -__w_pdfjs_require__(84); - -__w_pdfjs_require__(120); - -__w_pdfjs_require__(121); - -__w_pdfjs_require__(122); - -module.exports = __w_pdfjs_require__(9).WeakSet; - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var weak = __w_pdfjs_require__(109); - -var validate = __w_pdfjs_require__(110); - -var WEAK_SET = 'WeakSet'; - -__w_pdfjs_require__(111)(WEAK_SET, function (get) { - return function WeakSet() { - return get(this, arguments.length > 0 ? arguments[0] : undefined); - }; -}, { - add: function add(value) { - return weak.def(validate(this, WEAK_SET), value, true); - } -}, weak, false, true); - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(116)('WeakSet'); - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(118)('WeakSet'); - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(124); - -module.exports = __w_pdfjs_require__(9).String.codePointAt; - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $at = __w_pdfjs_require__(49)(false); - -$export($export.P, 'String', { - codePointAt: function codePointAt(pos) { - return $at(this, pos); - } -}); - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(126); - -module.exports = __w_pdfjs_require__(9).String.fromCodePoint; - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var toAbsoluteIndex = __w_pdfjs_require__(45); - -var fromCharCode = String.fromCharCode; -var $fromCodePoint = String.fromCodePoint; -$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', { - fromCodePoint: function fromCodePoint(x) { - var res = []; - var aLen = arguments.length; - var i = 0; - var code; - - while (aLen > i) { - code = +arguments[i++]; - if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point'); - res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)); - } - - return res.join(''); - } -}); - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(128); - -__w_pdfjs_require__(83); - -module.exports = __w_pdfjs_require__(9).Symbol; - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var global = __w_pdfjs_require__(8); - -var has = __w_pdfjs_require__(21); - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var $export = __w_pdfjs_require__(7); - -var redefine = __w_pdfjs_require__(20); - -var META = __w_pdfjs_require__(108).KEY; - -var $fails = __w_pdfjs_require__(16); - -var shared = __w_pdfjs_require__(24); - -var setToStringTag = __w_pdfjs_require__(60); - -var uid = __w_pdfjs_require__(22); - -var wks = __w_pdfjs_require__(33); - -var wksExt = __w_pdfjs_require__(129); - -var wksDefine = __w_pdfjs_require__(130); - -var enumKeys = __w_pdfjs_require__(131); - -var isArray = __w_pdfjs_require__(107); - -var anObject = __w_pdfjs_require__(12); - -var isObject = __w_pdfjs_require__(13); - -var toObject = __w_pdfjs_require__(62); - -var toIObject = __w_pdfjs_require__(43); - -var toPrimitive = __w_pdfjs_require__(18); - -var createDesc = __w_pdfjs_require__(19); - -var _create = __w_pdfjs_require__(53); - -var gOPNExt = __w_pdfjs_require__(132); - -var $GOPD = __w_pdfjs_require__(114); - -var $GOPS = __w_pdfjs_require__(73); - -var $DP = __w_pdfjs_require__(11); - -var $keys = __w_pdfjs_require__(55); - -var gOPD = $GOPD.f; -var dP = $DP.f; -var gOPN = gOPNExt.f; -var $Symbol = global.Symbol; -var $JSON = global.JSON; - -var _stringify = $JSON && $JSON.stringify; - -var PROTOTYPE = 'prototype'; -var HIDDEN = wks('_hidden'); -var TO_PRIMITIVE = wks('toPrimitive'); -var isEnum = {}.propertyIsEnumerable; -var SymbolRegistry = shared('symbol-registry'); -var AllSymbols = shared('symbols'); -var OPSymbols = shared('op-symbols'); -var ObjectProto = Object[PROTOTYPE]; -var USE_NATIVE = typeof $Symbol == 'function' && !!$GOPS.f; -var QObject = global.QObject; -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; -var setSymbolDesc = DESCRIPTORS && $fails(function () { - return _create(dP({}, 'a', { - get: function get() { - return dP(this, 'a', { - value: 7 - }).a; - } - })).a != 7; -}) ? function (it, key, D) { - var protoDesc = gOPD(ObjectProto, key); - if (protoDesc) delete ObjectProto[key]; - dP(it, key, D); - if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function wrap(tag) { - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) { - return _typeof(it) == 'symbol'; -} : function (it) { - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D) { - if (it === ObjectProto) $defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - - if (has(AllSymbols, key)) { - if (!D.enumerable) { - if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false; - D = _create(D, { - enumerable: createDesc(0, false) - }); - } - - return setSymbolDesc(it, key, D); - } - - return dP(it, key, D); -}; - -var $defineProperties = function defineProperties(it, P) { - anObject(it); - var keys = enumKeys(P = toIObject(P)); - var i = 0; - var l = keys.length; - var key; - - while (l > i) { - $defineProperty(it, key = keys[i++], P[key]); - } - - return it; -}; - -var $create = function create(it, P) { - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; - -var $propertyIsEnumerable = function propertyIsEnumerable(key) { - var E = isEnum.call(this, key = toPrimitive(key, true)); - if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; - -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) { - it = toIObject(it); - key = toPrimitive(key, true); - if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return; - var D = gOPD(it, key); - if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true; - return D; -}; - -var $getOwnPropertyNames = function getOwnPropertyNames(it) { - var names = gOPN(toIObject(it)); - var result = []; - var i = 0; - var key; - - while (names.length > i) { - if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key); - } - - return result; -}; - -var $getOwnPropertySymbols = function getOwnPropertySymbols(it) { - var IS_OP = it === ObjectProto; - var names = gOPN(IS_OP ? OPSymbols : toIObject(it)); - var result = []; - var i = 0; - var key; - - while (names.length > i) { - if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]); - } - - return result; -}; - -if (!USE_NATIVE) { - $Symbol = function _Symbol() { - if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - - var $set = function $set(value) { - if (this === ObjectProto) $set.call(OPSymbols, value); - if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - - if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, { - configurable: true, - set: $set - }); - return wrap(tag); - }; - - redefine($Symbol[PROTOTYPE], 'toString', function toString() { - return this._k; - }); - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __w_pdfjs_require__(133).f = gOPNExt.f = $getOwnPropertyNames; - __w_pdfjs_require__(74).f = $propertyIsEnumerable; - $GOPS.f = $getOwnPropertySymbols; - - if (DESCRIPTORS && !__w_pdfjs_require__(25)) { - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function (name) { - return wrap(wks(name)); - }; -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, { - Symbol: $Symbol -}); - -for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) { - wks(es6Symbols[j++]); -} - -for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) { - wksDefine(wellKnownSymbols[k++]); -} - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - 'for': function _for(key) { - return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key); - }, - keyFor: function keyFor(sym) { - if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!'); - - for (var key in SymbolRegistry) { - if (SymbolRegistry[key] === sym) return key; - } - }, - useSetter: function useSetter() { - setter = true; - }, - useSimple: function useSimple() { - setter = false; - } -}); -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - create: $create, - defineProperty: $defineProperty, - defineProperties: $defineProperties, - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - getOwnPropertyNames: $getOwnPropertyNames, - getOwnPropertySymbols: $getOwnPropertySymbols -}); -var FAILS_ON_PRIMITIVES = $fails(function () { - $GOPS.f(1); -}); -$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', { - getOwnPropertySymbols: function getOwnPropertySymbols(it) { - return $GOPS.f(toObject(it)); - } -}); -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () { - var S = $Symbol(); - return _stringify([S]) != '[null]' || _stringify({ - a: S - }) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it) { - var args = [it]; - var i = 1; - var replacer, $replacer; - - while (arguments.length > i) { - args.push(arguments[i++]); - } - - $replacer = replacer = args[1]; - if (!isObject(replacer) && it === undefined || isSymbol(it)) return; - if (!isArray(replacer)) replacer = function replacer(key, value) { - if (typeof $replacer == 'function') value = $replacer.call(this, key, value); - if (!isSymbol(value)) return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -setToStringTag($Symbol, 'Symbol'); -setToStringTag(Math, 'Math', true); -setToStringTag(global.JSON, 'JSON', true); - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -exports.f = __w_pdfjs_require__(33); - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var global = __w_pdfjs_require__(8); - -var core = __w_pdfjs_require__(9); - -var LIBRARY = __w_pdfjs_require__(25); - -var wksExt = __w_pdfjs_require__(129); - -var defineProperty = __w_pdfjs_require__(11).f; - -module.exports = function (name) { - var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); - if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { - value: wksExt.f(name) - }); -}; - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var getKeys = __w_pdfjs_require__(55); - -var gOPS = __w_pdfjs_require__(73); - -var pIE = __w_pdfjs_require__(74); - -module.exports = function (it) { - var result = getKeys(it); - var getSymbols = gOPS.f; - - if (getSymbols) { - var symbols = getSymbols(it); - var isEnum = pIE.f; - var i = 0; - var key; - - while (symbols.length > i) { - if (isEnum.call(it, key = symbols[i++])) result.push(key); - } - } - - return result; -}; - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var toIObject = __w_pdfjs_require__(43); - -var gOPN = __w_pdfjs_require__(133).f; - -var toString = {}.toString; -var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function getWindowNames(it) { - try { - return gOPN(it); - } catch (e) { - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it) { - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - -/***/ }), -/* 133 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $keys = __w_pdfjs_require__(56); - -var hiddenKeys = __w_pdfjs_require__(58).concat('length', 'prototype'); - -exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { - return $keys(O, hiddenKeys); -}; - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(135); - -module.exports = __w_pdfjs_require__(9).String.padStart; - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $pad = __w_pdfjs_require__(136); - -var userAgent = __w_pdfjs_require__(96); - -var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); -$export($export.P + $export.F * WEBKIT_BUG, 'String', { - padStart: function padStart(maxLength) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true); - } -}); - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toLength = __w_pdfjs_require__(28); - -var repeat = __w_pdfjs_require__(137); - -var defined = __w_pdfjs_require__(34); - -module.exports = function (that, maxLength, fillString, left) { - var S = String(defined(that)); - var stringLength = S.length; - var fillStr = fillString === undefined ? ' ' : String(fillString); - var intMaxLength = toLength(maxLength); - if (intMaxLength <= stringLength || fillStr == '') return S; - var fillLen = intMaxLength - stringLength; - var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length)); - if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen); - return left ? stringFiller + S : S + stringFiller; -}; - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var toInteger = __w_pdfjs_require__(29); - -var defined = __w_pdfjs_require__(34); - -module.exports = function repeat(count) { - var str = String(defined(this)); - var res = ''; - var n = toInteger(count); - if (n < 0 || n == Infinity) throw RangeError("Count can't be negative"); - - for (; n > 0; (n >>>= 1) && (str += str)) { - if (n & 1) res += str; - } - - return res; -}; - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(139); - -module.exports = __w_pdfjs_require__(9).String.padEnd; - -/***/ }), -/* 139 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $pad = __w_pdfjs_require__(136); - -var userAgent = __w_pdfjs_require__(96); - -var WEBKIT_BUG = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent); -$export($export.P + $export.F * WEBKIT_BUG, 'String', { - padEnd: function padEnd(maxLength) { - return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false); - } -}); - -/***/ }), -/* 140 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -__w_pdfjs_require__(141); - -module.exports = __w_pdfjs_require__(9).Object.values; - -/***/ }), -/* 141 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var $export = __w_pdfjs_require__(7); - -var $values = __w_pdfjs_require__(142)(false); - -$export($export.S, 'Object', { - values: function values(it) { - return $values(it); - } -}); - -/***/ }), -/* 142 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -var DESCRIPTORS = __w_pdfjs_require__(15); - -var getKeys = __w_pdfjs_require__(55); - -var toIObject = __w_pdfjs_require__(43); - -var isEnum = __w_pdfjs_require__(74).f; - -module.exports = function (isEntries) { - return function (it) { - var O = toIObject(it); - var keys = getKeys(O); - var length = keys.length; - var i = 0; - var result = []; - var key; - - while (length > i) { - key = keys[i++]; - - if (!DESCRIPTORS || isEnum.call(O, key)) { - result.push(isEntries ? [key, O[key]] : O[key]); - } - } - - return result; - }; -}; - -/***/ }), -/* 143 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -{ - var isReadableStreamSupported = false; - - if (typeof ReadableStream !== 'undefined') { - try { - new ReadableStream({ - start: function start(controller) { - controller.close(); - } - }); - isReadableStreamSupported = true; - } catch (e) {} - } - - if (isReadableStreamSupported) { - exports.ReadableStream = ReadableStream; - } else { - exports.ReadableStream = __w_pdfjs_require__(144).ReadableStream; - } -} - -/***/ }), -/* 144 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } - -(function (e, a) { - for (var i in a) { - e[i] = a[i]; - } -})(exports, function (modules) { - var installedModules = {}; - - function __w_pdfjs_require__(moduleId) { - if (installedModules[moduleId]) return installedModules[moduleId].exports; - var module = installedModules[moduleId] = { - i: moduleId, - l: false, - exports: {} - }; - modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__); - module.l = true; - return module.exports; - } - - __w_pdfjs_require__.m = modules; - __w_pdfjs_require__.c = installedModules; - - __w_pdfjs_require__.i = function (value) { - return value; - }; - - __w_pdfjs_require__.d = function (exports, name, getter) { - if (!__w_pdfjs_require__.o(exports, name)) { - Object.defineProperty(exports, name, { - configurable: false, - enumerable: true, - get: getter - }); - } - }; - - __w_pdfjs_require__.n = function (module) { - var getter = module && module.__esModule ? function getDefault() { - return module['default']; - } : function getModuleExports() { - return module; - }; - - __w_pdfjs_require__.d(getter, 'a', getter); - - return getter; - }; - - __w_pdfjs_require__.o = function (object, property) { - return Object.prototype.hasOwnProperty.call(object, property); - }; - - __w_pdfjs_require__.p = ""; - return __w_pdfjs_require__(__w_pdfjs_require__.s = 7); -}([function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) { - return _typeof2(obj); - } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); - }; - - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - - function IsPropertyKey(argument) { - return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol'; - } - - exports.typeIsObject = function (x) { - return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function'; - }; - - exports.createDataProperty = function (o, p, v) { - assert(exports.typeIsObject(o)); - Object.defineProperty(o, p, { - value: v, - writable: true, - enumerable: true, - configurable: true - }); - }; - - exports.createArrayFromList = function (elements) { - return elements.slice(); - }; - - exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) { - new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset); - }; - - exports.CreateIterResultObject = function (value, done) { - assert(typeof done === 'boolean'); - var obj = {}; - Object.defineProperty(obj, 'value', { - value: value, - enumerable: true, - writable: true, - configurable: true - }); - Object.defineProperty(obj, 'done', { - value: done, - enumerable: true, - writable: true, - configurable: true - }); - return obj; - }; - - exports.IsFiniteNonNegativeNumber = function (v) { - if (Number.isNaN(v)) { - return false; - } - - if (v === Infinity) { - return false; - } - - if (v < 0) { - return false; - } - - return true; - }; - - function Call(F, V, args) { - if (typeof F !== 'function') { - throw new TypeError('Argument is not a function'); - } - - return Function.prototype.apply.call(F, V, args); - } - - exports.InvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - var method = O[P]; - - if (method === undefined) { - return undefined; - } - - return Call(method, O, args); - }; - - exports.PromiseInvokeOrNoop = function (O, P, args) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - - try { - return Promise.resolve(exports.InvokeOrNoop(O, P, args)); - } catch (returnValueE) { - return Promise.reject(returnValueE); - } - }; - - exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) { - assert(O !== undefined); - assert(IsPropertyKey(P)); - assert(Array.isArray(args)); - assert(Array.isArray(argsF)); - var method = void 0; - - try { - method = O[P]; - } catch (methodE) { - return Promise.reject(methodE); - } - - if (method === undefined) { - return F.apply(null, argsF); - } - - try { - return Promise.resolve(Call(method, O, args)); - } catch (e) { - return Promise.reject(e); - } - }; - - exports.TransferArrayBuffer = function (O) { - return O.slice(); - }; - - exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) { - highWaterMark = Number(highWaterMark); - - if (Number.isNaN(highWaterMark) || highWaterMark < 0) { - throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN'); - } - - return highWaterMark; - }; - - exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) { - if (size !== undefined && typeof size !== 'function') { - throw new TypeError('size property of a queuing strategy must be a function'); - } - - highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark); - return { - size: size, - highWaterMark: highWaterMark - }; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - function rethrowAssertionErrorRejection(e) { - if (e && e.constructor === AssertionError) { - setTimeout(function () { - throw e; - }, 0); - } - } - - function AssertionError(message) { - this.name = 'AssertionError'; - this.message = message || ''; - this.stack = new Error().stack; - } - - AssertionError.prototype = Object.create(Error.prototype); - AssertionError.prototype.constructor = AssertionError; - - function assert(value, message) { - if (!value) { - throw new AssertionError(message); - } - } - - module.exports = { - rethrowAssertionErrorRejection: rethrowAssertionErrorRejection, - AssertionError: AssertionError, - assert: assert - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _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; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(0), - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - typeIsObject = _require.typeIsObject; - - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert, - rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection; - - var _require3 = __w_pdfjs_require__(3), - DequeueValue = _require3.DequeueValue, - EnqueueValueWithSize = _require3.EnqueueValueWithSize, - PeekQueueValue = _require3.PeekQueueValue, - ResetQueue = _require3.ResetQueue; - - var WritableStream = function () { - function WritableStream() { - var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - _ref$highWaterMark = _ref.highWaterMark, - highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark; - - _classCallCheck(this, WritableStream); - - this._state = 'writable'; - this._storedError = undefined; - this._writer = undefined; - this._writableStreamController = undefined; - this._writeRequests = []; - this._inFlightWriteRequest = undefined; - this._closeRequest = undefined; - this._inFlightCloseRequest = undefined; - this._pendingAbortRequest = undefined; - this._backpressure = false; - var type = underlyingSink.type; - - if (type !== undefined) { - throw new RangeError('Invalid type is specified'); - } - - this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark); - - this._writableStreamController.__startSteps(); - } - - _createClass(WritableStream, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStream(this) === false) { - return Promise.reject(streamBrandCheckException('abort')); - } - - if (IsWritableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot abort a stream that already has a writer')); - } - - return WritableStreamAbort(this, reason); - } - }, { - key: 'getWriter', - value: function getWriter() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('getWriter'); - } - - return AcquireWritableStreamDefaultWriter(this); - } - }, { - key: 'locked', - get: function get() { - if (IsWritableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - - return IsWritableStreamLocked(this); - } - }]); - - return WritableStream; - }(); - - module.exports = { - AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter, - IsWritableStream: IsWritableStream, - IsWritableStreamLocked: IsWritableStreamLocked, - WritableStream: WritableStream, - WritableStreamAbort: WritableStreamAbort, - WritableStreamDefaultControllerError: WritableStreamDefaultControllerError, - WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight - }; - - function AcquireWritableStreamDefaultWriter(stream) { - return new WritableStreamDefaultWriter(stream); - } - - function IsWritableStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) { - return false; - } - - return true; - } - - function IsWritableStreamLocked(stream) { - assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams'); - - if (stream._writer === undefined) { - return false; - } - - return true; - } - - function WritableStreamAbort(stream, reason) { - var state = stream._state; - - if (state === 'closed') { - return Promise.resolve(undefined); - } - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - var error = new TypeError('Requested to abort'); - - if (stream._pendingAbortRequest !== undefined) { - return Promise.reject(error); - } - - assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring'); - var wasAlreadyErroring = false; - - if (state === 'erroring') { - wasAlreadyErroring = true; - reason = undefined; - } - - var promise = new Promise(function (resolve, reject) { - stream._pendingAbortRequest = { - _resolve: resolve, - _reject: reject, - _reason: reason, - _wasAlreadyErroring: wasAlreadyErroring - }; - }); - - if (wasAlreadyErroring === false) { - WritableStreamStartErroring(stream, error); - } - - return promise; - } - - function WritableStreamAddWriteRequest(stream) { - assert(IsWritableStreamLocked(stream) === true); - assert(stream._state === 'writable'); - var promise = new Promise(function (resolve, reject) { - var writeRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._writeRequests.push(writeRequest); - }); - return promise; - } - - function WritableStreamDealWithRejection(stream, error) { - var state = stream._state; - - if (state === 'writable') { - WritableStreamStartErroring(stream, error); - return; - } - - assert(state === 'erroring'); - WritableStreamFinishErroring(stream); - } - - function WritableStreamStartErroring(stream, reason) { - assert(stream._storedError === undefined, 'stream._storedError === undefined'); - assert(stream._state === 'writable', 'state must be writable'); - var controller = stream._writableStreamController; - assert(controller !== undefined, 'controller must not be undefined'); - stream._state = 'erroring'; - stream._storedError = reason; - var writer = stream._writer; - - if (writer !== undefined) { - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason); - } - - if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) { - WritableStreamFinishErroring(stream); - } - } - - function WritableStreamFinishErroring(stream) { - assert(stream._state === 'erroring', 'stream._state === erroring'); - assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false'); - stream._state = 'errored'; - - stream._writableStreamController.__errorSteps(); - - var storedError = stream._storedError; - - for (var i = 0; i < stream._writeRequests.length; i++) { - var writeRequest = stream._writeRequests[i]; - - writeRequest._reject(storedError); - } - - stream._writeRequests = []; - - if (stream._pendingAbortRequest === undefined) { - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - - var abortRequest = stream._pendingAbortRequest; - stream._pendingAbortRequest = undefined; - - if (abortRequest._wasAlreadyErroring === true) { - abortRequest._reject(storedError); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - return; - } - - var promise = stream._writableStreamController.__abortSteps(abortRequest._reason); - - promise.then(function () { - abortRequest._resolve(); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }, function (reason) { - abortRequest._reject(reason); - - WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream); - }); - } - - function WritableStreamFinishInFlightWrite(stream) { - assert(stream._inFlightWriteRequest !== undefined); - - stream._inFlightWriteRequest._resolve(undefined); - - stream._inFlightWriteRequest = undefined; - } - - function WritableStreamFinishInFlightWriteWithError(stream, error) { - assert(stream._inFlightWriteRequest !== undefined); - - stream._inFlightWriteRequest._reject(error); - - stream._inFlightWriteRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - WritableStreamDealWithRejection(stream, error); - } - - function WritableStreamFinishInFlightClose(stream) { - assert(stream._inFlightCloseRequest !== undefined); - - stream._inFlightCloseRequest._resolve(undefined); - - stream._inFlightCloseRequest = undefined; - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - - if (state === 'erroring') { - stream._storedError = undefined; - - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._resolve(); - - stream._pendingAbortRequest = undefined; - } - } - - stream._state = 'closed'; - var writer = stream._writer; - - if (writer !== undefined) { - defaultWriterClosedPromiseResolve(writer); - } - - assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined'); - assert(stream._storedError === undefined, 'stream._storedError === undefined'); - } - - function WritableStreamFinishInFlightCloseWithError(stream, error) { - assert(stream._inFlightCloseRequest !== undefined); - - stream._inFlightCloseRequest._reject(error); - - stream._inFlightCloseRequest = undefined; - assert(stream._state === 'writable' || stream._state === 'erroring'); - - if (stream._pendingAbortRequest !== undefined) { - stream._pendingAbortRequest._reject(error); - - stream._pendingAbortRequest = undefined; - } - - WritableStreamDealWithRejection(stream, error); - } - - function WritableStreamCloseQueuedOrInFlight(stream) { - if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - - return true; - } - - function WritableStreamHasOperationMarkedInFlight(stream) { - if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) { - return false; - } - - return true; - } - - function WritableStreamMarkCloseRequestInFlight(stream) { - assert(stream._inFlightCloseRequest === undefined); - assert(stream._closeRequest !== undefined); - stream._inFlightCloseRequest = stream._closeRequest; - stream._closeRequest = undefined; - } - - function WritableStreamMarkFirstWriteRequestInFlight(stream) { - assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request'); - assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty'); - stream._inFlightWriteRequest = stream._writeRequests.shift(); - } - - function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) { - assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`'); - - if (stream._closeRequest !== undefined) { - assert(stream._inFlightCloseRequest === undefined); - - stream._closeRequest._reject(stream._storedError); - - stream._closeRequest = undefined; - } - - var writer = stream._writer; - - if (writer !== undefined) { - defaultWriterClosedPromiseReject(writer, stream._storedError); - - writer._closedPromise["catch"](function () {}); - } - } - - function WritableStreamUpdateBackpressure(stream, backpressure) { - assert(stream._state === 'writable'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var writer = stream._writer; - - if (writer !== undefined && backpressure !== stream._backpressure) { - if (backpressure === true) { - defaultWriterReadyPromiseReset(writer); - } else { - assert(backpressure === false); - defaultWriterReadyPromiseResolve(writer); - } - } - - stream._backpressure = backpressure; - } - - var WritableStreamDefaultWriter = function () { - function WritableStreamDefaultWriter(stream) { - _classCallCheck(this, WritableStreamDefaultWriter); - - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance'); - } - - if (IsWritableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive writing by another writer'); - } - - this._ownerWritableStream = stream; - stream._writer = this; - var state = stream._state; - - if (state === 'writable') { - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) { - defaultWriterReadyPromiseInitialize(this); - } else { - defaultWriterReadyPromiseInitializeAsResolved(this); - } - - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'erroring') { - defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError); - - this._readyPromise["catch"](function () {}); - - defaultWriterClosedPromiseInitialize(this); - } else if (state === 'closed') { - defaultWriterReadyPromiseInitializeAsResolved(this); - defaultWriterClosedPromiseInitializeAsResolved(this); - } else { - assert(state === 'errored', 'state must be errored'); - var storedError = stream._storedError; - defaultWriterReadyPromiseInitializeAsRejected(this, storedError); - - this._readyPromise["catch"](function () {}); - - defaultWriterClosedPromiseInitializeAsRejected(this, storedError); - - this._closedPromise["catch"](function () {}); - } - } - - _createClass(WritableStreamDefaultWriter, [{ - key: 'abort', - value: function abort(reason) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('abort')); - } - - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('abort')); - } - - return WritableStreamDefaultWriterAbort(this, reason); - } - }, { - key: 'close', - value: function close() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('close')); - } - - var stream = this._ownerWritableStream; - - if (stream === undefined) { - return Promise.reject(defaultWriterLockException('close')); - } - - if (WritableStreamCloseQueuedOrInFlight(stream) === true) { - return Promise.reject(new TypeError('cannot close an already-closing stream')); - } - - return WritableStreamDefaultWriterClose(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('releaseLock'); - } - - var stream = this._ownerWritableStream; - - if (stream === undefined) { - return; - } - - assert(stream._writer !== undefined); - WritableStreamDefaultWriterRelease(this); - } - }, { - key: 'write', - value: function write(chunk) { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('write')); - } - - if (this._ownerWritableStream === undefined) { - return Promise.reject(defaultWriterLockException('write to')); - } - - return WritableStreamDefaultWriterWrite(this, chunk); - } - }, { - key: 'closed', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('closed')); - } - - return this._closedPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - throw defaultWriterBrandCheckException('desiredSize'); - } - - if (this._ownerWritableStream === undefined) { - throw defaultWriterLockException('desiredSize'); - } - - return WritableStreamDefaultWriterGetDesiredSize(this); - } - }, { - key: 'ready', - get: function get() { - if (IsWritableStreamDefaultWriter(this) === false) { - return Promise.reject(defaultWriterBrandCheckException('ready')); - } - - return this._readyPromise; - } - }]); - - return WritableStreamDefaultWriter; - }(); - - function IsWritableStreamDefaultWriter(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) { - return false; - } - - return true; - } - - function WritableStreamDefaultWriterAbort(writer, reason) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - return WritableStreamAbort(stream, reason); - } - - function WritableStreamDefaultWriterClose(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - - if (state === 'closed' || state === 'errored') { - return Promise.reject(new TypeError('The stream (in ' + state + ' state) is not in the writable state and cannot be closed')); - } - - assert(state === 'writable' || state === 'erroring'); - assert(WritableStreamCloseQueuedOrInFlight(stream) === false); - var promise = new Promise(function (resolve, reject) { - var closeRequest = { - _resolve: resolve, - _reject: reject - }; - stream._closeRequest = closeRequest; - }); - - if (stream._backpressure === true && state === 'writable') { - defaultWriterReadyPromiseResolve(writer); - } - - WritableStreamDefaultControllerClose(stream._writableStreamController); - return promise; - } - - function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var state = stream._state; - - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.resolve(); - } - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - assert(state === 'writable' || state === 'erroring'); - return WritableStreamDefaultWriterClose(writer); - } - - function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) { - if (writer._closedPromiseState === 'pending') { - defaultWriterClosedPromiseReject(writer, error); - } else { - defaultWriterClosedPromiseResetToRejected(writer, error); - } - - writer._closedPromise["catch"](function () {}); - } - - function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) { - if (writer._readyPromiseState === 'pending') { - defaultWriterReadyPromiseReject(writer, error); - } else { - defaultWriterReadyPromiseResetToRejected(writer, error); - } - - writer._readyPromise["catch"](function () {}); - } - - function WritableStreamDefaultWriterGetDesiredSize(writer) { - var stream = writer._ownerWritableStream; - var state = stream._state; - - if (state === 'errored' || state === 'erroring') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController); - } - - function WritableStreamDefaultWriterRelease(writer) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - assert(stream._writer === writer); - var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness'); - WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError); - WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError); - stream._writer = undefined; - writer._ownerWritableStream = undefined; - } - - function WritableStreamDefaultWriterWrite(writer, chunk) { - var stream = writer._ownerWritableStream; - assert(stream !== undefined); - var controller = stream._writableStreamController; - var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk); - - if (stream !== writer._ownerWritableStream) { - return Promise.reject(defaultWriterLockException('write to')); - } - - var state = stream._state; - - if (state === 'errored') { - return Promise.reject(stream._storedError); - } - - if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') { - return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to')); - } - - if (state === 'erroring') { - return Promise.reject(stream._storedError); - } - - assert(state === 'writable'); - var promise = WritableStreamAddWriteRequest(stream); - WritableStreamDefaultControllerWrite(controller, chunk, chunkSize); - return promise; - } - - var WritableStreamDefaultController = function () { - function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) { - _classCallCheck(this, WritableStreamDefaultController); - - if (IsWritableStream(stream) === false) { - throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance'); - } - - if (stream._writableStreamController !== undefined) { - throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor'); - } - - this._controlledWritableStream = stream; - this._underlyingSink = underlyingSink; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var backpressure = WritableStreamDefaultControllerGetBackpressure(this); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - _createClass(WritableStreamDefaultController, [{ - key: 'error', - value: function error(e) { - if (IsWritableStreamDefaultController(this) === false) { - throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController'); - } - - var state = this._controlledWritableStream._state; - - if (state !== 'writable') { - return; - } - - WritableStreamDefaultControllerError(this, e); - } - }, { - key: '__abortSteps', - value: function __abortSteps(reason) { - return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]); - } - }, { - key: '__errorSteps', - value: function __errorSteps() { - ResetQueue(this); - } - }, { - key: '__startSteps', - value: function __startSteps() { - var _this = this; - - var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]); - var stream = this._controlledWritableStream; - Promise.resolve(startResult).then(function () { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this); - }, function (r) { - assert(stream._state === 'writable' || stream._state === 'erroring'); - _this._started = true; - WritableStreamDealWithRejection(stream, r); - })["catch"](rethrowAssertionErrorRejection); - } - }]); - - return WritableStreamDefaultController; - }(); - - function WritableStreamDefaultControllerClose(controller) { - EnqueueValueWithSize(controller, 'close', 0); - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - - function WritableStreamDefaultControllerGetChunkSize(controller, chunk) { - var strategySize = controller._strategySize; - - if (strategySize === undefined) { - return 1; - } - - try { - return strategySize(chunk); - } catch (chunkSizeE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - return 1; - } - } - - function WritableStreamDefaultControllerGetDesiredSize(controller) { - return controller._strategyHWM - controller._queueTotalSize; - } - - function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) { - var writeRecord = { - chunk: chunk - }; - - try { - EnqueueValueWithSize(controller, writeRecord, chunkSize); - } catch (enqueueE) { - WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - return; - } - - var stream = controller._controlledWritableStream; - - if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - } - - function IsWritableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) { - return false; - } - - return true; - } - - function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) { - var stream = controller._controlledWritableStream; - - if (controller._started === false) { - return; - } - - if (stream._inFlightWriteRequest !== undefined) { - return; - } - - var state = stream._state; - - if (state === 'closed' || state === 'errored') { - return; - } - - if (state === 'erroring') { - WritableStreamFinishErroring(stream); - return; - } - - if (controller._queue.length === 0) { - return; - } - - var writeRecord = PeekQueueValue(controller); - - if (writeRecord === 'close') { - WritableStreamDefaultControllerProcessClose(controller); - } else { - WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk); - } - } - - function WritableStreamDefaultControllerErrorIfNeeded(controller, error) { - if (controller._controlledWritableStream._state === 'writable') { - WritableStreamDefaultControllerError(controller, error); - } - } - - function WritableStreamDefaultControllerProcessClose(controller) { - var stream = controller._controlledWritableStream; - WritableStreamMarkCloseRequestInFlight(stream); - DequeueValue(controller); - assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued'); - var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []); - sinkClosePromise.then(function () { - WritableStreamFinishInFlightClose(stream); - }, function (reason) { - WritableStreamFinishInFlightCloseWithError(stream, reason); - })["catch"](rethrowAssertionErrorRejection); - } - - function WritableStreamDefaultControllerProcessWrite(controller, chunk) { - var stream = controller._controlledWritableStream; - WritableStreamMarkFirstWriteRequestInFlight(stream); - var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]); - sinkWritePromise.then(function () { - WritableStreamFinishInFlightWrite(stream); - var state = stream._state; - assert(state === 'writable' || state === 'erroring'); - DequeueValue(controller); - - if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') { - var backpressure = WritableStreamDefaultControllerGetBackpressure(controller); - WritableStreamUpdateBackpressure(stream, backpressure); - } - - WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller); - }, function (reason) { - WritableStreamFinishInFlightWriteWithError(stream, reason); - })["catch"](rethrowAssertionErrorRejection); - } - - function WritableStreamDefaultControllerGetBackpressure(controller) { - var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller); - return desiredSize <= 0; - } - - function WritableStreamDefaultControllerError(controller, error) { - var stream = controller._controlledWritableStream; - assert(stream._state === 'writable'); - WritableStreamStartErroring(stream, error); - } - - function streamBrandCheckException(name) { - return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream'); - } - - function defaultWriterBrandCheckException(name) { - return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter'); - } - - function defaultWriterLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released writer'); - } - - function defaultWriterClosedPromiseInitialize(writer) { - writer._closedPromise = new Promise(function (resolve, reject) { - writer._closedPromise_resolve = resolve; - writer._closedPromise_reject = reject; - writer._closedPromiseState = 'pending'; - }); - } - - function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) { - writer._closedPromise = Promise.reject(reason); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseInitializeAsResolved(writer) { - writer._closedPromise = Promise.resolve(undefined); - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - - function defaultWriterClosedPromiseReject(writer, reason) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - - writer._closedPromise_reject(reason); - - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseResetToRejected(writer, reason) { - assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined'); - assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined'); - assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending'); - writer._closedPromise = Promise.reject(reason); - writer._closedPromiseState = 'rejected'; - } - - function defaultWriterClosedPromiseResolve(writer) { - assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined'); - assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined'); - assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending'); - - writer._closedPromise_resolve(undefined); - - writer._closedPromise_resolve = undefined; - writer._closedPromise_reject = undefined; - writer._closedPromiseState = 'resolved'; - } - - function defaultWriterReadyPromiseInitialize(writer) { - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - - function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) { - writer._readyPromise = Promise.reject(reason); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseInitializeAsResolved(writer) { - writer._readyPromise = Promise.resolve(undefined); - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } - - function defaultWriterReadyPromiseReject(writer, reason) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - - writer._readyPromise_reject(reason); - - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseReset(writer) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = new Promise(function (resolve, reject) { - writer._readyPromise_resolve = resolve; - writer._readyPromise_reject = reject; - }); - writer._readyPromiseState = 'pending'; - } - - function defaultWriterReadyPromiseResetToRejected(writer, reason) { - assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined'); - assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined'); - writer._readyPromise = Promise.reject(reason); - writer._readyPromiseState = 'rejected'; - } - - function defaultWriterReadyPromiseResolve(writer) { - assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined'); - assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined'); - - writer._readyPromise_resolve(undefined); - - writer._readyPromise_resolve = undefined; - writer._readyPromise_reject = undefined; - writer._readyPromiseState = 'fulfilled'; - } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _require = __w_pdfjs_require__(0), - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber; - - var _require2 = __w_pdfjs_require__(1), - assert = _require2.assert; - - exports.DequeueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.'); - - var pair = container._queue.shift(); - - container._queueTotalSize -= pair.size; - - if (container._queueTotalSize < 0) { - container._queueTotalSize = 0; - } - - return pair.value; - }; - - exports.EnqueueValueWithSize = function (container, value, size) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].'); - size = Number(size); - - if (!IsFiniteNonNegativeNumber(size)) { - throw new RangeError('Size must be a finite, non-NaN, non-negative number.'); - } - - container._queue.push({ - value: value, - size: size - }); - - container._queueTotalSize += size; - }; - - exports.PeekQueueValue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.'); - var pair = container._queue[0]; - return pair.value; - }; - - exports.ResetQueue = function (container) { - assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].'); - container._queue = []; - container._queueTotalSize = 0; - }; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _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; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(0), - ArrayBufferCopy = _require.ArrayBufferCopy, - CreateIterResultObject = _require.CreateIterResultObject, - IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber, - InvokeOrNoop = _require.InvokeOrNoop, - PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop, - TransferArrayBuffer = _require.TransferArrayBuffer, - ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy, - ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark; - - var _require2 = __w_pdfjs_require__(0), - createArrayFromList = _require2.createArrayFromList, - createDataProperty = _require2.createDataProperty, - typeIsObject = _require2.typeIsObject; - - var _require3 = __w_pdfjs_require__(1), - assert = _require3.assert, - rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection; - - var _require4 = __w_pdfjs_require__(3), - DequeueValue = _require4.DequeueValue, - EnqueueValueWithSize = _require4.EnqueueValueWithSize, - ResetQueue = _require4.ResetQueue; - - var _require5 = __w_pdfjs_require__(2), - AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter, - IsWritableStream = _require5.IsWritableStream, - IsWritableStreamLocked = _require5.IsWritableStreamLocked, - WritableStreamAbort = _require5.WritableStreamAbort, - WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation, - WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease, - WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite, - WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight; - - var ReadableStream = function () { - function ReadableStream() { - var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - size = _ref.size, - highWaterMark = _ref.highWaterMark; - - _classCallCheck(this, ReadableStream); - - this._state = 'readable'; - this._reader = undefined; - this._storedError = undefined; - this._disturbed = false; - this._readableStreamController = undefined; - var type = underlyingSource.type; - var typeString = String(type); - - if (typeString === 'bytes') { - if (highWaterMark === undefined) { - highWaterMark = 0; - } - - this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark); - } else if (type === undefined) { - if (highWaterMark === undefined) { - highWaterMark = 1; - } - - this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark); - } else { - throw new RangeError('Invalid type is specified'); - } - } - - _createClass(ReadableStream, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('cancel')); - } - - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader')); - } - - return ReadableStreamCancel(this, reason); - } - }, { - key: 'getReader', - value: function getReader() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - mode = _ref2.mode; - - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('getReader'); - } - - if (mode === undefined) { - return AcquireReadableStreamDefaultReader(this); - } - - mode = String(mode); - - if (mode === 'byob') { - return AcquireReadableStreamBYOBReader(this); - } - - throw new RangeError('Invalid mode is specified'); - } - }, { - key: 'pipeThrough', - value: function pipeThrough(_ref3, options) { - var writable = _ref3.writable, - readable = _ref3.readable; - var promise = this.pipeTo(writable, options); - ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise); - return readable; - } - }, { - key: 'pipeTo', - value: function pipeTo(dest) { - var _this = this; - - var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - preventClose = _ref4.preventClose, - preventAbort = _ref4.preventAbort, - preventCancel = _ref4.preventCancel; - - if (IsReadableStream(this) === false) { - return Promise.reject(streamBrandCheckException('pipeTo')); - } - - if (IsWritableStream(dest) === false) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream')); - } - - preventClose = Boolean(preventClose); - preventAbort = Boolean(preventAbort); - preventCancel = Boolean(preventCancel); - - if (IsReadableStreamLocked(this) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream')); - } - - if (IsWritableStreamLocked(dest) === true) { - return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream')); - } - - var reader = AcquireReadableStreamDefaultReader(this); - var writer = AcquireWritableStreamDefaultWriter(dest); - var shuttingDown = false; - var currentWrite = Promise.resolve(); - return new Promise(function (resolve, reject) { - function pipeLoop() { - currentWrite = Promise.resolve(); - - if (shuttingDown === true) { - return Promise.resolve(); - } - - return writer._readyPromise.then(function () { - return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) { - var value = _ref5.value, - done = _ref5.done; - - if (done === true) { - return; - } - - currentWrite = WritableStreamDefaultWriterWrite(writer, value)["catch"](function () {}); - }); - }).then(pipeLoop); - } - - isOrBecomesErrored(_this, reader._closedPromise, function (storedError) { - if (preventAbort === false) { - shutdownWithAction(function () { - return WritableStreamAbort(dest, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesErrored(dest, writer._closedPromise, function (storedError) { - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, storedError); - }, true, storedError); - } else { - shutdown(true, storedError); - } - }); - isOrBecomesClosed(_this, reader._closedPromise, function () { - if (preventClose === false) { - shutdownWithAction(function () { - return WritableStreamDefaultWriterCloseWithErrorPropagation(writer); - }); - } else { - shutdown(); - } - }); - - if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') { - var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it'); - - if (preventCancel === false) { - shutdownWithAction(function () { - return ReadableStreamCancel(_this, destClosed); - }, true, destClosed); - } else { - shutdown(true, destClosed); - } - } - - pipeLoop()["catch"](function (err) { - currentWrite = Promise.resolve(); - rethrowAssertionErrorRejection(err); - }); - - function waitForWritesToFinish() { - var oldCurrentWrite = currentWrite; - return currentWrite.then(function () { - return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined; - }); - } - - function isOrBecomesErrored(stream, promise, action) { - if (stream._state === 'errored') { - action(stream._storedError); - } else { - promise["catch"](action)["catch"](rethrowAssertionErrorRejection); - } - } - - function isOrBecomesClosed(stream, promise, action) { - if (stream._state === 'closed') { - action(); - } else { - promise.then(action)["catch"](rethrowAssertionErrorRejection); - } - } - - function shutdownWithAction(action, originalIsError, originalError) { - if (shuttingDown === true) { - return; - } - - shuttingDown = true; - - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(doTheRest); - } else { - doTheRest(); - } - - function doTheRest() { - action().then(function () { - return finalize(originalIsError, originalError); - }, function (newError) { - return finalize(true, newError); - })["catch"](rethrowAssertionErrorRejection); - } - } - - function shutdown(isError, error) { - if (shuttingDown === true) { - return; - } - - shuttingDown = true; - - if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) { - waitForWritesToFinish().then(function () { - return finalize(isError, error); - })["catch"](rethrowAssertionErrorRejection); - } else { - finalize(isError, error); - } - } - - function finalize(isError, error) { - WritableStreamDefaultWriterRelease(writer); - ReadableStreamReaderGenericRelease(reader); - - if (isError) { - reject(error); - } else { - resolve(undefined); - } - } - }); - } - }, { - key: 'tee', - value: function tee() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('tee'); - } - - var branches = ReadableStreamTee(this, false); - return createArrayFromList(branches); - } - }, { - key: 'locked', - get: function get() { - if (IsReadableStream(this) === false) { - throw streamBrandCheckException('locked'); - } - - return IsReadableStreamLocked(this); - } - }]); - - return ReadableStream; - }(); - - module.exports = { - ReadableStream: ReadableStream, - IsReadableStreamDisturbed: IsReadableStreamDisturbed, - ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize - }; - - function AcquireReadableStreamBYOBReader(stream) { - return new ReadableStreamBYOBReader(stream); - } - - function AcquireReadableStreamDefaultReader(stream) { - return new ReadableStreamDefaultReader(stream); - } - - function IsReadableStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) { - return false; - } - - return true; - } - - function IsReadableStreamDisturbed(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams'); - return stream._disturbed; - } - - function IsReadableStreamLocked(stream) { - assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams'); - - if (stream._reader === undefined) { - return false; - } - - return true; - } - - function ReadableStreamTee(stream, cloneForBranch2) { - assert(IsReadableStream(stream) === true); - assert(typeof cloneForBranch2 === 'boolean'); - var reader = AcquireReadableStreamDefaultReader(stream); - var teeState = { - closedOrErrored: false, - canceled1: false, - canceled2: false, - reason1: undefined, - reason2: undefined - }; - teeState.promise = new Promise(function (resolve) { - teeState._resolve = resolve; - }); - var pull = create_ReadableStreamTeePullFunction(); - pull._reader = reader; - pull._teeState = teeState; - pull._cloneForBranch2 = cloneForBranch2; - var cancel1 = create_ReadableStreamTeeBranch1CancelFunction(); - cancel1._stream = stream; - cancel1._teeState = teeState; - var cancel2 = create_ReadableStreamTeeBranch2CancelFunction(); - cancel2._stream = stream; - cancel2._teeState = teeState; - var underlyingSource1 = Object.create(Object.prototype); - createDataProperty(underlyingSource1, 'pull', pull); - createDataProperty(underlyingSource1, 'cancel', cancel1); - var branch1Stream = new ReadableStream(underlyingSource1); - var underlyingSource2 = Object.create(Object.prototype); - createDataProperty(underlyingSource2, 'pull', pull); - createDataProperty(underlyingSource2, 'cancel', cancel2); - var branch2Stream = new ReadableStream(underlyingSource2); - pull._branch1 = branch1Stream._readableStreamController; - pull._branch2 = branch2Stream._readableStreamController; - - reader._closedPromise["catch"](function (r) { - if (teeState.closedOrErrored === true) { - return; - } - - ReadableStreamDefaultControllerError(pull._branch1, r); - ReadableStreamDefaultControllerError(pull._branch2, r); - teeState.closedOrErrored = true; - }); - - return [branch1Stream, branch2Stream]; - } - - function create_ReadableStreamTeePullFunction() { - function f() { - var reader = f._reader, - branch1 = f._branch1, - branch2 = f._branch2, - teeState = f._teeState; - return ReadableStreamDefaultReaderRead(reader).then(function (result) { - assert(typeIsObject(result)); - var value = result.value; - var done = result.done; - assert(typeof done === 'boolean'); - - if (done === true && teeState.closedOrErrored === false) { - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerClose(branch1); - } - - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerClose(branch2); - } - - teeState.closedOrErrored = true; - } - - if (teeState.closedOrErrored === true) { - return; - } - - var value1 = value; - var value2 = value; - - if (teeState.canceled1 === false) { - ReadableStreamDefaultControllerEnqueue(branch1, value1); - } - - if (teeState.canceled2 === false) { - ReadableStreamDefaultControllerEnqueue(branch2, value2); - } - }); - } - - return f; - } - - function create_ReadableStreamTeeBranch1CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled1 = true; - teeState.reason1 = reason; - - if (teeState.canceled2 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - - teeState._resolve(cancelResult); - } - - return teeState.promise; - } - - return f; - } - - function create_ReadableStreamTeeBranch2CancelFunction() { - function f(reason) { - var stream = f._stream, - teeState = f._teeState; - teeState.canceled2 = true; - teeState.reason2 = reason; - - if (teeState.canceled1 === true) { - var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]); - var cancelResult = ReadableStreamCancel(stream, compositeReason); - - teeState._resolve(cancelResult); - } - - return teeState.promise; - } - - return f; - } - - function ReadableStreamAddReadIntoRequest(stream) { - assert(IsReadableStreamBYOBReader(stream._reader) === true); - assert(stream._state === 'readable' || stream._state === 'closed'); - var promise = new Promise(function (resolve, reject) { - var readIntoRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._reader._readIntoRequests.push(readIntoRequest); - }); - return promise; - } - - function ReadableStreamAddReadRequest(stream) { - assert(IsReadableStreamDefaultReader(stream._reader) === true); - assert(stream._state === 'readable'); - var promise = new Promise(function (resolve, reject) { - var readRequest = { - _resolve: resolve, - _reject: reject - }; - - stream._reader._readRequests.push(readRequest); - }); - return promise; - } - - function ReadableStreamCancel(stream, reason) { - stream._disturbed = true; - - if (stream._state === 'closed') { - return Promise.resolve(undefined); - } - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - ReadableStreamClose(stream); - - var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason); - - return sourceCancelPromise.then(function () { - return undefined; - }); - } - - function ReadableStreamClose(stream) { - assert(stream._state === 'readable'); - stream._state = 'closed'; - var reader = stream._reader; - - if (reader === undefined) { - return undefined; - } - - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var _resolve = reader._readRequests[i]._resolve; - - _resolve(CreateIterResultObject(undefined, true)); - } - - reader._readRequests = []; - } - - defaultReaderClosedPromiseResolve(reader); - return undefined; - } - - function ReadableStreamError(stream, e) { - assert(IsReadableStream(stream) === true, 'stream must be ReadableStream'); - assert(stream._state === 'readable', 'state must be readable'); - stream._state = 'errored'; - stream._storedError = e; - var reader = stream._reader; - - if (reader === undefined) { - return undefined; - } - - if (IsReadableStreamDefaultReader(reader) === true) { - for (var i = 0; i < reader._readRequests.length; i++) { - var readRequest = reader._readRequests[i]; - - readRequest._reject(e); - } - - reader._readRequests = []; - } else { - assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader'); - - for (var _i = 0; _i < reader._readIntoRequests.length; _i++) { - var readIntoRequest = reader._readIntoRequests[_i]; - - readIntoRequest._reject(e); - } - - reader._readIntoRequests = []; - } - - defaultReaderClosedPromiseReject(reader, e); - - reader._closedPromise["catch"](function () {}); - } - - function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readIntoRequests.length > 0); - - var readIntoRequest = reader._readIntoRequests.shift(); - - readIntoRequest._resolve(CreateIterResultObject(chunk, done)); - } - - function ReadableStreamFulfillReadRequest(stream, chunk, done) { - var reader = stream._reader; - assert(reader._readRequests.length > 0); - - var readRequest = reader._readRequests.shift(); - - readRequest._resolve(CreateIterResultObject(chunk, done)); - } - - function ReadableStreamGetNumReadIntoRequests(stream) { - return stream._reader._readIntoRequests.length; - } - - function ReadableStreamGetNumReadRequests(stream) { - return stream._reader._readRequests.length; - } - - function ReadableStreamHasBYOBReader(stream) { - var reader = stream._reader; - - if (reader === undefined) { - return false; - } - - if (IsReadableStreamBYOBReader(reader) === false) { - return false; - } - - return true; - } - - function ReadableStreamHasDefaultReader(stream) { - var reader = stream._reader; - - if (reader === undefined) { - return false; - } - - if (IsReadableStreamDefaultReader(reader) === false) { - return false; - } - - return true; - } - - var ReadableStreamDefaultReader = function () { - function ReadableStreamDefaultReader(stream) { - _classCallCheck(this, ReadableStreamDefaultReader); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance'); - } - - if (IsReadableStreamLocked(stream) === true) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - - ReadableStreamReaderGenericInitialize(this, stream); - this._readRequests = []; - } - - _createClass(ReadableStreamDefaultReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('cancel')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); - } - - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('read')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); - } - - return ReadableStreamDefaultReaderRead(this); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (IsReadableStreamDefaultReader(this) === false) { - throw defaultReaderBrandCheckException('releaseLock'); - } - - if (this._ownerReadableStream === undefined) { - return; - } - - if (this._readRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (IsReadableStreamDefaultReader(this) === false) { - return Promise.reject(defaultReaderBrandCheckException('closed')); - } - - return this._closedPromise; - } - }]); - - return ReadableStreamDefaultReader; - }(); - - var ReadableStreamBYOBReader = function () { - function ReadableStreamBYOBReader(stream) { - _classCallCheck(this, ReadableStreamBYOBReader); - - if (!IsReadableStream(stream)) { - throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source'); - } - - if (IsReadableByteStreamController(stream._readableStreamController) === false) { - throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source'); - } - - if (IsReadableStreamLocked(stream)) { - throw new TypeError('This stream has already been locked for exclusive reading by another reader'); - } - - ReadableStreamReaderGenericInitialize(this, stream); - this._readIntoRequests = []; - } - - _createClass(ReadableStreamBYOBReader, [{ - key: 'cancel', - value: function cancel(reason) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('cancel')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('cancel')); - } - - return ReadableStreamReaderGenericCancel(this, reason); - } - }, { - key: 'read', - value: function read(view) { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('read')); - } - - if (this._ownerReadableStream === undefined) { - return Promise.reject(readerLockException('read from')); - } - - if (!ArrayBuffer.isView(view)) { - return Promise.reject(new TypeError('view must be an array buffer view')); - } - - if (view.byteLength === 0) { - return Promise.reject(new TypeError('view must have non-zero byteLength')); - } - - return ReadableStreamBYOBReaderRead(this, view); - } - }, { - key: 'releaseLock', - value: function releaseLock() { - if (!IsReadableStreamBYOBReader(this)) { - throw byobReaderBrandCheckException('releaseLock'); - } - - if (this._ownerReadableStream === undefined) { - return; - } - - if (this._readIntoRequests.length > 0) { - throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'); - } - - ReadableStreamReaderGenericRelease(this); - } - }, { - key: 'closed', - get: function get() { - if (!IsReadableStreamBYOBReader(this)) { - return Promise.reject(byobReaderBrandCheckException('closed')); - } - - return this._closedPromise; - } - }]); - - return ReadableStreamBYOBReader; - }(); - - function IsReadableStreamBYOBReader(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) { - return false; - } - - return true; - } - - function IsReadableStreamDefaultReader(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) { - return false; - } - - return true; - } - - function ReadableStreamReaderGenericInitialize(reader, stream) { - reader._ownerReadableStream = stream; - stream._reader = reader; - - if (stream._state === 'readable') { - defaultReaderClosedPromiseInitialize(reader); - } else if (stream._state === 'closed') { - defaultReaderClosedPromiseInitializeAsResolved(reader); - } else { - assert(stream._state === 'errored', 'state must be errored'); - defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError); - - reader._closedPromise["catch"](function () {}); - } - } - - function ReadableStreamReaderGenericCancel(reader, reason) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - return ReadableStreamCancel(stream, reason); - } - - function ReadableStreamReaderGenericRelease(reader) { - assert(reader._ownerReadableStream !== undefined); - assert(reader._ownerReadableStream._reader === reader); - - if (reader._ownerReadableStream._state === 'readable') { - defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } else { - defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness')); - } - - reader._closedPromise["catch"](function () {}); - - reader._ownerReadableStream._reader = undefined; - reader._ownerReadableStream = undefined; - } - - function ReadableStreamBYOBReaderRead(reader, view) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - return ReadableByteStreamControllerPullInto(stream._readableStreamController, view); - } - - function ReadableStreamDefaultReaderRead(reader) { - var stream = reader._ownerReadableStream; - assert(stream !== undefined); - stream._disturbed = true; - - if (stream._state === 'closed') { - return Promise.resolve(CreateIterResultObject(undefined, true)); - } - - if (stream._state === 'errored') { - return Promise.reject(stream._storedError); - } - - assert(stream._state === 'readable'); - return stream._readableStreamController.__pullSteps(); - } - - var ReadableStreamDefaultController = function () { - function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) { - _classCallCheck(this, ReadableStreamDefaultController); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance'); - } - - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor'); - } - - this._controlledReadableStream = stream; - this._underlyingSource = underlyingSource; - this._queue = undefined; - this._queueTotalSize = undefined; - ResetQueue(this); - this._started = false; - this._closeRequested = false; - this._pullAgain = false; - this._pulling = false; - var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark); - this._strategySize = normalizedStrategy.size; - this._strategyHWM = normalizedStrategy.highWaterMark; - var controller = this; - var startResult = InvokeOrNoop(underlyingSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - }, function (r) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, r); - })["catch"](rethrowAssertionErrorRejection); - } - - _createClass(ReadableStreamDefaultController, [{ - key: 'close', - value: function close() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); - } - - ReadableStreamDefaultControllerClose(this); - } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); - } - - return ReadableStreamDefaultControllerEnqueue(this, chunk); - } - }, { - key: 'error', - value: function error(e) { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); - } - - var stream = this._controlledReadableStream; - - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); - } - - ReadableStreamDefaultControllerError(this, e); - } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]); - } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - - if (this._queue.length > 0) { - var chunk = DequeueValue(this); - - if (this._closeRequested === true && this._queue.length === 0) { - ReadableStreamClose(stream); - } else { - ReadableStreamDefaultControllerCallPullIfNeeded(this); - } - - return Promise.resolve(CreateIterResultObject(chunk, false)); - } - - var pendingPromise = ReadableStreamAddReadRequest(stream); - ReadableStreamDefaultControllerCallPullIfNeeded(this); - return pendingPromise; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); - } - - return ReadableStreamDefaultControllerGetDesiredSize(this); - } - }]); - - return ReadableStreamDefaultController; - }(); - - function IsReadableStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) { - return false; - } - - return true; - } - - function ReadableStreamDefaultControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller); - - if (shouldPull === false) { - return undefined; - } - - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; - } - - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - - if (controller._pullAgain === true) { - controller._pullAgain = false; - return ReadableStreamDefaultControllerCallPullIfNeeded(controller); - } - - return undefined; - }, function (e) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, e); - })["catch"](rethrowAssertionErrorRejection); - return undefined; - } - - function ReadableStreamDefaultControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - - if (stream._state === 'closed' || stream._state === 'errored') { - return false; - } - - if (controller._closeRequested === true) { - return false; - } - - if (controller._started === false) { - return false; - } - - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - - if (desiredSize > 0) { - return true; - } - - return false; - } - - function ReadableStreamDefaultControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - controller._closeRequested = true; - - if (controller._queue.length === 0) { - ReadableStreamClose(stream); - } - } - - function ReadableStreamDefaultControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - - if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - ReadableStreamFulfillReadRequest(stream, chunk, false); - } else { - var chunkSize = 1; - - if (controller._strategySize !== undefined) { - var strategySize = controller._strategySize; - - try { - chunkSize = strategySize(chunk); - } catch (chunkSizeE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE); - throw chunkSizeE; - } - } - - try { - EnqueueValueWithSize(controller, chunk, chunkSize); - } catch (enqueueE) { - ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE); - throw enqueueE; - } - } - - ReadableStreamDefaultControllerCallPullIfNeeded(controller); - return undefined; - } - - function ReadableStreamDefaultControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ResetQueue(controller); - ReadableStreamError(stream, e); - } - - function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableStreamDefaultControllerError(controller, e); - } - } - - function ReadableStreamDefaultControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - - if (state === 'errored') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return controller._strategyHWM - controller._queueTotalSize; - } - - var ReadableStreamBYOBRequest = function () { - function ReadableStreamBYOBRequest(controller, view) { - _classCallCheck(this, ReadableStreamBYOBRequest); - - this._associatedReadableByteStreamController = controller; - this._view = view; - } - - _createClass(ReadableStreamBYOBRequest, [{ - key: 'respond', - value: function respond(bytesWritten) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - - ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten); - } - }, { - key: 'respondWithNewView', - value: function respondWithNewView(view) { - if (IsReadableStreamBYOBRequest(this) === false) { - throw byobRequestBrandCheckException('respond'); - } - - if (this._associatedReadableByteStreamController === undefined) { - throw new TypeError('This BYOB request has been invalidated'); - } - - if (!ArrayBuffer.isView(view)) { - throw new TypeError('You can only respond with array buffer views'); - } - - ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view); - } - }, { - key: 'view', - get: function get() { - return this._view; - } - }]); - - return ReadableStreamBYOBRequest; - }(); - - var ReadableByteStreamController = function () { - function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) { - _classCallCheck(this, ReadableByteStreamController); - - if (IsReadableStream(stream) === false) { - throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source'); - } - - if (stream._readableStreamController !== undefined) { - throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source'); - } - - this._controlledReadableStream = stream; - this._underlyingByteSource = underlyingByteSource; - this._pullAgain = false; - this._pulling = false; - ReadableByteStreamControllerClearPendingPullIntos(this); - this._queue = this._queueTotalSize = undefined; - ResetQueue(this); - this._closeRequested = false; - this._started = false; - this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark); - var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize; - - if (autoAllocateChunkSize !== undefined) { - if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) { - throw new RangeError('autoAllocateChunkSize must be a positive integer'); - } - } - - this._autoAllocateChunkSize = autoAllocateChunkSize; - this._pendingPullIntos = []; - var controller = this; - var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]); - Promise.resolve(startResult).then(function () { - controller._started = true; - assert(controller._pulling === false); - assert(controller._pullAgain === false); - ReadableByteStreamControllerCallPullIfNeeded(controller); - }, function (r) { - if (stream._state === 'readable') { - ReadableByteStreamControllerError(controller, r); - } - })["catch"](rethrowAssertionErrorRejection); - } - - _createClass(ReadableByteStreamController, [{ - key: 'close', - value: function close() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('close'); - } - - if (this._closeRequested === true) { - throw new TypeError('The stream has already been closed; do not close it again!'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed'); - } - - ReadableByteStreamControllerClose(this); - } - }, { - key: 'enqueue', - value: function enqueue(chunk) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('enqueue'); - } - - if (this._closeRequested === true) { - throw new TypeError('stream is closed or draining'); - } - - var state = this._controlledReadableStream._state; - - if (state !== 'readable') { - throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to'); - } - - if (!ArrayBuffer.isView(chunk)) { - throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController'); - } - - ReadableByteStreamControllerEnqueue(this, chunk); - } - }, { - key: 'error', - value: function error(e) { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('error'); - } - - var stream = this._controlledReadableStream; - - if (stream._state !== 'readable') { - throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored'); - } - - ReadableByteStreamControllerError(this, e); - } - }, { - key: '__cancelSteps', - value: function __cancelSteps(reason) { - if (this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - firstDescriptor.bytesFilled = 0; - } - - ResetQueue(this); - return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]); - } - }, { - key: '__pullSteps', - value: function __pullSteps() { - var stream = this._controlledReadableStream; - assert(ReadableStreamHasDefaultReader(stream) === true); - - if (this._queueTotalSize > 0) { - assert(ReadableStreamGetNumReadRequests(stream) === 0); - - var entry = this._queue.shift(); - - this._queueTotalSize -= entry.byteLength; - ReadableByteStreamControllerHandleQueueDrain(this); - var view = void 0; - - try { - view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength); - } catch (viewE) { - return Promise.reject(viewE); - } - - return Promise.resolve(CreateIterResultObject(view, false)); - } - - var autoAllocateChunkSize = this._autoAllocateChunkSize; - - if (autoAllocateChunkSize !== undefined) { - var buffer = void 0; - - try { - buffer = new ArrayBuffer(autoAllocateChunkSize); - } catch (bufferE) { - return Promise.reject(bufferE); - } - - var pullIntoDescriptor = { - buffer: buffer, - byteOffset: 0, - byteLength: autoAllocateChunkSize, - bytesFilled: 0, - elementSize: 1, - ctor: Uint8Array, - readerType: 'default' - }; - - this._pendingPullIntos.push(pullIntoDescriptor); - } - - var promise = ReadableStreamAddReadRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(this); - return promise; - } - }, { - key: 'byobRequest', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('byobRequest'); - } - - if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) { - var firstDescriptor = this._pendingPullIntos[0]; - var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled); - this._byobRequest = new ReadableStreamBYOBRequest(this, view); - } - - return this._byobRequest; - } - }, { - key: 'desiredSize', - get: function get() { - if (IsReadableByteStreamController(this) === false) { - throw byteStreamControllerBrandCheckException('desiredSize'); - } - - return ReadableByteStreamControllerGetDesiredSize(this); - } - }]); - - return ReadableByteStreamController; - }(); - - function IsReadableByteStreamController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) { - return false; - } - - return true; - } - - function IsReadableStreamBYOBRequest(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) { - return false; - } - - return true; - } - - function ReadableByteStreamControllerCallPullIfNeeded(controller) { - var shouldPull = ReadableByteStreamControllerShouldCallPull(controller); - - if (shouldPull === false) { - return undefined; - } - - if (controller._pulling === true) { - controller._pullAgain = true; - return undefined; - } - - assert(controller._pullAgain === false); - controller._pulling = true; - var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]); - pullPromise.then(function () { - controller._pulling = false; - - if (controller._pullAgain === true) { - controller._pullAgain = false; - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - }, function (e) { - if (controller._controlledReadableStream._state === 'readable') { - ReadableByteStreamControllerError(controller, e); - } - })["catch"](rethrowAssertionErrorRejection); - return undefined; - } - - function ReadableByteStreamControllerClearPendingPullIntos(controller) { - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - controller._pendingPullIntos = []; - } - - function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) { - assert(stream._state !== 'errored', 'state must not be errored'); - var done = false; - - if (stream._state === 'closed') { - assert(pullIntoDescriptor.bytesFilled === 0); - done = true; - } - - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - - if (pullIntoDescriptor.readerType === 'default') { - ReadableStreamFulfillReadRequest(stream, filledView, done); - } else { - assert(pullIntoDescriptor.readerType === 'byob'); - ReadableStreamFulfillReadIntoRequest(stream, filledView, done); - } - } - - function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) { - var bytesFilled = pullIntoDescriptor.bytesFilled; - var elementSize = pullIntoDescriptor.elementSize; - assert(bytesFilled <= pullIntoDescriptor.byteLength); - assert(bytesFilled % elementSize === 0); - return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize); - } - - function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) { - controller._queue.push({ - buffer: buffer, - byteOffset: byteOffset, - byteLength: byteLength - }); - - controller._queueTotalSize += byteLength; - } - - function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) { - var elementSize = pullIntoDescriptor.elementSize; - var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize; - var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled); - var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy; - var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize; - var totalBytesToCopyRemaining = maxBytesToCopy; - var ready = false; - - if (maxAlignedBytes > currentAlignedBytes) { - totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled; - ready = true; - } - - var queue = controller._queue; - - while (totalBytesToCopyRemaining > 0) { - var headOfQueue = queue[0]; - var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength); - var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy); - - if (headOfQueue.byteLength === bytesToCopy) { - queue.shift(); - } else { - headOfQueue.byteOffset += bytesToCopy; - headOfQueue.byteLength -= bytesToCopy; - } - - controller._queueTotalSize -= bytesToCopy; - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor); - totalBytesToCopyRemaining -= bytesToCopy; - } - - if (ready === false) { - assert(controller._queueTotalSize === 0, 'queue must be empty'); - assert(pullIntoDescriptor.bytesFilled > 0); - assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize); - } - - return ready; - } - - function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) { - assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor); - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - pullIntoDescriptor.bytesFilled += size; - } - - function ReadableByteStreamControllerHandleQueueDrain(controller) { - assert(controller._controlledReadableStream._state === 'readable'); - - if (controller._queueTotalSize === 0 && controller._closeRequested === true) { - ReadableStreamClose(controller._controlledReadableStream); - } else { - ReadableByteStreamControllerCallPullIfNeeded(controller); - } - } - - function ReadableByteStreamControllerInvalidateBYOBRequest(controller) { - if (controller._byobRequest === undefined) { - return; - } - - controller._byobRequest._associatedReadableByteStreamController = undefined; - controller._byobRequest._view = undefined; - controller._byobRequest = undefined; - } - - function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) { - assert(controller._closeRequested === false); - - while (controller._pendingPullIntos.length > 0) { - if (controller._queueTotalSize === 0) { - return; - } - - var pullIntoDescriptor = controller._pendingPullIntos[0]; - - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - } - } - } - - function ReadableByteStreamControllerPullInto(controller, view) { - var stream = controller._controlledReadableStream; - var elementSize = 1; - - if (view.constructor !== DataView) { - elementSize = view.constructor.BYTES_PER_ELEMENT; - } - - var ctor = view.constructor; - var pullIntoDescriptor = { - buffer: view.buffer, - byteOffset: view.byteOffset, - byteLength: view.byteLength, - bytesFilled: 0, - elementSize: elementSize, - ctor: ctor, - readerType: 'byob' - }; - - if (controller._pendingPullIntos.length > 0) { - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - - controller._pendingPullIntos.push(pullIntoDescriptor); - - return ReadableStreamAddReadIntoRequest(stream); - } - - if (stream._state === 'closed') { - var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0); - return Promise.resolve(CreateIterResultObject(emptyView, true)); - } - - if (controller._queueTotalSize > 0) { - if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) { - var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor); - ReadableByteStreamControllerHandleQueueDrain(controller); - return Promise.resolve(CreateIterResultObject(filledView, false)); - } - - if (controller._closeRequested === true) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - return Promise.reject(e); - } - } - - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - - controller._pendingPullIntos.push(pullIntoDescriptor); - - var promise = ReadableStreamAddReadIntoRequest(stream); - ReadableByteStreamControllerCallPullIfNeeded(controller); - return promise; - } - - function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) { - firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer); - assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0'); - var stream = controller._controlledReadableStream; - - if (ReadableStreamHasBYOBReader(stream) === true) { - while (ReadableStreamGetNumReadIntoRequests(stream) > 0) { - var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller); - ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor); - } - } - } - - function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) { - if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) { - throw new RangeError('bytesWritten out of range'); - } - - ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor); - - if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) { - return; - } - - ReadableByteStreamControllerShiftPendingPullInto(controller); - var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize; - - if (remainderSize > 0) { - var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled; - var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength); - } - - pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer); - pullIntoDescriptor.bytesFilled -= remainderSize; - ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } - - function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) { - var firstDescriptor = controller._pendingPullIntos[0]; - var stream = controller._controlledReadableStream; - - if (stream._state === 'closed') { - if (bytesWritten !== 0) { - throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream'); - } - - ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor); - } else { - assert(stream._state === 'readable'); - ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor); - } - } - - function ReadableByteStreamControllerShiftPendingPullInto(controller) { - var descriptor = controller._pendingPullIntos.shift(); - - ReadableByteStreamControllerInvalidateBYOBRequest(controller); - return descriptor; - } - - function ReadableByteStreamControllerShouldCallPull(controller) { - var stream = controller._controlledReadableStream; - - if (stream._state !== 'readable') { - return false; - } - - if (controller._closeRequested === true) { - return false; - } - - if (controller._started === false) { - return false; - } - - if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) { - return true; - } - - if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) { - return true; - } - - if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) { - return true; - } - - return false; - } - - function ReadableByteStreamControllerClose(controller) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - - if (controller._queueTotalSize > 0) { - controller._closeRequested = true; - return; - } - - if (controller._pendingPullIntos.length > 0) { - var firstPendingPullInto = controller._pendingPullIntos[0]; - - if (firstPendingPullInto.bytesFilled > 0) { - var e = new TypeError('Insufficient bytes to fill elements in the given buffer'); - ReadableByteStreamControllerError(controller, e); - throw e; - } - } - - ReadableStreamClose(stream); - } - - function ReadableByteStreamControllerEnqueue(controller, chunk) { - var stream = controller._controlledReadableStream; - assert(controller._closeRequested === false); - assert(stream._state === 'readable'); - var buffer = chunk.buffer; - var byteOffset = chunk.byteOffset; - var byteLength = chunk.byteLength; - var transferredBuffer = TransferArrayBuffer(buffer); - - if (ReadableStreamHasDefaultReader(stream) === true) { - if (ReadableStreamGetNumReadRequests(stream) === 0) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } else { - assert(controller._queue.length === 0); - var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength); - ReadableStreamFulfillReadRequest(stream, transferredView, false); - } - } else if (ReadableStreamHasBYOBReader(stream) === true) { - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller); - } else { - assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked'); - ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength); - } - } - - function ReadableByteStreamControllerError(controller, e) { - var stream = controller._controlledReadableStream; - assert(stream._state === 'readable'); - ReadableByteStreamControllerClearPendingPullIntos(controller); - ResetQueue(controller); - ReadableStreamError(stream, e); - } - - function ReadableByteStreamControllerGetDesiredSize(controller) { - var stream = controller._controlledReadableStream; - var state = stream._state; - - if (state === 'errored') { - return null; - } - - if (state === 'closed') { - return 0; - } - - return controller._strategyHWM - controller._queueTotalSize; - } - - function ReadableByteStreamControllerRespond(controller, bytesWritten) { - bytesWritten = Number(bytesWritten); - - if (IsFiniteNonNegativeNumber(bytesWritten) === false) { - throw new RangeError('bytesWritten must be a finite'); - } - - assert(controller._pendingPullIntos.length > 0); - ReadableByteStreamControllerRespondInternal(controller, bytesWritten); - } - - function ReadableByteStreamControllerRespondWithNewView(controller, view) { - assert(controller._pendingPullIntos.length > 0); - var firstDescriptor = controller._pendingPullIntos[0]; - - if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) { - throw new RangeError('The region specified by view does not match byobRequest'); - } - - if (firstDescriptor.byteLength !== view.byteLength) { - throw new RangeError('The buffer of view has different capacity than byobRequest'); - } - - firstDescriptor.buffer = view.buffer; - ReadableByteStreamControllerRespondInternal(controller, view.byteLength); - } - - function streamBrandCheckException(name) { - return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream'); - } - - function readerLockException(name) { - return new TypeError('Cannot ' + name + ' a stream using a released reader'); - } - - function defaultReaderBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader'); - } - - function defaultReaderClosedPromiseInitialize(reader) { - reader._closedPromise = new Promise(function (resolve, reject) { - reader._closedPromise_resolve = resolve; - reader._closedPromise_reject = reject; - }); - } - - function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) { - reader._closedPromise = Promise.reject(reason); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseInitializeAsResolved(reader) { - reader._closedPromise = Promise.resolve(undefined); - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseReject(reader, reason) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - - reader._closedPromise_reject(reason); - - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function defaultReaderClosedPromiseResetToRejected(reader, reason) { - assert(reader._closedPromise_resolve === undefined); - assert(reader._closedPromise_reject === undefined); - reader._closedPromise = Promise.reject(reason); - } - - function defaultReaderClosedPromiseResolve(reader) { - assert(reader._closedPromise_resolve !== undefined); - assert(reader._closedPromise_reject !== undefined); - - reader._closedPromise_resolve(undefined); - - reader._closedPromise_resolve = undefined; - reader._closedPromise_reject = undefined; - } - - function byobReaderBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader'); - } - - function defaultControllerBrandCheckException(name) { - return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController'); - } - - function byobRequestBrandCheckException(name) { - return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest'); - } - - function byteStreamControllerBrandCheckException(name) { - return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController'); - } - - function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) { - try { - Promise.prototype.then.call(promise, undefined, function () {}); - } catch (e) {} - } -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var transformStream = __w_pdfjs_require__(6); - - var readableStream = __w_pdfjs_require__(4); - - var writableStream = __w_pdfjs_require__(2); - - exports.TransformStream = transformStream.TransformStream; - exports.ReadableStream = readableStream.ReadableStream; - exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed; - exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose; - exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue; - exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError; - exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize; - exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter; - exports.IsWritableStream = writableStream.IsWritableStream; - exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked; - exports.WritableStream = writableStream.WritableStream; - exports.WritableStreamAbort = writableStream.WritableStreamAbort; - exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError; - exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation; - exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease; - exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite; -}, function (module, exports, __w_pdfjs_require__) { - "use strict"; - - var _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; - }; - }(); - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - var _require = __w_pdfjs_require__(1), - assert = _require.assert; - - var _require2 = __w_pdfjs_require__(0), - InvokeOrNoop = _require2.InvokeOrNoop, - PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback, - PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop, - typeIsObject = _require2.typeIsObject; - - var _require3 = __w_pdfjs_require__(4), - ReadableStream = _require3.ReadableStream, - ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose, - ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue, - ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError, - ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize; - - var _require4 = __w_pdfjs_require__(2), - WritableStream = _require4.WritableStream, - WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError; - - function TransformStreamCloseReadable(transformStream) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - - TransformStreamCloseReadableInternal(transformStream); - } - - function TransformStreamEnqueueToReadable(transformStream, chunk) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - if (transformStream._readableClosed === true) { - throw new TypeError('Readable side is already closed'); - } - - var controller = transformStream._readableController; - - try { - ReadableStreamDefaultControllerEnqueue(controller, chunk); - } catch (e) { - transformStream._readableClosed = true; - TransformStreamErrorIfNeeded(transformStream, e); - throw transformStream._storedError; - } - - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller); - var maybeBackpressure = desiredSize <= 0; - - if (maybeBackpressure === true && transformStream._backpressure === false) { - TransformStreamSetBackpressure(transformStream, true); - } - } - - function TransformStreamError(transformStream, e) { - if (transformStream._errored === true) { - throw new TypeError('TransformStream is already errored'); - } - - TransformStreamErrorInternal(transformStream, e); - } - - function TransformStreamCloseReadableInternal(transformStream) { - assert(transformStream._errored === false); - assert(transformStream._readableClosed === false); - - try { - ReadableStreamDefaultControllerClose(transformStream._readableController); - } catch (e) { - assert(false); - } - - transformStream._readableClosed = true; - } - - function TransformStreamErrorIfNeeded(transformStream, e) { - if (transformStream._errored === false) { - TransformStreamErrorInternal(transformStream, e); - } - } - - function TransformStreamErrorInternal(transformStream, e) { - assert(transformStream._errored === false); - transformStream._errored = true; - transformStream._storedError = e; - - if (transformStream._writableDone === false) { - WritableStreamDefaultControllerError(transformStream._writableController, e); - } - - if (transformStream._readableClosed === false) { - ReadableStreamDefaultControllerError(transformStream._readableController, e); - } - } - - function TransformStreamReadableReadyPromise(transformStream) { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - - if (transformStream._backpressure === false) { - return Promise.resolve(); - } - - assert(transformStream._backpressure === true, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - } - - function TransformStreamSetBackpressure(transformStream, backpressure) { - assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed'); - - if (transformStream._backpressureChangePromise !== undefined) { - transformStream._backpressureChangePromise_resolve(backpressure); - } - - transformStream._backpressureChangePromise = new Promise(function (resolve) { - transformStream._backpressureChangePromise_resolve = resolve; - }); - - transformStream._backpressureChangePromise.then(function (resolution) { - assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed'); - }); - - transformStream._backpressure = backpressure; - } - - function TransformStreamDefaultTransform(chunk, transformStreamController) { - var transformStream = transformStreamController._controlledTransformStream; - TransformStreamEnqueueToReadable(transformStream, chunk); - return Promise.resolve(); - } - - function TransformStreamTransform(transformStream, chunk) { - assert(transformStream._errored === false); - assert(transformStream._transforming === false); - assert(transformStream._backpressure === false); - transformStream._transforming = true; - var transformer = transformStream._transformer; - var controller = transformStream._transformStreamController; - var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]); - return transformPromise.then(function () { - transformStream._transforming = false; - return TransformStreamReadableReadyPromise(transformStream); - }, function (e) { - TransformStreamErrorIfNeeded(transformStream, e); - return Promise.reject(e); - }); - } - - function IsTransformStreamDefaultController(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) { - return false; - } - - return true; - } - - function IsTransformStream(x) { - if (!typeIsObject(x)) { - return false; - } - - if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) { - return false; - } - - return true; - } - - var TransformStreamSink = function () { - function TransformStreamSink(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSink); - - this._transformStream = transformStream; - this._startPromise = startPromise; - } - - _createClass(TransformStreamSink, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._writableController = c; - return this._startPromise.then(function () { - return TransformStreamReadableReadyPromise(transformStream); - }); - } - }, { - key: 'write', - value: function write(chunk) { - var transformStream = this._transformStream; - return TransformStreamTransform(transformStream, chunk); - } - }, { - key: 'abort', - value: function abort() { - var transformStream = this._transformStream; - transformStream._writableDone = true; - TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted')); - } - }, { - key: 'close', - value: function close() { - var transformStream = this._transformStream; - assert(transformStream._transforming === false); - transformStream._writableDone = true; - var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]); - return flushPromise.then(function () { - if (transformStream._errored === true) { - return Promise.reject(transformStream._storedError); - } - - if (transformStream._readableClosed === false) { - TransformStreamCloseReadableInternal(transformStream); - } - - return Promise.resolve(); - })["catch"](function (r) { - TransformStreamErrorIfNeeded(transformStream, r); - return Promise.reject(transformStream._storedError); - }); - } - }]); - - return TransformStreamSink; - }(); - - var TransformStreamSource = function () { - function TransformStreamSource(transformStream, startPromise) { - _classCallCheck(this, TransformStreamSource); - - this._transformStream = transformStream; - this._startPromise = startPromise; - } - - _createClass(TransformStreamSource, [{ - key: 'start', - value: function start(c) { - var transformStream = this._transformStream; - transformStream._readableController = c; - return this._startPromise.then(function () { - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - - if (transformStream._backpressure === true) { - return Promise.resolve(); - } - - assert(transformStream._backpressure === false, '_backpressure should have been initialized'); - return transformStream._backpressureChangePromise; - }); - } - }, { - key: 'pull', - value: function pull() { - var transformStream = this._transformStream; - assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false'); - assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized'); - TransformStreamSetBackpressure(transformStream, false); - return transformStream._backpressureChangePromise; - } - }, { - key: 'cancel', - value: function cancel() { - var transformStream = this._transformStream; - transformStream._readableClosed = true; - TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled')); - } - }]); - - return TransformStreamSource; - }(); - - var TransformStreamDefaultController = function () { - function TransformStreamDefaultController(transformStream) { - _classCallCheck(this, TransformStreamDefaultController); - - if (IsTransformStream(transformStream) === false) { - throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance'); - } - - if (transformStream._transformStreamController !== undefined) { - throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor'); - } - - this._controlledTransformStream = transformStream; - } - - _createClass(TransformStreamDefaultController, [{ - key: 'enqueue', - value: function enqueue(chunk) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('enqueue'); - } - - TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk); - } - }, { - key: 'close', - value: function close() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('close'); - } - - TransformStreamCloseReadable(this._controlledTransformStream); - } - }, { - key: 'error', - value: function error(reason) { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('error'); - } - - TransformStreamError(this._controlledTransformStream, reason); - } - }, { - key: 'desiredSize', - get: function get() { - if (IsTransformStreamDefaultController(this) === false) { - throw defaultControllerBrandCheckException('desiredSize'); - } - - var transformStream = this._controlledTransformStream; - var readableController = transformStream._readableController; - return ReadableStreamDefaultControllerGetDesiredSize(readableController); - } - }]); - - return TransformStreamDefaultController; - }(); - - var TransformStream = function () { - function TransformStream() { - var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - - _classCallCheck(this, TransformStream); - - this._transformer = transformer; - var readableStrategy = transformer.readableStrategy, - writableStrategy = transformer.writableStrategy; - this._transforming = false; - this._errored = false; - this._storedError = undefined; - this._writableController = undefined; - this._readableController = undefined; - this._transformStreamController = undefined; - this._writableDone = false; - this._readableClosed = false; - this._backpressure = undefined; - this._backpressureChangePromise = undefined; - this._backpressureChangePromise_resolve = undefined; - this._transformStreamController = new TransformStreamDefaultController(this); - var startPromise_resolve = void 0; - var startPromise = new Promise(function (resolve) { - startPromise_resolve = resolve; - }); - var source = new TransformStreamSource(this, startPromise); - this._readable = new ReadableStream(source, readableStrategy); - var sink = new TransformStreamSink(this, startPromise); - this._writable = new WritableStream(sink, writableStrategy); - assert(this._writableController !== undefined); - assert(this._readableController !== undefined); - var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController); - TransformStreamSetBackpressure(this, desiredSize <= 0); - var transformStream = this; - var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]); - startPromise_resolve(startResult); - startPromise["catch"](function (e) { - if (transformStream._errored === false) { - transformStream._errored = true; - transformStream._storedError = e; - } - }); - } - - _createClass(TransformStream, [{ - key: 'readable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('readable'); - } - - return this._readable; - } - }, { - key: 'writable', - get: function get() { - if (IsTransformStream(this) === false) { - throw streamBrandCheckException('writable'); - } - - return this._writable; - } - }]); - - return TransformStream; - }(); - - module.exports = { - TransformStream: TransformStream - }; - - function defaultControllerBrandCheckException(name) { - return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController'); - } - - function streamBrandCheckException(name) { - return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream'); - } -}, function (module, exports, __w_pdfjs_require__) { - module.exports = __w_pdfjs_require__(5); -}])); - -/***/ }), -/* 145 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -{ - var isURLSupported = false; - - try { - if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) { - var u = new URL('b', 'http://a'); - u.pathname = 'c%20d'; - isURLSupported = u.href === 'http://a/c%20d'; - } - } catch (ex) {} - - if (isURLSupported) { - exports.URL = URL; - } else { - var PolyfillURL = __w_pdfjs_require__(146).URL; - - var OriginalURL = __w_pdfjs_require__(3).URL; - - if (OriginalURL) { - PolyfillURL.createObjectURL = function (blob) { - return OriginalURL.createObjectURL.apply(OriginalURL, arguments); - }; - - PolyfillURL.revokeObjectURL = function (url) { - OriginalURL.revokeObjectURL(url); - }; - } - - exports.URL = PolyfillURL; - } -} - -/***/ }), -/* 146 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -(function URLConstructorClosure() { - 'use strict'; - - var relative = Object.create(null); - relative['ftp'] = 21; - relative['file'] = 0; - relative['gopher'] = 70; - relative['http'] = 80; - relative['https'] = 443; - relative['ws'] = 80; - relative['wss'] = 443; - var relativePathDotMapping = Object.create(null); - relativePathDotMapping['%2e'] = '.'; - relativePathDotMapping['.%2e'] = '..'; - relativePathDotMapping['%2e.'] = '..'; - relativePathDotMapping['%2e%2e'] = '..'; - - function isRelativeScheme(scheme) { - return relative[scheme] !== undefined; - } - - function invalid() { - clear.call(this); - this._isInvalid = true; - } - - function IDNAToASCII(h) { - if (h === '') { - invalid.call(this); - } - - return h.toLowerCase(); - } - - function percentEscape(c) { - var unicode = c.charCodeAt(0); - - if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) { - return c; - } - - return encodeURIComponent(c); - } - - function percentEscapeQuery(c) { - var unicode = c.charCodeAt(0); - - if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) { - return c; - } - - return encodeURIComponent(c); - } - - var EOF, - ALPHA = /[a-zA-Z]/, - ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/; - - function parse(input, stateOverride, base) { - function err(message) { - errors.push(message); - } - - var state = stateOverride || 'scheme start', - cursor = 0, - buffer = '', - seenAt = false, - seenBracket = false, - errors = []; - - loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) { - var c = input[cursor]; - - switch (state) { - case 'scheme start': - if (c && ALPHA.test(c)) { - buffer += c.toLowerCase(); - state = 'scheme'; - } else if (!stateOverride) { - buffer = ''; - state = 'no scheme'; - continue; - } else { - err('Invalid scheme.'); - break loop; - } - - break; - - case 'scheme': - if (c && ALPHANUMERIC.test(c)) { - buffer += c.toLowerCase(); - } else if (c === ':') { - this._scheme = buffer; - buffer = ''; - - if (stateOverride) { - break loop; - } - - if (isRelativeScheme(this._scheme)) { - this._isRelative = true; - } - - if (this._scheme === 'file') { - state = 'relative'; - } else if (this._isRelative && base && base._scheme === this._scheme) { - state = 'relative or authority'; - } else if (this._isRelative) { - state = 'authority first slash'; - } else { - state = 'scheme data'; - } - } else if (!stateOverride) { - buffer = ''; - cursor = 0; - state = 'no scheme'; - continue; - } else if (c === EOF) { - break loop; - } else { - err('Code point not allowed in scheme: ' + c); - break loop; - } - - break; - - case 'scheme data': - if (c === '?') { - this._query = '?'; - state = 'query'; - } else if (c === '#') { - this._fragment = '#'; - state = 'fragment'; - } else { - if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - this._schemeData += percentEscape(c); - } - } - - break; - - case 'no scheme': - if (!base || !isRelativeScheme(base._scheme)) { - err('Missing scheme.'); - invalid.call(this); - } else { - state = 'relative'; - continue; - } - - break; - - case 'relative or authority': - if (c === '/' && input[cursor + 1] === '/') { - state = 'authority ignore slashes'; - } else { - err('Expected /, got: ' + c); - state = 'relative'; - continue; - } - - break; - - case 'relative': - this._isRelative = true; - - if (this._scheme !== 'file') { - this._scheme = base._scheme; - } - - if (c === EOF) { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._username = base._username; - this._password = base._password; - break loop; - } else if (c === '/' || c === '\\') { - if (c === '\\') { - err('\\ is an invalid code point.'); - } - - state = 'relative slash'; - } else if (c === '?') { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = '?'; - this._username = base._username; - this._password = base._password; - state = 'query'; - } else if (c === '#') { - this._host = base._host; - this._port = base._port; - this._path = base._path.slice(); - this._query = base._query; - this._fragment = '#'; - this._username = base._username; - this._password = base._password; - state = 'fragment'; - } else { - var nextC = input[cursor + 1]; - var nextNextC = input[cursor + 2]; - - if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - this._path = base._path.slice(); - - this._path.pop(); - } - - state = 'relative path'; - continue; - } - - break; - - case 'relative slash': - if (c === '/' || c === '\\') { - if (c === '\\') { - err('\\ is an invalid code point.'); - } - - if (this._scheme === 'file') { - state = 'file host'; - } else { - state = 'authority ignore slashes'; - } - } else { - if (this._scheme !== 'file') { - this._host = base._host; - this._port = base._port; - this._username = base._username; - this._password = base._password; - } - - state = 'relative path'; - continue; - } - - break; - - case 'authority first slash': - if (c === '/') { - state = 'authority second slash'; - } else { - err('Expected \'/\', got: ' + c); - state = 'authority ignore slashes'; - continue; - } - - break; - - case 'authority second slash': - state = 'authority ignore slashes'; - - if (c !== '/') { - err('Expected \'/\', got: ' + c); - continue; - } - - break; - - case 'authority ignore slashes': - if (c !== '/' && c !== '\\') { - state = 'authority'; - continue; - } else { - err('Expected authority, got: ' + c); - } - - break; - - case 'authority': - if (c === '@') { - if (seenAt) { - err('@ already seen.'); - buffer += '%40'; - } - - seenAt = true; - - for (var i = 0; i < buffer.length; i++) { - var cp = buffer[i]; - - if (cp === '\t' || cp === '\n' || cp === '\r') { - err('Invalid whitespace in authority.'); - continue; - } - - if (cp === ':' && this._password === null) { - this._password = ''; - continue; - } - - var tempC = percentEscape(cp); - - if (this._password !== null) { - this._password += tempC; - } else { - this._username += tempC; - } - } - - buffer = ''; - } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { - cursor -= buffer.length; - buffer = ''; - state = 'host'; - continue; - } else { - buffer += c; - } - - break; - - case 'file host': - if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { - if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) { - state = 'relative path'; - } else if (buffer.length === 0) { - state = 'relative path start'; - } else { - this._host = IDNAToASCII.call(this, buffer); - buffer = ''; - state = 'relative path start'; - } - - continue; - } else if (c === '\t' || c === '\n' || c === '\r') { - err('Invalid whitespace in file host.'); - } else { - buffer += c; - } - - break; - - case 'host': - case 'hostname': - if (c === ':' && !seenBracket) { - this._host = IDNAToASCII.call(this, buffer); - buffer = ''; - state = 'port'; - - if (stateOverride === 'hostname') { - break loop; - } - } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') { - this._host = IDNAToASCII.call(this, buffer); - buffer = ''; - state = 'relative path start'; - - if (stateOverride) { - break loop; - } - - continue; - } else if (c !== '\t' && c !== '\n' && c !== '\r') { - if (c === '[') { - seenBracket = true; - } else if (c === ']') { - seenBracket = false; - } - - buffer += c; - } else { - err('Invalid code point in host/hostname: ' + c); - } - - break; - - case 'port': - if (/[0-9]/.test(c)) { - buffer += c; - } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) { - if (buffer !== '') { - var temp = parseInt(buffer, 10); - - if (temp !== relative[this._scheme]) { - this._port = temp + ''; - } - - buffer = ''; - } - - if (stateOverride) { - break loop; - } - - state = 'relative path start'; - continue; - } else if (c === '\t' || c === '\n' || c === '\r') { - err('Invalid code point in port: ' + c); - } else { - invalid.call(this); - } - - break; - - case 'relative path start': - if (c === '\\') { - err('\'\\\' not allowed in path.'); - } - - state = 'relative path'; - - if (c !== '/' && c !== '\\') { - continue; - } - - break; - - case 'relative path': - if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) { - if (c === '\\') { - err('\\ not allowed in relative path.'); - } - - var tmp; - - if (tmp = relativePathDotMapping[buffer.toLowerCase()]) { - buffer = tmp; - } - - if (buffer === '..') { - this._path.pop(); - - if (c !== '/' && c !== '\\') { - this._path.push(''); - } - } else if (buffer === '.' && c !== '/' && c !== '\\') { - this._path.push(''); - } else if (buffer !== '.') { - if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') { - buffer = buffer[0] + ':'; - } - - this._path.push(buffer); - } - - buffer = ''; - - if (c === '?') { - this._query = '?'; - state = 'query'; - } else if (c === '#') { - this._fragment = '#'; - state = 'fragment'; - } - } else if (c !== '\t' && c !== '\n' && c !== '\r') { - buffer += percentEscape(c); - } - - break; - - case 'query': - if (!stateOverride && c === '#') { - this._fragment = '#'; - state = 'fragment'; - } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - this._query += percentEscapeQuery(c); - } - - break; - - case 'fragment': - if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') { - this._fragment += c; - } - - break; - } - - cursor++; - } - } - - function clear() { - this._scheme = ''; - this._schemeData = ''; - this._username = ''; - this._password = null; - this._host = ''; - this._port = ''; - this._path = []; - this._query = ''; - this._fragment = ''; - this._isInvalid = false; - this._isRelative = false; - } - - function JURL(url, base) { - if (base !== undefined && !(base instanceof JURL)) { - base = new JURL(String(base)); - } - - this._url = url; - clear.call(this); - var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, ''); - parse.call(this, input, null, base); - } - - JURL.prototype = { - toString: function toString() { - return this.href; - }, - - get href() { - if (this._isInvalid) { - return this._url; - } - - var authority = ''; - - if (this._username !== '' || this._password !== null) { - authority = this._username + (this._password !== null ? ':' + this._password : '') + '@'; - } - - return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment; - }, - - set href(value) { - clear.call(this); - parse.call(this, value); - }, - - get protocol() { - return this._scheme + ':'; - }, - - set protocol(value) { - if (this._isInvalid) { - return; - } - - parse.call(this, value + ':', 'scheme start'); - }, - - get host() { - return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host; - }, - - set host(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'host'); - }, - - get hostname() { - return this._host; - }, - - set hostname(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'hostname'); - }, - - get port() { - return this._port; - }, - - set port(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - parse.call(this, value, 'port'); - }, - - get pathname() { - return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData; - }, - - set pathname(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - this._path = []; - parse.call(this, value, 'relative path start'); - }, - - get search() { - return this._isInvalid || !this._query || this._query === '?' ? '' : this._query; - }, - - set search(value) { - if (this._isInvalid || !this._isRelative) { - return; - } - - this._query = '?'; - - if (value[0] === '?') { - value = value.slice(1); - } - - parse.call(this, value, 'query'); - }, - - get hash() { - return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment; - }, - - set hash(value) { - if (this._isInvalid) { - return; - } - - this._fragment = '#'; - - if (value[0] === '#') { - value = value.slice(1); - } - - parse.call(this, value, 'fragment'); - }, - - get origin() { - var host; - - if (this._isInvalid || !this._scheme) { - return ''; - } - - switch (this._scheme) { - case 'data': - case 'file': - case 'javascript': - case 'mailto': - return 'null'; - - case 'blob': - try { - return new JURL(this._schemeData).origin || 'null'; - } catch (_) {} - - return 'null'; - } - - host = this.host; - - if (!host) { - return ''; - } - - return this._scheme + '://' + host; - } - - }; - exports.URL = JURL; -})(); - -/***/ }), -/* 147 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.getDocument = getDocument; exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; -exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0; +exports.version = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultCMapReaderFactory = exports.DefaultCanvasFactory = exports.build = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(1); -var _display_utils = __w_pdfjs_require__(151); +var _font_loader = __w_pdfjs_require__(6); -var _font_loader = __w_pdfjs_require__(152); +var _node_utils = __w_pdfjs_require__(7); -var _api_compatibility = __w_pdfjs_require__(153); +var _annotation_storage = __w_pdfjs_require__(8); -var _canvas = __w_pdfjs_require__(154); +var _api_compatibility = __w_pdfjs_require__(9); -var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); +var _canvas = __w_pdfjs_require__(10); -var _worker_options = __w_pdfjs_require__(156); +var _worker_options = __w_pdfjs_require__(12); -var _message_handler = __w_pdfjs_require__(157); +var _is_node = __w_pdfjs_require__(4); -var _metadata = __w_pdfjs_require__(158); +var _message_handler = __w_pdfjs_require__(13); -var _transport_stream = __w_pdfjs_require__(160); +var _metadata = __w_pdfjs_require__(14); -var _webgl = __w_pdfjs_require__(161); +var _optional_content_config = __w_pdfjs_require__(15); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } +var _transport_stream = __w_pdfjs_require__(16); -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var DEFAULT_RANGE_CHUNK_SIZE = 65536; -var isWorkerDisabled = false; -var fallbackWorkerSrc; -var fakeWorkerFilesLoader = null; -{ - var useRequireEnsure = false; - - if (typeof window === 'undefined') { - isWorkerDisabled = true; - - if (typeof require.ensure === 'undefined') { - require.ensure = require('node-ensure'); - } - - useRequireEnsure = true; - } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') { - useRequireEnsure = true; - } - - if (typeof requirejs !== 'undefined' && requirejs.toUrl) { - fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js'); - } - - var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load; - fakeWorkerFilesLoader = useRequireEnsure ? function () { - return new Promise(function (resolve, reject) { - require.ensure([], function () { - try { - var worker; - worker = require('./pdf.worker.js'); - resolve(worker.WorkerMessageHandler); - } catch (ex) { - reject(ex); - } - }, reject, 'pdfjsWorker'); - }); - } : dynamicLoaderSupported ? function () { - return new Promise(function (resolve, reject) { - requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) { - try { - resolve(worker.WorkerMessageHandler); - } catch (ex) { - reject(ex); - } - }, reject); - }); - } : null; - - if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) { - var pdfjsFilePath = document.currentScript && document.currentScript.src; - - if (pdfjsFilePath) { - fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2'); - } - } -} -var createPDFNetworkStream; +const DEFAULT_RANGE_CHUNK_SIZE = 65536; +const RENDERING_CANCELLED_TIMEOUT = 100; +const DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory; +exports.DefaultCanvasFactory = DefaultCanvasFactory; +const DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory; +exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory; +let createPDFNetworkStream; function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) { createPDFNetworkStream = pdfNetworkStreamFactory; } function getDocument(src) { - var task = new PDFDocumentLoadingTask(); - var source; + const task = new PDFDocumentLoadingTask(); + let source; - if (typeof src === 'string') { + if (typeof src === "string" || src instanceof URL) { source = { url: src }; @@ -9908,93 +1616,112 @@ function getDocument(src) { range: src }; } else { - if (_typeof(src) !== 'object') { - throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object'); + if (typeof src !== "object") { + throw new Error("Invalid parameter in getDocument, " + "need either string, URL, Uint8Array, or parameter object."); } if (!src.url && !src.data && !src.range) { - throw new Error('Invalid parameter object: need either .data, .range or .url'); + throw new Error("Invalid parameter object: need either .data, .range or .url"); } source = src; } - var params = Object.create(null); - var rangeTransport = null, + const params = Object.create(null); + let rangeTransport = null, worker = null; - for (var key in source) { - if (key === 'url' && typeof window !== 'undefined') { - params[key] = new _util.URL(source[key], window.location).href; - continue; - } else if (key === 'range') { - rangeTransport = source[key]; - continue; - } else if (key === 'worker') { - worker = source[key]; - continue; - } else if (key === 'data' && !(source[key] instanceof Uint8Array)) { - var pdfBytes = source[key]; + for (const key in source) { + const value = source[key]; - if (typeof pdfBytes === 'string') { - params[key] = (0, _util.stringToBytes)(pdfBytes); - } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) { - params[key] = new Uint8Array(pdfBytes); - } else if ((0, _util.isArrayBuffer)(pdfBytes)) { - params[key] = new Uint8Array(pdfBytes); - } else { - throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.'); - } + switch (key) { + case "url": + if (typeof window !== "undefined") { + try { + params[key] = new URL(value, window.location).href; + continue; + } catch (ex) { + (0, _util.warn)(`Cannot create valid URL: "${ex}".`); + } + } else if (typeof value === "string" || value instanceof URL) { + params[key] = value.toString(); + continue; + } - continue; + throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property."); + + case "range": + rangeTransport = value; + continue; + + case "worker": + worker = value; + continue; + + case "data": + if (_is_node.isNodeJS && typeof Buffer !== "undefined" && value instanceof Buffer) { + params[key] = new Uint8Array(value); + } else if (value instanceof Uint8Array) { + break; + } else if (typeof value === "string") { + params[key] = (0, _util.stringToBytes)(value); + } else if (typeof value === "object" && value !== null && !isNaN(value.length)) { + params[key] = new Uint8Array(value); + } else if ((0, _util.isArrayBuffer)(value)) { + params[key] = new Uint8Array(value); + } else { + throw new Error("Invalid PDF binary data: either typed array, " + "string, or array-like object is expected in the data property."); + } + + continue; } - params[key] = source[key]; + params[key] = value; } params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; - params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory; + params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory; params.ignoreErrors = params.stopAtErrors !== true; + params.fontExtraProperties = params.fontExtraProperties === true; params.pdfBug = params.pdfBug === true; - var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding); + params.enableXfa = params.enableXfa === true; - if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) { - params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE; + if (typeof params.docBaseUrl !== "string" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) { + params.docBaseUrl = null; } if (!Number.isInteger(params.maxImageSize)) { params.maxImageSize = -1; } - if (typeof params.isEvalSupported !== 'boolean') { + if (typeof params.isEvalSupported !== "boolean") { params.isEvalSupported = true; } - if (typeof params.disableFontFace !== 'boolean') { + if (typeof params.disableFontFace !== "boolean") { params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false; } - if (typeof params.disableRange !== 'boolean') { + if (typeof params.ownerDocument === "undefined") { + params.ownerDocument = globalThis.document; + } + + if (typeof params.disableRange !== "boolean") { params.disableRange = false; } - if (typeof params.disableStream !== 'boolean') { + if (typeof params.disableStream !== "boolean") { params.disableStream = false; } - if (typeof params.disableAutoFetch !== 'boolean') { + if (typeof params.disableAutoFetch !== "boolean") { params.disableAutoFetch = false; } - if (typeof params.disableCreateObjectURL !== 'boolean') { - params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false; - } - (0, _util.setVerbosityLevel)(params.verbosity); if (!worker) { - var workerParams = { - postMessageTransfers: params.postMessageTransfers, + const workerParams = { verbosity: params.verbosity, port: _worker_options.GlobalWorkerOptions.workerPort }; @@ -10002,24 +1729,23 @@ function getDocument(src) { task._worker = worker; } - var docId = task.docId; + const docId = task.docId; worker.promise.then(function () { if (task.destroyed) { - throw new Error('Loading aborted'); + throw new Error("Loading aborted"); } - return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) { - if (task.destroyed) { - throw new Error('Loading aborted'); - } + const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId); - var networkStream; + const networkStreamPromise = new Promise(function (resolve) { + let networkStream; if (rangeTransport) { networkStream = new _transport_stream.PDFDataTransportStream({ length: params.length, initialData: params.initialData, progressiveDone: params.progressiveDone, + contentDispositionFilename: params.contentDispositionFilename, disableRange: params.disableRange, disableStream: params.disableStream }, rangeTransport); @@ -10035,30 +1761,38 @@ function getDocument(src) { }); } - var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); - messageHandler.postMessageTransfers = worker.postMessageTransfers; - var transport = new WorkerTransport(messageHandler, task, networkStream, params); - task._transport = transport; - messageHandler.send('Ready', null); + resolve(networkStream); }); - })["catch"](task._capability.reject); + return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) { + if (task.destroyed) { + throw new Error("Loading aborted"); + } + + const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port); + messageHandler.postMessageTransfers = worker.postMessageTransfers; + const transport = new WorkerTransport(messageHandler, task, networkStream, params); + task._transport = transport; + messageHandler.send("Ready", null); + }); + }).catch(task._capability.reject); return task; } function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { if (worker.destroyed) { - return Promise.reject(new Error('Worker was destroyed')); + return Promise.reject(new Error("Worker was destroyed")); } if (pdfDataRangeTransport) { source.length = pdfDataRangeTransport.length; source.initialData = pdfDataRangeTransport.initialData; source.progressiveDone = pdfDataRangeTransport.progressiveDone; + source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename; } - return worker.messageHandler.sendWithPromise('GetDocRequest', { - docId: docId, - apiVersion: '2.2.228', + return worker.messageHandler.sendWithPromise("GetDocRequest", { + docId, + apiVersion: '2.9.359', source: { data: source.data, url: source.url, @@ -10069,87 +1803,65 @@ function _fetchDocument(worker, source, pdfDataRangeTransport, docId) { }, maxImageSize: source.maxImageSize, disableFontFace: source.disableFontFace, - disableCreateObjectURL: source.disableCreateObjectURL, postMessageTransfers: worker.postMessageTransfers, docBaseUrl: source.docBaseUrl, - nativeImageDecoderSupport: source.nativeImageDecoderSupport, ignoreErrors: source.ignoreErrors, - isEvalSupported: source.isEvalSupported + isEvalSupported: source.isEvalSupported, + fontExtraProperties: source.fontExtraProperties, + enableXfa: source.enableXfa }).then(function (workerId) { if (worker.destroyed) { - throw new Error('Worker was destroyed'); + throw new Error("Worker was destroyed"); } return workerId; }); } -var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { - var nextDocumentId = 0; - - var PDFDocumentLoadingTask = - /*#__PURE__*/ - function () { - function PDFDocumentLoadingTask() { - _classCallCheck(this, PDFDocumentLoadingTask); +const PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { + let nextDocumentId = 0; + class PDFDocumentLoadingTask { + constructor() { this._capability = (0, _util.createPromiseCapability)(); this._transport = null; this._worker = null; - this.docId = 'd' + nextDocumentId++; + this.docId = "d" + nextDocumentId++; this.destroyed = false; this.onPassword = null; this.onProgress = null; this.onUnsupportedFeature = null; } - _createClass(PDFDocumentLoadingTask, [{ - key: "destroy", - value: function destroy() { - var _this = this; + get promise() { + return this._capability.promise; + } - this.destroyed = true; - var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); - return transportDestroyed.then(function () { - _this._transport = null; + destroy() { + this.destroyed = true; + const transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy(); + return transportDestroyed.then(() => { + this._transport = null; - if (_this._worker) { - _this._worker.destroy(); + if (this._worker) { + this._worker.destroy(); - _this._worker = null; - } - }); - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - (0, _display_utils.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.'); - return this.promise.then.apply(this.promise, arguments); - } - }, { - key: "promise", - get: function get() { - return this._capability.promise; - } - }]); + this._worker = null; + } + }); + } - return PDFDocumentLoadingTask; - }(); + } return PDFDocumentLoadingTask; }(); -var PDFDataRangeTransport = -/*#__PURE__*/ -function () { - function PDFDataRangeTransport(length, initialData) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, PDFDataRangeTransport); - +class PDFDataRangeTransport { + constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) { this.length = length; this.initialData = initialData; this.progressiveDone = progressiveDone; + this.contentDispositionFilename = contentDispositionFilename; this._rangeListeners = []; this._progressListeners = []; this._progressiveReadListeners = []; @@ -10157,815 +1869,871 @@ function () { this._readyCapability = (0, _util.createPromiseCapability)(); } - _createClass(PDFDataRangeTransport, [{ - key: "addRangeListener", - value: function addRangeListener(listener) { - this._rangeListeners.push(listener); - } - }, { - key: "addProgressListener", - value: function addProgressListener(listener) { - this._progressListeners.push(listener); - } - }, { - key: "addProgressiveReadListener", - value: function addProgressiveReadListener(listener) { - this._progressiveReadListeners.push(listener); - } - }, { - key: "addProgressiveDoneListener", - value: function addProgressiveDoneListener(listener) { - this._progressiveDoneListeners.push(listener); - } - }, { - key: "onDataRange", - value: function onDataRange(begin, chunk) { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + addRangeListener(listener) { + this._rangeListeners.push(listener); + } - try { - for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var listener = _step.value; - listener(begin, chunk); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + addProgressListener(listener) { + this._progressListeners.push(listener); + } + + addProgressiveReadListener(listener) { + this._progressiveReadListeners.push(listener); + } + + addProgressiveDoneListener(listener) { + this._progressiveDoneListeners.push(listener); + } + + onDataRange(begin, chunk) { + for (const listener of this._rangeListeners) { + listener(begin, chunk); + } + } + + onDataProgress(loaded, total) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressListeners) { + listener(loaded, total); } - } - }, { - key: "onDataProgress", - value: function onDataProgress(loaded, total) { - var _this2 = this; + }); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + onDataProgressiveRead(chunk) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveReadListeners) { + listener(chunk); + } + }); + } - try { - for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var listener = _step2.value; - listener(loaded, total); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - }); - } - }, { - key: "onDataProgressiveRead", - value: function onDataProgressiveRead(chunk) { - var _this3 = this; + onDataProgressiveDone() { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveDoneListeners) { + listener(); + } + }); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; + transportReady() { + this._readyCapability.resolve(); + } - try { - for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var listener = _step3.value; - listener(chunk); - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - }); - } - }, { - key: "onDataProgressiveDone", - value: function onDataProgressiveDone() { - var _this4 = this; + requestDataRange(begin, end) { + (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); + } - this._readyCapability.promise.then(function () { - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; + abort() {} - try { - for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var listener = _step4.value; - listener(); - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - }); - } - }, { - key: "transportReady", - value: function transportReady() { - this._readyCapability.resolve(); - } - }, { - key: "requestDataRange", - value: function requestDataRange(begin, end) { - (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange'); - } - }, { - key: "abort", - value: function abort() {} - }]); - - return PDFDataRangeTransport; -}(); +} exports.PDFDataRangeTransport = PDFDataRangeTransport; -var PDFDocumentProxy = -/*#__PURE__*/ -function () { - function PDFDocumentProxy(pdfInfo, transport) { - _classCallCheck(this, PDFDocumentProxy); - +class PDFDocumentProxy { + constructor(pdfInfo, transport) { this._pdfInfo = pdfInfo; this._transport = transport; } - _createClass(PDFDocumentProxy, [{ - key: "getPage", - value: function getPage(pageNumber) { - return this._transport.getPage(pageNumber); - } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - return this._transport.getPageIndex(ref); - } - }, { - key: "getDestinations", - value: function getDestinations() { - return this._transport.getDestinations(); - } - }, { - key: "getDestination", - value: function getDestination(id) { - return this._transport.getDestination(id); - } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this._transport.getPageLabels(); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this._transport.getPageLayout(); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this._transport.getPageMode(); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this._transport.getViewerPreferences(); - } - }, { - key: "getOpenActionDestination", - value: function getOpenActionDestination() { - return this._transport.getOpenActionDestination(); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this._transport.getAttachments(); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this._transport.getJavaScript(); - } - }, { - key: "getOutline", - value: function getOutline() { - return this._transport.getOutline(); - } - }, { - key: "getPermissions", - value: function getPermissions() { - return this._transport.getPermissions(); - } - }, { - key: "getMetadata", - value: function getMetadata() { - return this._transport.getMetadata(); - } - }, { - key: "getData", - value: function getData() { - return this._transport.getData(); - } - }, { - key: "getDownloadInfo", - value: function getDownloadInfo() { - return this._transport.downloadInfoCapability.promise; - } - }, { - key: "getStats", - value: function getStats() { - return this._transport.getStats(); - } - }, { - key: "cleanup", - value: function cleanup() { - this._transport.startCleanup(); - } - }, { - key: "destroy", - value: function destroy() { - return this.loadingTask.destroy(); - } - }, { - key: "numPages", - get: function get() { - return this._pdfInfo.numPages; - } - }, { - key: "fingerprint", - get: function get() { - return this._pdfInfo.fingerprint; - } - }, { - key: "loadingParams", - get: function get() { - return this._transport.loadingParams; - } - }, { - key: "loadingTask", - get: function get() { - return this._transport.loadingTask; - } - }]); + get annotationStorage() { + return this._transport.annotationStorage; + } - return PDFDocumentProxy; -}(); + get numPages() { + return this._pdfInfo.numPages; + } + + get fingerprint() { + return this._pdfInfo.fingerprint; + } + + get isPureXfa() { + return this._pdfInfo.isPureXfa; + } + + getPage(pageNumber) { + return this._transport.getPage(pageNumber); + } + + getPageIndex(ref) { + return this._transport.getPageIndex(ref); + } + + getDestinations() { + return this._transport.getDestinations(); + } + + getDestination(id) { + return this._transport.getDestination(id); + } + + getPageLabels() { + return this._transport.getPageLabels(); + } + + getPageLayout() { + return this._transport.getPageLayout(); + } + + getPageMode() { + return this._transport.getPageMode(); + } + + getViewerPreferences() { + return this._transport.getViewerPreferences(); + } + + getOpenAction() { + return this._transport.getOpenAction(); + } + + getAttachments() { + return this._transport.getAttachments(); + } + + getJavaScript() { + return this._transport.getJavaScript(); + } + + getJSActions() { + return this._transport.getDocJSActions(); + } + + getOutline() { + return this._transport.getOutline(); + } + + getOptionalContentConfig() { + return this._transport.getOptionalContentConfig(); + } + + getPermissions() { + return this._transport.getPermissions(); + } + + getMetadata() { + return this._transport.getMetadata(); + } + + getMarkInfo() { + return this._transport.getMarkInfo(); + } + + getData() { + return this._transport.getData(); + } + + getDownloadInfo() { + return this._transport.downloadInfoCapability.promise; + } + + getStats() { + return this._transport.getStats(); + } + + cleanup(keepLoadedFonts = false) { + return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa); + } + + destroy() { + return this.loadingTask.destroy(); + } + + get loadingParams() { + return this._transport.loadingParams; + } + + get loadingTask() { + return this._transport.loadingTask; + } + + saveDocument() { + if (arguments.length > 0) { + (0, _display_utils.deprecated)("saveDocument no longer accepts any options."); + } + + if (this._transport.annotationStorage.size <= 0) { + (0, _display_utils.deprecated)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead."); + } + + return this._transport.saveDocument(); + } + + getFieldObjects() { + return this._transport.getFieldObjects(); + } + + hasJSActions() { + return this._transport.hasJSActions(); + } + + getCalculationOrderIds() { + return this._transport.getCalculationOrderIds(); + } + +} exports.PDFDocumentProxy = PDFDocumentProxy; -var PDFPageProxy = -/*#__PURE__*/ -function () { - function PDFPageProxy(pageIndex, pageInfo, transport) { - var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - - _classCallCheck(this, PDFPageProxy); - - this.pageIndex = pageIndex; +class PDFPageProxy { + constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) { + this._pageIndex = pageIndex; this._pageInfo = pageInfo; + this._ownerDocument = ownerDocument; this._transport = transport; - this._stats = pdfBug ? new _display_utils.StatTimer() : _display_utils.DummyStatTimer; + this._stats = pdfBug ? new _display_utils.StatTimer() : null; this._pdfBug = pdfBug; this.commonObjs = transport.commonObjs; this.objs = new PDFObjects(); this.cleanupAfterRender = false; this.pendingCleanup = false; - this.intentStates = Object.create(null); + this._intentStates = new Map(); this.destroyed = false; } - _createClass(PDFPageProxy, [{ - key: "getViewport", - value: function getViewport() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - scale = _ref.scale, - _ref$rotation = _ref.rotation, - rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation, - _ref$dontFlip = _ref.dontFlip, - dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip; + get pageNumber() { + return this._pageIndex + 1; + } - if (arguments.length > 1 || typeof arguments[0] === 'number') { - (0, _display_utils.deprecated)('getViewport is called with obsolete arguments.'); - scale = arguments[0]; - rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate; - dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false; - } + get rotate() { + return this._pageInfo.rotate; + } - return new _display_utils.PageViewport({ - viewBox: this.view, - scale: scale, - rotation: rotation, - dontFlip: dontFlip - }); + get ref() { + return this._pageInfo.ref; + } + + get userUnit() { + return this._pageInfo.userUnit; + } + + get view() { + return this._pageInfo.view; + } + + getViewport({ + scale, + rotation = this.rotate, + offsetX = 0, + offsetY = 0, + dontFlip = false + } = {}) { + return new _display_utils.PageViewport({ + viewBox: this.view, + scale, + rotation, + offsetX, + offsetY, + dontFlip + }); + } + + getAnnotations({ + intent = null + } = {}) { + if (!this._annotationsPromise || this._annotationsIntent !== intent) { + this._annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent); + this._annotationsIntent = intent; } - }, { - key: "getAnnotations", - value: function getAnnotations() { - var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref2$intent = _ref2.intent, - intent = _ref2$intent === void 0 ? null : _ref2$intent; - if (!this.annotationsPromise || this.annotationsIntent !== intent) { - this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent); - this.annotationsIntent = intent; - } + return this._annotationsPromise; + } - return this.annotationsPromise; + getJSActions() { + return this._jsActionsPromise || (this._jsActionsPromise = this._transport.getPageJSActions(this._pageIndex)); + } + + getXfa() { + return this._xfaPromise || (this._xfaPromise = this._transport.getPageXfa(this._pageIndex)); + } + + render({ + canvasContext, + viewport, + intent = "display", + renderInteractiveForms = false, + transform = null, + imageLayer = null, + canvasFactory = null, + background = null, + includeAnnotationStorage = false, + optionalContentConfigPromise = null + }) { + var _intentState; + + if (arguments[0]?.annotationStorage !== undefined) { + (0, _display_utils.deprecated)("render no longer accepts an `annotationStorage` option, " + "please use the `includeAnnotationStorage`-boolean instead."); + includeAnnotationStorage || (includeAnnotationStorage = !!arguments[0].annotationStorage); } - }, { - key: "render", - value: function render(_ref3) { - var _this5 = this; - var canvasContext = _ref3.canvasContext, - viewport = _ref3.viewport, - _ref3$intent = _ref3.intent, - intent = _ref3$intent === void 0 ? 'display' : _ref3$intent, - _ref3$enableWebGL = _ref3.enableWebGL, - enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL, - _ref3$renderInteracti = _ref3.renderInteractiveForms, - renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti, - _ref3$transform = _ref3.transform, - transform = _ref3$transform === void 0 ? null : _ref3$transform, - _ref3$imageLayer = _ref3.imageLayer, - imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer, - _ref3$canvasFactory = _ref3.canvasFactory, - canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory, - _ref3$background = _ref3.background, - background = _ref3$background === void 0 ? null : _ref3$background; - var stats = this._stats; - stats.time('Overall'); - this.pendingCleanup = false; - var renderingIntent = intent === 'print' ? 'print' : 'display'; - var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory(); - var webGLContext = new _webgl.WebGLContext({ - enable: enableWebGL - }); + if (this._stats) { + this._stats.time("Overall"); + } - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); - } + const renderingIntent = intent === "print" ? "print" : "display"; + this.pendingCleanup = false; - var intentState = this.intentStates[renderingIntent]; + if (!optionalContentConfigPromise) { + optionalContentConfigPromise = this._transport.getOptionalContentConfig(); + } - if (!intentState.displayReadyCapability) { - intentState.receivingOperatorList = true; - intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - stats.time('Page Request'); + let intentState = this._intentStates.get(renderingIntent); - this._transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageNumber - 1, - intent: renderingIntent, - renderInteractiveForms: renderInteractiveForms === true - }); - } + if (!intentState) { + intentState = Object.create(null); - var complete = function complete(error) { - var i = intentState.renderTasks.indexOf(internalRenderTask); + this._intentStates.set(renderingIntent, intentState); + } - if (i >= 0) { - intentState.renderTasks.splice(i, 1); - } + if (intentState.streamReaderCancelTimeout) { + clearTimeout(intentState.streamReaderCancelTimeout); + intentState.streamReaderCancelTimeout = null; + } - if (_this5.cleanupAfterRender || renderingIntent === 'print') { - _this5.pendingCleanup = true; - } + const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({ + ownerDocument: this._ownerDocument + }); + const annotationStorage = includeAnnotationStorage ? this._transport.annotationStorage.serializable : null; - _this5._tryCleanup(); - - if (error) { - internalRenderTask.capability.reject(error); - } else { - internalRenderTask.capability.resolve(); - } - - stats.timeEnd('Rendering'); - stats.timeEnd('Overall'); + if (!intentState.displayReadyCapability) { + intentState.displayReadyCapability = (0, _util.createPromiseCapability)(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false }; - var internalRenderTask = new InternalRenderTask({ - callback: complete, - params: { - canvasContext: canvasContext, - viewport: viewport, - transform: transform, - imageLayer: imageLayer, - background: background - }, - objs: this.objs, - commonObjs: this.commonObjs, - operatorList: intentState.operatorList, - pageNumber: this.pageNumber, - canvasFactory: canvasFactoryInstance, - webGLContext: webGLContext, - useRequestAnimationFrame: renderingIntent !== 'print', - pdfBug: this._pdfBug + if (this._stats) { + this._stats.time("Page Request"); + } + + this._pumpOperatorList({ + pageIndex: this._pageIndex, + intent: renderingIntent, + renderInteractiveForms: renderInteractiveForms === true, + annotationStorage }); - - if (!intentState.renderTasks) { - intentState.renderTasks = []; - } - - intentState.renderTasks.push(internalRenderTask); - var renderTask = internalRenderTask.task; - intentState.displayReadyCapability.promise.then(function (transparency) { - if (_this5.pendingCleanup) { - complete(); - return; - } - - stats.time('Rendering'); - internalRenderTask.initializeGraphics(transparency); - internalRenderTask.operatorListChanged(); - })["catch"](complete); - return renderTask; } - }, { - key: "getOperatorList", - value: function getOperatorList() { - function operatorListChanged() { - if (intentState.operatorList.lastChunk) { - intentState.opListReadCapability.resolve(intentState.operatorList); - var i = intentState.renderTasks.indexOf(opListTask); - if (i >= 0) { - intentState.renderTasks.splice(i, 1); - } - } + const complete = error => { + intentState.renderTasks.delete(internalRenderTask); + + if (this.cleanupAfterRender || renderingIntent === "print") { + this.pendingCleanup = true; } - var renderingIntent = 'oplist'; + this._tryCleanup(); - if (!this.intentStates[renderingIntent]) { - this.intentStates[renderingIntent] = Object.create(null); - } + if (error) { + internalRenderTask.capability.reject(error); - var intentState = this.intentStates[renderingIntent]; - var opListTask; - - if (!intentState.opListReadCapability) { - opListTask = {}; - opListTask.operatorListChanged = operatorListChanged; - intentState.receivingOperatorList = true; - intentState.opListReadCapability = (0, _util.createPromiseCapability)(); - intentState.renderTasks = []; - intentState.renderTasks.push(opListTask); - intentState.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: false - }; - - this._stats.time('Page Request'); - - this._transport.messageHandler.send('RenderPageRequest', { - pageIndex: this.pageIndex, - intent: renderingIntent + this._abortOperatorList({ + intentState, + reason: error }); + } else { + internalRenderTask.capability.resolve(); } - return intentState.opListReadCapability.promise; - } - }, { - key: "streamTextContent", - value: function streamTextContent() { - var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref4$normalizeWhites = _ref4.normalizeWhitespace, - normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites, - _ref4$disableCombineT = _ref4.disableCombineTextItems, - disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT; + if (this._stats) { + this._stats.timeEnd("Rendering"); - var TEXT_CONTENT_CHUNK_SIZE = 100; - return this._transport.messageHandler.sendWithStream('GetTextContent', { - pageIndex: this.pageNumber - 1, - normalizeWhitespace: normalizeWhitespace === true, - combineTextItems: disableCombineTextItems !== true - }, { - highWaterMark: TEXT_CONTENT_CHUNK_SIZE, - size: function size(textContent) { - return textContent.items.length; - } - }); - } - }, { - key: "getTextContent", - value: function getTextContent() { - var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; - var readableStream = this.streamTextContent(params); - return new Promise(function (resolve, reject) { - function pump() { - reader.read().then(function (_ref5) { - var _textContent$items; + this._stats.timeEnd("Overall"); + } + }; - var value = _ref5.value, - done = _ref5.done; - - if (done) { - resolve(textContent); - return; - } - - Object.assign(textContent.styles, value.styles); - - (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items)); - - pump(); - }, reject); - } - - var reader = readableStream.getReader(); - var textContent = { - items: [], - styles: Object.create(null) - }; - pump(); - }); - } - }, { - key: "_destroy", - value: function _destroy() { - this.destroyed = true; - this._transport.pageCache[this.pageIndex] = null; - var waitOn = []; - Object.keys(this.intentStates).forEach(function (intent) { - if (intent === 'oplist') { - return; - } - - var intentState = this.intentStates[intent]; - intentState.renderTasks.forEach(function (renderTask) { - var renderCompleted = renderTask.capability.promise["catch"](function () {}); - waitOn.push(renderCompleted); - renderTask.cancel(); - }); - }, this); - this.objs.clear(); - this.annotationsPromise = null; - this.pendingCleanup = false; - return Promise.all(waitOn); - } - }, { - key: "cleanup", - value: function cleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - this.pendingCleanup = true; - - this._tryCleanup(resetStats); - } - }, { - key: "_tryCleanup", - value: function _tryCleanup() { - var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) { - var intentState = this.intentStates[intent]; - return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList; - }, this)) { + const internalRenderTask = new InternalRenderTask({ + callback: complete, + params: { + canvasContext, + viewport, + transform, + imageLayer, + background + }, + objs: this.objs, + commonObjs: this.commonObjs, + operatorList: intentState.operatorList, + pageIndex: this._pageIndex, + canvasFactory: canvasFactoryInstance, + useRequestAnimationFrame: renderingIntent !== "print", + pdfBug: this._pdfBug + }); + ((_intentState = intentState).renderTasks || (_intentState.renderTasks = new Set())).add(internalRenderTask); + const renderTask = internalRenderTask.task; + Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => { + if (this.pendingCleanup) { + complete(); return; } - Object.keys(this.intentStates).forEach(function (intent) { - delete this.intentStates[intent]; - }, this); - this.objs.clear(); - this.annotationsPromise = null; - - if (resetStats && this._stats instanceof _display_utils.StatTimer) { - this._stats = new _display_utils.StatTimer(); + if (this._stats) { + this._stats.time("Rendering"); } - this.pendingCleanup = false; - } - }, { - key: "_startRenderPage", - value: function _startRenderPage(transparency, intent) { - var intentState = this.intentStates[intent]; + internalRenderTask.initializeGraphics({ + transparency, + optionalContentConfig + }); + internalRenderTask.operatorListChanged(); + }).catch(complete); + return renderTask; + } - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.resolve(transparency); + getOperatorList() { + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + intentState.renderTasks.delete(opListTask); } } - }, { - key: "_renderPageChunk", - value: function _renderPageChunk(operatorListChunk, intent) { - var intentState = this.intentStates[intent]; - for (var i = 0, ii = operatorListChunk.length; i < ii; i++) { - intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); - intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + const renderingIntent = "oplist"; + + let intentState = this._intentStates.get(renderingIntent); + + if (!intentState) { + intentState = Object.create(null); + + this._intentStates.set(renderingIntent, intentState); + } + + let opListTask; + + if (!intentState.opListReadCapability) { + var _intentState2; + + opListTask = Object.create(null); + opListTask.operatorListChanged = operatorListChanged; + intentState.opListReadCapability = (0, _util.createPromiseCapability)(); + ((_intentState2 = intentState).renderTasks || (_intentState2.renderTasks = new Set())).add(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false + }; + + if (this._stats) { + this._stats.time("Page Request"); } - intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + this._pumpOperatorList({ + pageIndex: this._pageIndex, + intent: renderingIntent + }); + } - for (var _i = 0; _i < intentState.renderTasks.length; _i++) { - intentState.renderTasks[_i].operatorListChanged(); + return intentState.opListReadCapability.promise; + } + + streamTextContent({ + normalizeWhitespace = false, + disableCombineTextItems = false, + includeMarkedContent = false + } = {}) { + const TEXT_CONTENT_CHUNK_SIZE = 100; + return this._transport.messageHandler.sendWithStream("GetTextContent", { + pageIndex: this._pageIndex, + normalizeWhitespace: normalizeWhitespace === true, + combineTextItems: disableCombineTextItems !== true, + includeMarkedContent: includeMarkedContent === true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + + size(textContent) { + return textContent.items.length; } - if (operatorListChunk.lastChunk) { - intentState.receivingOperatorList = false; + }); + } - this._tryCleanup(); + getTextContent(params = {}) { + const readableStream = this.streamTextContent(params); + return new Promise(function (resolve, reject) { + function pump() { + reader.read().then(function ({ + value, + done + }) { + if (done) { + resolve(textContent); + return; + } + + Object.assign(textContent.styles, value.styles); + textContent.items.push(...value.items); + pump(); + }, reject); + } + + const reader = readableStream.getReader(); + const textContent = { + items: [], + styles: Object.create(null) + }; + pump(); + }); + } + + getStructTree() { + return this._structTreePromise || (this._structTreePromise = this._transport.getStructTree(this._pageIndex)); + } + + _destroy() { + this.destroyed = true; + this._transport.pageCache[this._pageIndex] = null; + const waitOn = []; + + for (const [intent, intentState] of this._intentStates) { + this._abortOperatorList({ + intentState, + reason: new Error("Page was destroyed."), + force: true + }); + + if (intent === "oplist") { + continue; + } + + for (const internalRenderTask of intentState.renderTasks) { + waitOn.push(internalRenderTask.completed); + internalRenderTask.cancel(); } } - }, { - key: "pageNumber", - get: function get() { - return this.pageIndex + 1; - } - }, { - key: "rotate", - get: function get() { - return this._pageInfo.rotate; - } - }, { - key: "ref", - get: function get() { - return this._pageInfo.ref; - } - }, { - key: "userUnit", - get: function get() { - return this._pageInfo.userUnit; - } - }, { - key: "view", - get: function get() { - return this._pageInfo.view; - } - }, { - key: "stats", - get: function get() { - return this._stats instanceof _display_utils.StatTimer ? this._stats : null; - } - }]); - return PDFPageProxy; -}(); + this.objs.clear(); + this._annotationsPromise = null; + this._jsActionsPromise = null; + this._xfaPromise = null; + this._structTreePromise = null; + this.pendingCleanup = false; + return Promise.all(waitOn); + } + + cleanup(resetStats = false) { + this.pendingCleanup = true; + return this._tryCleanup(resetStats); + } + + _tryCleanup(resetStats = false) { + if (!this.pendingCleanup) { + return false; + } + + for (const { + renderTasks, + operatorList + } of this._intentStates.values()) { + if (renderTasks.size > 0 || !operatorList.lastChunk) { + return false; + } + } + + this._intentStates.clear(); + + this.objs.clear(); + this._annotationsPromise = null; + this._jsActionsPromise = null; + this._xfaPromise = null; + this._structTreePromise = null; + + if (resetStats && this._stats) { + this._stats = new _display_utils.StatTimer(); + } + + this.pendingCleanup = false; + return true; + } + + _startRenderPage(transparency, intent) { + const intentState = this._intentStates.get(intent); + + if (!intentState) { + return; + } + + if (this._stats) { + this._stats.timeEnd("Page Request"); + } + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.resolve(transparency); + } + } + + _renderPageChunk(operatorListChunk, intentState) { + for (let i = 0, ii = operatorListChunk.length; i < ii; i++) { + intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]); + intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]); + } + + intentState.operatorList.lastChunk = operatorListChunk.lastChunk; + + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + + if (operatorListChunk.lastChunk) { + this._tryCleanup(); + } + } + + _pumpOperatorList(args) { + (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.'); + + const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args); + + const reader = readableStream.getReader(); + + const intentState = this._intentStates.get(args.intent); + + intentState.streamReader = reader; + + const pump = () => { + reader.read().then(({ + value, + done + }) => { + if (done) { + intentState.streamReader = null; + return; + } + + if (this._transport.destroyed) { + return; + } + + this._renderPageChunk(value, intentState); + + pump(); + }, reason => { + intentState.streamReader = null; + + if (this._transport.destroyed) { + return; + } + + if (intentState.operatorList) { + intentState.operatorList.lastChunk = true; + + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + + this._tryCleanup(); + } + + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(reason); + } else if (intentState.opListReadCapability) { + intentState.opListReadCapability.reject(reason); + } else { + throw reason; + } + }); + }; + + pump(); + } + + _abortOperatorList({ + intentState, + reason, + force = false + }) { + (0, _util.assert)(reason instanceof Error || typeof reason === "object" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.'); + + if (!intentState.streamReader) { + return; + } + + if (!force) { + if (intentState.renderTasks.size > 0) { + return; + } + + if (reason instanceof _display_utils.RenderingCancelledException) { + intentState.streamReaderCancelTimeout = setTimeout(() => { + this._abortOperatorList({ + intentState, + reason, + force: true + }); + + intentState.streamReaderCancelTimeout = null; + }, RENDERING_CANCELLED_TIMEOUT); + return; + } + } + + intentState.streamReader.cancel(new _util.AbortException(reason?.message)); + intentState.streamReader = null; + + if (this._transport.destroyed) { + return; + } + + for (const [intent, curIntentState] of this._intentStates) { + if (curIntentState === intentState) { + this._intentStates.delete(intent); + + break; + } + } + + this.cleanup(); + } + + get stats() { + return this._stats; + } + +} exports.PDFPageProxy = PDFPageProxy; -var LoopbackPort = -/*#__PURE__*/ -function () { - function LoopbackPort() { - var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - _classCallCheck(this, LoopbackPort); - +class LoopbackPort { + constructor() { this._listeners = []; - this._defer = defer; this._deferred = Promise.resolve(undefined); } - _createClass(LoopbackPort, [{ - key: "postMessage", - value: function postMessage(obj, transfers) { - var _this6 = this; + postMessage(obj, transfers) { + function cloneValue(value) { + if (typeof value !== "object" || value === null) { + return value; + } - function cloneValue(value) { - if (_typeof(value) !== 'object' || value === null) { - return value; + if (cloned.has(value)) { + return cloned.get(value); + } + + let buffer, result; + + if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { + if (transfers?.includes(buffer)) { + result = new value.constructor(buffer, value.byteOffset, value.byteLength); + } else { + result = new value.constructor(value); } - if (cloned.has(value)) { - return cloned.get(value); - } + cloned.set(value, result); + return result; + } - var buffer, result; - - if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) { - var transferable = transfers && transfers.includes(buffer); - - if (value === buffer) { - result = value; - } else if (transferable) { - result = new value.constructor(buffer, value.byteOffset, value.byteLength); - } else { - result = new value.constructor(value); - } - - cloned.set(value, result); - return result; - } - - result = Array.isArray(value) ? [] : {}; + if (value instanceof Map) { + result = new Map(); cloned.set(value, result); - for (var i in value) { - var desc = void 0, - p = value; - - while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { - p = Object.getPrototypeOf(p); - } - - if (typeof desc.value === 'undefined' || typeof desc.value === 'function') { - continue; - } - - result[i] = cloneValue(desc.value); + for (const [key, val] of value) { + result.set(key, cloneValue(val)); } return result; } - if (!this._defer) { - this._listeners.forEach(function (listener) { - listener.call(this, { - data: obj - }); - }, this); + if (value instanceof Set) { + result = new Set(); + cloned.set(value, result); - return; + for (const val of value) { + result.add(cloneValue(val)); + } + + return result; } - var cloned = new WeakMap(); - var e = { - data: cloneValue(obj) - }; + if (value instanceof URL) { + throw new Error(`LoopbackPort.postMessage - cannot clone: ${value}`); + } - this._deferred.then(function () { - _this6._listeners.forEach(function (listener) { - listener.call(this, e); - }, _this6); - }); - } - }, { - key: "addEventListener", - value: function addEventListener(name, listener) { - this._listeners.push(listener); - } - }, { - key: "removeEventListener", - value: function removeEventListener(name, listener) { - var i = this._listeners.indexOf(listener); + result = Array.isArray(value) ? [] : Object.create(null); + cloned.set(value, result); - this._listeners.splice(i, 1); - } - }, { - key: "terminate", - value: function terminate() { - this._listeners.length = 0; - } - }]); + for (const i in value) { + let desc, + p = value; - return LoopbackPort; -}(); + while (!(desc = Object.getOwnPropertyDescriptor(p, i))) { + p = Object.getPrototypeOf(p); + } + + if (typeof desc.value === "undefined") { + continue; + } + + if (typeof desc.value === "function") { + if (value.hasOwnProperty?.(i)) { + throw new Error(`LoopbackPort.postMessage - cannot clone: ${value[i]}`); + } + + continue; + } + + result[i] = cloneValue(desc.value); + } + + return result; + } + + const cloned = new WeakMap(); + const event = { + data: cloneValue(obj) + }; + + this._deferred.then(() => { + for (const listener of this._listeners) { + listener.call(this, event); + } + }); + } + + addEventListener(name, listener) { + this._listeners.push(listener); + } + + removeEventListener(name, listener) { + const i = this._listeners.indexOf(listener); + + this._listeners.splice(i, 1); + } + + terminate() { + this._listeners.length = 0; + } + +} exports.LoopbackPort = LoopbackPort; -var PDFWorker = function PDFWorkerClosure() { - var pdfWorkerPorts = new WeakMap(); - var nextFakeWorkerId = 0; - var fakeWorkerFilesLoadedCapability; +const PDFWorker = function PDFWorkerClosure() { + const pdfWorkerPorts = new WeakMap(); + let isWorkerDisabled = false; + let fallbackWorkerSrc; + let nextFakeWorkerId = 0; + let fakeWorkerCapability; - function _getWorkerSrc() { + if (_is_node.isNodeJS && typeof require === "function") { + isWorkerDisabled = true; + fallbackWorkerSrc = "./pdf.worker.js"; + } else if (typeof document === "object" && "currentScript" in document) { + const pdfjsFilePath = document.currentScript?.src; + + if (pdfjsFilePath) { + fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2"); + } + } + + function getWorkerSrc() { if (_worker_options.GlobalWorkerOptions.workerSrc) { return _worker_options.GlobalWorkerOptions.workerSrc; } - if (typeof fallbackWorkerSrc !== 'undefined') { + if (typeof fallbackWorkerSrc !== "undefined") { + if (!_is_node.isNodeJS) { + (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'); + } + return fallbackWorkerSrc; } @@ -10973,66 +2741,60 @@ var PDFWorker = function PDFWorkerClosure() { } function getMainThreadWorkerMessageHandler() { + let mainWorkerMessageHandler; + try { - if (typeof window !== 'undefined') { - return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler; - } + mainWorkerMessageHandler = globalThis.pdfjsWorker?.WorkerMessageHandler; } catch (ex) {} - return null; + return mainWorkerMessageHandler || null; } function setupFakeWorkerGlobal() { - if (fakeWorkerFilesLoadedCapability) { - return fakeWorkerFilesLoadedCapability.promise; + if (fakeWorkerCapability) { + return fakeWorkerCapability.promise; } - fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)(); - var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); + fakeWorkerCapability = (0, _util.createPromiseCapability)(); - if (mainWorkerMessageHandler) { - fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler); - return fakeWorkerFilesLoadedCapability.promise; - } + const loader = async function () { + const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); - var loader = fakeWorkerFilesLoader || function () { - return (0, _display_utils.loadScript)(_getWorkerSrc()).then(function () { - return window.pdfjsWorker.WorkerMessageHandler; - }); + if (mainWorkerMessageHandler) { + return mainWorkerMessageHandler; + } + + if (_is_node.isNodeJS && typeof require === "function") { + const worker = eval("require")(getWorkerSrc()); + return worker.WorkerMessageHandler; + } + + await (0, _display_utils.loadScript)(getWorkerSrc()); + return window.pdfjsWorker.WorkerMessageHandler; }; - loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject); - return fakeWorkerFilesLoadedCapability.promise; + loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject); + return fakeWorkerCapability.promise; } function createCDNWrapper(url) { - var wrapper = 'importScripts(\'' + url + '\');'; - return _util.URL.createObjectURL(new Blob([wrapper])); + const wrapper = "importScripts('" + url + "');"; + return URL.createObjectURL(new Blob([wrapper])); } - var PDFWorker = - /*#__PURE__*/ - function () { - function PDFWorker() { - var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref6$name = _ref6.name, - name = _ref6$name === void 0 ? null : _ref6$name, - _ref6$port = _ref6.port, - port = _ref6$port === void 0 ? null : _ref6$port, - _ref6$postMessageTran = _ref6.postMessageTransfers, - postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran, - _ref6$verbosity = _ref6.verbosity, - verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity; - - _classCallCheck(this, PDFWorker); - + class PDFWorker { + constructor({ + name = null, + port = null, + verbosity = (0, _util.getVerbosityLevel)() + } = {}) { if (port && pdfWorkerPorts.has(port)) { - throw new Error('Cannot use more than one PDFWorker per port'); + throw new Error("Cannot use more than one PDFWorker per port"); } this.name = name; this.destroyed = false; - this.postMessageTransfers = postMessageTransfers !== false; + this.postMessageTransfers = true; this.verbosity = verbosity; this._readyCapability = (0, _util.createPromiseCapability)(); this._port = null; @@ -11050,221 +2812,206 @@ var PDFWorker = function PDFWorkerClosure() { this._initialize(); } - _createClass(PDFWorker, [{ - key: "_initializeFromPort", - value: function _initializeFromPort(port) { - this._port = port; - this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port); + get promise() { + return this._readyCapability.promise; + } - this._messageHandler.on('ready', function () {}); + get port() { + return this._port; + } - this._readyCapability.resolve(); - } - }, { - key: "_initialize", - value: function _initialize() { - var _this7 = this; + get messageHandler() { + return this._messageHandler; + } - if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { - var workerSrc = _getWorkerSrc(); + _initializeFromPort(port) { + this._port = port; + this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); - try { - if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { - workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href); + this._messageHandler.on("ready", function () {}); + + this._readyCapability.resolve(); + } + + _initialize() { + if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { + let workerSrc = getWorkerSrc(); + + try { + if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) { + workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href); + } + + const worker = new Worker(workerSrc); + const messageHandler = new _message_handler.MessageHandler("main", "worker", worker); + + const terminateEarly = () => { + worker.removeEventListener("error", onWorkerError); + messageHandler.destroy(); + worker.terminate(); + + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + } else { + this._setupFakeWorker(); + } + }; + + const onWorkerError = () => { + if (!this._webWorker) { + terminateEarly(); + } + }; + + worker.addEventListener("error", onWorkerError); + messageHandler.on("test", data => { + worker.removeEventListener("error", onWorkerError); + + if (this.destroyed) { + terminateEarly(); + return; } - var worker = new Worker(workerSrc); - var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker); + if (data) { + this._messageHandler = messageHandler; + this._port = worker; + this._webWorker = worker; + + if (!data.supportTransfers) { + this.postMessageTransfers = false; + } + + this._readyCapability.resolve(); + + messageHandler.send("configure", { + verbosity: this.verbosity + }); + } else { + this._setupFakeWorker(); - var terminateEarly = function terminateEarly() { - worker.removeEventListener('error', onWorkerError); messageHandler.destroy(); worker.terminate(); + } + }); + messageHandler.on("ready", data => { + worker.removeEventListener("error", onWorkerError); - if (_this7.destroyed) { - _this7._readyCapability.reject(new Error('Worker was destroyed')); - } else { - _this7._setupFakeWorker(); - } - }; + if (this.destroyed) { + terminateEarly(); + return; + } - var onWorkerError = function onWorkerError() { - if (!_this7._webWorker) { - terminateEarly(); - } - }; + try { + sendTest(); + } catch (e) { + this._setupFakeWorker(); + } + }); - worker.addEventListener('error', onWorkerError); - messageHandler.on('test', function (data) { - worker.removeEventListener('error', onWorkerError); + const sendTest = () => { + const testObj = new Uint8Array([this.postMessageTransfers ? 255 : 0]); - if (_this7.destroyed) { - terminateEarly(); - return; - } + try { + messageHandler.send("test", testObj, [testObj.buffer]); + } catch (ex) { + (0, _util.warn)("Cannot use postMessage transfers."); + testObj[0] = 0; + messageHandler.send("test", testObj); + } + }; - if (data && data.supportTypedArray) { - _this7._messageHandler = messageHandler; - _this7._port = worker; - _this7._webWorker = worker; - - if (!data.supportTransfers) { - _this7.postMessageTransfers = false; - } - - _this7._readyCapability.resolve(); - - messageHandler.send('configure', { - verbosity: _this7.verbosity - }); - } else { - _this7._setupFakeWorker(); - - messageHandler.destroy(); - worker.terminate(); - } - }); - messageHandler.on('ready', function (data) { - worker.removeEventListener('error', onWorkerError); - - if (_this7.destroyed) { - terminateEarly(); - return; - } - - try { - sendTest(); - } catch (e) { - _this7._setupFakeWorker(); - } - }); - - var sendTest = function sendTest() { - var testObj = new Uint8Array([_this7.postMessageTransfers ? 255 : 0]); - - try { - messageHandler.send('test', testObj, [testObj.buffer]); - } catch (ex) { - (0, _util.info)('Cannot use postMessage transfers'); - testObj[0] = 0; - messageHandler.send('test', testObj); - } - }; - - sendTest(); - return; - } catch (e) { - (0, _util.info)('The worker has been disabled.'); - } + sendTest(); + return; + } catch (e) { + (0, _util.info)("The worker has been disabled."); } - - this._setupFakeWorker(); } - }, { - key: "_setupFakeWorker", - value: function _setupFakeWorker() { - var _this8 = this; - if (!isWorkerDisabled) { - (0, _util.warn)('Setting up fake worker.'); - isWorkerDisabled = true; + this._setupFakeWorker(); + } + + _setupFakeWorker() { + if (!isWorkerDisabled) { + (0, _util.warn)("Setting up fake worker."); + isWorkerDisabled = true; + } + + setupFakeWorkerGlobal().then(WorkerMessageHandler => { + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + + return; } - setupFakeWorkerGlobal().then(function (WorkerMessageHandler) { - if (_this8.destroyed) { - _this8._readyCapability.reject(new Error('Worker was destroyed')); + const port = new LoopbackPort(); + this._port = port; + const id = "fake" + nextFakeWorkerId++; + const workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port); + WorkerMessageHandler.setup(workerHandler, port); + const messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port); + this._messageHandler = messageHandler; - return; - } + this._readyCapability.resolve(); - var port = new LoopbackPort(); - _this8._port = port; - var id = 'fake' + nextFakeWorkerId++; - var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port); - WorkerMessageHandler.setup(workerHandler, port); - var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port); - _this8._messageHandler = messageHandler; - - _this8._readyCapability.resolve(); - })["catch"](function (reason) { - _this8._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\"."))); + messageHandler.send("configure", { + verbosity: this.verbosity }); + }).catch(reason => { + this._readyCapability.reject(new Error(`Setting up fake worker failed: "${reason.message}".`)); + }); + } + + destroy() { + this.destroyed = true; + + if (this._webWorker) { + this._webWorker.terminate(); + + this._webWorker = null; } - }, { - key: "destroy", - value: function destroy() { - this.destroyed = true; - if (this._webWorker) { - this._webWorker.terminate(); + pdfWorkerPorts.delete(this._port); + this._port = null; - this._webWorker = null; - } + if (this._messageHandler) { + this._messageHandler.destroy(); - pdfWorkerPorts["delete"](this._port); - this._port = null; - - if (this._messageHandler) { - this._messageHandler.destroy(); - - this._messageHandler = null; - } + this._messageHandler = null; } - }, { - key: "promise", - get: function get() { - return this._readyCapability.promise; - } - }, { - key: "port", - get: function get() { - return this._port; - } - }, { - key: "messageHandler", - get: function get() { - return this._messageHandler; - } - }], [{ - key: "fromPort", - value: function fromPort(params) { - if (!params || !params.port) { - throw new Error('PDFWorker.fromPort - invalid method signature.'); - } + } - if (pdfWorkerPorts.has(params.port)) { - return pdfWorkerPorts.get(params.port); - } - - return new PDFWorker(params); + static fromPort(params) { + if (!params || !params.port) { + throw new Error("PDFWorker.fromPort - invalid method signature."); } - }, { - key: "getWorkerSrc", - value: function getWorkerSrc() { - return _getWorkerSrc(); - } - }]); - return PDFWorker; - }(); + if (pdfWorkerPorts.has(params.port)) { + return pdfWorkerPorts.get(params.port); + } + + return new PDFWorker(params); + } + + static getWorkerSrc() { + return getWorkerSrc(); + } + + } return PDFWorker; }(); exports.PDFWorker = PDFWorker; -var WorkerTransport = -/*#__PURE__*/ -function () { - function WorkerTransport(messageHandler, loadingTask, networkStream, params) { - _classCallCheck(this, WorkerTransport); - +class WorkerTransport { + constructor(messageHandler, loadingTask, networkStream, params) { this.messageHandler = messageHandler; this.loadingTask = loadingTask; this.commonObjs = new PDFObjects(); this.fontLoader = new _font_loader.FontLoader({ docId: loadingTask.docId, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this) + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + ownerDocument: params.ownerDocument }); this._params = params; this.CMapReaderFactory = new params.CMapReaderFactory({ @@ -11283,2723 +3030,1133 @@ function () { this.setupMessageHandler(); } - _createClass(WorkerTransport, [{ - key: "destroy", - value: function destroy() { - var _this9 = this; + get annotationStorage() { + return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage()); + } - if (this.destroyCapability) { - return this.destroyCapability.promise; - } - - this.destroyed = true; - this.destroyCapability = (0, _util.createPromiseCapability)(); - - if (this._passwordCapability) { - this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback')); - } - - var waitOn = []; - this.pageCache.forEach(function (page) { - if (page) { - waitOn.push(page._destroy()); - } - }); - this.pageCache.length = 0; - this.pagePromises.length = 0; - var terminated = this.messageHandler.sendWithPromise('Terminate', null); - waitOn.push(terminated); - Promise.all(waitOn).then(function () { - _this9.fontLoader.clear(); - - if (_this9._networkStream) { - _this9._networkStream.cancelAllRequests(); - } - - if (_this9.messageHandler) { - _this9.messageHandler.destroy(); - - _this9.messageHandler = null; - } - - _this9.destroyCapability.resolve(); - }, this.destroyCapability.reject); + destroy() { + if (this.destroyCapability) { return this.destroyCapability.promise; } - }, { - key: "setupMessageHandler", - value: function setupMessageHandler() { - var messageHandler = this.messageHandler, - loadingTask = this.loadingTask; - messageHandler.on('GetReader', function (data, sink) { - var _this10 = this; - (0, _util.assert)(this._networkStream); - this._fullReader = this._networkStream.getFullReader(); + this.destroyed = true; + this.destroyCapability = (0, _util.createPromiseCapability)(); - this._fullReader.onProgress = function (evt) { - _this10._lastProgress = { - loaded: evt.loaded, - total: evt.total - }; - }; - - sink.onPull = function () { - _this10._fullReader.read().then(function (_ref7) { - var value = _ref7.value, - done = _ref7.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - _this10._fullReader.cancel(reason); - }; - }, this); - messageHandler.on('ReaderHeadersReady', function (data) { - var _this11 = this; - - var headersCapability = (0, _util.createPromiseCapability)(); - var fullReader = this._fullReader; - fullReader.headersReady.then(function () { - if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { - if (_this11._lastProgress && loadingTask.onProgress) { - loadingTask.onProgress(_this11._lastProgress); - } - - fullReader.onProgress = function (evt) { - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: evt.loaded, - total: evt.total - }); - } - }; - } - - headersCapability.resolve({ - isStreamingSupported: fullReader.isStreamingSupported, - isRangeSupported: fullReader.isRangeSupported, - contentLength: fullReader.contentLength - }); - }, headersCapability.reject); - return headersCapability.promise; - }, this); - messageHandler.on('GetRangeReader', function (data, sink) { - (0, _util.assert)(this._networkStream); - - var rangeReader = this._networkStream.getRangeReader(data.begin, data.end); - - if (!rangeReader) { - sink.close(); - return; - } - - sink.onPull = function () { - rangeReader.read().then(function (_ref8) { - var value = _ref8.value, - done = _ref8.done; - - if (done) { - sink.close(); - return; - } - - (0, _util.assert)((0, _util.isArrayBuffer)(value)); - sink.enqueue(new Uint8Array(value), 1, [value]); - })["catch"](function (reason) { - sink.error(reason); - }); - }; - - sink.onCancel = function (reason) { - rangeReader.cancel(reason); - }; - }, this); - messageHandler.on('GetDoc', function (_ref9) { - var pdfInfo = _ref9.pdfInfo; - this._numPages = pdfInfo.numPages; - - loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); - }, this); - messageHandler.on('PasswordRequest', function (exception) { - var _this12 = this; - - this._passwordCapability = (0, _util.createPromiseCapability)(); - - if (loadingTask.onPassword) { - var updatePassword = function updatePassword(password) { - _this12._passwordCapability.resolve({ - password: password - }); - }; - - try { - loadingTask.onPassword(updatePassword, exception.code); - } catch (ex) { - this._passwordCapability.reject(ex); - } - } else { - this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); - } - - return this._passwordCapability.promise; - }, this); - messageHandler.on('PasswordException', function (exception) { - loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code)); - }, this); - messageHandler.on('InvalidPDF', function (exception) { - loadingTask._capability.reject(new _util.InvalidPDFException(exception.message)); - }, this); - messageHandler.on('MissingPDF', function (exception) { - loadingTask._capability.reject(new _util.MissingPDFException(exception.message)); - }, this); - messageHandler.on('UnexpectedResponse', function (exception) { - loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status)); - }, this); - messageHandler.on('UnknownError', function (exception) { - loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details)); - }, this); - messageHandler.on('DataLoaded', function (data) { - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.length, - total: data.length - }); - } - - this.downloadInfoCapability.resolve(data); - }, this); - messageHandler.on('StartRenderPage', function (data) { - if (this.destroyed) { - return; - } - - var page = this.pageCache[data.pageIndex]; - - page._stats.timeEnd('Page Request'); - - page._startRenderPage(data.transparency, data.intent); - }, this); - messageHandler.on('RenderPageChunk', function (data) { - if (this.destroyed) { - return; - } - - var page = this.pageCache[data.pageIndex]; - - page._renderPageChunk(data.operatorList, data.intent); - }, this); - messageHandler.on('commonobj', function (data) { - var _this13 = this; - - if (this.destroyed) { - return; - } - - var _data = _slicedToArray(data, 3), - id = _data[0], - type = _data[1], - exportedData = _data[2]; - - if (this.commonObjs.has(id)) { - return; - } - - switch (type) { - case 'Font': - var params = this._params; - - if ('error' in exportedData) { - var exportedError = exportedData.error; - (0, _util.warn)("Error during font loading: ".concat(exportedError)); - this.commonObjs.resolve(id, exportedError); - break; - } - - var fontRegistry = null; - - if (params.pdfBug && _global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled) { - fontRegistry = { - registerFont: function registerFont(font, url) { - _global_scope["default"]['FontInspector'].fontAdded(font, url); - } - }; - } - - var font = new _font_loader.FontFaceObject(exportedData, { - isEvalSupported: params.isEvalSupported, - disableFontFace: params.disableFontFace, - ignoreErrors: params.ignoreErrors, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this), - fontRegistry: fontRegistry - }); - this.fontLoader.bind(font).then(function () { - _this13.commonObjs.resolve(id, font); - }, function (reason) { - messageHandler.sendWithPromise('FontFallback', { - id: id - })["finally"](function () { - _this13.commonObjs.resolve(id, font); - }); - }); - break; - - case 'FontPath': - case 'FontType3Res': - this.commonObjs.resolve(id, exportedData); - break; - - default: - throw new Error("Got unknown common object type ".concat(type)); - } - }, this); - messageHandler.on('obj', function (data) { - if (this.destroyed) { - return undefined; - } - - var _data2 = _slicedToArray(data, 4), - id = _data2[0], - pageIndex = _data2[1], - type = _data2[2], - imageData = _data2[3]; - - var pageProxy = this.pageCache[pageIndex]; - - if (pageProxy.objs.has(id)) { - return undefined; - } - - switch (type) { - case 'JpegStream': - return new Promise(function (resolve, reject) { - var img = new Image(); - - img.onload = function () { - resolve(img); - }; - - img.onerror = function () { - reject(new Error('Error during JPEG image loading')); - (0, _display_utils.releaseImageResources)(img); - }; - - img.src = imageData; - }).then(function (img) { - pageProxy.objs.resolve(id, img); - }); - - case 'Image': - pageProxy.objs.resolve(id, imageData); - var MAX_IMAGE_SIZE_TO_STORE = 8000000; - - if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) { - pageProxy.cleanupAfterRender = true; - } - - break; - - default: - throw new Error("Got unknown object type ".concat(type)); - } - - return undefined; - }, this); - messageHandler.on('DocProgress', function (data) { - if (this.destroyed) { - return; - } - - if (loadingTask.onProgress) { - loadingTask.onProgress({ - loaded: data.loaded, - total: data.total - }); - } - }, this); - messageHandler.on('PageError', function (data) { - if (this.destroyed) { - return; - } - - var page = this.pageCache[data.pageIndex]; - var intentState = page.intentStates[data.intent]; - - if (intentState.displayReadyCapability) { - intentState.displayReadyCapability.reject(new Error(data.error)); - } else { - throw new Error(data.error); - } - - if (intentState.operatorList) { - intentState.operatorList.lastChunk = true; - - for (var i = 0; i < intentState.renderTasks.length; i++) { - intentState.renderTasks[i].operatorListChanged(); - } - } - }, this); - messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this); - messageHandler.on('JpegDecode', function (data) { - if (this.destroyed) { - return Promise.reject(new Error('Worker was destroyed')); - } - - if (typeof document === 'undefined') { - return Promise.reject(new Error('"document" is not defined.')); - } - - var _data3 = _slicedToArray(data, 2), - imageUrl = _data3[0], - components = _data3[1]; - - if (components !== 3 && components !== 1) { - return Promise.reject(new Error('Only 3 components or 1 component can be returned')); - } - - return new Promise(function (resolve, reject) { - var img = new Image(); - - img.onload = function () { - var width = img.width, - height = img.height; - var size = width * height; - var rgbaLength = size * 4; - var buf = new Uint8ClampedArray(size * components); - var tmpCanvas = document.createElement('canvas'); - tmpCanvas.width = width; - tmpCanvas.height = height; - var tmpCtx = tmpCanvas.getContext('2d'); - tmpCtx.drawImage(img, 0, 0); - var data = tmpCtx.getImageData(0, 0, width, height).data; - - if (components === 3) { - for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) { - buf[j] = data[i]; - buf[j + 1] = data[i + 1]; - buf[j + 2] = data[i + 2]; - } - } else if (components === 1) { - for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) { - buf[_j] = data[_i2]; - } - } - - resolve({ - data: buf, - width: width, - height: height - }); - (0, _display_utils.releaseImageResources)(img); - tmpCanvas.width = 0; - tmpCanvas.height = 0; - tmpCanvas = null; - tmpCtx = null; - }; - - img.onerror = function () { - reject(new Error('JpegDecode failed to load image')); - (0, _display_utils.releaseImageResources)(img); - }; - - img.src = imageUrl; - }); - }, this); - messageHandler.on('FetchBuiltInCMap', function (data) { - if (this.destroyed) { - return Promise.reject(new Error('Worker was destroyed')); - } - - return this.CMapReaderFactory.fetch({ - name: data.name - }); - }, this); + if (this._passwordCapability) { + this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); } - }, { - key: "_onUnsupportedFeature", - value: function _onUnsupportedFeature(_ref10) { - var featureId = _ref10.featureId; + const waitOn = []; + + for (const page of this.pageCache) { + if (page) { + waitOn.push(page._destroy()); + } + } + + this.pageCache.length = 0; + this.pagePromises.length = 0; + + if (this.hasOwnProperty("annotationStorage")) { + this.annotationStorage.resetModified(); + } + + const terminated = this.messageHandler.sendWithPromise("Terminate", null); + waitOn.push(terminated); + Promise.all(waitOn).then(() => { + this.commonObjs.clear(); + this.fontLoader.clear(); + this._hasJSActionsPromise = null; + + if (this._networkStream) { + this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); + } + + if (this.messageHandler) { + this.messageHandler.destroy(); + this.messageHandler = null; + } + + this.destroyCapability.resolve(); + }, this.destroyCapability.reject); + return this.destroyCapability.promise; + } + + setupMessageHandler() { + const { + messageHandler, + loadingTask + } = this; + messageHandler.on("GetReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available."); + this._fullReader = this._networkStream.getFullReader(); + + this._fullReader.onProgress = evt => { + this._lastProgress = { + loaded: evt.loaded, + total: evt.total + }; + }; + + sink.onPull = () => { + this._fullReader.read().then(function ({ + value, + done + }) { + if (done) { + sink.close(); + return; + } + + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + + sink.onCancel = reason => { + this._fullReader.cancel(reason); + + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + + throw readyReason; + }); + }; + }); + messageHandler.on("ReaderHeadersReady", data => { + const headersCapability = (0, _util.createPromiseCapability)(); + const fullReader = this._fullReader; + fullReader.headersReady.then(() => { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (this._lastProgress && loadingTask.onProgress) { + loadingTask.onProgress(this._lastProgress); + } + + fullReader.onProgress = evt => { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + }; + } + + headersCapability.resolve({ + isStreamingSupported: fullReader.isStreamingSupported, + isRangeSupported: fullReader.isRangeSupported, + contentLength: fullReader.contentLength + }); + }, headersCapability.reject); + return headersCapability.promise; + }); + messageHandler.on("GetRangeReader", (data, sink) => { + (0, _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available."); + + const rangeReader = this._networkStream.getRangeReader(data.begin, data.end); + + if (!rangeReader) { + sink.close(); + return; + } + + sink.onPull = () => { + rangeReader.read().then(function ({ + value, + done + }) { + if (done) { + sink.close(); + return; + } + + (0, _util.assert)((0, _util.isArrayBuffer)(value), "GetRangeReader - expected an ArrayBuffer."); + sink.enqueue(new Uint8Array(value), 1, [value]); + }).catch(reason => { + sink.error(reason); + }); + }; + + sink.onCancel = reason => { + rangeReader.cancel(reason); + sink.ready.catch(readyReason => { + if (this.destroyed) { + return; + } + + throw readyReason; + }); + }; + }); + messageHandler.on("GetDoc", ({ + pdfInfo + }) => { + this._numPages = pdfInfo.numPages; + + loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this)); + }); + messageHandler.on("DocException", function (ex) { + let reason; + + switch (ex.name) { + case "PasswordException": + reason = new _util.PasswordException(ex.message, ex.code); + break; + + case "InvalidPDFException": + reason = new _util.InvalidPDFException(ex.message); + break; + + case "MissingPDFException": + reason = new _util.MissingPDFException(ex.message); + break; + + case "UnexpectedResponseException": + reason = new _util.UnexpectedResponseException(ex.message, ex.status); + break; + + case "UnknownErrorException": + reason = new _util.UnknownErrorException(ex.message, ex.details); + break; + } + + if (!(reason instanceof Error)) { + const msg = "DocException - expected a valid Error."; + (0, _util.warn)(msg); + } + + loadingTask._capability.reject(reason); + }); + messageHandler.on("PasswordRequest", exception => { + this._passwordCapability = (0, _util.createPromiseCapability)(); + + if (loadingTask.onPassword) { + const updatePassword = password => { + this._passwordCapability.resolve({ + password + }); + }; + + try { + loadingTask.onPassword(updatePassword, exception.code); + } catch (ex) { + this._passwordCapability.reject(ex); + } + } else { + this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code)); + } + + return this._passwordCapability.promise; + }); + messageHandler.on("DataLoaded", data => { + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.length, + total: data.length + }); + } + + this.downloadInfoCapability.resolve(data); + }); + messageHandler.on("StartRenderPage", data => { if (this.destroyed) { return; } - if (this.loadingTask.onUnsupportedFeature) { - this.loadingTask.onUnsupportedFeature(featureId); - } - } - }, { - key: "getData", - value: function getData() { - return this.messageHandler.sendWithPromise('GetData', null); - } - }, { - key: "getPage", - value: function getPage(pageNumber) { - var _this14 = this; + const page = this.pageCache[data.pageIndex]; - if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { - return Promise.reject(new Error('Invalid page request')); + page._startRenderPage(data.transparency, data.intent); + }); + messageHandler.on("commonobj", data => { + if (this.destroyed) { + return; } - var pageIndex = pageNumber - 1; + const [id, type, exportedData] = data; - if (pageIndex in this.pagePromises) { - return this.pagePromises[pageIndex]; + if (this.commonObjs.has(id)) { + return; } - var promise = this.messageHandler.sendWithPromise('GetPage', { - pageIndex: pageIndex - }).then(function (pageInfo) { - if (_this14.destroyed) { - throw new Error('Transport destroyed'); - } + switch (type) { + case "Font": + const params = this._params; - var page = new PDFPageProxy(pageIndex, pageInfo, _this14, _this14._params.pdfBug); - _this14.pageCache[pageIndex] = page; - return page; - }); - this.pagePromises[pageIndex] = promise; - return promise; - } - }, { - key: "getPageIndex", - value: function getPageIndex(ref) { - return this.messageHandler.sendWithPromise('GetPageIndex', { - ref: ref - })["catch"](function (reason) { - return Promise.reject(new Error(reason)); - }); - } - }, { - key: "getAnnotations", - value: function getAnnotations(pageIndex, intent) { - return this.messageHandler.sendWithPromise('GetAnnotations', { - pageIndex: pageIndex, - intent: intent - }); - } - }, { - key: "getDestinations", - value: function getDestinations() { - return this.messageHandler.sendWithPromise('GetDestinations', null); - } - }, { - key: "getDestination", - value: function getDestination(id) { - if (typeof id !== 'string') { - return Promise.reject(new Error('Invalid destination request.')); - } - - return this.messageHandler.sendWithPromise('GetDestination', { - id: id - }); - } - }, { - key: "getPageLabels", - value: function getPageLabels() { - return this.messageHandler.sendWithPromise('GetPageLabels', null); - } - }, { - key: "getPageLayout", - value: function getPageLayout() { - return this.messageHandler.sendWithPromise('GetPageLayout', null); - } - }, { - key: "getPageMode", - value: function getPageMode() { - return this.messageHandler.sendWithPromise('GetPageMode', null); - } - }, { - key: "getViewerPreferences", - value: function getViewerPreferences() { - return this.messageHandler.sendWithPromise('GetViewerPreferences', null); - } - }, { - key: "getOpenActionDestination", - value: function getOpenActionDestination() { - return this.messageHandler.sendWithPromise('GetOpenActionDestination', null); - } - }, { - key: "getAttachments", - value: function getAttachments() { - return this.messageHandler.sendWithPromise('GetAttachments', null); - } - }, { - key: "getJavaScript", - value: function getJavaScript() { - return this.messageHandler.sendWithPromise('GetJavaScript', null); - } - }, { - key: "getOutline", - value: function getOutline() { - return this.messageHandler.sendWithPromise('GetOutline', null); - } - }, { - key: "getPermissions", - value: function getPermissions() { - return this.messageHandler.sendWithPromise('GetPermissions', null); - } - }, { - key: "getMetadata", - value: function getMetadata() { - var _this15 = this; - - return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) { - return { - info: results[0], - metadata: results[1] ? new _metadata.Metadata(results[1]) : null, - contentDispositionFilename: _this15._fullReader ? _this15._fullReader.filename : null - }; - }); - } - }, { - key: "getStats", - value: function getStats() { - return this.messageHandler.sendWithPromise('GetStats', null); - } - }, { - key: "startCleanup", - value: function startCleanup() { - var _this16 = this; - - this.messageHandler.sendWithPromise('Cleanup', null).then(function () { - for (var i = 0, ii = _this16.pageCache.length; i < ii; i++) { - var page = _this16.pageCache[i]; - - if (page) { - page.cleanup(); + if ("error" in exportedData) { + const exportedError = exportedData.error; + (0, _util.warn)(`Error during font loading: ${exportedError}`); + this.commonObjs.resolve(id, exportedError); + break; } + + let fontRegistry = null; + + if (params.pdfBug && globalThis.FontInspector?.enabled) { + fontRegistry = { + registerFont(font, url) { + globalThis.FontInspector.fontAdded(font, url); + } + + }; + } + + const font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + ignoreErrors: params.ignoreErrors, + onUnsupportedFeature: this._onUnsupportedFeature.bind(this), + fontRegistry + }); + this.fontLoader.bind(font).catch(reason => { + return messageHandler.sendWithPromise("FontFallback", { + id + }); + }).finally(() => { + if (!params.fontExtraProperties && font.data) { + font.data = null; + } + + this.commonObjs.resolve(id, font); + }); + break; + + case "FontPath": + case "Image": + this.commonObjs.resolve(id, exportedData); + break; + + default: + throw new Error(`Got unknown common object type ${type}`); + } + }); + messageHandler.on("obj", data => { + if (this.destroyed) { + return undefined; + } + + const [id, pageIndex, type, imageData] = data; + const pageProxy = this.pageCache[pageIndex]; + + if (pageProxy.objs.has(id)) { + return undefined; + } + + switch (type) { + case "Image": + pageProxy.objs.resolve(id, imageData); + const MAX_IMAGE_SIZE_TO_STORE = 8000000; + + if (imageData?.data?.length > MAX_IMAGE_SIZE_TO_STORE) { + pageProxy.cleanupAfterRender = true; + } + + break; + + default: + throw new Error(`Got unknown object type ${type}`); + } + + return undefined; + }); + messageHandler.on("DocProgress", data => { + if (this.destroyed) { + return; + } + + if (loadingTask.onProgress) { + loadingTask.onProgress({ + loaded: data.loaded, + total: data.total + }); + } + }); + messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); + messageHandler.on("FetchBuiltInCMap", (data, sink) => { + if (this.destroyed) { + sink.error(new Error("Worker was destroyed")); + return; + } + + let fetched = false; + + sink.onPull = () => { + if (fetched) { + sink.close(); + return; } - _this16.commonObjs.clear(); + fetched = true; + this.CMapReaderFactory.fetch(data).then(function (builtInCMap) { + sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]); + }).catch(function (reason) { + sink.error(reason); + }); + }; + }); + } - _this16.fontLoader.clear(); - }); + _onUnsupportedFeature({ + featureId + }) { + if (this.destroyed) { + return; } - }, { - key: "loadingParams", - get: function get() { - var params = this._params; - return (0, _util.shadow)(this, 'loadingParams', { - disableAutoFetch: params.disableAutoFetch, - disableCreateObjectURL: params.disableCreateObjectURL, - disableFontFace: params.disableFontFace, - nativeImageDecoderSupport: params.nativeImageDecoderSupport - }); + + if (this.loadingTask.onUnsupportedFeature) { + this.loadingTask.onUnsupportedFeature(featureId); } - }]); + } - return WorkerTransport; -}(); + getData() { + return this.messageHandler.sendWithPromise("GetData", null); + } -var PDFObjects = -/*#__PURE__*/ -function () { - function PDFObjects() { - _classCallCheck(this, PDFObjects); + getPage(pageNumber) { + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { + return Promise.reject(new Error("Invalid page request")); + } + const pageIndex = pageNumber - 1; + + if (pageIndex in this.pagePromises) { + return this.pagePromises[pageIndex]; + } + + const promise = this.messageHandler.sendWithPromise("GetPage", { + pageIndex + }).then(pageInfo => { + if (this.destroyed) { + throw new Error("Transport destroyed"); + } + + const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug); + this.pageCache[pageIndex] = page; + return page; + }); + this.pagePromises[pageIndex] = promise; + return promise; + } + + getPageIndex(ref) { + return this.messageHandler.sendWithPromise("GetPageIndex", { + ref + }).catch(function (reason) { + return Promise.reject(new Error(reason)); + }); + } + + getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise("GetAnnotations", { + pageIndex, + intent + }); + } + + saveDocument() { + return this.messageHandler.sendWithPromise("SaveDocument", { + numPages: this._numPages, + annotationStorage: this.annotationStorage.serializable, + filename: this._fullReader?.filename ?? null + }).finally(() => { + this.annotationStorage.resetModified(); + }); + } + + getFieldObjects() { + return this.messageHandler.sendWithPromise("GetFieldObjects", null); + } + + hasJSActions() { + return this._hasJSActionsPromise || (this._hasJSActionsPromise = this.messageHandler.sendWithPromise("HasJSActions", null)); + } + + getCalculationOrderIds() { + return this.messageHandler.sendWithPromise("GetCalculationOrderIds", null); + } + + getDestinations() { + return this.messageHandler.sendWithPromise("GetDestinations", null); + } + + getDestination(id) { + if (typeof id !== "string") { + return Promise.reject(new Error("Invalid destination request.")); + } + + return this.messageHandler.sendWithPromise("GetDestination", { + id + }); + } + + getPageLabels() { + return this.messageHandler.sendWithPromise("GetPageLabels", null); + } + + getPageLayout() { + return this.messageHandler.sendWithPromise("GetPageLayout", null); + } + + getPageMode() { + return this.messageHandler.sendWithPromise("GetPageMode", null); + } + + getViewerPreferences() { + return this.messageHandler.sendWithPromise("GetViewerPreferences", null); + } + + getOpenAction() { + return this.messageHandler.sendWithPromise("GetOpenAction", null); + } + + getAttachments() { + return this.messageHandler.sendWithPromise("GetAttachments", null); + } + + getJavaScript() { + return this.messageHandler.sendWithPromise("GetJavaScript", null); + } + + getDocJSActions() { + return this.messageHandler.sendWithPromise("GetDocJSActions", null); + } + + getPageJSActions(pageIndex) { + return this.messageHandler.sendWithPromise("GetPageJSActions", { + pageIndex + }); + } + + getPageXfa(pageIndex) { + return this.messageHandler.sendWithPromise("GetPageXfa", { + pageIndex + }); + } + + getStructTree(pageIndex) { + return this.messageHandler.sendWithPromise("GetStructTree", { + pageIndex + }); + } + + getOutline() { + return this.messageHandler.sendWithPromise("GetOutline", null); + } + + getOptionalContentConfig() { + return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(results => { + return new _optional_content_config.OptionalContentConfig(results); + }); + } + + getPermissions() { + return this.messageHandler.sendWithPromise("GetPermissions", null); + } + + getMetadata() { + return this.messageHandler.sendWithPromise("GetMetadata", null).then(results => { + return { + info: results[0], + metadata: results[1] ? new _metadata.Metadata(results[1]) : null, + contentDispositionFilename: this._fullReader?.filename ?? null, + contentLength: this._fullReader?.contentLength ?? null + }; + }); + } + + getMarkInfo() { + return this.messageHandler.sendWithPromise("GetMarkInfo", null); + } + + getStats() { + return this.messageHandler.sendWithPromise("GetStats", null); + } + + async startCleanup(keepLoadedFonts = false) { + await this.messageHandler.sendWithPromise("Cleanup", null); + + if (this.destroyed) { + return; + } + + for (let i = 0, ii = this.pageCache.length; i < ii; i++) { + const page = this.pageCache[i]; + + if (!page) { + continue; + } + + const cleanupSuccessful = page.cleanup(); + + if (!cleanupSuccessful) { + throw new Error(`startCleanup: Page ${i + 1} is currently rendering.`); + } + } + + this.commonObjs.clear(); + + if (!keepLoadedFonts) { + this.fontLoader.clear(); + } + + this._hasJSActionsPromise = null; + } + + get loadingParams() { + const params = this._params; + return (0, _util.shadow)(this, "loadingParams", { + disableAutoFetch: params.disableAutoFetch, + disableFontFace: params.disableFontFace + }); + } + +} + +class PDFObjects { + constructor() { this._objs = Object.create(null); } - _createClass(PDFObjects, [{ - key: "_ensureObj", - value: function _ensureObj(objId) { - if (this._objs[objId]) { - return this._objs[objId]; - } - - return this._objs[objId] = { - capability: (0, _util.createPromiseCapability)(), - data: null, - resolved: false - }; + _ensureObj(objId) { + if (this._objs[objId]) { + return this._objs[objId]; } - }, { - key: "get", - value: function get(objId) { - var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - if (callback) { - this._ensureObj(objId).capability.promise.then(callback); + return this._objs[objId] = { + capability: (0, _util.createPromiseCapability)(), + data: null, + resolved: false + }; + } - return null; - } + get(objId, callback = null) { + if (callback) { + this._ensureObj(objId).capability.promise.then(callback); - var obj = this._objs[objId]; - - if (!obj || !obj.resolved) { - throw new Error("Requesting object that isn't resolved yet ".concat(objId, ".")); - } - - return obj.data; + return null; } - }, { - key: "has", - value: function has(objId) { - var obj = this._objs[objId]; - return obj ? obj.resolved : false; + + const obj = this._objs[objId]; + + if (!obj || !obj.resolved) { + throw new Error(`Requesting object that isn't resolved yet ${objId}.`); } - }, { - key: "resolve", - value: function resolve(objId, data) { - var obj = this._ensureObj(objId); - obj.resolved = true; - obj.data = data; - obj.capability.resolve(data); - } - }, { - key: "clear", - value: function clear() { - for (var objId in this._objs) { - var data = this._objs[objId].data; + return obj.data; + } - if (typeof Image !== 'undefined' && data instanceof Image) { - (0, _display_utils.releaseImageResources)(data); - } - } + has(objId) { + const obj = this._objs[objId]; + return obj?.resolved || false; + } - this._objs = Object.create(null); - } - }]); + resolve(objId, data) { + const obj = this._ensureObj(objId); - return PDFObjects; -}(); + obj.resolved = true; + obj.data = data; + obj.capability.resolve(data); + } -var RenderTask = -/*#__PURE__*/ -function () { - function RenderTask(internalRenderTask) { - _classCallCheck(this, RenderTask); + clear() { + this._objs = Object.create(null); + } +} + +class RenderTask { + constructor(internalRenderTask) { this._internalRenderTask = internalRenderTask; this.onContinue = null; } - _createClass(RenderTask, [{ - key: "cancel", - value: function cancel() { - this._internalRenderTask.cancel(); - } - }, { - key: "then", - value: function then(onFulfilled, onRejected) { - (0, _display_utils.deprecated)('RenderTask.then method, use the `promise` getter instead.'); - return this.promise.then.apply(this.promise, arguments); - } - }, { - key: "promise", - get: function get() { - return this._internalRenderTask.capability.promise; - } - }]); + get promise() { + return this._internalRenderTask.capability.promise; + } - return RenderTask; -}(); + cancel() { + this._internalRenderTask.cancel(); + } -var InternalRenderTask = function InternalRenderTaskClosure() { - var canvasInRendering = new WeakSet(); +} - var InternalRenderTask = - /*#__PURE__*/ - function () { - function InternalRenderTask(_ref11) { - var callback = _ref11.callback, - params = _ref11.params, - objs = _ref11.objs, - commonObjs = _ref11.commonObjs, - operatorList = _ref11.operatorList, - pageNumber = _ref11.pageNumber, - canvasFactory = _ref11.canvasFactory, - webGLContext = _ref11.webGLContext, - _ref11$useRequestAnim = _ref11.useRequestAnimationFrame, - useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim, - _ref11$pdfBug = _ref11.pdfBug, - pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug; - - _classCallCheck(this, InternalRenderTask); +const InternalRenderTask = function InternalRenderTaskClosure() { + const canvasInRendering = new WeakSet(); + class InternalRenderTask { + constructor({ + callback, + params, + objs, + commonObjs, + operatorList, + pageIndex, + canvasFactory, + useRequestAnimationFrame = false, + pdfBug = false + }) { this.callback = callback; this.params = params; this.objs = objs; this.commonObjs = commonObjs; this.operatorListIdx = null; this.operatorList = operatorList; - this.pageNumber = pageNumber; + this._pageIndex = pageIndex; this.canvasFactory = canvasFactory; - this.webGLContext = webGLContext; this._pdfBug = pdfBug; this.running = false; this.graphicsReadyCallback = null; this.graphicsReady = false; - this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined'; + this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined"; this.cancelled = false; this.capability = (0, _util.createPromiseCapability)(); this.task = new RenderTask(this); + this._cancelBound = this.cancel.bind(this); this._continueBound = this._continue.bind(this); this._scheduleNextBound = this._scheduleNext.bind(this); this._nextBound = this._next.bind(this); this._canvas = params.canvasContext.canvas; } - _createClass(InternalRenderTask, [{ - key: "initializeGraphics", - value: function initializeGraphics() { - var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + get completed() { + return this.capability.promise.catch(function () {}); + } - if (this.cancelled) { - return; + initializeGraphics({ + transparency = false, + optionalContentConfig + }) { + if (this.cancelled) { + return; + } + + if (this._canvas) { + if (canvasInRendering.has(this._canvas)) { + throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed."); } - if (this._canvas) { - if (canvasInRendering.has(this._canvas)) { - throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.'); - } + canvasInRendering.add(this._canvas); + } - canvasInRendering.add(this._canvas); + if (this._pdfBug && globalThis.StepperManager?.enabled) { + this.stepper = globalThis.StepperManager.create(this._pageIndex); + this.stepper.init(this.operatorList); + this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); + } + + const { + canvasContext, + viewport, + transform, + imageLayer, + background + } = this.params; + this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig); + this.gfx.beginDrawing({ + transform, + viewport, + transparency, + background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + + if (this.graphicsReadyCallback) { + this.graphicsReadyCallback(); + } + } + + cancel(error = null) { + this.running = false; + this.cancelled = true; + + if (this.gfx) { + this.gfx.endDrawing(); + } + + if (this._canvas) { + canvasInRendering.delete(this._canvas); + } + + this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, "canvas")); + } + + operatorListChanged() { + if (!this.graphicsReady) { + if (!this.graphicsReadyCallback) { + this.graphicsReadyCallback = this._continueBound; } - if (this._pdfBug && _global_scope["default"].StepperManager && _global_scope["default"].StepperManager.enabled) { - this.stepper = _global_scope["default"].StepperManager.create(this.pageNumber - 1); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint(); - } + return; + } - var _this$params = this.params, - canvasContext = _this$params.canvasContext, - viewport = _this$params.viewport, - transform = _this$params.transform, - imageLayer = _this$params.imageLayer, - background = _this$params.background; - this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer); - this.gfx.beginDrawing({ - transform: transform, - viewport: viewport, - transparency: transparency, - background: background + if (this.stepper) { + this.stepper.updateOperatorList(this.operatorList); + } + + if (this.running) { + return; + } + + this._continue(); + } + + _continue() { + this.running = true; + + if (this.cancelled) { + return; + } + + if (this.task.onContinue) { + this.task.onContinue(this._scheduleNextBound); + } else { + this._scheduleNext(); + } + } + + _scheduleNext() { + if (this._useRequestAnimationFrame) { + window.requestAnimationFrame(() => { + this._nextBound().catch(this._cancelBound); }); - this.operatorListIdx = 0; - this.graphicsReady = true; - - if (this.graphicsReadyCallback) { - this.graphicsReadyCallback(); - } + } else { + Promise.resolve().then(this._nextBound).catch(this._cancelBound); } - }, { - key: "cancel", - value: function cancel() { - var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; + } + + async _next() { + if (this.cancelled) { + return; + } + + this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); + + if (this.operatorListIdx === this.operatorList.argsArray.length) { this.running = false; - this.cancelled = true; - if (this.gfx) { + if (this.operatorList.lastChunk) { this.gfx.endDrawing(); - } - if (this._canvas) { - canvasInRendering["delete"](this._canvas); - } - - this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas')); - } - }, { - key: "operatorListChanged", - value: function operatorListChanged() { - if (!this.graphicsReady) { - if (!this.graphicsReadyCallback) { - this.graphicsReadyCallback = this._continueBound; + if (this._canvas) { + canvasInRendering.delete(this._canvas); } - return; - } - - if (this.stepper) { - this.stepper.updateOperatorList(this.operatorList); - } - - if (this.running) { - return; - } - - this._continue(); - } - }, { - key: "_continue", - value: function _continue() { - this.running = true; - - if (this.cancelled) { - return; - } - - if (this.task.onContinue) { - this.task.onContinue(this._scheduleNextBound); - } else { - this._scheduleNext(); + this.callback(); } } - }, { - key: "_scheduleNext", - value: function _scheduleNext() { - var _this17 = this; + } - if (this._useRequestAnimationFrame) { - window.requestAnimationFrame(function () { - _this17._nextBound()["catch"](_this17.cancel.bind(_this17)); - }); - } else { - Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this)); - } - } - }, { - key: "_next", - value: function () { - var _next2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!this.cancelled) { - _context.next = 2; - break; - } - - return _context.abrupt("return"); - - case 2: - this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); - - if (this.operatorListIdx === this.operatorList.argsArray.length) { - this.running = false; - - if (this.operatorList.lastChunk) { - this.gfx.endDrawing(); - - if (this._canvas) { - canvasInRendering["delete"](this._canvas); - } - - this.callback(); - } - } - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function _next() { - return _next2.apply(this, arguments); - } - - return _next; - }() - }]); - - return InternalRenderTask; - }(); + } return InternalRenderTask; }(); -var version = '2.2.228'; +const version = '2.9.359'; exports.version = version; -var build = 'd7afb74a'; +const build = 'e667c8cbc'; exports.build = build; /***/ }), -/* 148 */ -/***/ (function(module, exports, __w_pdfjs_require__) { +/* 6 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -"use strict"; -module.exports = __w_pdfjs_require__(149); - -/***/ }), -/* 149 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; - } - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - Function("r", "regeneratorRuntime = r")(runtime); -} -/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module))) - -/***/ }), -/* 150 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - - module.paths = []; - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), -/* 151 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.addLinkAttributes = addLinkAttributes; -exports.getFilenameFromUrl = getFilenameFromUrl; -exports.isFetchSupported = isFetchSupported; -exports.isValidFetchUrl = isValidFetchUrl; -exports.loadScript = loadScript; -exports.deprecated = deprecated; -exports.releaseImageResources = releaseImageResources; -exports.PDFDateString = exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0; - -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_LINK_REL = 'noopener noreferrer nofollow'; -exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL; -var SVG_NS = 'http://www.w3.org/2000/svg'; - -var DOMCanvasFactory = -/*#__PURE__*/ -function () { - function DOMCanvasFactory() { - _classCallCheck(this, DOMCanvasFactory); - } - - _createClass(DOMCanvasFactory, [{ - key: "create", - value: function create(width, height) { - if (width <= 0 || height <= 0) { - throw new Error('Invalid canvas size'); - } - - var canvas = document.createElement('canvas'); - var context = canvas.getContext('2d'); - canvas.width = width; - canvas.height = height; - return { - canvas: canvas, - context: context - }; - } - }, { - key: "reset", - value: function reset(canvasAndContext, width, height) { - if (!canvasAndContext.canvas) { - throw new Error('Canvas is not specified'); - } - - if (width <= 0 || height <= 0) { - throw new Error('Invalid canvas size'); - } - - canvasAndContext.canvas.width = width; - canvasAndContext.canvas.height = height; - } - }, { - key: "destroy", - value: function destroy(canvasAndContext) { - if (!canvasAndContext.canvas) { - throw new Error('Canvas is not specified'); - } - - canvasAndContext.canvas.width = 0; - canvasAndContext.canvas.height = 0; - canvasAndContext.canvas = null; - canvasAndContext.context = null; - } - }]); - - return DOMCanvasFactory; -}(); - -exports.DOMCanvasFactory = DOMCanvasFactory; - -var DOMCMapReaderFactory = -/*#__PURE__*/ -function () { - function DOMCMapReaderFactory(_ref) { - var _ref$baseUrl = _ref.baseUrl, - baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl, - _ref$isCompressed = _ref.isCompressed, - isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed; - - _classCallCheck(this, DOMCMapReaderFactory); - - this.baseUrl = baseUrl; - this.isCompressed = isCompressed; - } - - _createClass(DOMCMapReaderFactory, [{ - key: "fetch", - value: function (_fetch) { - function fetch(_x) { - return _fetch.apply(this, arguments); - } - - fetch.toString = function () { - return _fetch.toString(); - }; - - return fetch; - }( - /*#__PURE__*/ - function () { - var _ref3 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(_ref2) { - var _this = this; - - var name, url, compressionType; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - name = _ref2.name; - - if (this.baseUrl) { - _context2.next = 3; - break; - } - - throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'); - - case 3: - if (name) { - _context2.next = 5; - break; - } - - throw new Error('CMap name must be specified.'); - - case 5: - url = this.baseUrl + name + (this.isCompressed ? '.bcmap' : ''); - compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE; - - if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return", fetch(url).then( - /*#__PURE__*/ - function () { - var _ref4 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(response) { - var cMapData; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (response.ok) { - _context.next = 2; - break; - } - - throw new Error(response.statusText); - - case 2: - if (!_this.isCompressed) { - _context.next = 10; - break; - } - - _context.t0 = Uint8Array; - _context.next = 6; - return response.arrayBuffer(); - - case 6: - _context.t1 = _context.sent; - cMapData = new _context.t0(_context.t1); - _context.next = 15; - break; - - case 10: - _context.t2 = _util.stringToBytes; - _context.next = 13; - return response.text(); - - case 13: - _context.t3 = _context.sent; - cMapData = (0, _context.t2)(_context.t3); - - case 15: - return _context.abrupt("return", { - cMapData: cMapData, - compressionType: compressionType - }); - - case 16: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function (_x3) { - return _ref4.apply(this, arguments); - }; - }())["catch"](function (reason) { - throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); - })); - - case 9: - return _context2.abrupt("return", new Promise(function (resolve, reject) { - var request = new XMLHttpRequest(); - request.open('GET', url, true); - - if (_this.isCompressed) { - request.responseType = 'arraybuffer'; - } - - request.onreadystatechange = function () { - if (request.readyState !== XMLHttpRequest.DONE) { - return; - } - - if (request.status === 200 || request.status === 0) { - var cMapData; - - if (_this.isCompressed && request.response) { - cMapData = new Uint8Array(request.response); - } else if (!_this.isCompressed && request.responseText) { - cMapData = (0, _util.stringToBytes)(request.responseText); - } - - if (cMapData) { - resolve({ - cMapData: cMapData, - compressionType: compressionType - }); - return; - } - } - - reject(new Error(request.statusText)); - }; - - request.send(null); - })["catch"](function (reason) { - throw new Error("Unable to load ".concat(_this.isCompressed ? 'binary ' : '') + "CMap at: ".concat(url)); - })); - - case 10: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - return function (_x2) { - return _ref3.apply(this, arguments); - }; - }()) - }]); - - return DOMCMapReaderFactory; -}(); - -exports.DOMCMapReaderFactory = DOMCMapReaderFactory; - -var DOMSVGFactory = -/*#__PURE__*/ -function () { - function DOMSVGFactory() { - _classCallCheck(this, DOMSVGFactory); - } - - _createClass(DOMSVGFactory, [{ - key: "create", - value: function create(width, height) { - (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions'); - var svg = document.createElementNS(SVG_NS, 'svg:svg'); - svg.setAttribute('version', '1.1'); - svg.setAttribute('width', width + 'px'); - svg.setAttribute('height', height + 'px'); - svg.setAttribute('preserveAspectRatio', 'none'); - svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height); - return svg; - } - }, { - key: "createElement", - value: function createElement(type) { - (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type'); - return document.createElementNS(SVG_NS, type); - } - }]); - - return DOMSVGFactory; -}(); - -exports.DOMSVGFactory = DOMSVGFactory; - -var PageViewport = -/*#__PURE__*/ -function () { - function PageViewport(_ref5) { - var viewBox = _ref5.viewBox, - scale = _ref5.scale, - rotation = _ref5.rotation, - _ref5$offsetX = _ref5.offsetX, - offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX, - _ref5$offsetY = _ref5.offsetY, - offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY, - _ref5$dontFlip = _ref5.dontFlip, - dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip; - - _classCallCheck(this, PageViewport); - - this.viewBox = viewBox; - this.scale = scale; - this.rotation = rotation; - this.offsetX = offsetX; - this.offsetY = offsetY; - var centerX = (viewBox[2] + viewBox[0]) / 2; - var centerY = (viewBox[3] + viewBox[1]) / 2; - var rotateA, rotateB, rotateC, rotateD; - rotation = rotation % 360; - rotation = rotation < 0 ? rotation + 360 : rotation; - - switch (rotation) { - case 180: - rotateA = -1; - rotateB = 0; - rotateC = 0; - rotateD = 1; - break; - - case 90: - rotateA = 0; - rotateB = 1; - rotateC = 1; - rotateD = 0; - break; - - case 270: - rotateA = 0; - rotateB = -1; - rotateC = -1; - rotateD = 0; - break; - - default: - rotateA = 1; - rotateB = 0; - rotateC = 0; - rotateD = -1; - break; - } - - if (dontFlip) { - rotateC = -rotateC; - rotateD = -rotateD; - } - - var offsetCanvasX, offsetCanvasY; - var width, height; - - if (rotateA === 0) { - offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX; - offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY; - width = Math.abs(viewBox[3] - viewBox[1]) * scale; - height = Math.abs(viewBox[2] - viewBox[0]) * scale; - } else { - offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; - offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; - width = Math.abs(viewBox[2] - viewBox[0]) * scale; - height = Math.abs(viewBox[3] - viewBox[1]) * scale; - } - - this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY]; - this.width = width; - this.height = height; - } - - _createClass(PageViewport, [{ - key: "clone", - value: function clone() { - var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref6$scale = _ref6.scale, - scale = _ref6$scale === void 0 ? this.scale : _ref6$scale, - _ref6$rotation = _ref6.rotation, - rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation, - _ref6$dontFlip = _ref6.dontFlip, - dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip; - - return new PageViewport({ - viewBox: this.viewBox.slice(), - scale: scale, - rotation: rotation, - offsetX: this.offsetX, - offsetY: this.offsetY, - dontFlip: dontFlip - }); - } - }, { - key: "convertToViewportPoint", - value: function convertToViewportPoint(x, y) { - return _util.Util.applyTransform([x, y], this.transform); - } - }, { - key: "convertToViewportRectangle", - value: function convertToViewportRectangle(rect) { - var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform); - - var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform); - - return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]]; - } - }, { - key: "convertToPdfPoint", - value: function convertToPdfPoint(x, y) { - return _util.Util.applyInverseTransform([x, y], this.transform); - } - }]); - - return PageViewport; -}(); - -exports.PageViewport = PageViewport; - -var RenderingCancelledException = function RenderingCancelledException() { - function RenderingCancelledException(msg, type) { - this.message = msg; - this.type = type; - } - - RenderingCancelledException.prototype = new Error(); - RenderingCancelledException.prototype.name = 'RenderingCancelledException'; - RenderingCancelledException.constructor = RenderingCancelledException; - return RenderingCancelledException; -}(); - -exports.RenderingCancelledException = RenderingCancelledException; -var LinkTarget = { - NONE: 0, - SELF: 1, - BLANK: 2, - PARENT: 3, - TOP: 4 -}; -exports.LinkTarget = LinkTarget; -var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top']; - -function addLinkAttributes(link) { - var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - url = _ref7.url, - target = _ref7.target, - rel = _ref7.rel; - - link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : ''; - - if (url) { - var LinkTargetValues = Object.values(LinkTarget); - var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE; - link.target = LinkTargetStringMap[targetIndex]; - link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL; - } -} - -function getFilenameFromUrl(url) { - var anchor = url.indexOf('#'); - var query = url.indexOf('?'); - var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length); - return url.substring(url.lastIndexOf('/', end) + 1, end); -} - -var StatTimer = -/*#__PURE__*/ -function () { - function StatTimer() { - var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - _classCallCheck(this, StatTimer); - - this.enabled = !!enable; - this.started = Object.create(null); - this.times = []; - } - - _createClass(StatTimer, [{ - key: "time", - value: function time(name) { - if (!this.enabled) { - return; - } - - if (name in this.started) { - (0, _util.warn)('Timer is already running for ' + name); - } - - this.started[name] = Date.now(); - } - }, { - key: "timeEnd", - value: function timeEnd(name) { - if (!this.enabled) { - return; - } - - if (!(name in this.started)) { - (0, _util.warn)('Timer has not been started for ' + name); - } - - this.times.push({ - 'name': name, - 'start': this.started[name], - 'end': Date.now() - }); - delete this.started[name]; - } - }, { - key: "toString", - value: function toString() { - var out = '', - longest = 0; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var time = _step.value; - var name = time.name; - - if (name.length > longest) { - longest = name.length; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; - - try { - for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var _time = _step2.value; - var duration = _time.end - _time.start; - out += "".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n"); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } - - return out; - } - }]); - - return StatTimer; -}(); - -exports.StatTimer = StatTimer; - -var DummyStatTimer = -/*#__PURE__*/ -function () { - function DummyStatTimer() { - _classCallCheck(this, DummyStatTimer); - - (0, _util.unreachable)('Cannot initialize DummyStatTimer.'); - } - - _createClass(DummyStatTimer, null, [{ - key: "time", - value: function time(name) {} - }, { - key: "timeEnd", - value: function timeEnd(name) {} - }, { - key: "toString", - value: function toString() { - return ''; - } - }]); - - return DummyStatTimer; -}(); - -exports.DummyStatTimer = DummyStatTimer; - -function isFetchSupported() { - return typeof fetch !== 'undefined' && typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined'; -} - -function isValidFetchUrl(url, baseUrl) { - try { - var _ref8 = baseUrl ? new _util.URL(url, baseUrl) : new _util.URL(url), - protocol = _ref8.protocol; - - return protocol === 'http:' || protocol === 'https:'; - } catch (ex) { - return false; - } -} - -function loadScript(src) { - return new Promise(function (resolve, reject) { - var script = document.createElement('script'); - script.src = src; - script.onload = resolve; - - script.onerror = function () { - reject(new Error("Cannot load script at: ".concat(script.src))); - }; - - (document.head || document.documentElement).appendChild(script); - }); -} - -function deprecated(details) { - console.log('Deprecated API usage: ' + details); -} - -function releaseImageResources(img) { - (0, _util.assert)(img instanceof Image, 'Invalid `img` parameter.'); - var url = img.src; - - if (typeof url === 'string' && url.startsWith('blob:') && _util.URL.revokeObjectURL) { - _util.URL.revokeObjectURL(url); - } - - img.removeAttribute('src'); -} - -var pdfDateStringRegex; - -var PDFDateString = -/*#__PURE__*/ -function () { - function PDFDateString() { - _classCallCheck(this, PDFDateString); - } - - _createClass(PDFDateString, null, [{ - key: "toDateObject", - value: function toDateObject(input) { - if (!input || !(0, _util.isString)(input)) { - return null; - } - - if (!pdfDateStringRegex) { - pdfDateStringRegex = new RegExp('^D:' + '(\\d{4})' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '(\\d{2})?' + '([Z|+|-])?' + '(\\d{2})?' + '\'?' + '(\\d{2})?' + '\'?'); - } - - var matches = pdfDateStringRegex.exec(input); - - if (!matches) { - return null; - } - - var year = parseInt(matches[1], 10); - var month = parseInt(matches[2], 10); - month = month >= 1 && month <= 12 ? month - 1 : 0; - var day = parseInt(matches[3], 10); - day = day >= 1 && day <= 31 ? day : 1; - var hour = parseInt(matches[4], 10); - hour = hour >= 0 && hour <= 23 ? hour : 0; - var minute = parseInt(matches[5], 10); - minute = minute >= 0 && minute <= 59 ? minute : 0; - var second = parseInt(matches[6], 10); - second = second >= 0 && second <= 59 ? second : 0; - var universalTimeRelation = matches[7] || 'Z'; - var offsetHour = parseInt(matches[8], 10); - offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0; - var offsetMinute = parseInt(matches[9], 10) || 0; - offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0; - - if (universalTimeRelation === '-') { - hour += offsetHour; - minute += offsetMinute; - } else if (universalTimeRelation === '+') { - hour -= offsetHour; - minute -= offsetMinute; - } - - return new Date(Date.UTC(year, month, day, hour, minute, second)); - } - }]); - - return PDFDateString; -}(); - -exports.PDFDateString = PDFDateString; - -/***/ }), -/* 152 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); +})); exports.FontLoader = exports.FontFaceObject = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); - -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var BaseFontLoader = -/*#__PURE__*/ -function () { - function BaseFontLoader(_ref) { - var docId = _ref.docId, - onUnsupportedFeature = _ref.onUnsupportedFeature; - - _classCallCheck(this, BaseFontLoader); +var _util = __w_pdfjs_require__(2); +class BaseFontLoader { + constructor({ + docId, + onUnsupportedFeature, + ownerDocument = globalThis.document + }) { if (this.constructor === BaseFontLoader) { - (0, _util.unreachable)('Cannot initialize BaseFontLoader.'); + (0, _util.unreachable)("Cannot initialize BaseFontLoader."); } this.docId = docId; this._onUnsupportedFeature = onUnsupportedFeature; + this._document = ownerDocument; this.nativeFontFaces = []; this.styleElement = null; } - _createClass(BaseFontLoader, [{ - key: "addNativeFontFace", - value: function addNativeFontFace(nativeFontFace) { - this.nativeFontFaces.push(nativeFontFace); - document.fonts.add(nativeFontFace); - } - }, { - key: "insertRule", - value: function insertRule(rule) { - var styleElement = this.styleElement; + addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.push(nativeFontFace); - if (!styleElement) { - styleElement = this.styleElement = document.createElement('style'); - styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId); - document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement); + this._document.fonts.add(nativeFontFace); + } + + insertRule(rule) { + let styleElement = this.styleElement; + + if (!styleElement) { + styleElement = this.styleElement = this._document.createElement("style"); + styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`; + + this._document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement); + } + + const styleSheet = styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + } + + clear() { + for (const nativeFontFace of this.nativeFontFaces) { + this._document.fonts.delete(nativeFontFace); + } + + this.nativeFontFaces.length = 0; + + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + } + + async bind(font) { + if (font.attached || font.missingFile) { + return; + } + + font.attached = true; + + if (this.isFontLoadingAPISupported) { + const nativeFontFace = font.createNativeFontFace(); + + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + + try { + await nativeFontFace.loaded; + } catch (ex) { + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative + }); + + (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); + font.disableFontFace = true; + throw ex; + } } - var styleSheet = styleElement.sheet; - styleSheet.insertRule(rule, styleSheet.cssRules.length); + return; } - }, { - key: "clear", - value: function clear() { - this.nativeFontFaces.forEach(function (nativeFontFace) { - document.fonts["delete"](nativeFontFace); + + const rule = font.createFontFaceRule(); + + if (rule) { + this.insertRule(rule); + + if (this.isSyncFontLoadingSupported) { + return; + } + + await new Promise(resolve => { + const request = this._queueLoadingCallback(resolve); + + this._prepareFontLoadEvent([rule], [font], request); }); - this.nativeFontFaces.length = 0; - - if (this.styleElement) { - this.styleElement.remove(); - this.styleElement = null; - } } - }, { - key: "bind", - value: function () { - var _bind = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(font) { - var _this = this; + } - var nativeFontFace, rule; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(font.attached || font.missingFile)) { - _context.next = 2; - break; - } + _queueLoadingCallback(callback) { + (0, _util.unreachable)("Abstract method `_queueLoadingCallback`."); + } - return _context.abrupt("return", undefined); + get isFontLoadingAPISupported() { + return (0, _util.shadow)(this, "isFontLoadingAPISupported", !!this._document?.fonts); + } - case 2: - font.attached = true; + get isSyncFontLoadingSupported() { + (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`."); + } - if (!this.isFontLoadingAPISupported) { - _context.next = 19; - break; - } + get _loadTestFont() { + (0, _util.unreachable)("Abstract method `_loadTestFont`."); + } - nativeFontFace = font.createNativeFontFace(); + _prepareFontLoadEvent(rules, fontsToLoad, request) { + (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`."); + } - if (!nativeFontFace) { - _context.next = 18; - break; - } +} - this.addNativeFontFace(nativeFontFace); - _context.prev = 7; - _context.next = 10; - return nativeFontFace.loaded; - - case 10: - _context.next = 18; - break; - - case 12: - _context.prev = 12; - _context.t0 = _context["catch"](7); - - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.font - }); - - (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'.")); - font.disableFontFace = true; - throw _context.t0; - - case 18: - return _context.abrupt("return", undefined); - - case 19: - rule = font.createFontFaceRule(); - - if (!rule) { - _context.next = 25; - break; - } - - this.insertRule(rule); - - if (!this.isSyncFontLoadingSupported) { - _context.next = 24; - break; - } - - return _context.abrupt("return", undefined); - - case 24: - return _context.abrupt("return", new Promise(function (resolve) { - var request = _this._queueLoadingCallback(resolve); - - _this._prepareFontLoadEvent([rule], [font], request); - })); - - case 25: - return _context.abrupt("return", undefined); - - case 26: - case "end": - return _context.stop(); - } - } - }, _callee, this, [[7, 12]]); - })); - - function bind(_x) { - return _bind.apply(this, arguments); - } - - return bind; - }() - }, { - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.'); - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(rules, fontsToLoad, request) { - (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.'); - } - }, { - key: "isFontLoadingAPISupported", - get: function get() { - (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.'); - } - }, { - key: "isSyncFontLoadingSupported", - get: function get() { - (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.'); - } - }, { - key: "_loadTestFont", - get: function get() { - (0, _util.unreachable)('Abstract method `_loadTestFont`.'); - } - }]); - - return BaseFontLoader; -}(); - -var FontLoader; +let FontLoader; exports.FontLoader = FontLoader; { - exports.FontLoader = FontLoader = - /*#__PURE__*/ - function (_BaseFontLoader) { - _inherits(GenericFontLoader, _BaseFontLoader); - - function GenericFontLoader(docId) { - var _this2; - - _classCallCheck(this, GenericFontLoader); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId)); - _this2.loadingContext = { + exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader { + constructor(params) { + super(params); + this.loadingContext = { requests: [], nextRequestId: 0 }; - _this2.loadTestFontId = 0; - return _this2; + this.loadTestFontId = 0; } - _createClass(GenericFontLoader, [{ - key: "_queueLoadingCallback", - value: function _queueLoadingCallback(callback) { - function completeRequest() { - (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.'); - request.done = true; + get isSyncFontLoadingSupported() { + let supported = false; - while (context.requests.length > 0 && context.requests[0].done) { - var otherRequest = context.requests.shift(); - setTimeout(otherRequest.callback, 0); - } - } + if (typeof navigator === "undefined") { + supported = true; + } else { + const m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - var context = this.loadingContext; - var request = { - id: "pdfjs-font-loading-".concat(context.nextRequestId++), - done: false, - complete: completeRequest, - callback: callback - }; - context.requests.push(request); - return request; - } - }, { - key: "_prepareFontLoadEvent", - value: function _prepareFontLoadEvent(rules, fonts, request) { - function int32(data, offset) { - return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; - } - - function spliceString(s, offset, remove, insert) { - var chunk1 = s.substring(0, offset); - var chunk2 = s.substring(offset + remove); - return chunk1 + insert + chunk2; - } - - var i, ii; - var canvas = document.createElement('canvas'); - canvas.width = 1; - canvas.height = 1; - var ctx = canvas.getContext('2d'); - var called = 0; - - function isFontReady(name, callback) { - called++; - - if (called > 30) { - (0, _util.warn)('Load test font never loaded.'); - callback(); - return; - } - - ctx.font = '30px ' + name; - ctx.fillText('.', 0, 20); - var imageData = ctx.getImageData(0, 0, 1, 1); - - if (imageData.data[3] > 0) { - callback(); - return; - } - - setTimeout(isFontReady.bind(null, name, callback)); - } - - var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++); - var data = this._loadTestFont; - var COMMENT_OFFSET = 976; - data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); - var CFF_CHECKSUM_OFFSET = 16; - var XXXX_VALUE = 0x58585858; - var checksum = int32(data, CFF_CHECKSUM_OFFSET); - - for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; - } - - if (i < loadTestFontId.length) { - checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0; - } - - data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); - var url = "url(data:font/opentype;base64,".concat(btoa(data), ");"); - var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}"); - this.insertRule(rule); - var names = []; - - for (i = 0, ii = fonts.length; i < ii; i++) { - names.push(fonts[i].loadedName); - } - - names.push(loadTestFontId); - var div = document.createElement('div'); - div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;'); - - for (i = 0, ii = names.length; i < ii; ++i) { - var span = document.createElement('span'); - span.textContent = 'Hi'; - span.style.fontFamily = names[i]; - div.appendChild(span); - } - - document.body.appendChild(div); - isFontReady(loadTestFontId, function () { - document.body.removeChild(div); - request.complete(); - }); - } - }, { - key: "isFontLoadingAPISupported", - get: function get() { - var supported = typeof document !== 'undefined' && !!document.fonts; - - if (supported && typeof navigator !== 'undefined') { - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - - if (m && m[1] < 63) { - supported = false; - } - } - - return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported); - } - }, { - key: "isSyncFontLoadingSupported", - get: function get() { - var supported = false; - - if (typeof navigator === 'undefined') { + if (m?.[1] >= 14) { supported = true; - } else { - var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); + } + } - if (m && m[1] >= 14) { - supported = true; - } + return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported); + } + + _queueLoadingCallback(callback) { + function completeRequest() { + (0, _util.assert)(!request.done, "completeRequest() cannot be called twice."); + request.done = true; + + while (context.requests.length > 0 && context.requests[0].done) { + const otherRequest = context.requests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + + const context = this.loadingContext; + const request = { + id: `pdfjs-font-loading-${context.nextRequestId++}`, + done: false, + complete: completeRequest, + callback + }; + context.requests.push(request); + return request; + } + + get _loadTestFont() { + const getLoadTestFont = function () { + 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=="); + }; + + return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont()); + } + + _prepareFontLoadEvent(rules, fonts, request) { + function int32(data, offset) { + return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff; + } + + function spliceString(s, offset, remove, insert) { + const chunk1 = s.substring(0, offset); + const chunk2 = s.substring(offset + remove); + return chunk1 + insert + chunk2; + } + + let i, ii; + + const canvas = this._document.createElement("canvas"); + + canvas.width = 1; + canvas.height = 1; + const ctx = canvas.getContext("2d"); + let called = 0; + + function isFontReady(name, callback) { + called++; + + if (called > 30) { + (0, _util.warn)("Load test font never loaded."); + callback(); + return; } - return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported); - } - }, { - key: "_loadTestFont", - get: function get() { - var getLoadTestFont = function getLoadTestFont() { - 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=='); - }; + ctx.font = "30px " + name; + ctx.fillText(".", 0, 20); + const imageData = ctx.getImageData(0, 0, 1, 1); - return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont()); - } - }]); + if (imageData.data[3] > 0) { + callback(); + return; + } - return GenericFontLoader; - }(BaseFontLoader); + setTimeout(isFontReady.bind(null, name, callback)); + } + + const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`; + let data = this._loadTestFont; + const COMMENT_OFFSET = 976; + data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId); + const CFF_CHECKSUM_OFFSET = 16; + const XXXX_VALUE = 0x58585858; + let checksum = int32(data, CFF_CHECKSUM_OFFSET); + + for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0; + } + + if (i < loadTestFontId.length) { + checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0; + } + + data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum)); + const url = `url(data:font/opentype;base64,${btoa(data)});`; + const rule = `@font-face {font-family:"${loadTestFontId}";src:${url}}`; + this.insertRule(rule); + const names = []; + + for (const font of fonts) { + names.push(font.loadedName); + } + + names.push(loadTestFontId); + + const div = this._document.createElement("div"); + + div.style.visibility = "hidden"; + div.style.width = div.style.height = "10px"; + div.style.position = "absolute"; + div.style.top = div.style.left = "0px"; + + for (const name of names) { + const span = this._document.createElement("span"); + + span.textContent = "Hi"; + span.style.fontFamily = name; + div.appendChild(span); + } + + this._document.body.appendChild(div); + + isFontReady(loadTestFontId, () => { + this._document.body.removeChild(div); + + request.complete(); + }); + } + + }; } -var IsEvalSupportedCached = { - get value() { - return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)()); - } - -}; - -var FontFaceObject = -/*#__PURE__*/ -function () { - function FontFaceObject(translatedData, _ref2) { - var _ref2$isEvalSupported = _ref2.isEvalSupported, - isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported, - _ref2$disableFontFace = _ref2.disableFontFace, - disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace, - _ref2$ignoreErrors = _ref2.ignoreErrors, - ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors, - _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature, - onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe, - _ref2$fontRegistry = _ref2.fontRegistry, - fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry; - - _classCallCheck(this, FontFaceObject); +class FontFaceObject { + constructor(translatedData, { + isEvalSupported = true, + disableFontFace = false, + ignoreErrors = false, + onUnsupportedFeature, + fontRegistry = null + }) { this.compiledGlyphs = Object.create(null); - for (var i in translatedData) { + for (const i in translatedData) { this[i] = translatedData[i]; } @@ -14010,310 +4167,476 @@ function () { this.fontRegistry = fontRegistry; } - _createClass(FontFaceObject, [{ - key: "createNativeFontFace", - value: function createNativeFontFace() { - if (!this.data || this.disableFontFace) { - return null; - } - - var nativeFontFace = new FontFace(this.loadedName, this.data, {}); - - if (this.fontRegistry) { - this.fontRegistry.registerFont(this); - } - - return nativeFontFace; + createNativeFontFace() { + if (!this.data || this.disableFontFace) { + return null; } - }, { - key: "createFontFaceRule", - value: function createFontFaceRule() { - if (!this.data || this.disableFontFace) { - return null; - } - var data = (0, _util.bytesToString)(new Uint8Array(this.data)); - var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");"); - var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}"); + let nativeFontFace; - if (this.fontRegistry) { - this.fontRegistry.registerFont(this, url); - } - - return rule; - } - }, { - key: "getPathGenerator", - value: function getPathGenerator(objs, character) { - if (this.compiledGlyphs[character] !== undefined) { - return this.compiledGlyphs[character]; - } - - var cmds, current; - - try { - cmds = objs.get(this.loadedName + '_path_' + character); - } catch (ex) { - if (!this.ignoreErrors) { - throw ex; - } - - if (this._onUnsupportedFeature) { - this._onUnsupportedFeature({ - featureId: _util.UNSUPPORTED_FEATURES.font - }); - } - - (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\".")); - return this.compiledGlyphs[character] = function (c, size) {}; - } - - if (this.isEvalSupported && IsEvalSupportedCached.value) { - var args, - js = ''; - - for (var i = 0, ii = cmds.length; i < ii; i++) { - current = cmds[i]; - - if (current.args !== undefined) { - args = current.args.join(','); - } else { - args = ''; - } - - js += 'c.' + current.cmd + '(' + args + ');\n'; - } - - return this.compiledGlyphs[character] = new Function('c', 'size', js); - } - - return this.compiledGlyphs[character] = function (c, size) { - for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) { - current = cmds[_i]; - - if (current.cmd === 'scale') { - current.args = [size, -size]; - } - - c[current.cmd].apply(c, current.args); - } + if (!this.cssFontInfo) { + nativeFontFace = new FontFace(this.loadedName, this.data, {}); + } else { + const css = { + weight: this.cssFontInfo.fontWeight }; - } - }]); - return FontFaceObject; -}(); + if (this.cssFontInfo.italicAngle) { + css.style = `oblique ${this.cssFontInfo.italicAngle}deg`; + } + + nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css); + } + + if (this.fontRegistry) { + this.fontRegistry.registerFont(this); + } + + return nativeFontFace; + } + + createFontFaceRule() { + if (!this.data || this.disableFontFace) { + return null; + } + + const data = (0, _util.bytesToString)(this.data); + const url = `url(data:${this.mimetype};base64,${btoa(data)});`; + let rule; + + if (!this.cssFontInfo) { + rule = `@font-face {font-family:"${this.loadedName}";src:${url}}`; + } else { + let css = `font-weight: ${this.cssFontInfo.fontWeight};`; + + if (this.cssFontInfo.italicAngle) { + css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`; + } + + rule = `@font-face {font-family:"${this.cssFontInfo.fontFamily}";${css}src:${url}}`; + } + + if (this.fontRegistry) { + this.fontRegistry.registerFont(this, url); + } + + return rule; + } + + getPathGenerator(objs, character) { + if (this.compiledGlyphs[character] !== undefined) { + return this.compiledGlyphs[character]; + } + + let cmds; + + try { + cmds = objs.get(this.loadedName + "_path_" + character); + } catch (ex) { + if (!this.ignoreErrors) { + throw ex; + } + + this._onUnsupportedFeature({ + featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath + }); + + (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`); + return this.compiledGlyphs[character] = function (c, size) {}; + } + + if (this.isEvalSupported && _util.IsEvalSupportedCached.value) { + const jsBuf = []; + + for (const current of cmds) { + const args = current.args !== undefined ? current.args.join(",") : ""; + jsBuf.push("c.", current.cmd, "(", args, ");\n"); + } + + return this.compiledGlyphs[character] = new Function("c", "size", jsBuf.join("")); + } + + return this.compiledGlyphs[character] = function (c, size) { + for (const current of cmds) { + if (current.cmd === "scale") { + current.args = [size, -size]; + } + + c[current.cmd].apply(c, current.args); + } + }; + } + +} exports.FontFaceObject = FontFaceObject; /***/ }), -/* 153 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 7 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -var compatibilityParams = Object.create(null); -{ - var isNodeJS = __w_pdfjs_require__(4); - var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; - var isIE = /Trident/.test(userAgent); - var isIOSChrome = /CriOS/.test(userAgent); - - (function checkOnBlobSupport() { - if (isIE || isIOSChrome) { - compatibilityParams.disableCreateObjectURL = true; - } - })(); - - (function checkFontFaceAndImage() { - if (isNodeJS()) { - compatibilityParams.disableFontFace = true; - compatibilityParams.nativeImageDecoderSupport = 'none'; - } - })(); -} -exports.apiCompatibilityParams = Object.freeze(compatibilityParams); - -/***/ }), -/* 154 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.CanvasGraphics = void 0; +})); +exports.NodeCMapReaderFactory = exports.NodeCanvasFactory = void 0; -var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(1); -var _pattern_helper = __w_pdfjs_require__(155); +var _is_node = __w_pdfjs_require__(4); -var MIN_FONT_SIZE = 16; -var MAX_FONT_SIZE = 100; -var MAX_GROUP_SIZE = 4096; -var MIN_WIDTH_FACTOR = 0.65; -var COMPILE_TYPE3_GLYPHS = true; -var MAX_SIZE_TO_COMPILE = 1000; -var FULL_CHUNK_HEIGHT = 16; -var IsLittleEndianCached = { - get value() { - return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)()); +var _util = __w_pdfjs_require__(2); + +let NodeCanvasFactory = class { + constructor() { + (0, _util.unreachable)("Not implemented: NodeCanvasFactory"); } }; - -function addContextCurrentTransform(ctx) { - if (!ctx.mozCurrentTransform) { - ctx._originalSave = ctx.save; - ctx._originalRestore = ctx.restore; - ctx._originalRotate = ctx.rotate; - ctx._originalScale = ctx.scale; - ctx._originalTranslate = ctx.translate; - ctx._originalTransform = ctx.transform; - ctx._originalSetTransform = ctx.setTransform; - ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; - ctx._transformStack = []; - Object.defineProperty(ctx, 'mozCurrentTransform', { - get: function getCurrentTransform() { - return this._transformMatrix; - } - }); - Object.defineProperty(ctx, 'mozCurrentTransformInverse', { - get: function getCurrentTransformInverse() { - var m = this._transformMatrix; - var a = m[0], - b = m[1], - c = m[2], - d = m[3], - e = m[4], - f = m[5]; - var ad_bc = a * d - b * c; - var bc_ad = b * c - a * d; - 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]; - } - }); - - ctx.save = function ctxSave() { - var old = this._transformMatrix; - - this._transformStack.push(old); - - this._transformMatrix = old.slice(0, 6); - - this._originalSave(); - }; - - ctx.restore = function ctxRestore() { - var prev = this._transformStack.pop(); - - if (prev) { - this._transformMatrix = prev; - - this._originalRestore(); - } - }; - - ctx.translate = function ctxTranslate(x, y) { - var m = this._transformMatrix; - m[4] = m[0] * x + m[2] * y + m[4]; - m[5] = m[1] * x + m[3] * y + m[5]; - - this._originalTranslate(x, y); - }; - - ctx.scale = function ctxScale(x, y) { - var m = this._transformMatrix; - m[0] = m[0] * x; - m[1] = m[1] * x; - m[2] = m[2] * y; - m[3] = m[3] * y; - - this._originalScale(x, y); - }; - - ctx.transform = function ctxTransform(a, b, c, d, e, f) { - var m = this._transformMatrix; - 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]]; - - ctx._originalTransform(a, b, c, d, e, f); - }; - - ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { - this._transformMatrix = [a, b, c, d, e, f]; - - ctx._originalSetTransform(a, b, c, d, e, f); - }; - - ctx.rotate = function ctxRotate(angle) { - var cosValue = Math.cos(angle); - var sinValue = Math.sin(angle); - var m = this._transformMatrix; - 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]]; - - this._originalRotate(angle); - }; +exports.NodeCanvasFactory = NodeCanvasFactory; +let NodeCMapReaderFactory = class { + constructor() { + (0, _util.unreachable)("Not implemented: NodeCMapReaderFactory"); } + +}; +exports.NodeCMapReaderFactory = NodeCMapReaderFactory; + +if (_is_node.isNodeJS) { + exports.NodeCanvasFactory = NodeCanvasFactory = class extends _display_utils.BaseCanvasFactory { + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + + const Canvas = require("canvas"); + + const canvas = Canvas.createCanvas(width, height); + return { + canvas, + context: canvas.getContext("2d") + }; + } + + }; + exports.NodeCMapReaderFactory = NodeCMapReaderFactory = class extends _display_utils.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return new Promise((resolve, reject) => { + const fs = require("fs"); + + fs.readFile(url, (error, data) => { + if (error || !data) { + reject(new Error(error)); + return; + } + + resolve({ + cMapData: new Uint8Array(data), + compressionType + }); + }); + }); + } + + }; } -var CachedCanvases = function CachedCanvasesClosure() { - function CachedCanvases(canvasFactory) { +/***/ }), +/* 8 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationStorage = void 0; + +var _util = __w_pdfjs_require__(2); + +class AnnotationStorage { + constructor() { + this._storage = new Map(); + this._modified = false; + this.onSetModified = null; + this.onResetModified = null; + } + + getValue(key, defaultValue) { + const obj = this._storage.get(key); + + return obj !== undefined ? obj : defaultValue; + } + + setValue(key, value) { + const obj = this._storage.get(key); + + let modified = false; + + if (obj !== undefined) { + for (const [entry, val] of Object.entries(value)) { + if (obj[entry] !== val) { + modified = true; + obj[entry] = val; + } + } + } else { + this._storage.set(key, value); + + modified = true; + } + + if (modified) { + this._setModified(); + } + } + + getAll() { + return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null; + } + + get size() { + return this._storage.size; + } + + _setModified() { + if (!this._modified) { + this._modified = true; + + if (typeof this.onSetModified === "function") { + this.onSetModified(); + } + } + } + + resetModified() { + if (this._modified) { + this._modified = false; + + if (typeof this.onResetModified === "function") { + this.onResetModified(); + } + } + } + + get serializable() { + return this._storage.size > 0 ? this._storage : null; + } + +} + +exports.AnnotationStorage = AnnotationStorage; + +/***/ }), +/* 9 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.apiCompatibilityParams = void 0; + +var _is_node = __w_pdfjs_require__(4); + +const compatibilityParams = Object.create(null); +{ + (function checkFontFace() { + if (_is_node.isNodeJS) { + compatibilityParams.disableFontFace = true; + } + })(); +} +const apiCompatibilityParams = Object.freeze(compatibilityParams); +exports.apiCompatibilityParams = apiCompatibilityParams; + +/***/ }), +/* 10 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CanvasGraphics = void 0; + +var _util = __w_pdfjs_require__(2); + +var _pattern_helper = __w_pdfjs_require__(11); + +const MIN_FONT_SIZE = 16; +const MAX_FONT_SIZE = 100; +const MAX_GROUP_SIZE = 4096; +const COMPILE_TYPE3_GLYPHS = true; +const MAX_SIZE_TO_COMPILE = 1000; +const FULL_CHUNK_HEIGHT = 16; +const LINEWIDTH_SCALE_FACTOR = 1.000001; + +function addContextCurrentTransform(ctx) { + if (ctx.mozCurrentTransform) { + return; + } + + ctx._originalSave = ctx.save; + ctx._originalRestore = ctx.restore; + ctx._originalRotate = ctx.rotate; + ctx._originalScale = ctx.scale; + ctx._originalTranslate = ctx.translate; + ctx._originalTransform = ctx.transform; + ctx._originalSetTransform = ctx.setTransform; + ctx._originalResetTransform = ctx.resetTransform; + ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0]; + ctx._transformStack = []; + + try { + const desc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ctx), "lineWidth"); + ctx._setLineWidth = desc.set; + ctx._getLineWidth = desc.get; + Object.defineProperty(ctx, "lineWidth", { + set: function setLineWidth(width) { + this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR); + }, + get: function getLineWidth() { + return this._getLineWidth(); + } + }); + } catch (_) {} + + Object.defineProperty(ctx, "mozCurrentTransform", { + get: function getCurrentTransform() { + return this._transformMatrix; + } + }); + Object.defineProperty(ctx, "mozCurrentTransformInverse", { + get: function getCurrentTransformInverse() { + const [a, b, c, d, e, f] = this._transformMatrix; + const ad_bc = a * d - b * c; + const bc_ad = b * c - a * d; + 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]; + } + }); + + ctx.save = function ctxSave() { + const old = this._transformMatrix; + + this._transformStack.push(old); + + this._transformMatrix = old.slice(0, 6); + + this._originalSave(); + }; + + ctx.restore = function ctxRestore() { + const prev = this._transformStack.pop(); + + if (prev) { + this._transformMatrix = prev; + + this._originalRestore(); + } + }; + + ctx.translate = function ctxTranslate(x, y) { + const m = this._transformMatrix; + m[4] = m[0] * x + m[2] * y + m[4]; + m[5] = m[1] * x + m[3] * y + m[5]; + + this._originalTranslate(x, y); + }; + + ctx.scale = function ctxScale(x, y) { + const m = this._transformMatrix; + m[0] = m[0] * x; + m[1] = m[1] * x; + m[2] = m[2] * y; + m[3] = m[3] * y; + + this._originalScale(x, y); + }; + + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + const m = this._transformMatrix; + 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]]; + + ctx._originalTransform(a, b, c, d, e, f); + }; + + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + this._transformMatrix = [a, b, c, d, e, f]; + + ctx._originalSetTransform(a, b, c, d, e, f); + }; + + ctx.resetTransform = function ctxResetTransform() { + this._transformMatrix = [1, 0, 0, 1, 0, 0]; + + ctx._originalResetTransform(); + }; + + ctx.rotate = function ctxRotate(angle) { + const cosValue = Math.cos(angle); + const sinValue = Math.sin(angle); + const m = this._transformMatrix; + 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]]; + + this._originalRotate(angle); + }; +} + +class CachedCanvases { + constructor(canvasFactory) { this.canvasFactory = canvasFactory; this.cache = Object.create(null); } - CachedCanvases.prototype = { - getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) { - var canvasEntry; + getCanvas(id, width, height, trackTransform) { + let canvasEntry; - if (this.cache[id] !== undefined) { - canvasEntry = this.cache[id]; - this.canvasFactory.reset(canvasEntry, width, height); - canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); - } else { - canvasEntry = this.canvasFactory.create(width, height); - this.cache[id] = canvasEntry; - } - - if (trackTransform) { - addContextCurrentTransform(canvasEntry.context); - } - - return canvasEntry; - }, - clear: function clear() { - for (var id in this.cache) { - var canvasEntry = this.cache[id]; - this.canvasFactory.destroy(canvasEntry); - delete this.cache[id]; - } + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0); + } else { + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; } - }; - return CachedCanvases; -}(); + + if (trackTransform) { + addContextCurrentTransform(canvasEntry.context); + } + + return canvasEntry; + } + + clear() { + for (const id in this.cache) { + const canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; + } + } + +} function compileType3Glyph(imgData) { - var POINT_TO_PROCESS_LIMIT = 1000; - var width = imgData.width, - height = imgData.height; - var i, - j, - j0, - width1 = width + 1; - var points = new Uint8Array(width1 * (height + 1)); - var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); - var lineSize = width + 7 & ~7, - data0 = imgData.data; - var data = new Uint8Array(lineSize * height), - pos = 0, - ii; + const POINT_TO_PROCESS_LIMIT = 1000; + const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]); + const width = imgData.width, + height = imgData.height, + width1 = width + 1; + let i, ii, j, j0; + const points = new Uint8Array(width1 * (height + 1)); + const lineSize = width + 7 & ~7, + data0 = imgData.data; + const data = new Uint8Array(lineSize * height); + let pos = 0; for (i = 0, ii = data0.length; i < ii; i++) { - var mask = 128, - elem = data0[i]; + const elem = data0[i]; + let mask = 128; while (mask > 0) { data[pos++] = elem & mask ? 0 : 255; @@ -14321,7 +4644,7 @@ function compileType3Glyph(imgData) { } } - var count = 0; + let count = 0; pos = 0; if (data[pos] !== 0) { @@ -14352,7 +4675,7 @@ function compileType3Glyph(imgData) { ++count; } - var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); + let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0); for (j = 1; j < width; j++) { sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0); @@ -14401,12 +4724,12 @@ function compileType3Glyph(imgData) { return null; } - var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); - var outlines = []; + const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + const outlines = []; for (i = 0; count && i <= height; i++) { - var p = i * width1; - var end = p + width; + let p = i * width1; + const end = p + width; while (p < end && !points[p]) { p++; @@ -14416,19 +4739,18 @@ function compileType3Glyph(imgData) { continue; } - var coords = [p % width1, i]; - var type = points[p], - p0 = p, - pp; + const coords = [p % width1, i]; + const p0 = p; + let type = points[p]; do { - var step = steps[type]; + const step = steps[type]; do { p += step; } while (!points[p]); - pp = points[p]; + const pp = points[p]; if (pp !== 5 && pp !== 10) { type = pp; @@ -14438,8 +4760,7 @@ function compileType3Glyph(imgData) { points[p] &= type >> 2 | type << 2; } - coords.push(p % width1); - coords.push(p / width1 | 0); + coords.push(p % width1, p / width1 | 0); if (!points[p]) { --count; @@ -14450,18 +4771,18 @@ function compileType3Glyph(imgData) { --i; } - var drawOutline = function drawOutline(c) { + const drawOutline = function (c) { c.save(); c.scale(1 / width, -1 / height); c.translate(0, -height); c.beginPath(); - for (var i = 0, ii = outlines.length; i < ii; i++) { - var o = outlines[i]; + for (let k = 0, kk = outlines.length; k < kk; k++) { + const o = outlines[k]; c.moveTo(o[0], o[1]); - for (var j = 2, jj = o.length; j < jj; j += 2) { - c.lineTo(o[j], o[j + 1]); + for (let l = 2, ll = o.length; l < ll; l += 2) { + c.lineTo(o[l], o[l + 1]); } } @@ -14473,8 +4794,8 @@ function compileType3Glyph(imgData) { return drawOutline; } -var CanvasExtraState = function CanvasExtraStateClosure() { - function CanvasExtraState() { +class CanvasExtraState { + constructor() { this.alphaIsShape = false; this.fontSize = 0; this.fontSizeScale = 1; @@ -14491,99 +4812,94 @@ var CanvasExtraState = function CanvasExtraStateClosure() { this.textHScale = 1; this.textRenderingMode = _util.TextRenderingMode.FILL; this.textRise = 0; - this.fillColor = '#000000'; - this.strokeColor = '#000000'; + this.fillColor = "#000000"; + this.strokeColor = "#000000"; this.patternFill = false; this.fillAlpha = 1; this.strokeAlpha = 1; this.lineWidth = 1; this.activeSMask = null; this.resumeSMaskCtx = null; + this.transferMaps = null; } - CanvasExtraState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this); - }, - setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) { - this.x = x; - this.y = y; - } - }; - return CanvasExtraState; -}(); - -var CanvasGraphics = function CanvasGraphicsClosure() { - var EXECUTION_TIME = 15; - var EXECUTION_STEPS = 10; - - function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) { - this.ctx = canvasCtx; - this.current = new CanvasExtraState(); - this.stateStack = []; - this.pendingClip = null; - this.pendingEOFill = false; - this.res = null; - this.xobjs = null; - this.commonObjs = commonObjs; - this.objs = objs; - this.canvasFactory = canvasFactory; - this.webGLContext = webGLContext; - this.imageLayer = imageLayer; - this.groupStack = []; - this.processingType3 = null; - this.baseTransform = null; - this.baseTransformStack = []; - this.groupLevel = 0; - this.smaskStack = []; - this.smaskCounter = 0; - this.tempSMask = null; - this.cachedCanvases = new CachedCanvases(this.canvasFactory); - - if (canvasCtx) { - addContextCurrentTransform(canvasCtx); - } - - this._cachedGetSinglePixelWidth = null; + clone() { + return Object.create(this); } - function putBinaryImageData(ctx, imgData) { - if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) { + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + +} + +const CanvasGraphics = function CanvasGraphicsClosure() { + const EXECUTION_TIME = 15; + const EXECUTION_STEPS = 10; + + function putBinaryImageData(ctx, imgData, transferMaps = null) { + if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { ctx.putImageData(imgData, 0, 0); return; } - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0, + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0, destPos; - var src = imgData.data; - var dest = chunkImgData.data; - var i, j, thisChunkHeight, elemsInThisChunk; + const src = imgData.data; + const dest = chunkImgData.data; + let i, j, thisChunkHeight, elemsInThisChunk; + let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray; + + if (transferMaps) { + switch (transferMaps.length) { + case 1: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[0]; + transferMapBlue = transferMaps[0]; + transferMapGray = transferMaps[0]; + break; + + case 4: + transferMapRed = transferMaps[0]; + transferMapGreen = transferMaps[1]; + transferMapBlue = transferMaps[2]; + transferMapGray = transferMaps[3]; + break; + } + } if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { - var srcLength = src.byteLength; - var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); - var dest32DataLength = dest32.length; - var fullSrcDiff = width + 7 >> 3; - var white = 0xFFFFFFFF; - var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF; + const srcLength = src.byteLength; + const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); + const dest32DataLength = dest32.length; + const fullSrcDiff = width + 7 >> 3; + let white = 0xffffffff; + let black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff; + + if (transferMapGray) { + if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) { + [white, black] = [black, white]; + } + } for (i = 0; i < totalChunks; i++) { thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; destPos = 0; for (j = 0; j < thisChunkHeight; j++) { - var srcDiff = srcLength - srcPos; - var k = 0; - var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; - var kEndUnrolled = kEnd & ~7; - var mask = 0; - var srcByte = 0; + const srcDiff = srcLength - srcPos; + let k = 0; + const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7; + const kEndUnrolled = kEnd & ~7; + let mask = 0; + let srcByte = 0; for (; k < kEndUnrolled; k += 8) { srcByte = src[srcPos++]; @@ -14615,12 +4931,30 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); j = 0; elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; for (i = 0; i < fullChunks; i++) { dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); srcPos += elemsInThisChunk; + + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); j += FULL_CHUNK_HEIGHT; } @@ -14628,9 +4962,27 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (i < totalChunks) { elemsInThisChunk = width * partialChunkHeight * 4; dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + + if (hasTransferMaps) { + for (let k = 0; k < elemsInThisChunk; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, j); } } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue); thisChunkHeight = FULL_CHUNK_HEIGHT; elemsInThisChunk = width * thisChunkHeight; @@ -14649,34 +5001,51 @@ var CanvasGraphics = function CanvasGraphicsClosure() { dest[destPos++] = 255; } + if (hasTransferMaps) { + for (let k = 0; k < destPos; k += 4) { + if (transferMapRed) { + dest[k + 0] = transferMapRed[dest[k + 0]]; + } + + if (transferMapGreen) { + dest[k + 1] = transferMapGreen[dest[k + 1]]; + } + + if (transferMapBlue) { + dest[k + 2] = transferMapBlue[dest[k + 2]]; + } + } + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); } } else { - throw new Error("bad image kind: ".concat(imgData.kind)); + throw new Error(`bad image kind: ${imgData.kind}`); } } function putBinaryImageMask(ctx, imgData) { - var height = imgData.height, - width = imgData.width; - var partialChunkHeight = height % FULL_CHUNK_HEIGHT; - var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; - var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; - var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); - var srcPos = 0; - var src = imgData.data; - var dest = chunkImgData.data; + const height = imgData.height, + width = imgData.width; + const partialChunkHeight = height % FULL_CHUNK_HEIGHT; + const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT; + const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1; + const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT); + let srcPos = 0; + const src = imgData.data; + const dest = chunkImgData.data; - for (var i = 0; i < totalChunks; i++) { - var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; - var destPos = 3; + for (let i = 0; i < totalChunks; i++) { + const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + let destPos = 3; - for (var j = 0; j < thisChunkHeight; j++) { - var mask = 0; + for (let j = 0; j < thisChunkHeight; j++) { + let elem, + mask = 0; - for (var k = 0; k < width; k++) { + for (let k = 0; k < width; k++) { if (!mask) { - var elem = src[srcPos++]; + elem = src[srcPos++]; mask = 128; } @@ -14691,10 +5060,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function copyCtxState(sourceCtx, destCtx) { - var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font']; + const properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"]; - for (var i = 0, ii = properties.length; i < ii; i++) { - var property = properties[i]; + for (let i = 0, ii = properties.length; i < ii; i++) { + const property = properties[i]; if (sourceCtx[property] !== undefined) { destCtx[property] = sourceCtx[property]; @@ -14708,16 +5077,16 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function resetCtxToDefault(ctx) { - ctx.strokeStyle = '#000000'; - ctx.fillStyle = '#000000'; - ctx.fillRule = 'nonzero'; + ctx.strokeStyle = "#000000"; + ctx.fillStyle = "#000000"; + ctx.fillRule = "nonzero"; ctx.globalAlpha = 1; ctx.lineWidth = 1; - ctx.lineCap = 'butt'; - ctx.lineJoin = 'miter'; + ctx.lineCap = "butt"; + ctx.lineJoin = "miter"; ctx.miterLimit = 10; - ctx.globalCompositeOperation = 'source-over'; - ctx.font = '10px sans-serif'; + ctx.globalCompositeOperation = "source-over"; + ctx.font = "10px sans-serif"; if (ctx.setLineDash !== undefined) { ctx.setLineDash([]); @@ -14726,17 +5095,17 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function composeSMaskBackdrop(bytes, r0, g0, b0) { - var length = bytes.length; + const length = bytes.length; - for (var i = 3; i < length; i += 4) { - var alpha = bytes[i]; + for (let i = 3; i < length; i += 4) { + const alpha = bytes[i]; if (alpha === 0) { bytes[i - 3] = r0; bytes[i - 2] = g0; bytes[i - 1] = b0; } else if (alpha < 255) { - var alpha_ = 255 - alpha; + const alpha_ = 255 - alpha; bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8; bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8; bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8; @@ -14745,44 +5114,44 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } function composeSMaskAlpha(maskData, layerData, transferMap) { - var length = maskData.length; - var scale = 1 / 255; + const length = maskData.length; + const scale = 1 / 255; - for (var i = 3; i < length; i += 4) { - var alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; + for (let i = 3; i < length; i += 4) { + const alpha = transferMap ? transferMap[maskData[i]] : maskData[i]; layerData[i] = layerData[i] * alpha * scale | 0; } } function composeSMaskLuminosity(maskData, layerData, transferMap) { - var length = maskData.length; + const length = maskData.length; - for (var i = 3; i < length; i += 4) { - var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; + for (let i = 3; i < length; i += 4) { + const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28; layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16; } } function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) { - var hasBackdrop = !!backdrop; - var r0 = hasBackdrop ? backdrop[0] : 0; - var g0 = hasBackdrop ? backdrop[1] : 0; - var b0 = hasBackdrop ? backdrop[2] : 0; - var composeFn; + const hasBackdrop = !!backdrop; + const r0 = hasBackdrop ? backdrop[0] : 0; + const g0 = hasBackdrop ? backdrop[1] : 0; + const b0 = hasBackdrop ? backdrop[2] : 0; + let composeFn; - if (subtype === 'Luminosity') { + if (subtype === "Luminosity") { composeFn = composeSMaskLuminosity; } else { composeFn = composeSMaskAlpha; } - var PIXELS_TO_PROCESS = 1048576; - var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + const PIXELS_TO_PROCESS = 1048576; + const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); - for (var row = 0; row < height; row += chunkSize) { - var chunkHeight = Math.min(chunkSize, height - row); - var maskData = maskCtx.getImageData(0, row, width, chunkHeight); - var layerData = layerCtx.getImageData(0, row, width, chunkHeight); + for (let row = 0; row < height; row += chunkSize) { + const chunkHeight = Math.min(chunkSize, height - row); + const maskData = maskCtx.getImageData(0, row, width, chunkHeight); + const layerData = layerCtx.getImageData(0, row, width, chunkHeight); if (hasBackdrop) { composeSMaskBackdrop(maskData.data, r0, g0, b0); @@ -14793,51 +5162,67 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } } - function composeSMask(ctx, smask, layerCtx, webGLContext) { - var mask = smask.canvas; - var maskCtx = smask.context; + function composeSMask(ctx, smask, layerCtx) { + const mask = smask.canvas; + const maskCtx = smask.context; ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY); - var backdrop = smask.backdrop || null; - - if (!smask.transferMap && webGLContext.isEnabled) { - var composed = webGLContext.composeSMask({ - layer: layerCtx.canvas, - mask: mask, - properties: { - subtype: smask.subtype, - backdrop: backdrop - } - }); - ctx.setTransform(1, 0, 0, 1, 0, 0); - ctx.drawImage(composed, smask.offsetX, smask.offsetY); - return; - } - - genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap); + genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, smask.backdrop, smask.transferMap); ctx.drawImage(mask, 0, 0); } - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; - var NORMAL_CLIP = {}; - var EO_CLIP = {}; - CanvasGraphics.prototype = { - beginDrawing: function beginDrawing(_ref) { - var transform = _ref.transform, - viewport = _ref.viewport, - _ref$transparency = _ref.transparency, - transparency = _ref$transparency === void 0 ? false : _ref$transparency, - _ref$background = _ref.background, - background = _ref$background === void 0 ? null : _ref$background; - var width = this.ctx.canvas.width; - var height = this.ctx.canvas.height; + const LINE_CAP_STYLES = ["butt", "round", "square"]; + const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; + const NORMAL_CLIP = {}; + const EO_CLIP = {}; + + class CanvasGraphics { + constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig) { + this.ctx = canvasCtx; + this.current = new CanvasExtraState(); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.imageLayer = imageLayer; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.contentVisible = true; + this.markedContentStack = []; + this.optionalContentConfig = optionalContentConfig; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + + if (canvasCtx) { + addContextCurrentTransform(canvasCtx); + } + + this._cachedGetSinglePixelWidth = null; + } + + beginDrawing({ + transform, + viewport, + transparency = false, + background = null + }) { + const width = this.ctx.canvas.width; + const height = this.ctx.canvas.height; this.ctx.save(); - this.ctx.fillStyle = background || 'rgb(255, 255, 255)'; + this.ctx.fillStyle = background || "rgb(255, 255, 255)"; this.ctx.fillRect(0, 0, width, height); this.ctx.restore(); if (transparency) { - var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true); + const transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height, true); this.compositeCtx = this.ctx; this.transparentCanvas = transparentCanvas.canvas; this.ctx = transparentCanvas.context; @@ -14854,27 +5239,29 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.ctx.transform.apply(this.ctx, viewport.transform); this.baseTransform = this.ctx.mozCurrentTransform.slice(); + this._combinedScaleFactor = Math.hypot(this.baseTransform[0], this.baseTransform[2]); if (this.imageLayer) { this.imageLayer.beginLayout(); } - }, - executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var i = executionStartIdx || 0; - var argsArrayLen = argsArray.length; + } + + executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) { + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + let i = executionStartIdx || 0; + const argsArrayLen = argsArray.length; if (argsArrayLen === i) { return i; } - var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function'; - var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; - var steps = 0; - var commonObjs = this.commonObjs; - var objs = this.objs; - var fnId; + const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function"; + const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0; + let steps = 0; + const commonObjs = this.commonObjs; + const objs = this.objs; + let fnId; while (true) { if (stepper !== undefined && i === stepper.nextBreakPoint) { @@ -14887,32 +5274,12 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (fnId !== _util.OPS.dependency) { this[fnId].apply(this, argsArray[i]); } else { - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + for (const depObjId of argsArray[i]) { + const objsPool = depObjId.startsWith("g_") ? commonObjs : objs; - try { - for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var depObjId = _step.value; - var objsPool = depObjId.startsWith('g_') ? commonObjs : objs; - - if (!objsPool.has(depObjId)) { - objsPool.get(depObjId, continueCallback); - return i; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } + if (!objsPool.has(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; } } } @@ -14932,10 +5299,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { steps = 0; } } - }, - endDrawing: function CanvasGraphics_endDrawing() { - if (this.current.activeSMask !== null) { - this.endSMaskGroup(); + } + + endDrawing() { + while (this.stateStack.length || this.current.activeSMask !== null) { + this.restore(); } this.ctx.restore(); @@ -14950,88 +5318,95 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.cachedCanvases.clear(); - this.webGLContext.clear(); if (this.imageLayer) { this.imageLayer.endLayout(); } - }, - setLineWidth: function CanvasGraphics_setLineWidth(width) { + } + + setLineWidth(width) { this.current.lineWidth = width; this.ctx.lineWidth = width; - }, - setLineCap: function CanvasGraphics_setLineCap(style) { + } + + setLineCap(style) { this.ctx.lineCap = LINE_CAP_STYLES[style]; - }, - setLineJoin: function CanvasGraphics_setLineJoin(style) { + } + + setLineJoin(style) { this.ctx.lineJoin = LINE_JOIN_STYLES[style]; - }, - setMiterLimit: function CanvasGraphics_setMiterLimit(limit) { + } + + setMiterLimit(limit) { this.ctx.miterLimit = limit; - }, - setDash: function CanvasGraphics_setDash(dashArray, dashPhase) { - var ctx = this.ctx; + } + + setDash(dashArray, dashPhase) { + const ctx = this.ctx; if (ctx.setLineDash !== undefined) { ctx.setLineDash(dashArray); ctx.lineDashOffset = dashPhase; } - }, - setRenderingIntent: function setRenderingIntent(intent) {}, - setFlatness: function setFlatness(flatness) {}, - setGState: function CanvasGraphics_setGState(states) { - for (var i = 0, ii = states.length; i < ii; i++) { - var state = states[i]; - var key = state[0]; - var value = state[1]; + } + + setRenderingIntent(intent) {} + + setFlatness(flatness) {} + + setGState(states) { + for (let i = 0, ii = states.length; i < ii; i++) { + const state = states[i]; + const key = state[0]; + const value = state[1]; switch (key) { - case 'LW': + case "LW": this.setLineWidth(value); break; - case 'LC': + case "LC": this.setLineCap(value); break; - case 'LJ': + case "LJ": this.setLineJoin(value); break; - case 'ML': + case "ML": this.setMiterLimit(value); break; - case 'D': + case "D": this.setDash(value[0], value[1]); break; - case 'RI': + case "RI": this.setRenderingIntent(value); break; - case 'FL': + case "FL": this.setFlatness(value); break; - case 'Font': + case "Font": this.setFont(value[0], value[1]); break; - case 'CA': + case "CA": this.current.strokeAlpha = state[1]; break; - case 'ca': + case "ca": this.current.fillAlpha = state[1]; this.ctx.globalAlpha = state[1]; break; - case 'BM': + case "BM": this.ctx.globalCompositeOperation = value; break; - case 'SMask': + case "SMask": if (this.current.activeSMask) { if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) { this.suspendSMaskGroup(); @@ -15048,74 +5423,83 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.tempSMask = null; break; + + case "TR": + this.current.transferMaps = value; } } - }, - beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { - var activeSMask = this.current.activeSMask; - var drawnWidth = activeSMask.canvas.width; - var drawnHeight = activeSMask.canvas.height; - var cacheId = 'smaskGroupAt' + this.groupLevel; - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - var currentCtx = this.ctx; - var currentTransform = currentCtx.mozCurrentTransform; + } + + beginSMaskGroup() { + const activeSMask = this.current.activeSMask; + const drawnWidth = activeSMask.canvas.width; + const drawnHeight = activeSMask.canvas.height; + const cacheId = "smaskGroupAt" + this.groupLevel; + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + const currentCtx = this.ctx; + const currentTransform = currentCtx.mozCurrentTransform; this.ctx.save(); - var groupCtx = scratchCanvas.context; + const groupCtx = scratchCanvas.context; groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY); groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY); groupCtx.transform.apply(groupCtx, currentTransform); activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse; copyCtxState(currentCtx, groupCtx); this.ctx = groupCtx; - this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); this.groupStack.push(currentCtx); this.groupLevel++; - }, - suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.ctx; + } + + suspendSMaskGroup() { + const groupCtx = this.ctx; this.groupLevel--; this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + composeSMask(this.ctx, this.current.activeSMask, groupCtx); this.ctx.restore(); this.ctx.save(); copyCtxState(groupCtx, this.ctx); this.current.resumeSMaskCtx = groupCtx; - var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + const deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); this.ctx.transform.apply(this.ctx, deltaTransform); groupCtx.save(); groupCtx.setTransform(1, 0, 0, 1, 0, 0); groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height); groupCtx.restore(); - }, - resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.current.resumeSMaskCtx; - var currentCtx = this.ctx; + } + + resumeSMaskGroup() { + const groupCtx = this.current.resumeSMaskCtx; + const currentCtx = this.ctx; this.ctx = groupCtx; this.groupStack.push(currentCtx); this.groupLevel++; - }, - endSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var groupCtx = this.ctx; + } + + endSMaskGroup() { + const groupCtx = this.ctx; this.groupLevel--; this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext); + composeSMask(this.ctx, this.current.activeSMask, groupCtx); this.ctx.restore(); copyCtxState(groupCtx, this.ctx); - var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); + const deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform); this.ctx.transform.apply(this.ctx, deltaTransform); - }, - save: function CanvasGraphics_save() { + } + + save() { this.ctx.save(); - var old = this.current; + const old = this.current; this.stateStack.push(old); this.current = old.clone(); this.current.resumeSMaskCtx = null; - }, - restore: function CanvasGraphics_restore() { + } + + restore() { if (this.current.resumeSMaskCtx) { this.resumeSMaskGroup(); } @@ -15129,42 +5513,42 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.ctx.restore(); this.pendingClip = null; this._cachedGetSinglePixelWidth = null; + } else { + this.current.activeSMask = null; } - }, - transform: function CanvasGraphics_transform(a, b, c, d, e, f) { + } + + transform(a, b, c, d, e, f) { this.ctx.transform(a, b, c, d, e, f); this._cachedGetSinglePixelWidth = null; - }, - constructPath: function CanvasGraphics_constructPath(ops, args) { - var ctx = this.ctx; - var current = this.current; - var x = current.x, + } + + constructPath(ops, args) { + const ctx = this.ctx; + const current = this.current; + let x = current.x, y = current.y; - for (var i = 0, j = 0, ii = ops.length; i < ii; i++) { + for (let i = 0, j = 0, ii = ops.length; i < ii; i++) { switch (ops[i] | 0) { case _util.OPS.rectangle: x = args[j++]; y = args[j++]; - var width = args[j++]; - var height = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + ctx.moveTo(x, y); - if (width === 0) { - width = this.getSinglePixelWidth(); + if (width === 0 || height === 0) { + ctx.lineTo(xw, yh); + } else { + ctx.lineTo(xw, y); + ctx.lineTo(xw, yh); + ctx.lineTo(x, yh); } - if (height === 0) { - height = this.getSinglePixelWidth(); - } - - var xw = x + width; - var yh = y + height; - this.ctx.moveTo(x, y); - this.ctx.lineTo(xw, y); - this.ctx.lineTo(xw, yh); - this.ctx.lineTo(x, yh); - this.ctx.lineTo(x, y); - this.ctx.closePath(); + ctx.closePath(); break; case _util.OPS.moveTo: @@ -15207,24 +5591,40 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } current.setCurrentPoint(x, y); - }, - closePath: function CanvasGraphics_closePath() { + } + + closePath() { this.ctx.closePath(); - }, - stroke: function CanvasGraphics_stroke(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var strokeColor = this.current.strokeColor; - ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth); + } + + stroke(consumePath) { + consumePath = typeof consumePath !== "undefined" ? consumePath : true; + const ctx = this.ctx; + const strokeColor = this.current.strokeColor; ctx.globalAlpha = this.current.strokeAlpha; - if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') { - ctx.save(); - ctx.strokeStyle = strokeColor.getPattern(ctx, this); - ctx.stroke(); - ctx.restore(); - } else { - ctx.stroke(); + if (this.contentVisible) { + if (typeof strokeColor === "object" && strokeColor?.getPattern) { + const lineWidth = this.getSinglePixelWidth(); + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this); + ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth); + ctx.stroke(); + ctx.restore(); + } else { + const lineWidth = this.getSinglePixelWidth(); + + if (lineWidth < 0 && -lineWidth >= this.current.lineWidth) { + ctx.save(); + ctx.resetTransform(); + ctx.lineWidth = Math.round(this._combinedScaleFactor); + ctx.stroke(); + ctx.restore(); + } else { + ctx.lineWidth = Math.max(lineWidth, this.current.lineWidth); + ctx.stroke(); + } + } } if (consumePath) { @@ -15232,34 +5632,33 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } ctx.globalAlpha = this.current.fillAlpha; - }, - closeStroke: function CanvasGraphics_closeStroke() { + } + + closeStroke() { this.closePath(); this.stroke(); - }, - fill: function CanvasGraphics_fill(consumePath) { - consumePath = typeof consumePath !== 'undefined' ? consumePath : true; - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var needRestore = false; + } + + fill(consumePath) { + consumePath = typeof consumePath !== "undefined" ? consumePath : true; + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + let needRestore = false; if (isPatternFill) { ctx.save(); - - if (this.baseTransform) { - ctx.setTransform.apply(ctx, this.baseTransform); - } - ctx.fillStyle = fillColor.getPattern(ctx, this); needRestore = true; } - if (this.pendingEOFill) { - ctx.fill('evenodd'); - this.pendingEOFill = false; - } else { - ctx.fill(); + if (this.contentVisible) { + if (this.pendingEOFill) { + ctx.fill("evenodd"); + this.pendingEOFill = false; + } else { + ctx.fill(); + } } if (needRestore) { @@ -15269,47 +5668,57 @@ var CanvasGraphics = function CanvasGraphicsClosure() { if (consumePath) { this.consumePath(); } - }, - eoFill: function CanvasGraphics_eoFill() { + } + + eoFill() { this.pendingEOFill = true; this.fill(); - }, - fillStroke: function CanvasGraphics_fillStroke() { + } + + fillStroke() { this.fill(false); this.stroke(false); this.consumePath(); - }, - eoFillStroke: function CanvasGraphics_eoFillStroke() { + } + + eoFillStroke() { this.pendingEOFill = true; this.fillStroke(); - }, - closeFillStroke: function CanvasGraphics_closeFillStroke() { + } + + closeFillStroke() { this.closePath(); this.fillStroke(); - }, - closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { + } + + closeEOFillStroke() { this.pendingEOFill = true; this.closePath(); this.fillStroke(); - }, - endPath: function CanvasGraphics_endPath() { + } + + endPath() { this.consumePath(); - }, - clip: function CanvasGraphics_clip() { + } + + clip() { this.pendingClip = NORMAL_CLIP; - }, - eoClip: function CanvasGraphics_eoClip() { + } + + eoClip() { this.pendingClip = EO_CLIP; - }, - beginText: function CanvasGraphics_beginText() { + } + + beginText() { this.current.textMatrix = _util.IDENTITY_MATRIX; this.current.textMatrixScale = 1; this.current.x = this.current.lineX = 0; this.current.y = this.current.lineY = 0; - }, - endText: function CanvasGraphics_endText() { - var paths = this.pendingTextPaths; - var ctx = this.ctx; + } + + endText() { + const paths = this.pendingTextPaths; + const ctx = this.ctx; if (paths === undefined) { ctx.beginPath(); @@ -15319,8 +5728,8 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.save(); ctx.beginPath(); - for (var i = 0; i < paths.length; i++) { - var path = paths[i]; + for (let i = 0; i < paths.length; i++) { + const path = paths[i]; ctx.setTransform.apply(ctx, path.transform); ctx.translate(path.x, path.y); path.addToPath(ctx, path.fontSize); @@ -15330,31 +5739,36 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.clip(); ctx.beginPath(); delete this.pendingTextPaths; - }, - setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) { + } + + setCharSpacing(spacing) { this.current.charSpacing = spacing; - }, - setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) { + } + + setWordSpacing(spacing) { this.current.wordSpacing = spacing; - }, - setHScale: function CanvasGraphics_setHScale(scale) { + } + + setHScale(scale) { this.current.textHScale = scale / 100; - }, - setLeading: function CanvasGraphics_setLeading(leading) { + } + + setLeading(leading) { this.current.leading = -leading; - }, - setFont: function CanvasGraphics_setFont(fontRefName, size) { - var fontObj = this.commonObjs.get(fontRefName); - var current = this.current; + } + + setFont(fontRefName, size) { + const fontObj = this.commonObjs.get(fontRefName); + const current = this.current; if (!fontObj) { - throw new Error("Can't find font for ".concat(fontRefName)); + throw new Error(`Can't find font for ${fontRefName}`); } - current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) { - (0, _util.warn)('Invalid font matrix for font ' + fontRefName); + (0, _util.warn)("Invalid font matrix for font " + fontRefName); } if (size < 0) { @@ -15371,47 +5785,68 @@ var CanvasGraphics = function CanvasGraphicsClosure() { return; } - var name = fontObj.loadedName || 'sans-serif'; - var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal'; - var italic = fontObj.italic ? 'italic' : 'normal'; - var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName); - var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size; + const name = fontObj.loadedName || "sans-serif"; + let bold = "normal"; + + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + + const italic = fontObj.italic ? "italic" : "normal"; + const typeface = `"${name}", ${fontObj.fallbackName}`; + let browserFontSize = size; + + if (size < MIN_FONT_SIZE) { + browserFontSize = MIN_FONT_SIZE; + } else if (size > MAX_FONT_SIZE) { + browserFontSize = MAX_FONT_SIZE; + } + this.current.fontSizeScale = size / browserFontSize; - this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface); - }, - setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) { + this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`; + } + + setTextRenderingMode(mode) { this.current.textRenderingMode = mode; - }, - setTextRise: function CanvasGraphics_setTextRise(rise) { + } + + setTextRise(rise) { this.current.textRise = rise; - }, - moveText: function CanvasGraphics_moveText(x, y) { + } + + moveText(x, y) { this.current.x = this.current.lineX += x; this.current.y = this.current.lineY += y; - }, - setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) { + } + + setLeadingMoveText(x, y) { this.setLeading(-y); this.moveText(x, y); - }, - setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) { + } + + setTextMatrix(a, b, c, d, e, f) { this.current.textMatrix = [a, b, c, d, e, f]; - this.current.textMatrixScale = Math.sqrt(a * a + b * b); + this.current.textMatrixScale = Math.hypot(a, b); this.current.x = this.current.lineX = 0; this.current.y = this.current.lineY = 0; - }, - nextLine: function CanvasGraphics_nextLine() { + } + + nextLine() { this.moveText(0, this.current.leading); - }, - paintChar: function paintChar(character, x, y, patternTransform) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var textRenderingMode = current.textRenderingMode; - var fontSize = current.fontSize / current.fontSizeScale; - var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); - var patternFill = current.patternFill && font.data; - var addToPath; + } + + paintChar(character, x, y, patternTransform, resetLineWidthToOne) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const textRenderingMode = current.textRenderingMode; + const fontSize = current.fontSize / current.fontSizeScale; + const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG); + const patternFill = current.patternFill && !font.missingFile; + let addToPath; if (font.disableFontFace || isAddToPathSet || patternFill) { addToPath = font.getPathGenerator(this.commonObjs, character); @@ -15432,6 +5867,11 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (resetLineWidthToOne) { + ctx.resetTransform(); + ctx.lineWidth = Math.round(this._combinedScaleFactor); + } + ctx.stroke(); } @@ -15442,73 +5882,82 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - ctx.strokeText(character, x, y); + if (resetLineWidthToOne) { + ctx.save(); + ctx.moveTo(x, y); + ctx.resetTransform(); + ctx.lineWidth = Math.round(this._combinedScaleFactor); + ctx.strokeText(character, 0, 0); + ctx.restore(); + } else { + ctx.strokeText(character, x, y); + } } } if (isAddToPathSet) { - var paths = this.pendingTextPaths || (this.pendingTextPaths = []); + const paths = this.pendingTextPaths || (this.pendingTextPaths = []); paths.push({ transform: ctx.mozCurrentTransform, - x: x, - y: y, - fontSize: fontSize, - addToPath: addToPath + x, + y, + fontSize, + addToPath }); } - }, + } get isFontSubpixelAAEnabled() { - var _this$cachedCanvases$ = this.cachedCanvases.getCanvas('isFontSubpixelAAEnabled', 10, 10), - ctx = _this$cachedCanvases$.context; - + const { + context: ctx + } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); ctx.scale(1.5, 1); - ctx.fillText('I', 0, 10); - var data = ctx.getImageData(0, 0, 10, 10).data; - var enabled = false; + ctx.fillText("I", 0, 10); + const data = ctx.getImageData(0, 0, 10, 10).data; + let enabled = false; - for (var i = 3; i < data.length; i += 4) { + for (let i = 3; i < data.length; i += 4) { if (data[i] > 0 && data[i] < 255) { enabled = true; break; } } - return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled); - }, + return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled); + } - showText: function CanvasGraphics_showText(glyphs) { - var current = this.current; - var font = current.font; + showText(glyphs) { + const current = this.current; + const font = current.font; if (font.isType3Font) { return this.showType3Text(glyphs); } - var fontSize = current.fontSize; + const fontSize = current.fontSize; if (fontSize === 0) { return undefined; } - var ctx = this.ctx; - var fontSizeScale = current.fontSizeScale; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var glyphsLength = glyphs.length; - var vertical = font.vertical; - var spacingDir = vertical ? 1 : -1; - var defaultVMetrics = font.defaultVMetrics; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; + const ctx = this.ctx; + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const glyphsLength = glyphs.length; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill; ctx.save(); - var patternTransform; + let patternTransform; if (current.patternFill) { ctx.save(); - var pattern = current.fillColor.getPattern(ctx, this); + const pattern = current.fillColor.getPattern(ctx, this); patternTransform = ctx.mozCurrentTransform; ctx.restore(); ctx.fillStyle = pattern; @@ -15523,15 +5972,17 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.scale(textHScale, 1); } - var lineWidth = current.lineWidth; - var scale = current.textMatrixScale; + let lineWidth = current.lineWidth; + let resetLineWidthToOne = false; + const scale = current.textMatrixScale; if (scale === 0 || lineWidth === 0) { - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { this._cachedGetSinglePixelWidth = null; - lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR; + lineWidth = this.getSinglePixelWidth(); + resetLineWidthToOne = lineWidth < 0; } } else { lineWidth /= scale; @@ -15543,30 +5994,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } ctx.lineWidth = lineWidth; - var x = 0, + let x = 0, i; for (i = 0; i < glyphsLength; ++i) { - var glyph = glyphs[i]; + const glyph = glyphs[i]; if ((0, _util.isNum)(glyph)) { x += spacingDir * glyph * fontSize / 1000; continue; } - var restoreNeeded = false; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var character = glyph.fontChar; - var accent = glyph.accent; - var scaledX, scaledY, scaledAccentX, scaledAccentY; - var width = glyph.width; + let restoreNeeded = false; + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + const accent = glyph.accent; + let scaledX, scaledY; + let width = glyph.width; if (vertical) { - var vmetric, vx, vy; - vmetric = glyph.vmetric || defaultVMetrics; - vx = glyph.vmetric ? vmetric[1] : width * 0.5; - vx = -vx * widthAdvanceScale; - vy = vmetric[2] * widthAdvanceScale; + const vmetric = glyph.vmetric || defaultVMetrics; + const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; width = vmetric ? -vmetric[0] : width; scaledX = vx / fontSizeScale; scaledY = (x + vy) / fontSizeScale; @@ -15576,10 +6025,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (font.remeasure && width > 0) { - var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; if (width < measuredWidth && this.isFontSubpixelAAEnabled) { - var characterScaleX = width / measuredWidth; + const characterScaleX = width / measuredWidth; restoreNeeded = true; ctx.save(); ctx.scale(characterScaleX, 1); @@ -15589,21 +6038,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } } - if (glyph.isInFont || font.missingFile) { + if (this.contentVisible && (glyph.isInFont || font.missingFile)) { if (simpleFillText && !accent) { ctx.fillText(character, scaledX, scaledY); } else { - this.paintChar(character, scaledX, scaledY, patternTransform); + this.paintChar(character, scaledX, scaledY, patternTransform, resetLineWidthToOne); if (accent) { - scaledAccentX = scaledX + accent.offset.x / fontSizeScale; - scaledAccentY = scaledY - accent.offset.y / fontSizeScale; - this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; + const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform, resetLineWidthToOne); } } } - var charWidth = width * widthAdvanceScale + spacing * fontDirection; + let charWidth; + + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; + } else { + charWidth = width * widthAdvanceScale + spacing * fontDirection; + } + x += charWidth; if (restoreNeeded) { @@ -15612,27 +6068,29 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } if (vertical) { - current.y -= x * textHScale; + current.y -= x; } else { current.x += x * textHScale; } ctx.restore(); - }, - showType3Text: function CanvasGraphics_showType3Text(glyphs) { - var ctx = this.ctx; - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - var fontDirection = current.fontDirection; - var spacingDir = font.vertical ? 1 : -1; - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var textHScale = current.textHScale * fontDirection; - var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; - var glyphsLength = glyphs.length; - var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; - var i, glyph, width, spacingLength; + return undefined; + } + + showType3Text(glyphs) { + const ctx = this.ctx; + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + const fontDirection = current.fontDirection; + const spacingDir = font.vertical ? 1 : -1; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const textHScale = current.textHScale * fontDirection; + const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX; + const glyphsLength = glyphs.length; + const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE; + let i, glyph, width, spacingLength; if (isTextInvisible || fontSize === 0) { return; @@ -15654,22 +6112,24 @@ var CanvasGraphics = function CanvasGraphicsClosure() { continue; } - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var operatorList = font.charProcOperatorList[glyph.operatorListId]; + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const operatorList = font.charProcOperatorList[glyph.operatorListId]; if (!operatorList) { - (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available.")); + (0, _util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`); continue; } - this.processingType3 = glyph; - this.save(); - ctx.scale(fontSize, fontSize); - ctx.transform.apply(ctx, fontMatrix); - this.executeOperatorList(operatorList); - this.restore(); + if (this.contentVisible) { + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform.apply(ctx, fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + } - var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); + const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); width = transformed[0] * fontSize + spacing; ctx.translate(width, 0); @@ -15678,91 +6138,108 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.restore(); this.processingType3 = null; - }, - setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {}, - setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + } + + setCharWidth(xWidth, yWidth) {} + + setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { this.ctx.rect(llx, lly, urx - llx, ury - lly); this.clip(); this.endPath(); - }, - getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) { - var _this = this; + } - var pattern; + getColorN_Pattern(IR) { + let pattern; - if (IR[0] === 'TilingPattern') { - var color = IR[1]; - var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); - var canvasGraphicsFactory = { - createCanvasGraphics: function createCanvasGraphics(ctx) { - return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext); + if (IR[0] === "TilingPattern") { + const color = IR[1]; + const baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice(); + const canvasGraphicsFactory = { + createCanvasGraphics: ctx => { + return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory); } }; pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); } else { - pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR); + pattern = (0, _pattern_helper.getShadingPattern)(IR); } return pattern; - }, - setStrokeColorN: function CanvasGraphics_setStrokeColorN() { + } + + setStrokeColorN() { this.current.strokeColor = this.getColorN_Pattern(arguments); - }, - setFillColorN: function CanvasGraphics_setFillColorN() { + } + + setFillColorN() { this.current.fillColor = this.getColorN_Pattern(arguments); this.current.patternFill = true; - }, - setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); + } + + setStrokeRGBColor(r, g, b) { + const color = _util.Util.makeHexColor(r, g, b); this.ctx.strokeStyle = color; this.current.strokeColor = color; - }, - setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) { - var color = _util.Util.makeCssRgb(r, g, b); + } + + setFillRGBColor(r, g, b) { + const color = _util.Util.makeHexColor(r, g, b); this.ctx.fillStyle = color; this.current.fillColor = color; this.current.patternFill = false; - }, - shadingFill: function CanvasGraphics_shadingFill(patternIR) { - var ctx = this.ctx; + } + + shadingFill(patternIR) { + if (!this.contentVisible) { + return; + } + + const ctx = this.ctx; this.save(); - var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR); + const pattern = (0, _pattern_helper.getShadingPattern)(patternIR); ctx.fillStyle = pattern.getPattern(ctx, this, true); - var inv = ctx.mozCurrentTransformInverse; + const inv = ctx.mozCurrentTransformInverse; if (inv) { - var canvas = ctx.canvas; - var width = canvas.width; - var height = canvas.height; + const canvas = ctx.canvas; + const width = canvas.width; + const height = canvas.height; - var bl = _util.Util.applyTransform([0, 0], inv); + const bl = _util.Util.applyTransform([0, 0], inv); - var br = _util.Util.applyTransform([0, height], inv); + const br = _util.Util.applyTransform([0, height], inv); - var ul = _util.Util.applyTransform([width, 0], inv); + const ul = _util.Util.applyTransform([width, 0], inv); - var ur = _util.Util.applyTransform([width, height], inv); + const ur = _util.Util.applyTransform([width, height], inv); - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); } else { this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); } this.restore(); - }, - beginInlineImage: function CanvasGraphics_beginInlineImage() { - (0, _util.unreachable)('Should not call beginInlineImage'); - }, - beginImageData: function CanvasGraphics_beginImageData() { - (0, _util.unreachable)('Should not call beginImageData'); - }, - paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) { + } + + beginInlineImage() { + (0, _util.unreachable)("Should not call beginInlineImage"); + } + + beginImageData() { + (0, _util.unreachable)("Should not call beginImageData"); + } + + paintFormXObjectBegin(matrix, bbox) { + if (!this.contentVisible) { + return; + } + this.save(); this.baseTransformStack.push(this.baseTransform); @@ -15773,48 +6250,58 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.baseTransform = this.ctx.mozCurrentTransform; if (bbox) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; this.ctx.rect(bbox[0], bbox[1], width, height); this.clip(); this.endPath(); } - }, - paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { + } + + paintFormXObjectEnd() { + if (!this.contentVisible) { + return; + } + this.restore(); this.baseTransform = this.baseTransformStack.pop(); - }, - beginGroup: function CanvasGraphics_beginGroup(group) { + } + + beginGroup(group) { + if (!this.contentVisible) { + return; + } + this.save(); - var currentCtx = this.ctx; + const currentCtx = this.ctx; if (!group.isolated) { - (0, _util.info)('TODO: Support non-isolated groups.'); + (0, _util.info)("TODO: Support non-isolated groups."); } if (group.knockout) { - (0, _util.warn)('Knockout groups not supported.'); + (0, _util.warn)("Knockout groups not supported."); } - var currentTransform = currentCtx.mozCurrentTransform; + const currentTransform = currentCtx.mozCurrentTransform; if (group.matrix) { currentCtx.transform.apply(currentCtx, group.matrix); } if (!group.bbox) { - throw new Error('Bounding box is required.'); + throw new Error("Bounding box is required."); } - var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); + let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform); - var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; + const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); - var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); - var scaleX = 1, + const offsetX = Math.floor(bounds[0]); + const offsetY = Math.floor(bounds[1]); + let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1); + let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1); + let scaleX = 1, scaleY = 1; if (drawnWidth > MAX_GROUP_SIZE) { @@ -15827,14 +6314,14 @@ var CanvasGraphics = function CanvasGraphicsClosure() { drawnHeight = MAX_GROUP_SIZE; } - var cacheId = 'groupAt' + this.groupLevel; + let cacheId = "groupAt" + this.groupLevel; if (group.smask) { - cacheId += '_smask_' + this.smaskCounter++ % 2; + cacheId += "_smask_" + this.smaskCounter++ % 2; } - var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); - var groupCtx = scratchCanvas.context; + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true); + const groupCtx = scratchCanvas.context; groupCtx.scale(1 / scaleX, 1 / scaleY); groupCtx.translate(-offsetX, -offsetY); groupCtx.transform.apply(groupCtx, currentTransform); @@ -15843,10 +6330,10 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.smaskStack.push({ canvas: scratchCanvas.canvas, context: groupCtx, - offsetX: offsetX, - offsetY: offsetY, - scaleX: scaleX, - scaleY: scaleY, + offsetX, + offsetY, + scaleX, + scaleY, subtype: group.smask.subtype, backdrop: group.smask.backdrop, transferMap: group.smask.transferMap || null, @@ -15860,14 +6347,19 @@ var CanvasGraphics = function CanvasGraphicsClosure() { copyCtxState(currentCtx, groupCtx); this.ctx = groupCtx; - this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]); + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); this.groupStack.push(currentCtx); this.groupLevel++; this.current.activeSMask = null; - }, - endGroup: function CanvasGraphics_endGroup(group) { + } + + endGroup(group) { + if (!this.contentVisible) { + return; + } + this.groupLevel--; - var groupCtx = this.ctx; + const groupCtx = this.ctx; this.ctx = this.groupStack.pop(); if (this.ctx.imageSmoothingEnabled !== undefined) { @@ -15883,25 +6375,28 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.restore(); - }, - beginAnnotations: function CanvasGraphics_beginAnnotations() { + } + + beginAnnotations() { this.save(); if (this.baseTransform) { this.ctx.setTransform.apply(this.ctx, this.baseTransform); } - }, - endAnnotations: function CanvasGraphics_endAnnotations() { + } + + endAnnotations() { this.restore(); - }, - beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) { + } + + beginAnnotation(rect, transform, matrix) { this.save(); resetCtxToDefault(this.ctx); this.current = new CanvasExtraState(); if (Array.isArray(rect) && rect.length === 4) { - var width = rect[2] - rect[0]; - var height = rect[3] - rect[1]; + const width = rect[2] - rect[0]; + const height = rect[3] - rect[1]; this.ctx.rect(rect[0], rect[1], width, height); this.clip(); this.endPath(); @@ -15909,109 +6404,98 @@ var CanvasGraphics = function CanvasGraphicsClosure() { this.transform.apply(this, transform); this.transform.apply(this, matrix); - }, - endAnnotation: function CanvasGraphics_endAnnotation() { - this.restore(); - }, - paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) { - var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + } - if (!domImage) { - (0, _util.warn)('Dependent image isn\'t ready yet'); + endAnnotation() { + this.restore(); + } + + paintImageMaskXObject(img) { + if (!this.contentVisible) { return; } - this.save(); - var ctx = this.ctx; - ctx.scale(1 / w, -1 / h); - ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h); - - if (this.imageLayer) { - var currentTransform = ctx.mozCurrentTransformInverse; - var position = this.getCanvasPosition(0, 0); - this.imageLayer.appendImage({ - objId: objId, - left: position[0], - top: position[1], - width: w / currentTransform[0], - height: h / currentTransform[3] - }); - } - - this.restore(); - }, - paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) { - var ctx = this.ctx; - var width = img.width, - height = img.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var glyph = this.processingType3; + const ctx = this.ctx; + const width = img.width, + height = img.height; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + const glyph = this.processingType3; if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) { if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) { glyph.compiled = compileType3Glyph({ data: img.data, - width: width, - height: height + width, + height }); } else { glyph.compiled = null; } } - if (glyph && glyph.compiled) { + if (glyph?.compiled) { glyph.compiled(ctx); return; } - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; maskCtx.save(); putBinaryImageMask(maskCtx, img); - maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.globalCompositeOperation = "source-in"; maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; maskCtx.fillRect(0, 0, width, height); maskCtx.restore(); this.paintInlineImageXObject(maskCanvas.canvas); - }, - paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) { - var width = imgData.width; - var height = imgData.height; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; + } + + paintImageMaskXObjectRepeat(imgData, scaleX, skewX = 0, skewY = 0, scaleY, positions) { + if (!this.contentVisible) { + return; + } + + const width = imgData.width; + const height = imgData.height; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; maskCtx.save(); putBinaryImageMask(maskCtx, imgData); - maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.globalCompositeOperation = "source-in"; maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; maskCtx.fillRect(0, 0, width, height); maskCtx.restore(); - var ctx = this.ctx; + const ctx = this.ctx; - for (var i = 0, ii = positions.length; i < ii; i += 2) { + for (let i = 0, ii = positions.length; i < ii; i += 2) { ctx.save(); - ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]); + ctx.transform(scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]); ctx.scale(1, -1); ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); ctx.restore(); } - }, - paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) { - var ctx = this.ctx; - var fillColor = this.current.fillColor; - var isPatternFill = this.current.patternFill; + } - for (var i = 0, ii = images.length; i < ii; i++) { - var image = images[i]; - var width = image.width, - height = image.height; - var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height); - var maskCtx = maskCanvas.context; + paintImageMaskXObjectGroup(images) { + if (!this.contentVisible) { + return; + } + + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + + for (let i = 0, ii = images.length; i < ii; i++) { + const image = images[i]; + const width = image.width, + height = image.height; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; maskCtx.save(); putBinaryImageMask(maskCtx, image); - maskCtx.globalCompositeOperation = 'source-in'; + maskCtx.globalCompositeOperation = "source-in"; maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor; maskCtx.fillRect(0, 0, width, height); maskCtx.restore(); @@ -16021,30 +6505,40 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); ctx.restore(); } - }, - paintImageXObject: function CanvasGraphics_paintImageXObject(objId) { - var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + } + + paintImageXObject(objId) { + if (!this.contentVisible) { + return; + } + + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); if (!imgData) { - (0, _util.warn)('Dependent image isn\'t ready yet'); + (0, _util.warn)("Dependent image isn't ready yet"); return; } this.paintInlineImageXObject(imgData); - }, - paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { - var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId); + } - if (!imgData) { - (0, _util.warn)('Dependent image isn\'t ready yet'); + paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + if (!this.contentVisible) { return; } - var width = imgData.width; - var height = imgData.height; - var map = []; + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); - for (var i = 0, ii = positions.length; i < ii; i += 2) { + if (!imgData) { + (0, _util.warn)("Dependent image isn't ready yet"); + return; + } + + const width = imgData.width; + const height = imgData.height; + const map = []; + + for (let i = 0, ii = positions.length; i < ii; i += 2) { map.push({ transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]], x: 0, @@ -16055,37 +6549,38 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.paintInlineImageXObjectGroup(imgData, map); - }, - paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) { - var width = imgData.width; - var height = imgData.height; - var ctx = this.ctx; + } + + paintInlineImageXObject(imgData) { + if (!this.contentVisible) { + return; + } + + const width = imgData.width; + const height = imgData.height; + const ctx = this.ctx; this.save(); ctx.scale(1 / width, -1 / height); - var currentTransform = ctx.mozCurrentTransformInverse; - var a = currentTransform[0], - b = currentTransform[1]; - var widthScale = Math.max(Math.sqrt(a * a + b * b), 1); - var c = currentTransform[2], - d = currentTransform[3]; - var heightScale = Math.max(Math.sqrt(c * c + d * d), 1); - var imgToPaint, tmpCanvas; + const currentTransform = ctx.mozCurrentTransformInverse; + let widthScale = Math.max(Math.hypot(currentTransform[0], currentTransform[1]), 1); + let heightScale = Math.max(Math.hypot(currentTransform[2], currentTransform[3]), 1); + let imgToPaint, tmpCanvas, tmpCtx; - if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) { + if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { imgToPaint = imgData; } else { - tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); + tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); + tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); imgToPaint = tmpCanvas.canvas; } - var paintWidth = width, + let paintWidth = width, paintHeight = height; - var tmpCanvasId = 'prescale1'; + let tmpCanvasId = "prescale1"; while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { - var newWidth = paintWidth, + let newWidth = paintWidth, newHeight = paintHeight; if (widthScale > 2 && paintWidth > 1) { @@ -16105,15 +6600,15 @@ var CanvasGraphics = function CanvasGraphicsClosure() { imgToPaint = tmpCanvas.canvas; paintWidth = newWidth; paintHeight = newHeight; - tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1'; + tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; } ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height); if (this.imageLayer) { - var position = this.getCanvasPosition(0, -height); + const position = this.getCanvasPosition(0, -height); this.imageLayer.appendImage({ - imgData: imgData, + imgData, left: position[0], top: position[1], width: width / currentTransform[0], @@ -16122,26 +6617,31 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } this.restore(); - }, - paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) { - var ctx = this.ctx; - var w = imgData.width; - var h = imgData.height; - var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h); - var tmpCtx = tmpCanvas.context; - putBinaryImageData(tmpCtx, imgData); + } - for (var i = 0, ii = map.length; i < ii; i++) { - var entry = map[i]; + paintInlineImageXObjectGroup(imgData, map) { + if (!this.contentVisible) { + return; + } + + const ctx = this.ctx; + const w = imgData.width; + const h = imgData.height; + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData, this.current.transferMaps); + + for (let i = 0, ii = map.length; i < ii; i++) { + const entry = map[i]; ctx.save(); ctx.transform.apply(ctx, entry.transform); ctx.scale(1, -1); ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); if (this.imageLayer) { - var position = this.getCanvasPosition(entry.x, entry.y); + const position = this.getCanvasPosition(entry.x, entry.y); this.imageLayer.appendImage({ - imgData: imgData, + imgData, left: position[0], top: position[1], width: w, @@ -16151,26 +6651,55 @@ var CanvasGraphics = function CanvasGraphicsClosure() { ctx.restore(); } - }, - paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { + } + + paintSolidColorImageMask() { + if (!this.contentVisible) { + return; + } + this.ctx.fillRect(0, 0, 1, 1); - }, - paintXObject: function CanvasGraphics_paintXObject() { - (0, _util.warn)('Unsupported \'paintXObject\' command.'); - }, - markPoint: function CanvasGraphics_markPoint(tag) {}, - markPointProps: function CanvasGraphics_markPointProps(tag, properties) {}, - beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {}, - beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {}, - endMarkedContent: function CanvasGraphics_endMarkedContent() {}, - beginCompat: function CanvasGraphics_beginCompat() {}, - endCompat: function CanvasGraphics_endCompat() {}, - consumePath: function CanvasGraphics_consumePath() { - var ctx = this.ctx; + } + + markPoint(tag) {} + + markPointProps(tag, properties) {} + + beginMarkedContent(tag) { + this.markedContentStack.push({ + visible: true + }); + } + + beginMarkedContentProps(tag, properties) { + if (tag === "OC") { + this.markedContentStack.push({ + visible: this.optionalContentConfig.isVisible(properties) + }); + } else { + this.markedContentStack.push({ + visible: true + }); + } + + this.contentVisible = this.isContentVisible(); + } + + endMarkedContent() { + this.markedContentStack.pop(); + this.contentVisible = this.isContentVisible(); + } + + beginCompat() {} + + endCompat() {} + + consumePath() { + const ctx = this.ctx; if (this.pendingClip) { if (this.pendingClip === EO_CLIP) { - ctx.clip('evenodd'); + ctx.clip("evenodd"); } else { ctx.clip(); } @@ -16179,22 +6708,46 @@ var CanvasGraphics = function CanvasGraphicsClosure() { } ctx.beginPath(); - }, - getSinglePixelWidth: function getSinglePixelWidth(scale) { + } + + getSinglePixelWidth() { if (this._cachedGetSinglePixelWidth === null) { - var inverse = this.ctx.mozCurrentTransformInverse; - this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3])); + const m = this.ctx.mozCurrentTransform; + const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); + const sqNorm1 = m[0] ** 2 + m[2] ** 2; + const sqNorm2 = m[1] ** 2 + m[3] ** 2; + const pixelHeight = Math.sqrt(Math.max(sqNorm1, sqNorm2)) / absDet; + + if (sqNorm1 !== sqNorm2 && this._combinedScaleFactor * pixelHeight > 1) { + this._cachedGetSinglePixelWidth = -(this._combinedScaleFactor * pixelHeight); + } else if (absDet > Number.EPSILON) { + this._cachedGetSinglePixelWidth = pixelHeight; + } else { + this._cachedGetSinglePixelWidth = 1; + } } return this._cachedGetSinglePixelWidth; - }, - getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) { - var transform = this.ctx.mozCurrentTransform; + } + + getCanvasPosition(x, y) { + const transform = this.ctx.mozCurrentTransform; return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]]; } - }; - for (var op in _util.OPS) { + isContentVisible() { + for (let i = this.markedContentStack.length - 1; i >= 0; i--) { + if (!this.markedContentStack[i].visible) { + return false; + } + } + + return true; + } + + } + + for (const op in _util.OPS) { CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; } @@ -16204,323 +6757,401 @@ var CanvasGraphics = function CanvasGraphicsClosure() { exports.CanvasGraphics = CanvasGraphics; /***/ }), -/* 155 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 11 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.getShadingPatternFromIR = getShadingPatternFromIR; +})); +exports.getShadingPattern = getShadingPattern; exports.TilingPattern = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var ShadingIRs = {}; -ShadingIRs.RadialAxial = { - fromIR: function RadialAxial_fromIR(raw) { - var type = raw[1]; - var colorStops = raw[2]; - var p0 = raw[3]; - var p1 = raw[4]; - var r0 = raw[5]; - var r1 = raw[6]; - return { - type: 'Pattern', - getPattern: function RadialAxial_getPattern(ctx) { - var grad; +let svgElement; - if (type === 'axial') { - grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]); - } else if (type === 'radial') { - grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1); - } - - for (var i = 0, ii = colorStops.length; i < ii; ++i) { - var c = colorStops[i]; - grad.addColorStop(c[0], c[1]); - } - - return grad; - } - }; +function createMatrix(matrix) { + if (typeof DOMMatrix !== "undefined") { + return new DOMMatrix(matrix); } -}; -var createMeshCanvas = function createMeshCanvasClosure() { - function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { - var coords = context.coords, + if (!svgElement) { + svgElement = document.createElementNS("http://www.w3.org/2000/svg", "svg"); + } + + return svgElement.createSVGMatrix(matrix); +} + +function applyBoundingBox(ctx, bbox) { + if (!bbox || typeof Path2D === "undefined") { + return; + } + + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const region = new Path2D(); + region.rect(bbox[0], bbox[1], width, height); + ctx.clip(region); +} + +class BaseShadingPattern { + constructor() { + if (this.constructor === BaseShadingPattern) { + (0, _util.unreachable)("Cannot initialize BaseShadingPattern."); + } + } + + getPattern() { + (0, _util.unreachable)("Abstract method `getPattern` called."); + } + +} + +class RadialAxialShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._type = IR[1]; + this._bbox = IR[2]; + this._colorStops = IR[3]; + this._p0 = IR[4]; + this._p1 = IR[5]; + this._r0 = IR[6]; + this._r1 = IR[7]; + this._matrix = IR[8]; + } + + getPattern(ctx, owner, shadingFill) { + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", ctx.canvas.width, ctx.canvas.height, true); + const tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + tmpCtx.beginPath(); + tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height); + + if (!shadingFill) { + tmpCtx.setTransform.apply(tmpCtx, owner.baseTransform); + + if (this._matrix) { + tmpCtx.transform.apply(tmpCtx, this._matrix); + } + } else { + tmpCtx.setTransform.apply(tmpCtx, ctx.mozCurrentTransform); + } + + applyBoundingBox(tmpCtx, this._bbox); + let grad; + + if (this._type === "axial") { + grad = tmpCtx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]); + } else if (this._type === "radial") { + grad = tmpCtx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1); + } + + for (const colorStop of this._colorStops) { + grad.addColorStop(colorStop[0], colorStop[1]); + } + + tmpCtx.fillStyle = grad; + tmpCtx.fill(); + const pattern = ctx.createPattern(tmpCanvas.canvas, "repeat"); + pattern.setTransform(createMatrix(ctx.mozCurrentTransformInverse)); + return pattern; + } + +} + +function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { + const coords = context.coords, colors = context.colors; - var bytes = data.data, + const bytes = data.data, rowSize = data.width * 4; - var tmp; + let tmp; - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; - } + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } - if (coords[p2 + 1] > coords[p3 + 1]) { - tmp = p2; - p2 = p3; - p3 = tmp; - tmp = c2; - c2 = c3; - c3 = tmp; - } + if (coords[p2 + 1] > coords[p3 + 1]) { + tmp = p2; + p2 = p3; + p3 = tmp; + tmp = c2; + c2 = c3; + c3 = tmp; + } - if (coords[p1 + 1] > coords[p2 + 1]) { - tmp = p1; - p1 = p2; - p2 = tmp; - tmp = c1; - c1 = c2; - c2 = tmp; - } + if (coords[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } - var x1 = (coords[p1] + context.offsetX) * context.scaleX; - var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; - var x2 = (coords[p2] + context.offsetX) * context.scaleX; - var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; - var x3 = (coords[p3] + context.offsetX) * context.scaleX; - var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; + const x1 = (coords[p1] + context.offsetX) * context.scaleX; + const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY; + const x2 = (coords[p2] + context.offsetX) * context.scaleX; + const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY; + const x3 = (coords[p3] + context.offsetX) * context.scaleX; + const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY; - if (y1 >= y3) { - return; - } + if (y1 >= y3) { + return; + } - var c1r = colors[c1], + const c1r = colors[c1], c1g = colors[c1 + 1], c1b = colors[c1 + 2]; - var c2r = colors[c2], + const c2r = colors[c2], c2g = colors[c2 + 1], c2b = colors[c2 + 2]; - var c3r = colors[c3], + const c3r = colors[c3], c3g = colors[c3 + 1], c3b = colors[c3 + 2]; - var minY = Math.round(y1), + const minY = Math.round(y1), maxY = Math.round(y3); - var xa, car, cag, cab; - var xb, cbr, cbg, cbb; - var k; + let xa, car, cag, cab; + let xb, cbr, cbg, cbb; - for (var y = minY; y <= maxY; y++) { - if (y < y2) { - k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2); - xa = x1 - (x1 - x2) * k; - car = c1r - (c1r - c2r) * k; - cag = c1g - (c1g - c2g) * k; - cab = c1b - (c1b - c2b) * k; + for (let y = minY; y <= maxY; y++) { + if (y < y2) { + let k; + + if (y < y1) { + k = 0; + } else if (y1 === y2) { + k = 1; } else { - k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3); - xa = x2 - (x2 - x3) * k; - car = c2r - (c2r - c3r) * k; - cag = c2g - (c2g - c3g) * k; - cab = c2b - (c2b - c3b) * k; + k = (y1 - y) / (y1 - y2); } - k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3); - xb = x1 - (x1 - x3) * k; - cbr = c1r - (c1r - c3r) * k; - cbg = c1g - (c1g - c3g) * k; - cbb = c1b - (c1b - c3b) * k; - var x1_ = Math.round(Math.min(xa, xb)); - var x2_ = Math.round(Math.max(xa, xb)); - var j = rowSize * y + x1_ * 4; + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; + } else { + let k; - for (var x = x1_; x <= x2_; x++) { - k = (xa - x) / (xa - xb); - k = k < 0 ? 0 : k > 1 ? 1 : k; - bytes[j++] = car - (car - cbr) * k | 0; - bytes[j++] = cag - (cag - cbg) * k | 0; - bytes[j++] = cab - (cab - cbb) * k | 0; - bytes[j++] = 255; + if (y > y3) { + k = 1; + } else if (y2 === y3) { + k = 0; + } else { + k = (y2 - y) / (y2 - y3); } + + xa = x2 - (x2 - x3) * k; + car = c2r - (c2r - c3r) * k; + cag = c2g - (c2g - c3g) * k; + cab = c2b - (c2b - c3b) * k; + } + + let k; + + if (y < y1) { + k = 0; + } else if (y > y3) { + k = 1; + } else { + k = (y1 - y) / (y1 - y3); + } + + xb = x1 - (x1 - x3) * k; + cbr = c1r - (c1r - c3r) * k; + cbg = c1g - (c1g - c3g) * k; + cbb = c1b - (c1b - c3b) * k; + const x1_ = Math.round(Math.min(xa, xb)); + const x2_ = Math.round(Math.max(xa, xb)); + let j = rowSize * y + x1_ * 4; + + for (let x = x1_; x <= x2_; x++) { + k = (xa - x) / (xa - xb); + + if (k < 0) { + k = 0; + } else if (k > 1) { + k = 1; + } + + bytes[j++] = car - (car - cbr) * k | 0; + bytes[j++] = cag - (cag - cbg) * k | 0; + bytes[j++] = cab - (cab - cbb) * k | 0; + bytes[j++] = 255; } } +} - function drawFigure(data, figure, context) { - var ps = figure.coords; - var cs = figure.colors; - var i, ii; +function drawFigure(data, figure, context) { + const ps = figure.coords; + const cs = figure.colors; + let i, ii; - switch (figure.type) { - case 'lattice': - var verticesPerRow = figure.verticesPerRow; - var rows = Math.floor(ps.length / verticesPerRow) - 1; - var cols = verticesPerRow - 1; + switch (figure.type) { + case "lattice": + const verticesPerRow = figure.verticesPerRow; + const rows = Math.floor(ps.length / verticesPerRow) - 1; + const cols = verticesPerRow - 1; - for (i = 0; i < rows; i++) { - var q = i * verticesPerRow; + for (i = 0; i < rows; i++) { + let q = i * verticesPerRow; - for (var j = 0; j < cols; j++, q++) { - drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); - drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); - } + for (let j = 0; j < cols; j++, q++) { + drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]); + drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]); } + } - break; + break; - case 'triangles': - for (i = 0, ii = ps.length; i < ii; i += 3) { - drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); - } + case "triangles": + for (i = 0, ii = ps.length; i < ii; i += 3) { + drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]); + } - break; + break; - default: - throw new Error('illegal figure'); - } + default: + throw new Error("illegal figure"); + } +} + +class MeshShadingPattern extends BaseShadingPattern { + constructor(IR) { + super(); + this._coords = IR[2]; + this._colors = IR[3]; + this._figures = IR[4]; + this._bounds = IR[5]; + this._matrix = IR[6]; + this._bbox = IR[7]; + this._background = IR[8]; } - function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) { - var EXPECTED_SCALE = 1.1; - var MAX_PATTERN_SIZE = 3000; - var BORDER_SIZE = 2; - var offsetX = Math.floor(bounds[0]); - var offsetY = Math.floor(bounds[1]); - var boundsWidth = Math.ceil(bounds[2]) - offsetX; - var boundsHeight = Math.ceil(bounds[3]) - offsetY; - var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); - var scaleX = boundsWidth / width; - var scaleY = boundsHeight / height; - var context = { - coords: coords, - colors: colors, + _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) { + const EXPECTED_SCALE = 1.1; + const MAX_PATTERN_SIZE = 3000; + const BORDER_SIZE = 2; + const offsetX = Math.floor(this._bounds[0]); + const offsetY = Math.floor(this._bounds[1]); + const boundsWidth = Math.ceil(this._bounds[2]) - offsetX; + const boundsHeight = Math.ceil(this._bounds[3]) - offsetY; + const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE); + const scaleX = boundsWidth / width; + const scaleY = boundsHeight / height; + const context = { + coords: this._coords, + colors: this._colors, offsetX: -offsetX, offsetY: -offsetY, scaleX: 1 / scaleX, scaleY: 1 / scaleY }; - var paddedWidth = width + BORDER_SIZE * 2; - var paddedHeight = height + BORDER_SIZE * 2; - var canvas, tmpCanvas, i, ii; + const paddedWidth = width + BORDER_SIZE * 2; + const paddedHeight = height + BORDER_SIZE * 2; + const tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false); + const tmpCtx = tmpCanvas.context; + const data = tmpCtx.createImageData(width, height); - if (webGLContext.isEnabled) { - canvas = webGLContext.drawFigures({ - width: width, - height: height, - backgroundColor: backgroundColor, - figures: figures, - context: context - }); - tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); - tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE); - canvas = tmpCanvas.canvas; - } else { - tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false); - var tmpCtx = tmpCanvas.context; - var data = tmpCtx.createImageData(width, height); + if (backgroundColor) { + const bytes = data.data; - if (backgroundColor) { - var bytes = data.data; - - for (i = 0, ii = bytes.length; i < ii; i += 4) { - bytes[i] = backgroundColor[0]; - bytes[i + 1] = backgroundColor[1]; - bytes[i + 2] = backgroundColor[2]; - bytes[i + 3] = 255; - } + for (let i = 0, ii = bytes.length; i < ii; i += 4) { + bytes[i] = backgroundColor[0]; + bytes[i + 1] = backgroundColor[1]; + bytes[i + 2] = backgroundColor[2]; + bytes[i + 3] = 255; } - - for (i = 0; i < figures.length; i++) { - drawFigure(data, figures[i], context); - } - - tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); - canvas = tmpCanvas.canvas; } + for (const figure of this._figures) { + drawFigure(data, figure, context); + } + + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + const canvas = tmpCanvas.canvas; return { - canvas: canvas, + canvas, offsetX: offsetX - BORDER_SIZE * scaleX, offsetY: offsetY - BORDER_SIZE * scaleY, - scaleX: scaleX, - scaleY: scaleY + scaleX, + scaleY }; } - return createMeshCanvas; -}(); + getPattern(ctx, owner, shadingFill) { + applyBoundingBox(ctx, this._bbox); + let scale; -ShadingIRs.Mesh = { - fromIR: function Mesh_fromIR(raw) { - var coords = raw[2]; - var colors = raw[3]; - var figures = raw[4]; - var bounds = raw[5]; - var matrix = raw[6]; - var background = raw[8]; - return { - type: 'Pattern', - getPattern: function Mesh_getPattern(ctx, owner, shadingFill) { - var scale; + if (shadingFill) { + scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); + } else { + scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); - if (shadingFill) { - scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform); - } else { - scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); + if (this._matrix) { + const matrixScale = _util.Util.singularValueDecompose2dScale(this._matrix); - if (matrix) { - var matrixScale = _util.Util.singularValueDecompose2dScale(matrix); - - scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; - } - } - - var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext); - - if (!shadingFill) { - ctx.setTransform.apply(ctx, owner.baseTransform); - - if (matrix) { - ctx.transform.apply(ctx, matrix); - } - } - - ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); - ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); - return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat'); + scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; } - }; - } -}; -ShadingIRs.Dummy = { - fromIR: function Dummy_fromIR() { - return { - type: 'Pattern', - getPattern: function Dummy_fromIR_getPattern() { - return 'hotpink'; + } + + const temporaryPatternCanvas = this._createMeshCanvas(scale, shadingFill ? null : this._background, owner.cachedCanvases); + + if (!shadingFill) { + ctx.setTransform.apply(ctx, owner.baseTransform); + + if (this._matrix) { + ctx.transform.apply(ctx, this._matrix); } - }; - } -}; + } -function getShadingPatternFromIR(raw) { - var shadingIR = ShadingIRs[raw[0]]; - - if (!shadingIR) { - throw new Error("Unknown IR type: ".concat(raw[0])); + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); } - return shadingIR.fromIR(raw); } -var TilingPattern = function TilingPatternClosure() { - var PaintType = { - COLORED: 1, - UNCOLORED: 2 - }; - var MAX_PATTERN_SIZE = 3000; +class DummyShadingPattern extends BaseShadingPattern { + getPattern() { + return "hotpink"; + } - function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) { +} + +function getShadingPattern(IR) { + switch (IR[0]) { + case "RadialAxial": + return new RadialAxialShadingPattern(IR); + + case "Mesh": + return new MeshShadingPattern(IR); + + case "Dummy": + return new DummyShadingPattern(); + } + + throw new Error(`Unknown IR type: ${IR[0]}`); +} + +const PaintType = { + COLORED: 1, + UNCOLORED: 2 +}; + +class TilingPattern { + static get MAX_PATTERN_SIZE() { + return (0, _util.shadow)(this, "MAX_PATTERN_SIZE", 3000); + } + + constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) { this.operatorList = IR[2]; this.matrix = IR[3] || [1, 0, 0, 1, 0, 0]; this.bbox = IR[4]; @@ -16529,439 +7160,395 @@ var TilingPattern = function TilingPatternClosure() { this.paintType = IR[7]; this.tilingType = IR[8]; this.color = color; + this.ctx = ctx; this.canvasGraphicsFactory = canvasGraphicsFactory; this.baseTransform = baseTransform; - this.type = 'Pattern'; - this.ctx = ctx; } - TilingPattern.prototype = { - createPatternCanvas: function TilinPattern_createPatternCanvas(owner) { - var operatorList = this.operatorList; - var bbox = this.bbox; - var xstep = this.xstep; - var ystep = this.ystep; - var paintType = this.paintType; - var tilingType = this.tilingType; - var color = this.color; - var canvasGraphicsFactory = this.canvasGraphicsFactory; - (0, _util.info)('TilingType: ' + tilingType); - var x0 = bbox[0], + createPatternCanvas(owner) { + const operatorList = this.operatorList; + const bbox = this.bbox; + const xstep = this.xstep; + const ystep = this.ystep; + const paintType = this.paintType; + const tilingType = this.tilingType; + const color = this.color; + const canvasGraphicsFactory = this.canvasGraphicsFactory; + (0, _util.info)("TilingType: " + tilingType); + const x0 = bbox[0], y0 = bbox[1], x1 = bbox[2], y1 = bbox[3]; - var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); - var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); + const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); - var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; - var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); - var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); - var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', dimx.size, dimy.size, true); - var tmpCtx = tmpCanvas.context; - var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); - graphics.groupLevel = owner.groupLevel; - this.setFillAndStrokeStyleToContext(graphics, paintType, color); - graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); - graphics.transform(1, 0, 0, 1, -x0, -y0); - this.clipBbox(graphics, bbox, x0, y0, x1, y1); - graphics.executeOperatorList(operatorList); - this.ctx.transform(1, 0, 0, 1, x0, y0); - this.ctx.scale(1 / dimx.scale, 1 / dimy.scale); - return tmpCanvas.canvas; - }, - getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) { - step = Math.abs(step); - var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize); - var size = Math.ceil(step * scale); + const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]]; + const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]); + const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]); + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true); + const tmpCtx = tmpCanvas.context; + const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx); + graphics.groupLevel = owner.groupLevel; + this.setFillAndStrokeStyleToContext(graphics, paintType, color); + graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); + this.clipBbox(graphics, bbox, x0, y0, x1, y1); + graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice(); + graphics.executeOperatorList(operatorList); + graphics.endDrawing(); + return { + canvas: tmpCanvas.canvas, + scaleX: dimx.scale, + scaleY: dimy.scale + }; + } - if (size >= maxSize) { - size = maxSize; - } else { - scale = size / step; - } + getSizeAndScale(step, realOutputSize, scale) { + step = Math.abs(step); + const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize); + let size = Math.ceil(step * scale); - return { - scale: scale, - size: size - }; - }, - clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) { - if (Array.isArray(bbox) && bbox.length === 4) { - var bboxWidth = x1 - x0; - var bboxHeight = y1 - y0; - graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); - graphics.clip(); - graphics.endPath(); - } - }, - setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) { - var context = graphics.ctx, + if (size >= maxSize) { + size = maxSize; + } else { + scale = size / step; + } + + return { + scale, + size + }; + } + + clipBbox(graphics, bbox, x0, y0, x1, y1) { + if (Array.isArray(bbox) && bbox.length === 4) { + const bboxWidth = x1 - x0; + const bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.clip(); + graphics.endPath(); + } + } + + setFillAndStrokeStyleToContext(graphics, paintType, color) { + const context = graphics.ctx, current = graphics.current; - switch (paintType) { - case PaintType.COLORED: - var ctx = this.ctx; - context.fillStyle = ctx.fillStyle; - context.strokeStyle = ctx.strokeStyle; - current.fillColor = ctx.fillStyle; - current.strokeColor = ctx.strokeStyle; - break; + switch (paintType) { + case PaintType.COLORED: + const ctx = this.ctx; + context.fillStyle = ctx.fillStyle; + context.strokeStyle = ctx.strokeStyle; + current.fillColor = ctx.fillStyle; + current.strokeColor = ctx.strokeStyle; + break; - case PaintType.UNCOLORED: - var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]); + case PaintType.UNCOLORED: + const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]); - context.fillStyle = cssColor; - context.strokeStyle = cssColor; - current.fillColor = cssColor; - current.strokeColor = cssColor; - break; + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + current.fillColor = cssColor; + current.strokeColor = cssColor; + break; - default: - throw new _util.FormatError("Unsupported paint type: ".concat(paintType)); - } - }, - getPattern: function TilingPattern_getPattern(ctx, owner) { - ctx = this.ctx; - ctx.setTransform.apply(ctx, this.baseTransform); - ctx.transform.apply(ctx, this.matrix); - var temporaryPatternCanvas = this.createPatternCanvas(owner); - return ctx.createPattern(temporaryPatternCanvas, 'repeat'); + default: + throw new _util.FormatError(`Unsupported paint type: ${paintType}`); } - }; - return TilingPattern; -}(); + } + + getPattern(ctx, owner, shadingFill) { + ctx = this.ctx; + let matrix = ctx.mozCurrentTransformInverse; + + if (!shadingFill) { + matrix = _util.Util.transform(matrix, owner.baseTransform); + + if (this.matrix) { + matrix = _util.Util.transform(matrix, this.matrix); + } + } + + const temporaryPatternCanvas = this.createPatternCanvas(owner); + let domMatrix = createMatrix(matrix); + domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY); + const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat"); + pattern.setTransform(domMatrix); + return pattern; + } + +} exports.TilingPattern = TilingPattern; /***/ }), -/* 156 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 12 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GlobalWorkerOptions = void 0; -var GlobalWorkerOptions = Object.create(null); +const GlobalWorkerOptions = Object.create(null); exports.GlobalWorkerOptions = GlobalWorkerOptions; GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort; -GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc; +GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? "" : GlobalWorkerOptions.workerSrc; /***/ }), -/* 157 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 13 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.MessageHandler = MessageHandler; +})); +exports.MessageHandler = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function resolveCall(_x, _x2) { - return _resolveCall.apply(this, arguments); -} - -function _resolveCall() { - _resolveCall = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(fn, args) { - var thisArg, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; - - if (fn) { - _context.next = 3; - break; - } - - return _context.abrupt("return", undefined); - - case 3: - return _context.abrupt("return", fn.apply(thisArg, args)); - - case 4: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - return _resolveCall.apply(this, arguments); -} +const CallbackKind = { + UNKNOWN: 0, + DATA: 1, + ERROR: 2 +}; +const StreamKind = { + UNKNOWN: 0, + CANCEL: 1, + CANCEL_COMPLETE: 2, + CLOSE: 3, + ENQUEUE: 4, + ERROR: 5, + PULL: 6, + PULL_COMPLETE: 7, + START_COMPLETE: 8 +}; function wrapReason(reason) { - if (_typeof(reason) !== 'object') { + if (typeof reason !== "object" || reason === null) { return reason; } switch (reason.name) { - case 'AbortException': + case "AbortException": return new _util.AbortException(reason.message); - case 'MissingPDFException': + case "MissingPDFException": return new _util.MissingPDFException(reason.message); - case 'UnexpectedResponseException': + case "UnexpectedResponseException": return new _util.UnexpectedResponseException(reason.message, reason.status); - default: + case "UnknownErrorException": return new _util.UnknownErrorException(reason.message, reason.details); + + default: + return new _util.UnknownErrorException(reason.message, reason.toString()); } } -function makeReasonSerializable(reason) { - if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) { - return reason; - } +class MessageHandler { + constructor(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.postMessageTransfers = true; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); - return new _util.UnknownErrorException(reason.message, reason.toString()); -} + this._onComObjOnMessage = event => { + const data = event.data; -function resolveOrReject(capability, success, reason) { - if (success) { - capability.resolve(); - } else { - capability.reject(reason); - } -} - -function finalize(promise) { - return Promise.resolve(promise)["catch"](function () {}); -} - -function MessageHandler(sourceName, targetName, comObj) { - var _this = this; - - this.sourceName = sourceName; - this.targetName = targetName; - this.comObj = comObj; - this.callbackId = 1; - this.streamId = 1; - this.postMessageTransfers = true; - this.streamSinks = Object.create(null); - this.streamControllers = Object.create(null); - var callbacksCapabilities = this.callbacksCapabilities = Object.create(null); - var ah = this.actionHandler = Object.create(null); - - this._onComObjOnMessage = function (event) { - var data = event.data; - - if (data.targetName !== _this.sourceName) { - return; - } - - if (data.stream) { - _this._processStreamMessage(data); - } else if (data.isReply) { - var callbackId = data.callbackId; - - if (data.callbackId in callbacksCapabilities) { - var callback = callbacksCapabilities[callbackId]; - delete callbacksCapabilities[callbackId]; - - if ('error' in data) { - callback.reject(wrapReason(data.error)); - } else { - callback.resolve(data.data); - } - } else { - throw new Error("Cannot resolve callback ".concat(callbackId)); + if (data.targetName !== this.sourceName) { + return; + } + + if (data.stream) { + this._processStreamMessage(data); + + return; + } + + if (data.callback) { + const callbackId = data.callbackId; + const capability = this.callbackCapabilities[callbackId]; + + if (!capability) { + throw new Error(`Cannot resolve callback ${callbackId}`); + } + + delete this.callbackCapabilities[callbackId]; + + if (data.callback === CallbackKind.DATA) { + capability.resolve(data.data); + } else if (data.callback === CallbackKind.ERROR) { + capability.reject(wrapReason(data.reason)); + } else { + throw new Error("Unexpected callback case"); + } + + return; + } + + const action = this.actionHandler[data.action]; + + if (!action) { + throw new Error(`Unknown action from worker: ${data.action}`); } - } else if (data.action in ah) { - var action = ah[data.action]; if (data.callbackId) { - var _sourceName = _this.sourceName; - var _targetName = data.sourceName; - Promise.resolve().then(function () { - return action[0].call(action[1], data.data); + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; + new Promise(function (resolve) { + resolve(action(data.data)); }).then(function (result) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, - isReply: true, + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.DATA, callbackId: data.callbackId, data: result }); }, function (reason) { comObj.postMessage({ - sourceName: _sourceName, - targetName: _targetName, - isReply: true, + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.ERROR, callbackId: data.callbackId, - error: makeReasonSerializable(reason) + reason: wrapReason(reason) }); }); - } else if (data.streamId) { - _this._createStreamSink(data); - } else { - action[0].call(action[1], data.data); + return; } - } else { - throw new Error("Unknown action from worker: ".concat(data.action)); - } - }; - comObj.addEventListener('message', this._onComObjOnMessage); -} + if (data.streamId) { + this._createStreamSink(data); -MessageHandler.prototype = { - on: function on(actionName, handler, scope) { - var ah = this.actionHandler; + return; + } + + action(data.data); + }; + + comObj.addEventListener("message", this._onComObjOnMessage); + } + + on(actionName, handler) { + const ah = this.actionHandler; if (ah[actionName]) { - throw new Error("There is already an actionName called \"".concat(actionName, "\"")); + throw new Error(`There is already an actionName called "${actionName}"`); } - ah[actionName] = [handler, scope]; - }, - send: function send(actionName, data, transfers) { - var message = { + ah[actionName] = handler; + } + + send(actionName, data, transfers) { + this._postMessage({ sourceName: this.sourceName, targetName: this.targetName, action: actionName, - data: data - }; - this.postMessage(message, transfers); - }, - sendWithPromise: function sendWithPromise(actionName, data, transfers) { - var callbackId = this.callbackId++; - var message = { - sourceName: this.sourceName, - targetName: this.targetName, - action: actionName, - data: data, - callbackId: callbackId - }; - var capability = (0, _util.createPromiseCapability)(); - this.callbacksCapabilities[callbackId] = capability; + data + }, transfers); + } + + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = (0, _util.createPromiseCapability)(); + this.callbackCapabilities[callbackId] = capability; try { - this.postMessage(message, transfers); - } catch (e) { - capability.reject(e); + this._postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + callbackId, + data + }, transfers); + } catch (ex) { + capability.reject(ex); } return capability.promise; - }, - sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) { - var _this2 = this; + } - var streamId = this.streamId++; - var sourceName = this.sourceName; - var targetName = this.targetName; - return new _util.ReadableStream({ - start: function start(controller) { - var startCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId] = { - controller: controller, + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++; + const sourceName = this.sourceName; + const targetName = this.targetName; + const comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId] = { + controller, startCall: startCapability, + pullCall: null, + cancelCall: null, isClosed: false }; - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, + this._postMessage({ + sourceName, + targetName, action: actionName, - streamId: streamId, - data: data, + streamId, + data, desiredSize: controller.desiredSize - }); + }, transfers); return startCapability.promise; }, - pull: function pull(controller) { - var pullCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].pullCall = pullCapability; - - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: 'pull', - streamId: streamId, + pull: controller => { + const pullCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, desiredSize: controller.desiredSize }); - return pullCapability.promise; }, - cancel: function cancel(reason) { - var cancelCapability = (0, _util.createPromiseCapability)(); - _this2.streamControllers[streamId].cancelCall = cancelCapability; - _this2.streamControllers[streamId].isClosed = true; - - _this2.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: 'cancel', - reason: reason, - streamId: streamId + cancel: reason => { + (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = (0, _util.createPromiseCapability)(); + this.streamControllers[streamId].cancelCall = cancelCapability; + this.streamControllers[streamId].isClosed = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL, + streamId, + reason: wrapReason(reason) }); - return cancelCapability.promise; } }, queueingStrategy); - }, - _createStreamSink: function _createStreamSink(data) { - var _this3 = this; - - var self = this; - var action = this.actionHandler[data.action]; - var streamId = data.streamId; - var desiredSize = data.desiredSize; - var sourceName = this.sourceName; - var targetName = data.sourceName; - var capability = (0, _util.createPromiseCapability)(); - - var sendStreamRequest = function sendStreamRequest(_ref) { - var stream = _ref.stream, - chunk = _ref.chunk, - transfers = _ref.transfers, - success = _ref.success, - reason = _ref.reason; - - _this3.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: stream, - streamId: streamId, - chunk: chunk, - success: success, - reason: reason - }, transfers); - }; - - var streamSink = { - enqueue: function enqueue(chunk) { - var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var transfers = arguments.length > 2 ? arguments[2] : undefined; + } + _createStreamSink(data) { + const self = this; + const action = this.actionHandler[data.action]; + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; + const streamSink = { + enqueue(chunk, size = 1, transfers) { if (this.isCancelled) { return; } - var lastDesiredSize = this.desiredSize; + const lastDesiredSize = this.desiredSize; this.desiredSize -= size; if (lastDesiredSize > 0 && this.desiredSize <= 0) { @@ -16969,909 +7556,526 @@ MessageHandler.prototype = { this.ready = this.sinkCapability.promise; } - sendStreamRequest({ - stream: 'enqueue', - chunk: chunk, - transfers: transfers - }); + self._postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); }, - close: function close() { + + close() { if (this.isCancelled) { return; } this.isCancelled = true; - sendStreamRequest({ - stream: 'close' + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId }); delete self.streamSinks[streamId]; }, - error: function error(reason) { + + error(reason) { + (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { return; } this.isCancelled = true; - sendStreamRequest({ - stream: 'error', - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) }); }, - sinkCapability: capability, + + sinkCapability: (0, _util.createPromiseCapability)(), onPull: null, onCancel: null, isCancelled: false, - desiredSize: desiredSize, + desiredSize: data.desiredSize, ready: null }; streamSink.sinkCapability.resolve(); streamSink.ready = streamSink.sinkCapability.promise; this.streamSinks[streamId] = streamSink; - resolveCall(action[0], [data.data, streamSink], action[1]).then(function () { - sendStreamRequest({ - stream: 'start_complete', + new Promise(function (resolve) { + resolve(action(data.data, streamSink)); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamRequest({ - stream: 'start_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); - }, - _processStreamMessage: function _processStreamMessage(data) { - var _this4 = this; + } - var sourceName = this.sourceName; - var targetName = data.sourceName; - var streamId = data.streamId; - - var sendStreamResponse = function sendStreamResponse(_ref2) { - var stream = _ref2.stream, - success = _ref2.success, - reason = _ref2.reason; - - _this4.comObj.postMessage({ - sourceName: sourceName, - targetName: targetName, - stream: stream, - success: success, - streamId: streamId, - reason: reason - }); - }; - - var deleteStreamController = function deleteStreamController() { - Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) { - return capability && finalize(capability.promise); - })).then(function () { - delete _this4.streamControllers[data.streamId]; - }); - }; + _processStreamMessage(data) { + const streamId = data.streamId; + const sourceName = this.sourceName; + const targetName = data.sourceName; + const comObj = this.comObj; switch (data.stream) { - case 'start_complete': - resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason)); + case StreamKind.START_COMPLETE: + if (data.success) { + this.streamControllers[streamId].startCall.resolve(); + } else { + this.streamControllers[streamId].startCall.reject(wrapReason(data.reason)); + } + break; - case 'pull_complete': - resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason)); + case StreamKind.PULL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].pullCall.resolve(); + } else { + this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason)); + } + break; - case 'pull': - if (!this.streamSinks[data.streamId]) { - sendStreamResponse({ - stream: 'pull_complete', + case StreamKind.PULL: + if (!this.streamSinks[streamId]) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, success: true }); break; } - if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) { - this.streamSinks[data.streamId].sinkCapability.resolve(); + if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) { + this.streamSinks[streamId].sinkCapability.resolve(); } - this.streamSinks[data.streamId].desiredSize = data.desiredSize; - resolveCall(this.streamSinks[data.streamId].onPull).then(function () { - sendStreamResponse({ - stream: 'pull_complete', + this.streamSinks[streamId].desiredSize = data.desiredSize; + const { + onPull + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onPull && onPull()); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamResponse({ - stream: 'pull_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); break; - case 'enqueue': - (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller'); + case StreamKind.ENQUEUE: + (0, _util.assert)(this.streamControllers[streamId], "enqueue should have stream controller"); - if (!this.streamControllers[data.streamId].isClosed) { - this.streamControllers[data.streamId].controller.enqueue(data.chunk); - } - - break; - - case 'close': - (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller'); - - if (this.streamControllers[data.streamId].isClosed) { + if (this.streamControllers[streamId].isClosed) { break; } - this.streamControllers[data.streamId].isClosed = true; - this.streamControllers[data.streamId].controller.close(); - deleteStreamController(); + this.streamControllers[streamId].controller.enqueue(data.chunk); break; - case 'error': - (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller'); - this.streamControllers[data.streamId].controller.error(wrapReason(data.reason)); - deleteStreamController(); - break; + case StreamKind.CLOSE: + (0, _util.assert)(this.streamControllers[streamId], "close should have stream controller"); - case 'cancel_complete': - resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason)); - deleteStreamController(); - break; - - case 'cancel': - if (!this.streamSinks[data.streamId]) { + if (this.streamControllers[streamId].isClosed) { break; } - resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () { - sendStreamResponse({ - stream: 'cancel_complete', + this.streamControllers[streamId].isClosed = true; + this.streamControllers[streamId].controller.close(); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.ERROR: + (0, _util.assert)(this.streamControllers[streamId], "error should have stream controller"); + this.streamControllers[streamId].controller.error(wrapReason(data.reason)); + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + this.streamControllers[streamId].cancelCall.resolve(); + } else { + this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason)); + } + + this._deleteStreamController(streamId); + + break; + + case StreamKind.CANCEL: + if (!this.streamSinks[streamId]) { + break; + } + + const { + onCancel + } = this.streamSinks[data.streamId]; + new Promise(function (resolve) { + resolve(onCancel && onCancel(wrapReason(data.reason))); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, success: true }); }, function (reason) { - sendStreamResponse({ - stream: 'cancel_complete', - success: false, - reason: reason + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) }); }); - this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason)); - this.streamSinks[data.streamId].isCancelled = true; - delete this.streamSinks[data.streamId]; + this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason)); + this.streamSinks[streamId].isCancelled = true; + delete this.streamSinks[streamId]; break; default: - throw new Error('Unexpected stream case'); + throw new Error("Unexpected stream case"); } - }, - postMessage: function postMessage(message, transfers) { + } + + async _deleteStreamController(streamId) { + await Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) { + return capability && capability.promise; + })); + delete this.streamControllers[streamId]; + } + + _postMessage(message, transfers) { if (transfers && this.postMessageTransfers) { this.comObj.postMessage(message, transfers); } else { this.comObj.postMessage(message); } - }, - destroy: function destroy() { - this.comObj.removeEventListener('message', this._onComObjOnMessage); } -}; + + destroy() { + this.comObj.removeEventListener("message", this._onComObjOnMessage); + } + +} + +exports.MessageHandler = MessageHandler; /***/ }), -/* 158 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 14 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.Metadata = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _xml_parser = __w_pdfjs_require__(159); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var Metadata = -/*#__PURE__*/ -function () { - function Metadata(data) { - _classCallCheck(this, Metadata); - - (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string'); - data = this._repair(data); - var parser = new _xml_parser.SimpleXMLParser(); - var xmlDocument = parser.parseFromString(data); - this._metadata = Object.create(null); - - if (xmlDocument) { - this._parse(xmlDocument); - } +class Metadata { + constructor({ + parsedData, + rawData + }) { + this._metadataMap = parsedData; + this._data = rawData; } - _createClass(Metadata, [{ - key: "_repair", - value: function _repair(data) { - return data.replace(/^([^<]+)/, '').replace(/>\\376\\377([^<]+)/g, function (all, codes) { - var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) { - return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1); - }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) { - switch (name) { - case 'amp': - return '&'; + getRaw() { + return this._data; + } - case 'apos': - return '\''; + get(name) { + return this._metadataMap.get(name) ?? null; + } - case 'gt': - return '>'; + getAll() { + return (0, _util.objectFromMap)(this._metadataMap); + } - case 'lt': - return '<'; + has(name) { + return this._metadataMap.has(name); + } - case 'quot': - return '\"'; - } - - throw new Error("_repair: ".concat(name, " isn't defined.")); - }); - var chars = ''; - - for (var i = 0, ii = bytes.length; i < ii; i += 2) { - var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1); - - if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) { - chars += String.fromCharCode(code); - } else { - chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';'; - } - } - - return '>' + chars; - }); - } - }, { - key: "_parse", - value: function _parse(xmlDocument) { - var rdf = xmlDocument.documentElement; - - if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') { - rdf = rdf.firstChild; - - while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') { - rdf = rdf.nextSibling; - } - } - - var nodeName = rdf ? rdf.nodeName.toLowerCase() : null; - - if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) { - return; - } - - var children = rdf.childNodes; - - for (var i = 0, ii = children.length; i < ii; i++) { - var desc = children[i]; - - if (desc.nodeName.toLowerCase() !== 'rdf:description') { - continue; - } - - for (var j = 0, jj = desc.childNodes.length; j < jj; j++) { - if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') { - var entry = desc.childNodes[j]; - var name = entry.nodeName.toLowerCase(); - this._metadata[name] = entry.textContent.trim(); - } - } - } - } - }, { - key: "get", - value: function get(name) { - var data = this._metadata[name]; - return typeof data !== 'undefined' ? data : null; - } - }, { - key: "getAll", - value: function getAll() { - return this._metadata; - } - }, { - key: "has", - value: function has(name) { - return typeof this._metadata[name] !== 'undefined'; - } - }]); - - return Metadata; -}(); +} exports.Metadata = Metadata; /***/ }), -/* 159 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 15 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.SimpleXMLParser = void 0; +})); +exports.OptionalContentConfig = void 0; -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +var _util = __w_pdfjs_require__(2); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } +class OptionalContentGroup { + constructor(name, intent) { + this.visible = true; + this.name = name; + this.intent = intent; + } -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var XMLParserErrorCode = { - NoError: 0, - EndOfDocument: -1, - UnterminatedCdat: -2, - UnterminatedXmlDeclaration: -3, - UnterminatedDoctypeDeclaration: -4, - UnterminatedComment: -5, - MalformedElement: -6, - OutOfMemory: -7, - UnterminatedAttributeValue: -8, - UnterminatedElement: -9, - ElementNeverBegun: -10 -}; - -function isWhitespace(s, index) { - var ch = s[index]; - return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t'; } -function isWhitespaceString(s) { - for (var i = 0, ii = s.length; i < ii; i++) { - if (!isWhitespace(s, i)) { - return false; +class OptionalContentConfig { + constructor(data) { + this.name = null; + this.creator = null; + this._order = null; + this._groups = new Map(); + + if (data === null) { + return; + } + + this.name = data.name; + this.creator = data.creator; + this._order = data.order; + + for (const group of data.groups) { + this._groups.set(group.id, new OptionalContentGroup(group.name, group.intent)); + } + + if (data.baseState === "OFF") { + for (const group of this._groups) { + group.visible = false; + } + } + + for (const on of data.on) { + this._groups.get(on).visible = true; + } + + for (const off of data.off) { + this._groups.get(off).visible = false; } } - return true; + _evaluateVisibilityExpression(array) { + const length = array.length; + + if (length < 2) { + return true; + } + + const operator = array[0]; + + for (let i = 1; i < length; i++) { + const element = array[i]; + let state; + + if (Array.isArray(element)) { + state = this._evaluateVisibilityExpression(element); + } else if (this._groups.has(element)) { + state = this._groups.get(element).visible; + } else { + (0, _util.warn)(`Optional content group not found: ${element}`); + return true; + } + + switch (operator) { + case "And": + if (!state) { + return false; + } + + break; + + case "Or": + if (state) { + return true; + } + + break; + + case "Not": + return !state; + + default: + return true; + } + } + + return operator === "And"; + } + + isVisible(group) { + if (group.type === "OCG") { + if (!this._groups.has(group.id)) { + (0, _util.warn)(`Optional content group not found: ${group.id}`); + return true; + } + + return this._groups.get(group.id).visible; + } else if (group.type === "OCMD") { + if (group.expression) { + return this._evaluateVisibilityExpression(group.expression); + } + + if (!group.policy || group.policy === "AnyOn") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (this._groups.get(id).visible) { + return true; + } + } + + return false; + } else if (group.policy === "AllOn") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (!this._groups.get(id).visible) { + return false; + } + } + + return true; + } else if (group.policy === "AnyOff") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (!this._groups.get(id).visible) { + return true; + } + } + + return false; + } else if (group.policy === "AllOff") { + for (const id of group.ids) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return true; + } + + if (this._groups.get(id).visible) { + return false; + } + } + + return true; + } + + (0, _util.warn)(`Unknown optional content policy ${group.policy}.`); + return true; + } + + (0, _util.warn)(`Unknown group type ${group.type}.`); + return true; + } + + setVisibility(id, visible = true) { + if (!this._groups.has(id)) { + (0, _util.warn)(`Optional content group not found: ${id}`); + return; + } + + this._groups.get(id).visible = !!visible; + } + + getOrder() { + if (!this._groups.size) { + return null; + } + + if (this._order) { + return this._order.slice(); + } + + return Array.from(this._groups.keys()); + } + + getGroups() { + return this._groups.size > 0 ? (0, _util.objectFromMap)(this._groups) : null; + } + + getGroup(id) { + return this._groups.get(id) || null; + } + } -var XMLParserBase = -/*#__PURE__*/ -function () { - function XMLParserBase() { - _classCallCheck(this, XMLParserBase); - } - - _createClass(XMLParserBase, [{ - key: "_resolveEntities", - value: function _resolveEntities(s) { - var _this = this; - - return s.replace(/&([^;]+);/g, function (all, entity) { - if (entity.substring(0, 2) === '#x') { - return String.fromCharCode(parseInt(entity.substring(2), 16)); - } else if (entity.substring(0, 1) === '#') { - return String.fromCharCode(parseInt(entity.substring(1), 10)); - } - - switch (entity) { - case 'lt': - return '<'; - - case 'gt': - return '>'; - - case 'amp': - return '&'; - - case 'quot': - return '\"'; - } - - return _this.onResolveEntity(entity); - }); - } - }, { - key: "_parseContent", - value: function _parseContent(s, start) { - var pos = start, - name, - attributes = []; - - function skipWs() { - while (pos < s.length && isWhitespace(s, pos)) { - ++pos; - } - } - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { - ++pos; - } - - name = s.substring(start, pos); - skipWs(); - - while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') { - skipWs(); - var attrName = '', - attrValue = ''; - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') { - attrName += s[pos]; - ++pos; - } - - skipWs(); - - if (s[pos] !== '=') { - return null; - } - - ++pos; - skipWs(); - var attrEndChar = s[pos]; - - if (attrEndChar !== '\"' && attrEndChar !== '\'') { - return null; - } - - var attrEndIndex = s.indexOf(attrEndChar, ++pos); - - if (attrEndIndex < 0) { - return null; - } - - attrValue = s.substring(pos, attrEndIndex); - attributes.push({ - name: attrName, - value: this._resolveEntities(attrValue) - }); - pos = attrEndIndex + 1; - skipWs(); - } - - return { - name: name, - attributes: attributes, - parsed: pos - start - }; - } - }, { - key: "_parseProcessingInstruction", - value: function _parseProcessingInstruction(s, start) { - var pos = start, - name, - value; - - function skipWs() { - while (pos < s.length && isWhitespace(s, pos)) { - ++pos; - } - } - - while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') { - ++pos; - } - - name = s.substring(start, pos); - skipWs(); - var attrStart = pos; - - while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) { - ++pos; - } - - value = s.substring(attrStart, pos); - return { - name: name, - value: value, - parsed: pos - start - }; - } - }, { - key: "parseXml", - value: function parseXml(s) { - var i = 0; - - while (i < s.length) { - var ch = s[i]; - var j = i; - - if (ch === '<') { - ++j; - var ch2 = s[j]; - var q = void 0; - - switch (ch2) { - case '/': - ++j; - q = s.indexOf('>', j); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedElement); - return; - } - - this.onEndElement(s.substring(j, q)); - j = q + 1; - break; - - case '?': - ++j; - - var pi = this._parseProcessingInstruction(s, j); - - if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') { - this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration); - return; - } - - this.onPi(pi.name, pi.value); - j += pi.parsed + 2; - break; - - case '!': - if (s.substring(j + 1, j + 3) === '--') { - q = s.indexOf('-->', j + 3); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedComment); - return; - } - - this.onComment(s.substring(j + 3, q)); - j = q + 3; - } else if (s.substring(j + 1, j + 8) === '[CDATA[') { - q = s.indexOf(']]>', j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedCdat); - return; - } - - this.onCdata(s.substring(j + 8, q)); - j = q + 3; - } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') { - var q2 = s.indexOf('[', j + 8); - var complexDoctype = false; - q = s.indexOf('>', j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); - return; - } - - if (q2 > 0 && q > q2) { - q = s.indexOf(']>', j + 8); - - if (q < 0) { - this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration); - return; - } - - complexDoctype = true; - } - - var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0)); - this.onDoctype(doctypeContent); - j = q + (complexDoctype ? 2 : 1); - } else { - this.onError(XMLParserErrorCode.MalformedElement); - return; - } - - break; - - default: - var content = this._parseContent(s, j); - - if (content === null) { - this.onError(XMLParserErrorCode.MalformedElement); - return; - } - - var isClosed = false; - - if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') { - isClosed = true; - } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') { - this.onError(XMLParserErrorCode.UnterminatedElement); - return; - } - - this.onBeginElement(content.name, content.attributes, isClosed); - j += content.parsed + (isClosed ? 2 : 1); - break; - } - } else { - while (j < s.length && s[j] !== '<') { - j++; - } - - var text = s.substring(i, j); - this.onText(this._resolveEntities(text)); - } - - i = j; - } - } - }, { - key: "onResolveEntity", - value: function onResolveEntity(name) { - return "&".concat(name, ";"); - } - }, { - key: "onPi", - value: function onPi(name, value) {} - }, { - key: "onComment", - value: function onComment(text) {} - }, { - key: "onCdata", - value: function onCdata(text) {} - }, { - key: "onDoctype", - value: function onDoctype(doctypeContent) {} - }, { - key: "onText", - value: function onText(text) {} - }, { - key: "onBeginElement", - value: function onBeginElement(name, attributes, isEmpty) {} - }, { - key: "onEndElement", - value: function onEndElement(name) {} - }, { - key: "onError", - value: function onError(code) {} - }]); - - return XMLParserBase; -}(); - -var SimpleDOMNode = -/*#__PURE__*/ -function () { - function SimpleDOMNode(nodeName, nodeValue) { - _classCallCheck(this, SimpleDOMNode); - - this.nodeName = nodeName; - this.nodeValue = nodeValue; - Object.defineProperty(this, 'parentNode', { - value: null, - writable: true - }); - } - - _createClass(SimpleDOMNode, [{ - key: "hasChildNodes", - value: function hasChildNodes() { - return this.childNodes && this.childNodes.length > 0; - } - }, { - key: "firstChild", - get: function get() { - return this.childNodes && this.childNodes[0]; - } - }, { - key: "nextSibling", - get: function get() { - var childNodes = this.parentNode.childNodes; - - if (!childNodes) { - return undefined; - } - - var index = childNodes.indexOf(this); - - if (index === -1) { - return undefined; - } - - return childNodes[index + 1]; - } - }, { - key: "textContent", - get: function get() { - if (!this.childNodes) { - return this.nodeValue || ''; - } - - return this.childNodes.map(function (child) { - return child.textContent; - }).join(''); - } - }]); - - return SimpleDOMNode; -}(); - -var SimpleXMLParser = -/*#__PURE__*/ -function (_XMLParserBase) { - _inherits(SimpleXMLParser, _XMLParserBase); - - function SimpleXMLParser() { - var _this2; - - _classCallCheck(this, SimpleXMLParser); - - _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this)); - _this2._currentFragment = null; - _this2._stack = null; - _this2._errorCode = XMLParserErrorCode.NoError; - return _this2; - } - - _createClass(SimpleXMLParser, [{ - key: "parseFromString", - value: function parseFromString(data) { - this._currentFragment = []; - this._stack = []; - this._errorCode = XMLParserErrorCode.NoError; - this.parseXml(data); - - if (this._errorCode !== XMLParserErrorCode.NoError) { - return undefined; - } - - var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1), - documentElement = _this$_currentFragmen[0]; - - if (!documentElement) { - return undefined; - } - - return { - documentElement: documentElement - }; - } - }, { - key: "onResolveEntity", - value: function onResolveEntity(name) { - switch (name) { - case 'apos': - return '\''; - } - - return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name); - } - }, { - key: "onText", - value: function onText(text) { - if (isWhitespaceString(text)) { - return; - } - - var node = new SimpleDOMNode('#text', text); - - this._currentFragment.push(node); - } - }, { - key: "onCdata", - value: function onCdata(text) { - var node = new SimpleDOMNode('#text', text); - - this._currentFragment.push(node); - } - }, { - key: "onBeginElement", - value: function onBeginElement(name, attributes, isEmpty) { - var node = new SimpleDOMNode(name); - node.childNodes = []; - - this._currentFragment.push(node); - - if (isEmpty) { - return; - } - - this._stack.push(this._currentFragment); - - this._currentFragment = node.childNodes; - } - }, { - key: "onEndElement", - value: function onEndElement(name) { - this._currentFragment = this._stack.pop() || []; - var lastElement = this._currentFragment[this._currentFragment.length - 1]; - - if (!lastElement) { - return; - } - - for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) { - lastElement.childNodes[i].parentNode = lastElement; - } - } - }, { - key: "onError", - value: function onError(code) { - this._errorCode = code; - } - }]); - - return SimpleXMLParser; -}(XMLParserBase); - -exports.SimpleXMLParser = SimpleXMLParser; +exports.OptionalContentConfig = OptionalContentConfig; /***/ }), -/* 160 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 16 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFDataTransportStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(1); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFDataTransportStream = -/*#__PURE__*/ -function () { - function PDFDataTransportStream(params, pdfDataRangeTransport) { - var _this = this; - - _classCallCheck(this, PDFDataTransportStream); - - (0, _util.assert)(pdfDataRangeTransport); +class PDFDataTransportStream { + constructor(params, pdfDataRangeTransport) { + (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); this._queuedChunks = []; this._progressiveDone = params.progressiveDone || false; - var initialData = params.initialData; + this._contentDispositionFilename = params.contentDispositionFilename || null; + const initialData = params.initialData; - if (initialData && initialData.length > 0) { - var buffer = new Uint8Array(initialData).buffer; + if (initialData?.length > 0) { + const buffer = new Uint8Array(initialData).buffer; this._queuedChunks.push(buffer); } @@ -17883,183 +8087,145 @@ function () { this._fullRequestReader = null; this._rangeReaders = []; - this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) { - _this._onReceiveData({ - begin: begin, - chunk: chunk + this._pdfDataRangeTransport.addRangeListener((begin, chunk) => { + this._onReceiveData({ + begin, + chunk }); }); - this._pdfDataRangeTransport.addProgressListener(function (loaded, total) { - _this._onProgress({ - loaded: loaded, - total: total + this._pdfDataRangeTransport.addProgressListener((loaded, total) => { + this._onProgress({ + loaded, + total }); }); - this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) { - _this._onReceiveData({ - chunk: chunk + this._pdfDataRangeTransport.addProgressiveReadListener(chunk => { + this._onReceiveData({ + chunk }); }); - this._pdfDataRangeTransport.addProgressiveDoneListener(function () { - _this._onProgressiveDone(); + this._pdfDataRangeTransport.addProgressiveDoneListener(() => { + this._onProgressiveDone(); }); this._pdfDataRangeTransport.transportReady(); } - _createClass(PDFDataTransportStream, [{ - key: "_onReceiveData", - value: function _onReceiveData(args) { - var buffer = new Uint8Array(args.chunk).buffer; + _onReceiveData(args) { + const buffer = new Uint8Array(args.chunk).buffer; - if (args.begin === undefined) { - if (this._fullRequestReader) { - this._fullRequestReader._enqueue(buffer); - } else { - this._queuedChunks.push(buffer); - } - } else { - var found = this._rangeReaders.some(function (rangeReader) { - if (rangeReader._begin !== args.begin) { - return false; - } - - rangeReader._enqueue(buffer); - - return true; - }); - - (0, _util.assert)(found); - } - } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (evt.total === undefined) { - var firstReader = this._rangeReaders[0]; - - if (firstReader && firstReader.onProgress) { - firstReader.onProgress({ - loaded: evt.loaded - }); - } - } else { - var fullReader = this._fullRequestReader; - - if (fullReader && fullReader.onProgress) { - fullReader.onProgress({ - loaded: evt.loaded, - total: evt.total - }); - } - } - } - }, { - key: "_onProgressiveDone", - value: function _onProgressiveDone() { + if (args.begin === undefined) { if (this._fullRequestReader) { - this._fullRequestReader.progressiveDone(); + this._fullRequestReader._enqueue(buffer); + } else { + this._queuedChunks.push(buffer); } + } else { + const found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== args.begin) { + return false; + } - this._progressiveDone = true; - } - }, { - key: "_removeRangeReader", - value: function _removeRangeReader(reader) { - var i = this._rangeReaders.indexOf(reader); + rangeReader._enqueue(buffer); - if (i >= 0) { - this._rangeReaders.splice(i, 1); - } - } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - var queuedChunks = this._queuedChunks; - this._queuedChunks = null; - return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone); - } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - - var reader = new PDFDataTransportStreamRangeReader(this, begin, end); - - this._pdfDataRangeTransport.requestDataRange(begin, end); - - this._rangeReaders.push(reader); - - return reader; - } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - - var readers = this._rangeReaders.slice(0); - - readers.forEach(function (rangeReader) { - rangeReader.cancel(reason); + return true; }); - this._pdfDataRangeTransport.abort(); + (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + } - return PDFDataTransportStream; -}(); + get _progressiveDataLength() { + return this._fullRequestReader?._loaded ?? 0; + } + + _onProgress(evt) { + if (evt.total === undefined) { + const firstReader = this._rangeReaders[0]; + + if (firstReader?.onProgress) { + firstReader.onProgress({ + loaded: evt.loaded + }); + } + } else { + const fullReader = this._fullRequestReader; + + if (fullReader?.onProgress) { + fullReader.onProgress({ + loaded: evt.loaded, + total: evt.total + }); + } + } + } + + _onProgressiveDone() { + if (this._fullRequestReader) { + this._fullRequestReader.progressiveDone(); + } + + this._progressiveDone = true; + } + + _removeRangeReader(reader) { + const i = this._rangeReaders.indexOf(reader); + + if (i >= 0) { + this._rangeReaders.splice(i, 1); + } + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); + const queuedChunks = this._queuedChunks; + this._queuedChunks = null; + return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename); + } + + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; + } + + const reader = new PDFDataTransportStreamRangeReader(this, begin, end); + + this._pdfDataRangeTransport.requestDataRange(begin, end); + + this._rangeReaders.push(reader); + + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); + } + + for (const reader of this._rangeReaders.slice(0)) { + reader.cancel(reason); + } + + this._pdfDataRangeTransport.abort(); + } + +} exports.PDFDataTransportStream = PDFDataTransportStream; -var PDFDataTransportStreamReader = -/*#__PURE__*/ -function () { - function PDFDataTransportStreamReader(stream, queuedChunks) { - var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, PDFDataTransportStreamReader); - +class PDFDataTransportStreamReader { + constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) { this._stream = stream; this._done = progressiveDone || false; - this._filename = null; + this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null; this._queuedChunks = queuedChunks || []; this._loaded = 0; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - try { - for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var chunk = _step.value; - this._loaded += chunk.byteLength; - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } + for (const chunk of this._queuedChunks) { + this._loaded += chunk.byteLength; } this._requests = []; @@ -18068,139 +8234,94 @@ function () { this.onProgress = null; } - _createClass(PDFDataTransportStreamReader, [{ - key: "_enqueue", - value: function _enqueue(chunk) { - if (this._done) { - return; - } - - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunks.push(chunk); - } - - this._loaded += chunk.byteLength; + _enqueue(chunk) { + if (this._done) { + return; } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!(this._queuedChunks.length > 0)) { - _context.next = 3; - break; - } - chunk = this._queuedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); - case 3: - if (!this._done) { - _context.next = 5; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 5: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 8: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + requestCapability.resolve({ + value: chunk, + done: false }); + } else { + this._queuedChunks.push(chunk); + } - this._requests = []; - } - }, { - key: "progressiveDone", - value: function progressiveDone() { - if (this._done) { - return; - } + this._loaded += chunk.byteLength; + } - this._done = true; - } - }, { - key: "headersReady", - get: function get() { - return this._headersReady; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._stream._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._stream._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._stream._contentLength; - } - }]); + get headersReady() { + return this._headersReady; + } - return PDFDataTransportStreamReader; -}(); + get filename() { + return this._filename; + } -var PDFDataTransportStreamRangeReader = -/*#__PURE__*/ -function () { - function PDFDataTransportStreamRangeReader(stream, begin, end) { - _classCallCheck(this, PDFDataTransportStreamRangeReader); + get isRangeSupported() { + return this._stream._isRangeSupported; + } + get isStreamingSupported() { + return this._stream._isStreamingSupported; + } + + get contentLength() { + return this._stream._contentLength; + } + + async read() { + if (this._queuedChunks.length > 0) { + const chunk = this._queuedChunks.shift(); + + return { + value: chunk, + done: false + }; + } + + if (this._done) { + return { + value: undefined, + done: true + }; + } + + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + + this._requests.length = 0; + } + + progressiveDone() { + if (this._done) { + return; + } + + this._done = true; + } + +} + +class PDFDataTransportStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._begin = begin; this._end = end; @@ -18210,1030 +8331,2447 @@ function () { this.onProgress = null; } - _createClass(PDFDataTransportStreamRangeReader, [{ - key: "_enqueue", - value: function _enqueue(chunk) { - if (this._done) { - return; - } - - if (this._requests.length === 0) { - this._queuedChunk = chunk; - } else { - var requestsCapability = this._requests.shift(); - - requestsCapability.resolve({ - value: chunk, - done: false - }); - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); - }); - - this._requests = []; - } - - this._done = true; - - this._stream._removeRangeReader(this); + _enqueue(chunk) { + if (this._done) { + return; } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!this._queuedChunk) { - _context2.next = 4; - break; - } - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + const requestsCapability = this._requests.shift(); - case 4: - if (!this._done) { - _context2.next = 6; - break; - } + requestsCapability.resolve({ + value: chunk, + done: false + }); - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 6: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 9: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { + for (const requestCapability of this._requests) { requestCapability.resolve({ value: undefined, done: true }); - }); - - this._requests = []; - - this._stream._removeRangeReader(this); - } - }, { - key: "isStreamingSupported", - get: function get() { - return false; - } - }]); - - return PDFDataTransportStreamRangeReader; -}(); - -/***/ }), -/* 161 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.WebGLContext = void 0; - -var _util = __w_pdfjs_require__(1); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var WebGLContext = -/*#__PURE__*/ -function () { - function WebGLContext(_ref) { - var _ref$enable = _ref.enable, - enable = _ref$enable === void 0 ? false : _ref$enable; - - _classCallCheck(this, WebGLContext); - - this._enabled = enable === true; - } - - _createClass(WebGLContext, [{ - key: "composeSMask", - value: function composeSMask(_ref2) { - var layer = _ref2.layer, - mask = _ref2.mask, - properties = _ref2.properties; - return WebGLUtils.composeSMask(layer, mask, properties); - } - }, { - key: "drawFigures", - value: function drawFigures(_ref3) { - var width = _ref3.width, - height = _ref3.height, - backgroundColor = _ref3.backgroundColor, - figures = _ref3.figures, - context = _ref3.context; - return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context); - } - }, { - key: "clear", - value: function clear() { - WebGLUtils.cleanup(); - } - }, { - key: "isEnabled", - get: function get() { - var enabled = this._enabled; - - if (enabled) { - enabled = WebGLUtils.tryInitGL(); } - return (0, _util.shadow)(this, 'isEnabled', enabled); - } - }]); - - return WebGLContext; -}(); - -exports.WebGLContext = WebGLContext; - -var WebGLUtils = function WebGLUtilsClosure() { - function loadShader(gl, code, shaderType) { - var shader = gl.createShader(shaderType); - gl.shaderSource(shader, code); - gl.compileShader(shader); - var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS); - - if (!compiled) { - var errorMsg = gl.getShaderInfoLog(shader); - throw new Error('Error during shader compilation: ' + errorMsg); + this._requests.length = 0; } - return shader; + this._done = true; + + this._stream._removeRangeReader(this); } - function createVertexShader(gl, code) { - return loadShader(gl, code, gl.VERTEX_SHADER); + get isStreamingSupported() { + return false; } - function createFragmentShader(gl, code) { - return loadShader(gl, code, gl.FRAGMENT_SHADER); - } - - function createProgram(gl, shaders) { - var program = gl.createProgram(); - - for (var i = 0, ii = shaders.length; i < ii; ++i) { - gl.attachShader(program, shaders[i]); + async read() { + if (this._queuedChunk) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; } - gl.linkProgram(program); - var linked = gl.getProgramParameter(program, gl.LINK_STATUS); - - if (!linked) { - var errorMsg = gl.getProgramInfoLog(program); - throw new Error('Error during program linking: ' + errorMsg); + if (this._done) { + return { + value: undefined, + done: true + }; } - return program; + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; } - function createTexture(gl, image, textureId) { - gl.activeTexture(textureId); - var texture = gl.createTexture(); - gl.bindTexture(gl.TEXTURE_2D, texture); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST); - gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST); - gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image); - return texture; - } + cancel(reason) { + this._done = true; - var currentGL, currentCanvas; - - function generateGL() { - if (currentGL) { - return; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); } - currentCanvas = document.createElement('canvas'); - currentGL = currentCanvas.getContext('webgl', { - premultipliedalpha: false + this._requests.length = 0; + + this._stream._removeRangeReader(this); + } + +} + +/***/ }), +/* 17 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationLayer = void 0; + +var _display_utils = __w_pdfjs_require__(1); + +var _util = __w_pdfjs_require__(2); + +var _annotation_storage = __w_pdfjs_require__(8); + +var _scripting_utils = __w_pdfjs_require__(18); + +class AnnotationElementFactory { + static create(parameters) { + const subtype = parameters.data.annotationType; + + switch (subtype) { + case _util.AnnotationType.LINK: + return new LinkAnnotationElement(parameters); + + case _util.AnnotationType.TEXT: + return new TextAnnotationElement(parameters); + + case _util.AnnotationType.WIDGET: + const fieldType = parameters.data.fieldType; + + switch (fieldType) { + case "Tx": + return new TextWidgetAnnotationElement(parameters); + + case "Btn": + if (parameters.data.radioButton) { + return new RadioButtonWidgetAnnotationElement(parameters); + } else if (parameters.data.checkBox) { + return new CheckboxWidgetAnnotationElement(parameters); + } + + return new PushButtonWidgetAnnotationElement(parameters); + + case "Ch": + return new ChoiceWidgetAnnotationElement(parameters); + } + + return new WidgetAnnotationElement(parameters); + + case _util.AnnotationType.POPUP: + return new PopupAnnotationElement(parameters); + + case _util.AnnotationType.FREETEXT: + return new FreeTextAnnotationElement(parameters); + + case _util.AnnotationType.LINE: + return new LineAnnotationElement(parameters); + + case _util.AnnotationType.SQUARE: + return new SquareAnnotationElement(parameters); + + case _util.AnnotationType.CIRCLE: + return new CircleAnnotationElement(parameters); + + case _util.AnnotationType.POLYLINE: + return new PolylineAnnotationElement(parameters); + + case _util.AnnotationType.CARET: + return new CaretAnnotationElement(parameters); + + case _util.AnnotationType.INK: + return new InkAnnotationElement(parameters); + + case _util.AnnotationType.POLYGON: + return new PolygonAnnotationElement(parameters); + + case _util.AnnotationType.HIGHLIGHT: + return new HighlightAnnotationElement(parameters); + + case _util.AnnotationType.UNDERLINE: + return new UnderlineAnnotationElement(parameters); + + case _util.AnnotationType.SQUIGGLY: + return new SquigglyAnnotationElement(parameters); + + case _util.AnnotationType.STRIKEOUT: + return new StrikeOutAnnotationElement(parameters); + + case _util.AnnotationType.STAMP: + return new StampAnnotationElement(parameters); + + case _util.AnnotationType.FILEATTACHMENT: + return new FileAttachmentAnnotationElement(parameters); + + default: + return new AnnotationElement(parameters); + } + } + +} + +class AnnotationElement { + constructor(parameters, { + isRenderable = false, + ignoreBorder = false, + createQuadrilaterals = false + } = {}) { + this.isRenderable = isRenderable; + this.data = parameters.data; + this.layer = parameters.layer; + this.page = parameters.page; + this.viewport = parameters.viewport; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderInteractiveForms = parameters.renderInteractiveForms; + this.svgFactory = parameters.svgFactory; + this.annotationStorage = parameters.annotationStorage; + this.enableScripting = parameters.enableScripting; + this.hasJSActions = parameters.hasJSActions; + this._mouseState = parameters.mouseState; + + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + + if (createQuadrilaterals) { + this.quadrilaterals = this._createQuadrilaterals(ignoreBorder); + } + } + + _createContainer(ignoreBorder = false) { + const data = this.data, + page = this.page, + viewport = this.viewport; + const container = document.createElement("section"); + let width = data.rect[2] - data.rect[0]; + let height = data.rect[3] - data.rect[1]; + container.setAttribute("data-annotation-id", data.id); + + const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]); + + container.style.transform = `matrix(${viewport.transform.join(",")})`; + container.style.transformOrigin = `${-rect[0]}px ${-rect[1]}px`; + + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = `${data.borderStyle.width}px`; + + if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { + width = width - 2 * data.borderStyle.width; + height = height - 2 * data.borderStyle.width; + } + + const horizontalRadius = data.borderStyle.horizontalCornerRadius; + const verticalRadius = data.borderStyle.verticalCornerRadius; + + if (horizontalRadius > 0 || verticalRadius > 0) { + const radius = `${horizontalRadius}px / ${verticalRadius}px`; + container.style.borderRadius = radius; + } + + switch (data.borderStyle.style) { + case _util.AnnotationBorderStyleType.SOLID: + container.style.borderStyle = "solid"; + break; + + case _util.AnnotationBorderStyleType.DASHED: + container.style.borderStyle = "dashed"; + break; + + case _util.AnnotationBorderStyleType.BEVELED: + (0, _util.warn)("Unimplemented border style: beveled"); + break; + + case _util.AnnotationBorderStyleType.INSET: + (0, _util.warn)("Unimplemented border style: inset"); + break; + + case _util.AnnotationBorderStyleType.UNDERLINE: + container.style.borderBottomStyle = "solid"; + break; + + default: + break; + } + + if (data.color) { + container.style.borderColor = _util.Util.makeHexColor(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); + } else { + container.style.borderWidth = 0; + } + } + + container.style.left = `${rect[0]}px`; + container.style.top = `${rect[1]}px`; + container.style.width = `${width}px`; + container.style.height = `${height}px`; + return container; + } + + _createQuadrilaterals(ignoreBorder = false) { + if (!this.data.quadPoints) { + return null; + } + + const quadrilaterals = []; + const savedRect = this.data.rect; + + for (const quadPoint of this.data.quadPoints) { + this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y]; + quadrilaterals.push(this._createContainer(ignoreBorder)); + } + + this.data.rect = savedRect; + return quadrilaterals; + } + + _createPopup(trigger, data) { + let container = this.container; + + if (this.quadrilaterals) { + trigger = trigger || this.quadrilaterals; + container = this.quadrilaterals[0]; + } + + if (!trigger) { + trigger = document.createElement("div"); + trigger.style.height = container.style.height; + trigger.style.width = container.style.width; + container.appendChild(trigger); + } + + const popupElement = new PopupElement({ + container, + trigger, + color: data.color, + title: data.title, + modificationDate: data.modificationDate, + contents: data.contents, + hideWrapper: true + }); + const popup = popupElement.render(); + popup.style.left = container.style.width; + container.appendChild(popup); + } + + _renderQuadrilaterals(className) { + for (const quadrilateral of this.quadrilaterals) { + quadrilateral.className = className; + } + + return this.quadrilaterals; + } + + render() { + (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); + } + +} + +class LinkAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action || parameters.data.isTooltipOnly || parameters.data.actions && (parameters.data.actions.Action || parameters.data.actions["Mouse Up"] || parameters.data.actions["Mouse Down"])); + super(parameters, { + isRenderable, + createQuadrilaterals: true }); } - var smaskVertexShaderCode = '\ - attribute vec2 a_position; \ - attribute vec2 a_texCoord; \ - \ - uniform vec2 u_resolution; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_texCoord = a_texCoord; \ - } '; - var smaskFragmentShaderCode = '\ - precision mediump float; \ - \ - uniform vec4 u_backdrop; \ - uniform int u_subtype; \ - uniform sampler2D u_image; \ - uniform sampler2D u_mask; \ - \ - varying vec2 v_texCoord; \ - \ - void main() { \ - vec4 imageColor = texture2D(u_image, v_texCoord); \ - vec4 maskColor = texture2D(u_mask, v_texCoord); \ - if (u_backdrop.a > 0.0) { \ - maskColor.rgb = maskColor.rgb * maskColor.a + \ - u_backdrop.rgb * (1.0 - maskColor.a); \ - } \ - float lum; \ - if (u_subtype == 0) { \ - lum = maskColor.a; \ - } else { \ - lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \ - maskColor.b * 0.11; \ - } \ - imageColor.a *= lum; \ - imageColor.rgb *= imageColor.a; \ - gl_FragColor = imageColor; \ - } '; - var smaskCache = null; + render() { + const { + data, + linkService + } = this; + const link = document.createElement("a"); - function initSmaskGL() { - var canvas, gl; - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - var vertexShader = createVertexShader(gl, smaskVertexShaderCode); - var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); - cache.positionLocation = gl.getAttribLocation(program, 'a_position'); - cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop'); - cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype'); - var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord'); - var texLayerLocation = gl.getUniformLocation(program, 'u_image'); - var texMaskLocation = gl.getUniformLocation(program, 'u_mask'); - var texCoordBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer); - 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); - gl.enableVertexAttribArray(texCoordLocation); - gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0); - gl.uniform1i(texLayerLocation, 0); - gl.uniform1i(texMaskLocation, 1); - smaskCache = cache; - } - - function composeSMask(layer, mask, properties) { - var width = layer.width, - height = layer.height; - - if (!smaskCache) { - initSmaskGL(); - } - - var cache = smaskCache, - canvas = cache.canvas, - gl = cache.gl; - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - - if (properties.backdrop) { - gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1); + if (data.url) { + (0, _display_utils.addLinkAttributes)(link, { + url: data.url, + target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel, + enabled: linkService.externalLinkEnabled + }); + } else if (data.action) { + this._bindNamedAction(link, data.action); + } else if (data.dest) { + this._bindLink(link, data.dest); + } else if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) { + this._bindJSAction(link, data); } else { - gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0); + this._bindLink(link, ""); } - gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0); - var texture = createTexture(gl, layer, gl.TEXTURE0); - var maskTexture = createTexture(gl, mask, gl.TEXTURE1); - var buffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, buffer); - gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - gl.clearColor(0, 0, 0, 0); - gl.enable(gl.BLEND); - gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA); - gl.clear(gl.COLOR_BUFFER_BIT); - gl.drawArrays(gl.TRIANGLES, 0, 6); - gl.flush(); - gl.deleteTexture(texture); - gl.deleteTexture(maskTexture); - gl.deleteBuffer(buffer); - return canvas; - } - - var figuresVertexShaderCode = '\ - attribute vec2 a_position; \ - attribute vec3 a_color; \ - \ - uniform vec2 u_resolution; \ - uniform vec2 u_scale; \ - uniform vec2 u_offset; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - vec2 position = (a_position + u_offset) * u_scale; \ - vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \ - gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \ - \ - v_color = vec4(a_color / 255.0, 1.0); \ - } '; - var figuresFragmentShaderCode = '\ - precision mediump float; \ - \ - varying vec4 v_color; \ - \ - void main() { \ - gl_FragColor = v_color; \ - } '; - var figuresCache = null; - - function initFiguresGL() { - var canvas, gl; - generateGL(); - canvas = currentCanvas; - currentCanvas = null; - gl = currentGL; - currentGL = null; - var vertexShader = createVertexShader(gl, figuresVertexShaderCode); - var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode); - var program = createProgram(gl, [vertexShader, fragmentShader]); - gl.useProgram(program); - var cache = {}; - cache.gl = gl; - cache.canvas = canvas; - cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution'); - cache.scaleLocation = gl.getUniformLocation(program, 'u_scale'); - cache.offsetLocation = gl.getUniformLocation(program, 'u_offset'); - cache.positionLocation = gl.getAttribLocation(program, 'a_position'); - cache.colorLocation = gl.getAttribLocation(program, 'a_color'); - figuresCache = cache; - } - - function drawFigures(width, height, backgroundColor, figures, context) { - if (!figuresCache) { - initFiguresGL(); - } - - var cache = figuresCache, - canvas = cache.canvas, - gl = cache.gl; - canvas.width = width; - canvas.height = height; - gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight); - gl.uniform2f(cache.resolutionLocation, width, height); - var count = 0; - var i, ii, rows; - - for (i = 0, ii = figures.length; i < ii; i++) { - switch (figures[i].type) { - case 'lattice': - rows = figures[i].coords.length / figures[i].verticesPerRow | 0; - count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6; - break; - - case 'triangles': - count += figures[i].coords.length; - break; - } - } - - var coords = new Float32Array(count * 2); - var colors = new Uint8Array(count * 3); - var coordsMap = context.coords, - colorsMap = context.colors; - var pIndex = 0, - cIndex = 0; - - for (i = 0, ii = figures.length; i < ii; i++) { - var figure = figures[i], - ps = figure.coords, - cs = figure.colors; - - switch (figure.type) { - case 'lattice': - var cols = figure.verticesPerRow; - rows = ps.length / cols | 0; - - for (var row = 1; row < rows; row++) { - var offset = row * cols + 1; - - for (var col = 1; col < cols; col++, offset++) { - coords[pIndex] = coordsMap[ps[offset - cols - 1]]; - coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1]; - coords[pIndex + 2] = coordsMap[ps[offset - cols]]; - coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1]; - coords[pIndex + 4] = coordsMap[ps[offset - 1]]; - coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1]; - colors[cIndex] = colorsMap[cs[offset - cols - 1]]; - colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1]; - colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2]; - colors[cIndex + 3] = colorsMap[cs[offset - cols]]; - colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1]; - colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2]; - colors[cIndex + 6] = colorsMap[cs[offset - 1]]; - colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1]; - colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2]; - coords[pIndex + 6] = coords[pIndex + 2]; - coords[pIndex + 7] = coords[pIndex + 3]; - coords[pIndex + 8] = coords[pIndex + 4]; - coords[pIndex + 9] = coords[pIndex + 5]; - coords[pIndex + 10] = coordsMap[ps[offset]]; - coords[pIndex + 11] = coordsMap[ps[offset] + 1]; - colors[cIndex + 9] = colors[cIndex + 3]; - colors[cIndex + 10] = colors[cIndex + 4]; - colors[cIndex + 11] = colors[cIndex + 5]; - colors[cIndex + 12] = colors[cIndex + 6]; - colors[cIndex + 13] = colors[cIndex + 7]; - colors[cIndex + 14] = colors[cIndex + 8]; - colors[cIndex + 15] = colorsMap[cs[offset]]; - colors[cIndex + 16] = colorsMap[cs[offset] + 1]; - colors[cIndex + 17] = colorsMap[cs[offset] + 2]; - pIndex += 12; - cIndex += 18; - } - } - - break; - - case 'triangles': - for (var j = 0, jj = ps.length; j < jj; j++) { - coords[pIndex] = coordsMap[ps[j]]; - coords[pIndex + 1] = coordsMap[ps[j] + 1]; - colors[cIndex] = colorsMap[cs[j]]; - colors[cIndex + 1] = colorsMap[cs[j] + 1]; - colors[cIndex + 2] = colorsMap[cs[j] + 2]; - pIndex += 2; - cIndex += 3; - } - - break; - } - } - - if (backgroundColor) { - gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0); - } else { - gl.clearColor(0, 0, 0, 0); - } - - gl.clear(gl.COLOR_BUFFER_BIT); - var coordsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.positionLocation); - gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0); - var colorsBuffer = gl.createBuffer(); - gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer); - gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW); - gl.enableVertexAttribArray(cache.colorLocation); - gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0); - gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY); - gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY); - gl.drawArrays(gl.TRIANGLES, 0, count); - gl.flush(); - gl.deleteBuffer(coordsBuffer); - gl.deleteBuffer(colorsBuffer); - return canvas; - } - - return { - tryInitGL: function tryInitGL() { - try { - generateGL(); - return !!currentGL; - } catch (ex) {} - - return false; - }, - composeSMask: composeSMask, - drawFigures: drawFigures, - cleanup: function cleanup() { - if (smaskCache && smaskCache.canvas) { - smaskCache.canvas.width = 0; - smaskCache.canvas.height = 0; - } - - if (figuresCache && figuresCache.canvas) { - figuresCache.canvas.width = 0; - figuresCache.canvas.height = 0; - } - - smaskCache = null; - figuresCache = null; - } - }; -}(); - -/***/ }), -/* 162 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.renderTextLayer = void 0; - -var _util = __w_pdfjs_require__(1); - -var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -var renderTextLayer = function renderTextLayerClosure() { - var MAX_TEXT_DIVS_TO_RENDER = 100000; - var NonWhitespaceRegexp = /\S/; - - function isAllWhitespace(str) { - return !NonWhitespaceRegexp.test(str); - } - - var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';']; - - function appendText(task, geom, styles) { - var textDiv = document.createElement('span'); - var textDivProperties = { - style: null, - angle: 0, - canvasWidth: 0, - isWhitespace: false, - originalTransform: null, - paddingBottom: 0, - paddingLeft: 0, - paddingRight: 0, - paddingTop: 0, - scale: 1 - }; - - task._textDivs.push(textDiv); - - if (isAllWhitespace(geom.str)) { - textDivProperties.isWhitespace = true; - - task._textDivProperties.set(textDiv, textDivProperties); - - return; - } - - var tx = _util.Util.transform(task._viewport.transform, geom.transform); - - var angle = Math.atan2(tx[1], tx[0]); - var style = styles[geom.fontName]; - - if (style.vertical) { - angle += Math.PI / 2; - } - - var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]); - var fontAscent = fontHeight; - - if (style.ascent) { - fontAscent = style.ascent * fontAscent; - } else if (style.descent) { - fontAscent = (1 + style.descent) * fontAscent; - } - - var left; - var top; - - if (angle === 0) { - left = tx[4]; - top = tx[5] - fontAscent; - } else { - left = tx[4] + fontAscent * Math.sin(angle); - top = tx[5] - fontAscent * Math.cos(angle); - } - - styleBuf[1] = left; - styleBuf[3] = top; - styleBuf[5] = fontHeight; - styleBuf[7] = style.fontFamily; - textDivProperties.style = styleBuf.join(''); - textDiv.setAttribute('style', textDivProperties.style); - textDiv.textContent = geom.str; - - if (task._fontInspectorEnabled) { - textDiv.dataset.fontName = geom.fontName; - } - - if (angle !== 0) { - textDivProperties.angle = angle * (180 / Math.PI); - } - - if (geom.str.length > 1) { - if (style.vertical) { - textDivProperties.canvasWidth = geom.height * task._viewport.scale; - } else { - textDivProperties.canvasWidth = geom.width * task._viewport.scale; - } - } - - task._textDivProperties.set(textDiv, textDivProperties); - - if (task._textContentStream) { - task._layoutText(textDiv); - } - - if (task._enhanceTextSelection) { - var angleCos = 1, - angleSin = 0; - - if (angle !== 0) { - angleCos = Math.cos(angle); - angleSin = Math.sin(angle); - } - - var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; - var divHeight = fontHeight; - var m, b; - - if (angle !== 0) { - m = [angleCos, angleSin, -angleSin, angleCos, left, top]; - b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); - } else { - b = [left, top, left + divWidth, top + divHeight]; - } - - task._bounds.push({ - left: b[0], - top: b[1], - right: b[2], - bottom: b[3], - div: textDiv, - size: [divWidth, divHeight], - m: m + if (this.quadrilaterals) { + return this._renderQuadrilaterals("linkAnnotation").map((quadrilateral, index) => { + const linkElement = index === 0 ? link : link.cloneNode(); + quadrilateral.appendChild(linkElement); + return quadrilateral; }); } + + this.container.className = "linkAnnotation"; + this.container.appendChild(link); + return this.container; } - function render(task) { - if (task._canceled) { - return; - } + _bindLink(link, destination) { + link.href = this.linkService.getDestinationHash(destination); - var textDivs = task._textDivs; - var capability = task._capability; - var textDivsLength = textDivs.length; - - if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { - task._renderingDone = true; - capability.resolve(); - return; - } - - if (!task._textContentStream) { - for (var i = 0; i < textDivsLength; i++) { - task._layoutText(textDivs[i]); + link.onclick = () => { + if (destination) { + this.linkService.goToDestination(destination); } - } - task._renderingDone = true; - capability.resolve(); + return false; + }; + + if (destination || destination === "") { + link.className = "internalLink"; + } } - function expand(task) { - var bounds = task._bounds; - var viewport = task._viewport; - var expanded = expandBounds(viewport.width, viewport.height, bounds); + _bindNamedAction(link, action) { + link.href = this.linkService.getAnchorUrl(""); - for (var i = 0; i < expanded.length; i++) { - var div = bounds[i].div; + link.onclick = () => { + this.linkService.executeNamedAction(action); + return false; + }; - var divProperties = task._textDivProperties.get(div); + link.className = "internalLink"; + } - if (divProperties.angle === 0) { - divProperties.paddingLeft = bounds[i].left - expanded[i].left; - divProperties.paddingTop = bounds[i].top - expanded[i].top; - divProperties.paddingRight = expanded[i].right - bounds[i].right; - divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; + _bindJSAction(link, data) { + link.href = this.linkService.getAnchorUrl(""); + const map = new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]); - task._textDivProperties.set(div, divProperties); + for (const name of Object.keys(data.actions)) { + const jsName = map.get(name); + if (!jsName) { continue; } - var e = expanded[i], - b = bounds[i]; - var m = b.m, - c = m[0], - s = m[1]; - var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; - var ts = new Float64Array(64); - points.forEach(function (p, i) { - var t = _util.Util.applyTransform(p, m); - - ts[i + 0] = c && (e.left - t[0]) / c; - ts[i + 4] = s && (e.top - t[1]) / s; - ts[i + 8] = c && (e.right - t[0]) / c; - ts[i + 12] = s && (e.bottom - t[1]) / s; - ts[i + 16] = s && (e.left - t[0]) / -s; - ts[i + 20] = c && (e.top - t[1]) / c; - ts[i + 24] = s && (e.right - t[0]) / -s; - ts[i + 28] = c && (e.bottom - t[1]) / c; - ts[i + 32] = c && (e.left - t[0]) / -c; - ts[i + 36] = s && (e.top - t[1]) / -s; - ts[i + 40] = c && (e.right - t[0]) / -c; - ts[i + 44] = s && (e.bottom - t[1]) / -s; - ts[i + 48] = s && (e.left - t[0]) / s; - ts[i + 52] = c && (e.top - t[1]) / -c; - ts[i + 56] = s && (e.right - t[0]) / s; - ts[i + 60] = c && (e.bottom - t[1]) / -c; - }); - - var findPositiveMin = function findPositiveMin(ts, offset, count) { - var result = 0; - - for (var i = 0; i < count; i++) { - var t = ts[offset++]; - - if (t > 0) { - result = result ? Math.min(t, result) : t; + link[jsName] = () => { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: data.id, + name } - } - - return result; + }); + return false; }; + } - var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); - divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; - divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; - divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; - divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; + link.className = "internalLink"; + } - task._textDivProperties.set(div, divProperties); +} + +class TextAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable + }); + } + + render() { + this.container.className = "textAnnotation"; + const image = document.createElement("img"); + image.style.height = this.container.style.height; + image.style.width = this.container.style.width; + image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; + image.alt = "[{{type}} Annotation]"; + image.dataset.l10nId = "text_annotation_type"; + image.dataset.l10nArgs = JSON.stringify({ + type: this.data.name + }); + + if (!this.data.hasPopup) { + this._createPopup(image, this.data); + } + + this.container.appendChild(image); + return this.container; + } + +} + +class WidgetAnnotationElement extends AnnotationElement { + render() { + if (this.data.alternativeText) { + this.container.title = this.data.alternativeText; + } + + return this.container; + } + + _getKeyModifier(event) { + return navigator.platform.includes("Win") && event.ctrlKey || navigator.platform.includes("Mac") && event.metaKey; + } + + _setEventListener(element, baseName, eventName, valueGetter) { + if (baseName.includes("mouse")) { + element.addEventListener(baseName, event => { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: valueGetter(event), + shift: event.shiftKey, + modifier: this._getKeyModifier(event) + } + }); + }); + } else { + element.addEventListener(baseName, event => { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: event.target.checked + } + }); + }); } } - function expandBounds(width, height, boxes) { - var bounds = boxes.map(function (box, i) { - return { - x1: box.left, - y1: box.top, - x2: box.right, - y2: box.bottom, - index: i, - x1New: undefined, - x2New: undefined - }; - }); - expandBoundsLTR(width, bounds); - var expanded = new Array(boxes.length); - bounds.forEach(function (b) { - var i = b.index; - expanded[i] = { - left: b.x1New, - top: 0, - right: b.x2New, - bottom: 0 - }; - }); - boxes.map(function (box, i) { - var e = expanded[i], - b = bounds[i]; - b.x1 = box.top; - b.y1 = width - e.right; - b.x2 = box.bottom; - b.y2 = width - e.left; - b.index = i; - b.x1New = undefined; - b.x2New = undefined; - }); - expandBoundsLTR(height, bounds); - bounds.forEach(function (b) { - var i = b.index; - expanded[i].top = b.x1New; - expanded[i].bottom = b.x2New; - }); - return expanded; + _setEventListeners(element, names, getter) { + for (const [baseName, eventName] of names) { + if (eventName === "Action" || this.data.actions?.[eventName]) { + this._setEventListener(element, baseName, eventName, getter); + } + } } - function expandBoundsLTR(width, bounds) { - bounds.sort(function (a, b) { - return a.x1 - b.x1 || a.index - b.index; - }); - var fakeBoundary = { - x1: -Infinity, - y1: -Infinity, - x2: 0, - y2: Infinity, - index: -1, - x1New: 0, - x2New: 0 + _dispatchEventFromSandbox(actions, jsEvent) { + const setColor = (jsName, styleName, event) => { + const color = event.detail[jsName]; + event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1)); }; - var horizon = [{ - start: -Infinity, - end: Infinity, - boundary: fakeBoundary - }]; - bounds.forEach(function (boundary) { - var i = 0; - while (i < horizon.length && horizon[i].end <= boundary.y1) { - i++; - } - - var j = horizon.length - 1; - - while (j >= 0 && horizon[j].start >= boundary.y2) { - j--; - } - - var horizonPart, affectedBoundary; - var q, - k, - maxXNew = -Infinity; - - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - var xNew; - - if (affectedBoundary.x2 > boundary.x1) { - xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; - } else if (affectedBoundary.x2New === undefined) { - xNew = (affectedBoundary.x2 + boundary.x1) / 2; - } else { - xNew = affectedBoundary.x2New; - } - - if (xNew > maxXNew) { - maxXNew = xNew; - } - } - - boundary.x1New = maxXNew; - - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - - if (affectedBoundary.x2New === undefined) { - if (affectedBoundary.x2 > boundary.x1) { - if (affectedBoundary.index > boundary.index) { - affectedBoundary.x2New = affectedBoundary.x2; - } - } else { - affectedBoundary.x2New = maxXNew; - } - } else if (affectedBoundary.x2New > maxXNew) { - affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); - } - } - - var changedHorizon = [], - lastBoundary = null; - - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; - var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; - - if (lastBoundary === useBoundary) { - changedHorizon[changedHorizon.length - 1].end = horizonPart.end; - } else { - changedHorizon.push({ - start: horizonPart.start, - end: horizonPart.end, - boundary: useBoundary - }); - lastBoundary = useBoundary; - } - } - - if (horizon[i].start < boundary.y1) { - changedHorizon[0].start = boundary.y1; - changedHorizon.unshift({ - start: horizon[i].start, - end: boundary.y1, - boundary: horizon[i].boundary + const commonActions = { + display: event => { + const hidden = event.detail.display % 2 === 1; + event.target.style.visibility = hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden, + print: event.detail.display === 0 || event.detail.display === 3 }); - } - - if (boundary.y2 < horizon[j].end) { - changedHorizon[changedHorizon.length - 1].end = boundary.y2; - changedHorizon.push({ - start: boundary.y2, - end: horizon[j].end, - boundary: horizon[j].boundary + }, + print: event => { + this.annotationStorage.setValue(this.data.id, { + print: event.detail.print }); + }, + hidden: event => { + event.target.style.visibility = event.detail.hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + hidden: event.detail.hidden + }); + }, + focus: event => { + setTimeout(() => event.target.focus({ + preventScroll: false + }), 0); + }, + userName: event => { + event.target.title = event.detail.userName; + }, + readonly: event => { + if (event.detail.readonly) { + event.target.setAttribute("readonly", ""); + } else { + event.target.removeAttribute("readonly"); + } + }, + required: event => { + if (event.detail.required) { + event.target.setAttribute("required", ""); + } else { + event.target.removeAttribute("required"); + } + }, + bgColor: event => { + setColor("bgColor", "backgroundColor", event); + }, + fillColor: event => { + setColor("fillColor", "backgroundColor", event); + }, + fgColor: event => { + setColor("fgColor", "color", event); + }, + textColor: event => { + setColor("textColor", "color", event); + }, + borderColor: event => { + setColor("borderColor", "borderColor", event); + }, + strokeColor: event => { + setColor("strokeColor", "borderColor", event); } + }; - for (q = i; q <= j; q++) { - horizonPart = horizon[q]; - affectedBoundary = horizonPart.boundary; + for (const name of Object.keys(jsEvent.detail)) { + const action = actions[name] || commonActions[name]; - if (affectedBoundary.x2New !== undefined) { - continue; - } - - var used = false; - - for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { - used = horizon[k].boundary === affectedBoundary; - } - - for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { - used = horizon[k].boundary === affectedBoundary; - } - - for (k = 0; !used && k < changedHorizon.length; k++) { - used = changedHorizon[k].boundary === affectedBoundary; - } - - if (!used) { - affectedBoundary.x2New = maxXNew; - } + if (action) { + action(jsEvent); } + } + } - Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); +} + +class TextWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + const isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + super(parameters, { + isRenderable }); - horizon.forEach(function (horizonPart) { - var affectedBoundary = horizonPart.boundary; + } + + setPropertyOnSiblings(base, key, value, keyInStorage) { + const storage = this.annotationStorage; + + for (const element of document.getElementsByName(base.name)) { + if (element !== base) { + element[key] = value; + const data = Object.create(null); + data[keyInStorage] = value; + storage.setValue(element.getAttribute("id"), data); + } + } + } + + render() { + const storage = this.annotationStorage; + const id = this.data.id; + this.container.className = "textWidgetAnnotation"; + let element = null; + + if (this.renderInteractiveForms) { + const storedData = storage.getValue(id, { + value: this.data.fieldValue, + valueAsString: this.data.fieldValue + }); + const textContent = storedData.valueAsString || storedData.value || ""; + const elementData = { + userValue: null, + formattedValue: null, + beforeInputSelectionRange: null, + beforeInputValue: null + }; + + if (this.data.multiLine) { + element = document.createElement("textarea"); + element.textContent = textContent; + } else { + element = document.createElement("input"); + element.type = "text"; + element.setAttribute("value", textContent); + } + + elementData.userValue = textContent; + element.setAttribute("id", id); + element.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + this.setPropertyOnSiblings(element, "value", event.target.value, "value"); + }); + + let blurListener = event => { + if (elementData.formattedValue) { + event.target.value = elementData.formattedValue; + } + + event.target.scrollLeft = 0; + elementData.beforeInputSelectionRange = null; + }; + + if (this.enableScripting && this.hasJSActions) { + element.addEventListener("focus", event => { + if (elementData.userValue) { + event.target.value = elementData.userValue; + } + }); + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + elementData.userValue = event.detail.value || ""; + storage.setValue(id, { + value: elementData.userValue.toString() + }); + + if (!elementData.formattedValue) { + event.target.value = elementData.userValue; + } + }, + + valueAsString(event) { + elementData.formattedValue = event.detail.valueAsString || ""; + + if (event.target !== document.activeElement) { + event.target.value = elementData.formattedValue; + } + + storage.setValue(id, { + formattedValue: elementData.formattedValue + }); + }, + + selRange(event) { + const [selStart, selEnd] = event.detail.selRange; + + if (selStart >= 0 && selEnd < event.target.value.length) { + event.target.setSelectionRange(selStart, selEnd); + } + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + element.addEventListener("keydown", event => { + elementData.beforeInputValue = event.target.value; + let commitKey = -1; + + if (event.key === "Escape") { + commitKey = 0; + } else if (event.key === "Enter") { + commitKey = 2; + } else if (event.key === "Tab") { + commitKey = 3; + } + + if (commitKey === -1) { + return; + } + + elementData.userValue = event.target.value; + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value: event.target.value, + willCommit: true, + commitKey, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + }); + const _blurListener = blurListener; + blurListener = null; + element.addEventListener("blur", event => { + if (this._mouseState.isDown) { + elementData.userValue = event.target.value; + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value: event.target.value, + willCommit: true, + commitKey: 1, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + } + + _blurListener(event); + }); + element.addEventListener("mousedown", event => { + elementData.beforeInputValue = event.target.value; + elementData.beforeInputSelectionRange = null; + }); + element.addEventListener("keyup", event => { + if (event.target.selectionStart === event.target.selectionEnd) { + elementData.beforeInputSelectionRange = null; + } + }); + element.addEventListener("select", event => { + elementData.beforeInputSelectionRange = [event.target.selectionStart, event.target.selectionEnd]; + }); + + if (this.data.actions?.Keystroke) { + element.addEventListener("input", event => { + let selStart = -1; + let selEnd = -1; + + if (elementData.beforeInputSelectionRange) { + [selStart, selEnd] = elementData.beforeInputSelectionRange; + } + + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value: elementData.beforeInputValue, + change: event.data, + willCommit: false, + selStart, + selEnd + } + }); + }); + } + + this._setEventListeners(element, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.value); + } + + if (blurListener) { + element.addEventListener("blur", blurListener); + } + + element.disabled = this.data.readOnly; + element.name = this.data.fieldName; + + if (this.data.maxLen !== null) { + element.maxLength = this.data.maxLen; + } + + if (this.data.comb) { + const fieldWidth = this.data.rect[2] - this.data.rect[0]; + const combWidth = fieldWidth / this.data.maxLen; + element.classList.add("comb"); + element.style.letterSpacing = `calc(${combWidth}px - 1ch)`; + } + } else { + element = document.createElement("div"); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = "middle"; + element.style.display = "table-cell"; + } + + this._setTextStyle(element); + + this.container.appendChild(element); + return this.container; + } + + _setTextStyle(element) { + const TEXT_ALIGNMENT = ["left", "center", "right"]; + const { + fontSize, + fontColor + } = this.data.defaultAppearanceData; + const style = element.style; + + if (fontSize) { + style.fontSize = `${fontSize}px`; + } + + style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]); + + if (this.data.textAlignment !== null) { + style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + } + } + +} + +class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderInteractiveForms + }); + } + + render() { + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.fieldValue && (data.exportValue && data.exportValue === data.fieldValue || !data.exportValue && data.fieldValue !== "Off") + }).value; + + if (typeof value === "string") { + value = value !== "Off"; + storage.setValue(id, { + value + }); + } + + this.container.className = "buttonWidgetAnnotation checkBox"; + const element = document.createElement("input"); + element.disabled = data.readOnly; + element.type = "checkbox"; + element.name = this.data.fieldName; + + if (value) { + element.setAttribute("checked", true); + } + + element.setAttribute("id", id); + element.addEventListener("change", function (event) { + const name = event.target.name; + + for (const checkbox of document.getElementsByName(name)) { + if (checkbox !== event.target) { + checkbox.checked = false; + storage.setValue(checkbox.parentNode.getAttribute("data-annotation-id"), { + value: false + }); + } + } + + storage.setValue(id, { + value: event.target.checked + }); + }); + + if (this.enableScripting && this.hasJSActions) { + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + event.target.checked = event.detail.value !== "Off"; + storage.setValue(id, { + value: event.target.checked + }); + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + + this.container.appendChild(element); + return this.container; + } + +} + +class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderInteractiveForms + }); + } + + render() { + this.container.className = "buttonWidgetAnnotation radioButton"; + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.fieldValue === data.buttonValue + }).value; + + if (typeof value === "string") { + value = value !== data.buttonValue; + storage.setValue(id, { + value + }); + } + + const element = document.createElement("input"); + element.disabled = data.readOnly; + element.type = "radio"; + element.name = data.fieldName; + + if (value) { + element.setAttribute("checked", true); + } + + element.setAttribute("id", id); + element.addEventListener("change", function (event) { + const { + target + } = event; + + for (const radio of document.getElementsByName(target.name)) { + if (radio !== target) { + storage.setValue(radio.getAttribute("id"), { + value: false + }); + } + } + + storage.setValue(id, { + value: target.checked + }); + }); + + if (this.enableScripting && this.hasJSActions) { + const pdfButtonValue = data.buttonValue; + element.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + const checked = pdfButtonValue === event.detail.value; + + for (const radio of document.getElementsByName(event.target.name)) { + const radioId = radio.getAttribute("id"); + radio.checked = radioId === id && checked; + storage.setValue(radioId, { + value: radio.checked + }); + } + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + + this._setEventListeners(element, [["change", "Validate"], ["change", "Action"], ["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"]], event => event.target.checked); + } + + this.container.appendChild(element); + return this.container; + } + +} + +class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { + render() { + const container = super.render(); + container.className = "buttonWidgetAnnotation pushButton"; + + if (this.data.alternativeText) { + container.title = this.data.alternativeText; + } + + return container; + } + +} + +class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderInteractiveForms + }); + } + + render() { + this.container.className = "choiceWidgetAnnotation"; + const storage = this.annotationStorage; + const id = this.data.id; + storage.getValue(id, { + value: this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : undefined + }); + const selectElement = document.createElement("select"); + selectElement.disabled = this.data.readOnly; + selectElement.name = this.data.fieldName; + selectElement.setAttribute("id", id); + + if (!this.data.combo) { + selectElement.size = this.data.options.length; + + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + + for (const option of this.data.options) { + const optionElement = document.createElement("option"); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + + if (this.data.fieldValue.includes(option.exportValue)) { + optionElement.setAttribute("selected", true); + } + + selectElement.appendChild(optionElement); + } + + const getValue = (event, isExport) => { + const name = isExport ? "value" : "textContent"; + const options = event.target.options; + + if (!event.target.multiple) { + return options.selectedIndex === -1 ? null : options[options.selectedIndex][name]; + } + + return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]); + }; + + const getItems = event => { + const options = event.target.options; + return Array.prototype.map.call(options, option => { + return { + displayValue: option.textContent, + exportValue: option.value + }; + }); + }; + + if (this.enableScripting && this.hasJSActions) { + selectElement.addEventListener("updatefromsandbox", jsEvent => { + const actions = { + value(event) { + const options = selectElement.options; + const value = event.detail.value; + const values = new Set(Array.isArray(value) ? value : [value]); + Array.prototype.forEach.call(options, option => { + option.selected = values.has(option.value); + }); + storage.setValue(id, { + value: getValue(event, true) + }); + }, + + multipleSelection(event) { + selectElement.multiple = true; + }, + + remove(event) { + const options = selectElement.options; + const index = event.detail.remove; + options[index].selected = false; + selectElement.remove(index); + + if (options.length > 0) { + const i = Array.prototype.findIndex.call(options, option => option.selected); + + if (i === -1) { + options[0].selected = true; + } + } + + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + + clear(event) { + while (selectElement.length !== 0) { + selectElement.remove(0); + } + + storage.setValue(id, { + value: null, + items: [] + }); + }, + + insert(event) { + const { + index, + displayValue, + exportValue + } = event.detail.insert; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + selectElement.insertBefore(optionElement, selectElement.children[index]); + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + + items(event) { + const { + items + } = event.detail; + + while (selectElement.length !== 0) { + selectElement.remove(0); + } + + for (const item of items) { + const { + displayValue, + exportValue + } = item; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + selectElement.appendChild(optionElement); + } + + if (selectElement.options.length > 0) { + selectElement.options[0].selected = true; + } + + storage.setValue(id, { + value: getValue(event, true), + items: getItems(event) + }); + }, + + indices(event) { + const indices = new Set(event.detail.indices); + const options = event.target.options; + Array.prototype.forEach.call(options, (option, i) => { + option.selected = indices.has(i); + }); + storage.setValue(id, { + value: getValue(event, true) + }); + }, + + editable(event) { + event.target.disabled = !event.detail.editable; + } + + }; + + this._dispatchEventFromSandbox(actions, jsEvent); + }); + selectElement.addEventListener("input", event => { + const exportValue = getValue(event, true); + const value = getValue(event, false); + storage.setValue(id, { + value: exportValue + }); + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + changeEx: exportValue, + willCommit: true, + commitKey: 1, + keyDown: false + } + }); + }); + + this._setEventListeners(selectElement, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"]], event => event.target.checked); + } else { + selectElement.addEventListener("input", function (event) { + storage.setValue(id, { + value: getValue(event) + }); + }); + } + + this.container.appendChild(selectElement); + return this.container; + } + +} + +class PopupAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable + }); + } + + render() { + const IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"]; + this.container.className = "popupAnnotation"; + + if (IGNORE_TYPES.includes(this.data.parentType)) { + return this.container; + } + + const selector = `[data-annotation-id="${this.data.parentId}"]`; + const parentElements = this.layer.querySelectorAll(selector); + + if (parentElements.length === 0) { + return this.container; + } + + const popup = new PopupElement({ + container: this.container, + trigger: Array.from(parentElements), + color: this.data.color, + title: this.data.title, + modificationDate: this.data.modificationDate, + contents: this.data.contents + }); + const page = this.page; + + const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]); + + const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0]; + const popupTop = rect[1]; + this.container.style.transformOrigin = `${-popupLeft}px ${-popupTop}px`; + this.container.style.left = `${popupLeft}px`; + this.container.style.top = `${popupTop}px`; + this.container.appendChild(popup.render()); + return this.container; + } + +} + +class PopupElement { + constructor(parameters) { + this.container = parameters.container; + this.trigger = parameters.trigger; + this.color = parameters.color; + this.title = parameters.title; + this.modificationDate = parameters.modificationDate; + this.contents = parameters.contents; + this.hideWrapper = parameters.hideWrapper || false; + this.pinned = false; + } + + render() { + const BACKGROUND_ENLIGHT = 0.7; + const wrapper = document.createElement("div"); + wrapper.className = "popupWrapper"; + this.hideElement = this.hideWrapper ? wrapper : this.container; + this.hideElement.hidden = true; + const popup = document.createElement("div"); + popup.className = "popup"; + const color = this.color; + + if (color) { + const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; + const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; + const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; + popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0); + } + + const title = document.createElement("h1"); + title.textContent = this.title; + popup.appendChild(title); + + const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); + + if (dateObject) { + const modificationDate = document.createElement("span"); + modificationDate.textContent = "{{date}}, {{time}}"; + modificationDate.dataset.l10nId = "annotation_date_string"; + modificationDate.dataset.l10nArgs = JSON.stringify({ + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + popup.appendChild(modificationDate); + } + + const contents = this._formatContents(this.contents); + + popup.appendChild(contents); + + if (!Array.isArray(this.trigger)) { + this.trigger = [this.trigger]; + } + + for (const element of this.trigger) { + element.addEventListener("click", this._toggle.bind(this)); + element.addEventListener("mouseover", this._show.bind(this, false)); + element.addEventListener("mouseout", this._hide.bind(this, false)); + } + + popup.addEventListener("click", this._hide.bind(this, true)); + wrapper.appendChild(popup); + return wrapper; + } + + _formatContents(contents) { + const p = document.createElement("p"); + const lines = contents.split(/(?:\r\n?|\n)/); + + for (let i = 0, ii = lines.length; i < ii; ++i) { + const line = lines[i]; + p.appendChild(document.createTextNode(line)); + + if (i < ii - 1) { + p.appendChild(document.createElement("br")); + } + } + + return p; + } + + _toggle() { + if (this.pinned) { + this._hide(true); + } else { + this._show(true); + } + } + + _show(pin = false) { + if (pin) { + this.pinned = true; + } + + if (this.hideElement.hidden) { + this.hideElement.hidden = false; + this.container.style.zIndex += 1; + } + } + + _hide(unpin = true) { + if (unpin) { + this.pinned = false; + } + + if (!this.hideElement.hidden && !this.pinned) { + this.hideElement.hidden = true; + this.container.style.zIndex -= 1; + } + } + +} + +class FreeTextAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "freeTextAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + return this.container; + } + +} + +class LineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "lineAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const line = this.svgFactory.createElement("svg:line"); + line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]); + line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]); + line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]); + line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]); + line.setAttribute("stroke-width", data.borderStyle.width || 1); + line.setAttribute("stroke", "transparent"); + svg.appendChild(line); + this.container.append(svg); + + this._createPopup(line, data); + + return this.container; + } + +} + +class SquareAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "squareAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const borderWidth = data.borderStyle.width; + const square = this.svgFactory.createElement("svg:rect"); + square.setAttribute("x", borderWidth / 2); + square.setAttribute("y", borderWidth / 2); + square.setAttribute("width", width - borderWidth); + square.setAttribute("height", height - borderWidth); + square.setAttribute("stroke-width", borderWidth || 1); + square.setAttribute("stroke", "transparent"); + square.setAttribute("fill", "none"); + svg.appendChild(square); + this.container.append(svg); + + this._createPopup(square, data); + + return this.container; + } + +} + +class CircleAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "circleAnnotation"; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + const borderWidth = data.borderStyle.width; + const circle = this.svgFactory.createElement("svg:ellipse"); + circle.setAttribute("cx", width / 2); + circle.setAttribute("cy", height / 2); + circle.setAttribute("rx", width / 2 - borderWidth / 2); + circle.setAttribute("ry", height / 2 - borderWidth / 2); + circle.setAttribute("stroke-width", borderWidth || 1); + circle.setAttribute("stroke", "transparent"); + circle.setAttribute("fill", "none"); + svg.appendChild(circle); + this.container.append(svg); + + this._createPopup(circle, data); + + return this.container; + } + +} + +class PolylineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.containerClassName = "polylineAnnotation"; + this.svgElementName = "svg:polyline"; + } + + render() { + this.container.className = this.containerClassName; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + let points = []; + + for (const coordinate of data.vertices) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(x + "," + y); + } + + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "none"); + svg.appendChild(polyline); + this.container.append(svg); + + this._createPopup(polyline, data); + + return this.container; + } + +} + +class PolygonAnnotationElement extends PolylineAnnotationElement { + constructor(parameters) { + super(parameters); + this.containerClassName = "polygonAnnotation"; + this.svgElementName = "svg:polygon"; + } + +} + +class CaretAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "caretAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + return this.container; + } + +} + +class InkAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + this.containerClassName = "inkAnnotation"; + this.svgElementName = "svg:polyline"; + } + + render() { + this.container.className = this.containerClassName; + const data = this.data; + const width = data.rect[2] - data.rect[0]; + const height = data.rect[3] - data.rect[1]; + const svg = this.svgFactory.create(width, height); + + for (const inkList of data.inkLists) { + let points = []; + + for (const coordinate of inkList) { + const x = coordinate.x - data.rect[0]; + const y = data.rect[3] - coordinate.y; + points.push(`${x},${y}`); + } + + points = points.join(" "); + const polyline = this.svgFactory.createElement(this.svgElementName); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "none"); + + this._createPopup(polyline, data); + + svg.appendChild(polyline); + } + + this.container.append(svg); + return this.container; + } + +} + +class HighlightAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("highlightAnnotation"); + } + + this.container.className = "highlightAnnotation"; + return this.container; + } + +} + +class UnderlineAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("underlineAnnotation"); + } + + this.container.className = "underlineAnnotation"; + return this.container; + } + +} + +class SquigglyAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("squigglyAnnotation"); + } + + this.container.className = "squigglyAnnotation"; + return this.container; + } + +} + +class StrikeOutAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + + render() { + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + if (this.quadrilaterals) { + return this._renderQuadrilaterals("strikeoutAnnotation"); + } + + this.container.className = "strikeoutAnnotation"; + return this.container; + } + +} + +class StampAnnotationElement extends AnnotationElement { + constructor(parameters) { + const isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); + super(parameters, { + isRenderable, + ignoreBorder: true + }); + } + + render() { + this.container.className = "stampAnnotation"; + + if (!this.data.hasPopup) { + this._createPopup(null, this.data); + } + + return this.container; + } + +} + +class FileAttachmentAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true + }); + const { + filename, + content + } = this.data.file; + this.filename = (0, _display_utils.getFilenameFromUrl)(filename); + this.content = content; + this.linkService.eventBus?.dispatch("fileattachmentannotation", { + source: this, + id: (0, _util.stringToPDFString)(filename), + filename, + content + }); + } + + render() { + this.container.className = "fileAttachmentAnnotation"; + const trigger = document.createElement("div"); + trigger.style.height = this.container.style.height; + trigger.style.width = this.container.style.width; + trigger.addEventListener("dblclick", this._download.bind(this)); + + if (!this.data.hasPopup && (this.data.title || this.data.contents)) { + this._createPopup(trigger, this.data); + } + + this.container.appendChild(trigger); + return this.container; + } + + _download() { + this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename); + } + +} + +class AnnotationLayer { + static render(parameters) { + const sortedAnnotations = [], + popupAnnotations = []; + + for (const data of parameters.annotations) { + if (!data) { + continue; + } + + if (data.annotationType === _util.AnnotationType.POPUP) { + popupAnnotations.push(data); + continue; + } + + sortedAnnotations.push(data); + } + + if (popupAnnotations.length) { + sortedAnnotations.push(...popupAnnotations); + } + + for (const data of sortedAnnotations) { + const element = AnnotationElementFactory.create({ + data, + layer: parameters.div, + page: parameters.page, + viewport: parameters.viewport, + linkService: parameters.linkService, + downloadManager: parameters.downloadManager, + imageResourcesPath: parameters.imageResourcesPath || "", + renderInteractiveForms: parameters.renderInteractiveForms !== false, + svgFactory: new _display_utils.DOMSVGFactory(), + annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(), + enableScripting: parameters.enableScripting, + hasJSActions: parameters.hasJSActions, + mouseState: parameters.mouseState || { + isDown: false + } + }); + + if (element.isRenderable) { + const rendered = element.render(); + + if (data.hidden) { + rendered.style.visibility = "hidden"; + } + + if (Array.isArray(rendered)) { + for (const renderedElement of rendered) { + parameters.div.appendChild(renderedElement); + } + } else { + if (element instanceof PopupAnnotationElement) { + parameters.div.prepend(rendered); + } else { + parameters.div.appendChild(rendered); + } + } + } + } + } + + static update(parameters) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + + for (const data of parameters.annotations) { + const elements = parameters.div.querySelectorAll(`[data-annotation-id="${data.id}"]`); + + if (elements) { + for (const element of elements) { + element.style.transform = transform; + } + } + } + + parameters.div.hidden = false; + } + +} + +exports.AnnotationLayer = AnnotationLayer; + +/***/ }), +/* 18 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ColorConverters = void 0; + +function makeColorComp(n) { + return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, "0"); +} + +class ColorConverters { + static CMYK_G([c, y, m, k]) { + return ["G", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)]; + } + + static G_CMYK([g]) { + return ["CMYK", 0, 0, 0, 1 - g]; + } + + static G_RGB([g]) { + return ["RGB", g, g, g]; + } + + static G_HTML([g]) { + const G = makeColorComp(g); + return `#${G}${G}${G}`; + } + + static RGB_G([r, g, b]) { + return ["G", 0.3 * r + 0.59 * g + 0.11 * b]; + } + + static RGB_HTML([r, g, b]) { + const R = makeColorComp(r); + const G = makeColorComp(g); + const B = makeColorComp(b); + return `#${R}${G}${B}`; + } + + static T_HTML() { + return "#00000000"; + } + + static CMYK_RGB([c, y, m, k]) { + return ["RGB", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)]; + } + + static CMYK_HTML(components) { + return this.RGB_HTML(this.CMYK_RGB(components)); + } + + static RGB_CMYK([r, g, b]) { + const c = 1 - r; + const m = 1 - g; + const y = 1 - b; + const k = Math.min(c, m, y); + return ["CMYK", c, m, y, k]; + } + +} + +exports.ColorConverters = ColorConverters; + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.renderTextLayer = renderTextLayer; + +var _util = __w_pdfjs_require__(2); + +const MAX_TEXT_DIVS_TO_RENDER = 100000; +const DEFAULT_FONT_SIZE = 30; +const DEFAULT_FONT_ASCENT = 0.8; +const ascentCache = new Map(); +const AllWhitespaceRegexp = /^\s+$/g; + +function getAscent(fontFamily, ctx) { + const cachedAscent = ascentCache.get(fontFamily); + + if (cachedAscent) { + return cachedAscent; + } + + ctx.save(); + ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`; + const metrics = ctx.measureText(""); + let ascent = metrics.fontBoundingBoxAscent; + let descent = Math.abs(metrics.fontBoundingBoxDescent); + + if (ascent) { + ctx.restore(); + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + return ratio; + } + + ctx.strokeStyle = "red"; + ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); + ctx.strokeText("g", 0, 0); + let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; + descent = 0; + + for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) { + if (pixels[i] > 0) { + descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE); + break; + } + } + + ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE); + ctx.strokeText("A", 0, DEFAULT_FONT_SIZE); + pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data; + ascent = 0; + + for (let i = 0, ii = pixels.length; i < ii; i += 4) { + if (pixels[i] > 0) { + ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE); + break; + } + } + + ctx.restore(); + + if (ascent) { + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + return ratio; + } + + ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT); + return DEFAULT_FONT_ASCENT; +} + +function appendText(task, geom, styles, ctx) { + const textDiv = document.createElement("span"); + const textDivProperties = { + angle: 0, + canvasWidth: 0, + hasText: geom.str !== "", + hasEOL: geom.hasEOL, + originalTransform: null, + paddingBottom: 0, + paddingLeft: 0, + paddingRight: 0, + paddingTop: 0, + scale: 1 + }; + + task._textDivs.push(textDiv); + + const tx = _util.Util.transform(task._viewport.transform, geom.transform); + + let angle = Math.atan2(tx[1], tx[0]); + const style = styles[geom.fontName]; + + if (style.vertical) { + angle += Math.PI / 2; + } + + const fontHeight = Math.hypot(tx[2], tx[3]); + const fontAscent = fontHeight * getAscent(style.fontFamily, ctx); + let left, top; + + if (angle === 0) { + left = tx[4]; + top = tx[5] - fontAscent; + } else { + left = tx[4] + fontAscent * Math.sin(angle); + top = tx[5] - fontAscent * Math.cos(angle); + } + + textDiv.style.left = `${left}px`; + textDiv.style.top = `${top}px`; + textDiv.style.fontSize = `${fontHeight}px`; + textDiv.style.fontFamily = style.fontFamily; + textDiv.setAttribute("role", "presentation"); + textDiv.textContent = geom.str; + textDiv.dir = geom.dir; + + if (task._fontInspectorEnabled) { + textDiv.dataset.fontName = geom.fontName; + } + + if (angle !== 0) { + textDivProperties.angle = angle * (180 / Math.PI); + } + + let shouldScaleText = false; + + if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) { + shouldScaleText = true; + } else if (geom.transform[0] !== geom.transform[3]) { + const absScaleX = Math.abs(geom.transform[0]), + absScaleY = Math.abs(geom.transform[3]); + + if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) { + shouldScaleText = true; + } + } + + if (shouldScaleText) { + if (style.vertical) { + textDivProperties.canvasWidth = geom.height * task._viewport.scale; + } else { + textDivProperties.canvasWidth = geom.width * task._viewport.scale; + } + } + + task._textDivProperties.set(textDiv, textDivProperties); + + if (task._textContentStream) { + task._layoutText(textDiv); + } + + if (task._enhanceTextSelection && textDivProperties.hasText) { + let angleCos = 1, + angleSin = 0; + + if (angle !== 0) { + angleCos = Math.cos(angle); + angleSin = Math.sin(angle); + } + + const divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale; + const divHeight = fontHeight; + let m, b; + + if (angle !== 0) { + m = [angleCos, angleSin, -angleSin, angleCos, left, top]; + b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m); + } else { + b = [left, top, left + divWidth, top + divHeight]; + } + + task._bounds.push({ + left: b[0], + top: b[1], + right: b[2], + bottom: b[3], + div: textDiv, + size: [divWidth, divHeight], + m + }); + } +} + +function render(task) { + if (task._canceled) { + return; + } + + const textDivs = task._textDivs; + const capability = task._capability; + const textDivsLength = textDivs.length; + + if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) { + task._renderingDone = true; + capability.resolve(); + return; + } + + if (!task._textContentStream) { + for (let i = 0; i < textDivsLength; i++) { + task._layoutText(textDivs[i]); + } + } + + task._renderingDone = true; + capability.resolve(); +} + +function findPositiveMin(ts, offset, count) { + let result = 0; + + for (let i = 0; i < count; i++) { + const t = ts[offset++]; + + if (t > 0) { + result = result ? Math.min(t, result) : t; + } + } + + return result; +} + +function expand(task) { + const bounds = task._bounds; + const viewport = task._viewport; + const expanded = expandBounds(viewport.width, viewport.height, bounds); + + for (let i = 0; i < expanded.length; i++) { + const div = bounds[i].div; + + const divProperties = task._textDivProperties.get(div); + + if (divProperties.angle === 0) { + divProperties.paddingLeft = bounds[i].left - expanded[i].left; + divProperties.paddingTop = bounds[i].top - expanded[i].top; + divProperties.paddingRight = expanded[i].right - bounds[i].right; + divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom; + + task._textDivProperties.set(div, divProperties); + + continue; + } + + const e = expanded[i], + b = bounds[i]; + const m = b.m, + c = m[0], + s = m[1]; + const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size]; + const ts = new Float64Array(64); + + for (let j = 0, jj = points.length; j < jj; j++) { + const t = _util.Util.applyTransform(points[j], m); + + ts[j + 0] = c && (e.left - t[0]) / c; + ts[j + 4] = s && (e.top - t[1]) / s; + ts[j + 8] = c && (e.right - t[0]) / c; + ts[j + 12] = s && (e.bottom - t[1]) / s; + ts[j + 16] = s && (e.left - t[0]) / -s; + ts[j + 20] = c && (e.top - t[1]) / c; + ts[j + 24] = s && (e.right - t[0]) / -s; + ts[j + 28] = c && (e.bottom - t[1]) / c; + ts[j + 32] = c && (e.left - t[0]) / -c; + ts[j + 36] = s && (e.top - t[1]) / -s; + ts[j + 40] = c && (e.right - t[0]) / -c; + ts[j + 44] = s && (e.bottom - t[1]) / -s; + ts[j + 48] = s && (e.left - t[0]) / s; + ts[j + 52] = c && (e.top - t[1]) / -c; + ts[j + 56] = s && (e.right - t[0]) / s; + ts[j + 60] = c && (e.bottom - t[1]) / -c; + } + + const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s)); + divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale; + divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale; + divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale; + divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale; + + task._textDivProperties.set(div, divProperties); + } +} + +function expandBounds(width, height, boxes) { + const bounds = boxes.map(function (box, i) { + return { + x1: box.left, + y1: box.top, + x2: box.right, + y2: box.bottom, + index: i, + x1New: undefined, + x2New: undefined + }; + }); + expandBoundsLTR(width, bounds); + const expanded = new Array(boxes.length); + + for (const b of bounds) { + const i = b.index; + expanded[i] = { + left: b.x1New, + top: 0, + right: b.x2New, + bottom: 0 + }; + } + + boxes.map(function (box, i) { + const e = expanded[i], + b = bounds[i]; + b.x1 = box.top; + b.y1 = width - e.right; + b.x2 = box.bottom; + b.y2 = width - e.left; + b.index = i; + b.x1New = undefined; + b.x2New = undefined; + }); + expandBoundsLTR(height, bounds); + + for (const b of bounds) { + const i = b.index; + expanded[i].top = b.x1New; + expanded[i].bottom = b.x2New; + } + + return expanded; +} + +function expandBoundsLTR(width, bounds) { + bounds.sort(function (a, b) { + return a.x1 - b.x1 || a.index - b.index; + }); + const fakeBoundary = { + x1: -Infinity, + y1: -Infinity, + x2: 0, + y2: Infinity, + index: -1, + x1New: 0, + x2New: 0 + }; + const horizon = [{ + start: -Infinity, + end: Infinity, + boundary: fakeBoundary + }]; + + for (const boundary of bounds) { + let i = 0; + + while (i < horizon.length && horizon[i].end <= boundary.y1) { + i++; + } + + let j = horizon.length - 1; + + while (j >= 0 && horizon[j].start >= boundary.y2) { + j--; + } + + let horizonPart, affectedBoundary; + let q, + k, + maxXNew = -Infinity; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + let xNew; + + if (affectedBoundary.x2 > boundary.x1) { + xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1; + } else if (affectedBoundary.x2New === undefined) { + xNew = (affectedBoundary.x2 + boundary.x1) / 2; + } else { + xNew = affectedBoundary.x2New; + } + + if (xNew > maxXNew) { + maxXNew = xNew; + } + } + + boundary.x1New = maxXNew; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; if (affectedBoundary.x2New === undefined) { - affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); + if (affectedBoundary.x2 > boundary.x1) { + if (affectedBoundary.index > boundary.index) { + affectedBoundary.x2New = affectedBoundary.x2; + } + } else { + affectedBoundary.x2New = maxXNew; + } + } else if (affectedBoundary.x2New > maxXNew) { + affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2); } - }); + } + + const changedHorizon = []; + let lastBoundary = null; + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + const useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary; + + if (lastBoundary === useBoundary) { + changedHorizon[changedHorizon.length - 1].end = horizonPart.end; + } else { + changedHorizon.push({ + start: horizonPart.start, + end: horizonPart.end, + boundary: useBoundary + }); + lastBoundary = useBoundary; + } + } + + if (horizon[i].start < boundary.y1) { + changedHorizon[0].start = boundary.y1; + changedHorizon.unshift({ + start: horizon[i].start, + end: boundary.y1, + boundary: horizon[i].boundary + }); + } + + if (boundary.y2 < horizon[j].end) { + changedHorizon[changedHorizon.length - 1].end = boundary.y2; + changedHorizon.push({ + start: boundary.y2, + end: horizon[j].end, + boundary: horizon[j].boundary + }); + } + + for (q = i; q <= j; q++) { + horizonPart = horizon[q]; + affectedBoundary = horizonPart.boundary; + + if (affectedBoundary.x2New !== undefined) { + continue; + } + + let used = false; + + for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) { + used = horizon[k].boundary === affectedBoundary; + } + + for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) { + used = horizon[k].boundary === affectedBoundary; + } + + for (k = 0; !used && k < changedHorizon.length; k++) { + used = changedHorizon[k].boundary === affectedBoundary; + } + + if (!used) { + affectedBoundary.x2New = maxXNew; + } + } + + Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon)); } - function TextLayerRenderTask(_ref) { - var _this = this; + for (const horizonPart of horizon) { + const affectedBoundary = horizonPart.boundary; - var textContent = _ref.textContent, - textContentStream = _ref.textContentStream, - container = _ref.container, - viewport = _ref.viewport, - textDivs = _ref.textDivs, - textContentItemsStr = _ref.textContentItemsStr, - enhanceTextSelection = _ref.enhanceTextSelection; + if (affectedBoundary.x2New === undefined) { + affectedBoundary.x2New = Math.max(width, affectedBoundary.x2); + } + } +} + +class TextLayerRenderTask { + constructor({ + textContent, + textContentStream, + container, + viewport, + textDivs, + textContentItemsStr, + enhanceTextSelection + }) { this._textContent = textContent; this._textContentStream = textContentStream; this._container = container; + this._document = container.ownerDocument; this._viewport = viewport; this._textDivs = textDivs || []; this._textContentItemsStr = textContentItemsStr || []; this._enhanceTextSelection = !!enhanceTextSelection; - this._fontInspectorEnabled = !!(_global_scope["default"].FontInspector && _global_scope["default"].FontInspector.enabled); + this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled; this._reader = null; this._layoutTextLastFontSize = null; this._layoutTextLastFontFamily = null; @@ -19245,1727 +10783,304 @@ var renderTextLayer = function renderTextLayerClosure() { this._renderTimer = null; this._bounds = []; - this._capability.promise["finally"](function () { - if (_this._layoutTextCtx) { - _this._layoutTextCtx.canvas.width = 0; - _this._layoutTextCtx.canvas.height = 0; - _this._layoutTextCtx = null; + this._capability.promise.finally(() => { + if (this._layoutTextCtx) { + this._layoutTextCtx.canvas.width = 0; + this._layoutTextCtx.canvas.height = 0; + this._layoutTextCtx = null; } - }); + }).catch(() => {}); } - TextLayerRenderTask.prototype = { - get promise() { - return this._capability.promise; - }, + get promise() { + return this._capability.promise; + } - cancel: function TextLayer_cancel() { - this._canceled = true; + cancel() { + this._canceled = true; - if (this._reader) { - this._reader.cancel(new _util.AbortException('TextLayer task cancelled.')); + if (this._reader) { + this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")); - this._reader = null; + this._reader = null; + } + + if (this._renderTimer !== null) { + clearTimeout(this._renderTimer); + this._renderTimer = null; + } + + this._capability.reject(new Error("TextLayer task cancelled.")); + } + + _processItems(items, styleCache) { + for (let i = 0, len = items.length; i < len; i++) { + if (items[i].str === undefined) { + if (items[i].type === "beginMarkedContentProps" || items[i].type === "beginMarkedContent") { + const parent = this._container; + this._container = document.createElement("span"); + + this._container.classList.add("markedContent"); + + if (items[i].id !== null) { + this._container.setAttribute("id", `${items[i].id}`); + } + + parent.appendChild(this._container); + } else if (items[i].type === "endMarkedContent") { + this._container = this._container.parentNode; + } + + continue; } - if (this._renderTimer !== null) { - clearTimeout(this._renderTimer); - this._renderTimer = null; - } + this._textContentItemsStr.push(items[i].str); - this._capability.reject(new Error('TextLayer task cancelled.')); - }, - _processItems: function _processItems(items, styleCache) { - for (var i = 0, len = items.length; i < len; i++) { - this._textContentItemsStr.push(items[i].str); + appendText(this, items[i], styleCache, this._layoutTextCtx); + } + } - appendText(this, items[i], styleCache); - } - }, - _layoutText: function _layoutText(textDiv) { - var textLayerFrag = this._container; + _layoutText(textDiv) { + const textDivProperties = this._textDivProperties.get(textDiv); - var textDivProperties = this._textDivProperties.get(textDiv); + let transform = ""; - if (textDivProperties.isWhitespace) { - return; - } - - var fontSize = textDiv.style.fontSize; - var fontFamily = textDiv.style.fontFamily; + if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) { + const { + fontSize, + fontFamily + } = textDiv.style; if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) { - this._layoutTextCtx.font = fontSize + ' ' + fontFamily; + this._layoutTextCtx.font = `${fontSize} ${fontFamily}`; this._layoutTextLastFontSize = fontSize; this._layoutTextLastFontFamily = fontFamily; } - var width = this._layoutTextCtx.measureText(textDiv.textContent).width; + const { + width + } = this._layoutTextCtx.measureText(textDiv.textContent); - var transform = ''; - - if (textDivProperties.canvasWidth !== 0 && width > 0) { + if (width > 0) { textDivProperties.scale = textDivProperties.canvasWidth / width; - transform = "scaleX(".concat(textDivProperties.scale, ")"); - } - - if (textDivProperties.angle !== 0) { - transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform); - } - - if (transform.length > 0) { - textDivProperties.originalTransform = transform; - textDiv.style.transform = transform; - } - - this._textDivProperties.set(textDiv, textDivProperties); - - textLayerFrag.appendChild(textDiv); - }, - _render: function TextLayer_render(timeout) { - var _this2 = this; - - var capability = (0, _util.createPromiseCapability)(); - var styleCache = Object.create(null); - var canvas = document.createElement('canvas'); - canvas.mozOpaque = true; - this._layoutTextCtx = canvas.getContext('2d', { - alpha: false - }); - - if (this._textContent) { - var textItems = this._textContent.items; - var textStyles = this._textContent.styles; - - this._processItems(textItems, textStyles); - - capability.resolve(); - } else if (this._textContentStream) { - var pump = function pump() { - _this2._reader.read().then(function (_ref2) { - var value = _ref2.value, - done = _ref2.done; - - if (done) { - capability.resolve(); - return; - } - - Object.assign(styleCache, value.styles); - - _this2._processItems(value.items, styleCache); - - pump(); - }, capability.reject); - }; - - this._reader = this._textContentStream.getReader(); - pump(); - } else { - throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.'); - } - - capability.promise.then(function () { - styleCache = null; - - if (!timeout) { - render(_this2); - } else { - _this2._renderTimer = setTimeout(function () { - render(_this2); - _this2._renderTimer = null; - }, timeout); - } - }, this._capability.reject); - }, - expandTextDivs: function TextLayer_expandTextDivs(expandDivs) { - if (!this._enhanceTextSelection || !this._renderingDone) { - return; - } - - if (this._bounds !== null) { - expand(this); - this._bounds = null; - } - - for (var i = 0, ii = this._textDivs.length; i < ii; i++) { - var div = this._textDivs[i]; - - var divProperties = this._textDivProperties.get(div); - - if (divProperties.isWhitespace) { - continue; - } - - if (expandDivs) { - var transform = '', - padding = ''; - - if (divProperties.scale !== 1) { - transform = 'scaleX(' + divProperties.scale + ')'; - } - - if (divProperties.angle !== 0) { - transform = 'rotate(' + divProperties.angle + 'deg) ' + transform; - } - - if (divProperties.paddingLeft !== 0) { - padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;'; - transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)'; - } - - if (divProperties.paddingTop !== 0) { - padding += ' padding-top: ' + divProperties.paddingTop + 'px;'; - transform += ' translateY(' + -divProperties.paddingTop + 'px)'; - } - - if (divProperties.paddingRight !== 0) { - padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;'; - } - - if (divProperties.paddingBottom !== 0) { - padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;'; - } - - if (padding !== '') { - div.setAttribute('style', divProperties.style + padding); - } - - if (transform !== '') { - div.style.transform = transform; - } - } else { - div.style.padding = 0; - div.style.transform = divProperties.originalTransform || ''; - } + transform = `scaleX(${textDivProperties.scale})`; } } - }; - function renderTextLayer(renderParameters) { - var task = new TextLayerRenderTask({ - textContent: renderParameters.textContent, - textContentStream: renderParameters.textContentStream, - container: renderParameters.container, - viewport: renderParameters.viewport, - textDivs: renderParameters.textDivs, - textContentItemsStr: renderParameters.textContentItemsStr, - enhanceTextSelection: renderParameters.enhanceTextSelection + if (textDivProperties.angle !== 0) { + transform = `rotate(${textDivProperties.angle}deg) ${transform}`; + } + + if (transform.length > 0) { + if (this._enhanceTextSelection) { + textDivProperties.originalTransform = transform; + } + + textDiv.style.transform = transform; + } + + if (textDivProperties.hasText) { + this._container.appendChild(textDiv); + } + + if (textDivProperties.hasEOL) { + const br = document.createElement("br"); + br.setAttribute("role", "presentation"); + + this._container.appendChild(br); + } + } + + _render(timeout = 0) { + const capability = (0, _util.createPromiseCapability)(); + let styleCache = Object.create(null); + + const canvas = this._document.createElement("canvas"); + + canvas.height = canvas.width = DEFAULT_FONT_SIZE; + canvas.mozOpaque = true; + this._layoutTextCtx = canvas.getContext("2d", { + alpha: false }); - task._render(renderParameters.timeout); + if (this._textContent) { + const textItems = this._textContent.items; + const textStyles = this._textContent.styles; - return task; - } + this._processItems(textItems, textStyles); - return renderTextLayer; -}(); - -exports.renderTextLayer = renderTextLayer; - -/***/ }), -/* 163 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.AnnotationLayer = void 0; - -var _display_utils = __w_pdfjs_require__(151); - -var _util = __w_pdfjs_require__(1); - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var AnnotationElementFactory = -/*#__PURE__*/ -function () { - function AnnotationElementFactory() { - _classCallCheck(this, AnnotationElementFactory); - } - - _createClass(AnnotationElementFactory, null, [{ - key: "create", - value: function create(parameters) { - var subtype = parameters.data.annotationType; - - switch (subtype) { - case _util.AnnotationType.LINK: - return new LinkAnnotationElement(parameters); - - case _util.AnnotationType.TEXT: - return new TextAnnotationElement(parameters); - - case _util.AnnotationType.WIDGET: - var fieldType = parameters.data.fieldType; - - switch (fieldType) { - case 'Tx': - return new TextWidgetAnnotationElement(parameters); - - case 'Btn': - if (parameters.data.radioButton) { - return new RadioButtonWidgetAnnotationElement(parameters); - } else if (parameters.data.checkBox) { - return new CheckboxWidgetAnnotationElement(parameters); - } - - return new PushButtonWidgetAnnotationElement(parameters); - - case 'Ch': - return new ChoiceWidgetAnnotationElement(parameters); + capability.resolve(); + } else if (this._textContentStream) { + const pump = () => { + this._reader.read().then(({ + value, + done + }) => { + if (done) { + capability.resolve(); + return; } - return new WidgetAnnotationElement(parameters); + Object.assign(styleCache, value.styles); - case _util.AnnotationType.POPUP: - return new PopupAnnotationElement(parameters); + this._processItems(value.items, styleCache); - case _util.AnnotationType.FREETEXT: - return new FreeTextAnnotationElement(parameters); - - case _util.AnnotationType.LINE: - return new LineAnnotationElement(parameters); - - case _util.AnnotationType.SQUARE: - return new SquareAnnotationElement(parameters); - - case _util.AnnotationType.CIRCLE: - return new CircleAnnotationElement(parameters); - - case _util.AnnotationType.POLYLINE: - return new PolylineAnnotationElement(parameters); - - case _util.AnnotationType.CARET: - return new CaretAnnotationElement(parameters); - - case _util.AnnotationType.INK: - return new InkAnnotationElement(parameters); - - case _util.AnnotationType.POLYGON: - return new PolygonAnnotationElement(parameters); - - case _util.AnnotationType.HIGHLIGHT: - return new HighlightAnnotationElement(parameters); - - case _util.AnnotationType.UNDERLINE: - return new UnderlineAnnotationElement(parameters); - - case _util.AnnotationType.SQUIGGLY: - return new SquigglyAnnotationElement(parameters); - - case _util.AnnotationType.STRIKEOUT: - return new StrikeOutAnnotationElement(parameters); - - case _util.AnnotationType.STAMP: - return new StampAnnotationElement(parameters); - - case _util.AnnotationType.FILEATTACHMENT: - return new FileAttachmentAnnotationElement(parameters); - - default: - return new AnnotationElement(parameters); - } - } - }]); - - return AnnotationElementFactory; -}(); - -var AnnotationElement = -/*#__PURE__*/ -function () { - function AnnotationElement(parameters) { - var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - _classCallCheck(this, AnnotationElement); - - this.isRenderable = isRenderable; - this.data = parameters.data; - this.layer = parameters.layer; - this.page = parameters.page; - this.viewport = parameters.viewport; - this.linkService = parameters.linkService; - this.downloadManager = parameters.downloadManager; - this.imageResourcesPath = parameters.imageResourcesPath; - this.renderInteractiveForms = parameters.renderInteractiveForms; - this.svgFactory = parameters.svgFactory; - - if (isRenderable) { - this.container = this._createContainer(ignoreBorder); - } - } - - _createClass(AnnotationElement, [{ - key: "_createContainer", - value: function _createContainer() { - var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var data = this.data, - page = this.page, - viewport = this.viewport; - var container = document.createElement('section'); - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - container.setAttribute('data-annotation-id', data.id); - - 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]]); - - container.style.transform = 'matrix(' + viewport.transform.join(',') + ')'; - container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px'; - - if (!ignoreBorder && data.borderStyle.width > 0) { - container.style.borderWidth = data.borderStyle.width + 'px'; - - if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) { - width = width - 2 * data.borderStyle.width; - height = height - 2 * data.borderStyle.width; - } - - var horizontalRadius = data.borderStyle.horizontalCornerRadius; - var verticalRadius = data.borderStyle.verticalCornerRadius; - - if (horizontalRadius > 0 || verticalRadius > 0) { - var radius = horizontalRadius + 'px / ' + verticalRadius + 'px'; - container.style.borderRadius = radius; - } - - switch (data.borderStyle.style) { - case _util.AnnotationBorderStyleType.SOLID: - container.style.borderStyle = 'solid'; - break; - - case _util.AnnotationBorderStyleType.DASHED: - container.style.borderStyle = 'dashed'; - break; - - case _util.AnnotationBorderStyleType.BEVELED: - (0, _util.warn)('Unimplemented border style: beveled'); - break; - - case _util.AnnotationBorderStyleType.INSET: - (0, _util.warn)('Unimplemented border style: inset'); - break; - - case _util.AnnotationBorderStyleType.UNDERLINE: - container.style.borderBottomStyle = 'solid'; - break; - - default: - break; - } - - if (data.color) { - container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0); - } else { - container.style.borderWidth = 0; - } - } - - container.style.left = rect[0] + 'px'; - container.style.top = rect[1] + 'px'; - container.style.width = width + 'px'; - container.style.height = height + 'px'; - return container; - } - }, { - key: "_createPopup", - value: function _createPopup(container, trigger, data) { - if (!trigger) { - trigger = document.createElement('div'); - trigger.style.height = container.style.height; - trigger.style.width = container.style.width; - container.appendChild(trigger); - } - - var popupElement = new PopupElement({ - container: container, - trigger: trigger, - color: data.color, - title: data.title, - modificationDate: data.modificationDate, - contents: data.contents, - hideWrapper: true - }); - var popup = popupElement.render(); - popup.style.left = container.style.width; - container.appendChild(popup); - } - }, { - key: "render", - value: function render() { - (0, _util.unreachable)('Abstract method `AnnotationElement.render` called'); - } - }]); - - return AnnotationElement; -}(); - -var LinkAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement) { - _inherits(LinkAnnotationElement, _AnnotationElement); - - function LinkAnnotationElement(parameters) { - _classCallCheck(this, LinkAnnotationElement); - - var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action); - return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(LinkAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'linkAnnotation'; - var data = this.data, - linkService = this.linkService; - var link = document.createElement('a'); - (0, _display_utils.addLinkAttributes)(link, { - url: data.url, - target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget, - rel: linkService.externalLinkRel - }); - - if (!data.url) { - if (data.action) { - this._bindNamedAction(link, data.action); - } else { - this._bindLink(link, data.dest); - } - } - - this.container.appendChild(link); - return this.container; - } - }, { - key: "_bindLink", - value: function _bindLink(link, destination) { - var _this = this; - - link.href = this.linkService.getDestinationHash(destination); - - link.onclick = function () { - if (destination) { - _this.linkService.navigateTo(destination); - } - - return false; + pump(); + }, capability.reject); }; - if (destination) { - link.className = 'internalLink'; + this._reader = this._textContentStream.getReader(); + pump(); + } else { + throw new Error('Neither "textContent" nor "textContentStream"' + " parameters specified."); + } + + capability.promise.then(() => { + styleCache = null; + + if (!timeout) { + render(this); + } else { + this._renderTimer = setTimeout(() => { + render(this); + this._renderTimer = null; + }, timeout); } - } - }, { - key: "_bindNamedAction", - value: function _bindNamedAction(link, action) { - var _this2 = this; - - link.href = this.linkService.getAnchorUrl(''); - - link.onclick = function () { - _this2.linkService.executeNamedAction(action); - - return false; - }; - - link.className = 'internalLink'; - } - }]); - - return LinkAnnotationElement; -}(AnnotationElement); - -var TextAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement2) { - _inherits(TextAnnotationElement, _AnnotationElement2); - - function TextAnnotationElement(parameters) { - _classCallCheck(this, TextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable)); + }, this._capability.reject); } - _createClass(TextAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'textAnnotation'; - var image = document.createElement('img'); - image.style.height = this.container.style.height; - image.style.width = this.container.style.width; - image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg'; - image.alt = '[{{type}} Annotation]'; - image.dataset.l10nId = 'text_annotation_type'; - image.dataset.l10nArgs = JSON.stringify({ - type: this.data.name - }); + expandTextDivs(expandDivs = false) { + if (!this._enhanceTextSelection || !this._renderingDone) { + return; + } - if (!this.data.hasPopup) { - this._createPopup(this.container, image, this.data); + if (this._bounds !== null) { + expand(this); + this._bounds = null; + } + + const transformBuf = [], + paddingBuf = []; + + for (let i = 0, ii = this._textDivs.length; i < ii; i++) { + const div = this._textDivs[i]; + + const divProps = this._textDivProperties.get(div); + + if (!divProps.hasText) { + continue; } - this.container.appendChild(image); - return this.container; - } - }]); + if (expandDivs) { + transformBuf.length = 0; + paddingBuf.length = 0; - return TextAnnotationElement; -}(AnnotationElement); + if (divProps.originalTransform) { + transformBuf.push(divProps.originalTransform); + } -var WidgetAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement3) { - _inherits(WidgetAnnotationElement, _AnnotationElement3); - - function WidgetAnnotationElement() { - _classCallCheck(this, WidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments)); - } - - _createClass(WidgetAnnotationElement, [{ - key: "render", - value: function render() { - return this.container; - } - }]); - - return WidgetAnnotationElement; -}(AnnotationElement); - -var TextWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem) { - _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem); - - function TextWidgetAnnotationElement(parameters) { - _classCallCheck(this, TextWidgetAnnotationElement); - - var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; - return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(TextWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var TEXT_ALIGNMENT = ['left', 'center', 'right']; - this.container.className = 'textWidgetAnnotation'; - var element = null; - - if (this.renderInteractiveForms) { - if (this.data.multiLine) { - element = document.createElement('textarea'); - element.textContent = this.data.fieldValue; + if (divProps.paddingTop > 0) { + paddingBuf.push(`${divProps.paddingTop}px`); + transformBuf.push(`translateY(${-divProps.paddingTop}px)`); } else { - element = document.createElement('input'); - element.type = 'text'; - element.setAttribute('value', this.data.fieldValue); + paddingBuf.push(0); } - element.disabled = this.data.readOnly; - - if (this.data.maxLen !== null) { - element.maxLength = this.data.maxLen; + if (divProps.paddingRight > 0) { + paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`); + } else { + paddingBuf.push(0); } - if (this.data.comb) { - var fieldWidth = this.data.rect[2] - this.data.rect[0]; - var combWidth = fieldWidth / this.data.maxLen; - element.classList.add('comb'); - element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)'; + if (divProps.paddingBottom > 0) { + paddingBuf.push(`${divProps.paddingBottom}px`); + } else { + paddingBuf.push(0); + } + + if (divProps.paddingLeft > 0) { + paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`); + transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`); + } else { + paddingBuf.push(0); + } + + div.style.padding = paddingBuf.join(" "); + + if (transformBuf.length) { + div.style.transform = transformBuf.join(" "); } } else { - element = document.createElement('div'); - element.textContent = this.data.fieldValue; - element.style.verticalAlign = 'middle'; - element.style.display = 'table-cell'; - var font = null; - - if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) { - font = this.page.commonObjs.get(this.data.fontRefName); - } - - this._setTextStyle(element, font); + div.style.padding = null; + div.style.transform = divProps.originalTransform; } - - if (this.data.textAlignment !== null) { - element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; - } - - this.container.appendChild(element); - return this.container; } - }, { - key: "_setTextStyle", - value: function _setTextStyle(element, font) { - var style = element.style; - style.fontSize = this.data.fontSize + 'px'; - style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr'; - - if (!font) { - return; - } - - style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal'; - style.fontStyle = font.italic ? 'italic' : 'normal'; - var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : ''; - var fallbackName = font.fallbackName || 'Helvetica, sans-serif'; - style.fontFamily = fontFamily + fallbackName; - } - }]); - - return TextWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var CheckboxWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem2) { - _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2); - - function CheckboxWidgetAnnotationElement(parameters) { - _classCallCheck(this, CheckboxWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); } - _createClass(CheckboxWidgetAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'buttonWidgetAnnotation checkBox'; - var element = document.createElement('input'); - element.disabled = this.data.readOnly; - element.type = 'checkbox'; - - if (this.data.fieldValue && this.data.fieldValue !== 'Off') { - element.setAttribute('checked', true); - } - - this.container.appendChild(element); - return this.container; - } - }]); - - return CheckboxWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var RadioButtonWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem3) { - _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3); - - function RadioButtonWidgetAnnotationElement(parameters) { - _classCallCheck(this, RadioButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(RadioButtonWidgetAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'buttonWidgetAnnotation radioButton'; - var element = document.createElement('input'); - element.disabled = this.data.readOnly; - element.type = 'radio'; - element.name = this.data.fieldName; - - if (this.data.fieldValue === this.data.buttonValue) { - element.setAttribute('checked', true); - } - - this.container.appendChild(element); - return this.container; - } - }]); - - return RadioButtonWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PushButtonWidgetAnnotationElement = -/*#__PURE__*/ -function (_LinkAnnotationElemen) { - _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen); - - function PushButtonWidgetAnnotationElement() { - _classCallCheck(this, PushButtonWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments)); - } - - _createClass(PushButtonWidgetAnnotationElement, [{ - key: "render", - value: function render() { - var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this); - - container.className = 'buttonWidgetAnnotation pushButton'; - return container; - } - }]); - - return PushButtonWidgetAnnotationElement; -}(LinkAnnotationElement); - -var ChoiceWidgetAnnotationElement = -/*#__PURE__*/ -function (_WidgetAnnotationElem4) { - _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4); - - function ChoiceWidgetAnnotationElement(parameters) { - _classCallCheck(this, ChoiceWidgetAnnotationElement); - - return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms)); - } - - _createClass(ChoiceWidgetAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'choiceWidgetAnnotation'; - var selectElement = document.createElement('select'); - selectElement.disabled = this.data.readOnly; - - if (!this.data.combo) { - selectElement.size = this.data.options.length; - - if (this.data.multiSelect) { - selectElement.multiple = true; - } - } - - for (var i = 0, ii = this.data.options.length; i < ii; i++) { - var option = this.data.options[i]; - var optionElement = document.createElement('option'); - optionElement.textContent = option.displayValue; - optionElement.value = option.exportValue; - - if (this.data.fieldValue.includes(option.displayValue)) { - optionElement.setAttribute('selected', true); - } - - selectElement.appendChild(optionElement); - } - - this.container.appendChild(selectElement); - return this.container; - } - }]); - - return ChoiceWidgetAnnotationElement; -}(WidgetAnnotationElement); - -var PopupAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement4) { - _inherits(PopupAnnotationElement, _AnnotationElement4); - - function PopupAnnotationElement(parameters) { - _classCallCheck(this, PopupAnnotationElement); - - var isRenderable = !!(parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable)); - } - - _createClass(PopupAnnotationElement, [{ - key: "render", - value: function render() { - var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink']; - this.container.className = 'popupAnnotation'; - - if (IGNORE_TYPES.includes(this.data.parentType)) { - return this.container; - } - - var selector = '[data-annotation-id="' + this.data.parentId + '"]'; - var parentElement = this.layer.querySelector(selector); - - if (!parentElement) { - return this.container; - } - - var popup = new PopupElement({ - container: this.container, - trigger: parentElement, - color: this.data.color, - title: this.data.title, - modificationDate: this.data.modificationDate, - contents: this.data.contents - }); - var parentLeft = parseFloat(parentElement.style.left); - var parentWidth = parseFloat(parentElement.style.width); - this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top; - this.container.style.left = parentLeft + parentWidth + 'px'; - this.container.appendChild(popup.render()); - return this.container; - } - }]); - - return PopupAnnotationElement; -}(AnnotationElement); - -var PopupElement = -/*#__PURE__*/ -function () { - function PopupElement(parameters) { - _classCallCheck(this, PopupElement); - - this.container = parameters.container; - this.trigger = parameters.trigger; - this.color = parameters.color; - this.title = parameters.title; - this.modificationDate = parameters.modificationDate; - this.contents = parameters.contents; - this.hideWrapper = parameters.hideWrapper || false; - this.pinned = false; - } - - _createClass(PopupElement, [{ - key: "render", - value: function render() { - var BACKGROUND_ENLIGHT = 0.7; - var wrapper = document.createElement('div'); - wrapper.className = 'popupWrapper'; - this.hideElement = this.hideWrapper ? wrapper : this.container; - this.hideElement.setAttribute('hidden', true); - var popup = document.createElement('div'); - popup.className = 'popup'; - var color = this.color; - - if (color) { - var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0]; - var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1]; - var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2]; - popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0); - } - - var title = document.createElement('h1'); - title.textContent = this.title; - popup.appendChild(title); - - var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate); - - if (dateObject) { - var modificationDate = document.createElement('span'); - modificationDate.textContent = '{{date}}, {{time}}'; - modificationDate.dataset.l10nId = 'annotation_date_string'; - modificationDate.dataset.l10nArgs = JSON.stringify({ - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }); - popup.appendChild(modificationDate); - } - - var contents = this._formatContents(this.contents); - - popup.appendChild(contents); - this.trigger.addEventListener('click', this._toggle.bind(this)); - this.trigger.addEventListener('mouseover', this._show.bind(this, false)); - this.trigger.addEventListener('mouseout', this._hide.bind(this, false)); - popup.addEventListener('click', this._hide.bind(this, true)); - wrapper.appendChild(popup); - return wrapper; - } - }, { - key: "_formatContents", - value: function _formatContents(contents) { - var p = document.createElement('p'); - var lines = contents.split(/(?:\r\n?|\n)/); - - for (var i = 0, ii = lines.length; i < ii; ++i) { - var line = lines[i]; - p.appendChild(document.createTextNode(line)); - - if (i < ii - 1) { - p.appendChild(document.createElement('br')); - } - } - - return p; - } - }, { - key: "_toggle", - value: function _toggle() { - if (this.pinned) { - this._hide(true); - } else { - this._show(true); - } - } - }, { - key: "_show", - value: function _show() { - var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (pin) { - this.pinned = true; - } - - if (this.hideElement.hasAttribute('hidden')) { - this.hideElement.removeAttribute('hidden'); - this.container.style.zIndex += 1; - } - } - }, { - key: "_hide", - value: function _hide() { - var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; - - if (unpin) { - this.pinned = false; - } - - if (!this.hideElement.hasAttribute('hidden') && !this.pinned) { - this.hideElement.setAttribute('hidden', true); - this.container.style.zIndex -= 1; - } - } - }]); - - return PopupElement; -}(); - -var FreeTextAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement5) { - _inherits(FreeTextAnnotationElement, _AnnotationElement5); - - function FreeTextAnnotationElement(parameters) { - _classCallCheck(this, FreeTextAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(FreeTextAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'freeTextAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return FreeTextAnnotationElement; -}(AnnotationElement); - -var LineAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement6) { - _inherits(LineAnnotationElement, _AnnotationElement6); - - function LineAnnotationElement(parameters) { - _classCallCheck(this, LineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(LineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'lineAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var line = this.svgFactory.createElement('svg:line'); - line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]); - line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]); - line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]); - line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]); - line.setAttribute('stroke-width', data.borderStyle.width); - line.setAttribute('stroke', 'transparent'); - svg.appendChild(line); - this.container.append(svg); - - this._createPopup(this.container, line, data); - - return this.container; - } - }]); - - return LineAnnotationElement; -}(AnnotationElement); - -var SquareAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement7) { - _inherits(SquareAnnotationElement, _AnnotationElement7); - - function SquareAnnotationElement(parameters) { - _classCallCheck(this, SquareAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(SquareAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'squareAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var square = this.svgFactory.createElement('svg:rect'); - square.setAttribute('x', borderWidth / 2); - square.setAttribute('y', borderWidth / 2); - square.setAttribute('width', width - borderWidth); - square.setAttribute('height', height - borderWidth); - square.setAttribute('stroke-width', borderWidth); - square.setAttribute('stroke', 'transparent'); - square.setAttribute('fill', 'none'); - svg.appendChild(square); - this.container.append(svg); - - this._createPopup(this.container, square, data); - - return this.container; - } - }]); - - return SquareAnnotationElement; -}(AnnotationElement); - -var CircleAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement8) { - _inherits(CircleAnnotationElement, _AnnotationElement8); - - function CircleAnnotationElement(parameters) { - _classCallCheck(this, CircleAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(CircleAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'circleAnnotation'; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var borderWidth = data.borderStyle.width; - var circle = this.svgFactory.createElement('svg:ellipse'); - circle.setAttribute('cx', width / 2); - circle.setAttribute('cy', height / 2); - circle.setAttribute('rx', width / 2 - borderWidth / 2); - circle.setAttribute('ry', height / 2 - borderWidth / 2); - circle.setAttribute('stroke-width', borderWidth); - circle.setAttribute('stroke', 'transparent'); - circle.setAttribute('fill', 'none'); - svg.appendChild(circle); - this.container.append(svg); - - this._createPopup(this.container, circle, data); - - return this.container; - } - }]); - - return CircleAnnotationElement; -}(AnnotationElement); - -var PolylineAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement9) { - _inherits(PolylineAnnotationElement, _AnnotationElement9); - - function PolylineAnnotationElement(parameters) { - var _this3; - - _classCallCheck(this, PolylineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true)); - _this3.containerClassName = 'polylineAnnotation'; - _this3.svgElementName = 'svg:polyline'; - return _this3; - } - - _createClass(PolylineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var vertices = data.vertices; - var points = []; - - for (var i = 0, ii = vertices.length; i < ii; i++) { - var x = vertices[i].x - data.rect[0]; - var y = data.rect[3] - vertices[i].y; - points.push(x + ',' + y); - } - - points = points.join(' '); - var borderWidth = data.borderStyle.width; - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute('points', points); - polyline.setAttribute('stroke-width', borderWidth); - polyline.setAttribute('stroke', 'transparent'); - polyline.setAttribute('fill', 'none'); - svg.appendChild(polyline); - this.container.append(svg); - - this._createPopup(this.container, polyline, data); - - return this.container; - } - }]); - - return PolylineAnnotationElement; -}(AnnotationElement); - -var PolygonAnnotationElement = -/*#__PURE__*/ -function (_PolylineAnnotationEl) { - _inherits(PolygonAnnotationElement, _PolylineAnnotationEl); - - function PolygonAnnotationElement(parameters) { - var _this4; - - _classCallCheck(this, PolygonAnnotationElement); - - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters)); - _this4.containerClassName = 'polygonAnnotation'; - _this4.svgElementName = 'svg:polygon'; - return _this4; - } - - return PolygonAnnotationElement; -}(PolylineAnnotationElement); - -var CaretAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement10) { - _inherits(CaretAnnotationElement, _AnnotationElement10); - - function CaretAnnotationElement(parameters) { - _classCallCheck(this, CaretAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(CaretAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'caretAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return CaretAnnotationElement; -}(AnnotationElement); - -var InkAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement11) { - _inherits(InkAnnotationElement, _AnnotationElement11); - - function InkAnnotationElement(parameters) { - var _this5; - - _classCallCheck(this, InkAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true)); - _this5.containerClassName = 'inkAnnotation'; - _this5.svgElementName = 'svg:polyline'; - return _this5; - } - - _createClass(InkAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = this.containerClassName; - var data = this.data; - var width = data.rect[2] - data.rect[0]; - var height = data.rect[3] - data.rect[1]; - var svg = this.svgFactory.create(width, height); - var inkLists = data.inkLists; - - for (var i = 0, ii = inkLists.length; i < ii; i++) { - var inkList = inkLists[i]; - var points = []; - - for (var j = 0, jj = inkList.length; j < jj; j++) { - var x = inkList[j].x - data.rect[0]; - var y = data.rect[3] - inkList[j].y; - points.push(x + ',' + y); - } - - points = points.join(' '); - var borderWidth = data.borderStyle.width; - var polyline = this.svgFactory.createElement(this.svgElementName); - polyline.setAttribute('points', points); - polyline.setAttribute('stroke-width', borderWidth); - polyline.setAttribute('stroke', 'transparent'); - polyline.setAttribute('fill', 'none'); - - this._createPopup(this.container, polyline, data); - - svg.appendChild(polyline); - } - - this.container.append(svg); - return this.container; - } - }]); - - return InkAnnotationElement; -}(AnnotationElement); - -var HighlightAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement12) { - _inherits(HighlightAnnotationElement, _AnnotationElement12); - - function HighlightAnnotationElement(parameters) { - _classCallCheck(this, HighlightAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(HighlightAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'highlightAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return HighlightAnnotationElement; -}(AnnotationElement); - -var UnderlineAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement13) { - _inherits(UnderlineAnnotationElement, _AnnotationElement13); - - function UnderlineAnnotationElement(parameters) { - _classCallCheck(this, UnderlineAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(UnderlineAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'underlineAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return UnderlineAnnotationElement; -}(AnnotationElement); - -var SquigglyAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement14) { - _inherits(SquigglyAnnotationElement, _AnnotationElement14); - - function SquigglyAnnotationElement(parameters) { - _classCallCheck(this, SquigglyAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(SquigglyAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'squigglyAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return SquigglyAnnotationElement; -}(AnnotationElement); - -var StrikeOutAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement15) { - _inherits(StrikeOutAnnotationElement, _AnnotationElement15); - - function StrikeOutAnnotationElement(parameters) { - _classCallCheck(this, StrikeOutAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(StrikeOutAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'strikeoutAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return StrikeOutAnnotationElement; -}(AnnotationElement); - -var StampAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement16) { - _inherits(StampAnnotationElement, _AnnotationElement16); - - function StampAnnotationElement(parameters) { - _classCallCheck(this, StampAnnotationElement); - - var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents); - return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true)); - } - - _createClass(StampAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'stampAnnotation'; - - if (!this.data.hasPopup) { - this._createPopup(this.container, null, this.data); - } - - return this.container; - } - }]); - - return StampAnnotationElement; -}(AnnotationElement); - -var FileAttachmentAnnotationElement = -/*#__PURE__*/ -function (_AnnotationElement17) { - _inherits(FileAttachmentAnnotationElement, _AnnotationElement17); - - function FileAttachmentAnnotationElement(parameters) { - var _this6; - - _classCallCheck(this, FileAttachmentAnnotationElement); - - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true)); - var _this6$data$file = _this6.data.file, - filename = _this6$data$file.filename, - content = _this6$data$file.content; - _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename); - _this6.content = content; - - if (_this6.linkService.eventBus) { - _this6.linkService.eventBus.dispatch('fileattachmentannotation', { - source: _assertThisInitialized(_this6), - id: (0, _util.stringToPDFString)(filename), - filename: filename, - content: content - }); - } - - return _this6; - } - - _createClass(FileAttachmentAnnotationElement, [{ - key: "render", - value: function render() { - this.container.className = 'fileAttachmentAnnotation'; - var trigger = document.createElement('div'); - trigger.style.height = this.container.style.height; - trigger.style.width = this.container.style.width; - trigger.addEventListener('dblclick', this._download.bind(this)); - - if (!this.data.hasPopup && (this.data.title || this.data.contents)) { - this._createPopup(this.container, trigger, this.data); - } - - this.container.appendChild(trigger); - return this.container; - } - }, { - key: "_download", - value: function _download() { - if (!this.downloadManager) { - (0, _util.warn)('Download cannot be started due to unavailable download manager'); - return; - } - - this.downloadManager.downloadData(this.content, this.filename, ''); - } - }]); - - return FileAttachmentAnnotationElement; -}(AnnotationElement); - -var AnnotationLayer = -/*#__PURE__*/ -function () { - function AnnotationLayer() { - _classCallCheck(this, AnnotationLayer); - } - - _createClass(AnnotationLayer, null, [{ - key: "render", - value: function render(parameters) { - for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { - var data = parameters.annotations[i]; - - if (!data) { - continue; - } - - var element = AnnotationElementFactory.create({ - data: data, - layer: parameters.div, - page: parameters.page, - viewport: parameters.viewport, - linkService: parameters.linkService, - downloadManager: parameters.downloadManager, - imageResourcesPath: parameters.imageResourcesPath || '', - renderInteractiveForms: parameters.renderInteractiveForms || false, - svgFactory: new _display_utils.DOMSVGFactory() - }); - - if (element.isRenderable) { - parameters.div.appendChild(element.render()); - } - } - } - }, { - key: "update", - value: function update(parameters) { - for (var i = 0, ii = parameters.annotations.length; i < ii; i++) { - var data = parameters.annotations[i]; - var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]'); - - if (element) { - element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')'; - } - } - - parameters.div.removeAttribute('hidden'); - } - }]); - - return AnnotationLayer; -}(); - -exports.AnnotationLayer = AnnotationLayer; +} + +function renderTextLayer(renderParameters) { + const task = new TextLayerRenderTask({ + textContent: renderParameters.textContent, + textContentStream: renderParameters.textContentStream, + container: renderParameters.container, + viewport: renderParameters.viewport, + textDivs: renderParameters.textDivs, + textContentItemsStr: renderParameters.textContentItemsStr, + enhanceTextSelection: renderParameters.enhanceTextSelection + }); + + task._render(renderParameters.timeout); + + return task; +} /***/ }), -/* 164 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 20 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.SVGGraphics = void 0; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _display_utils = __w_pdfjs_require__(151); +var _display_utils = __w_pdfjs_require__(1); -var _is_node = _interopRequireDefault(__w_pdfjs_require__(4)); +var _is_node = __w_pdfjs_require__(4); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +let SVGGraphics = class { + constructor() { + (0, _util.unreachable)("Not implemented: SVGGraphics"); + } -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } - -function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SVGGraphics = function SVGGraphics() { - throw new Error('Not implemented: SVGGraphics'); }; - exports.SVGGraphics = SVGGraphics; { - var opListToTree = function opListToTree(opList) { - var opTree = []; - var tmp = []; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var opListElement = _step.value; - - if (opListElement.fn === 'save') { - opTree.push({ - 'fnId': 92, - 'fn': 'group', - 'items': [] - }); - tmp.push(opTree); - opTree = opTree[opTree.length - 1].items; - continue; - } - - if (opListElement.fn === 'restore') { - opTree = tmp.pop(); - } else { - opTree.push(opListElement); - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - return opTree; + const SVG_DEFAULTS = { + fontStyle: "normal", + fontWeight: "normal", + fillColor: "#000000" }; + const XML_NS = "http://www.w3.org/XML/1998/namespace"; + const XLINK_NS = "http://www.w3.org/1999/xlink"; + const LINE_CAP_STYLES = ["butt", "round", "square"]; + const LINE_JOIN_STYLES = ["miter", "round", "bevel"]; - var pf = function pf(value) { - if (Number.isInteger(value)) { - return value.toString(); - } + const convertImgDataToPng = function () { + const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); + const CHUNK_WRAPPER_SIZE = 12; + const crcTable = new Int32Array(256); - var s = value.toFixed(10); - var i = s.length - 1; + for (let i = 0; i < 256; i++) { + let c = i; - if (s[i] !== '0') { - return s; - } - - do { - i--; - } while (s[i] === '0'); - - return s.substring(0, s[i] === '.' ? i : i + 1); - }; - - var pm = function pm(m) { - if (m[4] === 0 && m[5] === 0) { - if (m[1] === 0 && m[2] === 0) { - if (m[0] === 1 && m[3] === 1) { - return ''; - } - - return "scale(".concat(pf(m[0]), " ").concat(pf(m[3]), ")"); - } - - if (m[0] === m[3] && m[1] === -m[2]) { - var a = Math.acos(m[0]) * 180 / Math.PI; - return "rotate(".concat(pf(a), ")"); - } - } else { - if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { - return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")"); - } - } - - return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")"); - }; - - var SVG_DEFAULTS = { - fontStyle: 'normal', - fontWeight: 'normal', - fillColor: '#000000' - }; - var XML_NS = 'http://www.w3.org/XML/1998/namespace'; - var XLINK_NS = 'http://www.w3.org/1999/xlink'; - var LINE_CAP_STYLES = ['butt', 'round', 'square']; - var LINE_JOIN_STYLES = ['miter', 'round', 'bevel']; - - var convertImgDataToPng = function () { - var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]); - var CHUNK_WRAPPER_SIZE = 12; - var crcTable = new Int32Array(256); - - for (var i = 0; i < 256; i++) { - var c = i; - - for (var h = 0; h < 8; h++) { + for (let h = 0; h < 8; h++) { if (c & 1) { - c = 0xedB88320 ^ c >> 1 & 0x7fffffff; + c = 0xedb88320 ^ c >> 1 & 0x7fffffff; } else { c = c >> 1 & 0x7fffffff; } @@ -20975,11 +11090,11 @@ exports.SVGGraphics = SVGGraphics; } function crc32(data, start, end) { - var crc = -1; + let crc = -1; - for (var _i = start; _i < end; _i++) { - var a = (crc ^ data[_i]) & 0xff; - var b = crcTable[a]; + for (let i = start; i < end; i++) { + const a = (crc ^ data[i]) & 0xff; + const b = crcTable[a]; crc = crc >>> 8 ^ b; } @@ -20987,8 +11102,8 @@ exports.SVGGraphics = SVGGraphics; } function writePngChunk(type, body, data, offset) { - var p = offset; - var len = body.length; + let p = offset; + const len = body.length; data[p] = len >> 24 & 0xff; data[p + 1] = len >> 16 & 0xff; data[p + 2] = len >> 8 & 0xff; @@ -21001,7 +11116,7 @@ exports.SVGGraphics = SVGGraphics; p += 4; data.set(body, p); p += body.length; - var crc = crc32(data, offset + 4, p); + const crc = crc32(data, offset + 4, p); data[p] = crc >> 24 & 0xff; data[p + 1] = crc >> 16 & 0xff; data[p + 2] = crc >> 8 & 0xff; @@ -21009,11 +11124,11 @@ exports.SVGGraphics = SVGGraphics; } function adler32(data, start, end) { - var a = 1; - var b = 0; + let a = 1; + let b = 0; - for (var _i2 = start; _i2 < end; ++_i2) { - a = (a + (data[_i2] & 0xff)) % 65521; + for (let i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; b = (b + a) % 65521; } @@ -21021,40 +11136,40 @@ exports.SVGGraphics = SVGGraphics; } function deflateSync(literals) { - if (!(0, _is_node["default"])()) { + if (!_is_node.isNodeJS) { return deflateSyncUncompressed(literals); } try { - var input; + let input; if (parseInt(process.versions.node) >= 8) { input = literals; } else { - input = new Buffer(literals); + input = Buffer.from(literals); } - var output = require('zlib').deflateSync(input, { + const output = require("zlib").deflateSync(input, { level: 9 }); return output instanceof Uint8Array ? output : new Uint8Array(output); } catch (e) { - (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e); + (0, _util.warn)("Not compressing PNG because zlib.deflateSync is unavailable: " + e); } return deflateSyncUncompressed(literals); } function deflateSyncUncompressed(literals) { - var len = literals.length; - var maxBlockLength = 0xFFFF; - var deflateBlocks = Math.ceil(len / maxBlockLength); - var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); - var pi = 0; + let len = literals.length; + const maxBlockLength = 0xffff; + const deflateBlocks = Math.ceil(len / maxBlockLength); + const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4); + let pi = 0; idat[pi++] = 0x78; idat[pi++] = 0x9c; - var pos = 0; + let pos = 0; while (len > maxBlockLength) { idat[pi++] = 0x00; @@ -21075,7 +11190,7 @@ exports.SVGGraphics = SVGGraphics; idat[pi++] = (~len & 0xffff) >> 8 & 0xff; idat.set(literals.subarray(pos), pi); pi += literals.length - pos; - var adler = adler32(literals, 0, literals.length); + const adler = adler32(literals, 0, literals.length); idat[pi++] = adler >> 24 & 0xff; idat[pi++] = adler >> 16 & 0xff; idat[pi++] = adler >> 8 & 0xff; @@ -21084,10 +11199,10 @@ exports.SVGGraphics = SVGGraphics; } function encode(imgData, kind, forceDataSchema, isMask) { - var width = imgData.width; - var height = imgData.height; - var bitDepth, colorType, lineSize; - var bytes = imgData.data; + const width = imgData.width; + const height = imgData.height; + let bitDepth, colorType, lineSize; + const bytes = imgData.data; switch (kind) { case _util.ImageKind.GRAYSCALE_1BPP: @@ -21109,14 +11224,14 @@ exports.SVGGraphics = SVGGraphics; break; default: - throw new Error('invalid format'); + throw new Error("invalid format"); } - var literals = new Uint8Array((1 + lineSize) * height); - var offsetLiterals = 0, + const literals = new Uint8Array((1 + lineSize) * height); + let offsetLiterals = 0, offsetBytes = 0; - for (var y = 0; y < height; ++y) { + for (let y = 0; y < height; ++y) { literals[offsetLiterals++] = 0; literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); offsetBytes += lineSize; @@ -21126,42 +11241,38 @@ exports.SVGGraphics = SVGGraphics; if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { offsetLiterals = 0; - for (var _y = 0; _y < height; _y++) { + for (let y = 0; y < height; y++) { offsetLiterals++; - for (var _i3 = 0; _i3 < lineSize; _i3++) { - literals[offsetLiterals++] ^= 0xFF; + for (let i = 0; i < lineSize; i++) { + literals[offsetLiterals++] ^= 0xff; } } } - 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]); - var idat = deflateSync(literals); - var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; - var data = new Uint8Array(pngLength); - var offset = 0; + const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]); + const idat = deflateSync(literals); + const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length; + const data = new Uint8Array(pngLength); + let offset = 0; data.set(PNG_HEADER, offset); offset += PNG_HEADER.length; - writePngChunk('IHDR', ihdr, data, offset); + writePngChunk("IHDR", ihdr, data, offset); offset += CHUNK_WRAPPER_SIZE + ihdr.length; - writePngChunk('IDATA', idat, data, offset); + writePngChunk("IDATA", idat, data, offset); offset += CHUNK_WRAPPER_SIZE + idat.length; - writePngChunk('IEND', new Uint8Array(0), data, offset); - return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema); + writePngChunk("IEND", new Uint8Array(0), data, offset); + return (0, _util.createObjectURL)(data, "image/png", forceDataSchema); } return function convertImgDataToPng(imgData, forceDataSchema, isMask) { - var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; return encode(imgData, kind, forceDataSchema, isMask); }; }(); - var SVGExtraState = - /*#__PURE__*/ - function () { - function SVGExtraState() { - _classCallCheck(this, SVGExtraState); - + class SVGExtraState { + constructor() { this.fontSizeScale = 1; this.fontWeight = SVG_DEFAULTS.fontWeight; this.fontSize = 0; @@ -21179,47 +11290,105 @@ exports.SVGGraphics = SVGGraphics; this.textHScale = 1; this.textRise = 0; this.fillColor = SVG_DEFAULTS.fillColor; - this.strokeColor = '#000000'; + this.strokeColor = "#000000"; this.fillAlpha = 1; this.strokeAlpha = 1; this.lineWidth = 1; - this.lineJoin = ''; - this.lineCap = ''; + this.lineJoin = ""; + this.lineCap = ""; this.miterLimit = 0; this.dashArray = []; this.dashPhase = 0; this.dependencies = []; this.activeClipUrl = null; this.clipGroup = null; - this.maskId = ''; + this.maskId = ""; } - _createClass(SVGExtraState, [{ - key: "clone", - value: function clone() { - return Object.create(this); + clone() { + return Object.create(this); + } + + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + + } + + function opListToTree(opList) { + let opTree = []; + const tmp = []; + + for (const opListElement of opList) { + if (opListElement.fn === "save") { + opTree.push({ + fnId: 92, + fn: "group", + items: [] + }); + tmp.push(opTree); + opTree = opTree[opTree.length - 1].items; + continue; } - }, { - key: "setCurrentPoint", - value: function setCurrentPoint(x, y) { - this.x = x; - this.y = y; + + if (opListElement.fn === "restore") { + opTree = tmp.pop(); + } else { + opTree.push(opListElement); } - }]); + } - return SVGExtraState; - }(); + return opTree; + } - var clipCount = 0; - var maskCount = 0; - var shadingCount = 0; + function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } - exports.SVGGraphics = SVGGraphics = - /*#__PURE__*/ - function () { - function SVGGraphics(commonObjs, objs, forceDataSchema) { - _classCallCheck(this, SVGGraphics); + const s = value.toFixed(10); + let i = s.length - 1; + if (s[i] !== "0") { + return s; + } + + do { + i--; + } while (s[i] === "0"); + + return s.substring(0, s[i] === "." ? i : i + 1); + } + + function pm(m) { + if (m[4] === 0 && m[5] === 0) { + if (m[1] === 0 && m[2] === 0) { + if (m[0] === 1 && m[3] === 1) { + return ""; + } + + return `scale(${pf(m[0])} ${pf(m[3])})`; + } + + if (m[0] === m[3] && m[1] === -m[2]) { + const a = Math.acos(m[0]) * 180 / Math.PI; + return `rotate(${pf(a)})`; + } + } else { + if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) { + return `translate(${pf(m[4])} ${pf(m[5])})`; + } + } + + return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`; + } + + let clipCount = 0; + let maskCount = 0; + let shadingCount = 0; + exports.SVGGraphics = SVGGraphics = class { + constructor(commonObjs, objs, forceDataSchema = false) { this.svgFactory = new _display_utils.DOMSVGFactory(); this.current = new SVGExtraState(); this.transformMatrix = _util.IDENTITY_MATRIX; @@ -21235,1485 +11404,1436 @@ exports.SVGGraphics = SVGGraphics; this.forceDataSchema = !!forceDataSchema; this._operatorIdMapping = []; - for (var op in _util.OPS) { + for (const op in _util.OPS) { this._operatorIdMapping[_util.OPS[op]] = op; } } - _createClass(SVGGraphics, [{ - key: "save", - value: function save() { - this.transformStack.push(this.transformMatrix); - var old = this.current; - this.extraStack.push(old); - this.current = old.clone(); - } - }, { - key: "restore", - value: function restore() { - this.transformMatrix = this.transformStack.pop(); - this.current = this.extraStack.pop(); - this.pendingClip = null; - this.tgrp = null; - } - }, { - key: "group", - value: function group(items) { - this.save(); - this.executeOpTree(items); - this.restore(); - } - }, { - key: "loadDependencies", - value: function loadDependencies(operatorList) { - var _this = this; + save() { + this.transformStack.push(this.transformMatrix); + const old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + } - var fnArray = operatorList.fnArray; - var argsArray = operatorList.argsArray; + restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + } - for (var i = 0, ii = fnArray.length; i < ii; i++) { - if (fnArray[i] !== _util.OPS.dependency) { - continue; - } + group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + } - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + loadDependencies(operatorList) { + const fnArray = operatorList.fnArray; + const argsArray = operatorList.argsArray; - try { - var _loop = function _loop() { - var obj = _step2.value; - var objsPool = obj.startsWith('g_') ? _this.commonObjs : _this.objs; - var promise = new Promise(function (resolve) { - objsPool.get(obj, resolve); - }); - - _this.current.dependencies.push(promise); - }; - - for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - _loop(); - } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } - } - } + for (let i = 0, ii = fnArray.length; i < ii; i++) { + if (fnArray[i] !== _util.OPS.dependency) { + continue; } - return Promise.all(this.current.dependencies); + for (const obj of argsArray[i]) { + const objsPool = obj.startsWith("g_") ? this.commonObjs : this.objs; + const promise = new Promise(resolve => { + objsPool.get(obj, resolve); + }); + this.current.dependencies.push(promise); + } } - }, { - key: "transform", - value: function transform(a, b, c, d, e, f) { - var transformMatrix = [a, b, c, d, e, f]; - this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); - this.tgrp = null; - } - }, { - key: "getSVG", - value: function getSVG(operatorList, viewport) { - var _this2 = this; - this.viewport = viewport; + return Promise.all(this.current.dependencies); + } - var svgElement = this._initialize(viewport); + transform(a, b, c, d, e, f) { + const transformMatrix = [a, b, c, d, e, f]; + this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix); + this.tgrp = null; + } - return this.loadDependencies(operatorList).then(function () { - _this2.transformMatrix = _util.IDENTITY_MATRIX; + getSVG(operatorList, viewport) { + this.viewport = viewport; - _this2.executeOpTree(_this2.convertOpList(operatorList)); + const svgElement = this._initialize(viewport); - return svgElement; + return this.loadDependencies(operatorList).then(() => { + this.transformMatrix = _util.IDENTITY_MATRIX; + this.executeOpTree(this.convertOpList(operatorList)); + return svgElement; + }); + } + + convertOpList(operatorList) { + const operatorIdMapping = this._operatorIdMapping; + const argsArray = operatorList.argsArray; + const fnArray = operatorList.fnArray; + const opList = []; + + for (let i = 0, ii = fnArray.length; i < ii; i++) { + const fnId = fnArray[i]; + opList.push({ + fnId, + fn: operatorIdMapping[fnId], + args: argsArray[i] }); } - }, { - key: "convertOpList", - value: function convertOpList(operatorList) { - var operatorIdMapping = this._operatorIdMapping; - var argsArray = operatorList.argsArray; - var fnArray = operatorList.fnArray; - var opList = []; - - for (var i = 0, ii = fnArray.length; i < ii; i++) { - var fnId = fnArray[i]; - opList.push({ - 'fnId': fnId, - 'fn': operatorIdMapping[fnId], - 'args': argsArray[i] - }); - } - - return opListToTree(opList); - } - }, { - key: "executeOpTree", - value: function executeOpTree(opTree) { - var _iteratorNormalCompletion3 = true; - var _didIteratorError3 = false; - var _iteratorError3 = undefined; - - try { - for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) { - var opTreeElement = _step3.value; - var fn = opTreeElement.fn; - var fnId = opTreeElement.fnId; - var args = opTreeElement.args; - - switch (fnId | 0) { - case _util.OPS.beginText: - this.beginText(); - break; - - case _util.OPS.dependency: - break; - - case _util.OPS.setLeading: - this.setLeading(args); - break; - - case _util.OPS.setLeadingMoveText: - this.setLeadingMoveText(args[0], args[1]); - break; - - case _util.OPS.setFont: - this.setFont(args); - break; - - case _util.OPS.showText: - this.showText(args[0]); - break; - - case _util.OPS.showSpacedText: - this.showText(args[0]); - break; - - case _util.OPS.endText: - this.endText(); - break; - - case _util.OPS.moveText: - this.moveText(args[0], args[1]); - break; - - case _util.OPS.setCharSpacing: - this.setCharSpacing(args[0]); - break; - - case _util.OPS.setWordSpacing: - this.setWordSpacing(args[0]); - break; - - case _util.OPS.setHScale: - this.setHScale(args[0]); - break; - - case _util.OPS.setTextMatrix: - this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.setTextRise: - this.setTextRise(args[0]); - break; - - case _util.OPS.setTextRenderingMode: - this.setTextRenderingMode(args[0]); - break; - - case _util.OPS.setLineWidth: - this.setLineWidth(args[0]); - break; - - case _util.OPS.setLineJoin: - this.setLineJoin(args[0]); - break; - - case _util.OPS.setLineCap: - this.setLineCap(args[0]); - break; - - case _util.OPS.setMiterLimit: - this.setMiterLimit(args[0]); - break; - - case _util.OPS.setFillRGBColor: - this.setFillRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeRGBColor: - this.setStrokeRGBColor(args[0], args[1], args[2]); - break; - - case _util.OPS.setStrokeColorN: - this.setStrokeColorN(args); - break; - - case _util.OPS.setFillColorN: - this.setFillColorN(args); - break; - case _util.OPS.shadingFill: - this.shadingFill(args[0]); - break; + return opListToTree(opList); + } - case _util.OPS.setDash: - this.setDash(args[0], args[1]); - break; + executeOpTree(opTree) { + for (const opTreeElement of opTree) { + const fn = opTreeElement.fn; + const fnId = opTreeElement.fnId; + const args = opTreeElement.args; - case _util.OPS.setRenderingIntent: - this.setRenderingIntent(args[0]); - break; + switch (fnId | 0) { + case _util.OPS.beginText: + this.beginText(); + break; - case _util.OPS.setFlatness: - this.setFlatness(args[0]); - break; + case _util.OPS.dependency: + break; - case _util.OPS.setGState: - this.setGState(args[0]); - break; - - case _util.OPS.fill: - this.fill(); - break; - - case _util.OPS.eoFill: - this.eoFill(); - break; - - case _util.OPS.stroke: - this.stroke(); - break; - - case _util.OPS.fillStroke: - this.fillStroke(); - break; - - case _util.OPS.eoFillStroke: - this.eoFillStroke(); - break; - - case _util.OPS.clip: - this.clip('nonzero'); - break; - - case _util.OPS.eoClip: - this.clip('evenodd'); - break; - - case _util.OPS.paintSolidColorImageMask: - this.paintSolidColorImageMask(); - break; - - case _util.OPS.paintJpegXObject: - this.paintJpegXObject(args[0], args[1], args[2]); - break; - - case _util.OPS.paintImageXObject: - this.paintImageXObject(args[0]); - break; - - case _util.OPS.paintInlineImageXObject: - this.paintInlineImageXObject(args[0]); - break; - - case _util.OPS.paintImageMaskXObject: - this.paintImageMaskXObject(args[0]); - break; - - case _util.OPS.paintFormXObjectBegin: - this.paintFormXObjectBegin(args[0], args[1]); - break; - - case _util.OPS.paintFormXObjectEnd: - this.paintFormXObjectEnd(); - break; - - case _util.OPS.closePath: - this.closePath(); - break; - - case _util.OPS.closeStroke: - this.closeStroke(); - break; - - case _util.OPS.closeFillStroke: - this.closeFillStroke(); - break; - - case _util.OPS.closeEOFillStroke: - this.closeEOFillStroke(); - break; - - case _util.OPS.nextLine: - this.nextLine(); - break; - - case _util.OPS.transform: - this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); - break; - - case _util.OPS.constructPath: - this.constructPath(args[0], args[1]); - break; - - case _util.OPS.endPath: - this.endPath(); - break; - - case 92: - this.group(opTreeElement.items); - break; - - default: - (0, _util.warn)("Unimplemented operator ".concat(fn)); - break; - } - } - } catch (err) { - _didIteratorError3 = true; - _iteratorError3 = err; - } finally { - try { - if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) { - _iterator3["return"](); - } - } finally { - if (_didIteratorError3) { - throw _iteratorError3; - } - } - } - } - }, { - key: "setWordSpacing", - value: function setWordSpacing(wordSpacing) { - this.current.wordSpacing = wordSpacing; - } - }, { - key: "setCharSpacing", - value: function setCharSpacing(charSpacing) { - this.current.charSpacing = charSpacing; - } - }, { - key: "nextLine", - value: function nextLine() { - this.moveText(0, this.current.leading); - } - }, { - key: "setTextMatrix", - value: function setTextMatrix(a, b, c, d, e, f) { - var current = this.current; - current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; - current.textMatrixScale = Math.sqrt(a * a + b * b); - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.xcoords = []; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.txtElement = this.svgFactory.createElement('svg:text'); - current.txtElement.appendChild(current.tspan); - } - }, { - key: "beginText", - value: function beginText() { - var current = this.current; - current.x = current.lineX = 0; - current.y = current.lineY = 0; - current.textMatrix = _util.IDENTITY_MATRIX; - current.lineMatrix = _util.IDENTITY_MATRIX; - current.textMatrixScale = 1; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.txtElement = this.svgFactory.createElement('svg:text'); - current.txtgrp = this.svgFactory.createElement('svg:g'); - current.xcoords = []; - } - }, { - key: "moveText", - value: function moveText(x, y) { - var current = this.current; - current.x = current.lineX += x; - current.y = current.lineY += y; - current.xcoords = []; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - } - }, { - key: "showText", - value: function showText(glyphs) { - var current = this.current; - var font = current.font; - var fontSize = current.fontSize; - - if (fontSize === 0) { - return; - } - - var charSpacing = current.charSpacing; - var wordSpacing = current.wordSpacing; - var fontDirection = current.fontDirection; - var textHScale = current.textHScale * fontDirection; - var vertical = font.vertical; - var widthAdvanceScale = fontSize * current.fontMatrix[0]; - var x = 0; - var _iteratorNormalCompletion4 = true; - var _didIteratorError4 = false; - var _iteratorError4 = undefined; - - try { - for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) { - var glyph = _step4.value; - - if (glyph === null) { - x += fontDirection * wordSpacing; - continue; - } else if ((0, _util.isNum)(glyph)) { - x += -glyph * fontSize * 0.001; - continue; - } - - var width = glyph.width; - var character = glyph.fontChar; - var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; - var charWidth = width * widthAdvanceScale + spacing * fontDirection; - - if (!glyph.isInFont && !font.missingFile) { - x += charWidth; - continue; - } - - current.xcoords.push(current.x + x * textHScale); - current.tspan.textContent += character; - x += charWidth; - } - } catch (err) { - _didIteratorError4 = true; - _iteratorError4 = err; - } finally { - try { - if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) { - _iterator4["return"](); - } - } finally { - if (_didIteratorError4) { - throw _iteratorError4; - } - } - } - - if (vertical) { - current.y -= x * textHScale; - } else { - current.x += x * textHScale; - } - - current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' ')); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.tspan.setAttributeNS(null, 'font-family', current.fontFamily); - current.tspan.setAttributeNS(null, 'font-size', "".concat(pf(current.fontSize), "px")); - - if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { - current.tspan.setAttributeNS(null, 'font-style', current.fontStyle); - } - - if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { - current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight); - } - - var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; - - if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - if (current.fillColor !== SVG_DEFAULTS.fillColor) { - current.tspan.setAttributeNS(null, 'fill', current.fillColor); - } - - if (current.fillAlpha < 1) { - current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha); - } - } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { - current.tspan.setAttributeNS(null, 'fill', 'transparent'); - } else { - current.tspan.setAttributeNS(null, 'fill', 'none'); - } - - if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { - var lineWidthScale = 1 / (current.textMatrixScale || 1); - - this._setStrokeAttributes(current.tspan, lineWidthScale); - } - - var textMatrix = current.textMatrix; - - if (current.textRise !== 0) { - textMatrix = textMatrix.slice(); - textMatrix[5] += current.textRise; - } - - current.txtElement.setAttributeNS(null, 'transform', "".concat(pm(textMatrix), " scale(1, -1)")); - current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve'); - current.txtElement.appendChild(current.tspan); - current.txtgrp.appendChild(current.txtElement); - - this._ensureTransformGroup().appendChild(current.txtElement); - } - }, { - key: "setLeadingMoveText", - value: function setLeadingMoveText(x, y) { - this.setLeading(-y); - this.moveText(x, y); - } - }, { - key: "addFontStyle", - value: function addFontStyle(fontObj) { - if (!this.cssStyle) { - this.cssStyle = this.svgFactory.createElement('svg:style'); - this.cssStyle.setAttributeNS(null, 'type', 'text/css'); - this.defs.appendChild(this.cssStyle); - } - - var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); - this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n"); - } - }, { - key: "setFont", - value: function setFont(details) { - var current = this.current; - var fontObj = this.commonObjs.get(details[0]); - var size = details[1]; - current.font = fontObj; - - if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) { - this.addFontStyle(fontObj); - this.embeddedFonts[fontObj.loadedName] = fontObj; - } - - current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX; - var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal'; - var italic = fontObj.italic ? 'italic' : 'normal'; - - if (size < 0) { - size = -size; - current.fontDirection = -1; - } else { - current.fontDirection = 1; - } - - current.fontSize = size; - current.fontFamily = fontObj.loadedName; - current.fontWeight = bold; - current.fontStyle = italic; - current.tspan = this.svgFactory.createElement('svg:tspan'); - current.tspan.setAttributeNS(null, 'y', pf(-current.y)); - current.xcoords = []; - } - }, { - key: "endText", - value: function endText() { - var current = this.current; - - if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) { - current.element = current.txtElement; - this.clip('nonzero'); - this.endPath(); - } - } - }, { - key: "setLineWidth", - value: function setLineWidth(width) { - if (width > 0) { - this.current.lineWidth = width; - } - } - }, { - key: "setLineCap", - value: function setLineCap(style) { - this.current.lineCap = LINE_CAP_STYLES[style]; - } - }, { - key: "setLineJoin", - value: function setLineJoin(style) { - this.current.lineJoin = LINE_JOIN_STYLES[style]; - } - }, { - key: "setMiterLimit", - value: function setMiterLimit(limit) { - this.current.miterLimit = limit; - } - }, { - key: "setStrokeAlpha", - value: function setStrokeAlpha(strokeAlpha) { - this.current.strokeAlpha = strokeAlpha; - } - }, { - key: "setStrokeRGBColor", - value: function setStrokeRGBColor(r, g, b) { - this.current.strokeColor = _util.Util.makeCssRgb(r, g, b); - } - }, { - key: "setFillAlpha", - value: function setFillAlpha(fillAlpha) { - this.current.fillAlpha = fillAlpha; - } - }, { - key: "setFillRGBColor", - value: function setFillRGBColor(r, g, b) { - this.current.fillColor = _util.Util.makeCssRgb(r, g, b); - this.current.tspan = this.svgFactory.createElement('svg:tspan'); - this.current.xcoords = []; - } - }, { - key: "setStrokeColorN", - value: function setStrokeColorN(args) { - this.current.strokeColor = this._makeColorN_Pattern(args); - } - }, { - key: "setFillColorN", - value: function setFillColorN(args) { - this.current.fillColor = this._makeColorN_Pattern(args); - } - }, { - key: "shadingFill", - value: function shadingFill(args) { - var width = this.viewport.width; - var height = this.viewport.height; - - var inv = _util.Util.inverseTransform(this.transformMatrix); - - var bl = _util.Util.applyTransform([0, 0], inv); - - var br = _util.Util.applyTransform([0, height], inv); - - var ul = _util.Util.applyTransform([width, 0], inv); - - var ur = _util.Util.applyTransform([width, height], inv); - - var x0 = Math.min(bl[0], br[0], ul[0], ur[0]); - var y0 = Math.min(bl[1], br[1], ul[1], ur[1]); - var x1 = Math.max(bl[0], br[0], ul[0], ur[0]); - var y1 = Math.max(bl[1], br[1], ul[1], ur[1]); - var rect = this.svgFactory.createElement('svg:rect'); - rect.setAttributeNS(null, 'x', x0); - rect.setAttributeNS(null, 'y', y0); - rect.setAttributeNS(null, 'width', x1 - x0); - rect.setAttributeNS(null, 'height', y1 - y0); - rect.setAttributeNS(null, 'fill', this._makeShadingPattern(args)); - - this._ensureTransformGroup().appendChild(rect); - } - }, { - key: "_makeColorN_Pattern", - value: function _makeColorN_Pattern(args) { - if (args[0] === 'TilingPattern') { - return this._makeTilingPattern(args); - } - - return this._makeShadingPattern(args); - } - }, { - key: "_makeTilingPattern", - value: function _makeTilingPattern(args) { - var color = args[1]; - var operatorList = args[2]; - var matrix = args[3] || _util.IDENTITY_MATRIX; - - var _args$ = _slicedToArray(args[4], 4), - x0 = _args$[0], - y0 = _args$[1], - x1 = _args$[2], - y1 = _args$[3]; - - var xstep = args[5]; - var ystep = args[6]; - var paintType = args[7]; - var tilingId = "shading".concat(shadingCount++); - - var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix), - _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2), - tx0 = _Util$applyTransform2[0], - ty0 = _Util$applyTransform2[1]; - - var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix), - _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2), - tx1 = _Util$applyTransform4[0], - ty1 = _Util$applyTransform4[1]; - - var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix), - _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2), - xscale = _Util$singularValueDe2[0], - yscale = _Util$singularValueDe2[1]; - - var txstep = xstep * xscale; - var tystep = ystep * yscale; - var tiling = this.svgFactory.createElement('svg:pattern'); - tiling.setAttributeNS(null, 'id', tilingId); - tiling.setAttributeNS(null, 'patternUnits', 'userSpaceOnUse'); - tiling.setAttributeNS(null, 'width', txstep); - tiling.setAttributeNS(null, 'height', tystep); - tiling.setAttributeNS(null, 'x', "".concat(tx0)); - tiling.setAttributeNS(null, 'y', "".concat(ty0)); - var svg = this.svg; - var transformMatrix = this.transformMatrix; - var fillColor = this.current.fillColor; - var strokeColor = this.current.strokeColor; - var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); - this.svg = bbox; - this.transformMatrix = matrix; - - if (paintType === 2) { - var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color)); - - this.current.fillColor = cssColor; - this.current.strokeColor = cssColor; - } - - this.executeOpTree(this.convertOpList(operatorList)); - this.svg = svg; - this.transformMatrix = transformMatrix; - this.current.fillColor = fillColor; - this.current.strokeColor = strokeColor; - tiling.appendChild(bbox.childNodes[0]); - this.defs.appendChild(tiling); - return "url(#".concat(tilingId, ")"); - } - }, { - key: "_makeShadingPattern", - value: function _makeShadingPattern(args) { - switch (args[0]) { - case 'RadialAxial': - var shadingId = "shading".concat(shadingCount++); - var colorStops = args[2]; - var gradient; - - switch (args[1]) { - case 'axial': - var point0 = args[3]; - var point1 = args[4]; - gradient = this.svgFactory.createElement('svg:linearGradient'); - gradient.setAttributeNS(null, 'id', shadingId); - gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); - gradient.setAttributeNS(null, 'x1', point0[0]); - gradient.setAttributeNS(null, 'y1', point0[1]); - gradient.setAttributeNS(null, 'x2', point1[0]); - gradient.setAttributeNS(null, 'y2', point1[1]); - break; - - case 'radial': - var focalPoint = args[3]; - var circlePoint = args[4]; - var focalRadius = args[5]; - var circleRadius = args[6]; - gradient = this.svgFactory.createElement('svg:radialGradient'); - gradient.setAttributeNS(null, 'id', shadingId); - gradient.setAttributeNS(null, 'gradientUnits', 'userSpaceOnUse'); - gradient.setAttributeNS(null, 'cx', circlePoint[0]); - gradient.setAttributeNS(null, 'cy', circlePoint[1]); - gradient.setAttributeNS(null, 'r', circleRadius); - gradient.setAttributeNS(null, 'fx', focalPoint[0]); - gradient.setAttributeNS(null, 'fy', focalPoint[1]); - gradient.setAttributeNS(null, 'fr', focalRadius); - break; - - default: - throw new Error("Unknown RadialAxial type: ".concat(args[1])); - } - - var _iteratorNormalCompletion5 = true; - var _didIteratorError5 = false; - var _iteratorError5 = undefined; - - try { - for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) { - var colorStop = _step5.value; - var stop = this.svgFactory.createElement('svg:stop'); - stop.setAttributeNS(null, 'offset', colorStop[0]); - stop.setAttributeNS(null, 'stop-color', colorStop[1]); - gradient.appendChild(stop); - } - } catch (err) { - _didIteratorError5 = true; - _iteratorError5 = err; - } finally { - try { - if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) { - _iterator5["return"](); - } - } finally { - if (_didIteratorError5) { - throw _iteratorError5; - } - } - } - - this.defs.appendChild(gradient); - return "url(#".concat(shadingId, ")"); - - case 'Mesh': - (0, _util.warn)('Unimplemented pattern Mesh'); - return null; - - case 'Dummy': - return 'hotpink'; + case _util.OPS.setLeading: + this.setLeading(args); + break; + + case _util.OPS.setLeadingMoveText: + this.setLeadingMoveText(args[0], args[1]); + break; + + case _util.OPS.setFont: + this.setFont(args); + break; + + case _util.OPS.showText: + this.showText(args[0]); + break; + + case _util.OPS.showSpacedText: + this.showText(args[0]); + break; + + case _util.OPS.endText: + this.endText(); + break; + + case _util.OPS.moveText: + this.moveText(args[0], args[1]); + break; + + case _util.OPS.setCharSpacing: + this.setCharSpacing(args[0]); + break; + + case _util.OPS.setWordSpacing: + this.setWordSpacing(args[0]); + break; + + case _util.OPS.setHScale: + this.setHScale(args[0]); + break; + + case _util.OPS.setTextMatrix: + this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.setTextRise: + this.setTextRise(args[0]); + break; + + case _util.OPS.setTextRenderingMode: + this.setTextRenderingMode(args[0]); + break; + + case _util.OPS.setLineWidth: + this.setLineWidth(args[0]); + break; + + case _util.OPS.setLineJoin: + this.setLineJoin(args[0]); + break; + + case _util.OPS.setLineCap: + this.setLineCap(args[0]); + break; + + case _util.OPS.setMiterLimit: + this.setMiterLimit(args[0]); + break; + + case _util.OPS.setFillRGBColor: + this.setFillRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeRGBColor: + this.setStrokeRGBColor(args[0], args[1], args[2]); + break; + + case _util.OPS.setStrokeColorN: + this.setStrokeColorN(args); + break; + + case _util.OPS.setFillColorN: + this.setFillColorN(args); + break; + + case _util.OPS.shadingFill: + this.shadingFill(args[0]); + break; + + case _util.OPS.setDash: + this.setDash(args[0], args[1]); + break; + + case _util.OPS.setRenderingIntent: + this.setRenderingIntent(args[0]); + break; + + case _util.OPS.setFlatness: + this.setFlatness(args[0]); + break; + + case _util.OPS.setGState: + this.setGState(args[0]); + break; + + case _util.OPS.fill: + this.fill(); + break; + + case _util.OPS.eoFill: + this.eoFill(); + break; + + case _util.OPS.stroke: + this.stroke(); + break; + + case _util.OPS.fillStroke: + this.fillStroke(); + break; + + case _util.OPS.eoFillStroke: + this.eoFillStroke(); + break; + + case _util.OPS.clip: + this.clip("nonzero"); + break; + + case _util.OPS.eoClip: + this.clip("evenodd"); + break; + + case _util.OPS.paintSolidColorImageMask: + this.paintSolidColorImageMask(); + break; + + case _util.OPS.paintImageXObject: + this.paintImageXObject(args[0]); + break; + + case _util.OPS.paintInlineImageXObject: + this.paintInlineImageXObject(args[0]); + break; + + case _util.OPS.paintImageMaskXObject: + this.paintImageMaskXObject(args[0]); + break; + + case _util.OPS.paintFormXObjectBegin: + this.paintFormXObjectBegin(args[0], args[1]); + break; + + case _util.OPS.paintFormXObjectEnd: + this.paintFormXObjectEnd(); + break; + + case _util.OPS.closePath: + this.closePath(); + break; + + case _util.OPS.closeStroke: + this.closeStroke(); + break; + + case _util.OPS.closeFillStroke: + this.closeFillStroke(); + break; + + case _util.OPS.closeEOFillStroke: + this.closeEOFillStroke(); + break; + + case _util.OPS.nextLine: + this.nextLine(); + break; + + case _util.OPS.transform: + this.transform(args[0], args[1], args[2], args[3], args[4], args[5]); + break; + + case _util.OPS.constructPath: + this.constructPath(args[0], args[1]); + break; + + case _util.OPS.endPath: + this.endPath(); + break; + + case 92: + this.group(opTreeElement.items); + break; default: - throw new Error("Unknown IR type: ".concat(args[0])); + (0, _util.warn)(`Unimplemented operator ${fn}`); + break; } } - }, { - key: "setDash", - value: function setDash(dashArray, dashPhase) { - this.current.dashArray = dashArray; - this.current.dashPhase = dashPhase; + } + + setWordSpacing(wordSpacing) { + this.current.wordSpacing = wordSpacing; + } + + setCharSpacing(charSpacing) { + this.current.charSpacing = charSpacing; + } + + nextLine() { + this.moveText(0, this.current.leading); + } + + setTextMatrix(a, b, c, d, e, f) { + const current = this.current; + current.textMatrix = current.lineMatrix = [a, b, c, d, e, f]; + current.textMatrixScale = Math.hypot(a, b); + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtElement.appendChild(current.tspan); + } + + beginText() { + const current = this.current; + current.x = current.lineX = 0; + current.y = current.lineY = 0; + current.textMatrix = _util.IDENTITY_MATRIX; + current.lineMatrix = _util.IDENTITY_MATRIX; + current.textMatrixScale = 1; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.txtElement = this.svgFactory.createElement("svg:text"); + current.txtgrp = this.svgFactory.createElement("svg:g"); + current.xcoords = []; + current.ycoords = []; + } + + moveText(x, y) { + const current = this.current; + current.x = current.lineX += x; + current.y = current.lineY += y; + current.xcoords = []; + current.ycoords = []; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + + showText(glyphs) { + const current = this.current; + const font = current.font; + const fontSize = current.fontSize; + + if (fontSize === 0) { + return; } - }, { - key: "constructPath", - value: function constructPath(ops, args) { - var current = this.current; - var x = current.x, - y = current.y; - var d = []; - var j = 0; - var _iteratorNormalCompletion6 = true; - var _didIteratorError6 = false; - var _iteratorError6 = undefined; - try { - for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) { - var op = _step6.value; + const fontSizeScale = current.fontSizeScale; + const charSpacing = current.charSpacing; + const wordSpacing = current.wordSpacing; + const fontDirection = current.fontDirection; + const textHScale = current.textHScale * fontDirection; + const vertical = font.vertical; + const spacingDir = vertical ? 1 : -1; + const defaultVMetrics = font.defaultVMetrics; + const widthAdvanceScale = fontSize * current.fontMatrix[0]; + let x = 0; - switch (op | 0) { - case _util.OPS.rectangle: - x = args[j++]; - y = args[j++]; - var width = args[j++]; - var height = args[j++]; - var xw = x + width; - var yh = y + height; - d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z'); - break; - - case _util.OPS.moveTo: - x = args[j++]; - y = args[j++]; - d.push('M', pf(x), pf(y)); - break; - - case _util.OPS.lineTo: - x = args[j++]; - y = args[j++]; - d.push('L', pf(x), pf(y)); - break; - - case _util.OPS.curveTo: - x = args[j + 4]; - y = args[j + 5]; - d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); - j += 6; - break; - - case _util.OPS.curveTo2: - x = args[j + 2]; - y = args[j + 3]; - d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); - j += 4; - break; - - case _util.OPS.curveTo3: - x = args[j + 2]; - y = args[j + 3]; - d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); - j += 4; - break; - - case _util.OPS.closePath: - d.push('Z'); - break; - } - } - } catch (err) { - _didIteratorError6 = true; - _iteratorError6 = err; - } finally { - try { - if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) { - _iterator6["return"](); - } - } finally { - if (_didIteratorError6) { - throw _iteratorError6; - } - } + for (const glyph of glyphs) { + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if ((0, _util.isNum)(glyph)) { + x += spacingDir * glyph * fontSize / 1000; + continue; } - d = d.join(' '); + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + let scaledX, scaledY; + let width = glyph.width; - if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { - d = current.path.getAttributeNS(null, 'd') + d; + if (vertical) { + let vx; + const vmetric = glyph.vmetric || defaultVMetrics; + vx = glyph.vmetric ? vmetric[1] : width * 0.5; + vx = -vx * widthAdvanceScale; + const vy = vmetric[2] * widthAdvanceScale; + width = vmetric ? -vmetric[0] : width; + scaledX = vx / fontSizeScale; + scaledY = (x + vy) / fontSizeScale; } else { - current.path = this.svgFactory.createElement('svg:path'); - - this._ensureTransformGroup().appendChild(current.path); + scaledX = x / fontSizeScale; + scaledY = 0; } - current.path.setAttributeNS(null, 'd', d); - current.path.setAttributeNS(null, 'fill', 'none'); - current.element = current.path; - current.setCurrentPoint(x, y); - } - }, { - key: "endPath", - value: function endPath() { - var current = this.current; - current.path = null; + if (glyph.isInFont || font.missingFile) { + current.xcoords.push(current.x + scaledX); - if (!this.pendingClip) { - return; - } + if (vertical) { + current.ycoords.push(-current.y + scaledY); + } - if (!current.element) { - this.pendingClip = null; - return; - } + current.tspan.textContent += character; + } else {} - var clipId = "clippath".concat(clipCount++); - var clipPath = this.svgFactory.createElement('svg:clipPath'); - clipPath.setAttributeNS(null, 'id', clipId); - clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - var clipElement = current.element.cloneNode(true); + let charWidth; - if (this.pendingClip === 'evenodd') { - clipElement.setAttributeNS(null, 'clip-rule', 'evenodd'); + if (vertical) { + charWidth = width * widthAdvanceScale - spacing * fontDirection; } else { - clipElement.setAttributeNS(null, 'clip-rule', 'nonzero'); + charWidth = width * widthAdvanceScale + spacing * fontDirection; } + x += charWidth; + } + + current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" ")); + + if (vertical) { + current.tspan.setAttributeNS(null, "y", current.ycoords.map(pf).join(" ")); + } else { + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + } + + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; + } + + current.tspan.setAttributeNS(null, "font-family", current.fontFamily); + current.tspan.setAttributeNS(null, "font-size", `${pf(current.fontSize)}px`); + + if (current.fontStyle !== SVG_DEFAULTS.fontStyle) { + current.tspan.setAttributeNS(null, "font-style", current.fontStyle); + } + + if (current.fontWeight !== SVG_DEFAULTS.fontWeight) { + current.tspan.setAttributeNS(null, "font-weight", current.fontWeight); + } + + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + if (current.fillColor !== SVG_DEFAULTS.fillColor) { + current.tspan.setAttributeNS(null, "fill", current.fillColor); + } + + if (current.fillAlpha < 1) { + current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha); + } + } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) { + current.tspan.setAttributeNS(null, "fill", "transparent"); + } else { + current.tspan.setAttributeNS(null, "fill", "none"); + } + + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + const lineWidthScale = 1 / (current.textMatrixScale || 1); + + this._setStrokeAttributes(current.tspan, lineWidthScale); + } + + let textMatrix = current.textMatrix; + + if (current.textRise !== 0) { + textMatrix = textMatrix.slice(); + textMatrix[5] += current.textRise; + } + + current.txtElement.setAttributeNS(null, "transform", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`); + current.txtElement.setAttributeNS(XML_NS, "xml:space", "preserve"); + current.txtElement.appendChild(current.tspan); + current.txtgrp.appendChild(current.txtElement); + + this._ensureTransformGroup().appendChild(current.txtElement); + } + + setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + + addFontStyle(fontObj) { + if (!fontObj.data) { + throw new Error("addFontStyle: No font data available, " + 'ensure that the "fontExtraProperties" API parameter is set.'); + } + + if (!this.cssStyle) { + this.cssStyle = this.svgFactory.createElement("svg:style"); + this.cssStyle.setAttributeNS(null, "type", "text/css"); + this.defs.appendChild(this.cssStyle); + } + + const url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema); + this.cssStyle.textContent += `@font-face { font-family: "${fontObj.loadedName}";` + ` src: url(${url}); }\n`; + } + + setFont(details) { + const current = this.current; + const fontObj = this.commonObjs.get(details[0]); + let size = details[1]; + current.font = fontObj; + + if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) { + this.addFontStyle(fontObj); + this.embeddedFonts[fontObj.loadedName] = fontObj; + } + + current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX; + let bold = "normal"; + + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + + const italic = fontObj.italic ? "italic" : "normal"; + + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + + current.fontSize = size; + current.fontFamily = fontObj.loadedName; + current.fontWeight = bold; + current.fontStyle = italic; + current.tspan = this.svgFactory.createElement("svg:tspan"); + current.tspan.setAttributeNS(null, "y", pf(-current.y)); + current.xcoords = []; + current.ycoords = []; + } + + endText() { + const current = this.current; + + if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) { + current.element = current.txtElement; + this.clip("nonzero"); + this.endPath(); + } + } + + setLineWidth(width) { + if (width > 0) { + this.current.lineWidth = width; + } + } + + setLineCap(style) { + this.current.lineCap = LINE_CAP_STYLES[style]; + } + + setLineJoin(style) { + this.current.lineJoin = LINE_JOIN_STYLES[style]; + } + + setMiterLimit(limit) { + this.current.miterLimit = limit; + } + + setStrokeAlpha(strokeAlpha) { + this.current.strokeAlpha = strokeAlpha; + } + + setStrokeRGBColor(r, g, b) { + this.current.strokeColor = _util.Util.makeHexColor(r, g, b); + } + + setFillAlpha(fillAlpha) { + this.current.fillAlpha = fillAlpha; + } + + setFillRGBColor(r, g, b) { + this.current.fillColor = _util.Util.makeHexColor(r, g, b); + this.current.tspan = this.svgFactory.createElement("svg:tspan"); + this.current.xcoords = []; + this.current.ycoords = []; + } + + setStrokeColorN(args) { + this.current.strokeColor = this._makeColorN_Pattern(args); + } + + setFillColorN(args) { + this.current.fillColor = this._makeColorN_Pattern(args); + } + + shadingFill(args) { + const width = this.viewport.width; + const height = this.viewport.height; + + const inv = _util.Util.inverseTransform(this.transformMatrix); + + const bl = _util.Util.applyTransform([0, 0], inv); + + const br = _util.Util.applyTransform([0, height], inv); + + const ul = _util.Util.applyTransform([width, 0], inv); + + const ur = _util.Util.applyTransform([width, height], inv); + + const x0 = Math.min(bl[0], br[0], ul[0], ur[0]); + const y0 = Math.min(bl[1], br[1], ul[1], ur[1]); + const x1 = Math.max(bl[0], br[0], ul[0], ur[0]); + const y1 = Math.max(bl[1], br[1], ul[1], ur[1]); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", x0); + rect.setAttributeNS(null, "y", y0); + rect.setAttributeNS(null, "width", x1 - x0); + rect.setAttributeNS(null, "height", y1 - y0); + rect.setAttributeNS(null, "fill", this._makeShadingPattern(args)); + + if (this.current.fillAlpha < 1) { + rect.setAttributeNS(null, "fill-opacity", this.current.fillAlpha); + } + + this._ensureTransformGroup().appendChild(rect); + } + + _makeColorN_Pattern(args) { + if (args[0] === "TilingPattern") { + return this._makeTilingPattern(args); + } + + return this._makeShadingPattern(args); + } + + _makeTilingPattern(args) { + const color = args[1]; + const operatorList = args[2]; + const matrix = args[3] || _util.IDENTITY_MATRIX; + const [x0, y0, x1, y1] = args[4]; + const xstep = args[5]; + const ystep = args[6]; + const paintType = args[7]; + const tilingId = `shading${shadingCount++}`; + + const [tx0, ty0] = _util.Util.applyTransform([x0, y0], matrix); + + const [tx1, ty1] = _util.Util.applyTransform([x1, y1], matrix); + + const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix); + + const txstep = xstep * xscale; + const tystep = ystep * yscale; + const tiling = this.svgFactory.createElement("svg:pattern"); + tiling.setAttributeNS(null, "id", tilingId); + tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); + tiling.setAttributeNS(null, "width", txstep); + tiling.setAttributeNS(null, "height", tystep); + tiling.setAttributeNS(null, "x", `${tx0}`); + tiling.setAttributeNS(null, "y", `${ty0}`); + const svg = this.svg; + const transformMatrix = this.transformMatrix; + const fillColor = this.current.fillColor; + const strokeColor = this.current.strokeColor; + const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0); + this.svg = bbox; + this.transformMatrix = matrix; + + if (paintType === 2) { + const cssColor = _util.Util.makeHexColor(...color); + + this.current.fillColor = cssColor; + this.current.strokeColor = cssColor; + } + + this.executeOpTree(this.convertOpList(operatorList)); + this.svg = svg; + this.transformMatrix = transformMatrix; + this.current.fillColor = fillColor; + this.current.strokeColor = strokeColor; + tiling.appendChild(bbox.childNodes[0]); + this.defs.appendChild(tiling); + return `url(#${tilingId})`; + } + + _makeShadingPattern(args) { + switch (args[0]) { + case "RadialAxial": + const shadingId = `shading${shadingCount++}`; + const colorStops = args[3]; + let gradient; + + switch (args[1]) { + case "axial": + const point0 = args[4]; + const point1 = args[5]; + gradient = this.svgFactory.createElement("svg:linearGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "x1", point0[0]); + gradient.setAttributeNS(null, "y1", point0[1]); + gradient.setAttributeNS(null, "x2", point1[0]); + gradient.setAttributeNS(null, "y2", point1[1]); + break; + + case "radial": + const focalPoint = args[4]; + const circlePoint = args[5]; + const focalRadius = args[6]; + const circleRadius = args[7]; + gradient = this.svgFactory.createElement("svg:radialGradient"); + gradient.setAttributeNS(null, "id", shadingId); + gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); + gradient.setAttributeNS(null, "cx", circlePoint[0]); + gradient.setAttributeNS(null, "cy", circlePoint[1]); + gradient.setAttributeNS(null, "r", circleRadius); + gradient.setAttributeNS(null, "fx", focalPoint[0]); + gradient.setAttributeNS(null, "fy", focalPoint[1]); + gradient.setAttributeNS(null, "fr", focalRadius); + break; + + default: + throw new Error(`Unknown RadialAxial type: ${args[1]}`); + } + + for (const colorStop of colorStops) { + const stop = this.svgFactory.createElement("svg:stop"); + stop.setAttributeNS(null, "offset", colorStop[0]); + stop.setAttributeNS(null, "stop-color", colorStop[1]); + gradient.appendChild(stop); + } + + this.defs.appendChild(gradient); + return `url(#${shadingId})`; + + case "Mesh": + (0, _util.warn)("Unimplemented pattern Mesh"); + return null; + + case "Dummy": + return "hotpink"; + + default: + throw new Error(`Unknown IR type: ${args[0]}`); + } + } + + setDash(dashArray, dashPhase) { + this.current.dashArray = dashArray; + this.current.dashPhase = dashPhase; + } + + constructPath(ops, args) { + const current = this.current; + let x = current.x, + y = current.y; + let d = []; + let j = 0; + + for (const op of ops) { + switch (op | 0) { + case _util.OPS.rectangle: + x = args[j++]; + y = args[j++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + d.push("M", pf(x), pf(y), "L", pf(xw), pf(y), "L", pf(xw), pf(yh), "L", pf(x), pf(yh), "Z"); + break; + + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + d.push("M", pf(x), pf(y)); + break; + + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + d.push("L", pf(x), pf(y)); + break; + + case _util.OPS.curveTo: + x = args[j + 4]; + y = args[j + 5]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y)); + j += 6; + break; + + case _util.OPS.curveTo2: + d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3])); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + + case _util.OPS.curveTo3: + x = args[j + 2]; + y = args[j + 3]; + d.push("C", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y)); + j += 4; + break; + + case _util.OPS.closePath: + d.push("Z"); + break; + } + } + + d = d.join(" "); + + if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) { + d = current.path.getAttributeNS(null, "d") + d; + } else { + current.path = this.svgFactory.createElement("svg:path"); + + this._ensureTransformGroup().appendChild(current.path); + } + + current.path.setAttributeNS(null, "d", d); + current.path.setAttributeNS(null, "fill", "none"); + current.element = current.path; + current.setCurrentPoint(x, y); + } + + endPath() { + const current = this.current; + current.path = null; + + if (!this.pendingClip) { + return; + } + + if (!current.element) { this.pendingClip = null; - clipPath.appendChild(clipElement); - this.defs.appendChild(clipPath); + return; + } - if (current.activeClipUrl) { - current.clipGroup = null; - this.extraStack.forEach(function (prev) { - prev.clipGroup = null; - }); - clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl); + const clipId = `clippath${clipCount++}`; + const clipPath = this.svgFactory.createElement("svg:clipPath"); + clipPath.setAttributeNS(null, "id", clipId); + clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix)); + const clipElement = current.element.cloneNode(true); + + if (this.pendingClip === "evenodd") { + clipElement.setAttributeNS(null, "clip-rule", "evenodd"); + } else { + clipElement.setAttributeNS(null, "clip-rule", "nonzero"); + } + + this.pendingClip = null; + clipPath.appendChild(clipElement); + this.defs.appendChild(clipPath); + + if (current.activeClipUrl) { + current.clipGroup = null; + + for (const prev of this.extraStack) { + prev.clipGroup = null; } - current.activeClipUrl = "url(#".concat(clipId, ")"); - this.tgrp = null; + clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); } - }, { - key: "clip", - value: function clip(type) { - this.pendingClip = type; - } - }, { - key: "closePath", - value: function closePath() { - var current = this.current; - if (current.path) { - var d = "".concat(current.path.getAttributeNS(null, 'd'), "Z"); - current.path.setAttributeNS(null, 'd', d); + current.activeClipUrl = `url(#${clipId})`; + this.tgrp = null; + } + + clip(type) { + this.pendingClip = type; + } + + closePath() { + const current = this.current; + + if (current.path) { + const d = `${current.path.getAttributeNS(null, "d")}Z`; + current.path.setAttributeNS(null, "d", d); + } + } + + setLeading(leading) { + this.current.leading = -leading; + } + + setTextRise(textRise) { + this.current.textRise = textRise; + } + + setTextRenderingMode(textRenderingMode) { + this.current.textRenderingMode = textRenderingMode; + } + + setHScale(scale) { + this.current.textHScale = scale / 100; + } + + setRenderingIntent(intent) {} + + setFlatness(flatness) {} + + setGState(states) { + for (const [key, value] of states) { + switch (key) { + case "LW": + this.setLineWidth(value); + break; + + case "LC": + this.setLineCap(value); + break; + + case "LJ": + this.setLineJoin(value); + break; + + case "ML": + this.setMiterLimit(value); + break; + + case "D": + this.setDash(value[0], value[1]); + break; + + case "RI": + this.setRenderingIntent(value); + break; + + case "FL": + this.setFlatness(value); + break; + + case "Font": + this.setFont(value); + break; + + case "CA": + this.setStrokeAlpha(value); + break; + + case "ca": + this.setFillAlpha(value); + break; + + default: + (0, _util.warn)(`Unimplemented graphic state operator ${key}`); + break; } } - }, { - key: "setLeading", - value: function setLeading(leading) { - this.current.leading = -leading; + } + + fill() { + const current = this.current; + + if (current.element) { + current.element.setAttributeNS(null, "fill", current.fillColor); + current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha); + this.endPath(); } - }, { - key: "setTextRise", - value: function setTextRise(textRise) { - this.current.textRise = textRise; + } + + stroke() { + const current = this.current; + + if (current.element) { + this._setStrokeAttributes(current.element); + + current.element.setAttributeNS(null, "fill", "none"); + this.endPath(); } - }, { - key: "setTextRenderingMode", - value: function setTextRenderingMode(textRenderingMode) { - this.current.textRenderingMode = textRenderingMode; + } + + _setStrokeAttributes(element, lineWidthScale = 1) { + const current = this.current; + let dashArray = current.dashArray; + + if (lineWidthScale !== 1 && dashArray.length > 0) { + dashArray = dashArray.map(function (value) { + return lineWidthScale * value; + }); } - }, { - key: "setHScale", - value: function setHScale(scale) { - this.current.textHScale = scale / 100; + + element.setAttributeNS(null, "stroke", current.strokeColor); + element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha); + element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit)); + element.setAttributeNS(null, "stroke-linecap", current.lineCap); + element.setAttributeNS(null, "stroke-linejoin", current.lineJoin); + element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px"); + element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" ")); + element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px"); + } + + eoFill() { + if (this.current.element) { + this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); } - }, { - key: "setRenderingIntent", - value: function setRenderingIntent(intent) {} - }, { - key: "setFlatness", - value: function setFlatness(flatness) {} - }, { - key: "setGState", - value: function setGState(states) { - var _iteratorNormalCompletion7 = true; - var _didIteratorError7 = false; - var _iteratorError7 = undefined; - try { - for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) { - var _step7$value = _slicedToArray(_step7.value, 2), - key = _step7$value[0], - value = _step7$value[1]; + this.fill(); + } - switch (key) { - case 'LW': - this.setLineWidth(value); - break; + fillStroke() { + this.stroke(); + this.fill(); + } - case 'LC': - this.setLineCap(value); - break; - - case 'LJ': - this.setLineJoin(value); - break; - - case 'ML': - this.setMiterLimit(value); - break; - - case 'D': - this.setDash(value[0], value[1]); - break; - - case 'RI': - this.setRenderingIntent(value); - break; - - case 'FL': - this.setFlatness(value); - break; - - case 'Font': - this.setFont(value); - break; - - case 'CA': - this.setStrokeAlpha(value); - break; - - case 'ca': - this.setFillAlpha(value); - break; - - default: - (0, _util.warn)("Unimplemented graphic state operator ".concat(key)); - break; - } - } - } catch (err) { - _didIteratorError7 = true; - _iteratorError7 = err; - } finally { - try { - if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) { - _iterator7["return"](); - } - } finally { - if (_didIteratorError7) { - throw _iteratorError7; - } - } - } + eoFillStroke() { + if (this.current.element) { + this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); } - }, { - key: "fill", - value: function fill() { - var current = this.current; - if (current.element) { - current.element.setAttributeNS(null, 'fill', current.fillColor); - current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha); - this.endPath(); - } - } - }, { - key: "stroke", - value: function stroke() { - var current = this.current; + this.fillStroke(); + } - if (current.element) { - this._setStrokeAttributes(current.element); + closeStroke() { + this.closePath(); + this.stroke(); + } - current.element.setAttributeNS(null, 'fill', 'none'); - this.endPath(); - } - } - }, { - key: "_setStrokeAttributes", - value: function _setStrokeAttributes(element) { - var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1; - var current = this.current; - var dashArray = current.dashArray; + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } - if (lineWidthScale !== 1 && dashArray.length > 0) { - dashArray = dashArray.map(function (value) { - return lineWidthScale * value; - }); - } + closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + } - element.setAttributeNS(null, 'stroke', current.strokeColor); - element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha); - element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit)); - element.setAttributeNS(null, 'stroke-linecap', current.lineCap); - element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin); - element.setAttributeNS(null, 'stroke-width', pf(lineWidthScale * current.lineWidth) + 'px'); - element.setAttributeNS(null, 'stroke-dasharray', dashArray.map(pf).join(' ')); - element.setAttributeNS(null, 'stroke-dashoffset', pf(lineWidthScale * current.dashPhase) + 'px'); - } - }, { - key: "eoFill", - value: function eoFill() { - if (this.current.element) { - this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - } + paintSolidColorImageMask() { + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", "1px"); + rect.setAttributeNS(null, "height", "1px"); + rect.setAttributeNS(null, "fill", this.current.fillColor); - this.fill(); - } - }, { - key: "fillStroke", - value: function fillStroke() { - this.stroke(); - this.fill(); - } - }, { - key: "eoFillStroke", - value: function eoFillStroke() { - if (this.current.element) { - this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd'); - } + this._ensureTransformGroup().appendChild(rect); + } - this.fillStroke(); - } - }, { - key: "closeStroke", - value: function closeStroke() { - this.closePath(); - this.stroke(); - } - }, { - key: "closeFillStroke", - value: function closeFillStroke() { - this.closePath(); - this.fillStroke(); - } - }, { - key: "closeEOFillStroke", - value: function closeEOFillStroke() { - this.closePath(); - this.eoFillStroke(); - } - }, { - key: "paintSolidColorImageMask", - value: function paintSolidColorImageMask() { - var rect = this.svgFactory.createElement('svg:rect'); - rect.setAttributeNS(null, 'x', '0'); - rect.setAttributeNS(null, 'y', '0'); - rect.setAttributeNS(null, 'width', '1px'); - rect.setAttributeNS(null, 'height', '1px'); - rect.setAttributeNS(null, 'fill', this.current.fillColor); + paintImageXObject(objId) { + const imgData = objId.startsWith("g_") ? this.commonObjs.get(objId) : this.objs.get(objId); - this._ensureTransformGroup().appendChild(rect); + if (!imgData) { + (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`); + return; } - }, { - key: "paintJpegXObject", - value: function paintJpegXObject(objId, w, h) { - var imgObj = this.objs.get(objId); - var imgEl = this.svgFactory.createElement('svg:image'); - imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src); - imgEl.setAttributeNS(null, 'width', pf(w)); - imgEl.setAttributeNS(null, 'height', pf(h)); - imgEl.setAttributeNS(null, 'x', '0'); - imgEl.setAttributeNS(null, 'y', pf(-h)); - imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / w), " ").concat(pf(-1 / h), ")")); + this.paintInlineImageXObject(imgData); + } + + paintInlineImageXObject(imgData, mask) { + const width = imgData.width; + const height = imgData.height; + const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", "0"); + cliprect.setAttributeNS(null, "y", "0"); + cliprect.setAttributeNS(null, "width", pf(width)); + cliprect.setAttributeNS(null, "height", pf(height)); + this.current.element = cliprect; + this.clip("nonzero"); + const imgEl = this.svgFactory.createElement("svg:image"); + imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgSrc); + imgEl.setAttributeNS(null, "x", "0"); + imgEl.setAttributeNS(null, "y", pf(-height)); + imgEl.setAttributeNS(null, "width", pf(width) + "px"); + imgEl.setAttributeNS(null, "height", pf(height) + "px"); + imgEl.setAttributeNS(null, "transform", `scale(${pf(1 / width)} ${pf(-1 / height)})`); + + if (mask) { + mask.appendChild(imgEl); + } else { this._ensureTransformGroup().appendChild(imgEl); } - }, { - key: "paintImageXObject", - value: function paintImageXObject(objId) { - var imgData = this.objs.get(objId); + } - if (!imgData) { - (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet")); - return; - } + paintImageMaskXObject(imgData) { + const current = this.current; + const width = imgData.width; + const height = imgData.height; + const fillColor = current.fillColor; + current.maskId = `mask${maskCount++}`; + const mask = this.svgFactory.createElement("svg:mask"); + mask.setAttributeNS(null, "id", current.maskId); + const rect = this.svgFactory.createElement("svg:rect"); + rect.setAttributeNS(null, "x", "0"); + rect.setAttributeNS(null, "y", "0"); + rect.setAttributeNS(null, "width", pf(width)); + rect.setAttributeNS(null, "height", pf(height)); + rect.setAttributeNS(null, "fill", fillColor); + rect.setAttributeNS(null, "mask", `url(#${current.maskId})`); + this.defs.appendChild(mask); - this.paintInlineImageXObject(imgData); + this._ensureTransformGroup().appendChild(rect); + + this.paintInlineImageXObject(imgData, mask); + } + + paintFormXObjectBegin(matrix, bbox) { + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); } - }, { - key: "paintInlineImageXObject", - value: function paintInlineImageXObject(imgData, mask) { - var width = imgData.width; - var height = imgData.height; - var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask); - var cliprect = this.svgFactory.createElement('svg:rect'); - cliprect.setAttributeNS(null, 'x', '0'); - cliprect.setAttributeNS(null, 'y', '0'); - cliprect.setAttributeNS(null, 'width', pf(width)); - cliprect.setAttributeNS(null, 'height', pf(height)); + + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + const cliprect = this.svgFactory.createElement("svg:rect"); + cliprect.setAttributeNS(null, "x", bbox[0]); + cliprect.setAttributeNS(null, "y", bbox[1]); + cliprect.setAttributeNS(null, "width", pf(width)); + cliprect.setAttributeNS(null, "height", pf(height)); this.current.element = cliprect; - this.clip('nonzero'); - var imgEl = this.svgFactory.createElement('svg:image'); - imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc); - imgEl.setAttributeNS(null, 'x', '0'); - imgEl.setAttributeNS(null, 'y', pf(-height)); - imgEl.setAttributeNS(null, 'width', pf(width) + 'px'); - imgEl.setAttributeNS(null, 'height', pf(height) + 'px'); - imgEl.setAttributeNS(null, 'transform', "scale(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")")); + this.clip("nonzero"); + this.endPath(); + } + } - if (mask) { - mask.appendChild(imgEl); + paintFormXObjectEnd() {} + + _initialize(viewport) { + const svg = this.svgFactory.create(viewport.width, viewport.height); + const definitions = this.svgFactory.createElement("svg:defs"); + svg.appendChild(definitions); + this.defs = definitions; + const rootGroup = this.svgFactory.createElement("svg:g"); + rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); + svg.appendChild(rootGroup); + this.svg = rootGroup; + return svg; + } + + _ensureClipGroup() { + if (!this.current.clipGroup) { + const clipGroup = this.svgFactory.createElement("svg:g"); + clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl); + this.svg.appendChild(clipGroup); + this.current.clipGroup = clipGroup; + } + + return this.current.clipGroup; + } + + _ensureTransformGroup() { + if (!this.tgrp) { + this.tgrp = this.svgFactory.createElement("svg:g"); + this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); + + if (this.current.activeClipUrl) { + this._ensureClipGroup().appendChild(this.tgrp); } else { - this._ensureTransformGroup().appendChild(imgEl); + this.svg.appendChild(this.tgrp); } } - }, { - key: "paintImageMaskXObject", - value: function paintImageMaskXObject(imgData) { - var current = this.current; - var width = imgData.width; - var height = imgData.height; - var fillColor = current.fillColor; - current.maskId = "mask".concat(maskCount++); - var mask = this.svgFactory.createElement('svg:mask'); - mask.setAttributeNS(null, 'id', current.maskId); - var rect = this.svgFactory.createElement('svg:rect'); - rect.setAttributeNS(null, 'x', '0'); - rect.setAttributeNS(null, 'y', '0'); - rect.setAttributeNS(null, 'width', pf(width)); - rect.setAttributeNS(null, 'height', pf(height)); - rect.setAttributeNS(null, 'fill', fillColor); - rect.setAttributeNS(null, 'mask', "url(#".concat(current.maskId, ")")); - this.defs.appendChild(mask); - this._ensureTransformGroup().appendChild(rect); + return this.tgrp; + } - this.paintInlineImageXObject(imgData, mask); - } - }, { - key: "paintFormXObjectBegin", - value: function paintFormXObjectBegin(matrix, bbox) { - if (Array.isArray(matrix) && matrix.length === 6) { - this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]); - } - - if (bbox) { - var width = bbox[2] - bbox[0]; - var height = bbox[3] - bbox[1]; - var cliprect = this.svgFactory.createElement('svg:rect'); - cliprect.setAttributeNS(null, 'x', bbox[0]); - cliprect.setAttributeNS(null, 'y', bbox[1]); - cliprect.setAttributeNS(null, 'width', pf(width)); - cliprect.setAttributeNS(null, 'height', pf(height)); - this.current.element = cliprect; - this.clip('nonzero'); - this.endPath(); - } - } - }, { - key: "paintFormXObjectEnd", - value: function paintFormXObjectEnd() {} - }, { - key: "_initialize", - value: function _initialize(viewport) { - var svg = this.svgFactory.create(viewport.width, viewport.height); - var definitions = this.svgFactory.createElement('svg:defs'); - svg.appendChild(definitions); - this.defs = definitions; - var rootGroup = this.svgFactory.createElement('svg:g'); - rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform)); - svg.appendChild(rootGroup); - this.svg = rootGroup; - return svg; - } - }, { - key: "_ensureClipGroup", - value: function _ensureClipGroup() { - if (!this.current.clipGroup) { - var clipGroup = this.svgFactory.createElement('svg:g'); - clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl); - this.svg.appendChild(clipGroup); - this.current.clipGroup = clipGroup; - } - - return this.current.clipGroup; - } - }, { - key: "_ensureTransformGroup", - value: function _ensureTransformGroup() { - if (!this.tgrp) { - this.tgrp = this.svgFactory.createElement('svg:g'); - this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix)); - - if (this.current.activeClipUrl) { - this._ensureClipGroup().appendChild(this.tgrp); - } else { - this.svg.appendChild(this.tgrp); - } - } - - return this.tgrp; - } - }]); - - return SVGGraphics; - }(); + }; } /***/ }), -/* 165 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 21 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.XfaLayer = void 0; + +class XfaLayer { + static setupStorage(html, fieldId, element, storage) { + const storedData = storage.getValue(fieldId, { + value: null + }); + + switch (element.name) { + case "textarea": + html.textContent = storedData.value !== null ? storedData.value : ""; + html.addEventListener("input", event => { + storage.setValue(fieldId, { + value: event.target.value + }); + }); + break; + + case "input": + if (storedData.value !== null) { + html.setAttribute("value", storedData.value); + } + + if (element.attributes.type === "radio") { + html.addEventListener("change", event => { + const { + target + } = event; + + for (const radio of document.getElementsByName(target.name)) { + if (radio !== target) { + const id = radio.id; + storage.setValue(id.split("-")[0], { + value: false + }); + } + } + + storage.setValue(fieldId, { + value: target.checked + }); + }); + } else { + html.addEventListener("input", event => { + storage.setValue(fieldId, { + value: event.target.value + }); + }); + } + + break; + + case "select": + if (storedData.value !== null) { + for (const option of element.children) { + if (option.attributes.value === storedData.value) { + option.attributes.selected = true; + } + } + } + + html.addEventListener("input", event => { + const options = event.target.options; + const value = options.selectedIndex === -1 ? null : options[options.selectedIndex].value; + storage.setValue(fieldId, { + value + }); + }); + break; + } + } + + static setAttributes(html, element, storage) { + const { + attributes + } = element; + + for (const [key, value] of Object.entries(attributes)) { + if (value === null || value === undefined || key === "fieldId") { + continue; + } + + if (key !== "style") { + if (key === "textContent") { + html.textContent = value; + } else { + html.setAttribute(key, value); + } + } else { + Object.assign(html.style, value); + } + } + + if (storage && attributes.fieldId !== undefined) { + this.setupStorage(html, attributes.fieldId, element, storage); + } + } + + static render(parameters) { + const storage = parameters.annotationStorage; + const root = parameters.xfa; + const rootHtml = document.createElement(root.name); + + if (root.attributes) { + this.setAttributes(rootHtml, root); + } + + const stack = [[root, -1, rootHtml]]; + const rootDiv = parameters.div; + rootDiv.appendChild(rootHtml); + const coeffs = parameters.viewport.transform.join(","); + rootDiv.style.transform = `matrix(${coeffs})`; + rootDiv.setAttribute("class", "xfaLayer xfaFont"); + + while (stack.length > 0) { + const [parent, i, html] = stack[stack.length - 1]; + + if (i + 1 === parent.children.length) { + stack.pop(); + continue; + } + + const child = parent.children[++stack[stack.length - 1][1]]; + + if (child === null) { + continue; + } + + const { + name + } = child; + + if (name === "#text") { + html.appendChild(document.createTextNode(child.value)); + continue; + } + + const childHtml = document.createElement(name); + html.appendChild(childHtml); + + if (child.attributes) { + this.setAttributes(childHtml, child, storage); + } + + if (child.children && child.children.length > 0) { + stack.push([child, -1, childHtml]); + } else if (child.value) { + childHtml.appendChild(document.createTextNode(child.value)); + } + } + } + + static update(parameters) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + parameters.div.style.transform = transform; + parameters.div.hidden = false; + } + +} + +exports.XfaLayer = XfaLayer; + +/***/ }), +/* 22 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFNodeStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(23); -var _network_utils = __w_pdfjs_require__(166); +; -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +const fs = require("fs"); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +const http = require("http"); -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } +const https = require("https"); -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } +const url = require("url"); -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var fs = require('fs'); - -var http = require('http'); - -var https = require('https'); - -var url = require('url'); - -var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; +const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; function parseUrl(sourceUrl) { - var parsedUrl = url.parse(sourceUrl); + const parsedUrl = url.parse(sourceUrl); - if (parsedUrl.protocol === 'file:' || parsedUrl.host) { + if (parsedUrl.protocol === "file:" || parsedUrl.host) { return parsedUrl; } if (/^[a-z]:[/\\]/i.test(sourceUrl)) { - return url.parse("file:///".concat(sourceUrl)); + return url.parse(`file:///${sourceUrl}`); } if (!parsedUrl.host) { - parsedUrl.protocol = 'file:'; + parsedUrl.protocol = "file:"; } return parsedUrl; } -var PDFNodeStream = -/*#__PURE__*/ -function () { - function PDFNodeStream(source) { - _classCallCheck(this, PDFNodeStream); - +class PDFNodeStream { + constructor(source) { this.source = source; this.url = parseUrl(source.url); - this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:'; - this.isFsUrl = this.url.protocol === 'file:'; + this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:"; + this.isFsUrl = this.url.protocol === "file:"; this.httpHeaders = this.isHttp && source.httpHeaders || {}; this._fullRequestReader = null; this._rangeRequestReaders = []; } - _createClass(PDFNodeStream, [{ - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); - return this._fullRequestReader; + get _progressiveDataLength() { + return this._fullRequestReader?._loaded ?? 0; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); + this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); + return this._fullRequestReader; + } + + getRangeReader(start, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "getRangeReader", - value: function getRangeReader(start, end) { - if (end <= this._progressiveDataLength) { - return null; - } - var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); + const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); - this._rangeRequestReaders.push(rangeReader); + this._rangeRequestReaders.push(rangeReader); - return rangeReader; + return rangeReader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + } - return PDFNodeStream; -}(); +} exports.PDFNodeStream = PDFNodeStream; -var BaseFullReader = -/*#__PURE__*/ -function () { - function BaseFullReader(stream) { - _classCallCheck(this, BaseFullReader); - +class BaseFullReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; this.onProgress = null; - var source = stream.source; + const source = stream.source; this._contentLength = source.length; this._loaded = 0; this._filename = null; @@ -22731,161 +12851,107 @@ function () { this._headersCapability = (0, _util.createPromiseCapability)(); } - _createClass(BaseFullReader, [{ - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._readCapability.promise; + get headersReady() { + return this._headersCapability.promise; + } - case 2: - if (!this._done) { - _context.next = 4; - break; - } + get filename() { + return this._filename; + } - return _context.abrupt("return", { - value: undefined, - done: true - }); + get contentLength() { + return this._contentLength; + } - case 4: - if (!this._storedError) { - _context.next = 6; - break; - } + get isRangeSupported() { + return this._isRangeSupported; + } - throw this._storedError; + get isStreamingSupported() { + return this._isStreamingSupported; + } - case 6: - chunk = this._readableStream.read(); + async read() { + await this._readCapability.promise; - if (!(chunk === null)) { - _context.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; + + if (this._storedError) { + throw this._storedError; + } + + const chunk = this._readableStream.read(); + + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } + + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + + _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; this._readCapability.resolve(); - } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this = this; + }); + readableStream.on("error", reason => { + this._error(reason); + }); - this._readableStream = readableStream; - readableStream.on('readable', function () { - _this._readCapability.resolve(); - }); - readableStream.on('end', function () { - readableStream.destroy(); - _this._done = true; - - _this._readCapability.resolve(); - }); - readableStream.on('error', function (reason) { - _this._error(reason); - }); - - if (!this._isStreamingSupported && this._isRangeSupported) { - this._error(new _util.AbortException('streaming is disabled')); - } - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } + if (!this._isStreamingSupported && this._isRangeSupported) { + this._error(new _util.AbortException("streaming is disabled")); } - }, { - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return BaseFullReader; -}(); + if (this._storedError) { + this._readableStream.destroy(this._storedError); + } + } -var BaseRangeReader = -/*#__PURE__*/ -function () { - function BaseRangeReader(stream) { - _classCallCheck(this, BaseRangeReader); +} +class BaseRangeReader { + constructor(stream) { this._url = stream.url; this._done = false; this._storedError = null; @@ -22893,367 +12959,280 @@ function () { this._loaded = 0; this._readableStream = null; this._readCapability = (0, _util.createPromiseCapability)(); - var source = stream.source; + const source = stream.source; this._isStreamingSupported = !source.disableStream; } - _createClass(BaseRangeReader, [{ - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var chunk, buffer; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; + get isStreamingSupported() { + return this._isStreamingSupported; + } - case 2: - if (!this._done) { - _context2.next = 4; - break; - } + async read() { + await this._readCapability.promise; - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 4: - if (!this._storedError) { - _context2.next = 6; - break; - } - - throw this._storedError; - - case 6: - chunk = this._readableStream.read(); - - if (!(chunk === null)) { - _context2.next = 10; - break; - } - - this._readCapability = (0, _util.createPromiseCapability)(); - return _context2.abrupt("return", this.read()); - - case 10: - this._loaded += chunk.length; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(chunk).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 14: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (!this._readableStream) { - this._error(reason); - - return; - } - - this._readableStream.destroy(reason); + if (this._done) { + return { + value: undefined, + done: true + }; } - }, { - key: "_error", - value: function _error(reason) { - this._storedError = reason; + + if (this._storedError) { + throw this._storedError; + } + + const chunk = this._readableStream.read(); + + if (chunk === null) { + this._readCapability = (0, _util.createPromiseCapability)(); + return this.read(); + } + + this._loaded += chunk.length; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + const buffer = new Uint8Array(chunk).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (!this._readableStream) { + this._error(reason); + + return; + } + + this._readableStream.destroy(reason); + } + + _error(reason) { + this._storedError = reason; + + this._readCapability.resolve(); + } + + _setReadableStream(readableStream) { + this._readableStream = readableStream; + readableStream.on("readable", () => { + this._readCapability.resolve(); + }); + readableStream.on("end", () => { + readableStream.destroy(); + this._done = true; this._readCapability.resolve(); + }); + readableStream.on("error", reason => { + this._error(reason); + }); + + if (this._storedError) { + this._readableStream.destroy(this._storedError); } - }, { - key: "_setReadableStream", - value: function _setReadableStream(readableStream) { - var _this2 = this; + } - this._readableStream = readableStream; - readableStream.on('readable', function () { - _this2._readCapability.resolve(); - }); - readableStream.on('end', function () { - readableStream.destroy(); - _this2._done = true; +} - _this2._readCapability.resolve(); - }); - readableStream.on('error', function (reason) { - _this2._error(reason); - }); - - if (this._storedError) { - this._readableStream.destroy(this._storedError); - } - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - - return BaseRangeReader; -}(); - -function createRequestOptions(url, headers) { +function createRequestOptions(parsedUrl, headers) { return { - protocol: url.protocol, - auth: url.auth, - host: url.hostname, - port: url.port, - path: url.path, - method: 'GET', - headers: headers + protocol: parsedUrl.protocol, + auth: parsedUrl.auth, + host: parsedUrl.hostname, + port: parsedUrl.port, + path: parsedUrl.path, + method: "GET", + headers }; } -var PDFNodeStreamFullReader = -/*#__PURE__*/ -function (_BaseFullReader) { - _inherits(PDFNodeStreamFullReader, _BaseFullReader); +class PDFNodeStreamFullReader extends BaseFullReader { + constructor(stream) { + super(stream); - function PDFNodeStreamFullReader(stream) { - var _this3; - - _classCallCheck(this, PDFNodeStreamFullReader); - - _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream)); - - var handleResponse = function handleResponse(response) { + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\".")); - _this3._storedError = error; + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; - _this3._headersCapability.reject(error); + this._headersCapability.reject(error); return; } - _this3._headersCapability.resolve(); + this._headersCapability.resolve(); - _this3._setReadableStream(response); + this._setReadableStream(response); - var getResponseHeader = function getResponseHeader(name) { - return _this3._readableStream.headers[name.toLowerCase()]; + const getResponseHeader = name => { + return this._readableStream.headers[name.toLowerCase()]; }; - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, isHttp: stream.isHttp, - rangeChunkSize: _this3._rangeChunkSize, - disableRange: _this3._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - _this3._isRangeSupported = allowRangeRequests; - _this3._contentLength = suggestedLength || _this3._contentLength; - _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); }; - _this3._request = null; + this._request = null; - if (_this3._url.protocol === 'http:') { - _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } else { - _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); } - _this3._request.on('error', function (reason) { - _this3._storedError = reason; + this._request.on("error", reason => { + this._storedError = reason; - _this3._headersCapability.reject(reason); + this._headersCapability.reject(reason); }); - _this3._request.end(); - - return _this3; + this._request.end(); } - return PDFNodeStreamFullReader; -}(BaseFullReader); +} -var PDFNodeStreamRangeReader = -/*#__PURE__*/ -function (_BaseRangeReader) { - _inherits(PDFNodeStreamRangeReader, _BaseRangeReader); +class PDFNodeStreamRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + this._httpHeaders = {}; - function PDFNodeStreamRangeReader(stream, start, end) { - var _this4; + for (const property in stream.httpHeaders) { + const value = stream.httpHeaders[property]; - _classCallCheck(this, PDFNodeStreamRangeReader); - - _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream)); - _this4._httpHeaders = {}; - - for (var property in stream.httpHeaders) { - var value = stream.httpHeaders[property]; - - if (typeof value === 'undefined') { + if (typeof value === "undefined") { continue; } - _this4._httpHeaders[property] = value; + this._httpHeaders[property] = value; } - _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1); + this._httpHeaders.Range = `bytes=${start}-${end - 1}`; - var handleResponse = function handleResponse(response) { + const handleResponse = response => { if (response.statusCode === 404) { - var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\".")); - _this4._storedError = error; + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; return; } - _this4._setReadableStream(response); + this._setReadableStream(response); }; - _this4._request = null; + this._request = null; - if (_this4._url.protocol === 'http:') { - _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + if (this._url.protocol === "http:") { + this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } else { - _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse); + this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); } - _this4._request.on('error', function (reason) { - _this4._storedError = reason; + this._request.on("error", reason => { + this._storedError = reason; }); - _this4._request.end(); - - return _this4; + this._request.end(); } - return PDFNodeStreamRangeReader; -}(BaseRangeReader); +} -var PDFNodeStreamFsFullReader = -/*#__PURE__*/ -function (_BaseFullReader2) { - _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2); +class PDFNodeStreamFsFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + let path = decodeURIComponent(this._url.path); - function PDFNodeStreamFsFullReader(stream) { - var _this5; - - _classCallCheck(this, PDFNodeStreamFsFullReader); - - _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream)); - var path = decodeURIComponent(_this5._url.path); - - if (fileUriRegex.test(_this5._url.href)) { - path = path.replace(/^\//, ''); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); } - fs.lstat(path, function (error, stat) { + fs.lstat(path, (error, stat) => { if (error) { - if (error.code === 'ENOENT') { - error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\".")); + if (error.code === "ENOENT") { + error = new _util.MissingPDFException(`Missing PDF "${path}".`); } - _this5._storedError = error; + this._storedError = error; - _this5._headersCapability.reject(error); + this._headersCapability.reject(error); return; } - _this5._contentLength = stat.size; + this._contentLength = stat.size; - _this5._setReadableStream(fs.createReadStream(path)); + this._setReadableStream(fs.createReadStream(path)); - _this5._headersCapability.resolve(); + this._headersCapability.resolve(); }); - return _this5; } - return PDFNodeStreamFsFullReader; -}(BaseFullReader); +} -var PDFNodeStreamFsRangeReader = -/*#__PURE__*/ -function (_BaseRangeReader2) { - _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2); +class PDFNodeStreamFsRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + let path = decodeURIComponent(this._url.path); - function PDFNodeStreamFsRangeReader(stream, start, end) { - var _this6; - - _classCallCheck(this, PDFNodeStreamFsRangeReader); - - _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream)); - var path = decodeURIComponent(_this6._url.path); - - if (fileUriRegex.test(_this6._url.href)) { - path = path.replace(/^\//, ''); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); } - _this6._setReadableStream(fs.createReadStream(path, { - start: start, + this._setReadableStream(fs.createReadStream(path, { + start, end: end - 1 })); - - return _this6; } - return PDFNodeStreamFsRangeReader; -}(BaseRangeReader); +} /***/ }), -/* 166 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 23 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.createResponseStatusError = createResponseStatusError; exports.extractFilenameFromHeader = extractFilenameFromHeader; exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities; exports.validateResponseStatus = validateResponseStatus; -var _util = __w_pdfjs_require__(1); +var _util = __w_pdfjs_require__(2); -var _content_disposition = __w_pdfjs_require__(167); +var _content_disposition = __w_pdfjs_require__(24); -function validateRangeRequestCapabilities(_ref) { - var getResponseHeader = _ref.getResponseHeader, - isHttp = _ref.isHttp, - rangeChunkSize = _ref.rangeChunkSize, - disableRange = _ref.disableRange; - (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero'); - var returnValues = { +var _display_utils = __w_pdfjs_require__(1); + +function validateRangeRequestCapabilities({ + getResponseHeader, + isHttp, + rangeChunkSize, + disableRange +}) { + (0, _util.assert)(rangeChunkSize > 0, "Range chunk size must be larger than zero"); + const returnValues = { allowRangeRequests: false, suggestedLength: undefined }; - var length = parseInt(getResponseHeader('Content-Length'), 10); + const length = parseInt(getResponseHeader("Content-Length"), 10); if (!Number.isInteger(length)) { return returnValues; @@ -23269,13 +13248,13 @@ function validateRangeRequestCapabilities(_ref) { return returnValues; } - if (getResponseHeader('Accept-Ranges') !== 'bytes') { + if (getResponseHeader("Accept-Ranges") !== "bytes") { return returnValues; } - var contentEncoding = getResponseHeader('Content-Encoding') || 'identity'; + const contentEncoding = getResponseHeader("Content-Encoding") || "identity"; - if (contentEncoding !== 'identity') { + if (contentEncoding !== "identity") { return returnValues; } @@ -23284,12 +13263,18 @@ function validateRangeRequestCapabilities(_ref) { } function extractFilenameFromHeader(getResponseHeader) { - var contentDisposition = getResponseHeader('Content-Disposition'); + const contentDisposition = getResponseHeader("Content-Disposition"); if (contentDisposition) { - var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); + let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); - if (/\.pdf$/i.test(filename)) { + if (filename.includes("%")) { + try { + filename = decodeURIComponent(filename); + } catch (ex) {} + } + + if ((0, _display_utils.isPdfFile)(filename)) { return filename; } } @@ -23298,11 +13283,11 @@ function extractFilenameFromHeader(getResponseHeader) { } function createResponseStatusError(status, url) { - if (status === 404 || status === 0 && /^file:/.test(url)) { + if (status === 404 || status === 0 && url.startsWith("file:")) { return new _util.MissingPDFException('Missing PDF "' + url + '".'); } - return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status); + return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF "${url}".`, status); } function validateResponseStatus(status) { @@ -23310,32 +13295,25 @@ function validateResponseStatus(status) { } /***/ }), -/* 167 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 24 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } +var _util = __w_pdfjs_require__(2); function getFilenameFromContentDispositionHeader(contentDisposition) { - var needsEncodingFixup = true; - var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition); + let needsEncodingFixup = true; + let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); if (tmp) { tmp = tmp[1]; - var filename = rfc2616unquote(tmp); + let filename = rfc2616unquote(tmp); filename = unescape(filename); filename = rfc5987decode(filename); filename = rfc2047decode(filename); @@ -23345,24 +13323,21 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { tmp = rfc2231getparam(contentDisposition); if (tmp) { - var _filename = rfc2047decode(tmp); - - return fixupEncoding(_filename); + const filename = rfc2047decode(tmp); + return fixupEncoding(filename); } - tmp = toParamRegExp('filename', 'i').exec(contentDisposition); + tmp = toParamRegExp("filename", "i").exec(contentDisposition); if (tmp) { tmp = tmp[1]; - - var _filename2 = rfc2616unquote(tmp); - - _filename2 = rfc2047decode(_filename2); - return fixupEncoding(_filename2); + let filename = rfc2616unquote(tmp); + filename = rfc2047decode(filename); + return fixupEncoding(filename); } function toParamRegExp(attributePattern, flags) { - return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags); + return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags); } function textdecode(encoding, value) { @@ -23372,13 +13347,11 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { } try { - var decoder = new TextDecoder(encoding, { + const decoder = new TextDecoder(encoding, { fatal: true }); - var bytes = Array.from(value, function (ch) { - return ch.charCodeAt(0) & 0xFF; - }); - value = decoder.decode(new Uint8Array(bytes)); + const buffer = (0, _util.stringToBytes)(value); + value = decoder.decode(buffer); needsEncodingFixup = false; } catch (e) { if (/^utf-?8$/i.test(encoding)) { @@ -23395,28 +13368,23 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { function fixupEncoding(value) { if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { - value = textdecode('utf-8', value); + value = textdecode("utf-8", value); if (needsEncodingFixup) { - value = textdecode('iso-8859-1', value); + value = textdecode("iso-8859-1", value); } } return value; } - function rfc2231getparam(contentDisposition) { - var matches = [], - match; - var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig'); - - while ((match = iter.exec(contentDisposition)) !== null) { - var _match = match, - _match2 = _slicedToArray(_match, 4), - n = _match2[1], - quot = _match2[2], - part = _match2[3]; + function rfc2231getparam(contentDispositionStr) { + const matches = []; + let match; + const iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); + while ((match = iter.exec(contentDispositionStr)) !== null) { + let [, n, quot, part] = match; n = parseInt(n, 10); if (n in matches) { @@ -23430,17 +13398,14 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { matches[n] = [quot, part]; } - var parts = []; + const parts = []; - for (var n = 0; n < matches.length; ++n) { + for (let n = 0; n < matches.length; ++n) { if (!(n in matches)) { break; } - var _matches$n = _slicedToArray(matches[n], 2), - quot = _matches$n[0], - part = _matches$n[1]; - + let [quot, part] = matches[n]; part = rfc2616unquote(part); if (quot) { @@ -23454,22 +13419,22 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { parts.push(part); } - return parts.join(''); + return parts.join(""); } function rfc2616unquote(value) { if (value.startsWith('"')) { - var parts = value.slice(1).split('\\"'); + const parts = value.slice(1).split('\\"'); - for (var i = 0; i < parts.length; ++i) { - var quotindex = parts[i].indexOf('"'); + for (let i = 0; i < parts.length; ++i) { + const quotindex = parts[i].indexOf('"'); if (quotindex !== -1) { parts[i] = parts[i].slice(0, quotindex); parts.length = i + 1; } - parts[i] = parts[i].replace(/\\(.)/g, '$1'); + parts[i] = parts[i].replace(/\\(.)/g, "$1"); } value = parts.join('"'); @@ -23479,27 +13444,27 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { } function rfc5987decode(extvalue) { - var encodingend = extvalue.indexOf('\''); + const encodingend = extvalue.indexOf("'"); if (encodingend === -1) { return extvalue; } - var encoding = extvalue.slice(0, encodingend); - var langvalue = extvalue.slice(encodingend + 1); - var value = langvalue.replace(/^[^']*'/, ''); + const encoding = extvalue.slice(0, encodingend); + const langvalue = extvalue.slice(encodingend + 1); + const value = langvalue.replace(/^[^']*'/, ""); return textdecode(encoding, value); } function rfc2047decode(value) { - if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) { + if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) { return value; } - return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) { - if (encoding === 'q' || encoding === 'Q') { - text = text.replace(/_/g, ' '); - text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) { + return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, encoding, text) { + if (encoding === "q" || encoding === "Q") { + text = text.replace(/_/g, " "); + text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) { return String.fromCharCode(parseInt(hex, 16)); }); return textdecode(charset, text); @@ -23513,60 +13478,41 @@ function getFilenameFromContentDispositionHeader(contentDisposition) { }); } - return ''; + return ""; } /***/ }), -/* 168 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 25 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFNetworkStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); - -var _network_utils = __w_pdfjs_require__(166); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _network_utils = __w_pdfjs_require__(23); ; -var OK_RESPONSE = 200; -var PARTIAL_CONTENT_RESPONSE = 206; +const OK_RESPONSE = 200; +const PARTIAL_CONTENT_RESPONSE = 206; function getArrayBuffer(xhr) { - var data = xhr.response; + const data = xhr.response; - if (typeof data !== 'string') { + if (typeof data !== "string") { return data; } - var array = (0, _util.stringToBytes)(data); + const array = (0, _util.stringToBytes)(data); return array.buffer; } -var NetworkManager = -/*#__PURE__*/ -function () { - function NetworkManager(url, args) { - _classCallCheck(this, NetworkManager); - +class NetworkManager { + constructor(url, args) { this.url = url; args = args || {}; this.isHttp = /^https?:/i.test(url); @@ -23581,190 +13527,159 @@ function () { this.pendingRequests = Object.create(null); } - _createClass(NetworkManager, [{ - key: "requestRange", - value: function requestRange(begin, end, listeners) { - var args = { - begin: begin, - end: end + requestRange(begin, end, listeners) { + const args = { + begin, + end + }; + + for (const prop in listeners) { + args[prop] = listeners[prop]; + } + + return this.request(args); + } + + requestFull(listeners) { + return this.request(listeners); + } + + request(args) { + const xhr = this.getXhr(); + const xhrId = this.currXhrId++; + const pendingRequest = this.pendingRequests[xhrId] = { + xhr + }; + xhr.open("GET", this.url); + xhr.withCredentials = this.withCredentials; + + for (const property in this.httpHeaders) { + const value = this.httpHeaders[property]; + + if (typeof value === "undefined") { + continue; + } + + xhr.setRequestHeader(property, value); + } + + if (this.isHttp && "begin" in args && "end" in args) { + xhr.setRequestHeader("Range", `bytes=${args.begin}-${args.end - 1}`); + pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; + } else { + pendingRequest.expectedStatus = OK_RESPONSE; + } + + xhr.responseType = "arraybuffer"; + + if (args.onError) { + xhr.onerror = function (evt) { + args.onError(xhr.status); }; - - for (var prop in listeners) { - args[prop] = listeners[prop]; - } - - return this.request(args); } - }, { - key: "requestFull", - value: function requestFull(listeners) { - return this.request(listeners); + + xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); + xhr.onprogress = this.onProgress.bind(this, xhrId); + pendingRequest.onHeadersReceived = args.onHeadersReceived; + pendingRequest.onDone = args.onDone; + pendingRequest.onError = args.onError; + pendingRequest.onProgress = args.onProgress; + xhr.send(null); + return xhrId; + } + + onProgress(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; + + if (!pendingRequest) { + return; } - }, { - key: "request", - value: function request(args) { - var xhr = this.getXhr(); - var xhrId = this.currXhrId++; - var pendingRequest = this.pendingRequests[xhrId] = { - xhr: xhr - }; - xhr.open('GET', this.url); - xhr.withCredentials = this.withCredentials; - for (var property in this.httpHeaders) { - var value = this.httpHeaders[property]; - - if (typeof value === 'undefined') { - continue; - } - - xhr.setRequestHeader(property, value); - } - - if (this.isHttp && 'begin' in args && 'end' in args) { - xhr.setRequestHeader('Range', "bytes=".concat(args.begin, "-").concat(args.end - 1)); - pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE; - } else { - pendingRequest.expectedStatus = OK_RESPONSE; - } - - xhr.responseType = 'arraybuffer'; - - if (args.onError) { - xhr.onerror = function (evt) { - args.onError(xhr.status); - }; - } - - xhr.onreadystatechange = this.onStateChange.bind(this, xhrId); - xhr.onprogress = this.onProgress.bind(this, xhrId); - pendingRequest.onHeadersReceived = args.onHeadersReceived; - pendingRequest.onDone = args.onDone; - pendingRequest.onError = args.onError; - pendingRequest.onProgress = args.onProgress; - xhr.send(null); - return xhrId; + if (pendingRequest.onProgress) { + pendingRequest.onProgress(evt); } - }, { - key: "onProgress", - value: function onProgress(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; + } - if (!pendingRequest) { - return; - } + onStateChange(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; - if (pendingRequest.onProgress) { - pendingRequest.onProgress(evt); - } + if (!pendingRequest) { + return; } - }, { - key: "onStateChange", - value: function onStateChange(xhrId, evt) { - var pendingRequest = this.pendingRequests[xhrId]; - if (!pendingRequest) { - return; - } + const xhr = pendingRequest.xhr; - var xhr = pendingRequest.xhr; + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; + } - if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { - pendingRequest.onHeadersReceived(); - delete pendingRequest.onHeadersReceived; - } + if (xhr.readyState !== 4) { + return; + } - if (xhr.readyState !== 4) { - return; - } + if (!(xhrId in this.pendingRequests)) { + return; + } - if (!(xhrId in this.pendingRequests)) { - return; - } + delete this.pendingRequests[xhrId]; - delete this.pendingRequests[xhrId]; - - if (xhr.status === 0 && this.isHttp) { - if (pendingRequest.onError) { - pendingRequest.onError(xhr.status); - } - - return; - } - - var xhrStatus = xhr.status || OK_RESPONSE; - var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; - - if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { - if (pendingRequest.onError) { - pendingRequest.onError(xhr.status); - } - - return; - } - - var chunk = getArrayBuffer(xhr); - - if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { - var rangeHeader = xhr.getResponseHeader('Content-Range'); - var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); - pendingRequest.onDone({ - begin: parseInt(matches[1], 10), - chunk: chunk - }); - } else if (chunk) { - pendingRequest.onDone({ - begin: 0, - chunk: chunk - }); - } else if (pendingRequest.onError) { + if (xhr.status === 0 && this.isHttp) { + if (pendingRequest.onError) { pendingRequest.onError(xhr.status); } + + return; } - }, { - key: "hasPendingRequests", - value: function hasPendingRequests() { - for (var xhrId in this.pendingRequests) { - return true; + + const xhrStatus = xhr.status || OK_RESPONSE; + const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE; + + if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) { + if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); } - return false; + return; } - }, { - key: "getRequestXhr", - value: function getRequestXhr(xhrId) { - return this.pendingRequests[xhrId].xhr; - } - }, { - key: "isPendingRequest", - value: function isPendingRequest(xhrId) { - return xhrId in this.pendingRequests; - } - }, { - key: "abortAllRequests", - value: function abortAllRequests() { - for (var xhrId in this.pendingRequests) { - this.abortRequest(xhrId | 0); - } - } - }, { - key: "abortRequest", - value: function abortRequest(xhrId) { - var xhr = this.pendingRequests[xhrId].xhr; - delete this.pendingRequests[xhrId]; - xhr.abort(); - } - }]); - return NetworkManager; -}(); + const chunk = getArrayBuffer(xhr); -var PDFNetworkStream = -/*#__PURE__*/ -function () { - function PDFNetworkStream(source) { - _classCallCheck(this, PDFNetworkStream); + if (xhrStatus === PARTIAL_CONTENT_RESPONSE) { + const rangeHeader = xhr.getResponseHeader("Content-Range"); + const matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader); + pendingRequest.onDone({ + begin: parseInt(matches[1], 10), + chunk + }); + } else if (chunk) { + pendingRequest.onDone({ + begin: 0, + chunk + }); + } else if (pendingRequest.onError) { + pendingRequest.onError(xhr.status); + } + } + getRequestXhr(xhrId) { + return this.pendingRequests[xhrId].xhr; + } + + isPendingRequest(xhrId) { + return xhrId in this.pendingRequests; + } + + abortRequest(xhrId) { + const xhr = this.pendingRequests[xhrId].xhr; + delete this.pendingRequests[xhrId]; + xhr.abort(); + } + +} + +class PDFNetworkStream { + constructor(source) { this._source = source; this._manager = new NetworkManager(source.url, { httpHeaders: source.httpHeaders, @@ -23775,60 +13690,47 @@ function () { this._rangeRequestReaders = []; } - _createClass(PDFNetworkStream, [{ - key: "_onRangeRequestReaderClosed", - value: function _onRangeRequestReaderClosed(reader) { - var i = this._rangeRequestReaders.indexOf(reader); + _onRangeRequestReaderClosed(reader) { + const i = this._rangeRequestReaders.indexOf(reader); - if (i >= 0) { - this._rangeRequestReaders.splice(i, 1); - } + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); } - }, { - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); - return this._fullRequestReader; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source); + return this._fullRequestReader; + } + + getRangeReader(begin, end) { + const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); + reader.onClosed = this._onRangeRequestReaderClosed.bind(this); + + this._rangeRequestReaders.push(reader); + + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end); - reader.onClosed = this._onRangeRequestReaderClosed.bind(this); - this._rangeRequestReaders.push(reader); - - return reader; + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } + } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); - } - }]); - - return PDFNetworkStream; -}(); +} exports.PDFNetworkStream = PDFNetworkStream; -var PDFNetworkStreamFullRequestReader = -/*#__PURE__*/ -function () { - function PDFNetworkStreamFullRequestReader(manager, source) { - _classCallCheck(this, PDFNetworkStreamFullRequestReader); - +class PDFNetworkStreamFullRequestReader { + constructor(manager, source) { this._manager = manager; - var args = { + const args = { onHeadersReceived: this._onHeadersReceived.bind(this), onDone: this._onDone.bind(this), onError: this._onError.bind(this), @@ -23855,218 +13757,168 @@ function () { this.onProgress = null; } - _createClass(PDFNetworkStreamFullRequestReader, [{ - key: "_onHeadersReceived", - value: function _onHeadersReceived() { - var fullRequestXhrId = this._fullRequestId; + _onHeadersReceived() { + const fullRequestXhrId = this._fullRequestId; - var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); + const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); - var getResponseHeader = function getResponseHeader(name) { - return fullRequestXhr.getResponseHeader(name); + const getResponseHeader = name => { + return fullRequestXhr.getResponseHeader(name); + }; + + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._manager.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + + if (allowRangeRequests) { + this._isRangeSupported = true; + } + + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + + if (this._isRangeSupported) { + this._manager.abortRequest(fullRequestXhrId); + } + + this._headersReceivedCapability.resolve(); + } + + _onDone(args) { + if (args) { + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + + requestCapability.resolve({ + value: args.chunk, + done: false + }); + } else { + this._cachedChunks.push(args.chunk); + } + } + + this._done = true; + + if (this._cachedChunks.length > 0) { + return; + } + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + + this._requests.length = 0; + } + + _onError(status) { + const url = this._url; + const exception = (0, _network_utils.createResponseStatusError)(status, url); + this._storedError = exception; + + this._headersReceivedCapability.reject(exception); + + for (const requestCapability of this._requests) { + requestCapability.reject(exception); + } + + this._requests.length = 0; + this._cachedChunks.length = 0; + } + + _onProgress(data) { + if (this.onProgress) { + this.onProgress({ + loaded: data.loaded, + total: data.lengthComputable ? data.total : this._contentLength + }); + } + } + + get filename() { + return this._filename; + } + + get isRangeSupported() { + return this._isRangeSupported; + } + + get isStreamingSupported() { + return this._isStreamingSupported; + } + + get contentLength() { + return this._contentLength; + } + + get headersReady() { + return this._headersReceivedCapability.promise; + } + + async read() { + if (this._storedError) { + throw this._storedError; + } + + if (this._cachedChunks.length > 0) { + const chunk = this._cachedChunks.shift(); + + return { + value: chunk, + done: false }; - - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: this._manager.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; - - if (allowRangeRequests) { - this._isRangeSupported = true; - } - - this._contentLength = suggestedLength || this._contentLength; - this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (this._isRangeSupported) { - this._manager.abortRequest(fullRequestXhrId); - } - - this._headersReceivedCapability.resolve(); } - }, { - key: "_onDone", - value: function _onDone(args) { - if (args) { - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); - requestCapability.resolve({ - value: args.chunk, - done: false - }); - } else { - this._cachedChunks.push(args.chunk); - } - } + if (this._done) { + return { + value: undefined, + done: true + }; + } - this._done = true; + const requestCapability = (0, _util.createPromiseCapability)(); - if (this._cachedChunks.length > 0) { - return; - } + this._requests.push(requestCapability); - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + this._headersReceivedCapability.reject(reason); + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true }); - - this._requests = []; } - }, { - key: "_onError", - value: function _onError(status) { - var url = this._url; - var exception = (0, _network_utils.createResponseStatusError)(status, url); - this._storedError = exception; - this._headersReceivedCapability.reject(exception); + this._requests.length = 0; - this._requests.forEach(function (requestCapability) { - requestCapability.reject(exception); - }); - - this._requests = []; - this._cachedChunks = []; + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); } - }, { - key: "_onProgress", - value: function _onProgress(data) { - if (this.onProgress) { - this.onProgress({ - loaded: data.loaded, - total: data.lengthComputable ? data.total : this._contentLength - }); - } - } - }, { - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (!this._storedError) { - _context.next = 2; - break; - } - throw this._storedError; + this._fullRequestReader = null; + } - case 2: - if (!(this._cachedChunks.length > 0)) { - _context.next = 5; - break; - } - - chunk = this._cachedChunks.shift(); - return _context.abrupt("return", { - value: chunk, - done: false - }); - - case 5: - if (!this._done) { - _context.next = 7; - break; - } - - return _context.abrupt("return", { - value: undefined, - done: true - }); - - case 7: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context.abrupt("return", requestCapability.promise); - - case 10: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._headersReceivedCapability.reject(reason); - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); - }); - - this._requests = []; - - if (this._manager.isPendingRequest(this._fullRequestId)) { - this._manager.abortRequest(this._fullRequestId); - } - - this._fullRequestReader = null; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "headersReady", - get: function get() { - return this._headersReceivedCapability.promise; - } - }]); - - return PDFNetworkStreamFullRequestReader; -}(); - -var PDFNetworkStreamRangeRequestReader = -/*#__PURE__*/ -function () { - function PDFNetworkStreamRangeRequestReader(manager, begin, end) { - _classCallCheck(this, PDFNetworkStreamRangeRequestReader); +} +class PDFNetworkStreamRangeRequestReader { + constructor(manager, begin, end) { this._manager = manager; - var args = { + const args = { onDone: this._onDone.bind(this), onProgress: this._onProgress.bind(this) }; @@ -24078,183 +13930,143 @@ function () { this.onClosed = null; } - _createClass(PDFNetworkStreamRangeRequestReader, [{ - key: "_close", - value: function _close() { - if (this.onClosed) { - this.onClosed(this); - } + _close() { + if (this.onClosed) { + this.onClosed(this); } - }, { - key: "_onDone", - value: function _onDone(data) { - var chunk = data.chunk; + } - if (this._requests.length > 0) { - var requestCapability = this._requests.shift(); + _onDone(data) { + const chunk = data.chunk; - requestCapability.resolve({ - value: chunk, - done: false - }); - } else { - this._queuedChunk = chunk; - } + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + requestCapability.resolve({ + value: chunk, + done: false }); - - this._requests = []; - - this._close(); + } else { + this._queuedChunk = chunk; } - }, { - key: "_onProgress", - value: function _onProgress(evt) { - if (!this.isStreamingSupported && this.onProgress) { - this.onProgress({ - loaded: evt.loaded - }); - } - } - }, { - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var chunk, requestCapability; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(this._queuedChunk !== null)) { - _context2.next = 4; - break; - } - chunk = this._queuedChunk; - this._queuedChunk = null; - return _context2.abrupt("return", { - value: chunk, - done: false - }); + this._done = true; - case 4: - if (!this._done) { - _context2.next = 6; - break; - } - - return _context2.abrupt("return", { - value: undefined, - done: true - }); - - case 6: - requestCapability = (0, _util.createPromiseCapability)(); - - this._requests.push(requestCapability); - - return _context2.abrupt("return", requestCapability.promise); - - case 9: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - this._done = true; - - this._requests.forEach(function (requestCapability) { - requestCapability.resolve({ - value: undefined, - done: true - }); + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true }); - - this._requests = []; - - if (this._manager.isPendingRequest(this._requestId)) { - this._manager.abortRequest(this._requestId); - } - - this._close(); } - }, { - key: "isStreamingSupported", - get: function get() { - return false; - } - }]); - return PDFNetworkStreamRangeRequestReader; -}(); + this._requests.length = 0; + + this._close(); + } + + _onProgress(evt) { + if (!this.isStreamingSupported && this.onProgress) { + this.onProgress({ + loaded: evt.loaded + }); + } + } + + get isStreamingSupported() { + return false; + } + + async read() { + if (this._queuedChunk !== null) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; + } + + if (this._done) { + return { + value: undefined, + done: true + }; + } + + const requestCapability = (0, _util.createPromiseCapability)(); + + this._requests.push(requestCapability); + + return requestCapability.promise; + } + + cancel(reason) { + this._done = true; + + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + + this._requests.length = 0; + + if (this._manager.isPendingRequest(this._requestId)) { + this._manager.abortRequest(this._requestId); + } + + this._close(); + } + +} /***/ }), -/* 169 */ -/***/ (function(module, exports, __w_pdfjs_require__) { - -"use strict"; +/* 26 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFFetchStream = void 0; -var _regenerator = _interopRequireDefault(__w_pdfjs_require__(148)); +var _util = __w_pdfjs_require__(2); -var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(23); -var _network_utils = __w_pdfjs_require__(166); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +; function createFetchOptions(headers, withCredentials, abortController) { return { - method: 'GET', - headers: headers, - signal: abortController && abortController.signal, - mode: 'cors', - credentials: withCredentials ? 'include' : 'same-origin', - redirect: 'follow' + method: "GET", + headers, + signal: abortController?.signal, + mode: "cors", + credentials: withCredentials ? "include" : "same-origin", + redirect: "follow" }; } -var PDFFetchStream = -/*#__PURE__*/ -function () { - function PDFFetchStream(source) { - _classCallCheck(this, PDFFetchStream); +function createHeaders(httpHeaders) { + const headers = new Headers(); + for (const property in httpHeaders) { + const value = httpHeaders[property]; + + if (typeof value === "undefined") { + continue; + } + + headers.append(property, value); + } + + return headers; +} + +class PDFFetchStream { + constructor(source) { this.source = source; this.isHttp = /^https?:/i.test(source.url); this.httpHeaders = this.isHttp && source.httpHeaders || {}; @@ -24262,64 +14074,49 @@ function () { this._rangeRequestReaders = []; } - _createClass(PDFFetchStream, [{ - key: "getFullReader", - value: function getFullReader() { - (0, _util.assert)(!this._fullRequestReader); - this._fullRequestReader = new PDFFetchStreamReader(this); - return this._fullRequestReader; + get _progressiveDataLength() { + return this._fullRequestReader?._loaded ?? 0; + } + + getFullReader() { + (0, _util.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); + this._fullRequestReader = new PDFFetchStreamReader(this); + return this._fullRequestReader; + } + + getRangeReader(begin, end) { + if (end <= this._progressiveDataLength) { + return null; } - }, { - key: "getRangeReader", - value: function getRangeReader(begin, end) { - if (end <= this._progressiveDataLength) { - return null; - } - var reader = new PDFFetchStreamRangeReader(this, begin, end); + const reader = new PDFFetchStreamRangeReader(this, begin, end); - this._rangeRequestReaders.push(reader); + this._rangeRequestReaders.push(reader); - return reader; + return reader; + } + + cancelAllRequests(reason) { + if (this._fullRequestReader) { + this._fullRequestReader.cancel(reason); } - }, { - key: "cancelAllRequests", - value: function cancelAllRequests(reason) { - if (this._fullRequestReader) { - this._fullRequestReader.cancel(reason); - } - var readers = this._rangeRequestReaders.slice(0); - - readers.forEach(function (reader) { - reader.cancel(reason); - }); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); } - }, { - key: "_progressiveDataLength", - get: function get() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0; - } - }]); + } - return PDFFetchStream; -}(); +} exports.PDFFetchStream = PDFFetchStream; -var PDFFetchStreamReader = -/*#__PURE__*/ -function () { - function PDFFetchStreamReader(stream) { - var _this = this; - - _classCallCheck(this, PDFFetchStreamReader); - +class PDFFetchStreamReader { + constructor(stream) { this._stream = stream; this._reader = null; this._loaded = 0; this._filename = null; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._contentLength = source.length; this._headersCapability = (0, _util.createPromiseCapability)(); @@ -24330,295 +14127,492 @@ function () { this._disableRange = true; } - if (typeof AbortController !== 'undefined') { + if (typeof AbortController !== "undefined") { this._abortController = new AbortController(); } this._isStreamingSupported = !source.disableStream; this._isRangeSupported = !source.disableRange; - this._headers = new Headers(); - - for (var property in this._stream.httpHeaders) { - var value = this._stream.httpHeaders[property]; - - if (typeof value === 'undefined') { - continue; - } - - this._headers.append(property, value); - } - - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + this._headers = createHeaders(this._stream.httpHeaders); + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - _this._reader = response.body.getReader(); + this._reader = response.body.getReader(); - _this._headersCapability.resolve(); + this._headersCapability.resolve(); - var getResponseHeader = function getResponseHeader(name) { + const getResponseHeader = name => { return response.headers.get(name); }; - var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: _this._stream.isHttp, - rangeChunkSize: _this._rangeChunkSize, - disableRange: _this._disableRange - }), - allowRangeRequests = _validateRangeRequest.allowRangeRequests, - suggestedLength = _validateRangeRequest.suggestedLength; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: this._stream.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - _this._isRangeSupported = allowRangeRequests; - _this._contentLength = suggestedLength || _this._contentLength; - _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); - - if (!_this._isStreamingSupported && _this._isRangeSupported) { - _this.cancel(new _util.AbortException('Streaming is disabled.')); + if (!this._isStreamingSupported && this._isRangeSupported) { + this.cancel(new _util.AbortException("Streaming is disabled.")); } - })["catch"](this._headersCapability.reject); + }).catch(this._headersCapability.reject); this.onProgress = null; } - _createClass(PDFFetchStreamReader, [{ - key: "read", - value: function () { - var _read = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var _ref, value, done, buffer; + get headersReady() { + return this._headersCapability.promise; + } - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._headersCapability.promise; + get filename() { + return this._filename; + } - case 2: - _context.next = 4; - return this._reader.read(); + get contentLength() { + return this._contentLength; + } - case 4: - _ref = _context.sent; - value = _ref.value; - done = _ref.done; + get isRangeSupported() { + return this._isRangeSupported; + } - if (!done) { - _context.next = 9; - break; - } + get isStreamingSupported() { + return this._isStreamingSupported; + } - return _context.abrupt("return", { - value: value, - done: done - }); + async read() { + await this._headersCapability.promise; + const { + value, + done + } = await this._reader.read(); - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - } - - buffer = new Uint8Array(value).buffer; - return _context.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function read() { - return _read.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + if (done) { + return { + value, + done + }; } - }, { - key: "headersReady", - get: function get() { - return this._headersCapability.promise; - } - }, { - key: "filename", - get: function get() { - return this._filename; - } - }, { - key: "contentLength", - get: function get() { - return this._contentLength; - } - }, { - key: "isRangeSupported", - get: function get() { - return this._isRangeSupported; - } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return PDFFetchStreamReader; -}(); + this._loaded += value.byteLength; -var PDFFetchStreamRangeReader = -/*#__PURE__*/ -function () { - function PDFFetchStreamRangeReader(stream, begin, end) { - var _this2 = this; + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded, + total: this._contentLength + }); + } - _classCallCheck(this, PDFFetchStreamRangeReader); + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + +} + +class PDFFetchStreamRangeReader { + constructor(stream, begin, end) { this._stream = stream; this._reader = null; this._loaded = 0; - var source = stream.source; + const source = stream.source; this._withCredentials = source.withCredentials || false; this._readCapability = (0, _util.createPromiseCapability)(); this._isStreamingSupported = !source.disableStream; - if (typeof AbortController !== 'undefined') { + if (typeof AbortController !== "undefined") { this._abortController = new AbortController(); } - this._headers = new Headers(); + this._headers = createHeaders(this._stream.httpHeaders); - for (var property in this._stream.httpHeaders) { - var value = this._stream.httpHeaders[property]; + this._headers.append("Range", `bytes=${begin}-${end - 1}`); - if (typeof value === 'undefined') { - continue; - } - - this._headers.append(property, value); - } - - this._headers.append('Range', "bytes=".concat(begin, "-").concat(end - 1)); - - var url = source.url; - fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) { + const url = source.url; + fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => { if (!(0, _network_utils.validateResponseStatus)(response.status)) { throw (0, _network_utils.createResponseStatusError)(response.status, url); } - _this2._readCapability.resolve(); + this._readCapability.resolve(); - _this2._reader = response.body.getReader(); + this._reader = response.body.getReader(); + }).catch(reason => { + if (reason?.name === "AbortError") { + return; + } + + throw reason; }); this.onProgress = null; } - _createClass(PDFFetchStreamRangeReader, [{ - key: "read", - value: function () { - var _read2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var _ref2, value, done, buffer; + get isStreamingSupported() { + return this._isStreamingSupported; + } - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._readCapability.promise; + async read() { + await this._readCapability.promise; + const { + value, + done + } = await this._reader.read(); - case 2: - _context2.next = 4; - return this._reader.read(); - - case 4: - _ref2 = _context2.sent; - value = _ref2.value; - done = _ref2.done; - - if (!done) { - _context2.next = 9; - break; - } - - return _context2.abrupt("return", { - value: value, - done: done - }); - - case 9: - this._loaded += value.byteLength; - - if (this.onProgress) { - this.onProgress({ - loaded: this._loaded - }); - } - - buffer = new Uint8Array(value).buffer; - return _context2.abrupt("return", { - value: buffer, - done: false - }); - - case 13: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function read() { - return _read2.apply(this, arguments); - } - - return read; - }() - }, { - key: "cancel", - value: function cancel(reason) { - if (this._reader) { - this._reader.cancel(reason); - } - - if (this._abortController) { - this._abortController.abort(); - } + if (done) { + return { + value, + done + }; } - }, { - key: "isStreamingSupported", - get: function get() { - return this._isStreamingSupported; - } - }]); - return PDFFetchStreamRangeReader; -}(); + this._loaded += value.byteLength; + + if (this.onProgress) { + this.onProgress({ + loaded: this._loaded + }); + } + + const buffer = new Uint8Array(value).buffer; + return { + value: buffer, + done: false + }; + } + + cancel(reason) { + if (this._reader) { + this._reader.cancel(reason); + } + + if (this._abortController) { + this._abortController.abort(); + } + } + +} /***/ }) -/******/ ]); +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __w_pdfjs_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +var exports = __webpack_exports__; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "addLinkAttributes", ({ + enumerable: true, + get: function () { + return _display_utils.addLinkAttributes; + } +})); +Object.defineProperty(exports, "getFilenameFromUrl", ({ + enumerable: true, + get: function () { + return _display_utils.getFilenameFromUrl; + } +})); +Object.defineProperty(exports, "getPdfFilenameFromUrl", ({ + enumerable: true, + get: function () { + return _display_utils.getPdfFilenameFromUrl; + } +})); +Object.defineProperty(exports, "isPdfFile", ({ + enumerable: true, + get: function () { + return _display_utils.isPdfFile; + } +})); +Object.defineProperty(exports, "LinkTarget", ({ + enumerable: true, + get: function () { + return _display_utils.LinkTarget; + } +})); +Object.defineProperty(exports, "loadScript", ({ + enumerable: true, + get: function () { + return _display_utils.loadScript; + } +})); +Object.defineProperty(exports, "PDFDateString", ({ + enumerable: true, + get: function () { + return _display_utils.PDFDateString; + } +})); +Object.defineProperty(exports, "RenderingCancelledException", ({ + enumerable: true, + get: function () { + return _display_utils.RenderingCancelledException; + } +})); +Object.defineProperty(exports, "build", ({ + enumerable: true, + get: function () { + return _api.build; + } +})); +Object.defineProperty(exports, "getDocument", ({ + enumerable: true, + get: function () { + return _api.getDocument; + } +})); +Object.defineProperty(exports, "LoopbackPort", ({ + enumerable: true, + get: function () { + return _api.LoopbackPort; + } +})); +Object.defineProperty(exports, "PDFDataRangeTransport", ({ + enumerable: true, + get: function () { + return _api.PDFDataRangeTransport; + } +})); +Object.defineProperty(exports, "PDFWorker", ({ + enumerable: true, + get: function () { + return _api.PDFWorker; + } +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _api.version; + } +})); +Object.defineProperty(exports, "CMapCompressionType", ({ + enumerable: true, + get: function () { + return _util.CMapCompressionType; + } +})); +Object.defineProperty(exports, "createObjectURL", ({ + enumerable: true, + get: function () { + return _util.createObjectURL; + } +})); +Object.defineProperty(exports, "createPromiseCapability", ({ + enumerable: true, + get: function () { + return _util.createPromiseCapability; + } +})); +Object.defineProperty(exports, "createValidAbsoluteUrl", ({ + enumerable: true, + get: function () { + return _util.createValidAbsoluteUrl; + } +})); +Object.defineProperty(exports, "InvalidPDFException", ({ + enumerable: true, + get: function () { + return _util.InvalidPDFException; + } +})); +Object.defineProperty(exports, "MissingPDFException", ({ + enumerable: true, + get: function () { + return _util.MissingPDFException; + } +})); +Object.defineProperty(exports, "OPS", ({ + enumerable: true, + get: function () { + return _util.OPS; + } +})); +Object.defineProperty(exports, "PasswordResponses", ({ + enumerable: true, + get: function () { + return _util.PasswordResponses; + } +})); +Object.defineProperty(exports, "PermissionFlag", ({ + enumerable: true, + get: function () { + return _util.PermissionFlag; + } +})); +Object.defineProperty(exports, "removeNullCharacters", ({ + enumerable: true, + get: function () { + return _util.removeNullCharacters; + } +})); +Object.defineProperty(exports, "shadow", ({ + enumerable: true, + get: function () { + return _util.shadow; + } +})); +Object.defineProperty(exports, "UnexpectedResponseException", ({ + enumerable: true, + get: function () { + return _util.UnexpectedResponseException; + } +})); +Object.defineProperty(exports, "UNSUPPORTED_FEATURES", ({ + enumerable: true, + get: function () { + return _util.UNSUPPORTED_FEATURES; + } +})); +Object.defineProperty(exports, "Util", ({ + enumerable: true, + get: function () { + return _util.Util; + } +})); +Object.defineProperty(exports, "VerbosityLevel", ({ + enumerable: true, + get: function () { + return _util.VerbosityLevel; + } +})); +Object.defineProperty(exports, "AnnotationLayer", ({ + enumerable: true, + get: function () { + return _annotation_layer.AnnotationLayer; + } +})); +Object.defineProperty(exports, "apiCompatibilityParams", ({ + enumerable: true, + get: function () { + return _api_compatibility.apiCompatibilityParams; + } +})); +Object.defineProperty(exports, "GlobalWorkerOptions", ({ + enumerable: true, + get: function () { + return _worker_options.GlobalWorkerOptions; + } +})); +Object.defineProperty(exports, "renderTextLayer", ({ + enumerable: true, + get: function () { + return _text_layer.renderTextLayer; + } +})); +Object.defineProperty(exports, "SVGGraphics", ({ + enumerable: true, + get: function () { + return _svg.SVGGraphics; + } +})); +Object.defineProperty(exports, "XfaLayer", ({ + enumerable: true, + get: function () { + return _xfa_layer.XfaLayer; + } +})); + +var _display_utils = __w_pdfjs_require__(1); + +var _api = __w_pdfjs_require__(5); + +var _util = __w_pdfjs_require__(2); + +var _annotation_layer = __w_pdfjs_require__(17); + +var _api_compatibility = __w_pdfjs_require__(9); + +var _worker_options = __w_pdfjs_require__(12); + +var _text_layer = __w_pdfjs_require__(19); + +var _svg = __w_pdfjs_require__(20); + +var _xfa_layer = __w_pdfjs_require__(21); + +const pdfjsVersion = '2.9.359'; +const pdfjsBuild = 'e667c8cbc'; +{ + const { + isNodeJS + } = __w_pdfjs_require__(4); + + if (isNodeJS) { + const PDFNodeStream = __w_pdfjs_require__(22).PDFNodeStream; + + (0, _api.setPDFNetworkStreamFactory)(params => { + return new PDFNodeStream(params); + }); + } else { + const PDFNetworkStream = __w_pdfjs_require__(25).PDFNetworkStream; + + let PDFFetchStream; + + if ((0, _display_utils.isFetchSupported)()) { + PDFFetchStream = __w_pdfjs_require__(26).PDFFetchStream; + } + + (0, _api.setPDFNetworkStreamFactory)(params => { + if (PDFFetchStream && (0, _display_utils.isValidFetchUrl)(params.url)) { + return new PDFFetchStream(params); + } + + return new PDFNetworkStream(params); + }); + } +} +})(); + +/******/ return __webpack_exports__; +/******/ })() +; }); //# sourceMappingURL=pdf.js.map \ No newline at end of file diff --git a/res/static/misc/pdf-viewer/build/pdf.js.map b/res/static/misc/pdf-viewer/build/pdf.js.map index 7da23f8..3b70151 100644 --- a/res/static/misc/pdf-viewer/build/pdf.js.map +++ b/res/static/misc/pdf-viewer/build/pdf.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/shared/compatibility.js","webpack://pdfjs-dist/build/pdf/src/shared/global_scope.js","webpack://pdfjs-dist/build/pdf/src/shared/is_node.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.starts-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_export.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_global.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_core.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_hide.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ie8-dom-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_descriptors.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_dom-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-primitive.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_property-desc.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_has.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_uid.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_function-to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_library.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_ctx.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_a-function.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-length.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-context.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_cof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_defined.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_fails-is-regexp.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.ends-with.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/array/includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.array.includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-includes.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iobject.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-absolute-index.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_add-to-unscopables.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/array/from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iterators.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-dps.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-keys-internal.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_shared-key.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-bug-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_html.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-to-string-tag.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gpo.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_to-object.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-call.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array-iter.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_create-property.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/core.get-iterator-method.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_classof.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-detect.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-assign.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gops.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-pie.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/math/log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.math.log2.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-nan.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/number/is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.number.is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-integer.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.object.to-string.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/web.dom.iterable.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.array.iterator.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_iter-step.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.promise.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_an-instance.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_for-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_task.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_invoke.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_microtask.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_new-promise-capability.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_perform.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_user-agent.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_promise-resolve.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_redefine-all.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-species.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.finally.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.promise.try.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-map.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-methods.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-create.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_array-species-constructor.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_is-array.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_meta.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection-weak.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_validate-collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_collection.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_inherit-if-required.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-proto.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopd.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-map.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_set-collection-from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.weak-set.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.of.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.weak-set.from.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.code-point-at.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.string.from-code-point.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/es6/symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es6.symbol.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_wks-define.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_enum-keys.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn-ext.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-gopn.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.pad-start.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-pad.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_string-repeat.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/string/pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.string.pad-end.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/fn/object/values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/es7.object.values.js","webpack://pdfjs-dist/build/pdf/node_modules/core-js/modules/_object-to-array.js","webpack://pdfjs-dist/build/pdf/src/shared/streams_polyfill.js","webpack://pdfjs-dist/build/pdf/external/streams/streams-lib.js","webpack://pdfjs-dist/build/pdf/src/shared/url_polyfill.js","webpack://pdfjs-dist/build/pdf/external/url/url-lib.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/regenerator/index.js","webpack://pdfjs-dist/build/pdf/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack://pdfjs-dist/build/pdf/node_modules/webpack/buildin/module.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/api_compatibility.js","webpack://pdfjs-dist/build/pdf/src/display/canvas.js","webpack://pdfjs-dist/build/pdf/src/display/pattern_helper.js","webpack://pdfjs-dist/build/pdf/src/display/worker_options.js","webpack://pdfjs-dist/build/pdf/src/shared/message_handler.js","webpack://pdfjs-dist/build/pdf/src/display/metadata.js","webpack://pdfjs-dist/build/pdf/src/display/xml_parser.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/webgl.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/network_utils.js","webpack://pdfjs-dist/build/pdf/src/display/content_disposition.js","webpack://pdfjs-dist/build/pdf/src/display/network.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_stream.js"],"names":["pdfjsVersion","pdfjsBuild","pdfjsSharedUtil","require","pdfjsDisplayAPI","pdfjsDisplayTextLayer","pdfjsDisplayAnnotationLayer","pdfjsDisplayDisplayUtils","pdfjsDisplaySVG","pdfjsDisplayWorkerOptions","pdfjsDisplayAPICompatibility","isNodeJS","PDFNodeStream","params","PDFNetworkStream","PDFFetchStream","exports","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","NativeImageDecoding","NONE","DECODE","DISPLAY","PermissionFlag","PRINT","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","TextRenderingMode","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","ImageKind","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","AnnotationType","TEXT","LINK","FREETEXT","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","INK","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","AnnotationFlag","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","AnnotationFieldFlag","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","AnnotationBorderStyleType","SOLID","DASHED","BEVELED","INSET","StreamType","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RL","FontType","TYPE1","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","VerbosityLevel","ERRORS","WARNINGS","INFOS","CMapCompressionType","BINARY","STREAM","OPS","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","UNSUPPORTED_FEATURES","unknown","forms","javaScript","smask","shadingPattern","font","PasswordResponses","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","Number","console","unreachable","base","other","url","absoluteUrl","baseUrl","_isValidProtocol","Object","value","enumerable","configurable","writable","PasswordException","UnknownErrorException","InvalidPDFException","MissingPDFException","UnexpectedResponseException","FormatError","AbortException","NullCharactersRegExp","warn","str","assert","bytes","length","MAX_ARGUMENT_COUNT","String","strBuf","i","chunkEnd","Math","chunk","arr","resultLength","ii","item","itemLength","arrayByteLength","pos","data","stringToBytes","x","offset","buffer8","view32","Util","rgbBuf","m1","m2","xt","p","m","yt","d","p1","p2","r","p3","p4","v","transpose","a","b","c","first","second","sx","sy","rect","orderedX","rect1","rect2","orderedY","result","PDFStringTranslateTable","n","code","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","element","ch","capability","isSettled","get","resolve","reject","createObjectURL","digits","forceDataSchema","URL","blob","type","buffer","b1","b2","b3","d1","d2","d3","d4","globalScope","hasDOM","Buffer","Element","div","document","OriginalDOMTokenListAdd","DOMTokenList","OriginalDOMTokenListRemove","token","force","arguments","Array","module","window","global","self","process","$export","toLength","context","STARTS_WITH","$startsWith","startsWith","that","index","search","core","hide","redefine","ctx","PROTOTYPE","IS_FORCED","IS_GLOBAL","IS_STATIC","IS_PROTO","IS_BIND","target","expProto","source","own","out","exp","Function","__g","version","__e","dP","createDesc","object","anObject","IE8_DOM_DEFINE","toPrimitive","P","TypeError","O","Attributes","isObject","it","exec","is","S","val","fn","has","SRC","$toString","TO_STRING","TPL","isFunction","hasOwnProperty","id","px","key","SHARED","store","mode","copyright","aFunction","toInteger","min","ceil","floor","isNaN","isRegExp","defined","cof","MATCH","toString","uid","Symbol","USE_SYMBOL","$exports","re","ENDS_WITH","$endsWith","endsWith","endPosition","len","end","INCLUDES","includes","$includes","toIObject","toAbsoluteIndex","IS_INCLUDES","el","IObject","max","UNSCOPABLES","ArrayProto","$at","done","point","s","l","LIBRARY","Iterators","$iterCreate","setToStringTag","getPrototypeOf","ITERATOR","BUGGY","FF_ITERATOR","KEYS","VALUES","returnThis","getMethod","kind","proto","TAG","NAME","DEF_VALUES","DEFAULT","VALUES_BUG","Base","$native","$default","$entries","$anyNative","IteratorPrototype","methods","values","keys","IS_SET","entries","create","descriptor","Constructor","next","dPs","enumBugKeys","IE_PROTO","Empty","createDict","iframe","lt","gt","iframeDocument","Properties","getKeys","$keys","arrayIndexOf","names","shared","def","stat","toObject","ObjectProto","call","isArrayIter","createProperty","getIterFn","from","C","aLen","mapfn","mapping","iterFn","iterator","step","ret","$defineProperty","classof","ARG","tryGet","SAFE_CLOSING","riter","safe","iter","assign","DESCRIPTORS","gOPS","pIE","$assign","A","B","K","T","getSymbols","isEnum","j","log2","number","isInteger","isFinite","test","$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","anInstance","forOf","speciesConstructor","task","microtask","newPromiseCapabilityModule","perform","userAgent","promiseResolve","PROMISE","versions","v8","$Promise","isNode","empty","newPromiseCapability","newGenericPromiseCapability","USE_NATIVE","promise","FakePromise","isThenable","notify","chain","ok","run","handler","reaction","domain","onHandleUnhandled","exited","then","isReject","onUnhandled","unhandled","isUnhandled","reason","$reject","$resolve","wrapper","_w","_d","Internal","executor","OwnPromiseCapability","Promise","Wrapper","$$reject","all","remaining","$index","alreadyCalled","race","forbiddenField","name","BREAK","RETURN","f","iterable","SPECIES","invoke","html","cel","setTask","clearTask","MessageChannel","Dispatch","counter","queue","ONREADYSTATECHANGE","listener","event","args","defer","channel","port","setTimeout","set","clear","un","macrotask","Observer","flush","parent","head","last","toggle","node","characterData","e","navigator","promiseCapability","src","onFinally","each","meta","weak","validate","NATIVE_WEAK_MAP","IS_IE11","WEAK_MAP","getWeak","isExtensible","uncaughtFrozenStore","$WeakMap","InternalMap","method","asc","IS_MAP","TYPE","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","NO_HOLES","$create","res","isArray","original","META","setDesc","FREEZE","setMeta","w","fastKey","onFreeze","KEY","NEED","redefineAll","createArrayMethod","$has","arrayFind","arrayFindIndex","UncaughtFrozenStore","findUncaughtFrozen","entry","getConstructor","ufstore","fails","$iterDetect","inheritIfRequired","ADDER","fixMethod","IS_WEAK","common","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","setPrototypeOf","check","buggy","gOPD","of","mapFn","cb","WEAK_SET","add","codePointAt","fromCharCode","$fromCodePoint","fromCodePoint","RangeError","$fails","wksExt","wksDefine","enumKeys","_create","gOPNExt","$GOPD","$GOPS","$DP","gOPN","$Symbol","$JSON","_stringify","TO_PRIMITIVE","SymbolRegistry","AllSymbols","OPSymbols","QObject","setter","setSymbolDesc","protoDesc","wrap","sym","isSymbol","D","$defineProperties","$propertyIsEnumerable","E","$getOwnPropertyDescriptor","$getOwnPropertyNames","$getOwnPropertySymbols","IS_OP","tag","$set","es6Symbols","wellKnownSymbols","k","keyFor","useSetter","useSimple","defineProperty","defineProperties","getOwnPropertyDescriptor","getOwnPropertyNames","getOwnPropertySymbols","FAILS_ON_PRIMITIVES","stringify","$replacer","replacer","symbols","windowNames","getWindowNames","hiddenKeys","$pad","WEBKIT_BUG","padStart","repeat","stringLength","fillStr","fillString","intMaxLength","fillLen","stringFiller","left","padEnd","$values","isReadableStreamSupported","start","controller","installedModules","modules","__w_pdfjs_require__","getter","_typeof","obj","_require","elements","IsPropertyKey","Call","F","highWaterMark","size","message","AssertionError","Error","rethrowAssertionErrorRejection","_createClass","props","InvokeOrNoop","PromiseInvokeOrNoop","ValidateAndNormalizeQueuingStrategy","typeIsObject","_require2","_require3","DequeueValue","EnqueueValueWithSize","PeekQueueValue","ResetQueue","WritableStream","underlyingSink","_ref","_ref$highWaterMark","_classCallCheck","IsWritableStream","streamBrandCheckException","IsWritableStreamLocked","WritableStreamAbort","AcquireWritableStreamDefaultWriter","WritableStreamDefaultControllerError","WritableStreamDefaultWriterCloseWithErrorPropagation","WritableStreamDefaultWriterRelease","WritableStreamDefaultWriterWrite","WritableStreamCloseQueuedOrInFlight","stream","state","error","wasAlreadyErroring","_resolve","_reject","_reason","_wasAlreadyErroring","WritableStreamStartErroring","writeRequest","WritableStreamFinishErroring","writer","WritableStreamDefaultWriterEnsureReadyPromiseRejected","WritableStreamHasOperationMarkedInFlight","storedError","WritableStreamRejectCloseAndClosedPromiseIfNeeded","abortRequest","WritableStreamDealWithRejection","defaultWriterClosedPromiseResolve","defaultWriterClosedPromiseReject","backpressure","defaultWriterReadyPromiseReset","defaultWriterReadyPromiseResolve","WritableStreamDefaultWriter","defaultWriterReadyPromiseInitialize","defaultWriterReadyPromiseInitializeAsResolved","defaultWriterClosedPromiseInitialize","defaultWriterReadyPromiseInitializeAsRejected","defaultWriterClosedPromiseInitializeAsResolved","defaultWriterClosedPromiseInitializeAsRejected","IsWritableStreamDefaultWriter","defaultWriterBrandCheckException","defaultWriterLockException","WritableStreamDefaultWriterAbort","WritableStreamDefaultWriterClose","WritableStreamDefaultWriterGetDesiredSize","closeRequest","WritableStreamDefaultControllerClose","defaultWriterClosedPromiseResetToRejected","defaultWriterReadyPromiseReject","defaultWriterReadyPromiseResetToRejected","WritableStreamDefaultControllerGetDesiredSize","releasedError","WritableStreamDefaultWriterEnsureClosedPromiseRejected","chunkSize","WritableStreamDefaultControllerGetChunkSize","WritableStreamAddWriteRequest","WritableStreamDefaultControllerWrite","WritableStreamDefaultController","normalizedStrategy","WritableStreamDefaultControllerGetBackpressure","WritableStreamUpdateBackpressure","IsWritableStreamDefaultController","_this","startResult","WritableStreamDefaultControllerAdvanceQueueIfNeeded","strategySize","WritableStreamDefaultControllerErrorIfNeeded","writeRecord","WritableStreamDefaultControllerProcessClose","WritableStreamDefaultControllerProcessWrite","WritableStreamMarkCloseRequestInFlight","sinkClosePromise","WritableStreamFinishInFlightClose","WritableStreamFinishInFlightCloseWithError","WritableStreamMarkFirstWriteRequestInFlight","sinkWritePromise","WritableStreamFinishInFlightWrite","WritableStreamFinishInFlightWriteWithError","desiredSize","IsFiniteNonNegativeNumber","container","pair","ArrayBufferCopy","CreateIterResultObject","TransferArrayBuffer","ValidateAndNormalizeHighWaterMark","createArrayFromList","createDataProperty","_require4","_require5","ReadableStream","underlyingSource","typeString","IsReadableStream","IsReadableStreamLocked","ReadableStreamCancel","_ref2","AcquireReadableStreamDefaultReader","AcquireReadableStreamBYOBReader","_ref3","readable","ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue","_ref4","preventClose","preventAbort","preventCancel","Boolean","reader","shuttingDown","currentWrite","_ref5","isOrBecomesErrored","shutdownWithAction","shutdown","isOrBecomesClosed","dest","destClosed","pipeLoop","oldCurrentWrite","waitForWritesToFinish","action","doTheRest","finalize","ReadableStreamReaderGenericRelease","branches","ReadableStreamTee","IsReadableStreamDisturbed","ReadableStreamDefaultControllerClose","ReadableStreamDefaultControllerEnqueue","ReadableStreamDefaultControllerError","ReadableStreamDefaultControllerGetDesiredSize","teeState","closedOrErrored","canceled1","canceled2","reason1","reason2","pull","create_ReadableStreamTeePullFunction","cancel1","create_ReadableStreamTeeBranch1CancelFunction","cancel2","create_ReadableStreamTeeBranch2CancelFunction","underlyingSource1","branch1Stream","underlyingSource2","branch2Stream","branch1","branch2","value1","value2","compositeReason","cancelResult","IsReadableStreamBYOBReader","readIntoRequest","IsReadableStreamDefaultReader","readRequest","ReadableStreamClose","sourceCancelPromise","defaultReaderClosedPromiseResolve","_i","defaultReaderClosedPromiseReject","ReadableStreamDefaultReader","ReadableStreamReaderGenericInitialize","defaultReaderBrandCheckException","readerLockException","ReadableStreamReaderGenericCancel","ReadableStreamDefaultReaderRead","ReadableStreamBYOBReader","IsReadableByteStreamController","byobReaderBrandCheckException","ArrayBuffer","view","ReadableStreamBYOBReaderRead","defaultReaderClosedPromiseInitialize","defaultReaderClosedPromiseInitializeAsResolved","defaultReaderClosedPromiseInitializeAsRejected","defaultReaderClosedPromiseResetToRejected","ReadableByteStreamControllerPullInto","ReadableStreamDefaultController","ReadableStreamDefaultControllerCallPullIfNeeded","ReadableStreamDefaultControllerErrorIfNeeded","IsReadableStreamDefaultController","defaultControllerBrandCheckException","pendingPromise","ReadableStreamAddReadRequest","shouldPull","ReadableStreamDefaultControllerShouldCallPull","pullPromise","ReadableStreamGetNumReadRequests","ReadableStreamFulfillReadRequest","ReadableStreamError","ReadableStreamBYOBRequest","IsReadableStreamBYOBRequest","byobRequestBrandCheckException","ReadableByteStreamControllerRespond","ReadableByteStreamControllerRespondWithNewView","ReadableByteStreamController","ReadableByteStreamControllerClearPendingPullIntos","autoAllocateChunkSize","underlyingByteSource","ReadableByteStreamControllerCallPullIfNeeded","ReadableByteStreamControllerError","byteStreamControllerBrandCheckException","ReadableByteStreamControllerClose","ReadableByteStreamControllerEnqueue","firstDescriptor","ReadableStreamHasDefaultReader","ReadableByteStreamControllerHandleQueueDrain","pullIntoDescriptor","byteOffset","byteLength","bytesFilled","elementSize","ctor","readerType","ReadableByteStreamControllerGetDesiredSize","ReadableByteStreamControllerShouldCallPull","ReadableByteStreamControllerInvalidateBYOBRequest","filledView","ReadableByteStreamControllerConvertPullIntoDescriptor","ReadableStreamFulfillReadIntoRequest","currentAlignedBytes","maxBytesToCopy","maxBytesFilled","maxAlignedBytes","totalBytesToCopyRemaining","ready","headOfQueue","bytesToCopy","destStart","ReadableByteStreamControllerFillHeadPullIntoDescriptor","ReadableByteStreamControllerFillPullIntoDescriptorFromQueue","ReadableByteStreamControllerShiftPendingPullInto","ReadableByteStreamControllerCommitPullIntoDescriptor","ReadableStreamAddReadIntoRequest","emptyView","ReadableStreamHasBYOBReader","ReadableStreamGetNumReadIntoRequests","remainderSize","remainder","ReadableByteStreamControllerEnqueueChunkToQueue","ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue","bytesWritten","ReadableByteStreamControllerRespondInClosedState","ReadableByteStreamControllerRespondInReadableState","firstPendingPullInto","transferredBuffer","transferredView","ReadableByteStreamControllerRespondInternal","transformStream","readableStream","writableStream","PromiseInvokeOrPerformFallback","TransformStreamCloseReadableInternal","TransformStreamErrorIfNeeded","maybeBackpressure","TransformStreamSetBackpressure","TransformStreamErrorInternal","resolution","transformStreamController","TransformStreamEnqueueToReadable","transformer","transformPromise","TransformStreamReadableReadyPromise","TransformStreamSink","TransformStreamTransform","flushPromise","TransformStreamSource","TransformStreamDefaultController","IsTransformStream","IsTransformStreamDefaultController","TransformStreamCloseReadable","TransformStreamError","readableController","TransformStream","readableStrategy","writableStrategy","startPromise_resolve","startPromise","sink","isURLSupported","u","PolyfillURL","OriginalURL","relative","relativePathDotMapping","h","invalid","unicode","ALPHA","ALPHANUMERIC","errors","stateOverride","cursor","seenAt","seenBracket","input","err","isRelativeScheme","percentEscape","nextC","nextNextC","cp","tempC","IDNAToASCII","temp","parseInt","tmp","percentEscapeQuery","parse","JURL","authority","host","DEFAULT_RANGE_CHUNK_SIZE","isWorkerDisabled","fakeWorkerFilesLoader","useRequireEnsure","__non_webpack_require__","requirejs","fallbackWorkerSrc","dynamicLoaderSupported","worker","pdfjsFilePath","createPDFNetworkStream","isArrayBuffer","range","rangeTransport","pdfBytes","NativeImageDecoderValues","apiCompatibilityParams","setVerbosityLevel","workerParams","postMessageTransfers","GlobalWorkerOptions","PDFWorker","docId","networkStream","initialData","progressiveDone","disableRange","disableStream","httpHeaders","withCredentials","rangeChunkSize","messageHandler","transport","pdfDataRangeTransport","apiVersion","password","disableAutoFetch","maxImageSize","disableFontFace","disableCreateObjectURL","docBaseUrl","nativeImageDecoderSupport","ignoreErrors","isEvalSupported","PDFDocumentLoadingTask","nextDocumentId","constructor","transportDestroyed","deprecated","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","onDataProgress","onDataProgressiveRead","requestDataRange","getPage","getPageIndex","getDestination","pdfBug","getViewport","rotation","dontFlip","scale","viewBox","getAnnotations","intent","enableWebGL","renderInteractiveForms","imageLayer","canvasFactory","background","render","stats","renderingIntent","canvasFactoryInstance","webGLContext","enable","intentState","fnArray","argsArray","lastChunk","pageIndex","complete","internalRenderTask","callback","canvasContext","viewport","objs","commonObjs","operatorList","pageNumber","useRequestAnimationFrame","renderTask","transparency","opListTask","streamTextContent","normalizeWhitespace","disableCombineTextItems","TEXT_CONTENT_CHUNK_SIZE","combineTextItems","textContent","getTextContent","pump","items","styles","waitOn","renderCompleted","resetStats","cleanup","_tryCleanup","_startRenderPage","_renderPageChunk","operatorListChunk","postMessage","cloned","transferable","transfers","desc","cloneValue","addEventListener","removeEventListener","pdfWorkerPorts","nextFakeWorkerId","fakeWorkerFilesLoadedCapability","mainWorkerMessageHandler","getMainThreadWorkerMessageHandler","loader","getWorkerSrc","_initializeFromPort","workerSrc","isSameOrigin","createCDNWrapper","terminateEarly","onWorkerError","sendTest","testObj","info","setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","loadingTask","onUnsupportedFeature","isCompressed","page","terminated","evt","loaded","total","headersCapability","fullReader","isStreamingSupported","isRangeSupported","contentLength","rangeReader","pdfInfo","updatePassword","exception","exportedError","exportedData","fontRegistry","registerFont","pageProxy","img","releaseImageResources","MAX_IMAGE_SIZE_TO_STORE","imageData","components","width","rgbaLength","buf","tmpCanvas","tmpCtx","height","_onUnsupportedFeature","pageInfo","ref","results","metadata","contentDispositionFilename","_ensureObj","resolved","InternalRenderTask","canvasInRendering","initializeGraphics","cancel","build","runtime","Op","hasOwn","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","tryLocsList","makeInvokeMethod","arg","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","genFun","__await","record","tryCatch","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","doneResult","delegate","delegateResult","maybeInvokeDelegate","tryLoc","locs","iteratorMethod","Context","reset","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","finish","resetTryEntry","thrown","delegateYield","resultName","nextLoc","regeneratorRuntime","DEFAULT_LINK_REL","SVG_NS","canvas","canvasAndContext","destroy","compressionType","isFetchSupported","isValidFetchUrl","response","cMapData","request","XMLHttpRequest","svg","createElement","offsetX","offsetY","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","RenderingCancelledException","LinkTarget","SELF","BLANK","PARENT","TOP","LinkTargetStringMap","link","removeNullCharacters","LinkTargetValues","targetIndex","anchor","query","time","Date","timeEnd","longest","duration","Response","protocol","script","isString","pdfDateStringRegex","matches","year","month","day","hour","minute","universalTimeRelation","offsetHour","offsetMinute","addNativeFontFace","insertRule","styleElement","styleSheet","nativeFontFace","featureId","rule","_queueLoadingCallback","_prepareFontLoadEvent","FontLoader","requests","nextRequestId","otherRequest","chunk1","chunk2","called","isFontReady","loadTestFontId","COMMENT_OFFSET","spliceString","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","int32","string32","btoa","fonts","span","supported","shadow","getLoadTestFont","atob","IsEvalSupportedCached","translatedData","bytesToString","getPathGenerator","cmds","js","current","compatibilityParams","isIE","isIOSChrome","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","MIN_WIDTH_FACTOR","COMPILE_TYPE3_GLYPHS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","IsLittleEndianCached","ad_bc","bc_ad","old","prev","cosValue","sinValue","CachedCanvases","getCanvas","canvasEntry","addContextCurrentTransform","POINT_TO_PROCESS_LIMIT","imgData","width1","points","POINT_TYPES","lineSize","data0","mask","elem","count","j0","sum","steps","outlines","coords","p0","pp","drawOutline","o","jj","CanvasExtraState","setCurrentPoint","CanvasGraphics","EXECUTION_TIME","EXECUTION_STEPS","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","thisChunkHeight","destPos","srcDiff","kEnd","kEndUnrolled","srcByte","elemsInThisChunk","properties","property","sourceCtx","destCtx","alpha","alpha_","r0","g0","b0","maskData","transferMap","layerData","y","hasBackdrop","backdrop","subtype","composeFn","PIXELS_TO_PROCESS","row","chunkHeight","maskCtx","layerCtx","composeSMaskBackdrop","composed","layer","genericComposeSMask","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","beginDrawing","transparentCanvas","resetCtxToDefault","executeOperatorList","executionStartIdx","argsArrayLen","chunkOperations","endTime","stepper","fnId","objsPool","depObjId","continueCallback","endDrawing","states","beginSMaskGroup","activeSMask","drawnWidth","drawnHeight","cacheId","scratchCanvas","currentCtx","currentTransform","groupCtx","copyCtxState","suspendSMaskGroup","composeSMask","deltaTransform","resumeSMaskGroup","endSMaskGroup","ops","xw","yh","consumePath","strokeColor","fillColor","isPatternFill","needRestore","paths","path","fontObj","bold","italic","typeface","browserFontSize","paintChar","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","enabled","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","glyphs","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","patternTransform","lineWidth","glyph","isNum","restoreNeeded","spacing","character","accent","vmetric","vx","vy","scaledX","scaledY","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","showType3Text","fontMatrix","isTextInvisible","spacingLength","transformed","urx","ury","getColorN_Pattern","IR","color","baseTransform","canvasGraphicsFactory","createCanvasGraphics","getShadingPatternFromIR","inv","bl","br","ul","ur","x0","y0","x1","y1","matrix","bbox","group","bounds","canvasBounds","scaleX","scaleY","startTransformInverse","domImage","position","objId","top","maskCanvas","putBinaryImageMask","positions","images","image","map","widthScale","heightScale","imgToPaint","putBinaryImageData","paintWidth","paintHeight","tmpCanvasId","newWidth","newHeight","getSinglePixelWidth","inverse","getCanvasPosition","ShadingIRs","fromIR","raw","colorStops","r1","getPattern","grad","createMeshCanvas","colors","rowSize","c1","c2","c3","x2","y2","x3","y3","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","ps","figure","cs","verticesPerRow","rows","cols","q","drawTriangle","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","combinesScale","paddedWidth","paddedHeight","backgroundColor","figures","cachedCanvases","drawFigure","owner","matrixScale","temporaryPatternCanvas","shadingIR","TilingPattern","PaintType","COLORED","UNCOLORED","createPatternCanvas","xstep","ystep","paintType","tilingType","curMatrixScale","combinedScale","dimx","dimy","graphics","getSizeAndScale","maxSize","clipBbox","bboxWidth","bboxHeight","setFillAndStrokeStyleToContext","cssColor","thisArg","callbacksCapabilities","ah","callbackId","wrapReason","sourceName","targetName","comObj","isReply","makeReasonSerializable","MessageHandler","on","send","sendWithPromise","sendWithStream","streamId","startCapability","startCall","isClosed","pullCapability","cancelCapability","_createStreamSink","sendStreamRequest","success","streamSink","enqueue","lastDesiredSize","close","sinkCapability","onPull","onCancel","isCancelled","resolveCall","_processStreamMessage","sendStreamResponse","deleteStreamController","resolveOrReject","parser","xmlDocument","_repair","chars","_parse","rdf","nodeName","children","XMLParserErrorCode","NoError","EndOfDocument","UnterminatedCdat","UnterminatedXmlDeclaration","UnterminatedDoctypeDeclaration","UnterminatedComment","MalformedElement","OutOfMemory","UnterminatedAttributeValue","UnterminatedElement","ElementNeverBegun","isWhitespace","_resolveEntities","entity","_parseContent","attributes","skipWs","attrName","attrValue","attrEndChar","attrEndIndex","parsed","_parseProcessingInstruction","attrStart","parseXml","ch2","pi","q2","complexDoctype","doctypeContent","content","text","onResolveEntity","onPi","onComment","onCdata","onDoctype","onText","onBeginElement","onEndElement","onError","childNodes","child","parseFromString","documentElement","isWhitespaceString","lastElement","begin","_onReceiveData","found","_onProgress","firstReader","_removeRangeReader","queuedChunks","getRangeReader","cancelAllRequests","readers","_enqueue","requestCapability","requestsCapability","WebGLUtils","drawFigures","shader","gl","compiled","errorMsg","loadShader","program","shaders","linked","texture","currentCanvas","currentGL","premultipliedalpha","smaskVertexShaderCode","smaskFragmentShaderCode","smaskCache","generateGL","vertexShader","createVertexShader","fragmentShader","createFragmentShader","cache","texCoordLocation","texLayerLocation","texMaskLocation","texCoordBuffer","initSmaskGL","createTexture","maskTexture","figuresVertexShaderCode","figuresFragmentShaderCode","figuresCache","initFiguresGL","coordsMap","colorsMap","pIndex","cIndex","col","coordsBuffer","colorsBuffer","tryInitGL","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","NonWhitespaceRegexp","styleBuf","textDiv","textDivProperties","style","angle","canvasWidth","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","isAllWhitespace","geom","tx","fontHeight","fontAscent","angleCos","angleSin","divWidth","divHeight","right","bottom","textDivs","textDivsLength","expanded","expandBounds","divProperties","ts","t","findPositiveMin","boxScale","box","x1New","x2New","expandBoundsLTR","boxes","fakeBoundary","horizon","boundary","maxXNew","horizonPart","affectedBoundary","xNew","changedHorizon","lastBoundary","useBoundary","used","textContentItemsStr","TextLayerRenderTask","clearTimeout","_processItems","appendText","_layoutText","textLayerFrag","fontFamily","_render","styleCache","textItems","textStyles","expandTextDivs","expand","padding","renderParameters","textContentStream","enhanceTextSelection","parameters","fieldType","isRenderable","ignoreBorder","_createContainer","horizontalRadius","verticalRadius","radius","_createPopup","trigger","popupElement","title","modificationDate","contents","hideWrapper","popup","addLinkAttributes","linkService","rel","_bindLink","_bindNamedAction","JSON","TEXT_ALIGNMENT","fieldWidth","combWidth","_setTextStyle","fallbackName","selectElement","option","optionElement","IGNORE_TYPES","selector","parentElement","parentLeft","parseFloat","parentWidth","BACKGROUND_ENLIGHT","g","dateObject","PDFDateString","date","_formatContents","lines","line","pin","_show","unpin","_hide","borderWidth","square","circle","vertices","polyline","inkLists","inkList","getFilenameFromUrl","stringToPDFString","filename","downloadManager","imageResourcesPath","svgFactory","SVGGraphics","opTree","opListElement","pf","SVG_DEFAULTS","fontStyle","fontWeight","XML_NS","XLINK_NS","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc","body","crc32","deflateSyncUncompressed","output","level","literals","maxBlockLength","deflateBlocks","idat","adler","adler32","colorType","bitDepth","offsetLiterals","offsetBytes","ihdr","deflateSync","pngLength","writePngChunk","encode","clipCount","maskCount","shadingCount","loadDependencies","transformMatrix","getSVG","svgElement","convertOpList","operatorIdMapping","opList","opListToTree","executeOpTree","opTreeElement","lineWidthScale","textMatrix","pm","addFontStyle","details","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeTilingPattern","tilingId","txstep","tystep","tiling","tx1","ty1","_makeShadingPattern","shadingId","point0","point1","gradient","focalPoint","circlePoint","focalRadius","circleRadius","colorStop","op","clipId","clipPath","clipElement","_setStrokeAttributes","dashArray","imgObj","imgEl","imgSrc","cliprect","_initialize","definitions","rootGroup","clipGroup","fs","http","https","fileUriRegex","parsedUrl","parseUrl","_error","_setReadableStream","auth","headers","handleResponse","getResponseHeader","isHttp","suggestedLength","extractFilenameFromHeader","createRequestOptions","returnValues","allowRangeRequests","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","status","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","decoder","fatal","textdecode","parts","part","quotindex","encodingend","extvalue","encoding","langvalue","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","xhr","array","requestRange","listeners","requestFull","xhrId","pendingRequest","onProgress","onStateChange","xhrStatus","ok_response_on_range_request","getArrayBuffer","rangeHeader","getRequestXhr","isPendingRequest","_onRangeRequestReaderClosed","onHeadersReceived","onDone","manager","fullRequestXhrId","fullRequestXhr","_onDone","_onError","createResponseStatusError","signal","abortController","credentials","redirect","fetch","createFetchOptions","validateResponseStatus"],"mappings":"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","file":"pdf.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __w_pdfjs_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__w_pdfjs_require__.m = modules;\n\n \t// expose the module cache\n \t__w_pdfjs_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__w_pdfjs_require__.d = function(exports, name, getter) {\n \t\tif(!__w_pdfjs_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__w_pdfjs_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__w_pdfjs_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __w_pdfjs_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__w_pdfjs_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__w_pdfjs_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__w_pdfjs_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__w_pdfjs_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __w_pdfjs_require__(__w_pdfjs_require__.s = 0);\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-unused-vars */\n\n'use strict';\n\nvar pdfjsVersion =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_VERSION') : void 0;\nvar pdfjsBuild =\n typeof PDFJSDev !== 'undefined' ? PDFJSDev.eval('BUNDLE_BUILD') : void 0;\n\nvar pdfjsSharedUtil = require('./shared/util.js');\nvar pdfjsDisplayAPI = require('./display/api.js');\nvar pdfjsDisplayTextLayer = require('./display/text_layer.js');\nvar pdfjsDisplayAnnotationLayer = require('./display/annotation_layer.js');\nvar pdfjsDisplayDisplayUtils = require('./display/display_utils.js');\nvar pdfjsDisplaySVG = require('./display/svg.js');\nlet pdfjsDisplayWorkerOptions = require('./display/worker_options.js');\nlet pdfjsDisplayAPICompatibility = require('./display/api_compatibility.js');\n\nif (typeof PDFJSDev === 'undefined' || PDFJSDev.test('GENERIC')) {\n const isNodeJS = require('./shared/is_node.js');\n if (isNodeJS()) {\n let PDFNodeStream = require('./display/node_stream.js').PDFNodeStream;\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n return new PDFNodeStream(params);\n });\n } else {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n let PDFFetchStream;\n if (pdfjsDisplayDisplayUtils.isFetchSupported()) {\n PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n if (PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\n return new PDFNetworkStream(params);\n });\n }\n} else if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n let PDFNetworkStream = require('./display/network.js').PDFNetworkStream;\n let PDFFetchStream;\n let isChromeWithFetchCredentials = function() {\n // fetch does not include credentials until Chrome 61.0.3138.0 and later.\n // https://chromium.googlesource.com/chromium/src/+/2e231cf052ca5e68e22baf0008ac9e5e29121707\n try {\n // Indexed properties on window are read-only in Chrome 61.0.3151.0+\n // https://chromium.googlesource.com/chromium/src.git/+/58ab4a971b06dec13e4edf9de8382ca6847f6190\n window[999] = 123; // should throw. Note: JS strict mode MUST be enabled.\n delete window[999];\n return false;\n } catch (e) {\n return true;\n }\n };\n if (pdfjsDisplayDisplayUtils.isFetchSupported() &&\n isChromeWithFetchCredentials()) {\n PDFFetchStream = require('./display/fetch_stream.js').PDFFetchStream;\n }\n pdfjsDisplayAPI.setPDFNetworkStreamFactory((params) => {\n if (PDFFetchStream &&\n pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {\n return new PDFFetchStream(params);\n }\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 =\n 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 =\n pdfjsDisplayDisplayUtils.RenderingCancelledException;\nexports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;\nexports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;\nexports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;\nexports.loadScript = pdfjsDisplayDisplayUtils.loadScript;\nexports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;\nexports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;\nexports.apiCompatibilityParams =\n pdfjsDisplayAPICompatibility.apiCompatibilityParams;\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport './compatibility';\nimport { ReadableStream } from './streams_polyfill';\nimport { URL } from './url_polyfill';\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst NativeImageDecoding = {\n NONE: 'none',\n DECODE: 'decode',\n DISPLAY: 'display',\n};\n\n// Permission flags from Table 22, Section 7.6.3.2 of the PDF specification.\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800,\n};\n\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4,\n};\n\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3,\n};\n\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26,\n};\n\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200,\n};\n\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000,\n};\n\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5,\n};\n\nconst StreamType = {\n UNKNOWN: 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};\n\nconst 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};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2,\n};\n\n// All the possible operations for an operator list.\nconst OPS = {\n // Intentionally start from 1 so it is easy to spot bad operators that will be\n // 0's.\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91,\n};\n\nconst UNSUPPORTED_FEATURES = {\n unknown: 'unknown',\n forms: 'forms',\n javaScript: 'javaScript',\n smask: 'smask',\n shadingPattern: 'shadingPattern',\n font: 'font',\n};\n\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2,\n};\n\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\n// A notice for devs. These are good for things that are helpful to devs, such\n// as warning that Workers were disabled, which is important to devs but not\n// end users.\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log('Info: ' + msg);\n }\n}\n\n// Non-fatal warnings.\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log('Warning: ' + msg);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\n// Checks if URLs have the same origin. For non-HTTP based URLs, returns false.\nfunction isSameOrigin(baseUrl, otherUrl) {\n try {\n var base = new URL(baseUrl);\n if (!base.origin || base.origin === 'null') {\n return false; // non-HTTP url\n }\n } catch (e) {\n return false;\n }\n\n var other = new URL(otherUrl, base);\n return base.origin === other.origin;\n}\n\n// Checks if URLs use one of the whitelisted protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case 'http:':\n case 'https:':\n case 'ftp:':\n case 'mailto:':\n case 'tel:':\n return true;\n default:\n return false;\n }\n}\n\n/**\n * Attempts to create a valid absolute URL.\n *\n * @param {URL|string} url - An absolute, or relative, URL.\n * @param {URL|string} baseUrl - An absolute URL.\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl) {\n if (!url) {\n return null;\n }\n try {\n var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) { /* `new URL()` will throw on incorrect data. */ }\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, { value,\n enumerable: true,\n configurable: true,\n writable: false, });\n return value;\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\n PasswordException.prototype = new Error();\n PasswordException.constructor = PasswordException;\n\n return PasswordException;\n})();\n\nvar UnknownErrorException = (function UnknownErrorExceptionClosure() {\n function UnknownErrorException(msg, details) {\n this.name = 'UnknownErrorException';\n this.message = msg;\n this.details = details;\n }\n\n UnknownErrorException.prototype = new Error();\n UnknownErrorException.constructor = UnknownErrorException;\n\n return UnknownErrorException;\n})();\n\nvar InvalidPDFException = (function InvalidPDFExceptionClosure() {\n function InvalidPDFException(msg) {\n this.name = 'InvalidPDFException';\n this.message = msg;\n }\n\n InvalidPDFException.prototype = new Error();\n InvalidPDFException.constructor = InvalidPDFException;\n\n return InvalidPDFException;\n})();\n\nvar MissingPDFException = (function MissingPDFExceptionClosure() {\n function MissingPDFException(msg) {\n this.name = 'MissingPDFException';\n this.message = msg;\n }\n\n MissingPDFException.prototype = new Error();\n MissingPDFException.constructor = MissingPDFException;\n\n return MissingPDFException;\n})();\n\nvar UnexpectedResponseException =\n (function UnexpectedResponseExceptionClosure() {\n function UnexpectedResponseException(msg, status) {\n this.name = 'UnexpectedResponseException';\n this.message = msg;\n this.status = status;\n }\n\n UnexpectedResponseException.prototype = new Error();\n UnexpectedResponseException.constructor = UnexpectedResponseException;\n\n return UnexpectedResponseException;\n})();\n\n/**\n * Error caused during parsing PDF data.\n */\nlet FormatError = (function FormatErrorClosure() {\n function FormatError(msg) {\n this.message = msg;\n }\n\n FormatError.prototype = new Error();\n FormatError.prototype.name = 'FormatError';\n FormatError.constructor = FormatError;\n\n return FormatError;\n})();\n\n/**\n * Error used to indicate task cancellation.\n */\nlet AbortException = (function AbortExceptionClosure() {\n function AbortException(msg) {\n this.name = 'AbortException';\n this.message = msg;\n }\n\n AbortException.prototype = new Error();\n AbortException.constructor = AbortException;\n\n return AbortException;\n})();\n\nvar NullCharactersRegExp = /\\x00/g;\n\nfunction removeNullCharacters(str) {\n if (typeof str !== 'string') {\n warn('The argument for removeNullCharacters must be a string.');\n return str;\n }\n return str.replace(NullCharactersRegExp, '');\n}\n\nfunction bytesToString(bytes) {\n assert(bytes !== null && typeof bytes === 'object' &&\n 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}\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}\n\n/**\n * Gets length of the array (Array, Uint8Array, or string) in bytes.\n * @param {Array|Uint8Array|string} arr\n * @returns {number}\n */\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n assert(arr.byteLength !== undefined);\n return arr.byteLength;\n}\n\n/**\n * Combines array items (arrays) into single Uint8Array object.\n * @param {Array} arr - the array of the arrays (Array, Uint8Array, or string).\n * @returns {Uint8Array}\n */\nfunction arraysToBytes(arr) {\n // Shortcut: if first and only item is Uint8Array, return it.\n if (arr.length === 1 && (arr[0] instanceof Uint8Array)) {\n return arr[0];\n }\n var resultLength = 0;\n var i, 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}\n\nfunction string32(value) {\n return String.fromCharCode((value >> 24) & 0xff, (value >> 16) & 0xff,\n (value >> 8) & 0xff, value & 0xff);\n}\n\n// Calculate the base 2 logarithm of the number `x`. This differs from the\n// native function in the sense that it returns the ceiling value and that it\n// returns 0 instead of `Infinity`/`NaN` for `x` values smaller than/equal to 0.\nfunction log2(x) {\n if (x <= 0) {\n return 0;\n }\n return Math.ceil(Math.log2(x));\n}\n\nfunction readInt8(data, start) {\n return (data[start] << 24) >> 24;\n}\n\nfunction readUint16(data, offset) {\n return (data[offset] << 8) | data[offset + 1];\n}\n\nfunction readUint32(data, offset) {\n return ((data[offset] << 24) | (data[offset + 1] << 16) |\n (data[offset + 2] << 8) | data[offset + 3]) >>> 0;\n}\n\n// Lazy test the endianness of the platform\n// NOTE: This will be 'true' for simulated TypedArrays\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}\n\n// Checks if it's possible to eval JS expressions.\nfunction isEvalSupported() {\n try {\n new Function(''); // eslint-disable-line no-new, no-new-func\n return true;\n } catch (e) {\n return false;\n }\n}\n\nvar Util = (function UtilClosure() {\n function Util() {}\n\n var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];\n\n // makeCssRgb() can be called thousands of times. Using |rgbBuf| avoids\n // creating many intermediate strings.\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\n // Concatenates two transformation matrices together and returns the result.\n Util.transform = function Util_transform(m1, m2) {\n return [\n m1[0] * m2[0] + m1[2] * m2[1],\n m1[1] * m2[0] + m1[3] * m2[1],\n m1[0] * m2[2] + m1[2] * m2[3],\n m1[1] * m2[2] + m1[3] * m2[3],\n m1[0] * m2[4] + m1[2] * m2[5] + m1[4],\n m1[1] * m2[4] + m1[3] * m2[5] + m1[5]\n ];\n };\n\n // For 2d affine transforms\n 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\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\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n Util.getAxialAlignedBoundingBox =\n function Util_getAxialAlignedBoundingBox(r, m) {\n\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 [\n Math.min(p1[0], p2[0], p3[0], p4[0]),\n Math.min(p1[1], p2[1], p3[1], p4[1]),\n Math.max(p1[0], p2[0], p3[0], p4[0]),\n Math.max(p1[1], p2[1], p3[1], p4[1])\n ];\n };\n\n 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,\n (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n };\n\n // Apply a generic 3d matrix M on a 3-vector v:\n // | a b c | | X |\n // | d e f | x | Y |\n // | g h i | | Z |\n // M is assumed to be serialized as [a,b,c,d,e,f,g,h,i],\n // with v as [X,Y,Z]\n Util.apply3dTransform = function Util_apply3dTransform(m, v) {\n return [\n m[0] * v[0] + m[1] * v[1] + m[2] * v[2],\n m[3] * v[0] + m[4] * v[1] + m[5] * v[2],\n m[6] * v[0] + m[7] * v[1] + m[8] * v[2]\n ];\n };\n\n // This calculation uses Singular Value Decomposition.\n // The SVD can be represented with formula A = USV. We are interested in the\n // matrix S here because it represents the scale values.\n Util.singularValueDecompose2dScale =\n function Util_singularValueDecompose2dScale(m) {\n\n var transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\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\n // Solve the second degree polynomial to get roots.\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\n // Scale values are the square roots of the eigenvalues.\n return [Math.sqrt(sx), Math.sqrt(sy)];\n };\n\n // Normalize rectangle rect=[x1, y1, x2, y2] so that (x1,y1) < (x2,y2)\n // For coordinate systems whose origin lies in the bottom-left, this\n // means normalization to (BL,TR) ordering. For systems with origin in the\n // top-left, this means (TL,BR) ordering.\n Util.normalizeRect = function Util_normalizeRect(rect) {\n var r = rect.slice(0); // clone rect\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n };\n\n // Returns a rectangle [x1, y1, x2, y2] corresponding to the\n // intersection of rect1 and rect2. If no intersection, returns 'false'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n Util.intersect = function Util_intersect(rect1, rect2) {\n function compare(a, b) {\n return a - b;\n }\n\n // Order points along the axes\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\n rect1 = Util.normalizeRect(rect1);\n rect2 = Util.normalizeRect(rect2);\n\n // X: first and second points belong to different rectangles?\n if ((orderedX[0] === rect1[0] && orderedX[1] === rect2[0]) ||\n (orderedX[0] === rect2[0] && orderedX[1] === rect1[0])) {\n // Intersection must be between second and third points\n result[0] = orderedX[1];\n result[2] = orderedX[2];\n } else {\n return false;\n }\n\n // Y: first and second points belong to different rectangles?\n if ((orderedY[0] === rect1[1] && orderedY[1] === rect2[1]) ||\n (orderedY[0] === rect2[1] && orderedY[1] === rect1[1])) {\n // Intersection must be between second and third points\n result[1] = orderedY[1];\n result[3] = orderedY[2];\n } else {\n return false;\n }\n\n return result;\n };\n\n return Util;\n})();\n\nconst PDFStringTranslateTable = [\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0x2D8, 0x2C7, 0x2C6, 0x2D9, 0x2DD, 0x2DB, 0x2DA, 0x2DC, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014,\n 0x2013, 0x192, 0x2044, 0x2039, 0x203A, 0x2212, 0x2030, 0x201E, 0x201C,\n 0x201D, 0x2018, 0x2019, 0x201A, 0x2122, 0xFB01, 0xFB02, 0x141, 0x152, 0x160,\n 0x178, 0x17D, 0x131, 0x142, 0x153, 0x161, 0x17E, 0, 0x20AC\n];\n\nfunction stringToPDFString(str) {\n var i, n = str.length, strBuf = [];\n if (str[0] === '\\xFE' && str[1] === '\\xFF') {\n // UTF16BE BOM\n for (i = 2; i < n; i += 2) {\n strBuf.push(String.fromCharCode(\n (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}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isEmptyObj(obj) {\n for (var key in obj) {\n return false;\n }\n return true;\n}\n\nfunction isBool(v) {\n return typeof v === 'boolean';\n}\n\nfunction isNum(v) {\n return typeof v === 'number';\n}\n\nfunction isString(v) {\n return typeof v === 'string';\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === 'object' && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n return arr1.every(function(element, index) {\n return element === arr2[index];\n });\n}\n\n// Checks if ch is one of the following characters: SPACE, TAB, CR or LF.\nfunction isSpace(ch) {\n return (ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A);\n}\n\n/**\n * Promise Capability object.\n *\n * @typedef {Object} PromiseCapability\n * @property {Promise} promise - A Promise object.\n * @property {boolean} settled - If the Promise has been fulfilled/rejected.\n * @property {function} resolve - Fulfills the Promise.\n * @property {function} reject - Rejects the Promise.\n */\n\n/**\n * Creates a promise capability object.\n * @alias createPromiseCapability\n *\n * @return {PromiseCapability}\n */\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n\n Object.defineProperty(capability, 'settled', {\n get() {\n return isSettled;\n },\n });\n capability.promise = new Promise(function(resolve, reject) {\n capability.resolve = function(data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function(reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\nvar createObjectURL = (function createObjectURLClosure() {\n // Blob/createObjectURL is not available, falling back to data schema.\n var digits =\n 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n\n return function createObjectURL(data, contentType, forceDataSchema = false) {\n if (!forceDataSchema && URL.createObjectURL) {\n const blob = new Blob([data], { type: contentType, });\n return URL.createObjectURL(blob);\n }\n\n 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, 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})();\n\nexport {\n FONT_IDENTITY_MATRIX,\n IDENTITY_MATRIX,\n OPS,\n VerbosityLevel,\n UNSUPPORTED_FEATURES,\n AnnotationBorderStyleType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationType,\n FontType,\n ImageKind,\n CMapCompressionType,\n AbortException,\n InvalidPDFException,\n MissingPDFException,\n NativeImageDecoding,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n StreamType,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n Util,\n FormatError,\n arrayByteLength,\n arraysToBytes,\n assert,\n bytesToString,\n createPromiseCapability,\n createObjectURL,\n getVerbosityLevel,\n info,\n isArrayBuffer,\n isArrayEqual,\n isBool,\n isEmptyObj,\n isNum,\n isString,\n isSpace,\n isSameOrigin,\n createValidAbsoluteUrl,\n isLittleEndian,\n isEvalSupported,\n log2,\n readInt8,\n readUint16,\n readUint32,\n removeNullCharacters,\n ReadableStream,\n URL,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n utf8StringToString,\n warn,\n unreachable,\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nconst globalScope = require('./global_scope');\n\n// Skip compatibility checks for the extensions and if we already ran\n// this module.\nif ((typeof PDFJSDev === 'undefined' ||\n !PDFJSDev.test('FIREFOX || MOZCENTRAL')) &&\n !globalScope._pdfjsCompatibilityChecked) {\n\nglobalScope._pdfjsCompatibilityChecked = true;\n\nconst isNodeJS = require('./is_node');\n\nconst hasDOM = typeof window === 'object' && typeof document === 'object';\n\n// Support: Node.js\n(function checkNodeBtoa() {\n if (globalScope.btoa || !isNodeJS()) {\n return;\n }\n globalScope.btoa = function(chars) {\n // eslint-disable-next-line no-undef\n return Buffer.from(chars, 'binary').toString('base64');\n };\n})();\n\n// Support: Node.js\n(function checkNodeAtob() {\n if (globalScope.atob || !isNodeJS()) {\n return;\n }\n globalScope.atob = function(input) {\n // eslint-disable-next-line no-undef\n return Buffer.from(input, 'base64').toString('binary');\n };\n})();\n\n// Provides support for ChildNode.remove in legacy browsers.\n// Support: IE.\n(function checkChildNodeRemove() {\n if (!hasDOM) {\n return;\n }\n if (typeof Element.prototype.remove !== 'undefined') {\n return;\n }\n Element.prototype.remove = function () {\n if (this.parentNode) {\n // eslint-disable-next-line mozilla/avoid-removeChild\n this.parentNode.removeChild(this);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.{add, remove}, with more than\n// one parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListAddRemove() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n div.classList.add('testOne', 'testTwo');\n\n if (div.classList.contains('testOne') === true &&\n div.classList.contains('testTwo') === true) {\n return;\n }\n const OriginalDOMTokenListAdd = DOMTokenList.prototype.add;\n const OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;\n\n DOMTokenList.prototype.add = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListAdd.call(this, token);\n }\n };\n DOMTokenList.prototype.remove = function(...tokens) {\n for (let token of tokens) {\n OriginalDOMTokenListRemove.call(this, token);\n }\n };\n})();\n\n// Provides support for DOMTokenList.prototype.toggle, with the optional\n// \"force\" parameter, in legacy browsers.\n// Support: IE\n(function checkDOMTokenListToggle() {\n if (!hasDOM || isNodeJS()) {\n return;\n }\n const div = document.createElement('div');\n if (div.classList.toggle('test', 0) === false) {\n return;\n }\n\n DOMTokenList.prototype.toggle = function(token) {\n let force = (arguments.length > 1 ? !!arguments[1] : !this.contains(token));\n return (this[force ? 'add' : 'remove'](token), force);\n };\n})();\n\n// Provides support for String.prototype.startsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringStartsWith() {\n if (String.prototype.startsWith) {\n return;\n }\n require('core-js/fn/string/starts-with');\n})();\n\n// Provides support for String.prototype.endsWith in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringEndsWith() {\n if (String.prototype.endsWith) {\n return;\n }\n require('core-js/fn/string/ends-with');\n})();\n\n// Provides support for String.prototype.includes in legacy browsers.\n// Support: IE, Chrome<41\n(function checkStringIncludes() {\n if (String.prototype.includes) {\n return;\n }\n require('core-js/fn/string/includes');\n})();\n\n// Provides support for Array.prototype.includes in legacy browsers.\n// Support: IE, Chrome<47\n(function checkArrayIncludes() {\n if (Array.prototype.includes) {\n return;\n }\n require('core-js/fn/array/includes');\n})();\n\n// Provides support for Array.from in legacy browsers.\n// Support: IE\n(function checkArrayFrom() {\n if (Array.from) {\n return;\n }\n require('core-js/fn/array/from');\n})();\n\n// Provides support for Object.assign in legacy browsers.\n// Support: IE\n(function checkObjectAssign() {\n if (Object.assign) {\n return;\n }\n require('core-js/fn/object/assign');\n})();\n\n// Provides support for Math.log2 in legacy browsers.\n// Support: IE, Chrome<38\n(function checkMathLog2() {\n if (Math.log2) {\n return;\n }\n Math.log2 = require('core-js/fn/math/log2');\n})();\n\n// Provides support for Number.isNaN in legacy browsers.\n// Support: IE.\n(function checkNumberIsNaN() {\n if (Number.isNaN) {\n return;\n }\n Number.isNaN = require('core-js/fn/number/is-nan');\n})();\n\n// Provides support for Number.isInteger in legacy browsers.\n// Support: IE, Chrome<34\n(function checkNumberIsInteger() {\n if (Number.isInteger) {\n return;\n }\n Number.isInteger = require('core-js/fn/number/is-integer');\n})();\n\n// Support: IE, Safari<11, Chrome<63\n(function checkPromise() {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('IMAGE_DECODERS')) {\n // The current image decoders are synchronous, hence `Promise` shouldn't\n // need to be polyfilled for the IMAGE_DECODERS build target.\n return;\n }\n if (globalScope.Promise && (globalScope.Promise.prototype &&\n globalScope.Promise.prototype.finally)) {\n return;\n }\n globalScope.Promise = require('core-js/fn/promise');\n})();\n\n// Support: IE<11, Safari<8, Chrome<36\n(function checkWeakMap() {\n if (globalScope.WeakMap) {\n return;\n }\n globalScope.WeakMap = require('core-js/fn/weak-map');\n})();\n\n// Support: IE11\n(function checkWeakSet() {\n if (globalScope.WeakSet) {\n return;\n }\n globalScope.WeakSet = require('core-js/fn/weak-set');\n})();\n\n// Provides support for String.codePointAt in legacy browsers.\n// Support: IE11.\n(function checkStringCodePointAt() {\n if (String.codePointAt) {\n return;\n }\n String.codePointAt = require('core-js/fn/string/code-point-at');\n})();\n\n// Provides support for String.fromCodePoint in legacy browsers.\n// Support: IE11.\n(function checkStringFromCodePoint() {\n if (String.fromCodePoint) {\n return;\n }\n String.fromCodePoint = require('core-js/fn/string/from-code-point');\n})();\n\n// Support: IE\n(function checkSymbol() {\n if (globalScope.Symbol) {\n return;\n }\n require('core-js/es6/symbol');\n})();\n\n// Provides support for String.prototype.padStart in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadStart() {\n if (String.prototype.padStart) {\n return;\n }\n require('core-js/fn/string/pad-start');\n})();\n\n// Provides support for String.prototype.padEnd in legacy browsers.\n// Support: IE, Chrome<57\n(function checkStringPadEnd() {\n if (String.prototype.padEnd) {\n return;\n }\n require('core-js/fn/string/pad-end');\n})();\n\n// Provides support for Object.values in legacy browsers.\n// Support: IE, Chrome<54\n(function checkObjectValues() {\n if (Object.values) {\n return;\n }\n Object.values = require('core-js/fn/object/values');\n})();\n\n}\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module */\n\nmodule.exports =\n (typeof window !== 'undefined' && window.Math === Math) ? window :\n // eslint-disable-next-line no-undef\n (typeof global !== 'undefined' && global.Math === Math) ? global :\n (typeof self !== 'undefined' && self.Math === Math) ? self : {};\n","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals module, process */\n\nmodule.exports = function isNodeJS() {\n // NW.js / Electron is a browser context, but copies some Node.js objects; see\n // http://docs.nwjs.io/en/latest/For%20Users/Advanced/JavaScript%20Contexts%20in%20NW.js/#access-nodejs-and-nwjs-api-in-browser-context\n // https://electronjs.org/docs/api/process#processversionselectron\n return typeof process === 'object' &&\n process + '' === '[object process]' &&\n !process.versions['nw'] && !process.versions['electron'];\n};\n","require('../../modules/es6.string.starts-with');\nmodule.exports = require('../../modules/_core').String.startsWith;\n","// 21.1.3.18 String.prototype.startsWith(searchString [, position ])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar STARTS_WITH = 'startsWith';\nvar $startsWith = ''[STARTS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(STARTS_WITH), 'String', {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = context(this, searchString, STARTS_WITH);\n var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","var global = require('./_global');\nvar core = require('./_core');\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar ctx = require('./_ctx');\nvar PROTOTYPE = 'prototype';\n\nvar $export = function (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 // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n // export native or passed\n out = (own ? target : source)[key];\n // bind timers to global for call from export context\n exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // extend global\n if (target) redefine(target, key, out, type & $export.U);\n // export\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// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library`\nmodule.exports = $export;\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","var core = module.exports = { version: '2.6.9' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? 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","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? 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) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (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","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar $toString = require('./_function-to-string');\nvar TO_STRING = 'toString';\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\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// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","module.exports = require('./_shared')('native-function-to-string', Function.toString);\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2019 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","module.exports = function (it) {\n if (typeof it != 'function') throw TypeError(it + ' is not a function!');\n return it;\n};\n","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer');\nvar min = Math.min;\nmodule.exports = function (it) {\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n","// 7.1.4 ToInteger\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","// helper for String#{startsWith, endsWith, includes}\nvar isRegExp = require('./_is-regexp');\nvar defined = require('./_defined');\n\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","// 7.2.8 IsRegExp(argument)\nvar isObject = require('./_is-object');\nvar cof = require('./_cof');\nvar MATCH = require('./_wks')('match');\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var MATCH = require('./_wks')('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) { /* empty */ }\n } return true;\n};\n","require('../../modules/es6.string.ends-with');\nmodule.exports = require('../../modules/_core').String.endsWith;\n","// 21.1.3.6 String.prototype.endsWith(searchString [, endPosition])\n'use strict';\nvar $export = require('./_export');\nvar toLength = require('./_to-length');\nvar context = require('./_string-context');\nvar ENDS_WITH = 'endsWith';\nvar $endsWith = ''[ENDS_WITH];\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(ENDS_WITH), 'String', {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = context(this, searchString, ENDS_WITH);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","require('../../modules/es6.string.includes');\nmodule.exports = require('../../modules/_core').String.includes;\n","// 21.1.3.7 String.prototype.includes(searchString, position = 0)\n'use strict';\nvar $export = require('./_export');\nvar context = require('./_string-context');\nvar INCLUDES = 'includes';\n\n$export($export.P + $export.F * require('./_fails-is-regexp')(INCLUDES), 'String', {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~context(this, searchString, INCLUDES)\n .indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","require('../../modules/es7.array.includes');\nmodule.exports = require('../../modules/_core').Array.includes;\n","'use strict';\n// https://github.com/tc39/Array.prototype.includes\nvar $export = require('./_export');\nvar $includes = require('./_array-includes')(true);\n\n$export($export.P, 'Array', {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\nrequire('./_add-to-unscopables')('includes');\n","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject');\nvar toLength = require('./_to-length');\nvar toAbsoluteIndex = require('./_to-absolute-index');\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 // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) if (IS_INCLUDES || index in O) {\n if (O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject');\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return IObject(defined(it));\n};\n","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\n// eslint-disable-next-line no-prototype-builtins\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n","var toInteger = require('./_to-integer');\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","// 22.1.3.31 Array.prototype[@@unscopables]\nvar UNSCOPABLES = require('./_wks')('unscopables');\nvar ArrayProto = Array.prototype;\nif (ArrayProto[UNSCOPABLES] == undefined) require('./_hide')(ArrayProto, UNSCOPABLES, {});\nmodule.exports = function (key) {\n ArrayProto[UNSCOPABLES][key] = true;\n};\n","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function (iterated) {\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function () {\n var O = this._t;\n var index = this._i;\n var point;\n if (index >= O.length) return { value: undefined, done: true };\n point = $at(O, index);\n this._i += point.length;\n return { value: point, done: false };\n});\n","var toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\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\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar $iterCreate = require('./_iter-create');\nvar setToStringTag = require('./_set-to-string-tag');\nvar getPrototypeOf = require('./_object-gpo');\nvar ITERATOR = require('./_wks')('iterator');\nvar BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`\nvar FF_ITERATOR = '@@iterator';\nvar KEYS = 'keys';\nvar VALUES = 'values';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {\n $iterCreate(Constructor, NAME, next);\n var getMethod = function (kind) {\n if (!BUGGY && kind in proto) return proto[kind];\n switch (kind) {\n case KEYS: return function keys() { return new Constructor(this, kind); };\n case VALUES: return function values() { return new Constructor(this, kind); };\n } return function entries() { return new Constructor(this, kind); };\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 // Fix native\n if ($anyNative) {\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));\n if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEF_VALUES && $native && $native.name !== VALUES) {\n VALUES_BUG = true;\n $default = function values() { return $native.call(this); };\n }\n // Define iterator\n if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\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","module.exports = {};\n","'use strict';\nvar create = require('./_object-create');\nvar descriptor = require('./_property-desc');\nvar setToStringTag = require('./_set-to-string-tag');\nvar IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function () { 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","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object');\nvar dPs = require('./_object-dps');\nvar enumBugKeys = require('./_enum-bug-keys');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar Empty = function () { /* empty */ };\nvar PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe');\n var i = enumBugKeys.length;\n var lt = '<';\n var gt = '>';\n var iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\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--) delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\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 // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n","var dP = require('./_object-dp');\nvar anObject = require('./_an-object');\nvar getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? 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) dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal');\nvar enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O) {\n return $keys(O, enumBugKeys);\n};\n","var has = require('./_has');\nvar toIObject = require('./_to-iobject');\nvar arrayIndexOf = require('./_array-includes')(false);\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\n\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) if (key != IE_PROTO) has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var shared = require('./_shared')('keys');\nvar uid = require('./_uid');\nmodule.exports = function (key) {\n return shared[key] || (shared[key] = uid(key));\n};\n","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n","var document = require('./_global').document;\nmodule.exports = document && document.documentElement;\n","var def = require('./_object-dp').f;\nvar has = require('./_has');\nvar TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function (it, tag, stat) {\n if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });\n};\n","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has');\nvar toObject = require('./_to-object');\nvar IE_PROTO = require('./_shared-key')('IE_PROTO');\nvar ObjectProto = Object.prototype;\n\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 } return O instanceof Object ? ObjectProto : null;\n};\n","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function (it) {\n return Object(defined(it));\n};\n","'use strict';\nvar ctx = require('./_ctx');\nvar $export = require('./_export');\nvar toObject = require('./_to-object');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar toLength = require('./_to-length');\nvar createProperty = require('./_create-property');\nvar getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function (iter) { Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var aLen = arguments.length;\n var mapfn = aLen > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var index = 0;\n var iterFn = getIterFn(O);\n var length, result, step, iterator;\n if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {\n for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for (result = new C(length); length > index; index++) {\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function (iterator, fn, value, entries) {\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (e) {\n var ret = iterator['return'];\n if (ret !== undefined) anObject(ret.call(iterator));\n throw e;\n }\n};\n","// check on default Array iterator\nvar Iterators = require('./_iterators');\nvar ITERATOR = require('./_wks')('iterator');\nvar ArrayProto = Array.prototype;\n\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n","'use strict';\nvar $defineProperty = require('./_object-dp');\nvar createDesc = require('./_property-desc');\n\nmodule.exports = function (object, index, value) {\n if (index in object) $defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n","var classof = require('./_classof');\nvar ITERATOR = require('./_wks')('iterator');\nvar Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof');\nvar TAG = require('./_wks')('toStringTag');\n// ES3 wrong here\nvar ARG = cof(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (e) { /* empty */ }\n};\n\nmodule.exports = function (it) {\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n","var ITERATOR = require('./_wks')('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function () { SAFE_CLOSING = true; };\n // eslint-disable-next-line no-throw-literal\n Array.from(riter, function () { throw 2; });\n} catch (e) { /* empty */ }\n\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 () { return { done: safe = true }; };\n arr[ITERATOR] = function () { return iter; };\n exec(arr);\n } catch (e) { /* empty */ }\n return safe;\n};\n","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', { assign: require('./_object-assign') });\n","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar DESCRIPTORS = require('./_descriptors');\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\nvar toObject = require('./_to-object');\nvar IObject = require('./_iobject');\nvar $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function () {\n var A = {};\n var B = {};\n // eslint-disable-next-line no-undef\n var S = Symbol();\n var K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function (k) { B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars\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 key = keys[j++];\n if (!DESCRIPTORS || isEnum.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","exports.f = Object.getOwnPropertySymbols;\n","exports.f = {}.propertyIsEnumerable;\n","require('../../modules/es6.math.log2');\nmodule.exports = require('../../modules/_core').Math.log2;\n","// 20.2.2.22 Math.log2(x)\nvar $export = require('./_export');\n\n$export($export.S, 'Math', {\n log2: function log2(x) {\n return Math.log(x) / Math.LN2;\n }\n});\n","require('../../modules/es6.number.is-nan');\nmodule.exports = require('../../modules/_core').Number.isNaN;\n","// 20.1.2.4 Number.isNaN(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', {\n isNaN: function isNaN(number) {\n // eslint-disable-next-line no-self-compare\n return number != number;\n }\n});\n","require('../../modules/es6.number.is-integer');\nmodule.exports = require('../../modules/_core').Number.isInteger;\n","// 20.1.2.3 Number.isInteger(number)\nvar $export = require('./_export');\n\n$export($export.S, 'Number', { isInteger: require('./_is-integer') });\n","// 20.1.2.3 Number.isInteger(number)\nvar isObject = require('./_is-object');\nvar floor = Math.floor;\nmodule.exports = function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","require('../modules/es6.object.to-string');\nrequire('../modules/es6.string.iterator');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.promise');\nrequire('../modules/es7.promise.finally');\nrequire('../modules/es7.promise.try');\nmodule.exports = require('../modules/_core').Promise;\n","'use strict';\n// 19.1.3.6 Object.prototype.toString()\nvar classof = require('./_classof');\nvar test = {};\ntest[require('./_wks')('toStringTag')] = 'z';\nif (test + '' != '[object z]') {\n require('./_redefine')(Object.prototype, 'toString', function toString() {\n return '[object ' + classof(this) + ']';\n }, true);\n}\n","var $iterators = require('./es6.array.iterator');\nvar getKeys = require('./_object-keys');\nvar redefine = require('./_redefine');\nvar global = require('./_global');\nvar hide = require('./_hide');\nvar Iterators = require('./_iterators');\nvar wks = require('./_wks');\nvar ITERATOR = wks('iterator');\nvar TO_STRING_TAG = wks('toStringTag');\nvar ArrayValues = Iterators.Array;\n\nvar DOMIterables = {\n CSSRuleList: true, // TODO: Not spec compliant, should be false.\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, // TODO: Not spec compliant, should be false.\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, // TODO: Not spec compliant, should be false.\n TextTrackCueList: false,\n TextTrackList: false,\n TouchList: false\n};\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) if (!proto[key]) redefine(proto, key, $iterators[key], true);\n }\n}\n","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables');\nvar step = require('./_iter-step');\nvar Iterators = require('./_iterators');\nvar toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function (iterated, kind) {\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\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');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","module.exports = function (done, value) {\n return { value: value, done: !!done };\n};\n","'use strict';\nvar LIBRARY = require('./_library');\nvar global = require('./_global');\nvar ctx = require('./_ctx');\nvar classof = require('./_classof');\nvar $export = require('./_export');\nvar isObject = require('./_is-object');\nvar aFunction = require('./_a-function');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar speciesConstructor = require('./_species-constructor');\nvar task = require('./_task').set;\nvar microtask = require('./_microtask')();\nvar newPromiseCapabilityModule = require('./_new-promise-capability');\nvar perform = require('./_perform');\nvar userAgent = require('./_user-agent');\nvar promiseResolve = require('./_promise-resolve');\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;\n\nvar USE_NATIVE = !!function () {\n try {\n // correct subclassing with @@species support\n var promise = $Promise.resolve(1);\n var FakePromise = (promise.constructor = {})[require('./_wks')('species')] = function (exec) {\n exec(empty, empty);\n };\n // unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n return (isNode || typeof PromiseRejectionEvent == 'function')\n && promise.then(empty) instanceof FakePromise\n // v8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // we can't detect it synchronously, so just check versions\n && v8.indexOf('6.6') !== 0\n && userAgent.indexOf('Chrome/66') === -1;\n } catch (e) { /* empty */ }\n}();\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\nvar notify = function (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 (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;\n else {\n if (domain) domain.enter();\n result = handler(value); // may throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (e) {\n if (domain && !exited) domain.exit();\n reject(e);\n }\n };\n while (chain.length > i) run(chain[i++]); // variable length - can't use forEach\n promise._c = [];\n promise._n = false;\n if (isReject && !promise._h) onUnhandled(promise);\n });\n};\nvar onUnhandled = function (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({ promise: promise, reason: value });\n } else if ((console = global.console) && console.error) {\n console.error('Unhandled promise rejection', value);\n }\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n promise._h = isNode || isUnhandled(promise) ? 2 : 1;\n } promise._a = undefined;\n if (unhandled && result.e) throw result.v;\n });\n};\nvar isUnhandled = function (promise) {\n return promise._h !== 1 && (promise._a || promise._c).length === 0;\n};\nvar onHandleUnhandled = function (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({ promise: promise, reason: promise._v });\n }\n });\n};\nvar $reject = function (value) {\n var promise = this;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\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 (value) {\n var promise = this;\n var then;\n if (promise._d) return;\n promise._d = true;\n promise = promise._w || promise; // unwrap\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 = { _w: promise, _d: false }; // wrap\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({ _w: promise, _d: false }, e); // wrap\n }\n};\n\n// constructor polyfill\nif (!USE_NATIVE) {\n // 25.4.3.1 Promise(executor)\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 // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n this._c = []; // <- awaiting reactions\n this._a = undefined; // <- checked in isUnhandled reactions\n this._s = 0; // <- state\n this._d = false; // <- done\n this._v = undefined; // <- value\n this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled\n this._n = false; // <- notify\n };\n Internal.prototype = require('./_redefine-all')($Promise.prototype, {\n // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)\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 // 25.4.5.1 Promise.prototype.catch(onRejected)\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\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 (C) {\n return C === $Promise || C === Wrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Promise: $Promise });\nrequire('./_set-to-string-tag')($Promise, PROMISE);\nrequire('./_set-species')(PROMISE);\nWrapper = require('./_core')[PROMISE];\n\n// statics\n$export($export.S + $export.F * !USE_NATIVE, PROMISE, {\n // 25.4.4.5 Promise.reject(r)\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 // 25.4.4.6 Promise.resolve(x)\n resolve: function resolve(x) {\n return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);\n }\n});\n$export($export.S + $export.F * !(USE_NATIVE && require('./_iter-detect')(function (iter) {\n $Promise.all(iter)['catch'](empty);\n})), PROMISE, {\n // 25.4.4.1 Promise.all(iterable)\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 // 25.4.4.4 Promise.race(iterable)\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","module.exports = function (it, Constructor, name, forbiddenField) {\n if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {\n throw TypeError(name + ': incorrect invocation!');\n } return it;\n};\n","var ctx = require('./_ctx');\nvar call = require('./_iter-call');\nvar isArrayIter = require('./_is-array-iter');\nvar anObject = require('./_an-object');\nvar toLength = require('./_to-length');\nvar getIterFn = require('./core.get-iterator-method');\nvar BREAK = {};\nvar RETURN = {};\nvar exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {\n var iterFn = ITERATOR ? function () { return iterable; } : 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 // fast case for arrays with default iterator\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};\nexports.BREAK = BREAK;\nexports.RETURN = RETURN;\n","// 7.3.20 SpeciesConstructor(O, defaultConstructor)\nvar anObject = require('./_an-object');\nvar aFunction = require('./_a-function');\nvar SPECIES = require('./_wks')('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","var ctx = require('./_ctx');\nvar invoke = require('./_invoke');\nvar html = require('./_html');\nvar cel = require('./_dom-create');\nvar global = require('./_global');\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 () {\n var id = +this;\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\nvar listener = function (event) {\n run.call(event.data);\n};\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!setTask || !clearTask) {\n setTask = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n 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 // Node.js 0.8-\n if (require('./_cof')(process) == 'process') {\n defer = function (id) {\n process.nextTick(ctx(run, id, 1));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(ctx(run, id, 1));\n };\n // Browsers with MessageChannel, includes WebWorkers\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 // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {\n defer = function (id) {\n global.postMessage(id + '', '*');\n };\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in cel('script')) {\n defer = function (id) {\n html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run.call(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(ctx(run, id, 1), 0);\n };\n }\n}\nmodule.exports = {\n set: setTask,\n clear: clearTask\n};\n","// fast apply, http://jsperf.lnkit.com/fast-apply/5\nmodule.exports = function (fn, args, that) {\n var un = that === undefined;\n switch (args.length) {\n case 0: return un ? fn()\n : fn.call(that);\n case 1: return un ? fn(args[0])\n : fn.call(that, args[0]);\n case 2: return un ? fn(args[0], args[1])\n : fn.call(that, args[0], args[1]);\n case 3: return un ? fn(args[0], args[1], args[2])\n : fn.call(that, args[0], args[1], args[2]);\n case 4: return un ? fn(args[0], args[1], args[2], args[3])\n : fn.call(that, args[0], args[1], args[2], args[3]);\n } return fn.apply(that, args);\n};\n","var global = require('./_global');\nvar macrotask = require('./_task').set;\nvar Observer = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar isNode = require('./_cof')(process) == 'process';\n\nmodule.exports = function () {\n var head, last, notify;\n\n var flush = function () {\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();\n else last = undefined;\n throw e;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (isNode) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339\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 }); // eslint-disable-line no-new\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n var promise = Promise.resolve(undefined);\n notify = function () {\n promise.then(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n\n return function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n };\n};\n","'use strict';\n// 25.4.1.5 NewPromiseCapability(C)\nvar aFunction = require('./_a-function');\n\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}\n\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","module.exports = function (exec) {\n try {\n return { e: false, v: exec() };\n } catch (e) {\n return { e: true, v: e };\n }\n};\n","var global = require('./_global');\nvar navigator = global.navigator;\n\nmodule.exports = navigator && navigator.userAgent || '';\n","var anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar newPromiseCapability = require('./_new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('./_redefine');\nmodule.exports = function (target, src, safe) {\n for (var key in src) redefine(target, key, src[key], safe);\n return target;\n};\n","'use strict';\nvar global = require('./_global');\nvar dP = require('./_object-dp');\nvar DESCRIPTORS = require('./_descriptors');\nvar SPECIES = require('./_wks')('species');\n\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 () { return this; }\n });\n};\n","// https://github.com/tc39/proposal-promise-finally\n'use strict';\nvar $export = require('./_export');\nvar core = require('./_core');\nvar global = require('./_global');\nvar speciesConstructor = require('./_species-constructor');\nvar promiseResolve = require('./_promise-resolve');\n\n$export($export.P + $export.R, 'Promise', { 'finally': function (onFinally) {\n var C = speciesConstructor(this, core.Promise || global.Promise);\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n} });\n","'use strict';\n// https://github.com/tc39/proposal-promise-try\nvar $export = require('./_export');\nvar newPromiseCapability = require('./_new-promise-capability');\nvar perform = require('./_perform');\n\n$export($export.S, 'Promise', { 'try': function (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","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-map');\nrequire('../modules/es7.weak-map.of');\nrequire('../modules/es7.weak-map.from');\nmodule.exports = require('../modules/_core').WeakMap;\n","'use strict';\nvar global = require('./_global');\nvar each = require('./_array-methods')(0);\nvar redefine = require('./_redefine');\nvar meta = require('./_meta');\nvar assign = require('./_object-assign');\nvar weak = require('./_collection-weak');\nvar isObject = require('./_is-object');\nvar validate = require('./_validate-collection');\nvar NATIVE_WEAK_MAP = require('./_validate-collection');\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\nvar WEAK_MAP = 'WeakMap';\nvar getWeak = meta.getWeak;\nvar isExtensible = Object.isExtensible;\nvar uncaughtFrozenStore = weak.ufstore;\nvar InternalMap;\n\nvar wrapper = function (get) {\n return function WeakMap() {\n return get(this, arguments.length > 0 ? arguments[0] : undefined);\n };\n};\n\nvar methods = {\n // 23.3.3.3 WeakMap.prototype.get(key)\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 // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return weak.def(validate(this, WEAK_MAP), key, value);\n }\n};\n\n// 23.3 WeakMap Objects\nvar $WeakMap = module.exports = require('./_collection')(WEAK_MAP, wrapper, methods, weak, true, true);\n\n// IE11 WeakMap frozen keys fix\nif (NATIVE_WEAK_MAP && IS_IE11) {\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 // store frozen objects on internal weakmap shim\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 // store all the rest on native weakmap\n } return method.call(this, a, b);\n });\n });\n}\n","// 0 -> Array#forEach\n// 1 -> Array#map\n// 2 -> Array#filter\n// 3 -> Array#some\n// 4 -> Array#every\n// 5 -> Array#find\n// 6 -> Array#findIndex\nvar ctx = require('./_ctx');\nvar IObject = require('./_iobject');\nvar toObject = require('./_to-object');\nvar toLength = require('./_to-length');\nvar asc = require('./_array-species-create');\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++) 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; // map\n else if (res) switch (TYPE) {\n case 3: return true; // some\n case 5: return val; // find\n case 6: return index; // findIndex\n case 2: result.push(val); // filter\n } else if (IS_EVERY) return false; // every\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;\n };\n};\n","// 9.4.2.3 ArraySpeciesCreate(originalArray, length)\nvar speciesConstructor = require('./_array-species-constructor');\n\nmodule.exports = function (original, length) {\n return new (speciesConstructor(original))(length);\n};\n","var isObject = require('./_is-object');\nvar isArray = require('./_is-array');\nvar SPECIES = require('./_wks')('species');\n\nmodule.exports = function (original) {\n var C;\n if (isArray(original)) {\n C = original.constructor;\n // cross-realm fallback\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 } return C === undefined ? Array : C;\n};\n","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg) {\n return cof(arg) == 'Array';\n};\n","var META = require('./_uid')('meta');\nvar isObject = require('./_is-object');\nvar has = require('./_has');\nvar setDesc = require('./_object-dp').f;\nvar id = 0;\nvar isExtensible = Object.isExtensible || function () {\n return true;\n};\nvar FREEZE = !require('./_fails')(function () {\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function (it) {\n setDesc(it, META, { value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n } });\n};\nvar fastKey = function (it, create) {\n // return primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function (it, create) {\n if (!has(it, META)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function (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","'use strict';\nvar redefineAll = require('./_redefine-all');\nvar getWeak = require('./_meta').getWeak;\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar anInstance = require('./_an-instance');\nvar forOf = require('./_for-of');\nvar createArrayMethod = require('./_array-methods');\nvar $has = require('./_has');\nvar validate = require('./_validate-collection');\nvar arrayFind = createArrayMethod(5);\nvar arrayFindIndex = createArrayMethod(6);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (that) {\n return that._l || (that._l = new UncaughtFrozenStore());\n};\nvar UncaughtFrozenStore = function () {\n this.a = [];\n};\nvar findUncaughtFrozen = function (store, key) {\n return arrayFind(store.a, function (it) {\n return it[0] === key;\n });\n};\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.a.push([key, value]);\n },\n 'delete': function (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};\n\nmodule.exports = {\n getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, NAME, '_i');\n that._t = NAME; // collection type\n that._i = id++; // collection id\n that._l = undefined; // leak store for uncaught frozen objects\n if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);\n });\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n 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 // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\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 (that, key, value) {\n var data = getWeak(anObject(key), true);\n if (data === true) uncaughtFrozenStore(that).set(key, value);\n else data[that._i] = value;\n return that;\n },\n ufstore: uncaughtFrozenStore\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it, TYPE) {\n if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');\n return it;\n};\n","'use strict';\nvar global = require('./_global');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar redefineAll = require('./_redefine-all');\nvar meta = require('./_meta');\nvar forOf = require('./_for-of');\nvar anInstance = require('./_an-instance');\nvar isObject = require('./_is-object');\nvar fails = require('./_fails');\nvar $iterDetect = require('./_iter-detect');\nvar setToStringTag = require('./_set-to-string-tag');\nvar inheritIfRequired = require('./_inherit-if-required');\n\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 (KEY) {\n var fn = proto[KEY];\n redefine(proto, KEY,\n 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) { fn.call(this, a === 0 ? 0 : a); return this; }\n : function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }\n );\n };\n if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {\n new C().entries().next();\n }))) {\n // create collection constructor\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 // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n var ACCEPT_ITERABLES = $iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new C();\n var index = 5;\n while (index--) $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 // weak collections should not contains .clear method\n if (IS_WEAK && proto.clear) delete proto.clear;\n }\n\n setToStringTag(C, NAME);\n\n O[NAME] = C;\n $export($export.G + $export.W + $export.F * (C != Base), O);\n\n if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);\n\n return C;\n};\n","var isObject = require('./_is-object');\nvar setPrototypeOf = require('./_set-proto').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 } return that;\n};\n","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object');\nvar anObject = require('./_an-object');\nvar check = function (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 {} ? // eslint-disable-line\n function (test, buggy, set) {\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch (e) { buggy = true; }\n return function setPrototypeOf(O, proto) {\n check(O, proto);\n if (buggy) O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n","var pIE = require('./_object-pie');\nvar createDesc = require('./_property-desc');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar has = require('./_has');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? 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) { /* empty */ }\n if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.of\nrequire('./_set-collection-of')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { of: function of() {\n var length = arguments.length;\n var A = new Array(length);\n while (length--) A[length] = arguments[length];\n return new this(A);\n } });\n};\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakmap.from\nrequire('./_set-collection-from')('WeakMap');\n","'use strict';\n// https://tc39.github.io/proposal-setmap-offrom/\nvar $export = require('./_export');\nvar aFunction = require('./_a-function');\nvar ctx = require('./_ctx');\nvar forOf = require('./_for-of');\n\nmodule.exports = function (COLLECTION) {\n $export($export.S, COLLECTION, { from: function from(source /* , mapFn, thisArg */) {\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","require('../modules/es6.object.to-string');\nrequire('../modules/web.dom.iterable');\nrequire('../modules/es6.weak-set');\nrequire('../modules/es7.weak-set.of');\nrequire('../modules/es7.weak-set.from');\nmodule.exports = require('../modules/_core').WeakSet;\n","'use strict';\nvar weak = require('./_collection-weak');\nvar validate = require('./_validate-collection');\nvar WEAK_SET = 'WeakSet';\n\n// 23.4 WeakSet Objects\nrequire('./_collection')(WEAK_SET, function (get) {\n return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };\n}, {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return weak.def(validate(this, WEAK_SET), value, true);\n }\n}, weak, false, true);\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.of\nrequire('./_set-collection-of')('WeakSet');\n","// https://tc39.github.io/proposal-setmap-offrom/#sec-weakset.from\nrequire('./_set-collection-from')('WeakSet');\n","require('../../modules/es6.string.code-point-at');\nmodule.exports = require('../../modules/_core').String.codePointAt;\n","'use strict';\nvar $export = require('./_export');\nvar $at = require('./_string-at')(false);\n$export($export.P, 'String', {\n // 21.1.3.3 String.prototype.codePointAt(pos)\n codePointAt: function codePointAt(pos) {\n return $at(this, pos);\n }\n});\n","require('../../modules/es6.string.from-code-point');\nmodule.exports = require('../../modules/_core').String.fromCodePoint;\n","var $export = require('./_export');\nvar toAbsoluteIndex = require('./_to-absolute-index');\nvar fromCharCode = String.fromCharCode;\nvar $fromCodePoint = String.fromCodePoint;\n\n// length should be 1, old FF problem\n$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {\n // 21.1.2.2 String.fromCodePoint(...codePoints)\n fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars\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\n ? fromCharCode(code)\n : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)\n );\n } return res.join('');\n }\n});\n","require('../modules/es6.symbol');\nrequire('../modules/es6.object.to-string');\nmodule.exports = require('../modules/_core').Symbol;\n","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global');\nvar has = require('./_has');\nvar DESCRIPTORS = require('./_descriptors');\nvar $export = require('./_export');\nvar redefine = require('./_redefine');\nvar META = require('./_meta').KEY;\nvar $fails = require('./_fails');\nvar shared = require('./_shared');\nvar setToStringTag = require('./_set-to-string-tag');\nvar uid = require('./_uid');\nvar wks = require('./_wks');\nvar wksExt = require('./_wks-ext');\nvar wksDefine = require('./_wks-define');\nvar enumKeys = require('./_enum-keys');\nvar isArray = require('./_is-array');\nvar anObject = require('./_an-object');\nvar isObject = require('./_is-object');\nvar toObject = require('./_to-object');\nvar toIObject = require('./_to-iobject');\nvar toPrimitive = require('./_to-primitive');\nvar createDesc = require('./_property-desc');\nvar _create = require('./_object-create');\nvar gOPNExt = require('./_object-gopn-ext');\nvar $GOPD = require('./_object-gopd');\nvar $GOPS = require('./_object-gops');\nvar $DP = require('./_object-dp');\nvar $keys = require('./_object-keys');\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' && !!$GOPS.f;\nvar QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function () {\n return _create(dP({}, 'a', {\n get: function () { return dP(this, 'a', { value: 7 }).a; }\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;\n\nvar wrap = function (tag) {\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n return it instanceof $Symbol;\n};\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 } return setSymbolDesc(it, key, D);\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) $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 } 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 } return result;\n};\n\n// 19.4.1.1 Symbol([description])\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 (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, { configurable: true, set: $set });\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString() {\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n $GOPS.f = $getOwnPropertySymbols;\n\n if (DESCRIPTORS && !require('./_library')) {\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function (name) {\n return wrap(wks(name));\n };\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, { Symbol: $Symbol });\n\nfor (var es6Symbols = (\n // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);\n\nfor (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function (key) {\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');\n for (var key in SymbolRegistry) if (SymbolRegistry[key] === sym) return key;\n },\n useSetter: function () { setter = true; },\n useSimple: function () { setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FAILS_ON_PRIMITIVES = $fails(function () { $GOPS.f(1); });\n\n$export($export.S + $export.F * FAILS_ON_PRIMITIVES, 'Object', {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n return $GOPS.f(toObject(it));\n }\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\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) args.push(arguments[i++]);\n $replacer = replacer = args[1];\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (typeof $replacer == 'function') value = $replacer.call(this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n","exports.f = require('./_wks');\n","var global = require('./_global');\nvar core = require('./_core');\nvar LIBRARY = require('./_library');\nvar wksExt = require('./_wks-ext');\nvar defineProperty = require('./_object-dp').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","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys');\nvar gOPS = require('./_object-gops');\nvar pIE = require('./_object-pie');\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) if (isEnum.call(it, key = symbols[i++])) result.push(key);\n } return result;\n};\n","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject');\nvar gOPN = require('./_object-gopn').f;\nvar toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return gOPN(it);\n } catch (e) {\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal');\nvar hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return $keys(O, hiddenKeys);\n};\n","require('../../modules/es7.string.pad-start');\nmodule.exports = require('../../modules/_core').String.padStart;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padStart: function padStart(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);\n }\n});\n","// https://github.com/tc39/proposal-string-pad-start-end\nvar toLength = require('./_to-length');\nvar repeat = require('./_string-repeat');\nvar defined = require('./_defined');\n\nmodule.exports = function (that, maxLength, fillString, left) {\n var S = String(defined(that));\n var stringLength = S.length;\n var fillStr = fillString === undefined ? ' ' : String(fillString);\n var intMaxLength = toLength(maxLength);\n if (intMaxLength <= stringLength || fillStr == '') return S;\n var fillLen = intMaxLength - stringLength;\n var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));\n if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);\n return left ? stringFiller + S : S + stringFiller;\n};\n","'use strict';\nvar toInteger = require('./_to-integer');\nvar defined = require('./_defined');\n\nmodule.exports = function repeat(count) {\n var str = String(defined(this));\n var res = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError(\"Count can't be negative\");\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;\n return res;\n};\n","require('../../modules/es7.string.pad-end');\nmodule.exports = require('../../modules/_core').String.padEnd;\n","'use strict';\n// https://github.com/tc39/proposal-string-pad-start-end\nvar $export = require('./_export');\nvar $pad = require('./_string-pad');\nvar userAgent = require('./_user-agent');\n\n// https://github.com/zloirock/core-js/issues/280\nvar WEBKIT_BUG = /Version\\/10\\.\\d+(\\.\\d+)?( Mobile\\/\\w+)? Safari\\//.test(userAgent);\n\n$export($export.P + $export.F * WEBKIT_BUG, 'String', {\n padEnd: function padEnd(maxLength /* , fillString = ' ' */) {\n return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);\n }\n});\n","require('../../modules/es7.object.values');\nmodule.exports = require('../../modules/_core').Object.values;\n","// https://github.com/tc39/proposal-object-values-entries\nvar $export = require('./_export');\nvar $values = require('./_object-to-array')(false);\n\n$export($export.S, 'Object', {\n values: function values(it) {\n return $values(it);\n }\n});\n","var DESCRIPTORS = require('./_descriptors');\nvar 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) {\n key = keys[i++];\n if (!DESCRIPTORS || isEnum.call(O, key)) {\n result.push(isEntries ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n","/* Copyright 2017 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('MOZCENTRAL')) {\n if (typeof ReadableStream === 'undefined') {\n throw new Error('Please enable ReadableStream support by resetting the ' +\n '\"javascript.options.streams\" preference to \"true\" in about:config.');\n }\n exports.ReadableStream = ReadableStream;\n} else {\n let isReadableStreamSupported = false;\n if (typeof ReadableStream !== 'undefined') {\n // MS Edge may say it has ReadableStream but they are not up to spec yet.\n try {\n // eslint-disable-next-line no-new\n new ReadableStream({\n start(controller) {\n controller.close();\n },\n });\n isReadableStreamSupported = true;\n } catch (e) {\n // The ReadableStream constructor cannot be used.\n }\n }\n if (isReadableStreamSupported) {\n exports.ReadableStream = ReadableStream;\n } else if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyReadableStream {\n constructor() {\n throw new Error('The current image decoders are synchronous, ' +\n 'hence `ReadableStream` shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.ReadableStream = DummyReadableStream;\n } else {\n exports.ReadableStream =\n require('../../external/streams/streams-lib').ReadableStream;\n }\n}\n","/*\n * To the extent possible under law, the authors have dedicated all copyright\n * and related and neighboring rights to this software to the public\n * domain worldwide. This software is distributed without any warranty.\n *\n * You should have received a copy of the CC0 Public Domain Dedication along\n * with this software. If not, see https://creativecommons.org/publicdomain/zero/1.0/.\n */\n\n(function(e, a) { for(var i in a) e[i] = a[i]; }(exports, /******/ (function(modules) { // webpackBootstrap\n/******/ // The module cache\n/******/ var installedModules = {};\n/******/\n/******/ // The require function\n/******/ function __w_pdfjs_require__(moduleId) {\n/******/\n/******/ // Check if module is in cache\n/******/ if(installedModules[moduleId])\n/******/ return installedModules[moduleId].exports;\n/******/\n/******/ // Create a new module (and put it into the cache)\n/******/ var module = installedModules[moduleId] = {\n/******/ i: moduleId,\n/******/ l: false,\n/******/ exports: {}\n/******/ };\n/******/\n/******/ // Execute the module function\n/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);\n/******/\n/******/ // Flag the module as loaded\n/******/ module.l = true;\n/******/\n/******/ // Return the exports of the module\n/******/ return module.exports;\n/******/ }\n/******/\n/******/\n/******/ // expose the modules object (__webpack_modules__)\n/******/ __w_pdfjs_require__.m = modules;\n/******/\n/******/ // expose the module cache\n/******/ __w_pdfjs_require__.c = installedModules;\n/******/\n/******/ // identity function for calling harmony imports with the correct context\n/******/ __w_pdfjs_require__.i = function(value) { return value; };\n/******/\n/******/ // define getter function for harmony exports\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/******/\n/******/ // getDefaultExport function for compatibility with non-harmony modules\n/******/ __w_pdfjs_require__.n = function(module) {\n/******/ var getter = module && module.__esModule ?\n/******/ function getDefault() { return module['default']; } :\n/******/ function getModuleExports() { return module; };\n/******/ __w_pdfjs_require__.d(getter, 'a', getter);\n/******/ return getter;\n/******/ };\n/******/\n/******/ // Object.prototype.hasOwnProperty.call\n/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ // __webpack_public_path__\n/******/ __w_pdfjs_require__.p = \"\";\n/******/\n/******/ // Load entry module and return exports\n/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\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 _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\nfunction IsPropertyKey(argument) {\n return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';\n}\n\nexports.typeIsObject = function (x) {\n return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';\n};\n\nexports.createDataProperty = function (o, p, v) {\n assert(exports.typeIsObject(o));\n Object.defineProperty(o, p, { value: v, writable: true, enumerable: true, configurable: true });\n};\n\nexports.createArrayFromList = function (elements) {\n // We use arrays to represent lists, so this is basically a no-op.\n // Do a slice though just in case we happen to depend on the unique-ness.\n return elements.slice();\n};\n\nexports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {\n new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);\n};\n\nexports.CreateIterResultObject = function (value, done) {\n assert(typeof done === 'boolean');\n var obj = {};\n Object.defineProperty(obj, 'value', { value: value, enumerable: true, writable: true, configurable: true });\n Object.defineProperty(obj, 'done', { value: done, enumerable: true, writable: true, configurable: true });\n return obj;\n};\n\nexports.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\n return true;\n};\n\nfunction Call(F, V, args) {\n if (typeof F !== 'function') {\n throw new TypeError('Argument is not a function');\n }\n\n return Function.prototype.apply.call(F, V, args);\n}\n\nexports.InvokeOrNoop = function (O, P, args) {\n assert(O !== undefined);\n assert(IsPropertyKey(P));\n assert(Array.isArray(args));\n\n var method = O[P];\n if (method === undefined) {\n return undefined;\n }\n\n return Call(method, O, args);\n};\n\nexports.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\nexports.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\n var method = void 0;\n try {\n method = O[P];\n } catch (methodE) {\n return Promise.reject(methodE);\n }\n\n if (method === undefined) {\n return F.apply(null, argsF);\n }\n\n try {\n return Promise.resolve(Call(method, O, args));\n } catch (e) {\n return Promise.reject(e);\n }\n};\n\n// Not implemented correctly\nexports.TransferArrayBuffer = function (O) {\n return O.slice();\n};\n\nexports.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\n return highWaterMark;\n};\n\nexports.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\n highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);\n\n return { size: size, highWaterMark: highWaterMark };\n};\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nfunction rethrowAssertionErrorRejection(e) {\n // Used throughout the reference implementation, as `.catch(rethrowAssertionErrorRejection)`, to ensure any errors\n // get shown. There are places in the spec where we do promise transformations and purposefully ignore or don't\n // expect any errors, but assertion errors are always problematic.\n if (e && e.constructor === AssertionError) {\n setTimeout(function () {\n throw e;\n }, 0);\n }\n};\n\nfunction AssertionError(message) {\n this.name = 'AssertionError';\n this.message = message || '';\n this.stack = new Error().stack;\n}\nAssertionError.prototype = Object.create(Error.prototype);\nAssertionError.prototype.constructor = AssertionError;\n\nfunction assert(value, message) {\n if (!value) {\n throw new AssertionError(message);\n }\n}\n\nmodule.exports = {\n rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,\n AssertionError: AssertionError,\n assert: assert\n};\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(0),\n InvokeOrNoop = _require.InvokeOrNoop,\n PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,\n ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,\n typeIsObject = _require.typeIsObject;\n\nvar _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert,\n rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;\n\nvar _require3 = __w_pdfjs_require__(3),\n DequeueValue = _require3.DequeueValue,\n EnqueueValueWithSize = _require3.EnqueueValueWithSize,\n PeekQueueValue = _require3.PeekQueueValue,\n ResetQueue = _require3.ResetQueue;\n\nvar WritableStream = function () {\n function WritableStream() {\n var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\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\n _classCallCheck(this, WritableStream);\n\n this._state = 'writable';\n\n // The error that will be reported by new method calls once the state becomes errored. Only set when [[state]] is\n // 'erroring' or 'errored'. May be set to an undefined value.\n this._storedError = undefined;\n\n this._writer = undefined;\n\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\n this._writableStreamController = undefined;\n\n // This queue is placed here instead of the writer class in order to allow for passing a writer to the next data\n // producer without waiting for the queued writes to finish.\n this._writeRequests = [];\n\n // Write requests are removed from _writeRequests when write() is called on the underlying sink. This prevents\n // them from being erroneously rejected on error. If a write() call is in-flight, the request is stored here.\n this._inFlightWriteRequest = undefined;\n\n // The promise that was returned from writer.close(). Stored here because it may be fulfilled after the writer\n // has been detached.\n this._closeRequest = undefined;\n\n // Close request is removed from _closeRequest when close() is called on the underlying sink. This prevents it\n // from being erroneously rejected on error. If a close() call is in-flight, the request is stored here.\n this._inFlightCloseRequest = undefined;\n\n // The promise that was returned from writer.abort(). This may also be fulfilled after the writer has detached.\n this._pendingAbortRequest = undefined;\n\n // The backpressure signal set by the controller.\n this._backpressure = false;\n\n var type = underlyingSink.type;\n\n if (type !== undefined) {\n throw new RangeError('Invalid type is specified');\n }\n\n this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);\n this._writableStreamController.__startSteps();\n }\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\n if (IsWritableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));\n }\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\n return AcquireWritableStreamDefaultWriter(this);\n }\n }, {\n key: 'locked',\n get: function get() {\n if (IsWritableStream(this) === false) {\n throw streamBrandCheckException('locked');\n }\n\n return IsWritableStreamLocked(this);\n }\n }]);\n\n return WritableStream;\n}();\n\nmodule.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\n// Abstract operations for the WritableStream.\n\nfunction AcquireWritableStreamDefaultWriter(stream) {\n return new WritableStreamDefaultWriter(stream);\n}\n\nfunction IsWritableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsWritableStreamLocked(stream) {\n assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');\n\n if (stream._writer === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction 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\n assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');\n\n var wasAlreadyErroring = false;\n if (state === 'erroring') {\n wasAlreadyErroring = true;\n // reason will not be used, so don't keep a reference to it.\n reason = undefined;\n }\n\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\n if (wasAlreadyErroring === false) {\n WritableStreamStartErroring(stream, error);\n }\n\n return promise;\n}\n\n// WritableStream API exposed for controllers.\n\nfunction WritableStreamAddWriteRequest(stream) {\n assert(IsWritableStreamLocked(stream) === true);\n assert(stream._state === 'writable');\n\n var promise = new Promise(function (resolve, reject) {\n var writeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._writeRequests.push(writeRequest);\n });\n\n return promise;\n}\n\nfunction WritableStreamDealWithRejection(stream, error) {\n var state = stream._state;\n\n if (state === 'writable') {\n WritableStreamStartErroring(stream, error);\n return;\n }\n\n assert(state === 'erroring');\n WritableStreamFinishErroring(stream);\n}\n\nfunction WritableStreamStartErroring(stream, reason) {\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n assert(stream._state === 'writable', 'state must be writable');\n\n var controller = stream._writableStreamController;\n assert(controller !== undefined, 'controller must not be undefined');\n\n stream._state = 'erroring';\n stream._storedError = reason;\n var writer = stream._writer;\n if (writer !== undefined) {\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);\n }\n\n if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {\n WritableStreamFinishErroring(stream);\n }\n}\n\nfunction 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\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\n if (stream._pendingAbortRequest === undefined) {\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\n\n var abortRequest = stream._pendingAbortRequest;\n stream._pendingAbortRequest = undefined;\n\n if (abortRequest._wasAlreadyErroring === true) {\n abortRequest._reject(storedError);\n WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);\n return;\n }\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\nfunction WritableStreamFinishInFlightWrite(stream) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._resolve(undefined);\n stream._inFlightWriteRequest = undefined;\n}\n\nfunction WritableStreamFinishInFlightWriteWithError(stream, error) {\n assert(stream._inFlightWriteRequest !== undefined);\n stream._inFlightWriteRequest._reject(error);\n stream._inFlightWriteRequest = undefined;\n\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n WritableStreamDealWithRejection(stream, error);\n}\n\nfunction WritableStreamFinishInFlightClose(stream) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._resolve(undefined);\n stream._inFlightCloseRequest = undefined;\n\n var state = stream._state;\n\n assert(state === 'writable' || state === 'erroring');\n\n if (state === 'erroring') {\n // The error was too late to do anything, so it is ignored.\n stream._storedError = undefined;\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._resolve();\n stream._pendingAbortRequest = undefined;\n }\n }\n\n stream._state = 'closed';\n\n var writer = stream._writer;\n if (writer !== undefined) {\n defaultWriterClosedPromiseResolve(writer);\n }\n\n assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');\n assert(stream._storedError === undefined, 'stream._storedError === undefined');\n}\n\nfunction WritableStreamFinishInFlightCloseWithError(stream, error) {\n assert(stream._inFlightCloseRequest !== undefined);\n stream._inFlightCloseRequest._reject(error);\n stream._inFlightCloseRequest = undefined;\n\n assert(stream._state === 'writable' || stream._state === 'erroring');\n\n // Never execute sink abort() after sink close().\n if (stream._pendingAbortRequest !== undefined) {\n stream._pendingAbortRequest._reject(error);\n stream._pendingAbortRequest = undefined;\n }\n WritableStreamDealWithRejection(stream, error);\n}\n\n// TODO(ricea): Fix alphabetical order.\nfunction WritableStreamCloseQueuedOrInFlight(stream) {\n if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamHasOperationMarkedInFlight(stream) {\n if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamMarkCloseRequestInFlight(stream) {\n assert(stream._inFlightCloseRequest === undefined);\n assert(stream._closeRequest !== undefined);\n stream._inFlightCloseRequest = stream._closeRequest;\n stream._closeRequest = undefined;\n}\n\nfunction 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\nfunction WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {\n assert(stream._state === 'errored', '_stream_.[[state]] is `\"errored\"`');\n if (stream._closeRequest !== undefined) {\n assert(stream._inFlightCloseRequest === undefined);\n\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\nfunction WritableStreamUpdateBackpressure(stream, backpressure) {\n assert(stream._state === 'writable');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\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\n defaultWriterReadyPromiseResolve(writer);\n }\n }\n\n stream._backpressure = backpressure;\n}\n\nvar WritableStreamDefaultWriter = function () {\n function WritableStreamDefaultWriter(stream) {\n _classCallCheck(this, WritableStreamDefaultWriter);\n\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\n this._ownerWritableStream = stream;\n stream._writer = this;\n\n var state = stream._state;\n\n if (state === 'writable') {\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {\n defaultWriterReadyPromiseInitialize(this);\n } else {\n defaultWriterReadyPromiseInitializeAsResolved(this);\n }\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\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\n _createClass(WritableStreamDefaultWriter, [{\n key: 'abort',\n value: function abort(reason) {\n if (IsWritableStreamDefaultWriter(this) === false) {\n return Promise.reject(defaultWriterBrandCheckException('abort'));\n }\n\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('abort'));\n }\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\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return Promise.reject(defaultWriterLockException('close'));\n }\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === true) {\n return Promise.reject(new TypeError('cannot close an already-closing stream'));\n }\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\n var stream = this._ownerWritableStream;\n\n if (stream === undefined) {\n return;\n }\n\n assert(stream._writer !== undefined);\n\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\n if (this._ownerWritableStream === undefined) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\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\n return this._closedPromise;\n }\n }, {\n key: 'desiredSize',\n get: function get() {\n if (IsWritableStreamDefaultWriter(this) === false) {\n throw defaultWriterBrandCheckException('desiredSize');\n }\n\n if (this._ownerWritableStream === undefined) {\n throw defaultWriterLockException('desiredSize');\n }\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\n return this._readyPromise;\n }\n }]);\n\n return WritableStreamDefaultWriter;\n}();\n\n// Abstract operations for the WritableStreamDefaultWriter.\n\nfunction IsWritableStreamDefaultWriter(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {\n return false;\n }\n\n return true;\n}\n\n// A client of WritableStreamDefaultWriter may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultWriterAbort(writer, reason) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n return WritableStreamAbort(stream, reason);\n}\n\nfunction WritableStreamDefaultWriterClose(writer) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\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\n assert(state === 'writable' || state === 'erroring');\n assert(WritableStreamCloseQueuedOrInFlight(stream) === false);\n\n var promise = new Promise(function (resolve, reject) {\n var closeRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._closeRequest = closeRequest;\n });\n\n if (stream._backpressure === true && state === 'writable') {\n defaultWriterReadyPromiseResolve(writer);\n }\n\n WritableStreamDefaultControllerClose(stream._writableStreamController);\n\n return promise;\n}\n\nfunction WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var state = stream._state;\n if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {\n return Promise.resolve();\n }\n\n if (state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(state === 'writable' || state === 'erroring');\n\n return WritableStreamDefaultWriterClose(writer);\n}\n\nfunction 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\nfunction 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\nfunction WritableStreamDefaultWriterGetDesiredSize(writer) {\n var stream = writer._ownerWritableStream;\n var state = stream._state;\n\n if (state === 'errored' || state === 'erroring') {\n return null;\n }\n\n if (state === 'closed') {\n return 0;\n }\n\n return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);\n}\n\nfunction WritableStreamDefaultWriterRelease(writer) {\n var stream = writer._ownerWritableStream;\n assert(stream !== undefined);\n assert(stream._writer === writer);\n\n var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\\'s closedness');\n\n WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);\n\n // The state transitions to \"errored\" before the sink abort() method runs, but the writer.closed promise is not\n // rejected until afterwards. This means that simply testing state will not work.\n WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);\n\n stream._writer = undefined;\n writer._ownerWritableStream = undefined;\n}\n\nfunction WritableStreamDefaultWriterWrite(writer, chunk) {\n var stream = writer._ownerWritableStream;\n\n assert(stream !== undefined);\n\n var controller = stream._writableStreamController;\n\n var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);\n\n if (stream !== writer._ownerWritableStream) {\n return Promise.reject(defaultWriterLockException('write to'));\n }\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\n assert(state === 'writable');\n\n var promise = WritableStreamAddWriteRequest(stream);\n\n WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);\n\n return promise;\n}\n\nvar WritableStreamDefaultController = function () {\n function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {\n _classCallCheck(this, WritableStreamDefaultController);\n\n if (IsWritableStream(stream) === false) {\n throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');\n }\n\n if (stream._writableStreamController !== undefined) {\n throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');\n }\n\n this._controlledWritableStream = stream;\n\n this._underlyingSink = underlyingSink;\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._started = false;\n\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n\n var backpressure = WritableStreamDefaultControllerGetBackpressure(this);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\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 // The stream is closed, errored or will be soon. The sink can't do anything useful if it gets an error here, so\n // just treat it as a no-op.\n return;\n }\n\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\n var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);\n var stream = this._controlledWritableStream;\n\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\n return WritableStreamDefaultController;\n}();\n\n// Abstract operations implementing interface required by the WritableStream.\n\nfunction WritableStreamDefaultControllerClose(controller) {\n EnqueueValueWithSize(controller, 'close', 0);\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\nfunction WritableStreamDefaultControllerGetChunkSize(controller, chunk) {\n var strategySize = controller._strategySize;\n\n if (strategySize === undefined) {\n return 1;\n }\n\n try {\n return strategySize(chunk);\n } catch (chunkSizeE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);\n return 1;\n }\n}\n\nfunction WritableStreamDefaultControllerGetDesiredSize(controller) {\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {\n var writeRecord = { chunk: chunk };\n\n try {\n EnqueueValueWithSize(controller, writeRecord, chunkSize);\n } catch (enqueueE) {\n WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n return;\n }\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\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n}\n\n// Abstract operations for the WritableStreamDefaultController.\n\nfunction IsWritableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {\n return false;\n }\n\n return true;\n}\n\nfunction WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {\n var stream = controller._controlledWritableStream;\n\n if (controller._started === false) {\n return;\n }\n\n if (stream._inFlightWriteRequest !== undefined) {\n return;\n }\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\n if (controller._queue.length === 0) {\n return;\n }\n\n var writeRecord = PeekQueueValue(controller);\n if (writeRecord === 'close') {\n WritableStreamDefaultControllerProcessClose(controller);\n } else {\n WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);\n }\n}\n\nfunction WritableStreamDefaultControllerErrorIfNeeded(controller, error) {\n if (controller._controlledWritableStream._state === 'writable') {\n WritableStreamDefaultControllerError(controller, error);\n }\n}\n\nfunction WritableStreamDefaultControllerProcessClose(controller) {\n var stream = controller._controlledWritableStream;\n\n WritableStreamMarkCloseRequestInFlight(stream);\n\n DequeueValue(controller);\n assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');\n\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\nfunction WritableStreamDefaultControllerProcessWrite(controller, chunk) {\n var stream = controller._controlledWritableStream;\n\n WritableStreamMarkFirstWriteRequestInFlight(stream);\n\n var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);\n sinkWritePromise.then(function () {\n WritableStreamFinishInFlightWrite(stream);\n\n var state = stream._state;\n assert(state === 'writable' || state === 'erroring');\n\n DequeueValue(controller);\n\n if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {\n var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);\n WritableStreamUpdateBackpressure(stream, backpressure);\n }\n\n WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);\n }, function (reason) {\n WritableStreamFinishInFlightWriteWithError(stream, reason);\n }).catch(rethrowAssertionErrorRejection);\n}\n\nfunction WritableStreamDefaultControllerGetBackpressure(controller) {\n var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);\n return desiredSize <= 0;\n}\n\n// A client of WritableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction WritableStreamDefaultControllerError(controller, error) {\n var stream = controller._controlledWritableStream;\n\n assert(stream._state === 'writable');\n\n WritableStreamStartErroring(stream, error);\n}\n\n// Helper functions for the WritableStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');\n}\n\n// Helper functions for the WritableStreamDefaultWriter.\n\nfunction defaultWriterBrandCheckException(name) {\n return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');\n}\n\nfunction defaultWriterLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released writer');\n}\n\nfunction 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\nfunction 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\nfunction defaultWriterClosedPromiseInitializeAsResolved(writer) {\n writer._closedPromise = Promise.resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n}\n\nfunction 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\n writer._closedPromise_reject(reason);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'rejected';\n}\n\nfunction 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\n writer._closedPromise = Promise.reject(reason);\n writer._closedPromiseState = 'rejected';\n}\n\nfunction 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\n writer._closedPromise_resolve(undefined);\n writer._closedPromise_resolve = undefined;\n writer._closedPromise_reject = undefined;\n writer._closedPromiseState = 'resolved';\n}\n\nfunction 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\nfunction 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\nfunction defaultWriterReadyPromiseInitializeAsResolved(writer) {\n writer._readyPromise = Promise.resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n}\n\nfunction defaultWriterReadyPromiseReject(writer, reason) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_reject(reason);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseReset(writer) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n\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\nfunction defaultWriterReadyPromiseResetToRejected(writer, reason) {\n assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');\n assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');\n\n writer._readyPromise = Promise.reject(reason);\n writer._readyPromiseState = 'rejected';\n}\n\nfunction defaultWriterReadyPromiseResolve(writer) {\n assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');\n assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');\n\n writer._readyPromise_resolve(undefined);\n writer._readyPromise_resolve = undefined;\n writer._readyPromise_reject = undefined;\n writer._readyPromiseState = 'fulfilled';\n}\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar _require = __w_pdfjs_require__(0),\n IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;\n\nvar _require2 = __w_pdfjs_require__(1),\n assert = _require2.assert;\n\nexports.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\n var pair = container._queue.shift();\n container._queueTotalSize -= pair.size;\n if (container._queueTotalSize < 0) {\n container._queueTotalSize = 0;\n }\n\n return pair.value;\n};\n\nexports.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\n size = Number(size);\n if (!IsFiniteNonNegativeNumber(size)) {\n throw new RangeError('Size must be a finite, non-NaN, non-negative number.');\n }\n\n container._queue.push({ value: value, size: size });\n container._queueTotalSize += size;\n};\n\nexports.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\n var pair = container._queue[0];\n return pair.value;\n};\n\nexports.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\n container._queue = [];\n container._queueTotalSize = 0;\n};\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _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\nvar _require2 = __w_pdfjs_require__(0),\n createArrayFromList = _require2.createArrayFromList,\n createDataProperty = _require2.createDataProperty,\n typeIsObject = _require2.typeIsObject;\n\nvar _require3 = __w_pdfjs_require__(1),\n assert = _require3.assert,\n rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;\n\nvar _require4 = __w_pdfjs_require__(3),\n DequeueValue = _require4.DequeueValue,\n EnqueueValueWithSize = _require4.EnqueueValueWithSize,\n ResetQueue = _require4.ResetQueue;\n\nvar _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\nvar ReadableStream = function () {\n function ReadableStream() {\n var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n size = _ref.size,\n highWaterMark = _ref.highWaterMark;\n\n _classCallCheck(this, ReadableStream);\n\n // Exposed to controllers.\n this._state = 'readable';\n\n this._reader = undefined;\n this._storedError = undefined;\n\n this._disturbed = false;\n\n // Initialize to undefined first because the constructor of the controller checks this\n // variable to validate the caller.\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\n _createClass(ReadableStream, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (IsReadableStream(this) === false) {\n return Promise.reject(streamBrandCheckException('cancel'));\n }\n\n if (IsReadableStreamLocked(this) === true) {\n return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));\n }\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\n if (IsReadableStream(this) === false) {\n throw streamBrandCheckException('getReader');\n }\n\n if (mode === undefined) {\n return AcquireReadableStreamDefaultReader(this);\n }\n\n mode = String(mode);\n\n if (mode === 'byob') {\n return AcquireReadableStreamBYOBReader(this);\n }\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\n var promise = this.pipeTo(writable, options);\n\n ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);\n\n return readable;\n }\n }, {\n key: 'pipeTo',\n value: function pipeTo(dest) {\n var _this = this;\n\n var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n preventClose = _ref4.preventClose,\n preventAbort = _ref4.preventAbort,\n preventCancel = _ref4.preventCancel;\n\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\n preventClose = Boolean(preventClose);\n preventAbort = Boolean(preventAbort);\n preventCancel = Boolean(preventCancel);\n\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\n var reader = AcquireReadableStreamDefaultReader(this);\n var writer = AcquireWritableStreamDefaultWriter(dest);\n\n var shuttingDown = false;\n\n // This is used to keep track of the spec's requirement that we wait for ongoing writes during shutdown.\n var currentWrite = Promise.resolve();\n\n return new Promise(function (resolve, reject) {\n // Using reader and writer, read all chunks from this and write them to dest\n // - Backpressure must be enforced\n // - Shutdown must stop all activity\n function pipeLoop() {\n currentWrite = Promise.resolve();\n\n if (shuttingDown === true) {\n return Promise.resolve();\n }\n\n return writer._readyPromise.then(function () {\n return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {\n var value = _ref5.value,\n done = _ref5.done;\n\n if (done === true) {\n return;\n }\n\n currentWrite = WritableStreamDefaultWriterWrite(writer, value).catch(function () {});\n });\n }).then(pipeLoop);\n }\n\n // Errors must be propagated forward\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\n // Errors must be propagated backward\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\n // Closing must be propagated forward\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\n // Closing must be propagated backward\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\n if (preventCancel === false) {\n shutdownWithAction(function () {\n return ReadableStreamCancel(_this, destClosed);\n }, true, destClosed);\n } else {\n shutdown(true, destClosed);\n }\n }\n\n pipeLoop().catch(function (err) {\n currentWrite = Promise.resolve();\n rethrowAssertionErrorRejection(err);\n });\n\n function waitForWritesToFinish() {\n // Another write may have started while we were waiting on this currentWrite, so we have to be sure to wait\n // for that too.\n var oldCurrentWrite = currentWrite;\n return currentWrite.then(function () {\n return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;\n });\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\n function isOrBecomesClosed(stream, promise, action) {\n if (stream._state === 'closed') {\n action();\n } else {\n promise.then(action).catch(rethrowAssertionErrorRejection);\n }\n }\n\n function shutdownWithAction(action, originalIsError, originalError) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n\n if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {\n waitForWritesToFinish().then(doTheRest);\n } else {\n doTheRest();\n }\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\n function shutdown(isError, error) {\n if (shuttingDown === true) {\n return;\n }\n shuttingDown = true;\n\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\n function finalize(isError, error) {\n WritableStreamDefaultWriterRelease(writer);\n ReadableStreamReaderGenericRelease(reader);\n\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\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\n return IsReadableStreamLocked(this);\n }\n }]);\n\n return ReadableStream;\n}();\n\nmodule.exports = {\n ReadableStream: ReadableStream,\n IsReadableStreamDisturbed: IsReadableStreamDisturbed,\n ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,\n ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,\n ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,\n ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize\n};\n\n// Abstract operations for the ReadableStream.\n\nfunction AcquireReadableStreamBYOBReader(stream) {\n return new ReadableStreamBYOBReader(stream);\n}\n\nfunction AcquireReadableStreamDefaultReader(stream) {\n return new ReadableStreamDefaultReader(stream);\n}\n\nfunction IsReadableStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamDisturbed(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');\n\n return stream._disturbed;\n}\n\nfunction IsReadableStreamLocked(stream) {\n assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');\n\n if (stream._reader === undefined) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamTee(stream, cloneForBranch2) {\n assert(IsReadableStream(stream) === true);\n assert(typeof cloneForBranch2 === 'boolean');\n\n var reader = AcquireReadableStreamDefaultReader(stream);\n\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\n var pull = create_ReadableStreamTeePullFunction();\n pull._reader = reader;\n pull._teeState = teeState;\n pull._cloneForBranch2 = cloneForBranch2;\n\n var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();\n cancel1._stream = stream;\n cancel1._teeState = teeState;\n\n var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();\n cancel2._stream = stream;\n cancel2._teeState = teeState;\n\n var underlyingSource1 = Object.create(Object.prototype);\n createDataProperty(underlyingSource1, 'pull', pull);\n createDataProperty(underlyingSource1, 'cancel', cancel1);\n var branch1Stream = new ReadableStream(underlyingSource1);\n\n var underlyingSource2 = Object.create(Object.prototype);\n createDataProperty(underlyingSource2, 'pull', pull);\n createDataProperty(underlyingSource2, 'cancel', cancel2);\n var branch2Stream = new ReadableStream(underlyingSource2);\n\n pull._branch1 = branch1Stream._readableStreamController;\n pull._branch2 = branch2Stream._readableStreamController;\n\n reader._closedPromise.catch(function (r) {\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n ReadableStreamDefaultControllerError(pull._branch1, r);\n ReadableStreamDefaultControllerError(pull._branch2, r);\n teeState.closedOrErrored = true;\n });\n\n return [branch1Stream, branch2Stream];\n}\n\nfunction create_ReadableStreamTeePullFunction() {\n function f() {\n var reader = f._reader,\n branch1 = f._branch1,\n branch2 = f._branch2,\n teeState = f._teeState;\n\n\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\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\n if (teeState.closedOrErrored === true) {\n return;\n }\n\n var value1 = value;\n var value2 = value;\n\n // There is no way to access the cloning code right now in the reference implementation.\n // If we add one then we'll need an implementation for serializable objects.\n // if (teeState.canceled2 === false && cloneForBranch2 === true) {\n // value2 = StructuredDeserialize(StructuredSerialize(value2));\n // }\n\n if (teeState.canceled1 === false) {\n ReadableStreamDefaultControllerEnqueue(branch1, value1);\n }\n\n if (teeState.canceled2 === false) {\n ReadableStreamDefaultControllerEnqueue(branch2, value2);\n }\n });\n }\n return f;\n}\n\nfunction create_ReadableStreamTeeBranch1CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n\n\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\nfunction create_ReadableStreamTeeBranch2CancelFunction() {\n function f(reason) {\n var stream = f._stream,\n teeState = f._teeState;\n\n\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\n// ReadableStream API exposed for controllers.\n\nfunction ReadableStreamAddReadIntoRequest(stream) {\n assert(IsReadableStreamBYOBReader(stream._reader) === true);\n assert(stream._state === 'readable' || stream._state === 'closed');\n\n var promise = new Promise(function (resolve, reject) {\n var readIntoRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readIntoRequests.push(readIntoRequest);\n });\n\n return promise;\n}\n\nfunction ReadableStreamAddReadRequest(stream) {\n assert(IsReadableStreamDefaultReader(stream._reader) === true);\n assert(stream._state === 'readable');\n\n var promise = new Promise(function (resolve, reject) {\n var readRequest = {\n _resolve: resolve,\n _reject: reject\n };\n\n stream._reader._readRequests.push(readRequest);\n });\n\n return promise;\n}\n\nfunction ReadableStreamCancel(stream, reason) {\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(undefined);\n }\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n ReadableStreamClose(stream);\n\n var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);\n return sourceCancelPromise.then(function () {\n return undefined;\n });\n}\n\nfunction ReadableStreamClose(stream) {\n assert(stream._state === 'readable');\n\n stream._state = 'closed';\n\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\n\n if (IsReadableStreamDefaultReader(reader) === true) {\n for (var i = 0; i < reader._readRequests.length; i++) {\n var _resolve = reader._readRequests[i]._resolve;\n\n _resolve(CreateIterResultObject(undefined, true));\n }\n reader._readRequests = [];\n }\n\n defaultReaderClosedPromiseResolve(reader);\n\n return undefined;\n}\n\nfunction ReadableStreamError(stream, e) {\n assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');\n assert(stream._state === 'readable', 'state must be readable');\n\n stream._state = 'errored';\n stream._storedError = e;\n\n var reader = stream._reader;\n\n if (reader === undefined) {\n return undefined;\n }\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\n reader._readRequests = [];\n } else {\n assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');\n\n for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {\n var readIntoRequest = reader._readIntoRequests[_i];\n readIntoRequest._reject(e);\n }\n\n reader._readIntoRequests = [];\n }\n\n defaultReaderClosedPromiseReject(reader, e);\n reader._closedPromise.catch(function () {});\n}\n\nfunction ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {\n var reader = stream._reader;\n\n assert(reader._readIntoRequests.length > 0);\n\n var readIntoRequest = reader._readIntoRequests.shift();\n readIntoRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamFulfillReadRequest(stream, chunk, done) {\n var reader = stream._reader;\n\n assert(reader._readRequests.length > 0);\n\n var readRequest = reader._readRequests.shift();\n readRequest._resolve(CreateIterResultObject(chunk, done));\n}\n\nfunction ReadableStreamGetNumReadIntoRequests(stream) {\n return stream._reader._readIntoRequests.length;\n}\n\nfunction ReadableStreamGetNumReadRequests(stream) {\n return stream._reader._readRequests.length;\n}\n\nfunction ReadableStreamHasBYOBReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamBYOBReader(reader) === false) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamHasDefaultReader(stream) {\n var reader = stream._reader;\n\n if (reader === undefined) {\n return false;\n }\n\n if (IsReadableStreamDefaultReader(reader) === false) {\n return false;\n }\n\n return true;\n}\n\n// Readers\n\nvar ReadableStreamDefaultReader = function () {\n function ReadableStreamDefaultReader(stream) {\n _classCallCheck(this, ReadableStreamDefaultReader);\n\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\n ReadableStreamReaderGenericInitialize(this, stream);\n\n this._readRequests = [];\n }\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\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\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\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\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\n if (this._ownerReadableStream === undefined) {\n return;\n }\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\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\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamDefaultReader;\n}();\n\nvar ReadableStreamBYOBReader = function () {\n function ReadableStreamBYOBReader(stream) {\n _classCallCheck(this, ReadableStreamBYOBReader);\n\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\n ReadableStreamReaderGenericInitialize(this, stream);\n\n this._readIntoRequests = [];\n }\n\n _createClass(ReadableStreamBYOBReader, [{\n key: 'cancel',\n value: function cancel(reason) {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('cancel'));\n }\n\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('cancel'));\n }\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\n if (this._ownerReadableStream === undefined) {\n return Promise.reject(readerLockException('read from'));\n }\n\n if (!ArrayBuffer.isView(view)) {\n return Promise.reject(new TypeError('view must be an array buffer view'));\n }\n\n if (view.byteLength === 0) {\n return Promise.reject(new TypeError('view must have non-zero byteLength'));\n }\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\n if (this._ownerReadableStream === undefined) {\n return;\n }\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\n ReadableStreamReaderGenericRelease(this);\n }\n }, {\n key: 'closed',\n get: function get() {\n if (!IsReadableStreamBYOBReader(this)) {\n return Promise.reject(byobReaderBrandCheckException('closed'));\n }\n\n return this._closedPromise;\n }\n }]);\n\n return ReadableStreamBYOBReader;\n}();\n\n// Abstract operations for the readers.\n\nfunction IsReadableStreamBYOBReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamDefaultReader(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamReaderGenericInitialize(reader, stream) {\n reader._ownerReadableStream = stream;\n stream._reader = reader;\n\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\n defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);\n reader._closedPromise.catch(function () {});\n }\n}\n\n// A client of ReadableStreamDefaultReader and ReadableStreamBYOBReader may use these functions directly to bypass state\n// check.\n\nfunction ReadableStreamReaderGenericCancel(reader, reason) {\n var stream = reader._ownerReadableStream;\n assert(stream !== undefined);\n return ReadableStreamCancel(stream, reason);\n}\n\nfunction ReadableStreamReaderGenericRelease(reader) {\n assert(reader._ownerReadableStream !== undefined);\n assert(reader._ownerReadableStream._reader === reader);\n\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\n reader._ownerReadableStream._reader = undefined;\n reader._ownerReadableStream = undefined;\n}\n\nfunction ReadableStreamBYOBReaderRead(reader, view) {\n var stream = reader._ownerReadableStream;\n\n assert(stream !== undefined);\n\n stream._disturbed = true;\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n // Controllers must implement this.\n return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);\n}\n\nfunction ReadableStreamDefaultReaderRead(reader) {\n var stream = reader._ownerReadableStream;\n\n assert(stream !== undefined);\n\n stream._disturbed = true;\n\n if (stream._state === 'closed') {\n return Promise.resolve(CreateIterResultObject(undefined, true));\n }\n\n if (stream._state === 'errored') {\n return Promise.reject(stream._storedError);\n }\n\n assert(stream._state === 'readable');\n\n return stream._readableStreamController.__pullSteps();\n}\n\n// Controllers\n\nvar ReadableStreamDefaultController = function () {\n function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {\n _classCallCheck(this, ReadableStreamDefaultController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');\n }\n\n if (stream._readableStreamController !== undefined) {\n throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');\n }\n\n this._controlledReadableStream = stream;\n\n this._underlyingSource = underlyingSource;\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = undefined;\n this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._started = false;\n this._closeRequested = false;\n this._pullAgain = false;\n this._pulling = false;\n\n var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);\n this._strategySize = normalizedStrategy.size;\n this._strategyHWM = normalizedStrategy.highWaterMark;\n\n var controller = this;\n\n var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n }, function (r) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, r);\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableStreamDefaultController, [{\n key: 'close',\n value: function close() {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\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\n ReadableStreamDefaultControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\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\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\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\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\n if (this._queue.length > 0) {\n var chunk = DequeueValue(this);\n\n if (this._closeRequested === true && this._queue.length === 0) {\n ReadableStreamClose(stream);\n } else {\n ReadableStreamDefaultControllerCallPullIfNeeded(this);\n }\n\n return Promise.resolve(CreateIterResultObject(chunk, false));\n }\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\n return ReadableStreamDefaultControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableStreamDefaultController;\n}();\n\n// Abstract operations for the ReadableStreamDefaultController.\n\nfunction IsReadableStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableStreamDefaultControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n\n controller._pulling = true;\n\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\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\n return undefined;\n}\n\nfunction ReadableStreamDefaultControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state === 'closed' || stream._state === 'errored') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n if (desiredSize > 0) {\n return true;\n }\n\n return false;\n}\n\n// A client of ReadableStreamDefaultController may use these functions directly to bypass state check.\n\nfunction ReadableStreamDefaultControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n controller._closeRequested = true;\n\n if (controller._queue.length === 0) {\n ReadableStreamClose(stream);\n }\n}\n\nfunction ReadableStreamDefaultControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n ReadableStreamFulfillReadRequest(stream, chunk, false);\n } else {\n var chunkSize = 1;\n\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\n try {\n EnqueueValueWithSize(controller, chunk, chunkSize);\n } catch (enqueueE) {\n ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);\n throw enqueueE;\n }\n }\n\n ReadableStreamDefaultControllerCallPullIfNeeded(controller);\n\n return undefined;\n}\n\nfunction ReadableStreamDefaultControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n\n assert(stream._state === 'readable');\n\n ResetQueue(controller);\n\n ReadableStreamError(stream, e);\n}\n\nfunction ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {\n if (controller._controlledReadableStream._state === 'readable') {\n ReadableStreamDefaultControllerError(controller, e);\n }\n}\n\nfunction ReadableStreamDefaultControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nvar ReadableStreamBYOBRequest = function () {\n function ReadableStreamBYOBRequest(controller, view) {\n _classCallCheck(this, ReadableStreamBYOBRequest);\n\n this._associatedReadableByteStreamController = controller;\n this._view = view;\n }\n\n _createClass(ReadableStreamBYOBRequest, [{\n key: 'respond',\n value: function respond(bytesWritten) {\n if (IsReadableStreamBYOBRequest(this) === false) {\n throw byobRequestBrandCheckException('respond');\n }\n\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\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\n if (this._associatedReadableByteStreamController === undefined) {\n throw new TypeError('This BYOB request has been invalidated');\n }\n\n if (!ArrayBuffer.isView(view)) {\n throw new TypeError('You can only respond with array buffer views');\n }\n\n ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);\n }\n }, {\n key: 'view',\n get: function get() {\n return this._view;\n }\n }]);\n\n return ReadableStreamBYOBRequest;\n}();\n\nvar ReadableByteStreamController = function () {\n function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {\n _classCallCheck(this, ReadableByteStreamController);\n\n if (IsReadableStream(stream) === false) {\n throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');\n }\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\n this._controlledReadableStream = stream;\n\n this._underlyingByteSource = underlyingByteSource;\n\n this._pullAgain = false;\n this._pulling = false;\n\n ReadableByteStreamControllerClearPendingPullIntos(this);\n\n // Need to set the slots so that the assert doesn't fire. In the spec the slots already exist implicitly.\n this._queue = this._queueTotalSize = undefined;\n ResetQueue(this);\n\n this._closeRequested = false;\n this._started = false;\n\n this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);\n\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\n this._pendingPullIntos = [];\n\n var controller = this;\n\n var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);\n Promise.resolve(startResult).then(function () {\n controller._started = true;\n\n assert(controller._pulling === false);\n assert(controller._pullAgain === false);\n\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }, function (r) {\n if (stream._state === 'readable') {\n ReadableByteStreamControllerError(controller, r);\n }\n }).catch(rethrowAssertionErrorRejection);\n }\n\n _createClass(ReadableByteStreamController, [{\n key: 'close',\n value: function close() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('close');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('The stream has already been closed; do not close it again!');\n }\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\n ReadableByteStreamControllerClose(this);\n }\n }, {\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('enqueue');\n }\n\n if (this._closeRequested === true) {\n throw new TypeError('stream is closed or draining');\n }\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\n if (!ArrayBuffer.isView(chunk)) {\n throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');\n }\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\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\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\n ResetQueue(this);\n\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\n if (this._queueTotalSize > 0) {\n assert(ReadableStreamGetNumReadRequests(stream) === 0);\n\n var entry = this._queue.shift();\n this._queueTotalSize -= entry.byteLength;\n\n ReadableByteStreamControllerHandleQueueDrain(this);\n\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\n return Promise.resolve(CreateIterResultObject(view, false));\n }\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\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\n this._pendingPullIntos.push(pullIntoDescriptor);\n }\n\n var promise = ReadableStreamAddReadRequest(stream);\n\n ReadableByteStreamControllerCallPullIfNeeded(this);\n\n return promise;\n }\n }, {\n key: 'byobRequest',\n get: function get() {\n if (IsReadableByteStreamController(this) === false) {\n throw byteStreamControllerBrandCheckException('byobRequest');\n }\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\n this._byobRequest = new ReadableStreamBYOBRequest(this, view);\n }\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\n return ReadableByteStreamControllerGetDesiredSize(this);\n }\n }]);\n\n return ReadableByteStreamController;\n}();\n\n// Abstract operations for the ReadableByteStreamController.\n\nfunction IsReadableByteStreamController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsReadableStreamBYOBRequest(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {\n return false;\n }\n\n return true;\n}\n\nfunction ReadableByteStreamControllerCallPullIfNeeded(controller) {\n var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);\n if (shouldPull === false) {\n return undefined;\n }\n\n if (controller._pulling === true) {\n controller._pullAgain = true;\n return undefined;\n }\n\n assert(controller._pullAgain === false);\n\n controller._pulling = true;\n\n // TODO: Test controller argument\n var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);\n pullPromise.then(function () {\n controller._pulling = false;\n\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\n return undefined;\n}\n\nfunction ReadableByteStreamControllerClearPendingPullIntos(controller) {\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n controller._pendingPullIntos = [];\n}\n\nfunction ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {\n assert(stream._state !== 'errored', 'state must not be errored');\n\n var done = false;\n if (stream._state === 'closed') {\n assert(pullIntoDescriptor.bytesFilled === 0);\n done = true;\n }\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\nfunction ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {\n var bytesFilled = pullIntoDescriptor.bytesFilled;\n var elementSize = pullIntoDescriptor.elementSize;\n\n assert(bytesFilled <= pullIntoDescriptor.byteLength);\n assert(bytesFilled % elementSize === 0);\n\n return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);\n}\n\nfunction ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {\n controller._queue.push({ buffer: buffer, byteOffset: byteOffset, byteLength: byteLength });\n controller._queueTotalSize += byteLength;\n}\n\nfunction ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {\n var elementSize = pullIntoDescriptor.elementSize;\n\n var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;\n\n var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);\n var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;\n var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;\n\n var totalBytesToCopyRemaining = maxBytesToCopy;\n var ready = false;\n if (maxAlignedBytes > currentAlignedBytes) {\n totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;\n ready = true;\n }\n\n var queue = controller._queue;\n\n while (totalBytesToCopyRemaining > 0) {\n var headOfQueue = queue[0];\n\n var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);\n\n var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;\n ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);\n\n if (headOfQueue.byteLength === bytesToCopy) {\n queue.shift();\n } else {\n headOfQueue.byteOffset += bytesToCopy;\n headOfQueue.byteLength -= bytesToCopy;\n }\n controller._queueTotalSize -= bytesToCopy;\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);\n\n totalBytesToCopyRemaining -= bytesToCopy;\n }\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\n return ready;\n}\n\nfunction ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {\n assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);\n\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n pullIntoDescriptor.bytesFilled += size;\n}\n\nfunction ReadableByteStreamControllerHandleQueueDrain(controller) {\n assert(controller._controlledReadableStream._state === 'readable');\n\n if (controller._queueTotalSize === 0 && controller._closeRequested === true) {\n ReadableStreamClose(controller._controlledReadableStream);\n } else {\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n }\n}\n\nfunction ReadableByteStreamControllerInvalidateBYOBRequest(controller) {\n if (controller._byobRequest === undefined) {\n return;\n }\n\n controller._byobRequest._associatedReadableByteStreamController = undefined;\n controller._byobRequest._view = undefined;\n controller._byobRequest = undefined;\n}\n\nfunction ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {\n assert(controller._closeRequested === false);\n\n while (controller._pendingPullIntos.length > 0) {\n if (controller._queueTotalSize === 0) {\n return;\n }\n\n var pullIntoDescriptor = controller._pendingPullIntos[0];\n\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n }\n }\n}\n\nfunction ReadableByteStreamControllerPullInto(controller, view) {\n var stream = controller._controlledReadableStream;\n\n var elementSize = 1;\n if (view.constructor !== DataView) {\n elementSize = view.constructor.BYTES_PER_ELEMENT;\n }\n\n var ctor = view.constructor;\n\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\n if (controller._pendingPullIntos.length > 0) {\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n // No ReadableByteStreamControllerCallPullIfNeeded() call since:\n // - No change happens on desiredSize\n // - The source has already been notified of that there's at least 1 pending read(view)\n\n return ReadableStreamAddReadIntoRequest(stream);\n }\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\n if (controller._queueTotalSize > 0) {\n if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {\n var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);\n\n ReadableByteStreamControllerHandleQueueDrain(controller);\n\n return Promise.resolve(CreateIterResultObject(filledView, false));\n }\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\n return Promise.reject(e);\n }\n }\n\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n controller._pendingPullIntos.push(pullIntoDescriptor);\n\n var promise = ReadableStreamAddReadIntoRequest(stream);\n\n ReadableByteStreamControllerCallPullIfNeeded(controller);\n\n return promise;\n}\n\nfunction ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {\n firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);\n\n assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');\n\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\nfunction ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {\n if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {\n throw new RangeError('bytesWritten out of range');\n }\n\n ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);\n\n if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {\n // TODO: Figure out whether we should detach the buffer or not here.\n return;\n }\n\n ReadableByteStreamControllerShiftPendingPullInto(controller);\n\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\n pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);\n pullIntoDescriptor.bytesFilled -= remainderSize;\n ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);\n\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n}\n\nfunction ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {\n var firstDescriptor = controller._pendingPullIntos[0];\n\n var stream = controller._controlledReadableStream;\n\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\n ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);\n } else {\n assert(stream._state === 'readable');\n\n ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);\n }\n}\n\nfunction ReadableByteStreamControllerShiftPendingPullInto(controller) {\n var descriptor = controller._pendingPullIntos.shift();\n ReadableByteStreamControllerInvalidateBYOBRequest(controller);\n return descriptor;\n}\n\nfunction ReadableByteStreamControllerShouldCallPull(controller) {\n var stream = controller._controlledReadableStream;\n\n if (stream._state !== 'readable') {\n return false;\n }\n\n if (controller._closeRequested === true) {\n return false;\n }\n\n if (controller._started === false) {\n return false;\n }\n\n if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {\n return true;\n }\n\n if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {\n return true;\n }\n\n return false;\n}\n\n// A client of ReadableByteStreamController may use these functions directly to bypass state check.\n\nfunction ReadableByteStreamControllerClose(controller) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n if (controller._queueTotalSize > 0) {\n controller._closeRequested = true;\n\n return;\n }\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\n throw e;\n }\n }\n\n ReadableStreamClose(stream);\n}\n\nfunction ReadableByteStreamControllerEnqueue(controller, chunk) {\n var stream = controller._controlledReadableStream;\n\n assert(controller._closeRequested === false);\n assert(stream._state === 'readable');\n\n var buffer = chunk.buffer;\n var byteOffset = chunk.byteOffset;\n var byteLength = chunk.byteLength;\n var transferredBuffer = TransferArrayBuffer(buffer);\n\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\n var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);\n ReadableStreamFulfillReadRequest(stream, transferredView, false);\n }\n } else if (ReadableStreamHasBYOBReader(stream) === true) {\n // TODO: Ideally in this branch detaching should happen only if the buffer is not consumed fully.\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);\n } else {\n assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');\n ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);\n }\n}\n\nfunction ReadableByteStreamControllerError(controller, e) {\n var stream = controller._controlledReadableStream;\n\n assert(stream._state === 'readable');\n\n ReadableByteStreamControllerClearPendingPullIntos(controller);\n\n ResetQueue(controller);\n ReadableStreamError(stream, e);\n}\n\nfunction ReadableByteStreamControllerGetDesiredSize(controller) {\n var stream = controller._controlledReadableStream;\n var state = stream._state;\n\n if (state === 'errored') {\n return null;\n }\n if (state === 'closed') {\n return 0;\n }\n\n return controller._strategyHWM - controller._queueTotalSize;\n}\n\nfunction ReadableByteStreamControllerRespond(controller, bytesWritten) {\n bytesWritten = Number(bytesWritten);\n if (IsFiniteNonNegativeNumber(bytesWritten) === false) {\n throw new RangeError('bytesWritten must be a finite');\n }\n\n assert(controller._pendingPullIntos.length > 0);\n\n ReadableByteStreamControllerRespondInternal(controller, bytesWritten);\n}\n\nfunction ReadableByteStreamControllerRespondWithNewView(controller, view) {\n assert(controller._pendingPullIntos.length > 0);\n\n var firstDescriptor = controller._pendingPullIntos[0];\n\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\n firstDescriptor.buffer = view.buffer;\n\n ReadableByteStreamControllerRespondInternal(controller, view.byteLength);\n}\n\n// Helper functions for the ReadableStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');\n}\n\n// Helper functions for the readers.\n\nfunction readerLockException(name) {\n return new TypeError('Cannot ' + name + ' a stream using a released reader');\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction defaultReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');\n}\n\nfunction defaultReaderClosedPromiseInitialize(reader) {\n reader._closedPromise = new Promise(function (resolve, reject) {\n reader._closedPromise_resolve = resolve;\n reader._closedPromise_reject = reject;\n });\n}\n\nfunction defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {\n reader._closedPromise = Promise.reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseInitializeAsResolved(reader) {\n reader._closedPromise = Promise.resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseReject(reader, reason) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_reject(reason);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\nfunction defaultReaderClosedPromiseResetToRejected(reader, reason) {\n assert(reader._closedPromise_resolve === undefined);\n assert(reader._closedPromise_reject === undefined);\n\n reader._closedPromise = Promise.reject(reason);\n}\n\nfunction defaultReaderClosedPromiseResolve(reader) {\n assert(reader._closedPromise_resolve !== undefined);\n assert(reader._closedPromise_reject !== undefined);\n\n reader._closedPromise_resolve(undefined);\n reader._closedPromise_resolve = undefined;\n reader._closedPromise_reject = undefined;\n}\n\n// Helper functions for the ReadableStreamDefaultReader.\n\nfunction byobReaderBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');\n}\n\n// Helper functions for the ReadableStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');\n}\n\n// Helper functions for the ReadableStreamBYOBRequest.\n\nfunction byobRequestBrandCheckException(name) {\n return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');\n}\n\n// Helper functions for the ReadableByteStreamController.\n\nfunction byteStreamControllerBrandCheckException(name) {\n return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');\n}\n\n// Helper function for ReadableStream pipeThrough\n\nfunction ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {\n try {\n // This relies on the brand-check that is enforced by Promise.prototype.then(). As with the rest of the reference\n // implementation, it doesn't attempt to do the right thing if someone has modified the global environment.\n Promise.prototype.then.call(promise, undefined, function () {});\n } catch (e) {\n // The brand check failed, therefore the internal slot is not present and there's nothing further to do.\n }\n}\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\n\nvar transformStream = __w_pdfjs_require__(6);\nvar readableStream = __w_pdfjs_require__(4);\nvar writableStream = __w_pdfjs_require__(2);\n\nexports.TransformStream = transformStream.TransformStream;\nexports.ReadableStream = readableStream.ReadableStream;\nexports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;\nexports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;\nexports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;\nexports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;\nexports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;\nexports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;\nexports.IsWritableStream = writableStream.IsWritableStream;\nexports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;\nexports.WritableStream = writableStream.WritableStream;\nexports.WritableStreamAbort = writableStream.WritableStreamAbort;\nexports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;\nexports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;\nexports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;\nexports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\n\"use strict\";\n\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 _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar _require = __w_pdfjs_require__(1),\n assert = _require.assert;\n\nvar _require2 = __w_pdfjs_require__(0),\n InvokeOrNoop = _require2.InvokeOrNoop,\n PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,\n PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,\n typeIsObject = _require2.typeIsObject;\n\nvar _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\nvar _require4 = __w_pdfjs_require__(2),\n WritableStream = _require4.WritableStream,\n WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;\n\n// Methods on the transform stream controller object\n\nfunction TransformStreamCloseReadable(transformStream) {\n // console.log('TransformStreamCloseReadable()');\n\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n TransformStreamCloseReadableInternal(transformStream);\n}\n\nfunction TransformStreamEnqueueToReadable(transformStream, chunk) {\n // console.log('TransformStreamEnqueueToReadable()');\n\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n if (transformStream._readableClosed === true) {\n throw new TypeError('Readable side is already closed');\n }\n\n // We throttle transformer.transform invocation based on the backpressure of the ReadableStream, but we still\n // accept TransformStreamEnqueueToReadable() calls.\n\n var controller = transformStream._readableController;\n\n try {\n ReadableStreamDefaultControllerEnqueue(controller, chunk);\n } catch (e) {\n // This happens when readableStrategy.size() throws.\n // The ReadableStream has already errored itself.\n transformStream._readableClosed = true;\n TransformStreamErrorIfNeeded(transformStream, e);\n\n throw transformStream._storedError;\n }\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);\n var maybeBackpressure = desiredSize <= 0;\n\n if (maybeBackpressure === true && transformStream._backpressure === false) {\n // This allows pull() again. When desiredSize is 0, it's possible that a pull() will happen immediately (but\n // asynchronously) after this because of pending read()s and set _backpressure back to false.\n //\n // If pull() could be called from inside enqueue(), then this logic would be wrong. This cannot happen\n // because there is always a promise pending from start() or pull() when _backpressure is false.\n TransformStreamSetBackpressure(transformStream, true);\n }\n}\n\nfunction TransformStreamError(transformStream, e) {\n if (transformStream._errored === true) {\n throw new TypeError('TransformStream is already errored');\n }\n\n TransformStreamErrorInternal(transformStream, e);\n}\n\n// Abstract operations.\n\nfunction TransformStreamCloseReadableInternal(transformStream) {\n assert(transformStream._errored === false);\n assert(transformStream._readableClosed === false);\n\n try {\n ReadableStreamDefaultControllerClose(transformStream._readableController);\n } catch (e) {\n assert(false);\n }\n\n transformStream._readableClosed = true;\n}\n\nfunction TransformStreamErrorIfNeeded(transformStream, e) {\n if (transformStream._errored === false) {\n TransformStreamErrorInternal(transformStream, e);\n }\n}\n\nfunction TransformStreamErrorInternal(transformStream, e) {\n // console.log('TransformStreamErrorInternal()');\n\n assert(transformStream._errored === false);\n\n transformStream._errored = true;\n transformStream._storedError = e;\n\n if (transformStream._writableDone === false) {\n WritableStreamDefaultControllerError(transformStream._writableController, e);\n }\n if (transformStream._readableClosed === false) {\n ReadableStreamDefaultControllerError(transformStream._readableController, e);\n }\n}\n\n// Used for preventing the next write() call on TransformStreamSink until there\n// is no longer backpressure.\nfunction TransformStreamReadableReadyPromise(transformStream) {\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === false) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === true, '_backpressure should have been initialized');\n\n return transformStream._backpressureChangePromise;\n}\n\nfunction TransformStreamSetBackpressure(transformStream, backpressure) {\n // console.log(`TransformStreamSetBackpressure(${backpressure})`);\n\n // Passes also when called during construction.\n assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');\n\n if (transformStream._backpressureChangePromise !== undefined) {\n // The fulfillment value is just for a sanity check.\n transformStream._backpressureChangePromise_resolve(backpressure);\n }\n\n transformStream._backpressureChangePromise = new Promise(function (resolve) {\n transformStream._backpressureChangePromise_resolve = resolve;\n });\n\n transformStream._backpressureChangePromise.then(function (resolution) {\n assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');\n });\n\n transformStream._backpressure = backpressure;\n}\n\nfunction TransformStreamDefaultTransform(chunk, transformStreamController) {\n var transformStream = transformStreamController._controlledTransformStream;\n TransformStreamEnqueueToReadable(transformStream, chunk);\n return Promise.resolve();\n}\n\nfunction TransformStreamTransform(transformStream, chunk) {\n // console.log('TransformStreamTransform()');\n\n assert(transformStream._errored === false);\n assert(transformStream._transforming === false);\n assert(transformStream._backpressure === false);\n\n transformStream._transforming = true;\n\n var transformer = transformStream._transformer;\n var controller = transformStream._transformStreamController;\n\n var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);\n\n return transformPromise.then(function () {\n transformStream._transforming = false;\n\n return TransformStreamReadableReadyPromise(transformStream);\n }, function (e) {\n TransformStreamErrorIfNeeded(transformStream, e);\n return Promise.reject(e);\n });\n}\n\nfunction IsTransformStreamDefaultController(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {\n return false;\n }\n\n return true;\n}\n\nfunction IsTransformStream(x) {\n if (!typeIsObject(x)) {\n return false;\n }\n\n if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {\n return false;\n }\n\n return true;\n}\n\nvar TransformStreamSink = function () {\n function TransformStreamSink(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSink);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSink, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n\n transformStream._writableController = c;\n\n return this._startPromise.then(function () {\n return TransformStreamReadableReadyPromise(transformStream);\n });\n }\n }, {\n key: 'write',\n value: function write(chunk) {\n // console.log('TransformStreamSink.write()');\n\n var transformStream = this._transformStream;\n\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 // console.log('TransformStreamSink.close()');\n\n var transformStream = this._transformStream;\n\n assert(transformStream._transforming === false);\n\n transformStream._writableDone = true;\n\n var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);\n // Return a promise that is fulfilled with undefined on success.\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\n return TransformStreamSink;\n}();\n\nvar TransformStreamSource = function () {\n function TransformStreamSource(transformStream, startPromise) {\n _classCallCheck(this, TransformStreamSource);\n\n this._transformStream = transformStream;\n this._startPromise = startPromise;\n }\n\n _createClass(TransformStreamSource, [{\n key: 'start',\n value: function start(c) {\n var transformStream = this._transformStream;\n\n transformStream._readableController = c;\n\n return this._startPromise.then(function () {\n // Prevent the first pull() call until there is backpressure.\n\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n if (transformStream._backpressure === true) {\n return Promise.resolve();\n }\n\n assert(transformStream._backpressure === false, '_backpressure should have been initialized');\n\n return transformStream._backpressureChangePromise;\n });\n }\n }, {\n key: 'pull',\n value: function pull() {\n // console.log('TransformStreamSource.pull()');\n\n var transformStream = this._transformStream;\n\n // Invariant. Enforced by the promises returned by start() and pull().\n assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');\n\n assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');\n\n TransformStreamSetBackpressure(transformStream, false);\n\n // Prevent the next pull() call until there is backpressure.\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\n return TransformStreamSource;\n}();\n\nvar TransformStreamDefaultController = function () {\n function TransformStreamDefaultController(transformStream) {\n _classCallCheck(this, TransformStreamDefaultController);\n\n if (IsTransformStream(transformStream) === false) {\n throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');\n }\n\n if (transformStream._transformStreamController !== undefined) {\n throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');\n }\n\n this._controlledTransformStream = transformStream;\n }\n\n _createClass(TransformStreamDefaultController, [{\n key: 'enqueue',\n value: function enqueue(chunk) {\n if (IsTransformStreamDefaultController(this) === false) {\n throw defaultControllerBrandCheckException('enqueue');\n }\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\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\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\n var transformStream = this._controlledTransformStream;\n var readableController = transformStream._readableController;\n\n return ReadableStreamDefaultControllerGetDesiredSize(readableController);\n }\n }]);\n\n return TransformStreamDefaultController;\n}();\n\nvar TransformStream = function () {\n function TransformStream() {\n var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, TransformStream);\n\n this._transformer = transformer;\n var readableStrategy = transformer.readableStrategy,\n writableStrategy = transformer.writableStrategy;\n\n\n this._transforming = false;\n this._errored = false;\n this._storedError = undefined;\n\n this._writableController = undefined;\n this._readableController = undefined;\n this._transformStreamController = undefined;\n\n this._writableDone = false;\n this._readableClosed = false;\n\n this._backpressure = undefined;\n this._backpressureChangePromise = undefined;\n this._backpressureChangePromise_resolve = undefined;\n\n this._transformStreamController = new TransformStreamDefaultController(this);\n\n var startPromise_resolve = void 0;\n var startPromise = new Promise(function (resolve) {\n startPromise_resolve = resolve;\n });\n\n var source = new TransformStreamSource(this, startPromise);\n\n this._readable = new ReadableStream(source, readableStrategy);\n\n var sink = new TransformStreamSink(this, startPromise);\n\n this._writable = new WritableStream(sink, writableStrategy);\n\n assert(this._writableController !== undefined);\n assert(this._readableController !== undefined);\n\n var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);\n // Set _backpressure based on desiredSize. As there is no read() at this point, we can just interpret\n // desiredSize being non-positive as backpressure.\n TransformStreamSetBackpressure(this, desiredSize <= 0);\n\n var transformStream = this;\n var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);\n startPromise_resolve(startResult);\n startPromise.catch(function (e) {\n // The underlyingSink and underlyingSource will error the readable and writable ends on their own.\n if (transformStream._errored === false) {\n transformStream._errored = true;\n transformStream._storedError = e;\n }\n });\n }\n\n _createClass(TransformStream, [{\n key: 'readable',\n get: function get() {\n if (IsTransformStream(this) === false) {\n throw streamBrandCheckException('readable');\n }\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\n return this._writable;\n }\n }]);\n\n return TransformStream;\n}();\n\nmodule.exports = { TransformStream: TransformStream };\n\n// Helper functions for the TransformStreamDefaultController.\n\nfunction defaultControllerBrandCheckException(name) {\n return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');\n}\n\n// Helper functions for the TransformStream.\n\nfunction streamBrandCheckException(name) {\n return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');\n}\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __w_pdfjs_require__) {\n\nmodule.exports = __w_pdfjs_require__(5);\n\n\n/***/ })\n/******/ ])));","/* Copyright 2018 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* eslint-disable no-restricted-globals */\n\nif (typeof PDFJSDev !== 'undefined' && !PDFJSDev.test('GENERIC')) {\n // The `URL` constructor is assumed to be available in the extension builds.\n exports.URL = URL;\n} else {\n let isURLSupported = false;\n try {\n if (typeof URL === 'function' && typeof URL.prototype === 'object' &&\n ('origin' in URL.prototype)) {\n const u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n isURLSupported = (u.href === 'http://a/c%20d');\n }\n } catch (ex) {\n // The `URL` constructor cannot be used.\n }\n\n if (isURLSupported) {\n exports.URL = URL;\n } else if (typeof PDFJSDev !== 'undefined' &&\n PDFJSDev.test('IMAGE_DECODERS')) {\n class DummyURL {\n constructor() {\n throw new Error('The current image decoders doesn\\'t utilize the ' +\n '`URL` constructor, hence it shouldn\\'t need to be ' +\n 'polyfilled for the IMAGE_DECODERS build target.');\n }\n }\n exports.URL = DummyURL;\n } else {\n const PolyfillURL = require('../../external/url/url-lib').URL;\n\n // Attempt to copy over the static methods.\n const OriginalURL = require('./global_scope').URL;\n if (OriginalURL) {\n PolyfillURL.createObjectURL = function(blob) {\n // IE extension allows a second optional options argument, see\n // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx\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","/* Any copyright is dedicated to the Public Domain.\n * http://creativecommons.org/publicdomain/zero/1.0/\n */\n\n// Polyfill obtained from: https://github.com/Polymer/URL\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\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n\n function IDNAToASCII(h) {\n if (h === '') {\n invalid.call(this);\n }\n // XXX\n return h.toLowerCase();\n }\n\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ? `\n [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n function percentEscapeQuery(c) {\n // XXX This actually needs to encode c using encoding and then\n // convert the bytes one-by-one.\n\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ` (do not escape '?')\n [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n var EOF, ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message);\n }\n\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n\n loop: while ((input[cursor - 1] !== EOF || cursor === 0) &&\n !this._isInvalid) {\n var c = input[cursor];\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\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\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\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 &&\n 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\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 // XXX error handling\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._schemeData += percentEscape(c);\n }\n }\n break;\n\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\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\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) ||\n (nextC !== ':' && nextC !== '|') ||\n (nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\\\' &&\n 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\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\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\n case 'authority second slash':\n state = 'authority ignore slashes';\n if (c !== '/') {\n err('Expected \\'/\\', got: ' + c);\n continue;\n }\n break;\n\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\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 // XXX check URL code points\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 === '\\\\' ||\n c === '?' || c === '#') {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n break;\n\n case 'file host':\n if (c === EOF || c === '/' || c === '\\\\' || c === '?' || c === '#') {\n if (buffer.length === 2 && ALPHA.test(buffer[0]) &&\n (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\n case 'host':\n case 'hostname':\n if (c === ':' && !seenBracket) {\n // XXX host parsing\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 === '/' ||\n 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\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (c === EOF || c === '/' || c === '\\\\' ||\n 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\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\n case 'relative path':\n if (c === EOF || c === '/' || c === '\\\\' ||\n (!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 &&\n buffer.length === 2 && ALPHA.test(buffer[0]) &&\n 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\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\n case 'fragment':\n if (c !== EOF && c !== '\\t' && c !== '\\n' && c !== '\\r') {\n this._fragment += c;\n }\n break;\n }\n\n cursor++;\n }\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\n // Does not process domain names or IP addresses.\n // Does not handle encoding for the query parameter.\n function JURL(url, base /* , encoding */) {\n if (base !== undefined && !(base instanceof JURL)) {\n base = new JURL(String(base));\n }\n\n this._url = url;\n clear.call(this);\n\n var input = url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n // encoding = encoding || 'utf-8'\n\n parse.call(this, input, null, base);\n }\n\n JURL.prototype = {\n toString() {\n return this.href;\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 +\n (this._password !== null ? ':' + this._password : '') + '@';\n }\n\n return this.protocol +\n (this._isRelative ? '//' + authority + this.host : '') +\n this.pathname + this._query + this._fragment;\n },\n // The named parameter should be different from the setter's function name.\n // Otherwise Safari 5 will throw an error (see issue 8541)\n set href(value) {\n clear.call(this);\n parse.call(this, value);\n },\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\n get host() {\n return this._isInvalid ? '' : this._port ?\n 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\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\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\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ?\n '/' + 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\n get search() {\n return this._isInvalid || !this._query || this._query === '?' ?\n '' : 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\n get hash() {\n return this._isInvalid || !this._fragment || this._fragment === '#' ?\n '' : 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\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n // Gecko throws error for \"data://\"\n // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n // Gecko returns String(\"\") for file: mailto:\n // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n case 'blob':\n // Special case of blob: -- returns valid origin of _schemeData.\n try {\n return new JURL(this._schemeData).origin || 'null';\n } catch (_) {\n // Invalid _schemeData origin -- ignoring errors.\n }\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n },\n };\n\n exports.URL = JURL;\n})();\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals requirejs, __non_webpack_require__ */\n/* eslint no-var: error */\n\nimport {\n assert, createPromiseCapability, getVerbosityLevel, info, InvalidPDFException,\n isArrayBuffer, isSameOrigin, MissingPDFException, NativeImageDecoding,\n PasswordException, setVerbosityLevel, shadow, stringToBytes,\n UnexpectedResponseException, UnknownErrorException, unreachable, URL, warn\n} from '../shared/util';\nimport {\n deprecated, DOMCanvasFactory, DOMCMapReaderFactory, DummyStatTimer,\n loadScript, PageViewport, releaseImageResources, RenderingCancelledException,\n StatTimer\n} from './display_utils';\nimport { FontFaceObject, FontLoader } from './font_loader';\nimport { apiCompatibilityParams } from './api_compatibility';\nimport { CanvasGraphics } from './canvas';\nimport globalScope from '../shared/global_scope';\nimport { GlobalWorkerOptions } from './worker_options';\nimport { MessageHandler } from '../shared/message_handler';\nimport { Metadata } from './metadata';\nimport { PDFDataTransportStream } from './transport_stream';\nimport { WebGLContext } from './webgl';\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\n\nlet isWorkerDisabled = false;\nlet fallbackWorkerSrc;\n\nlet fakeWorkerFilesLoader = null;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n let useRequireEnsure = false;\n // For GENERIC build we need to add support for different fake file loaders\n // for different frameworks.\n if (typeof window === 'undefined') {\n // node.js - disable worker and set require.ensure.\n isWorkerDisabled = true;\n if (typeof __non_webpack_require__.ensure === 'undefined') {\n __non_webpack_require__.ensure = __non_webpack_require__('node-ensure');\n }\n useRequireEnsure = true;\n } else if (typeof __non_webpack_require__ !== 'undefined' &&\n typeof __non_webpack_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 const dynamicLoaderSupported =\n typeof requirejs !== 'undefined' && requirejs.load;\n fakeWorkerFilesLoader = useRequireEnsure ? (function() {\n return new Promise(function(resolve, reject) {\n __non_webpack_require__.ensure([], function() {\n try {\n let worker;\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('LIB')) {\n worker = __non_webpack_require__('../pdf.worker.js');\n } else {\n worker = __non_webpack_require__('./pdf.worker.js');\n }\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\n if (!fallbackWorkerSrc && typeof document === 'object' &&\n 'currentScript' in document) {\n const pdfjsFilePath = document.currentScript && document.currentScript.src;\n if (pdfjsFilePath) {\n fallbackWorkerSrc =\n pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, '.worker$1$2');\n }\n }\n}\n\n/**\n * @typedef {function} IPDFStreamFactory\n * @param {DocumentInitParameters} params The document initialization\n * parameters. The \"url\" key is always present.\n * @return {IPDFStream}\n */\n\n/** @type IPDFStreamFactory */\nlet createPDFNetworkStream;\n\n/**\n * Sets the function that instantiates a IPDFStream as an alternative PDF data\n * transport.\n * @param {IPDFStreamFactory} pdfNetworkStreamFactory - the factory function\n * that takes document initialization parameters (including a \"url\") and returns\n * an instance of IPDFStream.\n */\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string} url - The URL of the PDF.\n * @property {TypedArray|Array|string} data - Binary PDF data. Use typed arrays\n * (Uint8Array) to improve the memory usage. If PDF data is BASE64-encoded,\n * use atob() to convert it to a binary string first.\n * @property {Object} httpHeaders - Basic authentication headers.\n * @property {boolean} withCredentials - Indicates whether or not cross-site\n * Access-Control requests should be made using credentials such as cookies\n * or authorization headers. The default is false.\n * @property {string} password - For decrypting password-protected PDFs.\n * @property {TypedArray} initialData - A typed array with the first portion or\n * all of the pdf data. Used by the extension since some data is already\n * loaded before the switch to range requests.\n * @property {number} length - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} range\n * @property {number} rangeChunkSize - Optional parameter to specify\n * maximum number of bytes fetched per range request. The default value is\n * 2^16 = 65536.\n * @property {PDFWorker} worker - (optional) The worker that will be used for\n * the loading and parsing of the PDF data.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n * @property {string} docBaseUrl - (optional) The base URL of the document,\n * used when attempting to recover valid absolute URLs for annotations, and\n * outline items, that (incorrectly) only specify relative URLs.\n * @property {string} nativeImageDecoderSupport - (optional) Strategy for\n * decoding certain (simple) JPEG images in the browser. This is useful for\n * environments without DOM image and canvas support, such as e.g. Node.js.\n * Valid values are 'decode', 'display' or 'none'; where 'decode' is intended\n * for browsers with full image/canvas support, 'display' for environments\n * with limited image support through stubs (useful for SVG conversion),\n * and 'none' where JPEG images will be decoded entirely by PDF.js.\n * The default value is 'decode'.\n * @property {string} cMapUrl - (optional) The URL where the predefined\n * Adobe CMaps are located. Include trailing slash.\n * @property {boolean} cMapPacked - (optional) Specifies if the Adobe CMaps are\n * binary packed.\n * @property {Object} CMapReaderFactory - (optional) The factory that will be\n * used when reading built-in CMap files. Providing a custom factory is useful\n * for environments without `XMLHttpRequest` support, such as e.g. Node.js.\n * The default value is {DOMCMapReaderFactory}.\n * @property {boolean} stopAtErrors - (optional) Reject certain promises, e.g.\n * `getOperatorList`, `getTextContent`, and `RenderTask`, when the associated\n * PDF data cannot be successfully parsed, instead of attempting to recover\n * whatever possible of the data. The default value is `false`.\n * @property {number} maxImageSize - (optional) The maximum allowed image size\n * in total pixels, i.e. width * height. Images above this value will not be\n * rendered. Use -1 for no limit, which is also the default value.\n * @property {boolean} isEvalSupported - (optional) Determines if we can eval\n * strings as JS. Primarily used to improve performance of font rendering,\n * and when parsing PDF functions. The default value is `true`.\n * @property {boolean} disableFontFace - (optional) By default fonts are\n * converted to OpenType fonts and loaded via font face rules. If disabled,\n * fonts will be rendered using a built-in font renderer that constructs the\n * glyphs with primitive path commands. The default value is `false`.\n * @property {boolean} disableRange - (optional) Disable range request loading\n * of PDF files. When enabled, and if the server supports partial content\n * requests, then the PDF will be fetched in chunks.\n * The default value is `false`.\n * @property {boolean} disableStream - (optional) Disable streaming of PDF file\n * data. By default PDF.js attempts to load PDFs in chunks.\n * The default value is `false`.\n * @property {boolean} disableAutoFetch - (optional) Disable pre-fetching of PDF\n * file data. When range requests are enabled PDF.js will automatically keep\n * fetching more data even if it isn't needed to display the current page.\n * The default value is `false`.\n * NOTE: It is also necessary to disable streaming, see above,\n * in order for disabling of pre-fetching to work correctly.\n * @property {boolean} disableCreateObjectURL - (optional) Disable the use of\n * `URL.createObjectURL`, for compatibility with older browsers.\n * The default value is `false`.\n * @property {boolean} pdfBug - (optional) Enables special hooks for debugging\n * PDF.js (see `web/debugger.js`). The default value is `false`.\n */\n\n/**\n * @typedef {Object} PDFDocumentStats\n * @property {Array} streamTypes - Used stream types in the document (an item\n * is set to true if specific stream ID was used in the document).\n * @property {Array} fontTypes - Used font type in the document (an item is set\n * to true if specific font ID was used in the document).\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n * NOTE: If a URL is used to fetch the PDF data a standard XMLHttpRequest(XHR)\n * is used, which means it must follow the same origin rules that any XHR does\n * e.g. No cross domain requests without CORS.\n *\n * @param {string|TypedArray|DocumentInitParameters|PDFDataRangeTransport} src\n * Can be a url to where a PDF is located, a typed array (Uint8Array)\n * already populated with data or parameter object.\n *\n * @return {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n\n let source;\n if (typeof src === 'string') {\n source = { url: src, };\n } else if (isArrayBuffer(src)) {\n source = { data: src, };\n } else if (src instanceof PDFDataRangeTransport) {\n source = { range: src, };\n } else {\n if (typeof src !== 'object') {\n throw new Error('Invalid parameter in getDocument, ' +\n 'need either Uint8Array, string or a parameter object');\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\n 'Invalid parameter object: need either .data, .range or .url');\n }\n source = src;\n }\n const params = Object.create(null);\n let rangeTransport = null, worker = null;\n\n for (const key in source) {\n if (key === 'url' && typeof window !== 'undefined') {\n // The full path is required in the 'url' field.\n params[key] = new URL(source[key], window.location).href;\n continue;\n } else if (key === 'range') {\n rangeTransport = source[key];\n continue;\n } else if (key === 'worker') {\n worker = source[key];\n continue;\n } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {\n // Converting string or array-like data to Uint8Array.\n const pdfBytes = source[key];\n if (typeof pdfBytes === 'string') {\n params[key] = stringToBytes(pdfBytes);\n } else if (typeof pdfBytes === 'object' && pdfBytes !== null &&\n !isNaN(pdfBytes.length)) {\n params[key] = new Uint8Array(pdfBytes);\n } else if (isArrayBuffer(pdfBytes)) {\n params[key] = new Uint8Array(pdfBytes);\n } else {\n throw new Error('Invalid PDF binary data: either typed array, ' +\n 'string or array-like object is expected in the ' +\n 'data property.');\n }\n continue;\n }\n params[key] = source[key];\n }\n\n params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;\n params.CMapReaderFactory = params.CMapReaderFactory || DOMCMapReaderFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.pdfBug = params.pdfBug === true;\n\n const NativeImageDecoderValues = Object.values(NativeImageDecoding);\n if (params.nativeImageDecoderSupport === undefined ||\n !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {\n params.nativeImageDecoderSupport =\n (apiCompatibilityParams.nativeImageDecoderSupport ||\n 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 = apiCompatibilityParams.disableFontFace || false;\n }\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 =\n apiCompatibilityParams.disableCreateObjectURL || false;\n }\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n postMessageTransfers: params.postMessageTransfers,\n verbosity: params.verbosity,\n port: GlobalWorkerOptions.workerPort,\n };\n // Worker was not provided -- creating and owning our own. If message port\n // is specified in global worker options, using it.\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) :\n new PDFWorker(workerParams);\n task._worker = worker;\n }\n const 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(\n function(workerId) {\n if (task.destroyed) {\n throw new Error('Loading aborted');\n }\n\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream,\n });\n }\n\n const messageHandler = new MessageHandler(docId, workerId, worker.port);\n messageHandler.postMessageTransfers = worker.postMessageTransfers;\n const transport = new WorkerTransport(messageHandler, task, networkStream,\n params);\n task._transport = transport;\n messageHandler.send('Ready', null);\n });\n }).catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n * @param {PDFWorker} worker\n * @param {Object} source\n * @param {PDFDataRangeTransport} pdfDataRangeTransport\n * @param {string} docId Unique document id, used as MessageHandler id.\n * @returns {Promise} The promise, which is resolved when worker id of\n * MessageHandler is known.\n * @private\n */\nfunction _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n return Promise.reject(new Error('Worker was destroyed'));\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n }\n return worker.messageHandler.sendWithPromise('GetDocRequest', {\n docId,\n apiVersion: (typeof PDFJSDev !== 'undefined' ?\n PDFJSDev.eval('BUNDLE_VERSION') : null),\n source: { // Only send the required properties, and *not* the entire object.\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}\n\n/**\n * PDF document loading operation.\n * @class\n * @alias PDFDocumentLoadingTask\n */\nconst PDFDocumentLoadingTask = (function PDFDocumentLoadingTaskClosure() {\n let nextDocumentId = 0;\n\n /** @constructs PDFDocumentLoadingTask */\n class PDFDocumentLoadingTask {\n constructor() {\n this._capability = createPromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique document loading task id -- used in MessageHandlers.\n * @type {string}\n */\n this.docId = 'd' + (nextDocumentId++);\n\n /**\n * Shows if loading task is destroyed.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if wrong or no password was provided.\n * The callback receives two parameters: function that needs to be called\n * with new password and reason (see {PasswordResponses}).\n */\n this.onPassword = null;\n\n /**\n * Callback to be able to monitor the loading progress of the PDF file\n * (necessary to implement e.g. a loading bar). The callback receives\n * an {Object} with the properties: {number} loaded and {number} total.\n */\n this.onProgress = null;\n\n /**\n * Callback to when unsupported feature is used. The callback receives\n * an {UNSUPPORTED_FEATURES} argument.\n */\n this.onUnsupportedFeature = null;\n }\n\n /**\n * @return {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Aborts all network requests and destroys worker.\n * @return {Promise} A promise that is resolved after destruction activity\n * is completed.\n */\n destroy() {\n this.destroyed = true;\n\n const transportDestroyed = !this._transport ? Promise.resolve() :\n this._transport.destroy();\n return transportDestroyed.then(() => {\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n });\n }\n\n /**\n * Registers callbacks to indicate the document loading completion.\n *\n * @param {function} onFulfilled The callback for the loading completion.\n * @param {function} onRejected The callback for the loading failure.\n * @return {Promise} A promise that is resolved after the onFulfilled or\n * onRejected callback.\n */\n then(onFulfilled, onRejected) {\n deprecated('PDFDocumentLoadingTask.then method, ' +\n 'use the `promise` getter instead.');\n return this.promise.then.apply(this.promise, arguments);\n }\n }\n return PDFDocumentLoadingTask;\n})();\n\n/**\n * Abstract class to support range requests file loading.\n * @param {number} length\n * @param {Uint8Array} initialData\n * @param {boolean} progressiveDone\n */\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = createPromiseCapability();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n unreachable('Abstract method PDFDataRangeTransport.requestDataRange');\n }\n\n abort() {}\n}\n\n/**\n * Proxy to a PDFDocument in the worker thread. Also, contains commonly used\n * properties that can be read synchronously.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n\n /**\n * @return {number} Total number of pages the PDF contains.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @return {string} A (not guaranteed to be) unique ID to identify a PDF.\n */\n get fingerprint() {\n return this._pdfInfo.fingerprint;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @return {Promise} A promise that is resolved with a {@link PDFPageProxy}\n * object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {{num: number, gen: number}} ref - The page reference. Must have\n * the `num` and `gen` properties.\n * @return {Promise} A promise that is resolved with the page index that is\n * associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named destinations to reference numbers.\n *\n * This can be slow for large documents. Use `getDestination` instead.\n */\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n /**\n * @param {string} id - The named destination to get.\n * @return {Promise} A promise that is resolved with all information\n * of the given named destination.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} containing\n * the page labels that correspond to the page indexes, or `null` when\n * no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {string} containing\n * the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Object} containing\n * the viewer preferences.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} containing the\n * destination, or `null` when no open action is present in the PDF file.\n */\n getOpenActionDestination() {\n return this._transport.getOpenActionDestination();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a lookup table for\n * mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} of all the\n * JavaScript strings in the name tree, or `null` if no JavaScript exists.\n */\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that is a\n * tree outline (if it has one) of the PDF. The tree is in the format of:\n * [\n * {\n * title: string,\n * bold: boolean,\n * italic: boolean,\n * color: rgb Uint8ClampedArray,\n * count: integer or undefined,\n * dest: dest obj,\n * url: string,\n * items: array of more items like this\n * },\n * ...\n * ]\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Array} that contains\n * the permission flags for the PDF document, or `null` when\n * no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @return {Promise} A promise that is resolved with an {Object} that has\n * `info` and `metadata` properties. `info` is an {Object} filled with\n * anything available in the information dictionary and similarly\n * `metadata` is a {Metadata} object with information from the metadata\n * section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @return {Promise} A promise that is resolved with a {TypedArray} that has\n * the raw data from the PDF.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @return {Promise} A promise that is resolved when the document's data\n * is loaded. It is resolved with an {Object} that contains the `length`\n * property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * @return {Promise} A promise this is resolved with current statistics about\n * document structures (see {@link PDFDocumentStats}).\n */\n getStats() {\n return this._transport.getStats();\n }\n\n /**\n * Cleans up resources allocated by the document, e.g. created `@font-face`.\n */\n cleanup() {\n this._transport.startCleanup();\n }\n\n /**\n * Destroys the current document instance and terminates the worker.\n */\n destroy() {\n return this.loadingTask.destroy();\n }\n\n /**\n * @return {Object} A subset of the current {DocumentInitParameters},\n * which are either needed in the viewer and/or whose default values\n * may be affected by the `apiCompatibilityParams`.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @return {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n}\n\n/**\n * Page getViewport parameters.\n *\n * @typedef {Object} GetViewportParameters\n * @property {number} scale - The desired scale of the viewport.\n * @property {number} rotation - (optional) The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {boolean} dontFlip - (optional) If true, the y-axis will not be\n * flipped. The default value is `false`.\n */\n\n/**\n * Page getTextContent parameters.\n *\n * @typedef {Object} getTextContentParameters\n * @property {boolean} normalizeWhitespace - replaces all occurrences of\n * whitespace with standard spaces (0x20). The default value is `false`.\n * @property {boolean} disableCombineTextItems - do not attempt to combine\n * same line {@link TextItem}'s. The default value is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {array} items - array of {@link TextItem}\n * @property {Object} styles - {@link TextStyle} objects, indexed by font name.\n */\n\n/**\n * Page text content part.\n *\n * @typedef {Object} TextItem\n * @property {string} str - text content.\n * @property {string} dir - text direction: 'ttb', 'ltr' or 'rtl'.\n * @property {array} transform - transformation matrix.\n * @property {number} width - width in device space.\n * @property {number} height - height in device space.\n * @property {string} fontName - font name used by pdf.js for converted font.\n */\n\n/**\n * Text style.\n *\n * @typedef {Object} TextStyle\n * @property {number} ascent - font ascent.\n * @property {number} descent - font descent.\n * @property {boolean} vertical - text is in vertical mode.\n * @property {string} fontFamily - possible font family\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} intent - Determines the annotations that will be fetched,\n * can be either 'display' (viewable annotations) or 'print'\n * (printable annotations).\n * If the parameter is omitted, all annotations are fetched.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {Object} canvasContext - A 2D context of a DOM Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by\n * calling the `PDFPageProxy.getViewport` method.\n * @property {string} intent - Rendering intent, can be 'display' or 'print'\n * (default value is 'display').\n * @property {boolean} enableWebGL - (optional) Enables WebGL accelerated\n * rendering for some operations. The default value is `false`.\n * @property {boolean} renderInteractiveForms - (optional) Whether or not\n * interactive form elements are rendered in the display\n * layer. If so, we do not render them on canvas as well.\n * @property {Array} transform - (optional) Additional transform, applied\n * just before viewport transform.\n * @property {Object} imageLayer - (optional) An object that has beginLayout,\n * endLayout and appendImage functions.\n * @property {Object} canvasFactory - (optional) The factory that will be used\n * when creating canvases. The default value is\n * {DOMCanvasFactory}.\n * @property {Object} background - (optional) Background to use for the canvas.\n * Can use any valid canvas.fillStyle: A DOMString parsed as\n * CSS value, a CanvasGradient object (a linear or\n * radial gradient) or a CanvasPattern object (a repetitive\n * image). The default value is 'rgb(255,255,255)'.\n */\n\n/**\n * PDF page operator list.\n *\n * @typedef {Object} PDFOperatorList\n * @property {Array} fnArray - Array containing the operator functions.\n * @property {Array} argsArray - Array containing the arguments of the\n * functions.\n */\n\n/**\n * Proxy to a PDFPage in the worker thread.\n * @alias PDFPageProxy\n */\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, pdfBug = false) {\n this.pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._transport = transport;\n this._stats = (pdfBug ? new StatTimer() : DummyStatTimer);\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this.intentStates = Object.create(null);\n this.destroyed = false;\n }\n\n /**\n * @return {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this.pageIndex + 1;\n }\n\n /**\n * @return {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @return {Object} The reference that points to this page. It has 'num' and\n * 'gen' properties.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @return {number} The default size of units in 1/72nds of an inch.\n */\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n /**\n * @return {Array} An array of the visible portion of the PDF page in the\n * user space units - [x1, y1, x2, y2].\n */\n get view() {\n return this._pageInfo.view;\n }\n\n /**\n * @param {GetViewportParameters} params - Viewport parameters.\n * @return {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({ scale, rotation = this.rotate, dontFlip = false, } = {}) {\n if ((typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) &&\n (arguments.length > 1 || typeof arguments[0] === 'number')) {\n deprecated('getViewport is called with obsolete arguments.');\n scale = arguments[0];\n rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;\n dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;\n }\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @return {Promise} A promise that is resolved with an {Array} of the\n * annotation objects.\n */\n getAnnotations({ intent = null, } = {}) {\n if (!this.annotationsPromise || this.annotationsIntent !== intent) {\n this.annotationsPromise = this._transport.getAnnotations(this.pageIndex,\n intent);\n this.annotationsIntent = intent;\n }\n return this.annotationsPromise;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n * @param {RenderParameters} params Page render parameters.\n * @return {RenderTask} An object that contains the promise, which\n * is resolved when the page finishes rendering.\n */\n render({ canvasContext, viewport, intent = 'display', enableWebGL = false,\n renderInteractiveForms = false, transform = null, imageLayer = null,\n canvasFactory = null, background = null, }) {\n const stats = this._stats;\n stats.time('Overall');\n\n // If there was a pending destroy, cancel it so no cleanup happens during\n // this call to render.\n this.pendingCleanup = false;\n\n const renderingIntent = (intent === 'print' ? 'print' : 'display');\n const canvasFactoryInstance = canvasFactory || new DOMCanvasFactory();\n const webGLContext = new WebGLContext({\n enable: enableWebGL,\n });\n\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n\n // If there's no displayReadyCapability yet, then the operatorList\n // was never requested before. Make the request and create the promise.\n if (!intentState.displayReadyCapability) {\n intentState.receivingOperatorList = true;\n intentState.displayReadyCapability = createPromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\n\n stats.time('Page Request');\n this._transport.messageHandler.send('RenderPageRequest', {\n pageIndex: this.pageNumber - 1,\n intent: renderingIntent,\n renderInteractiveForms: renderInteractiveForms === true,\n });\n }\n\n const complete = (error) => {\n const i = intentState.renderTasks.indexOf(internalRenderTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup once rendering has finished (regardless of cleanupAfterRender).\n if (this.cleanupAfterRender || renderingIntent === 'print') {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n\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\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: { // Include the required properties, and *not* the entire object.\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n operatorList: intentState.operatorList,\n pageNumber: this.pageNumber,\n canvasFactory: canvasFactoryInstance,\n webGLContext,\n useRequestAnimationFrame: renderingIntent !== 'print',\n pdfBug: this._pdfBug,\n });\n\n if (!intentState.renderTasks) {\n intentState.renderTasks = [];\n }\n intentState.renderTasks.push(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n intentState.displayReadyCapability.promise.then((transparency) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n stats.time('Rendering');\n internalRenderTask.initializeGraphics(transparency);\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n\n return renderTask;\n }\n\n /**\n * @return {Promise} A promise resolved with an {@link PDFOperatorList}\n * object that represents page's operator list.\n */\n getOperatorList() {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n const i = intentState.renderTasks.indexOf(opListTask);\n if (i >= 0) {\n intentState.renderTasks.splice(i, 1);\n }\n }\n }\n\n const renderingIntent = 'oplist';\n if (!this.intentStates[renderingIntent]) {\n this.intentStates[renderingIntent] = Object.create(null);\n }\n const intentState = this.intentStates[renderingIntent];\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = {};\n opListTask.operatorListChanged = operatorListChanged;\n intentState.receivingOperatorList = true;\n intentState.opListReadCapability = createPromiseCapability();\n intentState.renderTasks = [];\n intentState.renderTasks.push(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n };\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\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {ReadableStream} ReadableStream to read textContent chunks.\n */\n streamTextContent({ normalizeWhitespace = false,\n disableCombineTextItems = false, } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream('GetTextContent', {\n pageIndex: this.pageNumber - 1,\n normalizeWhitespace: normalizeWhitespace === true,\n combineTextItems: disableCombineTextItems !== true,\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n });\n }\n\n /**\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @return {Promise} That is resolved a {@link TextContent}\n * object that represent the page text content.\n */\n getTextContent(params = {}) {\n const readableStream = this.streamTextContent(params);\n\n return new Promise(function(resolve, reject) {\n function pump() {\n reader.read().then(function({ value, done, }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null),\n };\n pump();\n });\n }\n\n /**\n * Destroys page object.\n */\n _destroy() {\n this.destroyed = true;\n this._transport.pageCache[this.pageIndex] = null;\n\n const waitOn = [];\n Object.keys(this.intentStates).forEach(function(intent) {\n if (intent === 'oplist') {\n // Avoid errors below, since the renderTasks are just stubs.\n return;\n }\n const intentState = this.intentStates[intent];\n intentState.renderTasks.forEach(function(renderTask) {\n const renderCompleted = renderTask.capability.promise.\n catch(function() {}); // ignoring failures\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\n /**\n * Cleans up resources allocated by the page.\n * @param {boolean} resetStats - (optional) Reset page stats, if enabled.\n * The default value is `false`.\n */\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n this._tryCleanup(resetStats);\n }\n\n /**\n * For internal use only. Attempts to clean up if rendering is in a state\n * where that's possible.\n * @ignore\n */\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup ||\n Object.keys(this.intentStates).some(function(intent) {\n const intentState = this.intentStates[intent];\n return (intentState.renderTasks.length !== 0 ||\n intentState.receivingOperatorList);\n }, this)) {\n return;\n }\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 StatTimer) {\n this._stats = new StatTimer();\n }\n this.pendingCleanup = false;\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _startRenderPage(transparency, intent) {\n const intentState = this.intentStates[intent];\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n /**\n * For internal use only.\n * @ignore\n */\n _renderPageChunk(operatorListChunk, intent) {\n const intentState = this.intentStates[intent];\n // Add the new chunk to the current operator list.\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(\n operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (let i = 0; i < intentState.renderTasks.length; i++) {\n intentState.renderTasks[i].operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n intentState.receivingOperatorList = false;\n this._tryCleanup();\n }\n }\n\n /**\n * @return {Object} Returns page stats, if enabled.\n */\n get stats() {\n return (this._stats instanceof StatTimer ? this._stats : null);\n }\n}\n\nclass LoopbackPort {\n constructor(defer = true) {\n this._listeners = [];\n this._defer = defer;\n this._deferred = Promise.resolve(undefined);\n }\n\n postMessage(obj, transfers) {\n function cloneValue(value) {\n // Trying to perform a structured clone close to the spec, including\n // transfers.\n if (typeof value !== 'object' || value === null) {\n return value;\n }\n if (cloned.has(value)) { // already cloned the object\n return cloned.get(value);\n }\n let buffer, result;\n if ((buffer = value.buffer) && isArrayBuffer(buffer)) {\n // We found object with ArrayBuffer (typed array).\n const transferable = transfers && transfers.includes(buffer);\n if (value === buffer) {\n // Special case when we are faking typed arrays in compatibility.js.\n result = value;\n } else if (transferable) {\n result = new value.constructor(buffer, value.byteOffset,\n 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); // adding to cache now for cyclic references\n // Cloning all value and object properties, however ignoring properties\n // defined via getter.\n for (const i in value) {\n let desc, p = value;\n while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {\n p = Object.getPrototypeOf(p);\n }\n if (typeof desc.value === 'undefined' ||\n typeof desc.value === 'function') {\n continue;\n }\n result[i] = cloneValue(desc.value);\n }\n return result;\n }\n\n if (!this._defer) {\n this._listeners.forEach(function(listener) {\n listener.call(this, { data: obj, });\n }, this);\n return;\n }\n\n const cloned = new WeakMap();\n const e = { data: cloneValue(obj), };\n this._deferred.then(() => {\n this._listeners.forEach(function(listener) {\n listener.call(this, e);\n }, this);\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} name - (optional) The name of the worker.\n * @property {Object} port - (optional) The `workerPort`.\n * @property {boolean} postMessageTransfers - (optional) Enables transfer usage\n * in postMessage for ArrayBuffers. The default value is `true`.\n * @property {number} verbosity - (optional) Controls the logging level; the\n * constants from {VerbosityLevel} should be used.\n */\n\n/**\n * PDF.js web worker abstraction, it controls instantiation of PDF documents and\n * WorkerTransport for them. If creation of a web worker is not possible,\n * a \"fake\" worker will be used instead.\n * @class\n */\nconst PDFWorker = (function PDFWorkerClosure() {\n const pdfWorkerPorts = new WeakMap();\n let nextFakeWorkerId = 0;\n let fakeWorkerFilesLoadedCapability;\n\n function getWorkerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (typeof fallbackWorkerSrc !== 'undefined') {\n return fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\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\n // Loads worker code into main thread.\n function setupFakeWorkerGlobal() {\n if (fakeWorkerFilesLoadedCapability) {\n return fakeWorkerFilesLoadedCapability.promise;\n }\n fakeWorkerFilesLoadedCapability = createPromiseCapability();\n\n const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using a ` - + - +
-
- - - +
+
+ + + + +
+
+ +
+
@@ -65,8 +80,10 @@ See https://github.com/adobe-type-tools/cmap-resources
+
- +
@@ -186,11 +203,11 @@ See https://github.com/adobe-type-tools/cmap-resources
-
-
@@ -202,7 +219,7 @@ See https://github.com/adobe-type-tools/cmap-resources Next
- +
@@ -227,7 +244,7 @@ See https://github.com/adobe-type-tools/cmap-resources
-
@@ -269,17 +286,6 @@ See https://github.com/adobe-type-tools/cmap-resources
- - - - - - -
@@ -391,4 +397,3 @@ See https://github.com/adobe-type-tools/cmap-resources
- diff --git a/res/static/misc/pdf-viewer/web/viewer.js b/res/static/misc/pdf-viewer/web/viewer.js index b16ae27..52eb844 100644 --- a/res/static/misc/pdf-viewer/web/viewer.js +++ b/res/static/misc/pdf-viewer/web/viewer.js @@ -2,7 +2,7 @@ * @licstart The following is the entire license notice for the * Javascript code in this page * - * Copyright 2019 Mozilla Foundation + * Copyright 2021 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -20,298 +20,359 @@ * Javascript code in this page */ -/******/ (function(modules) { // webpackBootstrap -/******/ // The module cache -/******/ var installedModules = {}; -/******/ -/******/ // The require function -/******/ function __webpack_require__(moduleId) { -/******/ -/******/ // Check if module is in cache -/******/ if(installedModules[moduleId]) { -/******/ return installedModules[moduleId].exports; -/******/ } -/******/ // Create a new module (and put it into the cache) -/******/ var module = installedModules[moduleId] = { -/******/ i: moduleId, -/******/ l: false, -/******/ exports: {} -/******/ }; -/******/ -/******/ // Execute the module function -/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); -/******/ -/******/ // Flag the module as loaded -/******/ module.l = true; -/******/ -/******/ // Return the exports of the module -/******/ return module.exports; -/******/ } -/******/ -/******/ -/******/ // expose the modules object (__webpack_modules__) -/******/ __webpack_require__.m = modules; -/******/ -/******/ // expose the module cache -/******/ __webpack_require__.c = installedModules; -/******/ -/******/ // define getter function for harmony exports -/******/ __webpack_require__.d = function(exports, name, getter) { -/******/ if(!__webpack_require__.o(exports, name)) { -/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); -/******/ } -/******/ }; -/******/ -/******/ // define __esModule on exports -/******/ __webpack_require__.r = function(exports) { -/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { -/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); -/******/ } -/******/ Object.defineProperty(exports, '__esModule', { value: true }); -/******/ }; -/******/ -/******/ // create a fake namespace object -/******/ // mode & 1: value is a module id, require it -/******/ // mode & 2: merge all properties of value into the ns -/******/ // mode & 4: return value when already ns object -/******/ // mode & 8|1: behave like require -/******/ __webpack_require__.t = function(value, mode) { -/******/ if(mode & 1) value = __webpack_require__(value); -/******/ if(mode & 8) return value; -/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; -/******/ var ns = Object.create(null); -/******/ __webpack_require__.r(ns); -/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); -/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); -/******/ return ns; -/******/ }; -/******/ -/******/ // getDefaultExport function for compatibility with non-harmony modules -/******/ __webpack_require__.n = function(module) { -/******/ var getter = module && module.__esModule ? -/******/ function getDefault() { return module['default']; } : -/******/ function getModuleExports() { return module; }; -/******/ __webpack_require__.d(getter, 'a', getter); -/******/ return getter; -/******/ }; -/******/ -/******/ // Object.prototype.hasOwnProperty.call -/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; -/******/ -/******/ // __webpack_public_path__ -/******/ __webpack_require__.p = ""; -/******/ -/******/ -/******/ // Load entry module and return exports -/******/ return __webpack_require__(__webpack_require__.s = 0); -/******/ }) -/************************************************************************/ -/******/ ([ -/* 0 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -; -var pdfjsWebApp, pdfjsWebAppOptions; + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.OptionKind = exports.AppOptions = void 0; + +var _viewer_compatibility = __webpack_require__(2); + +const OptionKind = { + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + PREFERENCE: 0x80 +}; +exports.OptionKind = OptionKind; +const defaultOptions = { + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultUrl: { + value: "compressed.tracemonkey-pldi-09.pdf", + kind: OptionKind.VIEWER + }, + defaultZoomValue: { + value: "", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + disableHistory: { + value: false, + kind: OptionKind.VIEWER + }, + disablePageLabels: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePermissions: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enablePrintAutoRotate: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + enableScripting: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + externalLinkRel: { + value: "noopener noreferrer nofollow", + kind: OptionKind.VIEWER + }, + externalLinkTarget: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + historyUpdateUrl: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + ignoreDestinationZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + imageResourcesPath: { + value: "./images/", + kind: OptionKind.VIEWER + }, + maxCanvasPixels: { + value: 16777216, + compatibility: _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels, + kind: OptionKind.VIEWER + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, + renderer: { + value: "canvas", + kind: OptionKind.VIEWER + }, + renderInteractiveForms: { + value: true, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + sidebarViewOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + scrollModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + spreadModeOnLoad: { + value: -1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + textLayerMode: { + value: 1, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + useOnlyCssZoom: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewerCssTheme: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + viewOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cMapPacked: { + value: true, + kind: OptionKind.API + }, + cMapUrl: { + value: "../web/cmaps/", + kind: OptionKind.API + }, + disableAutoFetch: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableFontFace: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableRange: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + disableStream: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + docBaseUrl: { + value: "", + kind: OptionKind.API + }, + enableXfa: { + value: false, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + maxImageSize: { + value: -1, + kind: OptionKind.API + }, + pdfBug: { + value: false, + kind: OptionKind.API + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: "../build/pdf.worker.js", + kind: OptionKind.WORKER + } +}; { - pdfjsWebApp = __webpack_require__(1); - pdfjsWebAppOptions = __webpack_require__(6); -} -; -{ - __webpack_require__(36); -} -; -{ - __webpack_require__(41); -} - -function getViewerConfiguration() { - return { - appContainer: document.body, - mainContainer: document.getElementById('viewerContainer'), - viewerContainer: document.getElementById('viewer'), - eventBus: null, - toolbar: { - container: document.getElementById('toolbarViewer'), - numPages: document.getElementById('numPages'), - pageNumber: document.getElementById('pageNumber'), - scaleSelectContainer: document.getElementById('scaleSelectContainer'), - scaleSelect: document.getElementById('scaleSelect'), - customScaleOption: document.getElementById('customScaleOption'), - previous: document.getElementById('previous'), - next: document.getElementById('next'), - zoomIn: document.getElementById('zoomIn'), - zoomOut: document.getElementById('zoomOut'), - viewFind: document.getElementById('viewFind'), - openFile: document.getElementById('openFile'), - print: document.getElementById('print'), - presentationModeButton: document.getElementById('presentationMode'), - download: document.getElementById('download'), - viewBookmark: document.getElementById('viewBookmark') - }, - secondaryToolbar: { - toolbar: document.getElementById('secondaryToolbar'), - toggleButton: document.getElementById('secondaryToolbarToggle'), - toolbarButtonContainer: document.getElementById('secondaryToolbarButtonContainer'), - presentationModeButton: document.getElementById('secondaryPresentationMode'), - openFileButton: document.getElementById('secondaryOpenFile'), - printButton: document.getElementById('secondaryPrint'), - downloadButton: document.getElementById('secondaryDownload'), - viewBookmarkButton: document.getElementById('secondaryViewBookmark'), - firstPageButton: document.getElementById('firstPage'), - lastPageButton: document.getElementById('lastPage'), - pageRotateCwButton: document.getElementById('pageRotateCw'), - pageRotateCcwButton: document.getElementById('pageRotateCcw'), - cursorSelectToolButton: document.getElementById('cursorSelectTool'), - cursorHandToolButton: document.getElementById('cursorHandTool'), - scrollVerticalButton: document.getElementById('scrollVertical'), - scrollHorizontalButton: document.getElementById('scrollHorizontal'), - scrollWrappedButton: document.getElementById('scrollWrapped'), - spreadNoneButton: document.getElementById('spreadNone'), - spreadOddButton: document.getElementById('spreadOdd'), - spreadEvenButton: document.getElementById('spreadEven'), - documentPropertiesButton: document.getElementById('documentProperties') - }, - fullscreen: { - contextFirstPage: document.getElementById('contextFirstPage'), - contextLastPage: document.getElementById('contextLastPage'), - contextPageRotateCw: document.getElementById('contextPageRotateCw'), - contextPageRotateCcw: document.getElementById('contextPageRotateCcw') - }, - sidebar: { - outerContainer: document.getElementById('outerContainer'), - viewerContainer: document.getElementById('viewerContainer'), - toggleButton: document.getElementById('sidebarToggle'), - thumbnailButton: document.getElementById('viewThumbnail'), - outlineButton: document.getElementById('viewOutline'), - attachmentsButton: document.getElementById('viewAttachments'), - thumbnailView: document.getElementById('thumbnailView'), - outlineView: document.getElementById('outlineView'), - attachmentsView: document.getElementById('attachmentsView') - }, - sidebarResizer: { - outerContainer: document.getElementById('outerContainer'), - resizer: document.getElementById('sidebarResizer') - }, - findBar: { - bar: document.getElementById('findbar'), - toggleButton: document.getElementById('viewFind'), - findField: document.getElementById('findInput'), - highlightAllCheckbox: document.getElementById('findHighlightAll'), - caseSensitiveCheckbox: document.getElementById('findMatchCase'), - entireWordCheckbox: document.getElementById('findEntireWord'), - findMsg: document.getElementById('findMsg'), - findResultsCount: document.getElementById('findResultsCount'), - findPreviousButton: document.getElementById('findPrevious'), - findNextButton: document.getElementById('findNext') - }, - passwordOverlay: { - overlayName: 'passwordOverlay', - container: document.getElementById('passwordOverlay'), - label: document.getElementById('passwordText'), - input: document.getElementById('password'), - submitButton: document.getElementById('passwordSubmit'), - cancelButton: document.getElementById('passwordCancel') - }, - documentProperties: { - overlayName: 'documentPropertiesOverlay', - container: document.getElementById('documentPropertiesOverlay'), - closeButton: document.getElementById('documentPropertiesClose'), - fields: { - 'fileName': document.getElementById('fileNameField'), - 'fileSize': document.getElementById('fileSizeField'), - 'title': document.getElementById('titleField'), - 'author': document.getElementById('authorField'), - 'subject': document.getElementById('subjectField'), - 'keywords': document.getElementById('keywordsField'), - 'creationDate': document.getElementById('creationDateField'), - 'modificationDate': document.getElementById('modificationDateField'), - 'creator': document.getElementById('creatorField'), - 'producer': document.getElementById('producerField'), - 'version': document.getElementById('versionField'), - 'pageCount': document.getElementById('pageCountField'), - 'pageSize': document.getElementById('pageSizeField'), - 'linearized': document.getElementById('linearizedField') - } - }, - errorWrapper: { - container: document.getElementById('errorWrapper'), - errorMessage: document.getElementById('errorMessage'), - closeButton: document.getElementById('errorClose'), - errorMoreInfo: document.getElementById('errorMoreInfo'), - moreInfoButton: document.getElementById('errorShowMore'), - lessInfoButton: document.getElementById('errorShowLess') - }, - printContainer: document.getElementById('printContainer'), - openFileInputName: 'fileInput', - debuggerScriptPath: './debugger.js' + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER }; + defaultOptions.locale = { + value: typeof navigator !== "undefined" ? navigator.language : "en-US", + kind: OptionKind.VIEWER + }; + defaultOptions.sandboxBundleSrc = { + value: "../build/pdf.sandbox.js", + kind: OptionKind.VIEWER + }; + defaultOptions.renderer.kind += OptionKind.PREFERENCE; +} +const userOptions = Object.create(null); + +class AppOptions { + constructor() { + throw new Error("Cannot initialize AppOptions."); + } + + static get(name) { + const userOption = userOptions[name]; + + if (userOption !== undefined) { + return userOption; + } + + const defaultOption = defaultOptions[name]; + + if (defaultOption !== undefined) { + return defaultOption.compatibility ?? defaultOption.value; + } + + return undefined; + } + + static getAll(kind = null) { + const options = Object.create(null); + + for (const name in defaultOptions) { + const defaultOption = defaultOptions[name]; + + if (kind) { + if ((kind & defaultOption.kind) === 0) { + continue; + } + + if (kind === OptionKind.PREFERENCE) { + const value = defaultOption.value, + valueType = typeof value; + + if (valueType === "boolean" || valueType === "string" || valueType === "number" && Number.isInteger(value)) { + options[name] = value; + continue; + } + + throw new Error(`Invalid type for preference: ${name}`); + } + } + + const userOption = userOptions[name]; + options[name] = userOption !== undefined ? userOption : defaultOption.compatibility ?? defaultOption.value; + } + + return options; + } + + static set(name, value) { + userOptions[name] = value; + } + + static setAll(options) { + for (const name in options) { + userOptions[name] = options[name]; + } + } + + static remove(name) { + delete userOptions[name]; + } + } -function webViewerLoad() { - var config = getViewerConfiguration(); - window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication; - window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions; - var event = document.createEvent('CustomEvent'); - event.initCustomEvent('webviewerloaded', true, true, {}); - document.dispatchEvent(event); - pdfjsWebApp.PDFViewerApplication.run(config); -} - -if (document.readyState === 'interactive' || document.readyState === 'complete') { - webViewerLoad(); -} else { - document.addEventListener('DOMContentLoaded', webViewerLoad, true); -} +exports.AppOptions = AppOptions; /***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 2 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFPrintServiceFactory = exports.DefaultExternalServices = exports.PDFViewerApplication = void 0; +})); +exports.viewerCompatibilityParams = void 0; +const compatibilityParams = Object.create(null); +{ + const userAgent = typeof navigator !== "undefined" && navigator.userAgent || ""; + const platform = typeof navigator !== "undefined" && navigator.platform || ""; + const maxTouchPoints = typeof navigator !== "undefined" && navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + const isIOSChrome = /CriOS/.test(userAgent); -var _regenerator = _interopRequireDefault(__webpack_require__(2)); + (function checkOnBlobSupport() { + if (isIOSChrome) { + compatibilityParams.disableCreateObjectURL = true; + } + })(); -var _ui_utils = __webpack_require__(5); + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + compatibilityParams.maxCanvasPixels = 5242880; + } + })(); +} +const viewerCompatibilityParams = Object.freeze(compatibilityParams); +exports.viewerCompatibilityParams = viewerCompatibilityParams; -var _app_options = __webpack_require__(6); +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -var _pdfjsLib = __webpack_require__(7); -var _pdf_cursor_tools = __webpack_require__(9); -var _pdf_rendering_queue = __webpack_require__(11); +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFViewerApplication = exports.PDFPrintServiceFactory = exports.DefaultExternalServices = void 0; -var _pdf_sidebar = __webpack_require__(12); +var _ui_utils = __webpack_require__(4); -var _overlay_manager = __webpack_require__(13); +var _app_options = __webpack_require__(1); -var _password_prompt = __webpack_require__(14); +var _pdfjsLib = __webpack_require__(5); -var _pdf_attachment_viewer = __webpack_require__(15); +var _pdf_cursor_tools = __webpack_require__(6); -var _pdf_document_properties = __webpack_require__(16); +var _pdf_rendering_queue = __webpack_require__(8); -var _pdf_find_bar = __webpack_require__(17); +var _overlay_manager = __webpack_require__(9); -var _pdf_find_controller = __webpack_require__(18); +var _password_prompt = __webpack_require__(10); -var _pdf_history = __webpack_require__(20); +var _pdf_attachment_viewer = __webpack_require__(11); -var _pdf_link_service = __webpack_require__(21); +var _pdf_document_properties = __webpack_require__(13); -var _pdf_outline_viewer = __webpack_require__(22); +var _pdf_find_bar = __webpack_require__(14); -var _pdf_presentation_mode = __webpack_require__(23); +var _pdf_find_controller = __webpack_require__(15); + +var _pdf_history = __webpack_require__(17); + +var _pdf_layer_viewer = __webpack_require__(18); + +var _pdf_link_service = __webpack_require__(19); + +var _pdf_outline_viewer = __webpack_require__(20); + +var _pdf_presentation_mode = __webpack_require__(21); + +var _pdf_scripting_manager = __webpack_require__(22); + +var _pdf_sidebar = __webpack_require__(23); var _pdf_sidebar_resizer = __webpack_require__(24); @@ -319,63 +380,89 @@ var _pdf_thumbnail_viewer = __webpack_require__(25); var _pdf_viewer = __webpack_require__(27); -var _secondary_toolbar = __webpack_require__(32); +var _secondary_toolbar = __webpack_require__(35); -var _toolbar = __webpack_require__(34); +var _toolbar = __webpack_require__(37); -var _view_history = __webpack_require__(35); +var _viewer_compatibility = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +var _view_history = __webpack_require__(38); -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -var DEFAULT_SCALE_DELTA = 1.1; -var DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; -var FORCE_PAGES_LOADED_TIMEOUT = 10000; -var WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; -var ViewOnLoad = { +const DEFAULT_SCALE_DELTA = 1.1; +const DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; +const FORCE_PAGES_LOADED_TIMEOUT = 10000; +const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; +const ENABLE_PERMISSIONS_CLASS = "enablePermissions"; +const ViewOnLoad = { UNKNOWN: -1, PREVIOUS: 0, INITIAL: 1 }; -var DefaultExternalServices = { - updateFindControlState: function updateFindControlState(data) {}, - updateFindMatchesCount: function updateFindMatchesCount(data) {}, - initPassiveLoading: function initPassiveLoading(callbacks) {}, - fallback: function fallback(data, callback) {}, - reportTelemetry: function reportTelemetry(data) {}, - createDownloadManager: function createDownloadManager(options) { - throw new Error('Not implemented: createDownloadManager'); - }, - createPreferences: function createPreferences() { - throw new Error('Not implemented: createPreferences'); - }, - createL10n: function createL10n(options) { - throw new Error('Not implemented: createL10n'); - }, - supportsIntegratedFind: false, - supportsDocumentFonts: true, - supportsDocumentColors: true, - supportedMouseWheelZoomModifierKeys: { - ctrlKey: true, - metaKey: true - } +const ViewerCssTheme = { + AUTOMATIC: 0, + LIGHT: 1, + DARK: 2 }; +const KNOWN_VERSIONS = ["1.0", "1.1", "1.2", "1.3", "1.4", "1.5", "1.6", "1.7", "1.8", "1.9", "2.0", "2.1", "2.2", "2.3"]; +const KNOWN_GENERATORS = ["acrobat distiller", "acrobat pdfwriter", "adobe livecycle", "adobe pdf library", "adobe photoshop", "ghostscript", "tcpdf", "cairo", "dvipdfm", "dvips", "pdftex", "pdfkit", "itext", "prince", "quarkxpress", "mac os x", "microsoft", "openoffice", "oracle", "luradocument", "pdf-xchange", "antenna house", "aspose.cells", "fpdf"]; + +class DefaultExternalServices { + constructor() { + throw new Error("Cannot initialize DefaultExternalServices."); + } + + static updateFindControlState(data) {} + + static updateFindMatchesCount(data) {} + + static initPassiveLoading(callbacks) {} + + static async fallback(data) {} + + static reportTelemetry(data) {} + + static createDownloadManager(options) { + throw new Error("Not implemented: createDownloadManager"); + } + + static createPreferences() { + throw new Error("Not implemented: createPreferences"); + } + + static createL10n(options) { + throw new Error("Not implemented: createL10n"); + } + + static createScripting(options) { + throw new Error("Not implemented: createScripting"); + } + + static get supportsIntegratedFind() { + return (0, _pdfjsLib.shadow)(this, "supportsIntegratedFind", false); + } + + static get supportsDocumentFonts() { + return (0, _pdfjsLib.shadow)(this, "supportsDocumentFonts", true); + } + + static get supportedMouseWheelZoomModifierKeys() { + return (0, _pdfjsLib.shadow)(this, "supportedMouseWheelZoomModifierKeys", { + ctrlKey: true, + metaKey: true + }); + } + + static get isInAutomation() { + return (0, _pdfjsLib.shadow)(this, "isInAutomation", false); + } + +} + exports.DefaultExternalServices = DefaultExternalServices; -var PDFViewerApplication = { +const PDFViewerApplication = { initialBookmark: document.location.hash.substring(1), - initialized: false, - fellback: false, + _initializedCapability: (0, _pdfjsLib.createPromiseCapability)(), + _fellback: false, appConfig: null, pdfDocument: null, pdfLoadingTask: null, @@ -391,7 +478,9 @@ var PDFViewerApplication = { pdfSidebarResizer: null, pdfOutlineViewer: null, pdfAttachmentViewer: null, + pdfLayerViewer: null, pdfCursorTools: null, + pdfScriptingManager: null, store: null, downloadManager: null, overlayManager: null, @@ -403,382 +492,318 @@ var PDFViewerApplication = { isInitialViewSet: false, downloadComplete: false, isViewerEmbedded: window.parent !== window, - url: '', - baseUrl: '', + url: "", + baseUrl: "", externalServices: DefaultExternalServices, - _boundEvents: {}, - contentDispositionFilename: null, - initialize: function () { - var _initialize = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(appConfig) { - var _this = this; + _boundEvents: Object.create(null), + documentInfo: null, + metadata: null, + _contentDispositionFilename: null, + _contentLength: null, + _saveInProgress: false, + _wheelUnusedTicks: 0, + _idleCallbacks: new Set(), - var appContainer; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - this.preferences = this.externalServices.createPreferences(); - this.appConfig = appConfig; - _context.next = 4; - return this._readPreferences(); + async initialize(appConfig) { + this.preferences = this.externalServices.createPreferences(); + this.appConfig = appConfig; + await this._readPreferences(); + await this._parseHashParameters(); - case 4: - _context.next = 6; - return this._parseHashParameters(); + this._forceCssTheme(); - case 6: - _context.next = 8; - return this._initializeL10n(); + await this._initializeL10n(); - case 8: - if (this.isViewerEmbedded && _app_options.AppOptions.get('externalLinkTarget') === _pdfjsLib.LinkTarget.NONE) { - _app_options.AppOptions.set('externalLinkTarget', _pdfjsLib.LinkTarget.TOP); - } - - _context.next = 11; - return this._initializeViewerComponents(); - - case 11: - this.bindEvents(); - this.bindWindowEvents(); - appContainer = appConfig.appContainer || document.documentElement; - this.l10n.translate(appContainer).then(function () { - _this.eventBus.dispatch('localized', { - source: _this - }); - }); - this.initialized = true; - - case 16: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function initialize(_x) { - return _initialize.apply(this, arguments); + if (this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdfjsLib.LinkTarget.NONE) { + _app_options.AppOptions.set("externalLinkTarget", _pdfjsLib.LinkTarget.TOP); } - return initialize; - }(), - _readPreferences: function () { - var _readPreferences2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var prefs, name; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (!(_app_options.AppOptions.get('disablePreferences') === true)) { - _context2.next = 2; - break; - } + await this._initializeViewerComponents(); + this.bindEvents(); + this.bindWindowEvents(); + const appContainer = appConfig.appContainer || document.documentElement; + this.l10n.translate(appContainer).then(() => { + this.eventBus.dispatch("localized", { + source: this + }); + }); - return _context2.abrupt("return"); + this._initializedCapability.resolve(); + }, - case 2: - _context2.prev = 2; - _context2.next = 5; - return this.preferences.getAll(); - - case 5: - prefs = _context2.sent; - - for (name in prefs) { - _app_options.AppOptions.set(name, prefs[name]); - } - - _context2.next = 12; - break; - - case 9: - _context2.prev = 9; - _context2.t0 = _context2["catch"](2); - console.error("_readPreferences: \"".concat(_context2.t0.message, "\".")); - - case 12: - case "end": - return _context2.stop(); - } - } - }, _callee2, this, [[2, 9]]); - })); - - function _readPreferences() { - return _readPreferences2.apply(this, arguments); + async _readPreferences() { + if (_app_options.AppOptions.get("disablePreferences")) { + return; } - return _readPreferences; - }(), - _parseHashParameters: function () { - var _parseHashParameters2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3() { - var waitOn, hash, hashParams, viewer, enabled; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - if (_app_options.AppOptions.get('pdfBugEnabled')) { - _context3.next = 2; - break; - } + try { + _app_options.AppOptions.setAll(await this.preferences.getAll()); + } catch (reason) { + console.error(`_readPreferences: "${reason?.message}".`); + } + }, - return _context3.abrupt("return", undefined); - - case 2: - waitOn = []; - hash = document.location.hash.substring(1); - hashParams = (0, _ui_utils.parseQueryString)(hash); - - if ('disableworker' in hashParams && hashParams['disableworker'] === 'true') { - waitOn.push(loadFakeWorker()); - } - - if ('disablerange' in hashParams) { - _app_options.AppOptions.set('disableRange', hashParams['disablerange'] === 'true'); - } - - if ('disablestream' in hashParams) { - _app_options.AppOptions.set('disableStream', hashParams['disablestream'] === 'true'); - } - - if ('disableautofetch' in hashParams) { - _app_options.AppOptions.set('disableAutoFetch', hashParams['disableautofetch'] === 'true'); - } - - if ('disablefontface' in hashParams) { - _app_options.AppOptions.set('disableFontFace', hashParams['disablefontface'] === 'true'); - } - - if ('disablehistory' in hashParams) { - _app_options.AppOptions.set('disableHistory', hashParams['disablehistory'] === 'true'); - } - - if ('webgl' in hashParams) { - _app_options.AppOptions.set('enableWebGL', hashParams['webgl'] === 'true'); - } - - if ('useonlycsszoom' in hashParams) { - _app_options.AppOptions.set('useOnlyCssZoom', hashParams['useonlycsszoom'] === 'true'); - } - - if ('verbosity' in hashParams) { - _app_options.AppOptions.set('verbosity', hashParams['verbosity'] | 0); - } - - if (!('textlayer' in hashParams)) { - _context3.next = 23; - break; - } - - _context3.t0 = hashParams['textlayer']; - _context3.next = _context3.t0 === 'off' ? 18 : _context3.t0 === 'visible' ? 20 : _context3.t0 === 'shadow' ? 20 : _context3.t0 === 'hover' ? 20 : 23; - break; - - case 18: - _app_options.AppOptions.set('textLayerMode', _ui_utils.TextLayerMode.DISABLE); - - return _context3.abrupt("break", 23); - - case 20: - viewer = this.appConfig.viewerContainer; - viewer.classList.add('textLayer-' + hashParams['textlayer']); - return _context3.abrupt("break", 23); - - case 23: - if ('pdfbug' in hashParams) { - _app_options.AppOptions.set('pdfBug', true); - - enabled = hashParams['pdfbug'].split(','); - waitOn.push(loadAndEnablePDFBug(enabled)); - } - - if ('locale' in hashParams) { - _app_options.AppOptions.set('locale', hashParams['locale']); - } - - return _context3.abrupt("return", Promise.all(waitOn)["catch"](function (reason) { - console.error("_parseHashParameters: \"".concat(reason.message, "\".")); - })); - - case 26: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function _parseHashParameters() { - return _parseHashParameters2.apply(this, arguments); + async _parseHashParameters() { + if (!_app_options.AppOptions.get("pdfBugEnabled")) { + return undefined; } - return _parseHashParameters; - }(), - _initializeL10n: function () { - var _initializeL10n2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4() { - var dir; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - this.l10n = this.externalServices.createL10n({ - locale: _app_options.AppOptions.get('locale') - }); - _context4.next = 3; - return this.l10n.getDirection(); + const hash = document.location.hash.substring(1); - case 3: - dir = _context4.sent; - document.getElementsByTagName('html')[0].dir = dir; - - case 5: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function _initializeL10n() { - return _initializeL10n2.apply(this, arguments); + if (!hash) { + return undefined; } - return _initializeL10n; - }(), - _initializeViewerComponents: function () { - var _initializeViewerComponents2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee5() { - var appConfig, eventBus, pdfRenderingQueue, pdfLinkService, downloadManager, findController, container, viewer; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - appConfig = this.appConfig; - this.overlayManager = new _overlay_manager.OverlayManager(); - eventBus = appConfig.eventBus || (0, _ui_utils.getGlobalEventBus)(_app_options.AppOptions.get('eventBusDispatchToDOM')); - this.eventBus = eventBus; - pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); - pdfRenderingQueue.onIdle = this.cleanup.bind(this); - this.pdfRenderingQueue = pdfRenderingQueue; - pdfLinkService = new _pdf_link_service.PDFLinkService({ - eventBus: eventBus, - externalLinkTarget: _app_options.AppOptions.get('externalLinkTarget'), - externalLinkRel: _app_options.AppOptions.get('externalLinkRel') - }); - this.pdfLinkService = pdfLinkService; - downloadManager = this.externalServices.createDownloadManager({ - disableCreateObjectURL: _app_options.AppOptions.get('disableCreateObjectURL') - }); - this.downloadManager = downloadManager; - findController = new _pdf_find_controller.PDFFindController({ - linkService: pdfLinkService, - eventBus: eventBus - }); - this.findController = findController; - container = appConfig.mainContainer; - viewer = appConfig.viewerContainer; - this.pdfViewer = new _pdf_viewer.PDFViewer({ - container: container, - viewer: viewer, - eventBus: eventBus, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - downloadManager: downloadManager, - findController: findController, - renderer: _app_options.AppOptions.get('renderer'), - enableWebGL: _app_options.AppOptions.get('enableWebGL'), - l10n: this.l10n, - textLayerMode: _app_options.AppOptions.get('textLayerMode'), - imageResourcesPath: _app_options.AppOptions.get('imageResourcesPath'), - renderInteractiveForms: _app_options.AppOptions.get('renderInteractiveForms'), - enablePrintAutoRotate: _app_options.AppOptions.get('enablePrintAutoRotate'), - useOnlyCssZoom: _app_options.AppOptions.get('useOnlyCssZoom'), - maxCanvasPixels: _app_options.AppOptions.get('maxCanvasPixels') - }); - pdfRenderingQueue.setViewer(this.pdfViewer); - pdfLinkService.setViewer(this.pdfViewer); - this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ - container: appConfig.sidebar.thumbnailView, - renderingQueue: pdfRenderingQueue, - linkService: pdfLinkService, - l10n: this.l10n - }); - pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); - this.pdfHistory = new _pdf_history.PDFHistory({ - linkService: pdfLinkService, - eventBus: eventBus - }); - pdfLinkService.setHistory(this.pdfHistory); - this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); - this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n); - this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ - container: container, - eventBus: eventBus, - cursorToolOnLoad: _app_options.AppOptions.get('cursorToolOnLoad') - }); - this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); - this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus); + const hashParams = (0, _ui_utils.parseQueryString)(hash), + waitOn = []; - if (this.supportsFullscreen) { - this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ - container: container, - viewer: viewer, - pdfViewer: this.pdfViewer, - eventBus: eventBus, - contextMenuItems: appConfig.fullscreen - }); - } - - this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n); - this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ - container: appConfig.sidebar.outlineView, - eventBus: eventBus, - linkService: pdfLinkService - }); - this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ - container: appConfig.sidebar.attachmentsView, - eventBus: eventBus, - downloadManager: downloadManager - }); - this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ - elements: appConfig.sidebar, - pdfViewer: this.pdfViewer, - pdfThumbnailViewer: this.pdfThumbnailViewer, - eventBus: eventBus, - l10n: this.l10n - }); - this.pdfSidebar.onToggled = this.forceRendering.bind(this); - this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); - - case 34: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function _initializeViewerComponents() { - return _initializeViewerComponents2.apply(this, arguments); + if ("disableworker" in hashParams && hashParams.disableworker === "true") { + waitOn.push(loadFakeWorker()); } - return _initializeViewerComponents; - }(), - run: function run(config) { + if ("disablerange" in hashParams) { + _app_options.AppOptions.set("disableRange", hashParams.disablerange === "true"); + } + + if ("disablestream" in hashParams) { + _app_options.AppOptions.set("disableStream", hashParams.disablestream === "true"); + } + + if ("disableautofetch" in hashParams) { + _app_options.AppOptions.set("disableAutoFetch", hashParams.disableautofetch === "true"); + } + + if ("disablefontface" in hashParams) { + _app_options.AppOptions.set("disableFontFace", hashParams.disablefontface === "true"); + } + + if ("disablehistory" in hashParams) { + _app_options.AppOptions.set("disableHistory", hashParams.disablehistory === "true"); + } + + if ("verbosity" in hashParams) { + _app_options.AppOptions.set("verbosity", hashParams.verbosity | 0); + } + + if ("textlayer" in hashParams) { + switch (hashParams.textlayer) { + case "off": + _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE); + + break; + + case "visible": + case "shadow": + case "hover": + const viewer = this.appConfig.viewerContainer; + viewer.classList.add("textLayer-" + hashParams.textlayer); + break; + } + } + + if ("pdfbug" in hashParams) { + _app_options.AppOptions.set("pdfBug", true); + + _app_options.AppOptions.set("fontExtraProperties", true); + + const enabled = hashParams.pdfbug.split(","); + waitOn.push(loadAndEnablePDFBug(enabled)); + } + + if ("locale" in hashParams) { + _app_options.AppOptions.set("locale", hashParams.locale); + } + + if (waitOn.length === 0) { + return undefined; + } + + return Promise.all(waitOn).catch(reason => { + console.error(`_parseHashParameters: "${reason.message}".`); + }); + }, + + async _initializeL10n() { + this.l10n = this.externalServices.createL10n({ + locale: _app_options.AppOptions.get("locale") + }); + const dir = await this.l10n.getDirection(); + document.getElementsByTagName("html")[0].dir = dir; + }, + + _forceCssTheme() { + const cssTheme = _app_options.AppOptions.get("viewerCssTheme"); + + if (cssTheme === ViewerCssTheme.AUTOMATIC || !Object.values(ViewerCssTheme).includes(cssTheme)) { + return; + } + + try { + const styleSheet = document.styleSheets[0]; + const cssRules = styleSheet?.cssRules || []; + const mediaMatcher = "prefers-color-scheme"; + const mediaRule = `(${mediaMatcher}: dark)`; + const mediaRegex = new RegExp(`^@media \\(${mediaMatcher}: dark\\) {\\n\\s*([\\w\\s-.,:;/\\\\{}()]+)\\n}$`); + + for (let i = 0, ii = cssRules.length; i < ii; i++) { + const rule = cssRules[i]; + + if (rule instanceof CSSMediaRule && rule.media?.[0] === mediaRule) { + if (cssTheme === ViewerCssTheme.LIGHT) { + styleSheet.deleteRule(i); + return; + } + + const darkRules = mediaRegex.exec(rule.cssText); + + if (darkRules?.[1]) { + styleSheet.deleteRule(i); + styleSheet.insertRule(darkRules[1], i); + } + + return; + } + } + } catch (reason) { + console.error(`_forceCssTheme: "${reason?.message}".`); + } + }, + + async _initializeViewerComponents() { + const appConfig = this.appConfig; + const eventBus = appConfig.eventBus || new _ui_utils.EventBus({ + isInAutomation: this.externalServices.isInAutomation + }); + this.eventBus = eventBus; + this.overlayManager = new _overlay_manager.OverlayManager(); + const pdfRenderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + pdfRenderingQueue.onIdle = this._cleanup.bind(this); + this.pdfRenderingQueue = pdfRenderingQueue; + const pdfLinkService = new _pdf_link_service.PDFLinkService({ + eventBus, + externalLinkTarget: _app_options.AppOptions.get("externalLinkTarget"), + externalLinkRel: _app_options.AppOptions.get("externalLinkRel"), + ignoreDestinationZoom: _app_options.AppOptions.get("ignoreDestinationZoom") + }); + this.pdfLinkService = pdfLinkService; + const downloadManager = this.externalServices.createDownloadManager(); + this.downloadManager = downloadManager; + const findController = new _pdf_find_controller.PDFFindController({ + linkService: pdfLinkService, + eventBus + }); + this.findController = findController; + const pdfScriptingManager = new _pdf_scripting_manager.PDFScriptingManager({ + eventBus, + sandboxBundleSrc: _app_options.AppOptions.get("sandboxBundleSrc"), + scriptingFactory: this.externalServices, + docPropertiesLookup: this._scriptingDocProperties.bind(this) + }); + this.pdfScriptingManager = pdfScriptingManager; + const container = appConfig.mainContainer; + const viewer = appConfig.viewerContainer; + this.pdfViewer = new _pdf_viewer.PDFViewer({ + container, + viewer, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + downloadManager, + findController, + scriptingManager: pdfScriptingManager, + renderer: _app_options.AppOptions.get("renderer"), + l10n: this.l10n, + textLayerMode: _app_options.AppOptions.get("textLayerMode"), + imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"), + renderInteractiveForms: _app_options.AppOptions.get("renderInteractiveForms"), + enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"), + useOnlyCssZoom: _app_options.AppOptions.get("useOnlyCssZoom"), + maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels"), + enableScripting: _app_options.AppOptions.get("enableScripting") + }); + pdfRenderingQueue.setViewer(this.pdfViewer); + pdfLinkService.setViewer(this.pdfViewer); + pdfScriptingManager.setViewer(this.pdfViewer); + this.pdfThumbnailViewer = new _pdf_thumbnail_viewer.PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + l10n: this.l10n + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + this.pdfHistory = new _pdf_history.PDFHistory({ + linkService: pdfLinkService, + eventBus + }); + pdfLinkService.setHistory(this.pdfHistory); + + if (!this.supportsIntegratedFind) { + this.findBar = new _pdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, this.l10n); + } + + this.pdfDocumentProperties = new _pdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, this.l10n); + this.pdfCursorTools = new _pdf_cursor_tools.PDFCursorTools({ + container, + eventBus, + cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad") + }); + this.toolbar = new _toolbar.Toolbar(appConfig.toolbar, eventBus, this.l10n); + this.secondaryToolbar = new _secondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, container, eventBus); + + if (this.supportsFullscreen) { + this.pdfPresentationMode = new _pdf_presentation_mode.PDFPresentationMode({ + container, + pdfViewer: this.pdfViewer, + eventBus + }); + } + + this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, this.l10n, this.isViewerEmbedded); + this.pdfOutlineViewer = new _pdf_outline_viewer.PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus, + linkService: pdfLinkService + }); + this.pdfAttachmentViewer = new _pdf_attachment_viewer.PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus, + downloadManager + }); + this.pdfLayerViewer = new _pdf_layer_viewer.PDFLayerViewer({ + container: appConfig.sidebar.layersView, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar = new _pdf_sidebar.PDFSidebar({ + elements: appConfig.sidebar, + pdfViewer: this.pdfViewer, + pdfThumbnailViewer: this.pdfThumbnailViewer, + eventBus, + l10n: this.l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebarResizer = new _pdf_sidebar_resizer.PDFSidebarResizer(appConfig.sidebarResizer, eventBus, this.l10n); + }, + + run(config) { this.initialize(config).then(webViewerInitialized); }, - zoomIn: function zoomIn(ticks) { - var newScale = this.pdfViewer.currentScale; + + get initialized() { + return this._initializedCapability.settled; + }, + + get initializedPromise() { + return this._initializedCapability.promise; + }, + + zoomIn(ticks) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + + let newScale = this.pdfViewer.currentScale; do { newScale = (newScale * DEFAULT_SCALE_DELTA).toFixed(2); @@ -788,8 +813,13 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = newScale; }, - zoomOut: function zoomOut(ticks) { - var newScale = this.pdfViewer.currentScale; + + zoomOut(ticks) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + + let newScale = this.pdfViewer.currentScale; do { newScale = (newScale / DEFAULT_SCALE_DELTA).toFixed(2); @@ -799,13 +829,10 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = newScale; }, - zoomReset: function zoomReset() { - var ignoreDuplicate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + zoomReset() { if (this.pdfViewer.isInPresentationMode) { return; - } else if (ignoreDuplicate && this.pdfViewer.currentScaleValue === _ui_utils.DEFAULT_SCALE_VALUE) { - return; } this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; @@ -815,16 +842,12 @@ var PDFViewerApplication = { return this.pdfDocument ? this.pdfDocument.numPages : 0; }, - set page(val) { - this.pdfViewer.currentPageNumber = val; - }, - get page() { return this.pdfViewer.currentPageNumber; }, - get printing() { - return !!this.printService; + set page(val) { + this.pdfViewer.currentPageNumber = val; }, get supportsPrinting() { @@ -832,15 +855,14 @@ var PDFViewerApplication = { }, get supportsFullscreen() { - var support; - var doc = document.documentElement; - support = !!(doc.requestFullscreen || doc.mozRequestFullScreen || doc.webkitRequestFullScreen || doc.msRequestFullscreen); + const doc = document.documentElement; + let support = !!(doc.requestFullscreen || doc.mozRequestFullScreen || doc.webkitRequestFullScreen); - if (document.fullscreenEnabled === false || document.mozFullScreenEnabled === false || document.webkitFullscreenEnabled === false || document.msFullscreenEnabled === false) { + if (document.fullscreenEnabled === false || document.mozFullScreenEnabled === false || document.webkitFullscreenEnabled === false) { support = false; } - return (0, _pdfjsLib.shadow)(this, 'supportsFullscreen', support); + return (0, _pdfjsLib.shadow)(this, "supportsFullscreen", support); }, get supportsIntegratedFind() { @@ -851,27 +873,23 @@ var PDFViewerApplication = { return this.externalServices.supportsDocumentFonts; }, - get supportsDocumentColors() { - return this.externalServices.supportsDocumentColors; - }, - get loadingBar() { - var bar = new _ui_utils.ProgressBar('#loadingBar'); - return (0, _pdfjsLib.shadow)(this, 'loadingBar', bar); + const bar = new _ui_utils.ProgressBar("#loadingBar"); + return (0, _pdfjsLib.shadow)(this, "loadingBar", bar); }, get supportedMouseWheelZoomModifierKeys() { return this.externalServices.supportedMouseWheelZoomModifierKeys; }, - initPassiveLoading: function initPassiveLoading() { - throw new Error('Not implemented: initPassiveLoading'); + initPassiveLoading() { + throw new Error("Not implemented: initPassiveLoading"); }, - setTitleUsingUrl: function setTitleUsingUrl() { - var url = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ''; + + setTitleUsingUrl(url = "") { this.url = url; - this.baseUrl = url.split('#')[0]; - var title = (0, _ui_utils.getPDFFileNameFromURL)(url, ''); + this.baseUrl = url.split("#")[0]; + let title = (0, _pdfjsLib.getPdfFilenameFromUrl)(url, ""); if (!title) { try { @@ -883,299 +901,359 @@ var PDFViewerApplication = { this.setTitle(title); }, - setTitle: function setTitle(title) { + + setTitle(title) { if (this.isViewerEmbedded) { return; } document.title = title; }, - close: function () { - var _close = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee6() { - var errorWrapper, promise; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - errorWrapper = this.appConfig.errorWrapper.container; - errorWrapper.setAttribute('hidden', 'true'); - if (this.pdfLoadingTask) { - _context6.next = 4; - break; - } + get _docFilename() { + return this._contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url); + }, - return _context6.abrupt("return", undefined); - - case 4: - promise = this.pdfLoadingTask.destroy(); - this.pdfLoadingTask = null; - - if (this.pdfDocument) { - this.pdfDocument = null; - this.pdfThumbnailViewer.setDocument(null); - this.pdfViewer.setDocument(null); - this.pdfLinkService.setDocument(null); - this.pdfDocumentProperties.setDocument(null); - } - - this.store = null; - this.isInitialViewSet = false; - this.downloadComplete = false; - this.url = ''; - this.baseUrl = ''; - this.contentDispositionFilename = null; - this.pdfSidebar.reset(); - this.pdfOutlineViewer.reset(); - this.pdfAttachmentViewer.reset(); - this.findBar.reset(); - this.toolbar.reset(); - this.secondaryToolbar.reset(); - - if (typeof PDFBug !== 'undefined') { - PDFBug.cleanup(); - } - - return _context6.abrupt("return", promise); - - case 21: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function close() { - return _close.apply(this, arguments); - } - - return close; - }(), - open: function () { - var _open = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee7(file, args) { - var _this2 = this; - - var workerParameters, key, parameters, apiParameters, _key, prop, loadingTask; - - return _regenerator["default"].wrap(function _callee7$(_context7) { - while (1) { - switch (_context7.prev = _context7.next) { - case 0: - if (!this.pdfLoadingTask) { - _context7.next = 3; - break; - } - - _context7.next = 3; - return this.close(); - - case 3: - workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); - - for (key in workerParameters) { - _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; - } - - parameters = Object.create(null); - - if (typeof file === 'string') { - this.setTitleUsingUrl(file); - parameters.url = file; - } else if (file && 'byteLength' in file) { - parameters.data = file; - } else if (file.url && file.originalUrl) { - this.setTitleUsingUrl(file.originalUrl); - parameters.url = file.url; - } - - apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); - - for (_key in apiParameters) { - parameters[_key] = apiParameters[_key]; - } - - if (args) { - for (prop in args) { - if (prop === 'length') { - this.pdfDocumentProperties.setFileSize(args[prop]); - } - - parameters[prop] = args[prop]; - } - } - - loadingTask = (0, _pdfjsLib.getDocument)(parameters); - this.pdfLoadingTask = loadingTask; - - loadingTask.onPassword = function (updateCallback, reason) { - _this2.passwordPrompt.setUpdateCallback(updateCallback, reason); - - _this2.passwordPrompt.open(); - }; - - loadingTask.onProgress = function (_ref) { - var loaded = _ref.loaded, - total = _ref.total; - - _this2.progress(loaded / total); - }; - - loadingTask.onUnsupportedFeature = this.fallback.bind(this); - return _context7.abrupt("return", loadingTask.promise.then(function (pdfDocument) { - _this2.load(pdfDocument); - }, function (exception) { - if (loadingTask !== _this2.pdfLoadingTask) { - return undefined; - } - - var message = exception && exception.message; - var loadingErrorMessage; - - if (exception instanceof _pdfjsLib.InvalidPDFException) { - loadingErrorMessage = _this2.l10n.get('invalid_file_error', null, 'Invalid or corrupted PDF file.'); - } else if (exception instanceof _pdfjsLib.MissingPDFException) { - loadingErrorMessage = _this2.l10n.get('missing_file_error', null, 'Missing PDF file.'); - } else if (exception instanceof _pdfjsLib.UnexpectedResponseException) { - loadingErrorMessage = _this2.l10n.get('unexpected_response_error', null, 'Unexpected server response.'); - } else { - loadingErrorMessage = _this2.l10n.get('loading_error', null, 'An error occurred while loading the PDF.'); - } - - return loadingErrorMessage.then(function (msg) { - _this2.error(msg, { - message: message - }); - - throw new Error(msg); - }); - })); - - case 16: - case "end": - return _context7.stop(); - } - } - }, _callee7, this); - })); - - function open(_x2, _x3) { - return _open.apply(this, arguments); - } - - return open; - }(), - download: function download() { - var _this3 = this; - - function downloadByUrl() { - downloadManager.downloadUrl(url, filename); - } - - var url = this.baseUrl; - var filename = this.contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(this.url); - var downloadManager = this.downloadManager; - - downloadManager.onerror = function (err) { - _this3.error("PDF failed to download: ".concat(err)); - }; - - if (!this.pdfDocument || !this.downloadComplete) { - downloadByUrl(); + _cancelIdleCallbacks() { + if (!this._idleCallbacks.size) { return; } - this.pdfDocument.getData().then(function (data) { - var blob = new Blob([data], { - type: 'application/pdf' - }); - downloadManager.download(blob, url, filename); - })["catch"](downloadByUrl); + for (const callback of this._idleCallbacks) { + window.cancelIdleCallback(callback); + } + + this._idleCallbacks.clear(); }, - fallback: function fallback(featureId) {}, - error: function error(message, moreInfo) { - var moreInfoText = [this.l10n.get('error_version_info', { - version: _pdfjsLib.version || '?', - build: _pdfjsLib.build || '?' - }, 'PDF.js v{{version}} (build: {{build}})')]; + + async close() { + this._unblockDocumentLoadEvent(); + + const { + container + } = this.appConfig.errorWrapper; + container.hidden = true; + + if (!this.pdfLoadingTask) { + return; + } + + if (this.pdfDocument?.annotationStorage.size > 0 && this._annotationStorageModified) { + try { + await this.save({ + sourceEventType: "save" + }); + } catch (reason) {} + } + + const promises = []; + promises.push(this.pdfLoadingTask.destroy()); + this.pdfLoadingTask = null; + + if (this.pdfDocument) { + this.pdfDocument = null; + this.pdfThumbnailViewer.setDocument(null); + this.pdfViewer.setDocument(null); + this.pdfLinkService.setDocument(null); + this.pdfDocumentProperties.setDocument(null); + } + + webViewerResetPermissions(); + this._fellback = false; + this.store = null; + this.isInitialViewSet = false; + this.downloadComplete = false; + this.url = ""; + this.baseUrl = ""; + this.documentInfo = null; + this.metadata = null; + this._contentDispositionFilename = null; + this._contentLength = null; + this._saveInProgress = false; + + this._cancelIdleCallbacks(); + + promises.push(this.pdfScriptingManager.destroyPromise); + this.pdfSidebar.reset(); + this.pdfOutlineViewer.reset(); + this.pdfAttachmentViewer.reset(); + this.pdfLayerViewer.reset(); + + if (this.pdfHistory) { + this.pdfHistory.reset(); + } + + if (this.findBar) { + this.findBar.reset(); + } + + this.toolbar.reset(); + this.secondaryToolbar.reset(); + + if (typeof PDFBug !== "undefined") { + PDFBug.cleanup(); + } + + await Promise.all(promises); + }, + + async open(file, args) { + if (this.pdfLoadingTask) { + await this.close(); + } + + const workerParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); + + for (const key in workerParameters) { + _pdfjsLib.GlobalWorkerOptions[key] = workerParameters[key]; + } + + const parameters = Object.create(null); + + if (typeof file === "string") { + this.setTitleUsingUrl(file); + parameters.url = file; + } else if (file && "byteLength" in file) { + parameters.data = file; + } else if (file.url && file.originalUrl) { + this.setTitleUsingUrl(file.originalUrl); + parameters.url = file.url; + } + + const apiParameters = _app_options.AppOptions.getAll(_app_options.OptionKind.API); + + for (const key in apiParameters) { + let value = apiParameters[key]; + + if (key === "docBaseUrl" && !value) {} + + parameters[key] = value; + } + + if (args) { + for (const key in args) { + parameters[key] = args[key]; + } + } + + const loadingTask = (0, _pdfjsLib.getDocument)(parameters); + this.pdfLoadingTask = loadingTask; + + loadingTask.onPassword = (updateCallback, reason) => { + this.pdfLinkService.externalLinkEnabled = false; + this.passwordPrompt.setUpdateCallback(updateCallback, reason); + this.passwordPrompt.open(); + }; + + loadingTask.onProgress = ({ + loaded, + total + }) => { + this.progress(loaded / total); + }; + + loadingTask.onUnsupportedFeature = this.fallback.bind(this); + return loadingTask.promise.then(pdfDocument => { + this.load(pdfDocument); + }, exception => { + if (loadingTask !== this.pdfLoadingTask) { + return undefined; + } + + let key = "loading_error"; + + if (exception instanceof _pdfjsLib.InvalidPDFException) { + key = "invalid_file_error"; + } else if (exception instanceof _pdfjsLib.MissingPDFException) { + key = "missing_file_error"; + } else if (exception instanceof _pdfjsLib.UnexpectedResponseException) { + key = "unexpected_response_error"; + } + + return this.l10n.get(key).then(msg => { + this._documentError(msg, { + message: exception?.message + }); + + throw exception; + }); + }); + }, + + _ensureDownloadComplete() { + if (this.pdfDocument && this.downloadComplete) { + return; + } + + throw new Error("PDF document not downloaded."); + }, + + async download({ + sourceEventType = "download" + } = {}) { + const url = this.baseUrl, + filename = this._docFilename; + + try { + this._ensureDownloadComplete(); + + const data = await this.pdfDocument.getData(); + const blob = new Blob([data], { + type: "application/pdf" + }); + await this.downloadManager.download(blob, url, filename, sourceEventType); + } catch (reason) { + await this.downloadManager.downloadUrl(url, filename); + } + }, + + async save({ + sourceEventType = "download" + } = {}) { + if (this._saveInProgress) { + return; + } + + this._saveInProgress = true; + await this.pdfScriptingManager.dispatchWillSave(); + const url = this.baseUrl, + filename = this._docFilename; + + try { + this._ensureDownloadComplete(); + + const data = await this.pdfDocument.saveDocument(); + const blob = new Blob([data], { + type: "application/pdf" + }); + await this.downloadManager.download(blob, url, filename, sourceEventType); + } catch (reason) { + await this.download({ + sourceEventType + }); + } finally { + await this.pdfScriptingManager.dispatchDidSave(); + this._saveInProgress = false; + } + }, + + downloadOrSave(options) { + if (this.pdfDocument?.annotationStorage.size > 0) { + this.save(options); + } else { + this.download(options); + } + }, + + fallback(featureId) { + this.externalServices.reportTelemetry({ + type: "unsupportedFeature", + featureId + }); + + if (this._fellback) { + return; + } + + this._fellback = true; + this.externalServices.fallback({ + featureId, + url: this.baseUrl + }).then(download => { + if (!download) { + return; + } + + this.download({ + sourceEventType: "download" + }); + }); + }, + + _documentError(message, moreInfo = null) { + this._unblockDocumentLoadEvent(); + + this._otherError(message, moreInfo); + }, + + _otherError(message, moreInfo = null) { + const moreInfoText = [this.l10n.get("error_version_info", { + version: _pdfjsLib.version || "?", + build: _pdfjsLib.build || "?" + })]; if (moreInfo) { - moreInfoText.push(this.l10n.get('error_message', { + moreInfoText.push(this.l10n.get("error_message", { message: moreInfo.message - }, 'Message: {{message}}')); + })); if (moreInfo.stack) { - moreInfoText.push(this.l10n.get('error_stack', { + moreInfoText.push(this.l10n.get("error_stack", { stack: moreInfo.stack - }, 'Stack: {{stack}}')); + })); } else { if (moreInfo.filename) { - moreInfoText.push(this.l10n.get('error_file', { + moreInfoText.push(this.l10n.get("error_file", { file: moreInfo.filename - }, 'File: {{file}}')); + })); } if (moreInfo.lineNumber) { - moreInfoText.push(this.l10n.get('error_line', { + moreInfoText.push(this.l10n.get("error_line", { line: moreInfo.lineNumber - }, 'Line: {{line}}')); + })); } } } - var errorWrapperConfig = this.appConfig.errorWrapper; - var errorWrapper = errorWrapperConfig.container; - errorWrapper.removeAttribute('hidden'); - var errorMessage = errorWrapperConfig.errorMessage; + const errorWrapperConfig = this.appConfig.errorWrapper; + const errorWrapper = errorWrapperConfig.container; + errorWrapper.hidden = false; + const errorMessage = errorWrapperConfig.errorMessage; errorMessage.textContent = message; - var closeButton = errorWrapperConfig.closeButton; + const closeButton = errorWrapperConfig.closeButton; closeButton.onclick = function () { - errorWrapper.setAttribute('hidden', 'true'); + errorWrapper.hidden = true; }; - var errorMoreInfo = errorWrapperConfig.errorMoreInfo; - var moreInfoButton = errorWrapperConfig.moreInfoButton; - var lessInfoButton = errorWrapperConfig.lessInfoButton; + const errorMoreInfo = errorWrapperConfig.errorMoreInfo; + const moreInfoButton = errorWrapperConfig.moreInfoButton; + const lessInfoButton = errorWrapperConfig.lessInfoButton; moreInfoButton.onclick = function () { - errorMoreInfo.removeAttribute('hidden'); - moreInfoButton.setAttribute('hidden', 'true'); - lessInfoButton.removeAttribute('hidden'); - errorMoreInfo.style.height = errorMoreInfo.scrollHeight + 'px'; + errorMoreInfo.hidden = false; + moreInfoButton.hidden = true; + lessInfoButton.hidden = false; + errorMoreInfo.style.height = errorMoreInfo.scrollHeight + "px"; }; lessInfoButton.onclick = function () { - errorMoreInfo.setAttribute('hidden', 'true'); - moreInfoButton.removeAttribute('hidden'); - lessInfoButton.setAttribute('hidden', 'true'); + errorMoreInfo.hidden = true; + moreInfoButton.hidden = false; + lessInfoButton.hidden = true; }; moreInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; lessInfoButton.oncontextmenu = _ui_utils.noContextMenuHandler; closeButton.oncontextmenu = _ui_utils.noContextMenuHandler; - moreInfoButton.removeAttribute('hidden'); - lessInfoButton.setAttribute('hidden', 'true'); - Promise.all(moreInfoText).then(function (parts) { - errorMoreInfo.value = parts.join('\n'); + moreInfoButton.hidden = false; + lessInfoButton.hidden = true; + Promise.all(moreInfoText).then(parts => { + errorMoreInfo.value = parts.join("\n"); }); }, - progress: function progress(level) { - var _this4 = this; + progress(level) { if (this.downloadComplete) { return; } - var percent = Math.round(level * 100); + const percent = Math.round(level * 100); if (percent > this.loadingBar.percent || isNaN(percent)) { this.loadingBar.percent = percent; - var disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams['disableAutoFetch'] : _app_options.AppOptions.get('disableAutoFetch'); + const disableAutoFetch = this.pdfDocument ? this.pdfDocument.loadingParams.disableAutoFetch : _app_options.AppOptions.get("disableAutoFetch"); if (disableAutoFetch && percent) { if (this.disableAutoFetchLoadingBarTimeout) { @@ -1184,296 +1262,426 @@ var PDFViewerApplication = { } this.loadingBar.show(); - this.disableAutoFetchLoadingBarTimeout = setTimeout(function () { - _this4.loadingBar.hide(); - - _this4.disableAutoFetchLoadingBarTimeout = null; + this.disableAutoFetchLoadingBarTimeout = setTimeout(() => { + this.loadingBar.hide(); + this.disableAutoFetchLoadingBarTimeout = null; }, DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT); } } }, - load: function load(pdfDocument) { - var _this5 = this; + load(pdfDocument) { this.pdfDocument = pdfDocument; - pdfDocument.getDownloadInfo().then(function () { - _this5.downloadComplete = true; - - _this5.loadingBar.hide(); - - firstPagePromise.then(function () { - _this5.eventBus.dispatch('documentloaded', { - source: _this5 + pdfDocument.getDownloadInfo().then(({ + length + }) => { + this._contentLength = length; + this.downloadComplete = true; + this.loadingBar.hide(); + firstPagePromise.then(() => { + this.eventBus.dispatch("documentloaded", { + source: this }); }); }); - var pageLayoutPromise = pdfDocument.getPageLayout()["catch"](function () {}); - var pageModePromise = pdfDocument.getPageMode()["catch"](function () {}); - var openActionDestPromise = pdfDocument.getOpenActionDestination()["catch"](function () {}); + const pageLayoutPromise = pdfDocument.getPageLayout().catch(function () {}); + const pageModePromise = pdfDocument.getPageMode().catch(function () {}); + const openActionPromise = pdfDocument.getOpenAction().catch(function () {}); this.toolbar.setPagesCount(pdfDocument.numPages, false); this.secondaryToolbar.setPagesCount(pdfDocument.numPages); - var store = this.store = new _view_history.ViewHistory(pdfDocument.fingerprint); - var baseDocumentUrl; + let baseDocumentUrl; baseDocumentUrl = null; this.pdfLinkService.setDocument(pdfDocument, baseDocumentUrl); this.pdfDocumentProperties.setDocument(pdfDocument, this.url); - var pdfViewer = this.pdfViewer; + const pdfViewer = this.pdfViewer; pdfViewer.setDocument(pdfDocument); - var firstPagePromise = pdfViewer.firstPagePromise; - var pagesPromise = pdfViewer.pagesPromise; - var onePageRendered = pdfViewer.onePageRendered; - var pdfThumbnailViewer = this.pdfThumbnailViewer; + const { + firstPagePromise, + onePageRendered, + pagesPromise + } = pdfViewer; + const pdfThumbnailViewer = this.pdfThumbnailViewer; pdfThumbnailViewer.setDocument(pdfDocument); - firstPagePromise.then(function (pdfPage) { - _this5.loadingBar.setWidth(_this5.appConfig.viewerContainer); + const storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprint)).getMultiple({ + page: null, + zoom: _ui_utils.DEFAULT_SCALE_VALUE, + scrollLeft: "0", + scrollTop: "0", + rotation: null, + sidebarView: _ui_utils.SidebarView.UNKNOWN, + scrollMode: _ui_utils.ScrollMode.UNKNOWN, + spreadMode: _ui_utils.SpreadMode.UNKNOWN + }).catch(() => { + return Object.create(null); + }); + firstPagePromise.then(pdfPage => { + this.loadingBar.setWidth(this.appConfig.viewerContainer); - var storePromise = store.getMultiple({ - page: null, - zoom: _ui_utils.DEFAULT_SCALE_VALUE, - scrollLeft: '0', - scrollTop: '0', - rotation: null, - sidebarView: _pdf_sidebar.SidebarView.UNKNOWN, - scrollMode: _ui_utils.ScrollMode.UNKNOWN, - spreadMode: _ui_utils.SpreadMode.UNKNOWN - })["catch"](function () {}); - Promise.all([storePromise, pageLayoutPromise, pageModePromise, openActionDestPromise]).then( - /*#__PURE__*/ - function () { - var _ref3 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee8(_ref2) { - var _ref4, _ref4$, values, pageLayout, pageMode, openActionDest, viewOnLoad, initialBookmark, zoom, hash, rotation, sidebarView, scrollMode, spreadMode; + this._initializeAnnotationStorageCallbacks(pdfDocument); - return _regenerator["default"].wrap(function _callee8$(_context8) { - while (1) { - switch (_context8.prev = _context8.next) { - case 0: - _ref4 = _slicedToArray(_ref2, 4), _ref4$ = _ref4[0], values = _ref4$ === void 0 ? {} : _ref4$, pageLayout = _ref4[1], pageMode = _ref4[2], openActionDest = _ref4[3]; - viewOnLoad = _app_options.AppOptions.get('viewOnLoad'); + Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { + const viewOnLoad = _app_options.AppOptions.get("viewOnLoad"); - _this5._initializePdfHistory({ - fingerprint: pdfDocument.fingerprint, - viewOnLoad: viewOnLoad, - initialDest: openActionDest - }); + this._initializePdfHistory({ + fingerprint: pdfDocument.fingerprint, + viewOnLoad, + initialDest: openAction?.dest + }); - initialBookmark = _this5.initialBookmark; - zoom = _app_options.AppOptions.get('defaultZoomValue'); - hash = zoom ? "zoom=".concat(zoom) : null; - rotation = null; - sidebarView = _app_options.AppOptions.get('sidebarViewOnLoad'); - scrollMode = _app_options.AppOptions.get('scrollModeOnLoad'); - spreadMode = _app_options.AppOptions.get('spreadModeOnLoad'); + const initialBookmark = this.initialBookmark; - if (values.page && viewOnLoad !== ViewOnLoad.INITIAL) { - hash = "page=".concat(values.page, "&zoom=").concat(zoom || values.zoom, ",") + "".concat(values.scrollLeft, ",").concat(values.scrollTop); - rotation = parseInt(values.rotation, 10); + const zoom = _app_options.AppOptions.get("defaultZoomValue"); - if (sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { - sidebarView = values.sidebarView | 0; - } + let hash = zoom ? `zoom=${zoom}` : null; + let rotation = null; - if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { - scrollMode = values.scrollMode | 0; - } + let sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad"); - if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { - spreadMode = values.spreadMode | 0; - } - } + let scrollMode = _app_options.AppOptions.get("scrollModeOnLoad"); - if (pageMode && sidebarView === _pdf_sidebar.SidebarView.UNKNOWN) { - sidebarView = apiPageModeToSidebarView(pageMode); - } + let spreadMode = _app_options.AppOptions.get("spreadModeOnLoad"); - if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { - spreadMode = apiPageLayoutToSpreadMode(pageLayout); - } + if (stored.page && viewOnLoad !== ViewOnLoad.INITIAL) { + hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; + rotation = parseInt(stored.rotation, 10); - _this5.setInitialView(hash, { - rotation: rotation, - sidebarView: sidebarView, - scrollMode: scrollMode, - spreadMode: spreadMode - }); + if (sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = stored.sidebarView | 0; + } - _this5.eventBus.dispatch('documentinit', { - source: _this5 - }); + if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { + scrollMode = stored.scrollMode | 0; + } - if (!_this5.isViewerEmbedded) { - pdfViewer.focus(); - } + if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = stored.spreadMode | 0; + } + } - _context8.next = 18; - return Promise.race([pagesPromise, new Promise(function (resolve) { - setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); - })]); + if (pageMode && sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = (0, _ui_utils.apiPageModeToSidebarView)(pageMode); + } - case 18: - if (!(!initialBookmark && !hash)) { - _context8.next = 20; - break; - } + if (pageLayout && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = (0, _ui_utils.apiPageLayoutToSpreadMode)(pageLayout); + } - return _context8.abrupt("return"); + this.setInitialView(hash, { + rotation, + sidebarView, + scrollMode, + spreadMode + }); + this.eventBus.dispatch("documentinit", { + source: this + }); - case 20: - if (!pdfViewer.hasEqualPageSizes) { - _context8.next = 22; - break; - } + if (!this.isViewerEmbedded) { + pdfViewer.focus(); + } - return _context8.abrupt("return"); + this._initializePermissions(pdfDocument); - case 22: - _this5.initialBookmark = initialBookmark; - pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + await Promise.race([pagesPromise, new Promise(resolve => { + setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); + })]); - _this5.setInitialView(hash); + if (!initialBookmark && !hash) { + return; + } - case 25: - case "end": - return _context8.stop(); - } - } - }, _callee8); - })); + if (pdfViewer.hasEqualPageSizes) { + return; + } - return function (_x4) { - return _ref3.apply(this, arguments); - }; - }())["catch"](function () { - _this5.setInitialView(); + this.initialBookmark = initialBookmark; + pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + this.setInitialView(hash); + }).catch(() => { + this.setInitialView(); }).then(function () { pdfViewer.update(); }); }); - pdfDocument.getPageLabels().then(function (labels) { - if (!labels || _app_options.AppOptions.get('disablePageLabels')) { - return; - } + pagesPromise.then(() => { + this._unblockDocumentLoadEvent(); - var i = 0, - numLabels = labels.length; - - if (numLabels !== _this5.pagesCount) { - console.error('The number of Page Labels does not match ' + 'the number of pages in the document.'); - return; - } - - while (i < numLabels && labels[i] === (i + 1).toString()) { - i++; - } - - if (i === numLabels) { - return; - } - - pdfViewer.setPageLabels(labels); - pdfThumbnailViewer.setPageLabels(labels); - - _this5.toolbar.setPagesCount(pdfDocument.numPages, true); - - _this5.toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + this._initializeAutoPrint(pdfDocument, openActionPromise); }); - pagesPromise.then(function () { - if (!_this5.supportsPrinting) { - return; - } - - pdfDocument.getJavaScript().then(function (javaScript) { - if (!javaScript) { + onePageRendered.then(() => { + pdfDocument.getOutline().then(outline => { + if (pdfDocument !== this.pdfDocument) { return; } - javaScript.some(function (js) { - if (!js) { - return false; - } - - console.warn('Warning: JavaScript is not supported'); - - _this5.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); - - return true; + this.pdfOutlineViewer.render({ + outline, + pdfDocument }); - var regex = /\bprint\s*\(/; - - for (var i = 0, ii = javaScript.length; i < ii; i++) { - var js = javaScript[i]; - - if (js && regex.test(js)) { - setTimeout(function () { - window.print(); - }); - return; - } + }); + pdfDocument.getAttachments().then(attachments => { + if (pdfDocument !== this.pdfDocument) { + return; } - }); - }); - Promise.all([onePageRendered, _ui_utils.animationStarted]).then(function () { - pdfDocument.getOutline().then(function (outline) { - _this5.pdfOutlineViewer.render({ - outline: outline + + this.pdfAttachmentViewer.render({ + attachments }); }); - pdfDocument.getAttachments().then(function (attachments) { - _this5.pdfAttachmentViewer.render({ - attachments: attachments - }); - }); - }); - pdfDocument.getMetadata().then(function (_ref5) { - var info = _ref5.info, - metadata = _ref5.metadata, - contentDispositionFilename = _ref5.contentDispositionFilename; - _this5.documentInfo = info; - _this5.metadata = metadata; - _this5.contentDispositionFilename = contentDispositionFilename; - console.log('PDF ' + pdfDocument.fingerprint + ' [' + info.PDFFormatVersion + ' ' + (info.Producer || '-').trim() + ' / ' + (info.Creator || '-').trim() + ']' + ' (PDF.js: ' + (_pdfjsLib.version || '-') + (_app_options.AppOptions.get('enableWebGL') ? ' [WebGL]' : '') + ')'); - var pdfTitle; - - if (metadata && metadata.has('dc:title')) { - var title = metadata.get('dc:title'); - - if (title !== 'Untitled') { - pdfTitle = title; + pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { + if (pdfDocument !== this.pdfDocument) { + return; } - } - if (!pdfTitle && info && info['Title']) { - pdfTitle = info['Title']; - } + this.pdfLayerViewer.render({ + optionalContentConfig, + pdfDocument + }); + }); - if (pdfTitle) { - _this5.setTitle("".concat(pdfTitle, " - ").concat(contentDispositionFilename || document.title)); - } else if (contentDispositionFilename) { - _this5.setTitle(contentDispositionFilename); - } + if ("requestIdleCallback" in window) { + const callback = window.requestIdleCallback(() => { + this._collectTelemetry(pdfDocument); - if (info.IsAcroFormPresent) { - console.warn('Warning: AcroForm/XFA is not supported'); + this._idleCallbacks.delete(callback); + }, { + timeout: 1000 + }); - _this5.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + this._idleCallbacks.add(callback); } }); + + this._initializePageLabels(pdfDocument); + + this._initializeMetadata(pdfDocument); + }, + + async _scriptingDocProperties(pdfDocument) { + if (!this.documentInfo) { + await new Promise(resolve => { + this.eventBus._on("metadataloaded", resolve, { + once: true + }); + }); + + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + + if (!this._contentLength) { + await new Promise(resolve => { + this.eventBus._on("documentloaded", resolve, { + once: true + }); + }); + + if (pdfDocument !== this.pdfDocument) { + return null; + } + } + + return { ...this.documentInfo, + baseURL: this.baseUrl, + filesize: this._contentLength, + filename: this._docFilename, + metadata: this.metadata?.getRaw(), + authors: this.metadata?.get("dc:creator"), + numPages: this.pagesCount, + URL: this.url + }; + }, + + async _collectTelemetry(pdfDocument) { + const markInfo = await this.pdfDocument.getMarkInfo(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + const tagged = markInfo?.Marked || false; + this.externalServices.reportTelemetry({ + type: "tagged", + tagged + }); }, - _initializePdfHistory: function _initializePdfHistory(_ref6) { - var fingerprint = _ref6.fingerprint, - viewOnLoad = _ref6.viewOnLoad, - _ref6$initialDest = _ref6.initialDest, - initialDest = _ref6$initialDest === void 0 ? null : _ref6$initialDest; - if (_app_options.AppOptions.get('disableHistory') || this.isViewerEmbedded) { + async _initializeAutoPrint(pdfDocument, openActionPromise) { + const [openAction, javaScript] = await Promise.all([openActionPromise, !this.pdfViewer.enableScripting ? pdfDocument.getJavaScript() : null]); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + let triggerAutoPrint = false; + + if (openAction?.action === "Print") { + triggerAutoPrint = true; + } + + if (javaScript) { + javaScript.some(js => { + if (!js) { + return false; + } + + console.warn("Warning: JavaScript support is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.javaScript); + return true; + }); + + if (!triggerAutoPrint) { + for (const js of javaScript) { + if (js && _ui_utils.AutoPrintRegExp.test(js)) { + triggerAutoPrint = true; + break; + } + } + } + } + + if (triggerAutoPrint) { + this.triggerPrinting(); + } + }, + + async _initializeMetadata(pdfDocument) { + const { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + this.documentInfo = info; + this.metadata = metadata; + this._contentDispositionFilename ?? (this._contentDispositionFilename = contentDispositionFilename); + this._contentLength ?? (this._contentLength = contentLength); + console.log(`PDF ${pdfDocument.fingerprint} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${_pdfjsLib.version || "-"})`); + let pdfTitle = info?.Title; + const metadataTitle = metadata?.get("dc:title"); + + if (metadataTitle) { + if (metadataTitle !== "Untitled" && !/[\uFFF0-\uFFFF]/g.test(metadataTitle)) { + pdfTitle = metadataTitle; + } + } + + if (pdfTitle) { + this.setTitle(`${pdfTitle} - ${contentDispositionFilename || document.title}`); + } else if (contentDispositionFilename) { + this.setTitle(contentDispositionFilename); + } + + if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) { + console.warn("Warning: XFA is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderInteractiveForms) { + console.warn("Warning: Interactive form support is not enabled"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.forms); + } + + if (info.IsSignaturesPresent) { + console.warn("Warning: Digital signatures validation is not supported"); + this.fallback(_pdfjsLib.UNSUPPORTED_FEATURES.signatures); + } + + let versionId = "other"; + + if (KNOWN_VERSIONS.includes(info.PDFFormatVersion)) { + versionId = `v${info.PDFFormatVersion.replace(".", "_")}`; + } + + let generatorId = "other"; + + if (info.Producer) { + const producer = info.Producer.toLowerCase(); + KNOWN_GENERATORS.some(function (generator) { + if (!producer.includes(generator)) { + return false; + } + + generatorId = generator.replace(/[ .-]/g, "_"); + return true; + }); + } + + let formType = null; + + if (info.IsXFAPresent) { + formType = "xfa"; + } else if (info.IsAcroFormPresent) { + formType = "acroform"; + } + + this.externalServices.reportTelemetry({ + type: "documentInfo", + version: versionId, + generator: generatorId, + formType + }); + this.eventBus.dispatch("metadataloaded", { + source: this + }); + }, + + async _initializePageLabels(pdfDocument) { + const labels = await pdfDocument.getPageLabels(); + + if (pdfDocument !== this.pdfDocument) { + return; + } + + if (!labels || _app_options.AppOptions.get("disablePageLabels")) { + return; + } + + const numLabels = labels.length; + + if (numLabels !== this.pagesCount) { + console.error("The number of Page Labels does not match the number of pages in the document."); + return; + } + + let i = 0; + + while (i < numLabels && labels[i] === (i + 1).toString()) { + i++; + } + + if (i === numLabels) { + return; + } + + const { + pdfViewer, + pdfThumbnailViewer, + toolbar + } = this; + pdfViewer.setPageLabels(labels); + pdfThumbnailViewer.setPageLabels(labels); + toolbar.setPagesCount(numLabels, true); + toolbar.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + }, + + _initializePdfHistory({ + fingerprint, + viewOnLoad, + initialDest = null + }) { + if (this.isViewerEmbedded || _app_options.AppOptions.get("disableHistory")) { return; } this.pdfHistory.initialize({ - fingerprint: fingerprint, + fingerprint, resetHistory: viewOnLoad === ViewOnLoad.INITIAL, - updateUrl: _app_options.AppOptions.get('historyUpdateUrl') + updateUrl: _app_options.AppOptions.get("historyUpdateUrl") }); if (this.pdfHistory.initialBookmark) { @@ -1489,28 +1697,62 @@ var PDFViewerApplication = { }); } }, - setInitialView: function setInitialView(storedHash) { - var _this6 = this; - var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - rotation = _ref7.rotation, - sidebarView = _ref7.sidebarView, - scrollMode = _ref7.scrollMode, - spreadMode = _ref7.spreadMode; + async _initializePermissions(pdfDocument) { + const permissions = await pdfDocument.getPermissions(); - var setRotation = function setRotation(angle) { + if (pdfDocument !== this.pdfDocument) { + return; + } + + if (!permissions || !_app_options.AppOptions.get("enablePermissions")) { + return; + } + + if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY)) { + this.appConfig.viewerContainer.classList.add(ENABLE_PERMISSIONS_CLASS); + } + }, + + _initializeAnnotationStorageCallbacks(pdfDocument) { + if (pdfDocument !== this.pdfDocument) { + return; + } + + const { + annotationStorage + } = pdfDocument; + + annotationStorage.onSetModified = () => { + window.addEventListener("beforeunload", beforeUnload); + this._annotationStorageModified = true; + }; + + annotationStorage.onResetModified = () => { + window.removeEventListener("beforeunload", beforeUnload); + delete this._annotationStorageModified; + }; + }, + + setInitialView(storedHash, { + rotation, + sidebarView, + scrollMode, + spreadMode + } = {}) { + const setRotation = angle => { if ((0, _ui_utils.isValidRotation)(angle)) { - _this6.pdfViewer.pagesRotation = angle; + this.pdfViewer.pagesRotation = angle; } }; - var setViewerModes = function setViewerModes(scroll, spread) { + const setViewerModes = (scroll, spread) => { if ((0, _ui_utils.isValidScrollMode)(scroll)) { - _this6.pdfViewer.scrollMode = scroll; + this.pdfViewer.scrollMode = scroll; } if ((0, _ui_utils.isValidSpreadMode)(spread)) { - _this6.pdfViewer.spreadMode = spread; + this.pdfViewer.spreadMode = spread; } }; @@ -1535,249 +1777,421 @@ var PDFViewerApplication = { this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; } }, - cleanup: function cleanup() { + + _cleanup() { if (!this.pdfDocument) { return; } this.pdfViewer.cleanup(); this.pdfThumbnailViewer.cleanup(); - - if (this.pdfViewer.renderer !== _ui_utils.RendererType.SVG) { - this.pdfDocument.cleanup(); - } + this.pdfDocument.cleanup(this.pdfViewer.renderer === _ui_utils.RendererType.SVG); }, - forceRendering: function forceRendering() { - this.pdfRenderingQueue.printing = this.printing; + + forceRendering() { + this.pdfRenderingQueue.printing = !!this.printService; this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar.isThumbnailViewVisible; this.pdfRenderingQueue.renderHighestPriority(); }, - beforePrint: function beforePrint() { - var _this7 = this; + + beforePrint() { + this.pdfScriptingManager.dispatchWillPrint(); if (this.printService) { return; } if (!this.supportsPrinting) { - this.l10n.get('printing_not_supported', null, 'Warning: Printing is not fully supported by ' + 'this browser.').then(function (printMessage) { - _this7.error(printMessage); + this.l10n.get("printing_not_supported").then(msg => { + this._otherError(msg); }); return; } if (!this.pdfViewer.pageViewsReady) { - this.l10n.get('printing_not_ready', null, 'Warning: The PDF is not fully loaded for printing.').then(function (notReadyMessage) { - window.alert(notReadyMessage); + this.l10n.get("printing_not_ready").then(msg => { + window.alert(msg); }); return; } - var pagesOverview = this.pdfViewer.getPagesOverview(); - var printContainer = this.appConfig.printContainer; - var printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, this.l10n); + const pagesOverview = this.pdfViewer.getPagesOverview(); + const printContainer = this.appConfig.printContainer; + + const printResolution = _app_options.AppOptions.get("printResolution"); + + const optionalContentConfigPromise = this.pdfViewer.optionalContentConfigPromise; + const printService = PDFPrintServiceFactory.instance.createPrintService(this.pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, this.l10n); this.printService = printService; this.forceRendering(); printService.layout(); + this.externalServices.reportTelemetry({ + type: "print" + }); }, - afterPrint: function pdfViewSetupAfterPrint() { + + afterPrint() { + this.pdfScriptingManager.dispatchDidPrint(); + if (this.printService) { this.printService.destroy(); this.printService = null; + + if (this.pdfDocument) { + this.pdfDocument.annotationStorage.resetModified(); + } } this.forceRendering(); }, - rotatePages: function rotatePages(delta) { - if (!this.pdfDocument) { - return; - } - var newRotation = (this.pdfViewer.pagesRotation + 360 + delta) % 360; - this.pdfViewer.pagesRotation = newRotation; + rotatePages(delta) { + this.pdfViewer.pagesRotation += delta; }, - requestPresentationMode: function requestPresentationMode() { + + requestPresentationMode() { if (!this.pdfPresentationMode) { return; } this.pdfPresentationMode.request(); }, - bindEvents: function bindEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; + + triggerPrinting() { + if (!this.supportsPrinting) { + return; + } + + window.print(); + }, + + bindEvents() { + const { + eventBus, + _boundEvents + } = this; _boundEvents.beforePrint = this.beforePrint.bind(this); _boundEvents.afterPrint = this.afterPrint.bind(this); - eventBus.on('resize', webViewerResize); - eventBus.on('hashchange', webViewerHashchange); - eventBus.on('beforeprint', _boundEvents.beforePrint); - eventBus.on('afterprint', _boundEvents.afterPrint); - eventBus.on('pagerendered', webViewerPageRendered); - eventBus.on('textlayerrendered', webViewerTextLayerRendered); - eventBus.on('updateviewarea', webViewerUpdateViewarea); - eventBus.on('pagechanging', webViewerPageChanging); - eventBus.on('scalechanging', webViewerScaleChanging); - eventBus.on('rotationchanging', webViewerRotationChanging); - eventBus.on('sidebarviewchanged', webViewerSidebarViewChanged); - eventBus.on('pagemode', webViewerPageMode); - eventBus.on('namedaction', webViewerNamedAction); - eventBus.on('presentationmodechanged', webViewerPresentationModeChanged); - eventBus.on('presentationmode', webViewerPresentationMode); - eventBus.on('openfile', webViewerOpenFile); - eventBus.on('print', webViewerPrint); - eventBus.on('download', webViewerDownload); - eventBus.on('firstpage', webViewerFirstPage); - eventBus.on('lastpage', webViewerLastPage); - eventBus.on('nextpage', webViewerNextPage); - eventBus.on('previouspage', webViewerPreviousPage); - eventBus.on('zoomin', webViewerZoomIn); - eventBus.on('zoomout', webViewerZoomOut); - eventBus.on('zoomreset', webViewerZoomReset); - eventBus.on('pagenumberchanged', webViewerPageNumberChanged); - eventBus.on('scalechanged', webViewerScaleChanged); - eventBus.on('rotatecw', webViewerRotateCw); - eventBus.on('rotateccw', webViewerRotateCcw); - eventBus.on('switchscrollmode', webViewerSwitchScrollMode); - eventBus.on('scrollmodechanged', webViewerScrollModeChanged); - eventBus.on('switchspreadmode', webViewerSwitchSpreadMode); - eventBus.on('spreadmodechanged', webViewerSpreadModeChanged); - eventBus.on('documentproperties', webViewerDocumentProperties); - eventBus.on('find', webViewerFind); - eventBus.on('findfromurlhash', webViewerFindFromUrlHash); - eventBus.on('updatefindmatchescount', webViewerUpdateFindMatchesCount); - eventBus.on('updatefindcontrolstate', webViewerUpdateFindControlState); - eventBus.on('fileinputchange', webViewerFileInputChange); - }, - bindWindowEvents: function bindWindowEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; - _boundEvents.windowResize = function () { - eventBus.dispatch('resize', { + eventBus._on("resize", webViewerResize); + + eventBus._on("hashchange", webViewerHashchange); + + eventBus._on("beforeprint", _boundEvents.beforePrint); + + eventBus._on("afterprint", _boundEvents.afterPrint); + + eventBus._on("pagerendered", webViewerPageRendered); + + eventBus._on("updateviewarea", webViewerUpdateViewarea); + + eventBus._on("pagechanging", webViewerPageChanging); + + eventBus._on("scalechanging", webViewerScaleChanging); + + eventBus._on("rotationchanging", webViewerRotationChanging); + + eventBus._on("sidebarviewchanged", webViewerSidebarViewChanged); + + eventBus._on("pagemode", webViewerPageMode); + + eventBus._on("namedaction", webViewerNamedAction); + + eventBus._on("presentationmodechanged", webViewerPresentationModeChanged); + + eventBus._on("presentationmode", webViewerPresentationMode); + + eventBus._on("print", webViewerPrint); + + eventBus._on("download", webViewerDownload); + + eventBus._on("save", webViewerSave); + + eventBus._on("firstpage", webViewerFirstPage); + + eventBus._on("lastpage", webViewerLastPage); + + eventBus._on("nextpage", webViewerNextPage); + + eventBus._on("previouspage", webViewerPreviousPage); + + eventBus._on("zoomin", webViewerZoomIn); + + eventBus._on("zoomout", webViewerZoomOut); + + eventBus._on("zoomreset", webViewerZoomReset); + + eventBus._on("pagenumberchanged", webViewerPageNumberChanged); + + eventBus._on("scalechanged", webViewerScaleChanged); + + eventBus._on("rotatecw", webViewerRotateCw); + + eventBus._on("rotateccw", webViewerRotateCcw); + + eventBus._on("optionalcontentconfig", webViewerOptionalContentConfig); + + eventBus._on("switchscrollmode", webViewerSwitchScrollMode); + + eventBus._on("scrollmodechanged", webViewerScrollModeChanged); + + eventBus._on("switchspreadmode", webViewerSwitchSpreadMode); + + eventBus._on("spreadmodechanged", webViewerSpreadModeChanged); + + eventBus._on("documentproperties", webViewerDocumentProperties); + + eventBus._on("find", webViewerFind); + + eventBus._on("findfromurlhash", webViewerFindFromUrlHash); + + eventBus._on("updatefindmatchescount", webViewerUpdateFindMatchesCount); + + eventBus._on("updatefindcontrolstate", webViewerUpdateFindControlState); + + if (_app_options.AppOptions.get("pdfBug")) { + _boundEvents.reportPageStatsPDFBug = reportPageStatsPDFBug; + + eventBus._on("pagerendered", _boundEvents.reportPageStatsPDFBug); + + eventBus._on("pagechanging", _boundEvents.reportPageStatsPDFBug); + } + + eventBus._on("fileinputchange", webViewerFileInputChange); + + eventBus._on("openfile", webViewerOpenFile); + }, + + bindWindowEvents() { + const { + eventBus, + _boundEvents + } = this; + + _boundEvents.windowResize = () => { + eventBus.dispatch("resize", { source: window }); }; - _boundEvents.windowHashChange = function () { - eventBus.dispatch('hashchange', { + _boundEvents.windowHashChange = () => { + eventBus.dispatch("hashchange", { source: window, hash: document.location.hash.substring(1) }); }; - _boundEvents.windowBeforePrint = function () { - eventBus.dispatch('beforeprint', { + _boundEvents.windowBeforePrint = () => { + eventBus.dispatch("beforeprint", { source: window }); }; - _boundEvents.windowAfterPrint = function () { - eventBus.dispatch('afterprint', { + _boundEvents.windowAfterPrint = () => { + eventBus.dispatch("afterprint", { source: window }); }; - window.addEventListener('visibilitychange', webViewerVisibilityChange); - window.addEventListener('wheel', webViewerWheel, { + _boundEvents.windowUpdateFromSandbox = event => { + eventBus.dispatch("updatefromsandbox", { + source: window, + detail: event.detail + }); + }; + + window.addEventListener("visibilitychange", webViewerVisibilityChange); + window.addEventListener("wheel", webViewerWheel, { passive: false }); - window.addEventListener('click', webViewerClick); - window.addEventListener('keydown', webViewerKeyDown); - window.addEventListener('resize', _boundEvents.windowResize); - window.addEventListener('hashchange', _boundEvents.windowHashChange); - window.addEventListener('beforeprint', _boundEvents.windowBeforePrint); - window.addEventListener('afterprint', _boundEvents.windowAfterPrint); + window.addEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.addEventListener("click", webViewerClick); + window.addEventListener("keydown", webViewerKeyDown); + window.addEventListener("resize", _boundEvents.windowResize); + window.addEventListener("hashchange", _boundEvents.windowHashChange); + window.addEventListener("beforeprint", _boundEvents.windowBeforePrint); + window.addEventListener("afterprint", _boundEvents.windowAfterPrint); + window.addEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox); }, - unbindEvents: function unbindEvents() { - var eventBus = this.eventBus, - _boundEvents = this._boundEvents; - eventBus.off('resize', webViewerResize); - eventBus.off('hashchange', webViewerHashchange); - eventBus.off('beforeprint', _boundEvents.beforePrint); - eventBus.off('afterprint', _boundEvents.afterPrint); - eventBus.off('pagerendered', webViewerPageRendered); - eventBus.off('textlayerrendered', webViewerTextLayerRendered); - eventBus.off('updateviewarea', webViewerUpdateViewarea); - eventBus.off('pagechanging', webViewerPageChanging); - eventBus.off('scalechanging', webViewerScaleChanging); - eventBus.off('rotationchanging', webViewerRotationChanging); - eventBus.off('sidebarviewchanged', webViewerSidebarViewChanged); - eventBus.off('pagemode', webViewerPageMode); - eventBus.off('namedaction', webViewerNamedAction); - eventBus.off('presentationmodechanged', webViewerPresentationModeChanged); - eventBus.off('presentationmode', webViewerPresentationMode); - eventBus.off('openfile', webViewerOpenFile); - eventBus.off('print', webViewerPrint); - eventBus.off('download', webViewerDownload); - eventBus.off('firstpage', webViewerFirstPage); - eventBus.off('lastpage', webViewerLastPage); - eventBus.off('nextpage', webViewerNextPage); - eventBus.off('previouspage', webViewerPreviousPage); - eventBus.off('zoomin', webViewerZoomIn); - eventBus.off('zoomout', webViewerZoomOut); - eventBus.off('zoomreset', webViewerZoomReset); - eventBus.off('pagenumberchanged', webViewerPageNumberChanged); - eventBus.off('scalechanged', webViewerScaleChanged); - eventBus.off('rotatecw', webViewerRotateCw); - eventBus.off('rotateccw', webViewerRotateCcw); - eventBus.off('switchscrollmode', webViewerSwitchScrollMode); - eventBus.off('scrollmodechanged', webViewerScrollModeChanged); - eventBus.off('switchspreadmode', webViewerSwitchSpreadMode); - eventBus.off('spreadmodechanged', webViewerSpreadModeChanged); - eventBus.off('documentproperties', webViewerDocumentProperties); - eventBus.off('find', webViewerFind); - eventBus.off('findfromurlhash', webViewerFindFromUrlHash); - eventBus.off('updatefindmatchescount', webViewerUpdateFindMatchesCount); - eventBus.off('updatefindcontrolstate', webViewerUpdateFindControlState); - eventBus.off('fileinputchange', webViewerFileInputChange); + + unbindEvents() { + const { + eventBus, + _boundEvents + } = this; + + eventBus._off("resize", webViewerResize); + + eventBus._off("hashchange", webViewerHashchange); + + eventBus._off("beforeprint", _boundEvents.beforePrint); + + eventBus._off("afterprint", _boundEvents.afterPrint); + + eventBus._off("pagerendered", webViewerPageRendered); + + eventBus._off("updateviewarea", webViewerUpdateViewarea); + + eventBus._off("pagechanging", webViewerPageChanging); + + eventBus._off("scalechanging", webViewerScaleChanging); + + eventBus._off("rotationchanging", webViewerRotationChanging); + + eventBus._off("sidebarviewchanged", webViewerSidebarViewChanged); + + eventBus._off("pagemode", webViewerPageMode); + + eventBus._off("namedaction", webViewerNamedAction); + + eventBus._off("presentationmodechanged", webViewerPresentationModeChanged); + + eventBus._off("presentationmode", webViewerPresentationMode); + + eventBus._off("print", webViewerPrint); + + eventBus._off("download", webViewerDownload); + + eventBus._off("save", webViewerSave); + + eventBus._off("firstpage", webViewerFirstPage); + + eventBus._off("lastpage", webViewerLastPage); + + eventBus._off("nextpage", webViewerNextPage); + + eventBus._off("previouspage", webViewerPreviousPage); + + eventBus._off("zoomin", webViewerZoomIn); + + eventBus._off("zoomout", webViewerZoomOut); + + eventBus._off("zoomreset", webViewerZoomReset); + + eventBus._off("pagenumberchanged", webViewerPageNumberChanged); + + eventBus._off("scalechanged", webViewerScaleChanged); + + eventBus._off("rotatecw", webViewerRotateCw); + + eventBus._off("rotateccw", webViewerRotateCcw); + + eventBus._off("optionalcontentconfig", webViewerOptionalContentConfig); + + eventBus._off("switchscrollmode", webViewerSwitchScrollMode); + + eventBus._off("scrollmodechanged", webViewerScrollModeChanged); + + eventBus._off("switchspreadmode", webViewerSwitchSpreadMode); + + eventBus._off("spreadmodechanged", webViewerSpreadModeChanged); + + eventBus._off("documentproperties", webViewerDocumentProperties); + + eventBus._off("find", webViewerFind); + + eventBus._off("findfromurlhash", webViewerFindFromUrlHash); + + eventBus._off("updatefindmatchescount", webViewerUpdateFindMatchesCount); + + eventBus._off("updatefindcontrolstate", webViewerUpdateFindControlState); + + if (_boundEvents.reportPageStatsPDFBug) { + eventBus._off("pagerendered", _boundEvents.reportPageStatsPDFBug); + + eventBus._off("pagechanging", _boundEvents.reportPageStatsPDFBug); + + _boundEvents.reportPageStatsPDFBug = null; + } + + eventBus._off("fileinputchange", webViewerFileInputChange); + + eventBus._off("openfile", webViewerOpenFile); + _boundEvents.beforePrint = null; _boundEvents.afterPrint = null; }, - unbindWindowEvents: function unbindWindowEvents() { - var _boundEvents = this._boundEvents; - window.removeEventListener('visibilitychange', webViewerVisibilityChange); - window.removeEventListener('wheel', webViewerWheel); - window.removeEventListener('click', webViewerClick); - window.removeEventListener('keydown', webViewerKeyDown); - window.removeEventListener('resize', _boundEvents.windowResize); - window.removeEventListener('hashchange', _boundEvents.windowHashChange); - window.removeEventListener('beforeprint', _boundEvents.windowBeforePrint); - window.removeEventListener('afterprint', _boundEvents.windowAfterPrint); + + unbindWindowEvents() { + const { + _boundEvents + } = this; + window.removeEventListener("visibilitychange", webViewerVisibilityChange); + window.removeEventListener("wheel", webViewerWheel, { + passive: false + }); + window.removeEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.removeEventListener("click", webViewerClick); + window.removeEventListener("keydown", webViewerKeyDown); + window.removeEventListener("resize", _boundEvents.windowResize); + window.removeEventListener("hashchange", _boundEvents.windowHashChange); + window.removeEventListener("beforeprint", _boundEvents.windowBeforePrint); + window.removeEventListener("afterprint", _boundEvents.windowAfterPrint); + window.removeEventListener("updatefromsandbox", _boundEvents.windowUpdateFromSandbox); _boundEvents.windowResize = null; _boundEvents.windowHashChange = null; _boundEvents.windowBeforePrint = null; _boundEvents.windowAfterPrint = null; + _boundEvents.windowUpdateFromSandbox = null; + }, + + accumulateWheelTicks(ticks) { + if (this._wheelUnusedTicks > 0 && ticks < 0 || this._wheelUnusedTicks < 0 && ticks > 0) { + this._wheelUnusedTicks = 0; + } + + this._wheelUnusedTicks += ticks; + const wholeTicks = Math.sign(this._wheelUnusedTicks) * Math.floor(Math.abs(this._wheelUnusedTicks)); + this._wheelUnusedTicks -= wholeTicks; + return wholeTicks; + }, + + _unblockDocumentLoadEvent() { + if (document.blockUnblockOnload) { + document.blockUnblockOnload(false); + } + + this._unblockDocumentLoadEvent = () => {}; + }, + + get scriptingReady() { + return this.pdfScriptingManager.ready; } + }; exports.PDFViewerApplication = PDFViewerApplication; -var validateFileURL; +let validateFileURL; { - var HOSTED_VIEWER_ORIGINS = ['null', 'http://mozilla.github.io', 'https://mozilla.github.io']; + const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; - validateFileURL = function validateFileURL(file) { + validateFileURL = function (file) { if (file === undefined) { return; } try { - var viewerOrigin = new _pdfjsLib.URL(window.location.href).origin || 'null'; + const viewerOrigin = new URL(window.location.href).origin || "null"; if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { return; } - var _ref8 = new _pdfjsLib.URL(file, window.location.href), - origin = _ref8.origin, - protocol = _ref8.protocol; + const { + origin, + protocol + } = new URL(file, window.location.href); - // if (origin !== viewerOrigin && protocol !== 'blob:') { - // throw new Error('file origin does not match viewer\'s'); - // } + if (origin !== viewerOrigin && protocol !== "blob:") { + throw new Error("file origin does not match viewer's"); + } } catch (ex) { - var message = ex && ex.message; - PDFViewerApplication.l10n.get('loading_error', null, 'An error occurred while loading the PDF.').then(function (loadingErrorMessage) { - PDFViewerApplication.error(loadingErrorMessage, { - message: message + PDFViewerApplication.l10n.get("loading_error").then(msg => { + PDFViewerApplication._documentError(msg, { + message: ex?.message }); }); throw ex; @@ -1785,184 +2199,210 @@ var validateFileURL; }; } -function loadFakeWorker() { +async function loadFakeWorker() { if (!_pdfjsLib.GlobalWorkerOptions.workerSrc) { - _pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get('workerSrc'); + _pdfjsLib.GlobalWorkerOptions.workerSrc = _app_options.AppOptions.get("workerSrc"); } return (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.getWorkerSrc()); } function loadAndEnablePDFBug(enabledTabs) { - var appConfig = PDFViewerApplication.appConfig; + const appConfig = PDFViewerApplication.appConfig; return (0, _pdfjsLib.loadScript)(appConfig.debuggerScriptPath).then(function () { PDFBug.enable(enabledTabs); PDFBug.init({ - OPS: _pdfjsLib.OPS, - createObjectURL: _pdfjsLib.createObjectURL + OPS: _pdfjsLib.OPS }, appConfig.mainContainer); }); } +function reportPageStatsPDFBug({ + pageNumber +}) { + if (typeof Stats === "undefined" || !Stats.enabled) { + return; + } + + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + const pageStats = pageView?.pdfPage?.stats; + + if (!pageStats) { + return; + } + + Stats.add(pageNumber, pageStats); +} + function webViewerInitialized() { - var appConfig = PDFViewerApplication.appConfig; - var file; - var queryString = document.location.search.substring(1); - var params = (0, _ui_utils.parseQueryString)(queryString); - file = 'file' in params ? params.file : _app_options.AppOptions.get('defaultUrl'); + const appConfig = PDFViewerApplication.appConfig; + let file; + const queryString = document.location.search.substring(1); + const params = (0, _ui_utils.parseQueryString)(queryString); + file = "file" in params ? params.file : _app_options.AppOptions.get("defaultUrl"); validateFileURL(file); - var fileInput = document.createElement('input'); + const fileInput = document.createElement("input"); fileInput.id = appConfig.openFileInputName; - fileInput.className = 'fileInput'; - fileInput.setAttribute('type', 'file'); + fileInput.className = "fileInput"; + fileInput.setAttribute("type", "file"); fileInput.oncontextmenu = _ui_utils.noContextMenuHandler; document.body.appendChild(fileInput); if (!window.File || !window.FileReader || !window.FileList || !window.Blob) { - appConfig.toolbar.openFile.setAttribute('hidden', 'true'); - appConfig.secondaryToolbar.openFileButton.setAttribute('hidden', 'true'); + appConfig.toolbar.openFile.hidden = true; + appConfig.secondaryToolbar.openFileButton.hidden = true; } else { fileInput.value = null; } - fileInput.addEventListener('change', function (evt) { - var files = evt.target.files; + fileInput.addEventListener("change", function (evt) { + const files = evt.target.files; if (!files || files.length === 0) { return; } - PDFViewerApplication.eventBus.dispatch('fileinputchange', { + PDFViewerApplication.eventBus.dispatch("fileinputchange", { source: this, fileInput: evt.target }); }); - appConfig.mainContainer.addEventListener('dragover', function (evt) { + appConfig.mainContainer.addEventListener("dragover", function (evt) { evt.preventDefault(); - evt.dataTransfer.dropEffect = 'move'; + evt.dataTransfer.dropEffect = "move"; }); - appConfig.mainContainer.addEventListener('drop', function (evt) { + appConfig.mainContainer.addEventListener("drop", function (evt) { evt.preventDefault(); - var files = evt.dataTransfer.files; + const files = evt.dataTransfer.files; if (!files || files.length === 0) { return; } - PDFViewerApplication.eventBus.dispatch('fileinputchange', { + PDFViewerApplication.eventBus.dispatch("fileinputchange", { source: this, fileInput: evt.dataTransfer }); }); + if (!PDFViewerApplication.supportsDocumentFonts) { + _app_options.AppOptions.set("disableFontFace", true); + + PDFViewerApplication.l10n.get("web_fonts_disabled").then(msg => { + console.warn(msg); + }); + } + if (!PDFViewerApplication.supportsPrinting) { - appConfig.toolbar.print.classList.add('hidden'); - appConfig.secondaryToolbar.printButton.classList.add('hidden'); + appConfig.toolbar.print.classList.add("hidden"); + appConfig.secondaryToolbar.printButton.classList.add("hidden"); } if (!PDFViewerApplication.supportsFullscreen) { - appConfig.toolbar.presentationModeButton.classList.add('hidden'); - appConfig.secondaryToolbar.presentationModeButton.classList.add('hidden'); + appConfig.toolbar.presentationModeButton.classList.add("hidden"); + appConfig.secondaryToolbar.presentationModeButton.classList.add("hidden"); } if (PDFViewerApplication.supportsIntegratedFind) { - appConfig.toolbar.viewFind.classList.add('hidden'); + appConfig.toolbar.viewFind.classList.add("hidden"); } - appConfig.mainContainer.addEventListener('transitionend', function (evt) { + appConfig.mainContainer.addEventListener("transitionend", function (evt) { if (evt.target === this) { - PDFViewerApplication.eventBus.dispatch('resize', { + PDFViewerApplication.eventBus.dispatch("resize", { source: this }); } }, true); - appConfig.sidebar.toggleButton.addEventListener('click', function () { - PDFViewerApplication.pdfSidebar.toggle(); - }); try { webViewerOpenFileViaURL(file); } catch (reason) { - PDFViewerApplication.l10n.get('loading_error', null, 'An error occurred while loading the PDF.').then(function (msg) { - PDFViewerApplication.error(msg, reason); + PDFViewerApplication.l10n.get("loading_error").then(msg => { + PDFViewerApplication._documentError(msg, reason); }); } } -var webViewerOpenFileViaURL; -{ - webViewerOpenFileViaURL = function webViewerOpenFileViaURL(file) { - if (file && file.lastIndexOf('file:', 0) === 0) { - PDFViewerApplication.setTitleUsingUrl(file); - var xhr = new XMLHttpRequest(); - - xhr.onload = function () { - PDFViewerApplication.open(new Uint8Array(xhr.response)); - }; - - xhr.open('GET', file); - xhr.responseType = 'arraybuffer'; - xhr.send(); - return; - } - - if (file) { - PDFViewerApplication.open(file); - } - }; +function webViewerOpenFileViaURL(file) { + if (file) { + PDFViewerApplication.open(file); + } } -function webViewerPageRendered(evt) { - var pageNumber = evt.pageNumber; - var pageIndex = pageNumber - 1; - var pageView = PDFViewerApplication.pdfViewer.getPageView(pageIndex); +function webViewerResetPermissions() { + const { + appConfig + } = PDFViewerApplication; + if (!appConfig) { + return; + } + + appConfig.viewerContainer.classList.remove(ENABLE_PERMISSIONS_CLASS); +} + +function webViewerPageRendered({ + pageNumber, + timestamp, + error +}) { if (pageNumber === PDFViewerApplication.page) { PDFViewerApplication.toolbar.updateLoadingIndicatorState(false); } - if (!pageView) { - return; - } - if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { - var thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageIndex); - thumbnailView.setImage(pageView); + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + const thumbnailView = PDFViewerApplication.pdfThumbnailViewer.getThumbnail(pageNumber - 1); + + if (pageView && thumbnailView) { + thumbnailView.setImage(pageView); + } } - if (typeof Stats !== 'undefined' && Stats.enabled && pageView.stats) { - Stats.add(pageNumber, pageView.stats); - } - - if (pageView.error) { - PDFViewerApplication.l10n.get('rendering_error', null, 'An error occurred while rendering the page.').then(function (msg) { - PDFViewerApplication.error(msg, pageView.error); + if (error) { + PDFViewerApplication.l10n.get("rendering_error").then(msg => { + PDFViewerApplication._otherError(msg, error); }); } + + PDFViewerApplication.externalServices.reportTelemetry({ + type: "pageInfo", + timestamp + }); + PDFViewerApplication.pdfDocument.getStats().then(function (stats) { + PDFViewerApplication.externalServices.reportTelemetry({ + type: "documentStats", + stats + }); + }); } -function webViewerTextLayerRendered(evt) {} - -function webViewerPageMode(evt) { - var mode = evt.mode, - view; +function webViewerPageMode({ + mode +}) { + let view; switch (mode) { - case 'thumbs': - view = _pdf_sidebar.SidebarView.THUMBS; + case "thumbs": + view = _ui_utils.SidebarView.THUMBS; break; - case 'bookmarks': - case 'outline': - view = _pdf_sidebar.SidebarView.OUTLINE; + case "bookmarks": + case "outline": + view = _ui_utils.SidebarView.OUTLINE; break; - case 'attachments': - view = _pdf_sidebar.SidebarView.ATTACHMENTS; + case "attachments": + view = _ui_utils.SidebarView.ATTACHMENTS; break; - case 'none': - view = _pdf_sidebar.SidebarView.NONE; + case "layers": + view = _ui_utils.SidebarView.LAYERS; + break; + + case "none": + view = _ui_utils.SidebarView.NONE; break; default: @@ -1974,86 +2414,92 @@ function webViewerPageMode(evt) { } function webViewerNamedAction(evt) { - var action = evt.action; - - switch (action) { - case 'GoToPage': + switch (evt.action) { + case "GoToPage": PDFViewerApplication.appConfig.toolbar.pageNumber.select(); break; - case 'Find': + case "Find": if (!PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.findBar.toggle(); } break; + + case "Print": + PDFViewerApplication.triggerPrinting(); + break; + + case "SaveAs": + webViewerSave(); + break; } } function webViewerPresentationModeChanged(evt) { - var active = evt.active, - switchInProgress = evt.switchInProgress; - PDFViewerApplication.pdfViewer.presentationModeState = switchInProgress ? _ui_utils.PresentationModeState.CHANGING : active ? _ui_utils.PresentationModeState.FULLSCREEN : _ui_utils.PresentationModeState.NORMAL; + PDFViewerApplication.pdfViewer.presentationModeState = evt.state; } function webViewerSidebarViewChanged(evt) { PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = PDFViewerApplication.pdfSidebar.isThumbnailViewVisible; - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set('sidebarView', evt.view)["catch"](function () {}); + store.set("sidebarView", evt.view).catch(function () {}); } } function webViewerUpdateViewarea(evt) { - var location = evt.location, - store = PDFViewerApplication.store; + const location = evt.location, + store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { store.setMultiple({ - 'page': location.pageNumber, - 'zoom': location.scale, - 'scrollLeft': location.left, - 'scrollTop': location.top, - 'rotation': location.rotation - })["catch"](function () {}); + page: location.pageNumber, + zoom: location.scale, + scrollLeft: location.left, + scrollTop: location.top, + rotation: location.rotation + }).catch(function () {}); } - var href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); PDFViewerApplication.appConfig.toolbar.viewBookmark.href = href; PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; - var currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); - var loading = currentPage.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED; + const currentPage = PDFViewerApplication.pdfViewer.getPageView(PDFViewerApplication.page - 1); + const loading = currentPage?.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED; PDFViewerApplication.toolbar.updateLoadingIndicatorState(loading); } function webViewerScrollModeChanged(evt) { - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set('scrollMode', evt.mode)["catch"](function () {}); + store.set("scrollMode", evt.mode).catch(function () {}); } } function webViewerSpreadModeChanged(evt) { - var store = PDFViewerApplication.store; + const store = PDFViewerApplication.store; if (store && PDFViewerApplication.isInitialViewSet) { - store.set('spreadMode', evt.mode)["catch"](function () {}); + store.set("spreadMode", evt.mode).catch(function () {}); } } function webViewerResize() { - var pdfDocument = PDFViewerApplication.pdfDocument, - pdfViewer = PDFViewerApplication.pdfViewer; + const { + pdfDocument, + pdfViewer + } = PDFViewerApplication; if (!pdfDocument) { return; } - var currentScaleValue = pdfViewer.currentScaleValue; + const currentScaleValue = pdfViewer.currentScaleValue; - if (currentScaleValue === 'auto' || currentScaleValue === 'page-fit' || currentScaleValue === 'page-width') { + if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { pdfViewer.currentScaleValue = currentScaleValue; } @@ -2061,7 +2507,7 @@ function webViewerResize() { } function webViewerHashchange(evt) { - var hash = evt.hash; + const hash = evt.hash; if (!hash) { return; @@ -2074,21 +2520,21 @@ function webViewerHashchange(evt) { } } -var webViewerFileInputChange; +let webViewerFileInputChange, webViewerOpenFile; { - webViewerFileInputChange = function webViewerFileInputChange(evt) { - if (PDFViewerApplication.pdfViewer && PDFViewerApplication.pdfViewer.isInPresentationMode) { + webViewerFileInputChange = function (evt) { + if (PDFViewerApplication.pdfViewer?.isInPresentationMode) { return; } - var file = evt.fileInput.files[0]; + const file = evt.fileInput.files[0]; - if (_pdfjsLib.URL.createObjectURL && !_app_options.AppOptions.get('disableCreateObjectURL')) { - var url = _pdfjsLib.URL.createObjectURL(file); + if (!_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + let url = URL.createObjectURL(file); if (file.name) { url = { - url: url, + url, originalUrl: file.name }; } @@ -2096,21 +2542,26 @@ var webViewerFileInputChange; PDFViewerApplication.open(url); } else { PDFViewerApplication.setTitleUsingUrl(file.name); - var fileReader = new FileReader(); + const fileReader = new FileReader(); - fileReader.onload = function webViewerChangeFileReaderOnload(evt) { - var buffer = evt.target.result; + fileReader.onload = function webViewerChangeFileReaderOnload(event) { + const buffer = event.target.result; PDFViewerApplication.open(new Uint8Array(buffer)); }; fileReader.readAsArrayBuffer(file); } - var appConfig = PDFViewerApplication.appConfig; - appConfig.toolbar.viewBookmark.setAttribute('hidden', 'true'); - appConfig.secondaryToolbar.viewBookmarkButton.setAttribute('hidden', 'true'); - appConfig.toolbar.download.setAttribute('hidden', 'true'); - appConfig.secondaryToolbar.downloadButton.setAttribute('hidden', 'true'); + const appConfig = PDFViewerApplication.appConfig; + appConfig.toolbar.viewBookmark.hidden = true; + appConfig.secondaryToolbar.viewBookmarkButton.hidden = true; + appConfig.toolbar.download.hidden = true; + appConfig.secondaryToolbar.downloadButton.hidden = true; + }; + + webViewerOpenFile = function (evt) { + const openFileInputName = PDFViewerApplication.appConfig.openFileInputName; + document.getElementById(openFileInputName).click(); }; } @@ -2118,17 +2569,20 @@ function webViewerPresentationMode() { PDFViewerApplication.requestPresentationMode(); } -function webViewerOpenFile() { - var openFileInputName = PDFViewerApplication.appConfig.openFileInputName; - document.getElementById(openFileInputName).click(); -} - function webViewerPrint() { - window.print(); + PDFViewerApplication.triggerPrinting(); } function webViewerDownload() { - PDFViewerApplication.download(); + PDFViewerApplication.downloadOrSave({ + sourceEventType: "download" + }); +} + +function webViewerSave() { + PDFViewerApplication.downloadOrSave({ + sourceEventType: "save" + }); } function webViewerFirstPage() { @@ -2144,11 +2598,11 @@ function webViewerLastPage() { } function webViewerNextPage() { - PDFViewerApplication.page++; + PDFViewerApplication.pdfViewer.nextPage(); } function webViewerPreviousPage() { - PDFViewerApplication.page--; + PDFViewerApplication.pdfViewer.previousPage(); } function webViewerZoomIn() { @@ -2159,15 +2613,15 @@ function webViewerZoomOut() { PDFViewerApplication.zoomOut(); } -function webViewerZoomReset(evt) { - PDFViewerApplication.zoomReset(evt && evt.ignoreDuplicate); +function webViewerZoomReset() { + PDFViewerApplication.zoomReset(); } function webViewerPageNumberChanged(evt) { - var pdfViewer = PDFViewerApplication.pdfViewer; + const pdfViewer = PDFViewerApplication.pdfViewer; - if (evt.value !== '') { - pdfViewer.currentPageLabel = evt.value; + if (evt.value !== "") { + PDFViewerApplication.pdfLinkService.goToPage(evt.value); } if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { @@ -2187,6 +2641,10 @@ function webViewerRotateCcw() { PDFViewerApplication.rotatePages(-90); } +function webViewerOptionalContentConfig(evt) { + PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; +} + function webViewerSwitchScrollMode(evt) { PDFViewerApplication.pdfViewer.scrollMode = evt.mode; } @@ -2200,7 +2658,7 @@ function webViewerDocumentProperties() { } function webViewerFind(evt) { - PDFViewerApplication.findController.executeCommand('find' + evt.type, { + PDFViewerApplication.findController.executeCommand("find" + evt.type, { query: evt.query, phraseSearch: evt.phraseSearch, caseSensitive: evt.caseSensitive, @@ -2211,7 +2669,7 @@ function webViewerFind(evt) { } function webViewerFindFromUrlHash(evt) { - PDFViewerApplication.findController.executeCommand('find', { + PDFViewerApplication.findController.executeCommand("find", { query: evt.query, phraseSearch: evt.phraseSearch, caseSensitive: false, @@ -2221,9 +2679,9 @@ function webViewerFindFromUrlHash(evt) { }); } -function webViewerUpdateFindMatchesCount(_ref9) { - var matchesCount = _ref9.matchesCount; - +function webViewerUpdateFindMatchesCount({ + matchesCount +}) { if (PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); } else { @@ -2231,16 +2689,18 @@ function webViewerUpdateFindMatchesCount(_ref9) { } } -function webViewerUpdateFindControlState(_ref10) { - var state = _ref10.state, - previous = _ref10.previous, - matchesCount = _ref10.matchesCount; - +function webViewerUpdateFindControlState({ + state, + previous, + matchesCount, + rawQuery +}) { if (PDFViewerApplication.supportsIntegratedFind) { PDFViewerApplication.externalServices.updateFindControlState({ result: state, findPrevious: previous, - matchesCount: matchesCount + matchesCount, + rawQuery }); } else { PDFViewerApplication.findBar.updateUIState(state, previous, matchesCount); @@ -2258,31 +2718,25 @@ function webViewerRotationChanging(evt) { PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; } -function webViewerPageChanging(evt) { - var page = evt.pageNumber; - PDFViewerApplication.toolbar.setPageNumber(page, evt.pageLabel || null); - PDFViewerApplication.secondaryToolbar.setPageNumber(page); +function webViewerPageChanging({ + pageNumber, + pageLabel +}) { + PDFViewerApplication.toolbar.setPageNumber(pageNumber, pageLabel); + PDFViewerApplication.secondaryToolbar.setPageNumber(pageNumber); if (PDFViewerApplication.pdfSidebar.isThumbnailViewVisible) { - PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(page); - } - - if (typeof Stats !== 'undefined' && Stats.enabled) { - var pageView = PDFViewerApplication.pdfViewer.getPageView(page - 1); - - if (pageView && pageView.stats) { - Stats.add(page, pageView.stats); - } + PDFViewerApplication.pdfThumbnailViewer.scrollThumbnailIntoView(pageNumber); } } function webViewerVisibilityChange(evt) { - if (document.visibilityState === 'visible') { + if (document.visibilityState === "visible") { setZoomDisabledTimeout(); } } -var zoomDisabledTimeout = null; +let zoomDisabledTimeout = null; function setZoomDisabledTimeout() { if (zoomDisabledTimeout) { @@ -2295,43 +2749,50 @@ function setZoomDisabledTimeout() { } function webViewerWheel(evt) { - var pdfViewer = PDFViewerApplication.pdfViewer; + const { + pdfViewer, + supportedMouseWheelZoomModifierKeys + } = PDFViewerApplication; if (pdfViewer.isInPresentationMode) { return; } - if (evt.ctrlKey || evt.metaKey) { - var support = PDFViewerApplication.supportedMouseWheelZoomModifierKeys; - - if (evt.ctrlKey && !support.ctrlKey || evt.metaKey && !support.metaKey) { - return; - } - + if (evt.ctrlKey && supportedMouseWheelZoomModifierKeys.ctrlKey || evt.metaKey && supportedMouseWheelZoomModifierKeys.metaKey) { evt.preventDefault(); - if (zoomDisabledTimeout || document.visibilityState === 'hidden') { + if (zoomDisabledTimeout || document.visibilityState === "hidden") { return; } - var previousScale = pdfViewer.currentScale; - var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); - var MOUSE_WHEEL_DELTA_PER_PAGE_SCALE = 3.0; - var ticks = delta * MOUSE_WHEEL_DELTA_PER_PAGE_SCALE; + const previousScale = pdfViewer.currentScale; + const delta = (0, _ui_utils.normalizeWheelEventDirection)(evt); + let ticks = 0; + + if (evt.deltaMode === WheelEvent.DOM_DELTA_LINE || evt.deltaMode === WheelEvent.DOM_DELTA_PAGE) { + if (Math.abs(delta) >= 1) { + ticks = Math.sign(delta); + } else { + ticks = PDFViewerApplication.accumulateWheelTicks(delta); + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + ticks = PDFViewerApplication.accumulateWheelTicks(delta / PIXELS_PER_LINE_SCALE); + } if (ticks < 0) { PDFViewerApplication.zoomOut(-ticks); - } else { + } else if (ticks > 0) { PDFViewerApplication.zoomIn(ticks); } - var currentScale = pdfViewer.currentScale; + const currentScale = pdfViewer.currentScale; if (previousScale !== currentScale) { - var scaleCorrectionFactor = currentScale / previousScale - 1; - var rect = pdfViewer.container.getBoundingClientRect(); - var dx = evt.clientX - rect.left; - var dy = evt.clientY - rect.top; + const scaleCorrectionFactor = currentScale / previousScale - 1; + const rect = pdfViewer.container.getBoundingClientRect(); + const dx = evt.clientX - rect.left; + const dy = evt.clientY - rect.top; pdfViewer.container.scrollLeft += dx * scaleCorrectionFactor; pdfViewer.container.scrollTop += dy * scaleCorrectionFactor; } @@ -2340,12 +2801,18 @@ function webViewerWheel(evt) { } } +function webViewerTouchStart(evt) { + if (evt.touches.length > 1) { + evt.preventDefault(); + } +} + function webViewerClick(evt) { if (!PDFViewerApplication.secondaryToolbar.isOpen) { return; } - var appConfig = PDFViewerApplication.appConfig; + const appConfig = PDFViewerApplication.appConfig; if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar.toggleButton) { PDFViewerApplication.secondaryToolbar.close(); @@ -2357,16 +2824,16 @@ function webViewerKeyDown(evt) { return; } - var handled = false, + let handled = false, ensureViewerFocused = false; - var cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); - var pdfViewer = PDFViewerApplication.pdfViewer; - var isViewerInPresentationMode = pdfViewer && pdfViewer.isInPresentationMode; + const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + const pdfViewer = PDFViewerApplication.pdfViewer; + const isViewerInPresentationMode = pdfViewer?.isInPresentationMode; if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { switch (evt.keyCode) { case 70: - if (!PDFViewerApplication.supportsIntegratedFind) { + if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) { PDFViewerApplication.findBar.open(); handled = true; } @@ -2375,10 +2842,10 @@ function webViewerKeyDown(evt) { case 71: if (!PDFViewerApplication.supportsIntegratedFind) { - var findState = PDFViewerApplication.findController.state; + const findState = PDFViewerApplication.findController.state; if (findState) { - PDFViewerApplication.findController.executeCommand('findagain', { + PDFViewerApplication.findController.executeCommand("findagain", { query: findState.query, phraseSearch: findState.phraseSearch, caseSensitive: findState.caseSensitive, @@ -2445,12 +2912,27 @@ function webViewerKeyDown(evt) { } } + const { + eventBus + } = PDFViewerApplication; + if (cmd === 1 || cmd === 8) { switch (evt.keyCode) { case 83: - PDFViewerApplication.download(); + eventBus.dispatch("download", { + source: window + }); handled = true; break; + + case 79: + { + eventBus.dispatch("openfile", { + source: window + }); + handled = true; + } + break; } } @@ -2477,17 +2959,17 @@ function webViewerKeyDown(evt) { return; } - var curElement = document.activeElement || document.querySelector(':focus'); - var curElementTagName = curElement && curElement.tagName.toUpperCase(); + const curElement = (0, _ui_utils.getActiveOrFocusedElement)(); + const curElementTagName = curElement?.tagName.toUpperCase(); - if (curElementTagName === 'INPUT' || curElementTagName === 'TEXTAREA' || curElementTagName === 'SELECT') { + if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement?.isContentEditable) { if (evt.keyCode !== 27) { return; } } if (cmd === 0) { - var turnPage = 0, + let turnPage = 0, turnOnlyIfPageFit = false; switch (evt.keyCode) { @@ -2594,15 +3076,11 @@ function webViewerKeyDown(evt) { break; } - if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === 'page-fit')) { + if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { if (turnPage > 0) { - if (PDFViewerApplication.page < PDFViewerApplication.pagesCount) { - PDFViewerApplication.page++; - } + pdfViewer.nextPage(); } else { - if (PDFViewerApplication.page > 1) { - PDFViewerApplication.page--; - } + pdfViewer.previousPage(); } handled = true; @@ -2613,7 +3091,7 @@ function webViewerKeyDown(evt) { switch (evt.keyCode) { case 13: case 32: - if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== 'page-fit') { + if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { break; } @@ -2631,7 +3109,7 @@ function webViewerKeyDown(evt) { } if (!handled && !isViewerInPresentationMode) { - if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== 'BUTTON') { + if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { ensureViewerFocused = true; } } @@ -2645,893 +3123,123 @@ function webViewerKeyDown(evt) { } } -function apiPageLayoutToSpreadMode(layout) { - switch (layout) { - case 'SinglePage': - case 'OneColumn': - return _ui_utils.SpreadMode.NONE; - - case 'TwoColumnLeft': - case 'TwoPageLeft': - return _ui_utils.SpreadMode.ODD; - - case 'TwoColumnRight': - case 'TwoPageRight': - return _ui_utils.SpreadMode.EVEN; - } - - return _ui_utils.SpreadMode.NONE; +function beforeUnload(evt) { + evt.preventDefault(); + evt.returnValue = ""; + return false; } -function apiPageModeToSidebarView(mode) { - switch (mode) { - case 'UseNone': - return _pdf_sidebar.SidebarView.NONE; - - case 'UseThumbs': - return _pdf_sidebar.SidebarView.THUMBS; - - case 'UseOutlines': - return _pdf_sidebar.SidebarView.OUTLINE; - - case 'UseAttachments': - return _pdf_sidebar.SidebarView.ATTACHMENTS; - - case 'UseOC': - } - - return _pdf_sidebar.SidebarView.NONE; -} - -var PDFPrintServiceFactory = { +const PDFPrintServiceFactory = { instance: { supportsPrinting: false, - createPrintService: function createPrintService() { - throw new Error('Not implemented: createPrintService'); + + createPrintService() { + throw new Error("Not implemented: createPrintService"); } + } }; exports.PDFPrintServiceFactory = PDFPrintServiceFactory; -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -module.exports = __webpack_require__(3); - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; -/* WEBPACK VAR INJECTION */(function(module) { - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -var runtime = function (exports) { - "use strict"; - - var Op = Object.prototype; - var hasOwn = Op.hasOwnProperty; - var undefined; - var $Symbol = typeof Symbol === "function" ? Symbol : {}; - var iteratorSymbol = $Symbol.iterator || "@@iterator"; - var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; - var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; - - function wrap(innerFn, outerFn, self, tryLocsList) { - var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; - var generator = Object.create(protoGenerator.prototype); - var context = new Context(tryLocsList || []); - generator._invoke = makeInvokeMethod(innerFn, self, context); - return generator; - } - - exports.wrap = wrap; - - function tryCatch(fn, obj, arg) { - try { - return { - type: "normal", - arg: fn.call(obj, arg) - }; - } catch (err) { - return { - type: "throw", - arg: err - }; - } - } - - var GenStateSuspendedStart = "suspendedStart"; - var GenStateSuspendedYield = "suspendedYield"; - var GenStateExecuting = "executing"; - var GenStateCompleted = "completed"; - var ContinueSentinel = {}; - - function Generator() {} - - function GeneratorFunction() {} - - function GeneratorFunctionPrototype() {} - - var IteratorPrototype = {}; - - IteratorPrototype[iteratorSymbol] = function () { - return this; - }; - - var getProto = Object.getPrototypeOf; - var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); - - if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { - IteratorPrototype = NativeIteratorPrototype; - } - - var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype); - GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; - GeneratorFunctionPrototype.constructor = GeneratorFunction; - GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction"; - - function defineIteratorMethods(prototype) { - ["next", "throw", "return"].forEach(function (method) { - prototype[method] = function (arg) { - return this._invoke(method, arg); - }; - }); - } - - exports.isGeneratorFunction = function (genFun) { - var ctor = typeof genFun === "function" && genFun.constructor; - return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false; - }; - - exports.mark = function (genFun) { - if (Object.setPrototypeOf) { - Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); - } else { - genFun.__proto__ = GeneratorFunctionPrototype; - - if (!(toStringTagSymbol in genFun)) { - genFun[toStringTagSymbol] = "GeneratorFunction"; - } - } - - genFun.prototype = Object.create(Gp); - return genFun; - }; - - exports.awrap = function (arg) { - return { - __await: arg - }; - }; - - function AsyncIterator(generator) { - function invoke(method, arg, resolve, reject) { - var record = tryCatch(generator[method], generator, arg); - - if (record.type === "throw") { - reject(record.arg); - } else { - var result = record.arg; - var value = result.value; - - if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) { - return Promise.resolve(value.__await).then(function (value) { - invoke("next", value, resolve, reject); - }, function (err) { - invoke("throw", err, resolve, reject); - }); - } - - return Promise.resolve(value).then(function (unwrapped) { - result.value = unwrapped; - resolve(result); - }, function (error) { - return invoke("throw", error, resolve, reject); - }); - } - } - - var previousPromise; - - function enqueue(method, arg) { - function callInvokeWithMethodAndArg() { - return new Promise(function (resolve, reject) { - invoke(method, arg, resolve, reject); - }); - } - - return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg(); - } - - this._invoke = enqueue; - } - - defineIteratorMethods(AsyncIterator.prototype); - - AsyncIterator.prototype[asyncIteratorSymbol] = function () { - return this; - }; - - exports.AsyncIterator = AsyncIterator; - - exports.async = function (innerFn, outerFn, self, tryLocsList) { - var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList)); - return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) { - return result.done ? result.value : iter.next(); - }); - }; - - function makeInvokeMethod(innerFn, self, context) { - var state = GenStateSuspendedStart; - return function invoke(method, arg) { - if (state === GenStateExecuting) { - throw new Error("Generator is already running"); - } - - if (state === GenStateCompleted) { - if (method === "throw") { - throw arg; - } - - return doneResult(); - } - - context.method = method; - context.arg = arg; - - while (true) { - var delegate = context.delegate; - - if (delegate) { - var delegateResult = maybeInvokeDelegate(delegate, context); - - if (delegateResult) { - if (delegateResult === ContinueSentinel) continue; - return delegateResult; - } - } - - if (context.method === "next") { - context.sent = context._sent = context.arg; - } else if (context.method === "throw") { - if (state === GenStateSuspendedStart) { - state = GenStateCompleted; - throw context.arg; - } - - context.dispatchException(context.arg); - } else if (context.method === "return") { - context.abrupt("return", context.arg); - } - - state = GenStateExecuting; - var record = tryCatch(innerFn, self, context); - - if (record.type === "normal") { - state = context.done ? GenStateCompleted : GenStateSuspendedYield; - - if (record.arg === ContinueSentinel) { - continue; - } - - return { - value: record.arg, - done: context.done - }; - } else if (record.type === "throw") { - state = GenStateCompleted; - context.method = "throw"; - context.arg = record.arg; - } - } - }; - } - - function maybeInvokeDelegate(delegate, context) { - var method = delegate.iterator[context.method]; - - if (method === undefined) { - context.delegate = null; - - if (context.method === "throw") { - if (delegate.iterator["return"]) { - context.method = "return"; - context.arg = undefined; - maybeInvokeDelegate(delegate, context); - - if (context.method === "throw") { - return ContinueSentinel; - } - } - - context.method = "throw"; - context.arg = new TypeError("The iterator does not provide a 'throw' method"); - } - - return ContinueSentinel; - } - - var record = tryCatch(method, delegate.iterator, context.arg); - - if (record.type === "throw") { - context.method = "throw"; - context.arg = record.arg; - context.delegate = null; - return ContinueSentinel; - } - - var info = record.arg; - - if (!info) { - context.method = "throw"; - context.arg = new TypeError("iterator result is not an object"); - context.delegate = null; - return ContinueSentinel; - } - - if (info.done) { - context[delegate.resultName] = info.value; - context.next = delegate.nextLoc; - - if (context.method !== "return") { - context.method = "next"; - context.arg = undefined; - } - } else { - return info; - } - - context.delegate = null; - return ContinueSentinel; - } - - defineIteratorMethods(Gp); - Gp[toStringTagSymbol] = "Generator"; - - Gp[iteratorSymbol] = function () { - return this; - }; - - Gp.toString = function () { - return "[object Generator]"; - }; - - function pushTryEntry(locs) { - var entry = { - tryLoc: locs[0] - }; - - if (1 in locs) { - entry.catchLoc = locs[1]; - } - - if (2 in locs) { - entry.finallyLoc = locs[2]; - entry.afterLoc = locs[3]; - } - - this.tryEntries.push(entry); - } - - function resetTryEntry(entry) { - var record = entry.completion || {}; - record.type = "normal"; - delete record.arg; - entry.completion = record; - } - - function Context(tryLocsList) { - this.tryEntries = [{ - tryLoc: "root" - }]; - tryLocsList.forEach(pushTryEntry, this); - this.reset(true); - } - - exports.keys = function (object) { - var keys = []; - - for (var key in object) { - keys.push(key); - } - - keys.reverse(); - return function next() { - while (keys.length) { - var key = keys.pop(); - - if (key in object) { - next.value = key; - next.done = false; - return next; - } - } - - next.done = true; - return next; - }; - }; - - function values(iterable) { - if (iterable) { - var iteratorMethod = iterable[iteratorSymbol]; - - if (iteratorMethod) { - return iteratorMethod.call(iterable); - } - - if (typeof iterable.next === "function") { - return iterable; - } - - if (!isNaN(iterable.length)) { - var i = -1, - next = function next() { - while (++i < iterable.length) { - if (hasOwn.call(iterable, i)) { - next.value = iterable[i]; - next.done = false; - return next; - } - } - - next.value = undefined; - next.done = true; - return next; - }; - - return next.next = next; - } - } - - return { - next: doneResult - }; - } - - exports.values = values; - - function doneResult() { - return { - value: undefined, - done: true - }; - } - - Context.prototype = { - constructor: Context, - reset: function reset(skipTempReset) { - this.prev = 0; - this.next = 0; - this.sent = this._sent = undefined; - this.done = false; - this.delegate = null; - this.method = "next"; - this.arg = undefined; - this.tryEntries.forEach(resetTryEntry); - - if (!skipTempReset) { - for (var name in this) { - if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) { - this[name] = undefined; - } - } - } - }, - stop: function stop() { - this.done = true; - var rootEntry = this.tryEntries[0]; - var rootRecord = rootEntry.completion; - - if (rootRecord.type === "throw") { - throw rootRecord.arg; - } - - return this.rval; - }, - dispatchException: function dispatchException(exception) { - if (this.done) { - throw exception; - } - - var context = this; - - function handle(loc, caught) { - record.type = "throw"; - record.arg = exception; - context.next = loc; - - if (caught) { - context.method = "next"; - context.arg = undefined; - } - - return !!caught; - } - - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - var record = entry.completion; - - if (entry.tryLoc === "root") { - return handle("end"); - } - - if (entry.tryLoc <= this.prev) { - var hasCatch = hasOwn.call(entry, "catchLoc"); - var hasFinally = hasOwn.call(entry, "finallyLoc"); - - if (hasCatch && hasFinally) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } else if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else if (hasCatch) { - if (this.prev < entry.catchLoc) { - return handle(entry.catchLoc, true); - } - } else if (hasFinally) { - if (this.prev < entry.finallyLoc) { - return handle(entry.finallyLoc); - } - } else { - throw new Error("try statement without catch or finally"); - } - } - } - }, - abrupt: function abrupt(type, arg) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) { - var finallyEntry = entry; - break; - } - } - - if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) { - finallyEntry = null; - } - - var record = finallyEntry ? finallyEntry.completion : {}; - record.type = type; - record.arg = arg; - - if (finallyEntry) { - this.method = "next"; - this.next = finallyEntry.finallyLoc; - return ContinueSentinel; - } - - return this.complete(record); - }, - complete: function complete(record, afterLoc) { - if (record.type === "throw") { - throw record.arg; - } - - if (record.type === "break" || record.type === "continue") { - this.next = record.arg; - } else if (record.type === "return") { - this.rval = this.arg = record.arg; - this.method = "return"; - this.next = "end"; - } else if (record.type === "normal" && afterLoc) { - this.next = afterLoc; - } - - return ContinueSentinel; - }, - finish: function finish(finallyLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.finallyLoc === finallyLoc) { - this.complete(entry.completion, entry.afterLoc); - resetTryEntry(entry); - return ContinueSentinel; - } - } - }, - "catch": function _catch(tryLoc) { - for (var i = this.tryEntries.length - 1; i >= 0; --i) { - var entry = this.tryEntries[i]; - - if (entry.tryLoc === tryLoc) { - var record = entry.completion; - - if (record.type === "throw") { - var thrown = record.arg; - resetTryEntry(entry); - } - - return thrown; - } - } - - throw new Error("illegal catch attempt"); - }, - delegateYield: function delegateYield(iterable, resultName, nextLoc) { - this.delegate = { - iterator: values(iterable), - resultName: resultName, - nextLoc: nextLoc - }; - - if (this.method === "next") { - this.arg = undefined; - } - - return ContinueSentinel; - } - }; - return exports; -}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {}); - -try { - regeneratorRuntime = runtime; -} catch (accidentalStrictMode) { - Function("r", "regeneratorRuntime = r")(runtime); -} -/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(4)(module))) - /***/ }), /* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports) => { -module.exports = function (module) { - if (!module.webpackPolyfill) { - module.deprecate = function () {}; - module.paths = []; - if (!module.children) module.children = []; - Object.defineProperty(module, "loaded", { - enumerable: true, - get: function get() { - return module.l; - } - }); - Object.defineProperty(module, "id", { - enumerable: true, - get: function get() { - return module.i; - } - }); - module.webpackPolyfill = 1; - } - - return module; -}; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.apiPageLayoutToSpreadMode = apiPageLayoutToSpreadMode; +exports.apiPageModeToSidebarView = apiPageModeToSidebarView; +exports.approximateFraction = approximateFraction; +exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; +exports.binarySearchFirstItem = binarySearchFirstItem; +exports.getActiveOrFocusedElement = getActiveOrFocusedElement; +exports.getOutputScale = getOutputScale; +exports.getPageSizeInches = getPageSizeInches; +exports.getVisibleElements = getVisibleElements; +exports.isPortraitOrientation = isPortraitOrientation; exports.isValidRotation = isValidRotation; exports.isValidScrollMode = isValidScrollMode; exports.isValidSpreadMode = isValidSpreadMode; -exports.isPortraitOrientation = isPortraitOrientation; -exports.getGlobalEventBus = getGlobalEventBus; -exports.getPDFFileNameFromURL = getPDFFileNameFromURL; -exports.noContextMenuHandler = noContextMenuHandler; -exports.parseQueryString = parseQueryString; -exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; -exports.getVisibleElements = getVisibleElements; -exports.roundToDivide = roundToDivide; -exports.getPageSizeInches = getPageSizeInches; -exports.approximateFraction = approximateFraction; -exports.getOutputScale = getOutputScale; -exports.scrollIntoView = scrollIntoView; -exports.watchScroll = watchScroll; -exports.binarySearchFirstItem = binarySearchFirstItem; -exports.normalizeWheelEventDelta = normalizeWheelEventDelta; -exports.waitOnEventOrTimeout = waitOnEventOrTimeout; exports.moveToEndOfArray = moveToEndOfArray; -exports.WaitOnType = exports.animationStarted = exports.ProgressBar = exports.EventBus = exports.NullL10n = exports.SpreadMode = exports.ScrollMode = exports.TextLayerMode = exports.RendererType = exports.PresentationModeState = exports.VERTICAL_PADDING = exports.SCROLLBAR_PADDING = exports.MAX_AUTO_SCALE = exports.UNKNOWN_SCALE = exports.MAX_SCALE = exports.MIN_SCALE = exports.DEFAULT_SCALE = exports.DEFAULT_SCALE_VALUE = exports.CSS_UNITS = void 0; - -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -var CSS_UNITS = 96.0 / 72.0; +exports.noContextMenuHandler = noContextMenuHandler; +exports.normalizeWheelEventDelta = normalizeWheelEventDelta; +exports.normalizeWheelEventDirection = normalizeWheelEventDirection; +exports.parseQueryString = parseQueryString; +exports.roundToDivide = roundToDivide; +exports.scrollIntoView = scrollIntoView; +exports.waitOnEventOrTimeout = waitOnEventOrTimeout; +exports.watchScroll = watchScroll; +exports.WaitOnType = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RendererType = exports.ProgressBar = exports.PresentationModeState = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.EventBus = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE = exports.CSS_UNITS = exports.AutoPrintRegExp = exports.animationStarted = void 0; +const CSS_UNITS = 96.0 / 72.0; exports.CSS_UNITS = CSS_UNITS; -var DEFAULT_SCALE_VALUE = 'auto'; +const DEFAULT_SCALE_VALUE = "auto"; exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; -var DEFAULT_SCALE = 1.0; +const DEFAULT_SCALE = 1.0; exports.DEFAULT_SCALE = DEFAULT_SCALE; -var MIN_SCALE = 0.10; +const MIN_SCALE = 0.1; exports.MIN_SCALE = MIN_SCALE; -var MAX_SCALE = 10.0; +const MAX_SCALE = 10.0; exports.MAX_SCALE = MAX_SCALE; -var UNKNOWN_SCALE = 0; +const UNKNOWN_SCALE = 0; exports.UNKNOWN_SCALE = UNKNOWN_SCALE; -var MAX_AUTO_SCALE = 1.25; +const MAX_AUTO_SCALE = 1.25; exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; -var SCROLLBAR_PADDING = 40; +const SCROLLBAR_PADDING = 40; exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; -var VERTICAL_PADDING = 5; +const VERTICAL_PADDING = 5; exports.VERTICAL_PADDING = VERTICAL_PADDING; -var PresentationModeState = { +const LOADINGBAR_END_OFFSET_VAR = "--loadingBar-end-offset"; +const PresentationModeState = { UNKNOWN: 0, NORMAL: 1, CHANGING: 2, FULLSCREEN: 3 }; exports.PresentationModeState = PresentationModeState; -var RendererType = { - CANVAS: 'canvas', - SVG: 'svg' +const SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +exports.SidebarView = SidebarView; +const RendererType = { + CANVAS: "canvas", + SVG: "svg" }; exports.RendererType = RendererType; -var TextLayerMode = { +const TextLayerMode = { DISABLE: 0, ENABLE: 1, ENABLE_ENHANCE: 2 }; exports.TextLayerMode = TextLayerMode; -var ScrollMode = { +const ScrollMode = { UNKNOWN: -1, VERTICAL: 0, HORIZONTAL: 1, WRAPPED: 2 }; exports.ScrollMode = ScrollMode; -var SpreadMode = { +const SpreadMode = { UNKNOWN: -1, NONE: 0, ODD: 1, EVEN: 2 }; exports.SpreadMode = SpreadMode; - -function formatL10nValue(text, args) { - if (!args) { - return text; - } - - return text.replace(/\{\{\s*(\w+)\s*\}\}/g, function (all, name) { - return name in args ? args[name] : '{{' + name + '}}'; - }); -} - -var NullL10n = { - getLanguage: function () { - var _getLanguage = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - return _context.abrupt("return", 'en-us'); - - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - function getLanguage() { - return _getLanguage.apply(this, arguments); - } - - return getLanguage; - }(), - getDirection: function () { - var _getDirection = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", 'ltr'); - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function getDirection() { - return _getDirection.apply(this, arguments); - } - - return getDirection; - }(), - get: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(property, args, fallback) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - return _context3.abrupt("return", formatL10nValue(fallback, args)); - - case 1: - case "end": - return _context3.stop(); - } - } - }, _callee3); - })); - - function get(_x, _x2, _x3) { - return _get.apply(this, arguments); - } - - return get; - }(), - translate: function () { - var _translate = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(element) { - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - case "end": - return _context4.stop(); - } - } - }, _callee4); - })); - - function translate(_x4) { - return _translate.apply(this, arguments); - } - - return translate; - }() -}; -exports.NullL10n = NullL10n; +const AutoPrintRegExp = /\bprint\s*\(/; +exports.AutoPrintRegExp = AutoPrintRegExp; function getOutputScale(ctx) { - var devicePixelRatio = window.devicePixelRatio || 1; - var backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.msBackingStorePixelRatio || ctx.oBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; - var pixelRatio = devicePixelRatio / backingStoreRatio; + const devicePixelRatio = window.devicePixelRatio || 1; + const backingStoreRatio = ctx.webkitBackingStorePixelRatio || ctx.mozBackingStorePixelRatio || ctx.backingStorePixelRatio || 1; + const pixelRatio = devicePixelRatio / backingStoreRatio; return { sx: pixelRatio, sy: pixelRatio, @@ -3539,19 +3247,18 @@ function getOutputScale(ctx) { }; } -function scrollIntoView(element, spot) { - var skipOverflowHiddenElements = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var parent = element.offsetParent; +function scrollIntoView(element, spot, skipOverflowHiddenElements = false) { + let parent = element.offsetParent; if (!parent) { - console.error('offsetParent is not set -- cannot scroll'); + console.error("offsetParent is not set -- cannot scroll"); return; } - var offsetY = element.offsetTop + element.clientTop; - var offsetX = element.offsetLeft + element.clientLeft; + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; - while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === 'hidden') { + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || skipOverflowHiddenElements && getComputedStyle(parent).overflow === "hidden") { if (parent.dataset._scaleY) { offsetY /= parent.dataset._scaleY; offsetX /= parent.dataset._scaleX; @@ -3581,23 +3288,23 @@ function scrollIntoView(element, spot) { } function watchScroll(viewAreaElement, callback) { - var debounceScroll = function debounceScroll(evt) { + const debounceScroll = function (evt) { if (rAF) { return; } rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { rAF = null; - var currentX = viewAreaElement.scrollLeft; - var lastX = state.lastX; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; if (currentX !== lastX) { state.right = currentX > lastX; } state.lastX = currentX; - var currentY = viewAreaElement.scrollTop; - var lastY = state.lastY; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; if (currentY !== lastY) { state.down = currentY > lastY; @@ -3608,26 +3315,26 @@ function watchScroll(viewAreaElement, callback) { }); }; - var state = { + const state = { right: true, down: true, lastX: viewAreaElement.scrollLeft, lastY: viewAreaElement.scrollTop, _eventHandler: debounceScroll }; - var rAF = null; - viewAreaElement.addEventListener('scroll', debounceScroll, true); + let rAF = null; + viewAreaElement.addEventListener("scroll", debounceScroll, true); return state; } function parseQueryString(query) { - var parts = query.split('&'); - var params = Object.create(null); + const parts = query.split("&"); + const params = Object.create(null); - for (var i = 0, ii = parts.length; i < ii; ++i) { - var param = parts[i].split('='); - var key = param[0].toLowerCase(); - var value = param.length > 1 ? param[1] : null; + for (let i = 0, ii = parts.length; i < ii; ++i) { + const param = parts[i].split("="); + const key = param[0].toLowerCase(); + const value = param.length > 1 ? param[1] : null; params[decodeURIComponent(key)] = decodeURIComponent(value); } @@ -3635,10 +3342,10 @@ function parseQueryString(query) { } function binarySearchFirstItem(items, condition) { - var minIndex = 0; - var maxIndex = items.length - 1; + let minIndex = 0; + let maxIndex = items.length - 1; - if (items.length === 0 || !condition(items[maxIndex])) { + if (maxIndex < 0 || !condition(items[maxIndex])) { return items.length; } @@ -3647,8 +3354,8 @@ function binarySearchFirstItem(items, condition) { } while (minIndex < maxIndex) { - var currentIndex = minIndex + maxIndex >> 1; - var currentItem = items[currentIndex]; + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; if (condition(currentItem)) { maxIndex = currentIndex; @@ -3665,8 +3372,8 @@ function approximateFraction(x) { return [x, 1]; } - var xinv = 1 / x; - var limit = 8; + const xinv = 1 / x; + const limit = 8; if (xinv > limit) { return [1, limit]; @@ -3674,15 +3381,15 @@ function approximateFraction(x) { return [1, xinv]; } - var x_ = x > 1 ? xinv : x; - var a = 0, + const x_ = x > 1 ? xinv : x; + let a = 0, b = 1, c = 1, d = 1; while (true) { - var p = a + c, - q = b + d; + const p = a + c, + q = b + d; if (q > limit) { break; @@ -3697,7 +3404,7 @@ function approximateFraction(x) { } } - var result; + let result; if (x_ - a / b < c / d - x_) { result = x_ === x ? [a, b] : [b, a]; @@ -3709,24 +3416,19 @@ function approximateFraction(x) { } function roundToDivide(x, div) { - var r = x % div; + const r = x % div; return r === 0 ? x : Math.round(x - r + div); } -function getPageSizeInches(_ref) { - var view = _ref.view, - userUnit = _ref.userUnit, - rotate = _ref.rotate; - - var _view = _slicedToArray(view, 4), - x1 = _view[0], - y1 = _view[1], - x2 = _view[2], - y2 = _view[3]; - - var changeOrientation = rotate % 180 !== 0; - var width = (x2 - x1) / 72 * userUnit; - var height = (y2 - y1) / 72 * userUnit; +function getPageSizeInches({ + view, + userUnit, + rotate +}) { + const [x1, y1, x2, y2] = view; + const changeOrientation = rotate % 180 !== 0; + const width = (x2 - x1) / 72 * userUnit; + const height = (y2 - y1) / 72 * userUnit; return { width: changeOrientation ? height : width, height: changeOrientation ? width : height @@ -3738,15 +3440,15 @@ function backtrackBeforeAllVisibleElements(index, views, top) { return index; } - var elt = views[index].div; - var pageTop = elt.offsetTop + elt.clientTop; + let elt = views[index].div; + let pageTop = elt.offsetTop + elt.clientTop; if (pageTop >= top) { elt = views[index - 1].div; pageTop = elt.offsetTop + elt.clientTop; } - for (var i = index - 2; i >= 0; --i) { + for (let i = index - 2; i >= 0; --i) { elt = views[i].div; if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { @@ -3759,45 +3461,50 @@ function backtrackBeforeAllVisibleElements(index, views, top) { return index; } -function getVisibleElements(scrollEl, views) { - var sortByVisibility = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var horizontal = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var top = scrollEl.scrollTop, - bottom = top + scrollEl.clientHeight; - var left = scrollEl.scrollLeft, - right = left + scrollEl.clientWidth; +function getVisibleElements({ + scrollEl, + views, + sortByVisibility = false, + horizontal = false, + rtl = false +}) { + const top = scrollEl.scrollTop, + bottom = top + scrollEl.clientHeight; + const left = scrollEl.scrollLeft, + right = left + scrollEl.clientWidth; function isElementBottomAfterViewTop(view) { - var element = view.div; - var elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; return elementBottom > top; } - function isElementRightAfterViewLeft(view) { - var element = view.div; - var elementRight = element.offsetLeft + element.clientLeft + element.clientWidth; - return elementRight > left; + function isElementNextAfterViewHorizontally(view) { + const element = view.div; + const elementLeft = element.offsetLeft + element.clientLeft; + const elementRight = elementLeft + element.clientWidth; + return rtl ? elementLeft < right : elementRight > left; } - var visible = [], - numViews = views.length; - var firstVisibleElementInd = numViews === 0 ? 0 : binarySearchFirstItem(views, horizontal ? isElementRightAfterViewLeft : isElementBottomAfterViewTop); + const visible = [], + numViews = views.length; + let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); } - var lastEdge = horizontal ? right : -1; + let lastEdge = horizontal ? right : -1; - for (var i = firstVisibleElementInd; i < numViews; i++) { - var view = views[i], - element = view.div; - var currentWidth = element.offsetLeft + element.clientLeft; - var currentHeight = element.offsetTop + element.clientTop; - var viewWidth = element.clientWidth, - viewHeight = element.clientHeight; - var viewRight = currentWidth + viewWidth; - var viewBottom = currentHeight + viewHeight; + for (let i = firstVisibleElementInd; i < numViews; i++) { + const view = views[i], + element = view.div; + const currentWidth = element.offsetLeft + element.clientLeft; + const currentHeight = element.offsetTop + element.clientTop; + const viewWidth = element.clientWidth, + viewHeight = element.clientHeight; + const viewRight = currentWidth + viewWidth; + const viewBottom = currentHeight + viewHeight; if (lastEdge === -1) { if (viewBottom >= bottom) { @@ -3811,24 +3518,27 @@ function getVisibleElements(scrollEl, views) { continue; } - var hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); - var hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); - var percent = (viewHeight - hiddenHeight) * (viewWidth - hiddenWidth) * 100 / viewHeight / viewWidth | 0; + const hiddenHeight = Math.max(0, top - currentHeight) + Math.max(0, viewBottom - bottom); + const hiddenWidth = Math.max(0, left - currentWidth) + Math.max(0, viewRight - right); + const fractionHeight = (viewHeight - hiddenHeight) / viewHeight, + fractionWidth = (viewWidth - hiddenWidth) / viewWidth; + const percent = fractionHeight * fractionWidth * 100 | 0; visible.push({ id: view.id, x: currentWidth, y: currentHeight, - view: view, - percent: percent + view, + percent, + widthPercent: fractionWidth * 100 | 0 }); } - var first = visible[0], - last = visible[visible.length - 1]; + const first = visible[0], + last = visible[visible.length - 1]; if (sortByVisibility) { visible.sort(function (a, b) { - var pc = a.percent - b.percent; + const pc = a.percent - b.percent; if (Math.abs(pc) > 0.001) { return -pc; @@ -3839,8 +3549,8 @@ function getVisibleElements(scrollEl, views) { } return { - first: first, - last: last, + first, + last, views: visible }; } @@ -3849,59 +3559,23 @@ function noContextMenuHandler(evt) { evt.preventDefault(); } -function isDataSchema(url) { - var i = 0, - ii = url.length; - - while (i < ii && url[i].trim() === '') { - i++; - } - - return url.substring(i, i + 5).toLowerCase() === 'data:'; -} - -function getPDFFileNameFromURL(url) { - var defaultFilename = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'document.pdf'; - - if (typeof url !== 'string') { - return defaultFilename; - } - - if (isDataSchema(url)) { - console.warn('getPDFFileNameFromURL: ' + 'ignoring "data:" URL for performance reasons.'); - return defaultFilename; - } - - var reURI = /^(?:(?:[^:]+:)?\/\/[^\/]+)?([^?#]*)(\?[^#]*)?(#.*)?$/; - var reFilename = /[^\/?#=]+\.pdf\b(?!.*\.pdf\b)/i; - var splitURI = reURI.exec(url); - var suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]); - - if (suggestedFilename) { - suggestedFilename = suggestedFilename[0]; - - if (suggestedFilename.includes('%')) { - try { - suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0]; - } catch (ex) {} - } - } - - return suggestedFilename || defaultFilename; -} - -function normalizeWheelEventDelta(evt) { - var delta = Math.sqrt(evt.deltaX * evt.deltaX + evt.deltaY * evt.deltaY); - var angle = Math.atan2(evt.deltaY, evt.deltaX); +function normalizeWheelEventDirection(evt) { + let delta = Math.hypot(evt.deltaX, evt.deltaY); + const angle = Math.atan2(evt.deltaY, evt.deltaX); if (-0.25 * Math.PI < angle && angle < 0.75 * Math.PI) { delta = -delta; } - var MOUSE_DOM_DELTA_PIXEL_MODE = 0; - var MOUSE_DOM_DELTA_LINE_MODE = 1; - var MOUSE_PIXELS_PER_LINE = 30; - var MOUSE_LINES_PER_PAGE = 30; + return delta; +} + +function normalizeWheelEventDelta(evt) { + let delta = normalizeWheelEventDirection(evt); + const MOUSE_DOM_DELTA_PIXEL_MODE = 0; + const MOUSE_DOM_DELTA_LINE_MODE = 1; + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; if (evt.deltaMode === MOUSE_DOM_DELTA_PIXEL_MODE) { delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; @@ -3928,25 +3602,25 @@ function isPortraitOrientation(size) { return size.width <= size.height; } -var WaitOnType = { - EVENT: 'event', - TIMEOUT: 'timeout' +const WaitOnType = { + EVENT: "event", + TIMEOUT: "timeout" }; exports.WaitOnType = WaitOnType; -function waitOnEventOrTimeout(_ref2) { - var target = _ref2.target, - name = _ref2.name, - _ref2$delay = _ref2.delay, - delay = _ref2$delay === void 0 ? 0 : _ref2$delay; +function waitOnEventOrTimeout({ + target, + name, + delay = 0 +}) { return new Promise(function (resolve, reject) { - if (_typeof(target) !== 'object' || !(name && typeof name === 'string') || !(Number.isInteger(delay) && delay >= 0)) { - throw new Error('waitOnEventOrTimeout - invalid parameters.'); + if (typeof target !== "object" || !(name && typeof name === "string") || !(Number.isInteger(delay) && delay >= 0)) { + throw new Error("waitOnEventOrTimeout - invalid parameters."); } function handler(type) { if (target instanceof EventBus) { - target.off(name, eventHandler); + target._off(name, eventHandler); } else { target.removeEventListener(name, eventHandler); } @@ -3958,232 +3632,198 @@ function waitOnEventOrTimeout(_ref2) { resolve(type); } - var eventHandler = handler.bind(null, WaitOnType.EVENT); + const eventHandler = handler.bind(null, WaitOnType.EVENT); if (target instanceof EventBus) { - target.on(name, eventHandler); + target._on(name, eventHandler); } else { target.addEventListener(name, eventHandler); } - var timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); - var timeout = setTimeout(timeoutHandler, delay); + const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + const timeout = setTimeout(timeoutHandler, delay); }); } -var animationStarted = new Promise(function (resolve) { +const animationStarted = new Promise(function (resolve) { window.requestAnimationFrame(resolve); }); exports.animationStarted = animationStarted; -var EventBus = -/*#__PURE__*/ -function () { - function EventBus() { - var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref3$dispatchToDOM = _ref3.dispatchToDOM, - dispatchToDOM = _ref3$dispatchToDOM === void 0 ? false : _ref3$dispatchToDOM; - - _classCallCheck(this, EventBus); +function dispatchDOMEvent(eventName, args = null) { + throw new Error("Not implemented: dispatchDOMEvent"); +} +class EventBus { + constructor(options) { this._listeners = Object.create(null); - this._dispatchToDOM = dispatchToDOM === true; } - _createClass(EventBus, [{ - key: "on", - value: function on(eventName, listener) { - var eventListeners = this._listeners[eventName]; - - if (!eventListeners) { - eventListeners = []; - this._listeners[eventName] = eventListeners; - } - - eventListeners.push(listener); - } - }, { - key: "off", - value: function off(eventName, listener) { - var eventListeners = this._listeners[eventName]; - var i; - - if (!eventListeners || (i = eventListeners.indexOf(listener)) < 0) { - return; - } - - eventListeners.splice(i, 1); - } - }, { - key: "dispatch", - value: function dispatch(eventName) { - var eventListeners = this._listeners[eventName]; - - if (!eventListeners || eventListeners.length === 0) { - if (this._dispatchToDOM) { - var _args5 = Array.prototype.slice.call(arguments, 1); - - this._dispatchDOMEvent(eventName, _args5); - } - - return; - } - - var args = Array.prototype.slice.call(arguments, 1); - eventListeners.slice(0).forEach(function (listener) { - listener.apply(null, args); - }); - - if (this._dispatchToDOM) { - this._dispatchDOMEvent(eventName, args); - } - } - }, { - key: "_dispatchDOMEvent", - value: function _dispatchDOMEvent(eventName) { - var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - var details = Object.create(null); - - if (args && args.length > 0) { - var obj = args[0]; - - for (var key in obj) { - var value = obj[key]; - - if (key === 'source') { - if (value === window || value === document) { - return; - } - - continue; - } - - details[key] = value; - } - } - - var event = document.createEvent('CustomEvent'); - event.initCustomEvent(eventName, true, true, details); - document.dispatchEvent(event); - } - }]); - - return EventBus; -}(); - -exports.EventBus = EventBus; -var globalEventBus = null; - -function getGlobalEventBus() { - var dispatchToDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!globalEventBus) { - globalEventBus = new EventBus({ - dispatchToDOM: dispatchToDOM + on(eventName, listener, options = null) { + this._on(eventName, listener, { + external: true, + once: options?.once }); } - return globalEventBus; + off(eventName, listener, options = null) { + this._off(eventName, listener, { + external: true, + once: options?.once + }); + } + + dispatch(eventName) { + const eventListeners = this._listeners[eventName]; + + if (!eventListeners || eventListeners.length === 0) { + return; + } + + const args = Array.prototype.slice.call(arguments, 1); + let externalListeners; + + for (const { + listener, + external, + once + } of eventListeners.slice(0)) { + if (once) { + this._off(eventName, listener); + } + + if (external) { + (externalListeners || (externalListeners = [])).push(listener); + continue; + } + + listener.apply(null, args); + } + + if (externalListeners) { + for (const listener of externalListeners) { + listener.apply(null, args); + } + + externalListeners = null; + } + } + + _on(eventName, listener, options = null) { + var _this$_listeners; + + const eventListeners = (_this$_listeners = this._listeners)[eventName] || (_this$_listeners[eventName] = []); + eventListeners.push({ + listener, + external: options?.external === true, + once: options?.once === true + }); + } + + _off(eventName, listener, options = null) { + const eventListeners = this._listeners[eventName]; + + if (!eventListeners) { + return; + } + + for (let i = 0, ii = eventListeners.length; i < ii; i++) { + if (eventListeners[i].listener === listener) { + eventListeners.splice(i, 1); + return; + } + } + } + } +exports.EventBus = EventBus; + function clamp(v, min, max) { return Math.min(Math.max(v, min), max); } -var ProgressBar = -/*#__PURE__*/ -function () { - function ProgressBar(id) { - var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, - height = _ref4.height, - width = _ref4.width, - units = _ref4.units; - - _classCallCheck(this, ProgressBar); - +class ProgressBar { + constructor(id, { + height, + width, + units + } = {}) { this.visible = true; - this.div = document.querySelector(id + ' .progress'); + this.div = document.querySelector(id + " .progress"); this.bar = this.div.parentNode; this.height = height || 100; this.width = width || 100; - this.units = units || '%'; + this.units = units || "%"; this.div.style.height = this.height + this.units; this.percent = 0; } - _createClass(ProgressBar, [{ - key: "_updateBar", - value: function _updateBar() { - if (this._indeterminate) { - this.div.classList.add('indeterminate'); - this.div.style.width = this.width + this.units; - return; - } - - this.div.classList.remove('indeterminate'); - var progressSize = this.width * this._percent / 100; - this.div.style.width = progressSize + this.units; + _updateBar() { + if (this._indeterminate) { + this.div.classList.add("indeterminate"); + this.div.style.width = this.width + this.units; + return; } - }, { - key: "setWidth", - value: function setWidth(viewer) { - if (!viewer) { - return; - } - var container = viewer.parentNode; - var scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + this.div.classList.remove("indeterminate"); + const progressSize = this.width * this._percent / 100; + this.div.style.width = progressSize + this.units; + } - if (scrollbarWidth > 0) { - this.bar.setAttribute('style', 'width: calc(100% - ' + scrollbarWidth + 'px);'); - } + get percent() { + return this._percent; + } + + set percent(val) { + this._indeterminate = isNaN(val); + this._percent = clamp(val, 0, 100); + + this._updateBar(); + } + + setWidth(viewer) { + if (!viewer) { + return; } - }, { - key: "hide", - value: function hide() { - if (!this.visible) { - return; - } - this.visible = false; - this.bar.classList.add('hidden'); - document.body.classList.remove('loadingInProgress'); + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + + if (scrollbarWidth > 0) { + const doc = document.documentElement; + doc.style.setProperty(LOADINGBAR_END_OFFSET_VAR, `${scrollbarWidth}px`); } - }, { - key: "show", - value: function show() { - if (this.visible) { - return; - } + } - this.visible = true; - document.body.classList.add('loadingInProgress'); - this.bar.classList.remove('hidden'); + hide() { + if (!this.visible) { + return; } - }, { - key: "percent", - get: function get() { - return this._percent; - }, - set: function set(val) { - this._indeterminate = isNaN(val); - this._percent = clamp(val, 0, 100); - this._updateBar(); + this.visible = false; + this.bar.classList.add("hidden"); + } + + show() { + if (this.visible) { + return; } - }]); - return ProgressBar; -}(); + this.visible = true; + this.bar.classList.remove("hidden"); + } + +} exports.ProgressBar = ProgressBar; function moveToEndOfArray(arr, condition) { - var moved = [], - len = arr.length; - var write = 0; + const moved = [], + len = arr.length; + let write = 0; - for (var read = 0; read < len; ++read) { + for (let read = 0; read < len; ++read) { if (condition(arr[read])) { moved.push(arr[read]); } else { @@ -4192,360 +3832,106 @@ function moveToEndOfArray(arr, condition) { } } - for (var _read = 0; write < len; ++_read, ++write) { - arr[write] = moved[_read]; + for (let read = 0; write < len; ++read, ++write) { + arr[write] = moved[read]; } } -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { +function getActiveOrFocusedElement() { + let curRoot = document; + let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.OptionKind = exports.AppOptions = void 0; - -var _pdfjsLib = __webpack_require__(7); - -var _viewer_compatibility = __webpack_require__(8); - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var OptionKind = { - VIEWER: 0x02, - API: 0x04, - WORKER: 0x08, - PREFERENCE: 0x80 -}; -exports.OptionKind = OptionKind; -var defaultOptions = { - cursorToolOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - defaultUrl: { - value: 'compressed.tracemonkey-pldi-09.pdf', - kind: OptionKind.VIEWER - }, - defaultZoomValue: { - value: '', - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - disableHistory: { - value: false, - kind: OptionKind.VIEWER - }, - disablePageLabels: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enablePrintAutoRotate: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - enableWebGL: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - eventBusDispatchToDOM: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - externalLinkRel: { - value: 'noopener noreferrer nofollow', - kind: OptionKind.VIEWER - }, - externalLinkTarget: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - historyUpdateUrl: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - imageResourcesPath: { - value: './images/', - kind: OptionKind.VIEWER - }, - maxCanvasPixels: { - value: 16777216, - compatibility: _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels, - kind: OptionKind.VIEWER - }, - pdfBugEnabled: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - renderer: { - value: 'canvas', - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - renderInteractiveForms: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - sidebarViewOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - scrollModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - spreadModeOnLoad: { - value: -1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - textLayerMode: { - value: 1, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - useOnlyCssZoom: { - value: false, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - viewOnLoad: { - value: 0, - kind: OptionKind.VIEWER + OptionKind.PREFERENCE - }, - cMapPacked: { - value: true, - kind: OptionKind.API - }, - cMapUrl: { - value: '../web/cmaps/', - kind: OptionKind.API - }, - disableAutoFetch: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableCreateObjectURL: { - value: false, - compatibility: _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL, - kind: OptionKind.API - }, - disableFontFace: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableRange: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - disableStream: { - value: false, - kind: OptionKind.API + OptionKind.PREFERENCE - }, - isEvalSupported: { - value: true, - kind: OptionKind.API - }, - maxImageSize: { - value: -1, - kind: OptionKind.API - }, - pdfBug: { - value: false, - kind: OptionKind.API - }, - postMessageTransfers: { - value: true, - kind: OptionKind.API - }, - verbosity: { - value: 1, - kind: OptionKind.API - }, - workerPort: { - value: null, - kind: OptionKind.WORKER - }, - workerSrc: { - value: '../build/pdf.worker.js', - kind: OptionKind.WORKER + while (curActiveOrFocused?.shadowRoot) { + curRoot = curActiveOrFocused.shadowRoot; + curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); } -}; -{ - defaultOptions.disablePreferences = { - value: false, - kind: OptionKind.VIEWER - }; - defaultOptions.locale = { - value: typeof navigator !== 'undefined' ? navigator.language : 'en-US', - kind: OptionKind.VIEWER - }; - defaultOptions.printResolution = { - value: 150, - kind: OptionKind.VIEWER - }; + + return curActiveOrFocused; } -var userOptions = Object.create(null); -var AppOptions = -/*#__PURE__*/ -function () { - function AppOptions() { - _classCallCheck(this, AppOptions); +function apiPageLayoutToSpreadMode(layout) { + switch (layout) { + case "SinglePage": + case "OneColumn": + return SpreadMode.NONE; - throw new Error('Cannot initialize AppOptions.'); + case "TwoColumnLeft": + case "TwoPageLeft": + return SpreadMode.ODD; + + case "TwoColumnRight": + case "TwoPageRight": + return SpreadMode.EVEN; } - _createClass(AppOptions, null, [{ - key: "get", - value: function get(name) { - var userOption = userOptions[name]; + return SpreadMode.NONE; +} - if (userOption !== undefined) { - return userOption; - } +function apiPageModeToSidebarView(mode) { + switch (mode) { + case "UseNone": + return SidebarView.NONE; - var defaultOption = defaultOptions[name]; + case "UseThumbs": + return SidebarView.THUMBS; - if (defaultOption !== undefined) { - return defaultOption.compatibility || defaultOption.value; - } + case "UseOutlines": + return SidebarView.OUTLINE; - return undefined; - } - }, { - key: "getAll", - value: function getAll() { - var kind = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var options = Object.create(null); + case "UseAttachments": + return SidebarView.ATTACHMENTS; - for (var name in defaultOptions) { - var defaultOption = defaultOptions[name]; + case "UseOC": + return SidebarView.LAYERS; + } - if (kind) { - if ((kind & defaultOption.kind) === 0) { - continue; - } - - if (kind === OptionKind.PREFERENCE) { - var value = defaultOption.value, - valueType = _typeof(value); - - if (valueType === 'boolean' || valueType === 'string' || valueType === 'number' && Number.isInteger(value)) { - options[name] = value; - continue; - } - - throw new Error("Invalid type for preference: ".concat(name)); - } - } - - var userOption = userOptions[name]; - options[name] = userOption !== undefined ? userOption : defaultOption.compatibility || defaultOption.value; - } - - return options; - } - }, { - key: "set", - value: function set(name, value) { - userOptions[name] = value; - } - }, { - key: "remove", - value: function remove(name) { - delete userOptions[name]; - } - }]); - - return AppOptions; -}(); - -exports.AppOptions = AppOptions; + return SidebarView.NONE; +} /***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 5 */ +/***/ ((module) => { -var pdfjsLib; -if (typeof window !== 'undefined' && window['pdfjs-dist/build/pdf']) { - pdfjsLib = window['pdfjs-dist/build/pdf']; +let pdfjsLib; + +if (typeof window !== "undefined" && window["pdfjs-dist/build/pdf"]) { + pdfjsLib = window["pdfjs-dist/build/pdf"]; } else { - pdfjsLib = require('../build/pdf.js'); + pdfjsLib = require("../build/pdf.js"); } module.exports = pdfjsLib; /***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 6 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -var compatibilityParams = Object.create(null); -{ - var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || ''; - var isAndroid = /Android/.test(userAgent); - var isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent); - (function checkCanvasSizeLimitation() { - if (isIOS || isAndroid) { - compatibilityParams.maxCanvasPixels = 5242880; - } - })(); -} -exports.viewerCompatibilityParams = Object.freeze(compatibilityParams); - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFCursorTools = exports.CursorTool = void 0; -var _grab_to_pan = __webpack_require__(10); +var _grab_to_pan = __webpack_require__(7); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _ui_utils = __webpack_require__(4); -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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var CursorTool = { +const CursorTool = { SELECT: 0, HAND: 1, ZOOM: 2 }; exports.CursorTool = CursorTool; -var PDFCursorTools = -/*#__PURE__*/ -function () { - function PDFCursorTools(_ref) { - var _this = this; - - var container = _ref.container, - eventBus = _ref.eventBus, - _ref$cursorToolOnLoad = _ref.cursorToolOnLoad, - cursorToolOnLoad = _ref$cursorToolOnLoad === void 0 ? CursorTool.SELECT : _ref$cursorToolOnLoad; - - _classCallCheck(this, PDFCursorTools); - +class PDFCursorTools { + constructor({ + container, + eventBus, + cursorToolOnLoad = CursorTool.SELECT + }) { this.container = container; this.eventBus = eventBus; this.active = CursorTool.SELECT; @@ -4556,124 +3942,111 @@ function () { this._addEventListeners(); - Promise.resolve().then(function () { - _this.switchTool(cursorToolOnLoad); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); }); } - _createClass(PDFCursorTools, [{ - key: "switchTool", - value: function switchTool(tool) { - var _this2 = this; + get activeTool() { + return this.active; + } - if (this.activeBeforePresentationMode !== null) { - return; - } + switchTool(tool) { + if (this.activeBeforePresentationMode !== null) { + return; + } - if (tool === this.active) { - return; - } + if (tool === this.active) { + return; + } - var disableActiveTool = function disableActiveTool() { - switch (_this2.active) { - case CursorTool.SELECT: - break; - - case CursorTool.HAND: - _this2.handTool.deactivate(); - - break; - - case CursorTool.ZOOM: - } - }; - - switch (tool) { + const disableActiveTool = () => { + switch (this.active) { case CursorTool.SELECT: - disableActiveTool(); break; case CursorTool.HAND: - disableActiveTool(); - this.handTool.activate(); + this.handTool.deactivate(); break; case CursorTool.ZOOM: - default: - console.error("switchTool: \"".concat(tool, "\" is an unsupported value.")); - return; } + }; - this.active = tool; + switch (tool) { + case CursorTool.SELECT: + disableActiveTool(); + break; - this._dispatchEvent(); + case CursorTool.HAND: + disableActiveTool(); + this.handTool.activate(); + break; + + case CursorTool.ZOOM: + default: + console.error(`switchTool: "${tool}" is an unsupported value.`); + return; } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent() { - this.eventBus.dispatch('cursortoolchanged', { - source: this, - tool: this.active - }); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this3 = this; - this.eventBus.on('switchcursortool', function (evt) { - _this3.switchTool(evt.tool); - }); - this.eventBus.on('presentationmodechanged', function (evt) { - if (evt.switchInProgress) { - return; - } + this.active = tool; - var previouslyActive; + this._dispatchEvent(); + } - if (evt.active) { - previouslyActive = _this3.active; + _dispatchEvent() { + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool: this.active + }); + } - _this3.switchTool(CursorTool.SELECT); + _addEventListeners() { + this.eventBus._on("switchcursortool", evt => { + this.switchTool(evt.tool); + }); - _this3.activeBeforePresentationMode = previouslyActive; - } else { - previouslyActive = _this3.activeBeforePresentationMode; - _this3.activeBeforePresentationMode = null; + this.eventBus._on("presentationmodechanged", evt => { + switch (evt.state) { + case _ui_utils.PresentationModeState.FULLSCREEN: + { + const previouslyActive = this.active; + this.switchTool(CursorTool.SELECT); + this.activeBeforePresentationMode = previouslyActive; + break; + } - _this3.switchTool(previouslyActive); - } - }); - } - }, { - key: "activeTool", - get: function get() { - return this.active; - } - }]); + case _ui_utils.PresentationModeState.NORMAL: + { + const previouslyActive = this.activeBeforePresentationMode; + this.activeBeforePresentationMode = null; + this.switchTool(previouslyActive); + break; + } + } + }); + } - return PDFCursorTools; -}(); +} exports.PDFCursorTools = PDFCursorTools; /***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 7 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GrabToPan = GrabToPan; function GrabToPan(options) { this.element = options.element; this.document = options.element.ownerDocument; - if (typeof options.ignoreTarget === 'function') { + if (typeof options.ignoreTarget === "function") { this.ignoreTarget = options.ignoreTarget; } @@ -4684,16 +4057,16 @@ function GrabToPan(options) { this._onmousedown = this._onmousedown.bind(this); this._onmousemove = this._onmousemove.bind(this); this._endPan = this._endPan.bind(this); - var overlay = this.overlay = document.createElement('div'); - overlay.className = 'grab-to-pan-grabbing'; + const overlay = this.overlay = document.createElement("div"); + overlay.className = "grab-to-pan-grabbing"; } GrabToPan.prototype = { - CSS_CLASS_GRAB: 'grab-to-pan-grab', + CSS_CLASS_GRAB: "grab-to-pan-grab", activate: function GrabToPan_activate() { if (!this.active) { this.active = true; - this.element.addEventListener('mousedown', this._onmousedown, true); + this.element.addEventListener("mousedown", this._onmousedown, true); this.element.classList.add(this.CSS_CLASS_GRAB); if (this.onActiveChanged) { @@ -4704,7 +4077,7 @@ GrabToPan.prototype = { deactivate: function GrabToPan_deactivate() { if (this.active) { this.active = false; - this.element.removeEventListener('mousedown', this._onmousedown, true); + this.element.removeEventListener("mousedown", this._onmousedown, true); this._endPan(); @@ -4723,7 +4096,7 @@ GrabToPan.prototype = { } }, ignoreTarget: function GrabToPan_ignoreTarget(node) { - return node[matchesSelector]('a[href], a[href] *, input, textarea, button, button *, select, option'); + return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); }, _onmousedown: function GrabToPan__onmousedown(event) { if (event.button !== 0 || this.ignoreTarget(event.target)) { @@ -4742,19 +4115,19 @@ GrabToPan.prototype = { this.scrollTopStart = this.element.scrollTop; this.clientXStart = event.clientX; this.clientYStart = event.clientY; - this.document.addEventListener('mousemove', this._onmousemove, true); - this.document.addEventListener('mouseup', this._endPan, true); - this.element.addEventListener('scroll', this._endPan, true); + this.document.addEventListener("mousemove", this._onmousemove, true); + this.document.addEventListener("mouseup", this._endPan, true); + this.element.addEventListener("scroll", this._endPan, true); event.preventDefault(); event.stopPropagation(); - var focusedElement = document.activeElement; + const focusedElement = document.activeElement; if (focusedElement && !focusedElement.contains(event.target)) { focusedElement.blur(); } }, _onmousemove: function GrabToPan__onmousemove(event) { - this.element.removeEventListener('scroll', this._endPan, true); + this.element.removeEventListener("scroll", this._endPan, true); if (isLeftMouseReleased(event)) { this._endPan(); @@ -4762,16 +4135,16 @@ GrabToPan.prototype = { return; } - var xDiff = event.clientX - this.clientXStart; - var yDiff = event.clientY - this.clientYStart; - var scrollTop = this.scrollTopStart - yDiff; - var scrollLeft = this.scrollLeftStart - xDiff; + const xDiff = event.clientX - this.clientXStart; + const yDiff = event.clientY - this.clientYStart; + const scrollTop = this.scrollTopStart - yDiff; + const scrollLeft = this.scrollLeftStart - xDiff; if (this.element.scrollTo) { this.element.scrollTo({ top: scrollTop, left: scrollLeft, - behavior: 'instant' + behavior: "instant" }); } else { this.element.scrollTop = scrollTop; @@ -4783,38 +4156,22 @@ GrabToPan.prototype = { } }, _endPan: function GrabToPan__endPan() { - this.element.removeEventListener('scroll', this._endPan, true); - this.document.removeEventListener('mousemove', this._onmousemove, true); - this.document.removeEventListener('mouseup', this._endPan, true); + this.element.removeEventListener("scroll", this._endPan, true); + this.document.removeEventListener("mousemove", this._onmousemove, true); + this.document.removeEventListener("mouseup", this._endPan, true); this.overlay.remove(); } }; -var matchesSelector; -['webkitM', 'mozM', 'msM', 'oM', 'm'].some(function (prefix) { - var name = prefix + 'atches'; - - if (name in document.documentElement) { - matchesSelector = name; - } - - name += 'Selector'; - - if (name in document.documentElement) { - matchesSelector = name; - } - - return matchesSelector; -}); -var isNotIEorIsIE10plus = !document.documentMode || document.documentMode > 9; -var chrome = window.chrome; -var isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app); -var isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent); function isLeftMouseReleased(event) { - if ('buttons' in event && isNotIEorIsIE10plus) { + if ("buttons" in event) { return !(event.buttons & 1); } + const chrome = window.chrome; + const isChrome15OrOpera15plus = chrome && (chrome.webstore || chrome.app); + const isSafari6plus = /Apple/.test(navigator.vendor) && /Version\/([6-9]\d*|[1-5]\d+)/.test(navigator.userAgent); + if (isChrome15OrOpera15plus || isSafari6plus) { return event.which === 0; } @@ -4823,25 +4180,20 @@ function isLeftMouseReleased(event) { } /***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 8 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFRenderingQueue = exports.RenderingStates = void 0; +})); +exports.RenderingStates = exports.PDFRenderingQueue = void 0; -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _pdfjsLib = __webpack_require__(5); -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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var CLEANUP_TIMEOUT = 30000; -var RenderingStates = { +const CLEANUP_TIMEOUT = 30000; +const RenderingStates = { INITIAL: 0, RUNNING: 1, PAUSED: 2, @@ -4849,12 +4201,8 @@ var RenderingStates = { }; exports.RenderingStates = RenderingStates; -var PDFRenderingQueue = -/*#__PURE__*/ -function () { - function PDFRenderingQueue() { - _classCallCheck(this, PDFRenderingQueue); - +class PDFRenderingQueue { + constructor() { this.pdfViewer = null; this.pdfThumbnailViewer = null; this.onIdle = null; @@ -4864,859 +4212,240 @@ function () { this.isThumbnailViewEnabled = false; } - _createClass(PDFRenderingQueue, [{ - key: "setViewer", - value: function setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; - } - }, { - key: "setThumbnailViewer", - value: function setThumbnailViewer(pdfThumbnailViewer) { - this.pdfThumbnailViewer = pdfThumbnailViewer; - } - }, { - key: "isHighestPriority", - value: function isHighestPriority(view) { - return this.highestPriorityPage === view.renderingId; - } - }, { - key: "renderHighestPriority", - value: function renderHighestPriority(currentlyVisiblePages) { - if (this.idleTimeout) { - clearTimeout(this.idleTimeout); - this.idleTimeout = null; - } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } - if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + setThumbnailViewer(pdfThumbnailViewer) { + this.pdfThumbnailViewer = pdfThumbnailViewer; + } + + isHighestPriority(view) { + return this.highestPriorityPage === view.renderingId; + } + + renderHighestPriority(currentlyVisiblePages) { + if (this.idleTimeout) { + clearTimeout(this.idleTimeout); + this.idleTimeout = null; + } + + if (this.pdfViewer.forceRendering(currentlyVisiblePages)) { + return; + } + + if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) { + if (this.pdfThumbnailViewer.forceRendering()) { return; } - - if (this.pdfThumbnailViewer && this.isThumbnailViewEnabled) { - if (this.pdfThumbnailViewer.forceRendering()) { - return; - } - } - - if (this.printing) { - return; - } - - if (this.onIdle) { - this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); - } } - }, { - key: "getHighestPriority", - value: function getHighestPriority(visible, views, scrolledDown) { - var visibleViews = visible.views; - var numVisible = visibleViews.length; - if (numVisible === 0) { - return null; - } + if (this.printing) { + return; + } - for (var i = 0; i < numVisible; ++i) { - var view = visibleViews[i].view; + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } - if (!this.isViewFinished(view)) { - return view; - } - } - - if (scrolledDown) { - var nextPageIndex = visible.last.id; - - if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) { - return views[nextPageIndex]; - } - } else { - var previousPageIndex = visible.first.id - 2; - - if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) { - return views[previousPageIndex]; - } - } + getHighestPriority(visible, views, scrolledDown) { + const visibleViews = visible.views; + const numVisible = visibleViews.length; + if (numVisible === 0) { return null; } - }, { - key: "isViewFinished", - value: function isViewFinished(view) { - return view.renderingState === RenderingStates.FINISHED; - } - }, { - key: "renderView", - value: function renderView(view) { - var _this = this; - switch (view.renderingState) { - case RenderingStates.FINISHED: - return false; + for (let i = 0; i < numVisible; ++i) { + const view = visibleViews[i].view; - case RenderingStates.PAUSED: - this.highestPriorityPage = view.renderingId; - view.resume(); - break; - - case RenderingStates.RUNNING: - this.highestPriorityPage = view.renderingId; - break; - - case RenderingStates.INITIAL: - this.highestPriorityPage = view.renderingId; - view.draw()["finally"](function () { - _this.renderHighestPriority(); - }); - break; + if (!this.isViewFinished(view)) { + return view; } - - return true; } - }]); - return PDFRenderingQueue; -}(); + if (scrolledDown) { + const nextPageIndex = visible.last.id; + + if (views[nextPageIndex] && !this.isViewFinished(views[nextPageIndex])) { + return views[nextPageIndex]; + } + } else { + const previousPageIndex = visible.first.id - 2; + + if (views[previousPageIndex] && !this.isViewFinished(views[previousPageIndex])) { + return views[previousPageIndex]; + } + } + + return null; + } + + isViewFinished(view) { + return view.renderingState === RenderingStates.FINISHED; + } + + renderView(view) { + switch (view.renderingState) { + case RenderingStates.FINISHED: + return false; + + case RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + + case RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + + case RenderingStates.INITIAL: + this.highestPriorityPage = view.renderingId; + view.draw().finally(() => { + this.renderHighestPriority(); + }).catch(reason => { + if (reason instanceof _pdfjsLib.RenderingCancelledException) { + return; + } + + console.error(`renderView: "${reason}"`); + }); + break; + } + + return true; + } + +} exports.PDFRenderingQueue = PDFRenderingQueue; /***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 9 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFSidebar = exports.SidebarView = void 0; - -var _ui_utils = __webpack_require__(5); - -var _pdf_rendering_queue = __webpack_require__(11); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var UI_NOTIFICATION_CLASS = 'pdfSidebarNotification'; -var SidebarView = { - UNKNOWN: -1, - NONE: 0, - THUMBS: 1, - OUTLINE: 2, - ATTACHMENTS: 3, - LAYERS: 4 -}; -exports.SidebarView = SidebarView; - -var PDFSidebar = -/*#__PURE__*/ -function () { - function PDFSidebar(_ref) { - var elements = _ref.elements, - pdfViewer = _ref.pdfViewer, - pdfThumbnailViewer = _ref.pdfThumbnailViewer, - eventBus = _ref.eventBus, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n, - _ref$disableNotificat = _ref.disableNotification, - disableNotification = _ref$disableNotificat === void 0 ? false : _ref$disableNotificat; - - _classCallCheck(this, PDFSidebar); - - this.isOpen = false; - this.active = SidebarView.THUMBS; - this.isInitialViewSet = false; - this.onToggled = null; - this.pdfViewer = pdfViewer; - this.pdfThumbnailViewer = pdfThumbnailViewer; - this.outerContainer = elements.outerContainer; - this.viewerContainer = elements.viewerContainer; - this.toggleButton = elements.toggleButton; - this.thumbnailButton = elements.thumbnailButton; - this.outlineButton = elements.outlineButton; - this.attachmentsButton = elements.attachmentsButton; - this.thumbnailView = elements.thumbnailView; - this.outlineView = elements.outlineView; - this.attachmentsView = elements.attachmentsView; - this.eventBus = eventBus; - this.l10n = l10n; - this._disableNotification = disableNotification; - - this._addEventListeners(); - } - - _createClass(PDFSidebar, [{ - key: "reset", - value: function reset() { - this.isInitialViewSet = false; - - this._hideUINotification(null); - - this.switchView(SidebarView.THUMBS); - this.outlineButton.disabled = false; - this.attachmentsButton.disabled = false; - } - }, { - key: "setInitialView", - value: function setInitialView() { - var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : SidebarView.NONE; - - if (this.isInitialViewSet) { - return; - } - - this.isInitialViewSet = true; - - if (view === SidebarView.NONE || view === SidebarView.UNKNOWN) { - this._dispatchEvent(); - - return; - } - - if (!this._switchView(view, true)) { - this._dispatchEvent(); - } - } - }, { - key: "switchView", - value: function switchView(view) { - var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - this._switchView(view, forceOpen); - } - }, { - key: "_switchView", - value: function _switchView(view) { - var forceOpen = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var isViewChanged = view !== this.active; - var shouldForceRendering = false; - - switch (view) { - case SidebarView.NONE: - if (this.isOpen) { - this.close(); - return true; - } - - return false; - - case SidebarView.THUMBS: - if (this.isOpen && isViewChanged) { - shouldForceRendering = true; - } - - break; - - case SidebarView.OUTLINE: - if (this.outlineButton.disabled) { - return false; - } - - break; - - case SidebarView.ATTACHMENTS: - if (this.attachmentsButton.disabled) { - return false; - } - - break; - - default: - console.error("PDFSidebar._switchView: \"".concat(view, "\" is not a valid view.")); - return false; - } - - this.active = view; - this.thumbnailButton.classList.toggle('toggled', view === SidebarView.THUMBS); - this.outlineButton.classList.toggle('toggled', view === SidebarView.OUTLINE); - this.attachmentsButton.classList.toggle('toggled', view === SidebarView.ATTACHMENTS); - this.thumbnailView.classList.toggle('hidden', view !== SidebarView.THUMBS); - this.outlineView.classList.toggle('hidden', view !== SidebarView.OUTLINE); - this.attachmentsView.classList.toggle('hidden', view !== SidebarView.ATTACHMENTS); - - if (forceOpen && !this.isOpen) { - this.open(); - return true; - } - - if (shouldForceRendering) { - this._updateThumbnailViewer(); - - this._forceRendering(); - } - - if (isViewChanged) { - this._dispatchEvent(); - } - - this._hideUINotification(this.active); - - return isViewChanged; - } - }, { - key: "open", - value: function open() { - if (this.isOpen) { - return; - } - - this.isOpen = true; - this.toggleButton.classList.add('toggled'); - this.outerContainer.classList.add('sidebarMoving', 'sidebarOpen'); - - if (this.active === SidebarView.THUMBS) { - this._updateThumbnailViewer(); - } - - this._forceRendering(); - - this._dispatchEvent(); - - this._hideUINotification(this.active); - } - }, { - key: "close", - value: function close() { - if (!this.isOpen) { - return; - } - - this.isOpen = false; - this.toggleButton.classList.remove('toggled'); - this.outerContainer.classList.add('sidebarMoving'); - this.outerContainer.classList.remove('sidebarOpen'); - - this._forceRendering(); - - this._dispatchEvent(); - } - }, { - key: "toggle", - value: function toggle() { - if (this.isOpen) { - this.close(); - } else { - this.open(); - } - } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent() { - this.eventBus.dispatch('sidebarviewchanged', { - source: this, - view: this.visibleView - }); - } - }, { - key: "_forceRendering", - value: function _forceRendering() { - if (this.onToggled) { - this.onToggled(); - } else { - this.pdfViewer.forceRendering(); - this.pdfThumbnailViewer.forceRendering(); - } - } - }, { - key: "_updateThumbnailViewer", - value: function _updateThumbnailViewer() { - var pdfViewer = this.pdfViewer, - pdfThumbnailViewer = this.pdfThumbnailViewer; - var pagesCount = pdfViewer.pagesCount; - - for (var pageIndex = 0; pageIndex < pagesCount; pageIndex++) { - var pageView = pdfViewer.getPageView(pageIndex); - - if (pageView && pageView.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) { - var thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); - thumbnailView.setImage(pageView); - } - } - - pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); - } - }, { - key: "_showUINotification", - value: function _showUINotification(view) { - var _this = this; - - if (this._disableNotification) { - return; - } - - this.l10n.get('toggle_sidebar_notification.title', null, 'Toggle Sidebar (document contains outline/attachments)').then(function (msg) { - _this.toggleButton.title = msg; - }); - - if (!this.isOpen) { - this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); - } else if (view === this.active) { - return; - } - - switch (view) { - case SidebarView.OUTLINE: - this.outlineButton.classList.add(UI_NOTIFICATION_CLASS); - break; - - case SidebarView.ATTACHMENTS: - this.attachmentsButton.classList.add(UI_NOTIFICATION_CLASS); - break; - } - } - }, { - key: "_hideUINotification", - value: function _hideUINotification(view) { - var _this2 = this; - - if (this._disableNotification) { - return; - } - - var removeNotification = function removeNotification(view) { - switch (view) { - case SidebarView.OUTLINE: - _this2.outlineButton.classList.remove(UI_NOTIFICATION_CLASS); - - break; - - case SidebarView.ATTACHMENTS: - _this2.attachmentsButton.classList.remove(UI_NOTIFICATION_CLASS); - - break; - } - }; - - if (!this.isOpen && view !== null) { - return; - } - - this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); - - if (view !== null) { - removeNotification(view); - return; - } - - for (view in SidebarView) { - removeNotification(SidebarView[view]); - } - - this.l10n.get('toggle_sidebar.title', null, 'Toggle Sidebar').then(function (msg) { - _this2.toggleButton.title = msg; - }); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this3 = this; - - this.viewerContainer.addEventListener('transitionend', function (evt) { - if (evt.target === _this3.viewerContainer) { - _this3.outerContainer.classList.remove('sidebarMoving'); - } - }); - this.thumbnailButton.addEventListener('click', function () { - _this3.switchView(SidebarView.THUMBS); - }); - this.outlineButton.addEventListener('click', function () { - _this3.switchView(SidebarView.OUTLINE); - }); - this.outlineButton.addEventListener('dblclick', function () { - _this3.eventBus.dispatch('toggleoutlinetree', { - source: _this3 - }); - }); - this.attachmentsButton.addEventListener('click', function () { - _this3.switchView(SidebarView.ATTACHMENTS); - }); - this.eventBus.on('outlineloaded', function (evt) { - var outlineCount = evt.outlineCount; - _this3.outlineButton.disabled = !outlineCount; - - if (outlineCount) { - _this3._showUINotification(SidebarView.OUTLINE); - } else if (_this3.active === SidebarView.OUTLINE) { - _this3.switchView(SidebarView.THUMBS); - } - }); - this.eventBus.on('attachmentsloaded', function (evt) { - if (evt.attachmentsCount) { - _this3.attachmentsButton.disabled = false; - - _this3._showUINotification(SidebarView.ATTACHMENTS); - - return; - } - - Promise.resolve().then(function () { - if (_this3.attachmentsView.hasChildNodes()) { - return; - } - - _this3.attachmentsButton.disabled = true; - - if (_this3.active === SidebarView.ATTACHMENTS) { - _this3.switchView(SidebarView.THUMBS); - } - }); - }); - this.eventBus.on('presentationmodechanged', function (evt) { - if (!evt.active && !evt.switchInProgress && _this3.isThumbnailViewVisible) { - _this3._updateThumbnailViewer(); - } - }); - } - }, { - key: "visibleView", - get: function get() { - return this.isOpen ? this.active : SidebarView.NONE; - } - }, { - key: "isThumbnailViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.THUMBS; - } - }, { - key: "isOutlineViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.OUTLINE; - } - }, { - key: "isAttachmentsViewVisible", - get: function get() { - return this.isOpen && this.active === SidebarView.ATTACHMENTS; - } - }]); - - return PDFSidebar; -}(); - -exports.PDFSidebar = PDFSidebar; - -/***/ }), -/* 13 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); +})); exports.OverlayManager = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var OverlayManager = -/*#__PURE__*/ -function () { - function OverlayManager() { - _classCallCheck(this, OverlayManager); - +class OverlayManager { + constructor() { this._overlays = {}; this._active = null; this._keyDownBound = this._keyDown.bind(this); } - _createClass(OverlayManager, [{ - key: "register", - value: function () { - var _register = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(name, element) { - var callerCloseMethod, - canForceClose, - container, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - callerCloseMethod = _args.length > 2 && _args[2] !== undefined ? _args[2] : null; - canForceClose = _args.length > 3 && _args[3] !== undefined ? _args[3] : false; + get active() { + return this._active; + } - if (!(!name || !element || !(container = element.parentNode))) { - _context.next = 6; - break; - } + async register(name, element, callerCloseMethod = null, canForceClose = false) { + let container; - throw new Error('Not enough parameters.'); + if (!name || !element || !(container = element.parentNode)) { + throw new Error("Not enough parameters."); + } else if (this._overlays[name]) { + throw new Error("The overlay is already registered."); + } - case 6: - if (!this._overlays[name]) { - _context.next = 8; - break; - } + this._overlays[name] = { + element, + container, + callerCloseMethod, + canForceClose + }; + } - throw new Error('The overlay is already registered.'); + async unregister(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (this._active === name) { + throw new Error("The overlay cannot be removed while it is active."); + } - case 8: - this._overlays[name] = { - element: element, - container: container, - callerCloseMethod: callerCloseMethod, - canForceClose: canForceClose - }; + delete this._overlays[name]; + } - case 9: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function register(_x, _x2) { - return _register.apply(this, arguments); - } - - return register; - }() - }, { - key: "unregister", - value: function () { - var _unregister = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(name) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (this._overlays[name]) { - _context2.next = 4; - break; - } - - throw new Error('The overlay does not exist.'); - - case 4: - if (!(this._active === name)) { - _context2.next = 6; - break; - } - - throw new Error('The overlay cannot be removed while it is active.'); - - case 6: - delete this._overlays[name]; - - case 7: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function unregister(_x3) { - return _unregister.apply(this, arguments); - } - - return unregister; - }() - }, { - key: "open", - value: function () { - var _open = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(name) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - if (this._overlays[name]) { - _context3.next = 4; - break; - } - - throw new Error('The overlay does not exist.'); - - case 4: - if (!this._active) { - _context3.next = 14; - break; - } - - if (!this._overlays[name].canForceClose) { - _context3.next = 9; - break; - } - - this._closeThroughCaller(); - - _context3.next = 14; - break; - - case 9: - if (!(this._active === name)) { - _context3.next = 13; - break; - } - - throw new Error('The overlay is already active.'); - - case 13: - throw new Error('Another overlay is currently active.'); - - case 14: - this._active = name; - - this._overlays[this._active].element.classList.remove('hidden'); - - this._overlays[this._active].container.classList.remove('hidden'); - - window.addEventListener('keydown', this._keyDownBound); - - case 18: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function open(_x4) { - return _open.apply(this, arguments); - } - - return open; - }() - }, { - key: "close", - value: function () { - var _close = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(name) { - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - if (this._overlays[name]) { - _context4.next = 4; - break; - } - - throw new Error('The overlay does not exist.'); - - case 4: - if (this._active) { - _context4.next = 8; - break; - } - - throw new Error('The overlay is currently not active.'); - - case 8: - if (!(this._active !== name)) { - _context4.next = 10; - break; - } - - throw new Error('Another overlay is currently active.'); - - case 10: - this._overlays[this._active].container.classList.add('hidden'); - - this._overlays[this._active].element.classList.add('hidden'); - - this._active = null; - window.removeEventListener('keydown', this._keyDownBound); - - case 14: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function close(_x5) { - return _close.apply(this, arguments); - } - - return close; - }() - }, { - key: "_keyDown", - value: function _keyDown(evt) { - if (this._active && evt.keyCode === 27) { + async open(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (this._active) { + if (this._overlays[name].canForceClose) { this._closeThroughCaller(); - - evt.preventDefault(); + } else if (this._active === name) { + throw new Error("The overlay is already active."); + } else { + throw new Error("Another overlay is currently active."); } } - }, { - key: "_closeThroughCaller", - value: function _closeThroughCaller() { - if (this._overlays[this._active].callerCloseMethod) { - this._overlays[this._active].callerCloseMethod(); - } - if (this._active) { - this.close(this._active); - } - } - }, { - key: "active", - get: function get() { - return this._active; - } - }]); + this._active = name; - return OverlayManager; -}(); + this._overlays[this._active].element.classList.remove("hidden"); + + this._overlays[this._active].container.classList.remove("hidden"); + + window.addEventListener("keydown", this._keyDownBound); + } + + async close(name) { + if (!this._overlays[name]) { + throw new Error("The overlay does not exist."); + } else if (!this._active) { + throw new Error("The overlay is currently not active."); + } else if (this._active !== name) { + throw new Error("Another overlay is currently active."); + } + + this._overlays[this._active].container.classList.add("hidden"); + + this._overlays[this._active].element.classList.add("hidden"); + + this._active = null; + window.removeEventListener("keydown", this._keyDownBound); + } + + _keyDown(evt) { + if (this._active && evt.keyCode === 27) { + this._closeThroughCaller(); + + evt.preventDefault(); + } + } + + _closeThroughCaller() { + if (this._overlays[this._active].callerCloseMethod) { + this._overlays[this._active].callerCloseMethod(); + } + + if (this._active) { + this.close(this._active); + } + } + +} exports.OverlayManager = OverlayManager; /***/ }), -/* 14 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 10 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PasswordPrompt = void 0; -var _ui_utils = __webpack_require__(5); - -var _pdfjsLib = __webpack_require__(7); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PasswordPrompt = -/*#__PURE__*/ -function () { - function PasswordPrompt(options, overlayManager) { - var _this = this; - - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PasswordPrompt); +var _pdfjsLib = __webpack_require__(5); +class PasswordPrompt { + constructor(options, overlayManager, l10n, isViewerEmbedded = false) { this.overlayName = options.overlayName; this.container = options.container; this.label = options.label; @@ -5725,314 +4454,382 @@ function () { this.cancelButton = options.cancelButton; this.overlayManager = overlayManager; this.l10n = l10n; + this._isViewerEmbedded = isViewerEmbedded; this.updateCallback = null; this.reason = null; - this.submitButton.addEventListener('click', this.verify.bind(this)); - this.cancelButton.addEventListener('click', this.close.bind(this)); - this.input.addEventListener('keydown', function (e) { + this.submitButton.addEventListener("click", this.verify.bind(this)); + this.cancelButton.addEventListener("click", this.close.bind(this)); + this.input.addEventListener("keydown", e => { if (e.keyCode === 13) { - _this.verify(); + this.verify(); } }); this.overlayManager.register(this.overlayName, this.container, this.close.bind(this), true); } - _createClass(PasswordPrompt, [{ - key: "open", - value: function open() { - var _this2 = this; + async open() { + await this.overlayManager.open(this.overlayName); + const passwordIncorrect = this.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD; - this.overlayManager.open(this.overlayName).then(function () { - _this2.input.focus(); - - var promptString; - - if (_this2.reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD) { - promptString = _this2.l10n.get('password_invalid', null, 'Invalid password. Please try again.'); - } else { - promptString = _this2.l10n.get('password_label', null, 'Enter the password to open this PDF file.'); - } - - promptString.then(function (msg) { - _this2.label.textContent = msg; - }); - }); + if (!this._isViewerEmbedded || passwordIncorrect) { + this.input.focus(); } - }, { - key: "close", - value: function close() { - var _this3 = this; - this.overlayManager.close(this.overlayName).then(function () { - _this3.input.value = ''; - }); - } - }, { - key: "verify", - value: function verify() { - var password = this.input.value; + this.label.textContent = await this.l10n.get(`password_${passwordIncorrect ? "invalid" : "label"}`); + } - if (password && password.length > 0) { - this.close(); - this.updateCallback(password); - } - } - }, { - key: "setUpdateCallback", - value: function setUpdateCallback(updateCallback, reason) { - this.updateCallback = updateCallback; - this.reason = reason; - } - }]); + close() { + this.overlayManager.close(this.overlayName).then(() => { + this.input.value = ""; + }); + } - return PasswordPrompt; -}(); + verify() { + const password = this.input.value; + + if (password?.length > 0) { + this.close(); + this.updateCallback(password); + } + } + + setUpdateCallback(updateCallback, reason) { + this.updateCallback = updateCallback; + this.reason = reason; + } + +} exports.PasswordPrompt = PasswordPrompt; /***/ }), -/* 15 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 11 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFAttachmentViewer = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _base_tree_viewer = __webpack_require__(12); -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); } } +class PDFAttachmentViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.downloadManager = options.downloadManager; -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFAttachmentViewer = -/*#__PURE__*/ -function () { - function PDFAttachmentViewer(_ref) { - var container = _ref.container, - eventBus = _ref.eventBus, - downloadManager = _ref.downloadManager; - - _classCallCheck(this, PDFAttachmentViewer); - - this.container = container; - this.eventBus = eventBus; - this.downloadManager = downloadManager; - this.reset(); - this.eventBus.on('fileattachmentannotation', this._appendAttachment.bind(this)); + this.eventBus._on("fileattachmentannotation", this._appendAttachment.bind(this)); } - _createClass(PDFAttachmentViewer, [{ - key: "reset", - value: function reset() { - var keepRenderedCapability = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - this.attachments = null; - this.container.textContent = ''; + reset(keepRenderedCapability = false) { + super.reset(); + this._attachments = null; - if (!keepRenderedCapability) { - this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - } + if (!keepRenderedCapability) { + this._renderedCapability = (0, _pdfjsLib.createPromiseCapability)(); } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent(attachmentsCount) { - this._renderedCapability.resolve(); - this.eventBus.dispatch('attachmentsloaded', { - source: this, - attachmentsCount: attachmentsCount + if (this._pendingDispatchEvent) { + clearTimeout(this._pendingDispatchEvent); + } + + this._pendingDispatchEvent = null; + } + + _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + + if (this._pendingDispatchEvent) { + clearTimeout(this._pendingDispatchEvent); + this._pendingDispatchEvent = null; + } + + if (attachmentsCount === 0) { + this._pendingDispatchEvent = setTimeout(() => { + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount: 0 + }); + this._pendingDispatchEvent = null; }); + return; } - }, { - key: "_bindPdfLink", - value: function _bindPdfLink(button, content, filename) { - if (this.downloadManager.disableCreateObjectURL) { - throw new Error('bindPdfLink: Unsupported "disableCreateObjectURL" value.'); - } - var blobUrl; + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount + }); + } - button.onclick = function () { - if (!blobUrl) { - blobUrl = (0, _pdfjsLib.createObjectURL)(content, 'application/pdf'); - } + _bindLink(element, { + content, + filename + }) { + element.onclick = () => { + this.downloadManager.openOrDownloadData(element, content, filename); + return false; + }; + } - var viewerUrl; - viewerUrl = '?file=' + encodeURIComponent(blobUrl + '#' + filename); - window.open(viewerUrl); - return false; - }; + render({ + attachments, + keepRenderedCapability = false + }) { + if (this._attachments) { + this.reset(keepRenderedCapability); } - }, { - key: "_bindLink", - value: function _bindLink(button, content, filename) { - var _this = this; - button.onclick = function () { - _this.downloadManager.downloadData(content, filename, ''); + this._attachments = attachments || null; - return false; - }; + if (!attachments) { + this._dispatchEvent(0); + + return; } - }, { - key: "render", - value: function render(_ref2) { - var attachments = _ref2.attachments, - _ref2$keepRenderedCap = _ref2.keepRenderedCapability, - keepRenderedCapability = _ref2$keepRenderedCap === void 0 ? false : _ref2$keepRenderedCap; - var attachmentsCount = 0; - if (this.attachments) { - this.reset(keepRenderedCapability === true); - } + const names = Object.keys(attachments).sort(function (a, b) { + return a.toLowerCase().localeCompare(b.toLowerCase()); + }); + const fragment = document.createDocumentFragment(); + let attachmentsCount = 0; - this.attachments = attachments || null; + for (const name of names) { + const item = attachments[name]; + const content = item.content, + filename = (0, _pdfjsLib.getFilenameFromUrl)(item.filename); + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); - if (!attachments) { - this._dispatchEvent(attachmentsCount); + this._bindLink(element, { + content, + filename + }); + element.textContent = this._normalizeTextContent(filename); + div.appendChild(element); + fragment.appendChild(div); + attachmentsCount++; + } + + this._finishRendering(fragment, attachmentsCount); + } + + _appendAttachment({ + id, + filename, + content + }) { + const renderedPromise = this._renderedCapability.promise; + renderedPromise.then(() => { + if (renderedPromise !== this._renderedCapability.promise) { return; } - var names = Object.keys(attachments).sort(function (a, b) { - return a.toLowerCase().localeCompare(b.toLowerCase()); - }); - attachmentsCount = names.length; + let attachments = this._attachments; - for (var i = 0; i < attachmentsCount; i++) { - var item = attachments[names[i]]; - var filename = (0, _pdfjsLib.removeNullCharacters)((0, _pdfjsLib.getFilenameFromUrl)(item.filename)); - var div = document.createElement('div'); - div.className = 'attachmentsItem'; - var button = document.createElement('button'); - button.textContent = filename; - - if (/\.pdf$/i.test(filename) && !this.downloadManager.disableCreateObjectURL) { - this._bindPdfLink(button, item.content, filename); - } else { - this._bindLink(button, item.content, filename); - } - - div.appendChild(button); - this.container.appendChild(div); - } - - this._dispatchEvent(attachmentsCount); - } - }, { - key: "_appendAttachment", - value: function _appendAttachment(_ref3) { - var _this2 = this; - - var id = _ref3.id, - filename = _ref3.filename, - content = _ref3.content; - - this._renderedCapability.promise.then(function () { - var attachments = _this2.attachments; - - if (!attachments) { - attachments = Object.create(null); - } else { - for (var name in attachments) { - if (id === name) { - return; - } + if (!attachments) { + attachments = Object.create(null); + } else { + for (const name in attachments) { + if (id === name) { + return; } } + } - attachments[id] = { - filename: filename, - content: content - }; - - _this2.render({ - attachments: attachments, - keepRenderedCapability: true - }); + attachments[id] = { + filename, + content + }; + this.render({ + attachments, + keepRenderedCapability: true }); - } - }]); + }); + } - return PDFAttachmentViewer; -}(); +} exports.PDFAttachmentViewer = PDFAttachmentViewer; /***/ }), -/* 16 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 12 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.BaseTreeViewer = void 0; + +var _pdfjsLib = __webpack_require__(5); + +const TREEITEM_OFFSET_TOP = -100; +const TREEITEM_SELECTED_CLASS = "selected"; + +class BaseTreeViewer { + constructor(options) { + if (this.constructor === BaseTreeViewer) { + throw new Error("Cannot initialize BaseTreeViewer."); + } + + this.container = options.container; + this.eventBus = options.eventBus; + this.reset(); + } + + reset() { + this._pdfDocument = null; + this._lastToggleIsShow = true; + this._currentTreeItem = null; + this.container.textContent = ""; + this.container.classList.remove("treeWithDeepNesting"); + } + + _dispatchEvent(count) { + throw new Error("Not implemented: _dispatchEvent"); + } + + _bindLink(element, params) { + throw new Error("Not implemented: _bindLink"); + } + + _normalizeTextContent(str) { + return (0, _pdfjsLib.removeNullCharacters)(str) || "\u2013"; + } + + _addToggleButton(div, hidden = false) { + const toggler = document.createElement("div"); + toggler.className = "treeItemToggler"; + + if (hidden) { + toggler.classList.add("treeItemsHidden"); + } + + toggler.onclick = evt => { + evt.stopPropagation(); + toggler.classList.toggle("treeItemsHidden"); + + if (evt.shiftKey) { + const shouldShowAll = !toggler.classList.contains("treeItemsHidden"); + + this._toggleTreeItem(div, shouldShowAll); + } + }; + + div.insertBefore(toggler, div.firstChild); + } + + _toggleTreeItem(root, show = false) { + this._lastToggleIsShow = show; + + for (const toggler of root.querySelectorAll(".treeItemToggler")) { + toggler.classList.toggle("treeItemsHidden", !show); + } + } + + _toggleAllTreeItems() { + this._toggleTreeItem(this.container, !this._lastToggleIsShow); + } + + _finishRendering(fragment, count, hasAnyNesting = false) { + if (hasAnyNesting) { + this.container.classList.add("treeWithDeepNesting"); + this._lastToggleIsShow = !fragment.querySelector(".treeItemsHidden"); + } + + this.container.appendChild(fragment); + + this._dispatchEvent(count); + } + + render(params) { + throw new Error("Not implemented: render"); + } + + _updateCurrentTreeItem(treeItem = null) { + if (this._currentTreeItem) { + this._currentTreeItem.classList.remove(TREEITEM_SELECTED_CLASS); + + this._currentTreeItem = null; + } + + if (treeItem) { + treeItem.classList.add(TREEITEM_SELECTED_CLASS); + this._currentTreeItem = treeItem; + } + } + + _scrollToCurrentTreeItem(treeItem) { + if (!treeItem) { + return; + } + + let currentNode = treeItem.parentNode; + + while (currentNode && currentNode !== this.container) { + if (currentNode.classList.contains("treeItem")) { + const toggler = currentNode.firstElementChild; + toggler?.classList.remove("treeItemsHidden"); + } + + currentNode = currentNode.parentNode; + } + + this._updateCurrentTreeItem(treeItem); + + this.container.scrollTo(treeItem.offsetLeft, treeItem.offsetTop + TREEITEM_OFFSET_TOP); + } + +} + +exports.BaseTreeViewer = BaseTreeViewer; + +/***/ }), +/* 13 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFDocumentProperties = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _ui_utils = __webpack_require__(4); -var _ui_utils = __webpack_require__(5); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_FIELD_CONTENT = '-'; -var NON_METRIC_LOCALES = ['en-us', 'en-lr', 'my']; -var US_PAGE_NAMES = { - '8.5x11': 'Letter', - '8.5x14': 'Legal' +const DEFAULT_FIELD_CONTENT = "-"; +const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; +const US_PAGE_NAMES = { + "8.5x11": "Letter", + "8.5x14": "Legal" }; -var METRIC_PAGE_NAMES = { - '297x420': 'A3', - '210x297': 'A4' +const METRIC_PAGE_NAMES = { + "297x420": "A3", + "210x297": "A4" }; function getPageName(size, isPortrait, pageNames) { - var width = isPortrait ? size.width : size.height; - var height = isPortrait ? size.height : size.width; - return pageNames["".concat(width, "x").concat(height)]; + const width = isPortrait ? size.width : size.height; + const height = isPortrait ? size.height : size.width; + return pageNames[`${width}x${height}`]; } -var PDFDocumentProperties = -/*#__PURE__*/ -function () { - function PDFDocumentProperties(_ref, overlayManager, eventBus) { - var _this = this; - - var overlayName = _ref.overlayName, - fields = _ref.fields, - container = _ref.container, - closeButton = _ref.closeButton; - var l10n = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFDocumentProperties); - +class PDFDocumentProperties { + constructor({ + overlayName, + fields, + container, + closeButton + }, overlayManager, eventBus, l10n) { this.overlayName = overlayName; this.fields = fields; this.container = container; @@ -6041,1374 +4838,1171 @@ function () { this._reset(); - if (closeButton) { - closeButton.addEventListener('click', this.close.bind(this)); - } - + closeButton.addEventListener("click", this.close.bind(this)); this.overlayManager.register(this.overlayName, this.container, this.close.bind(this)); - if (eventBus) { - eventBus.on('pagechanging', function (evt) { - _this._currentPageNumber = evt.pageNumber; - }); - eventBus.on('rotationchanging', function (evt) { - _this._pagesRotation = evt.pagesRotation; - }); - } + eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + + eventBus._on("rotationchanging", evt => { + this._pagesRotation = evt.pagesRotation; + }); this._isNonMetricLocale = true; - l10n.getLanguage().then(function (locale) { - _this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); + l10n.getLanguage().then(locale => { + this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); }); } - _createClass(PDFDocumentProperties, [{ - key: "open", - value: function open() { - var _this2 = this; + async open() { + const freezeFieldData = data => { + Object.defineProperty(this, "fieldData", { + value: Object.freeze(data), + writable: false, + enumerable: true, + configurable: true + }); + }; - var freezeFieldData = function freezeFieldData(data) { - Object.defineProperty(_this2, 'fieldData', { - value: Object.freeze(data), - writable: false, - enumerable: true, - configurable: true - }); + await Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]); + const currentPageNumber = this._currentPageNumber; + const pagesRotation = this._pagesRotation; + + if (this.fieldData && currentPageNumber === this.fieldData._currentPageNumber && pagesRotation === this.fieldData._pagesRotation) { + this._updateUI(); + + return; + } + + const { + info, + contentDispositionFilename, + contentLength + } = await this.pdfDocument.getMetadata(); + const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url), this._parseFileSize(contentLength), this._parseDate(info.CreationDate), this._parseDate(info.ModDate), this.pdfDocument.getPage(currentPageNumber).then(pdfPage => { + return this._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); + }), this._parseLinearization(info.IsLinearized)]); + freezeFieldData({ + fileName, + fileSize, + title: info.Title, + author: info.Author, + subject: info.Subject, + keywords: info.Keywords, + creationDate, + modificationDate, + creator: info.Creator, + producer: info.Producer, + version: info.PDFFormatVersion, + pageCount: this.pdfDocument.numPages, + pageSize, + linearized: isLinearized, + _currentPageNumber: currentPageNumber, + _pagesRotation: pagesRotation + }); + + this._updateUI(); + + const { + length + } = await this.pdfDocument.getDownloadInfo(); + + if (contentLength === length) { + return; + } + + const data = Object.assign(Object.create(null), this.fieldData); + data.fileSize = await this._parseFileSize(length); + freezeFieldData(data); + + this._updateUI(); + } + + close() { + this.overlayManager.close(this.overlayName); + } + + setDocument(pdfDocument, url = null) { + if (this.pdfDocument) { + this._reset(); + + this._updateUI(true); + } + + if (!pdfDocument) { + return; + } + + this.pdfDocument = pdfDocument; + this.url = url; + + this._dataAvailableCapability.resolve(); + } + + _reset() { + this.pdfDocument = null; + this.url = null; + delete this.fieldData; + this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._currentPageNumber = 1; + this._pagesRotation = 0; + } + + _updateUI(reset = false) { + if (reset || !this.fieldData) { + for (const id in this.fields) { + this.fields[id].textContent = DEFAULT_FIELD_CONTENT; + } + + return; + } + + if (this.overlayManager.active !== this.overlayName) { + return; + } + + for (const id in this.fields) { + const content = this.fieldData[id]; + this.fields[id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; + } + } + + async _parseFileSize(fileSize = 0) { + const kb = fileSize / 1024, + mb = kb / 1024; + + if (!kb) { + return undefined; + } + + return this.l10n.get(`document_properties_${mb >= 1 ? "mb" : "kb"}`, { + size_mb: mb >= 1 && (+mb.toPrecision(3)).toLocaleString(), + size_kb: mb < 1 && (+kb.toPrecision(3)).toLocaleString(), + size_b: fileSize.toLocaleString() + }); + } + + async _parsePageSize(pageSizeInches, pagesRotation) { + if (!pageSizeInches) { + return undefined; + } + + if (pagesRotation % 180 !== 0) { + pageSizeInches = { + width: pageSizeInches.height, + height: pageSizeInches.width + }; + } + + const isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); + let sizeInches = { + width: Math.round(pageSizeInches.width * 100) / 100, + height: Math.round(pageSizeInches.height * 100) / 100 + }; + let sizeMillimeters = { + width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, + height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 + }; + let rawName = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); + + if (!rawName && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { + const exactMillimeters = { + width: pageSizeInches.width * 25.4, + height: pageSizeInches.height * 25.4 + }; + const intMillimeters = { + width: Math.round(sizeMillimeters.width), + height: Math.round(sizeMillimeters.height) }; - Promise.all([this.overlayManager.open(this.overlayName), this._dataAvailableCapability.promise]).then(function () { - var currentPageNumber = _this2._currentPageNumber; - var pagesRotation = _this2._pagesRotation; + if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { + rawName = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); - if (_this2.fieldData && currentPageNumber === _this2.fieldData['_currentPageNumber'] && pagesRotation === _this2.fieldData['_pagesRotation']) { - _this2._updateUI(); - - return; + if (rawName) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; } - - _this2.pdfDocument.getMetadata().then(function (_ref2) { - var info = _ref2.info, - metadata = _ref2.metadata, - contentDispositionFilename = _ref2.contentDispositionFilename; - return Promise.all([info, metadata, contentDispositionFilename || (0, _ui_utils.getPDFFileNameFromURL)(_this2.url || ''), _this2._parseFileSize(_this2.maybeFileSize), _this2._parseDate(info.CreationDate), _this2._parseDate(info.ModDate), _this2.pdfDocument.getPage(currentPageNumber).then(function (pdfPage) { - return _this2._parsePageSize((0, _ui_utils.getPageSizeInches)(pdfPage), pagesRotation); - }), _this2._parseLinearization(info.IsLinearized)]); - }).then(function (_ref3) { - var _ref4 = _slicedToArray(_ref3, 8), - info = _ref4[0], - metadata = _ref4[1], - fileName = _ref4[2], - fileSize = _ref4[3], - creationDate = _ref4[4], - modDate = _ref4[5], - pageSize = _ref4[6], - isLinearized = _ref4[7]; - - freezeFieldData({ - 'fileName': fileName, - 'fileSize': fileSize, - 'title': info.Title, - 'author': info.Author, - 'subject': info.Subject, - 'keywords': info.Keywords, - 'creationDate': creationDate, - 'modificationDate': modDate, - 'creator': info.Creator, - 'producer': info.Producer, - 'version': info.PDFFormatVersion, - 'pageCount': _this2.pdfDocument.numPages, - 'pageSize': pageSize, - 'linearized': isLinearized, - '_currentPageNumber': currentPageNumber, - '_pagesRotation': pagesRotation - }); - - _this2._updateUI(); - - return _this2.pdfDocument.getDownloadInfo(); - }).then(function (_ref5) { - var length = _ref5.length; - _this2.maybeFileSize = length; - return _this2._parseFileSize(length); - }).then(function (fileSize) { - if (fileSize === _this2.fieldData['fileSize']) { - return; - } - - var data = Object.assign(Object.create(null), _this2.fieldData); - data['fileSize'] = fileSize; - freezeFieldData(data); - - _this2._updateUI(); - }); - }); - } - }, { - key: "close", - value: function close() { - this.overlayManager.close(this.overlayName); - } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var url = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - - if (this.pdfDocument) { - this._reset(); - - this._updateUI(true); - } - - if (!pdfDocument) { - return; - } - - this.pdfDocument = pdfDocument; - this.url = url; - - this._dataAvailableCapability.resolve(); - } - }, { - key: "setFileSize", - value: function setFileSize(fileSize) { - if (Number.isInteger(fileSize) && fileSize > 0) { - this.maybeFileSize = fileSize; } } - }, { - key: "_reset", - value: function _reset() { - this.pdfDocument = null; - this.url = null; - this.maybeFileSize = 0; - delete this.fieldData; - this._dataAvailableCapability = (0, _pdfjsLib.createPromiseCapability)(); - this._currentPageNumber = 1; - this._pagesRotation = 0; + + const [{ + width, + height + }, unit, name, orientation] = await Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get(`document_properties_page_size_unit_${this._isNonMetricLocale ? "inches" : "millimeters"}`), rawName && this.l10n.get(`document_properties_page_size_name_${rawName.toLowerCase()}`), this.l10n.get(`document_properties_page_size_orientation_${isPortrait ? "portrait" : "landscape"}`)]); + return this.l10n.get(`document_properties_page_size_dimension_${name ? "name_" : ""}string`, { + width: width.toLocaleString(), + height: height.toLocaleString(), + unit, + name, + orientation + }); + } + + async _parseDate(inputDate) { + const dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); + + if (!dateObject) { + return undefined; } - }, { - key: "_updateUI", - value: function _updateUI() { - var reset = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (reset || !this.fieldData) { - for (var id in this.fields) { - this.fields[id].textContent = DEFAULT_FIELD_CONTENT; - } + return this.l10n.get("document_properties_date_string", { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + } - return; - } + _parseLinearization(isLinearized) { + return this.l10n.get(`document_properties_linearized_${isLinearized ? "yes" : "no"}`); + } - if (this.overlayManager.active !== this.overlayName) { - return; - } - - for (var _id in this.fields) { - var content = this.fieldData[_id]; - this.fields[_id].textContent = content || content === 0 ? content : DEFAULT_FIELD_CONTENT; - } - } - }, { - key: "_parseFileSize", - value: function () { - var _parseFileSize2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var fileSize, - kb, - _args = arguments; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - fileSize = _args.length > 0 && _args[0] !== undefined ? _args[0] : 0; - kb = fileSize / 1024; - - if (kb) { - _context.next = 6; - break; - } - - return _context.abrupt("return", undefined); - - case 6: - if (!(kb < 1024)) { - _context.next = 8; - break; - } - - return _context.abrupt("return", this.l10n.get('document_properties_kb', { - size_kb: (+kb.toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }, '{{size_kb}} KB ({{size_b}} bytes)')); - - case 8: - return _context.abrupt("return", this.l10n.get('document_properties_mb', { - size_mb: (+(kb / 1024).toPrecision(3)).toLocaleString(), - size_b: fileSize.toLocaleString() - }, '{{size_mb}} MB ({{size_b}} bytes)')); - - case 9: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); - - function _parseFileSize() { - return _parseFileSize2.apply(this, arguments); - } - - return _parseFileSize; - }() - }, { - key: "_parsePageSize", - value: function () { - var _parsePageSize2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(pageSizeInches, pagesRotation) { - var _this3 = this; - - var isPortrait, sizeInches, sizeMillimeters, pageName, name, exactMillimeters, intMillimeters; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - if (pageSizeInches) { - _context2.next = 2; - break; - } - - return _context2.abrupt("return", undefined); - - case 2: - if (pagesRotation % 180 !== 0) { - pageSizeInches = { - width: pageSizeInches.height, - height: pageSizeInches.width - }; - } - - isPortrait = (0, _ui_utils.isPortraitOrientation)(pageSizeInches); - sizeInches = { - width: Math.round(pageSizeInches.width * 100) / 100, - height: Math.round(pageSizeInches.height * 100) / 100 - }; - sizeMillimeters = { - width: Math.round(pageSizeInches.width * 25.4 * 10) / 10, - height: Math.round(pageSizeInches.height * 25.4 * 10) / 10 - }; - pageName = null; - name = getPageName(sizeInches, isPortrait, US_PAGE_NAMES) || getPageName(sizeMillimeters, isPortrait, METRIC_PAGE_NAMES); - - if (!name && !(Number.isInteger(sizeMillimeters.width) && Number.isInteger(sizeMillimeters.height))) { - exactMillimeters = { - width: pageSizeInches.width * 25.4, - height: pageSizeInches.height * 25.4 - }; - intMillimeters = { - width: Math.round(sizeMillimeters.width), - height: Math.round(sizeMillimeters.height) - }; - - if (Math.abs(exactMillimeters.width - intMillimeters.width) < 0.1 && Math.abs(exactMillimeters.height - intMillimeters.height) < 0.1) { - name = getPageName(intMillimeters, isPortrait, METRIC_PAGE_NAMES); - - if (name) { - sizeInches = { - width: Math.round(intMillimeters.width / 25.4 * 100) / 100, - height: Math.round(intMillimeters.height / 25.4 * 100) / 100 - }; - sizeMillimeters = intMillimeters; - } - } - } - - if (name) { - pageName = this.l10n.get('document_properties_page_size_name_' + name.toLowerCase(), null, name); - } - - return _context2.abrupt("return", Promise.all([this._isNonMetricLocale ? sizeInches : sizeMillimeters, this.l10n.get('document_properties_page_size_unit_' + (this._isNonMetricLocale ? 'inches' : 'millimeters'), null, this._isNonMetricLocale ? 'in' : 'mm'), pageName, this.l10n.get('document_properties_page_size_orientation_' + (isPortrait ? 'portrait' : 'landscape'), null, isPortrait ? 'portrait' : 'landscape')]).then(function (_ref6) { - var _ref7 = _slicedToArray(_ref6, 4), - _ref7$ = _ref7[0], - width = _ref7$.width, - height = _ref7$.height, - unit = _ref7[1], - name = _ref7[2], - orientation = _ref7[3]; - - return _this3.l10n.get('document_properties_page_size_dimension_' + (name ? 'name_' : '') + 'string', { - width: width.toLocaleString(), - height: height.toLocaleString(), - unit: unit, - name: name, - orientation: orientation - }, '{{width}} × {{height}} {{unit}} (' + (name ? '{{name}}, ' : '') + '{{orientation}})'); - })); - - case 11: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function _parsePageSize(_x, _x2) { - return _parsePageSize2.apply(this, arguments); - } - - return _parsePageSize; - }() - }, { - key: "_parseDate", - value: function () { - var _parseDate2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(inputDate) { - var dateObject; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - dateObject = _pdfjsLib.PDFDateString.toDateObject(inputDate); - - if (dateObject) { - _context3.next = 3; - break; - } - - return _context3.abrupt("return", undefined); - - case 3: - return _context3.abrupt("return", this.l10n.get('document_properties_date_string', { - date: dateObject.toLocaleDateString(), - time: dateObject.toLocaleTimeString() - }, '{{date}}, {{time}}')); - - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function _parseDate(_x3) { - return _parseDate2.apply(this, arguments); - } - - return _parseDate; - }() - }, { - key: "_parseLinearization", - value: function _parseLinearization(isLinearized) { - return this.l10n.get('document_properties_linearized_' + (isLinearized ? 'yes' : 'no'), null, isLinearized ? 'Yes' : 'No'); - } - }]); - - return PDFDocumentProperties; -}(); +} exports.PDFDocumentProperties = PDFDocumentProperties; /***/ }), -/* 17 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 14 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFFindBar = void 0; -var _ui_utils = __webpack_require__(5); +var _pdf_find_controller = __webpack_require__(15); -var _pdf_find_controller = __webpack_require__(18); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MATCHES_COUNT_LIMIT = 1000; - -var PDFFindBar = -/*#__PURE__*/ -function () { - function PDFFindBar(options) { - var _this = this; - - var eventBus = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (0, _ui_utils.getGlobalEventBus)(); - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFFindBar); +const MATCHES_COUNT_LIMIT = 1000; +class PDFFindBar { + constructor(options, eventBus, l10n) { this.opened = false; - this.bar = options.bar || null; - this.toggleButton = options.toggleButton || null; - this.findField = options.findField || null; - this.highlightAll = options.highlightAllCheckbox || null; - this.caseSensitive = options.caseSensitiveCheckbox || null; - this.entireWord = options.entireWordCheckbox || null; - this.findMsg = options.findMsg || null; - this.findResultsCount = options.findResultsCount || null; - this.findPreviousButton = options.findPreviousButton || null; - this.findNextButton = options.findNextButton || null; + this.bar = options.bar; + this.toggleButton = options.toggleButton; + this.findField = options.findField; + this.highlightAll = options.highlightAllCheckbox; + this.caseSensitive = options.caseSensitiveCheckbox; + this.entireWord = options.entireWordCheckbox; + this.findMsg = options.findMsg; + this.findResultsCount = options.findResultsCount; + this.findPreviousButton = options.findPreviousButton; + this.findNextButton = options.findNextButton; this.eventBus = eventBus; this.l10n = l10n; - this.toggleButton.addEventListener('click', function () { - _this.toggle(); + this.toggleButton.addEventListener("click", () => { + this.toggle(); }); - this.findField.addEventListener('input', function () { - _this.dispatchEvent(''); + this.findField.addEventListener("input", () => { + this.dispatchEvent(""); }); - this.bar.addEventListener('keydown', function (e) { + this.bar.addEventListener("keydown", e => { switch (e.keyCode) { case 13: - if (e.target === _this.findField) { - _this.dispatchEvent('again', e.shiftKey); + if (e.target === this.findField) { + this.dispatchEvent("again", e.shiftKey); } break; case 27: - _this.close(); - + this.close(); break; } }); - this.findPreviousButton.addEventListener('click', function () { - _this.dispatchEvent('again', true); + this.findPreviousButton.addEventListener("click", () => { + this.dispatchEvent("again", true); }); - this.findNextButton.addEventListener('click', function () { - _this.dispatchEvent('again', false); + this.findNextButton.addEventListener("click", () => { + this.dispatchEvent("again", false); }); - this.highlightAll.addEventListener('click', function () { - _this.dispatchEvent('highlightallchange'); + this.highlightAll.addEventListener("click", () => { + this.dispatchEvent("highlightallchange"); }); - this.caseSensitive.addEventListener('click', function () { - _this.dispatchEvent('casesensitivitychange'); + this.caseSensitive.addEventListener("click", () => { + this.dispatchEvent("casesensitivitychange"); }); - this.entireWord.addEventListener('click', function () { - _this.dispatchEvent('entirewordchange'); + this.entireWord.addEventListener("click", () => { + this.dispatchEvent("entirewordchange"); }); - this.eventBus.on('resize', this._adjustWidth.bind(this)); + + this.eventBus._on("resize", this._adjustWidth.bind(this)); } - _createClass(PDFFindBar, [{ - key: "reset", - value: function reset() { - this.updateUIState(); + reset() { + this.updateUIState(); + } + + dispatchEvent(type, findPrev) { + this.eventBus.dispatch("find", { + source: this, + type, + query: this.findField.value, + phraseSearch: true, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev + }); + } + + updateUIState(state, previous, matchesCount) { + let findMsg = Promise.resolve(""); + let status = ""; + + switch (state) { + case _pdf_find_controller.FindState.FOUND: + break; + + case _pdf_find_controller.FindState.PENDING: + status = "pending"; + break; + + case _pdf_find_controller.FindState.NOT_FOUND: + findMsg = this.l10n.get("find_not_found"); + status = "notFound"; + break; + + case _pdf_find_controller.FindState.WRAPPED: + findMsg = this.l10n.get(`find_reached_${previous ? "top" : "bottom"}`); + break; } - }, { - key: "dispatchEvent", - value: function dispatchEvent(type, findPrev) { - this.eventBus.dispatch('find', { - source: this, - type: type, - query: this.findField.value, - phraseSearch: true, - caseSensitive: this.caseSensitive.checked, - entireWord: this.entireWord.checked, - highlightAll: this.highlightAll.checked, - findPrevious: findPrev - }); - } - }, { - key: "updateUIState", - value: function updateUIState(state, previous, matchesCount) { - var _this2 = this; - var notFound = false; - var findMsg = ''; - var status = ''; - - switch (state) { - case _pdf_find_controller.FindState.FOUND: - break; - - case _pdf_find_controller.FindState.PENDING: - status = 'pending'; - break; - - case _pdf_find_controller.FindState.NOT_FOUND: - findMsg = this.l10n.get('find_not_found', null, 'Phrase not found'); - notFound = true; - break; - - case _pdf_find_controller.FindState.WRAPPED: - if (previous) { - findMsg = this.l10n.get('find_reached_top', null, 'Reached top of document, continued from bottom'); - } else { - findMsg = this.l10n.get('find_reached_bottom', null, 'Reached end of document, continued from top'); - } - - break; - } - - this.findField.classList.toggle('notFound', notFound); - this.findField.setAttribute('data-status', status); - Promise.resolve(findMsg).then(function (msg) { - _this2.findMsg.textContent = msg; - - _this2._adjustWidth(); - }); - this.updateResultsCount(matchesCount); - } - }, { - key: "updateResultsCount", - value: function updateResultsCount() { - var _this3 = this; - - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - _ref$current = _ref.current, - current = _ref$current === void 0 ? 0 : _ref$current, - _ref$total = _ref.total, - total = _ref$total === void 0 ? 0 : _ref$total; - - if (!this.findResultsCount) { - return; - } - - var matchesCountMsg = '', - limit = MATCHES_COUNT_LIMIT; - - if (total > 0) { - if (total > limit) { - matchesCountMsg = this.l10n.get('find_match_count_limit', { - limit: limit - }, 'More than {{limit}} match' + (limit !== 1 ? 'es' : '')); - } else { - matchesCountMsg = this.l10n.get('find_match_count', { - current: current, - total: total - }, '{{current}} of {{total}} match' + (total !== 1 ? 'es' : '')); - } - } - - Promise.resolve(matchesCountMsg).then(function (msg) { - _this3.findResultsCount.textContent = msg; - - _this3.findResultsCount.classList.toggle('hidden', !total); - - _this3._adjustWidth(); - }); - } - }, { - key: "open", - value: function open() { - if (!this.opened) { - this.opened = true; - this.toggleButton.classList.add('toggled'); - this.bar.classList.remove('hidden'); - } - - this.findField.select(); - this.findField.focus(); + this.findField.setAttribute("data-status", status); + findMsg.then(msg => { + this.findMsg.textContent = msg; this._adjustWidth(); - } - }, { - key: "close", - value: function close() { - if (!this.opened) { - return; - } + }); + this.updateResultsCount(matchesCount); + } - this.opened = false; - this.toggleButton.classList.remove('toggled'); - this.bar.classList.add('hidden'); - this.eventBus.dispatch('findbarclose', { - source: this - }); - } - }, { - key: "toggle", - value: function toggle() { - if (this.opened) { - this.close(); + updateResultsCount({ + current = 0, + total = 0 + } = {}) { + const limit = MATCHES_COUNT_LIMIT; + let matchCountMsg = Promise.resolve(""); + + if (total > 0) { + if (total > limit) { + let key = "find_match_count_limit"; + matchCountMsg = this.l10n.get(key, { + limit + }); } else { - this.open(); + let key = "find_match_count"; + matchCountMsg = this.l10n.get(key, { + current, + total + }); } } - }, { - key: "_adjustWidth", - value: function _adjustWidth() { - if (!this.opened) { - return; - } - this.bar.classList.remove('wrapContainers'); - var findbarHeight = this.bar.clientHeight; - var inputContainerHeight = this.bar.firstElementChild.clientHeight; + matchCountMsg.then(msg => { + this.findResultsCount.textContent = msg; + this.findResultsCount.classList.toggle("hidden", !total); - if (findbarHeight > inputContainerHeight) { - this.bar.classList.add('wrapContainers'); - } + this._adjustWidth(); + }); + } + + open() { + if (!this.opened) { + this.opened = true; + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.bar.classList.remove("hidden"); } - }]); - return PDFFindBar; -}(); + this.findField.select(); + this.findField.focus(); + + this._adjustWidth(); + } + + close() { + if (!this.opened) { + return; + } + + this.opened = false; + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + this.bar.classList.add("hidden"); + this.eventBus.dispatch("findbarclose", { + source: this + }); + } + + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } + + _adjustWidth() { + if (!this.opened) { + return; + } + + this.bar.classList.remove("wrapContainers"); + const findbarHeight = this.bar.clientHeight; + const inputContainerHeight = this.bar.firstElementChild.clientHeight; + + if (findbarHeight > inputContainerHeight) { + this.bar.classList.add("wrapContainers"); + } + } + +} exports.PDFFindBar = PDFFindBar; /***/ }), -/* 18 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 15 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFFindController = exports.FindState = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _pdf_find_utils = __webpack_require__(16); -var _pdf_find_utils = __webpack_require__(19); +var _ui_utils = __webpack_require__(4); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var FindState = { +const FindState = { FOUND: 0, NOT_FOUND: 1, WRAPPED: 2, PENDING: 3 }; exports.FindState = FindState; -var FIND_TIMEOUT = 250; -var MATCH_SCROLL_OFFSET_TOP = -50; -var MATCH_SCROLL_OFFSET_LEFT = -400; -var CHARACTERS_TO_NORMALIZE = { - "\u2018": '\'', - "\u2019": '\'', - "\u201A": '\'', - "\u201B": '\'', +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2018": "'", + "\u2019": "'", + "\u201A": "'", + "\u201B": "'", "\u201C": '"', "\u201D": '"', "\u201E": '"', "\u201F": '"', - "\xBC": '1/4', - "\xBD": '1/2', - "\xBE": '3/4' + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" }; -var normalizationRegex = null; +let normalizationRegex = null; function normalize(text) { if (!normalizationRegex) { - var replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(''); - normalizationRegex = new RegExp("[".concat(replace, "]"), 'g'); + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + normalizationRegex = new RegExp(`[${replace}]`, "g"); } - return text.replace(normalizationRegex, function (ch) { - return CHARACTERS_TO_NORMALIZE[ch]; + let diffs = null; + const normalizedText = text.replace(normalizationRegex, function (ch, index) { + const normalizedCh = CHARACTERS_TO_NORMALIZE[ch], + diff = normalizedCh.length - ch.length; + + if (diff !== 0) { + (diffs || (diffs = [])).push([index, diff]); + } + + return normalizedCh; }); + return [normalizedText, diffs]; } -var PDFFindController = -/*#__PURE__*/ -function () { - function PDFFindController(_ref) { - var linkService = _ref.linkService, - _ref$eventBus = _ref.eventBus, - eventBus = _ref$eventBus === void 0 ? (0, _ui_utils.getGlobalEventBus)() : _ref$eventBus; +function getOriginalIndex(matchIndex, diffs = null) { + if (!diffs) { + return matchIndex; + } - _classCallCheck(this, PDFFindController); + let totalDiff = 0; + for (const [index, diff] of diffs) { + const currentIndex = index + totalDiff; + + if (currentIndex >= matchIndex) { + break; + } + + if (currentIndex + diff > matchIndex) { + totalDiff += matchIndex - currentIndex; + break; + } + + totalDiff += diff; + } + + return matchIndex - totalDiff; +} + +class PDFFindController { + constructor({ + linkService, + eventBus + }) { this._linkService = linkService; this._eventBus = eventBus; this._reset(); - eventBus.on('findbarclose', this._onFindBarClose.bind(this)); + eventBus._on("findbarclose", this._onFindBarClose.bind(this)); } - _createClass(PDFFindController, [{ - key: "setDocument", - value: function setDocument(pdfDocument) { - if (this._pdfDocument) { - this._reset(); - } + get highlightMatches() { + return this._highlightMatches; + } - if (!pdfDocument) { - return; - } + get pageMatches() { + return this._pageMatches; + } - this._pdfDocument = pdfDocument; + get pageMatchesLength() { + return this._pageMatchesLength; + } - this._firstPageCapability.resolve(); + get selected() { + return this._selected; + } + + get state() { + return this._state; + } + + setDocument(pdfDocument) { + if (this._pdfDocument) { + this._reset(); } - }, { - key: "executeCommand", - value: function executeCommand(cmd, state) { - var _this = this; - if (!state) { + if (!pdfDocument) { + return; + } + + this._pdfDocument = pdfDocument; + + this._firstPageCapability.resolve(); + } + + executeCommand(cmd, state) { + if (!state) { + return; + } + + const pdfDocument = this._pdfDocument; + + if (this._state === null || this._shouldDirtyMatch(cmd, state)) { + this._dirtyMatch = true; + } + + this._state = state; + + if (cmd !== "findhighlightallchange") { + this._updateUIState(FindState.PENDING); + } + + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { return; } - var pdfDocument = this._pdfDocument; + this._extractText(); - if (this._state === null || this._shouldDirtyMatch(cmd, state)) { - this._dirtyMatch = true; + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; } - this._state = state; + if (cmd === "find") { + this._findTimeout = setTimeout(() => { + this._nextMatch(); - if (cmd !== 'findhighlightallchange') { - this._updateUIState(FindState.PENDING); - } + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + this._nextMatch(); + } else if (cmd === "findagain") { + this._nextMatch(); - this._firstPageCapability.promise.then(function () { - if (!_this._pdfDocument || pdfDocument && _this._pdfDocument !== pdfDocument) { - return; + if (findbarClosed && this._state.highlightAll) { + this._updateAllPages(); } - - _this._extractText(); - - var findbarClosed = !_this._highlightMatches; - var pendingTimeout = !!_this._findTimeout; - - if (_this._findTimeout) { - clearTimeout(_this._findTimeout); - _this._findTimeout = null; - } - - if (cmd === 'find') { - _this._findTimeout = setTimeout(function () { - _this._nextMatch(); - - _this._findTimeout = null; - }, FIND_TIMEOUT); - } else if (_this._dirtyMatch) { - _this._nextMatch(); - } else if (cmd === 'findagain') { - _this._nextMatch(); - - if (findbarClosed && _this._state.highlightAll) { - _this._updateAllPages(); - } - } else if (cmd === 'findhighlightallchange') { - if (pendingTimeout) { - _this._nextMatch(); - } else { - _this._highlightMatches = true; - } - - _this._updateAllPages(); + } else if (cmd === "findhighlightallchange") { + if (pendingTimeout) { + this._nextMatch(); } else { - _this._nextMatch(); + this._highlightMatches = true; } - }); - } - }, { - key: "scrollMatchIntoView", - value: function scrollMatchIntoView(_ref2) { - var _ref2$element = _ref2.element, - element = _ref2$element === void 0 ? null : _ref2$element, - _ref2$pageIndex = _ref2.pageIndex, - pageIndex = _ref2$pageIndex === void 0 ? -1 : _ref2$pageIndex, - _ref2$matchIndex = _ref2.matchIndex, - matchIndex = _ref2$matchIndex === void 0 ? -1 : _ref2$matchIndex; - if (!this._scrollMatches || !element) { - return; - } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { - return; - } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { - return; + this._updateAllPages(); + } else { + this._nextMatch(); } + }); + } - this._scrollMatches = false; - var spot = { - top: MATCH_SCROLL_OFFSET_TOP, - left: MATCH_SCROLL_OFFSET_LEFT - }; - (0, _ui_utils.scrollIntoView)(element, spot, true); + scrollMatchIntoView({ + element = null, + pageIndex = -1, + matchIndex = -1 + }) { + if (!this._scrollMatches || !element) { + return; + } else if (matchIndex === -1 || matchIndex !== this._selected.matchIdx) { + return; + } else if (pageIndex === -1 || pageIndex !== this._selected.pageIdx) { + return; } - }, { - key: "_reset", - value: function _reset() { - this._highlightMatches = false; - this._scrollMatches = false; - this._pdfDocument = null; - this._pageMatches = []; - this._pageMatchesLength = []; - this._state = null; - this._selected = { - pageIdx: -1, - matchIdx: -1 - }; - this._offset = { - pageIdx: null, - matchIdx: null, - wrapped: false - }; - this._extractTextPromises = []; - this._pageContents = []; - this._matchesCountTotal = 0; - this._pagesToSearch = null; - this._pendingFindMatches = Object.create(null); - this._resumePageIdx = null; - this._dirtyMatch = false; - clearTimeout(this._findTimeout); - this._findTimeout = null; - this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: MATCH_SCROLL_OFFSET_LEFT + }; + (0, _ui_utils.scrollIntoView)(element, spot, true); + } + + _reset() { + this._highlightMatches = false; + this._scrollMatches = false; + this._pdfDocument = null; + this._pageMatches = []; + this._pageMatchesLength = []; + this._state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._pageDiffs = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = new Set(); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + } + + get _query() { + if (this._state.query !== this._rawQuery) { + this._rawQuery = this._state.query; + [this._normalizedQuery] = normalize(this._state.query); } - }, { - key: "_shouldDirtyMatch", - value: function _shouldDirtyMatch(cmd, state) { - if (state.query !== this._state.query) { - return true; - } - switch (cmd) { - case 'findagain': - var pageNumber = this._selected.pageIdx + 1; - var linkService = this._linkService; - - if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { - return true; - } - - return false; - - case 'findhighlightallchange': - return false; - } + return this._normalizedQuery; + } + _shouldDirtyMatch(cmd, state) { + if (state.query !== this._state.query) { return true; } - }, { - key: "_prepareMatches", - value: function _prepareMatches(matchesWithLength, matches, matchesLength) { - function isSubTerm(matchesWithLength, currentIndex) { - var currentElem = matchesWithLength[currentIndex]; - var nextElem = matchesWithLength[currentIndex + 1]; - if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) { - currentElem.skipped = true; + switch (cmd) { + case "findagain": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + + if (pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !linkService.isPageVisible(pageNumber)) { return true; } - for (var i = currentIndex - 1; i >= 0; i--) { - var prevElem = matchesWithLength[i]; - - if (prevElem.skipped) { - continue; - } - - if (prevElem.match + prevElem.matchLength < currentElem.match) { - break; - } - - if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) { - currentElem.skipped = true; - return true; - } - } - return false; - } - matchesWithLength.sort(function (a, b) { - return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match; - }); - - for (var i = 0, len = matchesWithLength.length; i < len; i++) { - if (isSubTerm(matchesWithLength, i)) { - continue; - } - - matches.push(matchesWithLength[i].match); - matchesLength.push(matchesWithLength[i].matchLength); - } + case "findhighlightallchange": + return false; } - }, { - key: "_isEntireWord", - value: function _isEntireWord(content, startIdx, length) { - if (startIdx > 0) { - var first = content.charCodeAt(startIdx); - var limit = content.charCodeAt(startIdx - 1); - if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { - return false; - } - } + return true; + } - var endIdx = startIdx + length - 1; - - if (endIdx < content.length - 1) { - var last = content.charCodeAt(endIdx); - - var _limit = content.charCodeAt(endIdx + 1); - - if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(_limit)) { - return false; - } - } - - return true; - } - }, { - key: "_calculatePhraseMatch", - value: function _calculatePhraseMatch(query, pageIndex, pageContent, entireWord) { - var matches = []; - var queryLen = query.length; - var matchIdx = -queryLen; - - while (true) { - matchIdx = pageContent.indexOf(query, matchIdx + queryLen); - - if (matchIdx === -1) { - break; - } - - if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) { - continue; - } - - matches.push(matchIdx); - } - - this._pageMatches[pageIndex] = matches; - } - }, { - key: "_calculateWordMatch", - value: function _calculateWordMatch(query, pageIndex, pageContent, entireWord) { - var matchesWithLength = []; - var queryArray = query.match(/\S+/g); - - for (var i = 0, len = queryArray.length; i < len; i++) { - var subquery = queryArray[i]; - var subqueryLen = subquery.length; - var matchIdx = -subqueryLen; - - while (true) { - matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen); - - if (matchIdx === -1) { - break; - } - - if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) { - continue; - } - - matchesWithLength.push({ - match: matchIdx, - matchLength: subqueryLen, - skipped: false - }); - } - } - - this._pageMatchesLength[pageIndex] = []; - this._pageMatches[pageIndex] = []; - - this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]); - } - }, { - key: "_calculateMatch", - value: function _calculateMatch(pageIndex) { - var pageContent = this._pageContents[pageIndex]; - var query = this._query; - var _this$_state = this._state, - caseSensitive = _this$_state.caseSensitive, - entireWord = _this$_state.entireWord, - phraseSearch = _this$_state.phraseSearch; - - if (query.length === 0) { - return; - } - - if (!caseSensitive) { - pageContent = pageContent.toLowerCase(); - query = query.toLowerCase(); - } - - if (phraseSearch) { - this._calculatePhraseMatch(query, pageIndex, pageContent, entireWord); - } else { - this._calculateWordMatch(query, pageIndex, pageContent, entireWord); - } - - if (this._state.highlightAll) { - this._updatePage(pageIndex); - } - - if (this._resumePageIdx === pageIndex) { - this._resumePageIdx = null; - - this._nextPageMatch(); - } - - var pageMatchesCount = this._pageMatches[pageIndex].length; - - if (pageMatchesCount > 0) { - this._matchesCountTotal += pageMatchesCount; - - this._updateUIResultsCount(); - } - } - }, { - key: "_extractText", - value: function _extractText() { - var _this2 = this; - - if (this._extractTextPromises.length > 0) { - return; - } - - var promise = Promise.resolve(); - - var _loop = function _loop(i, ii) { - var extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); - _this2._extractTextPromises[i] = extractTextCapability.promise; - promise = promise.then(function () { - return _this2._pdfDocument.getPage(i + 1).then(function (pdfPage) { - return pdfPage.getTextContent({ - normalizeWhitespace: true - }); - }).then(function (textContent) { - var textItems = textContent.items; - var strBuf = []; - - for (var j = 0, jj = textItems.length; j < jj; j++) { - strBuf.push(textItems[j].str); - } - - _this2._pageContents[i] = normalize(strBuf.join('')); - extractTextCapability.resolve(i); - }, function (reason) { - console.error("Unable to get text content for page ".concat(i + 1), reason); - _this2._pageContents[i] = ''; - extractTextCapability.resolve(i); - }); - }); - }; - - for (var i = 0, ii = this._linkService.pagesCount; i < ii; i++) { - _loop(i, ii); - } - } - }, { - key: "_updatePage", - value: function _updatePage(index) { - if (this._scrollMatches && this._selected.pageIdx === index) { - this._linkService.page = index + 1; - } - - this._eventBus.dispatch('updatetextlayermatches', { - source: this, - pageIndex: index - }); - } - }, { - key: "_updateAllPages", - value: function _updateAllPages() { - this._eventBus.dispatch('updatetextlayermatches', { - source: this, - pageIndex: -1 - }); - } - }, { - key: "_nextMatch", - value: function _nextMatch() { - var _this3 = this; - - var previous = this._state.findPrevious; - var currentPageIndex = this._linkService.page - 1; - var numPages = this._linkService.pagesCount; - this._highlightMatches = true; - - if (this._dirtyMatch) { - this._dirtyMatch = false; - this._selected.pageIdx = this._selected.matchIdx = -1; - this._offset.pageIdx = currentPageIndex; - this._offset.matchIdx = null; - this._offset.wrapped = false; - this._resumePageIdx = null; - this._pageMatches.length = 0; - this._pageMatchesLength.length = 0; - this._matchesCountTotal = 0; - - this._updateAllPages(); - - for (var i = 0; i < numPages; i++) { - if (this._pendingFindMatches[i] === true) { - continue; - } - - this._pendingFindMatches[i] = true; - - this._extractTextPromises[i].then(function (pageIdx) { - delete _this3._pendingFindMatches[pageIdx]; - - _this3._calculateMatch(pageIdx); - }); - } - } - - if (this._query === '') { - this._updateUIState(FindState.FOUND); - - return; - } - - if (this._resumePageIdx) { - return; - } - - var offset = this._offset; - this._pagesToSearch = numPages; - - if (offset.matchIdx !== null) { - var numPageMatches = this._pageMatches[offset.pageIdx].length; - - if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { - offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; - - this._updateMatch(true); - - return; - } - - this._advanceOffsetPage(previous); - } - - this._nextPageMatch(); - } - }, { - key: "_matchesReady", - value: function _matchesReady(matches) { - var offset = this._offset; - var numMatches = matches.length; - var previous = this._state.findPrevious; - - if (numMatches) { - offset.matchIdx = previous ? numMatches - 1 : 0; - - this._updateMatch(true); + _prepareMatches(matchesWithLength, matches, matchesLength) { + function isSubTerm(currentIndex) { + const currentElem = matchesWithLength[currentIndex]; + const nextElem = matchesWithLength[currentIndex + 1]; + if (currentIndex < matchesWithLength.length - 1 && currentElem.match === nextElem.match) { + currentElem.skipped = true; return true; } - this._advanceOffsetPage(previous); + for (let i = currentIndex - 1; i >= 0; i--) { + const prevElem = matchesWithLength[i]; - if (offset.wrapped) { - offset.matchIdx = null; + if (prevElem.skipped) { + continue; + } - if (this._pagesToSearch < 0) { - this._updateMatch(false); + if (prevElem.match + prevElem.matchLength < currentElem.match) { + break; + } + if (prevElem.match + prevElem.matchLength >= currentElem.match + currentElem.matchLength) { + currentElem.skipped = true; return true; } } return false; } - }, { - key: "_nextPageMatch", - value: function _nextPageMatch() { - if (this._resumePageIdx !== null) { - console.error('There can only be one pending page.'); + + matchesWithLength.sort(function (a, b) { + return a.match === b.match ? a.matchLength - b.matchLength : a.match - b.match; + }); + + for (let i = 0, len = matchesWithLength.length; i < len; i++) { + if (isSubTerm(i)) { + continue; } - var matches = null; + matches.push(matchesWithLength[i].match); + matchesLength.push(matchesWithLength[i].matchLength); + } + } - do { - var pageIdx = this._offset.pageIdx; - matches = this._pageMatches[pageIdx]; + _isEntireWord(content, startIdx, length) { + if (startIdx > 0) { + const first = content.charCodeAt(startIdx); + const limit = content.charCodeAt(startIdx - 1); - if (!matches) { - this._resumePageIdx = pageIdx; + if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + + const endIdx = startIdx + length - 1; + + if (endIdx < content.length - 1) { + const last = content.charCodeAt(endIdx); + const limit = content.charCodeAt(endIdx + 1); + + if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + + return true; + } + + _calculatePhraseMatch(query, pageIndex, pageContent, pageDiffs, entireWord) { + const matches = [], + matchesLength = []; + const queryLen = query.length; + let matchIdx = -queryLen; + + while (true) { + matchIdx = pageContent.indexOf(query, matchIdx + queryLen); + + if (matchIdx === -1) { + break; + } + + if (entireWord && !this._isEntireWord(pageContent, matchIdx, queryLen)) { + continue; + } + + const originalMatchIdx = getOriginalIndex(matchIdx, pageDiffs), + matchEnd = matchIdx + queryLen - 1, + originalQueryLen = getOriginalIndex(matchEnd, pageDiffs) - originalMatchIdx + 1; + matches.push(originalMatchIdx); + matchesLength.push(originalQueryLen); + } + + this._pageMatches[pageIndex] = matches; + this._pageMatchesLength[pageIndex] = matchesLength; + } + + _calculateWordMatch(query, pageIndex, pageContent, pageDiffs, entireWord) { + const matchesWithLength = []; + const queryArray = query.match(/\S+/g); + + for (let i = 0, len = queryArray.length; i < len; i++) { + const subquery = queryArray[i]; + const subqueryLen = subquery.length; + let matchIdx = -subqueryLen; + + while (true) { + matchIdx = pageContent.indexOf(subquery, matchIdx + subqueryLen); + + if (matchIdx === -1) { break; } - } while (!this._matchesReady(matches)); - } - }, { - key: "_advanceOffsetPage", - value: function _advanceOffsetPage(previous) { - var offset = this._offset; - var numPages = this._linkService.pagesCount; - offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; - offset.matchIdx = null; - this._pagesToSearch--; - if (offset.pageIdx >= numPages || offset.pageIdx < 0) { - offset.pageIdx = previous ? numPages - 1 : 0; - offset.wrapped = true; + if (entireWord && !this._isEntireWord(pageContent, matchIdx, subqueryLen)) { + continue; + } + + const originalMatchIdx = getOriginalIndex(matchIdx, pageDiffs), + matchEnd = matchIdx + subqueryLen - 1, + originalQueryLen = getOriginalIndex(matchEnd, pageDiffs) - originalMatchIdx + 1; + matchesWithLength.push({ + match: originalMatchIdx, + matchLength: originalQueryLen, + skipped: false + }); } } - }, { - key: "_updateMatch", - value: function _updateMatch() { - var found = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var state = FindState.NOT_FOUND; - var wrapped = this._offset.wrapped; + + this._pageMatchesLength[pageIndex] = []; + this._pageMatches[pageIndex] = []; + + this._prepareMatches(matchesWithLength, this._pageMatches[pageIndex], this._pageMatchesLength[pageIndex]); + } + + _calculateMatch(pageIndex) { + let pageContent = this._pageContents[pageIndex]; + const pageDiffs = this._pageDiffs[pageIndex]; + let query = this._query; + const { + caseSensitive, + entireWord, + phraseSearch + } = this._state; + + if (query.length === 0) { + return; + } + + if (!caseSensitive) { + pageContent = pageContent.toLowerCase(); + query = query.toLowerCase(); + } + + if (phraseSearch) { + this._calculatePhraseMatch(query, pageIndex, pageContent, pageDiffs, entireWord); + } else { + this._calculateWordMatch(query, pageIndex, pageContent, pageDiffs, entireWord); + } + + if (this._state.highlightAll) { + this._updatePage(pageIndex); + } + + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + + this._nextPageMatch(); + } + + const pageMatchesCount = this._pageMatches[pageIndex].length; + + if (pageMatchesCount > 0) { + this._matchesCountTotal += pageMatchesCount; + + this._updateUIResultsCount(); + } + } + + _extractText() { + if (this._extractTextPromises.length > 0) { + return; + } + + let promise = Promise.resolve(); + + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const extractTextCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => { + return pdfPage.getTextContent({ + normalizeWhitespace: true + }); + }).then(textContent => { + const textItems = textContent.items; + const strBuf = []; + + for (let j = 0, jj = textItems.length; j < jj; j++) { + strBuf.push(textItems[j].str); + } + + [this._pageContents[i], this._pageDiffs[i]] = normalize(strBuf.join("")); + extractTextCapability.resolve(i); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + this._pageDiffs[i] = null; + extractTextCapability.resolve(i); + }); + }); + } + } + + _updatePage(index) { + if (this._scrollMatches && this._selected.pageIdx === index) { + this._linkService.page = index + 1; + } + + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: index + }); + } + + _updateAllPages() { + this._eventBus.dispatch("updatetextlayermatches", { + source: this, + pageIndex: -1 + }); + } + + _nextMatch() { + const previous = this._state.findPrevious; + const currentPageIndex = this._linkService.page - 1; + const numPages = this._linkService.pagesCount; + this._highlightMatches = true; + + if (this._dirtyMatch) { + this._dirtyMatch = false; + this._selected.pageIdx = this._selected.matchIdx = -1; + this._offset.pageIdx = currentPageIndex; + this._offset.matchIdx = null; this._offset.wrapped = false; + this._resumePageIdx = null; + this._pageMatches.length = 0; + this._pageMatchesLength.length = 0; + this._matchesCountTotal = 0; - if (found) { - var previousPage = this._selected.pageIdx; - this._selected.pageIdx = this._offset.pageIdx; - this._selected.matchIdx = this._offset.matchIdx; - state = wrapped ? FindState.WRAPPED : FindState.FOUND; + this._updateAllPages(); - if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { - this._updatePage(previousPage); - } - } - - this._updateUIState(state, this._state.findPrevious); - - if (this._selected.pageIdx !== -1) { - this._scrollMatches = true; - - this._updatePage(this._selected.pageIdx); - } - } - }, { - key: "_onFindBarClose", - value: function _onFindBarClose(evt) { - var _this4 = this; - - var pdfDocument = this._pdfDocument; - - this._firstPageCapability.promise.then(function () { - if (!_this4._pdfDocument || pdfDocument && _this4._pdfDocument !== pdfDocument) { - return; + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches.has(i)) { + continue; } - if (_this4._findTimeout) { - clearTimeout(_this4._findTimeout); - _this4._findTimeout = null; - } + this._pendingFindMatches.add(i); - if (_this4._resumePageIdx) { - _this4._resumePageIdx = null; - _this4._dirtyMatch = true; - } + this._extractTextPromises[i].then(pageIdx => { + this._pendingFindMatches.delete(pageIdx); - _this4._updateUIState(FindState.FOUND); - - _this4._highlightMatches = false; - - _this4._updateAllPages(); - }); + this._calculateMatch(pageIdx); + }); + } } - }, { - key: "_requestMatchesCount", - value: function _requestMatchesCount() { - var _this$_selected = this._selected, - pageIdx = _this$_selected.pageIdx, - matchIdx = _this$_selected.matchIdx; - var current = 0, - total = this._matchesCountTotal; - if (matchIdx !== -1) { - for (var i = 0; i < pageIdx; i++) { - current += this._pageMatches[i] && this._pageMatches[i].length || 0; - } + if (this._query === "") { + this._updateUIState(FindState.FOUND); - current += matchIdx + 1; + return; + } + + if (this._resumePageIdx) { + return; + } + + const offset = this._offset; + this._pagesToSearch = numPages; + + if (offset.matchIdx !== null) { + const numPageMatches = this._pageMatches[offset.pageIdx].length; + + if (!previous && offset.matchIdx + 1 < numPageMatches || previous && offset.matchIdx > 0) { + offset.matchIdx = previous ? offset.matchIdx - 1 : offset.matchIdx + 1; + + this._updateMatch(true); + + return; } - if (current < 1 || current > total) { - current = total = 0; + this._advanceOffsetPage(previous); + } + + this._nextPageMatch(); + } + + _matchesReady(matches) { + const offset = this._offset; + const numMatches = matches.length; + const previous = this._state.findPrevious; + + if (numMatches) { + offset.matchIdx = previous ? numMatches - 1 : 0; + + this._updateMatch(true); + + return true; + } + + this._advanceOffsetPage(previous); + + if (offset.wrapped) { + offset.matchIdx = null; + + if (this._pagesToSearch < 0) { + this._updateMatch(false); + + return true; + } + } + + return false; + } + + _nextPageMatch() { + if (this._resumePageIdx !== null) { + console.error("There can only be one pending page."); + } + + let matches = null; + + do { + const pageIdx = this._offset.pageIdx; + matches = this._pageMatches[pageIdx]; + + if (!matches) { + this._resumePageIdx = pageIdx; + break; + } + } while (!this._matchesReady(matches)); + } + + _advanceOffsetPage(previous) { + const offset = this._offset; + const numPages = this._linkService.pagesCount; + offset.pageIdx = previous ? offset.pageIdx - 1 : offset.pageIdx + 1; + offset.matchIdx = null; + this._pagesToSearch--; + + if (offset.pageIdx >= numPages || offset.pageIdx < 0) { + offset.pageIdx = previous ? numPages - 1 : 0; + offset.wrapped = true; + } + } + + _updateMatch(found = false) { + let state = FindState.NOT_FOUND; + const wrapped = this._offset.wrapped; + this._offset.wrapped = false; + + if (found) { + const previousPage = this._selected.pageIdx; + this._selected.pageIdx = this._offset.pageIdx; + this._selected.matchIdx = this._offset.matchIdx; + state = wrapped ? FindState.WRAPPED : FindState.FOUND; + + if (previousPage !== -1 && previousPage !== this._selected.pageIdx) { + this._updatePage(previousPage); + } + } + + this._updateUIState(state, this._state.findPrevious); + + if (this._selected.pageIdx !== -1) { + this._scrollMatches = true; + + this._updatePage(this._selected.pageIdx); + } + } + + _onFindBarClose(evt) { + const pdfDocument = this._pdfDocument; + + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; } - return { - current: current, - total: total - }; - } - }, { - key: "_updateUIResultsCount", - value: function _updateUIResultsCount() { - this._eventBus.dispatch('updatefindmatchescount', { - source: this, - matchesCount: this._requestMatchesCount() - }); - } - }, { - key: "_updateUIState", - value: function _updateUIState(state, previous) { - this._eventBus.dispatch('updatefindcontrolstate', { - source: this, - state: state, - previous: previous, - matchesCount: this._requestMatchesCount() - }); - } - }, { - key: "highlightMatches", - get: function get() { - return this._highlightMatches; - } - }, { - key: "pageMatches", - get: function get() { - return this._pageMatches; - } - }, { - key: "pageMatchesLength", - get: function get() { - return this._pageMatchesLength; - } - }, { - key: "selected", - get: function get() { - return this._selected; - } - }, { - key: "state", - get: function get() { - return this._state; - } - }, { - key: "_query", - get: function get() { - if (this._state.query !== this._rawQuery) { - this._rawQuery = this._state.query; - this._normalizedQuery = normalize(this._state.query); + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; } - return this._normalizedQuery; - } - }]); + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; + } - return PDFFindController; -}(); + this._updateUIState(FindState.FOUND); + + this._highlightMatches = false; + + this._updateAllPages(); + }); + } + + _requestMatchesCount() { + const { + pageIdx, + matchIdx + } = this._selected; + let current = 0, + total = this._matchesCountTotal; + + if (matchIdx !== -1) { + for (let i = 0; i < pageIdx; i++) { + current += this._pageMatches[i]?.length || 0; + } + + current += matchIdx + 1; + } + + if (current < 1 || current > total) { + current = total = 0; + } + + return { + current, + total + }; + } + + _updateUIResultsCount() { + this._eventBus.dispatch("updatefindmatchescount", { + source: this, + matchesCount: this._requestMatchesCount() + }); + } + + _updateUIState(state, previous) { + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + matchesCount: this._requestMatchesCount(), + rawQuery: this._state?.query ?? null + }); + } + +} exports.PDFFindController = PDFFindController; /***/ }), -/* 19 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 16 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.getCharacterType = getCharacterType; exports.CharacterType = void 0; -var CharacterType = { +const CharacterType = { SPACE: 0, ALPHA_LETTER: 1, PUNCT: 2, @@ -7421,15 +6015,15 @@ var CharacterType = { exports.CharacterType = CharacterType; function isAlphabeticalScript(charCode) { - return charCode < 0x2E80; + return charCode < 0x2e80; } function isAscii(charCode) { - return (charCode & 0xFF80) === 0; + return (charCode & 0xff80) === 0; } function isAsciiAlpha(charCode) { - return charCode >= 0x61 && charCode <= 0x7A || charCode >= 0x41 && charCode <= 0x5A; + return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; } function isAsciiDigit(charCode) { @@ -7437,27 +6031,27 @@ function isAsciiDigit(charCode) { } function isAsciiSpace(charCode) { - return charCode === 0x20 || charCode === 0x09 || charCode === 0x0D || charCode === 0x0A; + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; } function isHan(charCode) { - return charCode >= 0x3400 && charCode <= 0x9FFF || charCode >= 0xF900 && charCode <= 0xFAFF; + return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; } function isKatakana(charCode) { - return charCode >= 0x30A0 && charCode <= 0x30FF; + return charCode >= 0x30a0 && charCode <= 0x30ff; } function isHiragana(charCode) { - return charCode >= 0x3040 && charCode <= 0x309F; + return charCode >= 0x3040 && charCode <= 0x309f; } function isHalfwidthKatakana(charCode) { - return charCode >= 0xFF60 && charCode <= 0xFF9F; + return charCode >= 0xff60 && charCode <= 0xff9f; } function isThai(charCode) { - return (charCode & 0xFF80) === 0x0E00; + return (charCode & 0xff80) === 0x0e00; } function getCharacterType(charCode) { @@ -7465,14 +6059,14 @@ function getCharacterType(charCode) { if (isAscii(charCode)) { if (isAsciiSpace(charCode)) { return CharacterType.SPACE; - } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5F) { + } else if (isAsciiAlpha(charCode) || isAsciiDigit(charCode) || charCode === 0x5f) { return CharacterType.ALPHA_LETTER; } return CharacterType.PUNCT; } else if (isThai(charCode)) { return CharacterType.THAI_LETTER; - } else if (charCode === 0xA0) { + } else if (charCode === 0xa0) { return CharacterType.SPACE; } @@ -7493,541 +6087,557 @@ function getCharacterType(charCode) { } /***/ }), -/* 20 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 17 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.isDestHashesEqual = isDestHashesEqual; +})); exports.isDestArraysEqual = isDestArraysEqual; +exports.isDestHashesEqual = isDestHashesEqual; exports.PDFHistory = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); } - -function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } - -function _iterableToArrayLimit(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"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } - -function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var HASH_CHANGE_TIMEOUT = 1000; -var POSITION_UPDATED_THRESHOLD = 50; -var UPDATE_VIEWAREA_TIMEOUT = 1000; +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; function getCurrentHash() { return document.location.hash; } -function parseCurrentHash(linkService) { - var hash = unescape(getCurrentHash()).substring(1); - var params = (0, _ui_utils.parseQueryString)(hash); - var page = params.page | 0; - - if (!(Number.isInteger(page) && page > 0 && page <= linkService.pagesCount)) { - page = null; - } - - return { - hash: hash, - page: page, - rotation: linkService.rotation - }; -} - -var PDFHistory = -/*#__PURE__*/ -function () { - function PDFHistory(_ref) { - var _this = this; - - var linkService = _ref.linkService, - eventBus = _ref.eventBus; - - _classCallCheck(this, PDFHistory); - +class PDFHistory { + constructor({ + linkService, + eventBus + }) { this.linkService = linkService; - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); - this.initialized = false; - this.initialBookmark = null; - this.initialRotation = null; - this._boundEvents = Object.create(null); + this.eventBus = eventBus; + this._initialized = false; + this._fingerprint = ""; + this.reset(); + this._boundEvents = null; this._isViewerInPresentationMode = false; - this._isPagesLoaded = false; - this.eventBus.on('presentationmodechanged', function (evt) { - _this._isViewerInPresentationMode = evt.active || evt.switchInProgress; + + this.eventBus._on("presentationmodechanged", evt => { + this._isViewerInPresentationMode = evt.state !== _ui_utils.PresentationModeState.NORMAL; }); - this.eventBus.on('pagesloaded', function (evt) { - _this._isPagesLoaded = !!evt.pagesCount; + + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; + + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + }, { + once: true + }); }); } - _createClass(PDFHistory, [{ - key: "initialize", - value: function initialize(_ref2) { - var fingerprint = _ref2.fingerprint, - _ref2$resetHistory = _ref2.resetHistory, - resetHistory = _ref2$resetHistory === void 0 ? false : _ref2$resetHistory, - _ref2$updateUrl = _ref2.updateUrl, - updateUrl = _ref2$updateUrl === void 0 ? false : _ref2$updateUrl; - - if (!fingerprint || typeof fingerprint !== 'string') { - console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); - return; - } - - var reInitialized = this.initialized && this.fingerprint !== fingerprint; - this.fingerprint = fingerprint; - this._updateUrl = updateUrl === true; - - if (!this.initialized) { - this._bindEvents(); - } - - var state = window.history.state; - this.initialized = true; - this.initialBookmark = null; - this.initialRotation = null; - this._popStateInProgress = false; - this._blockHashChange = 0; - this._currentHash = getCurrentHash(); - this._numPositionUpdates = 0; - this._uid = this._maxUid = 0; - this._destination = null; - this._position = null; - - if (!this._isValidState(state, true) || resetHistory) { - var _parseCurrentHash = parseCurrentHash(this.linkService), - hash = _parseCurrentHash.hash, - page = _parseCurrentHash.page, - rotation = _parseCurrentHash.rotation; - - if (!hash || reInitialized || resetHistory) { - this._pushOrReplaceState(null, true); - - return; - } - - this._pushOrReplaceState({ - hash: hash, - page: page, - rotation: rotation - }, true); - - return; - } - - var destination = state.destination; - - this._updateInternalState(destination, state.uid, true); - - if (this._uid > this._maxUid) { - this._maxUid = this._uid; - } - - if (destination.rotation !== undefined) { - this.initialRotation = destination.rotation; - } - - if (destination.dest) { - this.initialBookmark = JSON.stringify(destination.dest); - this._destination.page = null; - } else if (destination.hash) { - this.initialBookmark = destination.hash; - } else if (destination.page) { - this.initialBookmark = "page=".concat(destination.page); - } + initialize({ + fingerprint, + resetHistory = false, + updateUrl = false + }) { + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; } - }, { - key: "push", - value: function push(_ref3) { - var _this2 = this; - var _ref3$namedDest = _ref3.namedDest, - namedDest = _ref3$namedDest === void 0 ? null : _ref3$namedDest, - explicitDest = _ref3.explicitDest, - pageNumber = _ref3.pageNumber; + if (this._initialized) { + this.reset(); + } - if (!this.initialized) { - return; - } + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; - if (namedDest && typeof namedDest !== 'string') { - console.error('PDFHistory.push: ' + "\"".concat(namedDest, "\" is not a valid namedDest parameter.")); - return; - } else if (!Array.isArray(explicitDest)) { - console.error('PDFHistory.push: ' + "\"".concat(explicitDest, "\" is not a valid explicitDest parameter.")); - return; - } else if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.linkService.pagesCount)) { - if (pageNumber !== null || this._destination) { - console.error('PDFHistory.push: ' + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); - return; - } - } + this._bindEvents(); - var hash = namedDest || JSON.stringify(explicitDest); + const state = window.history.state; + this._popStateInProgress = false; + this._blockHashChange = 0; + this._currentHash = getCurrentHash(); + this._numPositionUpdates = 0; + this._uid = this._maxUid = 0; + this._destination = null; + this._position = null; - if (!hash) { - return; - } + if (!this._isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this._parseCurrentHash(true); - var forceReplace = false; + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); - if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { - if (this._destination.page) { - return; - } - - forceReplace = true; - } - - if (this._popStateInProgress && !forceReplace) { return; } this._pushOrReplaceState({ - dest: explicitDest, - hash: hash, - page: pageNumber, - rotation: this.linkService.rotation - }, forceReplace); + hash, + page, + rotation + }, true); - if (!this._popStateInProgress) { - this._popStateInProgress = true; - Promise.resolve().then(function () { - _this2._popStateInProgress = false; - }); + return; + } + + const destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if (destination.rotation !== undefined) { + this._initialRotation = destination.rotation; + } + + if (destination.dest) { + this._initialBookmark = JSON.stringify(destination.dest); + this._destination.page = null; + } else if (destination.hash) { + this._initialBookmark = destination.hash; + } else if (destination.page) { + this._initialBookmark = `page=${destination.page}`; + } + } + + reset() { + if (this._initialized) { + this._pageHide(); + + this._initialized = false; + + this._unbindEvents(); + } + + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + this._initialBookmark = null; + this._initialRotation = null; + } + + push({ + namedDest = null, + explicitDest, + pageNumber + }) { + if (!this._initialized) { + return; + } + + if (namedDest && typeof namedDest !== "string") { + console.error("PDFHistory.push: " + `"${namedDest}" is not a valid namedDest parameter.`); + return; + } else if (!Array.isArray(explicitDest)) { + console.error("PDFHistory.push: " + `"${explicitDest}" is not a valid explicitDest parameter.`); + return; + } else if (!this._isValidPage(pageNumber)) { + if (pageNumber !== null || this._destination) { + console.error("PDFHistory.push: " + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; } } - }, { - key: "pushCurrentPosition", - value: function pushCurrentPosition() { - if (!this.initialized || this._popStateInProgress) { - return; - } - this._tryPushCurrentPosition(); + const hash = namedDest || JSON.stringify(explicitDest); + + if (!hash) { + return; } - }, { - key: "back", - value: function back() { - if (!this.initialized || this._popStateInProgress) { + + let forceReplace = false; + + if (this._destination && (isDestHashesEqual(this._destination.hash, hash) || isDestArraysEqual(this._destination.dest, explicitDest))) { + if (this._destination.page) { return; } - var state = window.history.state; - - if (this._isValidState(state) && state.uid > 0) { - window.history.back(); - } + forceReplace = true; } - }, { - key: "forward", - value: function forward() { - if (!this.initialized || this._popStateInProgress) { - return; - } - var state = window.history.state; - - if (this._isValidState(state) && state.uid < this._maxUid) { - window.history.forward(); - } + if (this._popStateInProgress && !forceReplace) { + return; } - }, { - key: "_pushOrReplaceState", - value: function _pushOrReplaceState(destination) { - var forceReplace = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var shouldReplace = forceReplace || !this._destination; - var newState = { - fingerprint: this.fingerprint, - uid: shouldReplace ? this._uid : this._uid + 1, - destination: destination - }; - this._updateInternalState(destination, newState.uid); - - var newUrl; - - if (this._updateUrl && destination && destination.hash) { - var baseUrl = document.location.href.split('#')[0]; - - if (!baseUrl.startsWith('file://')) { - newUrl = "".concat(baseUrl, "#").concat(destination.hash); - } - } - - if (shouldReplace) { - if (newUrl) { - window.history.replaceState(newState, '', newUrl); - } else { - window.history.replaceState(newState, ''); - } - } else { - this._maxUid = this._uid; - - if (newUrl) { - window.history.pushState(newState, '', newUrl); - } else { - window.history.pushState(newState, ''); - } - } - } - }, { - key: "_tryPushCurrentPosition", - value: function _tryPushCurrentPosition() { - var temporary = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - - if (!this._position) { - return; - } - - var position = this._position; - - if (temporary) { - position = Object.assign(Object.create(null), this._position); - position.temporary = true; - } - - if (!this._destination) { - this._pushOrReplaceState(position); - - return; - } - - if (this._destination.temporary) { - this._pushOrReplaceState(position, true); - - return; - } - - if (this._destination.hash === position.hash) { - return; - } - - if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { - return; - } - - var forceReplace = false; - - if (this._destination.page >= position.first && this._destination.page <= position.page) { - if (this._destination.dest || !this._destination.first) { - return; - } - - forceReplace = true; - } - - this._pushOrReplaceState(position, forceReplace); - } - }, { - key: "_isValidState", - value: function _isValidState(state) { - var checkReload = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - - if (!state) { - return false; - } - - if (state.fingerprint !== this.fingerprint) { - if (checkReload) { - if (typeof state.fingerprint !== 'string' || state.fingerprint.length !== this.fingerprint.length) { - return false; - } - - var _performance$getEntri = performance.getEntriesByType('navigation'), - _performance$getEntri2 = _slicedToArray(_performance$getEntri, 1), - perfEntry = _performance$getEntri2[0]; - - if (!perfEntry || perfEntry.type !== 'reload') { - return false; - } - } else { - return false; - } - } - - if (!Number.isInteger(state.uid) || state.uid < 0) { - return false; - } - - if (state.destination === null || _typeof(state.destination) !== 'object') { - return false; - } - - return true; - } - }, { - key: "_updateInternalState", - value: function _updateInternalState(destination, uid) { - var removeTemporary = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - - if (removeTemporary && destination && destination.temporary) { - delete destination.temporary; - } - - this._destination = destination; - this._uid = uid; - this._numPositionUpdates = 0; - } - }, { - key: "_updateViewarea", - value: function _updateViewarea(_ref4) { - var _this3 = this; - - var location = _ref4.location; - - if (this._updateViewareaTimeout) { - clearTimeout(this._updateViewareaTimeout); - this._updateViewareaTimeout = null; - } - - this._position = { - hash: this._isViewerInPresentationMode ? "page=".concat(location.pageNumber) : location.pdfOpenParams.substring(1), - page: this.linkService.page, - first: location.pageNumber, - rotation: location.rotation - }; - - if (this._popStateInProgress) { - return; - } - - if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { - this._numPositionUpdates++; - } - - if (UPDATE_VIEWAREA_TIMEOUT > 0) { - this._updateViewareaTimeout = setTimeout(function () { - if (!_this3._popStateInProgress) { - _this3._tryPushCurrentPosition(true); - } - - _this3._updateViewareaTimeout = null; - }, UPDATE_VIEWAREA_TIMEOUT); - } - } - }, { - key: "_popState", - value: function _popState(_ref5) { - var _this4 = this; - - var state = _ref5.state; - var newHash = getCurrentHash(), - hashChanged = this._currentHash !== newHash; - this._currentHash = newHash; - - if (!state || false) { - this._uid++; - - var _parseCurrentHash2 = parseCurrentHash(this.linkService), - hash = _parseCurrentHash2.hash, - page = _parseCurrentHash2.page, - rotation = _parseCurrentHash2.rotation; - - this._pushOrReplaceState({ - hash: hash, - page: page, - rotation: rotation - }, true); - - return; - } - - if (!this._isValidState(state)) { - return; - } + this._pushOrReplaceState({ + dest: explicitDest, + hash, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { this._popStateInProgress = true; - - if (hashChanged) { - this._blockHashChange++; - (0, _ui_utils.waitOnEventOrTimeout)({ - target: window, - name: 'hashchange', - delay: HASH_CHANGE_TIMEOUT - }).then(function () { - _this4._blockHashChange--; - }); - } - - var destination = state.destination; - - this._updateInternalState(destination, state.uid, true); - - if (this._uid > this._maxUid) { - this._maxUid = this._uid; - } - - if ((0, _ui_utils.isValidRotation)(destination.rotation)) { - this.linkService.rotation = destination.rotation; - } - - if (destination.dest) { - this.linkService.navigateTo(destination.dest); - } else if (destination.hash) { - this.linkService.setHash(destination.hash); - } else if (destination.page) { - this.linkService.page = destination.page; - } - - Promise.resolve().then(function () { - _this4._popStateInProgress = false; + Promise.resolve().then(() => { + this._popStateInProgress = false; }); } - }, { - key: "_bindEvents", - value: function _bindEvents() { - var _this5 = this; + } - var _boundEvents = this._boundEvents, - eventBus = this.eventBus; - _boundEvents.updateViewarea = this._updateViewarea.bind(this); - _boundEvents.popState = this._popState.bind(this); + pushPage(pageNumber) { + if (!this._initialized) { + return; + } - _boundEvents.pageHide = function (evt) { - if (!_this5._destination || _this5._destination.temporary) { - _this5._tryPushCurrentPosition(); + if (!this._isValidPage(pageNumber)) { + console.error(`PDFHistory.pushPage: "${pageNumber}" is not a valid page number.`); + return; + } + + if (this._destination?.page === pageNumber) { + return; + } + + if (this._popStateInProgress) { + return; + } + + this._pushOrReplaceState({ + dest: null, + hash: `page=${pageNumber}`, + page: pageNumber, + rotation: this.linkService.rotation + }); + + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + + pushCurrentPosition() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + this._tryPushCurrentPosition(); + } + + back() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + const state = window.history.state; + + if (this._isValidState(state) && state.uid > 0) { + window.history.back(); + } + } + + forward() { + if (!this._initialized || this._popStateInProgress) { + return; + } + + const state = window.history.state; + + if (this._isValidState(state) && state.uid < this._maxUid) { + window.history.forward(); + } + } + + get popStateInProgress() { + return this._initialized && (this._popStateInProgress || this._blockHashChange > 0); + } + + get initialBookmark() { + return this._initialized ? this._initialBookmark : null; + } + + get initialRotation() { + return this._initialized ? this._initialRotation : null; + } + + _pushOrReplaceState(destination, forceReplace = false) { + const shouldReplace = forceReplace || !this._destination; + const newState = { + fingerprint: this._fingerprint, + uid: shouldReplace ? this._uid : this._uid + 1, + destination + }; + + this._updateInternalState(destination, newState.uid); + + let newUrl; + + if (this._updateUrl && destination?.hash) { + const baseUrl = document.location.href.split("#")[0]; + + if (!baseUrl.startsWith("file://")) { + newUrl = `${baseUrl}#${destination.hash}`; + } + } + + if (shouldReplace) { + window.history.replaceState(newState, "", newUrl); + } else { + window.history.pushState(newState, "", newUrl); + } + } + + _tryPushCurrentPosition(temporary = false) { + if (!this._position) { + return; + } + + let position = this._position; + + if (temporary) { + position = Object.assign(Object.create(null), this._position); + position.temporary = true; + } + + if (!this._destination) { + this._pushOrReplaceState(position); + + return; + } + + if (this._destination.temporary) { + this._pushOrReplaceState(position, true); + + return; + } + + if (this._destination.hash === position.hash) { + return; + } + + if (!this._destination.page && (POSITION_UPDATED_THRESHOLD <= 0 || this._numPositionUpdates <= POSITION_UPDATED_THRESHOLD)) { + return; + } + + let forceReplace = false; + + if (this._destination.page >= position.first && this._destination.page <= position.page) { + if (this._destination.dest !== undefined || !this._destination.first) { + return; + } + + forceReplace = true; + } + + this._pushOrReplaceState(position, forceReplace); + } + + _isValidPage(val) { + return Number.isInteger(val) && val > 0 && val <= this.linkService.pagesCount; + } + + _isValidState(state, checkReload = false) { + if (!state) { + return false; + } + + if (state.fingerprint !== this._fingerprint) { + if (checkReload) { + if (typeof state.fingerprint !== "string" || state.fingerprint.length !== this._fingerprint.length) { + return false; } - }; - eventBus.on('updateviewarea', _boundEvents.updateViewarea); - window.addEventListener('popstate', _boundEvents.popState); - window.addEventListener('pagehide', _boundEvents.pageHide); - } - }, { - key: "popStateInProgress", - get: function get() { - return this.initialized && (this._popStateInProgress || this._blockHashChange > 0); - } - }]); + const [perfEntry] = performance.getEntriesByType("navigation"); - return PDFHistory; -}(); + if (perfEntry?.type !== "reload") { + return false; + } + } else { + return false; + } + } + + if (!Number.isInteger(state.uid) || state.uid < 0) { + return false; + } + + if (state.destination === null || typeof state.destination !== "object") { + return false; + } + + return true; + } + + _updateInternalState(destination, uid, removeTemporary = false) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + if (removeTemporary && destination?.temporary) { + delete destination.temporary; + } + + this._destination = destination; + this._uid = uid; + this._maxUid = Math.max(this._maxUid, uid); + this._numPositionUpdates = 0; + } + + _parseCurrentHash(checkNameddest = false) { + const hash = unescape(getCurrentHash()).substring(1); + const params = (0, _ui_utils.parseQueryString)(hash); + const nameddest = params.nameddest || ""; + let page = params.page | 0; + + if (!this._isValidPage(page) || checkNameddest && nameddest.length > 0) { + page = null; + } + + return { + hash, + page, + rotation: this.linkService.rotation + }; + } + + _updateViewarea({ + location + }) { + if (this._updateViewareaTimeout) { + clearTimeout(this._updateViewareaTimeout); + this._updateViewareaTimeout = null; + } + + this._position = { + hash: this._isViewerInPresentationMode ? `page=${location.pageNumber}` : location.pdfOpenParams.substring(1), + page: this.linkService.page, + first: location.pageNumber, + rotation: location.rotation + }; + + if (this._popStateInProgress) { + return; + } + + if (POSITION_UPDATED_THRESHOLD > 0 && this._isPagesLoaded && this._destination && !this._destination.page) { + this._numPositionUpdates++; + } + + if (UPDATE_VIEWAREA_TIMEOUT > 0) { + this._updateViewareaTimeout = setTimeout(() => { + if (!this._popStateInProgress) { + this._tryPushCurrentPosition(true); + } + + this._updateViewareaTimeout = null; + }, UPDATE_VIEWAREA_TIMEOUT); + } + } + + _popState({ + state + }) { + const newHash = getCurrentHash(), + hashChanged = this._currentHash !== newHash; + this._currentHash = newHash; + + if (!state) { + this._uid++; + + const { + hash, + page, + rotation + } = this._parseCurrentHash(); + + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + + return; + } + + if (!this._isValidState(state)) { + return; + } + + this._popStateInProgress = true; + + if (hashChanged) { + this._blockHashChange++; + (0, _ui_utils.waitOnEventOrTimeout)({ + target: window, + name: "hashchange", + delay: HASH_CHANGE_TIMEOUT + }).then(() => { + this._blockHashChange--; + }); + } + + const destination = state.destination; + + this._updateInternalState(destination, state.uid, true); + + if ((0, _ui_utils.isValidRotation)(destination.rotation)) { + this.linkService.rotation = destination.rotation; + } + + if (destination.dest) { + this.linkService.goToDestination(destination.dest); + } else if (destination.hash) { + this.linkService.setHash(destination.hash); + } else if (destination.page) { + this.linkService.page = destination.page; + } + + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + + _pageHide() { + if (!this._destination || this._destination.temporary) { + this._tryPushCurrentPosition(); + } + } + + _bindEvents() { + if (this._boundEvents) { + return; + } + + this._boundEvents = { + updateViewarea: this._updateViewarea.bind(this), + popState: this._popState.bind(this), + pageHide: this._pageHide.bind(this) + }; + + this.eventBus._on("updateviewarea", this._boundEvents.updateViewarea); + + window.addEventListener("popstate", this._boundEvents.popState); + window.addEventListener("pagehide", this._boundEvents.pageHide); + } + + _unbindEvents() { + if (!this._boundEvents) { + return; + } + + this.eventBus._off("updateviewarea", this._boundEvents.updateViewarea); + + window.removeEventListener("popstate", this._boundEvents.popState); + window.removeEventListener("pagehide", this._boundEvents.pageHide); + this._boundEvents = null; + } + +} exports.PDFHistory = PDFHistory; function isDestHashesEqual(destHash, pushHash) { - if (typeof destHash !== 'string' || typeof pushHash !== 'string') { + if (typeof destHash !== "string" || typeof pushHash !== "string") { return false; } @@ -8035,8 +6645,9 @@ function isDestHashesEqual(destHash, pushHash) { return true; } - var _parseQueryString = (0, _ui_utils.parseQueryString)(destHash), - nameddest = _parseQueryString.nameddest; + const { + nameddest + } = (0, _ui_utils.parseQueryString)(destHash); if (nameddest === pushHash) { return true; @@ -8047,7 +6658,7 @@ function isDestHashesEqual(destHash, pushHash) { function isDestArraysEqual(firstDest, secondDest) { function isEntryEqual(first, second) { - if (_typeof(first) !== _typeof(second)) { + if (typeof first !== typeof second) { return false; } @@ -8055,12 +6666,12 @@ function isDestArraysEqual(firstDest, secondDest) { return false; } - if (first !== null && _typeof(first) === 'object' && second !== null) { + if (first !== null && typeof first === "object" && second !== null) { if (Object.keys(first).length !== Object.keys(second).length) { return false; } - for (var key in first) { + for (const key in first) { if (!isEntryEqual(first[key], second[key])) { return false; } @@ -8080,7 +6691,7 @@ function isDestArraysEqual(firstDest, secondDest) { return false; } - for (var i = 0, ii = firstDest.length; i < ii; i++) { + for (let i = 0, ii = firstDest.length; i < ii; i++) { if (!isEntryEqual(firstDest[i], secondDest[i])) { return false; } @@ -8090,43 +6701,215 @@ function isDestArraysEqual(firstDest, secondDest) { } /***/ }), -/* 21 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 18 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.PDFLayerViewer = void 0; + +var _base_tree_viewer = __webpack_require__(12); + +class PDFLayerViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.l10n = options.l10n; + + this.eventBus._on("resetlayers", this._resetLayers.bind(this)); + + this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + } + + reset() { + super.reset(); + this._optionalContentConfig = null; + } + + _dispatchEvent(layersCount) { + this.eventBus.dispatch("layersloaded", { + source: this, + layersCount + }); + } + + _bindLink(element, { + groupId, + input + }) { + const setVisibility = () => { + this._optionalContentConfig.setVisibility(groupId, input.checked); + + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(this._optionalContentConfig) + }); + }; + + element.onclick = evt => { + if (evt.target === input) { + setVisibility(); + return true; + } else if (evt.target !== element) { + return true; + } + + input.checked = !input.checked; + setVisibility(); + return false; + }; + } + + async _setNestedName(element, { + name = null + }) { + if (typeof name === "string") { + element.textContent = this._normalizeTextContent(name); + return; + } + + element.textContent = await this.l10n.get("additional_layers"); + element.style.fontStyle = "italic"; + } + + _addToggleButton(div, { + name = null + }) { + super._addToggleButton(div, name === null); + } + + _toggleAllTreeItems() { + if (!this._optionalContentConfig) { + return; + } + + super._toggleAllTreeItems(); + } + + render({ + optionalContentConfig, + pdfDocument + }) { + if (this._optionalContentConfig) { + this.reset(); + } + + this._optionalContentConfig = optionalContentConfig || null; + this._pdfDocument = pdfDocument || null; + const groups = optionalContentConfig?.getOrder(); + + if (!groups) { + this._dispatchEvent(0); + + return; + } + + const fragment = document.createDocumentFragment(), + queue = [{ + parent: fragment, + groups + }]; + let layersCount = 0, + hasAnyNesting = false; + + while (queue.length > 0) { + const levelData = queue.shift(); + + for (const groupId of levelData.groups) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + div.appendChild(element); + + if (typeof groupId === "object") { + hasAnyNesting = true; + + this._addToggleButton(div, groupId); + + this._setNestedName(element, groupId); + + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.appendChild(itemsDiv); + queue.push({ + parent: itemsDiv, + groups: groupId.order + }); + } else { + const group = optionalContentConfig.getGroup(groupId); + const input = document.createElement("input"); + + this._bindLink(element, { + groupId, + input + }); + + input.type = "checkbox"; + input.id = groupId; + input.checked = group.visible; + const label = document.createElement("label"); + label.setAttribute("for", groupId); + label.textContent = this._normalizeTextContent(group.name); + element.appendChild(input); + element.appendChild(label); + layersCount++; + } + + levelData.parent.appendChild(div); + } + } + + this._finishRendering(fragment, layersCount, hasAnyNesting); + } + + async _resetLayers() { + if (!this._optionalContentConfig) { + return; + } + + const optionalContentConfig = await this._pdfDocument.getOptionalContentConfig(); + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig) + }); + this.render({ + optionalContentConfig, + pdfDocument: this._pdfDocument + }); + } + +} + +exports.PDFLayerViewer = PDFLayerViewer; + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.SimpleLinkService = exports.PDFLinkService = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PDFLinkService = -/*#__PURE__*/ -function () { - function PDFLinkService() { - var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, - eventBus = _ref.eventBus, - _ref$externalLinkTarg = _ref.externalLinkTarget, - externalLinkTarget = _ref$externalLinkTarg === void 0 ? null : _ref$externalLinkTarg, - _ref$externalLinkRel = _ref.externalLinkRel, - externalLinkRel = _ref$externalLinkRel === void 0 ? null : _ref$externalLinkRel; - - _classCallCheck(this, PDFLinkService); - - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); +class PDFLinkService { + constructor({ + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + externalLinkEnabled = true, + ignoreDestinationZoom = false + } = {}) { + this.eventBus = eventBus; this.externalLinkTarget = externalLinkTarget; this.externalLinkRel = externalLinkRel; + this.externalLinkEnabled = externalLinkEnabled; + this._ignoreDestinationZoom = ignoreDestinationZoom; this.baseUrl = null; this.pdfDocument = null; this.pdfViewer = null; @@ -8134,311 +6917,309 @@ function () { this._pagesRefCache = null; } - _createClass(PDFLinkService, [{ - key: "setDocument", - value: function setDocument(pdfDocument) { - var baseUrl = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null; - this.baseUrl = baseUrl; - this.pdfDocument = pdfDocument; - this._pagesRefCache = Object.create(null); + setDocument(pdfDocument, baseUrl = null) { + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + this._pagesRefCache = Object.create(null); + } + + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + + setHistory(pdfHistory) { + this.pdfHistory = pdfHistory; + } + + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + } + + get page() { + return this.pdfViewer.currentPageNumber; + } + + set page(value) { + this.pdfViewer.currentPageNumber = value; + } + + get rotation() { + return this.pdfViewer.pagesRotation; + } + + set rotation(value) { + this.pdfViewer.pagesRotation = value; + } + + _goToDestinationHelper(rawDest, namedDest = null, explicitDest) { + const destRef = explicitDest[0]; + let pageNumber; + + if (destRef instanceof Object) { + pageNumber = this._cachedPageNumber(destRef); + + if (pageNumber === null) { + this.pdfDocument.getPageIndex(destRef).then(pageIndex => { + this.cachePageRef(pageIndex + 1, destRef); + + this._goToDestinationHelper(rawDest, namedDest, explicitDest); + }).catch(() => { + console.error(`PDFLinkService._goToDestinationHelper: "${destRef}" is not ` + `a valid page reference, for dest="${rawDest}".`); + }); + return; + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } else { + console.error(`PDFLinkService._goToDestinationHelper: "${destRef}" is not ` + `a valid destination reference, for dest="${rawDest}".`); + return; } - }, { - key: "setViewer", - value: function setViewer(pdfViewer) { - this.pdfViewer = pdfViewer; + + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`PDFLinkService._goToDestinationHelper: "${pageNumber}" is not ` + `a valid page number, for dest="${rawDest}".`); + return; } - }, { - key: "setHistory", - value: function setHistory(pdfHistory) { - this.pdfHistory = pdfHistory; + + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber + }); } - }, { - key: "navigateTo", - value: function navigateTo(dest) { - var _this = this; - var goToDestination = function goToDestination(_ref2) { - var namedDest = _ref2.namedDest, - explicitDest = _ref2.explicitDest; - var destRef = explicitDest[0], - pageNumber; + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom + }); + } - if (destRef instanceof Object) { - pageNumber = _this._cachedPageNumber(destRef); + async goToDestination(dest) { + if (!this.pdfDocument) { + return; + } - if (pageNumber === null) { - _this.pdfDocument.getPageIndex(destRef).then(function (pageIndex) { - _this.cachePageRef(pageIndex + 1, destRef); + let namedDest, explicitDest; - goToDestination({ - namedDest: namedDest, - explicitDest: explicitDest - }); - })["catch"](function () { - console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid page reference, for dest=\"".concat(dest, "\".")); - }); + if (typeof dest === "string") { + namedDest = dest; + explicitDest = await this.pdfDocument.getDestination(dest); + } else { + namedDest = null; + explicitDest = await dest; + } - return; - } - } else if (Number.isInteger(destRef)) { - pageNumber = destRef + 1; + if (!Array.isArray(explicitDest)) { + console.error(`PDFLinkService.goToDestination: "${explicitDest}" is not ` + `a valid destination array, for dest="${dest}".`); + return; + } + + this._goToDestinationHelper(dest, namedDest, explicitDest); + } + + goToPage(val) { + if (!this.pdfDocument) { + return; + } + + const pageNumber = typeof val === "string" && this.pdfViewer.pageLabelToPageNumber(val) || val | 0; + + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`PDFLinkService.goToPage: "${val}" is not a valid page.`); + return; + } + + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.pushPage(pageNumber); + } + + this.pdfViewer.scrollPageIntoView({ + pageNumber + }); + } + + getDestinationHash(dest) { + if (typeof dest === "string") { + if (dest.length > 0) { + return this.getAnchorUrl("#" + escape(dest)); + } + } else if (Array.isArray(dest)) { + const str = JSON.stringify(dest); + + if (str.length > 0) { + return this.getAnchorUrl("#" + escape(str)); + } + } + + return this.getAnchorUrl(""); + } + + getAnchorUrl(anchor) { + return (this.baseUrl || "") + anchor; + } + + setHash(hash) { + if (!this.pdfDocument) { + return; + } + + let pageNumber, dest; + + if (hash.includes("=")) { + const params = (0, _ui_utils.parseQueryString)(hash); + + if ("search" in params) { + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: params.search.replace(/"/g, ""), + phraseSearch: params.phrase === "true" + }); + } + + if ("page" in params) { + pageNumber = params.page | 0 || 1; + } + + if ("zoom" in params) { + const zoomArgs = params.zoom.split(","); + const zoomArg = zoomArgs[0]; + const zoomArgNumber = parseFloat(zoomArg); + + if (!zoomArg.includes("Fit")) { + dest = [null, { + name: "XYZ" + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; } else { - console.error("PDFLinkService.navigateTo: \"".concat(destRef, "\" is not ") + "a valid destination reference, for dest=\"".concat(dest, "\".")); - return; - } - - if (!pageNumber || pageNumber < 1 || pageNumber > _this.pagesCount) { - console.error("PDFLinkService.navigateTo: \"".concat(pageNumber, "\" is not ") + "a valid page number, for dest=\"".concat(dest, "\".")); - return; - } - - if (_this.pdfHistory) { - _this.pdfHistory.pushCurrentPosition(); - - _this.pdfHistory.push({ - namedDest: namedDest, - explicitDest: explicitDest, - pageNumber: pageNumber - }); - } - - _this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber, - destArray: explicitDest - }); - }; - - new Promise(function (resolve, reject) { - if (typeof dest === 'string') { - _this.pdfDocument.getDestination(dest).then(function (destArray) { - resolve({ - namedDest: dest, - explicitDest: destArray - }); - }); - - return; - } - - resolve({ - namedDest: '', - explicitDest: dest - }); - }).then(function (data) { - if (!Array.isArray(data.explicitDest)) { - console.error("PDFLinkService.navigateTo: \"".concat(data.explicitDest, "\" is") + " not a valid destination array, for dest=\"".concat(dest, "\".")); - return; - } - - goToDestination(data); - }); - } - }, { - key: "getDestinationHash", - value: function getDestinationHash(dest) { - if (typeof dest === 'string') { - return this.getAnchorUrl('#' + escape(dest)); - } - - if (Array.isArray(dest)) { - var str = JSON.stringify(dest); - return this.getAnchorUrl('#' + escape(str)); - } - - return this.getAnchorUrl(''); - } - }, { - key: "getAnchorUrl", - value: function getAnchorUrl(anchor) { - return (this.baseUrl || '') + anchor; - } - }, { - key: "setHash", - value: function setHash(hash) { - var pageNumber, dest; - - if (hash.includes('=')) { - var params = (0, _ui_utils.parseQueryString)(hash); - - if ('search' in params) { - this.eventBus.dispatch('findfromurlhash', { - source: this, - query: params['search'].replace(/"/g, ''), - phraseSearch: params['phrase'] === 'true' - }); - } - - if ('nameddest' in params) { - this.navigateTo(params.nameddest); - return; - } - - if ('page' in params) { - pageNumber = params.page | 0 || 1; - } - - if ('zoom' in params) { - var zoomArgs = params.zoom.split(','); - var zoomArg = zoomArgs[0]; - var zoomArgNumber = parseFloat(zoomArg); - - if (!zoomArg.includes('Fit')) { + if (zoomArg === "Fit" || zoomArg === "FitB") { dest = [null, { - name: 'XYZ' - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null, zoomArgs.length > 2 ? zoomArgs[2] | 0 : null, zoomArgNumber ? zoomArgNumber / 100 : zoomArg]; - } else { - if (zoomArg === 'Fit' || zoomArg === 'FitB') { - dest = [null, { - name: zoomArg - }]; - } else if (zoomArg === 'FitH' || zoomArg === 'FitBH' || zoomArg === 'FitV' || zoomArg === 'FitBV') { - dest = [null, { - name: zoomArg - }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; - } else if (zoomArg === 'FitR') { - if (zoomArgs.length !== 5) { - console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); - } else { - dest = [null, { - name: zoomArg - }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; - } + name: zoomArg + }]; + } else if (zoomArg === "FitH" || zoomArg === "FitBH" || zoomArg === "FitV" || zoomArg === "FitBV") { + dest = [null, { + name: zoomArg + }, zoomArgs.length > 1 ? zoomArgs[1] | 0 : null]; + } else if (zoomArg === "FitR") { + if (zoomArgs.length !== 5) { + console.error('PDFLinkService.setHash: Not enough parameters for "FitR".'); } else { - console.error("PDFLinkService.setHash: \"".concat(zoomArg, "\" is not ") + 'a valid zoom value.'); + dest = [null, { + name: zoomArg + }, zoomArgs[1] | 0, zoomArgs[2] | 0, zoomArgs[3] | 0, zoomArgs[4] | 0]; } + } else { + console.error(`PDFLinkService.setHash: "${zoomArg}" is not ` + "a valid zoom value."); } } - - if (dest) { - this.pdfViewer.scrollPageIntoView({ - pageNumber: pageNumber || this.page, - destArray: dest, - allowNegativeOffset: true - }); - } else if (pageNumber) { - this.page = pageNumber; - } - - if ('pagemode' in params) { - this.eventBus.dispatch('pagemode', { - source: this, - mode: params.pagemode - }); - } - } else { - dest = unescape(hash); - - try { - dest = JSON.parse(dest); - - if (!Array.isArray(dest)) { - dest = dest.toString(); - } - } catch (ex) {} - - if (typeof dest === 'string' || isValidExplicitDestination(dest)) { - this.navigateTo(dest); - return; - } - - console.error("PDFLinkService.setHash: \"".concat(unescape(hash), "\" is not ") + 'a valid destination.'); - } - } - }, { - key: "executeNamedAction", - value: function executeNamedAction(action) { - switch (action) { - case 'GoBack': - if (this.pdfHistory) { - this.pdfHistory.back(); - } - - break; - - case 'GoForward': - if (this.pdfHistory) { - this.pdfHistory.forward(); - } - - break; - - case 'NextPage': - if (this.page < this.pagesCount) { - this.page++; - } - - break; - - case 'PrevPage': - if (this.page > 1) { - this.page--; - } - - break; - - case 'LastPage': - this.page = this.pagesCount; - break; - - case 'FirstPage': - this.page = 1; - break; - - default: - break; } - this.eventBus.dispatch('namedaction', { - source: this, - action: action - }); - } - }, { - key: "cachePageRef", - value: function cachePageRef(pageNum, pageRef) { - if (!pageRef) { + if (dest) { + this.pdfViewer.scrollPageIntoView({ + pageNumber: pageNumber || this.page, + destArray: dest, + allowNegativeOffset: true + }); + } else if (pageNumber) { + this.page = pageNumber; + } + + if ("pagemode" in params) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.pagemode + }); + } + + if ("nameddest" in params) { + this.goToDestination(params.nameddest); + } + } else { + dest = unescape(hash); + + try { + dest = JSON.parse(dest); + + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch (ex) {} + + if (typeof dest === "string" || isValidExplicitDestination(dest)) { + this.goToDestination(dest); return; } - var refStr = pageRef.num + ' ' + pageRef.gen + ' R'; - this._pagesRefCache[refStr] = pageNum; + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not ` + "a valid destination."); } - }, { - key: "_cachedPageNumber", - value: function _cachedPageNumber(pageRef) { - var refStr = pageRef.num + ' ' + pageRef.gen + ' R'; - return this._pagesRefCache && this._pagesRefCache[refStr] || null; - } - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - return this.pdfViewer.isPageVisible(pageNumber); - } - }, { - key: "pagesCount", - get: function get() { - return this.pdfDocument ? this.pdfDocument.numPages : 0; - } - }, { - key: "page", - get: function get() { - return this.pdfViewer.currentPageNumber; - }, - set: function set(value) { - this.pdfViewer.currentPageNumber = value; - } - }, { - key: "rotation", - get: function get() { - return this.pdfViewer.pagesRotation; - }, - set: function set(value) { - this.pdfViewer.pagesRotation = value; - } - }]); + } - return PDFLinkService; -}(); + executeNamedAction(action) { + switch (action) { + case "GoBack": + if (this.pdfHistory) { + this.pdfHistory.back(); + } + + break; + + case "GoForward": + if (this.pdfHistory) { + this.pdfHistory.forward(); + } + + break; + + case "NextPage": + this.pdfViewer.nextPage(); + break; + + case "PrevPage": + this.pdfViewer.previousPage(); + break; + + case "LastPage": + this.page = this.pagesCount; + break; + + case "FirstPage": + this.page = 1; + break; + + default: + break; + } + + this.eventBus.dispatch("namedaction", { + source: this, + action + }); + } + + cachePageRef(pageNum, pageRef) { + if (!pageRef) { + return; + } + + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + this._pagesRefCache[refStr] = pageNum; + } + + _cachedPageNumber(pageRef) { + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + return this._pagesRefCache?.[refStr] || null; + } + + isPageVisible(pageNumber) { + return this.pdfViewer.isPageVisible(pageNumber); + } + + isPageCached(pageNumber) { + return this.pdfViewer.isPageCached(pageNumber); + } + +} exports.PDFLinkService = PDFLinkService; @@ -8447,48 +7228,49 @@ function isValidExplicitDestination(dest) { return false; } - var destLength = dest.length, - allowNull = true; + const destLength = dest.length; if (destLength < 2) { return false; } - var page = dest[0]; + const page = dest[0]; - if (!(_typeof(page) === 'object' && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { return false; } - var zoom = dest[1]; + const zoom = dest[1]; - if (!(_typeof(zoom) === 'object' && typeof zoom.name === 'string')) { + if (!(typeof zoom === "object" && typeof zoom.name === "string")) { return false; } + let allowNull = true; + switch (zoom.name) { - case 'XYZ': + case "XYZ": if (destLength !== 5) { return false; } break; - case 'Fit': - case 'FitB': + case "Fit": + case "FitB": return destLength === 2; - case 'FitH': - case 'FitBH': - case 'FitV': - case 'FitBV': + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": if (destLength !== 3) { return false; } break; - case 'FitR': + case "FitR": if (destLength !== 6) { return false; } @@ -8500,10 +7282,10 @@ function isValidExplicitDestination(dest) { return false; } - for (var i = 2; i < destLength; i++) { - var param = dest[i]; + for (let i = 2; i < destLength; i++) { + const param = dest[i]; - if (!(typeof param === 'number' || allowNull && param === null)) { + if (!(typeof param === "number" || allowNull && param === null)) { return false; } } @@ -8511,374 +7293,429 @@ function isValidExplicitDestination(dest) { return true; } -var SimpleLinkService = -/*#__PURE__*/ -function () { - function SimpleLinkService() { - _classCallCheck(this, SimpleLinkService); - +class SimpleLinkService { + constructor() { this.externalLinkTarget = null; this.externalLinkRel = null; + this.externalLinkEnabled = true; + this._ignoreDestinationZoom = false; } - _createClass(SimpleLinkService, [{ - key: "navigateTo", - value: function navigateTo(dest) {} - }, { - key: "getDestinationHash", - value: function getDestinationHash(dest) { - return '#'; - } - }, { - key: "getAnchorUrl", - value: function getAnchorUrl(hash) { - return '#'; - } - }, { - key: "setHash", - value: function setHash(hash) {} - }, { - key: "executeNamedAction", - value: function executeNamedAction(action) {} - }, { - key: "cachePageRef", - value: function cachePageRef(pageNum, pageRef) {} - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - return true; - } - }, { - key: "pagesCount", - get: function get() { - return 0; - } - }, { - key: "page", - get: function get() { - return 0; - }, - set: function set(value) {} - }, { - key: "rotation", - get: function get() { - return 0; - }, - set: function set(value) {} - }]); + get pagesCount() { + return 0; + } - return SimpleLinkService; -}(); + get page() { + return 0; + } + + set page(value) {} + + get rotation() { + return 0; + } + + set rotation(value) {} + + async goToDestination(dest) {} + + goToPage(val) {} + + getDestinationHash(dest) { + return "#"; + } + + getAnchorUrl(hash) { + return "#"; + } + + setHash(hash) {} + + executeNamedAction(action) {} + + cachePageRef(pageNum, pageRef) {} + + isPageVisible(pageNumber) { + return true; + } + + isPageCached(pageNumber) { + return true; + } + +} exports.SimpleLinkService = SimpleLinkService; /***/ }), -/* 22 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 20 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFOutlineViewer = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _base_tree_viewer = __webpack_require__(12); -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); } } +var _ui_utils = __webpack_require__(4); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.linkService = options.linkService; -var DEFAULT_TITLE = "\u2013"; + this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); -var PDFOutlineViewer = -/*#__PURE__*/ -function () { - function PDFOutlineViewer(_ref) { - var container = _ref.container, - linkService = _ref.linkService, - eventBus = _ref.eventBus; + this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); - _classCallCheck(this, PDFOutlineViewer); + this.eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); - this.container = container; - this.linkService = linkService; - this.eventBus = eventBus; - this.reset(); - eventBus.on('toggleoutlinetree', this.toggleOutlineTree.bind(this)); + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); + } + }); + + this.eventBus._on("sidebarviewchanged", evt => { + this._sidebarView = evt.view; + }); } - _createClass(PDFOutlineViewer, [{ - key: "reset", - value: function reset() { - this.outline = null; - this.lastToggleIsShow = true; - this.container.textContent = ''; - this.container.classList.remove('outlineWithDeepNesting'); + reset() { + super.reset(); + this._outline = null; + this._pageNumberToDestHashCapability = null; + this._currentPageNumber = 1; + this._isPagesLoaded = false; + + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(false); } - }, { - key: "_dispatchEvent", - value: function _dispatchEvent(outlineCount) { - this.eventBus.dispatch('outlineloaded', { - source: this, - outlineCount: outlineCount + + this._currentOutlineItemCapability = null; + } + + _dispatchEvent(outlineCount) { + this._currentOutlineItemCapability = (0, _pdfjsLib.createPromiseCapability)(); + + if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) { + this._currentOutlineItemCapability.resolve(false); + } else if (this._isPagesLoaded) { + this._currentOutlineItemCapability.resolve(true); + } + + this.eventBus.dispatch("outlineloaded", { + source: this, + outlineCount, + currentOutlineItemPromise: this._currentOutlineItemCapability.promise + }); + } + + _bindLink(element, { + url, + newWindow, + dest + }) { + const { + linkService + } = this; + + if (url) { + (0, _pdfjsLib.addLinkAttributes)(element, { + url, + target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget, + rel: linkService.externalLinkRel, + enabled: linkService.externalLinkEnabled }); + return; } - }, { - key: "_bindLink", - value: function _bindLink(element, _ref2) { - var url = _ref2.url, - newWindow = _ref2.newWindow, - dest = _ref2.dest; - var linkService = this.linkService; - if (url) { - (0, _pdfjsLib.addLinkAttributes)(element, { - url: url, - target: newWindow ? _pdfjsLib.LinkTarget.BLANK : linkService.externalLinkTarget, - rel: linkService.externalLinkRel - }); - return; + element.href = linkService.getDestinationHash(dest); + + element.onclick = evt => { + this._updateCurrentTreeItem(evt.target.parentNode); + + if (dest) { + linkService.goToDestination(dest); } - element.href = linkService.getDestinationHash(dest); + return false; + }; + } - element.onclick = function () { - if (dest) { - linkService.navigateTo(dest); - } - - return false; - }; + _setStyles(element, { + bold, + italic + }) { + if (bold) { + element.style.fontWeight = "bold"; } - }, { - key: "_setStyles", - value: function _setStyles(element, _ref3) { - var bold = _ref3.bold, - italic = _ref3.italic; - var styleStr = ''; - if (bold) { - styleStr += 'font-weight: bold;'; - } - - if (italic) { - styleStr += 'font-style: italic;'; - } - - if (styleStr) { - element.setAttribute('style', styleStr); - } + if (italic) { + element.style.fontStyle = "italic"; } - }, { - key: "_addToggleButton", - value: function _addToggleButton(div, _ref4) { - var _this = this; + } - var count = _ref4.count, - items = _ref4.items; - var toggler = document.createElement('div'); - toggler.className = 'outlineItemToggler'; + _addToggleButton(div, { + count, + items + }) { + let hidden = false; - if (count < 0 && Math.abs(count) === items.length) { - toggler.classList.add('outlineItemsHidden'); - } + if (count < 0) { + let totalCount = items.length; - toggler.onclick = function (evt) { - evt.stopPropagation(); - toggler.classList.toggle('outlineItemsHidden'); + if (totalCount > 0) { + const queue = [...items]; - if (evt.shiftKey) { - var shouldShowAll = !toggler.classList.contains('outlineItemsHidden'); + while (queue.length > 0) { + const { + count: nestedCount, + items: nestedItems + } = queue.shift(); - _this._toggleOutlineItem(div, shouldShowAll); - } - }; - - div.insertBefore(toggler, div.firstChild); - } - }, { - key: "_toggleOutlineItem", - value: function _toggleOutlineItem(root) { - var show = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - this.lastToggleIsShow = show; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; - - try { - for (var _iterator = root.querySelectorAll('.outlineItemToggler')[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var toggler = _step.value; - toggler.classList.toggle('outlineItemsHidden', !show); - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; + if (nestedCount > 0 && nestedItems.length > 0) { + totalCount += nestedItems.length; + queue.push(...nestedItems); } } } + + if (Math.abs(count) === totalCount) { + hidden = true; + } } - }, { - key: "toggleOutlineTree", - value: function toggleOutlineTree() { - if (!this.outline) { - return; - } - this._toggleOutlineItem(this.container, !this.lastToggleIsShow); + super._addToggleButton(div, hidden); + } + + _toggleAllTreeItems() { + if (!this._outline) { + return; } - }, { - key: "render", - value: function render(_ref5) { - var outline = _ref5.outline; - var outlineCount = 0; - if (this.outline) { - this.reset(); + super._toggleAllTreeItems(); + } + + render({ + outline, + pdfDocument + }) { + if (this._outline) { + this.reset(); + } + + this._outline = outline || null; + this._pdfDocument = pdfDocument || null; + + if (!outline) { + this._dispatchEvent(0); + + return; + } + + const fragment = document.createDocumentFragment(); + const queue = [{ + parent: fragment, + items: outline + }]; + let outlineCount = 0, + hasAnyNesting = false; + + while (queue.length > 0) { + const levelData = queue.shift(); + + for (const item of levelData.items) { + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + + this._bindLink(element, item); + + this._setStyles(element, item); + + element.textContent = this._normalizeTextContent(item.title); + div.appendChild(element); + + if (item.items.length > 0) { + hasAnyNesting = true; + + this._addToggleButton(div, item); + + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.appendChild(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); + } + + levelData.parent.appendChild(div); + outlineCount++; + } + } + + this._finishRendering(fragment, outlineCount, hasAnyNesting); + } + + async _currentOutlineItem() { + if (!this._isPagesLoaded) { + throw new Error("_currentOutlineItem: All pages have not been loaded."); + } + + if (!this._outline || !this._pdfDocument) { + return; + } + + const pageNumberToDestHash = await this._getPageNumberToDestHash(this._pdfDocument); + + if (!pageNumberToDestHash) { + return; + } + + this._updateCurrentTreeItem(null); + + if (this._sidebarView !== _ui_utils.SidebarView.OUTLINE) { + return; + } + + for (let i = this._currentPageNumber; i > 0; i--) { + const destHash = pageNumberToDestHash.get(i); + + if (!destHash) { + continue; } - this.outline = outline || null; + const linkElement = this.container.querySelector(`a[href="${destHash}"]`); - if (!outline) { - this._dispatchEvent(outlineCount); - - return; + if (!linkElement) { + continue; } - var fragment = document.createDocumentFragment(); - var queue = [{ - parent: fragment, - items: this.outline - }]; - var hasAnyNesting = false; + this._scrollToCurrentTreeItem(linkElement.parentNode); - while (queue.length > 0) { - var levelData = queue.shift(); - var _iteratorNormalCompletion2 = true; - var _didIteratorError2 = false; - var _iteratorError2 = undefined; + break; + } + } - try { - for (var _iterator2 = levelData.items[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) { - var item = _step2.value; - var div = document.createElement('div'); - div.className = 'outlineItem'; - var element = document.createElement('a'); + async _getPageNumberToDestHash(pdfDocument) { + if (this._pageNumberToDestHashCapability) { + return this._pageNumberToDestHashCapability.promise; + } - this._bindLink(element, item); + this._pageNumberToDestHashCapability = (0, _pdfjsLib.createPromiseCapability)(); + const pageNumberToDestHash = new Map(), + pageNumberNesting = new Map(); + const queue = [{ + nesting: 0, + items: this._outline + }]; - this._setStyles(element, item); + while (queue.length > 0) { + const levelData = queue.shift(), + currentNesting = levelData.nesting; - element.textContent = (0, _pdfjsLib.removeNullCharacters)(item.title) || DEFAULT_TITLE; - div.appendChild(element); + for (const { + dest, + items + } of levelData.items) { + let explicitDest, pageNumber; - if (item.items.length > 0) { - hasAnyNesting = true; + if (typeof dest === "string") { + explicitDest = await pdfDocument.getDestination(dest); - this._addToggleButton(div, item); + if (pdfDocument !== this._pdfDocument) { + return null; + } + } else { + explicitDest = dest; + } - var itemsDiv = document.createElement('div'); - itemsDiv.className = 'outlineItems'; - div.appendChild(itemsDiv); - queue.push({ - parent: itemsDiv, - items: item.items - }); + if (Array.isArray(explicitDest)) { + const [destRef] = explicitDest; + + if (destRef instanceof Object) { + pageNumber = this.linkService._cachedPageNumber(destRef); + + if (!pageNumber) { + try { + pageNumber = (await pdfDocument.getPageIndex(destRef)) + 1; + + if (pdfDocument !== this._pdfDocument) { + return null; + } + + this.linkService.cachePageRef(pageNumber, destRef); + } catch (ex) {} } - - levelData.parent.appendChild(div); - outlineCount++; + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; } - } catch (err) { - _didIteratorError2 = true; - _iteratorError2 = err; - } finally { - try { - if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) { - _iterator2["return"](); - } - } finally { - if (_didIteratorError2) { - throw _iteratorError2; - } + + if (Number.isInteger(pageNumber) && (!pageNumberToDestHash.has(pageNumber) || currentNesting > pageNumberNesting.get(pageNumber))) { + const destHash = this.linkService.getDestinationHash(dest); + pageNumberToDestHash.set(pageNumber, destHash); + pageNumberNesting.set(pageNumber, currentNesting); } } + + if (items.length > 0) { + queue.push({ + nesting: currentNesting + 1, + items + }); + } } - - if (hasAnyNesting) { - this.container.classList.add('outlineWithDeepNesting'); - this.lastToggleIsShow = fragment.querySelectorAll('.outlineItemsHidden').length === 0; - } - - this.container.appendChild(fragment); - - this._dispatchEvent(outlineCount); } - }]); - return PDFOutlineViewer; -}(); + this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); + + return this._pageNumberToDestHashCapability.promise; + } + +} exports.PDFOutlineViewer = PDFOutlineViewer; /***/ }), -/* 23 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 21 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFPresentationMode = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; -var DELAY_BEFORE_HIDING_CONTROLS = 3000; -var ACTIVE_SELECTOR = 'pdfPresentationMode'; -var CONTROLS_SELECTOR = 'pdfPresentationModeControls'; -var MOUSE_SCROLL_COOLDOWN_TIME = 50; -var PAGE_SWITCH_THRESHOLD = 0.1; -var SWIPE_MIN_DISTANCE_THRESHOLD = 50; -var SWIPE_ANGLE_THRESHOLD = Math.PI / 6; - -var PDFPresentationMode = -/*#__PURE__*/ -function () { - function PDFPresentationMode(_ref) { - var _this = this; - - var container = _ref.container, - _ref$viewer = _ref.viewer, - viewer = _ref$viewer === void 0 ? null : _ref$viewer, - pdfViewer = _ref.pdfViewer, - eventBus = _ref.eventBus, - _ref$contextMenuItems = _ref.contextMenuItems, - contextMenuItems = _ref$contextMenuItems === void 0 ? null : _ref$contextMenuItems; - - _classCallCheck(this, PDFPresentationMode); +const DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS = 1500; +const DELAY_BEFORE_HIDING_CONTROLS = 3000; +const ACTIVE_SELECTOR = "pdfPresentationMode"; +const CONTROLS_SELECTOR = "pdfPresentationModeControls"; +const MOUSE_SCROLL_COOLDOWN_TIME = 50; +const PAGE_SWITCH_THRESHOLD = 0.1; +const SWIPE_MIN_DISTANCE_THRESHOLD = 50; +const SWIPE_ANGLE_THRESHOLD = Math.PI / 6; +class PDFPresentationMode { + constructor({ + container, + pdfViewer, + eventBus + }) { this.container = container; - this.viewer = viewer || container.firstElementChild; this.pdfViewer = pdfViewer; this.eventBus = eventBus; this.active = false; @@ -8887,444 +7724,1149 @@ function () { this.mouseScrollTimeStamp = 0; this.mouseScrollDelta = 0; this.touchSwipeState = null; - - if (contextMenuItems) { - contextMenuItems.contextFirstPage.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('firstpage', { - source: _this - }); - }); - contextMenuItems.contextLastPage.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('lastpage', { - source: _this - }); - }); - contextMenuItems.contextPageRotateCw.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('rotatecw', { - source: _this - }); - }); - contextMenuItems.contextPageRotateCcw.addEventListener('click', function () { - _this.contextMenuOpen = false; - - _this.eventBus.dispatch('rotateccw', { - source: _this - }); - }); - } } - _createClass(PDFPresentationMode, [{ - key: "request", - value: function request() { - if (this.switchInProgress || this.active || !this.viewer.hasChildNodes()) { - return false; - } - - this._addFullscreenChangeListeners(); - - this._setSwitchInProgress(); - - this._notifyStateChange(); - - if (this.container.requestFullscreen) { - this.container.requestFullscreen(); - } else if (this.container.mozRequestFullScreen) { - this.container.mozRequestFullScreen(); - } else if (this.container.webkitRequestFullscreen) { - this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); - } else if (this.container.msRequestFullscreen) { - this.container.msRequestFullscreen(); - } else { - return false; - } - - this.args = { - page: this.pdfViewer.currentPageNumber, - previousScale: this.pdfViewer.currentScaleValue - }; - return true; + request() { + if (this.switchInProgress || this.active || !this.pdfViewer.pagesCount) { + return false; } - }, { - key: "_mouseWheel", - value: function _mouseWheel(evt) { - if (!this.active) { - return; - } - evt.preventDefault(); - var delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); - var currentTime = new Date().getTime(); - var storedTime = this.mouseScrollTimeStamp; + this._addFullscreenChangeListeners(); - if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { - return; - } + this._setSwitchInProgress(); - if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { - this._resetMouseScrollState(); - } + this._notifyStateChange(); - this.mouseScrollDelta += delta; - - if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { - var totalDelta = this.mouseScrollDelta; - - this._resetMouseScrollState(); - - var success = totalDelta > 0 ? this._goToPreviousPage() : this._goToNextPage(); - - if (success) { - this.mouseScrollTimeStamp = currentTime; - } - } + if (this.container.requestFullscreen) { + this.container.requestFullscreen(); + } else if (this.container.mozRequestFullScreen) { + this.container.mozRequestFullScreen(); + } else if (this.container.webkitRequestFullscreen) { + this.container.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT); + } else { + return false; } - }, { - key: "_goToPreviousPage", - value: function _goToPreviousPage() { - var page = this.pdfViewer.currentPageNumber; - if (page <= 1) { - return false; - } + this.args = { + page: this.pdfViewer.currentPageNumber, + previousScale: this.pdfViewer.currentScaleValue + }; + return true; + } - this.pdfViewer.currentPageNumber = page - 1; - return true; + _mouseWheel(evt) { + if (!this.active) { + return; } - }, { - key: "_goToNextPage", - value: function _goToNextPage() { - var page = this.pdfViewer.currentPageNumber; - if (page >= this.pdfViewer.pagesCount) { - return false; - } + evt.preventDefault(); + const delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + const currentTime = Date.now(); + const storedTime = this.mouseScrollTimeStamp; - this.pdfViewer.currentPageNumber = page + 1; - return true; + if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { + return; } - }, { - key: "_notifyStateChange", - value: function _notifyStateChange() { - this.eventBus.dispatch('presentationmodechanged', { - source: this, - active: this.active, - switchInProgress: !!this.switchInProgress - }); + + if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { + this._resetMouseScrollState(); } - }, { - key: "_setSwitchInProgress", - value: function _setSwitchInProgress() { - var _this2 = this; - if (this.switchInProgress) { - clearTimeout(this.switchInProgress); - } + this.mouseScrollDelta += delta; - this.switchInProgress = setTimeout(function () { - _this2._removeFullscreenChangeListeners(); - - delete _this2.switchInProgress; - - _this2._notifyStateChange(); - }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS); - } - }, { - key: "_resetSwitchInProgress", - value: function _resetSwitchInProgress() { - if (this.switchInProgress) { - clearTimeout(this.switchInProgress); - delete this.switchInProgress; - } - } - }, { - key: "_enter", - value: function _enter() { - var _this3 = this; - - this.active = true; - - this._resetSwitchInProgress(); - - this._notifyStateChange(); - - this.container.classList.add(ACTIVE_SELECTOR); - setTimeout(function () { - _this3.pdfViewer.currentPageNumber = _this3.args.page; - _this3.pdfViewer.currentScaleValue = 'page-fit'; - }, 0); - - this._addWindowListeners(); - - this._showControls(); - - this.contextMenuOpen = false; - this.container.setAttribute('contextmenu', 'viewerContextMenu'); - window.getSelection().removeAllRanges(); - } - }, { - key: "_exit", - value: function _exit() { - var _this4 = this; - - var page = this.pdfViewer.currentPageNumber; - this.container.classList.remove(ACTIVE_SELECTOR); - setTimeout(function () { - _this4.active = false; - - _this4._removeFullscreenChangeListeners(); - - _this4._notifyStateChange(); - - _this4.pdfViewer.currentScaleValue = _this4.args.previousScale; - _this4.pdfViewer.currentPageNumber = page; - _this4.args = null; - }, 0); - - this._removeWindowListeners(); - - this._hideControls(); + if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { + const totalDelta = this.mouseScrollDelta; this._resetMouseScrollState(); - this.container.removeAttribute('contextmenu'); - this.contextMenuOpen = false; - } - }, { - key: "_mouseDown", - value: function _mouseDown(evt) { - if (this.contextMenuOpen) { - this.contextMenuOpen = false; - evt.preventDefault(); - return; + const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage(); + + if (success) { + this.mouseScrollTimeStamp = currentTime; } + } + } - if (evt.button === 0) { - var isInternalLink = evt.target.href && evt.target.classList.contains('internalLink'); + get isFullscreen() { + return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen); + } - if (!isInternalLink) { - evt.preventDefault(); + _notifyStateChange() { + let state = _ui_utils.PresentationModeState.NORMAL; - if (evt.shiftKey) { - this._goToPreviousPage(); - } else { - this._goToNextPage(); - } + if (this.switchInProgress) { + state = _ui_utils.PresentationModeState.CHANGING; + } else if (this.active) { + state = _ui_utils.PresentationModeState.FULLSCREEN; + } + + this.eventBus.dispatch("presentationmodechanged", { + source: this, + state + }); + } + + _setSwitchInProgress() { + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + } + + this.switchInProgress = setTimeout(() => { + this._removeFullscreenChangeListeners(); + + delete this.switchInProgress; + + this._notifyStateChange(); + }, DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS); + } + + _resetSwitchInProgress() { + if (this.switchInProgress) { + clearTimeout(this.switchInProgress); + delete this.switchInProgress; + } + } + + _enter() { + this.active = true; + + this._resetSwitchInProgress(); + + this._notifyStateChange(); + + this.container.classList.add(ACTIVE_SELECTOR); + setTimeout(() => { + this.pdfViewer.currentPageNumber = this.args.page; + this.pdfViewer.currentScaleValue = "page-fit"; + }, 0); + + this._addWindowListeners(); + + this._showControls(); + + this.contextMenuOpen = false; + window.getSelection().removeAllRanges(); + } + + _exit() { + const page = this.pdfViewer.currentPageNumber; + this.container.classList.remove(ACTIVE_SELECTOR); + setTimeout(() => { + this.active = false; + + this._removeFullscreenChangeListeners(); + + this._notifyStateChange(); + + this.pdfViewer.currentScaleValue = this.args.previousScale; + this.pdfViewer.currentPageNumber = page; + this.args = null; + }, 0); + + this._removeWindowListeners(); + + this._hideControls(); + + this._resetMouseScrollState(); + + this.contextMenuOpen = false; + } + + _mouseDown(evt) { + if (this.contextMenuOpen) { + this.contextMenuOpen = false; + evt.preventDefault(); + return; + } + + if (evt.button === 0) { + const isInternalLink = evt.target.href && evt.target.classList.contains("internalLink"); + + if (!isInternalLink) { + evt.preventDefault(); + + if (evt.shiftKey) { + this.pdfViewer.previousPage(); + } else { + this.pdfViewer.nextPage(); } } } - }, { - key: "_contextMenu", - value: function _contextMenu() { - this.contextMenuOpen = true; - } - }, { - key: "_showControls", - value: function _showControls() { - var _this5 = this; + } - if (this.controlsTimeout) { - clearTimeout(this.controlsTimeout); - } else { - this.container.classList.add(CONTROLS_SELECTOR); - } - - this.controlsTimeout = setTimeout(function () { - _this5.container.classList.remove(CONTROLS_SELECTOR); - - delete _this5.controlsTimeout; - }, DELAY_BEFORE_HIDING_CONTROLS); - } - }, { - key: "_hideControls", - value: function _hideControls() { - if (!this.controlsTimeout) { - return; - } + _contextMenu() { + this.contextMenuOpen = true; + } + _showControls() { + if (this.controlsTimeout) { clearTimeout(this.controlsTimeout); + } else { + this.container.classList.add(CONTROLS_SELECTOR); + } + + this.controlsTimeout = setTimeout(() => { this.container.classList.remove(CONTROLS_SELECTOR); delete this.controlsTimeout; + }, DELAY_BEFORE_HIDING_CONTROLS); + } + + _hideControls() { + if (!this.controlsTimeout) { + return; } - }, { - key: "_resetMouseScrollState", - value: function _resetMouseScrollState() { - this.mouseScrollTimeStamp = 0; - this.mouseScrollDelta = 0; + + clearTimeout(this.controlsTimeout); + this.container.classList.remove(CONTROLS_SELECTOR); + delete this.controlsTimeout; + } + + _resetMouseScrollState() { + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + } + + _touchSwipe(evt) { + if (!this.active) { + return; } - }, { - key: "_touchSwipe", - value: function _touchSwipe(evt) { - if (!this.active) { - return; - } - if (evt.touches.length > 1) { - this.touchSwipeState = null; - return; - } - - switch (evt.type) { - case 'touchstart': - this.touchSwipeState = { - startX: evt.touches[0].pageX, - startY: evt.touches[0].pageY, - endX: evt.touches[0].pageX, - endY: evt.touches[0].pageY - }; - break; - - case 'touchmove': - if (this.touchSwipeState === null) { - return; - } - - this.touchSwipeState.endX = evt.touches[0].pageX; - this.touchSwipeState.endY = evt.touches[0].pageY; - evt.preventDefault(); - break; - - case 'touchend': - if (this.touchSwipeState === null) { - return; - } - - var delta = 0; - var dx = this.touchSwipeState.endX - this.touchSwipeState.startX; - var dy = this.touchSwipeState.endY - this.touchSwipeState.startY; - var absAngle = Math.abs(Math.atan2(dy, dx)); - - if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { - delta = dx; - } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { - delta = dy; - } - - if (delta > 0) { - this._goToPreviousPage(); - } else if (delta < 0) { - this._goToNextPage(); - } - - break; - } + if (evt.touches.length > 1) { + this.touchSwipeState = null; + return; } - }, { - key: "_addWindowListeners", - value: function _addWindowListeners() { - this.showControlsBind = this._showControls.bind(this); - this.mouseDownBind = this._mouseDown.bind(this); - this.mouseWheelBind = this._mouseWheel.bind(this); - this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this); - this.contextMenuBind = this._contextMenu.bind(this); - this.touchSwipeBind = this._touchSwipe.bind(this); - window.addEventListener('mousemove', this.showControlsBind); - window.addEventListener('mousedown', this.mouseDownBind); - window.addEventListener('wheel', this.mouseWheelBind); - window.addEventListener('keydown', this.resetMouseScrollStateBind); - window.addEventListener('contextmenu', this.contextMenuBind); - window.addEventListener('touchstart', this.touchSwipeBind); - window.addEventListener('touchmove', this.touchSwipeBind); - window.addEventListener('touchend', this.touchSwipeBind); - } - }, { - key: "_removeWindowListeners", - value: function _removeWindowListeners() { - window.removeEventListener('mousemove', this.showControlsBind); - window.removeEventListener('mousedown', this.mouseDownBind); - window.removeEventListener('wheel', this.mouseWheelBind); - window.removeEventListener('keydown', this.resetMouseScrollStateBind); - window.removeEventListener('contextmenu', this.contextMenuBind); - window.removeEventListener('touchstart', this.touchSwipeBind); - window.removeEventListener('touchmove', this.touchSwipeBind); - window.removeEventListener('touchend', this.touchSwipeBind); - delete this.showControlsBind; - delete this.mouseDownBind; - delete this.mouseWheelBind; - delete this.resetMouseScrollStateBind; - delete this.contextMenuBind; - delete this.touchSwipeBind; - } - }, { - key: "_fullscreenChange", - value: function _fullscreenChange() { - if (this.isFullscreen) { - this._enter(); - } else { - this._exit(); - } - } - }, { - key: "_addFullscreenChangeListeners", - value: function _addFullscreenChangeListeners() { - this.fullscreenChangeBind = this._fullscreenChange.bind(this); - window.addEventListener('fullscreenchange', this.fullscreenChangeBind); - window.addEventListener('mozfullscreenchange', this.fullscreenChangeBind); - window.addEventListener('webkitfullscreenchange', this.fullscreenChangeBind); - window.addEventListener('MSFullscreenChange', this.fullscreenChangeBind); - } - }, { - key: "_removeFullscreenChangeListeners", - value: function _removeFullscreenChangeListeners() { - window.removeEventListener('fullscreenchange', this.fullscreenChangeBind); - window.removeEventListener('mozfullscreenchange', this.fullscreenChangeBind); - window.removeEventListener('webkitfullscreenchange', this.fullscreenChangeBind); - window.removeEventListener('MSFullscreenChange', this.fullscreenChangeBind); - delete this.fullscreenChangeBind; - } - }, { - key: "isFullscreen", - get: function get() { - return !!(document.fullscreenElement || document.mozFullScreen || document.webkitIsFullScreen || document.msFullscreenElement); - } - }]); - return PDFPresentationMode; -}(); + switch (evt.type) { + case "touchstart": + this.touchSwipeState = { + startX: evt.touches[0].pageX, + startY: evt.touches[0].pageY, + endX: evt.touches[0].pageX, + endY: evt.touches[0].pageY + }; + break; + + case "touchmove": + if (this.touchSwipeState === null) { + return; + } + + this.touchSwipeState.endX = evt.touches[0].pageX; + this.touchSwipeState.endY = evt.touches[0].pageY; + evt.preventDefault(); + break; + + case "touchend": + if (this.touchSwipeState === null) { + return; + } + + let delta = 0; + const dx = this.touchSwipeState.endX - this.touchSwipeState.startX; + const dy = this.touchSwipeState.endY - this.touchSwipeState.startY; + const absAngle = Math.abs(Math.atan2(dy, dx)); + + if (Math.abs(dx) > SWIPE_MIN_DISTANCE_THRESHOLD && (absAngle <= SWIPE_ANGLE_THRESHOLD || absAngle >= Math.PI - SWIPE_ANGLE_THRESHOLD)) { + delta = dx; + } else if (Math.abs(dy) > SWIPE_MIN_DISTANCE_THRESHOLD && Math.abs(absAngle - Math.PI / 2) <= SWIPE_ANGLE_THRESHOLD) { + delta = dy; + } + + if (delta > 0) { + this.pdfViewer.previousPage(); + } else if (delta < 0) { + this.pdfViewer.nextPage(); + } + + break; + } + } + + _addWindowListeners() { + this.showControlsBind = this._showControls.bind(this); + this.mouseDownBind = this._mouseDown.bind(this); + this.mouseWheelBind = this._mouseWheel.bind(this); + this.resetMouseScrollStateBind = this._resetMouseScrollState.bind(this); + this.contextMenuBind = this._contextMenu.bind(this); + this.touchSwipeBind = this._touchSwipe.bind(this); + window.addEventListener("mousemove", this.showControlsBind); + window.addEventListener("mousedown", this.mouseDownBind); + window.addEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.addEventListener("keydown", this.resetMouseScrollStateBind); + window.addEventListener("contextmenu", this.contextMenuBind); + window.addEventListener("touchstart", this.touchSwipeBind); + window.addEventListener("touchmove", this.touchSwipeBind); + window.addEventListener("touchend", this.touchSwipeBind); + } + + _removeWindowListeners() { + window.removeEventListener("mousemove", this.showControlsBind); + window.removeEventListener("mousedown", this.mouseDownBind); + window.removeEventListener("wheel", this.mouseWheelBind, { + passive: false + }); + window.removeEventListener("keydown", this.resetMouseScrollStateBind); + window.removeEventListener("contextmenu", this.contextMenuBind); + window.removeEventListener("touchstart", this.touchSwipeBind); + window.removeEventListener("touchmove", this.touchSwipeBind); + window.removeEventListener("touchend", this.touchSwipeBind); + delete this.showControlsBind; + delete this.mouseDownBind; + delete this.mouseWheelBind; + delete this.resetMouseScrollStateBind; + delete this.contextMenuBind; + delete this.touchSwipeBind; + } + + _fullscreenChange() { + if (this.isFullscreen) { + this._enter(); + } else { + this._exit(); + } + } + + _addFullscreenChangeListeners() { + this.fullscreenChangeBind = this._fullscreenChange.bind(this); + window.addEventListener("fullscreenchange", this.fullscreenChangeBind); + window.addEventListener("mozfullscreenchange", this.fullscreenChangeBind); + window.addEventListener("webkitfullscreenchange", this.fullscreenChangeBind); + } + + _removeFullscreenChangeListeners() { + window.removeEventListener("fullscreenchange", this.fullscreenChangeBind); + window.removeEventListener("mozfullscreenchange", this.fullscreenChangeBind); + window.removeEventListener("webkitfullscreenchange", this.fullscreenChangeBind); + delete this.fullscreenChangeBind; + } + +} exports.PDFPresentationMode = PDFPresentationMode; /***/ }), -/* 24 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 22 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.PDFScriptingManager = void 0; + +var _pdfjsLib = __webpack_require__(5); + +var _ui_utils = __webpack_require__(4); + +var _pdf_rendering_queue = __webpack_require__(8); + +class PDFScriptingManager { + constructor({ + eventBus, + sandboxBundleSrc = null, + scriptingFactory = null, + docPropertiesLookup = null + }) { + this._pdfDocument = null; + this._pdfViewer = null; + this._closeCapability = null; + this._destroyCapability = null; + this._scripting = null; + this._mouseState = Object.create(null); + this._pageEventsReady = false; + this._ready = false; + this._eventBus = eventBus; + this._sandboxBundleSrc = sandboxBundleSrc; + this._scriptingFactory = scriptingFactory; + this._docPropertiesLookup = docPropertiesLookup; + } + + setViewer(pdfViewer) { + this._pdfViewer = pdfViewer; + } + + async setDocument(pdfDocument) { + if (this._pdfDocument) { + await this._destroyScripting(); + } + + this._pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const [objects, calculationOrder, docActions] = await Promise.all([pdfDocument.getFieldObjects(), pdfDocument.getCalculationOrderIds(), pdfDocument.getJSActions()]); + + if (!objects && !docActions) { + await this._destroyScripting(); + return; + } + + if (pdfDocument !== this._pdfDocument) { + return; + } + + this._scripting = this._createScripting(); + + this._internalEvents.set("updatefromsandbox", event => { + if (event?.source !== window) { + return; + } + + this._updateFromSandbox(event.detail); + }); + + this._internalEvents.set("dispatcheventinsandbox", event => { + this._scripting?.dispatchEventInSandbox(event.detail); + }); + + this._internalEvents.set("pagechanging", ({ + pageNumber, + previous + }) => { + if (pageNumber === previous) { + return; + } + + this._dispatchPageClose(previous); + + this._dispatchPageOpen(pageNumber); + }); + + this._internalEvents.set("pagerendered", ({ + pageNumber + }) => { + if (!this._pageOpenPending.has(pageNumber)) { + return; + } + + if (pageNumber !== this._pdfViewer.currentPageNumber) { + return; + } + + this._dispatchPageOpen(pageNumber); + }); + + this._internalEvents.set("pagesdestroy", async event => { + await this._dispatchPageClose(this._pdfViewer.currentPageNumber); + await this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillClose" + }); + this._closeCapability?.resolve(); + }); + + this._domEvents.set("mousedown", event => { + this._mouseState.isDown = true; + }); + + this._domEvents.set("mouseup", event => { + this._mouseState.isDown = false; + }); + + for (const [name, listener] of this._internalEvents) { + this._eventBus._on(name, listener); + } + + for (const [name, listener] of this._domEvents) { + window.addEventListener(name, listener); + } + + try { + const docProperties = await this._getDocProperties(); + + if (pdfDocument !== this._pdfDocument) { + return; + } + + await this._scripting.createSandbox({ + objects, + calculationOrder, + appInfo: { + platform: navigator.platform, + language: navigator.language + }, + docInfo: { ...docProperties, + actions: docActions + } + }); + + this._eventBus.dispatch("sandboxcreated", { + source: this + }); + } catch (error) { + console.error(`PDFScriptingManager.setDocument: "${error?.message}".`); + await this._destroyScripting(); + return; + } + + await this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "Open" + }); + await this._dispatchPageOpen(this._pdfViewer.currentPageNumber, true); + Promise.resolve().then(() => { + if (pdfDocument === this._pdfDocument) { + this._ready = true; + } + }); + } + + async dispatchWillSave(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillSave" + }); + } + + async dispatchDidSave(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidSave" + }); + } + + async dispatchWillPrint(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillPrint" + }); + } + + async dispatchDidPrint(detail) { + return this._scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidPrint" + }); + } + + get mouseState() { + return this._mouseState; + } + + get destroyPromise() { + return this._destroyCapability?.promise || null; + } + + get ready() { + return this._ready; + } + + get _internalEvents() { + return (0, _pdfjsLib.shadow)(this, "_internalEvents", new Map()); + } + + get _domEvents() { + return (0, _pdfjsLib.shadow)(this, "_domEvents", new Map()); + } + + get _pageOpenPending() { + return (0, _pdfjsLib.shadow)(this, "_pageOpenPending", new Set()); + } + + get _visitedPages() { + return (0, _pdfjsLib.shadow)(this, "_visitedPages", new Map()); + } + + async _updateFromSandbox(detail) { + const isInPresentationMode = this._pdfViewer.isInPresentationMode || this._pdfViewer.isChangingPresentationMode; + const { + id, + siblings, + command, + value + } = detail; + + if (!id) { + switch (command) { + case "clear": + console.clear(); + break; + + case "error": + console.error(value); + break; + + case "layout": + this._pdfViewer.spreadMode = (0, _ui_utils.apiPageLayoutToSpreadMode)(value); + break; + + case "page-num": + this._pdfViewer.currentPageNumber = value + 1; + break; + + case "print": + await this._pdfViewer.pagesPromise; + + this._eventBus.dispatch("print", { + source: this + }); + + break; + + case "println": + console.log(value); + break; + + case "zoom": + if (isInPresentationMode) { + return; + } + + this._pdfViewer.currentScaleValue = value; + break; + } + + return; + } + + if (isInPresentationMode) { + if (detail.focus) { + return; + } + } + + delete detail.id; + delete detail.siblings; + const ids = siblings ? [id, ...siblings] : [id]; + + for (const elementId of ids) { + const element = document.getElementById(elementId); + + if (element) { + element.dispatchEvent(new CustomEvent("updatefromsandbox", { + detail + })); + } else { + this._pdfDocument?.annotationStorage.setValue(elementId, detail); + } + } + } + + async _dispatchPageOpen(pageNumber, initialize = false) { + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + + if (initialize) { + this._closeCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._pageEventsReady = true; + } + + if (!this._pageEventsReady) { + return; + } + + const pageView = this._pdfViewer.getPageView(pageNumber - 1); + + if (pageView?.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._pageOpenPending.add(pageNumber); + + return; + } + + this._pageOpenPending.delete(pageNumber); + + const actionsPromise = (async () => { + const actions = await (!visitedPages.has(pageNumber) ? pageView.pdfPage?.getJSActions() : null); + + if (pdfDocument !== this._pdfDocument) { + return; + } + + await this._scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageOpen", + pageNumber, + actions + }); + })(); + + visitedPages.set(pageNumber, actionsPromise); + } + + async _dispatchPageClose(pageNumber) { + const pdfDocument = this._pdfDocument, + visitedPages = this._visitedPages; + + if (!this._pageEventsReady) { + return; + } + + if (this._pageOpenPending.has(pageNumber)) { + return; + } + + const actionsPromise = visitedPages.get(pageNumber); + + if (!actionsPromise) { + return; + } + + visitedPages.set(pageNumber, null); + await actionsPromise; + + if (pdfDocument !== this._pdfDocument) { + return; + } + + await this._scripting?.dispatchEventInSandbox({ + id: "page", + name: "PageClose", + pageNumber + }); + } + + async _getDocProperties() { + if (this._docPropertiesLookup) { + return this._docPropertiesLookup(this._pdfDocument); + } + + throw new Error("_getDocProperties: Unable to lookup properties."); + } + + _createScripting() { + this._destroyCapability = (0, _pdfjsLib.createPromiseCapability)(); + + if (this._scripting) { + throw new Error("_createScripting: Scripting already exists."); + } + + if (this._scriptingFactory) { + return this._scriptingFactory.createScripting({ + sandboxBundleSrc: this._sandboxBundleSrc + }); + } + + throw new Error("_createScripting: Cannot create scripting."); + } + + async _destroyScripting() { + if (!this._scripting) { + this._pdfDocument = null; + this._destroyCapability?.resolve(); + return; + } + + if (this._closeCapability) { + await Promise.race([this._closeCapability.promise, new Promise(resolve => { + setTimeout(resolve, 1000); + })]).catch(reason => {}); + this._closeCapability = null; + } + + this._pdfDocument = null; + + try { + await this._scripting.destroySandbox(); + } catch (ex) {} + + for (const [name, listener] of this._internalEvents) { + this._eventBus._off(name, listener); + } + + this._internalEvents.clear(); + + for (const [name, listener] of this._domEvents) { + window.removeEventListener(name, listener); + } + + this._domEvents.clear(); + + this._pageOpenPending.clear(); + + this._visitedPages.clear(); + + this._scripting = null; + delete this._mouseState.isDown; + this._pageEventsReady = false; + this._ready = false; + this._destroyCapability?.resolve(); + } + +} + +exports.PDFScriptingManager = PDFScriptingManager; + +/***/ }), +/* 23 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFSidebar = void 0; + +var _ui_utils = __webpack_require__(4); + +var _pdf_rendering_queue = __webpack_require__(8); + +const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; + +class PDFSidebar { + constructor({ + elements, + pdfViewer, + pdfThumbnailViewer, + eventBus, + l10n + }) { + this.isOpen = false; + this.active = _ui_utils.SidebarView.THUMBS; + this.isInitialViewSet = false; + this.onToggled = null; + this.pdfViewer = pdfViewer; + this.pdfThumbnailViewer = pdfThumbnailViewer; + this.outerContainer = elements.outerContainer; + this.viewerContainer = elements.viewerContainer; + this.toggleButton = elements.toggleButton; + this.thumbnailButton = elements.thumbnailButton; + this.outlineButton = elements.outlineButton; + this.attachmentsButton = elements.attachmentsButton; + this.layersButton = elements.layersButton; + this.thumbnailView = elements.thumbnailView; + this.outlineView = elements.outlineView; + this.attachmentsView = elements.attachmentsView; + this.layersView = elements.layersView; + this._outlineOptionsContainer = elements.outlineOptionsContainer; + this._currentOutlineItemButton = elements.currentOutlineItemButton; + this.eventBus = eventBus; + this.l10n = l10n; + + this._addEventListeners(); + } + + reset() { + this.isInitialViewSet = false; + + this._hideUINotification(true); + + this.switchView(_ui_utils.SidebarView.THUMBS); + this.outlineButton.disabled = false; + this.attachmentsButton.disabled = false; + this.layersButton.disabled = false; + this._currentOutlineItemButton.disabled = true; + } + + get visibleView() { + return this.isOpen ? this.active : _ui_utils.SidebarView.NONE; + } + + get isThumbnailViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.THUMBS; + } + + get isOutlineViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.OUTLINE; + } + + get isAttachmentsViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.ATTACHMENTS; + } + + get isLayersViewVisible() { + return this.isOpen && this.active === _ui_utils.SidebarView.LAYERS; + } + + setInitialView(view = _ui_utils.SidebarView.NONE) { + if (this.isInitialViewSet) { + return; + } + + this.isInitialViewSet = true; + + if (view === _ui_utils.SidebarView.NONE || view === _ui_utils.SidebarView.UNKNOWN) { + this._dispatchEvent(); + + return; + } + + if (!this._switchView(view, true)) { + this._dispatchEvent(); + } + } + + switchView(view, forceOpen = false) { + this._switchView(view, forceOpen); + } + + _switchView(view, forceOpen = false) { + const isViewChanged = view !== this.active; + let shouldForceRendering = false; + + switch (view) { + case _ui_utils.SidebarView.NONE: + if (this.isOpen) { + this.close(); + return true; + } + + return false; + + case _ui_utils.SidebarView.THUMBS: + if (this.isOpen && isViewChanged) { + shouldForceRendering = true; + } + + break; + + case _ui_utils.SidebarView.OUTLINE: + if (this.outlineButton.disabled) { + return false; + } + + break; + + case _ui_utils.SidebarView.ATTACHMENTS: + if (this.attachmentsButton.disabled) { + return false; + } + + break; + + case _ui_utils.SidebarView.LAYERS: + if (this.layersButton.disabled) { + return false; + } + + break; + + default: + console.error(`PDFSidebar._switchView: "${view}" is not a valid view.`); + return false; + } + + this.active = view; + this.thumbnailButton.classList.toggle("toggled", view === _ui_utils.SidebarView.THUMBS); + this.outlineButton.classList.toggle("toggled", view === _ui_utils.SidebarView.OUTLINE); + this.attachmentsButton.classList.toggle("toggled", view === _ui_utils.SidebarView.ATTACHMENTS); + this.layersButton.classList.toggle("toggled", view === _ui_utils.SidebarView.LAYERS); + this.thumbnailView.classList.toggle("hidden", view !== _ui_utils.SidebarView.THUMBS); + this.outlineView.classList.toggle("hidden", view !== _ui_utils.SidebarView.OUTLINE); + this.attachmentsView.classList.toggle("hidden", view !== _ui_utils.SidebarView.ATTACHMENTS); + this.layersView.classList.toggle("hidden", view !== _ui_utils.SidebarView.LAYERS); + + this._outlineOptionsContainer.classList.toggle("hidden", view !== _ui_utils.SidebarView.OUTLINE); + + if (forceOpen && !this.isOpen) { + this.open(); + return true; + } + + if (shouldForceRendering) { + this._updateThumbnailViewer(); + + this._forceRendering(); + } + + if (isViewChanged) { + this._dispatchEvent(); + } + + return isViewChanged; + } + + open() { + if (this.isOpen) { + return; + } + + this.isOpen = true; + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); + + if (this.active === _ui_utils.SidebarView.THUMBS) { + this._updateThumbnailViewer(); + } + + this._forceRendering(); + + this._dispatchEvent(); + + this._hideUINotification(); + } + + close() { + if (!this.isOpen) { + return; + } + + this.isOpen = false; + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + this.outerContainer.classList.add("sidebarMoving"); + this.outerContainer.classList.remove("sidebarOpen"); + + this._forceRendering(); + + this._dispatchEvent(); + } + + toggle() { + if (this.isOpen) { + this.close(); + } else { + this.open(); + } + } + + _dispatchEvent() { + this.eventBus.dispatch("sidebarviewchanged", { + source: this, + view: this.visibleView + }); + } + + _forceRendering() { + if (this.onToggled) { + this.onToggled(); + } else { + this.pdfViewer.forceRendering(); + this.pdfThumbnailViewer.forceRendering(); + } + } + + _updateThumbnailViewer() { + const { + pdfViewer, + pdfThumbnailViewer + } = this; + const pagesCount = pdfViewer.pagesCount; + + for (let pageIndex = 0; pageIndex < pagesCount; pageIndex++) { + const pageView = pdfViewer.getPageView(pageIndex); + + if (pageView?.renderingState === _pdf_rendering_queue.RenderingStates.FINISHED) { + const thumbnailView = pdfThumbnailViewer.getThumbnail(pageIndex); + thumbnailView.setImage(pageView); + } + } + + pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); + } + + _showUINotification() { + this.l10n.get("toggle_sidebar_notification2.title").then(msg => { + this.toggleButton.title = msg; + }); + + if (!this.isOpen) { + this.toggleButton.classList.add(UI_NOTIFICATION_CLASS); + } + } + + _hideUINotification(reset = false) { + if (this.isOpen || reset) { + this.toggleButton.classList.remove(UI_NOTIFICATION_CLASS); + } + + if (reset) { + this.l10n.get("toggle_sidebar.title").then(msg => { + this.toggleButton.title = msg; + }); + } + } + + _addEventListeners() { + this.viewerContainer.addEventListener("transitionend", evt => { + if (evt.target === this.viewerContainer) { + this.outerContainer.classList.remove("sidebarMoving"); + } + }); + this.toggleButton.addEventListener("click", () => { + this.toggle(); + }); + this.thumbnailButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.THUMBS); + }); + this.outlineButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.OUTLINE); + }); + this.outlineButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("toggleoutlinetree", { + source: this + }); + }); + this.attachmentsButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.ATTACHMENTS); + }); + this.layersButton.addEventListener("click", () => { + this.switchView(_ui_utils.SidebarView.LAYERS); + }); + this.layersButton.addEventListener("dblclick", () => { + this.eventBus.dispatch("resetlayers", { + source: this + }); + }); + + this._currentOutlineItemButton.addEventListener("click", () => { + this.eventBus.dispatch("currentoutlineitem", { + source: this + }); + }); + + const onTreeLoaded = (count, button, view) => { + button.disabled = !count; + + if (count) { + this._showUINotification(); + } else if (this.active === view) { + this.switchView(_ui_utils.SidebarView.THUMBS); + } + }; + + this.eventBus._on("outlineloaded", evt => { + onTreeLoaded(evt.outlineCount, this.outlineButton, _ui_utils.SidebarView.OUTLINE); + evt.currentOutlineItemPromise.then(enabled => { + if (!this.isInitialViewSet) { + return; + } + + this._currentOutlineItemButton.disabled = !enabled; + }); + }); + + this.eventBus._on("attachmentsloaded", evt => { + onTreeLoaded(evt.attachmentsCount, this.attachmentsButton, _ui_utils.SidebarView.ATTACHMENTS); + }); + + this.eventBus._on("layersloaded", evt => { + onTreeLoaded(evt.layersCount, this.layersButton, _ui_utils.SidebarView.LAYERS); + }); + + this.eventBus._on("presentationmodechanged", evt => { + if (evt.state === _ui_utils.PresentationModeState.NORMAL && this.isThumbnailViewVisible) { + this._updateThumbnailViewer(); + } + }); + } + +} + +exports.PDFSidebar = PDFSidebar; + +/***/ }), +/* 24 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFSidebarResizer = void 0; +const SIDEBAR_WIDTH_VAR = "--sidebar-width"; +const SIDEBAR_MIN_WIDTH = 200; +const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; -var _ui_utils = __webpack_require__(5); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SIDEBAR_WIDTH_VAR = '--sidebar-width'; -var SIDEBAR_MIN_WIDTH = 200; -var SIDEBAR_RESIZING_CLASS = 'sidebarResizing'; - -var PDFSidebarResizer = -/*#__PURE__*/ -function () { - function PDFSidebarResizer(options, eventBus) { - var _this = this; - - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, PDFSidebarResizer); - - this.enabled = false; +class PDFSidebarResizer { + constructor(options, eventBus, l10n) { this.isRTL = false; this.sidebarOpen = false; this.doc = document.documentElement; @@ -9334,175 +8876,140 @@ function () { this.outerContainer = options.outerContainer; this.resizer = options.resizer; this.eventBus = eventBus; - this.l10n = l10n; - - if (typeof CSS === 'undefined' || typeof CSS.supports !== 'function' || !CSS.supports(SIDEBAR_WIDTH_VAR, "calc(-1 * ".concat(SIDEBAR_MIN_WIDTH, "px)"))) { - console.warn('PDFSidebarResizer: ' + 'The browser does not support resizing of the sidebar.'); - return; - } - - this.enabled = true; - this.resizer.classList.remove('hidden'); - this.l10n.getDirection().then(function (dir) { - _this.isRTL = dir === 'rtl'; + l10n.getDirection().then(dir => { + this.isRTL = dir === "rtl"; }); this._addEventListeners(); } - _createClass(PDFSidebarResizer, [{ - key: "_updateWidth", - value: function _updateWidth() { - var width = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + get outerContainerWidth() { + return this._outerContainerWidth || (this._outerContainerWidth = this.outerContainer.clientWidth); + } - if (!this.enabled) { - return false; - } + _updateWidth(width = 0) { + const maxWidth = Math.floor(this.outerContainerWidth / 2); - var maxWidth = Math.floor(this.outerContainerWidth / 2); - - if (width > maxWidth) { - width = maxWidth; - } - - if (width < SIDEBAR_MIN_WIDTH) { - width = SIDEBAR_MIN_WIDTH; - } - - if (width === this._width) { - return false; - } - - this._width = width; - this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, "".concat(width, "px")); - return true; + if (width > maxWidth) { + width = maxWidth; } - }, { - key: "_mouseMove", - value: function _mouseMove(evt) { - var width = evt.clientX; - if (this.isRTL) { - width = this.outerContainerWidth - width; - } - - this._updateWidth(width); + if (width < SIDEBAR_MIN_WIDTH) { + width = SIDEBAR_MIN_WIDTH; } - }, { - key: "_mouseUp", - value: function _mouseUp(evt) { - this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - this.eventBus.dispatch('resize', { - source: this - }); - var _boundEvents = this._boundEvents; - window.removeEventListener('mousemove', _boundEvents.mouseMove); - window.removeEventListener('mouseup', _boundEvents.mouseUp); - } - }, { - key: "_addEventListeners", - value: function _addEventListeners() { - var _this2 = this; - if (!this.enabled) { + if (width === this._width) { + return false; + } + + this._width = width; + this.doc.style.setProperty(SIDEBAR_WIDTH_VAR, `${width}px`); + return true; + } + + _mouseMove(evt) { + let width = evt.clientX; + + if (this.isRTL) { + width = this.outerContainerWidth - width; + } + + this._updateWidth(width); + } + + _mouseUp(evt) { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + this.eventBus.dispatch("resize", { + source: this + }); + const _boundEvents = this._boundEvents; + window.removeEventListener("mousemove", _boundEvents.mouseMove); + window.removeEventListener("mouseup", _boundEvents.mouseUp); + } + + _addEventListeners() { + const _boundEvents = this._boundEvents; + _boundEvents.mouseMove = this._mouseMove.bind(this); + _boundEvents.mouseUp = this._mouseUp.bind(this); + this.resizer.addEventListener("mousedown", evt => { + if (evt.button !== 0) { return; } - var _boundEvents = this._boundEvents; - _boundEvents.mouseMove = this._mouseMove.bind(this); - _boundEvents.mouseUp = this._mouseUp.bind(this); - this.resizer.addEventListener('mousedown', function (evt) { - if (evt.button !== 0) { - return; - } + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + window.addEventListener("mousemove", _boundEvents.mouseMove); + window.addEventListener("mouseup", _boundEvents.mouseUp); + }); - _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + this.eventBus._on("sidebarviewchanged", evt => { + this.sidebarOpen = !!evt?.view; + }); - window.addEventListener('mousemove', _boundEvents.mouseMove); - window.addEventListener('mouseup', _boundEvents.mouseUp); - }); - this.eventBus.on('sidebarviewchanged', function (evt) { - _this2.sidebarOpen = !!(evt && evt.view); - }); - this.eventBus.on('resize', function (evt) { - if (evt && evt.source === window) { - _this2._outerContainerWidth = null; - - if (_this2._width) { - if (_this2.sidebarOpen) { - _this2.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); - - var updated = _this2._updateWidth(_this2._width); - - Promise.resolve().then(function () { - _this2.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); - - if (updated) { - _this2.eventBus.dispatch('resize', { - source: _this2 - }); - } - }); - } else { - _this2._updateWidth(_this2._width); - } - } - } - }); - } - }, { - key: "outerContainerWidth", - get: function get() { - if (!this._outerContainerWidth) { - this._outerContainerWidth = this.outerContainer.clientWidth; + this.eventBus._on("resize", evt => { + if (evt?.source !== window) { + return; } - return this._outerContainerWidth; - } - }]); + this._outerContainerWidth = null; - return PDFSidebarResizer; -}(); + if (!this._width) { + return; + } + + if (!this.sidebarOpen) { + this._updateWidth(this._width); + + return; + } + + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + + const updated = this._updateWidth(this._width); + + Promise.resolve().then(() => { + this.outerContainer.classList.remove(SIDEBAR_RESIZING_CLASS); + + if (updated) { + this.eventBus.dispatch("resize", { + source: this + }); + } + }); + }); + } + +} exports.PDFSidebarResizer = PDFSidebarResizer; /***/ }), /* 25 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFThumbnailViewer = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); var _pdf_thumbnail_view = __webpack_require__(26); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _pdf_rendering_queue = __webpack_require__(8); -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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var THUMBNAIL_SCROLL_MARGIN = -19; -var THUMBNAIL_SELECTED_CLASS = 'selected'; - -var PDFThumbnailViewer = -/*#__PURE__*/ -function () { - function PDFThumbnailViewer(_ref) { - var container = _ref.container, - linkService = _ref.linkService, - renderingQueue = _ref.renderingQueue, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, PDFThumbnailViewer); +const THUMBNAIL_SCROLL_MARGIN = -19; +const THUMBNAIL_SELECTED_CLASS = "selected"; +class PDFThumbnailViewer { + constructor({ + container, + eventBus, + linkService, + renderingQueue, + l10n + }) { this.container = container; this.linkService = linkService; this.renderingQueue = renderingQueue; @@ -9510,292 +9017,299 @@ function () { this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); this._resetView(); + + eventBus._on("optionalcontentconfigchanged", () => { + this._setImageDisabled = true; + }); } - _createClass(PDFThumbnailViewer, [{ - key: "_scrollUpdated", - value: function _scrollUpdated() { - this.renderingQueue.renderHighestPriority(); + _scrollUpdated() { + this.renderingQueue.renderHighestPriority(); + } + + getThumbnail(index) { + return this._thumbnails[index]; + } + + _getVisibleThumbs() { + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views: this._thumbnails + }); + } + + scrollThumbnailIntoView(pageNumber) { + if (!this.pdfDocument) { + return; } - }, { - key: "getThumbnail", - value: function getThumbnail(index) { - return this._thumbnails[index]; + + const thumbnailView = this._thumbnails[pageNumber - 1]; + + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; } - }, { - key: "_getVisibleThumbs", - value: function _getVisibleThumbs() { - return (0, _ui_utils.getVisibleElements)(this.container, this._thumbnails); + + if (pageNumber !== this._currentPageNumber) { + const prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; + prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); } - }, { - key: "scrollThumbnailIntoView", - value: function scrollThumbnailIntoView(pageNumber) { - if (!this.pdfDocument) { - return; - } - var thumbnailView = this._thumbnails[pageNumber - 1]; + const visibleThumbs = this._getVisibleThumbs(); - if (!thumbnailView) { - console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); - return; - } + const numVisibleThumbs = visibleThumbs.views.length; - if (pageNumber !== this._currentPageNumber) { - var prevThumbnailView = this._thumbnails[this._currentPageNumber - 1]; - prevThumbnailView.div.classList.remove(THUMBNAIL_SELECTED_CLASS); - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - } + if (numVisibleThumbs > 0) { + const first = visibleThumbs.first.id; + const last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first; + let shouldScroll = false; - var visibleThumbs = this._getVisibleThumbs(); - - var numVisibleThumbs = visibleThumbs.views.length; - - if (numVisibleThumbs > 0) { - var first = visibleThumbs.first.id; - var last = numVisibleThumbs > 1 ? visibleThumbs.last.id : first; - var shouldScroll = false; - - if (pageNumber <= first || pageNumber >= last) { - shouldScroll = true; - } else { - visibleThumbs.views.some(function (view) { - if (view.id !== pageNumber) { - return false; - } - - shouldScroll = view.percent < 100; - return true; - }); - } - - if (shouldScroll) { - (0, _ui_utils.scrollIntoView)(thumbnailView.div, { - top: THUMBNAIL_SCROLL_MARGIN - }); - } - } - - this._currentPageNumber = pageNumber; - } - }, { - key: "cleanup", - value: function cleanup() { - _pdf_thumbnail_view.PDFThumbnailView.cleanup(); - } - }, { - key: "_resetView", - value: function _resetView() { - this._thumbnails = []; - this._currentPageNumber = 1; - this._pageLabels = null; - this._pagesRotation = 0; - this._pagesRequests = []; - this.container.textContent = ''; - } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var _this = this; - - if (this.pdfDocument) { - this._cancelRendering(); - - this._resetView(); - } - - this.pdfDocument = pdfDocument; - - if (!pdfDocument) { - return; - } - - pdfDocument.getPage(1).then(function (firstPage) { - var pagesCount = pdfDocument.numPages; - var viewport = firstPage.getViewport({ - scale: 1 - }); - - for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { - var thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ - container: _this.container, - id: pageNum, - defaultViewport: viewport.clone(), - linkService: _this.linkService, - renderingQueue: _this.renderingQueue, - disableCanvasToImageConversion: false, - l10n: _this.l10n - }); - - _this._thumbnails.push(thumbnail); - } - - var thumbnailView = _this._thumbnails[_this._currentPageNumber - 1]; - thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); - })["catch"](function (reason) { - console.error('Unable to initialize thumbnail viewer', reason); - }); - } - }, { - key: "_cancelRendering", - value: function _cancelRendering() { - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - if (this._thumbnails[i]) { - this._thumbnails[i].cancelRendering(); - } - } - } - }, { - key: "setPageLabels", - value: function setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error('PDFThumbnailViewer_setPageLabels: Invalid page labels.'); + if (pageNumber <= first || pageNumber >= last) { + shouldScroll = true; } else { - this._pageLabels = labels; + visibleThumbs.views.some(function (view) { + if (view.id !== pageNumber) { + return false; + } + + shouldScroll = view.percent < 100; + return true; + }); } - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - var label = this._pageLabels && this._pageLabels[i]; - - this._thumbnails[i].setPageLabel(label); + if (shouldScroll) { + (0, _ui_utils.scrollIntoView)(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); } } - }, { - key: "_ensurePdfPageLoaded", - value: function _ensurePdfPageLoaded(thumbView) { - var _this2 = this; - if (thumbView.pdfPage) { - return Promise.resolve(thumbView.pdfPage); + this._currentPageNumber = pageNumber; + } + + get pagesRotation() { + return this._pagesRotation; + } + + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid thumbnails rotation angle."); + } + + if (!this.pdfDocument) { + return; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].update(rotation); + } + } + + cleanup() { + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + if (this._thumbnails[i] && this._thumbnails[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._thumbnails[i].reset(); } + } - var pageNumber = thumbView.id; + _pdf_thumbnail_view.TempImageFactory.destroyCanvas(); + } - if (this._pagesRequests[pageNumber]) { - return this._pagesRequests[pageNumber]; - } + _resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._pagesRequests = new WeakMap(); + this._setImageDisabled = false; + this.container.textContent = ""; + } - var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) { - thumbView.setPdfPage(pdfPage); - _this2._pagesRequests[pageNumber] = null; - return pdfPage; - })["catch"](function (reason) { - console.error('Unable to get page for thumb view', reason); - _this2._pagesRequests[pageNumber] = null; + setDocument(pdfDocument) { + if (this.pdfDocument) { + this._cancelRendering(); + + this._resetView(); + } + + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + firstPagePromise.then(firstPdfPage => { + this._optionalContentConfigPromise = optionalContentConfigPromise; + const pagesCount = pdfDocument.numPages; + const viewport = firstPdfPage.getViewport({ + scale: 1 }); - this._pagesRequests[pageNumber] = promise; - return promise; - } - }, { - key: "forceRendering", - value: function forceRendering() { - var _this3 = this; - var visibleThumbs = this._getVisibleThumbs(); + const checkSetImageDisabled = () => { + return this._setImageDisabled; + }; - var thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down); - - if (thumbView) { - this._ensurePdfPageLoaded(thumbView).then(function () { - _this3.renderingQueue.renderView(thumbView); + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ + container: this.container, + id: pageNum, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + linkService: this.linkService, + renderingQueue: this.renderingQueue, + checkSetImageDisabled, + l10n: this.l10n }); - return true; + this._thumbnails.push(thumbnail); } - return false; - } - }, { - key: "pagesRotation", - get: function get() { - return this._pagesRotation; - }, - set: function set(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { - throw new Error('Invalid thumbnails rotation angle.'); + const firstThumbnailView = this._thumbnails[0]; + + if (firstThumbnailView) { + firstThumbnailView.setPdfPage(firstPdfPage); } - if (!this.pdfDocument) { - return; - } + const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + }).catch(reason => { + console.error("Unable to initialize thumbnail viewer", reason); + }); + } - if (this._pagesRotation === rotation) { - return; - } - - this._pagesRotation = rotation; - - for (var i = 0, ii = this._thumbnails.length; i < ii; i++) { - this._thumbnails[i].update(rotation); + _cancelRendering() { + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + if (this._thumbnails[i]) { + this._thumbnails[i].cancelRendering(); } } - }]); + } - return PDFThumbnailViewer; -}(); + setPageLabels(labels) { + if (!this.pdfDocument) { + return; + } + + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error("PDFThumbnailViewer_setPageLabels: Invalid page labels."); + } else { + this._pageLabels = labels; + } + + for (let i = 0, ii = this._thumbnails.length; i < ii; i++) { + this._thumbnails[i].setPageLabel(this._pageLabels?.[i] ?? null); + } + } + + _ensurePdfPageLoaded(thumbView) { + if (thumbView.pdfPage) { + return Promise.resolve(thumbView.pdfPage); + } + + if (this._pagesRequests.has(thumbView)) { + return this._pagesRequests.get(thumbView); + } + + const promise = this.pdfDocument.getPage(thumbView.id).then(pdfPage => { + if (!thumbView.pdfPage) { + thumbView.setPdfPage(pdfPage); + } + + this._pagesRequests.delete(thumbView); + + return pdfPage; + }).catch(reason => { + console.error("Unable to get page for thumb view", reason); + + this._pagesRequests.delete(thumbView); + }); + + this._pagesRequests.set(thumbView, promise); + + return promise; + } + + forceRendering() { + const visibleThumbs = this._getVisibleThumbs(); + + const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, this.scroll.down); + + if (thumbView) { + this._ensurePdfPageLoaded(thumbView).then(() => { + this.renderingQueue.renderView(thumbView); + }); + + return true; + } + + return false; + } + +} exports.PDFThumbnailViewer = PDFThumbnailViewer; /***/ }), /* 26 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.PDFThumbnailView = void 0; +})); +exports.TempImageFactory = exports.PDFThumbnailView = void 0; -var _pdfjsLib = __webpack_require__(7); +var _ui_utils = __webpack_require__(4); -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdf_rendering_queue = __webpack_require__(11); +var _pdf_rendering_queue = __webpack_require__(8); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +const DRAW_UPSCALE_FACTOR = 2; +const MAX_NUM_SCALING_STEPS = 3; +const THUMBNAIL_CANVAS_BORDER_WIDTH = 1; +const THUMBNAIL_WIDTH = 98; -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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MAX_NUM_SCALING_STEPS = 3; -var THUMBNAIL_CANVAS_BORDER_WIDTH = 1; -var THUMBNAIL_WIDTH = 98; - -var TempImageFactory = function TempImageFactoryClosure() { - var tempCanvasCache = null; +const TempImageFactory = function TempImageFactoryClosure() { + let tempCanvasCache = null; return { - getCanvas: function getCanvas(width, height) { - var tempCanvas = tempCanvasCache; + getCanvas(width, height) { + let tempCanvas = tempCanvasCache; if (!tempCanvas) { - tempCanvas = document.createElement('canvas'); + tempCanvas = document.createElement("canvas"); tempCanvasCache = tempCanvas; } tempCanvas.width = width; tempCanvas.height = height; tempCanvas.mozOpaque = true; - var ctx = tempCanvas.getContext('2d', { + const ctx = tempCanvas.getContext("2d", { alpha: false }); ctx.save(); - ctx.fillStyle = 'rgb(255, 255, 255)'; + ctx.fillStyle = "rgb(255, 255, 255)"; ctx.fillRect(0, 0, width, height); ctx.restore(); - return tempCanvas; + return [tempCanvas, tempCanvas.getContext("2d")]; }, - destroyCanvas: function destroyCanvas() { - var tempCanvas = tempCanvasCache; + + destroyCanvas() { + const tempCanvas = tempCanvasCache; if (tempCanvas) { tempCanvas.width = 0; @@ -9804,562 +9318,479 @@ var TempImageFactory = function TempImageFactoryClosure() { tempCanvasCache = null; } + }; }(); -var PDFThumbnailView = -/*#__PURE__*/ -function () { - function PDFThumbnailView(_ref) { - var container = _ref.container, - id = _ref.id, - defaultViewport = _ref.defaultViewport, - linkService = _ref.linkService, - renderingQueue = _ref.renderingQueue, - _ref$disableCanvasToI = _ref.disableCanvasToImageConversion, - disableCanvasToImageConversion = _ref$disableCanvasToI === void 0 ? false : _ref$disableCanvasToI, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, PDFThumbnailView); +exports.TempImageFactory = TempImageFactory; +class PDFThumbnailView { + constructor({ + container, + id, + defaultViewport, + optionalContentConfigPromise, + linkService, + renderingQueue, + checkSetImageDisabled, + l10n + }) { this.id = id; - this.renderingId = 'thumbnail' + id; + this.renderingId = "thumbnail" + id; this.pageLabel = null; this.pdfPage = null; this.rotation = 0; this.viewport = defaultViewport; this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = optionalContentConfigPromise || null; this.linkService = linkService; this.renderingQueue = renderingQueue; this.renderTask = null; this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; this.resume = null; - this.disableCanvasToImageConversion = disableCanvasToImageConversion; - this.pageWidth = this.viewport.width; - this.pageHeight = this.viewport.height; - this.pageRatio = this.pageWidth / this.pageHeight; + + this._checkSetImageDisabled = checkSetImageDisabled || function () { + return false; + }; + + const pageWidth = this.viewport.width, + pageHeight = this.viewport.height, + pageRatio = pageWidth / pageHeight; this.canvasWidth = THUMBNAIL_WIDTH; - this.canvasHeight = this.canvasWidth / this.pageRatio | 0; - this.scale = this.canvasWidth / this.pageWidth; + this.canvasHeight = this.canvasWidth / pageRatio | 0; + this.scale = this.canvasWidth / pageWidth; this.l10n = l10n; - var anchor = document.createElement('a'); - anchor.href = linkService.getAnchorUrl('#page=' + id); - this.l10n.get('thumb_page_title', { - page: id - }, 'Page {{page}}').then(function (msg) { + const anchor = document.createElement("a"); + anchor.href = linkService.getAnchorUrl("#page=" + id); + + this._thumbPageTitle.then(msg => { anchor.title = msg; }); anchor.onclick = function () { - linkService.page = id; + linkService.goToPage(id); return false; }; this.anchor = anchor; - var div = document.createElement('div'); - div.className = 'thumbnail'; - div.setAttribute('data-page-number', this.id); + const div = document.createElement("div"); + div.className = "thumbnail"; + div.setAttribute("data-page-number", this.id); this.div = div; - var ring = document.createElement('div'); - ring.className = 'thumbnailSelectionRing'; - var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; - ring.style.width = this.canvasWidth + borderAdjustment + 'px'; - ring.style.height = this.canvasHeight + borderAdjustment + 'px'; + const ring = document.createElement("div"); + ring.className = "thumbnailSelectionRing"; + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + "px"; + ring.style.height = this.canvasHeight + borderAdjustment + "px"; this.ring = ring; div.appendChild(ring); anchor.appendChild(div); container.appendChild(anchor); } - _createClass(PDFThumbnailView, [{ - key: "setPdfPage", - value: function setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: 1, - rotation: totalRotation - }); - this.reset(); - } - }, { - key: "reset", - value: function reset() { - this.cancelRendering(); - this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; - this.pageWidth = this.viewport.width; - this.pageHeight = this.viewport.height; - this.pageRatio = this.pageWidth / this.pageHeight; - this.canvasHeight = this.canvasWidth / this.pageRatio | 0; - this.scale = this.canvasWidth / this.pageWidth; - this.div.removeAttribute('data-loaded'); - var ring = this.ring; - var childNodes = ring.childNodes; + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } - for (var i = childNodes.length - 1; i >= 0; i--) { - ring.removeChild(childNodes[i]); - } + reset() { + this.cancelRendering(); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + const pageWidth = this.viewport.width, + pageHeight = this.viewport.height, + pageRatio = pageWidth / pageHeight; + this.canvasHeight = this.canvasWidth / pageRatio | 0; + this.scale = this.canvasWidth / pageWidth; + this.div.removeAttribute("data-loaded"); + const ring = this.ring; + ring.textContent = ""; + const borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; + ring.style.width = this.canvasWidth + borderAdjustment + "px"; + ring.style.height = this.canvasHeight + borderAdjustment + "px"; - var borderAdjustment = 2 * THUMBNAIL_CANVAS_BORDER_WIDTH; - ring.style.width = this.canvasWidth + borderAdjustment + 'px'; - ring.style.height = this.canvasHeight + borderAdjustment + 'px'; - - if (this.canvas) { - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - - if (this.image) { - this.image.removeAttribute('src'); - delete this.image; - } - } - }, { - key: "update", - value: function update(rotation) { - if (typeof rotation !== 'undefined') { - this.rotation = rotation; - } - - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: 1, - rotation: totalRotation - }); - this.reset(); - } - }, { - key: "cancelRendering", - value: function cancelRendering() { - if (this.renderTask) { - this.renderTask.cancel(); - this.renderTask = null; - } - - this.resume = null; - } - }, { - key: "_getPageDrawContext", - value: function _getPageDrawContext() { - var noCtxScale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var canvas = document.createElement('canvas'); - this.canvas = canvas; - canvas.mozOpaque = true; - var ctx = canvas.getContext('2d', { - alpha: false - }); - var outputScale = (0, _ui_utils.getOutputScale)(ctx); - canvas.width = this.canvasWidth * outputScale.sx | 0; - canvas.height = this.canvasHeight * outputScale.sy | 0; - canvas.style.width = this.canvasWidth + 'px'; - canvas.style.height = this.canvasHeight + 'px'; - - if (!noCtxScale && outputScale.scaled) { - ctx.scale(outputScale.sx, outputScale.sy); - } - - return ctx; - } - }, { - key: "_convertCanvasToImage", - value: function _convertCanvasToImage() { - var _this = this; - - if (!this.canvas) { - return; - } - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - return; - } - - var id = this.renderingId; - var className = 'thumbnailImage'; - - if (this.disableCanvasToImageConversion) { - this.canvas.id = id; - this.canvas.className = className; - this.l10n.get('thumb_page_canvas', { - page: this.pageId - }, 'Thumbnail of Page {{page}}').then(function (msg) { - _this.canvas.setAttribute('aria-label', msg); - }); - this.div.setAttribute('data-loaded', true); - this.ring.appendChild(this.canvas); - return; - } - - var image = document.createElement('img'); - image.id = id; - image.className = className; - this.l10n.get('thumb_page_canvas', { - page: this.pageId - }, 'Thumbnail of Page {{page}}').then(function (msg) { - image.setAttribute('aria-label', msg); - }); - image.style.width = this.canvasWidth + 'px'; - image.style.height = this.canvasHeight + 'px'; - image.src = this.canvas.toDataURL(); - this.image = image; - this.div.setAttribute('data-loaded', true); - this.ring.appendChild(image); + if (this.canvas) { this.canvas.width = 0; this.canvas.height = 0; delete this.canvas; } - }, { - key: "draw", - value: function draw() { - var _this2 = this; - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - console.error('Must be in new state before drawing'); - return Promise.resolve(undefined); - } - - this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); - - var finishRenderTask = function finishRenderTask(error) { - if (renderTask === _this2.renderTask) { - _this2.renderTask = null; - } - - if (error instanceof _pdfjsLib.RenderingCancelledException) { - renderCapability.resolve(undefined); - return; - } - - _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - _this2._convertCanvasToImage(); - - if (!error) { - renderCapability.resolve(undefined); - } else { - renderCapability.reject(error); - } - }; - - var ctx = this._getPageDrawContext(); - - var drawViewport = this.viewport.clone({ - scale: this.scale - }); - - var renderContinueCallback = function renderContinueCallback(cont) { - if (!_this2.renderingQueue.isHighestPriority(_this2)) { - _this2.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; - - _this2.resume = function () { - _this2.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - cont(); - }; - - return; - } - - cont(); - }; - - var renderContext = { - canvasContext: ctx, - viewport: drawViewport - }; - var renderTask = this.renderTask = this.pdfPage.render(renderContext); - renderTask.onContinue = renderContinueCallback; - renderTask.promise.then(function () { - finishRenderTask(null); - }, function (error) { - finishRenderTask(error); - }); - return renderCapability.promise; + if (this.image) { + this.image.removeAttribute("src"); + delete this.image; } - }, { - key: "setImage", - value: function setImage(pageView) { - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - return; + } + + update(rotation) { + if (typeof rotation !== "undefined") { + this.rotation = rotation; + } + + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: 1, + rotation: totalRotation + }); + this.reset(); + } + + cancelRendering() { + if (this.renderTask) { + this.renderTask.cancel(); + this.renderTask = null; + } + + this.resume = null; + } + + _getPageDrawContext(upscaleFactor = 1) { + const canvas = document.createElement("canvas"); + canvas.mozOpaque = true; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = (0, _ui_utils.getOutputScale)(ctx); + canvas.width = upscaleFactor * this.canvasWidth * outputScale.sx | 0; + canvas.height = upscaleFactor * this.canvasHeight * outputScale.sy | 0; + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + return { + ctx, + canvas, + transform + }; + } + + _convertCanvasToImage(canvas) { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + throw new Error("_convertCanvasToImage: Rendering has not finished."); + } + + const reducedCanvas = this._reduceImage(canvas); + + const image = document.createElement("img"); + image.className = "thumbnailImage"; + + this._thumbPageCanvas.then(msg => { + image.setAttribute("aria-label", msg); + }); + + image.style.width = this.canvasWidth + "px"; + image.style.height = this.canvasHeight + "px"; + image.src = reducedCanvas.toDataURL(); + this.image = image; + this.div.setAttribute("data-loaded", true); + this.ring.appendChild(image); + reducedCanvas.width = 0; + reducedCanvas.height = 0; + } + + draw() { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + return Promise.resolve(undefined); + } + + const { + pdfPage + } = this; + + if (!pdfPage) { + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + return Promise.reject(new Error("pdfPage is not loaded")); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + + const finishRenderTask = async (error = null) => { + if (renderTask === this.renderTask) { + this.renderTask = null; } - var img = pageView.canvas; - - if (!img) { + if (error instanceof _pdfjsLib.RenderingCancelledException) { return; } - if (!this.pdfPage) { - this.setPdfPage(pageView.pdfPage); - } - this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - var ctx = this._getPageDrawContext(true); + this._convertCanvasToImage(canvas); - var canvas = ctx.canvas; + if (error) { + throw error; + } + }; - if (img.width <= 2 * canvas.width) { - ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + const { + ctx, + canvas, + transform + } = this._getPageDrawContext(DRAW_UPSCALE_FACTOR); - this._convertCanvasToImage(); + const drawViewport = this.viewport.clone({ + scale: DRAW_UPSCALE_FACTOR * this.scale + }); + + const renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + this.resume = () => { + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; return; } - var reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; - var reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; - var reducedImage = TempImageFactory.getCanvas(reducedWidth, reducedHeight); - var reducedImageCtx = reducedImage.getContext('2d'); + cont(); + }; - while (reducedWidth > img.width || reducedHeight > img.height) { - reducedWidth >>= 1; - reducedHeight >>= 1; + const renderContext = { + canvasContext: ctx, + transform, + viewport: drawViewport, + optionalContentConfigPromise: this._optionalContentConfigPromise + }; + const renderTask = this.renderTask = pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(function () { + return finishRenderTask(null); + }, function (error) { + return finishRenderTask(error); + }); + resultPromise.finally(() => { + canvas.width = 0; + canvas.height = 0; + const pageCached = this.linkService.isPageCached(this.id); + + if (!pageCached) { + this.pdfPage?.cleanup(); } + }); + return resultPromise; + } - reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); - - while (reducedWidth > 2 * canvas.width) { - reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); - reducedWidth >>= 1; - reducedHeight >>= 1; - } - - ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); - - this._convertCanvasToImage(); + setImage(pageView) { + if (this._checkSetImageDisabled()) { + return; } - }, { - key: "setPageLabel", - value: function setPageLabel(label) { - var _this3 = this; - this.pageLabel = typeof label === 'string' ? label : null; - this.l10n.get('thumb_page_title', { - page: this.pageId - }, 'Page {{page}}').then(function (msg) { - _this3.anchor.title = msg; - }); - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - return; - } - - this.l10n.get('thumb_page_canvas', { - page: this.pageId - }, 'Thumbnail of Page {{page}}').then(function (ariaLabel) { - if (_this3.image) { - _this3.image.setAttribute('aria-label', ariaLabel); - } else if (_this3.disableCanvasToImageConversion && _this3.canvas) { - _this3.canvas.setAttribute('aria-label', ariaLabel); - } - }); + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + return; } - }, { - key: "pageId", - get: function get() { - return this.pageLabel !== null ? this.pageLabel : this.id; - } - }], [{ - key: "cleanup", - value: function cleanup() { - TempImageFactory.destroyCanvas(); - } - }]); - return PDFThumbnailView; -}(); + const { + canvas, + pdfPage + } = pageView; + + if (!canvas) { + return; + } + + if (!this.pdfPage) { + this.setPdfPage(pdfPage); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + this._convertCanvasToImage(canvas); + } + + _reduceImage(img) { + const { + ctx, + canvas + } = this._getPageDrawContext(); + + if (img.width <= 2 * canvas.width) { + ctx.drawImage(img, 0, 0, img.width, img.height, 0, 0, canvas.width, canvas.height); + return canvas; + } + + let reducedWidth = canvas.width << MAX_NUM_SCALING_STEPS; + let reducedHeight = canvas.height << MAX_NUM_SCALING_STEPS; + const [reducedImage, reducedImageCtx] = TempImageFactory.getCanvas(reducedWidth, reducedHeight); + + while (reducedWidth > img.width || reducedHeight > img.height) { + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + reducedImageCtx.drawImage(img, 0, 0, img.width, img.height, 0, 0, reducedWidth, reducedHeight); + + while (reducedWidth > 2 * canvas.width) { + reducedImageCtx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, reducedWidth >> 1, reducedHeight >> 1); + reducedWidth >>= 1; + reducedHeight >>= 1; + } + + ctx.drawImage(reducedImage, 0, 0, reducedWidth, reducedHeight, 0, 0, canvas.width, canvas.height); + return canvas; + } + + get _thumbPageTitle() { + return this.l10n.get("thumb_page_title", { + page: this.pageLabel ?? this.id + }); + } + + get _thumbPageCanvas() { + return this.l10n.get("thumb_page_canvas", { + page: this.pageLabel ?? this.id + }); + } + + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + + this._thumbPageTitle.then(msg => { + this.anchor.title = msg; + }); + + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + return; + } + + this._thumbPageCanvas.then(msg => { + this.image?.setAttribute("aria-label", msg); + }); + } + +} exports.PDFThumbnailView = PDFThumbnailView; /***/ }), /* 27 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFViewer = void 0; +var _ui_utils = __webpack_require__(4); + var _base_viewer = __webpack_require__(28); -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var PDFViewer = -/*#__PURE__*/ -function (_BaseViewer) { - _inherits(PDFViewer, _BaseViewer); - - function PDFViewer() { - _classCallCheck(this, PDFViewer); - - return _possibleConstructorReturn(this, _getPrototypeOf(PDFViewer).apply(this, arguments)); +class PDFViewer extends _base_viewer.BaseViewer { + get _viewerElement() { + return (0, _pdfjsLib.shadow)(this, "_viewerElement", this.viewer); } - _createClass(PDFViewer, [{ - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + if (!pageSpot && !this.isInPresentationMode) { + const left = pageDiv.offsetLeft + pageDiv.clientLeft; + const right = left + pageDiv.clientWidth; + const { + scrollLeft, + clientWidth + } = this.container; - if (!pageSpot && !this.isInPresentationMode) { - var left = pageDiv.offsetLeft + pageDiv.clientLeft; - var right = left + pageDiv.clientWidth; - var _this$container = this.container, - scrollLeft = _this$container.scrollLeft, - clientWidth = _this$container.clientWidth; - - if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) { - pageSpot = { - left: 0, - top: 0 - }; - } + if (this._isScrollModeHorizontal || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; } - - _get(_getPrototypeOf(PDFViewer.prototype), "_scrollIntoView", this).call(this, { - pageDiv: pageDiv, - pageSpot: pageSpot, - pageNumber: pageNumber - }); } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - if (this.isInPresentationMode) { - return this._getCurrentVisiblePage(); - } - return _get(_getPrototypeOf(PDFViewer.prototype), "_getVisiblePages", this).call(this); + super._scrollIntoView({ + pageDiv, + pageSpot, + pageNumber + }); + } + + _getVisiblePages() { + if (this.isInPresentationMode) { + return this._getCurrentVisiblePage(); } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) { - if (this.isInPresentationMode) { - return; - } - var currentId = this._currentPageNumber; - var stillFullyVisible = false; - var _iteratorNormalCompletion = true; - var _didIteratorError = false; - var _iteratorError = undefined; + return super._getVisiblePages(); + } - try { - for (var _iterator = visiblePages[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) { - var page = _step.value; - - if (page.percent < 100) { - break; - } - - if (page.id === currentId) { - stillFullyVisible = true; - break; - } - } - } catch (err) { - _didIteratorError = true; - _iteratorError = err; - } finally { - try { - if (!_iteratorNormalCompletion && _iterator["return"] != null) { - _iterator["return"](); - } - } finally { - if (_didIteratorError) { - throw _iteratorError; - } - } - } - - if (!stillFullyVisible) { - currentId = visiblePages[0].id; - } - - this._setCurrentPageNumber(currentId); + _updateHelper(visiblePages) { + if (this.isInPresentationMode) { + return; } - }, { - key: "_setDocumentViewerElement", - get: function get() { - return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this.viewer); - } - }]); - return PDFViewer; -}(_base_viewer.BaseViewer); + let currentId = this._currentPageNumber; + let stillFullyVisible = false; + + for (const page of visiblePages) { + if (page.percent < 100) { + break; + } + + if (page.id === currentId && this._scrollMode === _ui_utils.ScrollMode.VERTICAL && this._spreadMode === _ui_utils.SpreadMode.NONE) { + stillFullyVisible = true; + break; + } + } + + if (!stillFullyVisible) { + currentId = visiblePages[0].id; + } + + this._setCurrentPageNumber(currentId); + } + +} exports.PDFViewer = PDFViewer; /***/ }), /* 28 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.BaseViewer = void 0; -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdf_rendering_queue = __webpack_require__(11); +var _ui_utils = __webpack_require__(4); + +var _pdf_rendering_queue = __webpack_require__(8); var _annotation_layer_builder = __webpack_require__(29); -var _pdfjsLib = __webpack_require__(7); +var _l10n_utils = __webpack_require__(30); -var _pdf_page_view = __webpack_require__(30); +var _pdf_page_view = __webpack_require__(31); -var _pdf_link_service = __webpack_require__(21); +var _pdf_link_service = __webpack_require__(19); -var _text_layer_builder = __webpack_require__(31); +var _struct_tree_layer_builder = __webpack_require__(32); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } +var _text_layer_builder = __webpack_require__(33); -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); } } +var _xfa_layer_builder = __webpack_require__(34); -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_CACHE_SIZE = 10; +const DEFAULT_CACHE_SIZE = 10; function PDFPageViewBuffer(size) { - var data = []; + const data = []; this.push = function (view) { - var i = data.indexOf(view); + const i = data.indexOf(view); if (i >= 0) { data.splice(i, 1); @@ -10376,9 +9807,9 @@ function PDFPageViewBuffer(size) { size = newSize; if (pagesToKeep) { - var pageIdsToKeep = new Set(); + const pageIdsToKeep = new Set(); - for (var i = 0, iMax = pagesToKeep.length; i < iMax; ++i) { + for (let i = 0, iMax = pagesToKeep.length; i < iMax; ++i) { pageIdsToKeep.add(pagesToKeep[i].id); } @@ -10391,6 +9822,10 @@ function PDFPageViewBuffer(size) { data.shift().destroy(); } }; + + this.has = function (view) { + return data.includes(view); + }; } function isSameScale(oldScale, newScale) { @@ -10405,35 +9840,45 @@ function isSameScale(oldScale, newScale) { return false; } -var BaseViewer = -/*#__PURE__*/ -function () { - function BaseViewer(options) { - var _this = this; - - _classCallCheck(this, BaseViewer); - +class BaseViewer { + constructor(options) { if (this.constructor === BaseViewer) { - throw new Error('Cannot initialize BaseViewer.'); + throw new Error("Cannot initialize BaseViewer."); + } + + const viewerVersion = '2.9.359'; + + if (_pdfjsLib.version !== viewerVersion) { + throw new Error(`The API version "${_pdfjsLib.version}" does not match the Viewer version "${viewerVersion}".`); } this._name = this.constructor.name; this.container = options.container; this.viewer = options.viewer || options.container.firstElementChild; - this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + + if (!(this.container?.tagName.toUpperCase() === "DIV" && this.viewer?.tagName.toUpperCase() === "DIV")) { + throw new Error("Invalid `container` and/or `viewer` option."); + } + + if (this.container.offsetParent && getComputedStyle(this.container).position !== "absolute") { + throw new Error("The `container` must be absolutely positioned."); + } + + this.eventBus = options.eventBus; this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); this.downloadManager = options.downloadManager || null; this.findController = options.findController || null; + this._scriptingManager = options.scriptingManager || null; this.removePageBorders = options.removePageBorders || false; this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; - this.imageResourcesPath = options.imageResourcesPath || ''; - this.renderInteractiveForms = options.renderInteractiveForms || false; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.renderInteractiveForms = options.renderInteractiveForms !== false; this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; - this.enableWebGL = options.enableWebGL || false; this.useOnlyCssZoom = options.useOnlyCssZoom || false; this.maxCanvasPixels = options.maxCanvasPixels; - this.l10n = options.l10n || _ui_utils.NullL10n; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.enableScripting = options.enableScripting === true && !!this._scriptingManager; this.defaultRenderingQueue = !options.renderingQueue; if (this.defaultRenderingQueue) { @@ -10445,1057 +9890,1332 @@ function () { this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdate.bind(this)); this.presentationModeState = _ui_utils.PresentationModeState.UNKNOWN; + this._onBeforeDraw = this._onAfterDraw = null; this._resetView(); if (this.removePageBorders) { - this.viewer.classList.add('removePageBorders'); + this.viewer.classList.add("removePageBorders"); } - Promise.resolve().then(function () { - _this.eventBus.dispatch('baseviewerinit', { - source: _this + Promise.resolve().then(() => { + this.eventBus.dispatch("baseviewerinit", { + source: this }); }); } - _createClass(BaseViewer, [{ - key: "getPageView", - value: function getPageView(index) { - return this._pages[index]; + get pagesCount() { + return this._pages.length; + } + + getPageView(index) { + return this._pages[index]; + } + + get pageViewsReady() { + if (!this._pagesCapability.settled) { + return false; } - }, { - key: "_setCurrentPageNumber", - value: function _setCurrentPageNumber(val) { - var resetCurrentPageView = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - if (this._currentPageNumber === val) { - if (resetCurrentPageView) { - this._resetCurrentPageView(); - } + return this._pages.every(function (pageView) { + return pageView?.pdfPage; + }); + } - return true; - } + get currentPageNumber() { + return this._currentPageNumber; + } - if (!(0 < val && val <= this.pagesCount)) { - return false; - } + set currentPageNumber(val) { + if (!Number.isInteger(val)) { + throw new Error("Invalid page number."); + } - this._currentPageNumber = val; - this.eventBus.dispatch('pagechanging', { - source: this, - pageNumber: val, - pageLabel: this._pageLabels && this._pageLabels[val - 1] - }); + if (!this.pdfDocument) { + return; + } + if (!this._setCurrentPageNumber(val, true)) { + console.error(`${this._name}.currentPageNumber: "${val}" is not a valid page.`); + } + } + + _setCurrentPageNumber(val, resetCurrentPageView = false) { + if (this._currentPageNumber === val) { if (resetCurrentPageView) { this._resetCurrentPageView(); } return true; } - }, { - key: "setDocument", - value: function setDocument(pdfDocument) { - var _this2 = this; - if (this.pdfDocument) { - this._cancelRendering(); - - this._resetView(); - - if (this.findController) { - this.findController.setDocument(null); - } - } - - this.pdfDocument = pdfDocument; - - if (!pdfDocument) { - return; - } - - var pagesCount = pdfDocument.numPages; - var pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); - this.pagesPromise = pagesCapability.promise; - pagesCapability.promise.then(function () { - _this2._pageViewsReady = true; - - _this2.eventBus.dispatch('pagesloaded', { - source: _this2, - pagesCount: pagesCount - }); - }); - var onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); - this.onePageRendered = onePageRenderedCapability.promise; - - var bindOnAfterAndBeforeDraw = function bindOnAfterAndBeforeDraw(pageView) { - pageView.onBeforeDraw = function () { - _this2._buffer.push(pageView); - }; - - pageView.onAfterDraw = function () { - if (!onePageRenderedCapability.settled) { - onePageRenderedCapability.resolve(); - } - }; - }; - - var firstPagePromise = pdfDocument.getPage(1); - this.firstPagePromise = firstPagePromise; - firstPagePromise.then(function (pdfPage) { - var scale = _this2.currentScale; - var viewport = pdfPage.getViewport({ - scale: scale * _ui_utils.CSS_UNITS - }); - - for (var pageNum = 1; pageNum <= pagesCount; ++pageNum) { - var textLayerFactory = null; - - if (_this2.textLayerMode !== _ui_utils.TextLayerMode.DISABLE) { - textLayerFactory = _this2; - } - - var pageView = new _pdf_page_view.PDFPageView({ - container: _this2._setDocumentViewerElement, - eventBus: _this2.eventBus, - id: pageNum, - scale: scale, - defaultViewport: viewport.clone(), - renderingQueue: _this2.renderingQueue, - textLayerFactory: textLayerFactory, - textLayerMode: _this2.textLayerMode, - annotationLayerFactory: _this2, - imageResourcesPath: _this2.imageResourcesPath, - renderInteractiveForms: _this2.renderInteractiveForms, - renderer: _this2.renderer, - enableWebGL: _this2.enableWebGL, - useOnlyCssZoom: _this2.useOnlyCssZoom, - maxCanvasPixels: _this2.maxCanvasPixels, - l10n: _this2.l10n - }); - bindOnAfterAndBeforeDraw(pageView); - - _this2._pages.push(pageView); - } - - if (_this2._spreadMode !== _ui_utils.SpreadMode.NONE) { - _this2._updateSpreadMode(); - } - - onePageRenderedCapability.promise.then(function () { - if (_this2.findController) { - _this2.findController.setDocument(pdfDocument); - } - - if (pdfDocument.loadingParams['disableAutoFetch']) { - pagesCapability.resolve(); - return; - } - - var getPagesLeft = pagesCount; - - var _loop = function _loop(_pageNum) { - pdfDocument.getPage(_pageNum).then(function (pdfPage) { - var pageView = _this2._pages[_pageNum - 1]; - - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - - _this2.linkService.cachePageRef(_pageNum, pdfPage.ref); - - if (--getPagesLeft === 0) { - pagesCapability.resolve(); - } - }, function (reason) { - console.error("Unable to get page ".concat(_pageNum, " to initialize viewer"), reason); - - if (--getPagesLeft === 0) { - pagesCapability.resolve(); - } - }); - }; - - for (var _pageNum = 1; _pageNum <= pagesCount; ++_pageNum) { - _loop(_pageNum); - } - }); - - _this2.eventBus.dispatch('pagesinit', { - source: _this2 - }); - - if (_this2.defaultRenderingQueue) { - _this2.update(); - } - })["catch"](function (reason) { - console.error('Unable to initialize viewer', reason); - }); + if (!(0 < val && val <= this.pagesCount)) { + return false; } - }, { - key: "setPageLabels", - value: function setPageLabels(labels) { - if (!this.pdfDocument) { - return; - } - if (!labels) { - this._pageLabels = null; - } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { - this._pageLabels = null; - console.error("".concat(this._name, ".setPageLabels: Invalid page labels.")); - } else { - this._pageLabels = labels; - } + const previous = this._currentPageNumber; + this._currentPageNumber = val; + this.eventBus.dispatch("pagechanging", { + source: this, + pageNumber: val, + pageLabel: this._pageLabels?.[val - 1] ?? null, + previous + }); - for (var i = 0, ii = this._pages.length; i < ii; i++) { - var pageView = this._pages[i]; - var label = this._pageLabels && this._pageLabels[i]; - pageView.setPageLabel(label); + if (resetCurrentPageView) { + this._resetCurrentPageView(); + } + + return true; + } + + get currentPageLabel() { + return this._pageLabels?.[this._currentPageNumber - 1] ?? null; + } + + set currentPageLabel(val) { + if (!this.pdfDocument) { + return; + } + + let page = val | 0; + + if (this._pageLabels) { + const i = this._pageLabels.indexOf(val); + + if (i >= 0) { + page = i + 1; } } - }, { - key: "_resetView", - value: function _resetView() { - this._pages = []; - this._currentPageNumber = 1; - this._currentScale = _ui_utils.UNKNOWN_SCALE; - this._currentScaleValue = null; - this._pageLabels = null; - this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); - this._location = null; - this._pagesRotation = 0; - this._pagesRequests = []; - this._pageViewsReady = false; - this._scrollMode = _ui_utils.ScrollMode.VERTICAL; - this._spreadMode = _ui_utils.SpreadMode.NONE; - this.viewer.textContent = ''; - this._updateScrollMode(); + if (!this._setCurrentPageNumber(page, true)) { + console.error(`${this._name}.currentPageLabel: "${val}" is not a valid page.`); } - }, { - key: "_scrollUpdate", - value: function _scrollUpdate() { - if (this.pagesCount === 0) { - return; - } + } + get currentScale() { + return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; + } + + set currentScale(val) { + if (isNaN(val)) { + throw new Error("Invalid numeric scale."); + } + + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + + get currentScaleValue() { + return this._currentScaleValue; + } + + set currentScaleValue(val) { + if (!this.pdfDocument) { + return; + } + + this._setScale(val, false); + } + + get pagesRotation() { + return this._pagesRotation; + } + + set pagesRotation(rotation) { + if (!(0, _ui_utils.isValidRotation)(rotation)) { + throw new Error("Invalid pages rotation angle."); + } + + if (!this.pdfDocument) { + return; + } + + rotation %= 360; + + if (rotation < 0) { + rotation += 360; + } + + if (this._pagesRotation === rotation) { + return; + } + + this._pagesRotation = rotation; + const pageNumber = this._currentPageNumber; + + for (let i = 0, ii = this._pages.length; i < ii; i++) { + const pageView = this._pages[i]; + pageView.update(pageView.scale, rotation); + } + + if (this._currentScaleValue) { + this._setScale(this._currentScaleValue, true); + } + + this.eventBus.dispatch("rotationchanging", { + source: this, + pagesRotation: rotation, + pageNumber + }); + + if (this.defaultRenderingQueue) { this.update(); } - }, { - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; - (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot); + } + + get firstPagePromise() { + return this.pdfDocument ? this._firstPageCapability.promise : null; + } + + get onePageRendered() { + return this.pdfDocument ? this._onePageRenderedCapability.promise : null; + } + + get pagesPromise() { + return this.pdfDocument ? this._pagesCapability.promise : null; + } + + get _viewerElement() { + throw new Error("Not implemented: _viewerElement"); + } + + _onePageRenderedOrForceFetch() { + if (!this.container.offsetParent || this._getVisiblePages().views.length === 0) { + return Promise.resolve(); } - }, { - key: "_setScaleUpdatePages", - value: function _setScaleUpdatePages(newScale, newValue) { - var noScroll = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; - var preset = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - this._currentScaleValue = newValue.toString(); - if (isSameScale(this._currentScale, newScale)) { - if (preset) { - this.eventBus.dispatch('scalechanging', { - source: this, - scale: newScale, - presetValue: newValue - }); - } + return this._onePageRenderedCapability.promise; + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.eventBus.dispatch("pagesdestroy", { + source: this + }); + + this._cancelRendering(); + + this._resetView(); + + if (this.findController) { + this.findController.setDocument(null); + } + + if (this._scriptingManager) { + this._scriptingManager.setDocument(null); + } + } + + this.pdfDocument = pdfDocument; + + if (!pdfDocument) { + return; + } + + const isPureXfa = pdfDocument.isPureXfa; + const pagesCount = pdfDocument.numPages; + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + + this._pagesCapability.promise.then(() => { + this.eventBus.dispatch("pagesloaded", { + source: this, + pagesCount + }); + }); + + this._onBeforeDraw = evt => { + const pageView = this._pages[evt.pageNumber - 1]; + + if (!pageView) { return; } - for (var i = 0, ii = this._pages.length; i < ii; i++) { - this._pages[i].update(newScale); + this._buffer.push(pageView); + }; + + this.eventBus._on("pagerender", this._onBeforeDraw); + + this._onAfterDraw = evt => { + if (evt.cssTransform || this._onePageRenderedCapability.settled) { + return; } - this._currentScale = newScale; + this._onePageRenderedCapability.resolve(); - if (!noScroll) { - var page = this._currentPageNumber, - dest; + this.eventBus._off("pagerendered", this._onAfterDraw); - if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { - page = this._location.pageNumber; - dest = [null, { - name: 'XYZ' - }, this._location.left, this._location.top, null]; + this._onAfterDraw = null; + }; + + this.eventBus._on("pagerendered", this._onAfterDraw); + + firstPagePromise.then(firstPdfPage => { + this._firstPageCapability.resolve(firstPdfPage); + + this._optionalContentConfigPromise = optionalContentConfigPromise; + const scale = this.currentScale; + const viewport = firstPdfPage.getViewport({ + scale: scale * _ui_utils.CSS_UNITS + }); + const textLayerFactory = this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE ? this : null; + const xfaLayerFactory = isPureXfa ? this : null; + + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const pageView = new _pdf_page_view.PDFPageView({ + container: this._viewerElement, + eventBus: this.eventBus, + id: pageNum, + scale, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + renderingQueue: this.renderingQueue, + textLayerFactory, + textLayerMode: this.textLayerMode, + annotationLayerFactory: this, + xfaLayerFactory, + structTreeLayerFactory: this, + imageResourcesPath: this.imageResourcesPath, + renderInteractiveForms: this.renderInteractiveForms, + renderer: this.renderer, + useOnlyCssZoom: this.useOnlyCssZoom, + maxCanvasPixels: this.maxCanvasPixels, + l10n: this.l10n + }); + + this._pages.push(pageView); + } + + const firstPageView = this._pages[0]; + + if (firstPageView) { + firstPageView.setPdfPage(firstPdfPage); + this.linkService.cachePageRef(1, firstPdfPage.ref); + } + + if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + this._updateSpreadMode(); + } + + this._onePageRenderedOrForceFetch().then(() => { + if (this.findController) { + this.findController.setDocument(pdfDocument); } - this.scrollPageIntoView({ - pageNumber: page, - destArray: dest, - allowNegativeOffset: true - }); - } + if (this.enableScripting) { + this._scriptingManager.setDocument(pdfDocument); + } - this.eventBus.dispatch('scalechanging', { - source: this, - scale: newScale, - presetValue: preset ? newValue : undefined + if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > 7500) { + this._pagesCapability.resolve(); + + return; + } + + let getPagesLeft = pagesCount - 1; + + if (getPagesLeft <= 0) { + this._pagesCapability.resolve(); + + return; + } + + for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { + pdfDocument.getPage(pageNum).then(pdfPage => { + const pageView = this._pages[pageNum - 1]; + + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + this.linkService.cachePageRef(pageNum, pdfPage.ref); + + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }, reason => { + console.error(`Unable to get page ${pageNum} to initialize viewer`, reason); + + if (--getPagesLeft === 0) { + this._pagesCapability.resolve(); + } + }); + } + }); + + this.eventBus.dispatch("pagesinit", { + source: this }); if (this.defaultRenderingQueue) { this.update(); } + }).catch(reason => { + console.error("Unable to initialize viewer", reason); + }); + } + + setPageLabels(labels) { + if (!this.pdfDocument) { + return; } - }, { - key: "_setScale", - value: function _setScale(value) { - var noScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var scale = parseFloat(value); - if (scale > 0) { - this._setScaleUpdatePages(scale, value, noScroll, false); - } else { - var currentPage = this._pages[this._currentPageNumber - 1]; - - if (!currentPage) { - return; - } - - var noPadding = this.isInPresentationMode || this.removePageBorders; - var hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING; - var vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING; - - if (!noPadding && this._isScrollModeHorizontal) { - var _ref2 = [vPadding, hPadding]; - hPadding = _ref2[0]; - vPadding = _ref2[1]; - } - - var pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale; - var pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; - - switch (value) { - case 'page-actual': - scale = 1; - break; - - case 'page-width': - scale = pageWidthScale; - break; - - case 'page-height': - scale = pageHeightScale; - break; - - case 'page-fit': - scale = Math.min(pageWidthScale, pageHeightScale); - break; - - case 'auto': - var horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); - scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); - break; - - default: - console.error("".concat(this._name, "._setScale: \"").concat(value, "\" is an unknown zoom value.")); - return; - } - - this._setScaleUpdatePages(scale, value, noScroll, true); - } + if (!labels) { + this._pageLabels = null; + } else if (!(Array.isArray(labels) && this.pdfDocument.numPages === labels.length)) { + this._pageLabels = null; + console.error(`${this._name}.setPageLabels: Invalid page labels.`); + } else { + this._pageLabels = labels; } - }, { - key: "_resetCurrentPageView", - value: function _resetCurrentPageView() { - if (this.isInPresentationMode) { - this._setScale(this._currentScaleValue, true); + + for (let i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].setPageLabel(this._pageLabels?.[i] ?? null); + } + } + + _resetView() { + this._pages = []; + this._currentPageNumber = 1; + this._currentScale = _ui_utils.UNKNOWN_SCALE; + this._currentScaleValue = null; + this._pageLabels = null; + this._buffer = new PDFPageViewBuffer(DEFAULT_CACHE_SIZE); + this._location = null; + this._pagesRotation = 0; + this._optionalContentConfigPromise = null; + this._pagesRequests = new WeakMap(); + this._firstPageCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._onePageRenderedCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._pagesCapability = (0, _pdfjsLib.createPromiseCapability)(); + this._scrollMode = _ui_utils.ScrollMode.VERTICAL; + this._spreadMode = _ui_utils.SpreadMode.NONE; + + if (this._onBeforeDraw) { + this.eventBus._off("pagerender", this._onBeforeDraw); + + this._onBeforeDraw = null; + } + + if (this._onAfterDraw) { + this.eventBus._off("pagerendered", this._onAfterDraw); + + this._onAfterDraw = null; + } + + this.viewer.textContent = ""; + + this._updateScrollMode(); + } + + _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + + this.update(); + } + + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + (0, _ui_utils.scrollIntoView)(pageDiv, pageSpot); + } + + _setScaleUpdatePages(newScale, newValue, noScroll = false, preset = false) { + this._currentScaleValue = newValue.toString(); + + if (isSameScale(this._currentScale, newScale)) { + if (preset) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: newValue + }); } - var pageView = this._pages[this._currentPageNumber - 1]; + return; + } - this._scrollIntoView({ - pageDiv: pageView.div + for (let i = 0, ii = this._pages.length; i < ii; i++) { + this._pages[i].update(newScale); + } + + this._currentScale = newScale; + + if (!noScroll) { + let page = this._currentPageNumber, + dest; + + if (this._location && !(this.isInPresentationMode || this.isChangingPresentationMode)) { + page = this._location.pageNumber; + dest = [null, { + name: "XYZ" + }, this._location.left, this._location.top, null]; + } + + this.scrollPageIntoView({ + pageNumber: page, + destArray: dest, + allowNegativeOffset: true }); } - }, { - key: "scrollPageIntoView", - value: function scrollPageIntoView(_ref3) { - var pageNumber = _ref3.pageNumber, - _ref3$destArray = _ref3.destArray, - destArray = _ref3$destArray === void 0 ? null : _ref3$destArray, - _ref3$allowNegativeOf = _ref3.allowNegativeOffset, - allowNegativeOffset = _ref3$allowNegativeOf === void 0 ? false : _ref3$allowNegativeOf; - if (!this.pdfDocument) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: preset ? newValue : undefined + }); + + if (this.defaultRenderingQueue) { + this.update(); + } + } + + get _pageWidthScaleFactor() { + if (this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL && !this.isInPresentationMode) { + return 2; + } + + return 1; + } + + _setScale(value, noScroll = false) { + let scale = parseFloat(value); + + if (scale > 0) { + this._setScaleUpdatePages(scale, value, noScroll, false); + } else { + const currentPage = this._pages[this._currentPageNumber - 1]; + + if (!currentPage) { return; } - var pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + const noPadding = this.isInPresentationMode || this.removePageBorders; + let hPadding = noPadding ? 0 : _ui_utils.SCROLLBAR_PADDING; + let vPadding = noPadding ? 0 : _ui_utils.VERTICAL_PADDING; - if (!pageView) { - console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(pageNumber, "\" is not a valid pageNumber parameter.")); - return; + if (!noPadding && this._isScrollModeHorizontal) { + [hPadding, vPadding] = [vPadding, hPadding]; } - if (this.isInPresentationMode || !destArray) { - this._setCurrentPageNumber(pageNumber, true); + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this._pageWidthScaleFactor; + const pageHeightScale = (this.container.clientHeight - vPadding) / currentPage.height * currentPage.scale; - return; - } - - var x = 0, - y = 0; - var width = 0, - height = 0, - widthScale, - heightScale; - var changeOrientation = pageView.rotation % 180 === 0 ? false : true; - var pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS; - var pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS; - var scale = 0; - - switch (destArray[1].name) { - case 'XYZ': - x = destArray[2]; - y = destArray[3]; - scale = destArray[4]; - x = x !== null ? x : 0; - y = y !== null ? y : pageHeight; + switch (value) { + case "page-actual": + scale = 1; break; - case 'Fit': - case 'FitB': - scale = 'page-fit'; + case "page-width": + scale = pageWidthScale; break; - case 'FitH': - case 'FitBH': - y = destArray[2]; - scale = 'page-width'; - - if (y === null && this._location) { - x = this._location.left; - y = this._location.top; - } - + case "page-height": + scale = pageHeightScale; break; - case 'FitV': - case 'FitBV': - x = destArray[2]; - width = pageWidth; - height = pageHeight; - scale = 'page-height'; + case "page-fit": + scale = Math.min(pageWidthScale, pageHeightScale); break; - case 'FitR': - x = destArray[2]; - y = destArray[3]; - width = destArray[4] - x; - height = destArray[5] - y; - var hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; - var vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; - widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS; - heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS; - scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + case "auto": + const horizontalScale = (0, _ui_utils.isPortraitOrientation)(currentPage) ? pageWidthScale : Math.min(pageHeightScale, pageWidthScale); + scale = Math.min(_ui_utils.MAX_AUTO_SCALE, horizontalScale); break; default: - console.error("".concat(this._name, ".scrollPageIntoView: ") + "\"".concat(destArray[1].name, "\" is not a valid destination type.")); + console.error(`${this._name}._setScale: "${value}" is an unknown zoom value.`); return; } + this._setScaleUpdatePages(scale, value, noScroll, true); + } + } + + _resetCurrentPageView() { + if (this.isInPresentationMode) { + this._setScale(this._currentScaleValue, true); + } + + const pageView = this._pages[this._currentPageNumber - 1]; + + this._scrollIntoView({ + pageDiv: pageView.div + }); + } + + pageLabelToPageNumber(label) { + if (!this._pageLabels) { + return null; + } + + const i = this._pageLabels.indexOf(label); + + if (i < 0) { + return null; + } + + return i + 1; + } + + scrollPageIntoView({ + pageNumber, + destArray = null, + allowNegativeOffset = false, + ignoreDestinationZoom = false + }) { + if (!this.pdfDocument) { + return; + } + + const pageView = Number.isInteger(pageNumber) && this._pages[pageNumber - 1]; + + if (!pageView) { + console.error(`${this._name}.scrollPageIntoView: ` + `"${pageNumber}" is not a valid pageNumber parameter.`); + return; + } + + if (this.isInPresentationMode || !destArray) { + this._setCurrentPageNumber(pageNumber, true); + + return; + } + + let x = 0, + y = 0; + let width = 0, + height = 0, + widthScale, + heightScale; + const changeOrientation = pageView.rotation % 180 !== 0; + const pageWidth = (changeOrientation ? pageView.height : pageView.width) / pageView.scale / _ui_utils.CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _ui_utils.CSS_UNITS; + let scale = 0; + + switch (destArray[1].name) { + case "XYZ": + x = destArray[2]; + y = destArray[3]; + scale = destArray[4]; + x = x !== null ? x : 0; + y = y !== null ? y : pageHeight; + break; + + case "Fit": + case "FitB": + scale = "page-fit"; + break; + + case "FitH": + case "FitBH": + y = destArray[2]; + scale = "page-width"; + + if (y === null && this._location) { + x = this._location.left; + y = this._location.top; + } else if (typeof y !== "number") { + y = pageHeight; + } + + break; + + case "FitV": + case "FitBV": + x = destArray[2]; + width = pageWidth; + height = pageHeight; + scale = "page-height"; + break; + + case "FitR": + x = destArray[2]; + y = destArray[3]; + width = destArray[4] - x; + height = destArray[5] - y; + const hPadding = this.removePageBorders ? 0 : _ui_utils.SCROLLBAR_PADDING; + const vPadding = this.removePageBorders ? 0 : _ui_utils.VERTICAL_PADDING; + widthScale = (this.container.clientWidth - hPadding) / width / _ui_utils.CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / _ui_utils.CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + + default: + console.error(`${this._name}.scrollPageIntoView: ` + `"${destArray[1].name}" is not a valid destination type.`); + return; + } + + if (!ignoreDestinationZoom) { if (scale && scale !== this._currentScale) { this.currentScaleValue = scale; } else if (this._currentScale === _ui_utils.UNKNOWN_SCALE) { this.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; } + } - if (scale === 'page-fit' && !destArray[4]) { - this._scrollIntoView({ - pageDiv: pageView.div, - pageNumber: pageNumber - }); - - return; - } - - var boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; - var left = Math.min(boundingRect[0][0], boundingRect[1][0]); - var top = Math.min(boundingRect[0][1], boundingRect[1][1]); - - if (!allowNegativeOffset) { - left = Math.max(left, 0); - top = Math.max(top, 0); - } - + if (scale === "page-fit" && !destArray[4]) { this._scrollIntoView({ pageDiv: pageView.div, - pageSpot: { - left: left, - top: top - }, - pageNumber: pageNumber + pageNumber }); - } - }, { - key: "_updateLocation", - value: function _updateLocation(firstPage) { - var currentScale = this._currentScale; - var currentScaleValue = this._currentScaleValue; - var normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; - var pageNumber = firstPage.id; - var pdfOpenParams = '#page=' + pageNumber; - pdfOpenParams += '&zoom=' + normalizedScaleValue; - var currentPageView = this._pages[pageNumber - 1]; - var container = this.container; - var topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); - var intLeft = Math.round(topLeft[0]); - var intTop = Math.round(topLeft[1]); - pdfOpenParams += ',' + intLeft + ',' + intTop; - this._location = { - pageNumber: pageNumber, - scale: normalizedScaleValue, - top: intTop, - left: intLeft, - rotation: this._pagesRotation, - pdfOpenParams: pdfOpenParams - }; - } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) { - throw new Error('Not implemented: _updateHelper'); - } - }, { - key: "update", - value: function update() { - var visible = this._getVisiblePages(); - var visiblePages = visible.views, + return; + } + + const boundingRect = [pageView.viewport.convertToViewportPoint(x, y), pageView.viewport.convertToViewportPoint(x + width, y + height)]; + let left = Math.min(boundingRect[0][0], boundingRect[1][0]); + let top = Math.min(boundingRect[0][1], boundingRect[1][1]); + + if (!allowNegativeOffset) { + left = Math.max(left, 0); + top = Math.max(top, 0); + } + + this._scrollIntoView({ + pageDiv: pageView.div, + pageSpot: { + left, + top + }, + pageNumber + }); + } + + _updateLocation(firstPage) { + const currentScale = this._currentScale; + const currentScaleValue = this._currentScaleValue; + const normalizedScaleValue = parseFloat(currentScaleValue) === currentScale ? Math.round(currentScale * 10000) / 100 : currentScaleValue; + const pageNumber = firstPage.id; + let pdfOpenParams = "#page=" + pageNumber; + pdfOpenParams += "&zoom=" + normalizedScaleValue; + const currentPageView = this._pages[pageNumber - 1]; + const container = this.container; + const topLeft = currentPageView.getPagePoint(container.scrollLeft - firstPage.x, container.scrollTop - firstPage.y); + const intLeft = Math.round(topLeft[0]); + const intTop = Math.round(topLeft[1]); + pdfOpenParams += "," + intLeft + "," + intTop; + this._location = { + pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams + }; + } + + _updateHelper(visiblePages) { + throw new Error("Not implemented: _updateHelper"); + } + + update() { + const visible = this._getVisiblePages(); + + const visiblePages = visible.views, numVisiblePages = visiblePages.length; - if (numVisiblePages === 0) { - return; - } - - var newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); - - this._buffer.resize(newCacheSize, visiblePages); - - this.renderingQueue.renderHighestPriority(visible); - - this._updateHelper(visiblePages); - - this._updateLocation(visible.first); - - this.eventBus.dispatch('updateviewarea', { - source: this, - location: this._location - }); + if (numVisiblePages === 0) { + return; } - }, { - key: "containsElement", - value: function containsElement(element) { - return this.container.contains(element); - } - }, { - key: "focus", - value: function focus() { - this.container.focus(); - } - }, { - key: "_getCurrentVisiblePage", - value: function _getCurrentVisiblePage() { - if (!this.pagesCount) { - return { - views: [] - }; - } - var pageView = this._pages[this._currentPageNumber - 1]; - var element = pageView.div; - var view = { - id: pageView.id, - x: element.offsetLeft + element.clientLeft, - y: element.offsetTop + element.clientTop, - view: pageView - }; + const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + + this._buffer.resize(newCacheSize, visiblePages); + + this.renderingQueue.renderHighestPriority(visible); + + this._updateHelper(visiblePages); + + this._updateLocation(visible.first); + + this.eventBus.dispatch("updateviewarea", { + source: this, + location: this._location + }); + } + + containsElement(element) { + return this.container.contains(element); + } + + focus() { + this.container.focus(); + } + + get _isScrollModeHorizontal() { + return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL; + } + + get _isContainerRtl() { + return getComputedStyle(this.container).direction === "rtl"; + } + + get isInPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; + } + + get isChangingPresentationMode() { + return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; + } + + get isHorizontalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; + } + + get isVerticalScrollbarEnabled() { + return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; + } + + _getCurrentVisiblePage() { + if (!this.pagesCount) { return { - first: view, - last: view, - views: [view] + views: [] }; } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - return (0, _ui_utils.getVisibleElements)(this.container, this._pages, true, this._isScrollModeHorizontal); - } - }, { - key: "isPageVisible", - value: function isPageVisible(pageNumber) { - if (!this.pdfDocument) { - return false; - } - if (this.pageNumber < 1 || pageNumber > this.pagesCount) { - console.error("".concat(this._name, ".isPageVisible: \"").concat(pageNumber, "\" is out of bounds.")); - return false; - } + const pageView = this._pages[this._currentPageNumber - 1]; + const element = pageView.div; + const view = { + id: pageView.id, + x: element.offsetLeft + element.clientLeft, + y: element.offsetTop + element.clientTop, + view: pageView + }; + return { + first: view, + last: view, + views: [view] + }; + } - return this._getVisiblePages().views.some(function (view) { - return view.id === pageNumber; - }); - } - }, { - key: "cleanup", - value: function cleanup() { - for (var i = 0, ii = this._pages.length; i < ii; i++) { - if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { - this._pages[i].reset(); - } - } - } - }, { - key: "_cancelRendering", - value: function _cancelRendering() { - for (var i = 0, ii = this._pages.length; i < ii; i++) { - if (this._pages[i]) { - this._pages[i].cancelRendering(); - } - } - } - }, { - key: "_ensurePdfPageLoaded", - value: function _ensurePdfPageLoaded(pageView) { - var _this3 = this; - - if (pageView.pdfPage) { - return Promise.resolve(pageView.pdfPage); - } - - var pageNumber = pageView.id; - - if (this._pagesRequests[pageNumber]) { - return this._pagesRequests[pageNumber]; - } - - var promise = this.pdfDocument.getPage(pageNumber).then(function (pdfPage) { - if (!pageView.pdfPage) { - pageView.setPdfPage(pdfPage); - } - - _this3._pagesRequests[pageNumber] = null; - return pdfPage; - })["catch"](function (reason) { - console.error('Unable to get page for page view', reason); - _this3._pagesRequests[pageNumber] = null; - }); - this._pagesRequests[pageNumber] = promise; - return promise; - } - }, { - key: "forceRendering", - value: function forceRendering(currentlyVisiblePages) { - var _this4 = this; - - var visiblePages = currentlyVisiblePages || this._getVisiblePages(); - - var scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down; - var pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead); - - if (pageView) { - this._ensurePdfPageLoaded(pageView).then(function () { - _this4.renderingQueue.renderView(pageView); - }); - - return true; - } + _getVisiblePages() { + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views: this._pages, + sortByVisibility: true, + horizontal: this._isScrollModeHorizontal, + rtl: this._isScrollModeHorizontal && this._isContainerRtl + }); + } + isPageVisible(pageNumber) { + if (!this.pdfDocument) { return false; } - }, { - key: "createTextLayerBuilder", - value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { - var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - return new _text_layer_builder.TextLayerBuilder({ - textLayerDiv: textLayerDiv, - eventBus: this.eventBus, - pageIndex: pageIndex, - viewport: viewport, - findController: this.isInPresentationMode ? null : this.findController, - enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection - }); + + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`${this._name}.isPageVisible: "${pageNumber}" is not a valid page.`); + return false; } - }, { - key: "createAnnotationLayerBuilder", - value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { - var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; - return new _annotation_layer_builder.AnnotationLayerBuilder({ - pageDiv: pageDiv, - pdfPage: pdfPage, - imageResourcesPath: imageResourcesPath, - renderInteractiveForms: renderInteractiveForms, - linkService: this.linkService, - downloadManager: this.downloadManager, - l10n: l10n - }); + + return this._getVisiblePages().views.some(function (view) { + return view.id === pageNumber; + }); + } + + isPageCached(pageNumber) { + if (!this.pdfDocument || !this._buffer) { + return false; } - }, { - key: "getPagesOverview", - value: function getPagesOverview() { - var pagesOverview = this._pages.map(function (pageView) { - var viewport = pageView.pdfPage.getViewport({ - scale: 1 - }); + + if (!(Number.isInteger(pageNumber) && pageNumber > 0 && pageNumber <= this.pagesCount)) { + console.error(`${this._name}.isPageCached: "${pageNumber}" is not a valid page.`); + return false; + } + + const pageView = this._pages[pageNumber - 1]; + + if (!pageView) { + return false; + } + + return this._buffer.has(pageView); + } + + cleanup() { + for (let i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i] && this._pages[i].renderingState !== _pdf_rendering_queue.RenderingStates.FINISHED) { + this._pages[i].reset(); + } + } + } + + _cancelRendering() { + for (let i = 0, ii = this._pages.length; i < ii; i++) { + if (this._pages[i]) { + this._pages[i].cancelRendering(); + } + } + } + + _ensurePdfPageLoaded(pageView) { + if (pageView.pdfPage) { + return Promise.resolve(pageView.pdfPage); + } + + if (this._pagesRequests.has(pageView)) { + return this._pagesRequests.get(pageView); + } + + const promise = this.pdfDocument.getPage(pageView.id).then(pdfPage => { + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + + this._pagesRequests.delete(pageView); + + return pdfPage; + }).catch(reason => { + console.error("Unable to get page for page view", reason); + + this._pagesRequests.delete(pageView); + }); + + this._pagesRequests.set(pageView, promise); + + return promise; + } + + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + + const scrollAhead = this._isScrollModeHorizontal ? this.scroll.right : this.scroll.down; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead); + + if (pageView) { + this._ensurePdfPageLoaded(pageView).then(() => { + this.renderingQueue.renderView(pageView); + }); + + return true; + } + + return false; + } + + createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) { + return new _text_layer_builder.TextLayerBuilder({ + textLayerDiv, + eventBus, + pageIndex, + viewport, + findController: this.isInPresentationMode ? null : this.findController, + enhanceTextSelection: this.isInPresentationMode ? false : enhanceTextSelection + }); + } + + createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = false, l10n = _l10n_utils.NullL10n, enableScripting = null, hasJSActionsPromise = null, mouseState = null) { + return new _annotation_layer_builder.AnnotationLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage: annotationStorage || this.pdfDocument?.annotationStorage, + imageResourcesPath, + renderInteractiveForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + l10n, + enableScripting: enableScripting ?? this.enableScripting, + hasJSActionsPromise: hasJSActionsPromise || this.pdfDocument?.hasJSActions(), + mouseState: mouseState || this._scriptingManager?.mouseState + }); + } + + createXfaLayerBuilder(pageDiv, pdfPage, annotationStorage = null) { + return new _xfa_layer_builder.XfaLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage: annotationStorage || this.pdfDocument?.annotationStorage + }); + } + + createStructTreeLayerBuilder(pdfPage) { + return new _struct_tree_layer_builder.StructTreeLayerBuilder({ + pdfPage + }); + } + + get hasEqualPageSizes() { + const firstPageView = this._pages[0]; + + for (let i = 1, ii = this._pages.length; i < ii; ++i) { + const pageView = this._pages[i]; + + if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { + return false; + } + } + + return true; + } + + getPagesOverview() { + return this._pages.map(pageView => { + const viewport = pageView.pdfPage.getViewport({ + scale: 1 + }); + + if (!this.enablePrintAutoRotate || (0, _ui_utils.isPortraitOrientation)(viewport)) { return { width: viewport.width, height: viewport.height, rotation: viewport.rotation }; - }); - - if (!this.enablePrintAutoRotate) { - return pagesOverview; } - var isFirstPagePortrait = (0, _ui_utils.isPortraitOrientation)(pagesOverview[0]); - return pagesOverview.map(function (size) { - if (isFirstPagePortrait === (0, _ui_utils.isPortraitOrientation)(size)) { - return size; - } + return { + width: viewport.height, + height: viewport.width, + rotation: (viewport.rotation - 90) % 360 + }; + }); + } - return { - width: size.height, - height: size.width, - rotation: (size.rotation + 90) % 360 - }; - }); + get optionalContentConfigPromise() { + if (!this.pdfDocument) { + return Promise.resolve(null); } - }, { - key: "_updateScrollMode", - value: function _updateScrollMode() { - var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - var scrollMode = this._scrollMode, + + if (!this._optionalContentConfigPromise) { + return this.pdfDocument.getOptionalContentConfig(); + } + + return this._optionalContentConfigPromise; + } + + set optionalContentConfigPromise(promise) { + if (!(promise instanceof Promise)) { + throw new Error(`Invalid optionalContentConfigPromise: ${promise}`); + } + + if (!this.pdfDocument) { + return; + } + + if (!this._optionalContentConfigPromise) { + return; + } + + this._optionalContentConfigPromise = promise; + + for (const pageView of this._pages) { + pageView.update(pageView.scale, pageView.rotation, promise); + } + + this.update(); + this.eventBus.dispatch("optionalcontentconfigchanged", { + source: this, + promise + }); + } + + get scrollMode() { + return this._scrollMode; + } + + set scrollMode(mode) { + if (this._scrollMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidScrollMode)(mode)) { + throw new Error(`Invalid scroll mode: ${mode}`); + } + + this._scrollMode = mode; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + + this._updateScrollMode(this._currentPageNumber); + } + + _updateScrollMode(pageNumber = null) { + const scrollMode = this._scrollMode, viewer = this.viewer; - viewer.classList.toggle('scrollHorizontal', scrollMode === _ui_utils.ScrollMode.HORIZONTAL); - viewer.classList.toggle('scrollWrapped', scrollMode === _ui_utils.ScrollMode.WRAPPED); + viewer.classList.toggle("scrollHorizontal", scrollMode === _ui_utils.ScrollMode.HORIZONTAL); + viewer.classList.toggle("scrollWrapped", scrollMode === _ui_utils.ScrollMode.WRAPPED); - if (!this.pdfDocument || !pageNumber) { - return; - } - - if (this._currentScaleValue && isNaN(this._currentScaleValue)) { - this._setScale(this._currentScaleValue, true); - } - - this._setCurrentPageNumber(pageNumber, true); - - this.update(); + if (!this.pdfDocument || !pageNumber) { + return; } - }, { - key: "_updateSpreadMode", - value: function _updateSpreadMode() { - var pageNumber = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; - if (!this.pdfDocument) { - return; - } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } - var viewer = this.viewer, + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + + get spreadMode() { + return this._spreadMode; + } + + set spreadMode(mode) { + if (this._spreadMode === mode) { + return; + } + + if (!(0, _ui_utils.isValidSpreadMode)(mode)) { + throw new Error(`Invalid spread mode: ${mode}`); + } + + this._spreadMode = mode; + this.eventBus.dispatch("spreadmodechanged", { + source: this, + mode + }); + + this._updateSpreadMode(this._currentPageNumber); + } + + _updateSpreadMode(pageNumber = null) { + if (!this.pdfDocument) { + return; + } + + const viewer = this.viewer, pages = this._pages; - viewer.textContent = ''; + viewer.textContent = ""; - if (this._spreadMode === _ui_utils.SpreadMode.NONE) { - for (var i = 0, iMax = pages.length; i < iMax; ++i) { - viewer.appendChild(pages[i].div); + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + for (let i = 0, iMax = pages.length; i < iMax; ++i) { + viewer.appendChild(pages[i].div); + } + } else { + const parity = this._spreadMode - 1; + let spread = null; + + for (let i = 0, iMax = pages.length; i < iMax; ++i) { + if (spread === null) { + spread = document.createElement("div"); + spread.className = "spread"; + viewer.appendChild(spread); + } else if (i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.appendChild(spread); } - } else { - var parity = this._spreadMode - 1; - var spread = null; - for (var _i = 0, _iMax = pages.length; _i < _iMax; ++_i) { - if (spread === null) { - spread = document.createElement('div'); - spread.className = 'spread'; - viewer.appendChild(spread); - } else if (_i % 2 === parity) { - spread = spread.cloneNode(false); - viewer.appendChild(spread); + spread.appendChild(pages[i].div); + } + } + + if (!pageNumber) { + return; + } + + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this._setScale(this._currentScaleValue, true); + } + + this._setCurrentPageNumber(pageNumber, true); + + this.update(); + } + + _getPageAdvance(currentPageNumber, previous = false) { + if (this.isInPresentationMode) { + return 1; + } + + switch (this._scrollMode) { + case _ui_utils.ScrollMode.WRAPPED: + { + const { + views + } = this._getVisiblePages(), + pageLayout = new Map(); + + for (const { + id, + y, + percent, + widthPercent + } of views) { + if (percent === 0 || widthPercent < 100) { + continue; + } + + let yArray = pageLayout.get(y); + + if (!yArray) { + pageLayout.set(y, yArray || (yArray = [])); + } + + yArray.push(id); } - spread.appendChild(pages[_i].div); + for (const yArray of pageLayout.values()) { + const currentIndex = yArray.indexOf(currentPageNumber); + + if (currentIndex === -1) { + continue; + } + + const numPages = yArray.length; + + if (numPages === 1) { + break; + } + + if (previous) { + for (let i = currentIndex - 1, ii = 0; i >= ii; i--) { + const currentId = yArray[i], + expectedId = yArray[i + 1] - 1; + + if (currentId < expectedId) { + return currentPageNumber - expectedId; + } + } + } else { + for (let i = currentIndex + 1, ii = numPages; i < ii; i++) { + const currentId = yArray[i], + expectedId = yArray[i - 1] + 1; + + if (currentId > expectedId) { + return expectedId - currentPageNumber; + } + } + } + + if (previous) { + const firstId = yArray[0]; + + if (firstId < currentPageNumber) { + return currentPageNumber - firstId + 1; + } + } else { + const lastId = yArray[numPages - 1]; + + if (lastId > currentPageNumber) { + return lastId - currentPageNumber + 1; + } + } + + break; + } + + break; } - } - if (!pageNumber) { - return; - } - - this._setCurrentPageNumber(pageNumber, true); - - this.update(); - } - }, { - key: "pagesCount", - get: function get() { - return this._pages.length; - } - }, { - key: "pageViewsReady", - get: function get() { - return this._pageViewsReady; - } - }, { - key: "currentPageNumber", - get: function get() { - return this._currentPageNumber; - }, - set: function set(val) { - if (!Number.isInteger(val)) { - throw new Error('Invalid page number.'); - } - - if (!this.pdfDocument) { - return; - } - - if (!this._setCurrentPageNumber(val, true)) { - console.error("".concat(this._name, ".currentPageNumber: \"").concat(val, "\" is not a valid page.")); - } - } - }, { - key: "currentPageLabel", - get: function get() { - return this._pageLabels && this._pageLabels[this._currentPageNumber - 1]; - }, - set: function set(val) { - if (!this.pdfDocument) { - return; - } - - var page = val | 0; - - if (this._pageLabels) { - var i = this._pageLabels.indexOf(val); - - if (i >= 0) { - page = i + 1; + case _ui_utils.ScrollMode.HORIZONTAL: + { + break; } - } - if (!this._setCurrentPageNumber(page, true)) { - console.error("".concat(this._name, ".currentPageLabel: \"").concat(val, "\" is not a valid page.")); - } - } - }, { - key: "currentScale", - get: function get() { - return this._currentScale !== _ui_utils.UNKNOWN_SCALE ? this._currentScale : _ui_utils.DEFAULT_SCALE; - }, - set: function set(val) { - if (isNaN(val)) { - throw new Error('Invalid numeric scale.'); - } + case _ui_utils.ScrollMode.VERTICAL: + { + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + break; + } - if (!this.pdfDocument) { - return; - } + const parity = this._spreadMode - 1; - this._setScale(val, false); - } - }, { - key: "currentScaleValue", - get: function get() { - return this._currentScaleValue; - }, - set: function set(val) { - if (!this.pdfDocument) { - return; - } + if (previous && currentPageNumber % 2 !== parity) { + break; + } else if (!previous && currentPageNumber % 2 === parity) { + break; + } - this._setScale(val, false); - } - }, { - key: "pagesRotation", - get: function get() { - return this._pagesRotation; - }, - set: function set(rotation) { - if (!(0, _ui_utils.isValidRotation)(rotation)) { - throw new Error('Invalid pages rotation angle.'); - } + const { + views + } = this._getVisiblePages(), + expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1; - if (!this.pdfDocument) { - return; - } + for (const { + id, + percent, + widthPercent + } of views) { + if (id !== expectedId) { + continue; + } - if (this._pagesRotation === rotation) { - return; - } + if (percent > 0 && widthPercent === 100) { + return 2; + } - this._pagesRotation = rotation; - var pageNumber = this._currentPageNumber; + break; + } - for (var i = 0, ii = this._pages.length; i < ii; i++) { - var pageView = this._pages[i]; - pageView.update(pageView.scale, rotation); - } - - if (this._currentScaleValue) { - this._setScale(this._currentScaleValue, true); - } - - this.eventBus.dispatch('rotationchanging', { - source: this, - pagesRotation: rotation, - pageNumber: pageNumber - }); - - if (this.defaultRenderingQueue) { - this.update(); - } - } - }, { - key: "_setDocumentViewerElement", - get: function get() { - throw new Error('Not implemented: _setDocumentViewerElement'); - } - }, { - key: "_isScrollModeHorizontal", - get: function get() { - return this.isInPresentationMode ? false : this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL; - } - }, { - key: "isInPresentationMode", - get: function get() { - return this.presentationModeState === _ui_utils.PresentationModeState.FULLSCREEN; - } - }, { - key: "isChangingPresentationMode", - get: function get() { - return this.presentationModeState === _ui_utils.PresentationModeState.CHANGING; - } - }, { - key: "isHorizontalScrollbarEnabled", - get: function get() { - return this.isInPresentationMode ? false : this.container.scrollWidth > this.container.clientWidth; - } - }, { - key: "isVerticalScrollbarEnabled", - get: function get() { - return this.isInPresentationMode ? false : this.container.scrollHeight > this.container.clientHeight; - } - }, { - key: "hasEqualPageSizes", - get: function get() { - var firstPageView = this._pages[0]; - - for (var i = 1, ii = this._pages.length; i < ii; ++i) { - var pageView = this._pages[i]; - - if (pageView.width !== firstPageView.width || pageView.height !== firstPageView.height) { - return false; + break; } - } - - return true; } - }, { - key: "scrollMode", - get: function get() { - return this._scrollMode; - }, - set: function set(mode) { - if (this._scrollMode === mode) { - return; - } - if (!(0, _ui_utils.isValidScrollMode)(mode)) { - throw new Error("Invalid scroll mode: ".concat(mode)); - } + return 1; + } - this._scrollMode = mode; - this.eventBus.dispatch('scrollmodechanged', { - source: this, - mode: mode - }); + nextPage() { + const currentPageNumber = this._currentPageNumber, + pagesCount = this.pagesCount; - this._updateScrollMode(this._currentPageNumber); + if (currentPageNumber >= pagesCount) { + return false; } - }, { - key: "spreadMode", - get: function get() { - return this._spreadMode; - }, - set: function set(mode) { - if (this._spreadMode === mode) { - return; - } - if (!(0, _ui_utils.isValidSpreadMode)(mode)) { - throw new Error("Invalid spread mode: ".concat(mode)); - } + const advance = this._getPageAdvance(currentPageNumber, false) || 1; + this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount); + return true; + } - this._spreadMode = mode; - this.eventBus.dispatch('spreadmodechanged', { - source: this, - mode: mode - }); + previousPage() { + const currentPageNumber = this._currentPageNumber; - this._updateSpreadMode(this._currentPageNumber); + if (currentPageNumber <= 1) { + return false; } - }]); - return BaseViewer; -}(); + const advance = this._getPageAdvance(currentPageNumber, true) || 1; + this.currentPageNumber = Math.max(currentPageNumber - advance, 1); + return true; + } + +} exports.BaseViewer = BaseViewer; /***/ }), /* 29 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.DefaultAnnotationLayerFactory = exports.AnnotationLayerBuilder = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -var _ui_utils = __webpack_require__(5); +var _l10n_utils = __webpack_require__(30); -var _pdf_link_service = __webpack_require__(21); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var AnnotationLayerBuilder = -/*#__PURE__*/ -function () { - function AnnotationLayerBuilder(_ref) { - var pageDiv = _ref.pageDiv, - pdfPage = _ref.pdfPage, - linkService = _ref.linkService, - downloadManager = _ref.downloadManager, - _ref$imageResourcesPa = _ref.imageResourcesPath, - imageResourcesPath = _ref$imageResourcesPa === void 0 ? '' : _ref$imageResourcesPa, - _ref$renderInteractiv = _ref.renderInteractiveForms, - renderInteractiveForms = _ref$renderInteractiv === void 0 ? false : _ref$renderInteractiv, - _ref$l10n = _ref.l10n, - l10n = _ref$l10n === void 0 ? _ui_utils.NullL10n : _ref$l10n; - - _classCallCheck(this, AnnotationLayerBuilder); +var _pdf_link_service = __webpack_require__(19); +class AnnotationLayerBuilder { + constructor({ + pageDiv, + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderInteractiveForms = true, + l10n = _l10n_utils.NullL10n, + enableScripting = false, + hasJSActionsPromise = null, + mouseState = null + }) { this.pageDiv = pageDiv; this.pdfPage = pdfPage; this.linkService = linkService; @@ -11503,807 +11223,1050 @@ function () { this.imageResourcesPath = imageResourcesPath; this.renderInteractiveForms = renderInteractiveForms; this.l10n = l10n; + this.annotationStorage = annotationStorage; + this.enableScripting = enableScripting; + this._hasJSActionsPromise = hasJSActionsPromise; + this._mouseState = mouseState; this.div = null; this._cancelled = false; } - _createClass(AnnotationLayerBuilder, [{ - key: "render", - value: function render(viewport) { - var _this = this; - - var intent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'display'; - this.pdfPage.getAnnotations({ - intent: intent - }).then(function (annotations) { - if (_this._cancelled) { - return; - } - - var parameters = { - viewport: viewport.clone({ - dontFlip: true - }), - div: _this.div, - annotations: annotations, - page: _this.pdfPage, - imageResourcesPath: _this.imageResourcesPath, - renderInteractiveForms: _this.renderInteractiveForms, - linkService: _this.linkService, - downloadManager: _this.downloadManager - }; - - if (_this.div) { - _pdfjsLib.AnnotationLayer.update(parameters); - } else { - if (annotations.length === 0) { - return; - } - - _this.div = document.createElement('div'); - _this.div.className = 'annotationLayer'; - - _this.pageDiv.appendChild(_this.div); - - parameters.div = _this.div; - - _pdfjsLib.AnnotationLayer.render(parameters); - - _this.l10n.translate(_this.div); - } - }); - } - }, { - key: "cancel", - value: function cancel() { - this._cancelled = true; - } - }, { - key: "hide", - value: function hide() { - if (!this.div) { + render(viewport, intent = "display") { + return Promise.all([this.pdfPage.getAnnotations({ + intent + }), this._hasJSActionsPromise]).then(([annotations, hasJSActions = false]) => { + if (this._cancelled) { return; } - this.div.setAttribute('hidden', 'true'); - } - }]); + if (annotations.length === 0) { + return; + } - return AnnotationLayerBuilder; -}(); + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + annotations, + page: this.pdfPage, + imageResourcesPath: this.imageResourcesPath, + renderInteractiveForms: this.renderInteractiveForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage, + enableScripting: this.enableScripting, + hasJSActions, + mouseState: this._mouseState + }; + + if (this.div) { + _pdfjsLib.AnnotationLayer.update(parameters); + } else { + this.div = document.createElement("div"); + this.div.className = "annotationLayer"; + this.pageDiv.appendChild(this.div); + parameters.div = this.div; + + _pdfjsLib.AnnotationLayer.render(parameters); + + this.l10n.translate(this.div); + } + }); + } + + cancel() { + this._cancelled = true; + } + + hide() { + if (!this.div) { + return; + } + + this.div.hidden = true; + } + +} exports.AnnotationLayerBuilder = AnnotationLayerBuilder; -var DefaultAnnotationLayerFactory = -/*#__PURE__*/ -function () { - function DefaultAnnotationLayerFactory() { - _classCallCheck(this, DefaultAnnotationLayerFactory); +class DefaultAnnotationLayerFactory { + createAnnotationLayerBuilder(pageDiv, pdfPage, annotationStorage = null, imageResourcesPath = "", renderInteractiveForms = true, l10n = _l10n_utils.NullL10n, enableScripting = false, hasJSActionsPromise = null, mouseState = null) { + return new AnnotationLayerBuilder({ + pageDiv, + pdfPage, + imageResourcesPath, + renderInteractiveForms, + linkService: new _pdf_link_service.SimpleLinkService(), + l10n, + annotationStorage, + enableScripting, + hasJSActionsPromise, + mouseState + }); } - _createClass(DefaultAnnotationLayerFactory, [{ - key: "createAnnotationLayerBuilder", - value: function createAnnotationLayerBuilder(pageDiv, pdfPage) { - var imageResourcesPath = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : ''; - var renderInteractiveForms = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - var l10n = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : _ui_utils.NullL10n; - return new AnnotationLayerBuilder({ - pageDiv: pageDiv, - pdfPage: pdfPage, - imageResourcesPath: imageResourcesPath, - renderInteractiveForms: renderInteractiveForms, - linkService: new _pdf_link_service.SimpleLinkService(), - l10n: l10n - }); - } - }]); - - return DefaultAnnotationLayerFactory; -}(); +} exports.DefaultAnnotationLayerFactory = DefaultAnnotationLayerFactory; /***/ }), /* 30 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.getL10nFallback = getL10nFallback; +exports.NullL10n = void 0; +const DEFAULT_L10N_STRINGS = { + of_pages: "of {{pagesCount}}", + page_of_pages: "({{pageNumber}} of {{pagesCount}})", + document_properties_kb: "{{size_kb}} KB ({{size_b}} bytes)", + document_properties_mb: "{{size_mb}} MB ({{size_b}} bytes)", + document_properties_date_string: "{{date}}, {{time}}", + document_properties_page_size_unit_inches: "in", + document_properties_page_size_unit_millimeters: "mm", + document_properties_page_size_orientation_portrait: "portrait", + document_properties_page_size_orientation_landscape: "landscape", + document_properties_page_size_name_a3: "A3", + document_properties_page_size_name_a4: "A4", + document_properties_page_size_name_letter: "Letter", + document_properties_page_size_name_legal: "Legal", + document_properties_page_size_dimension_string: "{{width}} × {{height}} {{unit}} ({{orientation}})", + document_properties_page_size_dimension_name_string: "{{width}} × {{height}} {{unit}} ({{name}}, {{orientation}})", + document_properties_linearized_yes: "Yes", + document_properties_linearized_no: "No", + print_progress_percent: "{{progress}}%", + "toggle_sidebar.title": "Toggle Sidebar", + "toggle_sidebar_notification2.title": "Toggle Sidebar (document contains outline/attachments/layers)", + additional_layers: "Additional Layers", + page_landmark: "Page {{page}}", + thumb_page_title: "Page {{page}}", + thumb_page_canvas: "Thumbnail of Page {{page}}", + find_reached_top: "Reached top of document, continued from bottom", + find_reached_bottom: "Reached end of document, continued from top", + "find_match_count[one]": "{{current}} of {{total}} match", + "find_match_count[other]": "{{current}} of {{total}} matches", + "find_match_count_limit[one]": "More than {{limit}} match", + "find_match_count_limit[other]": "More than {{limit}} matches", + find_not_found: "Phrase not found", + error_version_info: "PDF.js v{{version}} (build: {{build}})", + error_message: "Message: {{message}}", + error_stack: "Stack: {{stack}}", + error_file: "File: {{file}}", + error_line: "Line: {{line}}", + rendering_error: "An error occurred while rendering the page.", + page_scale_width: "Page Width", + page_scale_fit: "Page Fit", + page_scale_auto: "Automatic Zoom", + page_scale_actual: "Actual Size", + page_scale_percent: "{{scale}}%", + loading: "Loading…", + loading_error: "An error occurred while loading the PDF.", + invalid_file_error: "Invalid or corrupted PDF file.", + missing_file_error: "Missing PDF file.", + unexpected_response_error: "Unexpected server response.", + printing_not_supported: "Warning: Printing is not fully supported by this browser.", + printing_not_ready: "Warning: The PDF is not fully loaded for printing.", + web_fonts_disabled: "Web fonts are disabled: unable to use embedded PDF fonts." +}; + +function getL10nFallback(key, args) { + switch (key) { + case "find_match_count": + key = `find_match_count[${args.total === 1 ? "one" : "other"}]`; + break; + + case "find_match_count_limit": + key = `find_match_count_limit[${args.limit === 1 ? "one" : "other"}]`; + break; + } + + return DEFAULT_L10N_STRINGS[key] || ""; +} + +function formatL10nValue(text, args) { + if (!args) { + return text; + } + + return text.replace(/\{\{\s*(\w+)\s*\}\}/g, (all, name) => { + return name in args ? args[name] : "{{" + name + "}}"; + }); +} + +const NullL10n = { + async getLanguage() { + return "en-us"; + }, + + async getDirection() { + return "ltr"; + }, + + async get(key, args = null, fallback = getL10nFallback(key, args)) { + return formatL10nValue(fallback, args); + }, + + async translate(element) {} + +}; +exports.NullL10n = NullL10n; + +/***/ }), +/* 31 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFPageView = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _ui_utils = __webpack_require__(4); -var _ui_utils = __webpack_require__(5); +var _pdfjsLib = __webpack_require__(5); -var _pdfjsLib = __webpack_require__(7); +var _l10n_utils = __webpack_require__(30); -var _pdf_rendering_queue = __webpack_require__(11); +var _pdf_rendering_queue = __webpack_require__(8); -var _viewer_compatibility = __webpack_require__(8); +var _viewer_compatibility = __webpack_require__(2); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } +const MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216; -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var MAX_CANVAS_PIXELS = _viewer_compatibility.viewerCompatibilityParams.maxCanvasPixels || 16777216; - -var PDFPageView = -/*#__PURE__*/ -function () { - function PDFPageView(options) { - _classCallCheck(this, PDFPageView); - - var container = options.container; - var defaultViewport = options.defaultViewport; +class PDFPageView { + constructor(options) { + const container = options.container; + const defaultViewport = options.defaultViewport; this.id = options.id; - this.renderingId = 'page' + this.id; + this.renderingId = "page" + this.id; this.pdfPage = null; this.pageLabel = null; this.rotation = 0; this.scale = options.scale || _ui_utils.DEFAULT_SCALE; this.viewport = defaultViewport; this.pdfPageRotate = defaultViewport.rotation; + this._optionalContentConfigPromise = options.optionalContentConfigPromise || null; this.hasRestrictedScaling = false; this.textLayerMode = Number.isInteger(options.textLayerMode) ? options.textLayerMode : _ui_utils.TextLayerMode.ENABLE; - this.imageResourcesPath = options.imageResourcesPath || ''; - this.renderInteractiveForms = options.renderInteractiveForms || false; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.renderInteractiveForms = options.renderInteractiveForms !== false; this.useOnlyCssZoom = options.useOnlyCssZoom || false; this.maxCanvasPixels = options.maxCanvasPixels || MAX_CANVAS_PIXELS; - this.eventBus = options.eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.eventBus = options.eventBus; this.renderingQueue = options.renderingQueue; this.textLayerFactory = options.textLayerFactory; this.annotationLayerFactory = options.annotationLayerFactory; + this.xfaLayerFactory = options.xfaLayerFactory; + this.structTreeLayerFactory = options.structTreeLayerFactory; this.renderer = options.renderer || _ui_utils.RendererType.CANVAS; - this.enableWebGL = options.enableWebGL || false; - this.l10n = options.l10n || _ui_utils.NullL10n; + this.l10n = options.l10n || _l10n_utils.NullL10n; this.paintTask = null; this.paintedViewportMap = new WeakMap(); this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; this.resume = null; - this.error = null; - this.onBeforeDraw = null; - this.onAfterDraw = null; + this._renderError = null; this.annotationLayer = null; this.textLayer = null; this.zoomLayer = null; - var div = document.createElement('div'); - div.className = 'page'; - div.style.width = Math.floor(this.viewport.width) + 'px'; - div.style.height = Math.floor(this.viewport.height) + 'px'; - div.setAttribute('data-page-number', this.id); + this.xfaLayer = null; + this.structTreeLayer = null; + const div = document.createElement("div"); + div.className = "page"; + div.style.width = Math.floor(this.viewport.width) + "px"; + div.style.height = Math.floor(this.viewport.height) + "px"; + div.setAttribute("data-page-number", this.id); + div.setAttribute("role", "region"); + this.l10n.get("page_landmark", { + page: this.id + }).then(msg => { + div.setAttribute("aria-label", msg); + }); this.div = div; container.appendChild(div); } - _createClass(PDFPageView, [{ - key: "setPdfPage", - value: function setPdfPage(pdfPage) { - this.pdfPage = pdfPage; - this.pdfPageRotate = pdfPage.rotate; - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = pdfPage.getViewport({ - scale: this.scale * _ui_utils.CSS_UNITS, - rotation: totalRotation + setPdfPage(pdfPage) { + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + this.reset(); + } + + destroy() { + this.reset(); + + if (this.pdfPage) { + this.pdfPage.cleanup(); + } + } + + async _renderAnnotationLayer() { + let error = null; + + try { + await this.annotationLayer.render(this.viewport, "display"); + } catch (ex) { + error = ex; + } finally { + this.eventBus.dispatch("annotationlayerrendered", { + source: this, + pageNumber: this.id, + error }); - this.stats = pdfPage.stats; - this.reset(); } - }, { - key: "destroy", - value: function destroy() { - this.reset(); + } - if (this.pdfPage) { - this.pdfPage.cleanup(); - } - } - }, { - key: "_resetZoomLayer", - value: function _resetZoomLayer() { - var removeFromDOM = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; + async _renderXfaLayer() { + let error = null; - if (!this.zoomLayer) { - return; - } - - var zoomLayerCanvas = this.zoomLayer.firstChild; - this.paintedViewportMap["delete"](zoomLayerCanvas); - zoomLayerCanvas.width = 0; - zoomLayerCanvas.height = 0; - - if (removeFromDOM) { - this.zoomLayer.remove(); - } - - this.zoomLayer = null; - } - }, { - key: "reset", - value: function reset() { - var keepZoomLayer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var keepAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - this.cancelRendering(keepAnnotations); - this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; - var div = this.div; - div.style.width = Math.floor(this.viewport.width) + 'px'; - div.style.height = Math.floor(this.viewport.height) + 'px'; - var childNodes = div.childNodes; - var currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null; - var currentAnnotationNode = keepAnnotations && this.annotationLayer && this.annotationLayer.div || null; - - for (var i = childNodes.length - 1; i >= 0; i--) { - var node = childNodes[i]; - - if (currentZoomLayerNode === node || currentAnnotationNode === node) { - continue; - } - - div.removeChild(node); - } - - div.removeAttribute('data-loaded'); - - if (currentAnnotationNode) { - this.annotationLayer.hide(); - } else if (this.annotationLayer) { - this.annotationLayer.cancel(); - this.annotationLayer = null; - } - - if (!currentZoomLayerNode) { - if (this.canvas) { - this.paintedViewportMap["delete"](this.canvas); - this.canvas.width = 0; - this.canvas.height = 0; - delete this.canvas; - } - - this._resetZoomLayer(); - } - - if (this.svg) { - this.paintedViewportMap["delete"](this.svg); - delete this.svg; - } - - this.loadingIconDiv = document.createElement('div'); - this.loadingIconDiv.className = 'loadingIcon'; - div.appendChild(this.loadingIconDiv); - } - }, { - key: "update", - value: function update(scale, rotation) { - this.scale = scale || this.scale; - - if (typeof rotation !== 'undefined') { - this.rotation = rotation; - } - - var totalRotation = (this.rotation + this.pdfPageRotate) % 360; - this.viewport = this.viewport.clone({ - scale: this.scale * _ui_utils.CSS_UNITS, - rotation: totalRotation + try { + await this.xfaLayer.render(this.viewport, "display"); + } catch (ex) { + error = ex; + } finally { + this.eventBus.dispatch("xfalayerrendered", { + source: this, + pageNumber: this.id, + error }); + } + } - if (this.svg) { - this.cssTransform(this.svg, true); - this.eventBus.dispatch('pagerendered', { + _resetZoomLayer(removeFromDOM = false) { + if (!this.zoomLayer) { + return; + } + + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.paintedViewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; + + if (removeFromDOM) { + this.zoomLayer.remove(); + } + + this.zoomLayer = null; + } + + reset(keepZoomLayer = false, keepAnnotations = false) { + this.cancelRendering(keepAnnotations); + this.renderingState = _pdf_rendering_queue.RenderingStates.INITIAL; + const div = this.div; + div.style.width = Math.floor(this.viewport.width) + "px"; + div.style.height = Math.floor(this.viewport.height) + "px"; + const childNodes = div.childNodes; + const currentZoomLayerNode = keepZoomLayer && this.zoomLayer || null; + const currentAnnotationNode = keepAnnotations && this.annotationLayer?.div || null; + const currentXfaLayerNode = this.xfaLayer?.div || null; + + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + + if (currentZoomLayerNode === node || currentAnnotationNode === node || currentXfaLayerNode === node) { + continue; + } + + div.removeChild(node); + } + + div.removeAttribute("data-loaded"); + + if (currentAnnotationNode) { + this.annotationLayer.hide(); + } else if (this.annotationLayer) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + } + + if (!currentZoomLayerNode) { + if (this.canvas) { + this.paintedViewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + + this._resetZoomLayer(); + } + + if (this.svg) { + this.paintedViewportMap.delete(this.svg); + delete this.svg; + } + + this.loadingIconDiv = document.createElement("div"); + this.loadingIconDiv.className = "loadingIcon"; + this.loadingIconDiv.setAttribute("role", "img"); + this.l10n.get("loading").then(msg => { + this.loadingIconDiv?.setAttribute("aria-label", msg); + }); + div.appendChild(this.loadingIconDiv); + } + + update(scale, rotation, optionalContentConfigPromise = null) { + this.scale = scale || this.scale; + + if (typeof rotation !== "undefined") { + this.rotation = rotation; + } + + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + } + + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * _ui_utils.CSS_UNITS, + rotation: totalRotation + }); + + if (this.svg) { + this.cssTransform(this.svg, true); + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this._renderError + }); + return; + } + + let isScalingRestricted = false; + + if (this.canvas && this.maxCanvasPixels > 0) { + const outputScale = this.outputScale; + + if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { + isScalingRestricted = true; + } + } + + if (this.canvas) { + if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { + this.cssTransform(this.canvas, true); + this.eventBus.dispatch("pagerendered", { source: this, pageNumber: this.id, - cssTransform: true + cssTransform: true, + timestamp: performance.now(), + error: this._renderError }); return; } - var isScalingRestricted = false; + if (!this.zoomLayer && !this.canvas.hidden) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } - if (this.canvas && this.maxCanvasPixels > 0) { - var outputScale = this.outputScale; + if (this.zoomLayer) { + this.cssTransform(this.zoomLayer.firstChild); + } - if ((Math.floor(this.viewport.width) * outputScale.sx | 0) * (Math.floor(this.viewport.height) * outputScale.sy | 0) > this.maxCanvasPixels) { - isScalingRestricted = true; - } + this.reset(true, true); + } + + cancelRendering(keepAnnotations = false) { + if (this.paintTask) { + this.paintTask.cancel(); + this.paintTask = null; + } + + this.resume = null; + + if (this.textLayer) { + this.textLayer.cancel(); + this.textLayer = null; + } + + if (!keepAnnotations && this.annotationLayer) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + } + + if (this._onTextLayerRendered) { + this.eventBus._off("textlayerrendered", this._onTextLayerRendered); + + this._onTextLayerRendered = null; + } + } + + cssTransform(target, redrawAnnotations = false) { + const width = this.viewport.width; + const height = this.viewport.height; + const div = this.div; + target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + "px"; + target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + "px"; + const relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + + if (absRotation === 90 || absRotation === 270) { + scaleX = height / width; + scaleY = width / height; + } + + target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; + + if (this.textLayer) { + const textLayerViewport = this.textLayer.viewport; + const textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; + const textAbsRotation = Math.abs(textRelativeRotation); + let scale = width / textLayerViewport.width; + + if (textAbsRotation === 90 || textAbsRotation === 270) { + scale = width / textLayerViewport.height; } - if (this.canvas) { - if (this.useOnlyCssZoom || this.hasRestrictedScaling && isScalingRestricted) { - this.cssTransform(this.canvas, true); - this.eventBus.dispatch('pagerendered', { - source: this, - pageNumber: this.id, - cssTransform: true - }); + const textLayerDiv = this.textLayer.textLayerDiv; + let transX, transY; + + switch (textAbsRotation) { + case 0: + transX = transY = 0; + break; + + case 90: + transX = 0; + transY = "-" + textLayerDiv.style.height; + break; + + case 180: + transX = "-" + textLayerDiv.style.width; + transY = "-" + textLayerDiv.style.height; + break; + + case 270: + transX = "-" + textLayerDiv.style.width; + transY = 0; + break; + + default: + console.error("Bad rotation value."); + break; + } + + textLayerDiv.style.transform = `rotate(${textAbsRotation}deg) ` + `scale(${scale}) ` + `translate(${transX}, ${transY})`; + textLayerDiv.style.transformOrigin = "0% 0%"; + } + + if (redrawAnnotations && this.annotationLayer) { + this._renderAnnotationLayer(); + } + + if (this.xfaLayer) { + this._renderXfaLayer(); + } + } + + get width() { + return this.viewport.width; + } + + get height() { + return this.viewport.height; + } + + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + + draw() { + if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); + } + + const { + div, + pdfPage + } = this; + + if (!pdfPage) { + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + if (this.loadingIconDiv) { + div.removeChild(this.loadingIconDiv); + delete this.loadingIconDiv; + } + + return Promise.reject(new Error("pdfPage is not loaded")); + } + + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.style.width = div.style.width; + canvasWrapper.style.height = div.style.height; + canvasWrapper.classList.add("canvasWrapper"); + + if (this.annotationLayer?.div) { + div.insertBefore(canvasWrapper, this.annotationLayer.div); + } else { + div.appendChild(canvasWrapper); + } + + let textLayer = null; + + if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { + const textLayerDiv = document.createElement("div"); + textLayerDiv.className = "textLayer"; + textLayerDiv.style.width = canvasWrapper.style.width; + textLayerDiv.style.height = canvasWrapper.style.height; + + if (this.annotationLayer?.div) { + div.insertBefore(textLayerDiv, this.annotationLayer.div); + } else { + div.appendChild(textLayerDiv); + } + + textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE, this.eventBus); + } + + this.textLayer = textLayer; + let renderContinueCallback = null; + + if (this.renderingQueue) { + renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; + + this.resume = () => { + this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; + cont(); + }; + return; } - if (!this.zoomLayer && !this.canvas.hasAttribute('hidden')) { - this.zoomLayer = this.canvas.parentNode; - this.zoomLayer.style.position = 'absolute'; - } - } - - if (this.zoomLayer) { - this.cssTransform(this.zoomLayer.firstChild); - } - - this.reset(true, true); + cont(); + }; } - }, { - key: "cancelRendering", - value: function cancelRendering() { - var keepAnnotations = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (this.paintTask) { - this.paintTask.cancel(); + const finishPaintTask = async (error = null) => { + if (paintTask === this.paintTask) { this.paintTask = null; } - this.resume = null; - - if (this.textLayer) { - this.textLayer.cancel(); - this.textLayer = null; + if (error instanceof _pdfjsLib.RenderingCancelledException) { + this._renderError = null; + return; } - if (!keepAnnotations && this.annotationLayer) { - this.annotationLayer.cancel(); - this.annotationLayer = null; + this._renderError = error; + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + + if (this.loadingIconDiv) { + div.removeChild(this.loadingIconDiv); + delete this.loadingIconDiv; } + + this._resetZoomLayer(true); + + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: false, + timestamp: performance.now(), + error: this._renderError + }); + + if (error) { + throw error; + } + }; + + const paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); + paintTask.onRenderContinue = renderContinueCallback; + this.paintTask = paintTask; + const resultPromise = paintTask.promise.then(() => { + return finishPaintTask(null).then(() => { + if (textLayer) { + const readableStream = pdfPage.streamTextContent({ + normalizeWhitespace: true, + includeMarkedContent: true + }); + textLayer.setTextContentStream(readableStream); + textLayer.render(); + } + }); + }, function (reason) { + return finishPaintTask(reason); + }); + + if (this.annotationLayerFactory) { + if (!this.annotationLayer) { + this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, null, this.imageResourcesPath, this.renderInteractiveForms, this.l10n, null, null, null); + } + + this._renderAnnotationLayer(); } - }, { - key: "cssTransform", - value: function cssTransform(target) { - var redrawAnnotations = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; - var width = this.viewport.width; - var height = this.viewport.height; - var div = this.div; - target.style.width = target.parentNode.style.width = div.style.width = Math.floor(width) + 'px'; - target.style.height = target.parentNode.style.height = div.style.height = Math.floor(height) + 'px'; - var relativeRotation = this.viewport.rotation - this.paintedViewportMap.get(target).rotation; - var absRotation = Math.abs(relativeRotation); - var scaleX = 1, - scaleY = 1; - if (absRotation === 90 || absRotation === 270) { - scaleX = height / width; - scaleY = width / height; + if (this.xfaLayerFactory) { + if (!this.xfaLayer) { + this.xfaLayer = this.xfaLayerFactory.createXfaLayerBuilder(div, pdfPage, null); } - var cssTransform = 'rotate(' + relativeRotation + 'deg) ' + 'scale(' + scaleX + ',' + scaleY + ')'; - target.style.transform = cssTransform; + this._renderXfaLayer(); + } - if (this.textLayer) { - var textLayerViewport = this.textLayer.viewport; - var textRelativeRotation = this.viewport.rotation - textLayerViewport.rotation; - var textAbsRotation = Math.abs(textRelativeRotation); - var scale = width / textLayerViewport.width; - - if (textAbsRotation === 90 || textAbsRotation === 270) { - scale = width / textLayerViewport.height; + if (this.structTreeLayerFactory && this.textLayer && this.canvas) { + this._onTextLayerRendered = event => { + if (event.pageNumber !== this.id) { + return; } - var textLayerDiv = this.textLayer.textLayerDiv; - var transX, transY; + this.eventBus._off("textlayerrendered", this._onTextLayerRendered); - switch (textAbsRotation) { - case 0: - transX = transY = 0; - break; + this._onTextLayerRendered = null; - case 90: - transX = 0; - transY = '-' + textLayerDiv.style.height; - break; - - case 180: - transX = '-' + textLayerDiv.style.width; - transY = '-' + textLayerDiv.style.height; - break; - - case 270: - transX = '-' + textLayerDiv.style.width; - transY = 0; - break; - - default: - console.error('Bad rotation value.'); - break; + if (!this.canvas) { + return; } - textLayerDiv.style.transform = 'rotate(' + textAbsRotation + 'deg) ' + 'scale(' + scale + ', ' + scale + ') ' + 'translate(' + transX + ', ' + transY + ')'; - textLayerDiv.style.transformOrigin = '0% 0%'; - } - - if (redrawAnnotations && this.annotationLayer) { - this.annotationLayer.render(this.viewport, 'display'); - } - } - }, { - key: "getPagePoint", - value: function getPagePoint(x, y) { - return this.viewport.convertToPdfPoint(x, y); - } - }, { - key: "draw", - value: function draw() { - var _this = this; - - if (this.renderingState !== _pdf_rendering_queue.RenderingStates.INITIAL) { - console.error('Must be in new state before drawing'); - this.reset(); - } - - if (!this.pdfPage) { - this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - return Promise.reject(new Error('Page is not loaded')); - } - - this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - var pdfPage = this.pdfPage; - var div = this.div; - var canvasWrapper = document.createElement('div'); - canvasWrapper.style.width = div.style.width; - canvasWrapper.style.height = div.style.height; - canvasWrapper.classList.add('canvasWrapper'); - - if (this.annotationLayer && this.annotationLayer.div) { - div.insertBefore(canvasWrapper, this.annotationLayer.div); - } else { - div.appendChild(canvasWrapper); - } - - var textLayer = null; - - if (this.textLayerMode !== _ui_utils.TextLayerMode.DISABLE && this.textLayerFactory) { - var textLayerDiv = document.createElement('div'); - textLayerDiv.className = 'textLayer'; - textLayerDiv.style.width = canvasWrapper.style.width; - textLayerDiv.style.height = canvasWrapper.style.height; - - if (this.annotationLayer && this.annotationLayer.div) { - div.insertBefore(textLayerDiv, this.annotationLayer.div); - } else { - div.appendChild(textLayerDiv); - } - - textLayer = this.textLayerFactory.createTextLayerBuilder(textLayerDiv, this.id - 1, this.viewport, this.textLayerMode === _ui_utils.TextLayerMode.ENABLE_ENHANCE); - } - - this.textLayer = textLayer; - var renderContinueCallback = null; - - if (this.renderingQueue) { - renderContinueCallback = function renderContinueCallback(cont) { - if (!_this.renderingQueue.isHighestPriority(_this)) { - _this.renderingState = _pdf_rendering_queue.RenderingStates.PAUSED; - - _this.resume = function () { - _this.renderingState = _pdf_rendering_queue.RenderingStates.RUNNING; - cont(); - }; - + this.pdfPage.getStructTree().then(tree => { + if (!tree) { return; } - cont(); - }; - } - - var finishPaintTask = - /*#__PURE__*/ - function () { - var _ref = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(error) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - if (paintTask === _this.paintTask) { - _this.paintTask = null; - } - - if (!(error instanceof _pdfjsLib.RenderingCancelledException)) { - _context.next = 4; - break; - } - - _this.error = null; - return _context.abrupt("return"); - - case 4: - _this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - - if (_this.loadingIconDiv) { - div.removeChild(_this.loadingIconDiv); - delete _this.loadingIconDiv; - } - - _this._resetZoomLayer(true); - - _this.error = error; - _this.stats = pdfPage.stats; - - if (_this.onAfterDraw) { - _this.onAfterDraw(); - } - - _this.eventBus.dispatch('pagerendered', { - source: _this, - pageNumber: _this.id, - cssTransform: false - }); - - if (!error) { - _context.next = 13; - break; - } - - throw error; - - case 13: - case "end": - return _context.stop(); - } - } - }, _callee); - })); - - return function finishPaintTask(_x) { - return _ref.apply(this, arguments); - }; - }(); - - var paintTask = this.renderer === _ui_utils.RendererType.SVG ? this.paintOnSvg(canvasWrapper) : this.paintOnCanvas(canvasWrapper); - paintTask.onRenderContinue = renderContinueCallback; - this.paintTask = paintTask; - var resultPromise = paintTask.promise.then(function () { - return finishPaintTask(null).then(function () { - if (textLayer) { - var readableStream = pdfPage.streamTextContent({ - normalizeWhitespace: true - }); - textLayer.setTextContentStream(readableStream); - textLayer.render(); + if (!this.canvas) { + return; } + + const treeDom = this.structTreeLayer.render(tree); + treeDom.classList.add("structTree"); + this.canvas.appendChild(treeDom); }); - }, function (reason) { - return finishPaintTask(reason); - }); + }; - if (this.annotationLayerFactory) { - if (!this.annotationLayer) { - this.annotationLayer = this.annotationLayerFactory.createAnnotationLayerBuilder(div, pdfPage, this.imageResourcesPath, this.renderInteractiveForms, this.l10n); - } + this.eventBus._on("textlayerrendered", this._onTextLayerRendered); - this.annotationLayer.render(this.viewport, 'display'); - } - - div.setAttribute('data-loaded', true); - - if (this.onBeforeDraw) { - this.onBeforeDraw(); - } - - return resultPromise; + this.structTreeLayer = this.structTreeLayerFactory.createStructTreeLayerBuilder(pdfPage); } - }, { - key: "paintOnCanvas", - value: function paintOnCanvas(canvasWrapper) { - var renderCapability = (0, _pdfjsLib.createPromiseCapability)(); - var result = { - promise: renderCapability.promise, - onRenderContinue: function onRenderContinue(cont) { - cont(); - }, - cancel: function cancel() { - renderTask.cancel(); - } - }; - var viewport = this.viewport; - var canvas = document.createElement('canvas'); - canvas.id = this.renderingId; - canvas.setAttribute('hidden', 'hidden'); - var isCanvasHidden = true; - var showCanvas = function showCanvas() { - if (isCanvasHidden) { - canvas.removeAttribute('hidden'); - isCanvasHidden = false; - } - }; + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } - canvasWrapper.appendChild(canvas); - this.canvas = canvas; - canvas.mozOpaque = true; - var ctx = canvas.getContext('2d', { - alpha: false - }); - var outputScale = (0, _ui_utils.getOutputScale)(ctx); - this.outputScale = outputScale; + paintOnCanvas(canvasWrapper) { + const renderCapability = (0, _pdfjsLib.createPromiseCapability)(); + const result = { + promise: renderCapability.promise, - if (this.useOnlyCssZoom) { - var actualSizeViewport = viewport.clone({ - scale: _ui_utils.CSS_UNITS - }); - outputScale.sx *= actualSizeViewport.width / viewport.width; - outputScale.sy *= actualSizeViewport.height / viewport.height; - outputScale.scaled = true; + onRenderContinue(cont) { + cont(); + }, + + cancel() { + renderTask.cancel(); } - if (this.maxCanvasPixels > 0) { - var pixelsInViewport = viewport.width * viewport.height; - var maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + }; + const viewport = this.viewport; + const canvas = document.createElement("canvas"); + canvas.hidden = true; + let isCanvasHidden = true; - if (outputScale.sx > maxScale || outputScale.sy > maxScale) { - outputScale.sx = maxScale; - outputScale.sy = maxScale; - outputScale.scaled = true; - this.hasRestrictedScaling = true; - } else { - this.hasRestrictedScaling = false; - } + const showCanvas = function () { + if (isCanvasHidden) { + canvas.hidden = false; + isCanvasHidden = false; } + }; - var sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); - var sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); - canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); - canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); - canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + 'px'; - canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + 'px'; - this.paintedViewportMap.set(canvas, viewport); - var transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0]; - var renderContext = { - canvasContext: ctx, - transform: transform, - viewport: this.viewport, - enableWebGL: this.enableWebGL, - renderInteractiveForms: this.renderInteractiveForms - }; - var renderTask = this.pdfPage.render(renderContext); + canvasWrapper.appendChild(canvas); + this.canvas = canvas; + canvas.mozOpaque = true; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = (0, _ui_utils.getOutputScale)(ctx); + this.outputScale = outputScale; - renderTask.onContinue = function (cont) { - showCanvas(); - - if (result.onRenderContinue) { - result.onRenderContinue(cont); - } else { - cont(); - } - }; - - renderTask.promise.then(function () { - showCanvas(); - renderCapability.resolve(undefined); - }, function (error) { - showCanvas(); - renderCapability.reject(error); - }); - return result; - } - }, { - key: "paintOnSvg", - value: function paintOnSvg(wrapper) { - var _this2 = this; - - var cancelled = false; - - var ensureNotCancelled = function ensureNotCancelled() { - if (cancelled) { - throw new _pdfjsLib.RenderingCancelledException('Rendering cancelled, page ' + _this2.id, 'svg'); - } - }; - - var pdfPage = this.pdfPage; - var actualSizeViewport = this.viewport.clone({ + if (this.useOnlyCssZoom) { + const actualSizeViewport = viewport.clone({ scale: _ui_utils.CSS_UNITS }); - var promise = pdfPage.getOperatorList().then(function (opList) { - ensureNotCancelled(); - var svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs); - return svgGfx.getSVG(opList, actualSizeViewport).then(function (svg) { - ensureNotCancelled(); - _this2.svg = svg; - - _this2.paintedViewportMap.set(svg, actualSizeViewport); - - svg.style.width = wrapper.style.width; - svg.style.height = wrapper.style.height; - _this2.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; - wrapper.appendChild(svg); - }); - }); - return { - promise: promise, - onRenderContinue: function onRenderContinue(cont) { - cont(); - }, - cancel: function cancel() { - cancelled = true; - } - }; + outputScale.sx *= actualSizeViewport.width / viewport.width; + outputScale.sy *= actualSizeViewport.height / viewport.height; + outputScale.scaled = true; } - }, { - key: "setPageLabel", - value: function setPageLabel(label) { - this.pageLabel = typeof label === 'string' ? label : null; - if (this.pageLabel !== null) { - this.div.setAttribute('data-page-label', this.pageLabel); + if (this.maxCanvasPixels > 0) { + const pixelsInViewport = viewport.width * viewport.height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + outputScale.scaled = true; + this.hasRestrictedScaling = true; } else { - this.div.removeAttribute('data-page-label'); + this.hasRestrictedScaling = false; } } - }, { - key: "width", - get: function get() { - return this.viewport.width; - } - }, { - key: "height", - get: function get() { - return this.viewport.height; - } - }]); - return PDFPageView; -}(); + const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); + const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); + canvas.width = (0, _ui_utils.roundToDivide)(viewport.width * outputScale.sx, sfx[0]); + canvas.height = (0, _ui_utils.roundToDivide)(viewport.height * outputScale.sy, sfy[0]); + canvas.style.width = (0, _ui_utils.roundToDivide)(viewport.width, sfx[1]) + "px"; + canvas.style.height = (0, _ui_utils.roundToDivide)(viewport.height, sfy[1]) + "px"; + this.paintedViewportMap.set(canvas, viewport); + const transform = !outputScale.scaled ? null : [outputScale.sx, 0, 0, outputScale.sy, 0, 0]; + const renderContext = { + canvasContext: ctx, + transform, + viewport: this.viewport, + renderInteractiveForms: this.renderInteractiveForms, + optionalContentConfigPromise: this._optionalContentConfigPromise + }; + const renderTask = this.pdfPage.render(renderContext); + + renderTask.onContinue = function (cont) { + showCanvas(); + + if (result.onRenderContinue) { + result.onRenderContinue(cont); + } else { + cont(); + } + }; + + renderTask.promise.then(function () { + showCanvas(); + renderCapability.resolve(undefined); + }, function (error) { + showCanvas(); + renderCapability.reject(error); + }); + return result; + } + + paintOnSvg(wrapper) { + let cancelled = false; + + const ensureNotCancelled = () => { + if (cancelled) { + throw new _pdfjsLib.RenderingCancelledException(`Rendering cancelled, page ${this.id}`, "svg"); + } + }; + + const pdfPage = this.pdfPage; + const actualSizeViewport = this.viewport.clone({ + scale: _ui_utils.CSS_UNITS + }); + const promise = pdfPage.getOperatorList().then(opList => { + ensureNotCancelled(); + const svgGfx = new _pdfjsLib.SVGGraphics(pdfPage.commonObjs, pdfPage.objs, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL); + return svgGfx.getSVG(opList, actualSizeViewport).then(svg => { + ensureNotCancelled(); + this.svg = svg; + this.paintedViewportMap.set(svg, actualSizeViewport); + svg.style.width = wrapper.style.width; + svg.style.height = wrapper.style.height; + this.renderingState = _pdf_rendering_queue.RenderingStates.FINISHED; + wrapper.appendChild(svg); + }); + }); + return { + promise, + + onRenderContinue(cont) { + cont(); + }, + + cancel() { + cancelled = true; + } + + }; + } + + setPageLabel(label) { + this.pageLabel = typeof label === "string" ? label : null; + + if (this.pageLabel !== null) { + this.div.setAttribute("data-page-label", this.pageLabel); + } else { + this.div.removeAttribute("data-page-label"); + } + } + +} exports.PDFPageView = PDFPageView; /***/ }), -/* 31 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 32 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); -exports.DefaultTextLayerFactory = exports.TextLayerBuilder = void 0; +})); +exports.StructTreeLayerBuilder = exports.DefaultStructTreeLayerFactory = void 0; +const PDF_ROLE_TO_HTML_ROLE = { + Document: null, + DocumentFragment: null, + Part: "group", + Sect: "group", + Div: "group", + Aside: "note", + NonStruct: "none", + P: null, + H: "heading", + Title: null, + FENote: "note", + Sub: "group", + Lbl: null, + Span: null, + Em: null, + Strong: null, + Link: "link", + Annot: "note", + Form: "form", + Ruby: null, + RB: null, + RT: null, + RP: null, + Warichu: null, + WT: null, + WP: null, + L: "list", + LI: "listitem", + LBody: null, + Table: "table", + TR: "row", + TH: "columnheader", + TD: "cell", + THead: "columnheader", + TBody: null, + TFoot: null, + Caption: null, + Figure: "figure", + Formula: null, + Artifact: null +}; +const HEADING_PATTERN = /^H(\d+)$/; -var _ui_utils = __webpack_require__(5); +class StructTreeLayerBuilder { + constructor({ + pdfPage + }) { + this.pdfPage = pdfPage; + } -var _pdfjsLib = __webpack_require__(7); + render(structTree) { + return this._walk(structTree); + } -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + _setAttributes(structElement, htmlElement) { + if (structElement.alt !== undefined) { + htmlElement.setAttribute("aria-label", structElement.alt); + } -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); } } + if (structElement.id !== undefined) { + htmlElement.setAttribute("aria-owns", structElement.id); + } + } -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } + _walk(node) { + if (!node) { + return null; + } -var EXPAND_DIVS_TIMEOUT = 300; + const element = document.createElement("span"); -var TextLayerBuilder = -/*#__PURE__*/ -function () { - function TextLayerBuilder(_ref) { - var textLayerDiv = _ref.textLayerDiv, - eventBus = _ref.eventBus, - pageIndex = _ref.pageIndex, - viewport = _ref.viewport, - _ref$findController = _ref.findController, - findController = _ref$findController === void 0 ? null : _ref$findController, - _ref$enhanceTextSelec = _ref.enhanceTextSelection, - enhanceTextSelection = _ref$enhanceTextSelec === void 0 ? false : _ref$enhanceTextSelec; + if ("role" in node) { + const { + role + } = node; + const match = role.match(HEADING_PATTERN); - _classCallCheck(this, TextLayerBuilder); + if (match) { + element.setAttribute("role", "heading"); + element.setAttribute("aria-level", match[1]); + } else if (PDF_ROLE_TO_HTML_ROLE[role]) { + element.setAttribute("role", PDF_ROLE_TO_HTML_ROLE[role]); + } + } + this._setAttributes(node, element); + + if (node.children) { + if (node.children.length === 1 && "id" in node.children[0]) { + this._setAttributes(node.children[0], element); + } else { + for (const kid of node.children) { + element.appendChild(this._walk(kid)); + } + } + } + + return element; + } + +} + +exports.StructTreeLayerBuilder = StructTreeLayerBuilder; + +class DefaultStructTreeLayerFactory { + createStructTreeLayerBuilder(pdfPage) { + return new StructTreeLayerBuilder({ + pdfPage + }); + } + +} + +exports.DefaultStructTreeLayerFactory = DefaultStructTreeLayerFactory; + +/***/ }), +/* 33 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextLayerBuilder = exports.DefaultTextLayerFactory = void 0; + +var _pdfjsLib = __webpack_require__(5); + +const EXPAND_DIVS_TIMEOUT = 300; + +class TextLayerBuilder { + constructor({ + textLayerDiv, + eventBus, + pageIndex, + viewport, + findController = null, + enhanceTextSelection = false + }) { this.textLayerDiv = textLayerDiv; - this.eventBus = eventBus || (0, _ui_utils.getGlobalEventBus)(); + this.eventBus = eventBus; this.textContent = null; this.textContentItemsStr = []; this.textContentStream = null; @@ -12321,417 +12284,461 @@ function () { this._bindMouse(); } - _createClass(TextLayerBuilder, [{ - key: "_finishRendering", - value: function _finishRendering() { - this.renderingDone = true; + _finishRendering() { + this.renderingDone = true; - if (!this.enhanceTextSelection) { - var endOfContent = document.createElement('div'); - endOfContent.className = 'endOfContent'; - this.textLayerDiv.appendChild(endOfContent); - } - - this.eventBus.dispatch('textlayerrendered', { - source: this, - pageNumber: this.pageNumber, - numTextDivs: this.textDivs.length - }); + if (!this.enhanceTextSelection) { + const endOfContent = document.createElement("div"); + endOfContent.className = "endOfContent"; + this.textLayerDiv.appendChild(endOfContent); } - }, { - key: "render", - value: function render() { - var _this = this; - var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0; + this.eventBus.dispatch("textlayerrendered", { + source: this, + pageNumber: this.pageNumber, + numTextDivs: this.textDivs.length + }); + } - if (!(this.textContent || this.textContentStream) || this.renderingDone) { - return; - } - - this.cancel(); - this.textDivs = []; - var textLayerFrag = document.createDocumentFragment(); - this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ - textContent: this.textContent, - textContentStream: this.textContentStream, - container: textLayerFrag, - viewport: this.viewport, - textDivs: this.textDivs, - textContentItemsStr: this.textContentItemsStr, - timeout: timeout, - enhanceTextSelection: this.enhanceTextSelection - }); - this.textLayerRenderTask.promise.then(function () { - _this.textLayerDiv.appendChild(textLayerFrag); - - _this._finishRendering(); - - _this._updateMatches(); - }, function (reason) {}); - - if (!this._onUpdateTextLayerMatches) { - this._onUpdateTextLayerMatches = function (evt) { - if (evt.pageIndex === _this.pageIdx || evt.pageIndex === -1) { - _this._updateMatches(); - } - }; - - this.eventBus.on('updatetextlayermatches', this._onUpdateTextLayerMatches); - } + render(timeout = 0) { + if (!(this.textContent || this.textContentStream) || this.renderingDone) { + return; } - }, { - key: "cancel", - value: function cancel() { - if (this.textLayerRenderTask) { - this.textLayerRenderTask.cancel(); - this.textLayerRenderTask = null; - } - if (this._onUpdateTextLayerMatches) { - this.eventBus.off('updatetextlayermatches', this._onUpdateTextLayerMatches); - this._onUpdateTextLayerMatches = null; - } - } - }, { - key: "setTextContentStream", - value: function setTextContentStream(readableStream) { - this.cancel(); - this.textContentStream = readableStream; - } - }, { - key: "setTextContent", - value: function setTextContent(textContent) { - this.cancel(); - this.textContent = textContent; - } - }, { - key: "_convertMatches", - value: function _convertMatches(matches, matchesLength) { - if (!matches) { - return []; - } + this.cancel(); + this.textDivs = []; + const textLayerFrag = document.createDocumentFragment(); + this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ + textContent: this.textContent, + textContentStream: this.textContentStream, + container: textLayerFrag, + viewport: this.viewport, + textDivs: this.textDivs, + textContentItemsStr: this.textContentItemsStr, + timeout, + enhanceTextSelection: this.enhanceTextSelection + }); + this.textLayerRenderTask.promise.then(() => { + this.textLayerDiv.appendChild(textLayerFrag); - var findController = this.findController, - textContentItemsStr = this.textContentItemsStr; - var i = 0, - iIndex = 0; - var end = textContentItemsStr.length - 1; - var queryLen = findController.state.query.length; - var result = []; + this._finishRendering(); - for (var m = 0, mm = matches.length; m < mm; m++) { - var matchIdx = matches[m]; + this._updateMatches(); + }, function (reason) {}); - while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; + if (!this._onUpdateTextLayerMatches) { + this._onUpdateTextLayerMatches = evt => { + if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { + this._updateMatches(); } - - if (i === textContentItemsStr.length) { - console.error('Could not find a matching mapping'); - } - - var match = { - begin: { - divIdx: i, - offset: matchIdx - iIndex - } - }; - - if (matchesLength) { - matchIdx += matchesLength[m]; - } else { - matchIdx += queryLen; - } - - while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { - iIndex += textContentItemsStr[i].length; - i++; - } - - match.end = { - divIdx: i, - offset: matchIdx - iIndex - }; - result.push(match); - } - - return result; - } - }, { - key: "_renderMatches", - value: function _renderMatches(matches) { - if (matches.length === 0) { - return; - } - - var findController = this.findController, - pageIdx = this.pageIdx, - textContentItemsStr = this.textContentItemsStr, - textDivs = this.textDivs; - var isSelectedPage = pageIdx === findController.selected.pageIdx; - var selectedMatchIdx = findController.selected.matchIdx; - var highlightAll = findController.state.highlightAll; - var prevEnd = null; - var infinity = { - divIdx: -1, - offset: undefined }; - function beginText(begin, className) { - var divIdx = begin.divIdx; - textDivs[divIdx].textContent = ''; - appendTextToDiv(divIdx, 0, begin.offset, className); + this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches); + } + } + + cancel() { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.cancel(); + this.textLayerRenderTask = null; + } + + if (this._onUpdateTextLayerMatches) { + this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); + + this._onUpdateTextLayerMatches = null; + } + } + + setTextContentStream(readableStream) { + this.cancel(); + this.textContentStream = readableStream; + } + + setTextContent(textContent) { + this.cancel(); + this.textContent = textContent; + } + + _convertMatches(matches, matchesLength) { + if (!matches) { + return []; + } + + const { + textContentItemsStr + } = this; + let i = 0, + iIndex = 0; + const end = textContentItemsStr.length - 1; + const result = []; + + for (let m = 0, mm = matches.length; m < mm; m++) { + let matchIdx = matches[m]; + + while (i !== end && matchIdx >= iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; } - function appendTextToDiv(divIdx, fromOffset, toOffset, className) { - var div = textDivs[divIdx]; - var content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); - var node = document.createTextNode(content); + if (i === textContentItemsStr.length) { + console.error("Could not find a matching mapping"); + } - if (className) { - var span = document.createElement('span'); - span.className = className; - span.appendChild(node); - div.appendChild(span); - return; + const match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex } + }; + matchIdx += matchesLength[m]; - div.appendChild(node); + while (i !== end && matchIdx > iIndex + textContentItemsStr[i].length) { + iIndex += textContentItemsStr[i].length; + i++; } - var i0 = selectedMatchIdx, - i1 = i0 + 1; + match.end = { + divIdx: i, + offset: matchIdx - iIndex + }; + result.push(match); + } - if (highlightAll) { - i0 = 0; - i1 = matches.length; - } else if (!isSelectedPage) { + return result; + } + + _renderMatches(matches) { + if (matches.length === 0) { + return; + } + + const { + findController, + pageIdx, + textContentItemsStr, + textDivs + } = this; + const isSelectedPage = pageIdx === findController.selected.pageIdx; + const selectedMatchIdx = findController.selected.matchIdx; + const highlightAll = findController.state.highlightAll; + let prevEnd = null; + const infinity = { + divIdx: -1, + offset: undefined + }; + + function beginText(begin, className) { + const divIdx = begin.divIdx; + textDivs[divIdx].textContent = ""; + appendTextToDiv(divIdx, 0, begin.offset, className); + } + + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + const div = textDivs[divIdx]; + const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + const node = document.createTextNode(content); + + if (className) { + const span = document.createElement("span"); + span.className = className; + span.appendChild(node); + div.appendChild(span); return; } - for (var i = i0; i < i1; i++) { - var match = matches[i]; - var begin = match.begin; - var end = match.end; - var isSelected = isSelectedPage && i === selectedMatchIdx; - var highlightSuffix = isSelected ? ' selected' : ''; - - if (isSelected) { - findController.scrollMatchIntoView({ - element: textDivs[begin.divIdx], - pageIndex: pageIdx, - matchIndex: selectedMatchIdx - }); - } - - if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { - if (prevEnd !== null) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } - - beginText(begin); - } else { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); - } - - if (begin.divIdx === end.divIdx) { - appendTextToDiv(begin.divIdx, begin.offset, end.offset, 'highlight' + highlightSuffix); - } else { - appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, 'highlight begin' + highlightSuffix); - - for (var n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { - textDivs[n0].className = 'highlight middle' + highlightSuffix; - } - - beginText(end, 'highlight end' + highlightSuffix); - } - - prevEnd = end; - } - - if (prevEnd) { - appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); - } + div.appendChild(node); } - }, { - key: "_updateMatches", - value: function _updateMatches() { - if (!this.renderingDone) { + + let i0 = selectedMatchIdx, + i1 = i0 + 1; + + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + + for (let i = i0; i < i1; i++) { + const match = matches[i]; + const begin = match.begin; + const end = match.end; + const isSelected = isSelectedPage && i === selectedMatchIdx; + const highlightSuffix = isSelected ? " selected" : ""; + + if (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + + if (!prevEnd || begin.divIdx !== prevEnd.divIdx) { + if (prevEnd !== null) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + + beginText(begin); + } else { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, begin.offset); + } + + if (begin.divIdx === end.divIdx) { + appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); + } else { + appendTextToDiv(begin.divIdx, begin.offset, infinity.offset, "highlight begin" + highlightSuffix); + + for (let n0 = begin.divIdx + 1, n1 = end.divIdx; n0 < n1; n0++) { + textDivs[n0].className = "highlight middle" + highlightSuffix; + } + + beginText(end, "highlight end" + highlightSuffix); + } + + prevEnd = end; + } + + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + + _updateMatches() { + if (!this.renderingDone) { + return; + } + + const { + findController, + matches, + pageIdx, + textContentItemsStr, + textDivs + } = this; + let clearedUntilDivIdx = -1; + + for (let i = 0, ii = matches.length; i < ii; i++) { + const match = matches[i]; + const begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); + + for (let n = begin, end = match.end.divIdx; n <= end; n++) { + const div = textDivs[n]; + div.textContent = textContentItemsStr[n]; + div.className = ""; + } + + clearedUntilDivIdx = match.end.divIdx + 1; + } + + if (!findController?.highlightMatches) { + return; + } + + const pageMatches = findController.pageMatches[pageIdx] || null; + const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + + this._renderMatches(this.matches); + } + + _bindMouse() { + const div = this.textLayerDiv; + let expandDivsTimer = null; + div.addEventListener("mousedown", evt => { + if (this.enhanceTextSelection && this.textLayerRenderTask) { + this.textLayerRenderTask.expandTextDivs(true); + + if (expandDivsTimer) { + clearTimeout(expandDivsTimer); + expandDivsTimer = null; + } + return; } - var findController = this.findController, - matches = this.matches, - pageIdx = this.pageIdx, - textContentItemsStr = this.textContentItemsStr, - textDivs = this.textDivs; - var clearedUntilDivIdx = -1; + const end = div.querySelector(".endOfContent"); - for (var i = 0, ii = matches.length; i < ii; i++) { - var match = matches[i]; - var begin = Math.max(clearedUntilDivIdx, match.begin.divIdx); - - for (var n = begin, end = match.end.divIdx; n <= end; n++) { - var div = textDivs[n]; - div.textContent = textContentItemsStr[n]; - div.className = ''; - } - - clearedUntilDivIdx = match.end.divIdx + 1; - } - - if (!findController || !findController.highlightMatches) { + if (!end) { return; } - var pageMatches = findController.pageMatches[pageIdx] || null; - var pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; - this.matches = this._convertMatches(pageMatches, pageMatchesLength); + let adjustTop = evt.target !== div; + adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"; - this._renderMatches(this.matches); - } - }, { - key: "_bindMouse", - value: function _bindMouse() { - var _this2 = this; + if (adjustTop) { + const divBounds = div.getBoundingClientRect(); + const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); + end.style.top = (r * 100).toFixed(2) + "%"; + } - var div = this.textLayerDiv; - var expandDivsTimer = null; - div.addEventListener('mousedown', function (evt) { - if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { - _this2.textLayerRenderTask.expandTextDivs(true); - - if (expandDivsTimer) { - clearTimeout(expandDivsTimer); - expandDivsTimer = null; + end.classList.add("active"); + }); + div.addEventListener("mouseup", () => { + if (this.enhanceTextSelection && this.textLayerRenderTask) { + expandDivsTimer = setTimeout(() => { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.expandTextDivs(false); } - return; - } + expandDivsTimer = null; + }, EXPAND_DIVS_TIMEOUT); + return; + } - var end = div.querySelector('.endOfContent'); + const end = div.querySelector(".endOfContent"); - if (!end) { - return; - } + if (!end) { + return; + } - var adjustTop = evt.target !== div; - adjustTop = adjustTop && window.getComputedStyle(end).getPropertyValue('-moz-user-select') !== 'none'; + end.style.top = ""; + end.classList.remove("active"); + }); + } - if (adjustTop) { - var divBounds = div.getBoundingClientRect(); - var r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); - end.style.top = (r * 100).toFixed(2) + '%'; - } - - end.classList.add('active'); - }); - div.addEventListener('mouseup', function () { - if (_this2.enhanceTextSelection && _this2.textLayerRenderTask) { - expandDivsTimer = setTimeout(function () { - if (_this2.textLayerRenderTask) { - _this2.textLayerRenderTask.expandTextDivs(false); - } - - expandDivsTimer = null; - }, EXPAND_DIVS_TIMEOUT); - return; - } - - var end = div.querySelector('.endOfContent'); - - if (!end) { - return; - } - - end.style.top = ''; - end.classList.remove('active'); - }); - } - }]); - - return TextLayerBuilder; -}(); +} exports.TextLayerBuilder = TextLayerBuilder; -var DefaultTextLayerFactory = -/*#__PURE__*/ -function () { - function DefaultTextLayerFactory() { - _classCallCheck(this, DefaultTextLayerFactory); +class DefaultTextLayerFactory { + createTextLayerBuilder(textLayerDiv, pageIndex, viewport, enhanceTextSelection = false, eventBus) { + return new TextLayerBuilder({ + textLayerDiv, + pageIndex, + viewport, + enhanceTextSelection, + eventBus + }); } - _createClass(DefaultTextLayerFactory, [{ - key: "createTextLayerBuilder", - value: function createTextLayerBuilder(textLayerDiv, pageIndex, viewport) { - var enhanceTextSelection = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; - return new TextLayerBuilder({ - textLayerDiv: textLayerDiv, - pageIndex: pageIndex, - viewport: viewport, - enhanceTextSelection: enhanceTextSelection - }); - } - }]); - - return DefaultTextLayerFactory; -}(); +} exports.DefaultTextLayerFactory = DefaultTextLayerFactory; /***/ }), -/* 32 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 34 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.XfaLayerBuilder = exports.DefaultXfaLayerFactory = void 0; + +var _pdfjsLib = __webpack_require__(5); + +class XfaLayerBuilder { + constructor({ + pageDiv, + pdfPage, + annotationStorage + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.annotationStorage = annotationStorage; + this.div = null; + this._cancelled = false; + } + + render(viewport, intent = "display") { + return this.pdfPage.getXfa().then(xfa => { + if (this._cancelled) { + return; + } + + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfa, + page: this.pdfPage, + annotationStorage: this.annotationStorage + }; + + if (this.div) { + _pdfjsLib.XfaLayer.update(parameters); + } else { + this.div = document.createElement("div"); + this.pageDiv.appendChild(this.div); + parameters.div = this.div; + + _pdfjsLib.XfaLayer.render(parameters); + } + }).catch(error => { + console.error(error); + }); + } + + cancel() { + this._cancelled = true; + } + + hide() { + if (!this.div) { + return; + } + + this.div.hidden = true; + } + +} + +exports.XfaLayerBuilder = XfaLayerBuilder; + +class DefaultXfaLayerFactory { + createXfaLayerBuilder(pageDiv, pdfPage, annotationStorage = null) { + return new XfaLayerBuilder({ + pageDiv, + pdfPage, + annotationStorage + }); + } + +} + +exports.DefaultXfaLayerFactory = DefaultXfaLayerFactory; + +/***/ }), +/* 35 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.SecondaryToolbar = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -var _pdf_cursor_tools = __webpack_require__(9); +var _pdf_cursor_tools = __webpack_require__(6); -var _pdf_single_page_viewer = __webpack_require__(33); - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var SecondaryToolbar = -/*#__PURE__*/ -function () { - function SecondaryToolbar(options, mainContainer, eventBus) { - var _this = this; - - _classCallCheck(this, SecondaryToolbar); +var _pdf_single_page_viewer = __webpack_require__(36); +class SecondaryToolbar { + constructor(options, mainContainer, eventBus) { this.toolbar = options.toolbar; this.toggleButton = options.toggleButton; this.toolbarButtonContainer = options.toolbarButtonContainer; this.buttons = [{ element: options.presentationModeButton, - eventName: 'presentationmode', + eventName: "presentationmode", close: true }, { element: options.openFileButton, - eventName: 'openfile', + eventName: "openfile", close: true }, { element: options.printButton, - eventName: 'print', + eventName: "print", close: true }, { element: options.downloadButton, - eventName: 'download', + eventName: "download", close: true }, { element: options.viewBookmarkButton, @@ -12739,79 +12746,79 @@ function () { close: true }, { element: options.firstPageButton, - eventName: 'firstpage', + eventName: "firstpage", close: true }, { element: options.lastPageButton, - eventName: 'lastpage', + eventName: "lastpage", close: true }, { element: options.pageRotateCwButton, - eventName: 'rotatecw', + eventName: "rotatecw", close: false }, { element: options.pageRotateCcwButton, - eventName: 'rotateccw', + eventName: "rotateccw", close: false }, { element: options.cursorSelectToolButton, - eventName: 'switchcursortool', + eventName: "switchcursortool", eventDetails: { tool: _pdf_cursor_tools.CursorTool.SELECT }, close: true }, { element: options.cursorHandToolButton, - eventName: 'switchcursortool', + eventName: "switchcursortool", eventDetails: { tool: _pdf_cursor_tools.CursorTool.HAND }, close: true }, { element: options.scrollVerticalButton, - eventName: 'switchscrollmode', + eventName: "switchscrollmode", eventDetails: { mode: _ui_utils.ScrollMode.VERTICAL }, close: true }, { element: options.scrollHorizontalButton, - eventName: 'switchscrollmode', + eventName: "switchscrollmode", eventDetails: { mode: _ui_utils.ScrollMode.HORIZONTAL }, close: true }, { element: options.scrollWrappedButton, - eventName: 'switchscrollmode', + eventName: "switchscrollmode", eventDetails: { mode: _ui_utils.ScrollMode.WRAPPED }, close: true }, { element: options.spreadNoneButton, - eventName: 'switchspreadmode', + eventName: "switchspreadmode", eventDetails: { mode: _ui_utils.SpreadMode.NONE }, close: true }, { element: options.spreadOddButton, - eventName: 'switchspreadmode', + eventName: "switchspreadmode", eventDetails: { mode: _ui_utils.SpreadMode.ODD }, close: true }, { element: options.spreadEvenButton, - eventName: 'switchspreadmode', + eventName: "switchspreadmode", eventDetails: { mode: _ui_utils.SpreadMode.EVEN }, close: true }, { element: options.documentPropertiesButton, - eventName: 'documentproperties', + eventName: "documentproperties", close: true }]; this.items = { @@ -12835,1431 +12842,906 @@ function () { this._bindSpreadModeListener(options); - this.eventBus.on('resize', this._setMaxHeight.bind(this)); - this.eventBus.on('baseviewerinit', function (evt) { + this.eventBus._on("resize", this._setMaxHeight.bind(this)); + + this.eventBus._on("baseviewerinit", evt => { if (evt.source instanceof _pdf_single_page_viewer.PDFSinglePageViewer) { - _this.toolbarButtonContainer.classList.add('hiddenScrollModeButtons', 'hiddenSpreadModeButtons'); + this.toolbarButtonContainer.classList.add("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); } else { - _this.toolbarButtonContainer.classList.remove('hiddenScrollModeButtons', 'hiddenSpreadModeButtons'); + this.toolbarButtonContainer.classList.remove("hiddenScrollModeButtons", "hiddenSpreadModeButtons"); } }); } - _createClass(SecondaryToolbar, [{ - key: "setPageNumber", - value: function setPageNumber(pageNumber) { - this.pageNumber = pageNumber; + get isOpen() { + return this.opened; + } - this._updateUIState(); - } - }, { - key: "setPagesCount", - value: function setPagesCount(pagesCount) { - this.pagesCount = pagesCount; + setPageNumber(pageNumber) { + this.pageNumber = pageNumber; - this._updateUIState(); - } - }, { - key: "reset", - value: function reset() { - this.pageNumber = 0; - this.pagesCount = 0; + this._updateUIState(); + } - this._updateUIState(); + setPagesCount(pagesCount) { + this.pagesCount = pagesCount; - this.eventBus.dispatch('secondarytoolbarreset', { - source: this + this._updateUIState(); + } + + reset() { + this.pageNumber = 0; + this.pagesCount = 0; + + this._updateUIState(); + + this.eventBus.dispatch("secondarytoolbarreset", { + source: this + }); + } + + _updateUIState() { + this.items.firstPage.disabled = this.pageNumber <= 1; + this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; + this.items.pageRotateCw.disabled = this.pagesCount === 0; + this.items.pageRotateCcw.disabled = this.pagesCount === 0; + } + + _bindClickListeners() { + this.toggleButton.addEventListener("click", this.toggle.bind(this)); + + for (const { + element, + eventName, + close, + eventDetails + } of this.buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + const details = { + source: this + }; + + for (const property in eventDetails) { + details[property] = eventDetails[property]; + } + + this.eventBus.dispatch(eventName, details); + } + + if (close) { + this.close(); + } }); } - }, { - key: "_updateUIState", - value: function _updateUIState() { - this.items.firstPage.disabled = this.pageNumber <= 1; - this.items.lastPage.disabled = this.pageNumber >= this.pagesCount; - this.items.pageRotateCw.disabled = this.pagesCount === 0; - this.items.pageRotateCcw.disabled = this.pagesCount === 0; + } + + _bindCursorToolsListener(buttons) { + this.eventBus._on("cursortoolchanged", function ({ + tool + }) { + buttons.cursorSelectToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.SELECT); + buttons.cursorHandToolButton.classList.toggle("toggled", tool === _pdf_cursor_tools.CursorTool.HAND); + }); + } + + _bindScrollModeListener(buttons) { + function scrollModeChanged({ + mode + }) { + buttons.scrollVerticalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.VERTICAL); + buttons.scrollHorizontalButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.HORIZONTAL); + buttons.scrollWrappedButton.classList.toggle("toggled", mode === _ui_utils.ScrollMode.WRAPPED); + const isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; + buttons.spreadNoneButton.disabled = isScrollModeHorizontal; + buttons.spreadOddButton.disabled = isScrollModeHorizontal; + buttons.spreadEvenButton.disabled = isScrollModeHorizontal; } - }, { - key: "_bindClickListeners", - value: function _bindClickListeners() { - var _this2 = this; - this.toggleButton.addEventListener('click', this.toggle.bind(this)); + this.eventBus._on("scrollmodechanged", scrollModeChanged); - var _loop = function _loop(button) { - var _this2$buttons$button = _this2.buttons[button], - element = _this2$buttons$button.element, - eventName = _this2$buttons$button.eventName, - close = _this2$buttons$button.close, - eventDetails = _this2$buttons$button.eventDetails; - element.addEventListener('click', function (evt) { - if (eventName !== null) { - var details = { - source: _this2 - }; - - for (var property in eventDetails) { - details[property] = eventDetails[property]; - } - - _this2.eventBus.dispatch(eventName, details); - } - - if (close) { - _this2.close(); - } + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + scrollModeChanged({ + mode: _ui_utils.ScrollMode.VERTICAL }); - }; - - for (var button in this.buttons) { - _loop(button); } - } - }, { - key: "_bindCursorToolsListener", - value: function _bindCursorToolsListener(buttons) { - this.eventBus.on('cursortoolchanged', function (_ref) { - var tool = _ref.tool; - buttons.cursorSelectToolButton.classList.toggle('toggled', tool === _pdf_cursor_tools.CursorTool.SELECT); - buttons.cursorHandToolButton.classList.toggle('toggled', tool === _pdf_cursor_tools.CursorTool.HAND); - }); - } - }, { - key: "_bindScrollModeListener", - value: function _bindScrollModeListener(buttons) { - var _this3 = this; + }); + } - function scrollModeChanged(_ref2) { - var mode = _ref2.mode; - buttons.scrollVerticalButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.VERTICAL); - buttons.scrollHorizontalButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.HORIZONTAL); - buttons.scrollWrappedButton.classList.toggle('toggled', mode === _ui_utils.ScrollMode.WRAPPED); - var isScrollModeHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; - buttons.spreadNoneButton.disabled = isScrollModeHorizontal; - buttons.spreadOddButton.disabled = isScrollModeHorizontal; - buttons.spreadEvenButton.disabled = isScrollModeHorizontal; + _bindSpreadModeListener(buttons) { + function spreadModeChanged({ + mode + }) { + buttons.spreadNoneButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.NONE); + buttons.spreadOddButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.ODD); + buttons.spreadEvenButton.classList.toggle("toggled", mode === _ui_utils.SpreadMode.EVEN); + } + + this.eventBus._on("spreadmodechanged", spreadModeChanged); + + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + spreadModeChanged({ + mode: _ui_utils.SpreadMode.NONE + }); } + }); + } - this.eventBus.on('scrollmodechanged', scrollModeChanged); - this.eventBus.on('secondarytoolbarreset', function (evt) { - if (evt.source === _this3) { - scrollModeChanged({ - mode: _ui_utils.ScrollMode.VERTICAL - }); - } - }); + open() { + if (this.opened) { + return; } - }, { - key: "_bindSpreadModeListener", - value: function _bindSpreadModeListener(buttons) { - var _this4 = this; - function spreadModeChanged(_ref3) { - var mode = _ref3.mode; - buttons.spreadNoneButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.NONE); - buttons.spreadOddButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.ODD); - buttons.spreadEvenButton.classList.toggle('toggled', mode === _ui_utils.SpreadMode.EVEN); - } + this.opened = true; - this.eventBus.on('spreadmodechanged', spreadModeChanged); - this.eventBus.on('secondarytoolbarreset', function (evt) { - if (evt.source === _this4) { - spreadModeChanged({ - mode: _ui_utils.SpreadMode.NONE - }); - } - }); + this._setMaxHeight(); + + this.toggleButton.classList.add("toggled"); + this.toggleButton.setAttribute("aria-expanded", "true"); + this.toolbar.classList.remove("hidden"); + } + + close() { + if (!this.opened) { + return; } - }, { - key: "open", - value: function open() { - if (this.opened) { - return; - } - this.opened = true; + this.opened = false; + this.toolbar.classList.add("hidden"); + this.toggleButton.classList.remove("toggled"); + this.toggleButton.setAttribute("aria-expanded", "false"); + } - this._setMaxHeight(); - - this.toggleButton.classList.add('toggled'); - this.toolbar.classList.remove('hidden'); + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); } - }, { - key: "close", - value: function close() { - if (!this.opened) { - return; - } + } - this.opened = false; - this.toolbar.classList.add('hidden'); - this.toggleButton.classList.remove('toggled'); + _setMaxHeight() { + if (!this.opened) { + return; } - }, { - key: "toggle", - value: function toggle() { - if (this.opened) { - this.close(); - } else { - this.open(); - } + + this.containerHeight = this.mainContainer.clientHeight; + + if (this.containerHeight === this.previousContainerHeight) { + return; } - }, { - key: "_setMaxHeight", - value: function _setMaxHeight() { - if (!this.opened) { - return; - } - this.containerHeight = this.mainContainer.clientHeight; + this.toolbarButtonContainer.style.maxHeight = `${this.containerHeight - _ui_utils.SCROLLBAR_PADDING}px`; + this.previousContainerHeight = this.containerHeight; + } - if (this.containerHeight === this.previousContainerHeight) { - return; - } - - this.toolbarButtonContainer.setAttribute('style', 'max-height: ' + (this.containerHeight - _ui_utils.SCROLLBAR_PADDING) + 'px;'); - this.previousContainerHeight = this.containerHeight; - } - }, { - key: "isOpen", - get: function get() { - return this.opened; - } - }]); - - return SecondaryToolbar; -}(); +} exports.SecondaryToolbar = SecondaryToolbar; /***/ }), -/* 33 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 36 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.PDFSinglePageViewer = void 0; var _base_viewer = __webpack_require__(28); -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } +class PDFSinglePageViewer extends _base_viewer.BaseViewer { + constructor(options) { + super(options); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); } - -function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } - -var PDFSinglePageViewer = -/*#__PURE__*/ -function (_BaseViewer) { - _inherits(PDFSinglePageViewer, _BaseViewer); - - function PDFSinglePageViewer(options) { - var _this; - - _classCallCheck(this, PDFSinglePageViewer); - - _this = _possibleConstructorReturn(this, _getPrototypeOf(PDFSinglePageViewer).call(this, options)); - - _this.eventBus.on('pagesinit', function (evt) { - _this._ensurePageViewVisible(); + this.eventBus._on("pagesinit", evt => { + this._ensurePageViewVisible(); }); - - return _this; } - _createClass(PDFSinglePageViewer, [{ - key: "_resetView", - value: function _resetView() { - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_resetView", this).call(this); + get _viewerElement() { + return (0, _pdfjsLib.shadow)(this, "_viewerElement", this._shadowViewer); + } - this._previousPageNumber = 1; - this._shadowViewer = document.createDocumentFragment(); + get _pageWidthScaleFactor() { + return 1; + } + + _resetView() { + super._resetView(); + + this._previousPageNumber = 1; + this._shadowViewer = document.createDocumentFragment(); + this._updateScrollDown = null; + } + + _ensurePageViewVisible() { + const pageView = this._pages[this._currentPageNumber - 1]; + const previousPageView = this._pages[this._previousPageNumber - 1]; + const viewerNodes = this.viewer.childNodes; + + switch (viewerNodes.length) { + case 0: + this.viewer.appendChild(pageView.div); + break; + + case 1: + if (viewerNodes[0] !== previousPageView.div) { + throw new Error("_ensurePageViewVisible: Unexpected previously visible page."); + } + + if (pageView === previousPageView) { + break; + } + + this._shadowViewer.appendChild(previousPageView.div); + + this.viewer.appendChild(pageView.div); + this.container.scrollTop = 0; + break; + + default: + throw new Error("_ensurePageViewVisible: Only one page should be visible at a time."); + } + + this._previousPageNumber = this._currentPageNumber; + } + + _scrollUpdate() { + if (this._updateScrollDown) { + this._updateScrollDown(); + } + + super._scrollUpdate(); + } + + _scrollIntoView({ + pageDiv, + pageSpot = null, + pageNumber = null + }) { + if (pageNumber) { + this._setCurrentPageNumber(pageNumber); + } + + const scrolledDown = this._currentPageNumber >= this._previousPageNumber; + + this._ensurePageViewVisible(); + + this.update(); + + super._scrollIntoView({ + pageDiv, + pageSpot, + pageNumber + }); + + this._updateScrollDown = () => { + this.scroll.down = scrolledDown; this._updateScrollDown = null; - } - }, { - key: "_ensurePageViewVisible", - value: function _ensurePageViewVisible() { - var pageView = this._pages[this._currentPageNumber - 1]; - var previousPageView = this._pages[this._previousPageNumber - 1]; - var viewerNodes = this.viewer.childNodes; + }; + } - switch (viewerNodes.length) { - case 0: - this.viewer.appendChild(pageView.div); - break; + _getVisiblePages() { + return this._getCurrentVisiblePage(); + } - case 1: - if (viewerNodes[0] !== previousPageView.div) { - throw new Error('_ensurePageViewVisible: Unexpected previously visible page.'); - } + _updateHelper(visiblePages) {} - if (pageView === previousPageView) { - break; - } + get _isScrollModeHorizontal() { + return (0, _pdfjsLib.shadow)(this, "_isScrollModeHorizontal", false); + } - this._shadowViewer.appendChild(previousPageView.div); + _updateScrollMode() {} - this.viewer.appendChild(pageView.div); - this.container.scrollTop = 0; - break; + _updateSpreadMode() {} - default: - throw new Error('_ensurePageViewVisible: Only one page should be visible at a time.'); - } + _getPageAdvance() { + return 1; + } - this._previousPageNumber = this._currentPageNumber; - } - }, { - key: "_scrollUpdate", - value: function _scrollUpdate() { - if (this._updateScrollDown) { - this._updateScrollDown(); - } - - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollUpdate", this).call(this); - } - }, { - key: "_scrollIntoView", - value: function _scrollIntoView(_ref) { - var _this2 = this; - - var pageDiv = _ref.pageDiv, - _ref$pageSpot = _ref.pageSpot, - pageSpot = _ref$pageSpot === void 0 ? null : _ref$pageSpot, - _ref$pageNumber = _ref.pageNumber, - pageNumber = _ref$pageNumber === void 0 ? null : _ref$pageNumber; - - if (pageNumber) { - this._setCurrentPageNumber(pageNumber); - } - - var scrolledDown = this._currentPageNumber >= this._previousPageNumber; - - this._ensurePageViewVisible(); - - this.update(); - - _get(_getPrototypeOf(PDFSinglePageViewer.prototype), "_scrollIntoView", this).call(this, { - pageDiv: pageDiv, - pageSpot: pageSpot, - pageNumber: pageNumber - }); - - this._updateScrollDown = function () { - _this2.scroll.down = scrolledDown; - _this2._updateScrollDown = null; - }; - } - }, { - key: "_getVisiblePages", - value: function _getVisiblePages() { - return this._getCurrentVisiblePage(); - } - }, { - key: "_updateHelper", - value: function _updateHelper(visiblePages) {} - }, { - key: "_updateScrollMode", - value: function _updateScrollMode() {} - }, { - key: "_updateSpreadMode", - value: function _updateSpreadMode() {} - }, { - key: "_setDocumentViewerElement", - get: function get() { - return (0, _pdfjsLib.shadow)(this, '_setDocumentViewerElement', this._shadowViewer); - } - }, { - key: "_isScrollModeHorizontal", - get: function get() { - return (0, _pdfjsLib.shadow)(this, '_isScrollModeHorizontal', false); - } - }]); - - return PDFSinglePageViewer; -}(_base_viewer.BaseViewer); +} exports.PDFSinglePageViewer = PDFSinglePageViewer; /***/ }), -/* 34 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 37 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.Toolbar = void 0; -var _ui_utils = __webpack_require__(5); +var _ui_utils = __webpack_require__(4); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var PAGE_NUMBER_LOADING_INDICATOR = 'visiblePageIsLoading'; -var SCALE_SELECT_CONTAINER_PADDING = 8; -var SCALE_SELECT_PADDING = 22; - -var Toolbar = -/*#__PURE__*/ -function () { - function Toolbar(options, eventBus) { - var l10n = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _ui_utils.NullL10n; - - _classCallCheck(this, Toolbar); +const PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading"; +const SCALE_SELECT_CONTAINER_WIDTH = 140; +const SCALE_SELECT_WIDTH = 162; +class Toolbar { + constructor(options, eventBus, l10n) { this.toolbar = options.container; this.eventBus = eventBus; this.l10n = l10n; - this.items = options; + this.buttons = [{ + element: options.previous, + eventName: "previouspage" + }, { + element: options.next, + eventName: "nextpage" + }, { + element: options.zoomIn, + eventName: "zoomin" + }, { + element: options.zoomOut, + eventName: "zoomout" + }, { + element: options.openFile, + eventName: "openfile" + }, { + element: options.print, + eventName: "print" + }, { + element: options.presentationModeButton, + eventName: "presentationmode" + }, { + element: options.download, + eventName: "download" + }, { + element: options.viewBookmark, + eventName: null + }]; + this.items = { + numPages: options.numPages, + pageNumber: options.pageNumber, + scaleSelectContainer: options.scaleSelectContainer, + scaleSelect: options.scaleSelect, + customScaleOption: options.customScaleOption, + previous: options.previous, + next: options.next, + zoomIn: options.zoomIn, + zoomOut: options.zoomOut + }; this._wasLocalized = false; this.reset(); this._bindListeners(); } - _createClass(Toolbar, [{ - key: "setPageNumber", - value: function setPageNumber(pageNumber, pageLabel) { - this.pageNumber = pageNumber; - this.pageLabel = pageLabel; + setPageNumber(pageNumber, pageLabel) { + this.pageNumber = pageNumber; + this.pageLabel = pageLabel; - this._updateUIState(false); - } - }, { - key: "setPagesCount", - value: function setPagesCount(pagesCount, hasPageLabels) { - this.pagesCount = pagesCount; - this.hasPageLabels = hasPageLabels; + this._updateUIState(false); + } - this._updateUIState(true); - } - }, { - key: "setPageScale", - value: function setPageScale(pageScaleValue, pageScale) { - this.pageScaleValue = (pageScaleValue || pageScale).toString(); - this.pageScale = pageScale; + setPagesCount(pagesCount, hasPageLabels) { + this.pagesCount = pagesCount; + this.hasPageLabels = hasPageLabels; - this._updateUIState(false); - } - }, { - key: "reset", - value: function reset() { - this.pageNumber = 0; - this.pageLabel = null; - this.hasPageLabels = false; - this.pagesCount = 0; - this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; - this.pageScale = _ui_utils.DEFAULT_SCALE; + this._updateUIState(true); + } - this._updateUIState(true); - } - }, { - key: "_bindListeners", - value: function _bindListeners() { - var _this = this; + setPageScale(pageScaleValue, pageScale) { + this.pageScaleValue = (pageScaleValue || pageScale).toString(); + this.pageScale = pageScale; - var eventBus = this.eventBus, - items = this.items; - var self = this; - items.previous.addEventListener('click', function () { - eventBus.dispatch('previouspage', { - source: self - }); - }); - items.next.addEventListener('click', function () { - eventBus.dispatch('nextpage', { - source: self - }); - }); - items.zoomIn.addEventListener('click', function () { - eventBus.dispatch('zoomin', { - source: self - }); - }); - items.zoomOut.addEventListener('click', function () { - eventBus.dispatch('zoomout', { - source: self - }); - }); - items.pageNumber.addEventListener('click', function () { - this.select(); - }); - items.pageNumber.addEventListener('change', function () { - eventBus.dispatch('pagenumberchanged', { - source: self, - value: this.value - }); - }); - items.scaleSelect.addEventListener('change', function () { - if (this.value === 'custom') { - return; + this._updateUIState(false); + } + + reset() { + this.pageNumber = 0; + this.pageLabel = null; + this.hasPageLabels = false; + this.pagesCount = 0; + this.pageScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + this.pageScale = _ui_utils.DEFAULT_SCALE; + + this._updateUIState(true); + + this.updateLoadingIndicatorState(); + } + + _bindListeners() { + const { + pageNumber, + scaleSelect + } = this.items; + const self = this; + + for (const { + element, + eventName + } of this.buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + this.eventBus.dispatch(eventName, { + source: this + }); } - - eventBus.dispatch('scalechanged', { - source: self, - value: this.value - }); - }); - items.presentationModeButton.addEventListener('click', function () { - eventBus.dispatch('presentationmode', { - source: self - }); - }); - items.openFile.addEventListener('click', function () { - eventBus.dispatch('openfile', { - source: self - }); - }); - items.print.addEventListener('click', function () { - eventBus.dispatch('print', { - source: self - }); - }); - items.download.addEventListener('click', function () { - eventBus.dispatch('download', { - source: self - }); - }); - items.scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; - eventBus.on('localized', function () { - _this._localized(); }); } - }, { - key: "_localized", - value: function _localized() { + + pageNumber.addEventListener("click", function () { + this.select(); + }); + pageNumber.addEventListener("change", function () { + self.eventBus.dispatch("pagenumberchanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("change", function () { + if (this.value === "custom") { + return; + } + + self.eventBus.dispatch("scalechanged", { + source: self, + value: this.value + }); + }); + scaleSelect.addEventListener("click", function (evt) { + const target = evt.target; + + if (this.value === self.pageScaleValue && target.tagName.toUpperCase() === "OPTION") { + this.blur(); + } + }); + scaleSelect.oncontextmenu = _ui_utils.noContextMenuHandler; + + this.eventBus._on("localized", () => { this._wasLocalized = true; this._adjustScaleWidth(); this._updateUIState(true); + }); + } + + _updateUIState(resetNumPages = false) { + if (!this._wasLocalized) { + return; } - }, { - key: "_updateUIState", - value: function _updateUIState() { - var resetNumPages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - if (!this._wasLocalized) { - return; - } - - var pageNumber = this.pageNumber, - pagesCount = this.pagesCount, - pageScaleValue = this.pageScaleValue, - pageScale = this.pageScale, - items = this.items; - - if (resetNumPages) { - if (this.hasPageLabels) { - items.pageNumber.type = 'text'; - } else { - items.pageNumber.type = 'number'; - this.l10n.get('of_pages', { - pagesCount: pagesCount - }, 'of {{pagesCount}}').then(function (msg) { - items.numPages.textContent = msg; - }); - } - - items.pageNumber.max = pagesCount; - } + const { + pageNumber, + pagesCount, + pageScaleValue, + pageScale, + items + } = this; + if (resetNumPages) { if (this.hasPageLabels) { - items.pageNumber.value = this.pageLabel; - this.l10n.get('page_of_pages', { - pageNumber: pageNumber, - pagesCount: pagesCount - }, '({{pageNumber}} of {{pagesCount}})').then(function (msg) { + items.pageNumber.type = "text"; + } else { + items.pageNumber.type = "number"; + this.l10n.get("of_pages", { + pagesCount + }).then(msg => { items.numPages.textContent = msg; }); - } else { - items.pageNumber.value = pageNumber; } - items.previous.disabled = pageNumber <= 1; - items.next.disabled = pageNumber >= pagesCount; - items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; - items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; - var customScale = Math.round(pageScale * 10000) / 100; - this.l10n.get('page_scale_percent', { - scale: customScale - }, '{{scale}}%').then(function (msg) { - var options = items.scaleSelect.options; - var predefinedValueFound = false; + items.pageNumber.max = pagesCount; + } - for (var i = 0, ii = options.length; i < ii; i++) { - var option = options[i]; - - if (option.value !== pageScaleValue) { - option.selected = false; - continue; - } - - option.selected = true; - predefinedValueFound = true; - } - - if (!predefinedValueFound) { - items.customScaleOption.textContent = msg; - items.customScaleOption.selected = true; - } + if (this.hasPageLabels) { + items.pageNumber.value = this.pageLabel; + this.l10n.get("page_of_pages", { + pageNumber, + pagesCount + }).then(msg => { + items.numPages.textContent = msg; }); + } else { + items.pageNumber.value = pageNumber; } - }, { - key: "updateLoadingIndicatorState", - value: function updateLoadingIndicatorState() { - var loading = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false; - var pageNumberInput = this.items.pageNumber; - pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); - } - }, { - key: "_adjustScaleWidth", - value: function _adjustScaleWidth() { - var container = this.items.scaleSelectContainer; - var select = this.items.scaleSelect; - _ui_utils.animationStarted.then(function () { - if (container.clientWidth === 0) { - container.setAttribute('style', 'display: inherit;'); + items.previous.disabled = pageNumber <= 1; + items.next.disabled = pageNumber >= pagesCount; + items.zoomOut.disabled = pageScale <= _ui_utils.MIN_SCALE; + items.zoomIn.disabled = pageScale >= _ui_utils.MAX_SCALE; + this.l10n.get("page_scale_percent", { + scale: Math.round(pageScale * 10000) / 100 + }).then(msg => { + let predefinedValueFound = false; + + for (const option of items.scaleSelect.options) { + if (option.value !== pageScaleValue) { + option.selected = false; + continue; } - if (container.clientWidth > 0) { - select.setAttribute('style', 'min-width: inherit;'); - var width = select.clientWidth + SCALE_SELECT_CONTAINER_PADDING; - select.setAttribute('style', 'min-width: ' + (width + SCALE_SELECT_PADDING) + 'px;'); - container.setAttribute('style', 'min-width: ' + width + 'px; ' + 'max-width: ' + width + 'px;'); - } - }); - } - }]); + option.selected = true; + predefinedValueFound = true; + } - return Toolbar; -}(); + if (!predefinedValueFound) { + items.customScaleOption.textContent = msg; + items.customScaleOption.selected = true; + } + }); + } + + updateLoadingIndicatorState(loading = false) { + const pageNumberInput = this.items.pageNumber; + pageNumberInput.classList.toggle(PAGE_NUMBER_LOADING_INDICATOR, loading); + } + + async _adjustScaleWidth() { + const { + items, + l10n + } = this; + const predefinedValuesPromise = Promise.all([l10n.get("page_scale_auto"), l10n.get("page_scale_actual"), l10n.get("page_scale_fit"), l10n.get("page_scale_width")]); + let canvas = document.createElement("canvas"); + canvas.mozOpaque = true; + let ctx = canvas.getContext("2d", { + alpha: false + }); + await _ui_utils.animationStarted; + const { + fontSize, + fontFamily + } = getComputedStyle(items.scaleSelect); + ctx.font = `${fontSize} ${fontFamily}`; + let maxWidth = 0; + + for (const predefinedValue of await predefinedValuesPromise) { + const { + width + } = ctx.measureText(predefinedValue); + + if (width > maxWidth) { + maxWidth = width; + } + } + + const overflow = SCALE_SELECT_WIDTH - SCALE_SELECT_CONTAINER_WIDTH; + maxWidth += 2 * overflow; + + if (maxWidth > SCALE_SELECT_CONTAINER_WIDTH) { + items.scaleSelect.style.width = `${maxWidth + overflow}px`; + items.scaleSelectContainer.style.width = `${maxWidth}px`; + } + + canvas.width = 0; + canvas.height = 0; + canvas = ctx = null; + } + +} exports.Toolbar = Toolbar; /***/ }), -/* 35 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 38 */ +/***/ ((__unused_webpack_module, exports) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.ViewHistory = void 0; +const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; - -var ViewHistory = -/*#__PURE__*/ -function () { - function ViewHistory(fingerprint) { - var _this = this; - - var cacheSize = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : DEFAULT_VIEW_HISTORY_CACHE_SIZE; - - _classCallCheck(this, ViewHistory); - +class ViewHistory { + constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { this.fingerprint = fingerprint; this.cacheSize = cacheSize; - this._initializedPromise = this._readFromStorage().then(function (databaseStr) { - var database = JSON.parse(databaseStr || '{}'); + this._initializedPromise = this._readFromStorage().then(databaseStr => { + const database = JSON.parse(databaseStr || "{}"); + let index = -1; - if (!('files' in database)) { + if (!Array.isArray(database.files)) { database.files = []; } else { - while (database.files.length >= _this.cacheSize) { + while (database.files.length >= this.cacheSize) { database.files.shift(); } - } - var index = -1; + for (let i = 0, ii = database.files.length; i < ii; i++) { + const branch = database.files[i]; - for (var i = 0, length = database.files.length; i < length; i++) { - var branch = database.files[i]; - - if (branch.fingerprint === _this.fingerprint) { - index = i; - break; + if (branch.fingerprint === this.fingerprint) { + index = i; + break; + } } } if (index === -1) { index = database.files.push({ - fingerprint: _this.fingerprint + fingerprint: this.fingerprint }) - 1; } - _this.file = database.files[index]; - _this.database = database; + this.file = database.files[index]; + this.database = database; }); } - _createClass(ViewHistory, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var databaseStr; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - databaseStr = JSON.stringify(this.database); - localStorage.setItem('pdfjs.history', databaseStr); + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); + localStorage.setItem("pdfjs.history", databaseStr); + } - case 2: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); + async _readFromStorage() { + return localStorage.getItem("pdfjs.history"); + } - function _writeToStorage() { - return _writeToStorage2.apply(this, arguments); - } + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); + } - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", localStorage.getItem('pdfjs.history')); + async setMultiple(properties) { + await this._initializedPromise; - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); + for (const name in properties) { + this.file[name] = properties[name]; + } - function _readFromStorage() { - return _readFromStorage2.apply(this, arguments); - } + return this._writeToStorage(); + } - return _readFromStorage; - }() - }, { - key: "set", - value: function () { - var _set = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(name, val) { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._initializedPromise; + async get(name, defaultValue) { + await this._initializedPromise; + const val = this.file[name]; + return val !== undefined ? val : defaultValue; + } - case 2: - this.file[name] = val; - return _context3.abrupt("return", this._writeToStorage()); + async getMultiple(properties) { + await this._initializedPromise; + const values = Object.create(null); - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); + for (const name in properties) { + const val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; + } - function set(_x, _x2) { - return _set.apply(this, arguments); - } + return values; + } - return set; - }() - }, { - key: "setMultiple", - value: function () { - var _setMultiple = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(properties) { - var name; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._initializedPromise; - - case 2: - for (name in properties) { - this.file[name] = properties[name]; - } - - return _context4.abrupt("return", this._writeToStorage()); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function setMultiple(_x3) { - return _setMultiple.apply(this, arguments); - } - - return setMultiple; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee5(name, defaultValue) { - var val; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return this._initializedPromise; - - case 2: - val = this.file[name]; - return _context5.abrupt("return", val !== undefined ? val : defaultValue); - - case 4: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function get(_x4, _x5) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "getMultiple", - value: function () { - var _getMultiple = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee6(properties) { - var values, name, val; - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this._initializedPromise; - - case 2: - values = Object.create(null); - - for (name in properties) { - val = this.file[name]; - values[name] = val !== undefined ? val : properties[name]; - } - - return _context6.abrupt("return", values); - - case 5: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function getMultiple(_x6) { - return _getMultiple.apply(this, arguments); - } - - return getMultiple; - }() - }]); - - return ViewHistory; -}(); +} exports.ViewHistory = ViewHistory; /***/ }), -/* 36 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 39 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GenericCom = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +var _app = __webpack_require__(3); -var _app = __webpack_require__(1); +var _preferences = __webpack_require__(40); -var _preferences = __webpack_require__(37); +var _download_manager = __webpack_require__(41); -var _download_manager = __webpack_require__(38); +var _genericl10n = __webpack_require__(42); -var _genericl10n = __webpack_require__(39); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); } - -function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; } - -function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); } - -function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); } - -function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); } +var _generic_scripting = __webpack_require__(44); ; -var GenericCom = {}; +const GenericCom = {}; exports.GenericCom = GenericCom; -var GenericPreferences = -/*#__PURE__*/ -function (_BasePreferences) { - _inherits(GenericPreferences, _BasePreferences); - - function GenericPreferences() { - _classCallCheck(this, GenericPreferences); - - return _possibleConstructorReturn(this, _getPrototypeOf(GenericPreferences).apply(this, arguments)); +class GenericPreferences extends _preferences.BasePreferences { + async _writeToStorage(prefObj) { + localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); } - _createClass(GenericPreferences, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(prefObj) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - localStorage.setItem('pdfjs.preferences', JSON.stringify(prefObj)); + async _readFromStorage(prefObj) { + return JSON.parse(localStorage.getItem("pdfjs.preferences")); + } - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); +} - function _writeToStorage(_x) { - return _writeToStorage2.apply(this, arguments); - } +class GenericExternalServices extends _app.DefaultExternalServices { + static createDownloadManager(options) { + return new _download_manager.DownloadManager(); + } - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(prefObj) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - return _context2.abrupt("return", JSON.parse(localStorage.getItem('pdfjs.preferences'))); + static createPreferences() { + return new GenericPreferences(); + } - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); + static createL10n({ + locale = "en-US" + }) { + return new _genericl10n.GenericL10n(locale); + } - function _readFromStorage(_x2) { - return _readFromStorage2.apply(this, arguments); - } + static createScripting({ + sandboxBundleSrc + }) { + return new _generic_scripting.GenericScripting(sandboxBundleSrc); + } - return _readFromStorage; - }() - }]); - - return GenericPreferences; -}(_preferences.BasePreferences); - -var GenericExternalServices = Object.create(_app.DefaultExternalServices); - -GenericExternalServices.createDownloadManager = function (options) { - return new _download_manager.DownloadManager(options); -}; - -GenericExternalServices.createPreferences = function () { - return new GenericPreferences(); -}; - -GenericExternalServices.createL10n = function (_ref) { - var _ref$locale = _ref.locale, - locale = _ref$locale === void 0 ? 'en-US' : _ref$locale; - return new _genericl10n.GenericL10n(locale); -}; +} _app.PDFViewerApplication.externalServices = GenericExternalServices; /***/ }), -/* 37 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 40 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.BasePreferences = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var defaultPreferences = null; - -function getDefaultPreferences() { - if (!defaultPreferences) { - defaultPreferences = Promise.resolve({ - "cursorToolOnLoad": 0, - "defaultZoomValue": "", - "disablePageLabels": false, - "enablePrintAutoRotate": false, - "enableWebGL": false, - "eventBusDispatchToDOM": false, - "externalLinkTarget": 0, - "historyUpdateUrl": false, - "pdfBugEnabled": false, - "renderer": "canvas", - "renderInteractiveForms": false, - "sidebarViewOnLoad": -1, - "scrollModeOnLoad": -1, - "spreadModeOnLoad": -1, - "textLayerMode": 1, - "useOnlyCssZoom": false, - "viewOnLoad": 0, - "disableAutoFetch": false, - "disableFontFace": false, - "disableRange": false, - "disableStream": false - }); - } - - return defaultPreferences; -} - -var BasePreferences = -/*#__PURE__*/ -function () { - function BasePreferences() { - var _this = this; - - _classCallCheck(this, BasePreferences); +var _app_options = __webpack_require__(1); +class BasePreferences { + constructor() { if (this.constructor === BasePreferences) { - throw new Error('Cannot initialize BasePreferences.'); + throw new Error("Cannot initialize BasePreferences."); } - this.prefs = null; - this._initializedPromise = getDefaultPreferences().then(function (defaults) { - Object.defineProperty(_this, 'defaults', { - value: Object.freeze(defaults), - writable: false, - enumerable: true, - configurable: false - }); - _this.prefs = Object.assign(Object.create(null), defaults); - return _this._readFromStorage(defaults); - }).then(function (prefs) { - if (!prefs) { - return; - } + Object.defineProperty(this, "defaults", { + value: Object.freeze({ + "cursorToolOnLoad": 0, + "defaultZoomValue": "", + "disablePageLabels": false, + "enablePermissions": false, + "enablePrintAutoRotate": true, + "enableScripting": true, + "externalLinkTarget": 0, + "historyUpdateUrl": false, + "ignoreDestinationZoom": false, + "pdfBugEnabled": false, + "renderer": "canvas", + "renderInteractiveForms": true, + "sidebarViewOnLoad": -1, + "scrollModeOnLoad": -1, + "spreadModeOnLoad": -1, + "textLayerMode": 1, + "useOnlyCssZoom": false, + "viewerCssTheme": 0, + "viewOnLoad": 0, + "disableAutoFetch": false, + "disableFontFace": false, + "disableRange": false, + "disableStream": false, + "enableXfa": false + }), + writable: false, + enumerable: true, + configurable: false + }); + this.prefs = Object.create(null); + this._initializedPromise = this._readFromStorage(this.defaults).then(prefs => { + for (const name in this.defaults) { + const prefValue = prefs?.[name]; - for (var name in prefs) { - var defaultValue = _this.defaults[name], - prefValue = prefs[name]; - - if (defaultValue === undefined || _typeof(prefValue) !== _typeof(defaultValue)) { - continue; + if (typeof prefValue === typeof this.defaults[name]) { + this.prefs[name] = prefValue; } - - _this.prefs[name] = prefValue; } }); } - _createClass(BasePreferences, [{ - key: "_writeToStorage", - value: function () { - var _writeToStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee(prefObj) { - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - throw new Error('Not implemented: _writeToStorage'); + async _writeToStorage(prefObj) { + throw new Error("Not implemented: _writeToStorage"); + } - case 1: - case "end": - return _context.stop(); - } - } - }, _callee); - })); + async _readFromStorage(prefObj) { + throw new Error("Not implemented: _readFromStorage"); + } - function _writeToStorage(_x) { - return _writeToStorage2.apply(this, arguments); + async reset() { + await this._initializedPromise; + this.prefs = Object.create(null); + return this._writeToStorage(this.defaults); + } + + async set(name, value) { + await this._initializedPromise; + const defaultValue = this.defaults[name]; + + if (defaultValue === undefined) { + throw new Error(`Set preference: "${name}" is undefined.`); + } else if (value === undefined) { + throw new Error("Set preference: no value is specified."); + } + + const valueType = typeof value; + const defaultType = typeof defaultValue; + + if (valueType !== defaultType) { + if (valueType === "number" && defaultType === "string") { + value = value.toString(); + } else { + throw new Error(`Set preference: "${value}" is a ${valueType}, expected a ${defaultType}.`); } - - return _writeToStorage; - }() - }, { - key: "_readFromStorage", - value: function () { - var _readFromStorage2 = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2(prefObj) { - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - throw new Error('Not implemented: _readFromStorage'); - - case 1: - case "end": - return _context2.stop(); - } - } - }, _callee2); - })); - - function _readFromStorage(_x2) { - return _readFromStorage2.apply(this, arguments); + } else { + if (valueType === "number" && !Number.isInteger(value)) { + throw new Error(`Set preference: "${value}" must be an integer.`); } + } - return _readFromStorage; - }() - }, { - key: "reset", - value: function () { - var _reset = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3() { - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._initializedPromise; + this.prefs[name] = value; + return this._writeToStorage(this.prefs); + } - case 2: - this.prefs = Object.assign(Object.create(null), this.defaults); - return _context3.abrupt("return", this._writeToStorage(this.defaults)); + async get(name) { + await this._initializedPromise; + const defaultValue = this.defaults[name], + prefValue = this.prefs[name]; - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); + if (defaultValue === undefined) { + throw new Error(`Get preference: "${name}" is undefined.`); + } - function reset() { - return _reset.apply(this, arguments); - } + return prefValue !== undefined ? prefValue : defaultValue; + } - return reset; - }() - }, { - key: "set", - value: function () { - var _set = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(name, value) { - var defaultValue, valueType, defaultType; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._initializedPromise; + async getAll() { + await this._initializedPromise; + const obj = Object.create(null); - case 2: - defaultValue = this.defaults[name]; + for (const name in this.defaults) { + const prefValue = this.prefs[name]; + obj[name] = prefValue !== undefined ? prefValue : this.defaults[name]; + } - if (!(defaultValue === undefined)) { - _context4.next = 7; - break; - } + return obj; + } - throw new Error("Set preference: \"".concat(name, "\" is undefined.")); - - case 7: - if (!(value === undefined)) { - _context4.next = 9; - break; - } - - throw new Error('Set preference: no value is specified.'); - - case 9: - valueType = _typeof(value); - defaultType = _typeof(defaultValue); - - if (!(valueType !== defaultType)) { - _context4.next = 19; - break; - } - - if (!(valueType === 'number' && defaultType === 'string')) { - _context4.next = 16; - break; - } - - value = value.toString(); - _context4.next = 17; - break; - - case 16: - throw new Error("Set preference: \"".concat(value, "\" is a ").concat(valueType, ", ") + "expected a ".concat(defaultType, ".")); - - case 17: - _context4.next = 21; - break; - - case 19: - if (!(valueType === 'number' && !Number.isInteger(value))) { - _context4.next = 21; - break; - } - - throw new Error("Set preference: \"".concat(value, "\" must be an integer.")); - - case 21: - this.prefs[name] = value; - return _context4.abrupt("return", this._writeToStorage(this.prefs)); - - case 23: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function set(_x3, _x4) { - return _set.apply(this, arguments); - } - - return set; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee5(name) { - var defaultValue, prefValue; - return _regenerator["default"].wrap(function _callee5$(_context5) { - while (1) { - switch (_context5.prev = _context5.next) { - case 0: - _context5.next = 2; - return this._initializedPromise; - - case 2: - defaultValue = this.defaults[name]; - - if (!(defaultValue === undefined)) { - _context5.next = 7; - break; - } - - throw new Error("Get preference: \"".concat(name, "\" is undefined.")); - - case 7: - prefValue = this.prefs[name]; - - if (!(prefValue !== undefined)) { - _context5.next = 10; - break; - } - - return _context5.abrupt("return", prefValue); - - case 10: - return _context5.abrupt("return", defaultValue); - - case 11: - case "end": - return _context5.stop(); - } - } - }, _callee5, this); - })); - - function get(_x5) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "getAll", - value: function () { - var _getAll = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee6() { - return _regenerator["default"].wrap(function _callee6$(_context6) { - while (1) { - switch (_context6.prev = _context6.next) { - case 0: - _context6.next = 2; - return this._initializedPromise; - - case 2: - return _context6.abrupt("return", Object.assign(Object.create(null), this.defaults, this.prefs)); - - case 3: - case "end": - return _context6.stop(); - } - } - }, _callee6, this); - })); - - function getAll() { - return _getAll.apply(this, arguments); - } - - return getAll; - }() - }]); - - return BasePreferences; -}(); +} exports.BasePreferences = BasePreferences; /***/ }), -/* 38 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 41 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.DownloadManager = void 0; -var _pdfjsLib = __webpack_require__(7); +var _pdfjsLib = __webpack_require__(5); -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } +var _viewer_compatibility = __webpack_require__(2); ; -var DISABLE_CREATE_OBJECT_URL = _pdfjsLib.apiCompatibilityParams.disableCreateObjectURL || false; -function _download(blobUrl, filename) { - var a = document.createElement('a'); +function download(blobUrl, filename) { + const a = document.createElement("a"); if (!a.click) { throw new Error('DownloadManager: "a.click()" is not supported.'); } a.href = blobUrl; - a.target = '_parent'; + a.target = "_parent"; - if ('download' in a) { + if ("download" in a) { a.download = filename; } @@ -14268,252 +13750,126 @@ function _download(blobUrl, filename) { a.remove(); } -var DownloadManager = -/*#__PURE__*/ -function () { - function DownloadManager(_ref) { - var _ref$disableCreateObj = _ref.disableCreateObjectURL, - disableCreateObjectURL = _ref$disableCreateObj === void 0 ? DISABLE_CREATE_OBJECT_URL : _ref$disableCreateObj; - - _classCallCheck(this, DownloadManager); - - this.disableCreateObjectURL = disableCreateObjectURL; +class DownloadManager { + constructor() { + this._openBlobUrls = new WeakMap(); } - _createClass(DownloadManager, [{ - key: "downloadUrl", - value: function downloadUrl(url, filename) { - if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, 'http://example.com')) { - return; - } - - _download(url + '#pdfjs.action=download', filename); + downloadUrl(url, filename) { + if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { + return; } - }, { - key: "downloadData", - value: function downloadData(data, filename, contentType) { - if (navigator.msSaveBlob) { - navigator.msSaveBlob(new Blob([data], { + + download(url + "#pdfjs.action=download", filename); + } + + downloadData(data, filename, contentType) { + const blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, _viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL); + download(blobUrl, filename); + } + + openOrDownloadData(element, data, filename) { + const isPdfData = (0, _pdfjsLib.isPdfFile)(filename); + const contentType = isPdfData ? "application/pdf" : ""; + + if (isPdfData && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + let blobUrl = this._openBlobUrls.get(element); + + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([data], { type: contentType - }), filename); - return; + })); + + this._openBlobUrls.set(element, blobUrl); } - var blobUrl = (0, _pdfjsLib.createObjectURL)(data, contentType, this.disableCreateObjectURL); + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); - _download(blobUrl, filename); + try { + window.open(viewerUrl); + return true; + } catch (ex) { + console.error(`openOrDownloadData: ${ex}`); + URL.revokeObjectURL(blobUrl); + + this._openBlobUrls.delete(element); + } } - }, { - key: "download", - value: function download(blob, url, filename) { - if (navigator.msSaveBlob) { - if (!navigator.msSaveBlob(blob, filename)) { - this.downloadUrl(url, filename); - } - return; - } + this.downloadData(data, filename, contentType); + return false; + } - if (this.disableCreateObjectURL) { - this.downloadUrl(url, filename); - return; - } - - var blobUrl = _pdfjsLib.URL.createObjectURL(blob); - - _download(blobUrl, filename); + download(blob, url, filename, sourceEventType = "download") { + if (_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { + this.downloadUrl(url, filename); + return; } - }]); - return DownloadManager; -}(); + const blobUrl = URL.createObjectURL(blob); + download(blobUrl, filename); + } + +} exports.DownloadManager = DownloadManager; /***/ }), -/* 39 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 42 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); exports.GenericL10n = void 0; -var _regenerator = _interopRequireDefault(__webpack_require__(2)); +__webpack_require__(43); -__webpack_require__(40); +var _l10n_utils = __webpack_require__(30); -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } - -function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } } - -function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; } - -function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a 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); } } - -function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; } - -var webL10n = document.webL10n; - -var GenericL10n = -/*#__PURE__*/ -function () { - function GenericL10n(lang) { - _classCallCheck(this, GenericL10n); +const webL10n = document.webL10n; +class GenericL10n { + constructor(lang) { this._lang = lang; - this._ready = new Promise(function (resolve, reject) { - webL10n.setLanguage(lang, function () { + this._ready = new Promise((resolve, reject) => { + webL10n.setLanguage(lang, () => { resolve(webL10n); }); }); } - _createClass(GenericL10n, [{ - key: "getLanguage", - value: function () { - var _getLanguage = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee() { - var l10n; - return _regenerator["default"].wrap(function _callee$(_context) { - while (1) { - switch (_context.prev = _context.next) { - case 0: - _context.next = 2; - return this._ready; + async getLanguage() { + const l10n = await this._ready; + return l10n.getLanguage(); + } - case 2: - l10n = _context.sent; - return _context.abrupt("return", l10n.getLanguage()); + async getDirection() { + const l10n = await this._ready; + return l10n.getDirection(); + } - case 4: - case "end": - return _context.stop(); - } - } - }, _callee, this); - })); + async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) { + const l10n = await this._ready; + return l10n.get(key, args, fallback); + } - function getLanguage() { - return _getLanguage.apply(this, arguments); - } + async translate(element) { + const l10n = await this._ready; + return l10n.translate(element); + } - return getLanguage; - }() - }, { - key: "getDirection", - value: function () { - var _getDirection = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee2() { - var l10n; - return _regenerator["default"].wrap(function _callee2$(_context2) { - while (1) { - switch (_context2.prev = _context2.next) { - case 0: - _context2.next = 2; - return this._ready; - - case 2: - l10n = _context2.sent; - return _context2.abrupt("return", l10n.getDirection()); - - case 4: - case "end": - return _context2.stop(); - } - } - }, _callee2, this); - })); - - function getDirection() { - return _getDirection.apply(this, arguments); - } - - return getDirection; - }() - }, { - key: "get", - value: function () { - var _get = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee3(property, args, fallback) { - var l10n; - return _regenerator["default"].wrap(function _callee3$(_context3) { - while (1) { - switch (_context3.prev = _context3.next) { - case 0: - _context3.next = 2; - return this._ready; - - case 2: - l10n = _context3.sent; - return _context3.abrupt("return", l10n.get(property, args, fallback)); - - case 4: - case "end": - return _context3.stop(); - } - } - }, _callee3, this); - })); - - function get(_x, _x2, _x3) { - return _get.apply(this, arguments); - } - - return get; - }() - }, { - key: "translate", - value: function () { - var _translate = _asyncToGenerator( - /*#__PURE__*/ - _regenerator["default"].mark(function _callee4(element) { - var l10n; - return _regenerator["default"].wrap(function _callee4$(_context4) { - while (1) { - switch (_context4.prev = _context4.next) { - case 0: - _context4.next = 2; - return this._ready; - - case 2: - l10n = _context4.sent; - return _context4.abrupt("return", l10n.translate(element)); - - case 4: - case "end": - return _context4.stop(); - } - } - }, _callee4, this); - })); - - function translate(_x4) { - return _translate.apply(this, arguments); - } - - return translate; - }() - }]); - - return GenericL10n; -}(); +} exports.GenericL10n = GenericL10n; /***/ }), -/* 40 */ -/***/ (function(module, exports, __webpack_require__) { +/* 43 */ +/***/ (() => { -"use strict"; document.webL10n = function (window, document, undefined) { @@ -14558,13 +13914,6 @@ document.webL10n = function (window, document, undefined) { }; } - function fireL10nReadyEvent(lang) { - var evtObject = document.createEvent('Event'); - evtObject.initEvent('localized', true, false); - evtObject.language = lang; - document.dispatchEvent(evtObject); - } - function xhrLoadText(url, onSuccess, onFailure) { onSuccess = onSuccess || function _onSuccess(data) {}; @@ -14743,7 +14092,6 @@ document.webL10n = function (window, document, undefined) { console.log('no resource to load, early way out'); } - fireL10nReadyEvent(lang); gReadyState = 'complete'; return; } @@ -14751,12 +14099,11 @@ document.webL10n = function (window, document, undefined) { var onResourceLoaded = null; var gResourceCount = 0; - onResourceLoaded = function onResourceLoaded() { + onResourceLoaded = function () { gResourceCount++; if (gResourceCount >= langCount) { callback(); - fireL10nReadyEvent(lang); gReadyState = 'complete'; } }; @@ -14969,10 +14316,10 @@ document.webL10n = function (window, document, undefined) { } var pluralRules = { - '0': function _(n) { + '0': function (n) { return 'other'; }, - '1': function _(n) { + '1': function (n) { if (isBetween(n % 100, 3, 10)) return 'few'; if (n === 0) return 'zero'; if (isBetween(n % 100, 11, 99)) return 'many'; @@ -14980,85 +14327,85 @@ document.webL10n = function (window, document, undefined) { if (n == 1) return 'one'; return 'other'; }, - '2': function _(n) { + '2': function (n) { if (n !== 0 && n % 10 === 0) return 'many'; if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '3': function _(n) { + '3': function (n) { if (n == 1) return 'one'; return 'other'; }, - '4': function _(n) { + '4': function (n) { if (isBetween(n, 0, 1)) return 'one'; return 'other'; }, - '5': function _(n) { + '5': function (n) { if (isBetween(n, 0, 2) && n != 2) return 'one'; return 'other'; }, - '6': function _(n) { + '6': function (n) { if (n === 0) return 'zero'; if (n % 10 == 1 && n % 100 != 11) return 'one'; return 'other'; }, - '7': function _(n) { + '7': function (n) { if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '8': function _(n) { + '8': function (n) { if (isBetween(n, 3, 6)) return 'few'; if (isBetween(n, 7, 10)) return 'many'; if (n == 2) return 'two'; if (n == 1) return 'one'; return 'other'; }, - '9': function _(n) { + '9': function (n) { if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; if (n == 1) return 'one'; return 'other'; }, - '10': function _(n) { + '10': function (n) { if (isBetween(n % 10, 2, 9) && !isBetween(n % 100, 11, 19)) return 'few'; if (n % 10 == 1 && !isBetween(n % 100, 11, 19)) return 'one'; return 'other'; }, - '11': function _(n) { + '11': function (n) { if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; if (n % 10 === 0 || isBetween(n % 10, 5, 9) || isBetween(n % 100, 11, 14)) return 'many'; if (n % 10 == 1 && n % 100 != 11) return 'one'; return 'other'; }, - '12': function _(n) { + '12': function (n) { if (isBetween(n, 2, 4)) return 'few'; if (n == 1) return 'one'; return 'other'; }, - '13': function _(n) { + '13': function (n) { if (isBetween(n % 10, 2, 4) && !isBetween(n % 100, 12, 14)) return 'few'; if (n != 1 && isBetween(n % 10, 0, 1) || isBetween(n % 10, 5, 9) || isBetween(n % 100, 12, 14)) return 'many'; if (n == 1) return 'one'; return 'other'; }, - '14': function _(n) { + '14': function (n) { if (isBetween(n % 100, 3, 4)) return 'few'; if (n % 100 == 2) return 'two'; if (n % 100 == 1) return 'one'; return 'other'; }, - '15': function _(n) { + '15': function (n) { if (n === 0 || isBetween(n % 100, 2, 10)) return 'few'; if (isBetween(n % 100, 11, 19)) return 'many'; if (n == 1) return 'one'; return 'other'; }, - '16': function _(n) { + '16': function (n) { if (n % 10 == 1 && n != 11) return 'one'; return 'other'; }, - '17': function _(n) { + '17': function (n) { if (n == 3) return 'few'; if (n === 0) return 'zero'; if (n == 6) return 'many'; @@ -15066,37 +14413,37 @@ document.webL10n = function (window, document, undefined) { if (n == 1) return 'one'; return 'other'; }, - '18': function _(n) { + '18': function (n) { if (n === 0) return 'zero'; if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; return 'other'; }, - '19': function _(n) { + '19': function (n) { if (isBetween(n, 2, 10)) return 'few'; if (isBetween(n, 0, 1)) return 'one'; return 'other'; }, - '20': function _(n) { + '20': function (n) { if ((isBetween(n % 10, 3, 4) || n % 10 == 9) && !(isBetween(n % 100, 10, 19) || isBetween(n % 100, 70, 79) || isBetween(n % 100, 90, 99))) return 'few'; if (n % 1000000 === 0 && n !== 0) return 'many'; if (n % 10 == 2 && !isIn(n % 100, [12, 72, 92])) return 'two'; if (n % 10 == 1 && !isIn(n % 100, [11, 71, 91])) return 'one'; return 'other'; }, - '21': function _(n) { + '21': function (n) { if (n === 0) return 'zero'; if (n == 1) return 'one'; return 'other'; }, - '22': function _(n) { + '22': function (n) { if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; return 'other'; }, - '23': function _(n) { + '23': function (n) { if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; return 'other'; }, - '24': function _(n) { + '24': function (n) { if (isBetween(n, 3, 10) || isBetween(n, 13, 19)) return 'few'; if (isIn(n, [2, 12])) return 'two'; if (isIn(n, [1, 11])) return 'one'; @@ -15277,7 +14624,7 @@ document.webL10n = function (window, document, undefined) { } return { - get: function get(key, args, fallbackString) { + get: function (key, args, fallbackString) { var index = key.lastIndexOf('.'); var prop = gTextProp; @@ -15301,30 +14648,30 @@ document.webL10n = function (window, document, undefined) { return '{{' + key + '}}'; }, - getData: function getData() { + getData: function () { return gL10nData; }, - getText: function getText() { + getText: function () { return gTextData; }, - getLanguage: function getLanguage() { + getLanguage: function () { return gLanguage; }, - setLanguage: function setLanguage(lang, callback) { + setLanguage: function (lang, callback) { loadLocale(lang, function () { if (callback) callback(); }); }, - getDirection: function getDirection() { + getDirection: function () { var rtlList = ['ar', 'he', 'fa', 'ps', 'ur']; var shortCode = gLanguage.split('-', 1)[0]; return rtlList.indexOf(shortCode) >= 0 ? 'rtl' : 'ltr'; }, translate: translateFragment, - getReadyState: function getReadyState() { + getReadyState: function () { return gReadyState; }, - ready: function ready(callback) { + ready: function (callback) { if (!callback) { return; } else if (gReadyState == 'complete' || gReadyState == 'interactive') { @@ -15342,94 +14689,155 @@ document.webL10n = function (window, document, undefined) { }(window, document); /***/ }), -/* 41 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; +/* 44 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -Object.defineProperty(exports, "__esModule", { + +Object.defineProperty(exports, "__esModule", ({ value: true -}); +})); +exports.docPropertiesLookup = docPropertiesLookup; +exports.GenericScripting = void 0; + +var _pdfjsLib = __webpack_require__(5); + +async function docPropertiesLookup(pdfDocument) { + const url = "", + baseUrl = url.split("#")[0]; + let { + info, + metadata, + contentDispositionFilename, + contentLength + } = await pdfDocument.getMetadata(); + + if (!contentLength) { + const { + length + } = await pdfDocument.getDownloadInfo(); + contentLength = length; + } + + return { ...info, + baseURL: baseUrl, + filesize: contentLength, + filename: contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(url), + metadata: metadata?.getRaw(), + authors: metadata?.get("dc:creator"), + numPages: pdfDocument.numPages, + URL: url + }; +} + +class GenericScripting { + constructor(sandboxBundleSrc) { + this._ready = (0, _pdfjsLib.loadScript)(sandboxBundleSrc, true).then(() => { + return window.pdfjsSandbox.QuickJSSandbox(); + }); + } + + async createSandbox(data) { + const sandbox = await this._ready; + sandbox.create(data); + } + + async dispatchEventInSandbox(event) { + const sandbox = await this._ready; + sandbox.dispatchEvent(event); + } + + async destroySandbox() { + const sandbox = await this._ready; + sandbox.nukeSandbox(); + } + +} + +exports.GenericScripting = GenericScripting; + +/***/ }), +/* 45 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); exports.PDFPrintService = PDFPrintService; -var _ui_utils = __webpack_require__(5); +var _app = __webpack_require__(3); -var _app = __webpack_require__(1); +var _viewer_compatibility = __webpack_require__(2); -var _app_options = __webpack_require__(6); +let activeService = null; +let overlayManager = null; -var _pdfjsLib = __webpack_require__(7); - -var activeService = null; -var overlayManager = null; - -function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size) { - var scratchCanvas = activeService.scratchCanvas; - var PRINT_RESOLUTION = _app_options.AppOptions.get('printResolution') || 150; - var PRINT_UNITS = PRINT_RESOLUTION / 72.0; +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise) { + const scratchCanvas = activeService.scratchCanvas; + const PRINT_UNITS = printResolution / 72.0; scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); - var width = Math.floor(size.width * _ui_utils.CSS_UNITS) + 'px'; - var height = Math.floor(size.height * _ui_utils.CSS_UNITS) + 'px'; - var ctx = scratchCanvas.getContext('2d'); + const ctx = scratchCanvas.getContext("2d"); ctx.save(); - ctx.fillStyle = 'rgb(255, 255, 255)'; + ctx.fillStyle = "rgb(255, 255, 255)"; ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); ctx.restore(); return pdfDocument.getPage(pageNumber).then(function (pdfPage) { - var renderContext = { + const renderContext = { canvasContext: ctx, transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], viewport: pdfPage.getViewport({ scale: 1, rotation: size.rotation }), - intent: 'print' + intent: "print", + includeAnnotationStorage: true, + optionalContentConfigPromise }; return pdfPage.render(renderContext).promise; - }).then(function () { - return { - width: width, - height: height - }; }); } -function PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n) { +function PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise = null, l10n) { this.pdfDocument = pdfDocument; this.pagesOverview = pagesOverview; this.printContainer = printContainer; - this.l10n = l10n || _ui_utils.NullL10n; - this.disableCreateObjectURL = pdfDocument.loadingParams['disableCreateObjectURL']; + this._printResolution = printResolution || 150; + this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig(); + this.l10n = l10n; this.currentPage = -1; - this.scratchCanvas = document.createElement('canvas'); + this.scratchCanvas = document.createElement("canvas"); } PDFPrintService.prototype = { - layout: function layout() { + layout() { this.throwIfInactive(); - var body = document.querySelector('body'); - body.setAttribute('data-pdfjsprinting', true); - var hasEqualPageSizes = this.pagesOverview.every(function (size) { + const body = document.querySelector("body"); + body.setAttribute("data-pdfjsprinting", true); + const hasEqualPageSizes = this.pagesOverview.every(function (size) { return size.width === this.pagesOverview[0].width && size.height === this.pagesOverview[0].height; }, this); if (!hasEqualPageSizes) { - console.warn('Not all pages have the same size. The printed ' + 'result may be incorrect!'); + console.warn("Not all pages have the same size. The printed " + "result may be incorrect!"); } - this.pageStyleSheet = document.createElement('style'); - var pageSize = this.pagesOverview[0]; - this.pageStyleSheet.textContent = '@supports ((size:A4) and (size:1pt 1pt)) {' + '@page { size: ' + pageSize.width + 'pt ' + pageSize.height + 'pt;}' + '}'; + this.pageStyleSheet = document.createElement("style"); + const pageSize = this.pagesOverview[0]; + this.pageStyleSheet.textContent = "@page { size: " + pageSize.width + "pt " + pageSize.height + "pt;}"; body.appendChild(this.pageStyleSheet); }, - destroy: function destroy() { + + destroy() { if (activeService !== this) { return; } - this.printContainer.textContent = ''; + this.printContainer.textContent = ""; + const body = document.querySelector("body"); + body.removeAttribute("data-pdfjsprinting"); if (this.pageStyleSheet) { this.pageStyleSheet.remove(); @@ -15440,52 +14848,50 @@ PDFPrintService.prototype = { this.scratchCanvas = null; activeService = null; ensureOverlay().then(function () { - if (overlayManager.active !== 'printServiceOverlay') { + if (overlayManager.active !== "printServiceOverlay") { return; } - overlayManager.close('printServiceOverlay'); + overlayManager.close("printServiceOverlay"); }); }, - renderPages: function renderPages() { - var _this = this; - var pageCount = this.pagesOverview.length; + renderPages() { + const pageCount = this.pagesOverview.length; - var renderNextPage = function renderNextPage(resolve, reject) { - _this.throwIfInactive(); + const renderNextPage = (resolve, reject) => { + this.throwIfInactive(); - if (++_this.currentPage >= pageCount) { - renderProgress(pageCount, pageCount, _this.l10n); + if (++this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount, this.l10n); resolve(); return; } - var index = _this.currentPage; - renderProgress(index, pageCount, _this.l10n); - renderPage(_this, _this.pdfDocument, index + 1, _this.pagesOverview[index]).then(_this.useRenderedPage.bind(_this)).then(function () { + const index = this.currentPage; + renderProgress(index, pageCount, this.l10n); + renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise).then(this.useRenderedPage.bind(this)).then(function () { renderNextPage(resolve, reject); }, reject); }; return new Promise(renderNextPage); }, - useRenderedPage: function useRenderedPage(printItem) { - this.throwIfInactive(); - var img = document.createElement('img'); - img.style.width = printItem.width; - img.style.height = printItem.height; - var scratchCanvas = this.scratchCanvas; - if ('toBlob' in scratchCanvas && !this.disableCreateObjectURL) { + useRenderedPage() { + this.throwIfInactive(); + const img = document.createElement("img"); + const scratchCanvas = this.scratchCanvas; + + if ("toBlob" in scratchCanvas && !_viewer_compatibility.viewerCompatibilityParams.disableCreateObjectURL) { scratchCanvas.toBlob(function (blob) { - img.src = _pdfjsLib.URL.createObjectURL(blob); + img.src = URL.createObjectURL(blob); }); } else { img.src = scratchCanvas.toDataURL(); } - var wrapper = document.createElement('div'); + const wrapper = document.createElement("div"); wrapper.appendChild(img); this.printContainer.appendChild(wrapper); return new Promise(function (resolve, reject) { @@ -15493,13 +14899,12 @@ PDFPrintService.prototype = { img.onerror = reject; }); }, - performPrint: function performPrint() { - var _this2 = this; + performPrint() { this.throwIfInactive(); - return new Promise(function (resolve) { - setTimeout(function () { - if (!_this2.active) { + return new Promise(resolve => { + setTimeout(() => { + if (!this.active) { resolve(); return; } @@ -15514,43 +14919,44 @@ PDFPrintService.prototype = { return this === activeService; }, - throwIfInactive: function throwIfInactive() { + throwIfInactive() { if (!this.active) { - throw new Error('This print request was cancelled or completed.'); + throw new Error("This print request was cancelled or completed."); } } -}; -var print = window.print; -window.print = function print() { +}; +const print = window.print; + +window.print = function () { if (activeService) { - console.warn('Ignored window.print() because of a pending print job.'); + console.warn("Ignored window.print() because of a pending print job."); return; } ensureOverlay().then(function () { if (activeService) { - overlayManager.open('printServiceOverlay'); + overlayManager.open("printServiceOverlay"); } }); try { - dispatchEvent('beforeprint'); + dispatchEvent("beforeprint"); } finally { if (!activeService) { - console.error('Expected print service to be initialized.'); + console.error("Expected print service to be initialized."); ensureOverlay().then(function () { - if (overlayManager.active === 'printServiceOverlay') { - overlayManager.close('printServiceOverlay'); + if (overlayManager.active === "printServiceOverlay") { + overlayManager.close("printServiceOverlay"); } }); return; } - var activeServiceOnEntry = activeService; + const activeServiceOnEntry = activeService; activeService.renderPages().then(function () { return activeServiceOnEntry.performPrint(); - })["catch"](function () {}).then(function () { + }).catch(function () {}).then(function () { if (activeServiceOnEntry.active) { abort(); } @@ -15559,40 +14965,34 @@ window.print = function print() { }; function dispatchEvent(eventType) { - var event = document.createEvent('CustomEvent'); - event.initCustomEvent(eventType, false, false, 'custom'); + const event = document.createEvent("CustomEvent"); + event.initCustomEvent(eventType, false, false, "custom"); window.dispatchEvent(event); } function abort() { if (activeService) { activeService.destroy(); - dispatchEvent('afterprint'); + dispatchEvent("afterprint"); } } function renderProgress(index, total, l10n) { - var progressContainer = document.getElementById('printServiceOverlay'); - var progress = Math.round(100 * index / total); - var progressBar = progressContainer.querySelector('progress'); - var progressPerc = progressContainer.querySelector('.relative-progress'); + const progressContainer = document.getElementById("printServiceOverlay"); + const progress = Math.round(100 * index / total); + const progressBar = progressContainer.querySelector("progress"); + const progressPerc = progressContainer.querySelector(".relative-progress"); progressBar.value = progress; - l10n.get('print_progress_percent', { - progress: progress - }, progress + '%').then(function (msg) { + l10n.get("print_progress_percent", { + progress + }).then(msg => { progressPerc.textContent = msg; }); } -var hasAttachEvent = !!document.attachEvent; -window.addEventListener('keydown', function (event) { +window.addEventListener("keydown", function (event) { if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { window.print(); - - if (hasAttachEvent) { - return; - } - event.preventDefault(); if (event.stopImmediatePropagation) { @@ -15600,45 +15000,32 @@ window.addEventListener('keydown', function (event) { } else { event.stopPropagation(); } - - return; } }, true); -if (hasAttachEvent) { - document.attachEvent('onkeydown', function (event) { - event = event || window.event; - - if (event.keyCode === 80 && event.ctrlKey) { - event.keyCode = 0; - return false; - } - }); -} - -if ('onbeforeprint' in window) { - var stopPropagationIfNeeded = function stopPropagationIfNeeded(event) { - if (event.detail !== 'custom' && event.stopImmediatePropagation) { +if ("onbeforeprint" in window) { + const stopPropagationIfNeeded = function (event) { + if (event.detail !== "custom" && event.stopImmediatePropagation) { event.stopImmediatePropagation(); } }; - window.addEventListener('beforeprint', stopPropagationIfNeeded); - window.addEventListener('afterprint', stopPropagationIfNeeded); + window.addEventListener("beforeprint", stopPropagationIfNeeded); + window.addEventListener("afterprint", stopPropagationIfNeeded); } -var overlayPromise; +let overlayPromise; function ensureOverlay() { if (!overlayPromise) { overlayManager = _app.PDFViewerApplication.overlayManager; if (!overlayManager) { - throw new Error('The overlay manager has not yet been initialized.'); + throw new Error("The overlay manager has not yet been initialized."); } - overlayPromise = overlayManager.register('printServiceOverlay', document.getElementById('printServiceOverlay'), abort, true); - document.getElementById('printCancel').onclick = abort; + overlayPromise = overlayManager.register("printServiceOverlay", document.getElementById("printServiceOverlay"), abort, true); + document.getElementById("printCancel").onclick = abort; } return overlayPromise; @@ -15646,16 +15033,237 @@ function ensureOverlay() { _app.PDFPrintServiceFactory.instance = { supportsPrinting: true, - createPrintService: function createPrintService(pdfDocument, pagesOverview, printContainer, l10n) { + + createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n) { if (activeService) { - throw new Error('The print service is created and active.'); + throw new Error("The print service is created and active."); } - activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, l10n); + activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, l10n); return activeService; } + }; /***/ }) -/******/ ]); -//# sourceMappingURL=viewer.js.map +/******/ ]); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ __webpack_modules__[moduleId](module, module.exports, __webpack_require__); +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +var exports = __webpack_exports__; + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +Object.defineProperty(exports, "PDFViewerApplicationOptions", ({ + enumerable: true, + get: function () { + return _app_options.AppOptions; + } +})); +Object.defineProperty(exports, "PDFViewerApplication", ({ + enumerable: true, + get: function () { + return _app.PDFViewerApplication; + } +})); + +var _app_options = __webpack_require__(1); + +var _app = __webpack_require__(3); + +const pdfjsVersion = '2.9.359'; +const pdfjsBuild = 'e667c8cbc'; +window.PDFViewerApplication = _app.PDFViewerApplication; +window.PDFViewerApplicationOptions = _app_options.AppOptions; +; +; +{ + __webpack_require__(39); +} +; +{ + __webpack_require__(45); +} + +function getViewerConfiguration() { + let errorWrapper = null; + errorWrapper = { + container: document.getElementById("errorWrapper"), + errorMessage: document.getElementById("errorMessage"), + closeButton: document.getElementById("errorClose"), + errorMoreInfo: document.getElementById("errorMoreInfo"), + moreInfoButton: document.getElementById("errorShowMore"), + lessInfoButton: document.getElementById("errorShowLess") + }; + return { + appContainer: document.body, + mainContainer: document.getElementById("viewerContainer"), + viewerContainer: document.getElementById("viewer"), + eventBus: null, + toolbar: { + container: document.getElementById("toolbarViewer"), + numPages: document.getElementById("numPages"), + pageNumber: document.getElementById("pageNumber"), + scaleSelectContainer: document.getElementById("scaleSelectContainer"), + scaleSelect: document.getElementById("scaleSelect"), + customScaleOption: document.getElementById("customScaleOption"), + previous: document.getElementById("previous"), + next: document.getElementById("next"), + zoomIn: document.getElementById("zoomIn"), + zoomOut: document.getElementById("zoomOut"), + viewFind: document.getElementById("viewFind"), + openFile: document.getElementById("openFile"), + print: document.getElementById("print"), + presentationModeButton: document.getElementById("presentationMode"), + download: document.getElementById("download"), + viewBookmark: document.getElementById("viewBookmark") + }, + secondaryToolbar: { + toolbar: document.getElementById("secondaryToolbar"), + toggleButton: document.getElementById("secondaryToolbarToggle"), + toolbarButtonContainer: document.getElementById("secondaryToolbarButtonContainer"), + presentationModeButton: document.getElementById("secondaryPresentationMode"), + openFileButton: document.getElementById("secondaryOpenFile"), + printButton: document.getElementById("secondaryPrint"), + downloadButton: document.getElementById("secondaryDownload"), + viewBookmarkButton: document.getElementById("secondaryViewBookmark"), + firstPageButton: document.getElementById("firstPage"), + lastPageButton: document.getElementById("lastPage"), + pageRotateCwButton: document.getElementById("pageRotateCw"), + pageRotateCcwButton: document.getElementById("pageRotateCcw"), + cursorSelectToolButton: document.getElementById("cursorSelectTool"), + cursorHandToolButton: document.getElementById("cursorHandTool"), + scrollVerticalButton: document.getElementById("scrollVertical"), + scrollHorizontalButton: document.getElementById("scrollHorizontal"), + scrollWrappedButton: document.getElementById("scrollWrapped"), + spreadNoneButton: document.getElementById("spreadNone"), + spreadOddButton: document.getElementById("spreadOdd"), + spreadEvenButton: document.getElementById("spreadEven"), + documentPropertiesButton: document.getElementById("documentProperties") + }, + sidebar: { + outerContainer: document.getElementById("outerContainer"), + viewerContainer: document.getElementById("viewerContainer"), + toggleButton: document.getElementById("sidebarToggle"), + thumbnailButton: document.getElementById("viewThumbnail"), + outlineButton: document.getElementById("viewOutline"), + attachmentsButton: document.getElementById("viewAttachments"), + layersButton: document.getElementById("viewLayers"), + thumbnailView: document.getElementById("thumbnailView"), + outlineView: document.getElementById("outlineView"), + attachmentsView: document.getElementById("attachmentsView"), + layersView: document.getElementById("layersView"), + outlineOptionsContainer: document.getElementById("outlineOptionsContainer"), + currentOutlineItemButton: document.getElementById("currentOutlineItem") + }, + sidebarResizer: { + outerContainer: document.getElementById("outerContainer"), + resizer: document.getElementById("sidebarResizer") + }, + findBar: { + bar: document.getElementById("findbar"), + toggleButton: document.getElementById("viewFind"), + findField: document.getElementById("findInput"), + highlightAllCheckbox: document.getElementById("findHighlightAll"), + caseSensitiveCheckbox: document.getElementById("findMatchCase"), + entireWordCheckbox: document.getElementById("findEntireWord"), + findMsg: document.getElementById("findMsg"), + findResultsCount: document.getElementById("findResultsCount"), + findPreviousButton: document.getElementById("findPrevious"), + findNextButton: document.getElementById("findNext") + }, + passwordOverlay: { + overlayName: "passwordOverlay", + container: document.getElementById("passwordOverlay"), + label: document.getElementById("passwordText"), + input: document.getElementById("password"), + submitButton: document.getElementById("passwordSubmit"), + cancelButton: document.getElementById("passwordCancel") + }, + documentProperties: { + overlayName: "documentPropertiesOverlay", + container: document.getElementById("documentPropertiesOverlay"), + closeButton: document.getElementById("documentPropertiesClose"), + fields: { + fileName: document.getElementById("fileNameField"), + fileSize: document.getElementById("fileSizeField"), + title: document.getElementById("titleField"), + author: document.getElementById("authorField"), + subject: document.getElementById("subjectField"), + keywords: document.getElementById("keywordsField"), + creationDate: document.getElementById("creationDateField"), + modificationDate: document.getElementById("modificationDateField"), + creator: document.getElementById("creatorField"), + producer: document.getElementById("producerField"), + version: document.getElementById("versionField"), + pageCount: document.getElementById("pageCountField"), + pageSize: document.getElementById("pageSizeField"), + linearized: document.getElementById("linearizedField") + } + }, + errorWrapper, + printContainer: document.getElementById("printContainer"), + openFileInputName: "fileInput", + debuggerScriptPath: "./debugger.js" + }; +} + +function webViewerLoad() { + const config = getViewerConfiguration(); + const event = document.createEvent("CustomEvent"); + event.initCustomEvent("webviewerloaded", true, true, { + source: window + }); + + try { + parent.document.dispatchEvent(event); + } catch (ex) { + console.error(`webviewerloaded: ${ex}`); + document.dispatchEvent(event); + } + + _app.PDFViewerApplication.run(config); +} + +if (document.blockUnblockOnload) { + document.blockUnblockOnload(true); +} + +if (document.readyState === "interactive" || document.readyState === "complete") { + webViewerLoad(); +} else { + document.addEventListener("DOMContentLoaded", webViewerLoad, true); +} +})(); + +/******/ })() +; +//# sourceMappingURL=viewer.js.map \ No newline at end of file diff --git a/res/static/misc/pdf-viewer/web/viewer.js.map b/res/static/misc/pdf-viewer/web/viewer.js.map index a3af188..3b686be 100644 --- a/res/static/misc/pdf-viewer/web/viewer.js.map +++ b/res/static/misc/pdf-viewer/web/viewer.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///web/viewer.js","webpack:///web/app.js","webpack:///node_modules/@babel/runtime/regenerator/index.js","webpack:///node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js","webpack:///node_modules/webpack/buildin/module.js","webpack:///web/ui_utils.js","webpack:///web/app_options.js","webpack:///web/pdfjs.js","webpack:///web/viewer_compatibility.js","webpack:///web/pdf_cursor_tools.js","webpack:///web/grab_to_pan.js","webpack:///web/pdf_rendering_queue.js","webpack:///web/pdf_sidebar.js","webpack:///web/overlay_manager.js","webpack:///web/password_prompt.js","webpack:///web/pdf_attachment_viewer.js","webpack:///web/pdf_document_properties.js","webpack:///web/pdf_find_bar.js","webpack:///web/pdf_find_controller.js","webpack:///web/pdf_find_utils.js","webpack:///web/pdf_history.js","webpack:///web/pdf_link_service.js","webpack:///web/pdf_outline_viewer.js","webpack:///web/pdf_presentation_mode.js","webpack:///web/pdf_sidebar_resizer.js","webpack:///web/pdf_thumbnail_viewer.js","webpack:///web/pdf_thumbnail_view.js","webpack:///web/pdf_viewer.js","webpack:///web/base_viewer.js","webpack:///web/annotation_layer_builder.js","webpack:///web/pdf_page_view.js","webpack:///web/text_layer_builder.js","webpack:///web/secondary_toolbar.js","webpack:///web/pdf_single_page_viewer.js","webpack:///web/toolbar.js","webpack:///web/view_history.js","webpack:///web/genericcom.js","webpack:///web/preferences.js","webpack:///web/download_manager.js","webpack:///web/genericl10n.js","webpack:///external/webL10n/l10n.js","webpack:///web/pdf_print_service.js"],"names":["pdfjsWebApp","require","pdfjsWebAppOptions","appContainer","document","mainContainer","viewerContainer","eventBus","toolbar","container","numPages","pageNumber","scaleSelectContainer","scaleSelect","customScaleOption","previous","next","zoomIn","zoomOut","viewFind","openFile","print","presentationModeButton","download","viewBookmark","secondaryToolbar","toggleButton","toolbarButtonContainer","openFileButton","printButton","downloadButton","viewBookmarkButton","firstPageButton","lastPageButton","pageRotateCwButton","pageRotateCcwButton","cursorSelectToolButton","cursorHandToolButton","scrollVerticalButton","scrollHorizontalButton","scrollWrappedButton","spreadNoneButton","spreadOddButton","spreadEvenButton","documentPropertiesButton","fullscreen","contextFirstPage","contextLastPage","contextPageRotateCw","contextPageRotateCcw","sidebar","outerContainer","thumbnailButton","outlineButton","attachmentsButton","thumbnailView","outlineView","attachmentsView","sidebarResizer","resizer","findBar","bar","findField","highlightAllCheckbox","caseSensitiveCheckbox","entireWordCheckbox","findMsg","findResultsCount","findPreviousButton","findNextButton","passwordOverlay","overlayName","label","input","submitButton","cancelButton","documentProperties","closeButton","fields","errorWrapper","errorMessage","errorMoreInfo","moreInfoButton","lessInfoButton","printContainer","openFileInputName","debuggerScriptPath","config","getViewerConfiguration","window","event","webViewerLoad","DEFAULT_SCALE_DELTA","DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT","FORCE_PAGES_LOADED_TIMEOUT","WHEEL_ZOOM_DISABLED_TIMEOUT","ViewOnLoad","UNKNOWN","PREVIOUS","INITIAL","DefaultExternalServices","updateFindControlState","updateFindMatchesCount","initPassiveLoading","fallback","reportTelemetry","createDownloadManager","createPreferences","createL10n","supportsIntegratedFind","supportsDocumentFonts","supportsDocumentColors","supportedMouseWheelZoomModifierKeys","ctrlKey","metaKey","PDFViewerApplication","initialBookmark","initialized","fellback","appConfig","pdfDocument","pdfLoadingTask","printService","pdfViewer","pdfThumbnailViewer","pdfRenderingQueue","pdfPresentationMode","pdfDocumentProperties","pdfLinkService","pdfHistory","pdfSidebar","pdfSidebarResizer","pdfOutlineViewer","pdfAttachmentViewer","pdfCursorTools","store","downloadManager","overlayManager","preferences","l10n","isInitialViewSet","downloadComplete","isViewerEmbedded","url","baseUrl","externalServices","_boundEvents","contentDispositionFilename","AppOptions","LinkTarget","source","prefs","console","reason","waitOn","hash","hashParams","parseQueryString","loadFakeWorker","TextLayerMode","viewer","enabled","loadAndEnablePDFBug","locale","dir","getGlobalEventBus","externalLinkTarget","externalLinkRel","disableCreateObjectURL","findController","linkService","renderingQueue","renderer","enableWebGL","textLayerMode","imageResourcesPath","renderInteractiveForms","enablePrintAutoRotate","useOnlyCssZoom","maxCanvasPixels","cursorToolOnLoad","contextMenuItems","elements","run","newScale","Math","zoomReset","ignoreDuplicate","PDFPrintServiceFactory","doc","support","shadow","setTitleUsingUrl","title","getPDFFileNameFromURL","decodeURIComponent","getFilenameFromUrl","setTitle","promise","PDFBug","workerParameters","OptionKind","GlobalWorkerOptions","parameters","Object","file","apiParameters","prop","args","loadingTask","getDocument","loaded","exception","message","loadingErrorMessage","msg","filename","err","downloadByUrl","blob","type","error","moreInfoText","version","build","moreInfo","stack","line","errorWrapperConfig","Promise","parts","progress","percent","level","isNaN","disableAutoFetch","clearTimeout","load","firstPagePromise","pageLayoutPromise","pageModePromise","openActionDestPromise","baseDocumentUrl","pagesPromise","onePageRendered","pdfPage","storePromise","page","zoom","scrollLeft","scrollTop","rotation","sidebarView","SidebarView","scrollMode","ScrollMode","spreadMode","SpreadMode","values","viewOnLoad","fingerprint","initialDest","parseInt","pageMode","apiPageModeToSidebarView","pageLayout","apiPageLayoutToSpreadMode","resolve","setTimeout","labels","i","numLabels","javaScript","js","UNSUPPORTED_FEATURES","regex","ii","outline","attachments","info","metadata","pdfTitle","_initializePdfHistory","resetHistory","updateUrl","JSON","explicitDest","setInitialView","setRotation","angle","isValidRotation","setViewerModes","isValidScrollMode","isValidSpreadMode","cleanup","RendererType","forceRendering","beforePrint","printMessage","notReadyMessage","pagesOverview","afterPrint","rotatePages","newRotation","requestPresentationMode","bindEvents","bindWindowEvents","passive","unbindEvents","unbindWindowEvents","HOSTED_VIEWER_ORIGINS","validateFileURL","viewerOrigin","origin","protocol","ex","loadScript","PDFWorker","OPS","createObjectURL","queryString","params","fileInput","files","evt","webViewerOpenFileViaURL","xhr","pageIndex","pageView","Stats","mode","view","action","switchInProgress","PresentationModeState","active","location","href","currentPage","loading","RenderingStates","currentScaleValue","webViewerFileInputChange","URL","originalUrl","fileReader","buffer","query","phraseSearch","caseSensitive","entireWord","highlightAll","findPrevious","result","matchesCount","setZoomDisabledTimeout","zoomDisabledTimeout","previousScale","delta","normalizeWheelEventDelta","MOUSE_WHEEL_DELTA_PER_PAGE_SCALE","ticks","currentScale","scaleCorrectionFactor","rect","dx","dy","handled","ensureViewerFocused","cmd","isViewerInPresentationMode","findState","curElement","curElementTagName","turnPage","turnOnlyIfPageFit","CursorTool","instance","supportsPrinting","createPrintService","module","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","toStringTagSymbol","protoGenerator","outerFn","generator","context","tryLocsList","makeInvokeMethod","exports","arg","fn","GenStateSuspendedStart","GenStateSuspendedYield","GenStateExecuting","GenStateCompleted","ContinueSentinel","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","GeneratorFunctionPrototype","Generator","GeneratorFunction","prototype","ctor","genFun","__await","record","tryCatch","reject","value","invoke","previousPromise","callInvokeWithMethodAndArg","defineIteratorMethods","AsyncIterator","iter","wrap","state","method","doneResult","delegate","delegateResult","maybeInvokeDelegate","done","entry","tryLoc","locs","keys","key","iteratorMethod","iterable","Context","constructor","reset","name","stop","rootEntry","rootRecord","dispatchException","handle","hasCatch","hasFinally","abrupt","finallyEntry","complete","finish","resetTryEntry","thrown","delegateYield","iterator","resultName","nextLoc","regeneratorRuntime","Function","enumerable","get","CSS_UNITS","DEFAULT_SCALE_VALUE","DEFAULT_SCALE","MIN_SCALE","MAX_SCALE","UNKNOWN_SCALE","MAX_AUTO_SCALE","SCROLLBAR_PADDING","VERTICAL_PADDING","NORMAL","CHANGING","FULLSCREEN","CANVAS","SVG","DISABLE","ENABLE","ENABLE_ENHANCE","VERTICAL","HORIZONTAL","WRAPPED","NONE","ODD","EVEN","NullL10n","formatL10nValue","devicePixelRatio","backingStoreRatio","ctx","pixelRatio","sx","sy","scaled","skipOverflowHiddenElements","parent","element","offsetY","offsetX","getComputedStyle","spot","debounceScroll","rAF","currentX","viewAreaElement","lastX","currentY","lastY","callback","right","down","_eventHandler","param","minIndex","maxIndex","items","condition","currentIndex","currentItem","xinv","limit","x_","x","a","b","c","d","p","q","r","changeOrientation","rotate","width","height","index","elt","views","pageTop","sortByVisibility","horizontal","top","scrollEl","bottom","left","elementBottom","elementRight","visible","numViews","firstVisibleElementInd","binarySearchFirstItem","backtrackBeforeAllVisibleElements","lastEdge","currentWidth","currentHeight","viewWidth","viewHeight","viewRight","viewBottom","hiddenHeight","hiddenWidth","id","y","first","last","pc","defaultFilename","isDataSchema","reURI","reFilename","splitURI","suggestedFilename","MOUSE_DOM_DELTA_PIXEL_MODE","MOUSE_DOM_DELTA_LINE_MODE","MOUSE_PIXELS_PER_LINE","MOUSE_LINES_PER_PAGE","Number","size","WaitOnType","EVENT","TIMEOUT","delay","target","eventHandler","handler","timeoutHandler","timeout","animationStarted","dispatchToDOM","on","eventListeners","off","dispatch","Array","listener","_dispatchDOMEvent","details","obj","globalEventBus","units","progressSize","setWidth","scrollbarWidth","clamp","moved","len","arr","write","read","VIEWER","API","WORKER","PREFERENCE","defaultOptions","kind","defaultUrl","defaultZoomValue","disableHistory","disablePageLabels","eventBusDispatchToDOM","historyUpdateUrl","compatibility","viewerCompatibilityParams","pdfBugEnabled","sidebarViewOnLoad","scrollModeOnLoad","spreadModeOnLoad","cMapPacked","cMapUrl","apiCompatibilityParams","disableFontFace","disableRange","disableStream","isEvalSupported","maxImageSize","pdfBug","postMessageTransfers","verbosity","workerPort","workerSrc","navigator","userOptions","userOption","defaultOption","options","valueType","pdfjsLib","__non_webpack_require__","compatibilityParams","userAgent","isAndroid","isIOS","SELECT","HAND","ZOOM","switchTool","tool","disableActiveTool","previouslyActive","overlay","GrabToPan","CSS_CLASS_GRAB","activate","deactivate","toggle","ignoreTarget","node","_onmousedown","focusedElement","_onmousemove","isLeftMouseReleased","xDiff","yDiff","behavior","_endPan","prefix","matchesSelector","isNotIEorIsIE10plus","chrome","isChrome15OrOpera15plus","isSafari6plus","CLEANUP_TIMEOUT","RUNNING","PAUSED","FINISHED","setViewer","setThumbnailViewer","isHighestPriority","renderHighestPriority","getHighestPriority","visibleViews","numVisible","nextPageIndex","previousPageIndex","isViewFinished","renderView","UI_NOTIFICATION_CLASS","THUMBS","OUTLINE","ATTACHMENTS","LAYERS","disableNotification","switchView","forceOpen","_switchView","isViewChanged","shouldForceRendering","pagesCount","_showUINotification","_hideUINotification","removeNotification","outlineCount","callerCloseMethod","canForceClose","_keyDown","e","PasswordResponses","promptString","password","setUpdateCallback","keepRenderedCapability","_dispatchEvent","attachmentsCount","_bindPdfLink","button","blobUrl","viewerUrl","encodeURIComponent","_bindLink","render","names","item","removeNullCharacters","div","_appendAttachment","content","DEFAULT_FIELD_CONTENT","NON_METRIC_LOCALES","US_PAGE_NAMES","METRIC_PAGE_NAMES","isPortrait","pageNames","freezeFieldData","data","writable","configurable","currentPageNumber","pagesRotation","getPageSizeInches","fileSize","setDocument","setFileSize","_updateUI","kb","size_kb","size_b","size_mb","pageSizeInches","isPortraitOrientation","sizeInches","sizeMillimeters","pageName","getPageName","exactMillimeters","intMillimeters","unit","orientation","dateObject","PDFDateString","date","time","_parseLinearization","isLinearized","MATCHES_COUNT_LIMIT","dispatchEvent","updateUIState","notFound","status","FindState","updateResultsCount","current","total","matchesCountMsg","findbarHeight","inputContainerHeight","FOUND","NOT_FOUND","PENDING","FIND_TIMEOUT","MATCH_SCROLL_OFFSET_TOP","MATCH_SCROLL_OFFSET_LEFT","CHARACTERS_TO_NORMALIZE","normalizationRegex","replace","executeCommand","findbarClosed","pendingTimeout","matchIndex","scrollMatchIntoView","scrollIntoView","pageIdx","matchIdx","wrapped","_shouldDirtyMatch","_prepareMatches","currentElem","matchesWithLength","nextElem","prevElem","isSubTerm","matches","matchesLength","_isEntireWord","startIdx","getCharacterType","endIdx","_calculatePhraseMatch","queryLen","pageContent","_calculateWordMatch","queryArray","subquery","subqueryLen","match","matchLength","skipped","_calculateMatch","pageMatchesCount","extractTextCapability","normalizeWhitespace","textContent","textItems","strBuf","j","jj","normalize","_updatePage","currentPageIndex","offset","numPageMatches","_matchesReady","numMatches","_advanceOffsetPage","found","_updateMatch","previousPage","_onFindBarClose","_updateUIState","CharacterType","SPACE","ALPHA_LETTER","PUNCT","HAN_LETTER","KATAKANA_LETTER","HIRAGANA_LETTER","HALFWIDTH_KATAKANA_LETTER","THAI_LETTER","charCode","isAlphabeticalScript","isAscii","isAsciiSpace","isAsciiAlpha","isAsciiDigit","isThai","isHan","isKatakana","isHiragana","isHalfwidthKatakana","HASH_CHANGE_TIMEOUT","POSITION_UPDATED_THRESHOLD","UPDATE_VIEWAREA_TIMEOUT","unescape","getCurrentHash","initialize","reInitialized","parseCurrentHash","destination","namedDest","push","forceReplace","isDestArraysEqual","dest","_pushOrReplaceState","shouldReplace","newState","uid","newUrl","temporary","_tryPushCurrentPosition","position","_isValidState","checkReload","performance","perfEntry","_updateInternalState","removeTemporary","_updateViewarea","_popState","newHash","hashChanged","waitOnEventOrTimeout","destHash","nameddest","second","isEntryEqual","firstDest","secondDest","setHistory","navigateTo","goToDestination","destRef","destArray","getDestinationHash","escape","str","getAnchorUrl","setHash","zoomArgs","zoomArg","zoomArgNumber","parseFloat","allowNegativeOffset","isValidExplicitDestination","executeNamedAction","cachePageRef","refStr","pageRef","_cachedPageNumber","isPageVisible","destLength","allowNull","DEFAULT_TITLE","addLinkAttributes","newWindow","rel","_setStyles","styleStr","_addToggleButton","toggler","count","shouldShowAll","_toggleOutlineItem","show","root","fragment","queue","hasAnyNesting","levelData","itemsDiv","DELAY_BEFORE_RESETTING_SWITCH_IN_PROGRESS","DELAY_BEFORE_HIDING_CONTROLS","ACTIVE_SELECTOR","CONTROLS_SELECTOR","MOUSE_SCROLL_COOLDOWN_TIME","PAGE_SWITCH_THRESHOLD","SWIPE_MIN_DISTANCE_THRESHOLD","SWIPE_ANGLE_THRESHOLD","Element","_mouseWheel","currentTime","storedTime","totalDelta","success","_mouseDown","isInternalLink","_touchSwipe","startX","startY","endX","endY","absAngle","SIDEBAR_WIDTH_VAR","SIDEBAR_MIN_WIDTH","SIDEBAR_RESIZING_CLASS","CSS","_updateWidth","maxWidth","_mouseMove","_mouseUp","updated","THUMBNAIL_SCROLL_MARGIN","THUMBNAIL_SELECTED_CLASS","watchScroll","getThumbnail","getVisibleElements","scrollThumbnailIntoView","prevThumbnailView","visibleThumbs","numVisibleThumbs","shouldScroll","PDFThumbnailView","firstPage","viewport","scale","pageNum","thumbnail","defaultViewport","disableCanvasToImageConversion","setPageLabels","_ensurePdfPageLoaded","thumbView","MAX_NUM_SCALING_STEPS","THUMBNAIL_CANVAS_BORDER_WIDTH","THUMBNAIL_WIDTH","TempImageFactory","tempCanvasCache","getCanvas","tempCanvas","alpha","destroyCanvas","anchor","ring","borderAdjustment","setPdfPage","totalRotation","childNodes","update","noCtxScale","_getPageDrawContext","canvas","outputScale","getOutputScale","className","image","renderCapability","finishRenderTask","renderTask","drawViewport","renderContinueCallback","cont","renderContext","canvasContext","setImage","img","reducedWidth","reducedHeight","reducedImage","reducedImageCtx","setPageLabel","ariaLabel","pageSpot","_scrollIntoView","pageDiv","_updateHelper","currentId","stillFullyVisible","visiblePages","DEFAULT_CACHE_SIZE","pageIdsToKeep","iMax","pagesToKeep","moveToEndOfArray","getPageView","_setCurrentPageNumber","resetCurrentPageView","val","pageLabel","pagesCapability","onePageRenderedCapability","bindOnAfterAndBeforeDraw","textLayerFactory","annotationLayerFactory","getPagesLeft","_setScaleUpdatePages","noScroll","preset","newValue","isSameScale","presetValue","_setScale","noPadding","hPadding","vPadding","pageWidthScale","pageHeightScale","horizontalScale","scrollPageIntoView","pageWidth","pageHeight","widthScale","heightScale","boundingRect","_updateLocation","normalizedScaleValue","pdfOpenParams","currentPageView","topLeft","intLeft","intTop","numVisiblePages","newCacheSize","containsElement","currentlyVisiblePages","scrollAhead","createTextLayerBuilder","enhanceTextSelection","textLayerDiv","createAnnotationLayerBuilder","isFirstPagePortrait","_updateScrollMode","_updateSpreadMode","pages","parity","spread","firstPageView","intent","annotations","dontFlip","AnnotationLayer","MAX_CANVAS_PIXELS","removeFromDOM","_resetZoomLayer","zoomLayerCanvas","keepZoomLayer","keepAnnotations","currentZoomLayerNode","currentAnnotationNode","cssTransform","isScalingRestricted","cancelRendering","redrawAnnotations","relativeRotation","absRotation","scaleX","scaleY","textLayerViewport","textRelativeRotation","textAbsRotation","transX","transY","getPagePoint","canvasWrapper","textLayer","finishPaintTask","paintTask","resultPromise","readableStream","paintOnCanvas","onRenderContinue","cancel","isCanvasHidden","showCanvas","actualSizeViewport","pixelsInViewport","maxScale","sfx","approximateFraction","sfy","roundToDivide","transform","paintOnSvg","cancelled","ensureNotCancelled","opList","svgGfx","svg","wrapper","EXPAND_DIVS_TIMEOUT","endOfContent","numTextDivs","textLayerFrag","textContentStream","textDivs","textContentItemsStr","setTextContentStream","setTextContent","_convertMatches","iIndex","end","m","mm","begin","divIdx","_renderMatches","isSelectedPage","selectedMatchIdx","prevEnd","infinity","appendTextToDiv","span","i0","i1","isSelected","highlightSuffix","beginText","n0","n1","clearedUntilDivIdx","n","pageMatches","pageMatchesLength","expandDivsTimer","adjustTop","divBounds","eventName","close","eventDetails","lastPage","pageRotateCw","pageRotateCcw","setPageNumber","setPagesCount","_bindCursorToolsListener","buttons","_bindScrollModeListener","isScrollModeHorizontal","scrollModeChanged","_bindSpreadModeListener","spreadModeChanged","previousPageView","viewerNodes","scrolledDown","PAGE_NUMBER_LOADING_INDICATOR","SCALE_SELECT_CONTAINER_PADDING","SCALE_SELECT_PADDING","setPageScale","self","resetNumPages","pageScale","customScale","predefinedValueFound","option","updateLoadingIndicatorState","pageNumberInput","select","DEFAULT_VIEW_HISTORY_CACHE_SIZE","cacheSize","databaseStr","database","length","branch","localStorage","properties","GenericCom","GenericExternalServices","defaultPreferences","defaults","defaultValue","prefValue","defaultType","DISABLE_CREATE_OBJECT_URL","downloadUrl","createValidAbsoluteUrl","downloadData","webL10n","gL10nData","gTextData","gTextProp","gLanguage","gMacros","gReadyState","gAsyncResourceLoading","script","l10nId","l10nArgs","evtObject","onSuccess","onFailure","baseURL","text","dictionary","reBlank","reComment","reSection","reImport","reSplit","entries","rawText","currentLang","genericLang","lang","skipLang","parsedRawLinesCallback","loadImport","tmp","evalString","nextEntry","xhrLoadText","parseRawLines","parsedPropertiesCallback","parseProperties","successCallback","clear","langLinks","getL10nResourceLinks","langCount","dict","getL10nDictionary","defaultLocale","anyCaseLang","fireL10nReadyEvent","onResourceLoaded","gResourceCount","link","parseResource","resource","locales2rules","list","start","pluralRules","isBetween","getPluralRules","rv","substIndexes","substArguments","reIndex","reMatch","macroName","paramName","macro","reArgs","getL10nAttributes","getL10nData","getChildElementCount","children","l","textNode","getTranslatableChildren","elementCount","translateElement","getData","getText","getLanguage","setLanguage","loadLocale","getDirection","rtlList","shortCode","translate","getReadyState","ready","activeService","scratchCanvas","PRINT_RESOLUTION","PRINT_UNITS","PDFPrintService","layout","body","hasEqualPageSizes","pageSize","destroy","ensureOverlay","renderPages","pageCount","renderNextPage","renderProgress","renderPage","useRenderedPage","printItem","performPrint","throwIfInactive","activeServiceOnEntry","abort","progressContainer","progressBar","progressPerc","hasAttachEvent","stopPropagationIfNeeded","overlayPromise"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,kDAA0C,gCAAgC;AAC1E;AACA;;AAEA;AACA;AACA;AACA,gEAAwD,kBAAkB;AAC1E;AACA,yDAAiD,cAAc;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAyC,iCAAiC;AAC1E,wHAAgH,mBAAmB,EAAE;AACrI;AACA;;AAEA;AACA;AACA;AACA,mCAA2B,0BAA0B,EAAE;AACvD,yCAAiC,eAAe;AAChD;AACA;AACA;;AAEA;AACA,8DAAsD,+DAA+D;;AAErH;AACA;;;AAGA;AACA;;;;;;;;AClFA;;AAAA;AAqCA,iBArCA,kBAqCA;AACoE;AAClEA,gBAAcC,oBADoD,CACpDA,CAAdD;AACAE,uBAAqBD,oBAF6C,CAE7CA,CAArBC;AAxCF;AAAA;AA+CiE;AAC/DD,sBAD+D,EAC/DA;AAhDF;AAAA;AAqD2E;AACzEA,sBADyE,EACzEA;AAtDF;;AAyDA,kCAAkC;AAChC,SAAO;AACLE,kBAAcC,SADT;AAELC,mBAAeD,wBAFV,iBAEUA,CAFV;AAGLE,qBAAiBF,wBAHZ,QAGYA,CAHZ;AAILG,cAJK;AAKLC,aAAS;AACPC,iBAAWL,wBADJ,eACIA,CADJ;AAEPM,gBAAUN,wBAFH,UAEGA,CAFH;AAGPO,kBAAYP,wBAHL,YAGKA,CAHL;AAIPQ,4BAAsBR,wBAJf,sBAIeA,CAJf;AAKPS,mBAAaT,wBALN,aAKMA,CALN;AAMPU,yBAAmBV,wBANZ,mBAMYA,CANZ;AAOPW,gBAAUX,wBAPH,UAOGA,CAPH;AAQPY,YAAMZ,wBARC,MAQDA,CARC;AASPa,cAAQb,wBATD,QASCA,CATD;AAUPc,eAASd,wBAVF,SAUEA,CAVF;AAWPe,gBAAUf,wBAXH,UAWGA,CAXH;AAYPgB,gBAAUhB,wBAZH,UAYGA,CAZH;AAaPiB,aAAOjB,wBAbA,OAaAA,CAbA;AAcPkB,8BAAwBlB,wBAdjB,kBAciBA,CAdjB;AAePmB,gBAAUnB,wBAfH,UAeGA,CAfH;AAgBPoB,oBAAcpB,wBAhBP,cAgBOA;AAhBP,KALJ;AAuBLqB,sBAAkB;AAChBjB,eAASJ,wBADO,kBACPA,CADO;AAEhBsB,oBAActB,wBAFE,wBAEFA,CAFE;AAGhBuB,8BACEvB,wBAJc,iCAIdA,CAJc;AAKhBkB,8BACElB,wBANc,2BAMdA,CANc;AAOhBwB,sBAAgBxB,wBAPA,mBAOAA,CAPA;AAQhByB,mBAAazB,wBARG,gBAQHA,CARG;AAShB0B,sBAAgB1B,wBATA,mBASAA,CATA;AAUhB2B,0BAAoB3B,wBAVJ,uBAUIA,CAVJ;AAWhB4B,uBAAiB5B,wBAXD,WAWCA,CAXD;AAYhB6B,sBAAgB7B,wBAZA,UAYAA,CAZA;AAahB8B,0BAAoB9B,wBAbJ,cAaIA,CAbJ;AAchB+B,2BAAqB/B,wBAdL,eAcKA,CAdL;AAehBgC,8BAAwBhC,wBAfR,kBAeQA,CAfR;AAgBhBiC,4BAAsBjC,wBAhBN,gBAgBMA,CAhBN;AAiBhBkC,4BAAsBlC,wBAjBN,gBAiBMA,CAjBN;AAkBhBmC,8BAAwBnC,wBAlBR,kBAkBQA,CAlBR;AAmBhBoC,2BAAqBpC,wBAnBL,eAmBKA,CAnBL;AAoBhBqC,wBAAkBrC,wBApBF,YAoBEA,CApBF;AAqBhBsC,uBAAiBtC,wBArBD,WAqBCA,CArBD;AAsBhBuC,wBAAkBvC,wBAtBF,YAsBEA,CAtBF;AAuBhBwC,gCAA0BxC,wBAvBV,oBAuBUA;AAvBV,KAvBb;AAgDLyC,gBAAY;AACVC,wBAAkB1C,wBADR,kBACQA,CADR;AAEV2C,uBAAiB3C,wBAFP,iBAEOA,CAFP;AAGV4C,2BAAqB5C,wBAHX,qBAGWA,CAHX;AAIV6C,4BAAsB7C,wBAJZ,sBAIYA;AAJZ,KAhDP;AAsDL8C,aAAS;AAEPC,sBAAgB/C,wBAFT,gBAESA,CAFT;AAGPE,uBAAiBF,wBAHV,iBAGUA,CAHV;AAIPsB,oBAActB,wBAJP,eAIOA,CAJP;AAMPgD,uBAAiBhD,wBANV,eAMUA,CANV;AAOPiD,qBAAejD,wBAPR,aAOQA,CAPR;AAQPkD,yBAAmBlD,wBARZ,iBAQYA,CARZ;AAUPmD,qBAAenD,wBAVR,eAUQA,CAVR;AAWPoD,mBAAapD,wBAXN,aAWMA,CAXN;AAYPqD,uBAAiBrD,wBAZV,iBAYUA;AAZV,KAtDJ;AAoELsD,oBAAgB;AACdP,sBAAgB/C,wBADF,gBACEA,CADF;AAEduD,eAASvD,wBAFK,gBAELA;AAFK,KApEX;AAwELwD,aAAS;AACPC,WAAKzD,wBADE,SACFA,CADE;AAEPsB,oBAActB,wBAFP,UAEOA,CAFP;AAGP0D,iBAAW1D,wBAHJ,WAGIA,CAHJ;AAIP2D,4BAAsB3D,wBAJf,kBAIeA,CAJf;AAKP4D,6BAAuB5D,wBALhB,eAKgBA,CALhB;AAMP6D,0BAAoB7D,wBANb,gBAMaA,CANb;AAOP8D,eAAS9D,wBAPF,SAOEA,CAPF;AAQP+D,wBAAkB/D,wBARX,kBAQWA,CARX;AASPgE,0BAAoBhE,wBATb,cASaA,CATb;AAUPiE,sBAAgBjE,wBAVT,UAUSA;AAVT,KAxEJ;AAoFLkE,qBAAiB;AACfC,mBADe;AAEf9D,iBAAWL,wBAFI,iBAEJA,CAFI;AAGfoE,aAAOpE,wBAHQ,cAGRA,CAHQ;AAIfqE,aAAOrE,wBAJQ,UAIRA,CAJQ;AAKfsE,oBAActE,wBALC,gBAKDA,CALC;AAMfuE,oBAAcvE,wBANC,gBAMDA;AANC,KApFZ;AA4FLwE,wBAAoB;AAClBL,mBADkB;AAElB9D,iBAAWL,wBAFO,2BAEPA,CAFO;AAGlByE,mBAAazE,wBAHK,yBAGLA,CAHK;AAIlB0E,cAAQ;AACN,oBAAY1E,wBADN,eACMA,CADN;AAEN,oBAAYA,wBAFN,eAEMA,CAFN;AAGN,iBAASA,wBAHH,YAGGA,CAHH;AAIN,kBAAUA,wBAJJ,aAIIA,CAJJ;AAKN,mBAAWA,wBALL,cAKKA,CALL;AAMN,oBAAYA,wBANN,eAMMA,CANN;AAON,wBAAgBA,wBAPV,mBAOUA,CAPV;AAQN,4BAAoBA,wBARd,uBAQcA,CARd;AASN,mBAAWA,wBATL,cASKA,CATL;AAUN,oBAAYA,wBAVN,eAUMA,CAVN;AAWN,mBAAWA,wBAXL,cAWKA,CAXL;AAYN,qBAAaA,wBAZP,gBAYOA,CAZP;AAaN,oBAAYA,wBAbN,eAaMA,CAbN;AAcN,sBAAcA,wBAdR,iBAcQA;AAdR;AAJU,KA5Ff;AAiHL2E,kBAAc;AACZtE,iBAAWL,wBADC,cACDA,CADC;AAEZ4E,oBAAc5E,wBAFF,cAEEA,CAFF;AAGZyE,mBAAazE,wBAHD,YAGCA,CAHD;AAIZ6E,qBAAe7E,wBAJH,eAIGA,CAJH;AAKZ8E,sBAAgB9E,wBALJ,eAKIA,CALJ;AAMZ+E,sBAAgB/E,wBANJ,eAMIA;AANJ,KAjHT;AAyHLgF,oBAAgBhF,wBAzHX,gBAyHWA,CAzHX;AA0HLiF,uBA1HK;AA2HLC,wBA3HK;AAAA,GAAP;AA1DF;;AAyLA,yBAAyB;AACvB,MAAIC,SAASC,sBADU,EACvB;AAiBEC,gCAA8BzF,YAlBT,oBAkBrByF;AACAA,uCAAqCvF,mBAnBhB,UAmBrBuF;AAME,MAAMC,QAAQtF,qBAzBK,aAyBLA,CAAd;AACAsF,uDA1BmB,EA0BnBA;AACAtF,yBA3BmB,KA2BnBA;AAGFJ,uCA9BqB,MA8BrBA;AAvNJ;;AA2NA,IAAII,yCACAA,wBADJ,YACwC;AACtCuF,eADsC;AADxC,OAGO;AACLvF,+DADK,IACLA;AADK,C;;;;;;;;;;;;;;;;AC9MP;;AAOA;;AACA;;AAMA;;AACA;;AACA;;AAhCA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;;;;;;;;;;;;;;;AAkDA,IAAMwF,sBAlDN,GAkDA;AACA,IAAMC,yCAnDN,IAmDA;AACA,IAAMC,6BApDN,KAoDA;AACA,IAAMC,8BArDN,IAqDA;AAEA,IAAMC,aAAa;AACjBC,WAAS,CADQ;AAEjBC,YAFiB;AAGjBC,WAHiB;AAAA,CAAnB;AAMA,IAAMC,0BAA0B;AAC9BC,wBAD8B,kCAC9BA,IAD8B,EACD,CADC;AAE9BC,wBAF8B,kCAE9BA,IAF8B,EAED,CAFC;AAG9BC,oBAH8B,8BAG9BA,SAH8B,EAGA,CAHA;AAI9BC,UAJ8B,oBAI9BA,IAJ8B,EAI9BA,QAJ8B,EAIL,CAJK;AAK9BC,iBAL8B,2BAK9BA,IAL8B,EAKR,CALQ;AAM9BC,uBAN8B,iCAM9BA,OAN8B,EAMC;AAC7B,UAAM,UADuB,wCACvB,CAAN;AAP4B;AAS9BC,mBAT8B,+BASV;AAClB,UAAM,UADY,oCACZ,CAAN;AAV4B;AAY9BC,YAZ8B,sBAY9BA,OAZ8B,EAYV;AAClB,UAAM,UADY,6BACZ,CAAN;AAb4B;AAe9BC,0BAf8B;AAgB9BC,yBAhB8B;AAiB9BC,0BAjB8B;AAkB9BC,uCAAqC;AACnCC,aADmC;AAEnCC,aAFmC;AAAA;AAlBP,CAAhC;;AAwBA,IAAIC,uBAAuB;AACzBC,mBAAiBhH,iCADQ,CACRA,CADQ;AAEzBiH,eAFyB;AAGzBC,YAHyB;AAIzBC,aAJyB;AAKzBC,eALyB;AAMzBC,kBANyB;AAOzBC,gBAPyB;AASzBC,aATyB;AAWzBC,sBAXyB;AAazBC,qBAbyB;AAezBC,uBAfyB;AAiBzBC,yBAjByB;AAmBzBC,kBAnByB;AAqBzBC,cArByB;AAuBzBC,cAvByB;AAyBzBC,qBAzByB;AA2BzBC,oBA3ByB;AA6BzBC,uBA7ByB;AA+BzBC,kBA/ByB;AAiCzBC,SAjCyB;AAmCzBC,mBAnCyB;AAqCzBC,kBArCyB;AAuCzBC,eAvCyB;AAyCzBlI,WAzCyB;AA2CzBiB,oBA3CyB;AA6CzBlB,YA7CyB;AA+CzBoI,QA/CyB;AAgDzBC,oBAhDyB;AAiDzBC,oBAjDyB;AAkDzBC,oBAAmBrD,kBAlDM;AAmDzBsD,OAnDyB;AAoDzBC,WApDyB;AAqDzBC,oBArDyB;AAsDzBC,gBAtDyB;AAuDzBC,8BAvDyB;AA0DzB,YA1DyB;AAAA;AAAA;AAAA,kDA0DzB,SA1DyB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AA2DvB,iCAAmB,sBADO,iBACP,EAAnB;AACA,+BAF0B,SAE1B;AA5DuB;AAAA,qBA8DjB,KAJoB,gBAIpB,EA9DiB;;AAAA;AAAA;AAAA,qBA+DjB,KALoB,oBAKpB,EA/DiB;;AAAA;AAAA;AAAA,qBAgEjB,KANoB,eAMpB,EAhEiB;;AAAA;AAkEvB,kBAAI,yBACAC,sDAAyCC,qBAD7C,MAC8D;AAG5DD,kEAAqCC,qBAHuB,GAG5DD;AAZwB;;AA1DH;AAAA,qBAwEjB,KAdoB,2BAcpB,EAxEiB;;AAAA;AA4EvB,mBAlB0B,UAkB1B;AACA,mBAnB0B,gBAmB1B;AAGIjJ,0BAhFmB,GAgFJoH,0BAA0BnH,SAtBnB,eA1DH;AAiFvB,qDAAuC,YAAM;AAG3C,qDAAoC;AAAEkJ,0BAHK;AAGP,iBAApC;AA1BwB,eAuB1B;AAMA,iCA7B0B,IA6B1B;;AAvFuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AA6FzB,kBA7FyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBA8FnBF,sDAAJ,IA9FuB;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA,qBAoGD,iBADlB,MACkB,EApGC;;AAAA;AAoGfG,mBApGe;;AAqGrB,kCAA0B;AACxBH,kDAAqBG,MADG,IACHA,CAArBH;AAHA;;AAnGmB;AAAA;;AAAA;AAAA;AAAA;AAyGrBI,0DAAoCC,aADrB,OACfD;;AAzGqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAgHzB,sBAhHyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAkHlBJ,4BADL,eACKA,CAlHkB;AAAA;AAAA;AAAA;;AAAA,gDAkHe,SAlHf;;AAAA;AAqHjBM,oBArHiB,GAgHI,EAhHJ;AAwHnBC,kBAxHmB,GAwHZvJ,iCARgB,CAQhBA,CAxHY;AAyHnBwJ,wBAzHmB,GAyHNC,gCATU,IASVA,CAzHM;;AA2HvB,kBAAI,iCACAD,gCADJ,QAC4C;AAC1CF,4BAAYI,cAD8B,EAC1CJ;AAbyB;;AAe3B,kBAAI,kBAAJ,YAAkC;AAChCN,4DAA+BQ,+BADC,MAChCR;AAhByB;;AAkB3B,kBAAI,mBAAJ,YAAmC;AACjCA,6DAAgCQ,gCADC,MACjCR;AAnByB;;AAqB3B,kBAAI,sBAAJ,YAAsC;AACpCA,gEACeQ,mCAFqB,MACpCR;AAtByB;;AAyB3B,kBAAI,qBAAJ,YAAqC;AACnCA,+DACeQ,kCAFoB,MACnCR;AA1ByB;;AA6B3B,kBAAI,oBAAJ,YAAoC;AAClCA,8DAAiCQ,iCADC,MAClCR;AA9ByB;;AAgC3B,kBAAI,WAAJ,YAA2B;AACzBA,2DAA8BQ,wBADL,MACzBR;AAjCyB;;AAmC3B,kBAAI,oBAAJ,YAAoC;AAClCA,8DAAiCQ,iCADC,MAClCR;AApCyB;;AAsC3B,kBAAI,eAAJ,YAA+B;AAC7BA,yDAA4BQ,0BADC,CAC7BR;AAvCyB;;AAhHJ,oBA8JnB,eAAJ,UA9JuB;AAAA;AAAA;AAAA;;AAAA,6BA+JbQ,WAAR,WAAQA,CA/Ja;AAAA,gDAgKnB,KAhKmB,yBA+JrB,SA/JqB,yBA+JrB,QA/JqB,yBAqKnB,OArKmB;AAAA;;AAAA;AAiKjBR,2DAAgCW,wBADlC,OACEX;;AAjKiB;;AAAA;AAsKbY,oBAtKa,GAsKJ,eADf,eArKmB;AAuKjBA,mCAAqB,eAAeJ,WAFtC,WAEsCA,CAApCI;AAvKiB;;AAAA;AA2KvB,kBAAI,YAAJ,YAA4B;AAC1BZ,sDAD0B,IAC1BA;;AACIa,uBAFsB,GAEZL,2BAFY,GAEZA,CAFY;AAG1BF,4BAAYQ,oBAHc,OAGdA,CAAZR;AA9DyB;;AAiE3B,kBACiD,YADjD,YACyE;AACvEN,sDAAyBQ,WAD8C,QAC9CA,CAAzBR;AAnEyB;;AAhHJ,gDAsLhB,6BAA2BK,gBAAD,EAAY;AAC3CD,gEAAwCC,OADG,OAC3CD;AAvEyB,eAsEpB,CAtLgB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AA8LzB,iBA9LyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA+LvB,0BAAY,iCAAiC;AAC3CW,wBAAQf,4BAFY,QAEZA;AADmC,eAAjC,CAAZ;AA/LuB;AAAA,qBAkML,UAJI,YAIJ,EAlMK;;AAAA;AAkMjBgB,iBAlMiB;AAmMvBhK,6DALsB,GAKtBA;;AAnMuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAyMzB,6BAzMyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA0MjBmH,uBA1MiB,GA0ML,KADgB,SAzMX;AA4MvB,oCAAsB,IAHY,+BAGZ,EAAtB;AAEMhH,sBA9MiB,GA8MNgH,sBACA8C,iCAAkBjB,4BAND,uBAMCA,CAAlBiB,CA/MM;AAgNvB,8BAPkC,QAOlC;AAEIxC,+BAlNmB,GAkNC,IATU,sCASV,EAlND;AAmNvBA,yCAA2B,kBAVO,IAUP,CAA3BA;AACA,uCAXkC,iBAWlC;AAEIG,4BAtNmB,GAsNF,qCAAmB;AACtCzH,wBADsC,EACtCA,QADsC;AAEtC+J,oCAAoBlB,4BAFkB,oBAElBA,CAFkB;AAGtCmB,iCAAiBnB,4BAHqB,iBAGrBA;AAHqB,eAAnB,CAtNE;AA2NvB,oCAlBkC,cAkBlC;AAEIZ,6BA7NmB,GA6ND,4CAA4C;AAChEgC,wCAAwBpB,4BArBQ,wBAqBRA;AADwC,eAA5C,CA7NC;AAgOvB,qCAvBkC,eAuBlC;AAEMqB,4BAlOiB,GAkOA,2CAAsB;AAC3CC,6BAD2C;AAE3CnK,wBAF2C,EAE3CA;AAF2C,eAAtB,CAlOA;AAsOvB,oCA7BkC,cA6BlC;AAEME,uBAxOiB,GAwOL8G,UA/BgB,aAzMX;AAyOjByC,oBAzOiB,GAyORzC,UAhCmB,eAzMX;AA0OvB,+BAAiB,0BAAc;AAC7B9G,yBAD6B,EAC7BA,SAD6B;AAE7BuJ,sBAF6B,EAE7BA,MAF6B;AAG7BzJ,wBAH6B,EAG7BA,QAH6B;AAI7BoK,gCAJ6B;AAK7BD,6BAL6B;AAM7BlC,+BAN6B,EAM7BA,eAN6B;AAO7BiC,8BAP6B,EAO7BA,cAP6B;AAQ7BG,0BAAUxB,4BARmB,UAQnBA,CARmB;AAS7ByB,6BAAazB,4BATgB,aAShBA,CATgB;AAU7BT,sBAAM,KAVuB;AAW7BmC,+BAAe1B,4BAXc,eAWdA,CAXc;AAY7B2B,oCAAoB3B,4BAZS,oBAYTA,CAZS;AAa7B4B,wCAAwB5B,4BAbK,wBAaLA,CAbK;AAc7B6B,uCAAuB7B,4BAdM,uBAcNA,CAdM;AAe7B8B,gCAAgB9B,4BAfa,gBAebA,CAfa;AAgB7B+B,iCAAiB/B,4BAhBY,iBAgBZA;AAhBY,eAAd,CAAjB;AAkBAvB,0CAA4B,KAnDM,SAmDlCA;AACAG,uCAAyB,KApDS,SAoDlCA;AAEA,wCAA0B,6CAAuB;AAC/CvH,2BAAW8G,kBADoC;AAE/CoD,gCAF+C;AAG/CD,6BAH+C;AAI/C/B,sBAAM,KAJyC;AAAA,eAAvB,CAA1B;AAMAd,mDAAqC,KA5DH,kBA4DlCA;AAEA,gCAAkB,4BAAe;AAC/B6C,6BAD+B;AAE/BnK,wBAF+B,EAE/BA;AAF+B,eAAf,CAAlB;AAIAyH,wCAA0B,KAlEQ,UAkElCA;AAEA,6BAAe,6BAAeT,UAAf,mBAA4C,KApEzB,IAoEnB,CAAf;AAEA,2CACE,mDAA0BA,UAA1B,oBAC0B,KAD1B,0BACyD,KAxEzB,IAuEhC,CADF;AAIA,oCAAsB,qCAAmB;AACvC9G,yBADuC,EACvCA,SADuC;AAEvCF,wBAFuC,EAEvCA,QAFuC;AAGvC6K,kCAAkBhC,4BAHqB,kBAGrBA;AAHqB,eAAnB,CAAtB;AAMA,6BAAe,qBAAY7B,UAAZ,mBAAyC,KAhFtB,IAgFnB,CAAf;AAEA,sCACE,wCAAqBA,UAArB,6BAnFgC,QAmFhC,CADF;;AAGA,kBAAI,KAAJ,oBAA6B;AAC3B,2CAA2B,+CAAwB;AACjD9G,2BADiD,EACjDA,SADiD;AAEjDuJ,wBAFiD,EAEjDA,MAFiD;AAGjDrC,6BAAW,KAHsC;AAIjDpH,0BAJiD,EAIjDA,QAJiD;AAKjD8K,oCAAkB9D,UAL+B;AAAA,iBAAxB,CAA3B;AAtFgC;;AA+FlC,oCAAsB,oCAAmBA,UAAnB,iBACmB,KADnB,gBACwC,KAhG5B,IA+FZ,CAAtB;AAGA,sCAAwB,yCAAqB;AAC3C9G,2BAAW8G,kBADgC;AAE3ChH,wBAF2C,EAE3CA,QAF2C;AAG3CmK,6BAH2C;AAAA,eAArB,CAAxB;AAMA,yCAA2B,+CAAwB;AACjDjK,2BAAW8G,kBADsC;AAEjDhH,wBAFiD,EAEjDA,QAFiD;AAGjDiI,+BAHiD,EAGjDA;AAHiD,eAAxB,CAA3B;AAMA,gCAAkB,4BAAe;AAC/B8C,0BAAU/D,UADqB;AAE/BI,2BAAW,KAFoB;AAG/BC,oCAAoB,KAHW;AAI/BrH,wBAJ+B,EAI/BA,QAJ+B;AAK/BoI,sBAAM,KALyB;AAAA,eAAf,CAAlB;AAOA,0CAA4B,yBArHM,IAqHN,CAA5B;AAEA,uCAAyB,2CAAsBpB,UAAtB,0BACgC,KAxHvB,IAuHT,CAAzB;;AAhUuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAoUzBgE,KApUyB,eAoUzBA,MApUyB,EAoUb;AACV,iCADU,oBACV;AArUuB;AAwUzBtK,QAxUyB,kBAwUzBA,KAxUyB,EAwUX;AACZ,QAAIuK,WAAW,eADH,YACZ;;AACA,OAAG;AACDA,iBAAY,YAAD,mBAAC,EAAD,OAAC,CADX,CACW,CAAZA;AACAA,iBAAWC,UAAUD,WAAVC,MAFV,EAEDD;AACAA,iBAAWC,8BAHV,QAGUA,CAAXD;AAHF,aAIS,eAAeA,WANZ,mBAEZ;;AAKA,uCAPY,QAOZ;AA/UuB;AAkVzBtK,SAlVyB,mBAkVzBA,KAlVyB,EAkVV;AACb,QAAIsK,WAAW,eADF,YACb;;AACA,OAAG;AACDA,iBAAY,YAAD,mBAAC,EAAD,OAAC,CADX,CACW,CAAZA;AACAA,iBAAWC,WAAWD,WAAXC,MAFV,EAEDD;AACAA,iBAAWC,8BAHV,QAGUA,CAAXD;AAHF,aAIS,eAAeA,WANX,mBAEb;;AAKA,uCAPa,QAOb;AAzVuB;AA4VzBE,WA5VyB,uBA4VU;AAAA,QAAzBC,eAAyB,uEAAnCD,KAAmC;;AACjC,QAAI,eAAJ,sBAAyC;AAAA;AAAzC,WAEO,IAAIC,mBACA,qCADJ,+BAC8D;AAAA;AAJpC;;AASjC,uCATiC,6BASjC;AArWuB;;AAwWzB,mBAAiB;AACf,WAAO,mBAAmB,iBAAnB,WADQ,CACf;AAzWuB;;AA4WzB,gBAAc;AACZ,uCADY,GACZ;AA7WuB;;AAgXzB,aAAW;AACT,WAAO,eADE,iBACT;AAjXuB;;AAoXzB,iBAAe;AACb,WAAO,CAAC,CAAC,KADI,YACb;AArXuB;;AAwXzB,yBAAuB;AACrB,WAAOC,gCADc,gBACrB;AAzXuB;;AA4XzB,2BAAyB;AACvB,QADuB,OACvB;AAKE,QAAIC,MAAMzL,SANW,eAMrB;AACA0L,cAAU,CAAC,EAAE,yBAAyBD,IAAzB,wBACAA,IADA,2BAC+BA,IARvB,mBAOV,CAAXC;;AAGA,QAAI1L,wCACAA,kCADAA,SAEAA,qCAFAA,SAGAA,iCAHJ,OAG4C;AAC1C0L,gBAD0C,KAC1CA;AAdmB;;AAiBvB,WAAOC,kDAjBgB,OAiBhBA,CAAP;AA7YuB;;AAgZzB,+BAA6B;AAC3B,WAAO,sBADoB,sBAC3B;AAjZuB;;AAoZzB,8BAA4B;AAC1B,WAAO,sBADmB,qBAC1B;AArZuB;;AAwZzB,+BAA6B;AAC3B,WAAO,sBADoB,sBAC3B;AAzZuB;;AA4ZzB,mBAAiB;AACf,QAAIlI,MAAM,0BADK,aACL,CAAV;AACA,WAAOkI,0CAFQ,GAERA,CAAP;AA9ZuB;;AAiazB,4CAA0C;AACxC,WAAO,sBADiC,mCACxC;AAlauB;;AAqazBxF,oBArayB,gCAqaJ;AAGjB,UAAM,UAHW,qCAGX,CAAN;AAxaqB;AA2czByF,kBA3cyB,8BA2cE;AAAA,QAAVjD,GAAU,uEAA3BiD,EAA2B;AACzB,eADyB,GACzB;AACA,mBAAejD,eAFU,CAEVA,CAAf;AACA,QAAIkD,QAAQC,0CAHa,EAGbA,CAAZ;;AACA,QAAI,CAAJ,OAAY;AACV,UAAI;AACFD,gBAAQE,mBAAmBC,kCAAnBD,GAAmBC,CAAnBD,KADN,GACFF;AADF,QAEE,WAAW;AAGXA,gBAHW,GAGXA;AANQ;AAJa;;AAazB,kBAbyB,KAazB;AAxduB;AA2dzBI,UA3dyB,oBA2dzBA,KA3dyB,EA2dT;AACd,QAAI,KAAJ,kBAA2B;AAAA;AADb;;AAKdjM,qBALc,KAKdA;AAheuB;AAwezB,OAxeyB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAyenB2E,0BAzemB,GAyeJ,4BADP,SAxeW;AA0evBA,kDAFY,MAEZA;;AA1euB,kBA4elB,KAAL,cA5euB;AAAA;AAAA;AAAA;;AAAA,gDA4eG,SA5eH;;AAAA;AAgfnBuH,qBAhfmB,GAgfT,oBARF,OAQE,EAhfS;AAifvB,oCATY,IASZ;;AAEA,kBAAI,KAAJ,aAAsB;AACpB,mCADoB,IACpB;AAEA,oDAHoB,IAGpB;AACA,2CAJoB,IAIpB;AACA,gDALoB,IAKpB;AACA,uDANoB,IAMpB;AAjBU;;AAmBZ,2BAnBY,IAmBZ;AACA,sCApBY,KAoBZ;AACA,sCArBY,KAqBZ;AACA,yBAtBY,EAsBZ;AACA,6BAvBY,EAuBZ;AACA,gDAxBY,IAwBZ;AAEA,8BA1BY,KA0BZ;AACA,oCA3BY,KA2BZ;AACA,uCA5BY,KA4BZ;AAEA,2BA9BY,KA8BZ;AACA,2BA/BY,KA+BZ;AACA,oCAhCY,KAgCZ;;AAEA,kBAAI,kBAAJ,aAAmC;AACjCC,uBADiC,OACjCA;AAnCU;;AAxeW,gDAweX,OAxeW;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAyhBzB,MAzhByB;AAAA;AAAA;AAAA,mDAyhBzB,IAzhByB,EAyhBzB,IAzhByB;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,mBA0hBnB,KAAJ,cA1hBuB;AAAA;AAAA;AAAA;;AAAA;AAAA,qBA4hBf,KAFiB,KAEjB,EA5hBe;;AAAA;AA+hBjBC,8BA/hBiB,GA+hBEpD,+BAAkBqD,wBANtB,MAMIrD,CA/hBF;;AAgiBvB,4CAAkC;AAChCsD,qDAA2BF,iBADK,GACLA,CAA3BE;AARmB;;AAWjBC,wBApiBmB,GAoiBNC,cAXI,IAWJA,CApiBM;;AAqiBvB,kBAAI,gBAAJ,UAA8B;AAC5B,sCAD4B,IAC5B;AACAD,iCAF4B,IAE5BA;AAFF,qBAGO,IAAIE,QAAQ,gBAAZ,MAAkC;AACvCF,kCADuC,IACvCA;AADK,qBAEA,IAAIE,YAAYA,KAAhB,aAAkC;AACvC,sCAAsBA,KADiB,WACvC;AACAF,iCAAiBE,KAFsB,GAEvCF;AAnBmB;;AA4BfG,2BArjBiB,GAqjBD1D,+BAAkBqD,wBA5BnB,GA4BCrD,CArjBC;;AAsjBvB,0CAA+B;AAC7BuD,mCAAkBG,cADW,IACXA,CAAlBH;AA9BmB;;AAiCrB,wBAAU;AACR,mCAAuB;AACrB,sBAAII,SAAJ,UAAuB;AACrB,2DAAuCC,KADlB,IACkBA,CAAvC;AAFmB;;AAIrBL,qCAAmBK,KAJE,IAIFA,CAAnBL;AALM;AAjCW;;AA0CjBM,yBAnkBmB,GAmkBLC,2BA1CG,UA0CHA,CAnkBK;AAokBvB,oCA3CqB,WA2CrB;;AAEAD,uCAAyB,kCAA4B;AACnD,wEADmD,MACnD;;AACA,sCAFmD,IAEnD;AA/CmB,eA6CrBA;;AAKAA,uCAAyB,gBAAwB;AAAA,oBAAvB,MAAuB,QAAvB,MAAuB;AAAA,oBAAxB,KAAwB,QAAxB,KAAwB;;AAC/C,gCAAcE,SADiC,KAC/C;AAnDmB,eAkDrBF;;AAKAA,iDAAmC,mBAvDd,IAuDc,CAAnCA;AAhlBuB,gDAklBhB,yBAA0BzF,qBAAD,EAAiB;AAC/C,4BAD+C,WAC/C;AADK,iBAEH4F,mBAAD,EAAe;AAChB,oBAAIH,gBAAgB,OAApB,gBAAyC;AACvC,yBADuC,SACvC;AAFc;;AAKhB,oBAAII,UAAUD,aAAaA,UALX,OAKhB;AACA,oBANgB,mBAMhB;;AACA,oBAAIA,qBAAJ,+BAA8C;AAE5CE,wCAAsB,4CAFsB,gCAEtB,CAAtBA;AAFF,uBAIO,IAAIF,qBAAJ,+BAA8C;AAEnDE,wCAAsB,4CAF6B,mBAE7B,CAAtBA;AAFK,uBAIA,IAAIF,qBAAJ,uCAAsD;AAC3DE,wCAAsB,mDADqC,6BACrC,CAAtBA;AADK,uBAGA;AACLA,wCAAsB,uCADjB,0CACiB,CAAtBA;AAnBc;;AAuBhB,uBAAO,yBAA0BC,aAAD,EAAS;AACvC,oCAAgB;AAAEF,2BADqB,EACrBA;AAAF,mBAAhB;;AACA,wBAAM,UAFiC,GAEjC,CAAN;AAzBc,iBAuBT,CAAP;AAlFmB,eAyDd,CAllBgB;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAknBzB9L,UAlnByB,sBAknBd;AAAA;;AACT,6BAAyB;AACvBiH,uCADuB,QACvBA;AAFO;;AAKT,QAAIO,MAAM,KALD,OAKT;AAGA,QAAIyE,WAAW,mCACbtB,qCAAsB,KATf,GASPA,CADF;AAEA,QAAI1D,kBAAkB,KAVb,eAUT;;AACAA,8BAA2BiF,aAAD,EAAS;AAGjC,qDAHiC,GAGjC;AAdO,KAWTjF;;AAQA,QAAI,CAAC,KAAD,eAAqB,CAAC,KAA1B,kBAAiD;AAC/CkF,mBAD+C;AAAA;AAnBxC;;AAwBT,oCAAgC,gBAAe;AAC7C,UAAMC,OAAO,SAAS,CAAT,IAAS,CAAT,EAAiB;AAAEC,cADa;AACf,OAAjB,CAAb;AACApF,0CAF6C,QAE7CA;AAFF,gBAxBS,aAwBT;AA1oBuB;AAgpBzBhC,UAhpByB,oBAgpBzBA,SAhpByB,EAgpBL,CAhpBK;AA4qBzBqH,OA5qByB,iBA4qBzBA,OA5qByB,EA4qBzBA,QA5qByB,EA4qBA;AACvB,QAAIC,eAAe,CAAC,oCAClB;AAAEC,eAASA,qBAAX;AAA2BC,aAAOA,mBAAlC;AAAA,KADkB,EADG,wCACH,CAAD,CAAnB;;AAGA,kBAAc;AACZF,wBACE,+BAA+B;AAAET,iBAASY,SAA1C;AAA+B,OAA/B,EAFU,sBAEV,CADFH;;AAGA,UAAIG,SAAJ,OAAoB;AAClBH,0BACE,6BAA6B;AAAEI,iBAAOD,SAAtC;AAA6B,SAA7B,EAFgB,kBAEhB,CADFH;AADF,aAIO;AACL,YAAIG,SAAJ,UAAuB;AACrBH,4BACE,4BAA4B;AAAEjB,kBAAMoB,SAApC;AAA4B,WAA5B,EAFmB,gBAEnB,CADFH;AAFG;;AAML,YAAIG,SAAJ,YAAyB;AACvBH,4BACE,4BAA4B;AAAEK,kBAAMF,SAApC;AAA4B,WAA5B,EAFqB,gBAErB,CADFH;AAPG;AARK;AAJS;;AA4BrB,QAAIM,qBAAqB,eA5BJ,YA4BrB;AACA,QAAIrJ,eAAeqJ,mBA7BE,SA6BrB;AACArJ,iCA9BqB,QA8BrBA;AAEA,QAAIC,eAAeoJ,mBAhCE,YAgCrB;AACApJ,+BAjCqB,OAiCrBA;AAEA,QAAIH,cAAcuJ,mBAnCG,WAmCrB;;AACAvJ,0BAAsB,YAAW;AAC/BE,0CAD+B,MAC/BA;AArCmB,KAoCrBF;;AAIA,QAAII,gBAAgBmJ,mBAxCC,aAwCrB;AACA,QAAIlJ,iBAAiBkJ,mBAzCA,cAyCrB;AACA,QAAIjJ,iBAAiBiJ,mBA1CA,cA0CrB;;AACAlJ,6BAAyB,YAAW;AAClCD,oCADkC,QAClCA;AACAC,4CAFkC,MAElCA;AACAC,qCAHkC,QAGlCA;AACAF,mCAA6BA,6BAJK,IAIlCA;AA/CmB,KA2CrBC;;AAMAC,6BAAyB,YAAW;AAClCF,2CADkC,MAClCA;AACAC,qCAFkC,QAElCA;AACAC,4CAHkC,MAGlCA;AApDmB,KAiDrBA;;AAKAD,mCAtDqB,8BAsDrBA;AACAC,mCAvDqB,8BAuDrBA;AACAN,gCAxDqB,8BAwDrBA;AACAK,mCAzDqB,QAyDrBA;AACAC,0CA1DqB,MA0DrBA;AACAkJ,mCAAgCC,eAAD,EAAW;AACxCrJ,4BAAsBqJ,WADkB,IAClBA,CAAtBrJ;AA5DmB,KA2DrBoJ;AAvuBqB;AAkvBzBE,UAlvByB,oBAkvBzBA,KAlvByB,EAkvBT;AAAA;;AACd,QAAI,KAAJ,kBAA2B;AAAA;AADb;;AAMd,QAAIC,UAAU/C,WAAWgD,QANX,GAMAhD,CAAd;;AAKA,QAAI+C,UAAU,gBAAVA,WAAqCE,MAAzC,OAAyCA,CAAzC,EAAyD;AACvD,gCADuD,OACvD;AAOA,UAAMC,mBAAmB,mBACvB,+BADuB,kBACvB,CADuB,GAEvBvF,4BAVqD,kBAUrDA,CAFF;;AAIA,UAAIuF,oBAAJ,SAAiC;AAC/B,YAAI,KAAJ,mCAA4C;AAC1CC,uBAAa,KAD6B,iCAC1CA;AACA,mDAF0C,IAE1C;AAH6B;;AAK/B,wBAL+B,IAK/B;AAEA,iDAAyC,WAAW,YAAM;AACxD,4BADwD,IACxD;;AACA,qDAFwD,IAExD;AAFuC,WAPV,sCAOU,CAAzC;AAnBqD;AAX3C;AAlvBS;AAwxBzBC,MAxxByB,gBAwxBzBA,WAxxByB,EAwxBP;AAAA;;AAChB,uBADgB,WAChB;AAEArH,uCAAmC,YAAM;AACvC,gCADuC,IACvC;;AACA,wBAFuC,IAEvC;;AAEAsH,4BAAsB,YAAM;AAC1B,mDAAyC;AAAExF,kBADjB;AACe,SAAzC;AALqC,OAIvCwF;AAPc,KAGhBtH;AAWA,QAAMuH,oBAAoB,qCACxB,YAAW,CAfG,CAcU,CAA1B;AAEA,QAAMC,kBAAkB,mCACtB,YAAW,CAjBG,CAgBQ,CAAxB;AAEA,QAAMC,wBAAwB,gDAC5B,YAAW,CAnBG,CAkBc,CAA9B;AAGA,+BAA2BzH,YAA3B,UArBgB,KAqBhB;AACA,wCAAoCA,YAtBpB,QAsBhB;AAEA,QAAMe,QAAQ,aAAa,8BAAgBf,YAxB3B,WAwBW,CAA3B;AAEA,QA1BgB,eA0BhB;AAEE0H,sBA5Bc,IA4BdA;AAMF,iDAlCgB,eAkChB;AACA,wDAAoD,KAnCpC,GAmChB;AAEA,QAAIvH,YAAY,KArCA,SAqChB;AACAA,0BAtCgB,WAsChBA;AACA,QAAImH,mBAAmBnH,UAvCP,gBAuChB;AACA,QAAIwH,eAAexH,UAxCH,YAwChB;AACA,QAAIyH,kBAAkBzH,UAzCN,eAyChB;AAEA,QAAIC,qBAAqB,KA3CT,kBA2ChB;AACAA,mCA5CgB,WA4ChBA;AAEAkH,0BAAuBO,iBAAD,EAAa;AACjC,iCAAyB,iBADQ,eACjC;;AAEA,UAAMC,eAAe,kBAAkB;AACrCC,cADqC;AAErCC,cAFqC;AAGrCC,oBAHqC;AAIrCC,mBAJqC;AAKrCC,kBALqC;AAMrCC,qBAAaC,yBANwB;AAOrCC,oBAAYC,qBAPyB;AAQrCC,oBAAYC,qBARyB;AAAA,OAAlB,WASZ,YAAM,CAZkB,CAGZ,CAArB;AAWA5B,kBAAY,yEAAZA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,qCAEQ;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA,uEAAQ6B,MAAR,uBAAO,EAAP,WAAO,UAAP,aAAO,QAAP;AACAC,4BADA,GACa/G,4BADkD,YAClDA,CADb;;AAGN,+CAA2B;AACzBgH,iCAAa5I,YADY;AAEzB2I,8BAFyB,EAEzBA,UAFyB;AAGzBE,iCAHyB;AAAA,mBAA3B;;AAKMjJ,iCARA,GAQkB,OAR6C,eAA/D;AAWAoI,sBAXA,GAWOpG,4BAXwD,kBAWxDA,CAXP;AAYFO,sBAZE,GAYK6F,8BAZ0D,IAA/D;AAcFG,0BAdE,GAA+D,IAA/D;AAeFC,6BAfE,GAeYxG,4BAfmD,mBAenDA,CAfZ;AAgBF0G,4BAhBE,GAgBW1G,4BAhBoD,kBAgBpDA,CAhBX;AAiBF4G,4BAjBE,GAiBW5G,4BAjBoD,kBAiBpDA,CAjBX;;AAmBN,sBAAI8G,eAAeC,eAAenK,WAAlC,SAAsD;AACpD2D,2BAAO,eAAQuG,OAAR,uBAA4BV,QAAQU,OAApC,uBACGA,OAAH,UADA,cACwBA,OAFqB,SAC7C,CAAPvG;AAGAgG,+BAAWW,SAASJ,OAATI,UAJyC,EAIzCA,CAAXX;;AAEA,wBAAIC,gBAAgBC,yBAApB,SAAyC;AACvCD,oCAAeM,qBADwB,CACvCN;AAPkD;;AASpD,wBAAIE,eAAeC,qBAAnB,SAAuC;AACrCD,mCAAcI,oBADuB,CACrCJ;AAVkD;;AAYpD,wBAAIE,eAAeC,qBAAnB,SAAuC;AACrCD,mCAAcE,oBADuB,CACrCF;AAbkD;AAnBe;;AAoCrE,sBAAIO,YAAYX,gBAAgBC,yBAAhC,SAAqD;AACnDD,kCAAcY,yBADqC,QACrCA,CAAdZ;AArCmE;;AAuCrE,sBAAIa,cAAcT,eAAeC,qBAAjC,SAAqD;AACnDD,iCAAaU,0BADsC,UACtCA,CAAbV;AAxCmE;;AA2CrE,8CAA0B;AACxBL,4BADwB,EACxBA,QADwB;AACdC,+BADc,EACdA,WADc;AACDE,8BADC,EACDA,UADC;AACWE,8BADX,EACWA;AADX,mBAA1B;;AAGA,2DAAuC;AAAE1G,4BA9C4B;AA8C9B,mBAAvC;;AAGA,sBAAI,CAAC,OAAL,kBAA4B;AAC1B3B,8BAD0B,KAC1BA;AAlDmE;;AAA/D;AAAA,yBA0DA,aAAa,eAEjB,YAAagJ,iBAAD,EAAa;AACvBC,wCADuB,0BACvBA;AAHe,mBAEjB,CAFiB,CAAb,CA1DA;;AAAA;AAAA,wBAgEF,oBAAoB,CAAxB,IAhEM;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA,uBAmEFjJ,UAAJ,iBAnEM;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAsEN,2CAtEqE,eAsErE;AAGAA,gDAA8BA,UAzEuC,iBAyErEA;;AAEA,wCA3EqE,IA2ErE;;AA3EM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAFR0G;;AAAAA;AAAAA;AAAAA;AAAAA,oBA8ES,YAAM;AAGb,eAHa,cAGb;AAjFFA,cAkFQ,YAAW;AAKjB1G,kBALiB,MAKjBA;AArG+B,OAcjC0G;AA5Dc,KA8ChBS;AAyGAtH,qCAAkCqJ,gBAAD,EAAY;AAC3C,UAAI,WAAWzH,4BAAf,mBAAeA,CAAf,EAAoD;AAAA;AADT;;AAI3C,UAAI0H,IAAJ;AAAA,UAAWC,YAAYF,OAJoB,MAI3C;;AACA,UAAIE,cAAc,OAAlB,YAAmC;AACjCvH,sBAAc,8CADmB,sCACjCA;AADiC;AALQ;;AAW3C,aAAOsH,iBAAiBD,cAAe,KAAD,CAAC,EAAvC,QAAuC,EAAvC,EAA0D;AACxDC,SADwD;AAXf;;AAc3C,UAAIA,MAAJ,WAAqB;AAAA;AAdsB;;AAkB3CnJ,8BAlB2C,MAkB3CA;AACAC,uCAnB2C,MAmB3CA;;AAIA,mCAA2BJ,YAA3B,UAvB2C,IAuB3C;;AACA,mCAA2BG,UAA3B,mBAC2BA,UAzBgB,gBAwB3C;AA/Kc,KAuJhBH;AA4BA2H,sBAAkB,YAAM;AACtB,UAAI,CAAC,OAAL,kBAA4B;AAAA;AADN;;AAItB3H,uCAAkCwJ,oBAAD,EAAgB;AAC/C,YAAI,CAAJ,YAAiB;AAAA;AAD8B;;AAI/CA,wBAAiBC,YAAD,EAAQ;AACtB,cAAI,CAAJ,IAAS;AACP,mBADO,KACP;AAFoB;;AAItBzH,uBAJsB,sCAItBA;;AACA,0BAAc0H,+BALQ,UAKtB;;AACA,iBANsB,IAMtB;AAV6C,SAI/CF;AAUA,YAAIG,QAd2C,cAc/C;;AACA,aAAK,IAAIL,IAAJ,GAAWM,KAAKJ,WAArB,QAAwCF,IAAxC,IAAgDA,CAAhD,IAAqD;AACnD,cAAIG,KAAKD,WAD0C,CAC1CA,CAAT;;AACA,cAAIC,MAAME,WAAV,EAAUA,CAAV,EAA0B;AACxBP,uBAAW,YAAW;AACpBnL,qBADoB,KACpBA;AAFsB,aACxBmL;AADwB;AAFyB;AAfN;AAJ3B,OAItBpJ;AAvLc,KAmLhB2H;AA+BAd,gBAAY,6CAAZA,OAAsD,YAAM;AAC1D7G,oCAA+B6J,iBAAD,EAAa;AACzC,uCAA6B;AAAEA,iBADU,EACVA;AAAF,SAA7B;AAFwD,OAC1D7J;AAGAA,wCAAmC8J,qBAAD,EAAiB;AACjD,0CAAgC;AAAEA,qBADe,EACfA;AAAF,SAAhC;AALwD,OAI1D9J;AAtNc,KAkNhB6G;AASA7G,mCACI,iBAAqD;AAAA,UAApD,IAAoD,SAApD,IAAoD;AAAA,UAApD,QAAoD,SAApD,QAAoD;AAAA,UAArD,0BAAqD,SAArD,0BAAqD;AACvD,4BADuD,IACvD;AACA,wBAFuD,QAEvD;AACA,0CAHuD,0BAGvD;AAGAgC,kBAAY,SAAShC,YAAT,qBACA+J,KADA,yBAC+B,kBAAD,GAAC,EAD/B,IAC+B,EAD/B,WAES,iBAAD,GAAC,EAFT,IAES,EAFT,yBAGgB,qBAHhB,QAIC,0DAJD,MAN2C,GAMvD/H;AAMA,UAZuD,QAYvD;;AACA,UAAIgI,YAAYA,aAAhB,UAAgBA,CAAhB,EAA0C;AACxC,YAAIvF,QAAQuF,aAD4B,UAC5BA,CAAZ;;AAEA,YAAIvF,UAAJ,YAA0B;AACxBwF,qBADwB,KACxBA;AAJsC;AAba;;AAqBvD,UAAI,qBAAqBF,KAAzB,OAAyBA,CAAzB,EAAwC;AACtCE,mBAAWF,KAD2B,OAC3BA,CAAXE;AAtBqD;;AAyBvD,oBAAc;AACZ,kCACE,QADF,gBACmBtI,8BAA8B/I,SAFrC,KACZ;AADF,aAGO,gCAAgC;AACrC,wBADqC,0BACrC;AA7BqD;;AAgCvD,UAAImR,KAAJ,mBAA4B;AAC1B/H,qBAD0B,wCAC1BA;;AACA,wBAAc0H,+BAFY,KAE1B;AAlCqD;AA5NzC,KA2NhB1J;AAn/BuB;AA4jCzBkK,uBA5jCyB,wCA4jC+C;AAAA,QAAlD,WAAkD,SAAlD,WAAkD;AAAA,QAAlD,UAAkD,SAAlD,UAAkD;AAAA,kCAAvBrB,WAAuB;AAAA,QAAvBA,WAAuB,kCAAxEqB,IAAwE;;AACtE,QAAItI,iDAAoC,KAAxC,kBAA+D;AAAA;AADO;;AAMtE,+BAA2B;AACzBgH,iBADyB,EACzBA,WADyB;AAEzBuB,oBAAcxB,eAAenK,WAFJ;AAGzB4L,iBAAWxI,4BAHc,kBAGdA;AAHc,KAA3B;;AAMA,QAAI,gBAAJ,iBAAqC;AACnC,6BAAuB,gBADY,eACnC;AAEA,6BAAuB,gBAHY,eAGnC;AAfoE;;AAmBtE,QAAIiH,eAAe,CAAC,KAAhBA,mBACAF,eAAenK,WADnB,SACuC;AACrC,6BAAuB6L,eADc,WACdA,CAAvB;AAGA,2BAAqB;AAAEC,sBAAF;AAA6BnR,oBAA7B;AAAA,OAArB;AAxBoE;AA5jC/C;AAwlCzBoR,gBAxlCyB,0BAwlCzBA,UAxlCyB,EAylCoC;AAAA;;AAAA,oFAD7DA,EAC6D;AAAA,QADlC,QACkC,SADlC,QACkC;AAAA,QADlC,WACkC,SADlC,WACkC;AAAA,QADlC,UACkC,SADlC,UACkC;AAAA,QADlC,UACkC,SADlC,UACkC;;AAC3D,QAAMC,cAAeC,SAAfD,WAAeC,MAAD,EAAW;AAC7B,UAAIC,+BAAJ,KAAIA,CAAJ,EAA4B;AAC1B,yCAD0B,KAC1B;AAF2B;AAD4B,KAC3D;;AAKA,QAAMC,iBAAiB,SAAjBA,cAAiB,iBAAoB;AACzC,UAAIC,iCAAJ,MAAIA,CAAJ,EAA+B;AAC7B,sCAD6B,MAC7B;AAFuC;;AAIzC,UAAIC,iCAAJ,MAAIA,CAAJ,EAA+B;AAC7B,sCAD6B,MAC7B;AALuC;AANgB,KAM3D;;AAQA,4BAd2D,IAc3D;AACA,mCAf2D,WAe3D;AAEAF,+BAjB2D,UAiB3DA;;AAEA,QAAI,KAAJ,iBAA0B;AACxBH,kBAAY,KADY,eACxBA;AACA,aAAO,KAFiB,eAExB;AAEA,kCAA4B,KAJJ,eAIxB;AACA,6BALwB,IAKxB;AALF,WAMO,gBAAgB;AACrBA,kBADqB,QACrBA;AAEA,kCAHqB,UAGrB;AA5ByD;;AAiC3D,+BAA2B,eAA3B,mBAC2B,eAlCgC,gBAiC3D;AAEA,wCAAoC,eAnCuB,iBAmC3D;;AAEA,QAAI,CAAC,eAAL,mBAAuC;AAGrC,yCAHqC,6BAGrC;AAxCyD;AAzlCpC;AAqoCzBM,SAroCyB,qBAqoCf;AACR,QAAI,CAAC,KAAL,aAAuB;AAAA;AADf;;AAIR,mBAJQ,OAIR;AACA,4BALQ,OAKR;;AAGA,QAAI,4BAA4BC,uBAAhC,KAAkD;AAChD,uBADgD,OAChD;AATM;AAroCe;AAkpCzBC,gBAlpCyB,4BAkpCR;AACf,sCAAkC,KADnB,QACf;AACA,oDACE,gBAHa,sBAEf;AAEA,2BAJe,qBAIf;AAtpCuB;AAypCzBC,aAzpCyB,yBAypCX;AAAA;;AACZ,QAAI,KAAJ,cAAuB;AAAA;AADX;;AAQZ,QAAI,CAAC,KAAL,kBAA4B;AAC1B,oDACc,iDADd,sBAEqCC,sBAAD,EAAkB;AACpD,qBADoD,YACpD;AAJwB,OAC1B;AAD0B;AARhB;;AAmBZ,QAAI,CAAC,eAAL,gBAAoC;AAClC,2GAEUC,yBAAD,EAAqB;AAC5BlN,qBAD4B,eAC5BA;AAJgC,OAClC;AADkC;AAnBxB;;AA4BZ,QAAImN,gBAAgB,eA5BR,gBA4BQ,EAApB;AACA,QAAIxN,iBAAiB,eA7BT,cA6BZ;AACA,QAAIsC,eAAekE,mDACjB,KADiBA,4CACgC,KA/BvC,IA8BOA,CAAnB;AAEA,wBAhCY,YAgCZ;AACA,SAjCY,cAiCZ;AAEAlE,iBAnCY,MAmCZA;AA5rCuB;AAssCzBmL,cAAY,kCAAkC;AAC5C,QAAI,KAAJ,cAAuB;AACrB,wBADqB,OACrB;AACA,0BAFqB,IAErB;AAH0C;;AAK5C,SAL4C,cAK5C;AA3sCuB;AA8sCzBC,aA9sCyB,uBA8sCzBA,KA9sCyB,EA8sCN;AACjB,QAAI,CAAC,KAAL,aAAuB;AAAA;AADN;;AAIjB,QAAIC,cAAe,sCAAD,KAAC,IAJF,GAIjB;AACA,mCALiB,WAKjB;AAntCuB;AAwtCzBC,yBAxtCyB,qCAwtCC;AACxB,QAAI,CAAC,KAAL,qBAA+B;AAAA;AADP;;AAIxB,6BAJwB,OAIxB;AA5tCuB;AA+tCzBC,YA/tCyB,wBA+tCZ;AAAA,QACP,QADO,QACP,QADO;AAAA,QACP,YADO,QACP,YADO;AAGX/J,+BAA2B,sBAHhB,IAGgB,CAA3BA;AACAA,8BAA0B,qBAJf,IAIe,CAA1BA;AAEA3I,0BANW,eAMXA;AACAA,8BAPW,mBAOXA;AACAA,+BAA2B2I,aARhB,WAQX3I;AACAA,8BAA0B2I,aATf,UASX3I;AACAA,gCAVW,qBAUXA;AACAA,qCAXW,0BAWXA;AACAA,kCAZW,uBAYXA;AACAA,gCAbW,qBAaXA;AACAA,iCAdW,sBAcXA;AACAA,oCAfW,yBAeXA;AACAA,sCAhBW,2BAgBXA;AACAA,4BAjBW,iBAiBXA;AACAA,+BAlBW,oBAkBXA;AACAA,2CAnBW,gCAmBXA;AACAA,oCApBW,yBAoBXA;AACAA,4BArBW,iBAqBXA;AACAA,yBAtBW,cAsBXA;AACAA,4BAvBW,iBAuBXA;AACAA,6BAxBW,kBAwBXA;AACAA,4BAzBW,iBAyBXA;AACAA,4BA1BW,iBA0BXA;AACAA,gCA3BW,qBA2BXA;AACAA,0BA5BW,eA4BXA;AACAA,2BA7BW,gBA6BXA;AACAA,6BA9BW,kBA8BXA;AACAA,qCA/BW,0BA+BXA;AACAA,gCAhCW,qBAgCXA;AACAA,4BAjCW,iBAiCXA;AACAA,6BAlCW,kBAkCXA;AACAA,oCAnCW,yBAmCXA;AACAA,qCApCW,0BAoCXA;AACAA,oCArCW,yBAqCXA;AACAA,qCAtCW,0BAsCXA;AACAA,sCAvCW,2BAuCXA;AACAA,wBAxCW,aAwCXA;AACAA,mCAzCW,wBAyCXA;AACAA,0CA1CW,+BA0CXA;AACAA,0CA3CW,+BA2CXA;AAEEA,mCA7CS,wBA6CTA;AA5wCqB;AAgxCzB2S,kBAhxCyB,8BAgxCN;AAAA,QACb,QADa,QACb,QADa;AAAA,QACb,YADa,QACb,YADa;;AAGjBhK,gCAA4B,YAAM;AAChC3I,kCAA4B;AAAE+I,gBADE;AACJ,OAA5B/I;AAJe,KAGjB2I;;AAGAA,oCAAgC,YAAM;AACpC3I,sCAAgC;AAC9B+I,gBAD8B;AAE9BK,cAAMvJ,iCAFwB,CAExBA;AAFwB,OAAhCG;AAPe,KAMjB2I;;AAMAA,qCAAiC,YAAM;AACrC3I,uCAAiC;AAAE+I,gBADE;AACJ,OAAjC/I;AAbe,KAYjB2I;;AAGAA,oCAAgC,YAAM;AACpC3I,sCAAgC;AAAE+I,gBADE;AACJ,OAAhC/I;AAhBe,KAejB2I;;AAIAzD,gDAnBiB,yBAmBjBA;AACAA,qDAAiD;AAAE0N,eApBlC;AAoBgC,KAAjD1N;AACAA,qCArBiB,cAqBjBA;AACAA,uCAtBiB,gBAsBjBA;AACAA,sCAAkCyD,aAvBjB,YAuBjBzD;AACAA,0CAAsCyD,aAxBrB,gBAwBjBzD;AACAA,2CAAuCyD,aAzBtB,iBAyBjBzD;AACAA,0CAAsCyD,aA1BrB,gBA0BjBzD;AA1yCuB;AA6yCzB2N,cA7yCyB,0BA6yCV;AAAA,QACT,QADS,QACT,QADS;AAAA,QACT,YADS,QACT,YADS;AAGb7S,2BAHa,eAGbA;AACAA,+BAJa,mBAIbA;AACAA,gCAA4B2I,aALf,WAKb3I;AACAA,+BAA2B2I,aANd,UAMb3I;AACAA,iCAPa,qBAObA;AACAA,sCARa,0BAQbA;AACAA,mCATa,uBASbA;AACAA,iCAVa,qBAUbA;AACAA,kCAXa,sBAWbA;AACAA,qCAZa,yBAYbA;AACAA,uCAba,2BAabA;AACAA,6BAda,iBAcbA;AACAA,gCAfa,oBAebA;AACAA,4CAhBa,gCAgBbA;AACAA,qCAjBa,yBAiBbA;AACAA,6BAlBa,iBAkBbA;AACAA,0BAnBa,cAmBbA;AACAA,6BApBa,iBAoBbA;AACAA,8BArBa,kBAqBbA;AACAA,6BAtBa,iBAsBbA;AACAA,6BAvBa,iBAuBbA;AACAA,iCAxBa,qBAwBbA;AACAA,2BAzBa,eAyBbA;AACAA,4BA1Ba,gBA0BbA;AACAA,8BA3Ba,kBA2BbA;AACAA,sCA5Ba,0BA4BbA;AACAA,iCA7Ba,qBA6BbA;AACAA,6BA9Ba,iBA8BbA;AACAA,8BA/Ba,kBA+BbA;AACAA,qCAhCa,yBAgCbA;AACAA,sCAjCa,0BAiCbA;AACAA,qCAlCa,yBAkCbA;AACAA,sCAnCa,0BAmCbA;AACAA,uCApCa,2BAoCbA;AACAA,yBArCa,aAqCbA;AACAA,oCAtCa,wBAsCbA;AACAA,2CAvCa,+BAuCbA;AACAA,2CAxCa,+BAwCbA;AAEEA,oCA1CW,wBA0CXA;AAGF2I,+BA7Ca,IA6CbA;AACAA,8BA9Ca,IA8CbA;AA31CuB;AA81CzBmK,oBA91CyB,gCA81CJ;AAAA,QACf,YADe,QACf,YADe;AAGnB5N,mDAHmB,yBAGnBA;AACAA,wCAJmB,cAInBA;AACAA,wCALmB,cAKnBA;AACAA,0CANmB,gBAMnBA;AACAA,yCAAqCyD,aAPlB,YAOnBzD;AACAA,6CAAyCyD,aARtB,gBAQnBzD;AACAA,8CAA0CyD,aATvB,iBASnBzD;AACAA,6CAAyCyD,aAVtB,gBAUnBzD;AAEAyD,gCAZmB,IAYnBA;AACAA,oCAbmB,IAanBA;AACAA,qCAdmB,IAcnBA;AACAA,oCAfmB,IAenBA;AA72CuB;AAAA,CAA3B;;AAi3CA,IAt8CA,eAs8CA;AACiE;AAC/D,MAAMoK,wBAAwB,iEAA9B;;AAEAC,oBAAkB,+BAA+B;AAC/C,QAAI1G,SAAJ,WAAwB;AAAA;AADuB;;AAI/C,QAAI;AACF,UAAI2G,eAAe,kBAAQ/N,gBAAR,gBADjB,MACF;;AACA,UAAI6N,+BAAJ,YAAIA,CAAJ,EAAkD;AAAA;AAFhD;;AAAA,kBAM0B,wBAAc7N,gBANxC,IAM0B,CAN1B;AAAA,UAME,MANF,SAME,MANF;AAAA,UAME,QANF,SAME,QANF;;AAaF,UAAIgO,2BAA2BC,aAA/B,SAAqD;AACnD,cAAM,UAD6C,sCAC7C,CAAN;AAdA;AAAJ,MAgBE,WAAW;AACX,UAAIrG,UAAUsG,MAAMA,GADT,OACX;AACAxM,4GAEUmG,6BAAD,EAAyB;AAChCnG,wDAAgD;AAAEkG,iBADlB,EACkBA;AAAF,SAAhDlG;AALS,OAEXA;AAKA,YAPW,EAOX;AA3B6C;AAHc,GAG/DoM;AA18CF;;AA0+CA,0BAA0B;AACxB,MAAI,CAAC7G,8BAAL,WAAoC;AAClCA,8CAAgCtD,4BADE,WACFA,CAAhCsD;AAFsB;;AAwBxB,SAAOkH,0BAAWC,oBAxBM,YAwBNA,EAAXD,CAAP;AAlgDF;;AAqgDA,0CAA0C;AACxC,MAAIrM,YAAYJ,qBADwB,SACxC;AACA,SAAO,0BAAWI,UAAX,yBAA8C,YAAW;AAC9DgF,kBAD8D,WAC9DA;AACAA,gBAAY;AACVuH,SADU,EACVA,aADU;AAEVC,qBAFU,EAEVA;AAFU,KAAZxH,EAGGhF,UAL2D,aAE9DgF;AAJsC,GAEjC,CAAP;AAvgDF;;AAghDA,gCAAgC;AAC9B,MAAIhF,YAAYJ,qBADc,SAC9B;AACA,MAF8B,IAE9B;AAEE,MAAI6M,cAAc5T,mCAJU,CAIVA,CAAlB;AACA,MAAI6T,SAASpK,gCALe,WAKfA,CAAb;AACAgD,SAAO,mBAAmBoH,OAAnB,OAAiC7K,4BANZ,YAMYA,CAAxCyD;AACA0G,kBAP4B,IAO5BA;AAQA,MAAIW,YAAY9T,uBAfY,OAeZA,CAAhB;AACA8T,iBAAe3M,UAhBa,iBAgB5B2M;AACAA,wBAjB4B,WAiB5BA;AACAA,iCAlB4B,MAkB5BA;AACAA,4BAnB4B,8BAmB5BA;AACA9T,4BApB4B,SAoB5BA;;AAEA,MAAI,CAACqF,OAAD,QAAgB,CAACA,OAAjB,cACA,CAACA,OADD,YACoB,CAACA,OADzB,MACsC;AACpC8B,sDADoC,MACpCA;AACAA,qEAFoC,MAEpCA;AAHF,SAIO;AACL2M,sBADK,IACLA;AA3B0B;;AA8B5BA,uCAAqC,eAAc;AACjD,QAAIC,QAAQC,WADqC,KACjD;;AACA,QAAI,UAAUD,iBAAd,GAAkC;AAAA;AAFe;;AAKjDhN,8DAA0D;AACxDmC,cADwD;AAExD4K,iBAAWE,IAF6C;AAAA,KAA1DjN;AAnC0B,GA8B5B+M;AAYA3M,uDAAqD,eAAc;AACjE6M,QADiE,cACjEA;AAEAA,kCAHiE,MAGjEA;AA7C0B,GA0C5B7M;AAKAA,mDAAiD,eAAc;AAC7D6M,QAD6D,cAC7DA;AAEA,QAAMD,QAAQC,iBAH+C,KAG7D;;AACA,QAAI,UAAUD,iBAAd,GAAkC;AAAA;AAJ2B;;AAO7DhN,8DAA0D;AACxDmC,cADwD;AAExD4K,iBAAWE,IAF6C;AAAA,KAA1DjN;AAtD0B,GA+C5BI;;AA4BF,MAAI,CAACJ,qBAAL,kBAA4C;AAC1CI,0CAD0C,QAC1CA;AACAA,yDAF0C,QAE1CA;AA7E4B;;AAgF9B,MAAI,CAACJ,qBAAL,oBAA8C;AAC5CI,2DAD4C,QAC5CA;AACAA,oEAF4C,QAE5CA;AAlF4B;;AAqF9B,MAAIJ,qBAAJ,wBAAiD;AAC/CI,6CAD+C,QAC/CA;AAtF4B;;AAyF9BA,4DAA0D,eAAc;AACtE,QAAI6M,eAAJ,MAA6C;AAC3CjN,uDAAiD;AAAEmC,gBADR;AACM,OAAjDnC;AAFoE;AAAxEI,KAzF8B,IAyF9BA;AAMAA,2DAAyD,YAAW;AAClEJ,oCADkE,MAClEA;AAhG4B,GA+F9BI;;AAIA,MAAI;AACF8M,4BADE,IACFA;AADF,IAEE,eAAe;AACflN,0GACsDoG,aAAD,EAAS;AAC5DpG,sCAD4D,MAC5DA;AAHa,KACfA;AAtG4B;AAhhDhC;;AA6nDA,IA7nDA,uBA6nDA;AACiE;AAC/DkN,4BAA0B,uCAAuC;AAC/D,QAAIxH,QAAQA,iCAAZ,GAAgD;AAI9C1F,4CAJ8C,IAI9CA;AACA,UAAMmN,MAAM,IALkC,cAKlC,EAAZ;;AACAA,mBAAa,YAAW;AACtBnN,kCAA0B,eAAemN,IADnB,QACI,CAA1BnN;AAP4C,OAM9CmN;;AAGAA,sBAT8C,IAS9CA;AACAA,yBAV8C,aAU9CA;AACAA,UAX8C,IAW9CA;AAX8C;AADe;;AAgB/D,cAAU;AACRnN,gCADQ,IACRA;AAjB6D;AADF,GAC/DkN;AA/nDF;;AAgqDA,oCAAoC;AAClC,MAAI1T,aAAayT,IADiB,UAClC;AACA,MAAIG,YAAY5T,aAFkB,CAElC;AACA,MAAI6T,WAAWrN,2CAHmB,SAGnBA,CAAf;;AAIA,MAAIxG,eAAewG,qBAAnB,MAA8C;AAC5CA,6DAD4C,KAC5CA;AARgC;;AAalC,MAAI,CAAJ,UAAe;AAAA;AAbmB;;AAkBlC,MAAIA,gCAAJ,wBAA4D;AAC1D,QAAI5D,gBAAgB4D,qDADsC,SACtCA,CAApB;AAEA5D,2BAH0D,QAG1DA;AArBgC;;AAwBlC,MAAI,gCAAgCkR,MAAhC,WAAiDD,SAArD,OAAqE;AACnEC,0BAAsBD,SAD6C,KACnEC;AAzBgC;;AA4BlC,MAAID,SAAJ,OAAoB;AAClBrN,+GACyDoG,aAAD,EAAS;AAC/DpG,sCAAgCqN,SAD+B,KAC/DrN;AAHgB,KAClBA;AA7BgC;AAhqDpC;;AAktDA,yCAAyC,CAltDzC;;AAiuDA,gCAAgC;AAE9B,MAAIuN,OAAON,IAAX;AAAA,MAF8B,IAE9B;;AACA;AACE;AACEO,aAAO9E,yBADT,MACE8E;AAFJ;;AAIE,SAJF,WAIE;AACA;AACEA,aAAO9E,yBADT,OACE8E;AANJ;;AAQE;AACEA,aAAO9E,yBADT,WACE8E;AATJ;;AAWE;AACEA,aAAO9E,yBADT,IACE8E;AAZJ;;AAcE;AACEnL,oBAAc,wCADhB,IACEA;AAfJ;AAAA;;AAkBArC,mDArB8B,IAqB9BA;AAtvDF;;AAyvDA,mCAAmC;AAGjC,MAAIyN,SAASR,IAHoB,MAGjC;;AACA;AACE;AACEjN,wDADF,MACEA;AAFJ;;AAKE;AACE,UAAI,CAACA,qBAAL,wBAAkD;AAChDA,qCADgD,MAChDA;AAFJ;;AALF;AAAA;AA7vDF;;AA0wDA,+CAA+C;AAAA,MACzC,MADyC,OACzC,MADyC;AAAA,MACzC,gBADyC,OACzC,gBADyC;AAE7CA,yDACE0N,mBAAmBC,gCAAnBD,WACAE,SAASD,gCAATC,aAA4CD,gCAJD,MAE7C3N;AA5wDF;;AAixDA,0CAA0C;AACxCA,kEACEA,gCAFsC,sBACxCA;AAGA,MAAIoB,QAAQpB,qBAJ4B,KAIxC;;AACA,MAAIoB,SAASpB,qBAAb,kBAAoD;AAElDoB,6BAAyB6L,IAAzB7L,eAAyC,YAAW,CAFF,CAElDA;AAPsC;AAjxD1C;;AA4xDA,sCAAsC;AACpC,MAAIyM,WAAWZ,IAAf;AAAA,MAA6B7L,QAAQpB,qBADD,KACpC;;AAEA,MAAIoB,SAASpB,qBAAb,kBAAoD;AAClDoB,sBAAkB;AAChB,cAAQyM,SADQ;AAEhB,cAAQA,SAFQ;AAGhB,oBAAcA,SAHE;AAIhB,mBAAaA,SAJG;AAKhB,kBAAYA,SALI;AAAA,KAAlBzM,WAMS,YAAW,CAP8B,CAClDA;AAJkC;;AAYpC,MAAI0M,OACF9N,iDAAiD6N,SAbf,aAalC7N,CADF;AAEAA,6DAdoC,IAcpCA;AACAA,4EAfoC,IAepCA;AAIA,MAAI+N,cACF/N,2CAA2CA,4BApBT,CAoBlCA,CADF;AAEA,MAAIgO,UAAUD,+BAA+BE,qCArBT,QAqBpC;AACAjO,2DAtBoC,OAsBpCA;AAlzDF;;AAqzDA,yCAAyC;AACvC,MAAIoB,QAAQpB,qBAD2B,KACvC;;AACA,MAAIoB,SAASpB,qBAAb,kBAAoD;AAElDoB,4BAAwB6L,IAAxB7L,eAAwC,YAAW,CAFD,CAElDA;AAJqC;AArzDzC;;AA6zDA,yCAAyC;AACvC,MAAIA,QAAQpB,qBAD2B,KACvC;;AACA,MAAIoB,SAASpB,qBAAb,kBAAoD;AAElDoB,4BAAwB6L,IAAxB7L,eAAwC,YAAW,CAFD,CAElDA;AAJqC;AA7zDzC;;AAq0DA,2BAA2B;AAAA,MACrB,WADqB,wBACrB,WADqB;AAAA,MACrB,SADqB,wBACrB,SADqB;;AAEzB,MAAI,CAAJ,aAAkB;AAAA;AAFO;;AAKzB,MAAI8M,oBAAoB1N,UALC,iBAKzB;;AACA,MAAI0N,gCACAA,sBADAA,cAEAA,sBAFJ,cAEwC;AAEtC1N,kCAFsC,iBAEtCA;AAVuB;;AAYzBA,YAZyB,MAYzBA;AAj1DF;;AAo1DA,kCAAkC;AAChC,MAAIgC,OAAOyK,IADqB,IAChC;;AACA,MAAI,CAAJ,MAAW;AAAA;AAFqB;;AAKhC,MAAI,CAACjN,qBAAL,kBAA4C;AAC1CA,2CAD0C,IAC1CA;AADF,SAEO,IAAI,CAACA,gCAAL,oBAAyD;AAC9DA,gDAD8D,IAC9DA;AAR8B;AAp1DlC;;AAg2DA,IAh2DA,wBAg2DA;AACiE;AAC/DmO,6BAA2B,uCAAuC;AAChE,QAAInO,kCACAA,+BADJ,sBACyD;AAAA;AAFO;;AAKhE,QAAI0F,OAAOuH,oBALqD,CAKrDA,CAAX;;AAEA,QAAImB,iCAAuB,CAACnM,4BAA5B,wBAA4BA,CAA5B,EAAsE;AACpE,UAAIL,MAAMwM,8BAD0D,IAC1DA,CAAV;;AACA,UAAI1I,KAAJ,MAAe;AACb9D,cAAM;AAAEA,aAAF,EAAEA,GAAF;AAAOyM,uBAAa3I,KAApB;AAAA,SAAN9D;AAHkE;;AAKpE5B,gCALoE,GAKpEA;AALF,WAMO;AACLA,4CAAsC0F,KADjC,IACL1F;AAEA,UAAIsO,aAAa,IAHZ,UAGY,EAAjB;;AACAA,0BAAoB,8CAA8C;AAChE,YAAIC,SAAStB,WADmD,MAChE;AACAjN,kCAA0B,eAFsC,MAEtC,CAA1BA;AANG,OAILsO;;AAIAA,mCARK,IAQLA;AArB8D;;AAyBhE,QAAIlO,YAAYJ,qBAzBgD,SAyBhE;AACAI,0DA1BgE,MA0BhEA;AACAA,yEA3BgE,MA2BhEA;AAEAA,sDA7BgE,MA6BhEA;AACAA,qEA9BgE,MA8BhEA;AA/B6D,GAC/D+N;AAl2DF;;AAo4DA,qCAAqC;AACnCnO,uBADmC,uBACnCA;AAr4DF;;AAu4DA,6BAA6B;AAEzB,MAAI9B,oBAAoB8B,+BAFC,iBAEzB;AACA/G,6CAHyB,KAGzBA;AA14DJ;;AA64DA,0BAA0B;AACxBqF,SADwB,KACxBA;AA94DF;;AAg5DA,6BAA6B;AAC3B0B,uBAD2B,QAC3BA;AAj5DF;;AAm5DA,8BAA8B;AAC5B,MAAIA,qBAAJ,aAAsC;AACpCA,gCADoC,CACpCA;AAF0B;AAn5D9B;;AAw5DA,6BAA6B;AAC3B,MAAIA,qBAAJ,aAAsC;AACpCA,gCAA4BA,qBADQ,UACpCA;AAFyB;AAx5D7B;;AA65DA,6BAA6B;AAC3BA,uBAD2B,IAC3BA;AA95DF;;AAg6DA,iCAAiC;AAC/BA,uBAD+B,IAC/BA;AAj6DF;;AAm6DA,2BAA2B;AACzBA,uBADyB,MACzBA;AAp6DF;;AAs6DA,4BAA4B;AAC1BA,uBAD0B,OAC1BA;AAv6DF;;AAy6DA,iCAAiC;AAC/BA,iCAA+BiN,OAAOA,IADP,eAC/BjN;AA16DF;;AA46DA,yCAAyC;AACvC,MAAIQ,YAAYR,qBADuB,SACvC;;AAGA,MAAIiN,cAAJ,IAAsB;AACpBzM,iCAA6ByM,IADT,KACpBzM;AALqC;;AAUvC,MAAIyM,cAAczM,4BAAdyM,QAAczM,EAAdyM,IACAA,cAAczM,UADlB,kBAC8C;AAC5CR,+CACEQ,UADFR,mBAC+BQ,UAFa,gBAC5CR;AAZqC;AA56DzC;;AA47DA,oCAAoC;AAClCA,qDAAmDiN,IADjB,KAClCjN;AA77DF;;AA+7DA,6BAA6B;AAC3BA,mCAD2B,EAC3BA;AAh8DF;;AAk8DA,8BAA8B;AAC5BA,mCAAiC,CADL,EAC5BA;AAn8DF;;AAq8DA,wCAAwC;AACtCA,8CAA4CiN,IADN,IACtCjN;AAt8DF;;AAw8DA,wCAAwC;AACtCA,8CAA4CiN,IADN,IACtCjN;AAz8DF;;AA28DA,uCAAuC;AACrCA,6CADqC,IACrCA;AA58DF;;AA+8DA,4BAA4B;AAC1BA,qDAAmD,SAASiN,IAA5DjN,MAAsE;AACpEwO,WAAOvB,IAD6D;AAEpEwB,kBAAcxB,IAFsD;AAGpEyB,mBAAezB,IAHqD;AAIpE0B,gBAAY1B,IAJwD;AAKpE2B,kBAAc3B,IALsD;AAMpE4B,kBAAc5B,IANsD;AAAA,GAAtEjN;AAh9DF;;AA09DA,uCAAuC;AACrCA,6DAA2D;AACzDwO,WAAOvB,IADkD;AAEzDwB,kBAAcxB,IAF2C;AAGzDyB,mBAHyD;AAIzDC,gBAJyD;AAKzDC,kBALyD;AAMzDC,kBANyD;AAAA,GAA3D7O;AA39DF;;AAq+DA,gDAA4D;AAAA,MAA5D,YAA4D,SAA5D,YAA4D;;AAC1D,MAAIA,qBAAJ,wBAAiD;AAC/CA,iEAD+C,YAC/CA;AADF,SAEO;AACLA,oDADK,YACLA;AAJwD;AAr+D5D;;AA6+DA,iDAA6E;AAAA,MAApC,KAAoC,UAApC,KAAoC;AAAA,MAApC,QAAoC,UAApC,QAAoC;AAAA,MAA7E,YAA6E,UAA7E,YAA6E;;AAC3E,MAAIA,qBAAJ,wBAAiD;AAC/CA,iEAA6D;AAC3D8O,cAD2D;AAE3DD,oBAF2D;AAG3DE,kBAH2D,EAG3DA;AAH2D,KAA7D/O;AADF,SAMO;AACLA,gEADK,YACLA;AARyE;AA7+D7E;;AAy/DA,qCAAqC;AACnCA,4CAA0CiN,IAA1CjN,aAA2DiN,IADxB,KACnCjN;AAEAA,iCAHmC,MAGnCA;AA5/DF;;AA+/DA,wCAAwC;AACtCA,0DAAwDiN,IADlB,aACtCjN;AAEAA,uBAHsC,cAGtCA;AAEAA,qDAAmDiN,IALb,UAKtCjN;AApgEF;;AAugEA,oCAAoC;AAClC,MAAIoI,OAAO6E,IADuB,UAClC;AAEAjN,mDAAiDiN,iBAHf,IAGlCjN;AACAA,sDAJkC,IAIlCA;;AAEA,MAAIA,gCAAJ,wBAA4D;AAC1DA,oEAD0D,IAC1DA;AAPgC;;AAWlC,MAAI,gCAAgCsN,MAApC,SAAmD;AACjD,QAAID,WAAWrN,2CAA2CoI,OADT,CAClCpI,CAAf;;AACA,QAAIqN,YAAYA,SAAhB,OAAgC;AAC9BC,sBAAgBD,SADc,KAC9BC;AAH+C;AAXjB;AAvgEpC;;AA0hEA,wCAAwC;AACtC,MAAIrU,6BAAJ,WAA4C;AAE1C+V,0BAF0C;AADN;AA1hExC;;AAiiEA,IAAIC,sBAjiEJ,IAiiEA;;AACA,kCAAkC;AAChC,2BAAyB;AACvBxH,iBADuB,mBACvBA;AAF8B;;AAIhCwH,wBAAsB,WAAW,YAAW;AAC1CA,0BAD0C,IAC1CA;AADoB,KAJU,2BAIV,CAAtBA;AAtiEF;;AA2iEA,6BAA6B;AAC3B,MAAIzO,YAAYR,qBADW,SAC3B;;AACA,MAAIQ,UAAJ,sBAAoC;AAAA;AAFT;;AAM3B,MAAIyM,eAAeA,IAAnB,SAAgC;AAC9B,QAAItI,UAAU3E,qBADgB,mCAC9B;;AACA,QAAKiN,eAAe,CAACtI,QAAjB,OAACsI,IACAA,eAAe,CAACtI,QADrB,SACuC;AAAA;AAHT;;AAO9BsI,QAP8B,cAO9BA;;AAEA,QAAIgC,uBAAuBhW,6BAA3B,UAAkE;AAAA;AATpC;;AAa9B,QAAIiW,gBAAgB1O,UAbU,YAa9B;AAEA,QAAI2O,QAAQC,wCAfkB,GAelBA,CAAZ;AAEA,QAAMC,mCAjBwB,GAiB9B;AACA,QAAIC,QAAQH,QAlBkB,gCAkB9B;;AACA,QAAIG,QAAJ,GAAe;AACbtP,mCAA6B,CADhB,KACbA;AADF,WAEO;AACLA,kCADK,KACLA;AAtB4B;;AAyB9B,QAAIuP,eAAe/O,UAzBW,YAyB9B;;AACA,QAAI0O,kBAAJ,cAAoC;AAIlC,UAAIM,wBAAwBD,+BAJM,CAIlC;AACA,UAAIE,OAAOjP,oBALuB,qBAKvBA,EAAX;AACA,UAAIkP,KAAKzC,cAAcwC,KANW,IAMlC;AACA,UAAIE,KAAK1C,cAAcwC,KAPW,GAOlC;AACAjP,wCAAkCkP,KARA,qBAQlClP;AACAA,uCAAiCmP,KATC,qBASlCnP;AAnC4B;AAAhC,SAqCO;AACLwO,0BADK;AA3CoB;AA3iE7B;;AA2lEA,6BAA6B;AAC3B,MAAI,CAAChP,sCAAL,QAAmD;AAAA;AADxB;;AAI3B,MAAII,YAAYJ,qBAJW,SAI3B;;AACA,MAAIA,+CAA+CiN,IAA/CjN,WACCI,qCAAqC6M,IAArC7M,WACA6M,eAAe7M,2BAFpB,cAE8D;AAC5DJ,0CAD4D,KAC5DA;AARyB;AA3lE7B;;AAumEA,+BAA+B;AAC7B,MAAIA,oCAAJ,QAAgD;AAAA;AADnB;;AAK7B,MAAI4P,UAAJ;AAAA,MAAqBC,sBALQ,KAK7B;AACA,MAAIC,MAAO,mBAAD,CAAC,KACA,iBADD,CAAC,KAEA,mBAFD,CAAC,KAGA,kBATkB,CAMlB,CAAX;AAKA,MAAItP,YAAYR,qBAXa,SAW7B;AACA,MAAI+P,6BAA6BvP,aAAaA,UAZjB,oBAY7B;;AAIA,MAAIsP,aAAaA,QAAbA,KAA0BA,QAA1BA,KAAuCA,QAA3C,IAAuD;AAErD,YAAQ7C,IAAR;AACE;AACE,YAAI,CAACjN,qBAAL,wBAAkD;AAChDA,uCADgD,IAChDA;AACA4P,oBAFgD,IAEhDA;AAHJ;;AADF;;AAOE;AACE,YAAI,CAAC5P,qBAAL,wBAAkD;AAChD,cAAIgQ,YAAYhQ,oCADgC,KAChD;;AACA,yBAAe;AACbA,4EAAgE;AAC9DwO,qBAAOwB,UADuD;AAE9DvB,4BAAcuB,UAFgD;AAG9DtB,6BAAesB,UAH+C;AAI9DrB,0BAAYqB,UAJkD;AAK9DpB,4BAAcoB,UALgD;AAM9DnB,4BAAciB,aAAaA,QANmC;AAAA,aAAhE9P;AAH8C;;AAYhD4P,oBAZgD,IAYhDA;AAbJ;;AAPF;;AAuBE,WAvBF,EAuBE;AACA,WAxBF,GAwBE;AACA,WAzBF,GAyBE;AACA;AACE,YAAI,CAAJ,4BAAiC;AAC/B5P,+BAD+B,MAC/BA;AAFJ;;AAIE4P,kBAJF,IAIEA;AA9BJ;;AAgCE,WAhCF,GAgCE;AACA,WAjCF,GAiCE;AACA;AACE,YAAI,CAAJ,4BAAiC;AAC/B5P,+BAD+B,OAC/BA;AAFJ;;AAIE4P,kBAJF,IAIEA;AAtCJ;;AAwCE,WAxCF,EAwCE;AACA;AACE,YAAI,CAAJ,4BAAiC;AAE/BnG,qBAAW,YAAW;AAEpBzJ,iCAFoB,SAEpBA;AAJ6B,WAE/ByJ;AAIAmG,oBAN+B,KAM/BA;AAPJ;;AAzCF;;AAoDE;AACE,YAAIG,8BAA8B/P,4BAAlC,GAAiE;AAC/DA,sCAD+D,CAC/DA;AACA4P,oBAF+D,IAE/DA;AACAC,gCAH+D,IAG/DA;AAJJ;;AApDF;;AA2DE;AACE,YAAIE,8BACA/P,4BAA4BA,qBADhC,YACiE;AAC/DA,sCAA4BA,qBADmC,UAC/DA;AACA4P,oBAF+D,IAE/DA;AACAC,gCAH+D,IAG/DA;AALJ;;AA3DF;AAAA;AAlB2B;;AA2F3B,MAAIC,aAAaA,QAAjB,GAA4B;AAC1B,YAAQ7C,IAAR;AACE;AACEjN,6BADF,QACEA;AACA4P,kBAFF,IAEEA;AAHJ;AAAA;AA5FyB;;AAsG7B,MAAIE,aAAaA,QAAjB,IAA6B;AAC3B,YAAQ7C,IAAR;AACE;AACEjN,6BADF,uBACEA;AACA4P,kBAFF,IAEEA;AAHJ;;AAKE;AAEE5P,0DAFF,MAEEA;AACA4P,kBAHF,IAGEA;AARJ;AAAA;AAvG2B;;AAoH7B,eAAa;AACX,QAAIC,uBAAuB,CAA3B,4BAAwD;AACtDrP,gBADsD,KACtDA;AAFS;;AAIXyM,QAJW,cAIXA;AAJW;AApHgB;;AA8H7B,MAAIgD,aAAahX,0BAA0BA,uBA9Hd,QA8HcA,CAA3C;AACA,MAAIiX,oBAAoBD,cAAcA,mBA/HT,WA+HSA,EAAtC;;AACA,MAAIC,iCACAA,sBADAA,cAEAA,sBAFJ,UAEoC;AAElC,QAAIjD,gBAAJ,IAAwB;AAAA;AAFU;AAlIP;;AAyI7B,MAAI6C,QAAJ,GAAe;AACb,QAAIK,WAAJ;AAAA,QAAkBC,oBADL,KACb;;AACA,YAAQnD,IAAR;AACE,WADF,EACE;AACA;AAEE,YAAIzM,UAAJ,4BAA0C;AACxC4P,8BADwC,IACxCA;AAHJ;;AAKED,mBAAW,CALb,CAKEA;AAPJ;;AASE;AACE,YAAI,CAAJ,4BAAiC;AAC/BC,8BAD+B,IAC/BA;AAFJ;;AAIED,mBAAW,CAJb,CAIEA;AAbJ;;AAeE;AAEE,YAAI3P,UAAJ,8BAA4C;AAC1C4P,8BAD0C,IAC1CA;AAlBN;;AAqBE,WArBF,EAqBE;AACA;AACED,mBAAW,CADb,CACEA;AAvBJ;;AAyBE;AACE,YAAInQ,sCAAJ,QAAkD;AAChDA,gDADgD,KAChDA;AACA4P,oBAFgD,IAEhDA;AAHJ;;AAKE,YAAI,CAAC5P,qBAAD,0BACAA,6BADJ,QACyC;AACvCA,uCADuC,KACvCA;AACA4P,oBAFuC,IAEvCA;AARJ;;AAzBF;;AAoCE,WApCF,EAoCE;AACA;AAEE,YAAIpP,UAAJ,4BAA0C;AACxC4P,8BADwC,IACxCA;AAHJ;;AAKED,mBALF,CAKEA;AA1CJ;;AA4CE,WA5CF,EA4CE;AACA;AACE,YAAI,CAAJ,4BAAiC;AAC/BC,8BAD+B,IAC/BA;AAFJ;;AAIED,mBAJF,CAIEA;AAjDJ;;AAmDE;AAEE,YAAI3P,UAAJ,8BAA4C;AAC1C4P,8BAD0C,IAC1CA;AAtDN;;AAyDE,WAzDF,EAyDE;AACA;AACED,mBADF,CACEA;AA3DJ;;AA8DE;AACE,YAAIJ,8BAA8B/P,4BAAlC,GAAiE;AAC/DA,sCAD+D,CAC/DA;AACA4P,oBAF+D,IAE/DA;AACAC,gCAH+D,IAG/DA;AAJJ;;AA9DF;;AAqEE;AACE,YAAIE,8BACA/P,4BAA4BA,qBADhC,YACiE;AAC/DA,sCAA4BA,qBADmC,UAC/DA;AACA4P,oBAF+D,IAE/DA;AACAC,gCAH+D,IAG/DA;AALJ;;AArEF;;AA8EE;AACE7P,uDAA+CqQ,6BADjD,MACErQ;AA/EJ;;AAiFE;AACEA,uDAA+CqQ,6BADjD,IACErQ;AAlFJ;;AAqFE;AACEA,yCADF,EACEA;AAtFJ;;AAyFE;AACEA,wCADF,MACEA;AA1FJ;AAAA;;AA8FA,QAAImQ,mBACC,sBAAsB3P,gCAD3B,UAAI2P,CAAJ,EACwE;AACtE,UAAIA,WAAJ,GAAkB;AAChB,YAAInQ,4BAA4BA,qBAAhC,YAAiE;AAC/DA,+BAD+D,IAC/DA;AAFc;AAAlB,aAIO;AACL,YAAIA,4BAAJ,GAAmC;AACjCA,+BADiC,IACjCA;AAFG;AAL+D;;AAUtE4P,gBAVsE,IAUtEA;AA3GW;AAzIc;;AAwP7B,MAAIE,QAAJ,GAAe;AACb,YAAQ7C,IAAR;AACE,WADF,EACE;AACA;AACE,YAAI,+BACAzM,gCADJ,YACgD;AAAA;AAFlD;;AAKE,YAAIR,4BAAJ,GAAmC;AACjCA,+BADiC,IACjCA;AANJ;;AAQE4P,kBARF,IAQEA;AAVJ;;AAaE;AACE5P,yCAAiC,CADnC,EACEA;AAdJ;AAAA;AAzP2B;;AA4Q7B,MAAI,YAAY,CAAhB,4BAA6C;AAI3C,QAAKiN,qBAAqBA,eAAtB,EAACA,IACAA,sBAAsBiD,sBAD3B,UAC4D;AAC1DL,4BAD0D,IAC1DA;AANyC;AA5QhB;;AAsR7B,MAAIA,uBAAuB,CAACrP,0BAA5B,UAA4BA,CAA5B,EAAmE;AAIjEA,cAJiE,KAIjEA;AA1R2B;;AA6R7B,eAAa;AACXyM,QADW,cACXA;AA9R2B;AAvmE/B;;AAi5EA,2CAA2C;AACzC;AACE,SADF,YACE;AACA;AACE,aAAOnE,qBAHX,IAGI;;AACF,SAJF,eAIE;AACA;AACE,aAAOA,qBANX,GAMI;;AACF,SAPF,gBAOE;AACA;AACE,aAAOA,qBATX,IASI;AATJ;;AAWA,SAAOA,qBAZkC,IAYzC;AA75EF;;AAw6EA,wCAAwC;AACtC;AACE;AACE,aAAOJ,yBAFX,IAEI;;AACF;AACE,aAAOA,yBAJX,MAII;;AACF;AACE,aAAOA,yBANX,OAMI;;AACF;AACE,aAAOA,yBARX,WAQI;;AACF,SATF,OASE;AATF;;AAYA,SAAOA,yBAb+B,IAatC;AAr7EF;;AAy7EA,IAAIjE,yBAAyB;AAC3B6L,YAAU;AACRC,sBADQ;AAERC,sBAFQ,gCAEa;AACnB,YAAM,UADa,qCACb,CAAN;AAHM;AAAA;AADiB,CAA7B;;;;;;;;;;ACz7EAC,iBAAiB3X,oBAAjB2X,CAAiB3X,CAAjB2X,C;;;;;;;;;;;ACOA,IAAIC,UAAW,mBAAmB;AAAA;;AAGhC,MAAIC,KAAKlL,OAHuB,SAGhC;AACA,MAAImL,SAASD,GAJmB,cAIhC;AACA,MALgC,SAKhC;AACA,MAAIE,UAAU,wCANkB,EAMhC;AACA,MAAIC,iBAAiBD,oBAPW,YAOhC;AACA,MAAIE,sBAAsBF,yBARM,iBAQhC;AACA,MAAIG,oBAAoBH,uBATQ,eAShC;;AAEA,qDAAmD;AAEjD,QAAII,iBAAiBC,WAAWA,6BAAXA,sBAF4B,SAEjD;AACA,QAAIC,YAAY1L,cAAcwL,eAHmB,SAGjCxL,CAAhB;AACA,QAAI2L,UAAU,YAAYC,eAJuB,EAInC,CAAd;AAIAF,wBAAoBG,gCAR6B,OAQ7BA,CAApBH;AAEA,WAViD,SAUjD;AArB8B;;AAuBhCI,iBAvBgC,IAuBhCA;;AAYA,kCAAgC;AAC9B,QAAI;AACF,aAAO;AAAE9K,cAAF;AAAkB+K,aAAKC,aAAvB,GAAuBA;AAAvB,OAAP;AADF,MAEE,YAAY;AACZ,aAAO;AAAEhL,cAAF;AAAiB+K,aAAjB;AAAA,OAAP;AAJ4B;AAnCA;;AA2ChC,MAAIE,yBA3C4B,gBA2ChC;AACA,MAAIC,yBA5C4B,gBA4ChC;AACA,MAAIC,oBA7C4B,WA6ChC;AACA,MAAIC,oBA9C4B,WA8ChC;AAIA,MAAIC,mBAlD4B,EAkDhC;;AAMA,uBAAqB,CAxDW;;AAyDhC,+BAA6B,CAzDG;;AA0DhC,wCAAsC,CA1DN;;AA8DhC,MAAIC,oBA9D4B,EA8DhC;;AACAA,sCAAoC,YAAY;AAC9C,WAD8C,IAC9C;AAhE8B,GA+DhCA;;AAIA,MAAIC,WAAWvM,OAnEiB,cAmEhC;AACA,MAAIwM,0BAA0BD,YAAYA,SAASA,SAASjJ,OApE5B,EAoE4BA,CAATiJ,CAATA,CAA1C;;AACA,MAAIC,2BACAA,4BADAA,MAEArB,qCAFJ,cAEIA,CAFJ,EAE0D;AAGxDmB,wBAHwD,uBAGxDA;AA1E8B;;AA6EhC,MAAIG,KAAKC,uCACPC,sBAAsB3M,cA9EQ,iBA8ERA,CADxB;AAEA4M,gCAA8BH,iBA/EE,0BA+EhCG;AACAF,2CAhFgC,iBAgFhCA;AACAA,kDACEE,gCAlF8B,mBAiFhCF;;AAKA,4CAA0C;AACxC,wCAAoC,kBAAiB;AACnDG,0BAAoB,eAAc;AAChC,eAAO,qBADyB,GACzB,CAAP;AAFiD,OACnDA;AAFsC,KACxC;AAvF8B;;AA8FhCf,gCAA8B,kBAAiB;AAC7C,QAAIgB,OAAO,gCAAgCC,OADE,WAC7C;AACA,WAAOD,OACHA,8BAGC,qBAAoBA,KAArB,IAAC,MAJEA,sBAFsC,KAE7C;AAhG8B,GA8FhChB;;AAUAA,iBAAe,kBAAiB;AAC9B,QAAI9L,OAAJ,gBAA2B;AACzBA,oCADyB,0BACzBA;AADF,WAEO;AACL+M,yBADK,0BACLA;;AACA,UAAI,EAAE,qBAAN,MAAI,CAAJ,EAAoC;AAClCA,oCADkC,mBAClCA;AAHG;AAHuB;;AAS9BA,uBAAmB/M,cATW,EASXA,CAAnB+M;AACA,WAV8B,MAU9B;AAlH8B,GAwGhCjB;;AAiBAA,kBAAgB,eAAc;AAC5B,WAAO;AAAEkB,eADmB;AACrB,KAAP;AA1H8B,GAyHhClB;;AAIA,oCAAkC;AAChC,kDAA8C;AAC5C,UAAImB,SAASC,SAASxB,UAATwB,MAASxB,CAATwB,aAD+B,GAC/BA,CAAb;;AACA,UAAID,gBAAJ,SAA6B;AAC3BE,eAAOF,OADoB,GAC3BE;AADF,aAEO;AACL,YAAI9D,SAAS4D,OADR,GACL;AACA,YAAIG,QAAQ/D,OAFP,KAEL;;AACA,YAAI+D,SACA,mBADAA,YAEAjC,mBAFJ,SAEIA,CAFJ,EAEmC;AACjC,iBAAO,gBAAgBiC,MAAhB,cAAoC,iBAAgB;AACzDC,2CADyD,MACzDA;AADK,aAEJ,eAAc;AACfA,0CADe,MACfA;AAJ+B,WAC1B,CAAP;AANG;;AAaL,eAAO,4BAA4B,qBAAoB;AAIrDhE,yBAJqD,SAIrDA;AACAtF,kBALqD,MAKrDA;AALK,WAMJ,iBAAgB;AAGjB,iBAAOsJ,gCAHU,MAGVA,CAAP;AAtBG,SAaE,CAAP;AAjB0C;AADd;;AAgChC,QAhCgC,eAgChC;;AAEA,kCAA8B;AAC5B,4CAAsC;AACpC,eAAO,YAAY,2BAA0B;AAC3CA,uCAD2C,MAC3CA;AAFkC,SAC7B,CAAP;AAF0B;;AAO5B,aAAOC,kBAaLA,kBAAkBA,iDAAlBA,0BAAkBA,CAAlBA,GAKIC,0BAzBsB,EAO5B;AAzC8B;;AAgEhC,mBAhEgC,OAgEhC;AA7L8B;;AAgMhCC,wBAAsBC,cAhMU,SAgMhCD;;AACAC,iDAA+C,YAAY;AACzD,WADyD,IACzD;AAlM8B,GAiMhCA;;AAGA3B,0BApMgC,aAoMhCA;;AAKAA,kBAAgB,+CAA8C;AAC5D,QAAI4B,OAAO,kBACTC,6BAF0D,WAE1DA,CADS,CAAX;AAIA,WAAO7B,8CAEH,iBAAiB,kBAAiB;AAChC,aAAOzC,cAAcA,OAAdA,QAA6BqE,KADJ,IACIA,EAApC;AARsD,KAOxD,CAFJ;AA9M8B,GAyMhC5B;;AAYA,oDAAkD;AAChD,QAAI8B,QAD4C,sBAChD;AAEA,WAAO,6BAA6B;AAClC,UAAIA,UAAJ,mBAAiC;AAC/B,cAAM,UADyB,8BACzB,CAAN;AAFgC;;AAKlC,UAAIA,UAAJ,mBAAiC;AAC/B,YAAIC,WAAJ,SAAwB;AACtB,gBADsB,GACtB;AAF6B;;AAO/B,eAAOC,UAPwB,EAO/B;AAZgC;;AAelCnC,uBAfkC,MAelCA;AACAA,oBAhBkC,GAgBlCA;;AAEA,mBAAa;AACX,YAAIoC,WAAWpC,QADJ,QACX;;AACA,sBAAc;AACZ,cAAIqC,iBAAiBC,8BADT,OACSA,CAArB;;AACA,8BAAoB;AAClB,gBAAID,mBAAJ,kBADkB;AAElB,mBAFkB,cAElB;AAJU;AAFH;;AAUX,YAAIrC,mBAAJ,QAA+B;AAG7BA,yBAAeA,gBAAgBA,QAHF,GAG7BA;AAHF,eAKO,IAAIA,mBAAJ,SAAgC;AACrC,cAAIiC,UAAJ,wBAAsC;AACpCA,oBADoC,iBACpCA;AACA,kBAAMjC,QAF8B,GAEpC;AAHmC;;AAMrCA,oCAA0BA,QANW,GAMrCA;AANK,eAQA,IAAIA,mBAAJ,UAAiC;AACtCA,mCAAyBA,QADa,GACtCA;AAxBS;;AA2BXiC,gBA3BW,iBA2BXA;AAEA,YAAIX,SAASC,wBA7BF,OA6BEA,CAAb;;AACA,YAAID,gBAAJ,UAA8B;AAG5BW,kBAAQjC,mCAHoB,sBAG5BiC;;AAIA,cAAIX,eAAJ,kBAAqC;AAAA;AAPT;;AAW5B,iBAAO;AACLG,mBAAOH,OADF;AAELiB,kBAAMvC,QAFD;AAAA,WAAP;AAXF,eAgBO,IAAIsB,gBAAJ,SAA6B;AAClCW,kBADkC,iBAClCA;AAGAjC,2BAJkC,OAIlCA;AACAA,wBAAcsB,OALoB,GAKlCtB;AAnDS;AAlBqB;AAHY,KAGhD;AAxN8B;;AAuShC,kDAAgD;AAC9C,QAAIkC,SAASE,kBAAkBpC,QADe,MACjCoC,CAAb;;AACA,QAAIF,WAAJ,WAA0B;AAGxBlC,yBAHwB,IAGxBA;;AAEA,UAAIA,mBAAJ,SAAgC;AAE9B,YAAIoC,kBAAJ,QAAIA,CAAJ,EAAiC;AAG/BpC,2BAH+B,QAG/BA;AACAA,wBAJ+B,SAI/BA;AACAsC,wCAL+B,OAK/BA;;AAEA,cAAItC,mBAAJ,SAAgC;AAG9B,mBAH8B,gBAG9B;AAV6B;AAFH;;AAgB9BA,yBAhB8B,OAgB9BA;AACAA,sBAAc,cAjBgB,gDAiBhB,CAAdA;AAtBsB;;AA0BxB,aA1BwB,gBA0BxB;AA5B4C;;AA+B9C,QAAIsB,SAASC,iBAAiBa,SAAjBb,UAAoCvB,QA/BH,GA+BjCuB,CAAb;;AAEA,QAAID,gBAAJ,SAA6B;AAC3BtB,uBAD2B,OAC3BA;AACAA,oBAAcsB,OAFa,GAE3BtB;AACAA,yBAH2B,IAG3BA;AACA,aAJ2B,gBAI3B;AArC4C;;AAwC9C,QAAIhH,OAAOsI,OAxCmC,GAwC9C;;AAEA,QAAI,CAAJ,MAAY;AACVtB,uBADU,OACVA;AACAA,oBAAc,cAFJ,kCAEI,CAAdA;AACAA,yBAHU,IAGVA;AACA,aAJU,gBAIV;AA9C4C;;AAiD9C,QAAIhH,KAAJ,MAAe;AAGbgH,cAAQoC,SAARpC,cAA+BhH,KAHlB,KAGbgH;AAGAA,qBAAeoC,SANF,OAMbpC;;AAQA,UAAIA,mBAAJ,UAAiC;AAC/BA,yBAD+B,MAC/BA;AACAA,sBAF+B,SAE/BA;AAhBW;AAAf,WAmBO;AAEL,aAFK,IAEL;AAtE4C;;AA2E9CA,uBA3E8C,IA2E9CA;AACA,WA5E8C,gBA4E9C;AAnX8B;;AAwXhC6B,wBAxXgC,EAwXhCA;AAEAf,0BA1XgC,WA0XhCA;;AAOAA,uBAAqB,YAAW;AAC9B,WAD8B,IAC9B;AAlY8B,GAiYhCA;;AAIAA,gBAAc,YAAW;AACvB,WADuB,oBACvB;AAtY8B,GAqYhCA;;AAIA,8BAA4B;AAC1B,QAAI0B,QAAQ;AAAEC,cAAQC,KADI,CACJA;AAAV,KAAZ;;AAEA,QAAI,KAAJ,MAAe;AACbF,uBAAiBE,KADJ,CACIA,CAAjBF;AAJwB;;AAO1B,QAAI,KAAJ,MAAe;AACbA,yBAAmBE,KADN,CACMA,CAAnBF;AACAA,uBAAiBE,KAFJ,CAEIA,CAAjBF;AATwB;;AAY1B,yBAZ0B,KAY1B;AArZ8B;;AAwZhC,gCAA8B;AAC5B,QAAIlB,SAASkB,oBADe,EAC5B;AACAlB,kBAF4B,QAE5BA;AACA,WAAOA,OAHqB,GAG5B;AACAkB,uBAJ4B,MAI5BA;AA5Z8B;;AA+ZhC,gCAA8B;AAI5B,sBAAkB,CAAC;AAAEC,cAJO;AAIT,KAAD,CAAlB;AACAxC,sCAL4B,IAK5BA;AACA,eAN4B,IAM5B;AAra8B;;AAwahCE,iBAAe,kBAAiB;AAC9B,QAAIwC,OAD0B,EAC9B;;AACA,4BAAwB;AACtBA,gBADsB,GACtBA;AAH4B;;AAK9BA,SAL8B,OAK9BA;AAIA,WAAO,gBAAgB;AACrB,aAAOA,KAAP,QAAoB;AAClB,YAAIC,MAAMD,KADQ,GACRA,EAAV;;AACA,YAAIC,OAAJ,QAAmB;AACjBna,uBADiB,GACjBA;AACAA,sBAFiB,KAEjBA;AACA,iBAHiB,IAGjB;AALgB;AADC;;AAarBA,kBAbqB,IAarBA;AACA,aAdqB,IAcrB;AAvB4B,KAS9B;AAjb8B,GAwahC0X;;AA2BA,4BAA0B;AACxB,kBAAc;AACZ,UAAI0C,iBAAiBC,SADT,cACSA,CAArB;;AACA,0BAAoB;AAClB,eAAOD,oBADW,QACXA,CAAP;AAHU;;AAMZ,UAAI,OAAOC,SAAP,SAAJ,YAAyC;AACvC,eADuC,QACvC;AAPU;;AAUZ,UAAI,CAAC3M,MAAM2M,SAAX,MAAK3M,CAAL,EAA6B;AAC3B,YAAIoC,IAAI,CAAR;AAAA,YAAY9P,OAAO,gBAAgB;AACjC,iBAAO,MAAMqa,SAAb,QAA8B;AAC5B,gBAAItD,sBAAJ,CAAIA,CAAJ,EAA8B;AAC5B/W,2BAAaqa,SADe,CACfA,CAAbra;AACAA,0BAF4B,KAE5BA;AACA,qBAH4B,IAG5B;AAJ0B;AADG;;AASjCA,uBATiC,SASjCA;AACAA,sBAViC,IAUjCA;AAEA,iBAZiC,IAYjC;AAbyB,SAC3B;;AAeA,eAAOA,YAhBoB,IAgB3B;AA1BU;AADU;;AAgCxB,WAAO;AAAEA,YAhCe;AAgCjB,KAAP;AAne8B;;AAqehC0X,mBAregC,MAqehCA;;AAEA,wBAAsB;AACpB,WAAO;AAAEsB,aAAF;AAAoBc,YAApB;AAAA,KAAP;AAxe8B;;AA2ehCQ,sBAAoB;AAClBC,iBADkB;AAGlBC,WAAO,8BAAwB;AAC7B,kBAD6B,CAC7B;AACA,kBAF6B,CAE7B;AAGA,kBAAY,aALiB,SAK7B;AACA,kBAN6B,KAM7B;AACA,sBAP6B,IAO7B;AAEA,oBAT6B,MAS7B;AACA,iBAV6B,SAU7B;AAEA,8BAZ6B,aAY7B;;AAEA,UAAI,CAAJ,eAAoB;AAClB,+BAAuB;AAErB,cAAIC,0BACA1D,kBADA0D,IACA1D,CADA0D,IAEA,CAAC/M,MAAM,CAAC+M,WAFZ,CAEYA,CAAP/M,CAFL,EAE4B;AAC1B,yBAD0B,SAC1B;AALmB;AADL;AAdS;AAHb;AA6BlBgN,UAAM,gBAAW;AACf,kBADe,IACf;AAEA,UAAIC,YAAY,gBAHD,CAGC,CAAhB;AACA,UAAIC,aAAaD,UAJF,UAIf;;AACA,UAAIC,oBAAJ,SAAiC;AAC/B,cAAMA,WADyB,GAC/B;AANa;;AASf,aAAO,KATQ,IASf;AAtCgB;AAyClBC,uBAAmB,sCAAoB;AACrC,UAAI,KAAJ,MAAe;AACb,cADa,SACb;AAFmC;;AAKrC,UAAItD,UALiC,IAKrC;;AACA,mCAA6B;AAC3BsB,sBAD2B,OAC3BA;AACAA,qBAF2B,SAE3BA;AACAtB,uBAH2B,GAG3BA;;AAEA,oBAAY;AAGVA,2BAHU,MAGVA;AACAA,wBAJU,SAIVA;AATyB;;AAY3B,eAAO,CAAC,CAZmB,MAY3B;AAlBmC;;AAqBrC,WAAK,IAAIzH,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIiK,QAAQ,gBADwC,CACxC,CAAZ;AACA,YAAIlB,SAASkB,MAFuC,UAEpD;;AAEA,YAAIA,iBAAJ,QAA6B;AAI3B,iBAAOe,OAJoB,KAIpBA,CAAP;AARkD;;AAWpD,YAAIf,gBAAgB,KAApB,MAA+B;AAC7B,cAAIgB,WAAWhE,mBADc,UACdA,CAAf;AACA,cAAIiE,aAAajE,mBAFY,YAEZA,CAAjB;;AAEA,cAAIgE,YAAJ,YAA4B;AAC1B,gBAAI,YAAYhB,MAAhB,UAAgC;AAC9B,qBAAOe,OAAOf,MAAPe,UADuB,IACvBA,CAAP;AADF,mBAEO,IAAI,YAAYf,MAAhB,YAAkC;AACvC,qBAAOe,OAAOf,MADyB,UAChCe,CAAP;AAJwB;AAA5B,iBAOO,cAAc;AACnB,gBAAI,YAAYf,MAAhB,UAAgC;AAC9B,qBAAOe,OAAOf,MAAPe,UADuB,IACvBA,CAAP;AAFiB;AAAd,iBAKA,gBAAgB;AACrB,gBAAI,YAAYf,MAAhB,YAAkC;AAChC,qBAAOe,OAAOf,MADkB,UACzBe,CAAP;AAFmB;AAAhB,iBAKA;AACL,kBAAM,UADD,wCACC,CAAN;AAtB2B;AAXqB;AArBjB;AAzCrB;AAqGlBG,YAAQ,2BAAoB;AAC1B,WAAK,IAAInL,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIiK,QAAQ,gBADwC,CACxC,CAAZ;;AACA,YAAIA,gBAAgB,KAAhBA,QACAhD,mBADAgD,YACAhD,CADAgD,IAEA,YAAYA,MAFhB,YAEkC;AAChC,cAAImB,eAD4B,KAChC;AADgC;AAJkB;AAD5B;;AAW1B,UAAIA,iBACC,oBACAtO,SAFDsO,eAGAA,uBAHAA,OAIAvD,OAAOuD,aAJX,YAIoC;AAGlCA,uBAHkC,IAGlCA;AAlBwB;;AAqB1B,UAAIrC,SAASqC,eAAeA,aAAfA,aArBa,EAqB1B;AACArC,oBAtB0B,IAsB1BA;AACAA,mBAvB0B,GAuB1BA;;AAEA,wBAAkB;AAChB,sBADgB,MAChB;AACA,oBAAYqC,aAFI,UAEhB;AACA,eAHgB,gBAGhB;AA5BwB;;AA+B1B,aAAO,cA/BmB,MA+BnB,CAAP;AApIgB;AAuIlBC,cAAU,oCAA2B;AACnC,UAAItC,gBAAJ,SAA6B;AAC3B,cAAMA,OADqB,GAC3B;AAFiC;;AAKnC,UAAIA,2BACAA,gBADJ,YACgC;AAC9B,oBAAYA,OADkB,GAC9B;AAFF,aAGO,IAAIA,gBAAJ,UAA8B;AACnC,oBAAY,WAAWA,OADY,GACnC;AACA,sBAFmC,QAEnC;AACA,oBAHmC,KAGnC;AAHK,aAIA,IAAIA,4BAAJ,UAA0C;AAC/C,oBAD+C,QAC/C;AAbiC;;AAgBnC,aAhBmC,gBAgBnC;AAvJgB;AA0JlBuC,YAAQ,4BAAqB;AAC3B,WAAK,IAAItL,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIiK,QAAQ,gBADwC,CACxC,CAAZ;;AACA,YAAIA,qBAAJ,YAAqC;AACnC,wBAAcA,MAAd,YAAgCA,MADG,QACnC;AACAsB,wBAFmC,KAEnCA;AACA,iBAHmC,gBAGnC;AALkD;AAD3B;AA1JX;AAqKlB,aAAS,wBAAiB;AACxB,WAAK,IAAIvL,IAAI,yBAAb,GAAyCA,KAAzC,GAAiD,EAAjD,GAAsD;AACpD,YAAIiK,QAAQ,gBADwC,CACxC,CAAZ;;AACA,YAAIA,iBAAJ,QAA6B;AAC3B,cAAIlB,SAASkB,MADc,UAC3B;;AACA,cAAIlB,gBAAJ,SAA6B;AAC3B,gBAAIyC,SAASzC,OADc,GAC3B;AACAwC,0BAF2B,KAE3BA;AAJyB;;AAM3B,iBAN2B,MAM3B;AARkD;AAD9B;;AAexB,YAAM,UAfkB,uBAelB,CAAN;AApLgB;AAuLlBE,mBAAe,sDAAwC;AACrD,sBAAgB;AACdC,kBAAUtM,OADI,QACJA,CADI;AAEduM,oBAFc;AAGdC,iBAHc;AAAA,OAAhB;;AAMA,UAAI,gBAAJ,QAA4B;AAG1B,mBAH0B,SAG1B;AAVmD;;AAarD,aAbqD,gBAarD;AApMgB;AAAA,GAApBpB;AA4MA,SAvrBgC,OAurBhC;AAvrBa,EA8rBb,sDAA6B1D,OAA7B,UArsBF,EAOe,CAAf;;AAisBA,IAAI;AACF+E,uBADE,OACFA;AADF,EAEE,6BAA6B;AAU7BC,0CAV6B,OAU7BA;AAV6B,C;;;;;;;;;;AC1sB/BhF,iBAAiB,kBAAiB;AACjC,MAAI,CAACA,OAAL,iBAA6B;AAC5BA,uBAAmB,YAAW,CADF,CAC5BA;;AACAA,mBAF4B,EAE5BA;AAEA,QAAI,CAACA,OAAL,UAAsBA,kBAJM,EAINA;AACtBhL,4CAAwC;AACvCiQ,kBADuC;AAEvCC,WAAK,eAAW;AACf,eAAOlF,OADQ,CACf;AAHsC;AAAA,KAAxChL;AAMAA,wCAAoC;AACnCiQ,kBADmC;AAEnCC,WAAK,eAAW;AACf,eAAOlF,OADQ,CACf;AAHkC;AAAA,KAApChL;AAMAgL,6BAjB4B,CAiB5BA;AAlBgC;;AAoBjC,SApBiC,MAoBjC;AApBDA,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACeA,IAAMmF,YAAY,OAflB,IAeA;;AACA,IAAMC,sBAhBN,MAgBA;;AACA,IAAMC,gBAjBN,GAiBA;;AACA,IAAMC,YAlBN,IAkBA;;AACA,IAAMC,YAnBN,IAmBA;;AACA,IAAMC,gBApBN,CAoBA;;AACA,IAAMC,iBArBN,IAqBA;;AACA,IAAMC,oBAtBN,EAsBA;;AACA,IAAMC,mBAvBN,CAuBA;;AAEA,IAAMzI,wBAAwB;AAC5B7O,WAD4B;AAE5BuX,UAF4B;AAG5BC,YAH4B;AAI5BC,cAJ4B;AAAA,CAA9B;;AAOA,IAAMnL,eAAe;AACnBoL,UADmB;AAEnBC,OAFmB;AAAA,CAArB;;AAKA,IAAM7T,gBAAgB;AACpB8T,WADoB;AAEpBC,UAFoB;AAGpBC,kBAHoB;AAAA,CAAtB;;AAMA,IAAMhO,aAAa;AACjB9J,WAAS,CADQ;AAEjB+X,YAFiB;AAGjBC,cAHiB;AAIjBC,WAJiB;AAAA,CAAnB;;AAOA,IAAMjO,aAAa;AACjBhK,WAAS,CADQ;AAEjBkY,QAFiB;AAGjBC,OAHiB;AAIjBC,QAJiB;AAAA,CAAnB;;;AAQA,qCAAqC;AACnC,MAAI,CAAJ,MAAW;AACT,WADS,IACT;AAFiC;;AAInC,SAAO,qCAAqC,qBAAe;AACzD,WAAQ5C,eAAezO,KAAfyO,IAAezO,CAAfyO,GAA4B,cADqB,IACzD;AALiC,GAI5B,CAAP;AA9DF;;AAuEA,IAAI6C,WAAW;AACb,aADa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,+CACO,OADP;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAKb,cALa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gDAKQ,KALR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AASb,KATa;AAAA;AAAA;AAAA,mDASb,QATa,EASb,IATa,EASb,QATa;AAAA;AAAA;AAAA;AAAA;AAAA,gDAUJC,0BAD2B,IAC3BA,CAVI;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAab,WAba;AAAA;AAAA;AAAA,mDAab,OAba;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,CAAf;;;AAsBA,6BAA6B;AAC3B,MAAIC,mBAAmB/Y,2BADI,CAC3B;AACA,MAAIgZ,oBAAoBC,oCACAA,IADAA,6BAEAA,IAFAA,4BAGAA,IAHAA,2BAIAA,IAJAA,0BAFG,CAE3B;AAKA,MAAIC,aAAaH,mBAPU,iBAO3B;AACA,SAAO;AACLI,QADK;AAELC,QAFK;AAGLC,YAAQH,eAHH;AAAA,GAAP;AArGF;;AAoHA,uCAA2E;AAAA,MAApCI,0BAAoC,uEAA3E,KAA2E;AAIzE,MAAIC,SAASC,QAJ4D,YAIzE;;AACA,MAAI,CAAJ,QAAa;AACXzV,kBADW,0CACXA;AADW;AAL4D;;AASzE,MAAI0V,UAAUD,oBAAoBA,QATuC,SASzE;AACA,MAAIE,UAAUF,qBAAqBA,QAVsC,UAUzE;;AACA,SAAQD,wBAAwBA,OAAxBA,gBACAA,uBAAuBA,OADxB,WAACA,IAEAD,8BACAK,sCAHR,UAGyD;AACvD,QAAIJ,eAAJ,SAA4B;AAC1BE,iBAAWF,eADe,OAC1BE;AACAC,iBAAWH,eAFe,OAE1BG;AAHqD;;AAKvDD,eAAWF,OAL4C,SAKvDE;AACAC,eAAWH,OAN4C,UAMvDG;AACAH,aAASA,OAP8C,YAOvDA;;AACA,QAAI,CAAJ,QAAa;AAAA;AAR0C;AAdgB;;AA0BzE,YAAU;AACR,QAAIK,aAAJ,WAA4B;AAC1BH,iBAAWG,KADe,GAC1BH;AAFM;;AAIR,QAAIG,cAAJ,WAA6B;AAC3BF,iBAAWE,KADgB,IAC3BF;AACAH,0BAF2B,OAE3BA;AANM;AA1B+D;;AAmCzEA,qBAnCyE,OAmCzEA;AAvJF;;AA8JA,gDAAgD;AAC9C,MAAIM,iBAAiB,SAAjBA,cAAiB,MAAc;AACjC,aAAS;AAAA;AADwB;;AAKjCC,UAAM,6BAA6B,mCAAmC;AACpEA,YADoE,IACpEA;AAEA,UAAIC,WAAWC,gBAHqD,UAGpE;AACA,UAAIC,QAAQlF,MAJwD,KAIpE;;AACA,UAAIgF,aAAJ,OAAwB;AACtBhF,sBAAcgF,WADQ,KACtBhF;AANkE;;AAQpEA,oBARoE,QAQpEA;AACA,UAAImF,WAAWF,gBATqD,SASpE;AACA,UAAIG,QAAQpF,MAVwD,KAUpE;;AACA,UAAImF,aAAJ,OAAwB;AACtBnF,qBAAamF,WADS,KACtBnF;AAZkE;;AAcpEA,oBAdoE,QAcpEA;AACAqF,eAfoE,KAepEA;AApB+B,KAK3B,CAANN;AAN4C,GAC9C;;AAwBA,MAAI/E,QAAQ;AACVsF,WADU;AAEVC,UAFU;AAGVL,WAAOD,gBAHG;AAIVG,WAAOH,gBAJG;AAKVO,mBALU;AAAA,GAAZ;AAQA,MAAIT,MAjC0C,IAiC9C;AACAE,6DAlC8C,IAkC9CA;AACA,SAnC8C,KAmC9C;AAjMF;;AAuMA,iCAAiC;AAC/B,MAAInR,QAAQqH,YADmB,GACnBA,CAAZ;AACA,MAAI1B,SAASrH,cAFkB,IAElBA,CAAb;;AACA,OAAK,IAAIkE,IAAJ,GAAWM,KAAK9C,MAArB,QAAmCwC,IAAnC,IAA2C,EAA3C,GAAgD;AAC9C,QAAImP,QAAQ3R,eADkC,GAClCA,CAAZ;AACA,QAAI6M,MAAM8E,SAFoC,WAEpCA,EAAV;AACA,QAAIjG,QAAQiG,mBAAmBA,MAAnBA,CAAmBA,CAAnBA,GAHkC,IAG9C;AACAhM,WAAO9H,mBAAP8H,GAAO9H,CAAP8H,IAAkC9H,mBAJY,KAIZA,CAAlC8H;AAP6B;;AAS/B,SAT+B,MAS/B;AAhNF;;AA4NA,iDAAiD;AAC/C,MAAIiM,WAD2C,CAC/C;AACA,MAAIC,WAAWC,eAFgC,CAE/C;;AAEA,MAAIA,sBAAsB,CAACC,UAAUD,MAArC,QAAqCA,CAAVC,CAA3B,EAAuD;AACrD,WAAOD,MAD8C,MACrD;AAL6C;;AAO/C,MAAIC,UAAUD,MAAd,QAAcA,CAAVC,CAAJ,EAAgC;AAC9B,WAD8B,QAC9B;AAR6C;;AAW/C,SAAOH,WAAP,UAA4B;AAC1B,QAAII,eAAgBJ,WAAD,QAACA,IADM,CAC1B;AACA,QAAIK,cAAcH,MAFQ,YAERA,CAAlB;;AACA,QAAIC,UAAJ,WAAIA,CAAJ,EAA4B;AAC1BF,iBAD0B,YAC1BA;AADF,WAEO;AACLD,iBAAWI,eADN,CACLJ;AANwB;AAXmB;;AAoB/C,SApB+C,QAoB/C;AAhPF;;AA0PA,gCAAgC;AAE9B,MAAIzU,kBAAJ,GAAyB;AACvB,WAAO,MAAP;AAH4B;;AAK9B,MAAI+U,OAAO,IALmB,CAK9B;AACA,MAAIC,QAN0B,CAM9B;;AACA,MAAID,OAAJ,OAAkB;AAChB,WAAO,UAAP;AADF,SAEO,IAAI/U,qBAAJ,MAA+B;AACpC,WAAO,SAAP;AAV4B;;AAa9B,MAAIiV,KAAKC,eAbqB,CAa9B;AAEA,MAAIC,IAAJ;AAAA,MAAWC,IAAX;AAAA,MAAkBC,IAAlB;AAAA,MAAyBC,IAfK,CAe9B;;AAEA,eAAa;AAEX,QAAIC,IAAIJ,IAAR;AAAA,QAAeK,IAAIJ,IAFR,CAEX;;AACA,QAAII,IAAJ,OAAe;AAAA;AAHJ;;AAMX,QAAIP,MAAMM,IAAV,GAAiB;AACfF,UADe,CACfA;AAAOC,UADQ,CACRA;AADT,WAEO;AACLH,UADK,CACLA;AAAOC,UADF,CACEA;AATE;AAjBiB;;AA6B9B,MA7B8B,MA6B9B;;AAEA,MAAIH,KAAKE,IAALF,IAAaI,QAAjB,IAA6B;AAC3B7K,aAAS,WAAW,MAAX,GAAoB,MAA7BA;AADF,SAEO;AACLA,aAAS,WAAW,MAAX,GAAoB,MAA7BA;AAlC4B;;AAoC9B,SApC8B,MAoC9B;AA9RF;;AAiSA,+BAA+B;AAC7B,MAAIiL,IAAIP,IADqB,GAC7B;AACA,SAAOO,cAAczV,WAAWkV,QAFH,GAERlV,CAArB;AAnSF;;AA6SA,iCAAwD;AAAA,MAA7B,IAA6B,QAA7B,IAA6B;AAAA,MAA7B,QAA6B,QAA7B,QAA6B;AAAA,MAAxD,MAAwD,QAAxD,MAAwD;;AAAA;AAAA,MAChD,EADgD;AAAA,MAChD,EADgD;AAAA,MAChD,EADgD;AAAA,MAChD,EADgD;;AAGtD,MAAM0V,oBAAoBC,iBAH4B,CAGtD;AAEA,MAAMC,QAAS,MAAD,EAAC,IAAD,EAAC,GALuC,QAKtD;AACA,MAAMC,SAAU,MAAD,EAAC,IAAD,EAAC,GANsC,QAMtD;AAEA,SAAO;AACLD,WAAQF,6BADH;AAELG,YAASH,4BAFJ;AAAA,GAAP;AArTF;;AAsUA,8DAA8D;AAa5D,MAAII,QAAJ,GAAe;AACb,WADa,KACb;AAd0D;;AAwC5D,MAAIC,MAAMC,aAxCkD,GAwC5D;AACA,MAAIC,UAAUF,gBAAgBA,IAzC8B,SAyC5D;;AAEA,MAAIE,WAAJ,KAAoB;AAMlBF,UAAMC,MAAMF,QAANE,GANY,GAMlBD;AACAE,cAAUF,gBAAgBA,IAPR,SAOlBE;AAlD0D;;AA6D5D,OAAK,IAAI5Q,IAAIyQ,QAAb,GAAwBzQ,KAAxB,GAAgC,EAAhC,GAAqC;AACnC0Q,UAAMC,SAD6B,GACnCD;;AACA,QAAIA,gBAAgBA,IAAhBA,YAAgCA,IAAhCA,gBAAJ,SAAiE;AAAA;AAF9B;;AAQnCD,YARmC,CAQnCA;AArE0D;;AAuE5D,SAvE4D,KAuE5D;AA7YF;;AA2aA,6CACgD;AAAA,MADHI,gBACG,uEADhD,KACgD;AAAA,MAApBC,UAAoB,uEADhD,KACgD;AAC9C,MAAMC,MAAMC,SAAZ;AAAA,MAAgCC,SAASF,MAAMC,SADD,YAC9C;AACA,MAAME,OAAOF,SAAb;AAAA,MAAkChC,QAAQkC,OAAOF,SAFH,WAE9C;;AAYA,6CAA2C;AACzC,QAAM7C,UAAUtK,KADyB,GACzC;AACA,QAAMsN,gBACJhD,oBAAoBA,QAApBA,YAAwCA,QAHD,YAEzC;AAEA,WAAOgD,gBAJkC,GAIzC;AAlB4C;;AAoB9C,6CAA2C;AACzC,QAAMhD,UAAUtK,KADyB,GACzC;AACA,QAAMuN,eACJjD,qBAAqBA,QAArBA,aAA0CA,QAHH,WAEzC;AAEA,WAAOiD,eAJkC,IAIzC;AAxB4C;;AA2B9C,MAAMC,UAAN;AAAA,MAAoBC,WAAWX,MA3Be,MA2B9C;AACA,MAAIY,yBAAyBD,qBAC3BE,6BAA6BV,2CA7Be,2BA6B5CU,CADF;;AAMA,MAAID,8BAA8BA,yBAA9BA,YACA,CADJ,YACiB;AAMfA,6BACEE,iEAPa,GAObA,CADFF;AAzC4C;;AAqD9C,MAAIG,WAAWZ,qBAAqB,CArDU,CAqD9C;;AAEA,OAAK,IAAI9Q,IAAT,wBAAqCA,IAArC,UAAmDA,CAAnD,IAAwD;AACtD,QAAM6D,OAAO8M,MAAb,CAAaA,CAAb;AAAA,QAAuBxC,UAAUtK,KADqB,GACtD;AACA,QAAM8N,eAAexD,qBAAqBA,QAFY,UAEtD;AACA,QAAMyD,gBAAgBzD,oBAAoBA,QAHY,SAGtD;AACA,QAAM0D,YAAY1D,QAAlB;AAAA,QAAuC2D,aAAa3D,QAJE,YAItD;AACA,QAAM4D,YAAYJ,eALoC,SAKtD;AACA,QAAMK,aAAaJ,gBANmC,UAMtD;;AAEA,QAAIF,aAAa,CAAjB,GAAqB;AAKnB,UAAIM,cAAJ,QAA0B;AACxBN,mBADwB,UACxBA;AANiB;AAArB,WAQO,IAAK,6BAAD,aAAC,IAAL,UAA4D;AAAA;AAhBb;;AAoBtD,QAAIM,qBAAqBJ,iBAArBI,UACAD,aADAC,QACqBL,gBADzB,OACgD;AAAA;AArBM;;AAyBtD,QAAMM,eAAetX,YAAYoW,MAAZpW,iBACAA,YAAYqX,aA1BqB,MA0BjCrX,CADrB;AAEA,QAAMuX,cAAcvX,YAAYuW,OAAZvW,gBACAA,YAAYoX,YA5BsB,KA4BlCpX,CADpB;AAEA,QAAM+C,UAAY,cAAD,YAAC,KAA8B,YAA/B,WAAC,IAAD,GAAC,GAAD,UAAC,GAAF,SAAE,GA7BoC,CA6BtD;AAEA2T,iBAAa;AACXc,UAAItO,KADO;AAEXgM,SAFW;AAGXuC,SAHW;AAIXvO,UAJW,EAIXA,IAJW;AAKXnG,aALW,EAKXA;AALW,KAAb2T;AAtF4C;;AA+F9C,MAAMgB,QAAQhB,QAAd,CAAcA,CAAd;AAAA,MAA0BiB,OAAOjB,QAAQA,iBA/FK,CA+FbA,CAAjC;;AAEA,wBAAsB;AACpBA,iBAAa,gBAAe;AAC1B,UAAIkB,KAAKzC,YAAYC,EADK,OAC1B;;AACA,UAAIpV,eAAJ,OAA0B;AACxB,eAAO,CADiB,EACxB;AAHwB;;AAK1B,aAAOmV,OAAOC,EALY,EAK1B;AANkB,KACpBsB;AAlG4C;;AA0G9C,SAAO;AAAEgB,SAAF,EAAEA,KAAF;AAASC,QAAT,EAASA,IAAT;AAAe3B,WAAf;AAAA,GAAP;AAthBF;;AA4hBA,mCAAmC;AACjCrN,MADiC,cACjCA;AA7hBF;;AAgiBA,2BAA2B;AACzB,MAAItD,IAAJ;AAAA,MAAWM,KAAKrI,IADS,MACzB;;AACA,SAAO+H,UAAU/H,kBAAjB,IAAuC;AACrC+H,KADqC;AAFd;;AAKzB,SAAO/H,iBAAiB+H,IAAjB/H,qBALkB,OAKzB;AAriBF;;AA+iBA,oCAAsE;AAAA,MAAlCua,eAAkC,uEAAtE,cAAsE;;AACpE,MAAI,eAAJ,UAA6B;AAC3B,WAD2B,eAC3B;AAFkE;;AAIpE,MAAIC,aAAJ,GAAIA,CAAJ,EAAuB;AACrB/Z,iBAAa,4BADQ,+CACrBA;AAEA,WAHqB,eAGrB;AAPkE;;AASpE,MAAMga,QAT8D,sDASpE;AAGA,MAAMC,aAZ8D,gCAYpE;AACA,MAAIC,WAAWF,WAbqD,GAarDA,CAAf;AACA,MAAIG,oBAAoBF,gBAAgBC,SAAhBD,CAAgBC,CAAhBD,KACAA,gBAAgBC,SADhBD,CACgBC,CAAhBD,CADAA,IAEAA,gBAAgBC,SAhB4B,CAgB5BA,CAAhBD,CAFxB;;AAGA,yBAAuB;AACrBE,wBAAoBA,kBADC,CACDA,CAApBA;;AACA,QAAIA,2BAAJ,GAAIA,CAAJ,EAAqC;AAEnC,UAAI;AACFA,4BACEF,gBAAgBtX,mBAAhBsX,iBAAgBtX,CAAhBsX,EAFA,CAEAA,CADFE;AADF,QAGE,WAAW,CALsB;AAFhB;AAjB6C;;AA8BpE,SAAOA,qBA9B6D,eA8BpE;AA7kBF;;AAglBA,uCAAuC;AACrC,MAAIrN,QAAQ7K,UAAU2I,aAAaA,IAAbA,SAA0BA,aAAaA,IADxB,MACzB3I,CAAZ;AACA,MAAIwG,QAAQxG,WAAW2I,IAAX3I,QAAuB2I,IAFE,MAEzB3I,CAAZ;;AACA,MAAI,QAAQA,KAAR,cAA2BwG,QAAQ,OAAOxG,KAA9C,IAAuD;AAErD6K,YAAQ,CAF6C,KAErDA;AALmC;;AAQrC,MAAMsN,6BAR+B,CAQrC;AACA,MAAMC,4BAT+B,CASrC;AACA,MAAMC,wBAV+B,EAUrC;AACA,MAAMC,uBAX+B,EAWrC;;AAGA,MAAI3P,kBAAJ,4BAAkD;AAChDkC,aAASwN,wBADuC,oBAChDxN;AADF,SAEO,IAAIlC,kBAAJ,2BAAiD;AACtDkC,aADsD,oBACtDA;AAjBmC;;AAmBrC,SAnBqC,KAmBrC;AAnmBF;;AAsmBA,gCAAgC;AAC9B,SAAO0N,2BAA2B/R,eADJ,CAC9B;AAvmBF;;AA0mBA,iCAAiC;AAC/B,SAAQ+R,0BAA0BpX,mCAA1BoX,IAA0BpX,CAA1BoX,IACAtP,SAAS3E,WAFc,OAC/B;AA3mBF;;AA+mBA,iCAAiC;AAC/B,SAAQiU,0BAA0BpX,mCAA1BoX,IAA0BpX,CAA1BoX,IACAtP,SAASzE,WAFc,OAC/B;AAhnBF;;AAonBA,qCAAqC;AACnC,SAAOgU,cAAcA,KADc,MACnC;AArnBF;;AAwnBA,IAAMC,aAAa;AACjBC,SADiB;AAEjBC,WAFiB;AAAA,CAAnB;;;AAsBA,qCAA4D;AAAA,MAA9B,MAA8B,SAA9B,MAA8B;AAAA,MAA9B,IAA8B,SAA9B,IAA8B;AAAA,0BAAdC,KAAc;AAAA,MAAdA,KAAc,4BAA5D,CAA4D;AAC1D,SAAO,YAAY,2BAA0B;AAC3C,QAAI,gCAA8B,EAAE,QAAQ,gBAAxC,QAA8B,CAA9B,IACA,EAAE,2BAA2BA,SADjC,CACI,CADJ,EAC8C;AAC5C,YAAM,UADsC,4CACtC,CAAN;AAHyC;;AAM3C,2BAAuB;AACrB,UAAIC,kBAAJ,UAAgC;AAC9BA,yBAD8B,YAC9BA;AADF,aAEO;AACLA,yCADK,YACLA;AAJmB;;AAOrB,mBAAa;AACX1V,qBADW,OACXA;AARmB;;AAUrB+B,cAVqB,IAUrBA;AAhByC;;AAmB3C,QAAM4T,eAAeC,mBAAmBN,WAnBG,KAmBtBM,CAArB;;AACA,QAAIF,kBAAJ,UAAgC;AAC9BA,sBAD8B,YAC9BA;AADF,WAEO;AACLA,oCADK,YACLA;AAvByC;;AA0B3C,QAAMG,iBAAiBD,mBAAmBN,WA1BC,OA0BpBM,CAAvB;AACA,QAAIE,UAAU9T,2BA3B6B,KA2B7BA,CAAd;AA5BwD,GACnD,CAAP;AA/oBF;;AAirBA,IAAI+T,mBAAmB,YAAY,mBAAmB;AAQpDlf,+BARoD,OAQpDA;AAzrBF,CAirBuB,CAAvB;;;IAgBA,Q;;;AACE8V,sBAA6C;AAAA,oFAA7CA,EAA6C;AAAA,oCAA/BqJ,aAA+B;AAAA,QAA/BA,aAA+B,oCAAjC,KAAiC;;AAAA;;AAC3C,sBAAkBhY,cADyB,IACzBA,CAAlB;AACA,0BAAsBgY,kBAFqB,IAE3C;AAHW;;;;uBAMbC,S,EAAAA,Q,EAAwB;AACtB,UAAIC,iBAAiB,gBADC,SACD,CAArB;;AACA,UAAI,CAAJ,gBAAqB;AACnBA,yBADmB,EACnBA;AACA,qCAFmB,cAEnB;AAJoB;;AAMtBA,0BANsB,QAMtBA;AAZW;;;wBAebC,S,EAAAA,Q,EAAyB;AACvB,UAAID,iBAAiB,gBADE,SACF,CAArB;AACA,UAFuB,CAEvB;;AACA,UAAI,mBAAqB,KAAIA,uBAAL,QAAKA,CAAJ,IAAzB,GAAqE;AAAA;AAH9C;;AAMvBA,+BANuB,CAMvBA;AArBW;;;6BAwBbE,S,EAAoB;AAClB,UAAIF,iBAAiB,gBADH,SACG,CAArB;;AACA,UAAI,mBAAmBA,0BAAvB,GAAoD;AAClD,YAAI,KAAJ,gBAAyB;AACvB,cAAM9X,SAAOiY,sCADU,CACVA,CAAb;;AACA,4CAFuB,MAEvB;AAHgD;;AAAA;AAFlC;;AAUlB,UAAMjY,OAAOiY,sCAVK,CAULA,CAAb;AAGAH,sCAAgC,oBAAoB;AAClDI,6BADkD,IAClDA;AAdgB,OAalBJ;;AAGA,UAAI,KAAJ,gBAAyB;AACvB,0CADuB,IACvB;AAjBgB;AAxBP;;;sCAgDbK,S,EAA0C;AAAA,UAAbnY,IAAa,uEAA1CmY,IAA0C;AACxC,UAAMC,UAAUxY,cADwB,IACxBA,CAAhB;;AACA,UAAII,QAAQA,cAAZ,GAA6B;AAC3B,YAAMqY,MAAMrY,KADe,CACfA,CAAZ;;AACA,6BAAqB;AACnB,cAAMgN,QAAQqL,IADK,GACLA,CAAd;;AACA,cAAIlK,QAAJ,UAAsB;AACpB,gBAAInB,oBAAoBA,UAAxB,UAA4C;AAAA;AADxB;;AAAA;AAFH;;AAQnBoL,yBARmB,KAQnBA;AAVyB;AAFW;;AAexC,UAAM1f,QAAQtF,qBAf0B,aAe1BA,CAAd;AACAsF,mDAhBwC,OAgBxCA;AACAtF,6BAjBwC,KAiBxCA;AAjEW;;;;;;;AAqEf,IAAIklB,iBAtwBJ,IAswBA;;AACA,6BAAkD;AAAA,MAAvBV,aAAuB,uEAAlD,KAAkD;;AAChD,MAAI,CAAJ,gBAAqB;AACnBU,qBAAiB,aAAa;AAAEV,mBADb,EACaA;AAAF,KAAb,CAAjBU;AAF8C;;AAIhD,SAJgD,cAIhD;AA3wBF;;AA8wBA,4BAA4B;AAC1B,SAAO7Z,SAASA,YAATA,GAASA,CAATA,EADmB,GACnBA,CAAP;AA/wBF;;IAkxBA,W;;;AACE8P,2BAAgD;AAAA,oFAAhDA,EAAgD;AAAA,QAAhC,MAAgC,SAAhC,MAAgC;AAAA,QAAhC,KAAgC,SAAhC,KAAgC;AAAA,QAAhC,KAAgC,SAAhC,KAAgC;;AAAA;;AAC9C,mBAD8C,IAC9C;AAGA,eAAWnb,uBAAuB6iB,KAJY,YAInC7iB,CAAX;AAEA,eAAW,SANmC,UAM9C;AAGA,kBAAckhB,UATgC,GAS9C;AACA,iBAAaD,SAViC,GAU9C;AACA,iBAAakE,SAXiC,GAW9C;AAGA,4BAAwB,cAAc,KAdQ,KAc9C;AACA,mBAf8C,CAe9C;AAhBc;;;;iCAmBH;AACX,UAAI,KAAJ,gBAAyB;AACvB,+BADuB,eACvB;AACA,+BAAuB,aAAa,KAFb,KAEvB;AAFuB;AADd;;AAOX,gCAPW,eAOX;AACA,UAAIC,eAAe,aAAa,KAAb,WARR,GAQX;AACA,6BAAuBA,eAAe,KAT3B,KASX;AA5Bc;;;6BAyChBC,M,EAAiB;AACf,UAAI,CAAJ,QAAa;AAAA;AADE;;AAIf,UAAIhlB,YAAYuJ,OAJD,UAIf;AACA,UAAI0b,iBAAiBjlB,wBAAwBuJ,OAL9B,WAKf;;AACA,UAAI0b,iBAAJ,GAAwB;AACtB,uCAA+B,yCADT,MACtB;AAPa;AAzCD;;;2BAqDT;AACL,UAAI,CAAC,KAAL,SAAmB;AAAA;AADd;;AAIL,qBAJK,KAIL;AACA,6BALK,QAKL;AACAtlB,qCANK,mBAMLA;AA3Dc;;;2BA8DT;AACL,UAAI,KAAJ,SAAkB;AAAA;AADb;;AAIL,qBAJK,IAIL;AACAA,kCALK,mBAKLA;AACA,gCANK,QAML;AApEc;;;wBA+BF;AACZ,aAAO,KADK,QACZ;AAhCc,K;sBAmChB,G,EAAiB;AACf,4BAAsBsO,MADP,GACOA,CAAtB;AACA,sBAAgBiX,cAFD,GAECA,CAAhB;;AACA,WAHe,UAGf;AAtCc;;;;;;;;AA4ElB,0CAA0C;AACxC,MAAMC,QAAN;AAAA,MAAkBC,MAAMC,IADgB,MACxC;AACA,MAAIC,QAFoC,CAExC;;AACA,OAAK,IAAIC,OAAT,GAAmBA,OAAnB,KAA+B,EAA/B,MAAuC;AACrC,QAAI3F,UAAUyF,IAAd,IAAcA,CAAVzF,CAAJ,EAA0B;AACxBuF,iBAAWE,IADa,IACbA,CAAXF;AADF,WAEO;AACLE,mBAAaA,IADR,IACQA,CAAbA;AACA,QAFK,KAEL;AALmC;AAHC;;AAWxC,OAAK,IAAIE,QAAT,GAAmBD,QAAnB,KAAgC,SAAQ,EAAxC,OAAiD;AAC/CD,iBAAaF,MADkC,KAClCA,CAAbE;AAZsC;AA91B1C,C;;;;;;;;;;;;;;ACAA;;AAAA;;;;;;;;;;AAkBA,IAAMrZ,aAAa;AACjBwZ,UADiB;AAEjBC,OAFiB;AAGjBC,UAHiB;AAIjBC,cAJiB;AAAA,CAAnB;;AAWA,IAAMC,iBAAiB;AACrBjb,oBAAkB;AAEhB4O,WAFgB;AAGhBsM,UAAM7Z,oBAAoBA,WAHV;AAAA,GADG;AAMrB8Z,cAAY;AAEVvM,WAFU;AAGVsM,UAAM7Z,WAHI;AAAA,GANS;AAWrB+Z,oBAAkB;AAEhBxM,WAFgB;AAGhBsM,UAAM7Z,oBAAoBA,WAHV;AAAA,GAXG;AAgBrBga,kBAAgB;AAEdzM,WAFc;AAGdsM,UAAM7Z,WAHQ;AAAA,GAhBK;AAqBrBia,qBAAmB;AAEjB1M,WAFiB;AAGjBsM,UAAM7Z,oBAAoBA,WAHT;AAAA,GArBE;AA6BrBxB,yBAAuB;AAErB+O,WAFqB;AAGrBsM,UAAM7Z,oBAAoBA,WAHL;AAAA,GA7BF;AAkCrB5B,eAAa;AAEXmP,WAFW;AAGXsM,UAAM7Z,oBAAoBA,WAHf;AAAA,GAlCQ;AAuCrBka,yBAAuB;AAErB3M,WAFqB;AAGrBsM,UAAM7Z,oBAAoBA,WAHL;AAAA,GAvCF;AA4CrBlC,mBAAiB;AAEfyP,WAFe;AAGfsM,UAAM7Z,WAHS;AAAA,GA5CI;AAiDrBnC,sBAAoB;AAElB0P,WAFkB;AAGlBsM,UAAM7Z,oBAAoBA,WAHR;AAAA,GAjDC;AAsDrBma,oBAAkB;AAEhB5M,WAFgB;AAGhBsM,UAAM7Z,oBAAoBA,WAHV;AAAA,GAtDG;AA2DrB1B,sBAAoB;AAElBiP,WAFkB;AAGlBsM,UAAM7Z,WAHY;AAAA,GA3DC;AAmErBtB,mBAAiB;AAEf6O,WAFe;AAGf6M,mBAAeC,gDAHA;AAIfR,UAAM7Z,WAJS;AAAA,GAnEI;AAyErBsa,iBAAe;AAEb/M,WAFa;AAGbsM,UAAM7Z,oBAAoBA,WAHb;AAAA,GAzEM;AA8ErB7B,YAAU;AAERoP,WAFQ;AAGRsM,UAAM7Z,oBAAoBA,WAHlB;AAAA,GA9EW;AAmFrBzB,0BAAwB;AAEtBgP,WAFsB;AAGtBsM,UAAM7Z,oBAAoBA,WAHJ;AAAA,GAnFH;AAwFrBua,qBAAmB;AAEjBhN,WAAO,CAFU;AAGjBsM,UAAM7Z,oBAAoBA,WAHT;AAAA,GAxFE;AA6FrBwa,oBAAkB;AAEhBjN,WAAO,CAFS;AAGhBsM,UAAM7Z,oBAAoBA,WAHV;AAAA,GA7FG;AAkGrBya,oBAAkB;AAEhBlN,WAAO,CAFS;AAGhBsM,UAAM7Z,oBAAoBA,WAHV;AAAA,GAlGG;AAuGrB3B,iBAAe;AAEbkP,WAFa;AAGbsM,UAAM7Z,oBAAoBA,WAHb;AAAA,GAvGM;AA4GrBvB,kBAAgB;AAEd8O,WAFc;AAGdsM,UAAM7Z,oBAAoBA,WAHZ;AAAA,GA5GK;AAiHrB0D,cAAY;AAEV6J,WAFU;AAGVsM,UAAM7Z,oBAAoBA,WAHhB;AAAA,GAjHS;AAuHrB0a,cAAY;AAEVnN,WAFU;AAGVsM,UAAM7Z,WAHI;AAAA,GAvHS;AA4HrB2a,WAAS;AAEPpN,WAFO;AAIPsM,UAAM7Z,WAJC;AAAA,GA5HY;AAkIrBkC,oBAAkB;AAEhBqL,WAFgB;AAGhBsM,UAAM7Z,iBAAiBA,WAHP;AAAA,GAlIG;AAuIrBjC,0BAAwB;AAEtBwP,WAFsB;AAGtB6M,mBAAeQ,iCAHO;AAItBf,UAAM7Z,WAJgB;AAAA,GAvIH;AA6IrB6a,mBAAiB;AAEftN,WAFe;AAGfsM,UAAM7Z,iBAAiBA,WAHR;AAAA,GA7II;AAkJrB8a,gBAAc;AAEZvN,WAFY;AAGZsM,UAAM7Z,iBAAiBA,WAHX;AAAA,GAlJO;AAuJrB+a,iBAAe;AAEbxN,WAFa;AAGbsM,UAAM7Z,iBAAiBA,WAHV;AAAA,GAvJM;AA4JrBgb,mBAAiB;AAEfzN,WAFe;AAGfsM,UAAM7Z,WAHS;AAAA,GA5JI;AAiKrBib,gBAAc;AAEZ1N,WAAO,CAFK;AAGZsM,UAAM7Z,WAHM;AAAA,GAjKO;AAsKrBkb,UAAQ;AAEN3N,WAFM;AAGNsM,UAAM7Z,WAHA;AAAA,GAtKa;AA2KrBmb,wBAAsB;AAEpB5N,WAFoB;AAGpBsM,UAAM7Z,WAHc;AAAA,GA3KD;AAgLrBob,aAAW;AAET7N,WAFS;AAGTsM,UAAM7Z,WAHG;AAAA,GAhLU;AAsLrBqb,cAAY;AAEV9N,WAFU;AAGVsM,UAAM7Z,WAHI;AAAA,GAtLS;AA2LrBsb,aAAW;AAET/N,WAFS;AAITsM,UAAM7Z,WAJG;AAAA;AA3LU,CAAvB;AAmMuD;AACrD4Z,sCAAoC;AAElCrM,WAFkC;AAGlCsM,UAAM7Z,WAH4B;AAAA,GAApC4Z;AAKAA,0BAAwB;AAEtBrM,WAAQ,mCAAmCgO,UAAnC,WAFc;AAGtB1B,UAAM7Z,WAHgB;AAAA,GAAxB4Z;AAKAA,mCAAiC;AAE/BrM,WAF+B;AAG/BsM,UAAM7Z,WAHyB;AAAA,GAAjC4Z;AA3OF;AAkPA,IAAM4B,cAAcrb,cAlPpB,IAkPoBA,CAApB;;IAEA,U;;;AACE2O,wBAAc;AAAA;;AACZ,UAAM,UADM,+BACN,CAAN;AAFa;;;;wBAKf,I,EAAiB;AACf,UAAM2M,aAAaD,YADJ,IACIA,CAAnB;;AACA,UAAIC,eAAJ,WAA8B;AAC5B,eAD4B,UAC5B;AAHa;;AAKf,UAAMC,gBAAgB9B,eALP,IAKOA,CAAtB;;AACA,UAAI8B,kBAAJ,WAAiC;AAC/B,eAAQA,+BAA+BA,cADR,KAC/B;AAPa;;AASf,aATe,SASf;AAda;;;6BAiBY;AAAA,UAAb7B,IAAa,uEAA3B,IAA2B;AACzB,UAAM8B,UAAUxb,cADS,IACTA,CAAhB;;AACA,uCAAmC;AACjC,YAAMub,gBAAgB9B,eADW,IACXA,CAAtB;;AACA,kBAAU;AACR,cAAK,QAAO8B,cAAR,IAAC,MAAL,GAAuC;AAAA;AAD/B;;AAIR,cAAI7B,SAAS7Z,WAAb,YAAoC;AAClC,gBAAMuN,QAAQmO,cAAd;AAAA,gBAAmCE,oBADD,KACCA,CAAnC;;AAEA,gBAAIA,2BAA2BA,cAA3BA,YACCA,0BAA0BrE,iBAD/B,KAC+BA,CAD/B,EACyD;AACvDoE,8BADuD,KACvDA;AADuD;AAJvB;;AAQlC,kBAAM,iDAR4B,IAQ5B,EAAN;AAZM;AAFuB;;AAiBjC,YAAMF,aAAaD,YAjBc,IAiBdA,CAAnB;AACAG,wBAAiBF,wCACCC,+BAA+BA,cAnBhB,KAkBjCC;AApBuB;;AAuBzB,aAvByB,OAuBzB;AAxCa;;;wBA2Cf,I,EAAA,K,EAAwB;AACtBH,0BADsB,KACtBA;AA5Ca;;;2BA+Cf,I,EAAoB;AAClB,aAAOA,YADW,IACXA,CAAP;AAhDa;;;;;;;;;;;;;ACpPjB;;AAkBA,IAlBA,QAkBA;;AACA,IAAI,iCAAiCxiB,OAArC,sBAAqCA,CAArC,EAAqE;AACnE6iB,aAAW7iB,OADwD,sBACxDA,CAAX6iB;AADF,OAEO;AACLA,aAAWC,QADN,iBACMA,CAAXD;AAtBF;;AAwBA1Q,0B;;;;;;;;;ACTA,IAAI4Q,sBAAsB5b,cAf1B,IAe0BA,CAA1B;AACiE;AAC/D,MAAM6b,YACH,oCAAoCT,UAArC,SAAC,IAF4D,EAC/D;AAEA,MAAMU,YAAY,eAH6C,SAG7C,CAAlB;AACA,MAAMC,QAAQ,iCAJiD,SAIjD,CAAd;;AAIC,wCAAqC;AACpC,QAAIA,SAAJ,WAAwB;AACtBH,4CADsB,OACtBA;AAFkC;AARyB,GAQ9D,GAAD;AAxBF;AA+BA9P,oCAAoC9L,cAApC8L,mBAAoC9L,CAApC8L,C;;;;;;;;;;;;;;AC/BA;;;;;;;;AAiBA,IAAMlB,aAAa;AACjBoR,UADiB;AAEjBC,QAFiB;AAGjBC,QAHiB;AAAA,CAAnB;;;IAeA,c;;;AAIEvN,gCAA4E;AAAA;;AAAA,QAAhE,SAAgE,QAAhE,SAAgE;AAAA,QAAhE,QAAgE,QAAhE,QAAgE;AAAA,qCAAzCnQ,gBAAyC;AAAA,QAAzCA,gBAAyC,sCAAtBoM,WAAtD+D,MAA4E;;AAAA;;AAC1E,qBAD0E,SAC1E;AACA,oBAF0E,QAE1E;AAEA,kBAAc/D,WAJ4D,MAI1E;AACA,wCAL0E,IAK1E;AAEA,oBAAgB,2BAAc;AAC5ByH,eAAS,KAR+D;AAO5C,KAAd,CAAhB;;AAIA,SAX0E,kBAW1E;;AAIA5Q,2BAAuB,YAAM;AAC3B,uBAD2B,gBAC3B;AAhBwE,KAe1EA;AAnBiB;;;;+BAoCnB0a,I,EAAiB;AAAA;;AACf,UAAI,sCAAJ,MAAgD;AAAA;AADjC;;AAIf,UAAIC,SAAS,KAAb,QAA0B;AAAA;AAJX;;AAQf,UAAIC,oBAAoB,SAApBA,iBAAoB,GAAM;AAC5B,gBAAQ,OAAR;AACE,eAAKzR,WAAL;AADF;;AAGE,eAAKA,WAAL;AACE,4BADF,UACE;;AAJJ;;AAME,eAAKA,WANP,IAME;AANF;AATa,OAQf;;AAYA;AACE,aAAKA,WAAL;AACEyR,2BADF;AADF;;AAIE,aAAKzR,WAAL;AACEyR,2BADF;AAEE,wBAFF,QAEE;AANJ;;AAQE,aAAKzR,WARP,IAQE;AAEA;AACEhO,gDADF,IACEA;AAXJ;AAAA;;AAgBA,oBApCe,IAoCf;;AAEA,WAtCe,cAsCf;AA1EiB;;;qCAgFF;AACf,kDAA4C;AAC1CF,gBAD0C;AAE1C0f,cAAM,KAFoC;AAAA,OAA5C;AAjFiB;;;yCA0FE;AAAA;;AACnB,2CAAsC5U,aAAD,EAAS;AAC5C,0BAAgBA,IAD4B,IAC5C;AAFiB,OACnB;AAIA,kDAA6CA,aAAD,EAAS;AACnD,YAAIA,IAAJ,kBAA0B;AAAA;AADyB;;AAInD,YAJmD,gBAInD;;AAEA,YAAIA,IAAJ,QAAgB;AACd8U,6BAAmB,OADL,MACdA;;AAEA,4BAAgB1R,WAHF,MAGd;;AACA,gDAJc,gBAId;AAJF,eAKO;AACL0R,6BAAmB,OADd,4BACLA;AAEA,gDAHK,IAGL;;AACA,4BAJK,gBAIL;AAfiD;AALlC,OAKnB;AA/FiB;;;wBA2BF;AACf,aAAO,KADQ,MACf;AA5BiB;;;;;;;;;;;;;;;;;;;;ACPrB,4BAA4B;AAC1B,iBAAed,QADW,OAC1B;AACA,kBAAgBA,gBAFU,aAE1B;;AACA,MAAI,OAAOA,QAAP,iBAAJ,YAAgD;AAC9C,wBAAoBA,QAD0B,YAC9C;AAJwB;;AAM1B,yBAAuBA,QANG,eAM1B;AAIA,kBAAgB,mBAVU,IAUV,CAAhB;AACA,oBAAkB,qBAXQ,IAWR,CAAlB;AACA,gBAAc,iBAZY,IAYZ,CAAd;AACA,sBAAoB,uBAbM,IAaN,CAApB;AACA,sBAAoB,uBAdM,IAcN,CAApB;AACA,iBAAe,kBAfW,IAeX,CAAf;AAIA,MAAIe,UAAU,eAAe/oB,uBAnBH,KAmBGA,CAA7B;AACA+oB,sBApB0B,sBAoB1BA;AA7CF;;AA+CAC,sBAAsB;AAIpBC,kBAJoB;AASpBC,YAAU,8BAA8B;AACtC,QAAI,CAAC,KAAL,QAAkB;AAChB,oBADgB,IAChB;AACA,iDAA2C,KAA3C,cAFgB,IAEhB;AACA,iCAA2B,KAHX,cAGhB;;AACA,UAAI,KAAJ,iBAA0B;AACxB,6BADwB,IACxB;AALc;AADoB;AATpB;AAuBpBC,cAAY,gCAAgC;AAC1C,QAAI,KAAJ,QAAiB;AACf,oBADe,KACf;AACA,oDAA8C,KAA9C,cAFe,IAEf;;AACA,WAHe,OAGf;;AACA,oCAA8B,KAJf,cAIf;;AACA,UAAI,KAAJ,iBAA0B;AACxB,6BADwB,KACxB;AANa;AADyB;AAvBxB;AAmCpBC,UAAQ,4BAA4B;AAClC,QAAI,KAAJ,QAAiB;AACf,WADe,UACf;AADF,WAEO;AACL,WADK,QACL;AAJgC;AAnChB;AAkDpBC,gBAAc,sCAAsC;AAGlD,WAAOC,sBAH2C,uEAG3CA,CAAP;AArDkB;AA6DpBC,gBAAc,uCAAuC;AACnD,QAAIjkB,sBAAsB,kBAAkBA,MAA5C,MAA0B,CAA1B,EAA2D;AAAA;AADR;;AAInD,QAAIA,MAAJ,gBAA0B;AACxB,UAAI;AAEFA,6BAFE,OAEFA;AAFF,QAGE,UAAU;AAAA;AAJY;AAJyB;;AAcnD,2BAAuB,aAd4B,UAcnD;AACA,0BAAsB,aAf6B,SAenD;AACA,wBAAoBA,MAhB+B,OAgBnD;AACA,wBAAoBA,MAjB+B,OAiBnD;AACA,gDAA4C,KAA5C,cAlBmD,IAkBnD;AACA,8CAA0C,KAA1C,SAnBmD,IAmBnD;AAIA,4CAAwC,KAAxC,SAvBmD,IAuBnD;AACAA,UAxBmD,cAwBnDA;AACAA,UAzBmD,eAyBnDA;AAEA,QAAIkkB,iBAAiBxpB,SA3B8B,aA2BnD;;AACA,QAAIwpB,kBAAkB,CAACA,wBAAwBlkB,MAA/C,MAAuBkkB,CAAvB,EAA8D;AAC5DA,qBAD4D,IAC5DA;AA7BiD;AA7DjC;AAiGpBC,gBAAc,uCAAuC;AACnD,+CAA2C,KAA3C,SADmD,IACnD;;AACA,QAAIC,oBAAJ,KAAIA,CAAJ,EAAgC;AAC9B,WAD8B,OAC9B;;AAD8B;AAFmB;;AAMnD,QAAIC,QAAQrkB,gBAAgB,KANuB,YAMnD;AACA,QAAIskB,QAAQtkB,gBAAgB,KAPuB,YAOnD;AACA,QAAIgK,YAAY,sBARmC,KAQnD;AACA,QAAID,aAAa,uBATkC,KASnD;;AACA,QAAI,aAAJ,UAA2B;AACzB,4BAAsB;AACpBoS,aADoB;AAEpBG,cAFoB;AAGpBiI,kBAHoB;AAAA,OAAtB;AADF,WAMO;AACL,+BADK,SACL;AACA,gCAFK,UAEL;AAlBiD;;AAoBnD,QAAI,CAAC,aAAL,YAA8B;AAC5B7pB,gCAA0B,KADE,OAC5BA;AArBiD;AAjGjC;AA6HpB8pB,WAAS,6BAA6B;AACpC,+CAA2C,KAA3C,SADoC,IACpC;AACA,mDAA+C,KAA/C,cAFoC,IAEpC;AACA,iDAA6C,KAA7C,SAHoC,IAGpC;AAEA,iBALoC,MAKpC;AAlIkB;AAAA,CAAtBd;AAuIA,IAtLA,eAsLA;AACA,2CAA2C,kBAAiB;AAC1D,MAAI3N,OAAO0O,SAD+C,QAC1D;;AACA,MAAI1O,QAAQrb,SAAZ,iBAAsC;AACpCgqB,sBADoC,IACpCA;AAHwD;;AAK1D3O,UAL0D,UAK1DA;;AACA,MAAIA,QAAQrb,SAAZ,iBAAsC;AACpCgqB,sBADoC,IACpCA;AAPwD;;AAS1D,SAT0D,eAS1D;AAhMF,CAuLA;AAcA,IAAIC,sBAAsB,CAACjqB,SAAD,gBAA0BA,wBArMpD,CAqMA;AACA,IAAIkqB,SAAS7kB,OAtMb,MAsMA;AACA,IAAI8kB,0BAA0BD,WAAW,mBAAmBA,OAvM5D,GAuM8BA,CAA9B;AAEA,IAAIE,gBAAgB,aAAaxC,UAAb,WACA,oCAAoCA,UA1MxD,SA0MoB,CADpB;;AASA,oCAAoC;AAClC,MAAI,sBAAJ,qBAA+C;AAI7C,WAAO,EAAE,gBAJoC,CAItC,CAAP;AALgC;;AAOlC,MAAIuC,2BAAJ,eAA8C;AAI5C,WAAO7kB,gBAJqC,CAI5C;AAXgC;;AAalC,SAbkC,KAalC;AA/NF,C;;;;;;;;;;;;;;;;;;;;ACeA,IAAM+kB,kBAfN,KAeA;AAEA,IAAMrV,kBAAkB;AACtBjP,WADsB;AAEtBukB,WAFsB;AAGtBC,UAHsB;AAItBC,YAJsB;AAAA,CAAxB;;;IAUA,iB;;;AACErP,+BAAc;AAAA;;AACZ,qBADY,IACZ;AACA,8BAFY,IAEZ;AACA,kBAHY,IAGZ;AACA,+BAJY,IAIZ;AACA,uBALY,IAKZ;AACA,oBANY,KAMZ;AACA,kCAPY,KAOZ;AARoB;;;;8BActBsP,S,EAAqB;AACnB,uBADmB,SACnB;AAfoB;;;uCAqBtBC,kB,EAAuC;AACrC,gCADqC,kBACrC;AAtBoB;;;sCA6BtBC,I,EAAwB;AACtB,aAAO,6BAA6BpW,KADd,WACtB;AA9BoB;;;0CAoCtBqW,qB,EAA6C;AAC3C,UAAI,KAAJ,aAAsB;AACpBpc,qBAAa,KADO,WACpBA;AACA,2BAFoB,IAEpB;AAHyC;;AAO3C,UAAI,8BAAJ,qBAAI,CAAJ,EAA0D;AAAA;AAPf;;AAW3C,UAAI,2BAA2B,KAA/B,wBAA4D;AAC1D,YAAI,wBAAJ,cAAI,EAAJ,EAA8C;AAAA;AADY;AAXjB;;AAiB3C,UAAI,KAAJ,UAAmB;AAAA;AAjBwB;;AAsB3C,UAAI,KAAJ,QAAiB;AACf,2BAAmBgC,WAAW,iBAAXA,IAAW,CAAXA,EADJ,eACIA,CAAnB;AAvByC;AApCvB;;;uCAoEtBqa,O,EAAAA,K,EAAAA,Y,EAAiD;AAU/C,UAAIC,eAAe/I,QAV4B,KAU/C;AAEA,UAAIgJ,aAAaD,aAZ8B,MAY/C;;AACA,UAAIC,eAAJ,GAAsB;AACpB,eADoB,IACpB;AAd6C;;AAgB/C,WAAK,IAAIra,IAAT,GAAgBA,IAAhB,YAAgC,EAAhC,GAAqC;AACnC,YAAI6D,OAAOuW,gBADwB,IACnC;;AACA,YAAI,CAAC,oBAAL,IAAK,CAAL,EAAgC;AAC9B,iBAD8B,IAC9B;AAHiC;AAhBU;;AAwB/C,wBAAkB;AAChB,YAAIE,gBAAgBjJ,aADJ,EAChB;;AAEA,YAAIV,wBAAwB,CAAC,oBAAoBA,MAAjD,aAAiDA,CAApB,CAA7B,EAAwE;AACtE,iBAAOA,MAD+D,aAC/DA,CAAP;AAJc;AAAlB,aAMO;AACL,YAAI4J,oBAAoBlJ,mBADnB,CACL;;AACA,YAAIV,4BACA,CAAC,oBAAoBA,MADzB,iBACyBA,CAApB,CADL,EACoD;AAClD,iBAAOA,MAD2C,iBAC3CA,CAAP;AAJG;AA9BwC;;AAsC/C,aAtC+C,IAsC/C;AA1GoB;;;mCAiHtB6J,I,EAAqB;AACnB,aAAO3W,wBAAwBS,gBADZ,QACnB;AAlHoB;;;+BA4HtBmW,I,EAAiB;AAAA;;AACf,cAAQ5W,KAAR;AACE,aAAKS,gBAAL;AACE,iBAFJ,KAEI;;AACF,aAAKA,gBAAL;AACE,qCAA2BT,KAD7B,WACE;AACAA,eAFF,MAEEA;AALJ;;AAOE,aAAKS,gBAAL;AACE,qCAA2BT,KAD7B,WACE;AARJ;;AAUE,aAAKS,gBAAL;AACE,qCAA2BT,KAD7B,WACE;AACAA,iCAAoB,YAAM;AACxB,kBADwB,qBACxB;AAHJ,WAEEA;AAZJ;AAAA;;AAiBA,aAlBe,IAkBf;AA9IoB;;;;;;;;;;;;;;;;;;;;AC3BxB;;AAAA;;;;;;;;AAkBA,IAAM6W,wBAlBN,wBAkBA;AAEA,IAAM3b,cAAc;AAClB5J,WAAS,CADS;AAElBkY,QAFkB;AAGlBsN,UAHkB;AAIlBC,WAJkB;AAKlBC,eALkB;AAMlBC,UANkB;AAAA,CAApB;;;IA0CA,U;;;AAIErQ,4BAC+D;AAAA,QADnD,QACmD,QADnD,QACmD;AAAA,QADnD,SACmD,QADnD,SACmD;AAAA,QADnD,kBACmD,QADnD,kBACmD;AAAA,QADnD,QACmD,QADnD,QACmD;AAAA,yBAAjD5S,IAAiD;AAAA,QAAjDA,IAAiD,0BADnD,kBACmD;AAAA,qCAAhCkjB,mBAAgC;AAAA,QAAhCA,mBAAgC,sCAD/DtQ,KAC+D;;AAAA;;AAC7D,kBAD6D,KAC7D;AACA,kBAAc1L,YAF+C,MAE7D;AACA,4BAH6D,KAG7D;AAMA,qBAT6D,IAS7D;AAEA,qBAX6D,SAW7D;AACA,8BAZ6D,kBAY7D;AAEA,0BAAsBvE,SAduC,cAc7D;AACA,2BAAuBA,SAfsC,eAe7D;AACA,wBAAoBA,SAhByC,YAgB7D;AAEA,2BAAuBA,SAlBsC,eAkB7D;AACA,yBAAqBA,SAnBwC,aAmB7D;AACA,6BAAyBA,SApBoC,iBAoB7D;AAEA,yBAAqBA,SAtBwC,aAsB7D;AACA,uBAAmBA,SAvB0C,WAuB7D;AACA,2BAAuBA,SAxBsC,eAwB7D;AAEA,oBA1B6D,QA0B7D;AACA,gBA3B6D,IA2B7D;AACA,gCA5B6D,mBA4B7D;;AAEA,SA9B6D,kBA8B7D;AAnCa;;;;4BAsCP;AACN,8BADM,KACN;;AAEA,+BAHM,IAGN;;AACA,sBAAgBuE,YAJV,MAIN;AAEA,oCANM,KAMN;AACA,wCAPM,KAON;AA7Ca;;;qCAuEyB;AAAA,UAAzB8E,IAAyB,uEAAlB9E,YAAtBkC,IAAwC;;AACtC,UAAI,KAAJ,kBAA2B;AAAA;AADW;;AAItC,8BAJsC,IAItC;;AAIA,UAAI4C,SAAS9E,YAAT8E,QAA6BA,SAAS9E,YAA1C,SAA+D;AAC7D,aAD6D,cAC7D;;AAD6D;AARzB;;AActC,UAAI,CAAC,uBAAL,IAAK,CAAL,EAAmD;AACjD,aADiD,cACjD;AAfoC;AAvEzB;;;+BAgGfic,I,EAAoC;AAAA,UAAnBC,SAAmB,uEAApCD,KAAoC;;AAClC,6BADkC,SAClC;AAjGa;;;gCAwGfE,I,EAAqC;AAAA,UAAnBD,SAAmB,uEAArCC,KAAqC;AACnC,UAAMC,gBAAiBtX,SAAS,KADG,MACnC;AACA,UAAIuX,uBAF+B,KAEnC;;AAEA;AACE,aAAKrc,YAAL;AACE,cAAI,KAAJ,QAAiB;AACf,iBADe,KACf;AACA,mBAFe,IAEf;AAHJ;;AAKE,iBANJ,KAMI;;AACF,aAAKA,YAAL;AACE,cAAI,eAAJ,eAAkC;AAChCqc,mCADgC,IAChCA;AAFJ;;AAPF;;AAYE,aAAKrc,YAAL;AACE,cAAI,mBAAJ,UAAiC;AAC/B,mBAD+B,KAC/B;AAFJ;;AAZF;;AAiBE,aAAKA,YAAL;AACE,cAAI,uBAAJ,UAAqC;AACnC,mBADmC,KACnC;AAFJ;;AAjBF;;AAsBE;AACErG,4DADF,IACEA;AACA,iBAxBJ,KAwBI;AAxBJ;;AA4BA,oBAhCmC,IAgCnC;AAGA,uDACEmL,SAAS9E,YApCwB,MAmCnC;AAEA,qDACE8E,SAAS9E,YAtCwB,OAqCnC;AAEA,yDACE8E,SAAS9E,YAxCwB,WAuCnC;AAGA,oDAA8C8E,SAAS9E,YA1CpB,MA0CnC;AACA,kDAA4C8E,SAAS9E,YA3ClB,OA2CnC;AACA,sDACE8E,SAAS9E,YA7CwB,WA4CnC;;AAGA,UAAIkc,aAAa,CAAC,KAAlB,QAA+B;AAC7B,aAD6B,IAC7B;AACA,eAF6B,IAE7B;AAjDiC;;AAmDnC,gCAA0B;AACxB,aADwB,sBACxB;;AACA,aAFwB,eAExB;AArDiC;;AAuDnC,yBAAmB;AACjB,aADiB,cACjB;AAxDiC;;AA0DnC,+BAAyB,KA1DU,MA0DnC;;AACA,aA3DmC,aA2DnC;AAnKa;;;2BAsKR;AACL,UAAI,KAAJ,QAAiB;AAAA;AADZ;;AAIL,oBAJK,IAIL;AACA,sCALK,SAKL;AAEA,yDAPK,aAOL;;AAEA,UAAI,gBAAgBlc,YAApB,QAAwC;AACtC,aADsC,sBACtC;AAVG;;AAYL,WAZK,eAYL;;AACA,WAbK,cAaL;;AAEA,+BAAyB,KAfpB,MAeL;AArLa;;;4BAwLP;AACN,UAAI,CAAC,KAAL,QAAkB;AAAA;AADZ;;AAIN,oBAJM,KAIN;AACA,yCALM,SAKN;AAEA,wCAPM,eAON;AACA,2CARM,aAQN;;AAEA,WAVM,eAUN;;AACA,WAXM,cAWN;AAnMa;;;6BAsMN;AACP,UAAI,KAAJ,QAAiB;AACf,aADe,KACf;AADF,aAEO;AACL,aADK,IACL;AAJK;AAtMM;;;qCAiNE;AACf,mDAA6C;AAC3CvG,gBAD2C;AAE3CqL,cAAM,KAFqC;AAAA,OAA7C;AAlNa;;;sCA2NG;AAChB,UAAI,KAAJ,WAAoB;AAClB,aADkB,SAClB;AADF,aAEO;AACL,uBADK,cACL;AACA,gCAFK,cAEL;AALc;AA3NH;;;6CAuOU;AAAA,UACnB,SADmB,QACnB,SADmB;AAAA,UACnB,kBADmB,QACnB,kBADmB;AAIvB,UAAIwX,aAAaxkB,UAJM,UAIvB;;AACA,WAAK,IAAI4M,YAAT,GAAwBA,YAAxB,YAAgDA,SAAhD,IAA6D;AAC3D,YAAIC,WAAW7M,sBAD4C,SAC5CA,CAAf;;AACA,YAAI6M,YAAYA,4BAA4BY,qCAA5C,UAAsE;AACpE,cAAI7R,gBAAgBqE,gCADgD,SAChDA,CAApB;AACArE,iCAFoE,QAEpEA;AAJyD;AALtC;;AAYvBqE,iDAA2CD,UAZpB,iBAYvBC;AAnPa;;;wCAyPfwkB,I,EAA0B;AAAA;;AACxB,UAAI,KAAJ,sBAA+B;AAAA;AADP;;AAKxB,8HAEU7e,aAAD,EAAS;AAChB,mCADgB,GAChB;AARsB,OAKxB;;AAMA,UAAI,CAAC,KAAL,QAAkB;AAGhB,wCAHgB,qBAGhB;AAHF,aAIO,IAAIoH,SAAS,KAAb,QAA0B;AAAA;AAfT;;AAqBxB;AACE,aAAK9E,YAAL;AACE,2CADF,qBACE;AAFJ;;AAIE,aAAKA,YAAL;AACE,+CADF,qBACE;AALJ;AAAA;AA9Qa;;;wCA2Rfwc,I,EAA0B;AAAA;;AACxB,UAAI,KAAJ,sBAA+B;AAAA;AADP;;AAKxB,UAAIC,qBAAsB3X,SAAtB2X,kBAAsB3X,KAAD,EAAU;AACjC;AACE,eAAK9E,YAAL;AACE,kDADF,qBACE;;AAFJ;;AAIE,eAAKA,YAAL;AACE,sDADF,qBACE;;AALJ;AAAA;AANsB,OAKxB;;AAWA,UAAI,CAAC,KAAD,UAAgB8E,SAApB,MAAmC;AAAA;AAhBX;;AAqBxB,yCArBwB,qBAqBxB;;AAEA,UAAIA,SAAJ,MAAmB;AACjB2X,2BADiB,IACjBA;AADiB;AAvBK;;AA2BxB,gCAA0B;AACxBA,2BAAmBzc,YADK,IACLA,CAAnByc;AA5BsB;;AA+BxB,yEACU/e,aAAD,EAAS;AAChB,oCADgB,GAChB;AAjCsB,OA+BxB;AA1Ta;;;yCAmUM;AAAA;;AACnB,6DAAwD6G,aAAD,EAAS;AAC9D,YAAIA,eAAe,OAAnB,iBAAyC;AACvC,iDADuC,eACvC;AAF4D;AAD7C,OACnB;AAOA,qDAA+C,YAAM;AACnD,0BAAgBvE,YADmC,MACnD;AATiB,OAQnB;AAIA,mDAA6C,YAAM;AACjD,0BAAgBA,YADiC,OACjD;AAbiB,OAYnB;AAGA,sDAAgD,YAAM;AACpD,sDAA4C;AAAEvG,kBADM;AACR,SAA5C;AAhBiB,OAenB;AAIA,uDAAiD,YAAM;AACrD,0BAAgBuG,YADqC,WACrD;AApBiB,OAmBnB;AAKA,wCAAmCuE,aAAD,EAAS;AACzC,YAAImY,eAAenY,IADsB,YACzC;AAEA,wCAA8B,CAHW,YAGzC;;AAEA,0BAAkB;AAChB,qCAAyBvE,YADT,OAChB;AADF,eAEO,IAAI,kBAAgBA,YAApB,SAAyC;AAG9C,4BAAgBA,YAH8B,MAG9C;AAVuC;AAxBxB,OAwBnB;AAcA,4CAAuCuE,aAAD,EAAS;AAC7C,YAAIA,IAAJ,kBAA0B;AACxB,8CADwB,KACxB;;AAEA,qCAAyBvE,YAHD,WAGxB;;AAHwB;AADmB;;AAa7CxB,+BAAuB,YAAM;AAC3B,cAAI,uBAAJ,aAAI,EAAJ,EAA0C;AAAA;AADf;;AAK3B,8CAL2B,IAK3B;;AAEA,cAAI,kBAAgBwB,YAApB,aAA6C;AAG3C,8BAAgBA,YAH2B,MAG3C;AAVyB;AAbgB,SAa7CxB;AAnDiB,OAsCnB;AA6BA,kDAA6C+F,aAAD,EAAS;AACnD,YAAI,CAACA,IAAD,UAAe,CAACA,IAAhB,oBAAwC,OAA5C,wBAAyE;AACvE,iBADuE,sBACvE;AAFiD;AAnElC,OAmEnB;AAtYa;;;wBAmDG;AAChB,aAAQ,cAAc,KAAd,SAA4BvE,YADpB,IAChB;AApDa;;;wBAuDc;AAC3B,aAAQ,eAAe,gBAAgBA,YADZ,MAC3B;AAxDa;;;wBA2DY;AACzB,aAAQ,eAAe,gBAAgBA,YADd,OACzB;AA5Da;;;wBA+DgB;AAC7B,aAAQ,eAAe,gBAAgBA,YADV,WAC7B;AAhEa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IC/CjB,c;;;AACE0L,4BAAc;AAAA;;AACZ,qBADY,EACZ;AACA,mBAFY,IAEZ;AACA,yBAAqB,mBAHT,IAGS,CAArB;AAJiB;;;;;;;oDAwBnB,I,EAAA,O;;;;;;;;;AAA8BiR,iC,2DAA9B,I;AACeC,6B,2DADf,K;;sBAGM,SAAS,CAAT,WAAqB,EAAE,YAAYxN,QAAvC,UAAyB,C;;;;;sBACjB,UADoD,wBACpD,C;;;qBACG,eAAJ,IAAI,C;;;;;sBACH,UADyB,oCACzB,C;;;AAER,uCAAuB;AACrBA,yBADqB,EACrBA,OADqB;AAErBxe,2BAFqB,EAErBA,SAFqB;AAGrB+rB,mCAHqB,EAGrBA,iBAHqB;AAIrBC,+BAJqB,EAIrBA;AAJqB,iBAAvB;;;;;;;;;;;;;;;;;;;;;qDAaF,I;;;;;oBACO,eAAL,IAAK,C;;;;;sBACG,UADmB,6BACnB,C;;;sBACG,iBAAJ,I;;;;;sBACC,UAD0B,mDAC1B,C;;;AAER,uBAAO,eANc,IAMd,CAAP;;;;;;;;;;;;;;;;;;;;;qDAQF,I;;;;;oBACO,eAAL,IAAK,C;;;;;sBACG,UADmB,6BACnB,C;;;qBACG,KAAJ,O;;;;;qBACD,qBAAJ,a;;;;;AACE,qBADsC,mBACtC;;;;;;sBACS,iBAAJ,I;;;;;sBACC,UAD0B,gCAC1B,C;;;sBAEA,UADD,sCACC,C;;;AAGV,+BAZe,IAYf;;AACA,+BAAe,KAAf,kCAbe,QAaf;;AACA,+BAAe,KAAf,oCAde,QAcf;;AAEAhnB,mDAAmC,KAhBpB,aAgBfA;;;;;;;;;;;;;;;;;;;;;qDAQF,I;;;;;oBACO,eAAL,IAAK,C;;;;;sBACG,UADmB,6BACnB,C;;;oBACI,KAAL,O;;;;;sBACC,UADkB,sCAClB,C;;;sBACG,iBAAJ,I;;;;;sBACC,UAD0B,sCAC1B,C;;;AAER,+BAAe,KAAf,iCARgB,QAQhB;;AACA,+BAAe,KAAf,+BATgB,QAShB;;AACA,+BAVgB,IAUhB;AAEAA,sDAAsC,KAZtB,aAYhBA;;;;;;;;;;;;;;;;;;6BAMFinB,G,EAAc;AACZ,UAAI,gBAAgBtY,gBAApB,IAAwC;AACtC,aADsC,mBACtC;;AACAA,YAFsC,cAEtCA;AAHU;AArGK;;;0CA+GG;AACpB,UAAI,eAAe,KAAf,SAAJ,mBAAoD;AAClD,uBAAe,KAAf,SADkD,iBAClD;AAFkB;;AAIpB,UAAI,KAAJ,SAAkB;AAChB,mBAAW,KADK,OAChB;AALkB;AA/GH;;;wBAON;AACX,aAAO,KADI,OACX;AARiB;;;;;;;;;;;;;;;;;;;;ACfrB;;AAAA;;;;;;;;IA+BA,c;;;AAMEmH,mDAAsD;AAAA;;AAAA,QAAjB5S,IAAiB,uEAAtD4S,kBAAsD;;AAAA;;AACpD,uBAAmB6M,QADiC,WACpD;AACA,qBAAiBA,QAFmC,SAEpD;AACA,iBAAaA,QAHuC,KAGpD;AACA,iBAAaA,QAJuC,KAIpD;AACA,wBAAoBA,QALgC,YAKpD;AACA,wBAAoBA,QANgC,YAMpD;AACA,0BAPoD,cAOpD;AACA,gBARoD,IAQpD;AAEA,0BAVoD,IAUpD;AACA,kBAXoD,IAWpD;AAGA,gDAA4C,iBAdQ,IAcR,CAA5C;AACA,gDAA4C,gBAfQ,IAeR,CAA5C;AACA,2CAAwCuE,WAAD,EAAO;AAC5C,UAAIA,cAAJ,IAAsB;AACpB,cADoB,MACpB;AAF0C;AAhBM,KAgBpD;AAMA,iCAA6B,KAA7B,aAA+C,KAA/C,WAC6B,gBAD7B,IAC6B,CAD7B,EAtBoD,IAsBpD;AA5BiB;;;;2BAgCZ;AAAA;;AACL,+BAAyB,KAAzB,kBAAgD,YAAM;AACpD,qBADoD,KACpD;;AAEA,YAHoD,YAGpD;;AACA,YAAI,kBAAgBC,4BAApB,oBAA0D;AACxDC,yBAAe,0CADyC,qCACzC,CAAfA;AADF,eAGO;AACLA,yBAAe,wCADV,2CACU,CAAfA;AARkD;;AAYpDA,0BAAmBtf,aAAD,EAAS;AACzB,qCADyB,GACzB;AAbkD,SAYpDsf;AAbG,OACL;AAjCiB;;;4BAmDX;AAAA;;AACN,gCAA0B,KAA1B,kBAAiD,YAAM;AACrD,6BADqD,EACrD;AAFI,OACN;AApDiB;;;6BAyDV;AACP,UAAIC,WAAW,WADR,KACP;;AACA,UAAIA,YAAYA,kBAAhB,GAAqC;AACnC,aADmC,KACnC;AACA,4BAFmC,QAEnC;AAJK;AAzDU;;;sCAiEnBC,c,EAAAA,M,EAA0C;AACxC,4BADwC,cACxC;AACA,oBAFwC,MAExC;AAnEiB;;;;;;;;;;;;;;;;;;;;AChBrB;;;;;;;;IAiBA,mB;;;AAIExR,qCAAuD;AAAA,QAA3C,SAA2C,QAA3C,SAA2C;AAAA,QAA3C,QAA2C,QAA3C,QAA2C;AAAA,QAAvDA,eAAuD,QAAvDA,eAAuD;;AAAA;;AACrD,qBADqD,SACrD;AACA,oBAFqD,QAErD;AACA,2BAHqD,eAGrD;AAEA,SALqD,KAKrD;AAEA,iDACE,4BARmD,IAQnD,CADF;AAXsB;;;;4BAec;AAAA,UAAhCyR,sBAAgC,uEAAtCxR,KAAsC;AACpC,yBADoC,IACpC;AAGA,mCAJoC,EAIpC;;AAEA,UAAI,CAAJ,wBAA6B;AAG3B,mCAH2B,wCAG3B;AATkC;AAfd;;;mCA+BxByR,gB,EAAiC;AAC/B,+BAD+B,OAC/B;;AAEA,kDAA4C;AAC1C3jB,gBAD0C;AAE1C4jB,wBAF0C,EAE1CA;AAF0C,OAA5C;AAlCsB;;;iCA2CxBC,M,EAAAA,O,EAAAA,Q,EAAwC;AACtC,UAAI,qBAAJ,wBAAiD;AAC/C,cAAM,UADyC,0DACzC,CAAN;AAFoC;;AAKtC,UALsC,OAKtC;;AACAC,uBAAiB,YAAW;AAC1B,YAAI,CAAJ,SAAc;AACZC,oBAAUtZ,wCADE,iBACFA,CAAVsZ;AAFwB;;AAI1B,YAJ0B,SAI1B;AAGEC,oBAAY,WAAWC,mBAAmBF,gBAPlB,QAODE,CAAvBD;AAWF7nB,oBAlB0B,SAkB1BA;AACA,eAnB0B,KAmB1B;AAzBoC,OAMtC2nB;AAjDsB;;;8BA2ExBI,M,EAAAA,O,EAAAA,Q,EAAqC;AAAA;;AACnCJ,uBAAiB,YAAM;AACrB,8DADqB,EACrB;;AACA,eAFqB,KAErB;AAHiC,OACnCA;AA5EsB;;;kCAqFiC;AAAA,UAAlD,WAAkD,SAAlD,WAAkD;AAAA,wCAAnCJ,sBAAmC;AAAA,UAAnCA,sBAAmC,sCAAzDS,KAAyD;AACvD,UAAIP,mBADmD,CACvD;;AAEA,UAAI,KAAJ,aAAsB;AACpB,mBAAWF,2BADS,IACpB;AAJqD;;AAMvD,yBAAmB1b,eANoC,IAMvD;;AAEA,UAAI,CAAJ,aAAkB;AAChB,4BADgB,gBAChB;;AADgB;AARqC;;AAavD,UAAIoc,QAAQ,8BAA8B,gBAAe;AACvD,eAAO9M,8BAA8BC,EADkB,WAClBA,EAA9BD,CAAP;AAdqD,OAa3C,CAAZ;AAGAsM,yBAAmBQ,MAhBoC,MAgBvDR;;AAEA,WAAK,IAAIpc,IAAT,GAAgBA,IAAhB,kBAAsCA,CAAtC,IAA2C;AACzC,YAAI6c,OAAOrc,YAAYoc,MADkB,CAClBA,CAAZpc,CAAX;AACA,YAAI9D,WAAWogB,oCAAqBxhB,kCAAmBuhB,KAFd,QAELvhB,CAArBwhB,CAAf;AAEA,YAAIC,MAAMztB,uBAJ+B,KAI/BA,CAAV;AACAytB,wBALyC,iBAKzCA;AACA,YAAIT,SAAShtB,uBAN4B,QAM5BA,CAAb;AACAgtB,6BAPyC,QAOzCA;;AACA,YAAI,4BACA,CAAC,qBADL,wBACkD;AAChD,oCAA0BO,KAA1B,SADgD,QAChD;AAFF,eAGO;AACL,iCAAuBA,KAAvB,SADK,QACL;AAZuC;;AAezCE,wBAfyC,MAezCA;AACA,mCAhByC,GAgBzC;AAlCqD;;AAqCvD,0BArCuD,gBAqCvD;AA1HsB;;;6CAiIsB;AAAA;;AAAA,UAA5B,EAA4B,SAA5B,EAA4B;AAAA,UAA5B,QAA4B,SAA5B,QAA4B;AAAA,UAA9CC,OAA8C,SAA9CA,OAA8C;;AAC5C,4CAAsC,YAAM;AAC1C,YAAIxc,cAAc,OADwB,WAC1C;;AAEA,YAAI,CAAJ,aAAkB;AAChBA,wBAAc1E,cADE,IACFA,CAAd0E;AADF,eAEO;AACL,wCAA8B;AAC5B,gBAAI2R,OAAJ,MAAiB;AAAA;AADW;AADzB;AALmC;;AAY1C3R,0BAAkB;AAChB9D,kBADgB,EAChBA,QADgB;AAEhBugB,iBAFgB,EAEhBA;AAFgB,SAAlBzc;;AAIA,sBAAY;AACVA,qBADU,EACVA,WADU;AAEV0b,kCAFU;AAAA,SAAZ;AAjB0C,OAC5C;AAlIsB;;;;;;;;;;;;;;;;;;;;;;ACjB1B;;AACA;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMgB,wBApBN,GAoBA;AAGA,IAAMC,qBAAqB,wBAA3B;AAIA,IAAMC,gBAAgB;AACpB,YADoB;AAEpB,YAFoB;AAAA,CAAtB;AAIA,IAAMC,oBAAoB;AACxB,aADwB;AAExB,aAFwB;AAAA,CAA1B;;AAKA,kDAAkD;AAChD,MAAM9M,QAAS+M,aAAanK,KAAbmK,QAA0BnK,KADO,MAChD;AACA,MAAM3C,SAAU8M,aAAanK,KAAbmK,SAA2BnK,KAFK,KAEhD;AAEA,SAAOoK,oBAAU,KAAVA,cAJyC,MAIzCA,EAAP;AAxCF;;IAmDA,qB;;;AAOE9S,iEACuD;AAAA;;AAAA,QAD3C,WAC2C,QAD3C,WAC2C;AAAA,QAD3C,MAC2C,QAD3C,MAC2C;AAAA,QAD3C,SAC2C,QAD3C,SAC2C;AAAA,QADvDA,WACuD,QADvDA,WACuD;AAAA,QAAjB5S,IAAiB,uEADvD4S,kBACuD;;AAAA;;AACrD,uBADqD,WACrD;AACA,kBAFqD,MAErD;AACA,qBAHqD,SAGrD;AACA,0BAJqD,cAIrD;AACA,gBALqD,IAKrD;;AAEA,SAPqD,MAOrD;;AAEA,qBAAiB;AACf1W,4CAAsC,gBADvB,IACuB,CAAtCA;AAVmD;;AAYrD,iCAA6B,KAA7B,aAA+C,KAA/C,WAC6B,gBAbwB,IAaxB,CAD7B;;AAGA,kBAAc;AACZtE,kCAA6B6T,aAAD,EAAS;AACnC,mCAA0BA,IADS,UACnC;AAFU,OACZ7T;AAGAA,sCAAiC6T,aAAD,EAAS;AACvC,+BAAsBA,IADiB,aACvC;AALU,OAIZ7T;AAnBmD;;AAwBrD,8BAxBqD,IAwBrD;AACAoI,4BAAyBwB,gBAAD,EAAY;AAClC,iCAA0B8jB,4BADQ,MACRA,CAA1B;AA1BmD,KAyBrDtlB;AAjCwB;;;;2BAyCnB;AAAA;;AACL,UAAI2lB,kBAAmBC,SAAnBD,eAAmBC,KAAD,EAAU;AAC9B3hB,mDAAyC;AACvCoN,iBAAOpN,cADgC,IAChCA,CADgC;AAEvC4hB,oBAFuC;AAGvC3R,sBAHuC;AAIvC4R,wBAJuC;AAAA,SAAzC7hB;AAFG,OACL;;AASAyB,kBAAY,CAAC,yBAAyB,KAA1B,WAAC,CAAD,EACC,8BADD,QAAZA,OAC0D,YAAM;AAC9D,YAAMqgB,oBAAoB,OADoC,kBAC9D;AACA,YAAMC,gBAAgB,OAFwC,cAE9D;;AAIA,YAAI,oBACAD,sBAAsB,iBADtB,oBACsB,CADtB,IAEAC,kBAAkB,iBAFtB,gBAEsB,CAFtB,EAEwD;AACtD,iBADsD,SACtD;;AADsD;AARM;;AAc9D,8CACI,iBAAqD;AAAA,cAApD,IAAoD,SAApD,IAAoD;AAAA,cAApD,QAAoD,SAApD,QAAoD;AAAA,cAArD,0BAAqD,SAArD,0BAAqD;AACvD,iBAAO,YAAY,iBAGjBxlB,8BAA8B+C,qCAAsB,cAHnC,EAGaA,CAHb,EAIjB,sBAAoB,OAJH,aAIjB,CAJiB,EAKjB,kBAAgBqF,KALC,YAKjB,CALiB,EAMjB,kBAAgBA,KANC,OAMjB,CANiB,EAOjB,mDAAkDlC,iBAAD,EAAa;AAC5D,mBAAO,sBAAoBuf,iCAApB,OAAoBA,CAApB,EADqD,aACrD,CAAP;AARe,WAOjB,CAPiB,EAWjB,2BAAyBrd,KAXR,YAWjB,CAXiB,CAAZ,CAAP;AAFF,gBAeQ,iBAC8B;AAAA;AAAA,cAD7B,IAC6B;AAAA,cAD7B,QAC6B;AAAA,cAD7B,QAC6B;AAAA,cAD7B,QAC6B;AAAA,cAD7B,YAC6B;AAAA,cAD7B,OAC6B;AAAA,cAD7B,QAC6B;AAAA,cAD9B,YAC8B;;AACpC+c,0BAAgB;AACd,wBADc;AAEd,wBAFc;AAGd,qBAAS/c,KAHK;AAId,sBAAUA,KAJI;AAKd,uBAAWA,KALG;AAMd,wBAAYA,KANE;AAOd,4BAPc;AAQd,gCARc;AASd,uBAAWA,KATG;AAUd,wBAAYA,KAVE;AAWd,uBAAWA,KAXG;AAYd,yBAAa,mBAZC;AAad,wBAbc;AAcd,0BAdc;AAed,kCAfc;AAgBd,8BAhBc;AAAA,WAAhB+c;;AAkBA,iBAnBoC,SAmBpC;;AAIA,iBAAO,mBAvB6B,eAuB7B,EAAP;AAvCF,gBAwCQ,iBAAiB;AAAA,cAAjB,MAAiB,SAAjB,MAAiB;AACvB,iCADuB,MACvB;AACA,iBAAO,sBAFgB,MAEhB,CAAP;AA1CF,gBA2CSO,kBAAD,EAAc;AACpB,cAAIA,aAAa,iBAAjB,UAAiB,CAAjB,EAA6C;AAAA;AADzB;;AAIpB,cAAIN,OAAO3hB,cAAcA,cAAdA,IAAcA,CAAdA,EAAmC,OAJ1B,SAITA,CAAX;AACA2hB,6BALoB,QAKpBA;AAEAD,0BAPoB,IAOpBA;;AACA,iBARoB,SAQpB;AAjE4D,SAc9D;AAzBG,OAULjgB;AAnDwB;;;4BA6HlB;AACN,gCAA0B,KADpB,WACN;AA9HwB;;;gCA0I1BygB,W,EAAqC;AAAA,UAAZ/lB,GAAY,uEAArC+lB,IAAqC;;AACnC,UAAI,KAAJ,aAAsB;AACpB,aADoB,MACpB;;AACA,uBAFoB,IAEpB;AAHiC;;AAKnC,UAAI,CAAJ,aAAkB;AAAA;AALiB;;AAQnC,yBARmC,WAQnC;AACA,iBATmC,GASnC;;AAEA,oCAXmC,OAWnC;AArJwB;;;gCA+J1BC,Q,EAAsB;AACpB,UAAI/K,8BAA8B6K,WAAlC,GAAgD;AAC9C,6BAD8C,QAC9C;AAFkB;AA/JI;;;6BAwKjB;AACP,yBADO,IACP;AACA,iBAFO,IAEP;AAEA,2BAJO,CAIP;AACA,aAAO,KALA,SAKP;AACA,sCANO,wCAMP;AACA,gCAPO,CAOP;AACA,4BARO,CAQP;AAhLwB;;;gCAyLD;AAAA,UAAfrT,KAAe,uEAAzBwT,KAAyB;;AACvB,UAAIxT,SAAS,CAAC,KAAd,WAA8B;AAC5B,uBAAe,KAAf,QAA4B;AAC1B,wCAD0B,qBAC1B;AAF0B;;AAAA;AADP;;AAOvB,UAAI,+BAA+B,KAAnC,aAAqD;AAAA;AAP9B;;AAYvB,sBAAe,KAAf,QAA4B;AAC1B,YAAIuS,UAAU,eADY,GACZ,CAAd;AACA,uCAA+BA,WAAWA,YAAZ,CAACA,GAAD,OAACA,GAFL,qBAE1B;AAdqB;AAzLC;;;;;;;;;;;;;;AA+MLc,wB,2DAArB,C;AACMI,kB,GAAKJ,WADwB,I;;oBAEjC,E;;;;;iDAAS,S;;;sBAEEI,KAAJ,I;;;;;iDACE,wCAAwC;AAC7CC,2BAAU,EAACD,eAAF,CAAEA,CAAD,EADmC,cACnC,EADmC;AAE7CE,0BAAQN,SAFqC,cAErCA;AAFqC,iBAAxC,EADa,mCACb,C;;;iDAKF,wCAAwC;AAC7CO,2BAAU,EAAE,MAAD,IAAC,EAAD,WAAC,CAAH,CAAG,CAAF,EADmC,cACnC,EADmC;AAE7CD,0BAAQN,SAFqC,cAErCA;AAFqC,iBAAxC,EAV0B,mCAU1B,C;;;;;;;;;;;;;;;;;;;;;qDAST,c,EAAA,a;;;;;;;;oBACE,c;;;;;kDAAqB,S;;;AAIrB,oBAAIF,wBAAJ,GAA+B;AAC7BU,mCAAiB;AACfhO,2BAAOgO,eADQ;AAEf/N,4BAAQ+N,eAFO;AAAA,mBAAjBA;AANgD;;AAW5CjB,0B,GAAakB,qCAX+B,cAW/BA,C;AAEfC,0B,GAAa;AACflO,yBAAO5V,WAAW4jB,uBAAX5jB,OADQ;AAEf6V,0BAAQ7V,WAAW4jB,wBAAX5jB,OAFO;AAAA,iB;AAKb+jB,+B,GAAkB;AACpBnO,yBAAO5V,WAAW4jB,8BAAX5jB,MADa;AAEpB6V,0BAAQ7V,WAAW4jB,+BAAX5jB,MAFY;AAAA,iB;AAKlBgkB,wB,GAvB8C,I;AAwB9ChU,oB,GAAOiU,sDACAA,yCAzBuC,iBAyBvCA,C;;AAEX,oBAAI,SAAS,EAAE,iBAAiBF,gBAAjB,UACAxL,iBAAiBwL,gBADhC,MACexL,CADF,CAAb,EAC0D;AAIlD2L,kCAJkD,GAI/B;AACvBtO,2BAAOgO,uBADgB;AAEvB/N,4BAAQ+N,wBAFe;AAAA,mBAJ+B;AAQlDO,gCARkD,GAQjC;AACrBvO,2BAAO5V,WAAW+jB,gBADG,KACd/jB,CADc;AAErB6V,4BAAQ7V,WAAW+jB,gBAFE,MAEb/jB;AAFa,mBARiC;;AAcxD,sBAAIA,SAASkkB,yBAAyBC,eAAlCnkB,gBACAA,SAASkkB,0BAA0BC,eAAnCnkB,UADJ,KACqE;AAEnEgQ,2BAAOiU,wCAF4D,iBAE5DA,CAAPjU;;AACA,8BAAU;AAGR8T,mCAAa;AACXlO,+BAAO5V,WAAWmkB,8BAAXnkB,OADI;AAEX6V,gCAAQ7V,WAAWmkB,+BAAXnkB,OAFG;AAAA,uBAAb8jB;AAIAC,wCAPQ,cAORA;AAViE;AAfb;AA5BR;;AAyDlD,0BAAU;AACRC,6BAAW,cAAc,wCACAhU,KADd,WACcA,EADd,QADH,IACG,CAAXgU;AA1DgD;;kDA8D3C,YAAY,CAChB,uCADgB,iBAEjB,cAAc,yCACC,qCADf,aAAc,CAAd,QAEc,iCAJG,IAEjB,CAFiB,YAMjB,cAAc,gDACC,0BADf,WAAc,CAAd,QAEcrB,0BARG,WAMjB,CANiB,CAAZ,OASC,iBAAmD;AAAA;AAAA;AAAA,sBAAjD,KAAiD,UAAjD,KAAiD;AAAA,sBAAlD,MAAkD,UAAlD,MAAkD;AAAA,sBAAlD,IAAkD;AAAA,sBAAlD,IAAkD;AAAA,sBAAnD,WAAmD;;AACzD,yBAAO,gBAAc,8CACC,iBADD,MAAd,UACgD;AACnD/M,2BAAOA,MAD4C,cAC5CA,EAD4C;AAEnDC,4BAAQA,OAF2C,cAE3CA,EAF2C;AAGnDuO,wBAHmD,EAGnDA,IAHmD;AAInDpU,wBAJmD,EAInDA,IAJmD;AAKnDqU,+BALmD,EAKnDA;AALmD,mBADhD,EAOF,uCACC,sBADD,MARoD,kBAClD,CAAP;AAxEgD,iBA8D3C,C;;;;;;;;;;;;;;;;;;;;;qDAyBT,S;;;;;;AACQC,0B,GAAaC,qCADO,SACPA,C;;oBACnB,U;;;;;kDAAiB,S;;;kDAGV,iDAAiD;AACpDC,wBAAMF,WAD8C,kBAC9CA,EAD8C;AAEpDG,wBAAMH,WAF8C,kBAE9CA;AAF8C,iBAAjD,EALmB,oBAKnB,C;;;;;;;;;;;;;;;;;;wCASTI,Y,EAAkC;AAChC,aAAO,cAAc,qCACC,uBADf,IAAc,CAAd,QAEeC,uBAHU,IACzB,CAAP;AAxUwB;;;;;;;;;;;;;;;;;;;;ACpC5B;;AAfA;;;;;;;;AAkBA,IAAMC,sBAlBN,IAkBA;;IAQA,U;;;AACE9U,+BAAsE;AAAA;;AAAA,QAAjDhb,QAAiD,uEAAtEgb,kCAAsE;AAAA,QAAjB5S,IAAiB,uEAAtE4S,kBAAsE;;AAAA;;AACpE,kBADoE,KACpE;AAEA,eAAW6M,eAHyD,IAGpE;AACA,wBAAoBA,wBAJgD,IAIpE;AACA,qBAAiBA,qBALmD,IAKpE;AACA,wBAAoBA,gCANgD,IAMpE;AACA,yBAAqBA,iCAP+C,IAOpE;AACA,sBAAkBA,8BARkD,IAQpE;AACA,mBAAeA,mBATqD,IASpE;AACA,4BAAwBA,4BAV4C,IAUpE;AACA,8BAA0BA,8BAX0C,IAWpE;AACA,0BAAsBA,0BAZ8C,IAYpE;AACA,oBAboE,QAapE;AACA,gBAdoE,IAcpE;AAGA,gDAA4C,YAAM;AAChD,YADgD,MAChD;AAlBkE,KAiBpE;AAIA,6CAAyC,YAAM;AAC7C,0BAD6C,EAC7C;AAtBkE,KAqBpE;AAIA,yCAAsCuE,WAAD,EAAO;AAC1C,cAAQA,EAAR;AACE;AACE,cAAIA,aAAa,MAAjB,WAAiC;AAC/B,yCAA4BA,EADG,QAC/B;AAFJ;;AADF;;AAME;AACE,gBADF,KACE;;AAPJ;AAAA;AA1BkE,KAyBpE;AAaA,sDAAkD,YAAM;AACtD,mCADsD,IACtD;AAvCkE,KAsCpE;AAIA,kDAA8C,YAAM;AAClD,mCADkD,KAClD;AA3CkE,KA0CpE;AAIA,gDAA4C,YAAM;AAChD,0BADgD,oBAChD;AA/CkE,KA8CpE;AAIA,iDAA6C,YAAM;AACjD,0BADiD,uBACjD;AAnDkE,KAkDpE;AAIA,8CAA0C,YAAM;AAC9C,0BAD8C,kBAC9C;AAvDkE,KAsDpE;AAIA,+BAA2B,uBA1DyC,IA0DzC,CAA3B;AA3Da;;;;4BA8DP;AACN,WADM,aACN;AA/Da;;;kCAkEf2D,I,EAAAA,Q,EAA8B;AAC5B,qCAA+B;AAC7BhnB,gBAD6B;AAE7BsE,YAF6B,EAE7BA,IAF6B;AAG7B+H,eAAO,eAHsB;AAI7BC,sBAJ6B;AAK7BC,uBAAe,mBALc;AAM7BC,oBAAY,gBANiB;AAO7BC,sBAAc,kBAPe;AAQ7BC,sBAR6B;AAAA,OAA/B;AAnEa;;;kCA+Efua,K,EAAAA,Q,EAAAA,Y,EAA6C;AAAA;;AAC3C,UAAIC,WADuC,KAC3C;AACA,UAAItsB,UAFuC,EAE3C;AACA,UAAIusB,SAHuC,EAG3C;;AAEA;AACE,aAAKC,+BAAL;AADF;;AAIE,aAAKA,+BAAL;AACED,mBADF,SACEA;AALJ;;AAQE,aAAKC,+BAAL;AACExsB,oBAAU,sCADZ,kBACY,CAAVA;AACAssB,qBAFF,IAEEA;AAVJ;;AAaE,aAAKE,+BAAL;AACE,wBAAc;AACZxsB,sBAAU,wCADE,gDACF,CAAVA;AADF,iBAGO;AACLA,sBAAU,2CADL,6CACK,CAAVA;AALJ;;AAbF;AAAA;;AAwBA,kDA7B2C,QA6B3C;AACA,iDA9B2C,MA8B3C;AAEAmK,oCAA+Bd,aAAD,EAAS;AACrC,qCADqC,GACrC;;AACA,eAFqC,YAErC;AAlCyC,OAgC3Cc;AAKA,8BArC2C,YAqC3C;AApHa;;;yCAuHsC;AAAA;;AAAA,qFAArDsiB,EAAqD;AAAA,8BAAhCC,OAAgC;AAAA,UAAhCA,OAAgC,6BAAlC,CAAkC;AAAA,4BAAnBC,KAAmB;AAAA,UAAnBA,KAAmB,2BAAlC,CAAkC;;AACnD,UAAI,CAAC,KAAL,kBAA4B;AAAA;AADuB;;AAInD,UAAIC,kBAAJ;AAAA,UAA0BrQ,QAJyB,mBAInD;;AAEA,UAAIoQ,QAAJ,GAAe;AACb,YAAIA,QAAJ,OAAmB;AAQfC,4BAAkB,wCAAwC;AACxDrQ,iBADgB,EAChBA;AADwD,WAAxC,EAEf,+BAA+B,qBAVnB,EAUZ,CAFe,CAAlBqQ;AARJ,eAYO;AASHA,4BAAkB,kCAAkC;AAClDF,mBADkD,EAClDA,OADkD;AAElDC,iBAFkD,EAElDA;AAFkD,WAAlC,EAGf,oCAAoC,qBAZpC,EAYA,CAHe,CAAlBC;AAtBS;AANoC;;AAmCnDziB,4CAAuCd,aAAD,EAAS;AAC7C,8CAD6C,GAC7C;;AACA,2DAAiD,CAFJ,KAE7C;;AAGA,eAL6C,YAK7C;AAxCiD,OAmCnDc;AA1Ja;;;2BAmKR;AACL,UAAI,CAAC,KAAL,QAAkB;AAChB,sBADgB,IAChB;AACA,wCAFgB,SAEhB;AACA,kCAHgB,QAGhB;AAJG;;AAML,qBANK,MAML;AACA,qBAPK,KAOL;;AAEA,WATK,YASL;AA5Ka;;;4BA+KP;AACN,UAAI,CAAC,KAAL,QAAkB;AAAA;AADZ;;AAIN,oBAJM,KAIN;AACA,yCALM,SAKN;AACA,6BANM,QAMN;AAEA,6CAAuC;AAAE/E,gBARnC;AAQiC,OAAvC;AAvLa;;;6BA0LN;AACP,UAAI,KAAJ,QAAiB;AACf,aADe,KACf;AADF,aAEO;AACL,aADK,IACL;AAJK;AA1LM;;;mCAqMA;AACb,UAAI,CAAC,KAAL,QAAkB;AAAA;AADL;;AASb,gCATa,gBASb;AAEA,UAAIynB,gBAAgB,SAXP,YAWb;AACA,UAAIC,uBAAuB,2BAZd,YAYb;;AAEA,UAAID,gBAAJ,sBAA0C;AAIxC,+BAJwC,gBAIxC;AAlBW;AArMA;;;;;;;;;;;;;;;;;;;;ACXjB;;AAfA;;AAAA;;;;;;;;AAmBA,IAAML,YAAY;AAChBO,SADgB;AAEhBC,aAFgB;AAGhBhT,WAHgB;AAIhBiT,WAJgB;AAAA,CAAlB;;AAOA,IAAMC,eA1BN,GA0BA;AACA,IAAMC,0BAA0B,CA3BhC,EA2BA;AACA,IAAMC,2BAA2B,CA5BjC,GA4BA;AAEA,IAAMC,0BAA0B;AAC9B,YAD8B;AAE9B,YAF8B;AAG9B,YAH8B;AAI9B,YAJ8B;AAK9B,YAL8B;AAM9B,YAN8B;AAO9B,YAP8B;AAQ9B,YAR8B;AAS9B,UAT8B;AAU9B,UAV8B;AAW9B,UAX8B;AAAA,CAAhC;AAcA,IAAIC,qBA5CJ,IA4CA;;AACA,yBAAyB;AACvB,MAAI,CAAJ,oBAAyB;AAEvB,QAAMC,UAAU7kB,0CAFO,EAEPA,CAAhB;AACA4kB,yBAAqB,qCAHE,GAGF,CAArBA;AAJqB;;AAMvB,SAAO,iCAAiC,cAAa;AACnD,WAAOD,wBAD4C,EAC5CA,CAAP;AAPqB,GAMhB,CAAP;AAnDF;;IAiEA,iB;;;AAIEhW,mCAA8D;AAAA,QAAlD,WAAkD,QAAlD,WAAkD;AAAA,6BAAnChb,QAAmC;AAAA,QAAnCA,QAAmC,8BAA9Dgb,kCAA8D;;AAAA;;AAC5D,wBAD4D,WAC5D;AACA,qBAF4D,QAE5D;;AAEA,SAJ4D,MAI5D;;AACAhb,gCAA4B,0BALgC,IAKhC,CAA5BA;AAToB;;;;gCAsCtBuuB,W,EAAyB;AACvB,UAAI,KAAJ,cAAuB;AACrB,aADqB,MACrB;AAFqB;;AAIvB,UAAI,CAAJ,aAAkB;AAAA;AAJK;;AAOvB,0BAPuB,WAOvB;;AACA,gCARuB,OAQvB;AA9CoB;;;mCAiDtB4C,G,EAAAA,K,EAA2B;AAAA;;AACzB,UAAI,CAAJ,OAAY;AAAA;AADa;;AAIzB,UAAMlqB,cAAc,KAJK,YAIzB;;AAEA,UAAI,wBAAwB,4BAA5B,KAA4B,CAA5B,EAAgE;AAC9D,2BAD8D,IAC9D;AAPuB;;AASzB,oBATyB,KASzB;;AACA,UAAIyP,QAAJ,0BAAsC;AACpC,4BAAoByZ,UADgB,OACpC;AAXuB;;AAczB,6CAAuC,YAAM;AAG3C,YAAI,CAAC,MAAD,gBACClpB,eAAe,uBADpB,aACwD;AAAA;AAJb;;AAO3C,cAP2C,YAO3C;;AAEA,YAAMmqB,gBAAgB,CAAC,MAToB,iBAS3C;AACA,YAAMC,iBAAiB,CAAC,CAAC,MAVkB,YAU3C;;AAEA,YAAI,MAAJ,cAAuB;AACrBhjB,uBAAa,MADQ,YACrBA;AACA,+BAFqB,IAErB;AAdyC;;AAgB3C,YAAIqI,QAAJ,QAAoB;AAGlB,+BAAoB,WAAW,YAAM;AACnC,kBADmC,UACnC;;AACA,iCAFmC,IAEnC;AAFkB,aAHF,YAGE,CAApB;AAHF,eAOO,IAAI,MAAJ,aAAsB;AAG3B,gBAH2B,UAG3B;AAHK,eAIA,IAAIA,QAAJ,aAAyB;AAC9B,gBAD8B,UAC9B;;AAIA,cAAI0a,iBAAiB,aAArB,cAA+C;AAC7C,kBAD6C,eAC7C;AAN4B;AAAzB,eAQA,IAAI1a,QAAJ,0BAAsC;AAG3C,8BAAoB;AAClB,kBADkB,UAClB;AADF,iBAEO;AACL,sCADK,IACL;AANyC;;AAQ3C,gBAR2C,eAQ3C;AARK,eASA;AACL,gBADK,UACL;AA7CyC;AAdpB,OAczB;AA/DoB;;;+CAiHoD;AAAA,gCAApDgI,OAAoD;AAAA,UAApDA,OAAoD,8BAAtD,IAAsD;AAAA,kCAApC1K,SAAoC;AAAA,UAApCA,SAAoC,gCAAxB,CAA9B,CAAsD;AAAA,mCAApBsd,UAAoB;AAAA,UAApBA,UAAoB,iCAAP,CAAnEC,CAA0E;;AACxE,UAAI,CAAC,KAAD,kBAAwB,CAA5B,SAAsC;AAAA;AAAtC,aAEO,IAAID,eAAe,CAAfA,KAAqBA,eAAe,eAAxC,UAAiE;AAAA;AAAjE,aAEA,IAAItd,cAAc,CAAdA,KAAoBA,cAAc,eAAtC,SAA8D;AAAA;AALG;;AAQxE,4BARwE,KAQxE;AAEA,UAAM8K,OAAO;AACXwC,aADW;AAEXG,cAFW;AAAA,OAAb;AAIA+P,mDAdwE,IAcxEA;AA/HoB;;;6BAkIb;AACP,+BADO,KACP;AACA,4BAFO,KAEP;AACA,0BAHO,IAGP;AACA,0BAJO,EAIP;AACA,gCALO,EAKP;AACA,oBANO,IAMP;AACA,uBAAiB;AACfC,iBAAS,CADM;AAEfC,kBAAU,CAFK;AAAA,OAAjB;AAIA,qBAAe;AACbD,iBADa;AAEbC,kBAFa;AAGbC,iBAHa;AAAA,OAAf;AAKA,kCAhBO,EAgBP;AACA,2BAjBO,EAiBP;AACA,gCAlBO,CAkBP;AACA,4BAnBO,IAmBP;AACA,iCAA2BtlB,cApBpB,IAoBoBA,CAA3B;AACA,4BArBO,IAqBP;AACA,yBAtBO,KAsBP;AACAgC,mBAAa,KAvBN,YAuBPA;AACA,0BAxBO,IAwBP;AAEA,kCA1BO,wCA0BP;AA5JoB;;;sCA0KtBujB,G,EAAAA,K,EAA8B;AAG5B,UAAI3X,gBAAgB,YAApB,OAAuC;AACrC,eADqC,IACrC;AAJ0B;;AAM5B;AACE;AACE,cAAM7Z,aAAa,yBADrB,CACE;AACA,cAAM+J,cAAc,KAFtB,YAEE;;AASA,cAAI/J,mBAAmBA,cAAc+J,YAAjC/J,cACAA,eAAe+J,YADf/J,QAEA,CAAC+J,0BAFL,UAEKA,CAFL,EAE4C;AAC1C,mBAD0C,IAC1C;AAdJ;;AAgBE,iBAjBJ,KAiBI;;AACF;AACE,iBAnBJ,KAmBI;AAnBJ;;AAqBA,aA3B4B,IA2B5B;AArMoB;;;oCA8MtB0nB,iB,EAAAA,O,EAAAA,a,EAA2D;AACzD,0DAAoD;AAClD,YAAMC,cAAcC,kBAD8B,YAC9BA,CAApB;AACA,YAAMC,WAAWD,kBAAkBhS,eAFe,CAEjCgS,CAAjB;;AAGA,YAAIhS,eAAegS,2BAAfhS,KACA+R,sBAAsBE,SAD1B,OAC0C;AACxCF,gCADwC,IACxCA;AACA,iBAFwC,IAExC;AARgD;;AAYlD,aAAK,IAAIvhB,IAAIwP,eAAb,GAA+BxP,KAA/B,GAAuCA,CAAvC,IAA4C;AAC1C,cAAM0hB,WAAWF,kBADyB,CACzBA,CAAjB;;AACA,cAAIE,SAAJ,SAAsB;AAAA;AAFoB;;AAK1C,cAAIA,iBAAiBA,SAAjBA,cAAwCH,YAA5C,OAA+D;AAAA;AALrB;;AAQ1C,cAAIG,iBAAiBA,SAAjBA,eACAH,oBAAoBA,YADxB,aACiD;AAC/CA,kCAD+C,IAC/CA;AACA,mBAF+C,IAE/C;AAXwC;AAZM;;AA0BlD,eA1BkD,KA0BlD;AA3BuD;;AAgCzDC,6BAAuB,gBAAe;AACpC,eAAO1R,YAAYC,EAAZD,QAAsBA,gBAAgBC,EAAtCD,cACsBA,UAAUC,EAFH,KACpC;AAjCuD,OAgCzDyR;;AAIA,WAAK,IAAIxhB,IAAJ,GAAW+U,MAAMyM,kBAAtB,QAAgDxhB,IAAhD,KAAyDA,CAAzD,IAA8D;AAC5D,YAAI2hB,6BAAJ,CAAIA,CAAJ,EAAqC;AAAA;AADuB;;AAI5DC,qBAAaJ,qBAJ+C,KAI5DI;AACAC,2BAAmBL,qBALyC,WAK5DK;AAzCuD;AA9MrC;;;kCA+PtBC,O,EAAAA,Q,EAAAA,M,EAAyC;AACvC,UAAIC,WAAJ,GAAkB;AAChB,YAAM1P,QAAQ4K,mBADE,QACFA,CAAd;AACA,YAAMtN,QAAQsN,mBAAmB8E,WAFjB,CAEF9E,CAAd;;AACA,YAAI+E,iDAA4BA,sCAAhC,KAAgCA,CAAhC,EAAyD;AACvD,iBADuD,KACvD;AAJc;AADqB;;AAQvC,UAAMC,SAAUF,oBARuB,CAQvC;;AACA,UAAIE,SAAUhF,iBAAd,GAAmC;AACjC,YAAM3K,OAAO2K,mBADoB,MACpBA,CAAb;;AACA,YAAMtN,SAAQsN,mBAAmBgF,SAFA,CAEnBhF,CAAd;;AACA,YAAI+E,gDAA2BA,sCAA/B,MAA+BA,CAA/B,EAAwD;AACtD,iBADsD,KACtD;AAJ+B;AATI;;AAgBvC,aAhBuC,IAgBvC;AA/QoB;;;0CAkRtBE,K,EAAAA,S,EAAAA,W,EAAAA,U,EAAiE;AAC/D,UAAMN,UADyD,EAC/D;AACA,UAAMO,WAAWtd,MAF8C,MAE/D;AAEA,UAAIsc,WAAW,CAJgD,QAI/D;;AACA,mBAAa;AACXA,mBAAWiB,2BAA2BjB,WAD3B,QACAiB,CAAXjB;;AACA,YAAIA,aAAa,CAAjB,GAAqB;AAAA;AAFV;;AAKX,YAAInc,cAAc,CAAC,0CAAnB,QAAmB,CAAnB,EAAwE;AAAA;AAL7D;;AAQX4c,qBARW,QAQXA;AAb6D;;AAe/D,qCAf+D,OAe/D;AAjSoB;;;wCAoStBS,K,EAAAA,S,EAAAA,W,EAAAA,U,EAA+D;AAC7D,UAAMb,oBADuD,EAC7D;AAGA,UAAMc,aAAazd,YAJ0C,MAI1CA,CAAnB;;AACA,WAAK,IAAI7E,IAAJ,GAAW+U,MAAMuN,WAAtB,QAAyCtiB,IAAzC,KAAkDA,CAAlD,IAAuD;AACrD,YAAMuiB,WAAWD,WADoC,CACpCA,CAAjB;AACA,YAAME,cAAcD,SAFiC,MAErD;AAEA,YAAIpB,WAAW,CAJsC,WAIrD;;AACA,qBAAa;AACXA,qBAAWiB,8BAA8BjB,WAD9B,WACAiB,CAAXjB;;AACA,cAAIA,aAAa,CAAjB,GAAqB;AAAA;AAFV;;AAKX,cAAInc,cACA,CAAC,0CADL,WACK,CADL,EAC6D;AAAA;AANlD;;AAUXwc,iCAAuB;AACrBiB,mBADqB;AAErBC,yBAFqB;AAGrBC,qBAHqB;AAAA,WAAvBnB;AAfmD;AALM;;AA6B7D,2CA7B6D,EA6B7D;AACA,qCA9B6D,EA8B7D;;AAIA,8CAAwC,kBAAxC,SAAwC,CAAxC,EACE,wBAnC2D,SAmC3D,CADF;AAtUoB;;;oCA0UtBoB,S,EAA2B;AACzB,UAAIR,cAAc,mBADO,SACP,CAAlB;AACA,UAAIvd,QAAQ,KAFa,MAEzB;AAFyB,yBAG4B,KAH5B;AAAA,UAGnB,aAHmB,gBAGnB,aAHmB;AAAA,UAGnB,UAHmB,gBAGnB,UAHmB;AAAA,UAGnB,YAHmB,gBAGnB,YAHmB;;AAKzB,UAAIA,iBAAJ,GAAwB;AAAA;AALC;;AAUzB,UAAI,CAAJ,eAAoB;AAClBud,sBAAcA,YADI,WACJA,EAAdA;AACAvd,gBAAQA,MAFU,WAEVA,EAARA;AAZuB;;AAezB,wBAAkB;AAChB,kEADgB,UAChB;AADF,aAEO;AACL,gEADK,UACL;AAlBuB;;AAuBzB,UAAI,YAAJ,cAA8B;AAC5B,yBAD4B,SAC5B;AAxBuB;;AA0BzB,UAAI,wBAAJ,WAAuC;AACrC,8BADqC,IACrC;;AACA,aAFqC,cAErC;AA5BuB;;AAgCzB,UAAMge,mBAAmB,6BAhCA,MAgCzB;;AACA,UAAIA,mBAAJ,GAA0B;AACxB,mCADwB,gBACxB;;AACA,aAFwB,qBAExB;AAnCuB;AA1UL;;;mCAiXP;AAAA;;AAEb,UAAI,mCAAJ,GAA0C;AAAA;AAF7B;;AAMb,UAAIrnB,UAAU+B,QAND,OAMCA,EAAd;;AANa,iCAOJyC,CAPI,EAOGM,EAPH;AAQX,YAAMwiB,wBADwD,wCAC9D;AACA,yCAA+BA,sBAF+B,OAE9D;AAEAtnB,kBAAU,aAAa,YAAM;AAC3B,iBAAO,4BAA0BwE,IAA1B,QAAuCzB,iBAAD,EAAa;AACxD,mBAAOA,uBAAuB;AAC5BwkB,mCAFsD;AAC1B,aAAvBxkB,CAAP;AADK,kBAIEykB,qBAAD,EAAiB;AACvB,gBAAMC,YAAYD,YADK,KACvB;AACA,gBAAME,SAFiB,EAEvB;;AAEA,iBAAK,IAAIC,IAAJ,GAAWC,KAAKH,UAArB,QAAuCE,IAAvC,IAA+CA,CAA/C,IAAoD;AAClDD,0BAAYD,aADsC,GAClDC;AALqB;;AASvB,sCAAwBG,UAAUH,YATX,EASWA,CAAVG,CAAxB;AACAP,0CAVuB,CAUvBA;AAdK,aAeHnqB,gBAAD,EAAY;AACbD,wEAAqDsH,IAArDtH,IADa,MACbA;AAEA,sCAHa,EAGb;AACAoqB,0CAJa,CAIbA;AApByB,WACpB,CAAP;AAL4D,SAIpD,CAAVtnB;AAXW;;AAOb,WAAK,IAAIwE,IAAJ,GAAWM,KAAK,kBAArB,YAAmDN,IAAnD,IAA2DA,CAA3D,IAAgE;AAAA,cAAvDA,CAAuD,EAAhDM,EAAgD;AAPnD;AAjXO;;;gCAsZtBgjB,K,EAAmB;AACjB,UAAI,uBAAuB,2BAA3B,OAA6D;AAI3D,iCAAyB7S,QAJkC,CAI3D;AALe;;AAQjB,wDAAkD;AAChDjY,gBADgD;AAEhDiL,mBAFgD;AAAA,OAAlD;AA9ZoB;;;sCAoaJ;AAChB,wDAAkD;AAChDjL,gBADgD;AAEhDiL,mBAAW,CAFqC;AAAA,OAAlD;AAraoB;;;iCA2aT;AAAA;;AACX,UAAMxT,WAAW,YADN,YACX;AACA,UAAMszB,mBAAmB,yBAFd,CAEX;AACA,UAAM3zB,WAAW,kBAHN,UAGX;AAEA,+BALW,IAKX;;AAEA,UAAI,KAAJ,aAAsB;AAEpB,2BAFoB,KAEpB;AACA,iCAAyB,0BAA0B,CAH/B,CAGpB;AACA,+BAJoB,gBAIpB;AACA,gCALoB,IAKpB;AACA,+BANoB,KAMpB;AACA,8BAPoB,IAOpB;AACA,mCARoB,CAQpB;AACA,yCAToB,CASpB;AACA,kCAVoB,CAUpB;;AAEA,aAZoB,eAYpB;;AAEA,aAAK,IAAIoQ,IAAT,GAAgBA,IAAhB,UAA8BA,CAA9B,IAAmC;AAEjC,cAAI,gCAAJ,MAA0C;AAAA;AAFT;;AAKjC,wCALiC,IAKjC;;AACA,4CAAmCkhB,iBAAD,EAAa;AAC7C,mBAAO,2BADsC,OACtC,CAAP;;AACA,mCAF6C,OAE7C;AAR+B,WAMjC;AApBkB;AAPX;;AAmCX,UAAI,gBAAJ,IAAwB;AACtB,4BAAoBtB,UADE,KACtB;;AADsB;AAnCb;;AAwCX,UAAI,KAAJ,gBAAyB;AAAA;AAxCd;;AA4CX,UAAM4D,SAAS,KA5CJ,OA4CX;AAEA,4BA9CW,QA8CX;;AAGA,UAAIA,oBAAJ,MAA8B;AAC5B,YAAMC,iBAAiB,kBAAkBD,OAAlB,SADK,MAC5B;;AACA,YAAK,aAAaA,sBAAd,cAAC,IACAvzB,YAAYuzB,kBADjB,GACuC;AAGrCA,4BAAmBvzB,WAAWuzB,kBAAXvzB,IACWuzB,kBAJO,CAGrCA;;AAEA,4BALqC,IAKrC;;AALqC;AAHX;;AAa5B,gCAb4B,QAa5B;AA9DS;;AAiEX,WAjEW,cAiEX;AA5eoB;;;kCA+etBE,O,EAAuB;AACrB,UAAMF,SAAS,KADM,OACrB;AACA,UAAMG,aAAa/B,QAFE,MAErB;AACA,UAAM3xB,WAAW,YAHI,YAGrB;;AAEA,sBAAgB;AAEduzB,0BAAmBvzB,WAAW0zB,aAAX1zB,IAFL,CAEduzB;;AACA,0BAHc,IAGd;;AACA,eAJc,IAId;AATmB;;AAYrB,8BAZqB,QAYrB;;AACA,UAAIA,OAAJ,SAAoB;AAClBA,0BADkB,IAClBA;;AACA,YAAI,sBAAJ,GAA6B;AAE3B,4BAF2B,KAE3B;;AAGA,iBAL2B,IAK3B;AAPgB;AAbC;;AAwBrB,aAxBqB,KAwBrB;AAvgBoB;;;qCA0gBL;AACf,UAAI,wBAAJ,MAAkC;AAChC9qB,sBADgC,qCAChCA;AAFa;;AAKf,UAAIkpB,UALW,IAKf;;AACA,SAAG;AACD,YAAMV,UAAU,aADf,OACD;AACAU,kBAAU,kBAFT,OAES,CAAVA;;AACA,YAAI,CAAJ,SAAc;AAGZ,gCAHY,OAGZ;AAHY;AAHb;AAAH,eASS,CAAC,mBAfK,OAeL,CATV;AAhhBoB;;;uCA4hBtBgC,Q,EAA6B;AAC3B,UAAMJ,SAAS,KADY,OAC3B;AACA,UAAM5zB,WAAW,kBAFU,UAE3B;AACA4zB,uBAAkBvzB,WAAWuzB,iBAAXvzB,IAAgCuzB,iBAHvB,CAG3BA;AACAA,wBAJ2B,IAI3BA;AAEA,WAN2B,cAM3B;;AAEA,UAAIA,8BAA8BA,iBAAlC,GAAsD;AACpDA,yBAAkBvzB,WAAWL,WAAXK,IADkC,CACpDuzB;AACAA,yBAFoD,IAEpDA;AAVyB;AA5hBP;;;mCA0iBM;AAAA,UAAfK,KAAe,uEAA5BC,KAA4B;AAC1B,UAAIpa,QAAQkW,UADc,SAC1B;AACA,UAAMwB,UAAU,aAFU,OAE1B;AACA,6BAH0B,KAG1B;;AAEA,iBAAW;AACT,YAAM2C,eAAe,eADZ,OACT;AACA,iCAAyB,aAFhB,OAET;AACA,kCAA0B,aAHjB,QAGT;AACAra,gBAAS0X,UAAUxB,UAAVwB,UAA8BxB,UAJ9B,KAITlW;;AAGA,YAAIqa,iBAAiB,CAAjBA,KAAuBA,iBAAiB,eAA5C,SAAoE;AAClE,2BADkE,YAClE;AARO;AALe;;AAiB1B,iCAA2B,YAjBD,YAiB1B;;AACA,UAAI,2BAA2B,CAA/B,GAAmC;AAEjC,8BAFiC,IAEjC;;AAEA,yBAAiB,eAJgB,OAIjC;AAtBwB;AA1iBN;;;oCAokBtBC,G,EAAqB;AAAA;;AACnB,UAAMttB,cAAc,KADD,YACnB;;AAIA,6CAAuC,YAAM;AAE3C,YAAI,CAAC,OAAD,gBACCA,eAAe,wBADpB,aACwD;AAAA;AAHb;;AAO3C,YAAI,OAAJ,cAAuB;AACrBoH,uBAAa,OADQ,YACrBA;AACA,gCAFqB,IAErB;AATyC;;AAe3C,YAAI,OAAJ,gBAAyB;AACvB,kCADuB,IACvB;AACA,+BAFuB,IAEvB;AAjByC;;AAoB3C,8BAAoB8hB,UApBuB,KAoB3C;;AAEA,mCAtB2C,KAsB3C;;AACA,eAvB2C,eAuB3C;AA5BiB,OAKnB;AAzkBoB;;;2CAomBC;AAAA,4BACU,KADV;AAAA,UACf,OADe,mBACf,OADe;AAAA,UACf,QADe,mBACf,QADe;AAErB,UAAIE,UAAJ;AAAA,UAAiBC,QAAQ,KAFJ,kBAErB;;AACA,UAAIoB,aAAa,CAAjB,GAAqB;AACnB,aAAK,IAAInhB,IAAT,GAAgBA,IAAhB,SAA6BA,CAA7B,IAAkC;AAChC8f,qBAAY,wBAAwB,qBAAzB,MAAC,IADoB,CAChCA;AAFiB;;AAInBA,mBAAWqB,WAJQ,CAInBrB;AAPmB;;AAYrB,UAAIA,eAAeA,UAAnB,OAAoC;AAClCA,kBAAUC,QADwB,CAClCD;AAbmB;;AAerB,aAAO;AAAEA,eAAF,EAAEA,OAAF;AAAWC,aAAX,EAAWA;AAAX,OAAP;AAnnBoB;;;4CAsnBE;AACtB,wDAAkD;AAChDvnB,gBADgD;AAEhD4M,sBAAc,KAFkC,oBAElC;AAFkC,OAAlD;AAvnBoB;;;mCA6nBtB6e,K,EAAAA,Q,EAAgC;AAC9B,wDAAkD;AAChDzrB,gBADgD;AAEhDkR,aAFgD,EAEhDA,KAFgD;AAGhDzZ,gBAHgD,EAGhDA,QAHgD;AAIhDmV,sBAAc,KAJkC,oBAIlC;AAJkC,OAAlD;AA9nBoB;;;wBAYC;AACrB,aAAO,KADc,iBACrB;AAboB;;;wBAgBJ;AAChB,aAAO,KADS,YAChB;AAjBoB;;;wBAoBE;AACtB,aAAO,KADe,kBACtB;AArBoB;;;wBAwBP;AACb,aAAO,KADM,SACb;AAzBoB;;;wBA4BV;AACV,aAAO,KADG,MACV;AA7BoB;;;wBAkKT;AACX,UAAI,sBAAsB,KAA1B,WAA0C;AACxC,yBAAiB,YADuB,KACxC;AACA,gCAAwBie,UAAU,YAFM,KAEhBA,CAAxB;AAHS;;AAKX,aAAO,KALI,gBAKX;AAvKoB;;;;;;;;;;;;;;;;;;;;AClDxB,IAAMa,gBAAgB;AACpBC,SADoB;AAEpBC,gBAFoB;AAGpBC,SAHoB;AAIpBC,cAJoB;AAKpBC,mBALoB;AAMpBC,mBANoB;AAOpBC,6BAPoB;AAQpBC,eARoB;AAAA,CAAtB;;;AAWA,wCAAwC;AACtC,SAAOC,WAD+B,MACtC;AA3BF;;AA8BA,2BAA2B;AACzB,SAAQ,YAAD,MAAC,MADiB,CACzB;AA/BF;;AAkCA,gCAAgC;AAC9B,SAAQA,oBAA8BA,YAA/B,IAACA,IACAA,oBAA8BA,YAFR,IAC9B;AAnCF;;AAuCA,gCAAgC;AAC9B,SAAQA,oBAA8BA,YADR,IAC9B;AAxCF;;AA2CA,gCAAgC;AAC9B,SAAQA,qBAAmCA,aAAnCA,QACAA,aADAA,QACgCA,aAFV,IAC9B;AA5CF;;AAgDA,yBAAyB;AACvB,SAAQA,sBAAsBA,YAAvB,MAACA,IACAA,sBAAsBA,YAFP,MACvB;AAjDF;;AAqDA,8BAA8B;AAC5B,SAAQA,sBAAsBA,YADF,MAC5B;AAtDF;;AAyDA,8BAA8B;AAC5B,SAAQA,sBAAsBA,YADF,MAC5B;AA1DF;;AA6DA,uCAAuC;AACrC,SAAQA,sBAAsBA,YADO,MACrC;AA9DF;;AAiEA,0BAA0B;AACxB,SAAQ,YAAD,MAAC,MADgB,MACxB;AAlEF;;AAyEA,oCAAoC;AAClC,MAAIC,qBAAJ,QAAIA,CAAJ,EAAoC;AAClC,QAAIC,QAAJ,QAAIA,CAAJ,EAAuB;AACrB,UAAIC,aAAJ,QAAIA,CAAJ,EAA4B;AAC1B,eAAOZ,cADmB,KAC1B;AADF,aAEO,IAAIa,0BAA0BC,aAA1BD,QAA0BC,CAA1BD,IACAJ,aADJ,MAC0C;AAC/C,eAAOT,cADwC,YAC/C;AALmB;;AAOrB,aAAOA,cAPc,KAOrB;AAPF,WAQO,IAAIe,OAAJ,QAAIA,CAAJ,EAAsB;AAC3B,aAAOf,cADoB,WAC3B;AADK,WAEA,IAAIS,aAAJ,MAAoC;AACzC,aAAOT,cADkC,KACzC;AAZgC;;AAclC,WAAOA,cAd2B,YAclC;AAfgC;;AAkBlC,MAAIgB,MAAJ,QAAIA,CAAJ,EAAqB;AACnB,WAAOhB,cADY,UACnB;AADF,SAEO,IAAIiB,WAAJ,QAAIA,CAAJ,EAA0B;AAC/B,WAAOjB,cADwB,eAC/B;AADK,SAEA,IAAIkB,WAAJ,QAAIA,CAAJ,EAA0B;AAC/B,WAAOlB,cADwB,eAC/B;AADK,SAEA,IAAImB,oBAAJ,QAAIA,CAAJ,EAAmC;AACxC,WAAOnB,cADiC,yBACxC;AAzBgC;;AA2BlC,SAAOA,cA3B2B,YA2BlC;AApGF,C;;;;;;;;;;;;;;;;ACeA;;;;;;;;;;;;;;;;;;AAKA,IAAMoB,sBApBN,IAoBA;AAEA,IAAMC,6BAtBN,EAsBA;AAEA,IAAMC,0BAxBN,IAwBA;;AAwBA,0BAA0B;AACxB,SAAOl2B,kBADiB,IACxB;AAjDF;;AAoDA,uCAAuC;AACrC,MAAIuJ,OAAO4sB,SAASC,cAATD,cAD0B,CAC1BA,CAAX;AACA,MAAItiB,SAASpK,gCAFwB,IAExBA,CAAb;AAEA,MAAI0F,OAAO0E,cAJ0B,CAIrC;;AACA,MAAI,EAAE,0BAA0B1E,OAA1B,KAAsCA,QAAQ7E,YAApD,UAAI,CAAJ,EAA6E;AAC3E6E,WAD2E,IAC3EA;AANmC;;AAQrC,SAAO;AAAE5F,QAAF,EAAEA,IAAF;AAAQ4F,QAAR,EAAQA,IAAR;AAAcI,cAAUjF,YAAxB;AAAA,GAAP;AA5DF;;IA+DA,U;;;AAIE6Q,4BAAwC;AAAA;;AAAA,QAA5B,WAA4B,QAA5B,WAA4B;AAAA,QAAxCA,QAAwC,QAAxCA,QAAwC;;AAAA;;AACtC,uBADsC,WACtC;AACA,oBAAgBhb,YAFsB,kCAEtC;AAEA,uBAJsC,KAItC;AACA,2BALsC,IAKtC;AACA,2BANsC,IAMtC;AAEA,wBAAoBqM,cARkB,IAQlBA,CAApB;AACA,uCATsC,KAStC;AACA,0BAVsC,KAUtC;AAIA,gDAA6CwH,aAAD,EAAS;AACnD,0CAAmCA,cAAcA,IADE,gBACnD;AAfoC,KActC;AAGA,oCAAiCA,aAAD,EAAS;AACvC,6BAAsB,CAAC,CAACA,IADe,UACvC;AAlBoC,KAiBtC;AArBa;;;;sCA+BuD;AAAA,UAA3D,WAA2D,SAA3D,WAA2D;AAAA,qCAA5CzC,YAA4C;AAAA,UAA5CA,YAA4C,mCAA3D,KAA2D;AAAA,kCAAtBC,SAAsB;AAAA,UAAtBA,SAAsB,gCAAtE6kB,KAAsE;;AACpE,UAAI,gBAAgB,uBAApB,UAAqD;AACnDjtB,sBADmD,sEACnDA;AADmD;AADe;;AAMpE,UAAIktB,gBAAgB,oBAAoB,qBAN4B,WAMpE;AACA,yBAPoE,WAOpE;AACA,wBAAmB9kB,cARiD,IAQpE;;AAEA,UAAI,CAAC,KAAL,aAAuB;AACrB,aADqB,WACrB;AAXkE;;AAapE,UAAI4I,QAAQ/U,eAbwD,KAapE;AAEA,yBAfoE,IAepE;AACA,6BAhBoE,IAgBpE;AACA,6BAjBoE,IAiBpE;AAEA,iCAnBoE,KAmBpE;AACA,8BApBoE,CAoBpE;AACA,0BAAoB+wB,cArBgD,EAqBpE;AACA,iCAtBoE,CAsBpE;AAEA,kBAAY,eAxBwD,CAwBpE;AACA,0BAzBoE,IAyBpE;AACA,uBA1BoE,IA0BpE;;AAEA,UAAI,CAAC,0BAAD,IAAC,CAAD,IAAJ,cAA0E;AAAA,gCACxCG,iBAAiB,KADuB,WACxCA,CADwC;AAAA,YACpE,IADoE,qBACpE,IADoE;AAAA,YACpE,IADoE,qBACpE,IADoE;AAAA,YACpE,QADoE,qBACpE,QADoE;;AAGxE,YAAI,0BAAJ,cAA4C;AAE1C,yCAF0C,IAE1C;;AAF0C;AAH4B;;AAUxE,iCAAyB;AAAEhtB,cAAF,EAAEA,IAAF;AAAQ4F,cAAR,EAAQA,IAAR;AAAcI,kBAAd,EAAcA;AAAd,SAAzB,EAVwE,IAUxE;;AAVwE;AA5BN;;AA6CpE,UAAIinB,cAAcpc,MA7CkD,WA6CpE;;AACA,6CAAuCA,MAAvC,KA9CoE,IA8CpE;;AAEA,UAAI,YAAY,KAAhB,SAA8B;AAC5B,uBAAe,KADa,IAC5B;AAjDkE;;AAoDpE,UAAIoc,yBAAJ,WAAwC;AACtC,+BAAuBA,YADe,QACtC;AArDkE;;AAuDpE,UAAIA,YAAJ,MAAsB;AACpB,+BAAuB/kB,eAAe+kB,YADlB,IACG/kB,CAAvB;AAKA,iCANoB,IAMpB;AANF,aAOO,IAAI+kB,YAAJ,MAAsB;AAC3B,+BAAuBA,YADI,IAC3B;AADK,aAEA,IAAIA,YAAJ,MAAsB;AAE3B,8CAA+BA,YAFJ,IAE3B;AAlEkE;AA/BvD;;;gCAyGuC;AAAA;;AAAA,kCAA/CC,SAA+C;AAAA,UAA/CA,SAA+C,gCAAjD,IAAiD;AAAA,UAAjD,YAAiD,SAAjD,YAAiD;AAAA,UAAtDC,UAAsD,SAAtDA,UAAsD;;AACpD,UAAI,CAAC,KAAL,aAAuB;AAAA;AAD6B;;AAIpD,UAAID,aAAa,qBAAjB,UAAgD;AAC9CrtB,sBAAc,kCADgC,SAChC,2CAAdA;AAD8C;AAAhD,aAIO,IAAI,CAACyb,cAAL,YAAKA,CAAL,EAAkC;AACvCzb,sBAAc,kCADyB,YACzB,8CAAdA;AADuC;AAAlC,aAIA,IAAI,EAAE,gCACA7I,aADA,KACkBA,cAAc,iBADtC,UAAI,CAAJ,EACoE;AAGzE,YAAIA,uBAAuB,KAA3B,cAA8C;AAC5C6I,wBAAc,kCAD8B,UAC9B,4CAAdA;AAD4C;AAH2B;AAbvB;;AAuBpD,UAAIG,OAAOktB,aAAahlB,eAvB4B,YAuB5BA,CAAxB;;AACA,UAAI,CAAJ,MAAW;AAAA;AAxByC;;AA8BpD,UAAIklB,eA9BgD,KA8BpD;;AACA,UAAI,sBACC,kBAAkB,kBAAlB,eACAC,kBAAkB,kBAAlBA,MAFL,YAEKA,CAFD,CAAJ,EAE+D;AAM7D,YAAI,kBAAJ,MAA4B;AAAA;AANiC;;AAS7DD,uBAT6D,IAS7DA;AA1CkD;;AA4CpD,UAAI,4BAA4B,CAAhC,cAA+C;AAAA;AA5CK;;AAgDpD,+BAAyB;AACvBE,cADuB;AAEvBttB,YAFuB,EAEvBA,IAFuB;AAGvB4F,cAHuB;AAIvBI,kBAAU,iBAJa;AAAA,OAAzB,EAhDoD,YAgDpD;;AAOA,UAAI,CAAC,KAAL,qBAA+B;AAG7B,mCAH6B,IAG7B;AAGAtB,+BAAuB,YAAM;AAC3B,uCAD2B,KAC3B;AAP2B,SAM7BA;AA7DkD;AAzGvC;;;0CA+KO;AACpB,UAAI,CAAC,KAAD,eAAqB,KAAzB,qBAAmD;AAAA;AAD/B;;AAIpB,WAJoB,uBAIpB;AAnLa;;;2BA0LR;AACL,UAAI,CAAC,KAAD,eAAqB,KAAzB,qBAAmD;AAAA;AAD9C;;AAIL,UAAImM,QAAQ/U,eAJP,KAIL;;AACA,UAAI,6BAA6B+U,YAAjC,GAAgD;AAC9C/U,uBAD8C,IAC9CA;AANG;AA1LQ;;;8BAwML;AACR,UAAI,CAAC,KAAD,eAAqB,KAAzB,qBAAmD;AAAA;AAD3C;;AAIR,UAAI+U,QAAQ/U,eAJJ,KAIR;;AACA,UAAI,6BAA6B+U,YAAY,KAA7C,SAA2D;AACzD/U,uBADyD,OACzDA;AANM;AAxMK;;;wCA8NfyxB,W,EAAuD;AAAA,UAAtBH,YAAsB,uEAAvDG,KAAuD;AACrD,UAAIC,gBAAgBJ,gBAAgB,CAAC,KADgB,YACrD;AACA,UAAIK,WAAW;AACbhnB,qBAAa,KADA;AAEbinB,aAAKF,gBAAgB,KAAhBA,OAA6B,YAFrB;AAGbP,mBAHa,EAGbA;AAHa,OAAf;;AAWA,6CAAuCQ,SAbc,GAarD;;AAEA,UAfqD,MAerD;;AACA,UAAI,kCAAkCR,YAAtC,MAAwD;AACtD,YAAM5tB,UAAU5I,kCADsC,CACtCA,CAAhB;;AACA,YAAI,CAAC4I,mBAAL,SAAKA,CAAL,EAAoC;AAClCsuB,6BAAS,OAATA,cAAuBV,YADW,IAClCU;AAHoD;AAhBH;;AAsBrD,yBAAmB;AACjB,oBAAY;AACV7xB,oDADU,MACVA;AADF,eAEO;AACLA,gDADK,EACLA;AAJe;AAAnB,aAMO;AACL,uBAAe,KADV,IACL;;AACA,oBAAY;AACVA,iDADU,MACVA;AADF,eAEO;AACLA,6CADK,EACLA;AALG;AA5B8C;AA9NxC;;;8CA6Q4B;AAAA,UAAnB8xB,SAAmB,uEAA3CC,KAA2C;;AACzC,UAAI,CAAC,KAAL,WAAqB;AAAA;AADoB;;AAIzC,UAAIC,WAAW,KAJ0B,SAIzC;;AACA,qBAAe;AACbA,mBAAW7qB,cAAcA,cAAdA,IAAcA,CAAdA,EAAmC,KADjC,SACFA,CAAX6qB;AACAA,6BAFa,IAEbA;AAPuC;;AAUzC,UAAI,CAAC,KAAL,cAAwB;AACtB,iCADsB,QACtB;;AADsB;AAViB;;AAczC,UAAI,kBAAJ,WAAiC;AAE/B,2CAF+B,IAE/B;;AAF+B;AAdQ;;AAmBzC,UAAI,2BAA2BA,SAA/B,MAA8C;AAAA;AAnBL;;AAsBzC,UAAI,CAAC,kBAAD,SACC,mCACA,4BAFL,0BAAI,CAAJ,EAE8D;AAAA;AAxBrB;;AAgCzC,UAAIV,eAhCqC,KAgCzC;;AACA,UAAI,0BAA0BU,SAA1B,SACA,0BAA0BA,SAD9B,MAC6C;AAM3C,YAAI,0BAA0B,CAAC,kBAA/B,OAAwD;AAAA;AANb;;AAU3CV,uBAV2C,IAU3CA;AA5CuC;;AA8CzC,yCA9CyC,YA8CzC;AA3Ta;;;kCAiUfW,K,EAA0C;AAAA,UAArBC,WAAqB,uEAA1CD,KAA0C;;AACxC,UAAI,CAAJ,OAAY;AACV,eADU,KACV;AAFsC;;AAIxC,UAAIld,sBAAsB,KAA1B,aAA4C;AAC1C,yBAAiB;AAGf,cAAI,OAAOA,MAAP,4BACAA,6BAA6B,iBADjC,QAC0D;AACxD,mBADwD,KACxD;AALa;;AAAA,sCAOKod,6BAPL,YAOKA,CAPL;AAAA;AAAA,cAOT,SAPS;;AAQf,cAAI,cAAcC,mBAAlB,UAA+C;AAC7C,mBAD6C,KAC7C;AATa;AAAjB,eAWO;AAGL,iBAHK,KAGL;AAfwC;AAJJ;;AAsBxC,UAAI,CAAC7T,iBAAiBxJ,MAAlB,GAACwJ,CAAD,IAAgCxJ,YAApC,GAAmD;AACjD,eADiD,KACjD;AAvBsC;;AAyBxC,UAAIA,8BAA8B,QAAOA,MAAP,iBAAlC,UAAyE;AACvE,eADuE,KACvE;AA1BsC;;AA4BxC,aA5BwC,IA4BxC;AA7Va;;;yCAmWfsd,W,EAAAA,G,EAAgE;AAAA,UAAzBC,eAAyB,uEAAhED,KAAgE;;AAC9D,UAAI,KAAJ,wBAAiC;AAI/BlpB,qBAAa,KAJkB,sBAI/BA;AACA,sCAL+B,IAK/B;AAN4D;;AAQ9D,UAAImpB,kCAAkCnB,YAAtC,WAA6D;AAG3D,eAAOA,YAHoD,SAG3D;AAX4D;;AAa9D,0BAb8D,WAa9D;AACA,kBAd8D,GAc9D;AAEA,iCAhB8D,CAgB9D;AAnXa;;;2CAyXgB;AAAA;;AAAA,UAA/BoB,QAA+B,SAA/BA,QAA+B;;AAC7B,UAAI,KAAJ,wBAAiC;AAC/BppB,qBAAa,KADkB,sBAC/BA;AACA,sCAF+B,IAE/B;AAH2B;;AAM7B,uBAAiB;AACfjF,cAAM,kDACIqL,SADJ,cAC4BA,iCAFnB,CAEmBA,CAFnB;AAGfzF,cAAM,iBAHS;AAIf4T,eAAOnO,SAJQ;AAKfrF,kBAAUqF,SALK;AAAA,OAAjB;;AAQA,UAAI,KAAJ,qBAA8B;AAAA;AAdD;;AAkB7B,UAAIqhB,kCAAkC,KAAlCA,kBACA,KADAA,gBACqB,CAAC,kBAD1B,MACkD;AAShD,aATgD,mBAShD;AA5B2B;;AA+B7B,UAAIC,0BAAJ,GAAiC;AAgB/B,sCAA8B,WAAW,YAAM;AAC7C,cAAI,CAAC,OAAL,qBAA+B;AAC7B,2CAD6B,IAC7B;AAF2C;;AAI7C,0CAJ6C,IAI7C;AAJ4B,WAhBC,uBAgBD,CAA9B;AA/C2B;AAzXhB;;;qCAobO;AAAA;;AAAA,UAAtB2B,KAAsB,SAAtBA,KAAsB;AACpB,UAAIC,UAAU1B,cAAd;AAAA,UAAgC2B,cAAc,sBAD1B,OACpB;AACA,0BAFoB,OAEpB;;AAEA,UAAI,UAAJ,OAE0D;AAExD,aAFwD,IAExD;;AAFwD,iCAIxBxB,iBAAiB,KAJO,WAIxBA,CAJwB;AAAA,YAIpD,IAJoD,sBAIpD,IAJoD;AAAA,YAIpD,IAJoD,sBAIpD,IAJoD;AAAA,YAIpD,QAJoD,sBAIpD,QAJoD;;AAKxD,iCAAyB;AAAEhtB,cAAF,EAAEA,IAAF;AAAQ4F,cAAR,EAAQA,IAAR;AAAcI,kBAAd,EAAcA;AAAd,SAAzB,EALwD,IAKxD;;AALwD;AANtC;;AAepB,UAAI,CAAC,mBAAL,KAAK,CAAL,EAAgC;AAAA;AAfZ;;AAuBpB,iCAvBoB,IAuBpB;;AAEA,uBAAiB;AAUf,aAVe,gBAUf;AACAyoB,4CAAqB;AACnB9T,kBADmB;AAEnB7I,gBAFmB;AAGnB4I,iBAHmB;AAAA,SAArB+T,OAIQ,YAAM;AACZ,iBADY,gBACZ;AAhBa,SAWfA;AApCkB;;AA8CpB,UAAIxB,cAAcpc,MA9CE,WA8CpB;;AACA,6CAAuCA,MAAvC,KA/CoB,IA+CpB;;AAEA,UAAI,YAAY,KAAhB,SAA8B;AAC5B,uBAAe,KADa,IAC5B;AAlDkB;;AAqDpB,UAAItI,+BAAgB0kB,YAApB,QAAI1kB,CAAJ,EAA2C;AACzC,oCAA4B0kB,YADa,QACzC;AAtDkB;;AAwDpB,UAAIA,YAAJ,MAAsB;AACpB,oCAA4BA,YADR,IACpB;AADF,aAEO,IAAIA,YAAJ,MAAsB;AAC3B,iCAAyBA,YADE,IAC3B;AADK,aAEA,IAAIA,YAAJ,MAAsB;AAE3B,gCAAwBA,YAFG,IAE3B;AA9DkB;;AAmEpBvoB,6BAAuB,YAAM;AAC3B,qCAD2B,KAC3B;AApEkB,OAmEpBA;AAvfa;;;kCA+fD;AAAA;;AAAA,UACR,YADQ,QACR,YADQ;AAAA,UACR,QADQ,QACR,QADQ;AAGZnF,oCAA8B,0BAHlB,IAGkB,CAA9BA;AACAA,8BAAwB,oBAJZ,IAIY,CAAxBA;;AACAA,8BAAyBkL,aAAD,EAAS;AAM/B,YAAI,CAAC,OAAD,gBAAsB,oBAA1B,WAAuD;AACrD,iBADqD,uBACrD;AAP6B;AALrB,OAKZlL;;AAWA3I,oCAA8B2I,aAhBlB,cAgBZ3I;AACAkF,0CAAoCyD,aAjBxB,QAiBZzD;AACAA,0CAAoCyD,aAlBxB,QAkBZzD;AAjhBa;;;wBAsNU;AACvB,aAAO,qBACC,4BAA4B,wBAFb,CAChB,CAAP;AAvNa;;;;;;;;AAqhBjB,+CAA+C;AAC7C,MAAI,gCAAgC,oBAApC,UAAkE;AAChE,WADgE,KAChE;AAF2C;;AAI7C,MAAI4yB,aAAJ,UAA2B;AACzB,WADyB,IACzB;AAL2C;;AAAA,0BAOxBxuB,gCAPwB,QAOxBA,CAPwB;AAAA,MAOzC,SAPyC,qBAOzC,SAPyC;;AAQ7C,MAAIyuB,cAAJ,UAA4B;AAC1B,WAD0B,IAC1B;AAT2C;;AAW7C,SAX6C,KAW7C;AA/lBF;;AAkmBA,kDAAkD;AAChD,uCAAqC;AACnC,QAAI,2BAAJ,MAAI,CAAJ,EAAoC;AAClC,aADkC,KAClC;AAFiC;;AAInC,QAAIrT,wBAAwBA,cAA5B,MAA4BA,CAA5B,EAAmD;AACjD,aADiD,KACjD;AALiC;;AAOnC,QAAI9B,kBAAkB,mBAAlBA,YAA+CoV,WAAnD,MAAoE;AAClE,UAAI3rB,8BAA8BA,oBAAlC,QAA8D;AAC5D,eAD4D,KAC5D;AAFgE;;AAIlE,6BAAuB;AACrB,YAAI,CAAC4rB,aAAarV,MAAbqV,GAAarV,CAAbqV,EAAyBD,OAA9B,GAA8BA,CAAzBC,CAAL,EAA4C;AAC1C,iBAD0C,KAC1C;AAFmB;AAJ2C;;AASlE,aATkE,IASlE;AAhBiC;;AAkBnC,WAAOrV,oBAAqBa,uBAAuBA,aAlBhB,MAkBgBA,CAAnD;AAnB8C;;AAsBhD,MAAI,EAAE,4BAA4BiB,cAAlC,UAAkCA,CAA9B,CAAJ,EAA8D;AAC5D,WAD4D,KAC5D;AAvB8C;;AAyBhD,MAAIwT,qBAAqBC,WAAzB,QAA4C;AAC1C,WAD0C,KAC1C;AA1B8C;;AA4BhD,OAAK,IAAI5nB,IAAJ,GAAWM,KAAKqnB,UAArB,QAAuC3nB,IAAvC,IAA+CA,CAA/C,IAAoD;AAClD,QAAI,CAAC0nB,aAAaC,UAAbD,CAAaC,CAAbD,EAA2BE,WAAhC,CAAgCA,CAA3BF,CAAL,EAAgD;AAC9C,aAD8C,KAC9C;AAFgD;AA5BJ;;AAiChD,SAjCgD,IAiChD;AAnoBF,C;;;;;;;;;;;;;;ACeA;;;;;;;;;;IAiBA,c;;;AAIEjd,4BAC8C;AAAA,mFAD9CA,EAC8C;AAAA,QADlC,QACkC,QADlC,QACkC;AAAA,qCADtBjR,kBACsB;AAAA,QADtBA,kBACsB,sCADlC,IACkC;AAAA,oCAAhCC,eAAgC;AAAA,QAAhCA,eAAgC,qCADlC,IACkC;;AAAA;;AAC5C,oBAAgBhK,YAD4B,kCAC5C;AACA,8BAF4C,kBAE5C;AACA,2BAH4C,eAG5C;AAEA,mBAL4C,IAK5C;AACA,uBAN4C,IAM5C;AACA,qBAP4C,IAO5C;AACA,sBAR4C,IAQ5C;AAEA,0BAV4C,IAU5C;AAfiB;;;;gCAkBnBuuB,W,EAAyC;AAAA,UAAhB9lB,OAAgB,uEAAzC8lB,IAAyC;AACvC,qBADuC,OACvC;AACA,yBAFuC,WAEvC;AACA,4BAAsBliB,cAHiB,IAGjBA,CAAtB;AArBiB;;;8BAwBnBie,S,EAAqB;AACnB,uBADmB,SACnB;AAzBiB;;;+BA4BnB8N,U,EAAuB;AACrB,wBADqB,UACrB;AA7BiB;;;+BAsEnBC,I,EAAiB;AAAA;;AACf,UAAIC,kBAAkB,SAAlBA,eAAkB,QAAkC;AAAA,YAAjC,SAAiC,SAAjC,SAAiC;AAAA,YAAlC,YAAkC,SAAlC,YAAkC;AAEtD,YAAIC,UAAUhnB,aAAd,CAAcA,CAAd;AAAA,YAFsD,UAEtD;;AAEA,YAAIgnB,mBAAJ,QAA+B;AAC7Bn4B,uBAAa,wBADgB,OAChB,CAAbA;;AAEA,cAAIA,eAAJ,MAAyB;AAGvB,yDAA6C4T,mBAAD,EAAe;AACzD,iCAAkBA,YAAlB,GADyD,OACzD;;AACAskB,8BAAgB;AAAEhC,yBAAF,EAAEA,SAAF;AAAa/kB,4BAAb,EAAaA;AAAb,eAAhB+mB;AAFF,wBAGS,YAAM;AACbrvB,4BAAc,6GADD,IACC,QAAdA;AAPqB,aAGvB;;AAHuB;AAHI;AAA/B,eAeO,IAAIwa,iBAAJ,OAAIA,CAAJ,EAA+B;AACpCrjB,uBAAam4B,UADuB,CACpCn4B;AADK,eAEA;AACL6I,wBAAc,oHADT,IACS,QAAdA;AADK;AArB+C;;AA0BtD,YAAI,eAAe7I,aAAf,KAAiCA,aAAa,MAAlD,YAAmE;AACjE6I,wBAAc,6GADmD,IACnD,QAAdA;AADiE;AA1Bb;;AAgCtD,YAAI,MAAJ,YAAqB;AAGnB,2BAHmB,mBAGnB;;AACA,gCAAqB;AAAEqtB,qBAAF,EAAEA,SAAF;AAAa/kB,wBAAb,EAAaA,YAAb;AAA2BnR,sBAA3B,EAA2BA;AAA3B,WAArB;AApCoD;;AAuCtD,2CAAkC;AAChCA,oBADgC,EAChCA,UADgC;AAEhCo4B,qBAFgC;AAAA,SAAlC;AAxCa,OACf;;AA6CA,kBAAY,2BAAqB;AAC/B,YAAI,gBAAJ,UAA8B;AAC5B,sDAA4CA,mBAAD,EAAe;AACxDpoB,oBAAQ;AACNkmB,yBADM;AAEN/kB,4BAFM;AAAA,aAARnB;AAF0B,WAC5B;;AAD4B;AADC;;AAU/BA,gBAAQ;AACNkmB,qBADM;AAEN/kB,wBAFM;AAAA,SAARnB;AAVF,cAcS4d,cAAD,EAAU;AAChB,YAAI,CAACtJ,cAAcsJ,KAAnB,YAAKtJ,CAAL,EAAuC;AACrCzb,wBAAc,uCAA+B+kB,KAA/B,8EADuB,IACvB,QAAd/kB;AADqC;AADvB;;AAMhBqvB,wBANgB,IAMhBA;AAlEa,OA8Cf;AApHiB;;;uCAgJnBG,I,EAAyB;AACvB,UAAI,gBAAJ,UAA8B;AAC5B,eAAO,kBAAkB,MAAMC,OADH,IACGA,CAAxB,CAAP;AAFqB;;AAIvB,UAAIhU,cAAJ,IAAIA,CAAJ,EAAyB;AACvB,YAAIiU,MAAMrnB,eADa,IACbA,CAAV;AACA,eAAO,kBAAkB,MAAMonB,OAFR,GAEQA,CAAxB,CAAP;AANqB;;AAQvB,aAAO,kBARgB,EAQhB,CAAP;AAxJiB;;;iCAiKnBE,M,EAAqB;AACnB,aAAQ,iBAAD,EAAC,IADW,MACnB;AAlKiB;;;4BAwKnBC,I,EAAc;AACZ,sBADY,IACZ;;AACA,UAAIzvB,cAAJ,GAAIA,CAAJ,EAAwB;AACtB,YAAIsK,SAASpK,gCADS,IACTA,CAAb;;AACA,YAAI,YAAJ,QAAwB;AACtB,oDAA0C;AACxCP,oBADwC;AAExCqM,mBAAO1B,+BAFiC,EAEjCA,CAFiC;AAGxC2B,0BAAe3B,qBAHyB;AAAA,WAA1C;AAHoB;;AAUtB,YAAI,eAAJ,QAA2B;AACzB,0BAAgBA,OADS,SACzB;AADyB;AAVL;;AActB,YAAI,UAAJ,QAAsB;AACpBtT,uBAAcsT,cAAD,CAACA,IADM,CACpBtT;AAfoB;;AAiBtB,YAAI,UAAJ,QAAsB;AAEpB,cAAI04B,WAAWplB,kBAFK,GAELA,CAAf;AACA,cAAIqlB,UAAUD,SAHM,CAGNA,CAAd;AACA,cAAIE,gBAAgBC,WAJA,OAIAA,CAApB;;AAEA,cAAI,CAACF,iBAAL,KAAKA,CAAL,EAA8B;AAG5BrC,mBAAO,OAAO;AAAExb,oBAAT;AAAO,aAAP,EACC4d,sBAAuBA,cAAvBA,IADD,MAECA,sBAAuBA,cAAvBA,IAFD,MAGEE,gBAAgBA,gBAAhBA,MAHF,QAAPtC;AAHF,iBAOO;AACL,gBAAIqC,qBAAqBA,YAAzB,QAA6C;AAC3CrC,qBAAO,OAAO;AAAExb,sBAAT;AAAO,eAAP,CAAPwb;AADF,mBAEO,IAAKqC,sBAAsBA,YAAvB,OAACA,IACA,sBAAsBA,YAD3B,SACiD;AACtDrC,qBAAO,OAAO;AAAExb,sBAAT;AAAO,eAAP,EACC4d,sBAAuBA,cAAvBA,IADD,KAAPpC;AAFK,mBAIA,IAAIqC,YAAJ,QAAwB;AAC7B,kBAAID,oBAAJ,GAA2B;AACzB7vB,8BADyB,2DACzBA;AADF,qBAGO;AACLytB,uBAAO,OAAO;AAAExb,wBAAT;AAAO,iBAAP,EACE4d,cADF,GACqBA,cADrB,GAEEA,cAFF,GAEqBA,cAFrB,EAAPpC;AAL2B;AAAxB,mBASA;AACLztB,4BAAc,6DADT,qBACLA;AAjBG;AAba;AAjBA;;AAoDtB,kBAAU;AACR,4CAAkC;AAChC7I,wBAAYA,cAAc,KADM;AAEhCo4B,uBAFgC;AAGhCU,iCAHgC;AAAA,WAAlC;AADF,eAMO,gBAAgB;AACrB,sBADqB,UACrB;AA3DoB;;AA6DtB,YAAI,cAAJ,QAA0B;AACxB,6CAAmC;AACjCnwB,oBADiC;AAEjCoL,kBAAMT,OAF2B;AAAA,WAAnC;AA9DoB;AAAxB,aAmEO;AACLgjB,eAAOV,SADF,IACEA,CAAPU;;AACA,YAAI;AACFA,iBAAOplB,WADL,IACKA,CAAPolB;;AAEA,cAAI,CAAChS,cAAL,IAAKA,CAAL,EAA0B;AAGxBgS,mBAAOA,KAHiB,QAGjBA,EAAPA;AANA;AAAJ,UAQE,WAAW,CAVR;;AAYL,YAAI,4BAA4ByC,2BAAhC,IAAgCA,CAAhC,EAAkE;AAChE,0BADgE,IAChE;AADgE;AAZ7D;;AAgBLlwB,sBAAc,oCAA4B+sB,SAA5B,IAA4BA,CAA5B,kBAhBT,sBAgBL/sB;AArFU;AAxKK;;;uCAqQnBmwB,M,EAA2B;AAEzB;AACE;AACE,cAAI,KAAJ,YAAqB;AACnB,4BADmB,IACnB;AAFJ;;AADF;;AAOE;AACE,cAAI,KAAJ,YAAqB;AACnB,4BADmB,OACnB;AAFJ;;AAPF;;AAaE;AACE,cAAI,YAAY,KAAhB,YAAiC;AAC/B,iBAD+B,IAC/B;AAFJ;;AAbF;;AAmBE;AACE,cAAI,YAAJ,GAAmB;AACjB,iBADiB,IACjB;AAFJ;;AAnBF;;AAyBE;AACE,sBAAY,KADd,UACE;AA1BJ;;AA6BE;AACE,sBADF,CACE;AA9BJ;;AAiCE;AAjCF;AAAA;;AAqCA,4CAAsC;AACpCrwB,gBADoC;AAEpCsL,cAFoC,EAEpCA;AAFoC,OAAtC;AA5SiB;;;iCAsTnBglB,O,EAAAA,O,EAA+B;AAC7B,UAAI,CAAJ,SAAc;AAAA;AADe;;AAI7B,UAAIC,SAASC,oBAAoBA,QAApBA,MAJgB,IAI7B;AACA,oCAL6B,OAK7B;AA3TiB;;;sCA8TnBC,O,EAA2B;AACzB,UAAIF,SAASC,oBAAoBA,QAApBA,MADY,IACzB;AACA,aAAQ,uBAAuB,oBAAxB,MAAwB,CAAvB,IAFiB,IAEzB;AAhUiB;;;kCAsUnBE,U,EAA0B;AACxB,aAAO,6BADiB,UACjB,CAAP;AAvUiB;;;wBAmCF;AACf,aAAO,mBAAmB,iBAAnB,WADQ,CACf;AApCiB;;;wBA0CR;AACT,aAAO,eADE,iBACT;AA3CiB,K;sBAiDnB,K,EAAgB;AACd,yCADc,KACd;AAlDiB;;;wBAwDJ;AACb,aAAO,eADM,aACb;AAzDiB,K;sBA+DnB,K,EAAoB;AAClB,qCADkB,KAClB;AAhEiB;;;;;;;;AA2UrB,0CAA0C;AACxC,MAAI,CAAC/U,cAAL,IAAKA,CAAL,EAA0B;AACxB,WADwB,KACxB;AAFsC;;AAIxC,MAAIgV,aAAahD,KAAjB;AAAA,MAA8BiD,YAJU,IAIxC;;AACA,MAAID,aAAJ,GAAoB;AAClB,WADkB,KAClB;AANsC;;AAQxC,MAAI1qB,OAAO0nB,KAR6B,CAQ7BA,CAAX;;AACA,MAAI,EAAE,8BACAjT,iBAAiBzU,KADjB,GACAyU,CADA,IAC8BA,iBAAiBzU,KADjD,GACgCyU,CADhC,KAEA,EAAE,0BAA0BzU,QAFhC,CAEI,CAFJ,EAE4C;AAC1C,WAD0C,KAC1C;AAZsC;;AAcxC,MAAIC,OAAOynB,KAd6B,CAc7BA,CAAX;;AACA,MAAI,EAAE,8BAA4B,OAAOznB,KAAP,SAAlC,QAAI,CAAJ,EAAkE;AAChE,WADgE,KAChE;AAhBsC;;AAkBxC,UAAQA,KAAR;AACE;AACE,UAAIyqB,eAAJ,GAAsB;AACpB,eADoB,KACpB;AAFJ;;AADF;;AAME,SANF,KAME;AACA;AACE,aAAOA,eARX,CAQI;;AACF,SATF,MASE;AACA,SAVF,OAUE;AACA,SAXF,MAWE;AACA;AACE,UAAIA,eAAJ,GAAsB;AACpB,eADoB,KACpB;AAFJ;;AAZF;;AAiBE;AACE,UAAIA,eAAJ,GAAsB;AACpB,eADoB,KACpB;AAFJ;;AAIEC,kBAJF,KAIEA;AArBJ;;AAuBE;AACE,aAxBJ,KAwBI;AAxBJ;;AA0BA,OAAK,IAAIppB,IAAT,GAAgBA,IAAhB,YAAgCA,CAAhC,IAAqC;AACnC,QAAImP,QAAQgX,KADuB,CACvBA,CAAZ;;AACA,QAAI,EAAE,6BAA8BiD,aAAaja,UAAjD,IAAI,CAAJ,EAAmE;AACjE,aADiE,KACjE;AAHiC;AA5CG;;AAkDxC,SAlDwC,IAkDxC;AA7ZF;;IAmaA,iB;;;AACE1E,+BAAc;AAAA;;AACZ,8BADY,IACZ;AACA,2BAFY,IAEZ;AAHoB;;;;+BAwCtBqd,I,EAAiB,CAxCK;;;uCA8CtBI,I,EAAyB;AACvB,aADuB,GACvB;AA/CoB;;;iCAsDtBG,I,EAAmB;AACjB,aADiB,GACjB;AAvDoB;;;4BA6DtBC,I,EAAc,CA7DQ;;;uCAkEtBO,M,EAA2B,CAlEL;;;iCAwEtBC,O,EAAAA,O,EAA+B,CAxET;;;kCA6EtBI,U,EAA0B;AACxB,aADwB,IACxB;AA9EoB;;;wBASL;AACf,aADe,CACf;AAVoB;;;wBAgBX;AACT,aADS,CACT;AAjBoB,K;sBAuBtB,K,EAAgB,CAvBM;;;wBA4BP;AACb,aADa,CACb;AA7BoB,K;sBAmCtB,K,EAAoB,CAnCE;;;;;;;;;;;;;;;;;;;;ACpZxB;;;;;;;;AAEA,IAAMG,gBAjBN,QAiBA;;IAcA,gB;;;AAIE5e,kCAAmD;AAAA,QAAvC,SAAuC,QAAvC,SAAuC;AAAA,QAAvC,WAAuC,QAAvC,WAAuC;AAAA,QAAnDA,QAAmD,QAAnDA,QAAmD;;AAAA;;AACjD,qBADiD,SACjD;AACA,uBAFiD,WAEjD;AACA,oBAHiD,QAGjD;AAEA,SALiD,KAKjD;AAEAhb,qCAAiC,4BAPgB,IAOhB,CAAjCA;AAXmB;;;;4BAcb;AACN,qBADM,IACN;AACA,8BAFM,IAEN;AAGA,mCALM,EAKN;AAIA,sCATM,wBASN;AAvBmB;;;mCA6BrB0sB,Y,EAA6B;AAC3B,8CAAwC;AACtC3jB,gBADsC;AAEtCijB,oBAFsC,EAEtCA;AAFsC,OAAxC;AA9BmB;;;8BAuCrBiB,O,SAA8C;AAAA,UAA3B,GAA2B,SAA3B,GAA2B;AAAA,UAA3B,SAA2B,SAA3B,SAA2B;AAAA,UAA9CA,IAA8C,SAA9CA,IAA8C;AAAA,UACxC,WADwC,QACxC,WADwC;;AAG5C,eAAS;AACP4M,kDAA2B;AACzBrxB,aADyB,EACzBA,GADyB;AAEzBub,kBAAS+V,YAAYhxB,qBAAZgxB,QAA+B3vB,YAFf;AAGzB4vB,eAAK5vB,YAHoB;AAAA,SAA3B0vB;AADO;AAHmC;;AAY5Cnb,qBAAevU,+BAZ6B,IAY7BA,CAAfuU;;AACAA,wBAAkB,YAAM;AACtB,kBAAU;AACRvU,iCADQ,IACRA;AAFoB;;AAItB,eAJsB,KAItB;AAjB0C,OAa5CuU;AApDmB;;;+BA+DrBsb,O,SAAuC;AAAA,UAAnB,IAAmB,SAAnB,IAAmB;AAAA,UAAvCA,MAAuC,SAAvCA,MAAuC;AACrC,UAAIC,WADiC,EACrC;;AACA,gBAAU;AACRA,oBADQ,oBACRA;AAHmC;;AAKrC,kBAAY;AACVA,oBADU,qBACVA;AANmC;;AASrC,oBAAc;AACZvb,sCADY,QACZA;AAVmC;AA/DlB;;;qCAmFrBwb,G,SAAyC;AAAA;;AAAA,UAAnB,KAAmB,SAAnB,KAAmB;AAAA,UAAzCA,KAAyC,SAAzCA,KAAyC;AACvC,UAAIC,UAAUt6B,uBADyB,KACzBA,CAAd;AACAs6B,0BAFuC,oBAEvCA;;AACA,UAAIC,aAAalvB,oBAAoB2U,MAArC,QAAmD;AACjDsa,8BADiD,oBACjDA;AAJqC;;AAMvCA,wBAAmBtmB,aAAD,EAAS;AACzBA,YADyB,eACzBA;AACAsmB,iCAFyB,oBAEzBA;;AAEA,YAAItmB,IAAJ,UAAkB;AAChB,cAAIwmB,gBAAgB,CAACF,2BADL,oBACKA,CAArB;;AACA,wCAFgB,aAEhB;AANuB;AANY,OAMvCA;;AASA7M,gCAA0BA,IAfa,UAevCA;AAlGmB;;;uCA8GrBgN,I,EAAuC;AAAA,UAAdC,IAAc,uEAAvCD,KAAuC;AACrC,8BADqC,IACrC;AADqC;AAAA;AAAA;;AAAA;AAErC,6BAAsBE,sBAAtB,qBAAsBA,CAAtB,8HAAoE;AAAA,cAApE,OAAoE;AAClEL,yDAA+C,CADmB,IAClEA;AAHmC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA9GlB;;;wCAwHD;AAClB,UAAI,CAAC,KAAL,SAAmB;AAAA;AADD;;AAIlB,8BAAwB,KAAxB,WAAwC,CAAC,KAJvB,gBAIlB;AA5HmB;;;kCAkIA;AAAA,UAArBjN,OAAqB,SAArBA,OAAqB;AACnB,UAAIlB,eADe,CACnB;;AAEA,UAAI,KAAJ,SAAkB;AAChB,aADgB,KAChB;AAJiB;;AAMnB,qBAAelb,WANI,IAMnB;;AAEA,UAAI,CAAJ,SAAc;AACZ,4BADY,YACZ;;AADY;AARK;;AAanB,UAAI2pB,WAAW56B,SAbI,sBAaJA,EAAf;AACA,UAAI66B,QAAQ,CAAC;AAAEjc,gBAAF;AAAoBoB,eAAO,KAA3B;AAAA,OAAD,CAAZ;AACA,UAAI8a,gBAfe,KAenB;;AACA,aAAOD,eAAP,GAAyB;AACvB,YAAME,YAAYF,MADK,KACLA,EAAlB;AADuB;AAAA;AAAA;;AAAA;AAEvB,gCAAmBE,UAAnB,wIAAoC;AAAA,gBAApC,IAAoC;AAClC,gBAAItN,MAAMztB,uBADwB,KACxBA,CAAV;AACAytB,4BAFkC,aAElCA;AAEA,gBAAI5O,UAAU7e,uBAJoB,GAIpBA,CAAd;;AACA,oCALkC,IAKlC;;AACA,qCANkC,IAMlC;;AACA6e,kCACE2O,oCAAqBD,KAArBC,UARgC,aAOlC3O;AAGA4O,4BAVkC,OAUlCA;;AAEA,gBAAIF,oBAAJ,GAA2B;AACzBuN,8BADyB,IACzBA;;AACA,yCAFyB,IAEzB;;AAEA,kBAAIE,WAAWh7B,uBAJU,KAIVA,CAAf;AACAg7B,mCALyB,cAKzBA;AACAvN,8BANyB,QAMzBA;AACAoN,yBAAW;AAAEjc,wBAAF;AAAoBoB,uBAAOuN,KAA3B;AAAA,eAAXsN;AAnBgC;;AAsBlCE,yCAtBkC,GAsBlCA;AACA5O,wBAvBkC;AAFb;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAhBN;;AA4CnB,yBAAmB;AACjB,qCADiB,wBACjB;AAEA,gCACGyO,4DAJc,CAGjB;AA/CiB;;AAmDnB,iCAnDmB,QAmDnB;;AAEA,0BArDmB,YAqDnB;AAvLmB;;;;;;;;;;;;;;;;;;;;AC/BvB;;;;;;;;AAiBA,IAAMK,4CAjBN,IAiBA;AACA,IAAMC,+BAlBN,IAkBA;AACA,IAAMC,kBAnBN,qBAmBA;AACA,IAAMC,oBApBN,6BAoBA;AACA,IAAMC,6BArBN,EAqBA;AACA,IAAMC,wBAtBN,GAsBA;AAGA,IAAMC,+BAzBN,EAyBA;AAIA,IAAMC,wBAAwBnwB,UA7B9B,CA6BA;;IAYA,mB;;;AAIE8P,qCAC0C;AAAA;;AAAA,QAD9B,SAC8B,QAD9B,SAC8B;AAAA,2BADjBvR,MACiB;AAAA,QADjBA,MACiB,4BAD9B,IAC8B;AAAA,QAD9B,SAC8B,QAD9B,SAC8B;AAAA,QAD9B,QAC8B,QAD9B,QAC8B;AAAA,qCAA5BqB,gBAA4B;AAAA,QAA5BA,gBAA4B,sCAD1CkQ,IAC0C;;AAAA;;AACxC,qBADwC,SACxC;AACA,kBAAcvR,UAAUvJ,UAFgB,iBAExC;AACA,qBAHwC,SAGxC;AACA,oBAJwC,QAIxC;AAEA,kBANwC,KAMxC;AACA,gBAPwC,IAOxC;AACA,2BARwC,KAQxC;AACA,gCATwC,CASxC;AACA,4BAVwC,CAUxC;AACA,2BAXwC,IAWxC;;AAEA,0BAAsB;AACpB4K,kEAA4D,YAAM;AAChE,gCADgE,KAChE;;AACA,6CAAoC;AAAE/B,kBAF0B;AAE5B,SAApC;AAHkB,OACpB+B;AAIAA,iEAA2D,YAAM;AAC/D,gCAD+D,KAC/D;;AACA,4CAAmC;AAAE/B,kBAF0B;AAE5B,SAAnC;AAPkB,OAKpB+B;AAIAA,qEAA+D,YAAM;AACnE,gCADmE,KACnE;;AACA,4CAAmC;AAAE/B,kBAF8B;AAEhC,SAAnC;AAXkB,OASpB+B;AAIAA,sEAAgE,YAAM;AACpE,gCADoE,KACpE;;AACA,6CAAoC;AAAE/B,kBAF8B;AAEhC,SAApC;AAfkB,OAapB+B;AA1BsC;AALlB;;;;8BA0Cd;AACR,UAAI,yBAAyB,KAAzB,UAAwC,CAAC,YAA7C,aAA6C,EAA7C,EAA0E;AACxE,eADwE,KACxE;AAFM;;AAIR,WAJQ,6BAIR;;AACA,WALQ,oBAKR;;AACA,WANQ,kBAMR;;AAEA,UAAI,eAAJ,mBAAsC;AACpC,uBADoC,iBACpC;AADF,aAEO,IAAI,eAAJ,sBAAyC;AAC9C,uBAD8C,oBAC9C;AADK,aAEA,IAAI,eAAJ,yBAA4C;AACjD,+CAAuCwwB,QADU,oBACjD;AADK,aAEA,IAAI,eAAJ,qBAAwC;AAC7C,uBAD6C,mBAC7C;AADK,aAEA;AACL,eADK,KACL;AAjBM;;AAoBR,kBAAY;AACVtsB,cAAM,eADI;AAEV8G,uBAAe,eAFL;AAAA,OAAZ;AAKA,aAzBQ,IAyBR;AAnEsB;;;gCAyExBylB,G,EAAiB;AACf,UAAI,CAAC,KAAL,QAAkB;AAAA;AADH;;AAKf1nB,UALe,cAKfA;AAEA,UAAIkC,QAAQC,wCAPG,GAOHA,CAAZ;AACA,UAAIwlB,cAAe,IAAD,IAAC,GARJ,OAQI,EAAnB;AACA,UAAIC,aAAa,KATF,oBASf;;AAGA,UAAID,4BACAA,2BADJ,4BAC2D;AAAA;AAb5C;;AAiBf,UAAK,6BAA6BzlB,QAA9B,CAAC,IACA,6BAA6BA,QADlC,GAC8C;AAC5C,aAD4C,sBAC5C;AAnBa;;AAqBf,+BArBe,KAqBf;;AAEA,UAAI7K,SAAS,KAATA,qBAAJ,uBAA8D;AAC5D,YAAIwwB,aAAa,KAD2C,gBAC5D;;AACA,aAF4D,sBAE5D;;AACA,YAAIC,UAAUD,iBAAiB,KAAjBA,iBAAiB,EAAjBA,GACiB,KAJ6B,aAI7B,EAD/B;;AAEA,qBAAa;AACX,sCADW,WACX;AAN0D;AAvB/C;AAzEO;;;wCAmHJ;AAClB,UAAI1sB,OAAO,eADO,iBAClB;;AAEA,UAAIA,QAAJ,GAAe;AACb,eADa,KACb;AAJgB;;AAMlB,yCAAoCA,OANlB,CAMlB;AACA,aAPkB,IAOlB;AA1HsB;;;oCAgIR;AACd,UAAIA,OAAO,eADG,iBACd;;AAEA,UAAIA,QAAQ,eAAZ,YAAuC;AACrC,eADqC,KACrC;AAJY;;AAMd,yCAAoCA,OANtB,CAMd;AACA,aAPc,IAOd;AAvIsB;;;yCA6IH;AACnB,wDAAkD;AAChDjG,gBADgD;AAEhDyL,gBAAQ,KAFwC;AAGhDF,0BAAkB,CAAC,CAAC,KAH4B;AAAA,OAAlD;AA9IsB;;;2CA8JD;AAAA;;AACrB,UAAI,KAAJ,kBAA2B;AACzBjG,qBAAa,KADY,gBACzBA;AAFmB;;AAIrB,8BAAwB,WAAW,YAAM;AACvC,eADuC,gCACvC;;AACA,eAAO,OAFgC,gBAEvC;;AACA,eAHuC,kBAGvC;AAHsB,SAJH,yCAIG,CAAxB;AAlKsB;;;6CA4KC;AACvB,UAAI,KAAJ,kBAA2B;AACzBA,qBAAa,KADY,gBACzBA;AACA,eAAO,KAFkB,gBAEzB;AAHqB;AA5KD;;;6BAsLf;AAAA;;AACP,oBADO,IACP;;AACA,WAFO,sBAEP;;AACA,WAHO,kBAGP;;AACA,mCAJO,eAIP;AAIAgC,iBAAW,YAAM;AACf,6CAAmC,YADpB,IACf;AACA,6CAFe,UAEf;AAFFA,SARO,CAQPA;;AAKA,WAbO,mBAaP;;AACA,WAdO,aAcP;;AACA,6BAfO,KAeP;AACA,iDAhBO,mBAgBP;AAKAnL,4BArBO,eAqBPA;AA3MsB;;;4BAiNhB;AAAA;;AACN,UAAI8J,OAAO,eADL,iBACN;AACA,sCAFM,eAEN;AAIAqB,iBAAW,YAAM;AACf,wBADe,KACf;;AACA,eAFe,gCAEf;;AACA,eAHe,kBAGf;;AAEA,6CAAmC,YALpB,aAKf;AACA,6CANe,IAMf;AACA,sBAPe,IAOf;AAPFA,SANM,CAMNA;;AAUA,WAhBM,sBAgBN;;AACA,WAjBM,aAiBN;;AACA,WAlBM,sBAkBN;;AACA,qCAnBM,aAmBN;AACA,6BApBM,KAoBN;AArOsB;;;+BA2OxBurB,G,EAAgB;AACd,UAAI,KAAJ,iBAA0B;AACxB,+BADwB,KACxB;AACA/nB,YAFwB,cAExBA;AAFwB;AADZ;;AAMd,UAAIA,eAAJ,GAAsB;AAGpB,YAAIgoB,iBAAkBhoB,mBACAA,8BAJF,cAIEA,CADtB;;AAEA,YAAI,CAAJ,gBAAqB;AAEnBA,cAFmB,cAEnBA;;AAEA,cAAIA,IAAJ,UAAkB;AAChB,iBADgB,iBAChB;AADF,iBAEO;AACL,iBADK,aACL;AAPiB;AALD;AANR;AA3OQ;;;mCAsQT;AACb,6BADa,IACb;AAvQsB;;;oCA6QR;AAAA;;AACd,UAAI,KAAJ,iBAA0B;AACxBxF,qBAAa,KADW,eACxBA;AADF,aAEO;AACL,qCADK,iBACL;AAJY;;AAMd,6BAAuB,WAAW,YAAM;AACtC,0CADsC,iBACtC;;AACA,eAAO,OAF+B,eAEtC;AAFqB,SANT,4BAMS,CAAvB;AAnRsB;;;oCA4RR;AACd,UAAI,CAAC,KAAL,iBAA2B;AAAA;AADb;;AAIdA,mBAAa,KAJC,eAIdA;AACA,sCALc,iBAKd;AACA,aAAO,KANO,eAMd;AAlSsB;;;6CA0SC;AACvB,kCADuB,CACvB;AACA,8BAFuB,CAEvB;AA5SsB;;;gCAkTxBytB,G,EAAiB;AACf,UAAI,CAAC,KAAL,QAAkB;AAAA;AADH;;AAIf,UAAIjoB,qBAAJ,GAA4B;AAE1B,+BAF0B,IAE1B;AAF0B;AAJb;;AAUf,cAAQA,IAAR;AACE;AACE,iCAAuB;AACrBkoB,oBAAQloB,eADa;AAErBmoB,oBAAQnoB,eAFa;AAGrBooB,kBAAMpoB,eAHe;AAIrBqoB,kBAAMroB,eAJe;AAAA,WAAvB;AAFJ;;AASE;AACE,cAAI,yBAAJ,MAAmC;AAAA;AADrC;;AAIE,sCAA4BA,eAJ9B,KAIE;AACA,sCAA4BA,eAL9B,KAKE;AAGAA,cARF,cAQEA;AAjBJ;;AAmBE;AACE,cAAI,yBAAJ,MAAmC;AAAA;AADrC;;AAIE,cAAIkC,QAJN,CAIE;AACA,cAAIO,KAAK,4BAA4B,qBALvC,MAKE;AACA,cAAIC,KAAK,4BAA4B,qBANvC,MAME;AACA,cAAI4lB,WAAWjxB,SAASA,eAP1B,EAO0BA,CAATA,CAAf;;AACA,cAAIA,gDACC,qCACAixB,YAAajxB,UAFlB,qBAAIA,CAAJ,EAEqD;AAEnD6K,oBAFmD,EAEnDA;AAJF,iBAKO,IAAI7K,+CACPA,SAASixB,WAAYjxB,UAArBA,MADG,uBAC0D;AAE/D6K,oBAF+D,EAE/DA;AAhBJ;;AAkBE,cAAIA,QAAJ,GAAe;AACb,iBADa,iBACb;AADF,iBAEO,IAAIA,QAAJ,GAAe;AACpB,iBADoB,aACpB;AArBJ;;AAnBF;AAAA;AA5TsB;;;0CA6WF;AACpB,8BAAwB,wBADJ,IACI,CAAxB;AACA,2BAAqB,qBAFD,IAEC,CAArB;AACA,4BAAsB,sBAHF,IAGE,CAAtB;AACA,uCAAiC,iCAJb,IAIa,CAAjC;AACA,6BAAuB,uBALH,IAKG,CAAvB;AACA,4BAAsB,sBANF,IAME,CAAtB;AAEA7Q,2CAAqC,KARjB,gBAQpBA;AACAA,2CAAqC,KATjB,aASpBA;AACAA,uCAAiC,KAVb,cAUpBA;AACAA,yCAAmC,KAXf,yBAWpBA;AACAA,6CAAuC,KAZnB,eAYpBA;AACAA,4CAAsC,KAblB,cAapBA;AACAA,2CAAqC,KAdjB,cAcpBA;AACAA,0CAAoC,KAfhB,cAepBA;AA5XsB;;;6CAkYC;AACvBA,8CAAwC,KADjB,gBACvBA;AACAA,8CAAwC,KAFjB,aAEvBA;AACAA,0CAAoC,KAHb,cAGvBA;AACAA,4CAAsC,KAJf,yBAIvBA;AACAA,gDAA0C,KALnB,eAKvBA;AACAA,+CAAyC,KANlB,cAMvBA;AACAA,8CAAwC,KAPjB,cAOvBA;AACAA,6CAAuC,KARhB,cAQvBA;AAEA,aAAO,KAVgB,gBAUvB;AACA,aAAO,KAXgB,aAWvB;AACA,aAAO,KAZgB,cAYvB;AACA,aAAO,KAbgB,yBAavB;AACA,aAAO,KAdgB,eAcvB;AACA,aAAO,KAfgB,cAevB;AAjZsB;;;wCAuZJ;AAClB,UAAI,KAAJ,cAAuB;AACrB,aADqB,MACrB;AADF,aAEO;AACL,aADK,KACL;AAJgB;AAvZI;;;oDAkaQ;AAC9B,kCAA4B,4BADE,IACF,CAA5B;AAEAA,kDAA4C,KAHd,oBAG9BA;AACAA,qDAA+C,KAJjB,oBAI9BA;AAGEA,wDACwB,KARI,oBAO5BA;AAEAA,oDACwB,KAVI,oBAS5BA;AA3aoB;;;uDAmbW;AACjCA,qDAA+C,KADd,oBACjCA;AACAA,wDAC2B,KAHM,oBAEjCA;AAIEA,2DAC2B,KAPI,oBAM/BA;AAEAA,uDAC2B,KATI,oBAQ/BA;AAIF,aAAO,KAZ0B,oBAYjC;AA/bsB;;;wBA2GL;AACjB,aAAO,CAAC,EAAE,8BAA8BrF,SAA9B,iBACAA,SADA,sBAC+BA,SAFxB,mBACT,CAAR;AA5GsB;;;;;;;;;;;;;;;;;;;;ACzC1B;;;;;;;;AAiBA,IAAMu8B,oBAjBN,iBAiBA;AACA,IAAMC,oBAlBN,GAkBA;AACA,IAAMC,yBAnBN,iBAmBA;;IAUA,iB;;;AAMEthB,gDAAgD;AAAA;;AAAA,QAAjB5S,IAAiB,uEAAhD4S,kBAAgD;;AAAA;;AAC9C,mBAD8C,KAC9C;AACA,iBAF8C,KAE9C;AACA,uBAH8C,KAG9C;AACA,eAAWnb,SAJmC,eAI9C;AACA,kBAL8C,IAK9C;AACA,gCAN8C,IAM9C;AACA,wBAAoBwM,cAP0B,IAO1BA,CAApB;AAEA,0BAAsBwb,QATwB,cAS9C;AACA,mBAAeA,QAV+B,OAU9C;AACA,oBAX8C,QAW9C;AACA,gBAZ8C,IAY9C;;AAEA,QAAI,8BAA8B,OAAO0U,IAAP,aAA9B,cACA,CAACA,oDADL,iBACKA,SADL,EAC2E;AACzEtzB,mBAAa,wBAD4D,uDACzEA;AADyE;AAf7B;;AAoB9C,mBApB8C,IAoB9C;AACA,kCArB8C,QAqB9C;AAEA,kCAA+BY,aAAD,EAAS;AACrC,oBAAcA,QADuB,KACrC;AAxB4C,KAuB9C;;AAGA,SA1B8C,kBA0B9C;AAhCoB;;;;mCAiDE;AAAA,UAAXiX,KAAW,uEAAxB0b,CAAwB;;AACtB,UAAI,CAAC,KAAL,SAAmB;AACjB,eADiB,KACjB;AAFoB;;AAMtB,UAAMC,WAAWvxB,WAAW,2BANN,CAMLA,CAAjB;;AACA,UAAI4V,QAAJ,UAAsB;AACpBA,gBADoB,QACpBA;AARoB;;AAUtB,UAAIA,QAAJ,mBAA+B;AAC7BA,gBAD6B,iBAC7BA;AAXoB;;AActB,UAAIA,UAAU,KAAd,QAA2B;AACzB,eADyB,KACzB;AAfoB;;AAiBtB,oBAjBsB,KAiBtB;AACA,8DAlBsB,KAkBtB;AACA,aAnBsB,IAmBtB;AApEoB;;;+BA0EtB4b,G,EAAgB;AACd,UAAI5b,QAAQjN,IADE,OACd;;AAEA,UAAI,KAAJ,OAAgB;AACdiN,gBAAQ,2BADM,KACdA;AAJY;;AAMd,wBANc,KAMd;AAhFoB;;;6BAsFtB6b,G,EAAc;AAEZ,2CAFY,sBAEZ;AAEA,uCAAiC;AAAE5zB,gBAJvB;AAIqB,OAAjC;AAEA,UAAIJ,eAAe,KANP,YAMZ;AACAzD,8CAAwCyD,aAP5B,SAOZzD;AACAA,4CAAsCyD,aAR1B,OAQZzD;AA9FoB;;;yCAoGD;AAAA;;AACnB,UAAI,CAAC,KAAL,SAAmB;AAAA;AADA;;AAInB,UAAIyD,eAAe,KAJA,YAInB;AACAA,+BAAyB,qBALN,IAKM,CAAzBA;AACAA,6BAAuB,mBANJ,IAMI,CAAvBA;AAEA,iDAA4CkL,aAAD,EAAS;AAClD,YAAIA,eAAJ,GAAsB;AAAA;AAD4B;;AAMlD,4CANkD,sBAMlD;;AAEA3O,6CAAqCyD,aARa,SAQlDzD;AACAA,2CAAmCyD,aATe,OASlDzD;AAjBiB,OAQnB;AAYA,6CAAwC2O,aAAD,EAAS;AAC9C,6BAAmB,CAAC,EAAE,OAAOA,IADiB,IAC1B,CAApB;AArBiB,OAoBnB;AAIA,iCAA4BA,aAAD,EAAS;AAGlC,YAAIA,OAAOA,eAAX,QAAkC;AAEhC,wCAFgC,IAEhC;;AAEA,cAAI,OAAJ,QAAiB;AAGf,gBAAI,OAAJ,aAAsB;AACpB,kDADoB,sBACpB;;AACA,kBAAI+oB,UAAU,oBAAkB,OAFZ,MAEN,CAAd;;AAEA9uB,qCAAuB,YAAM;AAC3B,uDAD2B,sBAC3B;;AAGA,6BAAa;AACX,qDAAiC;AAAE/E,4BADxB;AACsB,mBAAjC;AALyB;AAJT,eAIpB+E;AAJF,mBAYO;AACL,kCAAkB,OADb,MACL;AAhBa;AAJe;AAHA;AAxBjB,OAwBnB;AA5HoB;;;wBAsCI;AACxB,UAAI,CAAC,KAAL,sBAAgC;AAC9B,oCAA4B,oBADE,WAC9B;AAFsB;;AAIxB,aAAO,KAJiB,oBAIxB;AA1CoB;;;;;;;;;;;;;;;;;;;;ACdxB;;AAfA;;;;;;;;AAoBA,IAAM+uB,0BAA0B,CApBhC,EAoBA;AACA,IAAMC,2BArBN,UAqBA;;IAgBA,kB;;;AAIE9hB,oCAA0E;AAAA,QAA9D,SAA8D,QAA9D,SAA8D;AAAA,QAA9D,WAA8D,QAA9D,WAA8D;AAAA,QAA9D,cAA8D,QAA9D,cAA8D;AAAA,yBAApB5S,IAAoB;AAAA,QAApBA,IAAoB,0BAA1E4S,kBAA0E;;AAAA;;AACxE,qBADwE,SACxE;AACA,uBAFwE,WAExE;AACA,0BAHwE,cAGxE;AACA,gBAJwE,IAIxE;AAEA,kBAAc+hB,2BAAY,KAAZA,WAA4B,yBAN8B,IAM9B,CAA5BA,CAAd;;AACA,SAPwE,UAOxE;AAXqB;;;;qCAiBN;AACf,0BADe,qBACf;AAlBqB;;;iCAqBvBC,K,EAAoB;AAClB,aAAO,iBADW,KACX,CAAP;AAtBqB;;;wCA4BH;AAClB,aAAOC,kCAAmB,KAAnBA,WAAmC,KADxB,WACXA,CAAP;AA7BqB;;;4CAgCvBC,U,EAAoC;AAClC,UAAI,CAAC,KAAL,aAAuB;AAAA;AADW;;AAIlC,UAAMl6B,gBAAgB,iBAAiB5C,aAJL,CAIZ,CAAtB;;AAEA,UAAI,CAAJ,eAAoB;AAClB6I,sBADkB,0DAClBA;AADkB;AANc;;AAWlC,UAAI7I,eAAe,KAAnB,oBAA4C;AAC1C,YAAM+8B,oBAAoB,iBAAiB,0BADD,CAChB,CAA1B;AAEAA,+CAH0C,wBAG1CA;AAEAn6B,wCAL0C,wBAK1CA;AAhBgC;;AAkBlC,UAAIo6B,gBAAgB,KAlBc,iBAkBd,EAApB;;AACA,UAAIC,mBAAmBD,oBAnBW,MAmBlC;;AAGA,UAAIC,mBAAJ,GAA0B;AACxB,YAAIza,QAAQwa,oBADY,EACxB;AAEA,YAAIva,OAAQwa,uBAAuBD,mBAAvBC,KAHY,KAGxB;AAEA,YAAIC,eALoB,KAKxB;;AACA,YAAIl9B,uBAAuBA,cAA3B,MAA+C;AAC7Ck9B,yBAD6C,IAC7CA;AADF,eAEO;AACLF,mCAAyB,gBAAe;AACtC,gBAAIhpB,YAAJ,YAA4B;AAC1B,qBAD0B,KAC1B;AAFoC;;AAItCkpB,2BAAelpB,eAJuB,GAItCkpB;AACA,mBALsC,IAKtC;AANG,WACLF;AATsB;;AAiBxB,0BAAkB;AAChB5L,wCAAexuB,cAAfwuB,KAAkC;AAAElQ,iBADpB;AACkB,WAAlCkQ;AAlBsB;AAtBQ;;AA4ClC,gCA5CkC,UA4ClC;AA5EqB;;;8BAoGb;AACR+L,2CADQ,OACRA;AArGqB;;;iCA2GV;AACX,yBADW,EACX;AACA,gCAFW,CAEX;AACA,yBAHW,IAGX;AACA,4BAJW,CAIX;AACA,4BALW,EAKX;AAGA,mCARW,EAQX;AAnHqB;;;gCAsHvBhP,W,EAAyB;AAAA;;AACvB,UAAI,KAAJ,aAAsB;AACpB,aADoB,gBACpB;;AACA,aAFoB,UAEpB;AAHqB;;AAMvB,yBANuB,WAMvB;;AACA,UAAI,CAAJ,aAAkB;AAAA;AAPK;;AAWvBtnB,kCAA6Bu2B,mBAAD,EAAe;AACzC,YAAI5R,aAAa3kB,YADwB,QACzC;AACA,YAAIw2B,WAAWD,sBAAsB;AAAEE,iBAFE;AAEJ,SAAtBF,CAAf;;AACA,aAAK,IAAIG,UAAT,GAAsBA,WAAtB,YAA6C,EAA7C,SAAwD;AACtD,cAAIC,YAAY,yCAAqB;AACnC19B,uBAAW,MADwB;AAEnCwiB,gBAFmC;AAGnCmb,6BAAiBJ,SAHkB,KAGlBA,EAHkB;AAInCtzB,yBAAa,MAJsB;AAKnCC,4BAAgB,MALmB;AAMnC0zB,4CANmC;AAOnC11B,kBAAM,MAP6B;AAAA,WAArB,CAAhB;;AASA,iCAVsD,SAUtD;AAbuC;;AAiBzC,YAAMpF,gBAAgB,kBAAiB,2BAjBE,CAiBnB,CAAtB;AACAA,wCAlByC,wBAkBzCA;AAlBFiE,kBAmBUiC,gBAAD,EAAY;AACnBD,+DADmB,MACnBA;AA/BqB,OAWvBhC;AAjIqB;;;uCA4JJ;AACjB,WAAK,IAAIsJ,IAAJ,GAAWM,KAAK,iBAArB,QAA8CN,IAA9C,IAAsDA,CAAtD,IAA2D;AACzD,YAAI,iBAAJ,CAAI,CAAJ,EAAyB;AACvB,8BADuB,eACvB;AAFuD;AAD1C;AA5JI;;;kCAuKvBwtB,M,EAAsB;AACpB,UAAI,CAAC,KAAL,aAAuB;AAAA;AADH;;AAIpB,UAAI,CAAJ,QAAa;AACX,2BADW,IACX;AADF,aAEO,IAAI,EAAE,yBACA,8BAA8BztB,OADpC,MAAI,CAAJ,EACoD;AACzD,2BADyD,IACzD;AACArH,sBAFyD,wDAEzDA;AAHK,aAIA;AACL,2BADK,MACL;AAXkB;;AAcpB,WAAK,IAAIsH,IAAJ,GAAWM,KAAK,iBAArB,QAA8CN,IAA9C,IAAsDA,CAAtD,IAA2D;AACzD,YAAItM,QAAQ,oBAAoB,iBADyB,CACzB,CAAhC;;AACA,yCAFyD,KAEzD;AAhBkB;AAvKC;;;yCAgMvB+5B,S,EAAgC;AAAA;;AAC9B,UAAIC,UAAJ,SAAuB;AACrB,eAAOnwB,gBAAgBmwB,UADF,OACdnwB,CAAP;AAF4B;;AAI9B,UAAI1N,aAAa69B,UAJa,EAI9B;;AACA,UAAI,oBAAJ,UAAI,CAAJ,EAAqC;AACnC,eAAO,oBAD4B,UAC5B,CAAP;AAN4B;;AAQ9B,UAAIlyB,UAAU,0CAA2C+C,iBAAD,EAAa;AACnEmvB,6BADmE,OACnEA;AACA,4CAFmE,IAEnE;AACA,eAHmE,OAGnE;AAHY,kBAIJ/0B,gBAAD,EAAY;AACnBD,2DADmB,MACnBA;AAEA,4CAHmB,IAGnB;AAf4B,OAQhB,CAAd;AASA,wCAjB8B,OAiB9B;AACA,aAlB8B,OAkB9B;AAlNqB;;;qCAqNN;AAAA;;AACf,UAAIm0B,gBAAgB,KADL,iBACK,EAApB;;AACA,UAAIa,YAAY,sDACuC,KADvC,aAEuC,YAJxC,IAEC,CAAhB;;AAGA,qBAAe;AACb,kDAA0C,YAAM;AAC9C,2CAD8C,SAC9C;AAFW,SACb;;AAGA,eAJa,IAIb;AATa;;AAWf,aAXe,KAWf;AAhOqB;;;wBA+EH;AAClB,aAAO,KADW,cAClB;AAhFqB,K;sBAmFvB,Q,EAA4B;AAC1B,UAAI,CAACtsB,+BAAL,QAAKA,CAAL,EAAgC;AAC9B,cAAM,UADwB,oCACxB,CAAN;AAFwB;;AAI1B,UAAI,CAAC,KAAL,aAAuB;AAAA;AAJG;;AAO1B,UAAI,wBAAJ,UAAsC;AAAA;AAPZ;;AAU1B,4BAV0B,QAU1B;;AAEA,WAAK,IAAIpB,IAAJ,GAAWM,KAAK,iBAArB,QAA8CN,IAA9C,IAAsDA,CAAtD,IAA2D;AACzD,mCADyD,QACzD;AAbwB;AAnFL;;;;;;;;;;;;;;;;;;;;ACtBzB;;AAGA;;AAlBA;;;;;;;;AAqBA,IAAM2tB,wBArBN,CAqBA;AACA,IAAMC,gCAtBN,CAsBA;AACA,IAAMC,kBAvBN,EAuBA;;AAeA,IAAMC,mBAAoB,mCAAmC;AAC3D,MAAIC,kBADuD,IAC3D;AAEA,SAAO;AACLC,aADK,qBACLA,KADK,EACLA,MADK,EACoB;AACvB,UAAIC,aADmB,eACvB;;AACA,UAAI,CAAJ,YAAiB;AACfA,qBAAa3+B,uBADE,QACFA,CAAb2+B;AACAF,0BAFe,UAEfA;AAJqB;;AAMvBE,yBANuB,KAMvBA;AACAA,0BAPuB,MAOvBA;AAMEA,6BAbqB,IAarBA;AAGF,UAAIrgB,MAAMqgB,4BAA4B;AAAEC,eAhBjB;AAgBe,OAA5BD,CAAV;AACArgB,UAjBuB,IAiBvBA;AACAA,sBAlBuB,oBAkBvBA;AACAA,gCAnBuB,MAmBvBA;AACAA,UApBuB,OAoBvBA;AACA,aArBuB,UAqBvB;AAtBG;AAyBLugB,iBAzBK,2BAyBW;AACd,UAAIF,aADU,eACd;;AACA,sBAAgB;AAGdA,2BAHc,CAGdA;AACAA,4BAJc,CAIdA;AANY;;AAQdF,wBARc,IAQdA;AAjCG;AAAA,GAAP;AAzCF,CAsC0B,EAA1B;;IA4CA,gB;;;AAIEtjB,kCAC0E;AAAA,QAD9D,SAC8D,QAD9D,SAC8D;AAAA,QAD9D,EAC8D,QAD9D,EAC8D;AAAA,QAD9D,eAC8D,QAD9D,eAC8D;AAAA,QAD9D,WAC8D,QAD9D,WAC8D;AAAA,QAD9D,cAC8D,QAD9D,cAC8D;AAAA,qCAA5D8iB,8BAA4D;AAAA,QAA5DA,8BAA4D,sCAD9D,KAC8D;AAAA,yBAApB11B,IAAoB;AAAA,QAApBA,IAAoB,0BAD1E4S,kBAC0E;;AAAA;;AACxE,cADwE,EACxE;AACA,uBAAmB,cAFqD,EAExE;AACA,qBAHwE,IAGxE;AAEA,mBALwE,IAKxE;AACA,oBANwE,CAMxE;AACA,oBAPwE,eAOxE;AACA,yBAAqB6iB,gBARmD,QAQxE;AAEA,uBAVwE,WAUxE;AACA,0BAXwE,cAWxE;AAEA,sBAbwE,IAaxE;AACA,0BAAsBhpB,qCAdkD,OAcxE;AACA,kBAfwE,IAexE;AACA,0CAhBwE,8BAgBxE;AAEA,qBAAiB,cAlBuD,KAkBxE;AACA,sBAAkB,cAnBsD,MAmBxE;AACA,qBAAiB,iBAAiB,KApBsC,UAoBxE;AAEA,uBAtBwE,eAsBxE;AACA,wBAAqB,mBAAmB,KAApB,SAAC,GAvBmD,CAuBxE;AACA,iBAAa,mBAAmB,KAxBwC,SAwBxE;AAEA,gBA1BwE,IA0BxE;AAEA,QAAI8pB,SAAS9+B,uBA5B2D,GA4B3DA,CAAb;AACA8+B,kBAAcx0B,yBAAyB,WA7BiC,EA6B1DA,CAAdw0B;AACA,sCAAkC;AAAE3vB,YAApC;AAAkC,KAAlC,wBACUhC,aAAD,EAAS;AAChB2xB,qBADgB,GAChBA;AAhCsE,KA8BxE;;AAIAA,qBAAiB,YAAW;AAC1Bx0B,yBAD0B,EAC1BA;AACA,aAF0B,KAE1B;AApCsE,KAkCxEw0B;;AAIA,kBAtCwE,MAsCxE;AAEA,QAAIrR,MAAMztB,uBAxC8D,KAwC9DA,CAAV;AACAytB,oBAzCwE,WAyCxEA;AACAA,yCAAqC,KA1CmC,EA0CxEA;AACA,eA3CwE,GA2CxE;AAEA,QAAIsR,OAAO/+B,uBA7C6D,KA6C7DA,CAAX;AACA++B,qBA9CwE,wBA8CxEA;AACA,QAAIC,mBAAmB,IA/CiD,6BA+CxE;AACAD,uBAAmB,sCAhDqD,IAgDxEA;AACAA,wBAAoB,uCAjDoD,IAiDxEA;AACA,gBAlDwE,IAkDxE;AAEAtR,oBApDwE,IAoDxEA;AACAqR,uBArDwE,GAqDxEA;AACAz+B,0BAtDwE,MAsDxEA;AA3DmB;;;;+BA8DrB4+B,O,EAAoB;AAClB,qBADkB,OAClB;AACA,2BAAqBhwB,QAFH,MAElB;AACA,UAAIiwB,gBAAiB,iBAAgB,KAAjB,aAAC,IAHH,GAGlB;AACA,sBAAgB,oBAAoB;AAAErB,eAAF;AAAYtuB,kBAAZ;AAAA,OAApB,CAAhB;AACA,WALkB,KAKlB;AAnEmB;;;4BAsEb;AACN,WADM,eACN;AACA,4BAAsByF,qCAFhB,OAEN;AAEA,uBAAiB,cAJX,KAIN;AACA,wBAAkB,cALZ,MAKN;AACA,uBAAiB,iBAAiB,KAN5B,UAMN;AAEA,0BAAqB,mBAAmB,KAApB,SAAC,GARf,CAQN;AACA,mBAAc,mBAAmB,KAT3B,SASN;AAEA,+BAXM,aAWN;AACA,UAAI+pB,OAAO,KAZL,IAYN;AACA,UAAII,aAAaJ,KAbX,UAaN;;AACA,WAAK,IAAIruB,IAAIyuB,oBAAb,GAAoCzuB,KAApC,GAA4CA,CAA5C,IAAiD;AAC/CquB,yBAAiBI,WAD8B,CAC9BA,CAAjBJ;AAfI;;AAiBN,UAAIC,mBAAmB,IAjBjB,6BAiBN;AACAD,yBAAmB,sCAlBb,IAkBNA;AACAA,0BAAoB,uCAnBd,IAmBNA;;AAEA,UAAI,KAAJ,QAAiB;AAGf,4BAHe,CAGf;AACA,6BAJe,CAIf;AACA,eAAO,KALQ,MAKf;AA1BI;;AA4BN,UAAI,KAAJ,OAAgB;AACd,mCADc,KACd;AACA,eAAO,KAFO,KAEd;AA9BI;AAtEa;;;2BAwGrBK,Q,EAAiB;AACf,UAAI,oBAAJ,aAAqC;AACnC,wBADmC,QACnC;AAFa;;AAIf,UAAIF,gBAAiB,iBAAgB,KAAjB,aAAC,IAJN,GAIf;AACA,sBAAgB,oBAAoB;AAClCrB,eADkC;AAElCtuB,kBAFkC;AAAA,OAApB,CAAhB;AAIA,WATe,KASf;AAjHmB;;;sCAwHH;AAChB,UAAI,KAAJ,YAAqB;AACnB,wBADmB,MACnB;AACA,0BAFmB,IAEnB;AAHc;;AAKhB,oBALgB,IAKhB;AA7HmB;;;0CAmImB;AAAA,UAApB8vB,UAAoB,uEAAxCC,KAAwC;AACtC,UAAIC,SAASv/B,uBADyB,QACzBA,CAAb;AAGA,oBAJsC,MAItC;AAIEu/B,yBARoC,IAQpCA;AAEF,UAAIjhB,MAAMihB,wBAAwB;AAAEX,eAVE;AAUJ,OAAxBW,CAAV;AACA,UAAIC,cAAcC,8BAXoB,GAWpBA,CAAlB;AAEAF,qBAAgB,mBAAmBC,YAApB,EAAC,GAbsB,CAatCD;AACAA,sBAAiB,oBAAoBC,YAArB,EAAC,GAdqB,CActCD;AACAA,2BAAqB,mBAfiB,IAetCA;AACAA,4BAAsB,oBAhBgB,IAgBtCA;;AAEA,UAAI,eAAeC,YAAnB,QAAuC;AACrClhB,kBAAUkhB,YAAVlhB,IAA0BkhB,YADW,EACrClhB;AAnBoC;;AAqBtC,aArBsC,GAqBtC;AAxJmB;;;4CA8JG;AAAA;;AACtB,UAAI,CAAC,KAAL,QAAkB;AAAA;AADI;;AAItB,UAAI,wBAAwBtJ,qCAA5B,UAAsD;AAAA;AAJhC;;AAOtB,UAAI6N,KAAK,KAPa,WAOtB;AACA,UAAI6c,YARkB,gBAQtB;;AAEA,UAAI,KAAJ,gCAAyC;AACvC,yBADuC,EACvC;AACA,gCAFuC,SAEvC;AACA,2CAAmC;AAAEvwB,gBAAM,KAA3C;AAAmC,SAAnC,qCACkDhC,aAAD,EAAS;AACxD,kDADwD,GACxD;AALqC,SAGvC;AAKA,6CARuC,IAQvC;AACA,8BAAsB,KATiB,MASvC;AATuC;AAVnB;;AAsBtB,UAAIwyB,QAAQ3/B,uBAtBU,KAsBVA,CAAZ;AACA2/B,iBAvBsB,EAuBtBA;AACAA,wBAxBsB,SAwBtBA;AACA,yCAAmC;AAAExwB,cAAM,KAA3C;AAAmC,OAAnC,qCAEUhC,aAAD,EAAS;AAChBwyB,yCADgB,GAChBA;AA5BoB,OAyBtB;AAMAA,0BAAoB,mBA/BE,IA+BtBA;AACAA,2BAAqB,oBAhCC,IAgCtBA;AAEAA,kBAAY,YAlCU,SAkCV,EAAZA;AACA,mBAnCsB,KAmCtB;AAEA,2CArCsB,IAqCtB;AACA,4BAtCsB,KAsCtB;AAIA,0BA1CsB,CA0CtB;AACA,2BA3CsB,CA2CtB;AACA,aAAO,KA5Ce,MA4CtB;AA1MmB;;;2BA6Md;AAAA;;AACL,UAAI,wBAAwB3qB,qCAA5B,SAAqD;AACnD5L,sBADmD,qCACnDA;AACA,eAAO6E,gBAF4C,SAE5CA,CAAP;AAHG;;AAKL,4BAAsB+G,qCALjB,OAKL;AAEA,UAAI4qB,mBAPC,wCAOL;;AACA,UAAIC,mBAAoBpyB,SAApBoyB,gBAAoBpyB,MAAD,EAAW;AAIhC,YAAIqyB,eAAe,OAAnB,YAAoC;AAClC,8BADkC,IAClC;AAL8B;;AAQhC,YAAIryB,iBAAJ,uCAAkD;AAChDmyB,mCADgD,SAChDA;AADgD;AARlB;;AAahC,gCAAsB5qB,qCAbU,QAahC;;AACA,eAdgC,qBAchC;;AAEA,YAAI,CAAJ,OAAY;AACV4qB,mCADU,SACVA;AADF,eAEO;AACLA,kCADK,KACLA;AAnB8B;AAR7B,OAQL;;AAuBA,UAAIthB,MAAM,KA/BL,mBA+BK,EAAV;;AACA,UAAIyhB,eAAe,oBAAoB;AAAElC,eAAO,KAhC3C;AAgCkC,OAApB,CAAnB;;AACA,UAAImC,yBAA0BC,SAA1BD,sBAA0BC,KAAD,EAAU;AACrC,YAAI,CAAC,wCAAL,MAAK,CAAL,EAAkD;AAChD,kCAAsBjrB,qCAD0B,MAChD;;AACA,0BAAc,YAAM;AAClB,oCAAsBA,qCADJ,OAClB;AACAirB,gBAFkB;AAF4B,WAEhD;;AAFgD;AADb;;AASrCA,YATqC;AAjClC,OAiCL;;AAYA,UAAIC,gBAAgB;AAClBC,uBADkB;AAElBvC,kBAFkB;AAAA,OAApB;AAIA,UAAIkC,aAAa,kBAAkB,oBAjD9B,aAiD8B,CAAnC;AACAA,8BAlDK,sBAkDLA;AAEAA,8BAAwB,YAAW;AACjCD,yBADiC,IACjCA;AADFC,SAEG,iBAAgB;AACjBD,yBADiB,KACjBA;AAvDG,OAoDLC;AAKA,aAAOF,iBAzDF,OAyDL;AAtQmB;;;6BAyQrBQ,Q,EAAmB;AACjB,UAAI,wBAAwBprB,qCAA5B,SAAqD;AAAA;AADpC;;AAIjB,UAAIqrB,MAAMjsB,SAJO,MAIjB;;AACA,UAAI,CAAJ,KAAU;AAAA;AALO;;AAQjB,UAAI,CAAC,KAAL,SAAmB;AACjB,wBAAgBA,SADC,OACjB;AATe;;AAYjB,4BAAsBY,qCAZL,QAYjB;;AAEA,UAAIsJ,MAAM,yBAdO,IAcP,CAAV;;AACA,UAAIihB,SAASjhB,IAfI,MAejB;;AACA,UAAI+hB,aAAa,IAAId,OAArB,OAAmC;AACjCjhB,iCAAyB+hB,IAAzB/hB,OAAoC+hB,IAApC/hB,cACoBihB,OADpBjhB,OACkCihB,OAFD,MACjCjhB;;AAEA,aAHiC,qBAGjC;;AAHiC;AAhBlB;;AAwBjB,UAAIgiB,eAAef,gBAxBF,qBAwBjB;AACA,UAAIgB,gBAAgBhB,iBAzBH,qBAyBjB;AACA,UAAIiB,eAAehC,yCA1BF,aA0BEA,CAAnB;AAEA,UAAIiC,kBAAkBD,wBA5BL,IA4BKA,CAAtB;;AAEA,aAAOF,eAAeD,IAAfC,SAA4BC,gBAAgBF,IAAnD,QAA+D;AAC7DC,yBAD6D,CAC7DA;AACAC,0BAF6D,CAE7DA;AAhCe;;AAkCjBE,2CAAqCJ,IAArCI,OAAgDJ,IAAhDI,4BAlCiB,aAkCjBA;;AAEA,aAAOH,eAAe,IAAIf,OAA1B,OAAwC;AACtCkB,yFAEgCH,gBAFhCG,GAEmDF,iBAHb,CACtCE;AAGAH,yBAJsC,CAItCA;AACAC,0BALsC,CAKtCA;AAzCe;;AA2CjBjiB,2EACoBihB,OADpBjhB,OACkCihB,OA5CjB,MA2CjBjhB;;AAEA,WA7CiB,qBA6CjB;AAtTmB;;;iCAgUrBoiB,K,EAAoB;AAAA;;AAClB,uBAAkB,oCADA,IAClB;AAEA,wCAAkC;AAAEvxB,cAAM,KAA1C;AAAkC,OAAlC,wBACqChC,aAAD,EAAS;AAC3C,8BAD2C,GAC3C;AALgB,OAGlB;;AAKA,UAAI,wBAAwB6H,qCAA5B,UAAsD;AAAA;AARpC;;AAYlB,yCAAmC;AAAE7F,cAAM,KAA3C;AAAmC,OAAnC,qCACkDwxB,mBAAD,EAAe;AAC9D,YAAI,OAAJ,OAAgB;AACd,kDADc,SACd;AADF,eAEO,IAAI,yCAAuC,OAA3C,QAAwD;AAC7D,mDAD6D,SAC7D;AAJ4D;AAb9C,OAYlB;AA5UmB;;;wBAyTR;AACX,aAAQ,0BAA0B,KAA1B,YAA2C,KADxC,EACX;AA1TmB;;;8BAsVJ;AACfnC,uBADe,aACfA;AAvVmB;;;;;;;;;;;;;;;;;;;;AClFvB;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;IAkBA,S;;;;;;;;;;;;;0CAKoE;AAAA,UAAlD,OAAkD,QAAlD,OAAkD;AAAA,+BAAvCoC,QAAuC;AAAA,UAAvCA,QAAuC,8BAAlD,IAAkD;AAAA,iCAAtBrgC,UAAsB;AAAA,UAAtBA,UAAsB,gCAAlEsgC,IAAkE;;AAChE,UAAI,aAAa,CAAC,KAAlB,sBAA6C;AAC3C,YAAMjf,OAAOkf,qBAAqBA,QADS,UAC3C;AACA,YAAMphB,QAAQkC,OAAOkf,QAFsB,WAE3C;AAF2C,8BAGN,KAHM;AAAA,YAGrC,UAHqC,mBAGrC,UAHqC;AAAA,YAGrC,WAHqC,mBAGrC,WAHqC;;AAI3C,YAAI,gCACAlf,OADA,cACqBlC,QAAQrQ,aADjC,aAC2D;AACzDuxB,qBAAW;AAAEhf,kBAAF;AAAWH,iBAAX;AAAA,WAAXmf;AANyC;AADmB;;AAUhE,qFAAsB;AAAEE,eAAF,EAAEA,OAAF;AAAWF,gBAAX,EAAWA,QAAX;AAAqBrgC,kBAArB,EAAqBA;AAArB,OAAtB;AAf+B;;;uCAkBd;AACjB,UAAI,KAAJ,sBAA+B;AAG7B,eAAO,KAHsB,sBAGtB,EAAP;AAJe;;AAAA;AAlBc;;;kCA2BjCwgC,Y,EAA4B;AAC1B,UAAI,KAAJ,sBAA+B;AAAA;AADL;;AAI1B,UAAIC,YAAY,KAJU,kBAI1B;AACA,UAAIC,oBALsB,KAK1B;AAL0B;AAAA;AAAA;;AAAA;AAO1B,uKAAiC;AAAA,cAAjC,IAAiC;;AAC/B,cAAI9xB,eAAJ,KAAwB;AAAA;AADO;;AAI/B,cAAIA,YAAJ,WAA2B;AACzB8xB,gCADyB,IACzBA;AADyB;AAJI;AAPP;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAgB1B,UAAI,CAAJ,mBAAwB;AACtBD,oBAAYE,gBADU,EACtBF;AAjBwB;;AAmB1B,iCAnB0B,SAmB1B;AA9C+B;;;wBACD;AAC9B,aAAOr1B,yDAA0C,KADnB,MACvBA,CAAP;AAF+B;;;;EAAnC,uB;;;;;;;;;;;;;;;;ACHA;;AAQA;;AAvBA;;AAAA;;AAAA;;AAAA;;AAAA;;;;;;;;AA8BA,IAAMw1B,qBA9BN,EA8BA;;AAsCA,iCAAiC;AAC/B,MAAIhT,OAD2B,EAC/B;;AACA,cAAY,gBAAe;AACzB,QAAIzd,IAAIyd,aADiB,IACjBA,CAAR;;AACA,QAAIzd,KAAJ,GAAY;AACVyd,qBADU,CACVA;AAHuB;;AAKzBA,cALyB,IAKzBA;;AACA,QAAIA,cAAJ,MAAwB;AACtBA,mBADsB,OACtBA;AAPuB;AAFI,GAE/B;;AAiBA,gBAAc,gCAA+B;AAC3CtK,WAD2C,OAC3CA;;AACA,qBAAiB;AACf,UAAMud,gBAAgB,IADP,GACO,EAAtB;;AACA,WAAK,IAAI1wB,IAAJ,GAAW2wB,OAAOC,YAAvB,QAA2C5wB,IAA3C,MAAqD,EAArD,GAA0D;AACxD0wB,0BAAkBE,eADsC,EACxDF;AAHa;;AAKfG,4CAAuB,gBAAe;AACpC,eAAOH,kBAAkBjyB,KADW,EAC7BiyB,CAAP;AANa,OAKfG;AAPyC;;AAW3C,WAAOpT,cAAP,MAA2B;AACzBA,mBADyB,OACzBA;AAZyC;AAnBd,GAmB/B;AAvFF;;AAwGA,yCAAyC;AACvC,MAAI/iB,aAAJ,UAA2B;AACzB,WADyB,IACzB;AAFqC;;AAIvC,MAAIC,SAASD,WAATC,YAAJ,OAA2C;AAGzC,WAHyC,IAGzC;AAPqC;;AASvC,SATuC,KASvC;AAjHF;;IAwHA,U;;;AAIE8P,+BAAqB;AAAA;;AAAA;;AACnB,QAAI,qBAAJ,YAAqC;AACnC,YAAM,UAD6B,+BAC7B,CAAN;AAFiB;;AAInB,iBAAa,iBAJM,IAInB;AAEA,qBAAiB6M,QANE,SAMnB;AACA,kBAAcA,kBAAkBA,kBAPb,iBAOnB;AACA,oBAAgBA,oBARG,kCAQnB;AACA,uBAAmBA,uBAAuB,IATvB,mCASuB,EAA1C;AACA,2BAAuBA,2BAVJ,IAUnB;AACA,0BAAsBA,0BAXH,IAWnB;AACA,6BAAyBA,6BAZN,KAYnB;AACA,yBAAqBpE,iBAAiBoE,QAAjBpE,iBACnBoE,QADmBpE,gBACKja,wBAdP,MAanB;AAEA,8BAA0Bqe,8BAfP,EAenB;AACA,kCAA8BA,kCAhBX,KAgBnB;AACA,iCAA6BA,iCAjBV,KAiBnB;AACA,oBAAgBA,oBAAoB7V,uBAlBjB,MAkBnB;AACA,uBAAmB6V,uBAnBA,KAmBnB;AACA,0BAAsBA,0BApBH,KAoBnB;AACA,2BAAuBA,QArBJ,eAqBnB;AACA,gBAAYA,gBAtBO,kBAsBnB;AAEA,iCAA6B,CAACA,QAxBX,cAwBnB;;AACA,QAAI,KAAJ,uBAAgC;AAE9B,4BAAsB,IAFQ,sCAER,EAAtB;AACA,oCAH8B,IAG9B;AAHF,WAIO;AACL,4BAAsBA,QADjB,cACL;AA9BiB;;AAiCnB,kBAAckV,2BAAY,KAAZA,WAA4B,wBAjCvB,IAiCuB,CAA5BA,CAAd;AACA,iCAA6BxoB,gCAlCV,OAkCnB;;AACA,SAnCmB,UAmCnB;;AAEA,QAAI,KAAJ,mBAA4B;AAC1B,gCAD0B,mBAC1B;AAtCiB;;AA0CnBzG,2BAAuB,YAAM;AAC3B,gDAAyC;AAAE/E,gBADhB;AACc,OAAzC;AA3CiB,KA0CnB+E;AA9Ca;;;;gCAuDfuzB,K,EAAmB;AACjB,aAAO,YADU,KACV,CAAP;AAxDa;;;0CA8FfC,G,EAAyD;AAAA,UAA9BC,oBAA8B,uEAAzDD,KAAyD;;AACvD,UAAI,4BAAJ,KAAqC;AACnC,kCAA0B;AACxB,eADwB,qBACxB;AAFiC;;AAInC,eAJmC,IAInC;AALqD;;AAQvD,UAAI,EAAE,WAAWE,OAAO,KAAxB,UAAI,CAAJ,EAA0C;AACxC,eADwC,KACxC;AATqD;;AAWvD,gCAXuD,GAWvD;AAEA,6CAAuC;AACrCz4B,gBADqC;AAErC3I,oBAFqC;AAGrCqhC,mBAAW,oBAAoB,iBAAiBD,MAHX,CAGN;AAHM,OAAvC;;AAMA,gCAA0B;AACxB,aADwB,qBACxB;AApBqD;;AAsBvD,aAtBuD,IAsBvD;AApHa;;;gCA+OfjT,W,EAAyB;AAAA;;AACvB,UAAI,KAAJ,aAAsB;AACpB,aADoB,gBACpB;;AACA,aAFoB,UAEpB;;AAEA,YAAI,KAAJ,gBAAyB;AACvB,0CADuB,IACvB;AALkB;AADC;;AAUvB,yBAVuB,WAUvB;;AACA,UAAI,CAAJ,aAAkB;AAAA;AAXK;;AAcvB,UAAI3C,aAAa3kB,YAdM,QAcvB;AAEA,UAAIy6B,kBAhBmB,wCAgBvB;AACA,0BAAoBA,gBAjBG,OAiBvB;AAEAA,mCAA6B,YAAM;AACjC,iCADiC,IACjC;;AACA,gDAAsC;AACpC34B,kBADoC;AAEpC6iB,oBAFoC,EAEpCA;AAFoC,SAAtC;AArBqB,OAmBvB8V;AAQA,UAAMC,4BA3BiB,wCA2BvB;AACA,6BAAuBA,0BA5BA,OA4BvB;;AAEA,UAAIC,2BAA4B3tB,SAA5B2tB,wBAA4B3tB,SAAD,EAAc;AAC3CA,gCAAwB,YAAM;AAI5B,8BAJ4B,QAI5B;AALyC,SAC3CA;;AAMAA,+BAAuB,YAAM;AAC3B,cAAI,CAAC0tB,0BAAL,SAAwC;AACtCA,sCADsC,OACtCA;AAFyB;AAPc,SAO3C1tB;AArCqB,OA8BvB;;AAcA,UAAI1F,mBAAmBtH,oBA5CA,CA4CAA,CAAvB;AACA,8BA7CuB,gBA6CvB;AAIAsH,4BAAuBO,iBAAD,EAAa;AACjC,YAAI4uB,QAAQ,OADqB,YACjC;AACA,YAAID,WAAW3uB,oBAAoB;AAAE4uB,iBAAOA,QAFX;AAEE,SAApB5uB,CAAf;;AACA,aAAK,IAAI6uB,UAAT,GAAsBA,WAAtB,YAA6C,EAA7C,SAAwD;AACtD,cAAIkE,mBADkD,IACtD;;AACA,cAAI,yBAAuBr4B,wBAA3B,SAAkD;AAChDq4B,+BADgD,MAChDA;AAHoD;;AAKtD,cAAI5tB,WAAW,+BAAgB;AAC7B/T,uBAAW,OADkB;AAE7BF,sBAAU,OAFmB;AAG7B0iB,gBAH6B;AAI7Bgb,iBAJ6B,EAI7BA,KAJ6B;AAK7BG,6BAAiBJ,SALY,KAKZA,EALY;AAM7BrzB,4BAAgB,OANa;AAO7By3B,4BAP6B,EAO7BA,gBAP6B;AAQ7Bt3B,2BAAe,OARc;AAS7Bu3B,oCAT6B;AAU7Bt3B,gCAAoB,OAVS;AAW7BC,oCAAwB,OAXK;AAY7BJ,sBAAU,OAZmB;AAa7BC,yBAAa,OAbgB;AAc7BK,4BAAgB,OAda;AAe7BC,6BAAiB,OAfY;AAgB7BxC,kBAAM,OAhBuB;AAAA,WAAhB,CAAf;AAkBAw5B,mCAvBsD,QAuBtDA;;AACA,6BAxBsD,QAwBtD;AA3B+B;;AA6BjC,YAAI,uBAAqBlyB,qBAAzB,MAA0C;AACxC,iBADwC,iBACxC;AA9B+B;;AAoCjCiyB,+CAAuC,YAAM;AAC3C,cAAI,OAAJ,gBAAyB;AACvB,8CADuB,WACvB;AAFyC;;AAK3C,cAAI16B,0BAAJ,kBAAIA,CAAJ,EAAmD;AAEjDy6B,4BAFiD,OAEjDA;AAFiD;AALR;;AAU3C,cAAIK,eAVuC,UAU3C;;AAV2C,qCAWlCpE,QAXkC;AAYzC12B,+CAAmC6H,iBAAD,EAAa;AAC7C,kBAAImF,WAAW,cAAY0pB,WADkB,CAC9B,CAAf;;AACA,kBAAI,CAAC1pB,SAAL,SAAuB;AACrBA,oCADqB,OACrBA;AAH2C;;AAK7C,wDAAuCnF,QALM,GAK7C;;AACA,kBAAI,mBAAJ,GAA0B;AACxB4yB,gCADwB,OACxBA;AAP2C;AAA/Cz6B,eASIiC,gBAAD,EAAY;AACbD,6FADa,MACbA;;AAEA,kBAAI,mBAAJ,GAA0B;AACxBy4B,gCADwB,OACxBA;AAJW;AAVuC,aACtDz6B;AAZyC;;AAW3C,eAAK,IAAI02B,WAAT,GAAsBA,YAAtB,YAA6C,EAA7C,UAAwD;AAAA,kBAA/CA,QAA+C;AAXb;AApCZ,SAoCjCgE;;AA+BA,8CAAoC;AAAE54B,kBAnEL;AAmEG,SAApC;;AAEA,YAAI,OAAJ,uBAAgC;AAC9B,iBAD8B,MAC9B;AAtE+B;AAAnCwF,kBAwEUrF,gBAAD,EAAY;AACnBD,qDADmB,MACnBA;AA1HqB,OAiDvBsF;AAhSa;;;kCAgXfwvB,M,EAAsB;AACpB,UAAI,CAAC,KAAL,aAAuB;AAAA;AADH;;AAIpB,UAAI,CAAJ,QAAa;AACX,2BADW,IACX;AADF,aAEO,IAAI,EAAE,yBACA,8BAA8BztB,OADpC,MAAI,CAAJ,EACoD;AACzD,2BADyD,IACzD;AACArH,gCAAiB,KAFwC,KAEzDA;AAHK,aAIA;AACL,2BADK,MACL;AAXkB;;AAcpB,WAAK,IAAIsH,IAAJ,GAAWM,KAAK,YAArB,QAAyCN,IAAzC,IAAiDA,CAAjD,IAAsD;AACpD,YAAI0D,WAAW,YADqC,CACrC,CAAf;AACA,YAAIhQ,QAAQ,oBAAoB,iBAFoB,CAEpB,CAAhC;AACAgQ,8BAHoD,KAGpDA;AAjBkB;AAhXP;;;iCAqYF;AACX,oBADW,EACX;AACA,gCAFW,CAEX;AACA,2BAHW,uBAGX;AACA,gCAJW,IAIX;AACA,yBALW,IAKX;AACA,qBAAe,sBANJ,kBAMI,CAAf;AACA,uBAPW,IAOX;AACA,4BARW,CAQX;AACA,4BATW,EASX;AACA,6BAVW,KAUX;AACA,yBAAmBzE,qBAXR,QAWX;AACA,yBAAmBE,qBAZR,IAYX;AAGA,gCAfW,EAeX;;AAEA,WAjBW,iBAiBX;AAtZa;;;oCAyZC;AACd,UAAI,oBAAJ,GAA2B;AAAA;AADb;;AAId,WAJc,MAId;AA7Za;;;0CAgamD;AAAA,UAAlD,OAAkD,QAAlD,OAAkD;AAAA,+BAAvC+wB,QAAuC;AAAA,UAAvCA,QAAuC,8BAAlD,IAAkD;AAAA,iCAAtBrgC,UAAsB;AAAA,UAAtBA,UAAsB,gCAAlEsgC,IAAkE;AAChElP,6CADgE,QAChEA;AAjaa;;;yCAoafwQ,Q,EAAAA,Q,EAA2E;AAAA,UAAlCC,QAAkC,uEAA3ED,KAA2E;AAAA,UAAhBE,MAAgB,uEAA3EF,KAA2E;AACzE,gCAA0BG,SAD+C,QAC/CA,EAA1B;;AAEA,UAAIC,YAAY,KAAZA,eAAJ,QAAIA,CAAJ,EAA+C;AAC7C,oBAAY;AACV,kDAAwC;AACtCr5B,oBADsC;AAEtC20B,mBAFsC;AAGtC2E,yBAHsC;AAAA,WAAxC;AAF2C;;AAAA;AAH0B;;AAczE,WAAK,IAAI9xB,IAAJ,GAAWM,KAAK,YAArB,QAAyCN,IAAzC,IAAiDA,CAAjD,IAAsD;AACpD,8BADoD,QACpD;AAfuE;;AAiBzE,2BAjByE,QAiBzE;;AAEA,UAAI,CAAJ,UAAe;AACb,YAAIvB,OAAO,KAAX;AAAA,YADa,IACb;;AACA,YAAI,kBACA,EAAE,6BAA6B,KADnC,0BACI,CADJ,EACqE;AACnEA,iBAAO,eAD4D,UACnEA;AACA0nB,iBAAO,OAAO;AAAExb,kBAAT;AAAO,WAAP,EAAyB,eAAzB,MACC,eADD,UAAPwb;AALW;;AAQb,gCAAwB;AACtBt2B,sBADsB;AAEtBo4B,qBAFsB;AAGtBU,+BAHsB;AAAA,SAAxB;AA3BuE;;AAkCzE,8CAAwC;AACtCnwB,gBADsC;AAEtC20B,eAFsC;AAGtC2E,qBAAaH,oBAHyB;AAAA,OAAxC;;AAMA,UAAI,KAAJ,uBAAgC;AAC9B,aAD8B,MAC9B;AAzCuE;AApa5D;;;8BAidfI,K,EAAmC;AAAA,UAAlBL,QAAkB,uEAAnCK,KAAmC;AACjC,UAAI5E,QAAQzE,WADqB,KACrBA,CAAZ;;AAEA,UAAIyE,QAAJ,GAAe;AACb,0DADa,KACb;AADF,aAEO;AACL,YAAI/oB,cAAc,YAAY,0BADzB,CACa,CAAlB;;AACA,YAAI,CAAJ,aAAkB;AAAA;AAFb;;AAKL,YAAM4tB,YAAa,6BAA6B,KAL3C,iBAKL;AACA,YAAIC,WAAWD,gBANV,2BAML;AACA,YAAIE,WAAWF,gBAPV,0BAOL;;AAEA,YAAI,cAAc,KAAlB,yBAAgD;AAAA,sBACvB,oBADuB;AAC9C,kBAD8C;AAC9C,kBAD8C;AAT3C;;AAYL,YAAIG,iBAAkB,8BAAD,QAAC,IACD/tB,YADA,KAAC,GACmBA,YAbpC,KAYL;AAEA,YAAIguB,kBAAmB,+BAAD,QAAC,IACDhuB,YADA,MAAC,GACoBA,YAftC,KAcL;;AAEA;AACE;AACE+oB,oBADF,CACEA;AAFJ;;AAIE;AACEA,oBADF,cACEA;AALJ;;AAOE;AACEA,oBADF,eACEA;AARJ;;AAUE;AACEA,oBAAQxyB,yBADV,eACUA,CAARwyB;AAXJ;;AAaE;AAGE,gBAAIkF,kBAAkB7T,qEACH7jB,0BAJrB,cAIqBA,CADnB;AAEAwyB,oBAAQxyB,mCALV,eAKUA,CAARwyB;AAlBJ;;AAoBE;AACEz0B,oCACK,KAAH,KADFA,2BADF,KACEA;AArBJ;AAAA;;AAyBA,0DAzCK,IAyCL;AA9C+B;AAjdpB;;;4CAugBS;AACtB,UAAI,KAAJ,sBAA+B;AAE7B,uBAAe,KAAf,oBAF6B,IAE7B;AAHoB;;AAMtB,UAAIgL,WAAW,YAAY,0BANL,CAMP,CAAf;;AACA,2BAAqB;AAAE0sB,iBAAS1sB,SAPV;AAOD,OAArB;AA9gBa;;;8CA+hBsC;AAAA,UADlC,UACkC,SADlC,UACkC;AAAA,kCADpBukB,SACoB;AAAA,UADpBA,SACoB,gCADlC,IACkC;AAAA,wCAAhCU,mBAAgC;AAAA,UAAhCA,mBAAgC,sCADrD2J,KACqD;;AACnD,UAAI,CAAC,KAAL,aAAuB;AAAA;AAD4B;;AAInD,UAAM5uB,WAAYwP,gCACA,YAAYrjB,aALqB,CAKjC,CADlB;;AAEA,UAAI,CAAJ,UAAe;AACb6I,sBAAc,UAAG,KAAH,8CADD,UACC,4CAAdA;AADa;AANoC;;AAYnD,UAAI,6BAA6B,CAAjC,WAA6C;AAC3C,+CAD2C,IAC3C;;AAD2C;AAZM;;AAgBnD,UAAImX,IAAJ;AAAA,UAAWuC,IAhBwC,CAgBnD;AACA,UAAI7B,QAAJ;AAAA,UAAeC,SAAf;AAAA;AAAA,UAjBmD,WAiBnD;AACA,UAAIH,oBAAqB3M,wCAlB0B,IAkBnD;AACA,UAAI6uB,YAAa,qBAAoB7uB,SAApB,SAAsCA,SAAvC,KAAC,IACfA,SADc,KAAC,GAnBkC,mBAmBnD;AAEA,UAAI8uB,aAAc,qBAAoB9uB,SAApB,QAAqCA,SAAtC,MAAC,IAChBA,SADe,KAAC,GArBiC,mBAqBnD;AAEA,UAAIypB,QAvB+C,CAuBnD;;AACA,cAAQlF,aAAR;AACE;AACEpY,cAAIoY,UADN,CACMA,CAAJpY;AACAuC,cAAI6V,UAFN,CAEMA,CAAJ7V;AACA+a,kBAAQlF,UAHV,CAGUA,CAARkF;AAKAtd,cAAIA,iBARN,CAQEA;AACAuC,cAAIA,iBATN,UASEA;AAVJ;;AAYE,aAZF,KAYE;AACA;AACE+a,kBADF,UACEA;AAdJ;;AAgBE,aAhBF,MAgBE;AACA;AACE/a,cAAI6V,UADN,CACMA,CAAJ7V;AACA+a,kBAFF,YAEEA;;AAGA,cAAI/a,cAAc,KAAlB,WAAkC;AAChCvC,gBAAI,eAD4B,IAChCA;AACAuC,gBAAI,eAF4B,GAEhCA;AAPJ;;AAjBF;;AA2BE,aA3BF,MA2BE;AACA;AACEvC,cAAIoY,UADN,CACMA,CAAJpY;AACAU,kBAFF,SAEEA;AACAC,mBAHF,UAGEA;AACA2c,kBAJF,aAIEA;AAhCJ;;AAkCE;AACEtd,cAAIoY,UADN,CACMA,CAAJpY;AACAuC,cAAI6V,UAFN,CAEMA,CAAJ7V;AACA7B,kBAAQ0X,eAHV,CAGE1X;AACAC,mBAASyX,eAJX,CAIEzX;AACA,cAAIyhB,WAAW,6BALjB,2BAKE;AACA,cAAIC,WAAW,6BANjB,0BAME;AAEAO,uBAAc,8BAAD,QAAC,IAAD,KAAC,GARhB,mBAQEA;AAEAC,wBAAe,+BAAD,QAAC,IAAD,MAAC,GAVjB,mBAUEA;AAEAvF,kBAAQxyB,SAASA,SAATA,UAASA,CAATA,EAA+BA,SAZzC,WAYyCA,CAA/BA,CAARwyB;AA9CJ;;AAgDE;AACEz0B,wBAAc,UAAG,KAAH,8CACRuvB,aAFR,IACgB,wCAAdvvB;AAjDJ;AAAA;;AAsDA,UAAIy0B,SAASA,UAAU,KAAvB,eAA2C;AACzC,iCADyC,KACzC;AADF,aAEO,IAAI,uBAAJ,yBAA0C;AAC/C,iCAD+C,6BAC/C;AAjFiD;;AAoFnD,UAAIA,wBAAwB,CAAClF,UAA7B,CAA6BA,CAA7B,EAA2C;AACzC,6BAAqB;AACnBmI,mBAAS1sB,SADU;AAEnB7T,oBAFmB,EAEnBA;AAFmB,SAArB;;AADyC;AApFQ;;AA4FnD,UAAI8iC,eAAe,CACjBjvB,4CADiB,CACjBA,CADiB,EAEjBA,yCAAyCmM,IAAzCnM,OAAoD0O,IAFnC,MAEjB1O,CAFiB,CAAnB;AAIA,UAAIwN,OAAOvW,SAASg4B,gBAATh4B,CAASg4B,CAATh4B,EAA6Bg4B,gBAhGW,CAgGXA,CAA7Bh4B,CAAX;AACA,UAAIoW,MAAMpW,SAASg4B,gBAATh4B,CAASg4B,CAATh4B,EAA6Bg4B,gBAjGY,CAiGZA,CAA7Bh4B,CAAV;;AAEA,UAAI,CAAJ,qBAA0B;AAIxBuW,eAAOvW,eAJiB,CAIjBA,CAAPuW;AACAH,cAAMpW,cALkB,CAKlBA,CAANoW;AAxGiD;;AA0GnD,2BAAqB;AACnBqf,iBAAS1sB,SADU;AAEnBwsB,kBAAU;AAAEhf,cAAF,EAAEA,IAAF;AAAQH,aAAR,EAAQA;AAAR,SAFS;AAGnBlhB,kBAHmB,EAGnBA;AAHmB,OAArB;AAzoBa;;;oCAgpBf+iC,S,EAA2B;AACzB,UAAIhtB,eAAe,KADM,aACzB;AACA,UAAIrB,oBAAoB,KAFC,kBAEzB;AACA,UAAIsuB,uBACFnK,iDACA/tB,WAAWiL,eAAXjL,SADA+tB,MAJuB,iBAGzB;AAIA,UAAI74B,aAAao9B,UAPQ,EAOzB;AACA,UAAI6F,gBAAgB,WARK,UAQzB;AACAA,uBAAiB,WATQ,oBASzBA;AACA,UAAIC,kBAAkB,YAAYljC,aAVT,CAUH,CAAtB;AACA,UAAIF,YAAY,KAXS,SAWzB;AACA,UAAIqjC,UAAUD,6BACXpjC,uBAAuBs9B,UADZ8F,GAEXpjC,sBAAsBs9B,UAdA,CAYX8F,CAAd;AAGA,UAAIE,UAAUt4B,WAAWq4B,QAfA,CAeAA,CAAXr4B,CAAd;AACA,UAAIu4B,SAASv4B,WAAWq4B,QAhBC,CAgBDA,CAAXr4B,CAAb;AACAm4B,uBAAiB,sBAjBQ,MAiBzBA;AAEA,uBAAiB;AACfjjC,kBADe,EACfA,UADe;AAEfs9B,eAFe;AAGfpc,aAHe;AAIfG,cAJe;AAKfrS,kBAAU,KALK;AAMfi0B,qBANe,EAMfA;AANe,OAAjB;AAnqBa;;;kCA6qBfzC,Y,EAA4B;AAC1B,YAAM,UADoB,gCACpB,CAAN;AA9qBa;;;6BAirBN;AACP,UAAMhf,UAAU,KADT,gBACS,EAAhB;;AACA,UAAMmf,eAAenf,QAArB;AAAA,UAAoC8hB,kBAAkB3C,aAF/C,MAEP;;AAEA,UAAI2C,oBAAJ,GAA2B;AAAA;AAJpB;;AAOP,UAAMC,eAAez4B,6BAA6B,sBAP3C,CAOcA,CAArB;;AACA,wCARO,YAQP;;AAEA,gDAVO,OAUP;;AAEA,yBAZO,YAYP;;AAEA,2BAAqB0W,QAdd,KAcP;;AACA,+CAAyC;AACvC7Y,gBADuC;AAEvC0L,kBAAU,KAF6B;AAAA,OAAzC;AAhsBa;;;oCAssBfmvB,O,EAAyB;AACvB,aAAO,wBADgB,OAChB,CAAP;AAvsBa;;;4BA0sBP;AACN,qBADM,KACN;AA3sBa;;;6CA6uBU;AACvB,UAAI,CAAC,KAAL,YAAsB;AACpB,eAAO;AAAE1iB,iBADW;AACb,SAAP;AAFqB;;AAIvB,UAAMjN,WAAW,YAAY,0BAJN,CAIN,CAAjB;AAGA,UAAMyK,UAAUzK,SAPO,GAOvB;AAEA,UAAMG,OAAO;AACXsO,YAAIzO,SADO;AAEXmM,WAAG1B,qBAAqBA,QAFb;AAGXiE,WAAGjE,oBAAoBA,QAHZ;AAIXtK,cAJW;AAAA,OAAb;AAMA,aAAO;AAAEwO,eAAF;AAAeC,cAAf;AAA2B3B,eAAO,CAAlC,IAAkC;AAAlC,OAAP;AA5vBa;;;uCA+vBI;AACjB,aAAO+b,kCAAmB,KAAnBA,WAAmC,KAAnCA,cACmB,KAFT,uBACVA,CAAP;AAhwBa;;;kCAuwBfxD,U,EAA0B;AACxB,UAAI,CAAC,KAAL,aAAuB;AACrB,eADqB,KACrB;AAFsB;;AAIxB,UAAI,uBAAuBr5B,aAAa,KAAxC,YAAyD;AACvD6I,gCACK,KAAH,KADFA,+BADuD,UACvDA;AAEA,eAHuD,KAGvD;AAPsB;;AASxB,aAAO,mCAAmC,gBAAe;AACvD,eAAQmL,YAD+C,UACvD;AAVsB,OASjB,CAAP;AAhxBa;;;8BAqxBL;AACR,WAAK,IAAI7D,IAAJ,GAAWM,KAAK,YAArB,QAAyCN,IAAzC,IAAiDA,CAAjD,IAAsD;AACpD,YAAI,kBACA,kCAAkCsE,qCADtC,UACgE;AAC9D,yBAD8D,KAC9D;AAHkD;AAD9C;AArxBK;;;uCAiyBI;AACjB,WAAK,IAAItE,IAAJ,GAAWM,KAAK,YAArB,QAAyCN,IAAzC,IAAiDA,CAAjD,IAAsD;AACpD,YAAI,YAAJ,CAAI,CAAJ,EAAoB;AAClB,yBADkB,eAClB;AAFkD;AADrC;AAjyBJ;;;yCA8yBfytB,Q,EAA+B;AAAA;;AAC7B,UAAI/pB,SAAJ,SAAsB;AACpB,eAAOnG,gBAAgBmG,SADH,OACbnG,CAAP;AAF2B;;AAI7B,UAAI1N,aAAa6T,SAJY,EAI7B;;AACA,UAAI,oBAAJ,UAAI,CAAJ,EAAqC;AACnC,eAAO,oBAD4B,UAC5B,CAAP;AAN2B;;AAQ7B,UAAIlI,UAAU,0CAA2C+C,iBAAD,EAAa;AACnE,YAAI,CAACmF,SAAL,SAAuB;AACrBA,8BADqB,OACrBA;AAFiE;;AAInE,4CAJmE,IAInE;AACA,eALmE,OAKnE;AALY,kBAMJ/K,gBAAD,EAAY;AACnBD,0DADmB,MACnBA;AAEA,4CAHmB,IAGnB;AAjB2B,OAQf,CAAd;AAWA,wCAnB6B,OAmB7B;AACA,aApB6B,OAoB7B;AAl0Ba;;;mCAq0BfgJ,qB,EAAsC;AAAA;;AACpC,UAAI8uB,eAAe8C,yBAAyB,KADR,gBACQ,EAA5C;;AACA,UAAIC,cAAe,+BACA,YADA,QACoB,YAHH,IAEpC;AAEA,UAAI7vB,WAAW,qDACuC,KADvC,QAJqB,WAIrB,CAAf;;AAGA,oBAAc;AACZ,iDAAyC,YAAM;AAC7C,2CAD6C,QAC7C;AAFU,SACZ;;AAGA,eAJY,IAIZ;AAXkC;;AAapC,aAboC,KAapC;AAl1Ba;;;2CA21Bf8vB,Y,EAAAA,S,EAAAA,Q,EACqD;AAAA,UAA9BC,oBAA8B,uEADrDD,KACqD;AACnD,aAAO,yCAAqB;AAC1BE,oBAD0B,EAC1BA,YAD0B;AAE1BjkC,kBAAU,KAFgB;AAG1BgU,iBAH0B,EAG1BA,SAH0B;AAI1BypB,gBAJ0B,EAI1BA,QAJ0B;AAK1BvzB,wBAAgB,mCAAmC,KALzB;AAM1B85B,8BAAsB,oCANI;AAAA,OAArB,CAAP;AA71Ba;;;iDAi3BfE,O,EAAAA,O,EAE8C;AAAA,UAFC15B,kBAED,uEAF9C05B,EAE8C;AAAA,UADjBz5B,sBACiB,uEAF9Cy5B,KAE8C;AAAA,UAAjB97B,IAAiB,uEAF9C87B,kBAE8C;AAC5C,aAAO,qDAA2B;AAChCvD,eADgC,EAChCA,OADgC;AAEhC7xB,eAFgC,EAEhCA,OAFgC;AAGhCtE,0BAHgC,EAGhCA,kBAHgC;AAIhCC,8BAJgC,EAIhCA,sBAJgC;AAKhCN,qBAAa,KALmB;AAMhClC,yBAAiB,KANe;AAOhCG,YAPgC,EAOhCA;AAPgC,OAA3B,CAAP;AAp3Ba;;;uCAm5BI;AACjB,UAAIiK,gBAAgB,gBAAgB,oBAAmB;AACrD,YAAIorB,WAAWxpB,6BAA6B;AAAEypB,iBADO;AACT,SAA7BzpB,CAAf;AACA,eAAO;AACL6M,iBAAO2c,SADF;AAEL1c,kBAAQ0c,SAFH;AAGLruB,oBAAUquB,SAHL;AAAA,SAAP;AAHe,OACG,CAApB;;AAQA,UAAI,CAAC,KAAL,uBAAiC;AAC/B,eAD+B,aAC/B;AAVe;;AAYjB,UAAI0G,sBAAsBpV,qCAAsB1c,cAZ/B,CAY+BA,CAAtB0c,CAA1B;AACA,aAAO,kBAAkB,gBAAgB;AACvC,YAAIoV,wBAAwBpV,qCAA5B,IAA4BA,CAA5B,EAAyD;AACvD,iBADuD,IACvD;AAFqC;;AAIvC,eAAO;AACLjO,iBAAO4C,KADF;AAEL3C,kBAAQ2C,KAFH;AAGLtU,oBAAW,iBAAD,EAAC,IAHN;AAAA,SAAP;AAjBe,OAaV,CAAP;AAh6Ba;;;wCAq8BsB;AAAA,UAAnBhP,UAAmB,uEAArCgkC,IAAqC;AACnC,UAAM70B,aAAa,KAAnB;AAAA,UAAqC9F,SAAS,KADX,MACnC;AAEAA,kDACwB8F,eAAeC,qBAJJ,UAGnC/F;AAEAA,+CACwB8F,eAAeC,qBANJ,OAKnC/F;;AAGA,UAAI,CAAC,KAAD,eAAqB,CAAzB,YAAsC;AAAA;AARH;;AAcnC,UAAI,2BAA2B0E,MAAM,KAArC,kBAA+BA,CAA/B,EAA+D;AAC7D,uBAAe,KAAf,oBAD6D,IAC7D;AAfiC;;AAiBnC,6CAjBmC,IAiBnC;;AACA,WAlBmC,MAkBnC;AAv9Ba;;;wCAm/BsB;AAAA,UAAnB/N,UAAmB,uEAArCikC,IAAqC;;AACnC,UAAI,CAAC,KAAL,aAAuB;AAAA;AADY;;AAInC,UAAM56B,SAAS,KAAf;AAAA,UAA4B66B,QAAQ,KAJD,MAInC;AAEA76B,2BANmC,EAMnCA;;AAEA,UAAI,qBAAqBiG,qBAAzB,MAA0C;AACxC,aAAK,IAAIa,IAAJ,GAAW2wB,OAAOoD,MAAvB,QAAqC/zB,IAArC,MAA+C,EAA/C,GAAoD;AAClD9G,6BAAmB66B,SAD+B,GAClD76B;AAFsC;AAA1C,aAIO;AACL,YAAM86B,SAAS,mBADV,CACL;AACA,YAAIC,SAFC,IAEL;;AACA,aAAK,IAAIj0B,KAAJ,GAAW2wB,QAAOoD,MAAvB,QAAqC/zB,KAArC,OAA+C,EAA/C,IAAoD;AAClD,cAAIi0B,WAAJ,MAAqB;AACnBA,qBAAS3kC,uBADU,KACVA,CAAT2kC;AACAA,+BAFmB,QAEnBA;AACA/6B,+BAHmB,MAGnBA;AAHF,iBAIO,IAAI8G,WAAJ,QAAsB;AAC3Bi0B,qBAASA,iBADkB,KAClBA,CAATA;AACA/6B,+BAF2B,MAE3BA;AAPgD;;AASlD+6B,6BAAmBF,UAT+B,GASlDE;AAZG;AAZ4B;;AA4BnC,UAAI,CAAJ,YAAiB;AAAA;AA5BkB;;AA+BnC,6CA/BmC,IA+BnC;;AACA,WAhCmC,MAgCnC;AAnhCa;;;wBAmDE;AACf,aAAO,YADQ,MACf;AApDa;;;wBA8DM;AACnB,aAAO,KADY,eACnB;AA/Da;;;wBAqES;AACtB,aAAO,KADe,kBACtB;AAtEa,K;sBA4Ef,G,EAA2B;AACzB,UAAI,CAAC/gB,iBAAL,GAAKA,CAAL,EAA4B;AAC1B,cAAM,UADoB,sBACpB,CAAN;AAFuB;;AAIzB,UAAI,CAAC,KAAL,aAAuB;AAAA;AAJE;;AAQzB,UAAI,CAAC,gCAAL,IAAK,CAAL,EAAyE;AACvExa,gCACK,KAAH,KADFA,mCADuE,GACvEA;AATuB;AA5EZ;;;wBA2HQ;AACrB,aAAO,oBAAoB,iBAAiB,0BADvB,CACM,CAA3B;AA5Ha,K;sBAkIf,G,EAA0B;AACxB,UAAI,CAAC,KAAL,aAAuB;AAAA;AADC;;AAIxB,UAAI+F,OAAOwyB,MAJa,CAIxB;;AACA,UAAI,KAAJ,aAAsB;AACpB,YAAIjxB,IAAI,yBADY,GACZ,CAAR;;AACA,YAAIA,KAAJ,GAAY;AACVvB,iBAAOuB,IADG,CACVvB;AAHkB;AALE;;AAYxB,UAAI,CAAC,iCAAL,IAAK,CAAL,EAA0E;AACxE/F,gCACK,KAAH,KADFA,kCADwE,GACxEA;AAbsB;AAlIX;;;wBAuJI;AACjB,aAAO,iDAAuC,KAAvC,gBADU,uBACjB;AAxJa,K;sBA+Jf,G,EAAsB;AACpB,UAAIkF,MAAJ,GAAIA,CAAJ,EAAgB;AACd,cAAM,UADQ,wBACR,CAAN;AAFkB;;AAIpB,UAAI,CAAC,KAAL,aAAuB;AAAA;AAJH;;AAOpB,0BAPoB,KAOpB;AAtKa;;;wBA4KS;AACtB,aAAO,KADe,kBACtB;AA7Ka,K;sBAmLf,G,EAA2B;AACzB,UAAI,CAAC,KAAL,aAAuB;AAAA;AADE;;AAIzB,0BAJyB,KAIzB;AAvLa;;;wBA6LK;AAClB,aAAO,KADW,cAClB;AA9La,K;sBAoMf,Q,EAA4B;AAC1B,UAAI,CAACwD,+BAAL,QAAKA,CAAL,EAAgC;AAC9B,cAAM,UADwB,+BACxB,CAAN;AAFwB;;AAI1B,UAAI,CAAC,KAAL,aAAuB;AAAA;AAJG;;AAO1B,UAAI,wBAAJ,UAAsC;AAAA;AAPZ;;AAU1B,4BAV0B,QAU1B;AAEA,UAAIvR,aAAa,KAZS,kBAY1B;;AAEA,WAAK,IAAImQ,IAAJ,GAAWM,KAAK,YAArB,QAAyCN,IAAzC,IAAiDA,CAAjD,IAAsD;AACpD,YAAI0D,WAAW,YADqC,CACrC,CAAf;AACAA,wBAAgBA,SAAhBA,OAFoD,QAEpDA;AAhBwB;;AAoB1B,UAAI,KAAJ,oBAA6B;AAC3B,uBAAe,KAAf,oBAD2B,IAC3B;AArBwB;;AAwB1B,iDAA2C;AACzClL,gBADyC;AAEzCqlB,uBAFyC;AAGzChuB,kBAHyC,EAGzCA;AAHyC,OAA3C;;AAMA,UAAI,KAAJ,uBAAgC;AAC9B,aAD8B,MAC9B;AA/BwB;AApMb;;;wBAuOiB;AAE9B,YAAM,UAFwB,4CAExB,CAAN;AAzOa;;;wBA8sBe;AAG5B,aAAQ,oCACQ,qBAAqBoP,qBAJT,UAG5B;AAjtBa;;;wBAqtBY;AACzB,aAAO,+BAA+B+E,gCADb,UACzB;AAttBa;;;wBAytBkB;AAC/B,aAAO,+BAA+BA,gCADP,QAC/B;AA1tBa;;;wBA6tBoB;AACjC,aAAQ,oCACG,6BAA6B,eAFP,WACjC;AA9tBa;;;wBAkuBkB;AAC/B,aAAQ,oCACG,8BAA8B,eAFV,YAC/B;AAnuBa;;;wBAm4BS;AACtB,UAAIkwB,gBAAgB,YADE,CACF,CAApB;;AACA,WAAK,IAAIl0B,IAAJ,GAAWM,KAAK,YAArB,QAAyCN,IAAzC,IAAiD,EAAjD,GAAsD;AACpD,YAAI0D,WAAW,YADqC,CACrC,CAAf;;AACA,YAAIA,mBAAmBwwB,cAAnBxwB,SACAA,oBAAoBwwB,cADxB,QAC8C;AAC5C,iBAD4C,KAC5C;AAJkD;AAFhC;;AAStB,aATsB,IAStB;AA54Ba;;;wBA+6BE;AACf,aAAO,KADQ,WACf;AAh7Ba,K;sBAw7Bf,I,EAAqB;AACnB,UAAI,qBAAJ,MAA+B;AAAA;AADZ;;AAInB,UAAI,CAAC5yB,iCAAL,IAAKA,CAAL,EAA8B;AAC5B,cAAM,yCADsB,IACtB,EAAN;AALiB;;AAOnB,yBAPmB,IAOnB;AACA,kDAA4C;AAAE9I,gBAAF;AAAgBoL,YAAhB,EAAgBA;AAAhB,OAA5C;;AAEA,6BAA0C,KAVvB,kBAUnB;AAl8Ba;;;wBA69BE;AACf,aAAO,KADQ,WACf;AA99Ba,K;sBAs+Bf,I,EAAqB;AACnB,UAAI,qBAAJ,MAA+B;AAAA;AADZ;;AAInB,UAAI,CAACrC,iCAAL,IAAKA,CAAL,EAA8B;AAC5B,cAAM,yCADsB,IACtB,EAAN;AALiB;;AAOnB,yBAPmB,IAOnB;AACA,kDAA4C;AAAE/I,gBAAF;AAAgBoL,YAAhB,EAAgBA;AAAhB,OAA5C;;AAEA,6BAA0C,KAVvB,kBAUnB;AAh/Ba;;;;;;;;;;;;;;;;;;;;ACxHjB;;AAAA;;AAAA;;;;;;;;IA+BA,sB;;;AAIE6G,wCAEkC;AAAA,QAFtB,OAEsB,QAFtB,OAEsB;AAAA,QAFtB,OAEsB,QAFtB,OAEsB;AAAA,QAFtB,WAEsB,QAFtB,WAEsB;AAAA,QAFtB,eAEsB,QAFtB,eAEsB;AAAA,qCADpBxQ,kBACoB;AAAA,QADpBA,kBACoB,sCAFtB,EAEsB;AAAA,qCADKC,sBACL;AAAA,QADKA,sBACL,sCAFtB,KAEsB;AAAA,yBAApBrC,IAAoB;AAAA,QAApBA,IAAoB,0BAFlC4S,kBAEkC;;AAAA;;AAChC,mBADgC,OAChC;AACA,mBAFgC,OAEhC;AACA,uBAHgC,WAGhC;AACA,2BAJgC,eAIhC;AACA,8BALgC,kBAKhC;AACA,kCANgC,sBAMhC;AACA,gBAPgC,IAOhC;AAEA,eATgC,IAShC;AACA,sBAVgC,KAUhC;AAhByB;;;;2BAuB3BkS,Q,EAAqC;AAAA;;AAAA,UAApBwX,MAAoB,uEAArCxX,SAAqC;AACnC,kCAA4B;AAAEwX,cAA9B,EAA8BA;AAAF,OAA5B,OAA+CC,qBAAD,EAAiB;AAC7D,YAAI,MAAJ,YAAqB;AAAA;AADwC;;AAK7D,YAAIv4B,aAAa;AACfqxB,oBAAUA,eAAe;AAAEmH,sBADZ;AACU,WAAfnH,CADK;AAEfnQ,eAAK,MAFU;AAGfqX,qBAHe,EAGfA,WAHe;AAIf31B,gBAAM,MAJS;AAKfxE,8BAAoB,MALL;AAMfC,kCAAwB,MANT;AAOfN,uBAAa,MAPE;AAQflC,2BAAiB,MARF;AAAA,SAAjB;;AAWA,YAAI,MAAJ,KAAc;AAGZ48B,2CAHY,UAGZA;AAHF,eAIO;AAGL,cAAIF,uBAAJ,GAA8B;AAAA;AAHzB;;AAML,sBAAW9kC,uBANN,KAMMA,CAAX;AACA,gCAPK,iBAOL;;AACA,oCAAyB,MARpB,GAQL;;AACAuM,2BAAiB,MATZ,GASLA;;AAEAy4B,2CAXK,UAWLA;;AACA,+BAAoB,MAZf,GAYL;AAhC2D;AAD5B,OACnC;AAxByB;;;6BA6DlB;AACP,wBADO,IACP;AA9DyB;;;2BAiEpB;AACL,UAAI,CAAC,KAAL,KAAe;AAAA;AADV;;AAIL,sCAJK,MAIL;AArEyB;;;;;;;;IA4E7B,6B;;;;;;;;;iDAUEX,O,EAAAA,O,EAE8C;AAAA,UAFC15B,kBAED,uEAF9C05B,EAE8C;AAAA,UADjBz5B,sBACiB,uEAF9Cy5B,KAE8C;AAAA,UAAjB97B,IAAiB,uEAF9C87B,kBAE8C;AAC5C,aAAO,2BAA2B;AAChCvD,eADgC,EAChCA,OADgC;AAEhC7xB,eAFgC,EAEhCA,OAFgC;AAGhCtE,0BAHgC,EAGhCA,kBAHgC;AAIhCC,8BAJgC,EAIhCA,sBAJgC;AAKhCN,qBAAa,IALmB,mCAKnB,EALmB;AAMhC/B,YANgC,EAMhCA;AANgC,OAA3B,CAAP;AAbgC;;;;;;;;;;;;;;;;;;;;;;AC5FpC;;AAIA;;AAnBA;;AAAA;;;;;;;;;;;;;;AAsDA,IAAM08B,oBAAoBve,mEAtD1B,QAsDA;;IAKA,W;;;AAIEvL,gCAAqB;AAAA;;AACnB,QAAI9a,YAAY2nB,QADG,SACnB;AACA,QAAIgW,kBAAkBhW,QAFH,eAEnB;AAEA,cAAUA,QAJS,EAInB;AACA,uBAAmB,SAAS,KALT,EAKnB;AAEA,mBAPmB,IAOnB;AACA,qBARmB,IAQnB;AACA,oBATmB,CASnB;AACA,iBAAaA,iBAVM,uBAUnB;AACA,oBAXmB,eAWnB;AACA,yBAAqBgW,gBAZF,QAYnB;AACA,gCAbmB,KAanB;AACA,yBAAqBpa,iBAAiBoE,QAAjBpE,iBACnBoE,QADmBpE,gBACKja,wBAfP,MAcnB;AAEA,8BAA0Bqe,8BAhBP,EAgBnB;AACA,kCAA8BA,kCAjBX,KAiBnB;AACA,0BAAsBA,0BAlBH,KAkBnB;AACA,2BAAuBA,2BAnBJ,iBAmBnB;AAEA,oBAAgBA,oBArBG,kCAqBnB;AACA,0BAAsBA,QAtBH,cAsBnB;AACA,4BAAwBA,QAvBL,gBAuBnB;AACA,kCAA8BA,QAxBX,sBAwBnB;AACA,oBAAgBA,oBAAoB7V,uBAzBjB,MAyBnB;AACA,uBAAmB6V,uBA1BA,KA0BnB;AACA,gBAAYA,gBA3BO,kBA2BnB;AAEA,qBA7BmB,IA6BnB;AACA,8BAA0B,IA9BP,OA8BO,EAA1B;AACA,0BAAsBhT,qCA/BH,OA+BnB;AACA,kBAhCmB,IAgCnB;AACA,iBAjCmB,IAiCnB;AAEA,wBAnCmB,IAmCnB;AACA,uBApCmB,IAoCnB;AAEA,2BAtCmB,IAsCnB;AACA,qBAvCmB,IAuCnB;AACA,qBAxCmB,IAwCnB;AAEA,QAAIyY,MAAMztB,uBA1CS,KA0CTA,CAAV;AACAytB,oBA3CmB,MA2CnBA;AACAA,sBAAkBpiB,WAAW,cAAXA,SA5CC,IA4CnBoiB;AACAA,uBAAmBpiB,WAAW,cAAXA,UA7CA,IA6CnBoiB;AACAA,yCAAqC,KA9ClB,EA8CnBA;AACA,eA/CmB,GA+CnB;AAEAptB,0BAjDmB,GAiDnBA;AArDc;;;;+BAwDhB4+B,O,EAAoB;AAClB,qBADkB,OAClB;AACA,2BAAqBhwB,QAFH,MAElB;AAEA,UAAIiwB,gBAAiB,iBAAgB,KAAjB,aAAC,IAJH,GAIlB;AACA,sBAAgB,oBAAoB;AAAErB,eAAO,aAAT;AACEtuB,kBADF;AAAA,OAApB,CAAhB;AAEA,mBAAaN,QAPK,KAOlB;AACA,WARkB,KAQlB;AAhEc;;;8BAmEN;AACR,WADQ,KACR;;AACA,UAAI,KAAJ,SAAkB;AAChB,qBADgB,OAChB;AAHM;AAnEM;;;sCA6EuB;AAAA,UAAvBi2B,aAAuB,uEAAvCC,KAAuC;;AACrC,UAAI,CAAC,KAAL,WAAqB;AAAA;AADgB;;AAIrC,UAAIC,kBAAkB,eAJe,UAIrC;AACA,wCALqC,eAKrC;AAGAA,8BARqC,CAQrCA;AACAA,+BATqC,CASrCA;;AAEA,yBAAmB;AAEjB,uBAFiB,MAEjB;AAbmC;;AAerC,uBAfqC,IAerC;AA5Fc;;;4BA+FsC;AAAA,UAAhDC,aAAgD,uEAAtDjqB,KAAsD;AAAA,UAAzBkqB,eAAyB,uEAAtDlqB,KAAsD;AACpD,2BADoD,eACpD;AACA,4BAAsBpG,qCAF8B,OAEpD;AAEA,UAAIyY,MAAM,KAJ0C,GAIpD;AACAA,wBAAkBpiB,WAAW,cAAXA,SALkC,IAKpDoiB;AACAA,yBAAmBpiB,WAAW,cAAXA,UANiC,IAMpDoiB;AAEA,UAAI0R,aAAa1R,IARmC,UAQpD;AACA,UAAI8X,uBAAwBF,iBAAiB,KAAlB,SAACA,IATwB,IASpD;AACA,UAAIG,wBAAyBF,mBAAmB,KAAnBA,mBACA,qBADD,GAACA,IAVuB,IAUpD;;AAEA,WAAK,IAAI50B,IAAIyuB,oBAAb,GAAoCzuB,KAApC,GAA4CA,CAA5C,IAAiD;AAC/C,YAAI4Y,OAAO6V,WADoC,CACpCA,CAAX;;AACA,YAAIoG,iCAAiCC,0BAArC,MAAqE;AAAA;AAFtB;;AAK/C/X,wBAL+C,IAK/CA;AAjBkD;;AAmBpDA,0BAnBoD,aAmBpDA;;AAEA,iCAA2B;AAGzB,6BAHyB,IAGzB;AAHF,aAIO,IAAI,KAAJ,iBAA0B;AAC/B,6BAD+B,MAC/B;AACA,+BAF+B,IAE/B;AA3BkD;;AA8BpD,UAAI,CAAJ,sBAA2B;AACzB,YAAI,KAAJ,QAAiB;AACf,4CAA+B,KADhB,MACf;AAGA,8BAJe,CAIf;AACA,+BALe,CAKf;AACA,iBAAO,KANQ,MAMf;AAPuB;;AASzB,aATyB,eASzB;AAvCkD;;AAyCpD,UAAI,KAAJ,KAAc;AACZ,0CAA+B,KADnB,GACZ;AACA,eAAO,KAFK,GAEZ;AA3CkD;;AA8CpD,4BAAsBztB,uBA9C8B,KA8C9BA,CAAtB;AACA,sCA/CoD,aA+CpD;AACAytB,sBAAgB,KAhDoC,cAgDpDA;AA/Ic;;;2BAkJhB2R,K,EAAAA,Q,EAAwB;AACtB,mBAAavB,SAAS,KADA,KACtB;;AACA,UAAI,oBAAJ,aAAqC;AACnC,wBADmC,QACnC;AAHoB;;AAMtB,UAAIqB,gBAAiB,iBAAgB,KAAjB,aAAC,IANC,GAMtB;AACA,sBAAgB,oBAAoB;AAClCrB,eAAO,aAD2B;AAElCtuB,kBAFkC;AAAA,OAApB,CAAhB;;AAKA,UAAI,KAAJ,KAAc;AACZ,0BAAkB,KAAlB,KADY,IACZ;AAEA,+CAAuC;AACrCrG,kBADqC;AAErC3I,sBAAY,KAFyB;AAGrCklC,wBAHqC;AAAA,SAAvC;AAHY;AAZQ;;AAuBtB,UAAIC,sBAvBkB,KAuBtB;;AACA,UAAI,eAAe,uBAAnB,GAA6C;AAC3C,YAAIlG,cAAc,KADyB,WAC3C;;AACA,YAAK,CAACn0B,WAAW,cAAXA,SAAkCm0B,YAAnC,EAACn0B,GAAF,CAAC,KACCA,WAAW,cAAXA,UAAmCm0B,YAApC,EAACn0B,GADF,CAAC,IAED,KAFJ,iBAE0B;AACxBq6B,gCADwB,IACxBA;AALyC;AAxBvB;;AAiCtB,UAAI,KAAJ,QAAiB;AACf,YAAI,uBACC,6BADL,qBACwD;AACtD,4BAAkB,KAAlB,QADsD,IACtD;AAEA,iDAAuC;AACrCx8B,oBADqC;AAErC3I,wBAAY,KAFyB;AAGrCklC,0BAHqC;AAAA,WAAvC;AAHsD;AAFzC;;AAYf,YAAI,CAAC,KAAD,aAAmB,CAAC,yBAAxB,QAAwB,CAAxB,EAA4D;AAC1D,2BAAiB,YADyC,UAC1D;AACA,0CAF0D,UAE1D;AAda;AAjCK;;AAkDtB,UAAI,KAAJ,WAAoB;AAClB,0BAAkB,eADA,UAClB;AAnDoB;;AAqDtB,uBArDsB,IAqDtB;AAvMc;;;sCA8MyB;AAAA,UAAzBH,eAAyB,uEAAzCK,KAAyC;;AACvC,UAAI,KAAJ,WAAoB;AAClB,uBADkB,MAClB;AACA,yBAFkB,IAElB;AAHqC;;AAKvC,oBALuC,IAKvC;;AAEA,UAAI,KAAJ,WAAoB;AAClB,uBADkB,MAClB;AACA,yBAFkB,IAElB;AATqC;;AAWvC,UAAI,oBAAoB,KAAxB,iBAA8C;AAC5C,6BAD4C,MAC5C;AACA,+BAF4C,IAE5C;AAbqC;AA9MzB;;;iCA+NhBF,M,EAAgD;AAAA,UAA3BG,iBAA2B,uEAAhDH,KAAgD;AAE9C,UAAIxkB,QAAQ,cAFkC,KAE9C;AACA,UAAIC,SAAS,cAHiC,MAG9C;AACA,UAAIuM,MAAM,KAJoC,GAI9C;AACAvJ,2BAAqBA,gCAAgCuJ,kBACnDpiB,oBAN4C,IAK9C6Y;AAEAA,4BAAsBA,iCAAiCuJ,mBACrDpiB,qBAR4C,IAO9C6Y;AAGA,UAAI2hB,mBAAmB,yBACA,oCAXuB,QAU9C;AAEA,UAAIC,cAAcz6B,SAZ4B,gBAY5BA,CAAlB;AACA,UAAI06B,SAAJ;AAAA,UAAgBC,SAb8B,CAa9C;;AACA,UAAIF,sBAAsBA,gBAA1B,KAA+C;AAE7CC,iBAAS7kB,SAFoC,KAE7C6kB;AACAC,iBAAS/kB,QAHoC,MAG7C+kB;AAjB4C;;AAmB9C,UAAIP,eAAe,4EAnB2B,GAmB9C;AAEAvhB,+BArB8C,YAqB9CA;;AAEA,UAAI,KAAJ,WAAoB;AAKlB,YAAI+hB,oBAAoB,eALN,QAKlB;AACA,YAAIC,uBAAuB,yBACzBD,kBAPgB,QAMlB;AAEA,YAAIE,kBAAkB96B,SARJ,oBAQIA,CAAtB;AACA,YAAIwyB,QAAQ5c,QAAQglB,kBATF,KASlB;;AACA,YAAIE,0BAA0BA,oBAA9B,KAAuD;AACrDtI,kBAAQ5c,QAAQglB,kBADqC,MACrDpI;AAXgB;;AAalB,YAAIuG,eAAe,eAbD,YAalB;AACA,oBAdkB,MAclB;;AACA;AACE;AACEgC,qBAASC,SADX,CACED;AAFJ;;AAIE;AACEA,qBADF,CACEA;AACAC,qBAAS,MAAMjC,mBAFjB,MAEEiC;AANJ;;AAQE;AACED,qBAAS,MAAMhC,mBADjB,KACEgC;AACAC,qBAAS,MAAMjC,mBAFjB,MAEEiC;AAVJ;;AAYE;AACED,qBAAS,MAAMhC,mBADjB,KACEgC;AACAC,qBAFF,CAEEA;AAdJ;;AAgBE;AACEj9B,0BADF,qBACEA;AAjBJ;AAAA;;AAqBAg7B,uCACE,yHArCgB,GAoClBA;AAIAA,6CAxCkB,OAwClBA;AA/D4C;;AAkE9C,UAAIwB,qBAAqB,KAAzB,iBAA+C;AAC7C,oCAA4B,KAA5B,UAD6C,SAC7C;AAnE4C;AA/NhC;;;iCA8ShBU,C,EAAAA,C,EAAmB;AACjB,aAAO,mCADU,CACV,CAAP;AA/Sc;;;2BAkTT;AAAA;;AACL,UAAI,wBAAwBtxB,qCAA5B,SAAqD;AACnD5L,sBADmD,qCACnDA;AACA,aAFmD,KAEnD;AAHG;;AAML,UAAI,CAAC,KAAL,SAAmB;AACjB,8BAAsB4L,qCADL,QACjB;AACA,eAAO/G,eAAe,UAFL,oBAEK,CAAfA,CAAP;AARG;;AAWL,4BAAsB+G,qCAXjB,OAWL;AAEA,UAAI/F,UAAU,KAbT,OAaL;AACA,UAAIwe,MAAM,KAdL,GAcL;AAGA,UAAI8Y,gBAAgBvmC,uBAjBf,KAiBeA,CAApB;AACAumC,kCAA4B9Y,UAlBvB,KAkBL8Y;AACAA,mCAA6B9Y,UAnBxB,MAmBL8Y;AACAA,kCApBK,eAoBLA;;AAEA,UAAI,wBAAwB,qBAA5B,KAAsD;AAEpD9Y,wCAAgC,qBAFoB,GAEpDA;AAFF,aAGO;AACLA,wBADK,aACLA;AA1BG;;AA6BL,UAAI+Y,YA7BC,IA6BL;;AACA,UAAI,uBAAuB78B,wBAAvB,WAAgD,KAApD,kBAA2E;AACzE,YAAIy6B,eAAepkC,uBADsD,KACtDA,CAAnB;AACAokC,iCAFyE,WAEzEA;AACAA,mCAA2BmC,oBAH8C,KAGzEnC;AACAA,oCAA4BmC,oBAJ6C,MAIzEnC;;AACA,YAAI,wBAAwB,qBAA5B,KAAsD;AAEpD3W,yCAA+B,qBAFqB,GAEpDA;AAFF,eAGO;AACLA,0BADK,YACLA;AATuE;;AAYzE+Y,oBAAY,2DAC2B,UAD3B,GACwC,KADxC,UAEN,uBAAuB78B,wBAd4C,cAY7D,CAAZ68B;AA1CG;;AA8CL,uBA9CK,SA8CL;AAEA,UAAIxG,yBAhDC,IAgDL;;AACA,UAAI,KAAJ,gBAAyB;AACvBA,iCAA0BC,oCAAD,EAAU;AACjC,cAAI,CAAC,uCAAL,KAAK,CAAL,EAAkD;AAChD,mCAAsBjrB,qCAD0B,MAChD;;AACA,2BAAc,YAAM;AAClB,qCAAsBA,qCADJ,OAClB;AACAirB,kBAFkB;AAF4B,aAEhD;;AAFgD;AADjB;;AASjCA,cATiC;AADZ,SACvBD;AAlDG;;AA+DL,UAAMyG;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,qCAAkB;AAAA;AAAA;AAAA;AAAA;AAItB,sBAAIC,cAAc,MAAlB,WAAkC;AAChC,sCADgC,IAChC;AALqC;;AAAjB,wBAQlBj5B,iBAAJ,qCARsB;AAAA;AAAA;AAAA;;AASpB,gCADgD,IAChD;AAToB;;AAAA;AAatB,yCAAsBuH,qCAbiB,QAavC;;AAEA,sBAAI,MAAJ,gBAAyB;AACvByY,oCAAgB,MADO,cACvBA;AACA,2BAAO,MAFgB,cAEvB;AAjBqC;;AAmBvC,wCAnBuC,IAmBvC;;AAEA,gCArBuC,KAqBvC;AACA,gCAAaxe,QAtB0B,KAsBvC;;AACA,sBAAI,MAAJ,aAAsB;AACpB,0BADoB,WACpB;AAxBqC;;AA0BvC,0DAAuC;AACrC/F,4BADqC;AAErC3I,gCAAY,MAFyB;AAGrCklC,kCAHqC;AAAA,mBAAvC;;AA1BsB,uBAgCtB,KAhCsB;AAAA;AAAA;AAAA;;AAAA,wBAgCX,KAhCW;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,SAAlBgB;;AAAAA;AAAAA;AAAAA;AAAAA,SAAN;;AAqCA,UAAIC,YAAY,kBAAkBv0B,uBAAlB,MACd,gBADc,aACd,CADc,GAEd,mBAtGG,aAsGH,CAFF;AAGAu0B,mCAvGK,sBAuGLA;AACA,uBAxGK,SAwGL;AAEA,UAAIC,gBAAgB,uBAAuB,YAAW;AACpD,eAAO,2BAA2B,YAAY;AAC5C,yBAAe;AACb,gBAAIC,iBAAiB33B,0BAA0B;AAC7CwkB,mCAFW;AACkC,aAA1BxkB,CAArB;AAGAu3B,2CAJa,cAIbA;AACAA,sBALa,MAKbA;AAN0C;AADM,SAC7C,CAAP;AADkB,SAUjB,kBAAiB;AAClB,eAAOC,gBADW,MACXA,CAAP;AArHG,OA0Ge,CAApB;;AAcA,UAAI,KAAJ,wBAAiC;AAC/B,YAAI,CAAC,KAAL,iBAA2B;AACzB,iCAAuB,uEACsB,KADtB,oBAEQ,KAFR,wBAEqC,KAHnC,IACF,CAAvB;AAF6B;;AAM/B,oCAA4B,KAA5B,UAN+B,SAM/B;AA9HG;;AAgILhZ,sCAhIK,IAgILA;;AAEA,UAAI,KAAJ,cAAuB;AACrB,aADqB,YACrB;AAnIG;;AAqIL,aArIK,aAqIL;AAvbc;;;kCA0bhBoZ,a,EAA6B;AAC3B,UAAIjH,mBADuB,wCAC3B;AACA,UAAI/pB,SAAS;AACX3J,iBAAS0zB,iBADE;AAEXkH,wBAFW,4BAEXA,IAFW,EAEY;AACrB7G,cADqB;AAFZ;AAKX8G,cALW,oBAKF;AACPjH,qBADO,MACPA;AANS;AAAA,OAAb;AAUA,UAAIlC,WAAW,KAZY,QAY3B;AACA,UAAI2B,SAASv/B,uBAbc,QAadA,CAAb;AACAu/B,kBAAY,KAde,WAc3BA;AAIAA,oCAlB2B,QAkB3BA;AACA,UAAIyH,iBAnBuB,IAmB3B;;AACA,UAAIC,aAAa,SAAbA,UAAa,GAAY;AAC3B,4BAAoB;AAClB1H,iCADkB,QAClBA;AACAyH,2BAFkB,KAElBA;AAHyB;AApBF,OAoB3B;;AAOAT,gCA3B2B,MA2B3BA;AACA,oBA5B2B,MA4B3B;AAIEhH,yBAhCyB,IAgCzBA;AAGF,UAAIjhB,MAAMihB,wBAAwB;AAAEX,eAnCT;AAmCO,OAAxBW,CAAV;AACA,UAAIC,cAAcC,8BApCS,GAoCTA,CAAlB;AACA,yBArC2B,WAqC3B;;AAEA,UAAI,KAAJ,gBAAyB;AACvB,YAAIyH,qBAAqBtJ,eAAe;AAAEC,iBADnB;AACiB,SAAfD,CAAzB;AAGA4B,0BAAkB0H,2BAA2BtJ,SAJtB,KAIvB4B;AACAA,0BAAkB0H,4BAA4BtJ,SALvB,MAKvB4B;AACAA,6BANuB,IAMvBA;AA7CyB;;AAgD3B,UAAI,uBAAJ,GAA8B;AAC5B,YAAI2H,mBAAmBvJ,iBAAiBA,SADZ,MAC5B;AACA,YAAIwJ,WAAW/7B,UAAU,uBAFG,gBAEbA,CAAf;;AACA,YAAIm0B,6BAA6BA,iBAAjC,UAA4D;AAC1DA,2BAD0D,QAC1DA;AACAA,2BAF0D,QAE1DA;AACAA,+BAH0D,IAG1DA;AACA,sCAJ0D,IAI1D;AAJF,eAKO;AACL,sCADK,KACL;AAT0B;AAhDH;;AA6D3B,UAAI6H,MAAMC,mCAAoB9H,YA7DH,EA6DjB8H,CAAV;AACA,UAAIC,MAAMD,mCAAoB9H,YA9DH,EA8DjB8H,CAAV;AACA/H,qBAAeiI,6BAAc5J,iBAAiB4B,YAA/BgI,IAA+CH,IA/DnC,CA+DmCA,CAA/CG,CAAfjI;AACAA,sBAAgBiI,6BAAc5J,kBAAkB4B,YAAhCgI,IAAgDD,IAhErC,CAgEqCA,CAAhDC,CAAhBjI;AACAA,2BAAqBiI,6BAAc5J,SAAd4J,OAA8BH,IAA9BG,CAA8BH,CAA9BG,IAjEM,IAiE3BjI;AACAA,4BAAsBiI,6BAAc5J,SAAd4J,QAA+BD,IAA/BC,CAA+BD,CAA/BC,IAlEK,IAkE3BjI;AAEA,0CApE2B,QAoE3B;AAGA,UAAIkI,YAAY,CAACjI,YAAD,gBACd,CAACA,YAAD,UAAuBA,YAAvB,SADF;AAEA,UAAIU,gBAAgB;AAClBC,uBADkB;AAElBsH,iBAFkB,EAElBA,SAFkB;AAGlB7J,kBAAU,KAHQ;AAIlBnzB,qBAAa,KAJK;AAKlBG,gCAAwB,KALN;AAAA,OAApB;AAOA,UAAIk1B,aAAa,oBAhFU,aAgFV,CAAjB;;AACAA,8BAAwB,gBAAgB;AACtCmH,kBADsC;;AAEtC,YAAIpxB,OAAJ,kBAA6B;AAC3BA,kCAD2B,IAC3BA;AADF,eAEO;AACLoqB,cADK;AAJ+B;AAjFb,OAiF3BH;;AASAA,8BAAwB,YAAW;AACjCmH,kBADiC;AAEjCrH,iCAFiC,SAEjCA;AAFFE,SAGG,iBAAgB;AACjBmH,kBADiB;AAEjBrH,gCAFiB,KAEjBA;AA/FyB,OA0F3BE;AAOA,aAjG2B,MAiG3B;AA3hBc;;;+BA8hBhB4H,O,EAAoB;AAAA;;AAYlB,UAAIC,YAZc,KAYlB;;AACA,UAAIC,qBAAqB,SAArBA,kBAAqB,GAAM;AAC7B,uBAAe;AACb,gBAAM,0CACJ,+BAA+B,OAD3B,IADO,KACP,CAAN;AAF2B;AAbb,OAalB;;AAOA,UAAI34B,UAAU,KApBI,OAoBlB;AACA,UAAIi4B,qBAAqB,oBAAoB;AAAErJ,eArB7B;AAqB2B,OAApB,CAAzB;AACA,UAAI3xB,UAAU,+BAAgC27B,gBAAD,EAAY;AACvDD,0BADuD;AAEvD,YAAIE,SAAS,0BAAgB74B,QAAhB,YAAoCA,QAFM,IAE1C,CAAb;AACA,eAAO,+CAAgD84B,aAAD,EAAS;AAC7DH,4BAD6D;AAE7D,uBAF6D,GAE7D;;AACA,6CAH6D,kBAG7D;;AAEAG,4BAAkBC,cAL2C,KAK7DD;AACAA,6BAAmBC,cAN0C,MAM7DD;AACA,kCAAsB/yB,qCAPuC,QAO7D;AACAgzB,8BAR6D,GAQ7DA;AAXqD,SAGhD,CAAP;AAzBgB,OAsBJ,CAAd;AAeA,aAAO;AACL97B,eADK,EACLA,OADK;AAEL46B,wBAFK,4BAELA,IAFK,EAEkB;AACrB7G,cADqB;AAFlB;AAKL8G,cALK,oBAKI;AACPY,sBADO,IACPA;AANG;AAAA,OAAP;AAnkBc;;;iCAilBhBjH,K,EAAoB;AAClB,uBAAkB,oCADA,IAClB;;AAEA,UAAI,mBAAJ,MAA6B;AAC3B,iDAAyC,KADd,SAC3B;AADF,aAEO;AACL,iCADK,iBACL;AANgB;AAjlBJ;;;wBAsSJ;AACV,aAAO,cADG,KACV;AAvSc;;;wBA0SH;AACX,aAAO,cADI,MACX;AA3Sc;;;;;;;;;;;;;;;;;;;;AC3DlB;;AAAA;;;;;;;;AAkBA,IAAMuH,sBAlBN,GAkBA;;IAmBA,gB;;;AACE9sB,kCACsE;AAAA,QAD1D,YAC0D,QAD1D,YAC0D;AAAA,QAD1D,QAC0D,QAD1D,QAC0D;AAAA,QAD1D,SAC0D,QAD1D,SAC0D;AAAA,QAD1D,QAC0D,QAD1D,QAC0D;AAAA,mCAAxD9Q,cAAwD;AAAA,QAAxDA,cAAwD,oCAD1D,IAC0D;AAAA,qCAAjC85B,oBAAiC;AAAA,QAAjCA,oBAAiC,sCADtEhpB,KACsE;;AAAA;;AACpE,wBADoE,YACpE;AACA,oBAAgBhb,YAFoD,kCAEpE;AACA,uBAHoE,IAGpE;AACA,+BAJoE,EAIpE;AACA,6BALoE,IAKpE;AACA,yBANoE,KAMpE;AACA,mBAPoE,SAOpE;AACA,sBAAkB,eARkD,CAQpE;AACA,mBAToE,EASpE;AACA,oBAVoE,QAUpE;AACA,oBAXoE,EAWpE;AACA,0BAZoE,cAYpE;AACA,+BAboE,IAapE;AACA,gCAdoE,oBAcpE;AAEA,qCAhBoE,IAgBpE;;AACA,SAjBoE,UAiBpE;AAnBmB;;;;uCAyBF;AACjB,2BADiB,IACjB;;AAEA,UAAI,CAAC,KAAL,sBAAgC;AAC9B,YAAI+nC,eAAeloC,uBADW,KACXA,CAAnB;AACAkoC,iCAF8B,cAE9BA;AACA,sCAH8B,YAG9B;AANe;;AASjB,kDAA4C;AAC1Ch/B,gBAD0C;AAE1C3I,oBAAY,KAF8B;AAG1C4nC,qBAAa,cAH6B;AAAA,OAA5C;AAlCmB;;;6BA+CD;AAAA;;AAAA,UAAb7jB,OAAa,uEAApB+I,CAAoB;;AAClB,UAAI,EAAE,oBAAoB,KAAtB,sBAAiD,KAArD,eAAyE;AAAA;AADvD;;AAIlB,WAJkB,MAIlB;AAEA,sBANkB,EAMlB;AACA,UAAI+a,gBAAgBpoC,SAPF,sBAOEA,EAApB;AACA,iCAA2B,+BAAgB;AACzC0zB,qBAAa,KAD4B;AAEzC2U,2BAAmB,KAFsB;AAGzChoC,mBAHyC;AAIzCu9B,kBAAU,KAJ+B;AAKzC0K,kBAAU,KAL+B;AAMzCC,6BAAqB,KANoB;AAOzCjkB,eAPyC,EAOzCA,OAPyC;AAQzC6f,8BAAsB,KARmB;AAAA,OAAhB,CAA3B;AAUA,4CAAsC,YAAM;AAC1C,uCAD0C,aAC1C;;AACA,cAF0C,gBAE1C;;AACA,cAH0C,cAG1C;AAHF,SAIG,kBAAkB,CAtBH,CAkBlB;;AAQA,UAAI,CAAC,KAAL,2BAAqC;AACnC,yCAAkCnwB,aAAD,EAAS;AACxC,cAAIA,kBAAkB,MAAlBA,WAAkCA,kBAAkB,CAAxD,GAA4D;AAC1D,kBAD0D,cAC1D;AAFsC;AADP,SACnC;;AAKA,mDACiB,KAPkB,yBAMnC;AAhCgB;AA/CC;;;6BAuFZ;AACP,UAAI,KAAJ,qBAA8B;AAC5B,iCAD4B,MAC5B;AACA,mCAF4B,IAE5B;AAHK;;AAKP,UAAI,KAAJ,2BAAoC;AAClC,oDACkB,KAFgB,yBAClC;AAEA,yCAHkC,IAGlC;AARK;AAvFY;;;yCAmGrBw0B,c,EAAqC;AACnC,WADmC,MACnC;AACA,+BAFmC,cAEnC;AArGmB;;;mCAwGrBC,W,EAA4B;AAC1B,WAD0B,MAC1B;AACA,yBAF0B,WAE1B;AA1GmB;;;oCA6GrBC,O,EAAAA,a,EAAwC;AAEtC,UAAI,CAAJ,SAAc;AACZ,eADY,EACZ;AAHoC;;AAAA,UAKhC,cALgC,QAKhC,cALgC;AAAA,UAKhC,mBALgC,QAKhC,mBALgC;AAOtC,UAAIh4B,IAAJ;AAAA,UAAWi4B,SAP2B,CAOtC;AACA,UAAMC,MAAML,6BAR0B,CAQtC;AACA,UAAM1V,WAAWxoB,2BATqB,MAStC;AACA,UAAMwL,SAVgC,EAUtC;;AAEA,WAAK,IAAIgzB,IAAJ,GAAWC,KAAKxW,QAArB,QAAqCuW,IAArC,IAA6CA,CAA7C,IAAkD;AAEhD,YAAIhX,WAAWS,QAFiC,CAEjCA,CAAf;;AAGA,eAAO5hB,aACAmhB,YAAa8W,SAASJ,uBAD7B,QAC6D;AAC3DI,oBAAUJ,uBADiD,MAC3DI;AACAj4B,WAF2D;AANb;;AAWhD,YAAIA,MAAM63B,oBAAV,QAAsC;AACpCn/B,wBADoC,mCACpCA;AAZ8C;;AAehD,YAAI+pB,QAAQ;AACV4V,iBAAO;AACLC,oBADK;AAEL9U,oBAAQrC,WAFH;AAAA;AADG,SAAZ;;AAQA,2BAAmB;AACjBA,sBAAYU,cADK,CACLA,CAAZV;AADF,eAEO;AACLA,sBADK,QACLA;AA1B8C;;AA+BhD,eAAOnhB,aACAmhB,WAAY8W,SAASJ,uBAD5B,QAC4D;AAC1DI,oBAAUJ,uBADgD,MAC1DI;AACAj4B,WAF0D;AAhCZ;;AAqChDyiB,oBAAY;AACV6V,kBADU;AAEV9U,kBAAQrC,WAFE;AAAA,SAAZsB;AAIAtd,oBAzCgD,KAyChDA;AArDoC;;AAuDtC,aAvDsC,MAuDtC;AApKmB;;;mCAuKrBozB,O,EAAwB;AAEtB,UAAI3W,mBAAJ,GAA0B;AAAA;AAFJ;;AAAA,UAKhB,cALgB,QAKhB,cALgB;AAAA,UAKhB,OALgB,QAKhB,OALgB;AAAA,UAKhB,mBALgB,QAKhB,mBALgB;AAAA,UAKhB,QALgB,QAKhB,QALgB;AAOtB,UAAM4W,iBAAkBtX,YAAYvnB,wBAPd,OAOtB;AACA,UAAM8+B,mBAAmB9+B,wBARH,QAQtB;AACA,UAAMsL,eAAetL,qBATC,YAStB;AACA,UAAI++B,UAVkB,IAUtB;AACA,UAAIC,WAAW;AACbL,gBAAQ,CADK;AAEb9U,gBAFa;AAAA,OAAf;;AAKA,2CAAqC;AACnC,YAAI8U,SAASD,MADsB,MACnC;AACAT,uCAFmC,EAEnCA;AACAgB,mCAA2BP,MAA3BO,QAHmC,SAGnCA;AAnBoB;;AAsBtB,wEAAkE;AAChE,YAAI7b,MAAM6a,SADsD,MACtDA,CAAV;AACA,YAAI3a,UAAU4a,kDAFkD,QAElDA,CAAd;AACA,YAAIjf,OAAOtpB,wBAHqD,OAGrDA,CAAX;;AACA,uBAAe;AACb,cAAIupC,OAAOvpC,uBADE,MACFA,CAAX;AACAupC,2BAFa,SAEbA;AACAA,2BAHa,IAGbA;AACA9b,0BAJa,IAIbA;AAJa;AAJiD;;AAWhEA,wBAXgE,IAWhEA;AAjCoB;;AAoCtB,UAAI+b,KAAJ;AAAA,UAA2BC,KAAKD,KApCV,CAoCtB;;AACA,wBAAkB;AAChBA,aADgB,CAChBA;AACAC,aAAKnX,QAFW,MAEhBmX;AAFF,aAGO,IAAI,CAAJ,gBAAqB;AAAA;AAxCN;;AA6CtB,WAAK,IAAI/4B,IAAT,IAAiBA,IAAjB,IAAyBA,CAAzB,IAA8B;AAC5B,YAAIyiB,QAAQb,QADgB,CAChBA,CAAZ;AACA,YAAIyW,QAAQ5V,MAFgB,KAE5B;AACA,YAAIyV,MAAMzV,MAHkB,GAG5B;AACA,YAAMuW,aAAcR,kBAAkBx4B,MAJV,gBAI5B;AACA,YAAMi5B,kBAAmBD,2BALG,EAK5B;;AAEA,wBAAgB;AACdr/B,6CAAmC;AACjCwU,qBAASypB,SAASS,MADe,MACxBT,CADwB;AAEjCn0B,uBAFiC;AAGjCsd,wBAHiC;AAAA,WAAnCpnB;AAR0B;;AAgB5B,YAAI,YAAY0+B,iBAAiBK,QAAjC,QAAiD;AAE/C,cAAIA,YAAJ,MAAsB;AACpBE,4BAAgBF,QAAhBE,QAAgCF,QAAhCE,QAAgDD,SAD5B,MACpBC;AAH6C;;AAM/CM,oBAN+C,KAM/CA;AANF,eAOO;AACLN,0BAAgBF,QAAhBE,QAAgCF,QAAhCE,QAAgDP,MAD3C,MACLO;AAxB0B;;AA2B5B,YAAIP,iBAAiBH,IAArB,QAAiC;AAC/BU,0BAAgBP,MAAhBO,QAA8BP,MAA9BO,QAA4CV,IAA5CU,QACgB,cAFe,eAC/BA;AADF,eAGO;AACLA,0BAAgBP,MAAhBO,QAA8BP,MAA9BO,QAA4CD,SAA5CC,QACgB,oBAFX,eACLA;;AAEA,eAAK,IAAIO,KAAKd,eAAT,GAA2Be,KAAKlB,IAArC,QAAiDiB,KAAjD,IAA0DA,EAA1D,IAAgE;AAC9DvB,qCAAyB,qBADqC,eAC9DA;AAJG;;AAMLsB,yBAAe,kBANV,eAMLA;AApC0B;;AAsC5BR,kBAtC4B,GAsC5BA;AAnFoB;;AAsFtB,mBAAa;AACXE,wBAAgBF,QAAhBE,QAAgCF,QAAhCE,QAAgDD,SADrC,MACXC;AAvFoB;AAvKH;;;qCAkQJ;AAEf,UAAI,CAAC,KAAL,eAAyB;AAAA;AAFV;;AAAA,UAKT,cALS,QAKT,cALS;AAAA,UAKT,OALS,QAKT,OALS;AAAA,UAKT,OALS,QAKT,OALS;AAAA,UAKT,mBALS,QAKT,mBALS;AAAA,UAKT,QALS,QAKT,QALS;AAQf,UAAIS,qBAAqB,CARV,CAQf;;AAGA,WAAK,IAAIr5B,IAAJ,GAAWM,KAAKshB,QAArB,QAAqC5hB,IAArC,IAA6CA,CAA7C,IAAkD;AAChD,YAAIyiB,QAAQb,QADoC,CACpCA,CAAZ;AACA,YAAIyW,QAAQ19B,6BAA6B8nB,YAFO,MAEpC9nB,CAAZ;;AACA,aAAK,IAAI2+B,IAAJ,OAAepB,MAAMzV,UAA1B,QAA4C6W,KAA5C,KAAsDA,CAAtD,IAA2D;AACzD,cAAIvc,MAAM6a,SAD+C,CAC/CA,CAAV;AACA7a,4BAAkB8a,oBAFuC,CAEvCA,CAAlB9a;AACAA,0BAHyD,EAGzDA;AAN8C;;AAQhDsc,6BAAqB5W,mBAR2B,CAQhD4W;AAnBa;;AAsBf,UAAI,mBAAmB,CAAC1/B,eAAxB,kBAAyD;AAAA;AAtB1C;;AA2Bf,UAAM4/B,cAAc5/B,uCA3BL,IA2Bf;AACA,UAAM6/B,oBAAoB7/B,6CA5BX,IA4Bf;AAEA,qBAAe,kCA9BA,iBA8BA,CAAf;;AACA,0BAAoB,KA/BL,OA+Bf;AAjSmB;;;iCA2SR;AAAA;;AACX,UAAIojB,MAAM,KADC,YACX;AACA,UAAI0c,kBAFO,IAEX;AAEA1c,wCAAmCzZ,aAAD,EAAS;AACzC,YAAI,+BAA6B,OAAjC,qBAA2D;AACzD,oDADyD,IACzD;;AACA,+BAEqB;AACnBxF,yBADmB,eACnBA;AACA27B,8BAFmB,IAEnBA;AANuD;;AAAA;AADlB;;AAYzC,YAAIvB,MAAMnb,kBAZ+B,eAY/BA,CAAV;;AACA,YAAI,CAAJ,KAAU;AAAA;AAb+B;;AAsBvC,YAAI2c,YAAYp2B,eAtBuB,GAsBvC;AAEEo2B,oBAAYA,aAAa/kC,sEAxBY,MAwBrC+kC;;AAGF,uBAAe;AACb,cAAIC,YAAY5c,IADH,qBACGA,EAAhB;AACA,cAAI3M,IAAIzV,YAAa,aAAYg/B,UAAb,GAAC,IAA6BA,UAFrC,MAELh/B,CAAR;AACAu9B,0BAAiB,KAAD,GAAC,EAAD,OAAC,CAAD,CAAC,IAHJ,GAGbA;AA9BqC;;AAiCzCA,0BAjCyC,QAiCzCA;AArCS,OAIXnb;AAoCAA,sCAAgC,YAAM;AACpC,YAAI,+BAA6B,OAAjC,qBAA2D;AAGvD0c,4BAAkB,WAAW,YAAM;AACjC,gBAAI,OAAJ,qBAA8B;AAC5B,wDAD4B,KAC5B;AAF+B;;AAIjCA,8BAJiC,IAIjCA;AAJgB,aAHqC,mBAGrC,CAAlBA;AAHuD;AADvB;;AAgBpC,YAAIvB,MAAMnb,kBAhB0B,eAgB1BA,CAAV;;AACA,YAAI,CAAJ,KAAU;AAAA;AAjB0B;;AAsBlCmb,wBAtBkC,EAsBlCA;AAEFA,6BAxBoC,QAwBpCA;AAhES,OAwCXnb;AAnVmB;;;;;;;;IAmXvB,uB;;;;;;;;;2CAQEyW,Y,EAAAA,S,EAAAA,Q,EACqD;AAAA,UAA9BC,oBAA8B,uEADrDD,KACqD;AACnD,aAAO,qBAAqB;AAC1BE,oBAD0B,EAC1BA,YAD0B;AAE1BjwB,iBAF0B,EAE1BA,SAF0B;AAG1BypB,gBAH0B,EAG1BA,QAH0B;AAI1BuG,4BAJ0B,EAI1BA;AAJ0B,OAArB,CAAP;AAV0B;;;;;;;;;;;;;;;;;;;;ACzY9B;;AAfA;;AAAA;;;;;;;;IAmDA,gB;;;AAMEhpB,8DAA8C;AAAA;;AAAA;;AAC5C,mBAAe6M,QAD6B,OAC5C;AACA,wBAAoBA,QAFwB,YAE5C;AACA,kCAA8BA,QAHc,sBAG5C;AACA,mBAAe,CACb;AAAEnJ,eAASmJ,QAAX;AAA2CsiB,iBAA3C;AACEC,aADF;AAAA,KADa,EAGb;AAAE1rB,eAASmJ,QAAX;AAAmCsiB,iBAAnC;AAA0DC,aAA1D;AAAA,KAHa,EAIb;AAAE1rB,eAASmJ,QAAX;AAAgCsiB,iBAAhC;AAAoDC,aAApD;AAAA,KAJa,EAKb;AAAE1rB,eAASmJ,QAAX;AAAmCsiB,iBAAnC;AAA0DC,aAA1D;AAAA,KALa,EAMb;AAAE1rB,eAASmJ,QAAX;AAAuCsiB,iBAAvC;AAAwDC,aAAxD;AAAA,KANa,EAOb;AAAE1rB,eAASmJ,QAAX;AAAoCsiB,iBAApC;AACEC,aADF;AAAA,KAPa,EASb;AAAE1rB,eAASmJ,QAAX;AAAmCsiB,iBAAnC;AAA0DC,aAA1D;AAAA,KATa,EAUb;AAAE1rB,eAASmJ,QAAX;AAAuCsiB,iBAAvC;AACEC,aADF;AAAA,KAVa,EAYb;AAAE1rB,eAASmJ,QAAX;AAAwCsiB,iBAAxC;AACEC,aADF;AAAA,KAZa,EAcb;AAAE1rB,eAASmJ,QAAX;AAA2CsiB,iBAA3C;AACEE,oBAAc;AAAE5hB,cAAMxR,6BADxB;AACgB,OADhB;AAC8CmzB,aAD9C;AAAA,KAda,EAgBb;AAAE1rB,eAASmJ,QAAX;AAAyCsiB,iBAAzC;AACEE,oBAAc;AAAE5hB,cAAMxR,6BADxB;AACgB,OADhB;AAC4CmzB,aAD5C;AAAA,KAhBa,EAkBb;AAAE1rB,eAASmJ,QAAX;AAAyCsiB,iBAAzC;AACEE,oBAAc;AAAEl2B,cAAM3E,qBADxB;AACgB,OADhB;AACgD46B,aADhD;AAAA,KAlBa,EAoBb;AAAE1rB,eAASmJ,QAAX;AAA2CsiB,iBAA3C;AACEE,oBAAc;AAAEl2B,cAAM3E,qBADxB;AACgB,OADhB;AACkD46B,aADlD;AAAA,KApBa,EAsBb;AAAE1rB,eAASmJ,QAAX;AAAwCsiB,iBAAxC;AACEE,oBAAc;AAAEl2B,cAAM3E,qBADxB;AACgB,OADhB;AAC+C46B,aAD/C;AAAA,KAtBa,EAwBb;AAAE1rB,eAASmJ,QAAX;AAAqCsiB,iBAArC;AACEE,oBAAc;AAAEl2B,cAAMzE,qBADxB;AACgB,OADhB;AAC4C06B,aAD5C;AAAA,KAxBa,EA0Bb;AAAE1rB,eAASmJ,QAAX;AAAoCsiB,iBAApC;AACEE,oBAAc;AAAEl2B,cAAMzE,qBADxB;AACgB,OADhB;AAC2C06B,aAD3C;AAAA,KA1Ba,EA4Bb;AAAE1rB,eAASmJ,QAAX;AAAqCsiB,iBAArC;AACEE,oBAAc;AAAEl2B,cAAMzE,qBADxB;AACgB,OADhB;AAC4C06B,aAD5C;AAAA,KA5Ba,EA8Bb;AAAE1rB,eAASmJ,QAAX;AACEsiB,iBADF;AACmCC,aADnC;AAAA,KA9Ba,CAAf;AAiCA,iBAAa;AACX5M,iBAAW3V,QADA;AAEXyiB,gBAAUziB,QAFC;AAGX0iB,oBAAc1iB,QAHH;AAIX2iB,qBAAe3iB,QAJJ;AAAA,KAAb;AAOA,yBA5C4C,aA4C5C;AACA,oBA7C4C,QA6C5C;AAEA,kBA/C4C,KA+C5C;AACA,2BAhD4C,IAgD5C;AACA,mCAjD4C,IAiD5C;AAEA,SAnD4C,KAmD5C;;AAIA,SAvD4C,mBAuD5C;;AACA,kCAxD4C,OAwD5C;;AACA,iCAzD4C,OAyD5C;;AACA,iCA1D4C,OA0D5C;;AAGA,+BAA2B,wBA7DiB,IA6DjB,CAA3B;AAIA,uCAAoChU,aAAD,EAAS;AAC1C,UAAIA,sBAAJ,6CAA+C;AAC7C,8EAD6C,yBAC7C;AADF,aAGO;AACL,iFADK,yBACL;AALwC;AAjEA,KAiE5C;AAvEmB;;;;kCAyFrB42B,U,EAA0B;AACxB,wBADwB,UACxB;;AACA,WAFwB,cAExB;AA3FmB;;;kCA8FrBC,U,EAA0B;AACxB,wBADwB,UACxB;;AACA,WAFwB,cAExB;AAhGmB;;;4BAmGb;AACN,wBADM,CACN;AACA,wBAFM,CAEN;;AACA,WAHM,cAGN;;AAGA,sDAAgD;AAAE3hC,gBAN5C;AAM0C,OAAhD;AAzGmB;;;qCA4GJ;AACf,sCAAiC,mBADlB,CACf;AACA,qCAAgC,mBAAmB,KAFpC,UAEf;AACA,yCAAmC,oBAHpB,CAGf;AACA,0CAAoC,oBAJrB,CAIf;AAhHmB;;;0CAmHC;AAAA;;AAEpB,kDAA4C,iBAFxB,IAEwB,CAA5C;;AAFoB,iCAKpB,MALoB;AAAA,oCAMiC,eADpB,MACoB,CANjC;AAAA,YAMd,OANc,yBAMd,OANc;AAAA,YAMd,SANc,yBAMd,SANc;AAAA,YAMd,KANc,yBAMd,KANc;AAAA,YAMd,YANc,yBAMd,YANc;AAQlB2V,0CAAmC7K,aAAD,EAAS;AACzC,cAAIs2B,cAAJ,MAAwB;AACtB,gBAAItlB,UAAU;AAAE9b,sBADM;AACR,aAAd;;AACA,+CAAmC;AACjC8b,kCAAoBwlB,aADa,QACbA,CAApBxlB;AAHoB;;AAKtB,gDALsB,OAKtB;AANuC;;AAQzC,qBAAW;AACT,mBADS,KACT;AATuC;AAHZ,SAG/BnG;AARkB;;AAKpB,yBAAmB,KAAnB,SAAiC;AAAA,cAAjC,MAAiC;AALb;AAnHD;;;6CA0IrBisB,O,EAAkC;AAChC,4CAAsC,gBAAoB;AAAA,YAApB,IAAoB,QAApB,IAAoB;AACxDC,mEACEniB,SAASxR,6BAF6C,MACxD2zB;AAEAA,iEACEniB,SAASxR,6BAJ6C,IAGxD2zB;AAJ8B,OAChC;AA3ImB;;;4CAmJrBC,O,EAAiC;AAAA;;AAC/B,wCAAsC;AAAA,YAAtC,IAAsC,SAAtC,IAAsC;AACpCD,iEACEz2B,SAAS3E,qBAFyB,QACpCo7B;AAEAA,mEACEz2B,SAAS3E,qBAJyB,UAGpCo7B;AAEAA,gEACEz2B,SAAS3E,qBANyB,OAKpCo7B;AAKA,YAAME,yBAA0B32B,SAAS3E,qBAVL,UAUpC;AACAo7B,4CAXoC,sBAWpCA;AACAA,2CAZoC,sBAYpCA;AACAA,4CAboC,sBAapCA;AAd6B;;AAgB/B,4CAhB+B,iBAgB/B;AAEA,gDAA2C/2B,aAAD,EAAS;AACjD,YAAIA,eAAJ,QAAyB;AACvBk3B,4BAAkB;AAAE52B,kBAAM3E,qBADH;AACL,WAAlBu7B;AAF+C;AAlBpB,OAkB/B;AArKmB;;;4CA4KrBC,O,EAAiC;AAAA;;AAC/B,wCAAsC;AAAA,YAAtC,IAAsC,SAAtC,IAAsC;AACpCJ,6DACEz2B,SAASzE,qBAFyB,IACpCk7B;AAEAA,4DACEz2B,SAASzE,qBAJyB,GAGpCk7B;AAEAA,6DACEz2B,SAASzE,qBANyB,IAKpCk7B;AAN6B;;AAS/B,4CAT+B,iBAS/B;AAEA,gDAA2C/2B,aAAD,EAAS;AACjD,YAAIA,eAAJ,QAAyB;AACvBo3B,4BAAkB;AAAE92B,kBAAMzE,qBADH;AACL,WAAlBu7B;AAF+C;AAXpB,OAW/B;AAvLmB;;;2BA8Ld;AACL,UAAI,KAAJ,QAAiB;AAAA;AADZ;;AAIL,oBAJK,IAIL;;AACA,WALK,aAKL;;AAEA,sCAPK,SAOL;AACA,oCARK,QAQL;AAtMmB;;;4BAyMb;AACN,UAAI,CAAC,KAAL,QAAkB;AAAA;AADZ;;AAIN,oBAJM,KAIN;AACA,iCALM,QAKN;AACA,yCANM,SAMN;AA/MmB;;;6BAkNZ;AACP,UAAI,KAAJ,QAAiB;AACf,aADe,KACf;AADF,aAEO;AACL,aADK,IACL;AAJK;AAlNY;;;oCA6NL;AACd,UAAI,CAAC,KAAL,QAAkB;AAAA;AADJ;;AAId,6BAAuB,mBAJT,YAId;;AAEA,UAAI,yBAAyB,KAA7B,yBAA2D;AAAA;AAN7C;;AASd,wDACE,kBAAkB,uBAAlB,+BAVY,KASd;AAGA,qCAA+B,KAZjB,eAYd;AAzOmB;;;wBAqFR;AACX,aAAO,KADI,MACX;AAtFmB;;;;;;;;;;;;;;;;;;;;ACnDvB;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;IAkBA,mB;;;;;AACEjwB,wCAAqB;AAAA;;AAAA;;AACnB,6FADmB,OACnB;;AAEA,mCAA+BnH,aAAD,EAAS;AAGrC,YAHqC,sBAGrC;AANiB,KAGnB;;AAHmB;AADsB;;;;iCAmB9B;AAAA;;AAEX,iCAFW,CAEX;AACA,2BAAqBhU,SAHV,sBAGUA,EAArB;AACA,+BAJW,IAIX;AAvByC;;;6CA0BlB;AACvB,UAAIoU,WAAW,YAAY,0BADJ,CACR,CAAf;AACA,UAAIi3B,mBAAmB,YAAY,2BAFZ,CAEA,CAAvB;AAEA,UAAIC,cAAc,YAJK,UAIvB;;AACA,cAAQA,YAAR;AACE;AACE,kCAAwBl3B,SAD1B,GACE;AAFJ;;AAIE;AACE,cAAIk3B,mBAAmBD,iBAAvB,KAA6C;AAC3C,kBAAM,UADqC,6DACrC,CAAN;AAFJ;;AAKE,cAAIj3B,aAAJ,kBAAmC;AAAA;AALrC;;AASE,yCAA+Bi3B,iBATjC,GASE;;AACA,kCAAwBj3B,SAV1B,GAUE;AAEA,qCAZF,CAYE;AAhBJ;;AAkBE;AACE,gBAAM,UAnBV,oEAmBU,CAAN;AAnBJ;;AAsBA,iCAA2B,KA3BJ,kBA2BvB;AArDyC;;;oCAwD3B;AACd,UAAI,KAAJ,mBAA4B;AAC1B,aAD0B,iBAC1B;AAFY;;AAAA;AAxD2B;;;0CA+DuB;AAAA;;AAAA,UAAlD,OAAkD,QAAlD,OAAkD;AAAA,+BAAvCwsB,QAAuC;AAAA,UAAvCA,QAAuC,8BAAlD,IAAkD;AAAA,iCAAtBrgC,UAAsB;AAAA,UAAtBA,UAAsB,gCAAlEsgC,IAAkE;;AAChE,sBAAgB;AACd,mCADc,UACd;AAF8D;;AAIhE,UAAM0K,eAAe,2BAA2B,KAJgB,mBAIhE;;AAEA,WANgE,sBAMhE;;AAGA,WATgE,MAShE;;AAEA,+FAAsB;AAAEzK,eAAF,EAAEA,OAAF;AAAWF,gBAAX,EAAWA,QAAX;AAAqBrgC,kBAArB,EAAqBA;AAArB,OAAtB;;AAIA,+BAAyB,YAAM;AAC7B,6BAD6B,YAC7B;AACA,mCAF6B,IAE7B;AAjB8D,OAehE;AA9EyC;;;uCAoFxB;AACjB,aAAO,KADU,sBACV,EAAP;AArFyC;;;kCAwF3CwgC,Y,EAA4B,CAxFe;;;wCA+FvB,CA/FuB;;;wCAiGvB,CAjGuB;;;wBAWX;AAK9B,aAAOp1B,yDAA0C,KALnB,aAKvBA,CAAP;AAhByC;;;wBA0Fb;AAE5B,aAAOA,uDAFqB,KAErBA,CAAP;AA5FyC;;;;EAA7C,uB;;;;;;;;;;;;;;;;ACHA;;;;;;;;AAKA,IAAM6/B,gCApBN,sBAoBA;AACA,IAAMC,iCArBN,CAqBA;AACA,IAAMC,uBAtBN,EAsBA;;IA0BA,O;;;AAMEvwB,sCAAgD;AAAA,QAAjB5S,IAAiB,uEAAhD4S,kBAAgD;;AAAA;;AAC9C,mBAAe6M,QAD+B,SAC9C;AACA,oBAF8C,QAE9C;AACA,gBAH8C,IAG9C;AACA,iBAJ8C,OAI9C;AAEA,yBAN8C,KAM9C;AACA,SAP8C,KAO9C;;AAGA,SAV8C,cAU9C;AAhBU;;;;kCAmBZ4iB,U,EAAAA,S,EAAqC;AACnC,wBADmC,UACnC;AACA,uBAFmC,SAEnC;;AACA,0BAHmC,KAGnC;AAtBU;;;kCAyBZC,U,EAAAA,a,EAAyC;AACvC,wBADuC,UACvC;AACA,2BAFuC,aAEvC;;AACA,0BAHuC,IAGvC;AA5BU;;;iCA+BZc,c,EAAAA,S,EAAwC;AACtC,4BAAuB,mBAAD,SAAC,EADe,QACf,EAAvB;AACA,uBAFsC,SAEtC;;AACA,0BAHsC,KAGtC;AAlCU;;;4BAqCJ;AACN,wBADM,CACN;AACA,uBAFM,IAEN;AACA,2BAHM,KAGN;AACA,wBAJM,CAIN;AACA,4BALM,6BAKN;AACA,uBANM,uBAMN;;AACA,0BAPM,IAON;AA5CU;;;qCA+CK;AAAA;;AAAA,UACX,QADW,QACX,QADW;AAAA,UACX,KADW,QACX,KADW;AAEf,UAAIC,OAFW,IAEf;AAEA5rB,+CAAyC,YAAW;AAClD7f,0CAAkC;AAAE+I,kBADc;AAChB,SAAlC/I;AALa,OAIf6f;AAIAA,2CAAqC,YAAW;AAC9C7f,sCAA8B;AAAE+I,kBADc;AAChB,SAA9B/I;AATa,OAQf6f;AAIAA,6CAAuC,YAAW;AAChD7f,oCAA4B;AAAE+I,kBADkB;AACpB,SAA5B/I;AAba,OAYf6f;AAIAA,8CAAwC,YAAW;AACjD7f,qCAA6B;AAAE+I,kBADkB;AACpB,SAA7B/I;AAjBa,OAgBf6f;AAIAA,iDAA2C,YAAW;AACpD,aADoD,MACpD;AArBa,OAoBfA;AAIAA,kDAA4C,YAAW;AACrD7f,+CAAuC;AACrC+I,kBADqC;AAErC0Q,iBAAO,KAF8B;AAAA,SAAvCzZ;AAzBa,OAwBf6f;AAOAA,mDAA6C,YAAW;AACtD,YAAI,eAAJ,UAA6B;AAAA;AADyB;;AAItD7f,0CAAkC;AAChC+I,kBADgC;AAEhC0Q,iBAAO,KAFyB;AAAA,SAAlCzZ;AAnCa,OA+Bf6f;AAUAA,6DAAuD,YAAW;AAChE7f,8CAAsC;AAAE+I,kBADwB;AAC1B,SAAtC/I;AA1Ca,OAyCf6f;AAIAA,+CAAyC,YAAW;AAClD7f,sCAA8B;AAAE+I,kBADkB;AACpB,SAA9B/I;AA9Ca,OA6Cf6f;AAIAA,4CAAsC,YAAW;AAC/C7f,mCAA2B;AAAE+I,kBADkB;AACpB,SAA3B/I;AAlDa,OAiDf6f;AAIAA,+CAAyC,YAAW;AAClD7f,sCAA8B;AAAE+I,kBADkB;AACpB,SAA9B/I;AAtDa,OAqDf6f;AAKAA,wCA1De,8BA0DfA;AAEA7f,+BAAyB,YAAM;AAC7B,cAD6B,UAC7B;AA7Da,OA4DfA;AA3GU;;;iCAgHC;AACX,2BADW,IACX;;AACA,WAFW,iBAEX;;AACA,0BAHW,IAGX;AAnHU;;;qCAsH0B;AAAA,UAAvB0rC,aAAuB,uEAAtClX,KAAsC;;AACpC,UAAI,CAAC,KAAL,eAAyB;AAAA;AADW;;AAAA,UAK9B,UAL8B,QAK9B,UAL8B;AAAA,UAK9B,UAL8B,QAK9B,UAL8B;AAAA,UAK9B,cAL8B,QAK9B,cAL8B;AAAA,UAK9B,SAL8B,QAK9B,SAL8B;AAAA,UAK9B,KAL8B,QAK9B,KAL8B;;AAOpC,yBAAmB;AACjB,YAAI,KAAJ,eAAwB;AACtB3U,kCADsB,MACtBA;AADF,eAEO;AACLA,kCADK,QACLA;AACA,oCAA0B;AAAE+L,sBAA5B,EAA4BA;AAAF,WAA1B,4BACU5e,aAAD,EAAS;AAChB6S,yCADgB,GAChBA;AAJG,WAEL;AALe;;AAUjBA,+BAViB,UAUjBA;AAjBkC;;AAoBpC,UAAI,KAAJ,eAAwB;AACtBA,iCAAyB,KADH,SACtBA;AACA,uCAA+B;AAAEzf,oBAAF,EAAEA,UAAF;AAAcwrB,oBAAd,EAAcA;AAAd,SAA/B,6CAC0D5e,aAAD,EAAS;AAChE6S,uCADgE,GAChEA;AAJoB,SAEtB;AAFF,aAMO;AACLA,iCADK,UACLA;AA3BkC;;AA8BpCA,gCAA2Bzf,cA9BS,CA8BpCyf;AACAA,4BAAuBzf,cA/Ba,UA+BpCyf;AAEAA,+BAA0B8rB,aAjCU,mBAiCpC9rB;AACAA,8BAAyB8rB,aAlCW,mBAkCpC9rB;AAEA,UAAI+rB,cAAc1gC,WAAWygC,YAAXzgC,SApCkB,GAoCpC;AACA,0CAAoC;AAAEwyB,eAAtC;AAAoC,OAApC,qBACkC1wB,aAAD,EAAS;AACxC,YAAI6a,UAAUhI,kBAD0B,OACxC;AACA,YAAIgsB,uBAFoC,KAExC;;AACA,aAAK,IAAIt7B,IAAJ,GAAWM,KAAKgX,QAArB,QAAqCtX,IAArC,IAA6CA,CAA7C,IAAkD;AAChD,cAAIu7B,SAASjkB,QADmC,CACnCA,CAAb;;AACA,cAAIikB,iBAAJ,gBAAqC;AACnCA,8BADmC,KACnCA;AADmC;AAFW;;AAMhDA,4BANgD,IAMhDA;AACAD,iCAPgD,IAOhDA;AAVsC;;AAYxC,YAAI,CAAJ,sBAA2B;AACzBhsB,gDADyB,GACzBA;AACAA,6CAFyB,IAEzBA;AAdsC;AAtCN,OAqCpC;AA3JU;;;kDA+KiC;AAAA,UAAjBjL,OAAiB,uEAA7Cm3B,KAA6C;AAC3C,UAAIC,kBAAkB,WADqB,UAC3C;AAEAA,sEAH2C,OAG3CA;AAlLU;;;wCAqLQ;AAClB,UAAI9rC,YAAY,WADE,oBAClB;AACA,UAAI+rC,SAAS,WAFK,WAElB;;AAEA7nB,sCAAsB,YAAW;AAI/B,YAAIlkB,0BAAJ,GAAiC;AAC/BA,0CAD+B,mBAC/BA;AAL6B;;AAO/B,YAAIA,wBAAJ,GAA+B;AAC7B+rC,uCAD6B,qBAC7BA;AACA,cAAInrB,QAAQmrB,qBAFiB,8BAE7B;AACAA,uCAA6B,iBACC,QADD,wBAHA,KAG7BA;AAEA/rC,0CAAgC,yDALH,KAK7BA;AAZ6B;AAJf,OAIlBkkB;AAzLU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACjCd,IAAM8nB,kCAfN,EAeA;;IAWA,W;;;AACElxB,oCAAsE;AAAA;;AAAA,QAA7CmxB,SAA6C,uEAAtEnxB,+BAAsE;;AAAA;;AACpE,uBADoE,WACpE;AACA,qBAFoE,SAEpE;AAEA,+BAA2B,6BAA8BoxB,qBAAD,EAAiB;AACvE,UAAIC,WAAW/6B,WAAW86B,eAD6C,IACxD96B,CAAf;;AACA,UAAI,EAAE,WAAN,QAAI,CAAJ,EAA4B;AAC1B+6B,yBAD0B,EAC1BA;AADF,aAEO;AACL,eAAOA,yBAAyB,MAAhC,WAAgD;AAC9CA,yBAD8C,KAC9CA;AAFG;AAJgE;;AASvE,UAAIrrB,QAAQ,CAT2D,CASvE;;AACA,WAAK,IAAIzQ,IAAJ,GAAW+7B,SAASD,eAAzB,QAAgD97B,IAAhD,QAA4DA,CAA5D,IAAiE;AAC/D,YAAIg8B,SAASF,eADkD,CAClDA,CAAb;;AACA,YAAIE,uBAAuB,MAA3B,aAA6C;AAC3CvrB,kBAD2C,CAC3CA;AAD2C;AAFkB;AAVM;;AAiBvE,UAAIA,UAAU,CAAd,GAAkB;AAChBA,gBAAQqrB,oBAAoB;AAAEx8B,uBAAa,MAAnCw8B;AAAoB,SAApBA,IADQ,CAChBrrB;AAlBqE;;AAoBvE,mBAAYqrB,eApB2D,KAoB3DA,CAAZ;AACA,uBArBuE,QAqBvE;AAzBkE,KAIzC,CAA3B;AALc;;;;;;;;;;;;;AA+BVD,2B,GAAc96B,eAAe,KADX,QACJA,C;AAOlBk7B,sDARsB,WAQtBA;;;;;;;;;;;;;;;;;;;;;;;;;;kDAQOA,qBALgB,eAKhBA,C;;;;;;;;;;;;;;;;;;;;;qDAGT,I,EAAA,G;;;;;;uBACQ,KADa,mB;;;AAEnB,kCAFmB,GAEnB;kDACO,KAHY,eAGZ,E;;;;;;;;;;;;;;;;;;;;;qDAGT,U;;;;;;;uBACQ,KADsB,mB;;;AAE5B,yCAA6B;AAC3B,oCAAkBC,WADS,IACTA,CAAlB;AAH0B;;kDAKrB,KALqB,eAKrB,E;;;;;;;;;;;;;;;;;;;;;qDAGT,I,EAAA,Y;;;;;;;uBACQ,KADsB,mB;;;AAExBjL,mB,GAAM,UAFkB,IAElB,C;kDACHA,0BAHqB,Y;;;;;;;;;;;;;;;;;;;;;qDAM9B,U;;;;;;;uBACQ,KADsB,mB;;;AAExB7xB,sB,GAAStD,cAFe,IAEfA,C;;AAEb,yCAA6B;AACvBm1B,qBADuB,GACjB,UADiB,IACjB,CADiB;AAE3B7xB,iCAAe6xB,0BAA0BiL,WAFd,IAEcA,CAAzC98B;AAN0B;;kDAAA,M;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChFhC;;AAfA;;AAAA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAyBA,IAAI+8B,aAzBJ,EAyBA;;;IAEA,kB;;;;;;;;;;;;;;;;oDACE,O;;;;;AACEF,0DAA0Cl7B,eADb,OACaA,CAA1Ck7B;;;;;;;;;;;;;;;;;;;;;qDAGF,O;;;;;kDACSl7B,WAAWk7B,qBADY,mBACZA,CAAXl7B,C;;;;;;;;;;;;;;;;;;;EANX,4B;;AAUA,IAAIq7B,0BAA0BtgC,cArC9B,4BAqC8BA,CAA9B;;AACAsgC,gDAAgD,mBAAkB;AAChE,SAAO,sCADyD,OACzD,CAAP;AAvCF,CAsCAA;;AAGAA,4CAA4C,YAAW;AACrD,SAAO,IAD8C,kBAC9C,EAAP;AA1CF,CAyCAA;;AAGAA,qCAAqC,gBAAgC;AAAA,yBAArB/iC,MAAqB;AAAA,MAArBA,MAAqB,4BAAvB,OAAuB;AACnE,SAAO,6BAD4D,MAC5D,CAAP;AA7CF,CA4CA+iC;;AAGA/lC,6CA/CA,uBA+CAA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AChCA,IAAIgmC,qBAfJ,IAeA;;AACA,iCAAiC;AAC/B,MAAI,CAAJ,oBAAyB;AAErBA,yBAAqB,gBACnB;0BAAA;0BAAA;2BAAA;+BAAA;qBAAA;+BAAA;4BAAA;0BAAA;uBAAA;kBAAA;gCAAA;4BAAA;2BAAA;2BAAA;uBAAA;wBAAA;oBAAA;0BAAA;yBAAA;sBAAA;uBAAA;AAAA,KADmB,CAArBA;AAH2B;;AAwB/B,SAxB+B,kBAwB/B;AAxCF;;IAgDA,e;;;AACE5xB,6BAAc;AAAA;;AAAA;;AACZ,QAAI,qBAAJ,iBAA0C;AACxC,YAAM,UADkC,oCAClC,CAAN;AAFU;;AAIZ,iBAJY,IAIZ;AAEA,+BAA2B,6BAA8B6xB,kBAAD,EAAc;AACpExgC,+CAAwC;AACtCoN,eAAOpN,cAD+B,QAC/BA,CAD+B;AAEtC4hB,kBAFsC;AAGtC3R,oBAHsC;AAItC4R,sBAJsC;AAAA,OAAxC7hB;AAOA,oBAAaA,cAAcA,cAAdA,IAAcA,CAAdA,EARuD,QAQvDA,CAAb;AACA,aAAO,uBAT6D,QAS7D,CAAP;AATyB,YAUlBrD,eAAD,EAAW;AACjB,UAAI,CAAJ,OAAY;AAAA;AADK;;AAIjB,8BAAwB;AACtB,YAAM8jC,eAAe,eAArB,IAAqB,CAArB;AAAA,YAA0CC,YAAY/jC,MADhC,IACgCA,CAAtD;;AAGA,YAAI8jC,8BACA,+BADJ,YACI,CADJ,EAC8C;AAAA;AALxB;;AAQtB,4BARsB,SAQtB;AAZe;AAhBP,KAMe,CAA3B;AAPkB;;;;;;;oDAwCpB,O;;;;;sBACQ,UADuB,kCACvB,C;;;;;;;;;;;;;;;;;;;;;qDASR,O;;;;;sBACQ,UADwB,mCACxB,C;;;;;;;;;;;;;;;;;;;;;;;;;;;uBASA,KADM,mB;;;AAEZ,6BAAazgC,cAAcA,cAAdA,IAAcA,CAAdA,EAAmC,KAFpC,QAECA,CAAb;kDACO,qBAAqB,KAHhB,QAGL,C;;;;;;;;;;;;;;;;;;;;;qDAUT,I,EAAA,K;;;;;;;uBACQ,KADe,mB;;;AAEjBygC,4B,GAAe,cAFE,IAEF,C;;sBAEfA,iBAAJ,S;;;;;sBACQ,sCADwB,IACxB,sB;;;sBACGrzB,UAAJ,S;;;;;sBACC,UADwB,wCACxB,C;;;AAEJqO,yB,WATiB,K;AAUjBklB,2B,WAViB,Y;;sBAYjBllB,cAAJ,W;;;;;sBACMA,0BAA0BklB,gBAA9B,Q;;;;;AACEvzB,wBAAQA,MAD8C,QAC9CA,EAARA;;;;;sBAEM,UAAU,8FADX,WACW,MAAV,C;;;;;;;sBAIJqO,0BAA0B,CAACrE,iBAA/B,KAA+BA,C;;;;;sBACvB,sCADgD,KAChD,4B;;;AAGV,mCAxBqB,KAwBrB;kDACO,qBAAqB,KAzBP,KAyBd,C;;;;;;;;;;;;;;;;;;;;;qDAST,I;;;;;;;uBACQ,KADQ,mB;;;AAEVqpB,4B,GAAe,cAFL,IAEK,C;;sBAEfA,iBAAJ,S;;;;;sBACQ,sCADwB,IACxB,sB;;;AAEFC,yB,GAAY,WADX,IACW,C;;sBAEZA,cAAJ,S;;;;;kDAA6B,S;;;kDATjB,Y;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAsBR,KADO,mB;;;kDAEN1gC,cAAcA,cAAdA,IAAcA,CAAdA,EAAmC,KAAnCA,UAAkD,KAF5C,KAENA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AClKX;;;;;;;;AAfA;AAwBA,IAAM4gC,4BACJnmB,2DAzBF,KAwBA;;AAGA,sCAAqC;AACnC,MAAIzG,IAAIxgB,uBAD2B,GAC3BA,CAAR;;AACA,MAAI,CAACwgB,EAAL,OAAc;AACZ,UAAM,UADM,gDACN,CAAN;AAHiC;;AAKnCA,WALmC,OAKnCA;AACAA,aANmC,SAMnCA;;AAGA,MAAI,cAAJ,GAAqB;AACnBA,iBADmB,QACnBA;AAViC;;AAclC,oBAAiBxgB,SAAlB,eAAC,EAAD,WAAC,CAdkC,CAclC;AACDwgB,IAfmC,KAenCA;AACAA,IAhBmC,MAgBnCA;AA3CF;;IA8CA,e;;;AACErF,iCAAqE;AAAA,qCAAvD/Q,sBAAuD;AAAA,QAAvDA,sBAAuD,sCAAzD,yBAAyD;;AAAA;;AACnE,kCADmE,sBACnE;AAFkB;;;;gCAKpBijC,G,EAAAA,Q,EAA2B;AACzB,UAAI,CAACC,2CAAL,oBAAKA,CAAL,EAAwD;AAAA;AAD/B;;AAIzBnsC,gBAASwH,MAATxH,0BAJyB,QAIzBA;AATkB;;;iCAYpBosC,I,EAAAA,Q,EAAAA,W,EAA0C;AACxC,UAAI3lB,UAAJ,YAA0B;AACxBA,6BAAqB,SAAS,CAAT,IAAS,CAAT,EAAiB;AAAEpa,gBAAxCoa;AAAsC,SAAjB,CAArBA,EADwB,QACxBA;AADwB;AADc;;AAKxC,UAAIqF,UAAUtZ,kDACgB,KANU,sBAK1BA,CAAd;;AAEAxS,yBAPwC,QAOxCA;AAnBkB;;;6BAsBpBA,I,EAAAA,G,EAAAA,Q,EAA8B;AAC5B,UAAIymB,UAAJ,YAA0B;AAExB,YAAI,CAACA,2BAAL,QAAKA,CAAL,EAA2C;AACzC,gCADyC,QACzC;AAHsB;;AAAA;AADE;;AAS5B,UAAI,KAAJ,wBAAiC;AAE/B,8BAF+B,QAE/B;AAF+B;AATL;;AAe5B,UAAIqF,UAAU9X,8BAfc,IAedA,CAAd;;AACAhU,yBAhB4B,QAgB5BA;AAtCkB;;;;;;;;;;;;;;;;;;;;;;AC9CtB;;;;;;;;;;;;;;AAiBA,IAAIqsC,UAAUxtC,SAjBd,OAiBA;;IAEA,W;;;AACEmb,6BAAkB;AAAA;;AAChB,iBADgB,IAChB;AACA,kBAAc,YAAY,2BAAqB;AAC7CqyB,gCAA0B,YAAM;AAC9Bj9B,gBAD8B,OAC9BA;AAF2C,OAC7Ci9B;AAHc,KAEF,CAAd;AAHc;;;;;;;;;;;;;;uBAWK,KADD,M;;;AACZjlC,oB;iDACCA,KAFW,WAEXA,E;;;;;;;;;;;;;;;;;;;;;;;;;;;;uBAIY,KADA,M;;;AACbA,oB;kDACCA,KAFY,YAEZA,E;;;;;;;;;;;;;;;;;;;;;qDAGT,Q,EAAA,I,EAAA,Q;;;;;;;uBACqB,KADe,M;;;AAC5BA,oB;kDACCA,yBAF2B,QAE3BA,C;;;;;;;;;;;;;;;;;;;;;qDAGT,O;;;;;;;uBACqB,KADI,M;;;AACjBA,oB;kDACCA,eAFgB,OAEhBA,C;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC9CX;;AAiCAvI,mBAAoB,uCAAsC;AACxD,MAAIytC,YADoD,EACxD;AACA,MAAIC,YAFoD,EAExD;AACA,MAAIC,YAHoD,aAGxD;AACA,MAAIC,YAJoD,EAIxD;AACA,MAAIC,UALoD,EAKxD;AACA,MAAIC,cANoD,SAMxD;AAeA,MAAIC,wBArBoD,IAqBxD;;AAUA,kCAAgC;AAC9B,WAAO/tC,0BADuB,+BACvBA,CAAP;AAhCsD;;AAmCxD,+BAA6B;AAC3B,QAAIguC,SAAShuC,uBADc,iCACdA,CAAb;AAEA,WAAOguC,SAASv8B,WAAWu8B,OAApBA,SAASv8B,CAATu8B,GAHoB,IAG3B;AAtCsD;;AAyCxD,4CAA0C;AACxC,WAAOnvB,UAAUA,yBAAVA,iBAAUA,CAAVA,GADiC,EACxC;AA1CsD;;AA6CxD,sCAAoC;AAClC,QAAI,CAAJ,SACE,OAFgC,EAEhC;AAEF,QAAIovB,SAASpvB,qBAJqB,cAIrBA,CAAb;AACA,QAAIqvB,WAAWrvB,qBALmB,gBAKnBA,CAAf;AACA,QAAIjS,OAN8B,EAMlC;;AACA,kBAAc;AACZ,UAAI;AACFA,eAAO6E,WADL,QACKA,CAAP7E;AADF,QAEE,UAAU;AACVxD,qBAAa,oCADH,MACVA;AAJU;AAPoB;;AAclC,WAAO;AAAEyZ,UAAF;AAAcjW,YAAd;AAAA,KAAP;AA3DsD;;AA8DxD,oCAAkC;AAChC,QAAIuhC,YAAYnuC,qBADgB,OAChBA,CAAhB;AACAmuC,2CAFgC,KAEhCA;AACAA,yBAHgC,IAGhCA;AACAnuC,2BAJgC,SAIhCA;AAlEsD;;AAqExD,kDAAgD;AAC9CouC,gBAAYA,aAAa,0BAA0B,CADL,CAC9CA;;AACAC,gBAAYA,aAAa,sBAAsB,CAFD,CAE9CA;;AAEA,QAAIn6B,MAAM,IAJoC,cAIpC,EAAV;AACAA,yBAL8C,qBAK9CA;;AACA,QAAIA,IAAJ,kBAA0B;AACxBA,2BADwB,2BACxBA;AAP4C;;AAS9CA,6BAAyB,YAAW;AAClC,UAAIA,kBAAJ,GAAyB;AACvB,YAAIA,qBAAqBA,eAAzB,GAA2C;AACzCk6B,oBAAUl6B,IAD+B,YACzCk6B;AADF,eAEO;AACLC,mBADK;AAHgB;AADS;AATU,KAS9Cn6B;;AASAA,kBAlB8C,SAkB9CA;AACAA,oBAnB8C,SAmB9CA;;AAIA,QAAI;AACFA,eADE,IACFA;AADF,MAEE,UAAU;AACVm6B,eADU;AAzBkC;AArEQ;;AA2HxD,uEAAqE;AACnE,QAAIC,UAAUz5B,+BADqD,IACnE;;AAGA,8BAA0B;AACxB,UAAI05B,yBAAJ,GACE,OAFsB,IAEtB;AACF,aAAOA,yNAHiB,GAGjBA,CAAP;AAPiE;;AAsBnE,6DAAyD;AACvD,UAAIC,aADmD,EACvD;AAGA,UAAIC,UAJmD,WAIvD;AACA,UAAIC,YALmD,aAKvD;AACA,UAAIC,YANmD,kBAMvD;AACA,UAAIC,WAPmD,gCAOvD;AACA,UAAIC,UARmD,wBAQvD;;AAGA,8EAAwE;AACtE,YAAIC,UAAUC,mCADwD,SACxDA,CAAd;AACA,YAAIC,cAFkE,GAEtE;AACA,YAAIC,cAAcC,mBAHoD,CAGpDA,CAAlB;AACA,YAAIC,WAJkE,KAItE;AACA,YAAIhc,QALkE,EAKtE;;AAEA,6BAAqB;AAGnB,uBAAa;AACX,gBAAI,CAAC2b,QAAL,QAAqB;AACnBM,oCADmB;AAAA;AADV;;AAKX,gBAAIrhC,OAAO+gC,QALA,KAKAA,EAAX;AAGA,gBAAIJ,eAAJ,IAAIA,CAAJ,EARW;;AAYX,gCAAoB;AAClBvb,sBAAQwb,eADU,IACVA,CAARxb;;AACA,yBAAW;AAIT6b,8BAAc7b,SAJL,WAIKA,EAAd6b;AACAG,2BAAYH,gBAAD,GAACA,IACPA,gBADM,IAACA,IACmBA,gBANtB,WAKTG;AALS;AAAX,qBAQO,cAAc;AAAA;AAVH;;AAalBhc,sBAAQyb,cAbU,IAaVA,CAARzb;;AACA,yBAAW;AACTkc,2BAAWf,UAAUnb,MAArBkc,CAAqBlc,CAArBkc,EADS,SACTA;AADS;AAdO;AAZT;;AAiCX,gBAAIC,MAAMvhC,WAjCC,OAiCDA,CAAV;;AACA,gBAAIuhC,OAAOA,cAAX,GAA4B;AAC1Bd,yBAAWc,IAAXd,CAAWc,CAAXd,IAAqBe,WAAWD,IADN,CACMA,CAAXC,CAArBf;AAnCS;AAHM;AAPiD;;AAiDtEgB,iBAjDsE;AAXjB;;AAgEvD,yCAAmC;AACjCC,yBAAiB,mBAAkB;AACjCC,wCADiC,QACjCA;AADFD,WAEG,YAAY;AACbrmC,uBAAaT,MADA,aACbS;AACAqW,kBAFa;AAHkB,SACjCgwB;AAjEqD;;AA0EvDC,gCAA0B,YAAW;AACnCC,iCADmC,UACnCA;AA3EqD,OA0EvDD;AAhGiE;;AAsGnED,sBAAkB,oBAAmB;AACnC/B,mBADmC,QACnCA;AAGAkC,gCAA0B,gBAAe;AAGvC,8BAAsB;AACpB;AAAA;AAAA,cAAczuB,QAAQpG,gBADF,GACEA,CAAtB;;AACA,cAAIoG,QAAJ,GAAe;AACb0B,iBAAK9H,iBADQ,KACRA,CAAL8H;AACAlW,mBAAOoO,cAAcoG,QAFR,CAENpG,CAAPpO;AAFF,iBAGO;AACLkW,iBADK,GACLA;AACAlW,mBAFK,SAELA;AAPkB;;AASpB,cAAI,CAAC8gC,UAAL,EAAKA,CAAL,EAAoB;AAClBA,4BADkB,EAClBA;AAVkB;;AAYpBA,gCAAsBtf,KAZF,GAYEA,CAAtBsf;AAfqC;;AAmBvC,6BAAqB;AACnBoC,yBADmB;AAnBkB;AAJN,OAInCD;AAJFH,OAtGmE,eAsGnEA;AAjOsD;;AAgQxD,sCAAoC;AAGlC,cAAU;AACRP,aAAOA,KADC,WACDA,EAAPA;AAJgC;;AAOlCzvB,eAAWA,YAAY,qBAAqB,CAPV,CAOlCA;;AAEAqwB,SATkC;AAUlClC,gBAVkC,IAUlCA;AAIA,QAAImC,YAAYC,oBAdkB,EAclC;AACA,QAAIC,YAAYF,UAfkB,MAelC;;AACA,QAAIE,cAAJ,GAAqB;AAEnB,UAAIC,OAAOC,iBAFQ,EAEnB;;AACA,UAAID,QAAQA,KAARA,WAAwBA,KAA5B,gBAAiD;AAC/C9mC,oBAD+C,kDAC/CA;AACAqkC,oBAAYyC,aAFmC,IAEnCA,CAAZzC;;AACA,YAAI,CAAJ,WAAgB;AACd,cAAI2C,gBAAgBF,oBADN,WACMA,EAApB;;AACA,kCAAwBA,KAAxB,SAAsC;AACpCG,0BAAcA,YADsB,WACtBA,EAAdA;;AACA,gBAAIA,gBAAJ,MAA0B;AACxB5C,0BAAYyC,aADY,IACZA,CAAZzC;AADwB;AAA1B,mBAGO,IAAI4C,gBAAJ,eAAmC;AACxC5C,0BAAYyC,aAD4B,aAC5BA,CAAZzC;AANkC;AAFxB;AAH+B;;AAe/ChuB,gBAf+C;AAAjD,aAgBO;AACLrW,oBADK,oCACLA;AApBiB;;AAuBnBknC,yBAvBmB,IAuBnBA;AACAxC,oBAxBmB,UAwBnBA;AAxBmB;AAhBa;;AA6ClC,QAAIyC,mBA7C8B,IA6ClC;AACA,QAAIC,iBA9C8B,CA8ClC;;AACAD,uBAAmB,4BAAW;AAC5BC,oBAD4B;;AAE5B,UAAIA,kBAAJ,WAAiC;AAC/B/wB,gBAD+B;AAE/B6wB,2BAF+B,IAE/BA;AACAxC,sBAH+B,UAG/BA;AAL0B;AA/CI,KA+ClCyC;;AAUA,oCAAgC;AAC9B,UAAI17B,OAAO47B,KADmB,IAC9B;;AAGA,kBAAY,0BAAyB;AACnCC,4CAAoC,YAAW;AAC7CtnC,uBAAayL,OADgC,aAC7CzL;AAEAA,uBAAa,aAHgC,sBAG7CA;AACAwkC,sBAJ6C,EAI7CA;AAEAnuB,kBAN6C;AADZ,SACnCixB;AAL4B,OAI9B;AA7DgC;;AAyElC,SAAK,IAAIhgC,IAAT,GAAgBA,IAAhB,WAA+BA,CAA/B,IAAoC;AAClC,UAAIigC,WAAW,qBAAqBZ,UADF,CACEA,CAArB,CAAf;AACAY,0BAFkC,gBAElCA;AA3EgC;AAhQoB;;AAgVxD,mBAAiB;AACflD,gBADe,EACfA;AACAC,gBAFe,EAEfA;AACAE,gBAHe,EAGfA;AAnVsD;;AAyWxD,gCAA8B;AAC5B,QAAIgD,gBAAgB;AAClB,YADkB;AAElB,YAFkB;AAGlB,YAHkB;AAIlB,YAJkB;AAKlB,aALkB;AAMlB,YANkB;AAOlB,YAPkB;AAQlB,aARkB;AASlB,aATkB;AAUlB,YAVkB;AAWlB,YAXkB;AAYlB,YAZkB;AAalB,YAbkB;AAclB,YAdkB;AAelB,YAfkB;AAgBlB,aAhBkB;AAiBlB,YAjBkB;AAkBlB,YAlBkB;AAmBlB,aAnBkB;AAoBlB,aApBkB;AAqBlB,YArBkB;AAsBlB,YAtBkB;AAuBlB,YAvBkB;AAwBlB,YAxBkB;AAyBlB,YAzBkB;AA0BlB,YA1BkB;AA2BlB,YA3BkB;AA4BlB,YA5BkB;AA6BlB,YA7BkB;AA8BlB,YA9BkB;AA+BlB,YA/BkB;AAgClB,YAhCkB;AAiClB,YAjCkB;AAkClB,YAlCkB;AAmClB,YAnCkB;AAoClB,YApCkB;AAqClB,aArCkB;AAsClB,YAtCkB;AAuClB,YAvCkB;AAwClB,aAxCkB;AAyClB,YAzCkB;AA0ClB,YA1CkB;AA2ClB,YA3CkB;AA4ClB,YA5CkB;AA6ClB,aA7CkB;AA8ClB,YA9CkB;AA+ClB,aA/CkB;AAgDlB,YAhDkB;AAiDlB,YAjDkB;AAkDlB,aAlDkB;AAmDlB,YAnDkB;AAoDlB,YApDkB;AAqDlB,YArDkB;AAsDlB,YAtDkB;AAuDlB,YAvDkB;AAwDlB,YAxDkB;AAyDlB,YAzDkB;AA0DlB,YA1DkB;AA2DlB,YA3DkB;AA4DlB,YA5DkB;AA6DlB,YA7DkB;AA8DlB,aA9DkB;AA+DlB,YA/DkB;AAgElB,YAhEkB;AAiElB,aAjEkB;AAkElB,aAlEkB;AAmElB,aAnEkB;AAoElB,aApEkB;AAqElB,aArEkB;AAsElB,YAtEkB;AAuElB,YAvEkB;AAwElB,YAxEkB;AAyElB,YAzEkB;AA0ElB,YA1EkB;AA2ElB,aA3EkB;AA4ElB,aA5EkB;AA6ElB,YA7EkB;AA8ElB,YA9EkB;AA+ElB,aA/EkB;AAgFlB,YAhFkB;AAiFlB,YAjFkB;AAkFlB,YAlFkB;AAmFlB,YAnFkB;AAoFlB,YApFkB;AAqFlB,YArFkB;AAsFlB,aAtFkB;AAuFlB,YAvFkB;AAwFlB,YAxFkB;AAyFlB,YAzFkB;AA0FlB,YA1FkB;AA2FlB,YA3FkB;AA4FlB,YA5FkB;AA6FlB,YA7FkB;AA8FlB,YA9FkB;AA+FlB,YA/FkB;AAgGlB,aAhGkB;AAiGlB,aAjGkB;AAkGlB,YAlGkB;AAmGlB,YAnGkB;AAoGlB,YApGkB;AAqGlB,YArGkB;AAsGlB,YAtGkB;AAuGlB,YAvGkB;AAwGlB,YAxGkB;AAyGlB,aAzGkB;AA0GlB,YA1GkB;AA2GlB,aA3GkB;AA4GlB,YA5GkB;AA6GlB,YA7GkB;AA8GlB,YA9GkB;AA+GlB,aA/GkB;AAgHlB,YAhHkB;AAiHlB,YAjHkB;AAkHlB,YAlHkB;AAmHlB,YAnHkB;AAoHlB,YApHkB;AAqHlB,aArHkB;AAsHlB,YAtHkB;AAuHlB,aAvHkB;AAwHlB,aAxHkB;AAyHlB,aAzHkB;AA0HlB,YA1HkB;AA2HlB,aA3HkB;AA4HlB,aA5HkB;AA6HlB,YA7HkB;AA8HlB,YA9HkB;AA+HlB,aA/HkB;AAgIlB,YAhIkB;AAiIlB,YAjIkB;AAkIlB,aAlIkB;AAmIlB,aAnIkB;AAoIlB,aApIkB;AAqIlB,aArIkB;AAsIlB,aAtIkB;AAuIlB,YAvIkB;AAwIlB,YAxIkB;AAyIlB,YAzIkB;AA0IlB,YA1IkB;AA2IlB,YA3IkB;AA4IlB,aA5IkB;AA6IlB,YA7IkB;AA8IlB,YA9IkB;AA+IlB,YA/IkB;AAgJlB,aAhJkB;AAiJlB,YAjJkB;AAkJlB,YAlJkB;AAmJlB,aAnJkB;AAoJlB,YApJkB;AAqJlB,YArJkB;AAsJlB,aAtJkB;AAuJlB,YAvJkB;AAwJlB,YAxJkB;AAyJlB,YAzJkB;AA0JlB,YA1JkB;AA2JlB,YA3JkB;AA4JlB,YA5JkB;AA6JlB,aA7JkB;AA8JlB,YA9JkB;AA+JlB,YA/JkB;AAgKlB,YAhKkB;AAiKlB,YAjKkB;AAkKlB,aAlKkB;AAmKlB,YAnKkB;AAoKlB,aApKkB;AAqKlB,YArKkB;AAsKlB,YAtKkB;AAuKlB,aAvKkB;AAwKlB,YAxKkB;AAyKlB,YAzKkB;AA0KlB,YA1KkB;AAAA,KAApB;;AA8KA,2BAAuB;AACrB,aAAOC,oBAAoB,CADN,CACrB;AAhL0B;;AAkL5B,sCAAkC;AAChC,aAAOC,cAAc9G,KADW,GAChC;AAnL0B;;AAwL5B,QAAI+G,cAAc;AAChB,WAAK,cAAY;AACf,eADe,OACf;AAFc;AAIhB,WAAK,cAAY;AACf,YAAKC,UAAWhH,IAAXgH,QAAL,EAAKA,CAAL,EACE,OAFa,KAEb;AACF,YAAIhH,MAAJ,GACE,OAJa,MAIb;AACF,YAAKgH,UAAWhH,IAAXgH,SAAL,EAAKA,CAAL,EACE,OANa,MAMb;AACF,YAAIhH,KAAJ,GACE,OARa,KAQb;AACF,YAAIA,KAAJ,GACE,OAVa,KAUb;AACF,eAXe,OAWf;AAfc;AAiBhB,WAAK,cAAY;AACf,YAAIA,WAAYA,IAAD,EAACA,KAAhB,GACE,OAFa,MAEb;AACF,YAAIA,KAAJ,GACE,OAJa,KAIb;AACF,YAAIA,KAAJ,GACE,OANa,KAMb;AACF,eAPe,OAOf;AAxBc;AA0BhB,WAAK,cAAY;AACf,YAAIA,KAAJ,GACE,OAFa,KAEb;AACF,eAHe,OAGf;AA7Bc;AA+BhB,WAAK,cAAY;AACf,YAAKgH,gBAAL,CAAKA,CAAL,EACE,OAFa,KAEb;AACF,eAHe,OAGf;AAlCc;AAoChB,WAAK,cAAY;AACf,YAAKA,gBAAD,CAACA,KAAuBhH,KAA5B,GACE,OAFa,KAEb;AACF,eAHe,OAGf;AAvCc;AAyChB,WAAK,cAAY;AACf,YAAIA,MAAJ,GACE,OAFa,MAEb;AACF,YAAKA,IAAD,EAACA,IAAD,CAACA,IAAiBA,IAAD,GAACA,IAAtB,IACE,OAJa,KAIb;AACF,eALe,OAKf;AA9Cc;AAgDhB,WAAK,cAAY;AACf,YAAIA,KAAJ,GACE,OAFa,KAEb;AACF,YAAIA,KAAJ,GACE,OAJa,KAIb;AACF,eALe,OAKf;AArDc;AAuDhB,WAAK,cAAY;AACf,YAAKgH,gBAAL,CAAKA,CAAL,EACE,OAFa,KAEb;AACF,YAAKA,gBAAL,EAAKA,CAAL,EACE,OAJa,MAIb;AACF,YAAIhH,KAAJ,GACE,OANa,KAMb;AACF,YAAIA,KAAJ,GACE,OARa,KAQb;AACF,eATe,OASf;AAhEc;AAkEhB,WAAK,cAAY;AACf,YAAIA,WAAWA,UAAWgH,UAAWhH,IAAXgH,QAA1B,EAA0BA,CAA1B,EACE,OAFa,KAEb;AACF,YAAIhH,KAAJ,GACE,OAJa,KAIb;AACF,eALe,OAKf;AAvEc;AAyEhB,YAAM,cAAY;AAChB,YAAKgH,UAAWhH,IAAXgH,OAAD,CAACA,KAA8B,CAAEA,UAAWhH,IAAXgH,SAArC,EAAqCA,CAArC,EACE,OAFc,KAEd;AACF,YAAKhH,IAAD,EAACA,IAAD,CAACA,IAAgB,CAAEgH,UAAWhH,IAAXgH,SAAvB,EAAuBA,CAAvB,EACE,OAJc,KAId;AACF,eALgB,OAKhB;AA9Ec;AAgFhB,YAAM,cAAY;AAChB,YAAKA,UAAWhH,IAAXgH,OAAD,CAACA,KAA8B,CAAEA,UAAWhH,IAAXgH,SAArC,EAAqCA,CAArC,EACE,OAFc,KAEd;AACF,YAAKhH,IAAD,EAACA,KAAD,CAACA,IACAgH,UAAWhH,IAAXgH,OADD,CACCA,CADAhH,IAEAgH,UAAWhH,IAAXgH,SAFL,EAEKA,CAFL,EAGE,OANc,MAMd;AACF,YAAKhH,IAAD,EAACA,IAAD,CAACA,IAAiBA,IAAD,GAACA,IAAtB,IACE,OARc,KAQd;AACF,eATgB,OAShB;AAzFc;AA2FhB,YAAM,cAAY;AAChB,YAAKgH,gBAAL,CAAKA,CAAL,EACE,OAFc,KAEd;AACF,YAAIhH,KAAJ,GACE,OAJc,KAId;AACF,eALgB,OAKhB;AAhGc;AAkGhB,YAAM,cAAY;AAChB,YAAKgH,UAAWhH,IAAXgH,OAAD,CAACA,KAA8B,CAAEA,UAAWhH,IAAXgH,SAArC,EAAqCA,CAArC,EACE,OAFc,KAEd;AACF,YAAIhH,UAAWgH,UAAWhH,IAAXgH,OAAXhH,CAAWgH,CAAXhH,IACCgH,UAAWhH,IAAXgH,OADDhH,CACCgH,CADDhH,IAECgH,UAAWhH,IAAXgH,SAFL,EAEKA,CAFL,EAGE,OANc,MAMd;AACF,YAAIhH,KAAJ,GACE,OARc,KAQd;AACF,eATgB,OAShB;AA3Gc;AA6GhB,YAAM,cAAY;AAChB,YAAKgH,UAAWhH,IAAXgH,QAAL,CAAKA,CAAL,EACE,OAFc,KAEd;AACF,YAAKhH,IAAD,GAACA,IAAL,GACE,OAJc,KAId;AACF,YAAKA,IAAD,GAACA,IAAL,GACE,OANc,KAMd;AACF,eAPgB,OAOhB;AApHc;AAsHhB,YAAM,cAAY;AAChB,YAAIA,WAAYgH,UAAWhH,IAAXgH,QAAhB,EAAgBA,CAAhB,EACE,OAFc,KAEd;AACF,YAAKA,UAAWhH,IAAXgH,SAAL,EAAKA,CAAL,EACE,OAJc,MAId;AACF,YAAIhH,KAAJ,GACE,OANc,KAMd;AACF,eAPgB,OAOhB;AA7Hc;AA+HhB,YAAM,cAAY;AAChB,YAAKA,IAAD,EAACA,IAAD,CAACA,IAAgBA,KAArB,IACE,OAFc,KAEd;AACF,eAHgB,OAGhB;AAlIc;AAoIhB,YAAM,cAAY;AAChB,YAAIA,KAAJ,GACE,OAFc,KAEd;AACF,YAAIA,MAAJ,GACE,OAJc,MAId;AACF,YAAIA,KAAJ,GACE,OANc,MAMd;AACF,YAAIA,KAAJ,GACE,OARc,KAQd;AACF,YAAIA,KAAJ,GACE,OAVc,KAUd;AACF,eAXgB,OAWhB;AA/Ic;AAiJhB,YAAM,cAAY;AAChB,YAAIA,MAAJ,GACE,OAFc,MAEd;AACF,YAAKgH,gBAAD,CAACA,KAAuBhH,MAAxB,CAACgH,IAAkChH,KAAvC,GACE,OAJc,KAId;AACF,eALgB,OAKhB;AAtJc;AAwJhB,YAAM,cAAY;AAChB,YAAKgH,gBAAL,EAAKA,CAAL,EACE,OAFc,KAEd;AACF,YAAKA,gBAAL,CAAKA,CAAL,EACE,OAJc,KAId;AACF,eALgB,OAKhB;AA7Jc;AA+JhB,YAAM,cAAY;AAChB,YAAK,WAAWhH,IAAX,aAA+BA,IAAD,EAACA,IAAhC,CAAC,KAAiD,EAClD,UAAWA,IAAX,gBACAgH,UAAWhH,IAAXgH,SADA,EACAA,CADA,IAEAA,UAAWhH,IAAXgH,SAHJ,EAGIA,CAHkD,CAAtD,EAKE,OANc,KAMd;AACF,YAAKhH,IAAD,OAACA,KAAD,CAACA,IAAsBA,MAA3B,GACE,OARc,MAQd;AACF,YAAKA,IAAD,EAACA,IAAD,CAACA,IAAgB,CAAC,KAAMA,IAAN,KAAgB,YAAhB,CAAtB,EACE,OAVc,KAUd;AACF,YAAKA,IAAD,EAACA,IAAD,CAACA,IAAgB,CAAC,KAAMA,IAAN,KAAgB,YAAhB,CAAtB,EACE,OAZc,KAYd;AACF,eAbgB,OAahB;AA5Kc;AA8KhB,YAAM,cAAY;AAChB,YAAIA,MAAJ,GACE,OAFc,MAEd;AACF,YAAIA,KAAJ,GACE,OAJc,KAId;AACF,eALgB,OAKhB;AAnLc;AAqLhB,YAAM,cAAY;AAChB,YAAKgH,gBAAD,CAACA,KAAwBA,iBAA7B,EAA6BA,CAA7B,EACE,OAFc,KAEd;AACF,eAHgB,OAGhB;AAxLc;AA0LhB,YAAM,cAAY;AAChB,YAAKA,UAAWhH,IAAXgH,OAAD,CAACA,KAA+BhH,IAAD,EAACA,KAApC,GACE,OAFc,KAEd;AACF,eAHgB,OAGhB;AA7Lc;AA+LhB,YAAM,cAAY;AAChB,YAAKgH,uBAAuBA,iBAA5B,EAA4BA,CAA5B,EACE,OAFc,KAEd;AACF,YAAI,QAAQ,OAAR,CAAJ,EACE,OAJc,KAId;AACF,YAAI,QAAQ,OAAR,CAAJ,EACE,OANc,KAMd;AACF,eAPgB,OAOhB;AAtMc;AAAA,KAAlB;AA2MA,QAAI7vB,QAAQyvB,cAAc1B,qBAnYE,EAmYFA,CAAd0B,CAAZ;;AACA,QAAI,EAAE,SAAN,WAAI,CAAJ,EAA6B;AAC3BxnC,mBAAa,qCADc,GAC3BA;AACA,aAAO,YAAW;AAAE,eAAF,OAAE;AAFO,OAE3B;AAtY0B;;AAwY5B,WAAO2nC,YAxYqB,KAwYrBA,CAAP;AAjvBsD;;AAqvBxDlD,mBAAiB,iCAAgC;AAC/C,QAAI7D,IAAI5Q,WADuC,KACvCA,CAAR;AACA,QAAI9qB,MAAJ,CAAIA,CAAJ,EACE,OAH6C,GAG7C;AAGF,QAAI3B,QAAJ,WACE,OAP6C,GAO7C;;AAGF,QAAI,CAACkhC,QAAL,cAA2B;AACzBA,6BAAuBoD,eADE,SACFA,CAAvBpD;AAX6C;;AAa/C,QAAI1sB,QAAQ,MAAM0sB,qBAAN,CAAMA,CAAN,GAbmC,GAa/C;;AAGA,QAAI7D,WAAYjvB,MAAD,QAACA,IAAhB,WAA8C;AAC5C+d,YAAM2U,UAAU1yB,MAAV0yB,UADsC,IACtCA,CAAN3U;AADF,WAEO,IAAIkR,UAAWjvB,MAAD,OAACA,IAAf,WAA4C;AACjD+d,YAAM2U,UAAU1yB,MAAV0yB,SAD2C,IAC3CA,CAAN3U;AADK,WAEA,IAAIkR,UAAWjvB,MAAD,OAACA,IAAf,WAA4C;AACjD+d,YAAM2U,UAAU1yB,MAAV0yB,SAD2C,IAC3CA,CAAN3U;AADK,WAEA,IAAK/d,MAAD,KAACA,IAAL,WAAgC;AACrC+d,YAAM2U,UAAU1yB,MAAV0yB,OAD+B,IAC/BA,CAAN3U;AADK,WAEA,IAAK/d,MAAD,SAACA,IAAL,WAAoC;AACzC+d,YAAM2U,UAAU1yB,MAAV0yB,WADmC,IACnCA,CAAN3U;AAzB6C;;AA4B/C,WA5B+C,GA4B/C;AAjxBsD,GAqvBxD+U;;AAqCA,4CAA0C;AACxC,QAAI1f,OAAOsf,UAD6B,GAC7BA,CAAX;;AACA,QAAI,CAAJ,MAAW;AACTrkC,mBAAa,YADJ,gBACTA;;AACA,UAAI,CAAJ,UAAe;AACb,eADa,IACb;AAHO;;AAKT+kB,aALS,QAKTA;AAPsC;;AAexC,QAAI+iB,KAfoC,EAexC;;AACA,2BAAuB;AACrB,UAAIpY,MAAM3K,KADW,IACXA,CAAV;AACA2K,YAAMqY,6BAFe,IAEfA,CAANrY;AACAA,YAAMsY,0BAHe,GAGfA,CAANtY;AACAoY,iBAJqB,GAIrBA;AApBsC;;AAsBxC,WAtBwC,EAsBxC;AAhzBsD;;AAozBxD,8CAA4C;AAC1C,QAAIG,UADsC,0CAC1C;AACA,QAAIC,UAAUD,aAF4B,GAE5BA,CAAd;AACA,QAAI,YAAY,CAACC,QAAjB,QACE,OAJwC,GAIxC;AAIF,QAAIC,YAAYD,QAR0B,CAQ1BA,CAAhB;AACA,QAAIE,YAAYF,QAT0B,CAS1BA,CAAhB;AACA,QAV0C,KAU1C;;AACA,QAAI1kC,QAAQ4kC,aAAZ,MAA+B;AAC7B3xB,cAAQjT,KADqB,SACrBA,CAARiT;AADF,WAEO,IAAI2xB,aAAJ,WAA4B;AACjC3xB,cAAQ4tB,UADyB,SACzBA,CAAR5tB;AAdwC;;AAkB1C,QAAI0xB,aAAJ,SAA0B;AACxB,UAAIE,QAAQ5D,QADY,SACZA,CAAZ;AACA/U,YAAM2Y,uBAFkB,IAElBA,CAAN3Y;AApBwC;;AAsB1C,WAtB0C,GAsB1C;AA10BsD;;AA80BxD,0CAAwC;AACtC,QAAI4Y,SADkC,sBACtC;AACA,WAAO,oBAAoB,6BAA4B;AACrD,UAAI9kC,QAAQ2L,OAAZ,MAAyB;AACvB,eAAO3L,KADgB,GAChBA,CAAP;AAFmD;;AAIrD,UAAI2L,OAAJ,WAAsB;AACpB,eAAOk1B,UADa,GACbA,CAAP;AALmD;;AAOrDrkC,kBAAY,yCAPyC,gBAOrDA;AACA,aARqD,YAQrD;AAVoC,KAE/B,CAAP;AAh1BsD;;AA61BxD,qCAAmC;AACjC,QAAIb,OAAOopC,kBADsB,OACtBA,CAAX;AACA,QAAI,CAACppC,KAAL,IAFiC;AAMjC,QAAI4lB,OAAOyjB,YAAYrpC,KAAZqpC,IAAqBrpC,KANC,IAMtBqpC,CAAX;;AACA,QAAI,CAAJ,MAAW;AACTxoC,mBAAa,MAAMb,KAAN,KADJ,gBACTa;AADS;AAPsB;;AAajC,QAAI+kB,KAAJ,SAAIA,CAAJ,EAAqB;AACnB,UAAI0jB,kCAAJ,GAAyC;AACvChzB,6BAAqBsP,KADkB,SAClBA,CAArBtP;AADF,aAEO;AAGL,YAAIizB,WAAWjzB,QAHV,UAGL;AACA,YAAI0V,QAJC,KAIL;;AACA,aAAK,IAAI7jB,IAAJ,GAAWqhC,IAAID,SAApB,QAAqCphC,IAArC,GAA4CA,CAA5C,IAAiD;AAC/C,cAAIohC,8BAA8B,UAAUA,YAA5C,SAAkC,CAAlC,EAAoE;AAClE,uBAAW;AACTA,sCADS,EACTA;AADF,mBAEO;AACLA,sCAAwB3jB,KADnB,SACmBA,CAAxB2jB;AACAvd,sBAFK,IAELA;AALgE;AADrB;AAL5C;;AAiBL,YAAI,CAAJ,OAAY;AACV,cAAIyd,WAAWhyC,wBAAwBmuB,KAD7B,SAC6BA,CAAxBnuB,CAAf;AACA6e,yCAA+BA,QAFrB,UAEVA;AAnBG;AAHY;;AAyBnB,aAAOsP,KAzBY,SAyBZA,CAAP;AAtC+B;;AAyCjC,wBAAoB;AAClBtP,mBAAasP,KADK,CACLA,CAAbtP;AA1C+B;AA71BqB;;AA44BxD,yCAAuC;AACrC,QAAIA,QAAJ,UAAsB;AACpB,aAAOA,iBADa,MACpB;AAFmC;;AAIrC,QAAI,OAAOA,QAAP,sBAAJ,aAAsD;AACpD,aAAOA,QAD6C,iBACpD;AALmC;;AAOrC,QAAI0b,QAPiC,CAOrC;;AACA,SAAK,IAAI7pB,IAAT,GAAgBA,IAAImO,mBAApB,QAA+CnO,CAA/C,IAAoD;AAClD6pB,eAAS1b,6BADyC,CAClD0b;AATmC;;AAWrC,WAXqC,KAWrC;AAv5BsD;;AA25BxD,sCAAoC;AAClC1b,cAAUA,WAAW7e,SADa,eAClC6e;AAGA,QAAIizB,WAAWG,wBAJmB,OAInBA,CAAf;AACA,QAAIC,eAAeJ,SALe,MAKlC;;AACA,SAAK,IAAIphC,IAAT,GAAgBA,IAAhB,cAAkCA,CAAlC,IAAuC;AACrCyhC,uBAAiBL,SADoB,CACpBA,CAAjBK;AAPgC;;AAWlCA,qBAXkC,OAWlCA;AAt6BsD;;AAy6BxD,SAAO;AAELz1B,SAAK,wCAAoC;AACvC,UAAIyE,QAAQpG,gBAD2B,GAC3BA,CAAZ;AACA,UAAIpO,OAFmC,SAEvC;;AACA,UAAIwU,QAAJ,GAAe;AACbxU,eAAOoO,cAAcoG,QADR,CACNpG,CAAPpO;AACAoO,cAAMA,iBAFO,KAEPA,CAANA;AALqC;;AAOvC,UAPuC,QAOvC;;AACA,0BAAoB;AAClB3U,mBADkB,EAClBA;AACAA,yBAFkB,cAElBA;AAVqC;;AAYvC,UAAI+nB,OAAOyjB,uBAZ4B,QAY5BA,CAAX;;AACA,UAAIzjB,QAAQxhB,QAAZ,MAA0B;AACxB,eAAOwhB,KADiB,IACjBA,CAAP;AAdqC;;AAgBvC,aAAO,aAhBgC,IAgBvC;AAlBG;AAsBLikB,aAAS,mBAAW;AAAE,aAAF,SAAE;AAtBjB;AAuBLC,aAAS,mBAAW;AAAE,aAAF,SAAE;AAvBjB;AA0BLC,iBAAa,uBAAW;AAAE,aAAF,SAAE;AA1BrB;AA2BLC,iBAAa,qCAAyB;AACpCC,uBAAiB,YAAW;AAC1B,sBACE/yB,QAFwB;AADQ,OACpC+yB;AA5BG;AAmCLC,kBAAc,wBAAW;AAGvB,UAAIC,UAAU,8BAAd;AACA,UAAIC,YAAY/E,wBAJO,CAIPA,CAAhB;AACA,aAAQ8E,8BAAD,CAACA,GAAD,KAACA,GALe,KAKvB;AAxCG;AA4CLE,eA5CK;AA+CLC,mBAAe,yBAAW;AAAE,aAAF,WAAE;AA/CvB;AAgDLC,WAAO,yBAAmB;AACxB,UAAI,CAAJ,UAAe;AAAA;AAAf,aAEO,IAAIhF,6BAA6BA,eAAjC,eAA+D;AACpEzoC,0BAAkB,YAAW;AAC3Boa,kBAD2B;AADuC,SACpEpa;AADK,aAIA,IAAIrF,SAAJ,kBAA+B;AACpCA,+CAAuC,gBAAgB;AACrDA,oDADqD,IACrDA;AACAyf,kBAFqD;AADnB,SACpCzf;AARsB;AAhDrB;AAAA,GAAP;AAz6BiB,CAAC,CAAD,MAAC,EAApBA,QAAoB,CAApBA,C;;;;;;;;;;;;;;AClBA;;AACA;;AAhBA;;AAAA;;AAoBA,IAAI+yC,gBApBJ,IAoBA;AACA,IAAI1qC,iBArBJ,IAqBA;;AAIA,yEAAyE;AACvE,MAAI2qC,gBAAgBD,cADmD,aACvE;AAGA,MAAME,mBAAmBjqC,kDAJ8C,GAIvE;AACA,MAAMkqC,cAAcD,mBALmD,IAKvE;AACAD,wBAAsB3nC,WAAWwY,aANsC,WAMjDxY,CAAtB2nC;AACAA,yBAAuB3nC,WAAWwY,cAPqC,WAOhDxY,CAAvB2nC;AAGA,MAAI/xB,QAAQ5V,WAAWwY,aAAXxY,uBAV2D,IAUvE;AACA,MAAI6V,SAAS7V,WAAWwY,cAAXxY,uBAX0D,IAWvE;AAEA,MAAIiT,MAAM00B,yBAb6D,IAa7DA,CAAV;AACA10B,MAduE,IAcvEA;AACAA,kBAfuE,oBAevEA;AACAA,qBAAmB00B,cAAnB10B,OAAwC00B,cAhB+B,MAgBvE10B;AACAA,MAjBuE,OAiBvEA;AAEA,SAAO,qCAAqC,mBAAkB;AAC5D,QAAI4hB,gBAAgB;AAClBC,qBADkB;AAElBsH,iBAAW,sCAFO;AAGlB7J,gBAAU,oBAAoB;AAAEC,eAAF;AAAYtuB,kBAAUsU,KAAtB;AAAA,OAApB,CAHQ;AAIlBghB,cAJkB;AAAA,KAApB;AAMA,WAAO51B,8BAPqD,OAO5D;AAPK,UAQC,YAAW;AACjB,WAAO;AACLgS,WADK,EACLA,KADK;AAELC,YAFK,EAELA;AAFK,KAAP;AA5BqE,GAmBhE,CAAP;AA5CF;;AA4DA,2EAA2E;AACzE,qBADyE,WACzE;AACA,uBAFyE,aAEzE;AACA,wBAHyE,cAGzE;AACA,cAAY3Y,QAJ6D,kBAIzE;AACA,gCACEnB,0BANuE,wBAMvEA,CADF;AAEA,qBAAmB,CAPsD,CAOzE;AAEA,uBAAqBpH,uBAToD,QASpDA,CAArB;AArEF;;AAwEAmzC,4BAA4B;AAC1BC,QAD0B,oBACjB;AACP,SADO,eACP;AAEA,QAAIC,OAAOrzC,uBAHJ,MAGIA,CAAX;AACAqzC,4CAJO,IAIPA;AAEA,QAAIC,oBAAoB,yBAAyB,gBAAe;AAC9D,aAAOzvB,eAAe,sBAAfA,SACAA,gBAAgB,sBAFuC,MAC9D;AADsB,OANjB,IAMiB,CAAxB;;AAIA,QAAI,CAAJ,mBAAwB;AACtBza,mBAAa,mDADS,0BACtBA;AAXK;;AAwBP,0BAAsBpJ,uBAxBf,OAwBeA,CAAtB;AACA,QAAIuzC,WAAW,mBAzBR,CAyBQ,CAAf;AACA,sCAGE,kEACmBA,SADnB,gBAC4CA,SAD5C,kBA7BK,GA0BP;AAMAF,qBAAiB,KAhCV,cAgCPA;AAjCwB;AAoC1BG,SApC0B,qBAoChB;AACR,QAAIT,kBAAJ,MAA4B;AAAA;AADpB;;AAOR,sCAPQ,EAOR;;AACA,QAAI,KAAJ,gBAAyB;AACvB,0BADuB,MACvB;AACA,4BAFuB,IAEvB;AAVM;;AAYR,+BAA2B,4BAZnB,CAYR;AACA,yBAbQ,IAaR;AACAA,oBAdQ,IAcRA;AACAU,yBAAqB,YAAW;AAC9B,UAAIprC,0BAAJ,uBAAqD;AAAA;AADvB;;AAI9BA,2BAJ8B,qBAI9BA;AAnBM,KAeRorC;AAnDwB;AA2D1BC,aA3D0B,yBA2DZ;AAAA;;AACZ,QAAIC,YAAY,mBADJ,MACZ;;AACA,QAAIC,iBAAiB,SAAjBA,cAAiB,kBAAqB;AACxC,YADwC,eACxC;;AACA,UAAI,EAAE,MAAF,eAAJ,WAAqC;AACnCC,6CAAqC,MADF,IACnCA;AACAtjC,eAFmC;AAAA;AAFG;;AAOxC,UAAI4Q,QAAQ,MAP4B,WAOxC;AACA0yB,uCAAiC,MARO,IAQxCA;AACAC,wBAAiB,MAAjBA,aAAmC3yB,QAAnC2yB,GAA8C,oBAA9CA,KAA8C,CAA9CA,OACQ,2BADRA,KACQ,CADRA,OAEQ,YAAW;AACfF,gCADe,MACfA;AAHJE,SATwC,MASxCA;AAXU,KAEZ;;AAeA,WAAO,YAjBK,cAiBL,CAAP;AA5EwB;AA+E1BC,iBA/E0B,2BA+E1BA,SA/E0B,EA+EC;AACzB,SADyB,eACzB;AACA,QAAI1T,MAAMrgC,uBAFe,KAEfA,CAAV;AACAqgC,sBAAkB2T,UAHO,KAGzB3T;AACAA,uBAAmB2T,UAJM,MAIzB3T;AAEA,QAAI2S,gBAAgB,KANK,aAMzB;;AACA,QAAK,YAAD,aAAC,IAA8B,CAAC,KAApC,wBAAiE;AAC/DA,2BAAqB,gBAAe;AAClC3S,kBAAUlrB,8BADwB,IACxBA,CAAVkrB;AAF6D,OAC/D2S;AADF,WAIO;AACL3S,gBAAU2S,cADL,SACKA,EAAV3S;AAZuB;;AAezB,QAAI2H,UAAUhoC,uBAfW,KAeXA,CAAd;AACAgoC,wBAhByB,GAgBzBA;AACA,oCAjByB,OAiBzB;AAEA,WAAO,YAAY,2BAA0B;AAC3C3H,mBAD2C,OAC3CA;AACAA,oBAF2C,MAE3CA;AArBuB,KAmBlB,CAAP;AAlGwB;AAwG1B4T,cAxG0B,0BAwGX;AAAA;;AACb,SADa,eACb;AACA,WAAO,YAAa1jC,iBAAD,EAAa;AAI9BC,iBAAW,YAAM;AACf,YAAI,CAAC,OAAL,QAAkB;AAChBD,iBADgB;AAAA;AADH;;AAKftP,mBALe,MAKfA;AAEAuP,4BAPe,EAOfA;AAPFA,SAJ8B,CAI9BA;AANW,KAEN,CAAP;AA1GwB;;AA0H1B,eAAa;AACX,WAAO,SADI,aACX;AA3HwB;;AA8H1B0jC,iBA9H0B,6BA8HR;AAChB,QAAI,CAAC,KAAL,QAAkB;AAChB,YAAM,UADU,gDACV,CAAN;AAFc;AA9HQ;AAAA,CAA5Bf;AAqIA,IAAIlyC,QAAQoE,OA7MZ,KA6MA;;AACAA,eAAe,iBAAiB;AAC9B,qBAAmB;AACjB+D,iBADiB,wDACjBA;AADiB;AADW;;AAK9BqqC,uBAAqB,YAAW;AAC9B,uBAAmB;AACjBprC,0BADiB,qBACjBA;AAF4B;AALF,GAK9BorC;;AAMA,MAAI;AACFvjB,kBADE,aACFA;AADF,YAEU;AACR,QAAI,CAAJ,eAAoB;AAClB9mB,oBADkB,2CAClBA;AACAqqC,2BAAqB,YAAW;AAC9B,YAAIprC,0BAAJ,uBAAqD;AACnDA,+BADmD,qBACnDA;AAF4B;AAFd,OAElBorC;AAFkB;AADZ;;AAUR,QAAIU,uBAVI,aAUR;AACApB,qCAAiC,YAAW;AAC1C,aAAOoB,qBADmC,YACnCA,EAAP;AADFpB,gBAES,YAAW,CAFpBA,QAIQ,YAAW;AAMjB,UAAIoB,qBAAJ,QAAiC;AAC/BC,aAD+B;AANhB;AAfX,KAWRrB;AAxB4B;AA9MhC,CA8MA1tC;;AAyCA,kCAAkC;AAChC,MAAIC,QAAQtF,qBADoB,aACpBA,CAAZ;AACAsF,iDAFgC,QAEhCA;AACAD,uBAHgC,KAGhCA;AA1PF;;AA6PA,iBAAiB;AACf,qBAAmB;AACjB0tC,kBADiB,OACjBA;AACA7iB,kBAFiB,YAEjBA;AAHa;AA7PjB;;AAoQA,4CAA4C;AAC1C,MAAImkB,oBAAoBr0C,wBADkB,qBAClBA,CAAxB;AACA,MAAImO,WAAW9C,WAAW,cAFgB,KAE3BA,CAAf;AACA,MAAIipC,cAAcD,gCAHwB,UAGxBA,CAAlB;AACA,MAAIE,eAAeF,gCAJuB,oBAIvBA,CAAnB;AACAC,sBAL0C,QAK1CA;AACA/rC,qCAAmC;AAAE4F,YAArC5F,EAAqC4F;AAAF,GAAnC5F,EAAkD4F,WAAlD5F,UACU4E,aAAD,EAAS;AAChBonC,+BADgB,GAChBA;AARwC,GAM1ChsC;AA1QF;;AAgRA,IAAIisC,iBAAiB,CAAC,CAACx0C,SAhRvB,WAgRA;AAEAqF,mCAAmC,iBAAgB;AAGjD,MAAIC,yBAAkC,iBAAiBA,MAAnDA,YACA,CAACA,MADDA,WACkB,CAACA,MAAD,YAAmBD,OAAnB,UAAoCA,OAD1D,KAAIC,CAAJ,EACyE;AACvED,WADuE,KACvEA;;AACA,wBAAoB;AAAA;AAFmD;;AAOvEC,UAPuE,cAOvEA;;AACA,QAAIA,MAAJ,0BAAoC;AAClCA,YADkC,wBAClCA;AADF,WAEO;AACLA,YADK,eACLA;AAXqE;;AAAA;AAJxB;AAAnDD,GAlRA,IAkRAA;;AAoBA,oBAAoB;AAElBrF,oCAAkC,iBAAgB;AAChDsF,YAAQA,SAASD,OAD+B,KAChDC;;AACA,QAAIA,wBAAiCA,MAArC,SAAoD;AAClDA,sBADkD,CAClDA;AACA,aAFkD,KAElD;AAJ8C;AAFhC,GAElBtF;AAxSF;;AAiTA,IAAI,mBAAJ,QAA+B;AAG7B,MAAIy0C,0BAA0B,SAA1BA,uBAA0B,QAAgB;AAC5C,QAAInvC,6BAA6BA,MAAjC,0BAAiE;AAC/DA,YAD+D,wBAC/DA;AAF0C;AAHjB,GAG7B;;AAKAD,yCAR6B,uBAQ7BA;AACAA,wCAT6B,uBAS7BA;AA1TF;;AA6TA,IA7TA,cA6TA;;AACA,yBAAyB;AACvB,MAAI,CAAJ,gBAAqB;AACnBgD,qBAAiBtB,0BADE,cACnBsB;;AACA,QAAI,CAAJ,gBAAqB;AACnB,YAAM,UADa,mDACb,CAAN;AAHiB;;AAMnBqsC,qBAAiBrsC,+CACfrI,wBADeqI,qBACfrI,CADeqI,SANE,IAMFA,CAAjBqsC;AAEA10C,qDARmB,KAQnBA;AATqB;;AAWvB,SAXuB,cAWvB;AAzUF;;AA4UAwL,uCAAkC;AAChC8L,oBADgC;AAGhCC,oBAHgC,8BAGhCA,WAHgC,EAGhCA,aAHgC,EAGhCA,cAHgC,EAGhCA,IAHgC,EAGqC;AACnE,uBAAmB;AACjB,YAAM,UADW,0CACX,CAAN;AAFiE;;AAInEw7B,oBAAgB,gEAJmD,IAInD,CAAhBA;AAEA,WANmE,aAMnE;AAT8B;AAAA,CAAlCvnC,C","file":"viewer.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_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, __webpack_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__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_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__webpack_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__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_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__webpack_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) __webpack_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__webpack_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__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 0);\n","/* Copyright 2016 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals chrome */\n\n'use strict';\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n var defaultUrl; // eslint-disable-line no-var\n\n (function rewriteUrlClosure() {\n // Run this code outside DOMContentLoaded to make sure that the URL\n // is rewritten as soon as possible.\n let queryString = document.location.search.slice(1);\n let m = /(^|&)file=([^&]*)/.exec(queryString);\n defaultUrl = m ? decodeURIComponent(m[2]) : '';\n\n // Example: chrome-extension://.../http://example.com/file.pdf\n let humanReadableUrl = '/' + defaultUrl + location.hash;\n history.replaceState(history.state, '', humanReadableUrl);\n if (top === window) {\n chrome.runtime.sendMessage('showPageAction');\n }\n })();\n}\n\nlet pdfjsWebApp, pdfjsWebAppOptions;\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('PRODUCTION')) {\n pdfjsWebApp = require('./app.js');\n pdfjsWebAppOptions = require('./app_options.js');\n}\n\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('FIREFOX || MOZCENTRAL')) {\n require('./firefoxcom.js');\n require('./firefox_print_service.js');\n}\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n require('./genericcom.js');\n}\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n require('./chromecom.js');\n}\nif (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME || GENERIC')) {\n require('./pdf_print_service.js');\n}\n\nfunction getViewerConfiguration() {\n return {\n appContainer: document.body,\n mainContainer: document.getElementById('viewerContainer'),\n viewerContainer: document.getElementById('viewer'),\n eventBus: null, // Using global event bus with (optional) DOM events.\n toolbar: {\n container: document.getElementById('toolbarViewer'),\n numPages: document.getElementById('numPages'),\n pageNumber: document.getElementById('pageNumber'),\n scaleSelectContainer: document.getElementById('scaleSelectContainer'),\n scaleSelect: document.getElementById('scaleSelect'),\n customScaleOption: document.getElementById('customScaleOption'),\n previous: document.getElementById('previous'),\n next: document.getElementById('next'),\n zoomIn: document.getElementById('zoomIn'),\n zoomOut: document.getElementById('zoomOut'),\n viewFind: document.getElementById('viewFind'),\n openFile: document.getElementById('openFile'),\n print: document.getElementById('print'),\n presentationModeButton: document.getElementById('presentationMode'),\n download: document.getElementById('download'),\n viewBookmark: document.getElementById('viewBookmark'),\n },\n secondaryToolbar: {\n toolbar: document.getElementById('secondaryToolbar'),\n toggleButton: document.getElementById('secondaryToolbarToggle'),\n toolbarButtonContainer:\n document.getElementById('secondaryToolbarButtonContainer'),\n presentationModeButton:\n document.getElementById('secondaryPresentationMode'),\n openFileButton: document.getElementById('secondaryOpenFile'),\n printButton: document.getElementById('secondaryPrint'),\n downloadButton: document.getElementById('secondaryDownload'),\n viewBookmarkButton: document.getElementById('secondaryViewBookmark'),\n firstPageButton: document.getElementById('firstPage'),\n lastPageButton: document.getElementById('lastPage'),\n pageRotateCwButton: document.getElementById('pageRotateCw'),\n pageRotateCcwButton: document.getElementById('pageRotateCcw'),\n cursorSelectToolButton: document.getElementById('cursorSelectTool'),\n cursorHandToolButton: document.getElementById('cursorHandTool'),\n scrollVerticalButton: document.getElementById('scrollVertical'),\n scrollHorizontalButton: document.getElementById('scrollHorizontal'),\n scrollWrappedButton: document.getElementById('scrollWrapped'),\n spreadNoneButton: document.getElementById('spreadNone'),\n spreadOddButton: document.getElementById('spreadOdd'),\n spreadEvenButton: document.getElementById('spreadEven'),\n documentPropertiesButton: document.getElementById('documentProperties'),\n },\n fullscreen: {\n contextFirstPage: document.getElementById('contextFirstPage'),\n contextLastPage: document.getElementById('contextLastPage'),\n contextPageRotateCw: document.getElementById('contextPageRotateCw'),\n contextPageRotateCcw: document.getElementById('contextPageRotateCcw'),\n },\n sidebar: {\n // Divs (and sidebar button)\n outerContainer: document.getElementById('outerContainer'),\n viewerContainer: document.getElementById('viewerContainer'),\n toggleButton: document.getElementById('sidebarToggle'),\n // Buttons\n thumbnailButton: document.getElementById('viewThumbnail'),\n outlineButton: document.getElementById('viewOutline'),\n attachmentsButton: document.getElementById('viewAttachments'),\n // Views\n thumbnailView: document.getElementById('thumbnailView'),\n outlineView: document.getElementById('outlineView'),\n attachmentsView: document.getElementById('attachmentsView'),\n },\n sidebarResizer: {\n outerContainer: document.getElementById('outerContainer'),\n resizer: document.getElementById('sidebarResizer'),\n },\n findBar: {\n bar: document.getElementById('findbar'),\n toggleButton: document.getElementById('viewFind'),\n findField: document.getElementById('findInput'),\n highlightAllCheckbox: document.getElementById('findHighlightAll'),\n caseSensitiveCheckbox: document.getElementById('findMatchCase'),\n entireWordCheckbox: document.getElementById('findEntireWord'),\n findMsg: document.getElementById('findMsg'),\n findResultsCount: document.getElementById('findResultsCount'),\n findPreviousButton: document.getElementById('findPrevious'),\n findNextButton: document.getElementById('findNext'),\n },\n passwordOverlay: {\n overlayName: 'passwordOverlay',\n container: document.getElementById('passwordOverlay'),\n label: document.getElementById('passwordText'),\n input: document.getElementById('password'),\n submitButton: document.getElementById('passwordSubmit'),\n cancelButton: document.getElementById('passwordCancel'),\n },\n documentProperties: {\n overlayName: 'documentPropertiesOverlay',\n container: document.getElementById('documentPropertiesOverlay'),\n closeButton: document.getElementById('documentPropertiesClose'),\n fields: {\n 'fileName': document.getElementById('fileNameField'),\n 'fileSize': document.getElementById('fileSizeField'),\n 'title': document.getElementById('titleField'),\n 'author': document.getElementById('authorField'),\n 'subject': document.getElementById('subjectField'),\n 'keywords': document.getElementById('keywordsField'),\n 'creationDate': document.getElementById('creationDateField'),\n 'modificationDate': document.getElementById('modificationDateField'),\n 'creator': document.getElementById('creatorField'),\n 'producer': document.getElementById('producerField'),\n 'version': document.getElementById('versionField'),\n 'pageCount': document.getElementById('pageCountField'),\n 'pageSize': document.getElementById('pageSizeField'),\n 'linearized': document.getElementById('linearizedField'),\n },\n },\n errorWrapper: {\n container: document.getElementById('errorWrapper'),\n errorMessage: document.getElementById('errorMessage'),\n closeButton: document.getElementById('errorClose'),\n errorMoreInfo: document.getElementById('errorMoreInfo'),\n moreInfoButton: document.getElementById('errorShowMore'),\n lessInfoButton: document.getElementById('errorShowLess'),\n },\n printContainer: document.getElementById('printContainer'),\n openFileInputName: 'fileInput',\n debuggerScriptPath: './debugger.js',\n };\n}\n\nfunction webViewerLoad() {\n let config = getViewerConfiguration();\n if (typeof PDFJSDev === 'undefined' || !PDFJSDev.test('PRODUCTION')) {\n Promise.all([\n SystemJS.import('pdfjs-web/app'),\n SystemJS.import('pdfjs-web/app_options'),\n SystemJS.import('pdfjs-web/genericcom'),\n SystemJS.import('pdfjs-web/pdf_print_service'),\n ]).then(function([app, appOptions, ...otherModules]) {\n window.PDFViewerApplication = app.PDFViewerApplication;\n window.PDFViewerApplicationOptions = appOptions.AppOptions;\n app.PDFViewerApplication.run(config);\n });\n } else {\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('CHROME')) {\n pdfjsWebAppOptions.AppOptions.set('defaultUrl', defaultUrl);\n }\n\n window.PDFViewerApplication = pdfjsWebApp.PDFViewerApplication;\n window.PDFViewerApplicationOptions = pdfjsWebAppOptions.AppOptions;\n\n if (typeof PDFJSDev !== 'undefined' && PDFJSDev.test('GENERIC')) {\n // Give custom implementations of the default viewer a simpler way to\n // set various `AppOptions`, by dispatching an event once all viewer\n // files are loaded but *before* the viewer initialization has run.\n const event = document.createEvent('CustomEvent');\n event.initCustomEvent('webviewerloaded', true, true, {});\n document.dispatchEvent(event);\n }\n\n pdfjsWebApp.PDFViewerApplication.run(config);\n }\n}\n\nif (document.readyState === 'interactive' ||\n document.readyState === 'complete') {\n webViewerLoad();\n} else {\n document.addEventListener('DOMContentLoaded', webViewerLoad, true);\n}\n","/* Copyright 2012 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/* globals PDFBug, Stats */\n\nimport {\n animationStarted, DEFAULT_SCALE_VALUE, getGlobalEventBus,\n getPDFFileNameFromURL, isValidRotation, isValidScrollMode, isValidSpreadMode,\n MAX_SCALE, MIN_SCALE, noContextMenuHandler, normalizeWheelEventDelta,\n parseQueryString, PresentationModeState, ProgressBar, RendererType,\n ScrollMode, SpreadMode, TextLayerMode\n} from './ui_utils';\nimport { AppOptions, OptionKind } from './app_options';\nimport {\n build, createObjectURL, getDocument, getFilenameFromUrl, GlobalWorkerOptions,\n InvalidPDFException, LinkTarget, loadScript, MissingPDFException, OPS,\n PDFWorker, shadow, UnexpectedResponseException, UNSUPPORTED_FEATURES, URL,\n version\n} from 'pdfjs-lib';\nimport { CursorTool, PDFCursorTools } from './pdf_cursor_tools';\nimport { PDFRenderingQueue, RenderingStates } from './pdf_rendering_queue';\nimport { PDFSidebar, SidebarView } from './pdf_sidebar';\nimport { OverlayManager } from './overlay_manager';\nimport { PasswordPrompt } from './password_prompt';\nimport { PDFAttachmentViewer } from './pdf_attachment_viewer';\nimport { PDFDocumentProperties } from './pdf_document_properties';\nimport { PDFFindBar } from './pdf_find_bar';\nimport { PDFFindController } from './pdf_find_controller';\nimport { PDFHistory } from './pdf_history';\nimport { PDFLinkService } from './pdf_link_service';\nimport { PDFOutlineViewer } from './pdf_outline_viewer';\nimport { PDFPresentationMode } from './pdf_presentation_mode';\nimport { PDFSidebarResizer } from './pdf_sidebar_resizer';\nimport { PDFThumbnailViewer } from './pdf_thumbnail_viewer';\nimport { PDFViewer } from './pdf_viewer';\nimport { SecondaryToolbar } from './secondary_toolbar';\nimport { Toolbar } from './toolbar';\nimport { ViewHistory } from './view_history';\n\nconst DEFAULT_SCALE_DELTA = 1.1;\nconst DISABLE_AUTO_FETCH_LOADING_BAR_TIMEOUT = 5000; // ms\nconst FORCE_PAGES_LOADED_TIMEOUT = 10000; // ms\nconst WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; // ms\n\nconst ViewOnLoad = {\n UNKNOWN: -1,\n PREVIOUS: 0, // Default value.\n INITIAL: 1,\n};\n\nconst DefaultExternalServices = {\n updateFindControlState(data) {},\n updateFindMatchesCount(data) {},\n initPassiveLoading(callbacks) {},\n fallback(data, callback) {},\n reportTelemetry(data) {},\n createDownloadManager(options) {\n throw new Error('Not implemented: createDownloadManager');\n },\n createPreferences() {\n throw new Error('Not implemented: createPreferences');\n },\n createL10n(options) {\n throw new Error('Not implemented: createL10n');\n },\n supportsIntegratedFind: false,\n supportsDocumentFonts: true,\n supportsDocumentColors: true,\n supportedMouseWheelZoomModifierKeys: {\n ctrlKey: true,\n metaKey: true,\n },\n};\n\nlet PDFViewerApplication = {\n initialBookmark: document.location.hash.substring(1),\n initialized: false,\n fellback: false,\n appConfig: null,\n pdfDocument: null,\n pdfLoadingTask: null,\n printService: null,\n /** @type {PDFViewer} */\n pdfViewer: null,\n /** @type {PDFThumbnailViewer} */\n pdfThumbnailViewer: null,\n /** @type {PDFRenderingQueue} */\n pdfRenderingQueue: null,\n /** @type {PDFPresentationMode} */\n pdfPresentationMode: null,\n /** @type {PDFDocumentProperties} */\n pdfDocumentProperties: null,\n /** @type {PDFLinkService} */\n pdfLinkService: null,\n /** @type {PDFHistory} */\n pdfHistory: null,\n /** @type {PDFSidebar} */\n pdfSidebar: null,\n /** @type {PDFSidebarResizer} */\n pdfSidebarResizer: null,\n /** @type {PDFOutlineViewer} */\n pdfOutlineViewer: null,\n /** @type {PDFAttachmentViewer} */\n pdfAttachmentViewer: null,\n /** @type {PDFCursorTools} */\n pdfCursorTools: null,\n /** @type {ViewHistory} */\n store: null,\n /** @type {DownloadManager} */\n downloadManager: null,\n /** @type {OverlayManager} */\n overlayManager: null,\n /** @type {Preferences} */\n preferences: null,\n /** @type {Toolbar} */\n toolbar: null,\n /** @type {SecondaryToolbar} */\n secondaryToolbar: null,\n /** @type {EventBus} */\n eventBus: null,\n /** @type {IL10n} */\n l10n: null,\n isInitialViewSet: false,\n downloadComplete: false,\n isViewerEmbedded: (window.parent !== window),\n url: '',\n baseUrl: '',\n externalServices: DefaultExternalServices,\n _boundEvents: {},\n contentDispositionFilename: null,\n\n // Called once when the document is loaded.\n async initialize(appConfig) {\n this.preferences = this.externalServices.createPreferences();\n this.appConfig = appConfig;\n\n await this._readPreferences();\n await this._parseHashParameters();\n await this._initializeL10n();\n\n if (this.isViewerEmbedded &&\n AppOptions.get('externalLinkTarget') === LinkTarget.NONE) {\n // Prevent external links from \"replacing\" the viewer,\n // when it's embedded in e.g. an