diff --git a/src/main/webapp/js/pdfjs-3.11.174/LICENSE b/src/main/webapp/js/pdfjs-3.11.174/LICENSE new file mode 100644 index 00000000..f433b1a5 --- /dev/null +++ b/src/main/webapp/js/pdfjs-3.11.174/LICENSE @@ -0,0 +1,177 @@ + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS diff --git a/src/main/webapp/js/pdfjs-3.11.174/build/pdf.js b/src/main/webapp/js/pdfjs-3.11.174/build/pdf.js new file mode 100644 index 00000000..4acf16b1 --- /dev/null +++ b/src/main/webapp/js/pdfjs-3.11.174/build/pdf.js @@ -0,0 +1,18146 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2023 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = root.pdfjsLib = factory(); + else if(typeof define === 'function' && define.amd) + define("pdfjs-dist/build/pdf", [], () => { return (root.pdfjsLib = factory()); }); + else if(typeof exports === 'object') + exports["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); + else + root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory(); +})(globalThis, () => { +return /******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.RenderingIntentFlag = exports.PromiseCapability = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.MAX_IMAGE_SIZE_TO_CACHE = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.BASELINE_FACTOR = exports.AnnotationType = exports.AnnotationReplyType = exports.AnnotationPrefix = exports.AnnotationMode = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0; +exports.assert = assert; +exports.bytesToString = bytesToString; +exports.createValidAbsoluteUrl = createValidAbsoluteUrl; +exports.getModificationDate = getModificationDate; +exports.getUuid = getUuid; +exports.getVerbosityLevel = getVerbosityLevel; +exports.info = info; +exports.isArrayBuffer = isArrayBuffer; +exports.isArrayEqual = isArrayEqual; +exports.isNodeJS = void 0; +exports.normalizeUnicode = normalizeUnicode; +exports.objectFromMap = objectFromMap; +exports.objectSize = objectSize; +exports.setVerbosityLevel = setVerbosityLevel; +exports.shadow = shadow; +exports.string32 = string32; +exports.stringToBytes = stringToBytes; +exports.stringToPDFString = stringToPDFString; +exports.stringToUTF8String = stringToUTF8String; +exports.unreachable = unreachable; +exports.utf8StringToString = utf8StringToString; +exports.warn = warn; +const isNodeJS = typeof process === "object" && process + "" === "[object process]" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== "browser"); +exports.isNodeJS = isNodeJS; +const IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; +exports.IDENTITY_MATRIX = IDENTITY_MATRIX; +const FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0]; +exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX; +const MAX_IMAGE_SIZE_TO_CACHE = 10e6; +exports.MAX_IMAGE_SIZE_TO_CACHE = MAX_IMAGE_SIZE_TO_CACHE; +const LINE_FACTOR = 1.35; +exports.LINE_FACTOR = LINE_FACTOR; +const LINE_DESCENT_FACTOR = 0.35; +exports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR; +const BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR; +exports.BASELINE_FACTOR = BASELINE_FACTOR; +const RenderingIntentFlag = { + ANY: 0x01, + DISPLAY: 0x02, + PRINT: 0x04, + SAVE: 0x08, + ANNOTATIONS_FORMS: 0x10, + ANNOTATIONS_STORAGE: 0x20, + ANNOTATIONS_DISABLE: 0x40, + OPLIST: 0x100 +}; +exports.RenderingIntentFlag = RenderingIntentFlag; +const AnnotationMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_FORMS: 2, + ENABLE_STORAGE: 3 +}; +exports.AnnotationMode = AnnotationMode; +const AnnotationEditorPrefix = "pdfjs_internal_editor_"; +exports.AnnotationEditorPrefix = AnnotationEditorPrefix; +const AnnotationEditorType = { + DISABLE: -1, + NONE: 0, + FREETEXT: 3, + STAMP: 13, + INK: 15 +}; +exports.AnnotationEditorType = AnnotationEditorType; +const AnnotationEditorParamsType = { + RESIZE: 1, + CREATE: 2, + FREETEXT_SIZE: 11, + FREETEXT_COLOR: 12, + FREETEXT_OPACITY: 13, + INK_COLOR: 21, + INK_THICKNESS: 22, + INK_OPACITY: 23 +}; +exports.AnnotationEditorParamsType = AnnotationEditorParamsType; +const PermissionFlag = { + PRINT: 0x04, + MODIFY_CONTENTS: 0x08, + COPY: 0x10, + MODIFY_ANNOTATIONS: 0x20, + FILL_INTERACTIVE_FORMS: 0x100, + COPY_FOR_ACCESSIBILITY: 0x200, + ASSEMBLE: 0x400, + PRINT_HIGH_QUALITY: 0x800 +}; +exports.PermissionFlag = PermissionFlag; +const TextRenderingMode = { + FILL: 0, + STROKE: 1, + FILL_STROKE: 2, + INVISIBLE: 3, + FILL_ADD_TO_PATH: 4, + STROKE_ADD_TO_PATH: 5, + FILL_STROKE_ADD_TO_PATH: 6, + ADD_TO_PATH: 7, + FILL_STROKE_MASK: 3, + ADD_TO_PATH_FLAG: 4 +}; +exports.TextRenderingMode = TextRenderingMode; +const ImageKind = { + GRAYSCALE_1BPP: 1, + RGB_24BPP: 2, + RGBA_32BPP: 3 +}; +exports.ImageKind = ImageKind; +const AnnotationType = { + TEXT: 1, + LINK: 2, + FREETEXT: 3, + LINE: 4, + SQUARE: 5, + CIRCLE: 6, + POLYGON: 7, + POLYLINE: 8, + HIGHLIGHT: 9, + UNDERLINE: 10, + SQUIGGLY: 11, + STRIKEOUT: 12, + STAMP: 13, + CARET: 14, + INK: 15, + POPUP: 16, + FILEATTACHMENT: 17, + SOUND: 18, + MOVIE: 19, + WIDGET: 20, + SCREEN: 21, + PRINTERMARK: 22, + TRAPNET: 23, + WATERMARK: 24, + THREED: 25, + REDACT: 26 +}; +exports.AnnotationType = AnnotationType; +const AnnotationReplyType = { + GROUP: "Group", + REPLY: "R" +}; +exports.AnnotationReplyType = AnnotationReplyType; +const AnnotationFlag = { + INVISIBLE: 0x01, + HIDDEN: 0x02, + PRINT: 0x04, + NOZOOM: 0x08, + NOROTATE: 0x10, + NOVIEW: 0x20, + READONLY: 0x40, + LOCKED: 0x80, + TOGGLENOVIEW: 0x100, + LOCKEDCONTENTS: 0x200 +}; +exports.AnnotationFlag = AnnotationFlag; +const AnnotationFieldFlag = { + READONLY: 0x0000001, + REQUIRED: 0x0000002, + NOEXPORT: 0x0000004, + MULTILINE: 0x0001000, + PASSWORD: 0x0002000, + NOTOGGLETOOFF: 0x0004000, + RADIO: 0x0008000, + PUSHBUTTON: 0x0010000, + COMBO: 0x0020000, + EDIT: 0x0040000, + SORT: 0x0080000, + FILESELECT: 0x0100000, + MULTISELECT: 0x0200000, + DONOTSPELLCHECK: 0x0400000, + DONOTSCROLL: 0x0800000, + COMB: 0x1000000, + RICHTEXT: 0x2000000, + RADIOSINUNISON: 0x2000000, + COMMITONSELCHANGE: 0x4000000 +}; +exports.AnnotationFieldFlag = AnnotationFieldFlag; +const AnnotationBorderStyleType = { + SOLID: 1, + DASHED: 2, + BEVELED: 3, + INSET: 4, + UNDERLINE: 5 +}; +exports.AnnotationBorderStyleType = AnnotationBorderStyleType; +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 VerbosityLevel = { + ERRORS: 0, + WARNINGS: 1, + INFOS: 5 +}; +exports.VerbosityLevel = VerbosityLevel; +const CMapCompressionType = { + NONE: 0, + BINARY: 1 +}; +exports.CMapCompressionType = CMapCompressionType; +const OPS = { + dependency: 1, + setLineWidth: 2, + setLineCap: 3, + setLineJoin: 4, + setMiterLimit: 5, + setDash: 6, + setRenderingIntent: 7, + setFlatness: 8, + setGState: 9, + save: 10, + restore: 11, + transform: 12, + moveTo: 13, + lineTo: 14, + curveTo: 15, + curveTo2: 16, + curveTo3: 17, + closePath: 18, + rectangle: 19, + stroke: 20, + closeStroke: 21, + fill: 22, + eoFill: 23, + fillStroke: 24, + eoFillStroke: 25, + closeFillStroke: 26, + closeEOFillStroke: 27, + endPath: 28, + clip: 29, + eoClip: 30, + beginText: 31, + endText: 32, + setCharSpacing: 33, + setWordSpacing: 34, + setHScale: 35, + setLeading: 36, + setFont: 37, + setTextRenderingMode: 38, + setTextRise: 39, + moveText: 40, + setLeadingMoveText: 41, + setTextMatrix: 42, + nextLine: 43, + showText: 44, + showSpacedText: 45, + nextLineShowText: 46, + nextLineSetSpacingShowText: 47, + setCharWidth: 48, + setCharWidthAndBounds: 49, + setStrokeColorSpace: 50, + setFillColorSpace: 51, + setStrokeColor: 52, + setStrokeColorN: 53, + setFillColor: 54, + setFillColorN: 55, + setStrokeGray: 56, + setFillGray: 57, + setStrokeRGBColor: 58, + setFillRGBColor: 59, + setStrokeCMYKColor: 60, + setFillCMYKColor: 61, + shadingFill: 62, + beginInlineImage: 63, + beginImageData: 64, + endInlineImage: 65, + paintXObject: 66, + markPoint: 67, + markPointProps: 68, + beginMarkedContent: 69, + beginMarkedContentProps: 70, + endMarkedContent: 71, + beginCompat: 72, + endCompat: 73, + paintFormXObjectBegin: 74, + paintFormXObjectEnd: 75, + beginGroup: 76, + endGroup: 77, + beginAnnotation: 80, + endAnnotation: 81, + paintImageMaskXObject: 83, + paintImageMaskXObjectGroup: 84, + paintImageXObject: 85, + paintInlineImageXObject: 86, + paintInlineImageXObjectGroup: 87, + paintImageXObjectRepeat: 88, + paintImageMaskXObjectRepeat: 89, + paintSolidColorImageMask: 90, + constructPath: 91 +}; +exports.OPS = OPS; +const PasswordResponses = { + NEED_PASSWORD: 1, + INCORRECT_PASSWORD: 2 +}; +exports.PasswordResponses = PasswordResponses; +let verbosity = VerbosityLevel.WARNINGS; +function setVerbosityLevel(level) { + if (Number.isInteger(level)) { + verbosity = level; + } +} +function getVerbosityLevel() { + return verbosity; +} +function info(msg) { + if (verbosity >= VerbosityLevel.INFOS) { + console.log(`Info: ${msg}`); + } +} +function warn(msg) { + if (verbosity >= VerbosityLevel.WARNINGS) { + console.log(`Warning: ${msg}`); + } +} +function unreachable(msg) { + throw new Error(msg); +} +function assert(cond, msg) { + if (!cond) { + unreachable(msg); + } +} +function _isValidProtocol(url) { + switch (url?.protocol) { + case "http:": + case "https:": + case "ftp:": + case "mailto:": + case "tel:": + return true; + default: + return false; + } +} +function createValidAbsoluteUrl(url, baseUrl = null, options = null) { + if (!url) { + return null; + } + try { + if (options && typeof url === "string") { + if (options.addDefaultProtocol && url.startsWith("www.")) { + const dots = url.match(/\./g); + if (dots?.length >= 2) { + url = `http://${url}`; + } + } + if (options.tryConvertEncoding) { + try { + url = stringToUTF8String(url); + } catch {} + } + } + const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url); + if (_isValidProtocol(absoluteUrl)) { + return absoluteUrl; + } + } catch {} + return null; +} +function shadow(obj, prop, value, nonSerializable = false) { + Object.defineProperty(obj, prop, { + value, + enumerable: !nonSerializable, + configurable: true, + writable: false + }); + return value; +} +const BaseException = function BaseExceptionClosure() { + function BaseException(message, name) { + if (this.constructor === BaseException) { + unreachable("Cannot initialize BaseException."); + } + this.message = message; + this.name = name; + } + BaseException.prototype = new Error(); + BaseException.constructor = BaseException; + return BaseException; +}(); +exports.BaseException = BaseException; +class PasswordException extends BaseException { + constructor(msg, code) { + super(msg, "PasswordException"); + this.code = code; + } +} +exports.PasswordException = PasswordException; +class UnknownErrorException extends BaseException { + constructor(msg, details) { + super(msg, "UnknownErrorException"); + this.details = details; + } +} +exports.UnknownErrorException = UnknownErrorException; +class InvalidPDFException extends BaseException { + constructor(msg) { + super(msg, "InvalidPDFException"); + } +} +exports.InvalidPDFException = InvalidPDFException; +class MissingPDFException extends BaseException { + constructor(msg) { + super(msg, "MissingPDFException"); + } +} +exports.MissingPDFException = MissingPDFException; +class UnexpectedResponseException extends BaseException { + constructor(msg, status) { + super(msg, "UnexpectedResponseException"); + this.status = status; + } +} +exports.UnexpectedResponseException = UnexpectedResponseException; +class FormatError extends BaseException { + constructor(msg) { + super(msg, "FormatError"); + } +} +exports.FormatError = FormatError; +class AbortException extends BaseException { + constructor(msg) { + super(msg, "AbortException"); + } +} +exports.AbortException = AbortException; +function bytesToString(bytes) { + if (typeof bytes !== "object" || bytes?.length === undefined) { + unreachable("Invalid argument for bytesToString"); + } + const length = bytes.length; + const MAX_ARGUMENT_COUNT = 8192; + if (length < MAX_ARGUMENT_COUNT) { + return String.fromCharCode.apply(null, bytes); + } + const strBuf = []; + 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(""); +} +function stringToBytes(str) { + if (typeof str !== "string") { + unreachable("Invalid argument for stringToBytes"); + } + const length = str.length; + const bytes = new Uint8Array(length); + for (let i = 0; i < length; ++i) { + bytes[i] = str.charCodeAt(i) & 0xff; + } + return bytes; +} +function string32(value) { + return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff); +} +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 obj; +} +function isLittleEndian() { + const buffer8 = new Uint8Array(4); + buffer8[0] = 1; + const view32 = new Uint32Array(buffer8.buffer, 0, 1); + return view32[0] === 1; +} +function isEvalSupported() { + try { + new Function(""); + return true; + } catch { + return false; + } +} +class FeatureTest { + static get isLittleEndian() { + return shadow(this, "isLittleEndian", isLittleEndian()); + } + static get isEvalSupported() { + return shadow(this, "isEvalSupported", isEvalSupported()); + } + static get isOffscreenCanvasSupported() { + return shadow(this, "isOffscreenCanvasSupported", typeof OffscreenCanvas !== "undefined"); + } + static get platform() { + if (typeof navigator === "undefined") { + return shadow(this, "platform", { + isWin: false, + isMac: false + }); + } + return shadow(this, "platform", { + isWin: navigator.platform.includes("Win"), + isMac: navigator.platform.includes("Mac") + }); + } + static get isCSSRoundSupported() { + return shadow(this, "isCSSRoundSupported", globalThis.CSS?.supports?.("width: round(1.5px, 1px)")); + } +} +exports.FeatureTest = FeatureTest; +const hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, "0")); +class Util { + static makeHexColor(r, g, b) { + return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`; + } + static scaleMinMax(transform, minMax) { + let temp; + if (transform[0]) { + if (transform[0] < 0) { + temp = minMax[0]; + minMax[0] = minMax[1]; + minMax[1] = temp; + } + minMax[0] *= transform[0]; + minMax[1] *= transform[0]; + if (transform[3] < 0) { + temp = minMax[2]; + minMax[2] = minMax[3]; + minMax[3] = temp; + } + minMax[2] *= transform[3]; + minMax[3] *= transform[3]; + } else { + temp = minMax[0]; + minMax[0] = minMax[2]; + minMax[2] = temp; + temp = minMax[1]; + minMax[1] = minMax[3]; + minMax[3] = temp; + if (transform[1] < 0) { + temp = minMax[2]; + minMax[2] = minMax[3]; + minMax[3] = temp; + } + minMax[2] *= transform[1]; + minMax[3] *= transform[1]; + if (transform[2] < 0) { + temp = minMax[0]; + minMax[0] = minMax[1]; + minMax[1] = temp; + } + minMax[0] *= transform[2]; + minMax[1] *= transform[2]; + } + minMax[0] += transform[4]; + minMax[1] += transform[4]; + minMax[2] += transform[5]; + minMax[3] += transform[5]; + } + 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]]; + } + 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]; + } + 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]; + } + static getAxialAlignedBoundingBox(r, m) { + const p1 = this.applyTransform(r, m); + const p2 = this.applyTransform(r.slice(2, 4), m); + const p3 = this.applyTransform([r[0], r[3]], m); + const p4 = this.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])]; + } + 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]; + } + 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)]; + } + static normalizeRect(rect) { + const r = rect.slice(0); + if (rect[0] > rect[2]) { + r[0] = rect[2]; + r[2] = rect[0]; + } + if (rect[1] > rect[3]) { + r[1] = rect[3]; + r[3] = rect[1]; + } + return r; + } + static intersect(rect1, rect2) { + const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2])); + const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2])); + if (xLow > xHigh) { + return null; + } + const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3])); + const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3])); + if (yLow > yHigh) { + return null; + } + return [xLow, yLow, xHigh, yHigh]; + } + static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) { + const tvalues = [], + bounds = [[], []]; + let a, b, c, t, t1, t2, b2ac, sqrtb2ac; + for (let i = 0; i < 2; ++i) { + if (i === 0) { + b = 6 * x0 - 12 * x1 + 6 * x2; + a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3; + c = 3 * x1 - 3 * x0; + } else { + b = 6 * y0 - 12 * y1 + 6 * y2; + a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3; + c = 3 * y1 - 3 * y0; + } + if (Math.abs(a) < 1e-12) { + if (Math.abs(b) < 1e-12) { + continue; + } + t = -c / b; + if (0 < t && t < 1) { + tvalues.push(t); + } + continue; + } + b2ac = b * b - 4 * c * a; + sqrtb2ac = Math.sqrt(b2ac); + if (b2ac < 0) { + continue; + } + t1 = (-b + sqrtb2ac) / (2 * a); + if (0 < t1 && t1 < 1) { + tvalues.push(t1); + } + t2 = (-b - sqrtb2ac) / (2 * a); + if (0 < t2 && t2 < 1) { + tvalues.push(t2); + } + } + let j = tvalues.length, + mt; + const jlen = j; + while (j--) { + t = tvalues[j]; + mt = 1 - t; + bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3; + bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3; + } + bounds[0][jlen] = x0; + bounds[1][jlen] = y0; + bounds[0][jlen + 1] = x3; + bounds[1][jlen + 1] = y3; + bounds[0].length = bounds[1].length = jlen + 2; + return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])]; + } +} +exports.Util = Util; +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) { + if (str[0] >= "\xEF") { + let encoding; + if (str[0] === "\xFE" && str[1] === "\xFF") { + encoding = "utf-16be"; + } else if (str[0] === "\xFF" && str[1] === "\xFE") { + encoding = "utf-16le"; + } else if (str[0] === "\xEF" && str[1] === "\xBB" && str[2] === "\xBF") { + encoding = "utf-8"; + } + if (encoding) { + try { + const decoder = new TextDecoder(encoding, { + fatal: true + }); + const buffer = stringToBytes(str); + return decoder.decode(buffer); + } catch (ex) { + warn(`stringToPDFString: "${ex}".`); + } + } + } + const strBuf = []; + for (let i = 0, ii = str.length; i < ii; i++) { + const code = PDFStringTranslateTable[str.charCodeAt(i)]; + strBuf.push(code ? String.fromCharCode(code) : str.charAt(i)); + } + return strBuf.join(""); +} +function stringToUTF8String(str) { + return decodeURIComponent(escape(str)); +} +function utf8StringToString(str) { + return unescape(encodeURIComponent(str)); +} +function isArrayBuffer(v) { + return typeof v === "object" && v?.byteLength !== undefined; +} +function isArrayEqual(arr1, arr2) { + if (arr1.length !== arr2.length) { + return false; + } + for (let i = 0, ii = arr1.length; i < ii; i++) { + if (arr1[i] !== arr2[i]) { + return false; + } + } + return true; +} +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(""); +} +class PromiseCapability { + #settled = false; + constructor() { + this.promise = new Promise((resolve, reject) => { + this.resolve = data => { + this.#settled = true; + resolve(data); + }; + this.reject = reason => { + this.#settled = true; + reject(reason); + }; + }); + } + get settled() { + return this.#settled; + } +} +exports.PromiseCapability = PromiseCapability; +let NormalizeRegex = null; +let NormalizationMap = null; +function normalizeUnicode(str) { + if (!NormalizeRegex) { + NormalizeRegex = /([\u00a0\u00b5\u037e\u0eb3\u2000-\u200a\u202f\u2126\ufb00-\ufb04\ufb06\ufb20-\ufb36\ufb38-\ufb3c\ufb3e\ufb40-\ufb41\ufb43-\ufb44\ufb46-\ufba1\ufba4-\ufba9\ufbae-\ufbb1\ufbd3-\ufbdc\ufbde-\ufbe7\ufbea-\ufbf8\ufbfc-\ufbfd\ufc00-\ufc5d\ufc64-\ufcf1\ufcf5-\ufd3d\ufd88\ufdf4\ufdfa-\ufdfb\ufe71\ufe77\ufe79\ufe7b\ufe7d]+)|(\ufb05+)/gu; + NormalizationMap = new Map([["ſt", "ſt"]]); + } + return str.replaceAll(NormalizeRegex, (_, p1, p2) => { + return p1 ? p1.normalize("NFKC") : NormalizationMap.get(p2); + }); +} +function getUuid() { + if (typeof crypto !== "undefined" && typeof crypto?.randomUUID === "function") { + return crypto.randomUUID(); + } + const buf = new Uint8Array(32); + if (typeof crypto !== "undefined" && typeof crypto?.getRandomValues === "function") { + crypto.getRandomValues(buf); + } else { + for (let i = 0; i < 32; i++) { + buf[i] = Math.floor(Math.random() * 255); + } + } + return bytesToString(buf); +} +const AnnotationPrefix = "pdfjs_internal_id_"; +exports.AnnotationPrefix = AnnotationPrefix; + +/***/ }), +/* 2 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultFilterFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0; +Object.defineProperty(exports, "SVGGraphics", ({ + enumerable: true, + get: function () { + return _displaySvg.SVGGraphics; + } +})); +exports.build = void 0; +exports.getDocument = getDocument; +exports.version = void 0; +var _util = __w_pdfjs_require__(1); +var _annotation_storage = __w_pdfjs_require__(3); +var _display_utils = __w_pdfjs_require__(6); +var _font_loader = __w_pdfjs_require__(9); +var _displayNode_utils = __w_pdfjs_require__(10); +var _canvas = __w_pdfjs_require__(11); +var _worker_options = __w_pdfjs_require__(14); +var _message_handler = __w_pdfjs_require__(15); +var _metadata = __w_pdfjs_require__(16); +var _optional_content_config = __w_pdfjs_require__(17); +var _transport_stream = __w_pdfjs_require__(18); +var _displayFetch_stream = __w_pdfjs_require__(19); +var _displayNetwork = __w_pdfjs_require__(22); +var _displayNode_stream = __w_pdfjs_require__(23); +var _displaySvg = __w_pdfjs_require__(24); +var _xfa_text = __w_pdfjs_require__(25); +const DEFAULT_RANGE_CHUNK_SIZE = 65536; +const RENDERING_CANCELLED_TIMEOUT = 100; +const DELAYED_CLEANUP_TIMEOUT = 5000; +const DefaultCanvasFactory = _util.isNodeJS ? _displayNode_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory; +exports.DefaultCanvasFactory = DefaultCanvasFactory; +const DefaultCMapReaderFactory = _util.isNodeJS ? _displayNode_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory; +exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory; +const DefaultFilterFactory = _util.isNodeJS ? _displayNode_utils.NodeFilterFactory : _display_utils.DOMFilterFactory; +exports.DefaultFilterFactory = DefaultFilterFactory; +const DefaultStandardFontDataFactory = _util.isNodeJS ? _displayNode_utils.NodeStandardFontDataFactory : _display_utils.DOMStandardFontDataFactory; +exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory; +function getDocument(src) { + if (typeof src === "string" || src instanceof URL) { + src = { + url: src + }; + } else if ((0, _util.isArrayBuffer)(src)) { + src = { + data: src + }; + } + if (typeof src !== "object") { + throw new Error("Invalid parameter in getDocument, need parameter object."); + } + if (!src.url && !src.data && !src.range) { + throw new Error("Invalid parameter object: need either .data, .range or .url"); + } + const task = new PDFDocumentLoadingTask(); + const { + docId + } = task; + const url = src.url ? getUrlProp(src.url) : null; + const data = src.data ? getDataProp(src.data) : null; + const httpHeaders = src.httpHeaders || null; + const withCredentials = src.withCredentials === true; + const password = src.password ?? null; + const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null; + const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE; + let worker = src.worker instanceof PDFWorker ? src.worker : null; + const verbosity = src.verbosity; + const docBaseUrl = typeof src.docBaseUrl === "string" && !(0, _display_utils.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null; + const cMapUrl = typeof src.cMapUrl === "string" ? src.cMapUrl : null; + const cMapPacked = src.cMapPacked !== false; + const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory; + const standardFontDataUrl = typeof src.standardFontDataUrl === "string" ? src.standardFontDataUrl : null; + const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory; + const ignoreErrors = src.stopAtErrors !== true; + const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1; + const isEvalSupported = src.isEvalSupported !== false; + const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === "boolean" ? src.isOffscreenCanvasSupported : !_util.isNodeJS; + const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes) ? src.canvasMaxAreaInBytes : -1; + const disableFontFace = typeof src.disableFontFace === "boolean" ? src.disableFontFace : _util.isNodeJS; + const fontExtraProperties = src.fontExtraProperties === true; + const enableXfa = src.enableXfa === true; + const ownerDocument = src.ownerDocument || globalThis.document; + const disableRange = src.disableRange === true; + const disableStream = src.disableStream === true; + const disableAutoFetch = src.disableAutoFetch === true; + const pdfBug = src.pdfBug === true; + const length = rangeTransport ? rangeTransport.length : src.length ?? NaN; + const useSystemFonts = typeof src.useSystemFonts === "boolean" ? src.useSystemFonts : !_util.isNodeJS && !disableFontFace; + const useWorkerFetch = typeof src.useWorkerFetch === "boolean" ? src.useWorkerFetch : CMapReaderFactory === _display_utils.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory && cMapUrl && standardFontDataUrl && (0, _display_utils.isValidFetchUrl)(cMapUrl, document.baseURI) && (0, _display_utils.isValidFetchUrl)(standardFontDataUrl, document.baseURI); + const canvasFactory = src.canvasFactory || new DefaultCanvasFactory({ + ownerDocument + }); + const filterFactory = src.filterFactory || new DefaultFilterFactory({ + docId, + ownerDocument + }); + const styleElement = null; + (0, _util.setVerbosityLevel)(verbosity); + const transportFactory = { + canvasFactory, + filterFactory + }; + if (!useWorkerFetch) { + transportFactory.cMapReaderFactory = new CMapReaderFactory({ + baseUrl: cMapUrl, + isCompressed: cMapPacked + }); + transportFactory.standardFontDataFactory = new StandardFontDataFactory({ + baseUrl: standardFontDataUrl + }); + } + if (!worker) { + const workerParams = { + verbosity, + port: _worker_options.GlobalWorkerOptions.workerPort + }; + worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams); + task._worker = worker; + } + const fetchDocParams = { + docId, + apiVersion: '3.11.174', + data, + password, + disableAutoFetch, + rangeChunkSize, + length, + docBaseUrl, + enableXfa, + evaluatorOptions: { + maxImageSize, + disableFontFace, + ignoreErrors, + isEvalSupported, + isOffscreenCanvasSupported, + canvasMaxAreaInBytes, + fontExtraProperties, + useSystemFonts, + cMapUrl: useWorkerFetch ? cMapUrl : null, + standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null + } + }; + const transportParams = { + ignoreErrors, + isEvalSupported, + disableFontFace, + fontExtraProperties, + enableXfa, + ownerDocument, + disableAutoFetch, + pdfBug, + styleElement + }; + worker.promise.then(function () { + if (task.destroyed) { + throw new Error("Loading aborted"); + } + const workerIdPromise = _fetchDocument(worker, fetchDocParams); + const networkStreamPromise = new Promise(function (resolve) { + let networkStream; + if (rangeTransport) { + networkStream = new _transport_stream.PDFDataTransportStream({ + length, + initialData: rangeTransport.initialData, + progressiveDone: rangeTransport.progressiveDone, + contentDispositionFilename: rangeTransport.contentDispositionFilename, + disableRange, + disableStream + }, rangeTransport); + } else if (!data) { + const createPDFNetworkStream = params => { + if (_util.isNodeJS) { + return new _displayNode_stream.PDFNodeStream(params); + } + return (0, _display_utils.isValidFetchUrl)(params.url) ? new _displayFetch_stream.PDFFetchStream(params) : new _displayNetwork.PDFNetworkStream(params); + }; + networkStream = createPDFNetworkStream({ + url, + length, + httpHeaders, + withCredentials, + rangeChunkSize, + disableRange, + disableStream + }); + } + resolve(networkStream); + }); + 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); + const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory); + task._transport = transport; + messageHandler.send("Ready", null); + }); + }).catch(task._capability.reject); + return task; +} +async function _fetchDocument(worker, source) { + if (worker.destroyed) { + throw new Error("Worker was destroyed"); + } + const workerId = await worker.messageHandler.sendWithPromise("GetDocRequest", source, source.data ? [source.data.buffer] : null); + if (worker.destroyed) { + throw new Error("Worker was destroyed"); + } + return workerId; +} +function getUrlProp(val) { + if (val instanceof URL) { + return val.href; + } + try { + return new URL(val, window.location).href; + } catch { + if (_util.isNodeJS && typeof val === "string") { + return val; + } + } + throw new Error("Invalid PDF url data: " + "either string or URL-object is expected in the url property."); +} +function getDataProp(val) { + if (_util.isNodeJS && typeof Buffer !== "undefined" && val instanceof Buffer) { + throw new Error("Please provide binary data as `Uint8Array`, rather than `Buffer`."); + } + if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) { + return val; + } + if (typeof val === "string") { + return (0, _util.stringToBytes)(val); + } + if (typeof val === "object" && !isNaN(val?.length) || (0, _util.isArrayBuffer)(val)) { + return new Uint8Array(val); + } + throw new Error("Invalid PDF binary data: either TypedArray, " + "string, or array-like object is expected in the data property."); +} +class PDFDocumentLoadingTask { + static #docId = 0; + constructor() { + this._capability = new _util.PromiseCapability(); + this._transport = null; + this._worker = null; + this.docId = `d${PDFDocumentLoadingTask.#docId++}`; + this.destroyed = false; + this.onPassword = null; + this.onProgress = null; + } + get promise() { + return this._capability.promise; + } + async destroy() { + this.destroyed = true; + try { + if (this._worker?.port) { + this._worker._pendingDestroy = true; + } + await this._transport?.destroy(); + } catch (ex) { + if (this._worker?.port) { + delete this._worker._pendingDestroy; + } + throw ex; + } + this._transport = null; + if (this._worker) { + this._worker.destroy(); + this._worker = null; + } + } +} +exports.PDFDocumentLoadingTask = PDFDocumentLoadingTask; +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 = []; + this._progressiveDoneListeners = []; + this._readyCapability = new _util.PromiseCapability(); + } + addRangeListener(listener) { + this._rangeListeners.push(listener); + } + 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); + } + }); + } + onDataProgressiveRead(chunk) { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveReadListeners) { + listener(chunk); + } + }); + } + onDataProgressiveDone() { + this._readyCapability.promise.then(() => { + for (const listener of this._progressiveDoneListeners) { + listener(); + } + }); + } + transportReady() { + this._readyCapability.resolve(); + } + requestDataRange(begin, end) { + (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange"); + } + abort() {} +} +exports.PDFDataRangeTransport = PDFDataRangeTransport; +class PDFDocumentProxy { + constructor(pdfInfo, transport) { + this._pdfInfo = pdfInfo; + this._transport = transport; + Object.defineProperty(this, "getJavaScript", { + value: () => { + (0, _display_utils.deprecated)("`PDFDocumentProxy.getJavaScript`, " + "please use `PDFDocumentProxy.getJSActions` instead."); + return this.getJSActions().then(js => { + if (!js) { + return js; + } + const jsArr = []; + for (const name in js) { + jsArr.push(...js[name]); + } + return jsArr; + }); + } + }); + } + get annotationStorage() { + return this._transport.annotationStorage; + } + get filterFactory() { + return this._transport.filterFactory; + } + get numPages() { + return this._pdfInfo.numPages; + } + get fingerprints() { + return this._pdfInfo.fingerprints; + } + get isPureXfa() { + return (0, _util.shadow)(this, "isPureXfa", !!this._transport._htmlForXfa); + } + get allXfaHtml() { + return this._transport._htmlForXfa; + } + 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(); + } + 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(); + } + saveDocument() { + return this._transport.saveDocument(); + } + getDownloadInfo() { + return this._transport.downloadInfoCapability.promise; + } + 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; + } + getFieldObjects() { + return this._transport.getFieldObjects(); + } + hasJSActions() { + return this._transport.hasJSActions(); + } + getCalculationOrderIds() { + return this._transport.getCalculationOrderIds(); + } +} +exports.PDFDocumentProxy = PDFDocumentProxy; +class PDFPageProxy { + #delayedCleanupTimeout = null; + #pendingCleanup = false; + constructor(pageIndex, pageInfo, transport, pdfBug = false) { + this._pageIndex = pageIndex; + this._pageInfo = pageInfo; + this._transport = transport; + this._stats = pdfBug ? new _display_utils.StatTimer() : null; + this._pdfBug = pdfBug; + this.commonObjs = transport.commonObjs; + this.objs = new PDFObjects(); + this._maybeCleanupAfterRender = false; + this._intentStates = new Map(); + this.destroyed = false; + } + get pageNumber() { + return this._pageIndex + 1; + } + get rotate() { + return this._pageInfo.rotate; + } + 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 = "display" + } = {}) { + const intentArgs = this._transport.getRenderingIntent(intent); + return this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent); + } + getJSActions() { + return this._transport.getPageJSActions(this._pageIndex); + } + get filterFactory() { + return this._transport.filterFactory; + } + get isPureXfa() { + return (0, _util.shadow)(this, "isPureXfa", !!this._transport._htmlForXfa); + } + async getXfa() { + return this._transport._htmlForXfa?.children[this._pageIndex] || null; + } + render({ + canvasContext, + viewport, + intent = "display", + annotationMode = _util.AnnotationMode.ENABLE, + transform = null, + background = null, + optionalContentConfigPromise = null, + annotationCanvasMap = null, + pageColors = null, + printAnnotationStorage = null + }) { + this._stats?.time("Overall"); + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage); + this.#pendingCleanup = false; + this.#abortDelayedCleanup(); + if (!optionalContentConfigPromise) { + optionalContentConfigPromise = this._transport.getOptionalContentConfig(); + } + let intentState = this._intentStates.get(intentArgs.cacheKey); + if (!intentState) { + intentState = Object.create(null); + this._intentStates.set(intentArgs.cacheKey, intentState); + } + if (intentState.streamReaderCancelTimeout) { + clearTimeout(intentState.streamReaderCancelTimeout); + intentState.streamReaderCancelTimeout = null; + } + const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT); + if (!intentState.displayReadyCapability) { + intentState.displayReadyCapability = new _util.PromiseCapability(); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false, + separateAnnots: null + }; + this._stats?.time("Page Request"); + this._pumpOperatorList(intentArgs); + } + const complete = error => { + intentState.renderTasks.delete(internalRenderTask); + if (this._maybeCleanupAfterRender || intentPrint) { + this.#pendingCleanup = true; + } + this.#tryCleanup(!intentPrint); + if (error) { + internalRenderTask.capability.reject(error); + this._abortOperatorList({ + intentState, + reason: error instanceof Error ? error : new Error(error) + }); + } else { + internalRenderTask.capability.resolve(); + } + this._stats?.timeEnd("Rendering"); + this._stats?.timeEnd("Overall"); + }; + const internalRenderTask = new InternalRenderTask({ + callback: complete, + params: { + canvasContext, + viewport, + transform, + background + }, + objs: this.objs, + commonObjs: this.commonObjs, + annotationCanvasMap, + operatorList: intentState.operatorList, + pageIndex: this._pageIndex, + canvasFactory: this._transport.canvasFactory, + filterFactory: this._transport.filterFactory, + useRequestAnimationFrame: !intentPrint, + pdfBug: this._pdfBug, + pageColors + }); + (intentState.renderTasks ||= new Set()).add(internalRenderTask); + const renderTask = internalRenderTask.task; + Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => { + if (this.destroyed) { + complete(); + return; + } + this._stats?.time("Rendering"); + internalRenderTask.initializeGraphics({ + transparency, + optionalContentConfig + }); + internalRenderTask.operatorListChanged(); + }).catch(complete); + return renderTask; + } + getOperatorList({ + intent = "display", + annotationMode = _util.AnnotationMode.ENABLE, + printAnnotationStorage = null + } = {}) { + function operatorListChanged() { + if (intentState.operatorList.lastChunk) { + intentState.opListReadCapability.resolve(intentState.operatorList); + intentState.renderTasks.delete(opListTask); + } + } + const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true); + let intentState = this._intentStates.get(intentArgs.cacheKey); + if (!intentState) { + intentState = Object.create(null); + this._intentStates.set(intentArgs.cacheKey, intentState); + } + let opListTask; + if (!intentState.opListReadCapability) { + opListTask = Object.create(null); + opListTask.operatorListChanged = operatorListChanged; + intentState.opListReadCapability = new _util.PromiseCapability(); + (intentState.renderTasks ||= new Set()).add(opListTask); + intentState.operatorList = { + fnArray: [], + argsArray: [], + lastChunk: false, + separateAnnots: null + }; + this._stats?.time("Page Request"); + this._pumpOperatorList(intentArgs); + } + return intentState.opListReadCapability.promise; + } + streamTextContent({ + includeMarkedContent = false, + disableNormalization = false + } = {}) { + const TEXT_CONTENT_CHUNK_SIZE = 100; + return this._transport.messageHandler.sendWithStream("GetTextContent", { + pageIndex: this._pageIndex, + includeMarkedContent: includeMarkedContent === true, + disableNormalization: disableNormalization === true + }, { + highWaterMark: TEXT_CONTENT_CHUNK_SIZE, + size(textContent) { + return textContent.items.length; + } + }); + } + getTextContent(params = {}) { + if (this._transport._htmlForXfa) { + return this.getXfa().then(xfa => { + return _xfa_text.XfaText.textContent(xfa); + }); + } + 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._transport.getStructTree(this._pageIndex); + } + _destroy() { + this.destroyed = true; + const waitOn = []; + for (const intentState of this._intentStates.values()) { + this._abortOperatorList({ + intentState, + reason: new Error("Page was destroyed."), + force: true + }); + if (intentState.opListReadCapability) { + continue; + } + for (const internalRenderTask of intentState.renderTasks) { + waitOn.push(internalRenderTask.completed); + internalRenderTask.cancel(); + } + } + this.objs.clear(); + this.#pendingCleanup = false; + this.#abortDelayedCleanup(); + return Promise.all(waitOn); + } + cleanup(resetStats = false) { + this.#pendingCleanup = true; + const success = this.#tryCleanup(false); + if (resetStats && success) { + this._stats &&= new _display_utils.StatTimer(); + } + return success; + } + #tryCleanup(delayed = false) { + this.#abortDelayedCleanup(); + if (!this.#pendingCleanup || this.destroyed) { + return false; + } + if (delayed) { + this.#delayedCleanupTimeout = setTimeout(() => { + this.#delayedCleanupTimeout = null; + this.#tryCleanup(false); + }, DELAYED_CLEANUP_TIMEOUT); + 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.#pendingCleanup = false; + return true; + } + #abortDelayedCleanup() { + if (this.#delayedCleanupTimeout) { + clearTimeout(this.#delayedCleanupTimeout); + this.#delayedCleanupTimeout = null; + } + } + _startRenderPage(transparency, cacheKey) { + const intentState = this._intentStates.get(cacheKey); + if (!intentState) { + return; + } + this._stats?.timeEnd("Page Request"); + 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; + intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots; + for (const internalRenderTask of intentState.renderTasks) { + internalRenderTask.operatorListChanged(); + } + if (operatorListChunk.lastChunk) { + this.#tryCleanup(true); + } + } + _pumpOperatorList({ + renderingIntent, + cacheKey, + annotationStorageSerializable + }) { + const { + map, + transfers + } = annotationStorageSerializable; + const readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", { + pageIndex: this._pageIndex, + intent: renderingIntent, + cacheKey, + annotationStorage: map + }, transfers); + const reader = readableStream.getReader(); + const intentState = this._intentStates.get(cacheKey); + 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(true); + } + if (intentState.displayReadyCapability) { + intentState.displayReadyCapability.reject(reason); + } else if (intentState.opListReadCapability) { + intentState.opListReadCapability.reject(reason); + } else { + throw reason; + } + }); + }; + pump(); + } + _abortOperatorList({ + intentState, + reason, + force = false + }) { + if (!intentState.streamReader) { + return; + } + if (intentState.streamReaderCancelTimeout) { + clearTimeout(intentState.streamReaderCancelTimeout); + intentState.streamReaderCancelTimeout = null; + } + if (!force) { + if (intentState.renderTasks.size > 0) { + return; + } + if (reason instanceof _display_utils.RenderingCancelledException) { + let delay = RENDERING_CANCELLED_TIMEOUT; + if (reason.extraDelay > 0 && reason.extraDelay < 1000) { + delay += reason.extraDelay; + } + intentState.streamReaderCancelTimeout = setTimeout(() => { + intentState.streamReaderCancelTimeout = null; + this._abortOperatorList({ + intentState, + reason, + force: true + }); + }, delay); + return; + } + } + intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {}); + intentState.streamReader = null; + if (this._transport.destroyed) { + return; + } + for (const [curCacheKey, curIntentState] of this._intentStates) { + if (curIntentState === intentState) { + this._intentStates.delete(curCacheKey); + break; + } + } + this.cleanup(); + } + get stats() { + return this._stats; + } +} +exports.PDFPageProxy = PDFPageProxy; +class LoopbackPort { + #listeners = new Set(); + #deferred = Promise.resolve(); + postMessage(obj, transfer) { + const event = { + data: structuredClone(obj, transfer ? { + transfer + } : null) + }; + this.#deferred.then(() => { + for (const listener of this.#listeners) { + listener.call(this, event); + } + }); + } + addEventListener(name, listener) { + this.#listeners.add(listener); + } + removeEventListener(name, listener) { + this.#listeners.delete(listener); + } + terminate() { + this.#listeners.clear(); + } +} +exports.LoopbackPort = LoopbackPort; +const PDFWorkerUtil = { + isWorkerDisabled: false, + fallbackWorkerSrc: null, + fakeWorkerId: 0 +}; +exports.PDFWorkerUtil = PDFWorkerUtil; +{ + if (_util.isNodeJS && typeof require === "function") { + PDFWorkerUtil.isWorkerDisabled = true; + PDFWorkerUtil.fallbackWorkerSrc = "./pdf.worker.js"; + } else if (typeof document === "object") { + const pdfjsFilePath = document?.currentScript?.src; + if (pdfjsFilePath) { + PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2"); + } + } + PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) { + let base; + try { + base = new URL(baseUrl); + if (!base.origin || base.origin === "null") { + return false; + } + } catch { + return false; + } + const other = new URL(otherUrl, base); + return base.origin === other.origin; + }; + PDFWorkerUtil.createCDNWrapper = function (url) { + const wrapper = `importScripts("${url}");`; + return URL.createObjectURL(new Blob([wrapper])); + }; +} +class PDFWorker { + static #workerPorts; + constructor({ + name = null, + port = null, + verbosity = (0, _util.getVerbosityLevel)() + } = {}) { + this.name = name; + this.destroyed = false; + this.verbosity = verbosity; + this._readyCapability = new _util.PromiseCapability(); + this._port = null; + this._webWorker = null; + this._messageHandler = null; + if (port) { + if (PDFWorker.#workerPorts?.has(port)) { + throw new Error("Cannot use more than one PDFWorker per port."); + } + (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this); + this._initializeFromPort(port); + return; + } + this._initialize(); + } + get promise() { + return this._readyCapability.promise; + } + get port() { + return this._port; + } + get messageHandler() { + return this._messageHandler; + } + _initializeFromPort(port) { + this._port = port; + this._messageHandler = new _message_handler.MessageHandler("main", "worker", port); + this._messageHandler.on("ready", function () {}); + this._readyCapability.resolve(); + this._messageHandler.send("configure", { + verbosity: this.verbosity + }); + } + _initialize() { + if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) { + let { + workerSrc + } = PDFWorker; + try { + if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) { + workerSrc = PDFWorkerUtil.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; + } + if (data) { + this._messageHandler = messageHandler; + this._port = worker; + this._webWorker = worker; + this._readyCapability.resolve(); + messageHandler.send("configure", { + verbosity: this.verbosity + }); + } else { + this._setupFakeWorker(); + messageHandler.destroy(); + worker.terminate(); + } + }); + messageHandler.on("ready", data => { + worker.removeEventListener("error", onWorkerError); + if (this.destroyed) { + terminateEarly(); + return; + } + try { + sendTest(); + } catch { + this._setupFakeWorker(); + } + }); + const sendTest = () => { + const testObj = new Uint8Array(); + messageHandler.send("test", testObj, [testObj.buffer]); + }; + sendTest(); + return; + } catch { + (0, _util.info)("The worker has been disabled."); + } + } + this._setupFakeWorker(); + } + _setupFakeWorker() { + if (!PDFWorkerUtil.isWorkerDisabled) { + (0, _util.warn)("Setting up fake worker."); + PDFWorkerUtil.isWorkerDisabled = true; + } + PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => { + if (this.destroyed) { + this._readyCapability.reject(new Error("Worker was destroyed")); + return; + } + const port = new LoopbackPort(); + this._port = port; + const id = `fake${PDFWorkerUtil.fakeWorkerId++}`; + 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; + this._readyCapability.resolve(); + 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; + } + PDFWorker.#workerPorts?.delete(this._port); + this._port = null; + if (this._messageHandler) { + this._messageHandler.destroy(); + this._messageHandler = null; + } + } + static fromPort(params) { + if (!params?.port) { + throw new Error("PDFWorker.fromPort - invalid method signature."); + } + const cachedPort = this.#workerPorts?.get(params.port); + if (cachedPort) { + if (cachedPort._pendingDestroy) { + throw new Error("PDFWorker.fromPort - the worker is being destroyed.\n" + "Please remember to await `PDFDocumentLoadingTask.destroy()`-calls."); + } + return cachedPort; + } + return new PDFWorker(params); + } + static get workerSrc() { + if (_worker_options.GlobalWorkerOptions.workerSrc) { + return _worker_options.GlobalWorkerOptions.workerSrc; + } + if (PDFWorkerUtil.fallbackWorkerSrc !== null) { + if (!_util.isNodeJS) { + (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'); + } + return PDFWorkerUtil.fallbackWorkerSrc; + } + throw new Error('No "GlobalWorkerOptions.workerSrc" specified.'); + } + static get _mainThreadWorkerMessageHandler() { + try { + return globalThis.pdfjsWorker?.WorkerMessageHandler || null; + } catch { + return null; + } + } + static get _setupFakeWorkerGlobal() { + const loader = async () => { + const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler; + if (mainWorkerMessageHandler) { + return mainWorkerMessageHandler; + } + if (_util.isNodeJS && typeof require === "function") { + const worker = eval("require")(this.workerSrc); + return worker.WorkerMessageHandler; + } + await (0, _display_utils.loadScript)(this.workerSrc); + return window.pdfjsWorker.WorkerMessageHandler; + }; + return (0, _util.shadow)(this, "_setupFakeWorkerGlobal", loader()); + } +} +exports.PDFWorker = PDFWorker; +class WorkerTransport { + #methodPromises = new Map(); + #pageCache = new Map(); + #pagePromises = new Map(); + #passwordCapability = null; + constructor(messageHandler, loadingTask, networkStream, params, factory) { + this.messageHandler = messageHandler; + this.loadingTask = loadingTask; + this.commonObjs = new PDFObjects(); + this.fontLoader = new _font_loader.FontLoader({ + ownerDocument: params.ownerDocument, + styleElement: params.styleElement + }); + this._params = params; + this.canvasFactory = factory.canvasFactory; + this.filterFactory = factory.filterFactory; + this.cMapReaderFactory = factory.cMapReaderFactory; + this.standardFontDataFactory = factory.standardFontDataFactory; + this.destroyed = false; + this.destroyCapability = null; + this._networkStream = networkStream; + this._fullReader = null; + this._lastProgress = null; + this.downloadInfoCapability = new _util.PromiseCapability(); + this.setupMessageHandler(); + } + #cacheSimpleMethod(name, data = null) { + const cachedPromise = this.#methodPromises.get(name); + if (cachedPromise) { + return cachedPromise; + } + const promise = this.messageHandler.sendWithPromise(name, data); + this.#methodPromises.set(name, promise); + return promise; + } + get annotationStorage() { + return (0, _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage()); + } + getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) { + let renderingIntent = _util.RenderingIntentFlag.DISPLAY; + let annotationStorageSerializable = _annotation_storage.SerializableEmpty; + switch (intent) { + case "any": + renderingIntent = _util.RenderingIntentFlag.ANY; + break; + case "display": + break; + case "print": + renderingIntent = _util.RenderingIntentFlag.PRINT; + break; + default: + (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`); + } + switch (annotationMode) { + case _util.AnnotationMode.DISABLE: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE; + break; + case _util.AnnotationMode.ENABLE: + break; + case _util.AnnotationMode.ENABLE_FORMS: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS; + break; + case _util.AnnotationMode.ENABLE_STORAGE: + renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE; + const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage; + annotationStorageSerializable = annotationStorage.serializable; + break; + default: + (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`); + } + if (isOpList) { + renderingIntent += _util.RenderingIntentFlag.OPLIST; + } + return { + renderingIntent, + cacheKey: `${renderingIntent}_${annotationStorageSerializable.hash}`, + annotationStorageSerializable + }; + } + destroy() { + if (this.destroyCapability) { + return this.destroyCapability.promise; + } + this.destroyed = true; + this.destroyCapability = new _util.PromiseCapability(); + this.#passwordCapability?.reject(new Error("Worker was destroyed during onPassword callback")); + const waitOn = []; + for (const page of this.#pageCache.values()) { + waitOn.push(page._destroy()); + } + this.#pageCache.clear(); + this.#pagePromises.clear(); + 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.#methodPromises.clear(); + this.filterFactory.destroy(); + 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)(value instanceof ArrayBuffer, "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 = new _util.PromiseCapability(); + const fullReader = this._fullReader; + fullReader.headersReady.then(() => { + if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) { + if (this._lastProgress) { + loadingTask.onProgress?.(this._lastProgress); + } + fullReader.onProgress = evt => { + 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)(value instanceof ArrayBuffer, "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; + this._htmlForXfa = pdfInfo.htmlForXfa; + delete pdfInfo.htmlForXfa; + 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; + default: + (0, _util.unreachable)("DocException - expected a valid Error."); + } + loadingTask._capability.reject(reason); + }); + messageHandler.on("PasswordRequest", exception => { + this.#passwordCapability = new _util.PromiseCapability(); + if (loadingTask.onPassword) { + const updatePassword = password => { + if (password instanceof Error) { + this.#passwordCapability.reject(password); + } else { + 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 => { + loadingTask.onProgress?.({ + loaded: data.length, + total: data.length + }); + this.downloadInfoCapability.resolve(data); + }); + messageHandler.on("StartRenderPage", data => { + if (this.destroyed) { + return; + } + const page = this.#pageCache.get(data.pageIndex); + page._startRenderPage(data.transparency, data.cacheKey); + }); + messageHandler.on("commonobj", ([id, type, exportedData]) => { + if (this.destroyed) { + return; + } + if (this.commonObjs.has(id)) { + return; + } + switch (type) { + case "Font": + const params = this._params; + if ("error" in exportedData) { + const exportedError = exportedData.error; + (0, _util.warn)(`Error during font loading: ${exportedError}`); + this.commonObjs.resolve(id, exportedError); + break; + } + const inspectFont = params.pdfBug && globalThis.FontInspector?.enabled ? (font, url) => globalThis.FontInspector.fontAdded(font, url) : null; + const font = new _font_loader.FontFaceObject(exportedData, { + isEvalSupported: params.isEvalSupported, + disableFontFace: params.disableFontFace, + ignoreErrors: params.ignoreErrors, + inspectFont + }); + 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": + case "Pattern": + this.commonObjs.resolve(id, exportedData); + break; + default: + throw new Error(`Got unknown common object type ${type}`); + } + }); + messageHandler.on("obj", ([id, pageIndex, type, imageData]) => { + if (this.destroyed) { + return; + } + const pageProxy = this.#pageCache.get(pageIndex); + if (pageProxy.objs.has(id)) { + return; + } + switch (type) { + case "Image": + pageProxy.objs.resolve(id, imageData); + if (imageData) { + let length; + if (imageData.bitmap) { + const { + width, + height + } = imageData; + length = width * height * 4; + } else { + length = imageData.data?.length || 0; + } + if (length > _util.MAX_IMAGE_SIZE_TO_CACHE) { + pageProxy._maybeCleanupAfterRender = true; + } + } + break; + case "Pattern": + pageProxy.objs.resolve(id, imageData); + break; + default: + throw new Error(`Got unknown object type ${type}`); + } + }); + messageHandler.on("DocProgress", data => { + if (this.destroyed) { + return; + } + loadingTask.onProgress?.({ + loaded: data.loaded, + total: data.total + }); + }); + messageHandler.on("FetchBuiltInCMap", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); + } + if (!this.cMapReaderFactory) { + return Promise.reject(new Error("CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.")); + } + return this.cMapReaderFactory.fetch(data); + }); + messageHandler.on("FetchStandardFontData", data => { + if (this.destroyed) { + return Promise.reject(new Error("Worker was destroyed.")); + } + if (!this.standardFontDataFactory) { + return Promise.reject(new Error("StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.")); + } + return this.standardFontDataFactory.fetch(data); + }); + } + getData() { + return this.messageHandler.sendWithPromise("GetData", null); + } + saveDocument() { + if (this.annotationStorage.size <= 0) { + (0, _util.warn)("saveDocument called while `annotationStorage` is empty, " + "please use the getData-method instead."); + } + const { + map, + transfers + } = this.annotationStorage.serializable; + return this.messageHandler.sendWithPromise("SaveDocument", { + isPureXfa: !!this._htmlForXfa, + numPages: this._numPages, + annotationStorage: map, + filename: this._fullReader?.filename ?? null + }, transfers).finally(() => { + this.annotationStorage.resetModified(); + }); + } + getPage(pageNumber) { + if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) { + return Promise.reject(new Error("Invalid page request.")); + } + const pageIndex = pageNumber - 1, + cachedPromise = this.#pagePromises.get(pageIndex); + if (cachedPromise) { + return cachedPromise; + } + 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.pdfBug); + this.#pageCache.set(pageIndex, page); + return page; + }); + this.#pagePromises.set(pageIndex, promise); + return promise; + } + getPageIndex(ref) { + if (typeof ref !== "object" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) { + return Promise.reject(new Error("Invalid pageIndex request.")); + } + return this.messageHandler.sendWithPromise("GetPageIndex", { + num: ref.num, + gen: ref.gen + }); + } + getAnnotations(pageIndex, intent) { + return this.messageHandler.sendWithPromise("GetAnnotations", { + pageIndex, + intent + }); + } + getFieldObjects() { + return this.#cacheSimpleMethod("GetFieldObjects"); + } + hasJSActions() { + return this.#cacheSimpleMethod("HasJSActions"); + } + 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); + } + getDocJSActions() { + return this.#cacheSimpleMethod("GetDocJSActions"); + } + getPageJSActions(pageIndex) { + return this.messageHandler.sendWithPromise("GetPageJSActions", { + 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() { + const name = "GetMetadata", + cachedPromise = this.#methodPromises.get(name); + if (cachedPromise) { + return cachedPromise; + } + const promise = this.messageHandler.sendWithPromise(name, 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 + }; + }); + this.#methodPromises.set(name, promise); + return promise; + } + getMarkInfo() { + return this.messageHandler.sendWithPromise("GetMarkInfo", null); + } + async startCleanup(keepLoadedFonts = false) { + if (this.destroyed) { + return; + } + await this.messageHandler.sendWithPromise("Cleanup", null); + for (const page of this.#pageCache.values()) { + const cleanupSuccessful = page.cleanup(); + if (!cleanupSuccessful) { + throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`); + } + } + this.commonObjs.clear(); + if (!keepLoadedFonts) { + this.fontLoader.clear(); + } + this.#methodPromises.clear(); + this.filterFactory.destroy(true); + } + get loadingParams() { + const { + disableAutoFetch, + enableXfa + } = this._params; + return (0, _util.shadow)(this, "loadingParams", { + disableAutoFetch, + enableXfa + }); + } +} +class PDFObjects { + #objs = Object.create(null); + #ensureObj(objId) { + return this.#objs[objId] ||= { + capability: new _util.PromiseCapability(), + data: null + }; + } + get(objId, callback = null) { + if (callback) { + const obj = this.#ensureObj(objId); + obj.capability.promise.then(() => callback(obj.data)); + return null; + } + const obj = this.#objs[objId]; + if (!obj?.capability.settled) { + throw new Error(`Requesting object that isn't resolved yet ${objId}.`); + } + return obj.data; + } + has(objId) { + const obj = this.#objs[objId]; + return obj?.capability.settled || false; + } + resolve(objId, data = null) { + const obj = this.#ensureObj(objId); + obj.data = data; + obj.capability.resolve(); + } + clear() { + for (const objId in this.#objs) { + const { + data + } = this.#objs[objId]; + data?.bitmap?.close(); + } + this.#objs = Object.create(null); + } +} +class RenderTask { + #internalRenderTask = null; + constructor(internalRenderTask) { + this.#internalRenderTask = internalRenderTask; + this.onContinue = null; + } + get promise() { + return this.#internalRenderTask.capability.promise; + } + cancel(extraDelay = 0) { + this.#internalRenderTask.cancel(null, extraDelay); + } + get separateAnnots() { + const { + separateAnnots + } = this.#internalRenderTask.operatorList; + if (!separateAnnots) { + return false; + } + const { + annotationCanvasMap + } = this.#internalRenderTask; + return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0; + } +} +exports.RenderTask = RenderTask; +class InternalRenderTask { + static #canvasInUse = new WeakSet(); + constructor({ + callback, + params, + objs, + commonObjs, + annotationCanvasMap, + operatorList, + pageIndex, + canvasFactory, + filterFactory, + useRequestAnimationFrame = false, + pdfBug = false, + pageColors = null + }) { + this.callback = callback; + this.params = params; + this.objs = objs; + this.commonObjs = commonObjs; + this.annotationCanvasMap = annotationCanvasMap; + this.operatorListIdx = null; + this.operatorList = operatorList; + this._pageIndex = pageIndex; + this.canvasFactory = canvasFactory; + this.filterFactory = filterFactory; + this._pdfBug = pdfBug; + this.pageColors = pageColors; + this.running = false; + this.graphicsReadyCallback = null; + this.graphicsReady = false; + this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined"; + this.cancelled = false; + this.capability = new _util.PromiseCapability(); + 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; + } + get completed() { + return this.capability.promise.catch(function () {}); + } + initializeGraphics({ + transparency = false, + optionalContentConfig + }) { + if (this.cancelled) { + return; + } + if (this._canvas) { + if (InternalRenderTask.#canvasInUse.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."); + } + InternalRenderTask.#canvasInUse.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, + background + } = this.params; + this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, { + optionalContentConfig + }, this.annotationCanvasMap, this.pageColors); + this.gfx.beginDrawing({ + transform, + viewport, + transparency, + background + }); + this.operatorListIdx = 0; + this.graphicsReady = true; + this.graphicsReadyCallback?.(); + } + cancel(error = null, extraDelay = 0) { + this.running = false; + this.cancelled = true; + this.gfx?.endDrawing(); + InternalRenderTask.#canvasInUse.delete(this._canvas); + this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, extraDelay)); + } + operatorListChanged() { + if (!this.graphicsReady) { + this.graphicsReadyCallback ||= this._continueBound; + return; + } + 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); + }); + } else { + Promise.resolve().then(this._nextBound).catch(this._cancelBound); + } + } + 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; + if (this.operatorList.lastChunk) { + this.gfx.endDrawing(); + InternalRenderTask.#canvasInUse.delete(this._canvas); + this.callback(); + } + } + } +} +const version = '3.11.174'; +exports.version = version; +const build = 'ce8716743'; +exports.build = build; + +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SerializableEmpty = exports.PrintAnnotationStorage = exports.AnnotationStorage = void 0; +var _util = __w_pdfjs_require__(1); +var _editor = __w_pdfjs_require__(4); +var _murmurhash = __w_pdfjs_require__(8); +const SerializableEmpty = Object.freeze({ + map: null, + hash: "", + transfers: undefined +}); +exports.SerializableEmpty = SerializableEmpty; +class AnnotationStorage { + #modified = false; + #storage = new Map(); + constructor() { + this.onSetModified = null; + this.onResetModified = null; + this.onAnnotationEditor = null; + } + getValue(key, defaultValue) { + const value = this.#storage.get(key); + if (value === undefined) { + return defaultValue; + } + return Object.assign(defaultValue, value); + } + getRawValue(key) { + return this.#storage.get(key); + } + remove(key) { + this.#storage.delete(key); + if (this.#storage.size === 0) { + this.resetModified(); + } + if (typeof this.onAnnotationEditor === "function") { + for (const value of this.#storage.values()) { + if (value instanceof _editor.AnnotationEditor) { + return; + } + } + this.onAnnotationEditor(null); + } + } + 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 { + modified = true; + this.#storage.set(key, value); + } + if (modified) { + this.#setModified(); + } + if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === "function") { + this.onAnnotationEditor(value.constructor._type); + } + } + has(key) { + return this.#storage.has(key); + } + getAll() { + return this.#storage.size > 0 ? (0, _util.objectFromMap)(this.#storage) : null; + } + setAll(obj) { + for (const [key, val] of Object.entries(obj)) { + this.setValue(key, val); + } + } + 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 print() { + return new PrintAnnotationStorage(this); + } + get serializable() { + if (this.#storage.size === 0) { + return SerializableEmpty; + } + const map = new Map(), + hash = new _murmurhash.MurmurHash3_64(), + transfers = []; + const context = Object.create(null); + let hasBitmap = false; + for (const [key, val] of this.#storage) { + const serialized = val instanceof _editor.AnnotationEditor ? val.serialize(false, context) : val; + if (serialized) { + map.set(key, serialized); + hash.update(`${key}:${JSON.stringify(serialized)}`); + hasBitmap ||= !!serialized.bitmap; + } + } + if (hasBitmap) { + for (const value of map.values()) { + if (value.bitmap) { + transfers.push(value.bitmap); + } + } + } + return map.size > 0 ? { + map, + hash: hash.hexdigest(), + transfers + } : SerializableEmpty; + } +} +exports.AnnotationStorage = AnnotationStorage; +class PrintAnnotationStorage extends AnnotationStorage { + #serializable; + constructor(parent) { + super(); + const { + map, + hash, + transfers + } = parent.serializable; + const clone = structuredClone(map, transfers ? { + transfer: transfers + } : null); + this.#serializable = { + map: clone, + hash, + transfers + }; + } + get print() { + (0, _util.unreachable)("Should not call PrintAnnotationStorage.print"); + } + get serializable() { + return this.#serializable; + } +} +exports.PrintAnnotationStorage = PrintAnnotationStorage; + +/***/ }), +/* 4 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditor = void 0; +var _tools = __w_pdfjs_require__(5); +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(6); +class AnnotationEditor { + #altText = ""; + #altTextDecorative = false; + #altTextButton = null; + #altTextTooltip = null; + #altTextTooltipTimeout = null; + #keepAspectRatio = false; + #resizersDiv = null; + #boundFocusin = this.focusin.bind(this); + #boundFocusout = this.focusout.bind(this); + #hasBeenClicked = false; + #isEditing = false; + #isInEditMode = false; + _initialOptions = Object.create(null); + _uiManager = null; + _focusEventsAllowed = true; + _l10nPromise = null; + #isDraggable = false; + #zIndex = AnnotationEditor._zIndex++; + static _borderLineWidth = -1; + static _colorManager = new _tools.ColorManager(); + static _zIndex = 1; + static SMALL_EDITOR_SIZE = 0; + constructor(parameters) { + if (this.constructor === AnnotationEditor) { + (0, _util.unreachable)("Cannot initialize AnnotationEditor."); + } + this.parent = parameters.parent; + this.id = parameters.id; + this.width = this.height = null; + this.pageIndex = parameters.parent.pageIndex; + this.name = parameters.name; + this.div = null; + this._uiManager = parameters.uiManager; + this.annotationElementId = null; + this._willKeepAspectRatio = false; + this._initialOptions.isCentered = parameters.isCentered; + this._structTreeParentId = null; + const { + rotation, + rawDims: { + pageWidth, + pageHeight, + pageX, + pageY + } + } = this.parent.viewport; + this.rotation = rotation; + this.pageRotation = (360 + rotation - this._uiManager.viewParameters.rotation) % 360; + this.pageDimensions = [pageWidth, pageHeight]; + this.pageTranslation = [pageX, pageY]; + const [width, height] = this.parentDimensions; + this.x = parameters.x / width; + this.y = parameters.y / height; + this.isAttachedToDOM = false; + this.deleted = false; + } + get editorType() { + return Object.getPrototypeOf(this).constructor._type; + } + static get _defaultLineColor() { + return (0, _util.shadow)(this, "_defaultLineColor", this._colorManager.getHexCode("CanvasText")); + } + static deleteAnnotationElement(editor) { + const fakeEditor = new FakeEditor({ + id: editor.parent.getNextId(), + parent: editor.parent, + uiManager: editor._uiManager + }); + fakeEditor.annotationElementId = editor.annotationElementId; + fakeEditor.deleted = true; + fakeEditor._uiManager.addToAnnotationStorage(fakeEditor); + } + static initialize(l10n, options = null) { + AnnotationEditor._l10nPromise ||= new Map(["editor_alt_text_button_label", "editor_alt_text_edit_button_label", "editor_alt_text_decorative_tooltip"].map(str => [str, l10n.get(str)])); + if (options?.strings) { + for (const str of options.strings) { + AnnotationEditor._l10nPromise.set(str, l10n.get(str)); + } + } + if (AnnotationEditor._borderLineWidth !== -1) { + return; + } + const style = getComputedStyle(document.documentElement); + AnnotationEditor._borderLineWidth = parseFloat(style.getPropertyValue("--outline-width")) || 0; + } + static updateDefaultParams(_type, _value) {} + static get defaultPropertiesToUpdate() { + return []; + } + static isHandlingMimeForPasting(mime) { + return false; + } + static paste(item, parent) { + (0, _util.unreachable)("Not implemented"); + } + get propertiesToUpdate() { + return []; + } + get _isDraggable() { + return this.#isDraggable; + } + set _isDraggable(value) { + this.#isDraggable = value; + this.div?.classList.toggle("draggable", value); + } + center() { + const [pageWidth, pageHeight] = this.pageDimensions; + switch (this.parentRotation) { + case 90: + this.x -= this.height * pageHeight / (pageWidth * 2); + this.y += this.width * pageWidth / (pageHeight * 2); + break; + case 180: + this.x += this.width / 2; + this.y += this.height / 2; + break; + case 270: + this.x += this.height * pageHeight / (pageWidth * 2); + this.y -= this.width * pageWidth / (pageHeight * 2); + break; + default: + this.x -= this.width / 2; + this.y -= this.height / 2; + break; + } + this.fixAndSetPosition(); + } + addCommands(params) { + this._uiManager.addCommands(params); + } + get currentLayer() { + return this._uiManager.currentLayer; + } + setInBackground() { + this.div.style.zIndex = 0; + } + setInForeground() { + this.div.style.zIndex = this.#zIndex; + } + setParent(parent) { + if (parent !== null) { + this.pageIndex = parent.pageIndex; + this.pageDimensions = parent.pageDimensions; + } + this.parent = parent; + } + focusin(event) { + if (!this._focusEventsAllowed) { + return; + } + if (!this.#hasBeenClicked) { + this.parent.setSelected(this); + } else { + this.#hasBeenClicked = false; + } + } + focusout(event) { + if (!this._focusEventsAllowed) { + return; + } + if (!this.isAttachedToDOM) { + return; + } + const target = event.relatedTarget; + if (target?.closest(`#${this.id}`)) { + return; + } + event.preventDefault(); + if (!this.parent?.isMultipleSelection) { + this.commitOrRemove(); + } + } + commitOrRemove() { + if (this.isEmpty()) { + this.remove(); + } else { + this.commit(); + } + } + commit() { + this.addToAnnotationStorage(); + } + addToAnnotationStorage() { + this._uiManager.addToAnnotationStorage(this); + } + setAt(x, y, tx, ty) { + const [width, height] = this.parentDimensions; + [tx, ty] = this.screenToPageTranslation(tx, ty); + this.x = (x + tx) / width; + this.y = (y + ty) / height; + this.fixAndSetPosition(); + } + #translate([width, height], x, y) { + [x, y] = this.screenToPageTranslation(x, y); + this.x += x / width; + this.y += y / height; + this.fixAndSetPosition(); + } + translate(x, y) { + this.#translate(this.parentDimensions, x, y); + } + translateInPage(x, y) { + this.#translate(this.pageDimensions, x, y); + this.div.scrollIntoView({ + block: "nearest" + }); + } + drag(tx, ty) { + const [parentWidth, parentHeight] = this.parentDimensions; + this.x += tx / parentWidth; + this.y += ty / parentHeight; + if (this.parent && (this.x < 0 || this.x > 1 || this.y < 0 || this.y > 1)) { + const { + x, + y + } = this.div.getBoundingClientRect(); + if (this.parent.findNewParent(this, x, y)) { + this.x -= Math.floor(this.x); + this.y -= Math.floor(this.y); + } + } + let { + x, + y + } = this; + const [bx, by] = this.#getBaseTranslation(); + x += bx; + y += by; + this.div.style.left = `${(100 * x).toFixed(2)}%`; + this.div.style.top = `${(100 * y).toFixed(2)}%`; + this.div.scrollIntoView({ + block: "nearest" + }); + } + #getBaseTranslation() { + const [parentWidth, parentHeight] = this.parentDimensions; + const { + _borderLineWidth + } = AnnotationEditor; + const x = _borderLineWidth / parentWidth; + const y = _borderLineWidth / parentHeight; + switch (this.rotation) { + case 90: + return [-x, y]; + case 180: + return [x, y]; + case 270: + return [x, -y]; + default: + return [-x, -y]; + } + } + fixAndSetPosition() { + const [pageWidth, pageHeight] = this.pageDimensions; + let { + x, + y, + width, + height + } = this; + width *= pageWidth; + height *= pageHeight; + x *= pageWidth; + y *= pageHeight; + switch (this.rotation) { + case 0: + x = Math.max(0, Math.min(pageWidth - width, x)); + y = Math.max(0, Math.min(pageHeight - height, y)); + break; + case 90: + x = Math.max(0, Math.min(pageWidth - height, x)); + y = Math.min(pageHeight, Math.max(width, y)); + break; + case 180: + x = Math.min(pageWidth, Math.max(width, x)); + y = Math.min(pageHeight, Math.max(height, y)); + break; + case 270: + x = Math.min(pageWidth, Math.max(height, x)); + y = Math.max(0, Math.min(pageHeight - width, y)); + break; + } + this.x = x /= pageWidth; + this.y = y /= pageHeight; + const [bx, by] = this.#getBaseTranslation(); + x += bx; + y += by; + const { + style + } = this.div; + style.left = `${(100 * x).toFixed(2)}%`; + style.top = `${(100 * y).toFixed(2)}%`; + this.moveInDOM(); + } + static #rotatePoint(x, y, angle) { + switch (angle) { + case 90: + return [y, -x]; + case 180: + return [-x, -y]; + case 270: + return [-y, x]; + default: + return [x, y]; + } + } + screenToPageTranslation(x, y) { + return AnnotationEditor.#rotatePoint(x, y, this.parentRotation); + } + pageTranslationToScreen(x, y) { + return AnnotationEditor.#rotatePoint(x, y, 360 - this.parentRotation); + } + #getRotationMatrix(rotation) { + switch (rotation) { + case 90: + { + const [pageWidth, pageHeight] = this.pageDimensions; + return [0, -pageWidth / pageHeight, pageHeight / pageWidth, 0]; + } + case 180: + return [-1, 0, 0, -1]; + case 270: + { + const [pageWidth, pageHeight] = this.pageDimensions; + return [0, pageWidth / pageHeight, -pageHeight / pageWidth, 0]; + } + default: + return [1, 0, 0, 1]; + } + } + get parentScale() { + return this._uiManager.viewParameters.realScale; + } + get parentRotation() { + return (this._uiManager.viewParameters.rotation + this.pageRotation) % 360; + } + get parentDimensions() { + const { + parentScale, + pageDimensions: [pageWidth, pageHeight] + } = this; + const scaledWidth = pageWidth * parentScale; + const scaledHeight = pageHeight * parentScale; + return _util.FeatureTest.isCSSRoundSupported ? [Math.round(scaledWidth), Math.round(scaledHeight)] : [scaledWidth, scaledHeight]; + } + setDims(width, height) { + const [parentWidth, parentHeight] = this.parentDimensions; + this.div.style.width = `${(100 * width / parentWidth).toFixed(2)}%`; + if (!this.#keepAspectRatio) { + this.div.style.height = `${(100 * height / parentHeight).toFixed(2)}%`; + } + this.#altTextButton?.classList.toggle("small", width < AnnotationEditor.SMALL_EDITOR_SIZE || height < AnnotationEditor.SMALL_EDITOR_SIZE); + } + fixDims() { + const { + style + } = this.div; + const { + height, + width + } = style; + const widthPercent = width.endsWith("%"); + const heightPercent = !this.#keepAspectRatio && height.endsWith("%"); + if (widthPercent && heightPercent) { + return; + } + const [parentWidth, parentHeight] = this.parentDimensions; + if (!widthPercent) { + style.width = `${(100 * parseFloat(width) / parentWidth).toFixed(2)}%`; + } + if (!this.#keepAspectRatio && !heightPercent) { + style.height = `${(100 * parseFloat(height) / parentHeight).toFixed(2)}%`; + } + } + getInitialTranslation() { + return [0, 0]; + } + #createResizers() { + if (this.#resizersDiv) { + return; + } + this.#resizersDiv = document.createElement("div"); + this.#resizersDiv.classList.add("resizers"); + const classes = ["topLeft", "topRight", "bottomRight", "bottomLeft"]; + if (!this._willKeepAspectRatio) { + classes.push("topMiddle", "middleRight", "bottomMiddle", "middleLeft"); + } + for (const name of classes) { + const div = document.createElement("div"); + this.#resizersDiv.append(div); + div.classList.add("resizer", name); + div.addEventListener("pointerdown", this.#resizerPointerdown.bind(this, name)); + div.addEventListener("contextmenu", _display_utils.noContextMenu); + } + this.div.prepend(this.#resizersDiv); + } + #resizerPointerdown(name, event) { + event.preventDefault(); + const { + isMac + } = _util.FeatureTest.platform; + if (event.button !== 0 || event.ctrlKey && isMac) { + return; + } + const boundResizerPointermove = this.#resizerPointermove.bind(this, name); + const savedDraggable = this._isDraggable; + this._isDraggable = false; + const pointerMoveOptions = { + passive: true, + capture: true + }; + window.addEventListener("pointermove", boundResizerPointermove, pointerMoveOptions); + const savedX = this.x; + const savedY = this.y; + const savedWidth = this.width; + const savedHeight = this.height; + const savedParentCursor = this.parent.div.style.cursor; + const savedCursor = this.div.style.cursor; + this.div.style.cursor = this.parent.div.style.cursor = window.getComputedStyle(event.target).cursor; + const pointerUpCallback = () => { + this._isDraggable = savedDraggable; + window.removeEventListener("pointerup", pointerUpCallback); + window.removeEventListener("blur", pointerUpCallback); + window.removeEventListener("pointermove", boundResizerPointermove, pointerMoveOptions); + this.parent.div.style.cursor = savedParentCursor; + this.div.style.cursor = savedCursor; + const newX = this.x; + const newY = this.y; + const newWidth = this.width; + const newHeight = this.height; + if (newX === savedX && newY === savedY && newWidth === savedWidth && newHeight === savedHeight) { + return; + } + this.addCommands({ + cmd: () => { + this.width = newWidth; + this.height = newHeight; + this.x = newX; + this.y = newY; + const [parentWidth, parentHeight] = this.parentDimensions; + this.setDims(parentWidth * newWidth, parentHeight * newHeight); + this.fixAndSetPosition(); + }, + undo: () => { + this.width = savedWidth; + this.height = savedHeight; + this.x = savedX; + this.y = savedY; + const [parentWidth, parentHeight] = this.parentDimensions; + this.setDims(parentWidth * savedWidth, parentHeight * savedHeight); + this.fixAndSetPosition(); + }, + mustExec: true + }); + }; + window.addEventListener("pointerup", pointerUpCallback); + window.addEventListener("blur", pointerUpCallback); + } + #resizerPointermove(name, event) { + const [parentWidth, parentHeight] = this.parentDimensions; + const savedX = this.x; + const savedY = this.y; + const savedWidth = this.width; + const savedHeight = this.height; + const minWidth = AnnotationEditor.MIN_SIZE / parentWidth; + const minHeight = AnnotationEditor.MIN_SIZE / parentHeight; + const round = x => Math.round(x * 10000) / 10000; + const rotationMatrix = this.#getRotationMatrix(this.rotation); + const transf = (x, y) => [rotationMatrix[0] * x + rotationMatrix[2] * y, rotationMatrix[1] * x + rotationMatrix[3] * y]; + const invRotationMatrix = this.#getRotationMatrix(360 - this.rotation); + const invTransf = (x, y) => [invRotationMatrix[0] * x + invRotationMatrix[2] * y, invRotationMatrix[1] * x + invRotationMatrix[3] * y]; + let getPoint; + let getOpposite; + let isDiagonal = false; + let isHorizontal = false; + switch (name) { + case "topLeft": + isDiagonal = true; + getPoint = (w, h) => [0, 0]; + getOpposite = (w, h) => [w, h]; + break; + case "topMiddle": + getPoint = (w, h) => [w / 2, 0]; + getOpposite = (w, h) => [w / 2, h]; + break; + case "topRight": + isDiagonal = true; + getPoint = (w, h) => [w, 0]; + getOpposite = (w, h) => [0, h]; + break; + case "middleRight": + isHorizontal = true; + getPoint = (w, h) => [w, h / 2]; + getOpposite = (w, h) => [0, h / 2]; + break; + case "bottomRight": + isDiagonal = true; + getPoint = (w, h) => [w, h]; + getOpposite = (w, h) => [0, 0]; + break; + case "bottomMiddle": + getPoint = (w, h) => [w / 2, h]; + getOpposite = (w, h) => [w / 2, 0]; + break; + case "bottomLeft": + isDiagonal = true; + getPoint = (w, h) => [0, h]; + getOpposite = (w, h) => [w, 0]; + break; + case "middleLeft": + isHorizontal = true; + getPoint = (w, h) => [0, h / 2]; + getOpposite = (w, h) => [w, h / 2]; + break; + } + const point = getPoint(savedWidth, savedHeight); + const oppositePoint = getOpposite(savedWidth, savedHeight); + let transfOppositePoint = transf(...oppositePoint); + const oppositeX = round(savedX + transfOppositePoint[0]); + const oppositeY = round(savedY + transfOppositePoint[1]); + let ratioX = 1; + let ratioY = 1; + let [deltaX, deltaY] = this.screenToPageTranslation(event.movementX, event.movementY); + [deltaX, deltaY] = invTransf(deltaX / parentWidth, deltaY / parentHeight); + if (isDiagonal) { + const oldDiag = Math.hypot(savedWidth, savedHeight); + ratioX = ratioY = Math.max(Math.min(Math.hypot(oppositePoint[0] - point[0] - deltaX, oppositePoint[1] - point[1] - deltaY) / oldDiag, 1 / savedWidth, 1 / savedHeight), minWidth / savedWidth, minHeight / savedHeight); + } else if (isHorizontal) { + ratioX = Math.max(minWidth, Math.min(1, Math.abs(oppositePoint[0] - point[0] - deltaX))) / savedWidth; + } else { + ratioY = Math.max(minHeight, Math.min(1, Math.abs(oppositePoint[1] - point[1] - deltaY))) / savedHeight; + } + const newWidth = round(savedWidth * ratioX); + const newHeight = round(savedHeight * ratioY); + transfOppositePoint = transf(...getOpposite(newWidth, newHeight)); + const newX = oppositeX - transfOppositePoint[0]; + const newY = oppositeY - transfOppositePoint[1]; + this.width = newWidth; + this.height = newHeight; + this.x = newX; + this.y = newY; + this.setDims(parentWidth * newWidth, parentHeight * newHeight); + this.fixAndSetPosition(); + } + async addAltTextButton() { + if (this.#altTextButton) { + return; + } + const altText = this.#altTextButton = document.createElement("button"); + altText.className = "altText"; + const msg = await AnnotationEditor._l10nPromise.get("editor_alt_text_button_label"); + altText.textContent = msg; + altText.setAttribute("aria-label", msg); + altText.tabIndex = "0"; + altText.addEventListener("contextmenu", _display_utils.noContextMenu); + altText.addEventListener("pointerdown", event => event.stopPropagation()); + altText.addEventListener("click", event => { + event.preventDefault(); + this._uiManager.editAltText(this); + }, { + capture: true + }); + altText.addEventListener("keydown", event => { + if (event.target === altText && event.key === "Enter") { + event.preventDefault(); + this._uiManager.editAltText(this); + } + }); + this.#setAltTextButtonState(); + this.div.append(altText); + if (!AnnotationEditor.SMALL_EDITOR_SIZE) { + const PERCENT = 40; + AnnotationEditor.SMALL_EDITOR_SIZE = Math.min(128, Math.round(altText.getBoundingClientRect().width * (1 + PERCENT / 100))); + } + } + async #setAltTextButtonState() { + const button = this.#altTextButton; + if (!button) { + return; + } + if (!this.#altText && !this.#altTextDecorative) { + button.classList.remove("done"); + this.#altTextTooltip?.remove(); + return; + } + AnnotationEditor._l10nPromise.get("editor_alt_text_edit_button_label").then(msg => { + button.setAttribute("aria-label", msg); + }); + let tooltip = this.#altTextTooltip; + if (!tooltip) { + this.#altTextTooltip = tooltip = document.createElement("span"); + tooltip.className = "tooltip"; + tooltip.setAttribute("role", "tooltip"); + const id = tooltip.id = `alt-text-tooltip-${this.id}`; + button.setAttribute("aria-describedby", id); + const DELAY_TO_SHOW_TOOLTIP = 100; + button.addEventListener("mouseenter", () => { + this.#altTextTooltipTimeout = setTimeout(() => { + this.#altTextTooltipTimeout = null; + this.#altTextTooltip.classList.add("show"); + this._uiManager._eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "editing", + subtype: this.editorType, + data: { + action: "alt_text_tooltip" + } + } + }); + }, DELAY_TO_SHOW_TOOLTIP); + }); + button.addEventListener("mouseleave", () => { + clearTimeout(this.#altTextTooltipTimeout); + this.#altTextTooltipTimeout = null; + this.#altTextTooltip?.classList.remove("show"); + }); + } + button.classList.add("done"); + tooltip.innerText = this.#altTextDecorative ? await AnnotationEditor._l10nPromise.get("editor_alt_text_decorative_tooltip") : this.#altText; + if (!tooltip.parentNode) { + button.append(tooltip); + } + } + getClientDimensions() { + return this.div.getBoundingClientRect(); + } + get altTextData() { + return { + altText: this.#altText, + decorative: this.#altTextDecorative + }; + } + set altTextData({ + altText, + decorative + }) { + if (this.#altText === altText && this.#altTextDecorative === decorative) { + return; + } + this.#altText = altText; + this.#altTextDecorative = decorative; + this.#setAltTextButtonState(); + } + render() { + this.div = document.createElement("div"); + this.div.setAttribute("data-editor-rotation", (360 - this.rotation) % 360); + this.div.className = this.name; + this.div.setAttribute("id", this.id); + this.div.setAttribute("tabIndex", 0); + this.setInForeground(); + this.div.addEventListener("focusin", this.#boundFocusin); + this.div.addEventListener("focusout", this.#boundFocusout); + const [parentWidth, parentHeight] = this.parentDimensions; + if (this.parentRotation % 180 !== 0) { + this.div.style.maxWidth = `${(100 * parentHeight / parentWidth).toFixed(2)}%`; + this.div.style.maxHeight = `${(100 * parentWidth / parentHeight).toFixed(2)}%`; + } + const [tx, ty] = this.getInitialTranslation(); + this.translate(tx, ty); + (0, _tools.bindEvents)(this, this.div, ["pointerdown"]); + return this.div; + } + pointerdown(event) { + const { + isMac + } = _util.FeatureTest.platform; + if (event.button !== 0 || event.ctrlKey && isMac) { + event.preventDefault(); + return; + } + this.#hasBeenClicked = true; + this.#setUpDragSession(event); + } + #setUpDragSession(event) { + if (!this._isDraggable) { + return; + } + const isSelected = this._uiManager.isSelected(this); + this._uiManager.setUpDragSession(); + let pointerMoveOptions, pointerMoveCallback; + if (isSelected) { + pointerMoveOptions = { + passive: true, + capture: true + }; + pointerMoveCallback = e => { + const [tx, ty] = this.screenToPageTranslation(e.movementX, e.movementY); + this._uiManager.dragSelectedEditors(tx, ty); + }; + window.addEventListener("pointermove", pointerMoveCallback, pointerMoveOptions); + } + const pointerUpCallback = () => { + window.removeEventListener("pointerup", pointerUpCallback); + window.removeEventListener("blur", pointerUpCallback); + if (isSelected) { + window.removeEventListener("pointermove", pointerMoveCallback, pointerMoveOptions); + } + this.#hasBeenClicked = false; + if (!this._uiManager.endDragSession()) { + const { + isMac + } = _util.FeatureTest.platform; + if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) { + this.parent.toggleSelected(this); + } else { + this.parent.setSelected(this); + } + } + }; + window.addEventListener("pointerup", pointerUpCallback); + window.addEventListener("blur", pointerUpCallback); + } + moveInDOM() { + this.parent?.moveEditorInDOM(this); + } + _setParentAndPosition(parent, x, y) { + parent.changeParent(this); + this.x = x; + this.y = y; + this.fixAndSetPosition(); + } + getRect(tx, ty) { + const scale = this.parentScale; + const [pageWidth, pageHeight] = this.pageDimensions; + const [pageX, pageY] = this.pageTranslation; + const shiftX = tx / scale; + const shiftY = ty / scale; + const x = this.x * pageWidth; + const y = this.y * pageHeight; + const width = this.width * pageWidth; + const height = this.height * pageHeight; + switch (this.rotation) { + case 0: + return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY]; + case 90: + return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY]; + case 180: + return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY]; + case 270: + return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY]; + default: + throw new Error("Invalid rotation"); + } + } + getRectInCurrentCoords(rect, pageHeight) { + const [x1, y1, x2, y2] = rect; + const width = x2 - x1; + const height = y2 - y1; + switch (this.rotation) { + case 0: + return [x1, pageHeight - y2, width, height]; + case 90: + return [x1, pageHeight - y1, height, width]; + case 180: + return [x2, pageHeight - y1, width, height]; + case 270: + return [x2, pageHeight - y2, height, width]; + default: + throw new Error("Invalid rotation"); + } + } + onceAdded() {} + isEmpty() { + return false; + } + enableEditMode() { + this.#isInEditMode = true; + } + disableEditMode() { + this.#isInEditMode = false; + } + isInEditMode() { + return this.#isInEditMode; + } + shouldGetKeyboardEvents() { + return false; + } + needsToBeRebuilt() { + return this.div && !this.isAttachedToDOM; + } + rebuild() { + this.div?.addEventListener("focusin", this.#boundFocusin); + this.div?.addEventListener("focusout", this.#boundFocusout); + } + serialize(isForCopying = false, context = null) { + (0, _util.unreachable)("An editor must be serializable"); + } + static deserialize(data, parent, uiManager) { + const editor = new this.prototype.constructor({ + parent, + id: parent.getNextId(), + uiManager + }); + editor.rotation = data.rotation; + const [pageWidth, pageHeight] = editor.pageDimensions; + const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight); + editor.x = x / pageWidth; + editor.y = y / pageHeight; + editor.width = width / pageWidth; + editor.height = height / pageHeight; + return editor; + } + remove() { + this.div.removeEventListener("focusin", this.#boundFocusin); + this.div.removeEventListener("focusout", this.#boundFocusout); + if (!this.isEmpty()) { + this.commit(); + } + if (this.parent) { + this.parent.remove(this); + } else { + this._uiManager.removeEditor(this); + } + this.#altTextButton?.remove(); + this.#altTextButton = null; + this.#altTextTooltip = null; + } + get isResizable() { + return false; + } + makeResizable() { + if (this.isResizable) { + this.#createResizers(); + this.#resizersDiv.classList.remove("hidden"); + } + } + select() { + this.makeResizable(); + this.div?.classList.add("selectedEditor"); + } + unselect() { + this.#resizersDiv?.classList.add("hidden"); + this.div?.classList.remove("selectedEditor"); + if (this.div?.contains(document.activeElement)) { + this._uiManager.currentLayer.div.focus(); + } + } + updateParams(type, value) {} + disableEditing() { + if (this.#altTextButton) { + this.#altTextButton.hidden = true; + } + } + enableEditing() { + if (this.#altTextButton) { + this.#altTextButton.hidden = false; + } + } + enterInEditMode() {} + get contentDiv() { + return this.div; + } + get isEditing() { + return this.#isEditing; + } + set isEditing(value) { + this.#isEditing = value; + if (!this.parent) { + return; + } + if (value) { + this.parent.setSelected(this); + this.parent.setActiveEditor(this); + } else { + this.parent.setActiveEditor(null); + } + } + setAspectRatio(width, height) { + this.#keepAspectRatio = true; + const aspectRatio = width / height; + const { + style + } = this.div; + style.aspectRatio = aspectRatio; + style.height = "auto"; + } + static get MIN_SIZE() { + return 16; + } +} +exports.AnnotationEditor = AnnotationEditor; +class FakeEditor extends AnnotationEditor { + constructor(params) { + super(params); + this.annotationElementId = params.annotationElementId; + this.deleted = true; + } + serialize() { + return { + id: this.annotationElementId, + deleted: true, + pageIndex: this.pageIndex + }; + } +} + +/***/ }), +/* 5 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0; +exports.bindEvents = bindEvents; +exports.opacityToHex = opacityToHex; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(6); +function bindEvents(obj, element, names) { + for (const name of names) { + element.addEventListener(name, obj[name].bind(obj)); + } +} +function opacityToHex(opacity) { + return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, "0"); +} +class IdManager { + #id = 0; + getId() { + return `${_util.AnnotationEditorPrefix}${this.#id++}`; + } +} +class ImageManager { + #baseId = (0, _util.getUuid)(); + #id = 0; + #cache = null; + static get _isSVGFittingCanvas() { + const svg = `data:image/svg+xml;charset=UTF-8,`; + const canvas = new OffscreenCanvas(1, 3); + const ctx = canvas.getContext("2d"); + const image = new Image(); + image.src = svg; + const promise = image.decode().then(() => { + ctx.drawImage(image, 0, 0, 1, 1, 0, 0, 1, 3); + return new Uint32Array(ctx.getImageData(0, 0, 1, 1).data.buffer)[0] === 0; + }); + return (0, _util.shadow)(this, "_isSVGFittingCanvas", promise); + } + async #get(key, rawData) { + this.#cache ||= new Map(); + let data = this.#cache.get(key); + if (data === null) { + return null; + } + if (data?.bitmap) { + data.refCounter += 1; + return data; + } + try { + data ||= { + bitmap: null, + id: `image_${this.#baseId}_${this.#id++}`, + refCounter: 0, + isSvg: false + }; + let image; + if (typeof rawData === "string") { + data.url = rawData; + const response = await fetch(rawData); + if (!response.ok) { + throw new Error(response.statusText); + } + image = await response.blob(); + } else { + image = data.file = rawData; + } + if (image.type === "image/svg+xml") { + const mustRemoveAspectRatioPromise = ImageManager._isSVGFittingCanvas; + const fileReader = new FileReader(); + const imageElement = new Image(); + const imagePromise = new Promise((resolve, reject) => { + imageElement.onload = () => { + data.bitmap = imageElement; + data.isSvg = true; + resolve(); + }; + fileReader.onload = async () => { + const url = data.svgUrl = fileReader.result; + imageElement.src = (await mustRemoveAspectRatioPromise) ? `${url}#svgView(preserveAspectRatio(none))` : url; + }; + imageElement.onerror = fileReader.onerror = reject; + }); + fileReader.readAsDataURL(image); + await imagePromise; + } else { + data.bitmap = await createImageBitmap(image); + } + data.refCounter = 1; + } catch (e) { + console.error(e); + data = null; + } + this.#cache.set(key, data); + if (data) { + this.#cache.set(data.id, data); + } + return data; + } + async getFromFile(file) { + const { + lastModified, + name, + size, + type + } = file; + return this.#get(`${lastModified}_${name}_${size}_${type}`, file); + } + async getFromUrl(url) { + return this.#get(url, url); + } + async getFromId(id) { + this.#cache ||= new Map(); + const data = this.#cache.get(id); + if (!data) { + return null; + } + if (data.bitmap) { + data.refCounter += 1; + return data; + } + if (data.file) { + return this.getFromFile(data.file); + } + return this.getFromUrl(data.url); + } + getSvgUrl(id) { + const data = this.#cache.get(id); + if (!data?.isSvg) { + return null; + } + return data.svgUrl; + } + deleteId(id) { + this.#cache ||= new Map(); + const data = this.#cache.get(id); + if (!data) { + return; + } + data.refCounter -= 1; + if (data.refCounter !== 0) { + return; + } + data.bitmap = null; + } + isValidId(id) { + return id.startsWith(`image_${this.#baseId}_`); + } +} +class CommandManager { + #commands = []; + #locked = false; + #maxSize; + #position = -1; + constructor(maxSize = 128) { + this.#maxSize = maxSize; + } + add({ + cmd, + undo, + mustExec, + type = NaN, + overwriteIfSameType = false, + keepUndo = false + }) { + if (mustExec) { + cmd(); + } + if (this.#locked) { + return; + } + const save = { + cmd, + undo, + type + }; + if (this.#position === -1) { + if (this.#commands.length > 0) { + this.#commands.length = 0; + } + this.#position = 0; + this.#commands.push(save); + return; + } + if (overwriteIfSameType && this.#commands[this.#position].type === type) { + if (keepUndo) { + save.undo = this.#commands[this.#position].undo; + } + this.#commands[this.#position] = save; + return; + } + const next = this.#position + 1; + if (next === this.#maxSize) { + this.#commands.splice(0, 1); + } else { + this.#position = next; + if (next < this.#commands.length) { + this.#commands.splice(next); + } + } + this.#commands.push(save); + } + undo() { + if (this.#position === -1) { + return; + } + this.#locked = true; + this.#commands[this.#position].undo(); + this.#locked = false; + this.#position -= 1; + } + redo() { + if (this.#position < this.#commands.length - 1) { + this.#position += 1; + this.#locked = true; + this.#commands[this.#position].cmd(); + this.#locked = false; + } + } + hasSomethingToUndo() { + return this.#position !== -1; + } + hasSomethingToRedo() { + return this.#position < this.#commands.length - 1; + } + destroy() { + this.#commands = null; + } +} +exports.CommandManager = CommandManager; +class KeyboardManager { + constructor(callbacks) { + this.buffer = []; + this.callbacks = new Map(); + this.allKeys = new Set(); + const { + isMac + } = _util.FeatureTest.platform; + for (const [keys, callback, options = {}] of callbacks) { + for (const key of keys) { + const isMacKey = key.startsWith("mac+"); + if (isMac && isMacKey) { + this.callbacks.set(key.slice(4), { + callback, + options + }); + this.allKeys.add(key.split("+").at(-1)); + } else if (!isMac && !isMacKey) { + this.callbacks.set(key, { + callback, + options + }); + this.allKeys.add(key.split("+").at(-1)); + } + } + } + } + #serialize(event) { + if (event.altKey) { + this.buffer.push("alt"); + } + if (event.ctrlKey) { + this.buffer.push("ctrl"); + } + if (event.metaKey) { + this.buffer.push("meta"); + } + if (event.shiftKey) { + this.buffer.push("shift"); + } + this.buffer.push(event.key); + const str = this.buffer.join("+"); + this.buffer.length = 0; + return str; + } + exec(self, event) { + if (!this.allKeys.has(event.key)) { + return; + } + const info = this.callbacks.get(this.#serialize(event)); + if (!info) { + return; + } + const { + callback, + options: { + bubbles = false, + args = [], + checker = null + } + } = info; + if (checker && !checker(self, event)) { + return; + } + callback.bind(self, ...args)(); + if (!bubbles) { + event.stopPropagation(); + event.preventDefault(); + } + } +} +exports.KeyboardManager = KeyboardManager; +class ColorManager { + static _colorsMapping = new Map([["CanvasText", [0, 0, 0]], ["Canvas", [255, 255, 255]]]); + get _colors() { + const colors = new Map([["CanvasText", null], ["Canvas", null]]); + (0, _display_utils.getColorValues)(colors); + return (0, _util.shadow)(this, "_colors", colors); + } + convert(color) { + const rgb = (0, _display_utils.getRGB)(color); + if (!window.matchMedia("(forced-colors: active)").matches) { + return rgb; + } + for (const [name, RGB] of this._colors) { + if (RGB.every((x, i) => x === rgb[i])) { + return ColorManager._colorsMapping.get(name); + } + } + return rgb; + } + getHexCode(name) { + const rgb = this._colors.get(name); + if (!rgb) { + return name; + } + return _util.Util.makeHexColor(...rgb); + } +} +exports.ColorManager = ColorManager; +class AnnotationEditorUIManager { + #activeEditor = null; + #allEditors = new Map(); + #allLayers = new Map(); + #altTextManager = null; + #annotationStorage = null; + #commandManager = new CommandManager(); + #currentPageIndex = 0; + #deletedAnnotationsElementIds = new Set(); + #draggingEditors = null; + #editorTypes = null; + #editorsToRescale = new Set(); + #filterFactory = null; + #idManager = new IdManager(); + #isEnabled = false; + #isWaiting = false; + #lastActiveElement = null; + #mode = _util.AnnotationEditorType.NONE; + #selectedEditors = new Set(); + #pageColors = null; + #boundBlur = this.blur.bind(this); + #boundFocus = this.focus.bind(this); + #boundCopy = this.copy.bind(this); + #boundCut = this.cut.bind(this); + #boundPaste = this.paste.bind(this); + #boundKeydown = this.keydown.bind(this); + #boundOnEditingAction = this.onEditingAction.bind(this); + #boundOnPageChanging = this.onPageChanging.bind(this); + #boundOnScaleChanging = this.onScaleChanging.bind(this); + #boundOnRotationChanging = this.onRotationChanging.bind(this); + #previousStates = { + isEditing: false, + isEmpty: true, + hasSomethingToUndo: false, + hasSomethingToRedo: false, + hasSelectedEditor: false + }; + #translation = [0, 0]; + #translationTimeoutId = null; + #container = null; + #viewer = null; + static TRANSLATE_SMALL = 1; + static TRANSLATE_BIG = 10; + static get _keyboardManager() { + const proto = AnnotationEditorUIManager.prototype; + const arrowChecker = self => { + const { + activeElement + } = document; + return activeElement && self.#container.contains(activeElement) && self.hasSomethingToControl(); + }; + const small = this.TRANSLATE_SMALL; + const big = this.TRANSLATE_BIG; + return (0, _util.shadow)(this, "_keyboardManager", new KeyboardManager([[["ctrl+a", "mac+meta+a"], proto.selectAll], [["ctrl+z", "mac+meta+z"], proto.undo], [["ctrl+y", "ctrl+shift+z", "mac+meta+shift+z", "ctrl+shift+Z", "mac+meta+shift+Z"], proto.redo], [["Backspace", "alt+Backspace", "ctrl+Backspace", "shift+Backspace", "mac+Backspace", "mac+alt+Backspace", "mac+ctrl+Backspace", "Delete", "ctrl+Delete", "shift+Delete", "mac+Delete"], proto.delete], [["Escape", "mac+Escape"], proto.unselectAll], [["ArrowLeft", "mac+ArrowLeft"], proto.translateSelectedEditors, { + args: [-small, 0], + checker: arrowChecker + }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], proto.translateSelectedEditors, { + args: [-big, 0], + checker: arrowChecker + }], [["ArrowRight", "mac+ArrowRight"], proto.translateSelectedEditors, { + args: [small, 0], + checker: arrowChecker + }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], proto.translateSelectedEditors, { + args: [big, 0], + checker: arrowChecker + }], [["ArrowUp", "mac+ArrowUp"], proto.translateSelectedEditors, { + args: [0, -small], + checker: arrowChecker + }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], proto.translateSelectedEditors, { + args: [0, -big], + checker: arrowChecker + }], [["ArrowDown", "mac+ArrowDown"], proto.translateSelectedEditors, { + args: [0, small], + checker: arrowChecker + }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], proto.translateSelectedEditors, { + args: [0, big], + checker: arrowChecker + }]])); + } + constructor(container, viewer, altTextManager, eventBus, pdfDocument, pageColors) { + this.#container = container; + this.#viewer = viewer; + this.#altTextManager = altTextManager; + this._eventBus = eventBus; + this._eventBus._on("editingaction", this.#boundOnEditingAction); + this._eventBus._on("pagechanging", this.#boundOnPageChanging); + this._eventBus._on("scalechanging", this.#boundOnScaleChanging); + this._eventBus._on("rotationchanging", this.#boundOnRotationChanging); + this.#annotationStorage = pdfDocument.annotationStorage; + this.#filterFactory = pdfDocument.filterFactory; + this.#pageColors = pageColors; + this.viewParameters = { + realScale: _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: 0 + }; + } + destroy() { + this.#removeKeyboardManager(); + this.#removeFocusManager(); + this._eventBus._off("editingaction", this.#boundOnEditingAction); + this._eventBus._off("pagechanging", this.#boundOnPageChanging); + this._eventBus._off("scalechanging", this.#boundOnScaleChanging); + this._eventBus._off("rotationchanging", this.#boundOnRotationChanging); + for (const layer of this.#allLayers.values()) { + layer.destroy(); + } + this.#allLayers.clear(); + this.#allEditors.clear(); + this.#editorsToRescale.clear(); + this.#activeEditor = null; + this.#selectedEditors.clear(); + this.#commandManager.destroy(); + this.#altTextManager.destroy(); + } + get hcmFilter() { + return (0, _util.shadow)(this, "hcmFilter", this.#pageColors ? this.#filterFactory.addHCMFilter(this.#pageColors.foreground, this.#pageColors.background) : "none"); + } + get direction() { + return (0, _util.shadow)(this, "direction", getComputedStyle(this.#container).direction); + } + editAltText(editor) { + this.#altTextManager?.editAltText(this, editor); + } + onPageChanging({ + pageNumber + }) { + this.#currentPageIndex = pageNumber - 1; + } + focusMainContainer() { + this.#container.focus(); + } + findParent(x, y) { + for (const layer of this.#allLayers.values()) { + const { + x: layerX, + y: layerY, + width, + height + } = layer.div.getBoundingClientRect(); + if (x >= layerX && x <= layerX + width && y >= layerY && y <= layerY + height) { + return layer; + } + } + return null; + } + disableUserSelect(value = false) { + this.#viewer.classList.toggle("noUserSelect", value); + } + addShouldRescale(editor) { + this.#editorsToRescale.add(editor); + } + removeShouldRescale(editor) { + this.#editorsToRescale.delete(editor); + } + onScaleChanging({ + scale + }) { + this.commitOrRemove(); + this.viewParameters.realScale = scale * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS; + for (const editor of this.#editorsToRescale) { + editor.onScaleChanging(); + } + } + onRotationChanging({ + pagesRotation + }) { + this.commitOrRemove(); + this.viewParameters.rotation = pagesRotation; + } + addToAnnotationStorage(editor) { + if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) { + this.#annotationStorage.setValue(editor.id, editor); + } + } + #addFocusManager() { + window.addEventListener("focus", this.#boundFocus); + window.addEventListener("blur", this.#boundBlur); + } + #removeFocusManager() { + window.removeEventListener("focus", this.#boundFocus); + window.removeEventListener("blur", this.#boundBlur); + } + blur() { + if (!this.hasSelection) { + return; + } + const { + activeElement + } = document; + for (const editor of this.#selectedEditors) { + if (editor.div.contains(activeElement)) { + this.#lastActiveElement = [editor, activeElement]; + editor._focusEventsAllowed = false; + break; + } + } + } + focus() { + if (!this.#lastActiveElement) { + return; + } + const [lastEditor, lastActiveElement] = this.#lastActiveElement; + this.#lastActiveElement = null; + lastActiveElement.addEventListener("focusin", () => { + lastEditor._focusEventsAllowed = true; + }, { + once: true + }); + lastActiveElement.focus(); + } + #addKeyboardManager() { + window.addEventListener("keydown", this.#boundKeydown, { + capture: true + }); + } + #removeKeyboardManager() { + window.removeEventListener("keydown", this.#boundKeydown, { + capture: true + }); + } + #addCopyPasteListeners() { + document.addEventListener("copy", this.#boundCopy); + document.addEventListener("cut", this.#boundCut); + document.addEventListener("paste", this.#boundPaste); + } + #removeCopyPasteListeners() { + document.removeEventListener("copy", this.#boundCopy); + document.removeEventListener("cut", this.#boundCut); + document.removeEventListener("paste", this.#boundPaste); + } + addEditListeners() { + this.#addKeyboardManager(); + this.#addCopyPasteListeners(); + } + removeEditListeners() { + this.#removeKeyboardManager(); + this.#removeCopyPasteListeners(); + } + copy(event) { + event.preventDefault(); + this.#activeEditor?.commitOrRemove(); + if (!this.hasSelection) { + return; + } + const editors = []; + for (const editor of this.#selectedEditors) { + const serialized = editor.serialize(true); + if (serialized) { + editors.push(serialized); + } + } + if (editors.length === 0) { + return; + } + event.clipboardData.setData("application/pdfjs", JSON.stringify(editors)); + } + cut(event) { + this.copy(event); + this.delete(); + } + paste(event) { + event.preventDefault(); + const { + clipboardData + } = event; + for (const item of clipboardData.items) { + for (const editorType of this.#editorTypes) { + if (editorType.isHandlingMimeForPasting(item.type)) { + editorType.paste(item, this.currentLayer); + return; + } + } + } + let data = clipboardData.getData("application/pdfjs"); + if (!data) { + return; + } + try { + data = JSON.parse(data); + } catch (ex) { + (0, _util.warn)(`paste: "${ex.message}".`); + return; + } + if (!Array.isArray(data)) { + return; + } + this.unselectAll(); + const layer = this.currentLayer; + try { + const newEditors = []; + for (const editor of data) { + const deserializedEditor = layer.deserialize(editor); + if (!deserializedEditor) { + return; + } + newEditors.push(deserializedEditor); + } + const cmd = () => { + for (const editor of newEditors) { + this.#addEditorToLayer(editor); + } + this.#selectEditors(newEditors); + }; + const undo = () => { + for (const editor of newEditors) { + editor.remove(); + } + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } catch (ex) { + (0, _util.warn)(`paste: "${ex.message}".`); + } + } + keydown(event) { + if (!this.getActive()?.shouldGetKeyboardEvents()) { + AnnotationEditorUIManager._keyboardManager.exec(this, event); + } + } + onEditingAction(details) { + if (["undo", "redo", "delete", "selectAll"].includes(details.name)) { + this[details.name](); + } + } + #dispatchUpdateStates(details) { + const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value); + if (hasChanged) { + this._eventBus.dispatch("annotationeditorstateschanged", { + source: this, + details: Object.assign(this.#previousStates, details) + }); + } + } + #dispatchUpdateUI(details) { + this._eventBus.dispatch("annotationeditorparamschanged", { + source: this, + details + }); + } + setEditingState(isEditing) { + if (isEditing) { + this.#addFocusManager(); + this.#addKeyboardManager(); + this.#addCopyPasteListeners(); + this.#dispatchUpdateStates({ + isEditing: this.#mode !== _util.AnnotationEditorType.NONE, + isEmpty: this.#isEmpty(), + hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(), + hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(), + hasSelectedEditor: false + }); + } else { + this.#removeFocusManager(); + this.#removeKeyboardManager(); + this.#removeCopyPasteListeners(); + this.#dispatchUpdateStates({ + isEditing: false + }); + this.disableUserSelect(false); + } + } + registerEditorTypes(types) { + if (this.#editorTypes) { + return; + } + this.#editorTypes = types; + for (const editorType of this.#editorTypes) { + this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate); + } + } + getId() { + return this.#idManager.getId(); + } + get currentLayer() { + return this.#allLayers.get(this.#currentPageIndex); + } + getLayer(pageIndex) { + return this.#allLayers.get(pageIndex); + } + get currentPageIndex() { + return this.#currentPageIndex; + } + addLayer(layer) { + this.#allLayers.set(layer.pageIndex, layer); + if (this.#isEnabled) { + layer.enable(); + } else { + layer.disable(); + } + } + removeLayer(layer) { + this.#allLayers.delete(layer.pageIndex); + } + updateMode(mode, editId = null) { + if (this.#mode === mode) { + return; + } + this.#mode = mode; + if (mode === _util.AnnotationEditorType.NONE) { + this.setEditingState(false); + this.#disableAll(); + return; + } + this.setEditingState(true); + this.#enableAll(); + this.unselectAll(); + for (const layer of this.#allLayers.values()) { + layer.updateMode(mode); + } + if (!editId) { + return; + } + for (const editor of this.#allEditors.values()) { + if (editor.annotationElementId === editId) { + this.setSelected(editor); + editor.enterInEditMode(); + break; + } + } + } + updateToolbar(mode) { + if (mode === this.#mode) { + return; + } + this._eventBus.dispatch("switchannotationeditormode", { + source: this, + mode + }); + } + updateParams(type, value) { + if (!this.#editorTypes) { + return; + } + if (type === _util.AnnotationEditorParamsType.CREATE) { + this.currentLayer.addNewEditor(type); + return; + } + for (const editor of this.#selectedEditors) { + editor.updateParams(type, value); + } + for (const editorType of this.#editorTypes) { + editorType.updateDefaultParams(type, value); + } + } + enableWaiting(mustWait = false) { + if (this.#isWaiting === mustWait) { + return; + } + this.#isWaiting = mustWait; + for (const layer of this.#allLayers.values()) { + if (mustWait) { + layer.disableClick(); + } else { + layer.enableClick(); + } + layer.div.classList.toggle("waiting", mustWait); + } + } + #enableAll() { + if (!this.#isEnabled) { + this.#isEnabled = true; + for (const layer of this.#allLayers.values()) { + layer.enable(); + } + } + } + #disableAll() { + this.unselectAll(); + if (this.#isEnabled) { + this.#isEnabled = false; + for (const layer of this.#allLayers.values()) { + layer.disable(); + } + } + } + getEditors(pageIndex) { + const editors = []; + for (const editor of this.#allEditors.values()) { + if (editor.pageIndex === pageIndex) { + editors.push(editor); + } + } + return editors; + } + getEditor(id) { + return this.#allEditors.get(id); + } + addEditor(editor) { + this.#allEditors.set(editor.id, editor); + } + removeEditor(editor) { + this.#allEditors.delete(editor.id); + this.unselect(editor); + if (!editor.annotationElementId || !this.#deletedAnnotationsElementIds.has(editor.annotationElementId)) { + this.#annotationStorage?.remove(editor.id); + } + } + addDeletedAnnotationElement(editor) { + this.#deletedAnnotationsElementIds.add(editor.annotationElementId); + editor.deleted = true; + } + isDeletedAnnotationElement(annotationElementId) { + return this.#deletedAnnotationsElementIds.has(annotationElementId); + } + removeDeletedAnnotationElement(editor) { + this.#deletedAnnotationsElementIds.delete(editor.annotationElementId); + editor.deleted = false; + } + #addEditorToLayer(editor) { + const layer = this.#allLayers.get(editor.pageIndex); + if (layer) { + layer.addOrRebuild(editor); + } else { + this.addEditor(editor); + } + } + setActiveEditor(editor) { + if (this.#activeEditor === editor) { + return; + } + this.#activeEditor = editor; + if (editor) { + this.#dispatchUpdateUI(editor.propertiesToUpdate); + } + } + toggleSelected(editor) { + if (this.#selectedEditors.has(editor)) { + this.#selectedEditors.delete(editor); + editor.unselect(); + this.#dispatchUpdateStates({ + hasSelectedEditor: this.hasSelection + }); + return; + } + this.#selectedEditors.add(editor); + editor.select(); + this.#dispatchUpdateUI(editor.propertiesToUpdate); + this.#dispatchUpdateStates({ + hasSelectedEditor: true + }); + } + setSelected(editor) { + for (const ed of this.#selectedEditors) { + if (ed !== editor) { + ed.unselect(); + } + } + this.#selectedEditors.clear(); + this.#selectedEditors.add(editor); + editor.select(); + this.#dispatchUpdateUI(editor.propertiesToUpdate); + this.#dispatchUpdateStates({ + hasSelectedEditor: true + }); + } + isSelected(editor) { + return this.#selectedEditors.has(editor); + } + unselect(editor) { + editor.unselect(); + this.#selectedEditors.delete(editor); + this.#dispatchUpdateStates({ + hasSelectedEditor: this.hasSelection + }); + } + get hasSelection() { + return this.#selectedEditors.size !== 0; + } + undo() { + this.#commandManager.undo(); + this.#dispatchUpdateStates({ + hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(), + hasSomethingToRedo: true, + isEmpty: this.#isEmpty() + }); + } + redo() { + this.#commandManager.redo(); + this.#dispatchUpdateStates({ + hasSomethingToUndo: true, + hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(), + isEmpty: this.#isEmpty() + }); + } + addCommands(params) { + this.#commandManager.add(params); + this.#dispatchUpdateStates({ + hasSomethingToUndo: true, + hasSomethingToRedo: false, + isEmpty: this.#isEmpty() + }); + } + #isEmpty() { + if (this.#allEditors.size === 0) { + return true; + } + if (this.#allEditors.size === 1) { + for (const editor of this.#allEditors.values()) { + return editor.isEmpty(); + } + } + return false; + } + delete() { + this.commitOrRemove(); + if (!this.hasSelection) { + return; + } + const editors = [...this.#selectedEditors]; + const cmd = () => { + for (const editor of editors) { + editor.remove(); + } + }; + const undo = () => { + for (const editor of editors) { + this.#addEditorToLayer(editor); + } + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } + commitOrRemove() { + this.#activeEditor?.commitOrRemove(); + } + hasSomethingToControl() { + return this.#activeEditor || this.hasSelection; + } + #selectEditors(editors) { + this.#selectedEditors.clear(); + for (const editor of editors) { + if (editor.isEmpty()) { + continue; + } + this.#selectedEditors.add(editor); + editor.select(); + } + this.#dispatchUpdateStates({ + hasSelectedEditor: true + }); + } + selectAll() { + for (const editor of this.#selectedEditors) { + editor.commit(); + } + this.#selectEditors(this.#allEditors.values()); + } + unselectAll() { + if (this.#activeEditor) { + this.#activeEditor.commitOrRemove(); + return; + } + if (!this.hasSelection) { + return; + } + for (const editor of this.#selectedEditors) { + editor.unselect(); + } + this.#selectedEditors.clear(); + this.#dispatchUpdateStates({ + hasSelectedEditor: false + }); + } + translateSelectedEditors(x, y, noCommit = false) { + if (!noCommit) { + this.commitOrRemove(); + } + if (!this.hasSelection) { + return; + } + this.#translation[0] += x; + this.#translation[1] += y; + const [totalX, totalY] = this.#translation; + const editors = [...this.#selectedEditors]; + const TIME_TO_WAIT = 1000; + if (this.#translationTimeoutId) { + clearTimeout(this.#translationTimeoutId); + } + this.#translationTimeoutId = setTimeout(() => { + this.#translationTimeoutId = null; + this.#translation[0] = this.#translation[1] = 0; + this.addCommands({ + cmd: () => { + for (const editor of editors) { + if (this.#allEditors.has(editor.id)) { + editor.translateInPage(totalX, totalY); + } + } + }, + undo: () => { + for (const editor of editors) { + if (this.#allEditors.has(editor.id)) { + editor.translateInPage(-totalX, -totalY); + } + } + }, + mustExec: false + }); + }, TIME_TO_WAIT); + for (const editor of editors) { + editor.translateInPage(x, y); + } + } + setUpDragSession() { + if (!this.hasSelection) { + return; + } + this.disableUserSelect(true); + this.#draggingEditors = new Map(); + for (const editor of this.#selectedEditors) { + this.#draggingEditors.set(editor, { + savedX: editor.x, + savedY: editor.y, + savedPageIndex: editor.pageIndex, + newX: 0, + newY: 0, + newPageIndex: -1 + }); + } + } + endDragSession() { + if (!this.#draggingEditors) { + return false; + } + this.disableUserSelect(false); + const map = this.#draggingEditors; + this.#draggingEditors = null; + let mustBeAddedInUndoStack = false; + for (const [{ + x, + y, + pageIndex + }, value] of map) { + value.newX = x; + value.newY = y; + value.newPageIndex = pageIndex; + mustBeAddedInUndoStack ||= x !== value.savedX || y !== value.savedY || pageIndex !== value.savedPageIndex; + } + if (!mustBeAddedInUndoStack) { + return false; + } + const move = (editor, x, y, pageIndex) => { + if (this.#allEditors.has(editor.id)) { + const parent = this.#allLayers.get(pageIndex); + if (parent) { + editor._setParentAndPosition(parent, x, y); + } else { + editor.pageIndex = pageIndex; + editor.x = x; + editor.y = y; + } + } + }; + this.addCommands({ + cmd: () => { + for (const [editor, { + newX, + newY, + newPageIndex + }] of map) { + move(editor, newX, newY, newPageIndex); + } + }, + undo: () => { + for (const [editor, { + savedX, + savedY, + savedPageIndex + }] of map) { + move(editor, savedX, savedY, savedPageIndex); + } + }, + mustExec: true + }); + return true; + } + dragSelectedEditors(tx, ty) { + if (!this.#draggingEditors) { + return; + } + for (const editor of this.#draggingEditors.keys()) { + editor.drag(tx, ty); + } + } + rebuild(editor) { + if (editor.parent === null) { + const parent = this.getLayer(editor.pageIndex); + if (parent) { + parent.changeParent(editor); + parent.addOrRebuild(editor); + } else { + this.addEditor(editor); + this.addToAnnotationStorage(editor); + editor.rebuild(); + } + } else { + editor.parent.addOrRebuild(editor); + } + } + isActive(editor) { + return this.#activeEditor === editor; + } + getActive() { + return this.#activeEditor; + } + getMode() { + return this.#mode; + } + get imageManager() { + return (0, _util.shadow)(this, "imageManager", new ImageManager()); + } +} +exports.AnnotationEditorUIManager = AnnotationEditorUIManager; + +/***/ }), +/* 6 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMFilterFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0; +exports.deprecated = deprecated; +exports.getColorValues = getColorValues; +exports.getCurrentTransform = getCurrentTransform; +exports.getCurrentTransformInverse = getCurrentTransformInverse; +exports.getFilenameFromUrl = getFilenameFromUrl; +exports.getPdfFilenameFromUrl = getPdfFilenameFromUrl; +exports.getRGB = getRGB; +exports.getXfaPageViewport = getXfaPageViewport; +exports.isDataScheme = isDataScheme; +exports.isPdfFile = isPdfFile; +exports.isValidFetchUrl = isValidFetchUrl; +exports.loadScript = loadScript; +exports.noContextMenu = noContextMenu; +exports.setLayerDimensions = setLayerDimensions; +var _base_factory = __w_pdfjs_require__(7); +var _util = __w_pdfjs_require__(1); +const SVG_NS = "http://www.w3.org/2000/svg"; +class PixelsPerInch { + static CSS = 96.0; + static PDF = 72.0; + static PDF_TO_CSS_UNITS = this.CSS / this.PDF; +} +exports.PixelsPerInch = PixelsPerInch; +class DOMFilterFactory extends _base_factory.BaseFilterFactory { + #_cache; + #_defs; + #docId; + #document; + #hcmFilter; + #hcmKey; + #hcmUrl; + #hcmHighlightFilter; + #hcmHighlightKey; + #hcmHighlightUrl; + #id = 0; + constructor({ + docId, + ownerDocument = globalThis.document + } = {}) { + super(); + this.#docId = docId; + this.#document = ownerDocument; + } + get #cache() { + return this.#_cache ||= new Map(); + } + get #defs() { + if (!this.#_defs) { + const div = this.#document.createElement("div"); + const { + style + } = div; + style.visibility = "hidden"; + style.contain = "strict"; + style.width = style.height = 0; + style.position = "absolute"; + style.top = style.left = 0; + style.zIndex = -1; + const svg = this.#document.createElementNS(SVG_NS, "svg"); + svg.setAttribute("width", 0); + svg.setAttribute("height", 0); + this.#_defs = this.#document.createElementNS(SVG_NS, "defs"); + div.append(svg); + svg.append(this.#_defs); + this.#document.body.append(div); + } + return this.#_defs; + } + addFilter(maps) { + if (!maps) { + return "none"; + } + let value = this.#cache.get(maps); + if (value) { + return value; + } + let tableR, tableG, tableB, key; + if (maps.length === 1) { + const mapR = maps[0]; + const buffer = new Array(256); + for (let i = 0; i < 256; i++) { + buffer[i] = mapR[i] / 255; + } + key = tableR = tableG = tableB = buffer.join(","); + } else { + const [mapR, mapG, mapB] = maps; + const bufferR = new Array(256); + const bufferG = new Array(256); + const bufferB = new Array(256); + for (let i = 0; i < 256; i++) { + bufferR[i] = mapR[i] / 255; + bufferG[i] = mapG[i] / 255; + bufferB[i] = mapB[i] / 255; + } + tableR = bufferR.join(","); + tableG = bufferG.join(","); + tableB = bufferB.join(","); + key = `${tableR}${tableG}${tableB}`; + } + value = this.#cache.get(key); + if (value) { + this.#cache.set(maps, value); + return value; + } + const id = `g_${this.#docId}_transfer_map_${this.#id++}`; + const url = `url(#${id})`; + this.#cache.set(maps, url); + this.#cache.set(key, url); + const filter = this.#createFilter(id); + this.#addTransferMapConversion(tableR, tableG, tableB, filter); + return url; + } + addHCMFilter(fgColor, bgColor) { + const key = `${fgColor}-${bgColor}`; + if (this.#hcmKey === key) { + return this.#hcmUrl; + } + this.#hcmKey = key; + this.#hcmUrl = "none"; + this.#hcmFilter?.remove(); + if (!fgColor || !bgColor) { + return this.#hcmUrl; + } + const fgRGB = this.#getRGB(fgColor); + fgColor = _util.Util.makeHexColor(...fgRGB); + const bgRGB = this.#getRGB(bgColor); + bgColor = _util.Util.makeHexColor(...bgRGB); + this.#defs.style.color = ""; + if (fgColor === "#000000" && bgColor === "#ffffff" || fgColor === bgColor) { + return this.#hcmUrl; + } + const map = new Array(256); + for (let i = 0; i <= 255; i++) { + const x = i / 255; + map[i] = x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4; + } + const table = map.join(","); + const id = `g_${this.#docId}_hcm_filter`; + const filter = this.#hcmHighlightFilter = this.#createFilter(id); + this.#addTransferMapConversion(table, table, table, filter); + this.#addGrayConversion(filter); + const getSteps = (c, n) => { + const start = fgRGB[c] / 255; + const end = bgRGB[c] / 255; + const arr = new Array(n + 1); + for (let i = 0; i <= n; i++) { + arr[i] = start + i / n * (end - start); + } + return arr.join(","); + }; + this.#addTransferMapConversion(getSteps(0, 5), getSteps(1, 5), getSteps(2, 5), filter); + this.#hcmUrl = `url(#${id})`; + return this.#hcmUrl; + } + addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) { + const key = `${fgColor}-${bgColor}-${newFgColor}-${newBgColor}`; + if (this.#hcmHighlightKey === key) { + return this.#hcmHighlightUrl; + } + this.#hcmHighlightKey = key; + this.#hcmHighlightUrl = "none"; + this.#hcmHighlightFilter?.remove(); + if (!fgColor || !bgColor) { + return this.#hcmHighlightUrl; + } + const [fgRGB, bgRGB] = [fgColor, bgColor].map(this.#getRGB.bind(this)); + let fgGray = Math.round(0.2126 * fgRGB[0] + 0.7152 * fgRGB[1] + 0.0722 * fgRGB[2]); + let bgGray = Math.round(0.2126 * bgRGB[0] + 0.7152 * bgRGB[1] + 0.0722 * bgRGB[2]); + let [newFgRGB, newBgRGB] = [newFgColor, newBgColor].map(this.#getRGB.bind(this)); + if (bgGray < fgGray) { + [fgGray, bgGray, newFgRGB, newBgRGB] = [bgGray, fgGray, newBgRGB, newFgRGB]; + } + this.#defs.style.color = ""; + const getSteps = (fg, bg, n) => { + const arr = new Array(256); + const step = (bgGray - fgGray) / n; + const newStart = fg / 255; + const newStep = (bg - fg) / (255 * n); + let prev = 0; + for (let i = 0; i <= n; i++) { + const k = Math.round(fgGray + i * step); + const value = newStart + i * newStep; + for (let j = prev; j <= k; j++) { + arr[j] = value; + } + prev = k + 1; + } + for (let i = prev; i < 256; i++) { + arr[i] = arr[prev - 1]; + } + return arr.join(","); + }; + const id = `g_${this.#docId}_hcm_highlight_filter`; + const filter = this.#hcmHighlightFilter = this.#createFilter(id); + this.#addGrayConversion(filter); + this.#addTransferMapConversion(getSteps(newFgRGB[0], newBgRGB[0], 5), getSteps(newFgRGB[1], newBgRGB[1], 5), getSteps(newFgRGB[2], newBgRGB[2], 5), filter); + this.#hcmHighlightUrl = `url(#${id})`; + return this.#hcmHighlightUrl; + } + destroy(keepHCM = false) { + if (keepHCM && (this.#hcmUrl || this.#hcmHighlightUrl)) { + return; + } + if (this.#_defs) { + this.#_defs.parentNode.parentNode.remove(); + this.#_defs = null; + } + if (this.#_cache) { + this.#_cache.clear(); + this.#_cache = null; + } + this.#id = 0; + } + #addGrayConversion(filter) { + const feColorMatrix = this.#document.createElementNS(SVG_NS, "feColorMatrix"); + feColorMatrix.setAttribute("type", "matrix"); + feColorMatrix.setAttribute("values", "0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0.2126 0.7152 0.0722 0 0 0 0 0 1 0"); + filter.append(feColorMatrix); + } + #createFilter(id) { + const filter = this.#document.createElementNS(SVG_NS, "filter"); + filter.setAttribute("color-interpolation-filters", "sRGB"); + filter.setAttribute("id", id); + this.#defs.append(filter); + return filter; + } + #appendFeFunc(feComponentTransfer, func, table) { + const feFunc = this.#document.createElementNS(SVG_NS, func); + feFunc.setAttribute("type", "discrete"); + feFunc.setAttribute("tableValues", table); + feComponentTransfer.append(feFunc); + } + #addTransferMapConversion(rTable, gTable, bTable, filter) { + const feComponentTransfer = this.#document.createElementNS(SVG_NS, "feComponentTransfer"); + filter.append(feComponentTransfer); + this.#appendFeFunc(feComponentTransfer, "feFuncR", rTable); + this.#appendFeFunc(feComponentTransfer, "feFuncG", gTable); + this.#appendFeFunc(feComponentTransfer, "feFuncB", bTable); + } + #getRGB(color) { + this.#defs.style.color = color; + return getRGB(getComputedStyle(this.#defs).getPropertyValue("color")); + } +} +exports.DOMFilterFactory = DOMFilterFactory; +class DOMCanvasFactory extends _base_factory.BaseCanvasFactory { + constructor({ + ownerDocument = globalThis.document + } = {}) { + super(); + this._document = ownerDocument; + } + _createCanvas(width, height) { + const canvas = this._document.createElement("canvas"); + canvas.width = width; + canvas.height = height; + return canvas; + } +} +exports.DOMCanvasFactory = DOMCanvasFactory; +async function fetchData(url, asTypedArray = false) { + if (isValidFetchUrl(url, document.baseURI)) { + const response = await fetch(url); + if (!response.ok) { + throw new Error(response.statusText); + } + return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text()); + } + return new Promise((resolve, reject) => { + const request = new XMLHttpRequest(); + request.open("GET", url, true); + if (asTypedArray) { + request.responseType = "arraybuffer"; + } + request.onreadystatechange = () => { + if (request.readyState !== XMLHttpRequest.DONE) { + return; + } + if (request.status === 200 || request.status === 0) { + let data; + if (asTypedArray && request.response) { + data = new Uint8Array(request.response); + } else if (!asTypedArray && request.responseText) { + data = (0, _util.stringToBytes)(request.responseText); + } + if (data) { + resolve(data); + return; + } + } + reject(new Error(request.statusText)); + }; + request.send(null); + }); +} +class DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url, this.isCompressed).then(data => { + return { + cMapData: data, + compressionType + }; + }); + } +} +exports.DOMCMapReaderFactory = DOMCMapReaderFactory; +class DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url, true); + } +} +exports.DOMStandardFontDataFactory = DOMStandardFontDataFactory; +class DOMSVGFactory extends _base_factory.BaseSVGFactory { + _createSVG(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 = (viewBox[3] - viewBox[1]) * scale; + height = (viewBox[2] - viewBox[0]) * scale; + } else { + offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX; + offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY; + width = (viewBox[2] - viewBox[0]) * scale; + height = (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; + } + get rawDims() { + const { + viewBox + } = this; + return (0, _util.shadow)(this, "rawDims", { + pageWidth: viewBox[2] - viewBox[0], + pageHeight: viewBox[3] - viewBox[1], + pageX: viewBox[0], + pageY: viewBox[1] + }); + } + 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, extraDelay = 0) { + super(msg, "RenderingCancelledException"); + this.extraDelay = extraDelay; + } +} +exports.RenderingCancelledException = RenderingCancelledException; +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, onlyStripPath = false) { + if (!onlyStripPath) { + [url] = url.split(/[#?]/, 1); + } + return url.substring(url.lastIndexOf("/") + 1); +} +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 {} + } + } + return suggestedFilename || defaultFilename; +} +class StatTimer { + started = Object.create(null); + 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 { + name + } of this.times) { + longest = Math.max(name.length, longest); + } + for (const { + name, + start, + end + } of this.times) { + outBuf.push(`${name.padEnd(longest)} ${end - start}ms\n`); + } + return outBuf.join(""); + } +} +exports.StatTimer = StatTimer; +function isValidFetchUrl(url, baseUrl) { + try { + const { + protocol + } = baseUrl ? new URL(url, baseUrl) : new URL(url); + return protocol === "http:" || protocol === "https:"; + } catch { + return false; + } +} +function noContextMenu(e) { + e.preventDefault(); +} +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).append(script); + }); +} +function deprecated(details) { + console.log("Deprecated API usage: " + details); +} +let pdfDateStringRegex; +class PDFDateString { + static toDateObject(input) { + if (!input || typeof input !== "string") { + return null; + } + 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; +function getXfaPageViewport(xfaPage, { + scale = 1, + rotation = 0 +}) { + const { + width, + height + } = xfaPage.attributes.style; + const viewBox = [0, 0, parseInt(width), parseInt(height)]; + return new PageViewport({ + viewBox, + scale, + rotation + }); +} +function getRGB(color) { + if (color.startsWith("#")) { + const colorRGB = parseInt(color.slice(1), 16); + return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff]; + } + if (color.startsWith("rgb(")) { + return color.slice(4, -1).split(",").map(x => parseInt(x)); + } + if (color.startsWith("rgba(")) { + return color.slice(5, -1).split(",").map(x => parseInt(x)).slice(0, 3); + } + (0, _util.warn)(`Not a valid color format: "${color}"`); + return [0, 0, 0]; +} +function getColorValues(colors) { + const span = document.createElement("span"); + span.style.visibility = "hidden"; + document.body.append(span); + for (const name of colors.keys()) { + span.style.color = name; + const computedColor = window.getComputedStyle(span).color; + colors.set(name, getRGB(computedColor)); + } + span.remove(); +} +function getCurrentTransform(ctx) { + const { + a, + b, + c, + d, + e, + f + } = ctx.getTransform(); + return [a, b, c, d, e, f]; +} +function getCurrentTransformInverse(ctx) { + const { + a, + b, + c, + d, + e, + f + } = ctx.getTransform().invertSelf(); + return [a, b, c, d, e, f]; +} +function setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) { + if (viewport instanceof PageViewport) { + const { + pageWidth, + pageHeight + } = viewport.rawDims; + const { + style + } = div; + const useRound = _util.FeatureTest.isCSSRoundSupported; + const w = `var(--scale-factor) * ${pageWidth}px`, + h = `var(--scale-factor) * ${pageHeight}px`; + const widthStr = useRound ? `round(${w}, 1px)` : `calc(${w})`, + heightStr = useRound ? `round(${h}, 1px)` : `calc(${h})`; + if (!mustFlip || viewport.rotation % 180 === 0) { + style.width = widthStr; + style.height = heightStr; + } else { + style.width = heightStr; + style.height = widthStr; + } + } + if (mustRotate) { + div.setAttribute("data-main-rotation", viewport.rotation); + } +} + +/***/ }), +/* 7 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseFilterFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0; +var _util = __w_pdfjs_require__(1); +class BaseFilterFactory { + constructor() { + if (this.constructor === BaseFilterFactory) { + (0, _util.unreachable)("Cannot initialize BaseFilterFactory."); + } + } + addFilter(maps) { + return "none"; + } + addHCMFilter(fgColor, bgColor) { + return "none"; + } + addHighlightHCMFilter(fgColor, bgColor, newFgColor, newBgColor) { + return "none"; + } + destroy(keepHCM = false) {} +} +exports.BaseFilterFactory = BaseFilterFactory; +class BaseCanvasFactory { + constructor() { + if (this.constructor === BaseCanvasFactory) { + (0, _util.unreachable)("Cannot initialize BaseCanvasFactory."); + } + } + create(width, height) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid canvas size"); + } + const canvas = this._createCanvas(width, height); + return { + canvas, + context: canvas.getContext("2d") + }; + } + 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; + } + 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; + } + _createCanvas(width, height) { + (0, _util.unreachable)("Abstract method `_createCanvas` called."); + } +} +exports.BaseCanvasFactory = BaseCanvasFactory; +class BaseCMapReaderFactory { + constructor({ + baseUrl = null, + isCompressed = true + }) { + 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.BaseCMapReaderFactory = BaseCMapReaderFactory; +class BaseStandardFontDataFactory { + constructor({ + baseUrl = null + }) { + if (this.constructor === BaseStandardFontDataFactory) { + (0, _util.unreachable)("Cannot initialize BaseStandardFontDataFactory."); + } + this.baseUrl = baseUrl; + } + async fetch({ + filename + }) { + if (!this.baseUrl) { + throw new Error('The standard font "baseUrl" parameter must be specified, ensure that ' + 'the "standardFontDataUrl" API parameter is provided.'); + } + if (!filename) { + throw new Error("Font filename must be specified."); + } + const url = `${this.baseUrl}${filename}`; + return this._fetchData(url).catch(reason => { + throw new Error(`Unable to load font data at: ${url}`); + }); + } + _fetchData(url) { + (0, _util.unreachable)("Abstract method `_fetchData` called."); + } +} +exports.BaseStandardFontDataFactory = BaseStandardFontDataFactory; +class BaseSVGFactory { + constructor() { + if (this.constructor === BaseSVGFactory) { + (0, _util.unreachable)("Cannot initialize BaseSVGFactory."); + } + } + create(width, height, skipDimensions = false) { + if (width <= 0 || height <= 0) { + throw new Error("Invalid SVG dimensions"); + } + const svg = this._createSVG("svg:svg"); + svg.setAttribute("version", "1.1"); + if (!skipDimensions) { + 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) { + if (typeof type !== "string") { + throw new Error("Invalid SVG element type"); + } + return this._createSVG(type); + } + _createSVG(type) { + (0, _util.unreachable)("Abstract method `_createSVG` called."); + } +} +exports.BaseSVGFactory = BaseSVGFactory; + +/***/ }), +/* 8 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.MurmurHash3_64 = void 0; +var _util = __w_pdfjs_require__(1); +const SEED = 0xc3d2e1f0; +const MASK_HIGH = 0xffff0000; +const MASK_LOW = 0xffff; +class MurmurHash3_64 { + constructor(seed) { + this.h1 = seed ? seed & 0xffffffff : SEED; + this.h2 = seed ? seed & 0xffffffff : SEED; + } + update(input) { + let data, length; + if (typeof input === "string") { + data = new Uint8Array(input.length * 2); + length = 0; + for (let i = 0, ii = input.length; i < ii; i++) { + const code = input.charCodeAt(i); + if (code <= 0xff) { + data[length++] = code; + } else { + data[length++] = code >>> 8; + data[length++] = code & 0xff; + } + } + } else if ((0, _util.isArrayBuffer)(input)) { + data = input.slice(); + length = data.byteLength; + } else { + throw new Error("Wrong data format in MurmurHash3_64_update. " + "Input must be a string or array."); + } + const blockCounts = length >> 2; + const tailLength = length - blockCounts * 4; + const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts); + let k1 = 0, + k2 = 0; + let h1 = this.h1, + h2 = this.h2; + const C1 = 0xcc9e2d51, + C2 = 0x1b873593; + const C1_LOW = C1 & MASK_LOW, + C2_LOW = C2 & MASK_LOW; + for (let i = 0; i < blockCounts; i++) { + if (i & 1) { + k1 = dataUint32[i]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + h1 ^= k1; + h1 = h1 << 13 | h1 >>> 19; + h1 = h1 * 5 + 0xe6546b64; + } else { + k2 = dataUint32[i]; + k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW; + k2 = k2 << 15 | k2 >>> 17; + k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW; + h2 ^= k2; + h2 = h2 << 13 | h2 >>> 19; + h2 = h2 * 5 + 0xe6546b64; + } + } + k1 = 0; + switch (tailLength) { + case 3: + k1 ^= data[blockCounts * 4 + 2] << 16; + case 2: + k1 ^= data[blockCounts * 4 + 1] << 8; + case 1: + k1 ^= data[blockCounts * 4]; + k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW; + k1 = k1 << 15 | k1 >>> 17; + k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW; + if (blockCounts & 1) { + h1 ^= k1; + } else { + h2 ^= k1; + } + } + this.h1 = h1; + this.h2 = h2; + } + hexdigest() { + let h1 = this.h1, + h2 = this.h2; + h1 ^= h2 >>> 1; + h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW; + h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW; + h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16; + h1 ^= h2 >>> 1; + return (h1 >>> 0).toString(16).padStart(8, "0") + (h2 >>> 0).toString(16).padStart(8, "0"); + } +} +exports.MurmurHash3_64 = MurmurHash3_64; + +/***/ }), +/* 9 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.FontLoader = exports.FontFaceObject = void 0; +var _util = __w_pdfjs_require__(1); +class FontLoader { + #systemFonts = new Set(); + constructor({ + ownerDocument = globalThis.document, + styleElement = null + }) { + this._document = ownerDocument; + this.nativeFontFaces = new Set(); + this.styleElement = null; + this.loadingRequests = []; + this.loadTestFontId = 0; + } + addNativeFontFace(nativeFontFace) { + this.nativeFontFaces.add(nativeFontFace); + this._document.fonts.add(nativeFontFace); + } + removeNativeFontFace(nativeFontFace) { + this.nativeFontFaces.delete(nativeFontFace); + this._document.fonts.delete(nativeFontFace); + } + insertRule(rule) { + if (!this.styleElement) { + this.styleElement = this._document.createElement("style"); + this._document.documentElement.getElementsByTagName("head")[0].append(this.styleElement); + } + const styleSheet = this.styleElement.sheet; + styleSheet.insertRule(rule, styleSheet.cssRules.length); + } + clear() { + for (const nativeFontFace of this.nativeFontFaces) { + this._document.fonts.delete(nativeFontFace); + } + this.nativeFontFaces.clear(); + this.#systemFonts.clear(); + if (this.styleElement) { + this.styleElement.remove(); + this.styleElement = null; + } + } + async loadSystemFont(info) { + if (!info || this.#systemFonts.has(info.loadedName)) { + return; + } + (0, _util.assert)(!this.disableFontFace, "loadSystemFont shouldn't be called when `disableFontFace` is set."); + if (this.isFontLoadingAPISupported) { + const { + loadedName, + src, + style + } = info; + const fontFace = new FontFace(loadedName, src, style); + this.addNativeFontFace(fontFace); + try { + await fontFace.load(); + this.#systemFonts.add(loadedName); + } catch { + (0, _util.warn)(`Cannot load system font: ${info.baseFontName}, installing it could help to improve PDF rendering.`); + this.removeNativeFontFace(fontFace); + } + return; + } + (0, _util.unreachable)("Not implemented: loadSystemFont without the Font Loading API."); + } + async bind(font) { + if (font.attached || font.missingFile && !font.systemFontInfo) { + return; + } + font.attached = true; + if (font.systemFontInfo) { + await this.loadSystemFont(font.systemFontInfo); + return; + } + if (this.isFontLoadingAPISupported) { + const nativeFontFace = font.createNativeFontFace(); + if (nativeFontFace) { + this.addNativeFontFace(nativeFontFace); + try { + await nativeFontFace.loaded; + } catch (ex) { + (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`); + font.disableFontFace = true; + throw ex; + } + } + return; + } + const rule = font.createFontFaceRule(); + if (rule) { + this.insertRule(rule); + if (this.isSyncFontLoadingSupported) { + return; + } + await new Promise(resolve => { + const request = this._queueLoadingCallback(resolve); + this._prepareFontLoadEvent(font, request); + }); + } + } + get isFontLoadingAPISupported() { + const hasFonts = !!this._document?.fonts; + return (0, _util.shadow)(this, "isFontLoadingAPISupported", hasFonts); + } + get isSyncFontLoadingSupported() { + let supported = false; + if (_util.isNodeJS) { + supported = true; + } else if (typeof navigator !== "undefined" && /Mozilla\/5.0.*?rv:\d+.*? Gecko/.test(navigator.userAgent)) { + 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 (loadingRequests.length > 0 && loadingRequests[0].done) { + const otherRequest = loadingRequests.shift(); + setTimeout(otherRequest.callback, 0); + } + } + const { + loadingRequests + } = this; + const request = { + done: false, + complete: completeRequest, + callback + }; + loadingRequests.push(request); + return request; + } + get _loadTestFont() { + const testFont = 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", testFont); + } + _prepareFontLoadEvent(font, 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) { + if (++called > 30) { + (0, _util.warn)("Load test font never loaded."); + callback(); + return; + } + ctx.font = "30px " + name; + ctx.fillText(".", 0, 20); + const imageData = ctx.getImageData(0, 0, 1, 1); + if (imageData.data[3] > 0) { + callback(); + return; + } + 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 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 [font.loadedName, loadTestFontId]) { + const span = this._document.createElement("span"); + span.textContent = "Hi"; + span.style.fontFamily = name; + div.append(span); + } + this._document.body.append(div); + isFontReady(loadTestFontId, () => { + div.remove(); + request.complete(); + }); + } +} +exports.FontLoader = FontLoader; +class FontFaceObject { + constructor(translatedData, { + isEvalSupported = true, + disableFontFace = false, + ignoreErrors = false, + inspectFont = null + }) { + this.compiledGlyphs = Object.create(null); + for (const i in translatedData) { + this[i] = translatedData[i]; + } + this.isEvalSupported = isEvalSupported !== false; + this.disableFontFace = disableFontFace === true; + this.ignoreErrors = ignoreErrors === true; + this._inspectFont = inspectFont; + } + createNativeFontFace() { + if (!this.data || this.disableFontFace) { + return null; + } + let nativeFontFace; + if (!this.cssFontInfo) { + nativeFontFace = new FontFace(this.loadedName, this.data, {}); + } else { + const css = { + weight: this.cssFontInfo.fontWeight + }; + if (this.cssFontInfo.italicAngle) { + css.style = `oblique ${this.cssFontInfo.italicAngle}deg`; + } + nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css); + } + this._inspectFont?.(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}}`; + } + this._inspectFont?.(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; + } + (0, _util.warn)(`getPathGenerator - ignoring character: "${ex}".`); + return this.compiledGlyphs[character] = function (c, size) {}; + } + if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) { + 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; + +/***/ }), +/* 10 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.NodeStandardFontDataFactory = exports.NodeFilterFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0; +var _base_factory = __w_pdfjs_require__(7); +var _util = __w_pdfjs_require__(1); +; +; +const fetchData = function (url) { + return new Promise((resolve, reject) => { + const fs = require("fs"); + fs.readFile(url, (error, data) => { + if (error || !data) { + reject(new Error(error)); + return; + } + resolve(new Uint8Array(data)); + }); + }); +}; +class NodeFilterFactory extends _base_factory.BaseFilterFactory {} +exports.NodeFilterFactory = NodeFilterFactory; +class NodeCanvasFactory extends _base_factory.BaseCanvasFactory { + _createCanvas(width, height) { + const Canvas = require("canvas"); + return Canvas.createCanvas(width, height); + } +} +exports.NodeCanvasFactory = NodeCanvasFactory; +class NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory { + _fetchData(url, compressionType) { + return fetchData(url).then(data => { + return { + cMapData: data, + compressionType + }; + }); + } +} +exports.NodeCMapReaderFactory = NodeCMapReaderFactory; +class NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory { + _fetchData(url) { + return fetchData(url); + } +} +exports.NodeStandardFontDataFactory = NodeStandardFontDataFactory; + +/***/ }), +/* 11 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CanvasGraphics = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(6); +var _pattern_helper = __w_pdfjs_require__(12); +var _image_utils = __w_pdfjs_require__(13); +const MIN_FONT_SIZE = 16; +const MAX_FONT_SIZE = 100; +const MAX_GROUP_SIZE = 4096; +const EXECUTION_TIME = 15; +const EXECUTION_STEPS = 10; +const MAX_SIZE_TO_COMPILE = 1000; +const FULL_CHUNK_HEIGHT = 16; +function mirrorContextOperations(ctx, destCtx) { + if (ctx._removeMirroring) { + throw new Error("Context is already forwarding operations."); + } + 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.__originalClip = ctx.clip; + ctx.__originalMoveTo = ctx.moveTo; + ctx.__originalLineTo = ctx.lineTo; + ctx.__originalBezierCurveTo = ctx.bezierCurveTo; + ctx.__originalRect = ctx.rect; + ctx.__originalClosePath = ctx.closePath; + ctx.__originalBeginPath = ctx.beginPath; + ctx._removeMirroring = () => { + ctx.save = ctx.__originalSave; + ctx.restore = ctx.__originalRestore; + ctx.rotate = ctx.__originalRotate; + ctx.scale = ctx.__originalScale; + ctx.translate = ctx.__originalTranslate; + ctx.transform = ctx.__originalTransform; + ctx.setTransform = ctx.__originalSetTransform; + ctx.resetTransform = ctx.__originalResetTransform; + ctx.clip = ctx.__originalClip; + ctx.moveTo = ctx.__originalMoveTo; + ctx.lineTo = ctx.__originalLineTo; + ctx.bezierCurveTo = ctx.__originalBezierCurveTo; + ctx.rect = ctx.__originalRect; + ctx.closePath = ctx.__originalClosePath; + ctx.beginPath = ctx.__originalBeginPath; + delete ctx._removeMirroring; + }; + ctx.save = function ctxSave() { + destCtx.save(); + this.__originalSave(); + }; + ctx.restore = function ctxRestore() { + destCtx.restore(); + this.__originalRestore(); + }; + ctx.translate = function ctxTranslate(x, y) { + destCtx.translate(x, y); + this.__originalTranslate(x, y); + }; + ctx.scale = function ctxScale(x, y) { + destCtx.scale(x, y); + this.__originalScale(x, y); + }; + ctx.transform = function ctxTransform(a, b, c, d, e, f) { + destCtx.transform(a, b, c, d, e, f); + this.__originalTransform(a, b, c, d, e, f); + }; + ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) { + destCtx.setTransform(a, b, c, d, e, f); + this.__originalSetTransform(a, b, c, d, e, f); + }; + ctx.resetTransform = function ctxResetTransform() { + destCtx.resetTransform(); + this.__originalResetTransform(); + }; + ctx.rotate = function ctxRotate(angle) { + destCtx.rotate(angle); + this.__originalRotate(angle); + }; + ctx.clip = function ctxRotate(rule) { + destCtx.clip(rule); + this.__originalClip(rule); + }; + ctx.moveTo = function (x, y) { + destCtx.moveTo(x, y); + this.__originalMoveTo(x, y); + }; + ctx.lineTo = function (x, y) { + destCtx.lineTo(x, y); + this.__originalLineTo(x, y); + }; + ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) { + destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); + this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y); + }; + ctx.rect = function (x, y, width, height) { + destCtx.rect(x, y, width, height); + this.__originalRect(x, y, width, height); + }; + ctx.closePath = function () { + destCtx.closePath(); + this.__originalClosePath(); + }; + ctx.beginPath = function () { + destCtx.beginPath(); + this.__originalBeginPath(); + }; +} +class CachedCanvases { + constructor(canvasFactory) { + this.canvasFactory = canvasFactory; + this.cache = Object.create(null); + } + getCanvas(id, width, height) { + let canvasEntry; + if (this.cache[id] !== undefined) { + canvasEntry = this.cache[id]; + this.canvasFactory.reset(canvasEntry, width, height); + } else { + canvasEntry = this.canvasFactory.create(width, height); + this.cache[id] = canvasEntry; + } + return canvasEntry; + } + delete(id) { + delete this.cache[id]; + } + clear() { + for (const id in this.cache) { + const canvasEntry = this.cache[id]; + this.canvasFactory.destroy(canvasEntry); + delete this.cache[id]; + } + } +} +function drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) { + const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx); + if (b === 0 && c === 0) { + const tlX = destX * a + tx; + const rTlX = Math.round(tlX); + const tlY = destY * d + ty; + const rTlY = Math.round(tlY); + const brX = (destX + destW) * a + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destY + destH) * d + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight); + ctx.setTransform(a, b, c, d, tx, ty); + return [rWidth, rHeight]; + } + if (a === 0 && d === 0) { + const tlX = destY * c + tx; + const rTlX = Math.round(tlX); + const tlY = destX * b + ty; + const rTlY = Math.round(tlY); + const brX = (destY + destH) * c + tx; + const rWidth = Math.abs(Math.round(brX) - rTlX) || 1; + const brY = (destX + destW) * b + ty; + const rHeight = Math.abs(Math.round(brY) - rTlY) || 1; + ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY); + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth); + ctx.setTransform(a, b, c, d, tx, ty); + return [rHeight, rWidth]; + } + ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH); + const scaleX = Math.hypot(a, b); + const scaleY = Math.hypot(c, d); + return [scaleX * destW, scaleY * destH]; +} +function compileType3Glyph(imgData) { + const { + width, + height + } = imgData; + if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) { + return null; + } + 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 width1 = width + 1; + let points = new Uint8Array(width1 * (height + 1)); + let i, j, j0; + const lineSize = width + 7 & ~7; + let data = new Uint8Array(lineSize * height), + pos = 0; + for (const elem of imgData.data) { + let mask = 128; + while (mask > 0) { + data[pos++] = elem & mask ? 0 : 255; + mask >>= 1; + } + } + let count = 0; + pos = 0; + if (data[pos] !== 0) { + points[0] = 1; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j] = data[pos] ? 2 : 1; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j] = 2; + ++count; + } + for (i = 1; i < height; i++) { + pos = i * lineSize; + j0 = i * width1; + if (data[pos - lineSize] !== data[pos]) { + points[j0] = data[pos] ? 1 : 8; + ++count; + } + 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); + if (POINT_TYPES[sum]) { + points[j0 + j] = POINT_TYPES[sum]; + ++count; + } + pos++; + } + if (data[pos - lineSize] !== data[pos]) { + points[j0 + j] = data[pos] ? 2 : 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + } + pos = lineSize * (height - 1); + j0 = i * width1; + if (data[pos] !== 0) { + points[j0] = 8; + ++count; + } + for (j = 1; j < width; j++) { + if (data[pos] !== data[pos + 1]) { + points[j0 + j] = data[pos] ? 4 : 8; + ++count; + } + pos++; + } + if (data[pos] !== 0) { + points[j0 + j] = 4; + ++count; + } + if (count > POINT_TO_PROCESS_LIMIT) { + return null; + } + const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]); + const path = new Path2D(); + for (i = 0; count && i <= height; i++) { + let p = i * width1; + const end = p + width; + while (p < end && !points[p]) { + p++; + } + if (p === end) { + continue; + } + path.moveTo(p % width1, i); + const p0 = p; + let type = points[p]; + do { + const step = steps[type]; + do { + p += step; + } while (!points[p]); + const pp = points[p]; + if (pp !== 5 && pp !== 10) { + type = pp; + points[p] = 0; + } else { + type = pp & 0x33 * type >> 4; + points[p] &= type >> 2 | type << 2; + } + path.lineTo(p % width1, p / width1 | 0); + if (!points[p]) { + --count; + } + } while (p0 !== p); + --i; + } + data = null; + points = null; + const drawOutline = function (c) { + c.save(); + c.scale(1 / width, -1 / height); + c.translate(0, -height); + c.fill(path); + c.beginPath(); + c.restore(); + }; + return drawOutline; +} +class CanvasExtraState { + constructor(width, height) { + this.alphaIsShape = false; + this.fontSize = 0; + this.fontSizeScale = 1; + this.textMatrix = _util.IDENTITY_MATRIX; + this.textMatrixScale = 1; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textRise = 0; + this.fillColor = "#000000"; + this.strokeColor = "#000000"; + this.patternFill = false; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.activeSMask = null; + this.transferMaps = "none"; + this.startNewPathAndClipBox([0, 0, width, height]); + } + clone() { + const clone = Object.create(this); + clone.clipBox = this.clipBox.slice(); + return clone; + } + setCurrentPoint(x, y) { + this.x = x; + this.y = y; + } + updatePathMinMax(transform, x, y) { + [x, y] = _util.Util.applyTransform([x, y], transform); + this.minX = Math.min(this.minX, x); + this.minY = Math.min(this.minY, y); + this.maxX = Math.max(this.maxX, x); + this.maxY = Math.max(this.maxY, y); + } + updateRectMinMax(transform, rect) { + const p1 = _util.Util.applyTransform(rect, transform); + const p2 = _util.Util.applyTransform(rect.slice(2), transform); + this.minX = Math.min(this.minX, p1[0], p2[0]); + this.minY = Math.min(this.minY, p1[1], p2[1]); + this.maxX = Math.max(this.maxX, p1[0], p2[0]); + this.maxY = Math.max(this.maxY, p1[1], p2[1]); + } + updateScalingPathMinMax(transform, minMax) { + _util.Util.scaleMinMax(transform, minMax); + this.minX = Math.min(this.minX, minMax[0]); + this.maxX = Math.max(this.maxX, minMax[1]); + this.minY = Math.min(this.minY, minMax[2]); + this.maxY = Math.max(this.maxY, minMax[3]); + } + updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) { + const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3); + if (minMax) { + minMax[0] = Math.min(minMax[0], box[0], box[2]); + minMax[1] = Math.max(minMax[1], box[0], box[2]); + minMax[2] = Math.min(minMax[2], box[1], box[3]); + minMax[3] = Math.max(minMax[3], box[1], box[3]); + return; + } + this.updateRectMinMax(transform, box); + } + getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) { + const box = [this.minX, this.minY, this.maxX, this.maxY]; + if (pathType === _pattern_helper.PathType.STROKE) { + if (!transform) { + (0, _util.unreachable)("Stroke bounding box must include transform."); + } + const scale = _util.Util.singularValueDecompose2dScale(transform); + const xStrokePad = scale[0] * this.lineWidth / 2; + const yStrokePad = scale[1] * this.lineWidth / 2; + box[0] -= xStrokePad; + box[1] -= yStrokePad; + box[2] += xStrokePad; + box[3] += yStrokePad; + } + return box; + } + updateClipFromPath() { + const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox()); + this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]); + } + isEmptyClip() { + return this.minX === Infinity; + } + startNewPathAndClipBox(box) { + this.clipBox = box; + this.minX = Infinity; + this.minY = Infinity; + this.maxX = 0; + this.maxY = 0; + } + getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) { + return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform)); + } +} +function putBinaryImageData(ctx, imgData) { + if (typeof ImageData !== "undefined" && imgData instanceof ImageData) { + ctx.putImageData(imgData, 0, 0); + return; + } + 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; + const src = imgData.data; + const dest = chunkImgData.data; + let i, j, thisChunkHeight, elemsInThisChunk; + if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) { + const srcLength = src.byteLength; + const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2); + const dest32DataLength = dest32.length; + const fullSrcDiff = width + 7 >> 3; + const white = 0xffffffff; + const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + for (i = 0; i < totalChunks; i++) { + thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + destPos = 0; + for (j = 0; j < thisChunkHeight; j++) { + 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++]; + dest32[destPos++] = srcByte & 128 ? white : black; + dest32[destPos++] = srcByte & 64 ? white : black; + dest32[destPos++] = srcByte & 32 ? white : black; + dest32[destPos++] = srcByte & 16 ? white : black; + dest32[destPos++] = srcByte & 8 ? white : black; + dest32[destPos++] = srcByte & 4 ? white : black; + dest32[destPos++] = srcByte & 2 ? white : black; + dest32[destPos++] = srcByte & 1 ? white : black; + } + for (; k < kEnd; k++) { + if (mask === 0) { + srcByte = src[srcPos++]; + mask = 128; + } + dest32[destPos++] = srcByte & mask ? white : black; + mask >>= 1; + } + } + while (destPos < dest32DataLength) { + dest32[destPos++] = 0; + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) { + j = 0; + elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4; + for (i = 0; i < fullChunks; i++) { + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + srcPos += elemsInThisChunk; + ctx.putImageData(chunkImgData, 0, j); + j += FULL_CHUNK_HEIGHT; + } + if (i < totalChunks) { + elemsInThisChunk = width * partialChunkHeight * 4; + dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk)); + ctx.putImageData(chunkImgData, 0, j); + } + } else if (imgData.kind === _util.ImageKind.RGB_24BPP) { + thisChunkHeight = FULL_CHUNK_HEIGHT; + elemsInThisChunk = width * thisChunkHeight; + for (i = 0; i < totalChunks; i++) { + if (i >= fullChunks) { + thisChunkHeight = partialChunkHeight; + elemsInThisChunk = width * thisChunkHeight; + } + destPos = 0; + for (j = elemsInThisChunk; j--;) { + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = src[srcPos++]; + dest[destPos++] = 255; + } + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } + } else { + throw new Error(`bad image kind: ${imgData.kind}`); + } +} +function putBinaryImageMask(ctx, imgData) { + if (imgData.bitmap) { + ctx.drawImage(imgData.bitmap, 0, 0); + return; + } + 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 (let i = 0; i < totalChunks; i++) { + const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight; + ({ + srcPos + } = (0, _image_utils.convertBlackAndWhiteToRGBA)({ + src, + srcPos, + dest, + width, + height: thisChunkHeight, + nonBlackColor: 0 + })); + ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT); + } +} +function copyCtxState(sourceCtx, destCtx) { + const properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font", "filter"]; + for (const property of properties) { + if (sourceCtx[property] !== undefined) { + destCtx[property] = sourceCtx[property]; + } + } + if (sourceCtx.setLineDash !== undefined) { + destCtx.setLineDash(sourceCtx.getLineDash()); + destCtx.lineDashOffset = sourceCtx.lineDashOffset; + } +} +function resetCtxToDefault(ctx) { + ctx.strokeStyle = ctx.fillStyle = "#000000"; + ctx.fillRule = "nonzero"; + ctx.globalAlpha = 1; + ctx.lineWidth = 1; + ctx.lineCap = "butt"; + ctx.lineJoin = "miter"; + ctx.miterLimit = 10; + ctx.globalCompositeOperation = "source-over"; + ctx.font = "10px sans-serif"; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash([]); + ctx.lineDashOffset = 0; + } + if (!_util.isNodeJS) { + const { + filter + } = ctx; + if (filter !== "none" && filter !== "") { + ctx.filter = "none"; + } + } +} +function composeSMaskBackdrop(bytes, r0, g0, b0) { + const length = bytes.length; + 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) { + 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; + } + } +} +function composeSMaskAlpha(maskData, layerData, transferMap) { + const length = maskData.length; + const scale = 1 / 255; + 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) { + const length = maskData.length; + 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, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) { + const hasBackdrop = !!backdrop; + const r0 = hasBackdrop ? backdrop[0] : 0; + const g0 = hasBackdrop ? backdrop[1] : 0; + const b0 = hasBackdrop ? backdrop[2] : 0; + const composeFn = subtype === "Luminosity" ? composeSMaskLuminosity : composeSMaskAlpha; + const PIXELS_TO_PROCESS = 1048576; + const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width)); + for (let row = 0; row < height; row += chunkSize) { + const chunkHeight = Math.min(chunkSize, height - row); + const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight); + const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight); + if (hasBackdrop) { + composeSMaskBackdrop(maskData.data, r0, g0, b0); + } + composeFn(maskData.data, layerData.data, transferMap); + layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY); + } +} +function composeSMask(ctx, smask, layerCtx, layerBox) { + const layerOffsetX = layerBox[0]; + const layerOffsetY = layerBox[1]; + const layerWidth = layerBox[2] - layerOffsetX; + const layerHeight = layerBox[3] - layerOffsetY; + if (layerWidth === 0 || layerHeight === 0) { + return; + } + genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY); + ctx.save(); + ctx.globalAlpha = 1; + ctx.globalCompositeOperation = "source-over"; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(layerCtx.canvas, 0, 0); + ctx.restore(); +} +function getImageSmoothingEnabled(transform, interpolate) { + const scale = _util.Util.singularValueDecompose2dScale(transform); + scale[0] = Math.fround(scale[0]); + scale[1] = Math.fround(scale[1]); + const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); + if (interpolate !== undefined) { + return interpolate; + } else if (scale[0] <= actualScale || scale[1] <= actualScale) { + return true; + } + return false; +} +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, filterFactory, { + optionalContentConfig, + markedContentStack = null + }, annotationCanvasMap, pageColors) { + this.ctx = canvasCtx; + this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); + this.stateStack = []; + this.pendingClip = null; + this.pendingEOFill = false; + this.res = null; + this.xobjs = null; + this.commonObjs = commonObjs; + this.objs = objs; + this.canvasFactory = canvasFactory; + this.filterFactory = filterFactory; + this.groupStack = []; + this.processingType3 = null; + this.baseTransform = null; + this.baseTransformStack = []; + this.groupLevel = 0; + this.smaskStack = []; + this.smaskCounter = 0; + this.tempSMask = null; + this.suspendedCtx = null; + this.contentVisible = true; + this.markedContentStack = markedContentStack || []; + this.optionalContentConfig = optionalContentConfig; + this.cachedCanvases = new CachedCanvases(this.canvasFactory); + this.cachedPatterns = new Map(); + this.annotationCanvasMap = annotationCanvasMap; + this.viewportScale = 1; + this.outputScaleX = 1; + this.outputScaleY = 1; + this.pageColors = pageColors; + this._cachedScaleForStroking = [-1, 0]; + this._cachedGetSinglePixelWidth = null; + this._cachedBitmapsMap = new Map(); + } + getObject(data, fallback = null) { + if (typeof data === "string") { + return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); + } + return fallback; + } + beginDrawing({ + transform, + viewport, + transparency = false, + background = null + }) { + const width = this.ctx.canvas.width; + const height = this.ctx.canvas.height; + const savedFillStyle = this.ctx.fillStyle; + this.ctx.fillStyle = background || "#ffffff"; + this.ctx.fillRect(0, 0, width, height); + this.ctx.fillStyle = savedFillStyle; + if (transparency) { + const transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height); + this.compositeCtx = this.ctx; + this.transparentCanvas = transparentCanvas.canvas; + this.ctx = transparentCanvas.context; + this.ctx.save(); + this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx)); + } + this.ctx.save(); + resetCtxToDefault(this.ctx); + if (transform) { + this.ctx.transform(...transform); + this.outputScaleX = transform[0]; + this.outputScaleY = transform[0]; + } + this.ctx.transform(...viewport.transform); + this.viewportScale = viewport.scale; + this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx); + } + 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; + } + 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) { + stepper.breakIt(i, continueCallback); + return i; + } + fnId = fnArray[i]; + if (fnId !== _util.OPS.dependency) { + this[fnId].apply(this, argsArray[i]); + } else { + for (const depObjId of argsArray[i]) { + const objsPool = depObjId.startsWith("g_") ? commonObjs : objs; + if (!objsPool.has(depObjId)) { + objsPool.get(depObjId, continueCallback); + return i; + } + } + } + i++; + if (i === argsArrayLen) { + return i; + } + if (chunkOperations && ++steps > EXECUTION_STEPS) { + if (Date.now() > endTime) { + continueCallback(); + return i; + } + steps = 0; + } + } + } + #restoreInitialState() { + while (this.stateStack.length || this.inSMaskMode) { + this.restore(); + } + this.ctx.restore(); + if (this.transparentCanvas) { + this.ctx = this.compositeCtx; + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.drawImage(this.transparentCanvas, 0, 0); + this.ctx.restore(); + this.transparentCanvas = null; + } + } + endDrawing() { + this.#restoreInitialState(); + this.cachedCanvases.clear(); + this.cachedPatterns.clear(); + for (const cache of this._cachedBitmapsMap.values()) { + for (const canvas of cache.values()) { + if (typeof HTMLCanvasElement !== "undefined" && canvas instanceof HTMLCanvasElement) { + canvas.width = canvas.height = 0; + } + } + cache.clear(); + } + this._cachedBitmapsMap.clear(); + this.#drawFilter(); + } + #drawFilter() { + if (this.pageColors) { + const hcmFilterId = this.filterFactory.addHCMFilter(this.pageColors.foreground, this.pageColors.background); + if (hcmFilterId !== "none") { + const savedFilter = this.ctx.filter; + this.ctx.filter = hcmFilterId; + this.ctx.drawImage(this.ctx.canvas, 0, 0); + this.ctx.filter = savedFilter; + } + } + } + _scaleImage(img, inverseTransform) { + const width = img.width; + const height = img.height; + let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1); + let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1); + let paintWidth = width, + paintHeight = height; + let tmpCanvasId = "prescale1"; + let tmpCanvas, tmpCtx; + while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) { + let newWidth = paintWidth, + newHeight = paintHeight; + if (widthScale > 2 && paintWidth > 1) { + newWidth = paintWidth >= 16384 ? Math.floor(paintWidth / 2) - 1 || 1 : Math.ceil(paintWidth / 2); + widthScale /= paintWidth / newWidth; + } + if (heightScale > 2 && paintHeight > 1) { + newHeight = paintHeight >= 16384 ? Math.floor(paintHeight / 2) - 1 || 1 : Math.ceil(paintHeight) / 2; + heightScale /= paintHeight / newHeight; + } + tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight); + tmpCtx = tmpCanvas.context; + tmpCtx.clearRect(0, 0, newWidth, newHeight); + tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight); + img = tmpCanvas.canvas; + paintWidth = newWidth; + paintHeight = newHeight; + tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1"; + } + return { + img, + paintWidth, + paintHeight + }; + } + _createMaskCanvas(img) { + const ctx = this.ctx; + const { + width, + height + } = img; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + let cache, cacheKey, scaled, maskCanvas; + if ((img.bitmap || img.data) && img.count > 1) { + const mainKey = img.bitmap || img.data.buffer; + cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]); + cache = this._cachedBitmapsMap.get(mainKey); + if (!cache) { + cache = new Map(); + this._cachedBitmapsMap.set(mainKey, cache); + } + const cachedImage = cache.get(cacheKey); + if (cachedImage && !isPatternFill) { + const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]); + const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]); + return { + canvas: cachedImage, + offsetX, + offsetY + }; + } + scaled = cachedImage; + } + if (!scaled) { + maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + putBinaryImageMask(maskCanvas.context, img); + } + let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]); + maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]); + const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas); + const cord2 = _util.Util.applyTransform([width, height], maskToCanvas); + const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]); + const drawnWidth = Math.round(rect[2] - rect[0]) || 1; + const drawnHeight = Math.round(rect[3] - rect[1]) || 1; + const fillCanvas = this.cachedCanvases.getCanvas("fillCanvas", drawnWidth, drawnHeight); + const fillCtx = fillCanvas.context; + const offsetX = Math.min(cord1[0], cord2[0]); + const offsetY = Math.min(cord1[1], cord2[1]); + fillCtx.translate(-offsetX, -offsetY); + fillCtx.transform(...maskToCanvas); + if (!scaled) { + scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx)); + scaled = scaled.img; + if (cache && isPatternFill) { + cache.set(cacheKey, scaled); + } + } + fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate); + drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height); + fillCtx.globalCompositeOperation = "source-in"; + const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]); + fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor; + fillCtx.fillRect(0, 0, width, height); + if (cache && !isPatternFill) { + this.cachedCanvases.delete("fillCanvas"); + cache.set(cacheKey, fillCanvas.canvas); + } + return { + canvas: fillCanvas.canvas, + offsetX: Math.round(offsetX), + offsetY: Math.round(offsetY) + }; + } + setLineWidth(width) { + if (width !== this.current.lineWidth) { + this._cachedScaleForStroking[0] = -1; + } + this.current.lineWidth = width; + this.ctx.lineWidth = width; + } + setLineCap(style) { + this.ctx.lineCap = LINE_CAP_STYLES[style]; + } + setLineJoin(style) { + this.ctx.lineJoin = LINE_JOIN_STYLES[style]; + } + setMiterLimit(limit) { + this.ctx.miterLimit = limit; + } + setDash(dashArray, dashPhase) { + const ctx = this.ctx; + if (ctx.setLineDash !== undefined) { + ctx.setLineDash(dashArray); + ctx.lineDashOffset = dashPhase; + } + } + 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[0], value[1]); + break; + case "CA": + this.current.strokeAlpha = value; + break; + case "ca": + this.current.fillAlpha = value; + this.ctx.globalAlpha = value; + break; + case "BM": + this.ctx.globalCompositeOperation = value; + break; + case "SMask": + this.current.activeSMask = value ? this.tempSMask : null; + this.tempSMask = null; + this.checkSMaskState(); + break; + case "TR": + this.ctx.filter = this.current.transferMaps = this.filterFactory.addFilter(value); + break; + } + } + } + get inSMaskMode() { + return !!this.suspendedCtx; + } + checkSMaskState() { + const inSMaskMode = this.inSMaskMode; + if (this.current.activeSMask && !inSMaskMode) { + this.beginSMaskMode(); + } else if (!this.current.activeSMask && inSMaskMode) { + this.endSMaskMode(); + } + } + beginSMaskMode() { + if (this.inSMaskMode) { + throw new Error("beginSMaskMode called while already in smask mode"); + } + const drawnWidth = this.ctx.canvas.width; + const drawnHeight = this.ctx.canvas.height; + const cacheId = "smaskGroupAt" + this.groupLevel; + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); + this.suspendedCtx = this.ctx; + this.ctx = scratchCanvas.context; + const ctx = this.ctx; + ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx)); + copyCtxState(this.suspendedCtx, ctx); + mirrorContextOperations(ctx, this.suspendedCtx); + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); + } + endSMaskMode() { + if (!this.inSMaskMode) { + throw new Error("endSMaskMode called while not in smask mode"); + } + this.ctx._removeMirroring(); + copyCtxState(this.ctx, this.suspendedCtx); + this.ctx = this.suspendedCtx; + this.suspendedCtx = null; + } + compose(dirtyBox) { + if (!this.current.activeSMask) { + return; + } + if (!dirtyBox) { + dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height]; + } else { + dirtyBox[0] = Math.floor(dirtyBox[0]); + dirtyBox[1] = Math.floor(dirtyBox[1]); + dirtyBox[2] = Math.ceil(dirtyBox[2]); + dirtyBox[3] = Math.ceil(dirtyBox[3]); + } + const smask = this.current.activeSMask; + const suspendedCtx = this.suspendedCtx; + composeSMask(suspendedCtx, smask, this.ctx, dirtyBox); + this.ctx.save(); + this.ctx.setTransform(1, 0, 0, 1, 0, 0); + this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height); + this.ctx.restore(); + } + save() { + if (this.inSMaskMode) { + copyCtxState(this.ctx, this.suspendedCtx); + this.suspendedCtx.save(); + } else { + this.ctx.save(); + } + const old = this.current; + this.stateStack.push(old); + this.current = old.clone(); + } + restore() { + if (this.stateStack.length === 0 && this.inSMaskMode) { + this.endSMaskMode(); + } + if (this.stateStack.length !== 0) { + this.current = this.stateStack.pop(); + if (this.inSMaskMode) { + this.suspendedCtx.restore(); + copyCtxState(this.suspendedCtx, this.ctx); + } else { + this.ctx.restore(); + } + this.checkSMaskState(); + this.pendingClip = null; + this._cachedScaleForStroking[0] = -1; + this._cachedGetSinglePixelWidth = null; + } + } + transform(a, b, c, d, e, f) { + this.ctx.transform(a, b, c, d, e, f); + this._cachedScaleForStroking[0] = -1; + this._cachedGetSinglePixelWidth = null; + } + constructPath(ops, args, minMax) { + const ctx = this.ctx; + const current = this.current; + let x = current.x, + y = current.y; + let startX, startY; + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0; + const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null; + 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++]; + const width = args[j++]; + const height = args[j++]; + const xw = x + width; + const yh = y + height; + ctx.moveTo(x, y); + if (width === 0 || height === 0) { + ctx.lineTo(xw, yh); + } else { + ctx.lineTo(xw, y); + ctx.lineTo(xw, yh); + ctx.lineTo(x, yh); + } + if (!isScalingMatrix) { + current.updateRectMinMax(currentTransform, [x, y, xw, yh]); + } + ctx.closePath(); + break; + case _util.OPS.moveTo: + x = args[j++]; + y = args[j++]; + ctx.moveTo(x, y); + if (!isScalingMatrix) { + current.updatePathMinMax(currentTransform, x, y); + } + break; + case _util.OPS.lineTo: + x = args[j++]; + y = args[j++]; + ctx.lineTo(x, y); + if (!isScalingMatrix) { + current.updatePathMinMax(currentTransform, x, y); + } + break; + case _util.OPS.curveTo: + startX = x; + startY = y; + x = args[j + 4]; + y = args[j + 5]; + ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y); + current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier); + j += 6; + break; + case _util.OPS.curveTo2: + startX = x; + startY = y; + ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]); + current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier); + x = args[j + 2]; + y = args[j + 3]; + j += 4; + break; + case _util.OPS.curveTo3: + startX = x; + startY = y; + x = args[j + 2]; + y = args[j + 3]; + ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y); + current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier); + j += 4; + break; + case _util.OPS.closePath: + ctx.closePath(); + break; + } + } + if (isScalingMatrix) { + current.updateScalingPathMinMax(currentTransform, minMaxForBezier); + } + current.setCurrentPoint(x, y); + } + closePath() { + this.ctx.closePath(); + } + stroke(consumePath = true) { + const ctx = this.ctx; + const strokeColor = this.current.strokeColor; + ctx.globalAlpha = this.current.strokeAlpha; + if (this.contentVisible) { + if (typeof strokeColor === "object" && strokeColor?.getPattern) { + ctx.save(); + ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE); + this.rescaleAndStroke(false); + ctx.restore(); + } else { + this.rescaleAndStroke(true); + } + } + if (consumePath) { + this.consumePath(this.current.getClippedPathBoundingBox()); + } + ctx.globalAlpha = this.current.fillAlpha; + } + closeStroke() { + this.closePath(); + this.stroke(); + } + fill(consumePath = true) { + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + let needRestore = false; + if (isPatternFill) { + ctx.save(); + ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL); + needRestore = true; + } + const intersect = this.current.getClippedPathBoundingBox(); + if (this.contentVisible && intersect !== null) { + if (this.pendingEOFill) { + ctx.fill("evenodd"); + this.pendingEOFill = false; + } else { + ctx.fill(); + } + } + if (needRestore) { + ctx.restore(); + } + if (consumePath) { + this.consumePath(intersect); + } + } + eoFill() { + this.pendingEOFill = true; + this.fill(); + } + fillStroke() { + this.fill(false); + this.stroke(false); + this.consumePath(); + } + eoFillStroke() { + this.pendingEOFill = true; + this.fillStroke(); + } + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } + closeEOFillStroke() { + this.pendingEOFill = true; + this.closePath(); + this.fillStroke(); + } + endPath() { + this.consumePath(); + } + clip() { + this.pendingClip = NORMAL_CLIP; + } + eoClip() { + this.pendingClip = EO_CLIP; + } + 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() { + const paths = this.pendingTextPaths; + const ctx = this.ctx; + if (paths === undefined) { + ctx.beginPath(); + return; + } + ctx.save(); + ctx.beginPath(); + for (const path of paths) { + ctx.setTransform(...path.transform); + ctx.translate(path.x, path.y); + path.addToPath(ctx, path.fontSize); + } + ctx.restore(); + ctx.clip(); + ctx.beginPath(); + delete this.pendingTextPaths; + } + setCharSpacing(spacing) { + this.current.charSpacing = spacing; + } + setWordSpacing(spacing) { + this.current.wordSpacing = spacing; + } + setHScale(scale) { + this.current.textHScale = scale / 100; + } + setLeading(leading) { + this.current.leading = -leading; + } + setFont(fontRefName, size) { + const fontObj = this.commonObjs.get(fontRefName); + const current = this.current; + if (!fontObj) { + throw new Error(`Can't find font for ${fontRefName}`); + } + 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); + } + if (size < 0) { + size = -size; + current.fontDirection = -1; + } else { + current.fontDirection = 1; + } + this.current.font = fontObj; + this.current.fontSize = size; + if (fontObj.isType3Font) { + return; + } + const name = fontObj.loadedName || "sans-serif"; + const typeface = fontObj.systemFontInfo?.css || `"${name}", ${fontObj.fallbackName}`; + let bold = "normal"; + if (fontObj.black) { + bold = "900"; + } else if (fontObj.bold) { + bold = "bold"; + } + const italic = fontObj.italic ? "italic" : "normal"; + 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 = `${italic} ${bold} ${browserFontSize}px ${typeface}`; + } + setTextRenderingMode(mode) { + this.current.textRenderingMode = mode; + } + setTextRise(rise) { + this.current.textRise = rise; + } + moveText(x, y) { + this.current.x = this.current.lineX += x; + this.current.y = this.current.lineY += y; + } + setLeadingMoveText(x, y) { + this.setLeading(-y); + this.moveText(x, y); + } + setTextMatrix(a, b, c, d, e, f) { + this.current.textMatrix = [a, b, c, d, e, f]; + this.current.textMatrixScale = Math.hypot(a, b); + this.current.x = this.current.lineX = 0; + this.current.y = this.current.lineY = 0; + } + nextLine() { + this.moveText(0, this.current.leading); + } + paintChar(character, x, y, patternTransform) { + 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); + } + if (font.disableFontFace || patternFill) { + ctx.save(); + ctx.translate(x, y); + ctx.beginPath(); + addToPath(ctx, fontSize); + if (patternTransform) { + ctx.setTransform(...patternTransform); + } + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fill(); + } + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.stroke(); + } + ctx.restore(); + } else { + if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.fillText(character, x, y); + } + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + ctx.strokeText(character, x, y); + } + } + if (isAddToPathSet) { + const paths = this.pendingTextPaths ||= []; + paths.push({ + transform: (0, _display_utils.getCurrentTransform)(ctx), + x, + y, + fontSize, + addToPath + }); + } + } + get isFontSubpixelAAEnabled() { + const { + context: ctx + } = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); + ctx.scale(1.5, 1); + ctx.fillText("I", 0, 10); + const data = ctx.getImageData(0, 0, 10, 10).data; + let enabled = false; + 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); + } + showText(glyphs) { + const current = this.current; + const font = current.font; + if (font.isType3Font) { + return this.showType3Text(glyphs); + } + const fontSize = current.fontSize; + if (fontSize === 0) { + return undefined; + } + 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(); + ctx.transform(...current.textMatrix); + ctx.translate(current.x, current.y + current.textRise); + if (fontDirection > 0) { + ctx.scale(textHScale, -1); + } else { + ctx.scale(textHScale, 1); + } + let patternTransform; + if (current.patternFill) { + ctx.save(); + const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL); + patternTransform = (0, _display_utils.getCurrentTransform)(ctx); + ctx.restore(); + ctx.fillStyle = pattern; + } + let lineWidth = current.lineWidth; + const scale = current.textMatrixScale; + if (scale === 0 || lineWidth === 0) { + const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK; + if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) { + lineWidth = this.getSinglePixelWidth(); + } + } else { + lineWidth /= scale; + } + if (fontSizeScale !== 1.0) { + ctx.scale(fontSizeScale, fontSizeScale); + lineWidth /= fontSizeScale; + } + ctx.lineWidth = lineWidth; + if (font.isInvalidPDFjsFont) { + const chars = []; + let width = 0; + for (const glyph of glyphs) { + chars.push(glyph.unicode); + width += glyph.width; + } + ctx.fillText(chars.join(""), 0, 0); + current.x += width * widthAdvanceScale * textHScale; + ctx.restore(); + this.compose(); + return undefined; + } + let x = 0, + i; + for (i = 0; i < glyphsLength; ++i) { + const glyph = glyphs[i]; + if (typeof glyph === "number") { + x += spacingDir * glyph * fontSize / 1000; + continue; + } + 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) { + 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; + } else { + scaledX = x / fontSizeScale; + scaledY = 0; + } + if (font.remeasure && width > 0) { + const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale; + if (width < measuredWidth && this.isFontSubpixelAAEnabled) { + const characterScaleX = width / measuredWidth; + restoreNeeded = true; + ctx.save(); + ctx.scale(characterScaleX, 1); + scaledX /= characterScaleX; + } else if (width !== measuredWidth) { + scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale; + } + } + if (this.contentVisible && (glyph.isInFont || font.missingFile)) { + if (simpleFillText && !accent) { + ctx.fillText(character, scaledX, scaledY); + } else { + this.paintChar(character, scaledX, scaledY, patternTransform); + if (accent) { + const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale; + const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale; + this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform); + } + } + } + const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : width * widthAdvanceScale + spacing * fontDirection; + x += charWidth; + if (restoreNeeded) { + ctx.restore(); + } + } + if (vertical) { + current.y -= x; + } else { + current.x += x * textHScale; + } + ctx.restore(); + this.compose(); + 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; + } + this._cachedScaleForStroking[0] = -1; + this._cachedGetSinglePixelWidth = null; + ctx.save(); + ctx.transform(...current.textMatrix); + ctx.translate(current.x, current.y); + ctx.scale(textHScale, fontDirection); + for (i = 0; i < glyphsLength; ++i) { + glyph = glyphs[i]; + if (typeof glyph === "number") { + spacingLength = spacingDir * glyph * fontSize / 1000; + this.ctx.translate(spacingLength, 0); + current.x += spacingLength * textHScale; + continue; + } + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const operatorList = font.charProcOperatorList[glyph.operatorListId]; + if (!operatorList) { + (0, _util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`); + continue; + } + if (this.contentVisible) { + this.processingType3 = glyph; + this.save(); + ctx.scale(fontSize, fontSize); + ctx.transform(...fontMatrix); + this.executeOperatorList(operatorList); + this.restore(); + } + const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix); + width = transformed[0] * fontSize + spacing; + ctx.translate(width, 0); + current.x += width * textHScale; + } + ctx.restore(); + this.processingType3 = null; + } + setCharWidth(xWidth, yWidth) {} + setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) { + this.ctx.rect(llx, lly, urx - llx, ury - lly); + this.ctx.clip(); + this.endPath(); + } + getColorN_Pattern(IR) { + let pattern; + if (IR[0] === "TilingPattern") { + const color = IR[1]; + const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx); + const canvasGraphicsFactory = { + createCanvasGraphics: ctx => { + return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.filterFactory, { + optionalContentConfig: this.optionalContentConfig, + markedContentStack: this.markedContentStack + }); + } + }; + pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform); + } else { + pattern = this._getPattern(IR[1], IR[2]); + } + return pattern; + } + setStrokeColorN() { + this.current.strokeColor = this.getColorN_Pattern(arguments); + } + setFillColorN() { + this.current.fillColor = this.getColorN_Pattern(arguments); + this.current.patternFill = true; + } + setStrokeRGBColor(r, g, b) { + const color = _util.Util.makeHexColor(r, g, b); + this.ctx.strokeStyle = color; + this.current.strokeColor = color; + } + setFillRGBColor(r, g, b) { + const color = _util.Util.makeHexColor(r, g, b); + this.ctx.fillStyle = color; + this.current.fillColor = color; + this.current.patternFill = false; + } + _getPattern(objId, matrix = null) { + let pattern; + if (this.cachedPatterns.has(objId)) { + pattern = this.cachedPatterns.get(objId); + } else { + pattern = (0, _pattern_helper.getShadingPattern)(this.getObject(objId)); + this.cachedPatterns.set(objId, pattern); + } + if (matrix) { + pattern.matrix = matrix; + } + return pattern; + } + shadingFill(objId) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + this.save(); + const pattern = this._getPattern(objId); + ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING); + const inv = (0, _display_utils.getCurrentTransformInverse)(ctx); + if (inv) { + const { + width, + height + } = ctx.canvas; + const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv); + this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0); + } else { + this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); + } + this.compose(this.current.getClippedPathBoundingBox()); + this.restore(); + } + 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); + if (Array.isArray(matrix) && matrix.length === 6) { + this.transform(...matrix); + } + this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx); + if (bbox) { + const width = bbox[2] - bbox[0]; + const height = bbox[3] - bbox[1]; + this.ctx.rect(bbox[0], bbox[1], width, height); + this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox); + this.clip(); + this.endPath(); + } + } + paintFormXObjectEnd() { + if (!this.contentVisible) { + return; + } + this.restore(); + this.baseTransform = this.baseTransformStack.pop(); + } + beginGroup(group) { + if (!this.contentVisible) { + return; + } + this.save(); + if (this.inSMaskMode) { + this.endSMaskMode(); + this.current.activeSMask = null; + } + const currentCtx = this.ctx; + if (!group.isolated) { + (0, _util.info)("TODO: Support non-isolated groups."); + } + if (group.knockout) { + (0, _util.warn)("Knockout groups not supported."); + } + const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx); + if (group.matrix) { + currentCtx.transform(...group.matrix); + } + if (!group.bbox) { + throw new Error("Bounding box is required."); + } + let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx)); + const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height]; + bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0]; + 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) { + scaleX = drawnWidth / MAX_GROUP_SIZE; + drawnWidth = MAX_GROUP_SIZE; + } + if (drawnHeight > MAX_GROUP_SIZE) { + scaleY = drawnHeight / MAX_GROUP_SIZE; + drawnHeight = MAX_GROUP_SIZE; + } + this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]); + let cacheId = "groupAt" + this.groupLevel; + if (group.smask) { + cacheId += "_smask_" + this.smaskCounter++ % 2; + } + const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight); + const groupCtx = scratchCanvas.context; + groupCtx.scale(1 / scaleX, 1 / scaleY); + groupCtx.translate(-offsetX, -offsetY); + groupCtx.transform(...currentTransform); + if (group.smask) { + this.smaskStack.push({ + canvas: scratchCanvas.canvas, + context: groupCtx, + offsetX, + offsetY, + scaleX, + scaleY, + subtype: group.smask.subtype, + backdrop: group.smask.backdrop, + transferMap: group.smask.transferMap || null, + startTransformInverse: null + }); + } else { + currentCtx.setTransform(1, 0, 0, 1, 0, 0); + currentCtx.translate(offsetX, offsetY); + currentCtx.scale(scaleX, scaleY); + currentCtx.save(); + } + copyCtxState(currentCtx, groupCtx); + this.ctx = groupCtx; + this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); + this.groupStack.push(currentCtx); + this.groupLevel++; + } + endGroup(group) { + if (!this.contentVisible) { + return; + } + this.groupLevel--; + const groupCtx = this.ctx; + const ctx = this.groupStack.pop(); + this.ctx = ctx; + this.ctx.imageSmoothingEnabled = false; + if (group.smask) { + this.tempSMask = this.smaskStack.pop(); + this.restore(); + } else { + this.ctx.restore(); + const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx); + this.restore(); + this.ctx.save(); + this.ctx.setTransform(...currentMtx); + const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx); + this.ctx.drawImage(groupCtx.canvas, 0, 0); + this.ctx.restore(); + this.compose(dirtyBox); + } + } + beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) { + this.#restoreInitialState(); + resetCtxToDefault(this.ctx); + this.ctx.save(); + this.save(); + if (this.baseTransform) { + this.ctx.setTransform(...this.baseTransform); + } + if (Array.isArray(rect) && rect.length === 4) { + const width = rect[2] - rect[0]; + const height = rect[3] - rect[1]; + if (hasOwnCanvas && this.annotationCanvasMap) { + transform = transform.slice(); + transform[4] -= rect[0]; + transform[5] -= rect[1]; + rect = rect.slice(); + rect[0] = rect[1] = 0; + rect[2] = width; + rect[3] = height; + const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx)); + const { + viewportScale + } = this; + const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale); + const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale); + this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight); + const { + canvas, + context + } = this.annotationCanvas; + this.annotationCanvasMap.set(id, canvas); + this.annotationCanvas.savedCtx = this.ctx; + this.ctx = context; + this.ctx.save(); + this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY); + resetCtxToDefault(this.ctx); + } else { + resetCtxToDefault(this.ctx); + this.ctx.rect(rect[0], rect[1], width, height); + this.ctx.clip(); + this.endPath(); + } + } + this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height); + this.transform(...transform); + this.transform(...matrix); + } + endAnnotation() { + if (this.annotationCanvas) { + this.ctx.restore(); + this.#drawFilter(); + this.ctx = this.annotationCanvas.savedCtx; + delete this.annotationCanvas.savedCtx; + delete this.annotationCanvas; + } + } + paintImageMaskXObject(img) { + if (!this.contentVisible) { + return; + } + const count = img.count; + img = this.getObject(img.data, img); + img.count = count; + const ctx = this.ctx; + const glyph = this.processingType3; + if (glyph) { + if (glyph.compiled === undefined) { + glyph.compiled = compileType3Glyph(img); + } + if (glyph.compiled) { + glyph.compiled(ctx); + return; + } + } + const mask = this._createMaskCanvas(img); + const maskCanvas = mask.canvas; + ctx.save(); + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY); + ctx.restore(); + this.compose(); + } + paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) { + if (!this.contentVisible) { + return; + } + img = this.getObject(img.data, img); + const ctx = this.ctx; + ctx.save(); + const currentTransform = (0, _display_utils.getCurrentTransform)(ctx); + ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0); + const mask = this._createMaskCanvas(img); + ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]); + for (let i = 0, ii = positions.length; i < ii; i += 2) { + const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]); + const [x, y] = _util.Util.applyTransform([0, 0], trans); + ctx.drawImage(mask.canvas, x, y); + } + ctx.restore(); + this.compose(); + } + paintImageMaskXObjectGroup(images) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + const fillColor = this.current.fillColor; + const isPatternFill = this.current.patternFill; + for (const image of images) { + const { + data, + width, + height, + transform + } = image; + const maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height); + const maskCtx = maskCanvas.context; + maskCtx.save(); + const img = this.getObject(data, image); + putBinaryImageMask(maskCtx, img); + maskCtx.globalCompositeOperation = "source-in"; + maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor; + maskCtx.fillRect(0, 0, width, height); + maskCtx.restore(); + ctx.save(); + ctx.transform(...transform); + ctx.scale(1, -1); + drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1); + ctx.restore(); + } + this.compose(); + } + paintImageXObject(objId) { + if (!this.contentVisible) { + return; + } + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)("Dependent image isn't ready yet"); + return; + } + this.paintInlineImageXObject(imgData); + } + paintImageXObjectRepeat(objId, scaleX, scaleY, positions) { + if (!this.contentVisible) { + return; + } + const imgData = this.getObject(objId); + 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, + y: 0, + w: width, + h: height + }); + } + this.paintInlineImageXObjectGroup(imgData, map); + } + applyTransferMapsToCanvas(ctx) { + if (this.current.transferMaps !== "none") { + ctx.filter = this.current.transferMaps; + ctx.drawImage(ctx.canvas, 0, 0); + ctx.filter = "none"; + } + return ctx.canvas; + } + applyTransferMapsToBitmap(imgData) { + if (this.current.transferMaps === "none") { + return imgData.bitmap; + } + const { + bitmap, + width, + height + } = imgData; + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); + const tmpCtx = tmpCanvas.context; + tmpCtx.filter = this.current.transferMaps; + tmpCtx.drawImage(bitmap, 0, 0); + tmpCtx.filter = "none"; + return tmpCanvas.canvas; + } + paintInlineImageXObject(imgData) { + if (!this.contentVisible) { + return; + } + const width = imgData.width; + const height = imgData.height; + const ctx = this.ctx; + this.save(); + if (!_util.isNodeJS) { + const { + filter + } = ctx; + if (filter !== "none" && filter !== "") { + ctx.filter = "none"; + } + } + ctx.scale(1 / width, -1 / height); + let imgToPaint; + if (imgData.bitmap) { + imgToPaint = this.applyTransferMapsToBitmap(imgData); + } else if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) { + imgToPaint = imgData; + } else { + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + imgToPaint = this.applyTransferMapsToCanvas(tmpCtx); + } + const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx)); + ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate); + drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height); + this.compose(); + this.restore(); + } + paintInlineImageXObjectGroup(imgData, map) { + if (!this.contentVisible) { + return; + } + const ctx = this.ctx; + let imgToPaint; + if (imgData.bitmap) { + imgToPaint = imgData.bitmap; + } else { + const w = imgData.width; + const h = imgData.height; + const tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h); + const tmpCtx = tmpCanvas.context; + putBinaryImageData(tmpCtx, imgData); + imgToPaint = this.applyTransferMapsToCanvas(tmpCtx); + } + for (const entry of map) { + ctx.save(); + ctx.transform(...entry.transform); + ctx.scale(1, -1); + drawImageAtIntegerCoords(ctx, imgToPaint, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1); + ctx.restore(); + } + this.compose(); + } + paintSolidColorImageMask() { + if (!this.contentVisible) { + return; + } + this.ctx.fillRect(0, 0, 1, 1); + this.compose(); + } + 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(clipBox) { + const isEmpty = this.current.isEmptyClip(); + if (this.pendingClip) { + this.current.updateClipFromPath(); + } + if (!this.pendingClip) { + this.compose(clipBox); + } + const ctx = this.ctx; + if (this.pendingClip) { + if (!isEmpty) { + if (this.pendingClip === EO_CLIP) { + ctx.clip("evenodd"); + } else { + ctx.clip(); + } + } + this.pendingClip = null; + } + this.current.startNewPathAndClipBox(this.current.clipBox); + ctx.beginPath(); + } + getSinglePixelWidth() { + if (!this._cachedGetSinglePixelWidth) { + const m = (0, _display_utils.getCurrentTransform)(this.ctx); + if (m[1] === 0 && m[2] === 0) { + this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3])); + } else { + const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]); + const normX = Math.hypot(m[0], m[2]); + const normY = Math.hypot(m[1], m[3]); + this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet; + } + } + return this._cachedGetSinglePixelWidth; + } + getScaleForStroking() { + if (this._cachedScaleForStroking[0] === -1) { + const { + lineWidth + } = this.current; + const { + a, + b, + c, + d + } = this.ctx.getTransform(); + let scaleX, scaleY; + if (b === 0 && c === 0) { + const normX = Math.abs(a); + const normY = Math.abs(d); + if (normX === normY) { + if (lineWidth === 0) { + scaleX = scaleY = 1 / normX; + } else { + const scaledLineWidth = normX * lineWidth; + scaleX = scaleY = scaledLineWidth < 1 ? 1 / scaledLineWidth : 1; + } + } else if (lineWidth === 0) { + scaleX = 1 / normX; + scaleY = 1 / normY; + } else { + const scaledXLineWidth = normX * lineWidth; + const scaledYLineWidth = normY * lineWidth; + scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1; + scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1; + } + } else { + const absDet = Math.abs(a * d - b * c); + const normX = Math.hypot(a, b); + const normY = Math.hypot(c, d); + if (lineWidth === 0) { + scaleX = normY / absDet; + scaleY = normX / absDet; + } else { + const baseArea = lineWidth * absDet; + scaleX = normY > baseArea ? normY / baseArea : 1; + scaleY = normX > baseArea ? normX / baseArea : 1; + } + } + this._cachedScaleForStroking[0] = scaleX; + this._cachedScaleForStroking[1] = scaleY; + } + return this._cachedScaleForStroking; + } + rescaleAndStroke(saveRestore) { + const { + ctx + } = this; + const { + lineWidth + } = this.current; + const [scaleX, scaleY] = this.getScaleForStroking(); + ctx.lineWidth = lineWidth || 1; + if (scaleX === 1 && scaleY === 1) { + ctx.stroke(); + return; + } + const dashes = ctx.getLineDash(); + if (saveRestore) { + ctx.save(); + } + ctx.scale(scaleX, scaleY); + if (dashes.length > 0) { + const scale = Math.max(scaleX, scaleY); + ctx.setLineDash(dashes.map(x => x / scale)); + ctx.lineDashOffset /= scale; + } + ctx.stroke(); + if (saveRestore) { + ctx.restore(); + } + } + isContentVisible() { + for (let i = this.markedContentStack.length - 1; i >= 0; i--) { + if (!this.markedContentStack[i].visible) { + return false; + } + } + return true; + } +} +exports.CanvasGraphics = CanvasGraphics; +for (const op in _util.OPS) { + if (CanvasGraphics.prototype[op] !== undefined) { + CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op]; + } +} + +/***/ }), +/* 12 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TilingPattern = exports.PathType = void 0; +exports.getShadingPattern = getShadingPattern; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(6); +const PathType = { + FILL: "Fill", + STROKE: "Stroke", + SHADING: "Shading" +}; +exports.PathType = PathType; +function applyBoundingBox(ctx, bbox) { + if (!bbox) { + 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 = null; + } + _createGradient(ctx) { + let grad; + if (this._type === "axial") { + grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]); + } else if (this._type === "radial") { + grad = ctx.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]); + } + return grad; + } + getPattern(ctx, owner, inverse, pathType) { + let pattern; + if (pathType === PathType.STROKE || pathType === PathType.FILL) { + const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0]; + const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1; + const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1; + const tmpCanvas = owner.cachedCanvases.getCanvas("pattern", width, 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); + tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]); + inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]); + tmpCtx.transform(...owner.baseTransform); + if (this.matrix) { + tmpCtx.transform(...this.matrix); + } + applyBoundingBox(tmpCtx, this._bbox); + tmpCtx.fillStyle = this._createGradient(tmpCtx); + tmpCtx.fill(); + pattern = ctx.createPattern(tmpCanvas.canvas, "no-repeat"); + const domMatrix = new DOMMatrix(inverse); + pattern.setTransform(domMatrix); + } else { + applyBoundingBox(ctx, this._bbox); + pattern = this._createGradient(ctx); + } + return pattern; + } +} +function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) { + const coords = context.coords, + colors = context.colors; + const bytes = data.data, + rowSize = data.width * 4; + let 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[p1 + 1] > coords[p2 + 1]) { + tmp = p1; + p1 = p2; + p2 = tmp; + tmp = c1; + c1 = c2; + c2 = tmp; + } + 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; + } + const c1r = colors[c1], + c1g = colors[c1 + 1], + c1b = colors[c1 + 2]; + const c2r = colors[c2], + c2g = colors[c2 + 1], + c2b = colors[c2 + 2]; + const c3r = colors[c3], + c3g = colors[c3 + 1], + c3b = colors[c3 + 2]; + const minY = Math.round(y1), + maxY = Math.round(y3); + let xa, car, cag, cab; + let xb, cbr, cbg, cbb; + for (let y = minY; y <= maxY; y++) { + if (y < y2) { + const k = y < y1 ? 0 : (y1 - y) / (y1 - y2); + xa = x1 - (x1 - x2) * k; + car = c1r - (c1r - c2r) * k; + cag = c1g - (c1g - c2g) * k; + cab = c1b - (c1b - c2b) * k; + } else { + let k; + 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) { + const ps = figure.coords; + const cs = figure.colors; + let i, ii; + 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++) { + let q = i * 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; + 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; + 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._bbox = IR[7]; + this._background = IR[8]; + this.matrix = null; + } + _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 + }; + 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 (backgroundColor) { + const bytes = data.data; + 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 (const figure of this._figures) { + drawFigure(data, figure, context); + } + tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE); + const canvas = tmpCanvas.canvas; + return { + canvas, + offsetX: offsetX - BORDER_SIZE * scaleX, + offsetY: offsetY - BORDER_SIZE * scaleY, + scaleX, + scaleY + }; + } + getPattern(ctx, owner, inverse, pathType) { + applyBoundingBox(ctx, this._bbox); + let scale; + if (pathType === PathType.SHADING) { + scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx)); + } else { + scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform); + if (this.matrix) { + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]]; + } + } + const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases); + if (pathType !== PathType.SHADING) { + ctx.setTransform(...owner.baseTransform); + if (this.matrix) { + ctx.transform(...this.matrix); + } + } + ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY); + return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat"); + } +} +class DummyShadingPattern extends BaseShadingPattern { + getPattern() { + return "hotpink"; + } +} +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 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]; + this.xstep = IR[5]; + this.ystep = IR[6]; + this.paintType = IR[7]; + this.tilingType = IR[8]; + this.color = color; + this.ctx = ctx; + this.canvasGraphicsFactory = canvasGraphicsFactory; + this.baseTransform = baseTransform; + } + 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]; + const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix); + const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform); + 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); + let adjustedX0 = x0; + let adjustedY0 = y0; + let adjustedX1 = x1; + let adjustedY1 = y1; + if (x0 < 0) { + adjustedX0 = 0; + adjustedX1 += Math.abs(x0); + } + if (y0 < 0) { + adjustedY0 = 0; + adjustedY1 += Math.abs(y0); + } + tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0)); + graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0); + tmpCtx.save(); + this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1); + graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx); + graphics.executeOperatorList(operatorList); + graphics.endDrawing(); + return { + canvas: tmpCanvas.canvas, + scaleX: dimx.scale, + scaleY: dimy.scale, + offsetX: adjustedX0, + offsetY: adjustedY0 + }; + } + getSizeAndScale(step, realOutputSize, scale) { + step = Math.abs(step); + const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize); + let size = Math.ceil(step * scale); + if (size >= maxSize) { + size = maxSize; + } else { + scale = size / step; + } + return { + scale, + size + }; + } + clipBbox(graphics, x0, y0, x1, y1) { + const bboxWidth = x1 - x0; + const bboxHeight = y1 - y0; + graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight); + graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]); + graphics.clip(); + graphics.endPath(); + } + setFillAndStrokeStyleToContext(graphics, paintType, color) { + const context = graphics.ctx, + current = graphics.current; + 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: + const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]); + context.fillStyle = cssColor; + context.strokeStyle = cssColor; + current.fillColor = cssColor; + current.strokeColor = cssColor; + break; + default: + throw new _util.FormatError(`Unsupported paint type: ${paintType}`); + } + } + getPattern(ctx, owner, inverse, pathType) { + let matrix = inverse; + if (pathType !== PathType.SHADING) { + matrix = _util.Util.transform(matrix, owner.baseTransform); + if (this.matrix) { + matrix = _util.Util.transform(matrix, this.matrix); + } + } + const temporaryPatternCanvas = this.createPatternCanvas(owner); + let domMatrix = new DOMMatrix(matrix); + domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY); + domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY); + const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, "repeat"); + pattern.setTransform(domMatrix); + return pattern; + } +} +exports.TilingPattern = TilingPattern; + +/***/ }), +/* 13 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.convertBlackAndWhiteToRGBA = convertBlackAndWhiteToRGBA; +exports.convertToRGBA = convertToRGBA; +exports.grayToRGBA = grayToRGBA; +var _util = __w_pdfjs_require__(1); +function convertToRGBA(params) { + switch (params.kind) { + case _util.ImageKind.GRAYSCALE_1BPP: + return convertBlackAndWhiteToRGBA(params); + case _util.ImageKind.RGB_24BPP: + return convertRGBToRGBA(params); + } + return null; +} +function convertBlackAndWhiteToRGBA({ + src, + srcPos = 0, + dest, + width, + height, + nonBlackColor = 0xffffffff, + inverseDecode = false +}) { + const black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff; + const [zeroMapping, oneMapping] = inverseDecode ? [nonBlackColor, black] : [black, nonBlackColor]; + const widthInSource = width >> 3; + const widthRemainder = width & 7; + const srcLength = src.length; + dest = new Uint32Array(dest.buffer); + let destPos = 0; + for (let i = 0; i < height; i++) { + for (const max = srcPos + widthInSource; srcPos < max; srcPos++) { + const elem = srcPos < srcLength ? src[srcPos] : 255; + dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping; + dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping; + } + if (widthRemainder === 0) { + continue; + } + const elem = srcPos < srcLength ? src[srcPos++] : 255; + for (let j = 0; j < widthRemainder; j++) { + dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping; + } + } + return { + srcPos, + destPos + }; +} +function convertRGBToRGBA({ + src, + srcPos = 0, + dest, + destPos = 0, + width, + height +}) { + let i = 0; + const len32 = src.length >> 2; + const src32 = new Uint32Array(src.buffer, srcPos, len32); + if (_util.FeatureTest.isLittleEndian) { + for (; i < len32 - 2; i += 3, destPos += 4) { + const s1 = src32[i]; + const s2 = src32[i + 1]; + const s3 = src32[i + 2]; + dest[destPos] = s1 | 0xff000000; + dest[destPos + 1] = s1 >>> 24 | s2 << 8 | 0xff000000; + dest[destPos + 2] = s2 >>> 16 | s3 << 16 | 0xff000000; + dest[destPos + 3] = s3 >>> 8 | 0xff000000; + } + for (let j = i * 4, jj = src.length; j < jj; j += 3) { + dest[destPos++] = src[j] | src[j + 1] << 8 | src[j + 2] << 16 | 0xff000000; + } + } else { + for (; i < len32 - 2; i += 3, destPos += 4) { + const s1 = src32[i]; + const s2 = src32[i + 1]; + const s3 = src32[i + 2]; + dest[destPos] = s1 | 0xff; + dest[destPos + 1] = s1 << 24 | s2 >>> 8 | 0xff; + dest[destPos + 2] = s2 << 16 | s3 >>> 16 | 0xff; + dest[destPos + 3] = s3 << 8 | 0xff; + } + for (let j = i * 4, jj = src.length; j < jj; j += 3) { + dest[destPos++] = src[j] << 24 | src[j + 1] << 16 | src[j + 2] << 8 | 0xff; + } + } + return { + srcPos, + destPos + }; +} +function grayToRGBA(src, dest) { + if (_util.FeatureTest.isLittleEndian) { + for (let i = 0, ii = src.length; i < ii; i++) { + dest[i] = src[i] * 0x10101 | 0xff000000; + } + } else { + for (let i = 0, ii = src.length; i < ii; i++) { + dest[i] = src[i] * 0x1010100 | 0x000000ff; + } + } +} + +/***/ }), +/* 14 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GlobalWorkerOptions = void 0; +const GlobalWorkerOptions = Object.create(null); +exports.GlobalWorkerOptions = GlobalWorkerOptions; +GlobalWorkerOptions.workerPort = null; +GlobalWorkerOptions.workerSrc = ""; + +/***/ }), +/* 15 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.MessageHandler = void 0; +var _util = __w_pdfjs_require__(1); +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 (!(reason instanceof Error || typeof reason === "object" && reason !== null)) { + (0, _util.unreachable)('wrapReason: Expected "reason" to be a (possibly cloned) Error.'); + } + switch (reason.name) { + case "AbortException": + return new _util.AbortException(reason.message); + case "MissingPDFException": + return new _util.MissingPDFException(reason.message); + case "PasswordException": + return new _util.PasswordException(reason.message, reason.code); + case "UnexpectedResponseException": + return new _util.UnexpectedResponseException(reason.message, reason.status); + case "UnknownErrorException": + return new _util.UnknownErrorException(reason.message, reason.details); + default: + return new _util.UnknownErrorException(reason.message, reason.toString()); + } +} +class MessageHandler { + constructor(sourceName, targetName, comObj) { + this.sourceName = sourceName; + this.targetName = targetName; + this.comObj = comObj; + this.callbackId = 1; + this.streamId = 1; + this.streamSinks = Object.create(null); + this.streamControllers = Object.create(null); + this.callbackCapabilities = Object.create(null); + this.actionHandler = Object.create(null); + this._onComObjOnMessage = event => { + const data = event.data; + 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}`); + } + if (data.callbackId) { + const cbSourceName = this.sourceName; + const cbTargetName = data.sourceName; + new Promise(function (resolve) { + resolve(action(data.data)); + }).then(function (result) { + comObj.postMessage({ + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.DATA, + callbackId: data.callbackId, + data: result + }); + }, function (reason) { + comObj.postMessage({ + sourceName: cbSourceName, + targetName: cbTargetName, + callback: CallbackKind.ERROR, + callbackId: data.callbackId, + reason: wrapReason(reason) + }); + }); + return; + } + if (data.streamId) { + this.#createStreamSink(data); + 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 "${actionName}"`); + } + ah[actionName] = handler; + } + send(actionName, data, transfers) { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + data + }, transfers); + } + sendWithPromise(actionName, data, transfers) { + const callbackId = this.callbackId++; + const capability = new _util.PromiseCapability(); + this.callbackCapabilities[callbackId] = capability; + try { + this.comObj.postMessage({ + sourceName: this.sourceName, + targetName: this.targetName, + action: actionName, + callbackId, + data + }, transfers); + } catch (ex) { + capability.reject(ex); + } + return capability.promise; + } + sendWithStream(actionName, data, queueingStrategy, transfers) { + const streamId = this.streamId++, + sourceName = this.sourceName, + targetName = this.targetName, + comObj = this.comObj; + return new ReadableStream({ + start: controller => { + const startCapability = new _util.PromiseCapability(); + this.streamControllers[streamId] = { + controller, + startCall: startCapability, + pullCall: null, + cancelCall: null, + isClosed: false + }; + comObj.postMessage({ + sourceName, + targetName, + action: actionName, + streamId, + data, + desiredSize: controller.desiredSize + }, transfers); + return startCapability.promise; + }, + pull: controller => { + const pullCapability = new _util.PromiseCapability(); + this.streamControllers[streamId].pullCall = pullCapability; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL, + streamId, + desiredSize: controller.desiredSize + }); + return pullCapability.promise; + }, + cancel: reason => { + (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason"); + const cancelCapability = new _util.PromiseCapability(); + 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(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const self = this, + action = this.actionHandler[data.action]; + const streamSink = { + enqueue(chunk, size = 1, transfers) { + if (this.isCancelled) { + return; + } + const lastDesiredSize = this.desiredSize; + this.desiredSize -= size; + if (lastDesiredSize > 0 && this.desiredSize <= 0) { + this.sinkCapability = new _util.PromiseCapability(); + this.ready = this.sinkCapability.promise; + } + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ENQUEUE, + streamId, + chunk + }, transfers); + }, + close() { + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CLOSE, + streamId + }); + delete self.streamSinks[streamId]; + }, + error(reason) { + (0, _util.assert)(reason instanceof Error, "error must have a valid reason"); + if (this.isCancelled) { + return; + } + this.isCancelled = true; + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.ERROR, + streamId, + reason: wrapReason(reason) + }); + }, + sinkCapability: new _util.PromiseCapability(), + onPull: null, + onCancel: null, + isCancelled: false, + desiredSize: data.desiredSize, + ready: null + }; + streamSink.sinkCapability.resolve(); + streamSink.ready = streamSink.sinkCapability.promise; + this.streamSinks[streamId] = streamSink; + new Promise(function (resolve) { + resolve(action(data.data, streamSink)); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.START_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + } + #processStreamMessage(data) { + const streamId = data.streamId, + sourceName = this.sourceName, + targetName = data.sourceName, + comObj = this.comObj; + const streamController = this.streamControllers[streamId], + streamSink = this.streamSinks[streamId]; + switch (data.stream) { + case StreamKind.START_COMPLETE: + if (data.success) { + streamController.startCall.resolve(); + } else { + streamController.startCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL_COMPLETE: + if (data.success) { + streamController.pullCall.resolve(); + } else { + streamController.pullCall.reject(wrapReason(data.reason)); + } + break; + case StreamKind.PULL: + if (!streamSink) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + break; + } + if (streamSink.desiredSize <= 0 && data.desiredSize > 0) { + streamSink.sinkCapability.resolve(); + } + streamSink.desiredSize = data.desiredSize; + new Promise(function (resolve) { + resolve(streamSink.onPull?.()); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.PULL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + break; + case StreamKind.ENQUEUE: + (0, _util.assert)(streamController, "enqueue should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.controller.enqueue(data.chunk); + break; + case StreamKind.CLOSE: + (0, _util.assert)(streamController, "close should have stream controller"); + if (streamController.isClosed) { + break; + } + streamController.isClosed = true; + streamController.controller.close(); + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.ERROR: + (0, _util.assert)(streamController, "error should have stream controller"); + streamController.controller.error(wrapReason(data.reason)); + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL_COMPLETE: + if (data.success) { + streamController.cancelCall.resolve(); + } else { + streamController.cancelCall.reject(wrapReason(data.reason)); + } + this.#deleteStreamController(streamController, streamId); + break; + case StreamKind.CANCEL: + if (!streamSink) { + break; + } + new Promise(function (resolve) { + resolve(streamSink.onCancel?.(wrapReason(data.reason))); + }).then(function () { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + success: true + }); + }, function (reason) { + comObj.postMessage({ + sourceName, + targetName, + stream: StreamKind.CANCEL_COMPLETE, + streamId, + reason: wrapReason(reason) + }); + }); + streamSink.sinkCapability.reject(wrapReason(data.reason)); + streamSink.isCancelled = true; + delete this.streamSinks[streamId]; + break; + default: + throw new Error("Unexpected stream case"); + } + } + async #deleteStreamController(streamController, streamId) { + await Promise.allSettled([streamController.startCall?.promise, streamController.pullCall?.promise, streamController.cancelCall?.promise]); + delete this.streamControllers[streamId]; + } + destroy() { + this.comObj.removeEventListener("message", this._onComObjOnMessage); + } +} +exports.MessageHandler = MessageHandler; + +/***/ }), +/* 16 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.Metadata = void 0; +var _util = __w_pdfjs_require__(1); +class Metadata { + #metadataMap; + #data; + constructor({ + parsedData, + rawData + }) { + this.#metadataMap = parsedData; + this.#data = rawData; + } + getRaw() { + return this.#data; + } + get(name) { + return this.#metadataMap.get(name) ?? null; + } + getAll() { + return (0, _util.objectFromMap)(this.#metadataMap); + } + has(name) { + return this.#metadataMap.has(name); + } +} +exports.Metadata = Metadata; + +/***/ }), +/* 17 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.OptionalContentConfig = void 0; +var _util = __w_pdfjs_require__(1); +var _murmurhash = __w_pdfjs_require__(8); +const INTERNAL = Symbol("INTERNAL"); +class OptionalContentGroup { + #visible = true; + constructor(name, intent) { + this.name = name; + this.intent = intent; + } + get visible() { + return this.#visible; + } + _setVisible(internal, visible) { + if (internal !== INTERNAL) { + (0, _util.unreachable)("Internal method `_setVisible` called."); + } + this.#visible = visible; + } +} +class OptionalContentConfig { + #cachedGetHash = null; + #groups = new Map(); + #initialHash = null; + #order = null; + constructor(data) { + this.name = null; + this.creator = null; + 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.values()) { + group._setVisible(INTERNAL, false); + } + } + for (const on of data.on) { + this.#groups.get(on)._setVisible(INTERNAL, true); + } + for (const off of data.off) { + this.#groups.get(off)._setVisible(INTERNAL, false); + } + this.#initialHash = this.getHash(); + } + #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 (this.#groups.size === 0) { + return true; + } + if (!group) { + (0, _util.warn)("Optional content group not defined."); + return true; + } + 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)._setVisible(INTERNAL, !!visible); + this.#cachedGetHash = null; + } + get hasInitialVisibility() { + return this.#initialHash === null || this.getHash() === this.#initialHash; + } + getOrder() { + if (!this.#groups.size) { + return null; + } + if (this.#order) { + return this.#order.slice(); + } + return [...this.#groups.keys()]; + } + getGroups() { + return this.#groups.size > 0 ? (0, _util.objectFromMap)(this.#groups) : null; + } + getGroup(id) { + return this.#groups.get(id) || null; + } + getHash() { + if (this.#cachedGetHash !== null) { + return this.#cachedGetHash; + } + const hash = new _murmurhash.MurmurHash3_64(); + for (const [id, group] of this.#groups) { + hash.update(`${id}:${group.visible}`); + } + return this.#cachedGetHash = hash.hexdigest(); + } +} +exports.OptionalContentConfig = OptionalContentConfig; + +/***/ }), +/* 18 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFDataTransportStream = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(6); +class PDFDataTransportStream { + constructor({ + length, + initialData, + progressiveDone = false, + contentDispositionFilename = null, + disableRange = false, + disableStream = false + }, pdfDataRangeTransport) { + (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); + this._queuedChunks = []; + this._progressiveDone = progressiveDone; + this._contentDispositionFilename = contentDispositionFilename; + if (initialData?.length > 0) { + const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer; + this._queuedChunks.push(buffer); + } + this._pdfDataRangeTransport = pdfDataRangeTransport; + this._isStreamingSupported = !disableStream; + this._isRangeSupported = !disableRange; + this._contentLength = length; + this._fullRequestReader = null; + this._rangeReaders = []; + this._pdfDataRangeTransport.addRangeListener((begin, chunk) => { + this._onReceiveData({ + begin, + chunk + }); + }); + this._pdfDataRangeTransport.addProgressListener((loaded, total) => { + this._onProgress({ + loaded, + total + }); + }); + this._pdfDataRangeTransport.addProgressiveReadListener(chunk => { + this._onReceiveData({ + chunk + }); + }); + this._pdfDataRangeTransport.addProgressiveDoneListener(() => { + this._onProgressiveDone(); + }); + this._pdfDataRangeTransport.transportReady(); + } + _onReceiveData({ + begin, + chunk + }) { + const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer; + if (begin === undefined) { + if (this._fullRequestReader) { + this._fullRequestReader._enqueue(buffer); + } else { + this._queuedChunks.push(buffer); + } + } else { + const found = this._rangeReaders.some(function (rangeReader) { + if (rangeReader._begin !== begin) { + return false; + } + rangeReader._enqueue(buffer); + return true; + }); + (0, _util.assert)(found, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found."); + } + } + get _progressiveDataLength() { + return this._fullRequestReader?._loaded ?? 0; + } + _onProgress(evt) { + if (evt.total === undefined) { + this._rangeReaders[0]?.onProgress?.({ + loaded: evt.loaded + }); + } else { + this._fullRequestReader?.onProgress?.({ + loaded: evt.loaded, + total: evt.total + }); + } + } + _onProgressiveDone() { + 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) { + this._fullRequestReader?.cancel(reason); + for (const reader of this._rangeReaders.slice(0)) { + reader.cancel(reason); + } + this._pdfDataRangeTransport.abort(); + } +} +exports.PDFDataTransportStream = PDFDataTransportStream; +class PDFDataTransportStreamReader { + constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) { + this._stream = stream; + this._done = progressiveDone || false; + this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null; + this._queuedChunks = queuedChunks || []; + this._loaded = 0; + for (const chunk of this._queuedChunks) { + this._loaded += chunk.byteLength; + } + this._requests = []; + this._headersReady = Promise.resolve(); + stream._fullRequestReader = this; + this.onProgress = null; + } + _enqueue(chunk) { + if (this._done) { + return; + } + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunks.push(chunk); + } + this._loaded += chunk.byteLength; + } + get headersReady() { + return this._headersReady; + } + get filename() { + return this._filename; + } + 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 = new _util.PromiseCapability(); + 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; + this._queuedChunk = null; + this._requests = []; + this._done = false; + this.onProgress = null; + } + _enqueue(chunk) { + if (this._done) { + return; + } + if (this._requests.length === 0) { + this._queuedChunk = chunk; + } else { + const requestsCapability = this._requests.shift(); + requestsCapability.resolve({ + value: chunk, + done: false + }); + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + } + this._done = true; + this._stream._removeRangeReader(this); + } + get isStreamingSupported() { + return false; + } + async read() { + if (this._queuedChunk) { + const chunk = this._queuedChunk; + this._queuedChunk = null; + return { + value: chunk, + done: false + }; + } + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = new _util.PromiseCapability(); + 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; + this._stream._removeRangeReader(this); + } +} + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFFetchStream = void 0; +var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(20); +; +function createFetchOptions(headers, withCredentials, abortController) { + return { + method: "GET", + headers, + signal: abortController.signal, + mode: "cors", + credentials: withCredentials ? "include" : "same-origin", + redirect: "follow" + }; +} +function createHeaders(httpHeaders) { + const headers = new Headers(); + for (const property in httpHeaders) { + const value = httpHeaders[property]; + if (value === undefined) { + continue; + } + headers.append(property, value); + } + return headers; +} +function getArrayBuffer(val) { + if (val instanceof Uint8Array) { + return val.buffer; + } + if (val instanceof ArrayBuffer) { + return val; + } + (0, _util.warn)(`getArrayBuffer - unexpected data format: ${val}`); + return new Uint8Array(val).buffer; +} +class PDFFetchStream { + constructor(source) { + this.source = source; + this.isHttp = /^https?:/i.test(source.url); + this.httpHeaders = this.isHttp && source.httpHeaders || {}; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + 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; + } + const reader = new PDFFetchStreamRangeReader(this, begin, end); + this._rangeRequestReaders.push(reader); + return reader; + } + cancelAllRequests(reason) { + this._fullRequestReader?.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +exports.PDFFetchStream = PDFFetchStream; +class PDFFetchStreamReader { + constructor(stream) { + this._stream = stream; + this._reader = null; + this._loaded = 0; + this._filename = null; + const source = stream.source; + this._withCredentials = source.withCredentials || false; + this._contentLength = source.length; + this._headersCapability = new _util.PromiseCapability(); + this._disableRange = source.disableRange || false; + this._rangeChunkSize = source.rangeChunkSize; + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + this._abortController = new AbortController(); + this._isStreamingSupported = !source.disableStream; + this._isRangeSupported = !source.disableRange; + 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._headersCapability.resolve(); + const getResponseHeader = name => { + return response.headers.get(name); + }; + 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); + if (!this._isStreamingSupported && this._isRangeSupported) { + this.cancel(new _util.AbortException("Streaming is disabled.")); + } + }).catch(this._headersCapability.reject); + this.onProgress = null; + } + get headersReady() { + return this._headersCapability.promise; + } + get filename() { + return this._filename; + } + get contentLength() { + return this._contentLength; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + await this._headersCapability.promise; + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value, + done + }; + } + this._loaded += value.byteLength; + this.onProgress?.({ + loaded: this._loaded, + total: this._contentLength + }); + return { + value: getArrayBuffer(value), + done: false + }; + } + cancel(reason) { + this._reader?.cancel(reason); + this._abortController.abort(); + } +} +class PDFFetchStreamRangeReader { + constructor(stream, begin, end) { + this._stream = stream; + this._reader = null; + this._loaded = 0; + const source = stream.source; + this._withCredentials = source.withCredentials || false; + this._readCapability = new _util.PromiseCapability(); + this._isStreamingSupported = !source.disableStream; + this._abortController = new AbortController(); + this._headers = createHeaders(this._stream.httpHeaders); + this._headers.append("Range", `bytes=${begin}-${end - 1}`); + 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._readCapability.resolve(); + this._reader = response.body.getReader(); + }).catch(this._readCapability.reject); + this.onProgress = null; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + await this._readCapability.promise; + const { + value, + done + } = await this._reader.read(); + if (done) { + return { + value, + done + }; + } + this._loaded += value.byteLength; + this.onProgress?.({ + loaded: this._loaded + }); + return { + value: getArrayBuffer(value), + done: false + }; + } + cancel(reason) { + this._reader?.cancel(reason); + this._abortController.abort(); + } +} + +/***/ }), +/* 20 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +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 _content_disposition = __w_pdfjs_require__(21); +var _display_utils = __w_pdfjs_require__(6); +function validateRangeRequestCapabilities({ + getResponseHeader, + isHttp, + rangeChunkSize, + disableRange +}) { + const returnValues = { + allowRangeRequests: false, + suggestedLength: undefined + }; + const length = parseInt(getResponseHeader("Content-Length"), 10); + if (!Number.isInteger(length)) { + return returnValues; + } + returnValues.suggestedLength = length; + if (length <= 2 * rangeChunkSize) { + return returnValues; + } + if (disableRange || !isHttp) { + return returnValues; + } + if (getResponseHeader("Accept-Ranges") !== "bytes") { + return returnValues; + } + const contentEncoding = getResponseHeader("Content-Encoding") || "identity"; + if (contentEncoding !== "identity") { + return returnValues; + } + returnValues.allowRangeRequests = true; + return returnValues; +} +function extractFilenameFromHeader(getResponseHeader) { + const contentDisposition = getResponseHeader("Content-Disposition"); + if (contentDisposition) { + let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition); + if (filename.includes("%")) { + try { + filename = decodeURIComponent(filename); + } catch {} + } + if ((0, _display_utils.isPdfFile)(filename)) { + return filename; + } + } + return null; +} +function createResponseStatusError(status, 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); +} +function validateResponseStatus(status) { + return status === 200 || status === 206; +} + +/***/ }), +/* 21 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader; +var _util = __w_pdfjs_require__(1); +function getFilenameFromContentDispositionHeader(contentDisposition) { + let needsEncodingFixup = true; + let tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition); + if (tmp) { + tmp = tmp[1]; + let filename = rfc2616unquote(tmp); + filename = unescape(filename); + filename = rfc5987decode(filename); + filename = rfc2047decode(filename); + return fixupEncoding(filename); + } + tmp = rfc2231getparam(contentDisposition); + if (tmp) { + const filename = rfc2047decode(tmp); + return fixupEncoding(filename); + } + tmp = toParamRegExp("filename", "i").exec(contentDisposition); + if (tmp) { + tmp = tmp[1]; + let filename = rfc2616unquote(tmp); + filename = rfc2047decode(filename); + return fixupEncoding(filename); + } + function toParamRegExp(attributePattern, flags) { + return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags); + } + function textdecode(encoding, value) { + if (encoding) { + if (!/^[\x00-\xFF]+$/.test(value)) { + return value; + } + try { + const decoder = new TextDecoder(encoding, { + fatal: true + }); + const buffer = (0, _util.stringToBytes)(value); + value = decoder.decode(buffer); + needsEncodingFixup = false; + } catch {} + } + return value; + } + function fixupEncoding(value) { + if (needsEncodingFixup && /[\x80-\xff]/.test(value)) { + value = textdecode("utf-8", value); + if (needsEncodingFixup) { + value = textdecode("iso-8859-1", value); + } + } + return value; + } + 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) { + if (n === 0) { + break; + } + continue; + } + matches[n] = [quot, part]; + } + const parts = []; + for (let n = 0; n < matches.length; ++n) { + if (!(n in matches)) { + break; + } + let [quot, part] = matches[n]; + part = rfc2616unquote(part); + if (quot) { + part = unescape(part); + if (n === 0) { + part = rfc5987decode(part); + } + } + parts.push(part); + } + return parts.join(""); + } + function rfc2616unquote(value) { + if (value.startsWith('"')) { + const parts = value.slice(1).split('\\"'); + 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].replaceAll(/\\(.)/g, "$1"); + } + value = parts.join('"'); + } + return value; + } + function rfc5987decode(extvalue) { + const encodingend = extvalue.indexOf("'"); + if (encodingend === -1) { + return extvalue; + } + 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)) { + return value; + } + return value.replaceAll(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (matches, charset, encoding, text) { + if (encoding === "q" || encoding === "Q") { + text = text.replaceAll("_", " "); + text = text.replaceAll(/=([0-9a-fA-F]{2})/g, function (match, hex) { + return String.fromCharCode(parseInt(hex, 16)); + }); + return textdecode(charset, text); + } + try { + text = atob(text); + } catch {} + return textdecode(charset, text); + }); + } + return ""; +} + +/***/ }), +/* 22 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFNetworkStream = void 0; +var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(20); +; +const OK_RESPONSE = 200; +const PARTIAL_CONTENT_RESPONSE = 206; +function getArrayBuffer(xhr) { + const data = xhr.response; + if (typeof data !== "string") { + return data; + } + return (0, _util.stringToBytes)(data).buffer; +} +class NetworkManager { + constructor(url, args = {}) { + this.url = url; + this.isHttp = /^https?:/i.test(url); + this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null); + this.withCredentials = args.withCredentials || false; + this.currXhrId = 0; + this.pendingRequests = Object.create(null); + } + 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 = new XMLHttpRequest(); + 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 (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); + }; + } + 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; + } + pendingRequest.onProgress?.(evt); + } + onStateChange(xhrId, evt) { + const pendingRequest = this.pendingRequests[xhrId]; + if (!pendingRequest) { + return; + } + const xhr = pendingRequest.xhr; + if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) { + pendingRequest.onHeadersReceived(); + delete pendingRequest.onHeadersReceived; + } + if (xhr.readyState !== 4) { + return; + } + if (!(xhrId in this.pendingRequests)) { + return; + } + delete this.pendingRequests[xhrId]; + if (xhr.status === 0 && this.isHttp) { + pendingRequest.onError?.(xhr.status); + return; + } + 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) { + pendingRequest.onError?.(xhr.status); + return; + } + const chunk = getArrayBuffer(xhr); + 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 { + 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, + withCredentials: source.withCredentials + }); + this._rangeChunkSize = source.rangeChunkSize; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + _onRangeRequestReaderClosed(reader) { + const i = this._rangeRequestReaders.indexOf(reader); + if (i >= 0) { + this._rangeRequestReaders.splice(i, 1); + } + } + 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) { + this._fullRequestReader?.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +exports.PDFNetworkStream = PDFNetworkStream; +class PDFNetworkStreamFullRequestReader { + constructor(manager, source) { + this._manager = manager; + const args = { + onHeadersReceived: this._onHeadersReceived.bind(this), + onDone: this._onDone.bind(this), + onError: this._onError.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._url = source.url; + this._fullRequestId = manager.requestFull(args); + this._headersReceivedCapability = new _util.PromiseCapability(); + this._disableRange = source.disableRange || false; + this._contentLength = source.length; + this._rangeChunkSize = source.rangeChunkSize; + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + this._isStreamingSupported = false; + this._isRangeSupported = false; + this._cachedChunks = []; + this._requests = []; + this._done = false; + this._storedError = undefined; + this._filename = null; + this.onProgress = null; + } + _onHeadersReceived() { + const fullRequestXhrId = this._fullRequestId; + const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId); + 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(data) { + if (data) { + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: data.chunk, + done: false + }); + } else { + this._cachedChunks.push(data.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) { + this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); + this._headersReceivedCapability.reject(this._storedError); + for (const requestCapability of this._requests) { + requestCapability.reject(this._storedError); + } + this._requests.length = 0; + this._cachedChunks.length = 0; + } + _onProgress(evt) { + this.onProgress?.({ + loaded: evt.loaded, + total: evt.lengthComputable ? evt.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 + }; + } + if (this._done) { + return { + value: undefined, + done: true + }; + } + const requestCapability = new _util.PromiseCapability(); + this._requests.push(requestCapability); + 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.length = 0; + if (this._manager.isPendingRequest(this._fullRequestId)) { + this._manager.abortRequest(this._fullRequestId); + } + this._fullRequestReader = null; + } +} +class PDFNetworkStreamRangeRequestReader { + constructor(manager, begin, end) { + this._manager = manager; + const args = { + onDone: this._onDone.bind(this), + onError: this._onError.bind(this), + onProgress: this._onProgress.bind(this) + }; + this._url = manager.url; + this._requestId = manager.requestRange(begin, end, args); + this._requests = []; + this._queuedChunk = null; + this._done = false; + this._storedError = undefined; + this.onProgress = null; + this.onClosed = null; + } + _close() { + this.onClosed?.(this); + } + _onDone(data) { + const chunk = data.chunk; + if (this._requests.length > 0) { + const requestCapability = this._requests.shift(); + requestCapability.resolve({ + value: chunk, + done: false + }); + } else { + this._queuedChunk = chunk; + } + this._done = true; + for (const requestCapability of this._requests) { + requestCapability.resolve({ + value: undefined, + done: true + }); + } + this._requests.length = 0; + this._close(); + } + _onError(status) { + this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url); + for (const requestCapability of this._requests) { + requestCapability.reject(this._storedError); + } + this._requests.length = 0; + this._queuedChunk = null; + } + _onProgress(evt) { + if (!this.isStreamingSupported) { + this.onProgress?.({ + loaded: evt.loaded + }); + } + } + get isStreamingSupported() { + return false; + } + async read() { + if (this._storedError) { + throw this._storedError; + } + 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 = new _util.PromiseCapability(); + 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(); + } +} + +/***/ }), +/* 23 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFNodeStream = void 0; +var _util = __w_pdfjs_require__(1); +var _network_utils = __w_pdfjs_require__(20); +; +const fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//; +function parseUrl(sourceUrl) { + const url = require("url"); + const parsedUrl = url.parse(sourceUrl); + if (parsedUrl.protocol === "file:" || parsedUrl.host) { + return parsedUrl; + } + if (/^[a-z]:[/\\]/i.test(sourceUrl)) { + return url.parse(`file:///${sourceUrl}`); + } + if (!parsedUrl.host) { + parsedUrl.protocol = "file:"; + } + return parsedUrl; +} +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.httpHeaders = this.isHttp && source.httpHeaders || {}; + this._fullRequestReader = null; + this._rangeRequestReaders = []; + } + 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; + } + const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end); + this._rangeRequestReaders.push(rangeReader); + return rangeReader; + } + cancelAllRequests(reason) { + this._fullRequestReader?.cancel(reason); + for (const reader of this._rangeRequestReaders.slice(0)) { + reader.cancel(reason); + } + } +} +exports.PDFNodeStream = PDFNodeStream; +class BaseFullReader { + constructor(stream) { + this._url = stream.url; + this._done = false; + this._storedError = null; + this.onProgress = null; + const source = stream.source; + this._contentLength = source.length; + this._loaded = 0; + this._filename = null; + this._disableRange = source.disableRange || false; + this._rangeChunkSize = source.rangeChunkSize; + if (!this._rangeChunkSize && !this._disableRange) { + this._disableRange = true; + } + this._isStreamingSupported = !source.disableStream; + this._isRangeSupported = !source.disableRange; + this._readableStream = null; + this._readCapability = new _util.PromiseCapability(); + this._headersCapability = new _util.PromiseCapability(); + } + get headersReady() { + return this._headersCapability.promise; + } + get filename() { + return this._filename; + } + get contentLength() { + return this._contentLength; + } + get isRangeSupported() { + return this._isRangeSupported; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + await this._readCapability.promise; + if (this._done) { + return { + value: undefined, + done: true + }; + } + if (this._storedError) { + throw this._storedError; + } + const chunk = this._readableStream.read(); + if (chunk === null) { + this._readCapability = new _util.PromiseCapability(); + return this.read(); + } + this._loaded += chunk.length; + 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(); + }); + readableStream.on("error", 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); + } + } +} +class BaseRangeReader { + constructor(stream) { + this._url = stream.url; + this._done = false; + this._storedError = null; + this.onProgress = null; + this._loaded = 0; + this._readableStream = null; + this._readCapability = new _util.PromiseCapability(); + const source = stream.source; + this._isStreamingSupported = !source.disableStream; + } + get isStreamingSupported() { + return this._isStreamingSupported; + } + async read() { + await this._readCapability.promise; + if (this._done) { + return { + value: undefined, + done: true + }; + } + if (this._storedError) { + throw this._storedError; + } + const chunk = this._readableStream.read(); + if (chunk === null) { + this._readCapability = new _util.PromiseCapability(); + return this.read(); + } + this._loaded += chunk.length; + 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); + } + } +} +function createRequestOptions(parsedUrl, headers) { + return { + protocol: parsedUrl.protocol, + auth: parsedUrl.auth, + host: parsedUrl.hostname, + port: parsedUrl.port, + path: parsedUrl.path, + method: "GET", + headers + }; +} +class PDFNodeStreamFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + const handleResponse = response => { + if (response.statusCode === 404) { + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; + this._headersCapability.reject(error); + return; + } + this._headersCapability.resolve(); + this._setReadableStream(response); + const getResponseHeader = name => { + return this._readableStream.headers[name.toLowerCase()]; + }; + const { + allowRangeRequests, + suggestedLength + } = (0, _network_utils.validateRangeRequestCapabilities)({ + getResponseHeader, + isHttp: stream.isHttp, + rangeChunkSize: this._rangeChunkSize, + disableRange: this._disableRange + }); + this._isRangeSupported = allowRangeRequests; + this._contentLength = suggestedLength || this._contentLength; + this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader); + }; + this._request = null; + if (this._url.protocol === "http:") { + const http = require("http"); + this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); + } else { + const https = require("https"); + this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse); + } + this._request.on("error", reason => { + this._storedError = reason; + this._headersCapability.reject(reason); + }); + this._request.end(); + } +} +class PDFNodeStreamRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + this._httpHeaders = {}; + for (const property in stream.httpHeaders) { + const value = stream.httpHeaders[property]; + if (value === undefined) { + continue; + } + this._httpHeaders[property] = value; + } + this._httpHeaders.Range = `bytes=${start}-${end - 1}`; + const handleResponse = response => { + if (response.statusCode === 404) { + const error = new _util.MissingPDFException(`Missing PDF "${this._url}".`); + this._storedError = error; + return; + } + this._setReadableStream(response); + }; + this._request = null; + if (this._url.protocol === "http:") { + const http = require("http"); + this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); + } else { + const https = require("https"); + this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); + } + this._request.on("error", reason => { + this._storedError = reason; + }); + this._request.end(); + } +} +class PDFNodeStreamFsFullReader extends BaseFullReader { + constructor(stream) { + super(stream); + let path = decodeURIComponent(this._url.path); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); + } + const fs = require("fs"); + fs.lstat(path, (error, stat) => { + if (error) { + if (error.code === "ENOENT") { + error = new _util.MissingPDFException(`Missing PDF "${path}".`); + } + this._storedError = error; + this._headersCapability.reject(error); + return; + } + this._contentLength = stat.size; + this._setReadableStream(fs.createReadStream(path)); + this._headersCapability.resolve(); + }); + } +} +class PDFNodeStreamFsRangeReader extends BaseRangeReader { + constructor(stream, start, end) { + super(stream); + let path = decodeURIComponent(this._url.path); + if (fileUriRegex.test(this._url.href)) { + path = path.replace(/^\//, ""); + } + const fs = require("fs"); + this._setReadableStream(fs.createReadStream(path, { + start, + end: end - 1 + })); + } +} + +/***/ }), +/* 24 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SVGGraphics = void 0; +var _display_utils = __w_pdfjs_require__(6); +var _util = __w_pdfjs_require__(1); +; +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"]; +const createObjectURL = function (data, contentType = "", forceDataSchema = false) { + if (URL.createObjectURL && typeof Blob !== "undefined" && !forceDataSchema) { + return URL.createObjectURL(new Blob([data], { + type: contentType + })); + } + const digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + let buffer = `data:${contentType};base64,`; + 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; + 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; +}; +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); + for (let i = 0; i < 256; i++) { + let c = i; + for (let h = 0; h < 8; h++) { + c = c & 1 ? 0xedb88320 ^ c >> 1 & 0x7fffffff : c >> 1 & 0x7fffffff; + } + crcTable[i] = c; + } + function crc32(data, start, end) { + let crc = -1; + for (let i = start; i < end; i++) { + const a = (crc ^ data[i]) & 0xff; + const b = crcTable[a]; + crc = crc >>> 8 ^ b; + } + return crc ^ -1; + } + function writePngChunk(type, body, data, offset) { + let p = offset; + const len = body.length; + data[p] = len >> 24 & 0xff; + data[p + 1] = len >> 16 & 0xff; + data[p + 2] = len >> 8 & 0xff; + data[p + 3] = len & 0xff; + p += 4; + data[p] = type.charCodeAt(0) & 0xff; + data[p + 1] = type.charCodeAt(1) & 0xff; + data[p + 2] = type.charCodeAt(2) & 0xff; + data[p + 3] = type.charCodeAt(3) & 0xff; + p += 4; + data.set(body, p); + p += body.length; + const crc = crc32(data, offset + 4, p); + data[p] = crc >> 24 & 0xff; + data[p + 1] = crc >> 16 & 0xff; + data[p + 2] = crc >> 8 & 0xff; + data[p + 3] = crc & 0xff; + } + function adler32(data, start, end) { + let a = 1; + let b = 0; + for (let i = start; i < end; ++i) { + a = (a + (data[i] & 0xff)) % 65521; + b = (b + a) % 65521; + } + return b << 16 | a; + } + function deflateSync(literals) { + if (!_util.isNodeJS) { + return deflateSyncUncompressed(literals); + } + try { + const input = parseInt(process.versions.node) >= 8 ? literals : Buffer.from(literals); + 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); + } + return deflateSyncUncompressed(literals); + } + function deflateSyncUncompressed(literals) { + 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; + let pos = 0; + while (len > maxBlockLength) { + idat[pi++] = 0x00; + idat[pi++] = 0xff; + idat[pi++] = 0xff; + idat[pi++] = 0x00; + idat[pi++] = 0x00; + idat.set(literals.subarray(pos, pos + maxBlockLength), pi); + pi += maxBlockLength; + pos += maxBlockLength; + len -= maxBlockLength; + } + idat[pi++] = 0x01; + idat[pi++] = len & 0xff; + idat[pi++] = len >> 8 & 0xff; + idat[pi++] = ~len & 0xffff & 0xff; + idat[pi++] = (~len & 0xffff) >> 8 & 0xff; + idat.set(literals.subarray(pos), pi); + pi += literals.length - pos; + const adler = adler32(literals, 0, literals.length); + idat[pi++] = adler >> 24 & 0xff; + idat[pi++] = adler >> 16 & 0xff; + idat[pi++] = adler >> 8 & 0xff; + idat[pi++] = adler & 0xff; + return idat; + } + function encode(imgData, kind, forceDataSchema, isMask) { + const width = imgData.width; + const height = imgData.height; + let bitDepth, colorType, lineSize; + const bytes = imgData.data; + switch (kind) { + case _util.ImageKind.GRAYSCALE_1BPP: + colorType = 0; + bitDepth = 1; + lineSize = width + 7 >> 3; + break; + case _util.ImageKind.RGB_24BPP: + colorType = 2; + bitDepth = 8; + lineSize = width * 3; + break; + case _util.ImageKind.RGBA_32BPP: + colorType = 6; + bitDepth = 8; + lineSize = width * 4; + break; + default: + throw new Error("invalid format"); + } + const literals = new Uint8Array((1 + lineSize) * height); + let offsetLiterals = 0, + offsetBytes = 0; + for (let y = 0; y < height; ++y) { + literals[offsetLiterals++] = 0; + literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals); + offsetBytes += lineSize; + offsetLiterals += lineSize; + } + if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) { + offsetLiterals = 0; + for (let y = 0; y < height; y++) { + offsetLiterals++; + for (let i = 0; i < lineSize; i++) { + literals[offsetLiterals++] ^= 0xff; + } + } + } + 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); + offset += CHUNK_WRAPPER_SIZE + ihdr.length; + writePngChunk("IDATA", idat, data, offset); + offset += CHUNK_WRAPPER_SIZE + idat.length; + writePngChunk("IEND", new Uint8Array(0), data, offset); + return createObjectURL(data, "image/png", forceDataSchema); + } + return function convertImgDataToPng(imgData, forceDataSchema, isMask) { + const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind; + return encode(imgData, kind, forceDataSchema, isMask); + }; +}(); +class SVGExtraState { + constructor() { + this.fontSizeScale = 1; + this.fontWeight = SVG_DEFAULTS.fontWeight; + this.fontSize = 0; + this.textMatrix = _util.IDENTITY_MATRIX; + this.fontMatrix = _util.FONT_IDENTITY_MATRIX; + this.leading = 0; + this.textRenderingMode = _util.TextRenderingMode.FILL; + this.textMatrixScale = 1; + this.x = 0; + this.y = 0; + this.lineX = 0; + this.lineY = 0; + this.charSpacing = 0; + this.wordSpacing = 0; + this.textHScale = 1; + this.textRise = 0; + this.fillColor = SVG_DEFAULTS.fillColor; + this.strokeColor = "#000000"; + this.fillAlpha = 1; + this.strokeAlpha = 1; + this.lineWidth = 1; + this.lineJoin = ""; + this.lineCap = ""; + this.miterLimit = 0; + this.dashArray = []; + this.dashPhase = 0; + this.dependencies = []; + this.activeClipUrl = null; + this.clipGroup = null; + this.maskId = ""; + } + 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.at(-1).items; + continue; + } + if (opListElement.fn === "restore") { + opTree = tmp.pop(); + } else { + opTree.push(opListElement); + } + } + return opTree; +} +function pf(value) { + if (Number.isInteger(value)) { + return value.toString(); + } + 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; +class SVGGraphics { + constructor(commonObjs, objs, forceDataSchema = false) { + (0, _display_utils.deprecated)("The SVG back-end is no longer maintained and *may* be removed in the future."); + this.svgFactory = new _display_utils.DOMSVGFactory(); + this.current = new SVGExtraState(); + this.transformMatrix = _util.IDENTITY_MATRIX; + this.transformStack = []; + this.extraStack = []; + this.commonObjs = commonObjs; + this.objs = objs; + this.pendingClip = null; + this.pendingEOFill = false; + this.embedFonts = false; + this.embeddedFonts = Object.create(null); + this.cssStyle = null; + this.forceDataSchema = !!forceDataSchema; + this._operatorIdMapping = []; + for (const op in _util.OPS) { + this._operatorIdMapping[_util.OPS[op]] = op; + } + } + getObject(data, fallback = null) { + if (typeof data === "string") { + return data.startsWith("g_") ? this.commonObjs.get(data) : this.objs.get(data); + } + return fallback; + } + save() { + this.transformStack.push(this.transformMatrix); + const old = this.current; + this.extraStack.push(old); + this.current = old.clone(); + } + restore() { + this.transformMatrix = this.transformStack.pop(); + this.current = this.extraStack.pop(); + this.pendingClip = null; + this.tgrp = null; + } + group(items) { + this.save(); + this.executeOpTree(items); + this.restore(); + } + loadDependencies(operatorList) { + const fnArray = operatorList.fnArray; + const argsArray = operatorList.argsArray; + for (let i = 0, ii = fnArray.length; i < ii; i++) { + if (fnArray[i] !== _util.OPS.dependency) { + continue; + } + 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); + } + } + return Promise.all(this.current.dependencies); + } + 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; + } + getSVG(operatorList, viewport) { + this.viewport = viewport; + const svgElement = this._initialize(viewport); + 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] + }); + } + return opListToTree(opList); + } + executeOpTree(opTree) { + for (const opTreeElement of opTree) { + const fn = opTreeElement.fn; + const fnId = opTreeElement.fnId; + const 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; + 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: + (0, _util.warn)(`Unimplemented operator ${fn}`); + break; + } + } + } + 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.append(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; + } + 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; + for (const glyph of glyphs) { + if (glyph === null) { + x += fontDirection * wordSpacing; + continue; + } else if (typeof glyph === "number") { + x += spacingDir * glyph * fontSize / 1000; + continue; + } + const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing; + const character = glyph.fontChar; + let scaledX, scaledY; + let width = glyph.width; + 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 { + scaledX = x / fontSizeScale; + scaledY = 0; + } + if (glyph.isInFont || font.missingFile) { + current.xcoords.push(current.x + scaledX); + if (vertical) { + current.ycoords.push(-current.y + scaledY); + } + current.tspan.textContent += character; + } else {} + const charWidth = vertical ? width * widthAdvanceScale - spacing * fontDirection : 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.append(current.tspan); + current.txtgrp.append(current.txtElement); + this._ensureTransformGroup().append(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.append(this.cssStyle); + } + const url = 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, + height + } = this.viewport; + const inv = _util.Util.inverseTransform(this.transformMatrix); + const [x0, y0, x1, y1] = _util.Util.getAxialAlignedBoundingBox([0, 0, width, height], inv); + 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().append(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, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._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.append(bbox.childNodes[0]); + this.defs.append(tiling); + return `url(#${tilingId})`; + } + _makeShadingPattern(args) { + if (typeof args === "string") { + args = this.objs.get(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.append(stop); + } + this.defs.append(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().append(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; + return; + } + 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.append(clipElement); + this.defs.append(clipPath); + if (current.activeClipUrl) { + current.clipGroup = null; + for (const prev of this.extraStack) { + prev.clipGroup = null; + } + clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl); + } + 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; + } + } + } + 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(); + } + } + stroke() { + const current = this.current; + if (current.element) { + this._setStrokeAttributes(current.element); + current.element.setAttributeNS(null, "fill", "none"); + this.endPath(); + } + } + _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; + }); + } + 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() { + this.current.element?.setAttributeNS(null, "fill-rule", "evenodd"); + this.fill(); + } + fillStroke() { + this.stroke(); + this.fill(); + } + eoFillStroke() { + this.current.element?.setAttributeNS(null, "fill-rule", "evenodd"); + this.fillStroke(); + } + closeStroke() { + this.closePath(); + this.stroke(); + } + closeFillStroke() { + this.closePath(); + this.fillStroke(); + } + closeEOFillStroke() { + this.closePath(); + this.eoFillStroke(); + } + 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._ensureTransformGroup().append(rect); + } + paintImageXObject(objId) { + const imgData = this.getObject(objId); + if (!imgData) { + (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`); + return; + } + 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.append(imgEl); + } else { + this._ensureTransformGroup().append(imgEl); + } + } + paintImageMaskXObject(img) { + const imgData = this.getObject(img.data, img); + if (imgData.bitmap) { + (0, _util.warn)("paintImageMaskXObject: ImageBitmap support is not implemented, " + "ensure that the `isOffscreenCanvasSupported` API parameter is disabled."); + return; + } + 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.append(mask); + this._ensureTransformGroup().append(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]); + } + 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"); + this.endPath(); + } + } + paintFormXObjectEnd() {} + _initialize(viewport) { + const svg = this.svgFactory.create(viewport.width, viewport.height); + const definitions = this.svgFactory.createElement("svg:defs"); + svg.append(definitions); + this.defs = definitions; + const rootGroup = this.svgFactory.createElement("svg:g"); + rootGroup.setAttributeNS(null, "transform", pm(viewport.transform)); + svg.append(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.append(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().append(this.tgrp); + } else { + this.svg.append(this.tgrp); + } + } + return this.tgrp; + } +} +exports.SVGGraphics = SVGGraphics; + +/***/ }), +/* 25 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.XfaText = void 0; +class XfaText { + static textContent(xfa) { + const items = []; + const output = { + items, + styles: Object.create(null) + }; + function walk(node) { + if (!node) { + return; + } + let str = null; + const name = node.name; + if (name === "#text") { + str = node.value; + } else if (!XfaText.shouldBuildText(name)) { + return; + } else if (node?.attributes?.textContent) { + str = node.attributes.textContent; + } else if (node.value) { + str = node.value; + } + if (str !== null) { + items.push({ + str + }); + } + if (!node.children) { + return; + } + for (const child of node.children) { + walk(child); + } + } + walk(xfa); + return output; + } + static shouldBuildText(name) { + return !(name === "textarea" || name === "input" || name === "option" || name === "select"); + } +} +exports.XfaText = XfaText; + +/***/ }), +/* 26 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextLayerRenderTask = void 0; +exports.renderTextLayer = renderTextLayer; +exports.updateTextLayer = updateTextLayer; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(6); +const MAX_TEXT_DIVS_TO_RENDER = 100000; +const DEFAULT_FONT_SIZE = 30; +const DEFAULT_FONT_ASCENT = 0.8; +const ascentCache = new Map(); +function getCtx(size, isOffscreenCanvasSupported) { + let ctx; + if (isOffscreenCanvasSupported && _util.FeatureTest.isOffscreenCanvasSupported) { + ctx = new OffscreenCanvas(size, size).getContext("2d", { + alpha: false + }); + } else { + const canvas = document.createElement("canvas"); + canvas.width = canvas.height = size; + ctx = canvas.getContext("2d", { + alpha: false + }); + } + return ctx; +} +function getAscent(fontFamily, isOffscreenCanvasSupported) { + const cachedAscent = ascentCache.get(fontFamily); + if (cachedAscent) { + return cachedAscent; + } + const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported); + ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`; + const metrics = ctx.measureText(""); + let ascent = metrics.fontBoundingBoxAscent; + let descent = Math.abs(metrics.fontBoundingBoxDescent); + if (ascent) { + const ratio = ascent / (ascent + descent); + ascentCache.set(fontFamily, ratio); + ctx.canvas.width = ctx.canvas.height = 0; + 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.canvas.width = ctx.canvas.height = 0; + 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) { + const textDiv = document.createElement("span"); + const textDivProperties = { + angle: 0, + canvasWidth: 0, + hasText: geom.str !== "", + hasEOL: geom.hasEOL, + fontSize: 0 + }; + task._textDivs.push(textDiv); + const tx = _util.Util.transform(task._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, task._isOffscreenCanvasSupported); + 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); + } + const scaleFactorStr = "calc(var(--scale-factor)*"; + const divStyle = textDiv.style; + if (task._container === task._rootContainer) { + divStyle.left = `${(100 * left / task._pageWidth).toFixed(2)}%`; + divStyle.top = `${(100 * top / task._pageHeight).toFixed(2)}%`; + } else { + divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`; + divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`; + } + divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`; + divStyle.fontFamily = style.fontFamily; + textDivProperties.fontSize = fontHeight; + 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) { + shouldScaleText = true; + } else if (geom.str !== " " && 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) { + textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width; + } + task._textDivProperties.set(textDiv, textDivProperties); + if (task._isReadableStream) { + task._layoutText(textDiv); + } +} +function layout(params) { + const { + div, + scale, + properties, + ctx, + prevFontSize, + prevFontFamily + } = params; + const { + style + } = div; + let transform = ""; + if (properties.canvasWidth !== 0 && properties.hasText) { + const { + fontFamily + } = style; + const { + canvasWidth, + fontSize + } = properties; + if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) { + ctx.font = `${fontSize * scale}px ${fontFamily}`; + params.prevFontSize = fontSize; + params.prevFontFamily = fontFamily; + } + const { + width + } = ctx.measureText(div.textContent); + if (width > 0) { + transform = `scaleX(${canvasWidth * scale / width})`; + } + } + if (properties.angle !== 0) { + transform = `rotate(${properties.angle}deg) ${transform}`; + } + if (transform.length > 0) { + style.transform = transform; + } +} +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) { + capability.resolve(); + return; + } + if (!task._isReadableStream) { + for (const textDiv of textDivs) { + task._layoutText(textDiv); + } + } + capability.resolve(); +} +class TextLayerRenderTask { + constructor({ + textContentSource, + container, + viewport, + textDivs, + textDivProperties, + textContentItemsStr, + isOffscreenCanvasSupported + }) { + this._textContentSource = textContentSource; + this._isReadableStream = textContentSource instanceof ReadableStream; + this._container = this._rootContainer = container; + this._textDivs = textDivs || []; + this._textContentItemsStr = textContentItemsStr || []; + this._isOffscreenCanvasSupported = isOffscreenCanvasSupported; + this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled; + this._reader = null; + this._textDivProperties = textDivProperties || new WeakMap(); + this._canceled = false; + this._capability = new _util.PromiseCapability(); + this._layoutTextParams = { + prevFontSize: null, + prevFontFamily: null, + div: null, + scale: viewport.scale * (globalThis.devicePixelRatio || 1), + properties: null, + ctx: getCtx(0, isOffscreenCanvasSupported) + }; + const { + pageWidth, + pageHeight, + pageX, + pageY + } = viewport.rawDims; + this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight]; + this._pageWidth = pageWidth; + this._pageHeight = pageHeight; + (0, _display_utils.setLayerDimensions)(container, viewport); + this._capability.promise.finally(() => { + this._layoutTextParams = null; + }).catch(() => {}); + } + get promise() { + return this._capability.promise; + } + cancel() { + this._canceled = true; + if (this._reader) { + this._reader.cancel(new _util.AbortException("TextLayer task cancelled.")).catch(() => {}); + this._reader = null; + } + this._capability.reject(new _util.AbortException("TextLayer task cancelled.")); + } + _processItems(items, styleCache) { + for (const item of items) { + if (item.str === undefined) { + if (item.type === "beginMarkedContentProps" || item.type === "beginMarkedContent") { + const parent = this._container; + this._container = document.createElement("span"); + this._container.classList.add("markedContent"); + if (item.id !== null) { + this._container.setAttribute("id", `${item.id}`); + } + parent.append(this._container); + } else if (item.type === "endMarkedContent") { + this._container = this._container.parentNode; + } + continue; + } + this._textContentItemsStr.push(item.str); + appendText(this, item, styleCache); + } + } + _layoutText(textDiv) { + const textDivProperties = this._layoutTextParams.properties = this._textDivProperties.get(textDiv); + this._layoutTextParams.div = textDiv; + layout(this._layoutTextParams); + if (textDivProperties.hasText) { + this._container.append(textDiv); + } + if (textDivProperties.hasEOL) { + const br = document.createElement("br"); + br.setAttribute("role", "presentation"); + this._container.append(br); + } + } + _render() { + const capability = new _util.PromiseCapability(); + let styleCache = Object.create(null); + if (this._isReadableStream) { + const pump = () => { + this._reader.read().then(({ + value, + done + }) => { + if (done) { + capability.resolve(); + return; + } + Object.assign(styleCache, value.styles); + this._processItems(value.items, styleCache); + pump(); + }, capability.reject); + }; + this._reader = this._textContentSource.getReader(); + pump(); + } else if (this._textContentSource) { + const { + items, + styles + } = this._textContentSource; + this._processItems(items, styles); + capability.resolve(); + } else { + throw new Error('No "textContentSource" parameter specified.'); + } + capability.promise.then(() => { + styleCache = null; + render(this); + }, this._capability.reject); + } +} +exports.TextLayerRenderTask = TextLayerRenderTask; +function renderTextLayer(params) { + if (!params.textContentSource && (params.textContent || params.textContentStream)) { + (0, _display_utils.deprecated)("The TextLayerRender `textContent`/`textContentStream` parameters " + "will be removed in the future, please use `textContentSource` instead."); + params.textContentSource = params.textContent || params.textContentStream; + } + const { + container, + viewport + } = params; + const style = getComputedStyle(container); + const visibility = style.getPropertyValue("visibility"); + const scaleFactor = parseFloat(style.getPropertyValue("--scale-factor")); + if (visibility === "visible" && (!scaleFactor || Math.abs(scaleFactor - viewport.scale) > 1e-5)) { + console.error("The `--scale-factor` CSS-variable must be set, " + "to the same value as `viewport.scale`, " + "either on the `container`-element itself or higher up in the DOM."); + } + const task = new TextLayerRenderTask(params); + task._render(); + return task; +} +function updateTextLayer({ + container, + viewport, + textDivs, + textDivProperties, + isOffscreenCanvasSupported, + mustRotate = true, + mustRescale = true +}) { + if (mustRotate) { + (0, _display_utils.setLayerDimensions)(container, { + rotation: viewport.rotation + }); + } + if (mustRescale) { + const ctx = getCtx(0, isOffscreenCanvasSupported); + const scale = viewport.scale * (globalThis.devicePixelRatio || 1); + const params = { + prevFontSize: null, + prevFontFamily: null, + div: null, + scale, + properties: null, + ctx + }; + for (const div of textDivs) { + params.properties = textDivProperties.get(div); + params.div = div; + layout(params); + } + } +} + +/***/ }), +/* 27 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorLayer = void 0; +var _util = __w_pdfjs_require__(1); +var _editor = __w_pdfjs_require__(4); +var _freetext = __w_pdfjs_require__(28); +var _ink = __w_pdfjs_require__(33); +var _display_utils = __w_pdfjs_require__(6); +var _stamp = __w_pdfjs_require__(34); +class AnnotationEditorLayer { + #accessibilityManager; + #allowClick = false; + #annotationLayer = null; + #boundPointerup = this.pointerup.bind(this); + #boundPointerdown = this.pointerdown.bind(this); + #editors = new Map(); + #hadPointerDown = false; + #isCleaningUp = false; + #isDisabling = false; + #uiManager; + static _initialized = false; + constructor({ + uiManager, + pageIndex, + div, + accessibilityManager, + annotationLayer, + viewport, + l10n + }) { + const editorTypes = [_freetext.FreeTextEditor, _ink.InkEditor, _stamp.StampEditor]; + if (!AnnotationEditorLayer._initialized) { + AnnotationEditorLayer._initialized = true; + for (const editorType of editorTypes) { + editorType.initialize(l10n); + } + } + uiManager.registerEditorTypes(editorTypes); + this.#uiManager = uiManager; + this.pageIndex = pageIndex; + this.div = div; + this.#accessibilityManager = accessibilityManager; + this.#annotationLayer = annotationLayer; + this.viewport = viewport; + this.#uiManager.addLayer(this); + } + get isEmpty() { + return this.#editors.size === 0; + } + updateToolbar(mode) { + this.#uiManager.updateToolbar(mode); + } + updateMode(mode = this.#uiManager.getMode()) { + this.#cleanup(); + if (mode === _util.AnnotationEditorType.INK) { + this.addInkEditorIfNeeded(false); + this.disableClick(); + } else { + this.enableClick(); + } + if (mode !== _util.AnnotationEditorType.NONE) { + this.div.classList.toggle("freeTextEditing", mode === _util.AnnotationEditorType.FREETEXT); + this.div.classList.toggle("inkEditing", mode === _util.AnnotationEditorType.INK); + this.div.classList.toggle("stampEditing", mode === _util.AnnotationEditorType.STAMP); + this.div.hidden = false; + } + } + addInkEditorIfNeeded(isCommitting) { + if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) { + return; + } + if (!isCommitting) { + for (const editor of this.#editors.values()) { + if (editor.isEmpty()) { + editor.setInBackground(); + return; + } + } + } + const editor = this.#createAndAddNewEditor({ + offsetX: 0, + offsetY: 0 + }, false); + editor.setInBackground(); + } + setEditingState(isEditing) { + this.#uiManager.setEditingState(isEditing); + } + addCommands(params) { + this.#uiManager.addCommands(params); + } + enable() { + this.div.style.pointerEvents = "auto"; + const annotationElementIds = new Set(); + for (const editor of this.#editors.values()) { + editor.enableEditing(); + if (editor.annotationElementId) { + annotationElementIds.add(editor.annotationElementId); + } + } + if (!this.#annotationLayer) { + return; + } + const editables = this.#annotationLayer.getEditableAnnotations(); + for (const editable of editables) { + editable.hide(); + if (this.#uiManager.isDeletedAnnotationElement(editable.data.id)) { + continue; + } + if (annotationElementIds.has(editable.data.id)) { + continue; + } + const editor = this.deserialize(editable); + if (!editor) { + continue; + } + this.addOrRebuild(editor); + editor.enableEditing(); + } + } + disable() { + this.#isDisabling = true; + this.div.style.pointerEvents = "none"; + const hiddenAnnotationIds = new Set(); + for (const editor of this.#editors.values()) { + editor.disableEditing(); + if (!editor.annotationElementId || editor.serialize() !== null) { + hiddenAnnotationIds.add(editor.annotationElementId); + continue; + } + this.getEditableAnnotation(editor.annotationElementId)?.show(); + editor.remove(); + } + if (this.#annotationLayer) { + const editables = this.#annotationLayer.getEditableAnnotations(); + for (const editable of editables) { + const { + id + } = editable.data; + if (hiddenAnnotationIds.has(id) || this.#uiManager.isDeletedAnnotationElement(id)) { + continue; + } + editable.show(); + } + } + this.#cleanup(); + if (this.isEmpty) { + this.div.hidden = true; + } + this.#isDisabling = false; + } + getEditableAnnotation(id) { + return this.#annotationLayer?.getEditableAnnotation(id) || null; + } + setActiveEditor(editor) { + const currentActive = this.#uiManager.getActive(); + if (currentActive === editor) { + return; + } + this.#uiManager.setActiveEditor(editor); + } + enableClick() { + this.div.addEventListener("pointerdown", this.#boundPointerdown); + this.div.addEventListener("pointerup", this.#boundPointerup); + } + disableClick() { + this.div.removeEventListener("pointerdown", this.#boundPointerdown); + this.div.removeEventListener("pointerup", this.#boundPointerup); + } + attach(editor) { + this.#editors.set(editor.id, editor); + const { + annotationElementId + } = editor; + if (annotationElementId && this.#uiManager.isDeletedAnnotationElement(annotationElementId)) { + this.#uiManager.removeDeletedAnnotationElement(editor); + } + } + detach(editor) { + this.#editors.delete(editor.id); + this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv); + if (!this.#isDisabling && editor.annotationElementId) { + this.#uiManager.addDeletedAnnotationElement(editor); + } + } + remove(editor) { + this.detach(editor); + this.#uiManager.removeEditor(editor); + if (editor.div.contains(document.activeElement)) { + setTimeout(() => { + this.#uiManager.focusMainContainer(); + }, 0); + } + editor.div.remove(); + editor.isAttachedToDOM = false; + if (!this.#isCleaningUp) { + this.addInkEditorIfNeeded(false); + } + } + changeParent(editor) { + if (editor.parent === this) { + return; + } + if (editor.annotationElementId) { + this.#uiManager.addDeletedAnnotationElement(editor.annotationElementId); + _editor.AnnotationEditor.deleteAnnotationElement(editor); + editor.annotationElementId = null; + } + this.attach(editor); + editor.parent?.detach(editor); + editor.setParent(this); + if (editor.div && editor.isAttachedToDOM) { + editor.div.remove(); + this.div.append(editor.div); + } + } + add(editor) { + this.changeParent(editor); + this.#uiManager.addEditor(editor); + this.attach(editor); + if (!editor.isAttachedToDOM) { + const div = editor.render(); + this.div.append(div); + editor.isAttachedToDOM = true; + } + editor.fixAndSetPosition(); + editor.onceAdded(); + this.#uiManager.addToAnnotationStorage(editor); + } + moveEditorInDOM(editor) { + if (!editor.isAttachedToDOM) { + return; + } + const { + activeElement + } = document; + if (editor.div.contains(activeElement)) { + editor._focusEventsAllowed = false; + setTimeout(() => { + if (!editor.div.contains(document.activeElement)) { + editor.div.addEventListener("focusin", () => { + editor._focusEventsAllowed = true; + }, { + once: true + }); + activeElement.focus(); + } else { + editor._focusEventsAllowed = true; + } + }, 0); + } + editor._structTreeParentId = this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true); + } + addOrRebuild(editor) { + if (editor.needsToBeRebuilt()) { + editor.rebuild(); + } else { + this.add(editor); + } + } + addUndoableEditor(editor) { + const cmd = () => editor._uiManager.rebuild(editor); + const undo = () => { + editor.remove(); + }; + this.addCommands({ + cmd, + undo, + mustExec: false + }); + } + getNextId() { + return this.#uiManager.getId(); + } + #createNewEditor(params) { + switch (this.#uiManager.getMode()) { + case _util.AnnotationEditorType.FREETEXT: + return new _freetext.FreeTextEditor(params); + case _util.AnnotationEditorType.INK: + return new _ink.InkEditor(params); + case _util.AnnotationEditorType.STAMP: + return new _stamp.StampEditor(params); + } + return null; + } + pasteEditor(mode, params) { + this.#uiManager.updateToolbar(mode); + this.#uiManager.updateMode(mode); + const { + offsetX, + offsetY + } = this.#getCenterPoint(); + const id = this.getNextId(); + const editor = this.#createNewEditor({ + parent: this, + id, + x: offsetX, + y: offsetY, + uiManager: this.#uiManager, + isCentered: true, + ...params + }); + if (editor) { + this.add(editor); + } + } + deserialize(data) { + switch (data.annotationType ?? data.annotationEditorType) { + case _util.AnnotationEditorType.FREETEXT: + return _freetext.FreeTextEditor.deserialize(data, this, this.#uiManager); + case _util.AnnotationEditorType.INK: + return _ink.InkEditor.deserialize(data, this, this.#uiManager); + case _util.AnnotationEditorType.STAMP: + return _stamp.StampEditor.deserialize(data, this, this.#uiManager); + } + return null; + } + #createAndAddNewEditor(event, isCentered) { + const id = this.getNextId(); + const editor = this.#createNewEditor({ + parent: this, + id, + x: event.offsetX, + y: event.offsetY, + uiManager: this.#uiManager, + isCentered + }); + if (editor) { + this.add(editor); + } + return editor; + } + #getCenterPoint() { + const { + x, + y, + width, + height + } = this.div.getBoundingClientRect(); + const tlX = Math.max(0, x); + const tlY = Math.max(0, y); + const brX = Math.min(window.innerWidth, x + width); + const brY = Math.min(window.innerHeight, y + height); + const centerX = (tlX + brX) / 2 - x; + const centerY = (tlY + brY) / 2 - y; + const [offsetX, offsetY] = this.viewport.rotation % 180 === 0 ? [centerX, centerY] : [centerY, centerX]; + return { + offsetX, + offsetY + }; + } + addNewEditor() { + this.#createAndAddNewEditor(this.#getCenterPoint(), true); + } + setSelected(editor) { + this.#uiManager.setSelected(editor); + } + toggleSelected(editor) { + this.#uiManager.toggleSelected(editor); + } + isSelected(editor) { + return this.#uiManager.isSelected(editor); + } + unselect(editor) { + this.#uiManager.unselect(editor); + } + pointerup(event) { + const { + isMac + } = _util.FeatureTest.platform; + if (event.button !== 0 || event.ctrlKey && isMac) { + return; + } + if (event.target !== this.div) { + return; + } + if (!this.#hadPointerDown) { + return; + } + this.#hadPointerDown = false; + if (!this.#allowClick) { + this.#allowClick = true; + return; + } + if (this.#uiManager.getMode() === _util.AnnotationEditorType.STAMP) { + this.#uiManager.unselectAll(); + return; + } + this.#createAndAddNewEditor(event, false); + } + pointerdown(event) { + if (this.#hadPointerDown) { + this.#hadPointerDown = false; + return; + } + const { + isMac + } = _util.FeatureTest.platform; + if (event.button !== 0 || event.ctrlKey && isMac) { + return; + } + if (event.target !== this.div) { + return; + } + this.#hadPointerDown = true; + const editor = this.#uiManager.getActive(); + this.#allowClick = !editor || editor.isEmpty(); + } + findNewParent(editor, x, y) { + const layer = this.#uiManager.findParent(x, y); + if (layer === null || layer === this) { + return false; + } + layer.changeParent(editor); + return true; + } + destroy() { + if (this.#uiManager.getActive()?.parent === this) { + this.#uiManager.commitOrRemove(); + this.#uiManager.setActiveEditor(null); + } + for (const editor of this.#editors.values()) { + this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv); + editor.setParent(null); + editor.isAttachedToDOM = false; + editor.div.remove(); + } + this.div = null; + this.#editors.clear(); + this.#uiManager.removeLayer(this); + } + #cleanup() { + this.#isCleaningUp = true; + for (const editor of this.#editors.values()) { + if (editor.isEmpty()) { + editor.remove(); + } + } + this.#isCleaningUp = false; + } + render({ + viewport + }) { + this.viewport = viewport; + (0, _display_utils.setLayerDimensions)(this.div, viewport); + for (const editor of this.#uiManager.getEditors(this.pageIndex)) { + this.add(editor); + } + this.updateMode(); + } + update({ + viewport + }) { + this.#uiManager.commitOrRemove(); + this.viewport = viewport; + (0, _display_utils.setLayerDimensions)(this.div, { + rotation: viewport.rotation + }); + this.updateMode(); + } + get pageDimensions() { + const { + pageWidth, + pageHeight + } = this.viewport.rawDims; + return [pageWidth, pageHeight]; + } +} +exports.AnnotationEditorLayer = AnnotationEditorLayer; + +/***/ }), +/* 28 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.FreeTextEditor = void 0; +var _util = __w_pdfjs_require__(1); +var _tools = __w_pdfjs_require__(5); +var _editor = __w_pdfjs_require__(4); +var _annotation_layer = __w_pdfjs_require__(29); +class FreeTextEditor extends _editor.AnnotationEditor { + #boundEditorDivBlur = this.editorDivBlur.bind(this); + #boundEditorDivFocus = this.editorDivFocus.bind(this); + #boundEditorDivInput = this.editorDivInput.bind(this); + #boundEditorDivKeydown = this.editorDivKeydown.bind(this); + #color; + #content = ""; + #editorDivId = `${this.id}-editor`; + #fontSize; + #initialData = null; + static _freeTextDefaultContent = ""; + static _internalPadding = 0; + static _defaultColor = null; + static _defaultFontSize = 10; + static get _keyboardManager() { + const proto = FreeTextEditor.prototype; + const arrowChecker = self => self.isEmpty(); + const small = _tools.AnnotationEditorUIManager.TRANSLATE_SMALL; + const big = _tools.AnnotationEditorUIManager.TRANSLATE_BIG; + return (0, _util.shadow)(this, "_keyboardManager", new _tools.KeyboardManager([[["ctrl+s", "mac+meta+s", "ctrl+p", "mac+meta+p"], proto.commitOrRemove, { + bubbles: true + }], [["ctrl+Enter", "mac+meta+Enter", "Escape", "mac+Escape"], proto.commitOrRemove], [["ArrowLeft", "mac+ArrowLeft"], proto._translateEmpty, { + args: [-small, 0], + checker: arrowChecker + }], [["ctrl+ArrowLeft", "mac+shift+ArrowLeft"], proto._translateEmpty, { + args: [-big, 0], + checker: arrowChecker + }], [["ArrowRight", "mac+ArrowRight"], proto._translateEmpty, { + args: [small, 0], + checker: arrowChecker + }], [["ctrl+ArrowRight", "mac+shift+ArrowRight"], proto._translateEmpty, { + args: [big, 0], + checker: arrowChecker + }], [["ArrowUp", "mac+ArrowUp"], proto._translateEmpty, { + args: [0, -small], + checker: arrowChecker + }], [["ctrl+ArrowUp", "mac+shift+ArrowUp"], proto._translateEmpty, { + args: [0, -big], + checker: arrowChecker + }], [["ArrowDown", "mac+ArrowDown"], proto._translateEmpty, { + args: [0, small], + checker: arrowChecker + }], [["ctrl+ArrowDown", "mac+shift+ArrowDown"], proto._translateEmpty, { + args: [0, big], + checker: arrowChecker + }]])); + } + static _type = "freetext"; + constructor(params) { + super({ + ...params, + name: "freeTextEditor" + }); + this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor; + this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize; + } + static initialize(l10n) { + _editor.AnnotationEditor.initialize(l10n, { + strings: ["free_text2_default_content", "editor_free_text2_aria_label"] + }); + const style = getComputedStyle(document.documentElement); + this._internalPadding = parseFloat(style.getPropertyValue("--freetext-padding")); + } + static updateDefaultParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.FREETEXT_SIZE: + FreeTextEditor._defaultFontSize = value; + break; + case _util.AnnotationEditorParamsType.FREETEXT_COLOR: + FreeTextEditor._defaultColor = value; + break; + } + } + updateParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.FREETEXT_SIZE: + this.#updateFontSize(value); + break; + case _util.AnnotationEditorParamsType.FREETEXT_COLOR: + this.#updateColor(value); + break; + } + } + static get defaultPropertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]]; + } + get propertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]]; + } + #updateFontSize(fontSize) { + const setFontsize = size => { + this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`; + this.translate(0, -(size - this.#fontSize) * this.parentScale); + this.#fontSize = size; + this.#setEditorDimensions(); + }; + const savedFontsize = this.#fontSize; + this.addCommands({ + cmd: () => { + setFontsize(fontSize); + }, + undo: () => { + setFontsize(savedFontsize); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.FREETEXT_SIZE, + overwriteIfSameType: true, + keepUndo: true + }); + } + #updateColor(color) { + const savedColor = this.#color; + this.addCommands({ + cmd: () => { + this.#color = this.editorDiv.style.color = color; + }, + undo: () => { + this.#color = this.editorDiv.style.color = savedColor; + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.FREETEXT_COLOR, + overwriteIfSameType: true, + keepUndo: true + }); + } + _translateEmpty(x, y) { + this._uiManager.translateSelectedEditors(x, y, true); + } + getInitialTranslation() { + const scale = this.parentScale; + return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale]; + } + rebuild() { + if (!this.parent) { + return; + } + super.rebuild(); + if (this.div === null) { + return; + } + if (!this.isAttachedToDOM) { + this.parent.add(this); + } + } + enableEditMode() { + if (this.isInEditMode()) { + return; + } + this.parent.setEditingState(false); + this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT); + super.enableEditMode(); + this.overlayDiv.classList.remove("enabled"); + this.editorDiv.contentEditable = true; + this._isDraggable = false; + this.div.removeAttribute("aria-activedescendant"); + this.editorDiv.addEventListener("keydown", this.#boundEditorDivKeydown); + this.editorDiv.addEventListener("focus", this.#boundEditorDivFocus); + this.editorDiv.addEventListener("blur", this.#boundEditorDivBlur); + this.editorDiv.addEventListener("input", this.#boundEditorDivInput); + } + disableEditMode() { + if (!this.isInEditMode()) { + return; + } + this.parent.setEditingState(true); + super.disableEditMode(); + this.overlayDiv.classList.add("enabled"); + this.editorDiv.contentEditable = false; + this.div.setAttribute("aria-activedescendant", this.#editorDivId); + this._isDraggable = true; + this.editorDiv.removeEventListener("keydown", this.#boundEditorDivKeydown); + this.editorDiv.removeEventListener("focus", this.#boundEditorDivFocus); + this.editorDiv.removeEventListener("blur", this.#boundEditorDivBlur); + this.editorDiv.removeEventListener("input", this.#boundEditorDivInput); + this.div.focus({ + preventScroll: true + }); + this.isEditing = false; + this.parent.div.classList.add("freeTextEditing"); + } + focusin(event) { + if (!this._focusEventsAllowed) { + return; + } + super.focusin(event); + if (event.target !== this.editorDiv) { + this.editorDiv.focus(); + } + } + onceAdded() { + if (this.width) { + this.#cheatInitialRect(); + return; + } + this.enableEditMode(); + this.editorDiv.focus(); + if (this._initialOptions?.isCentered) { + this.center(); + } + this._initialOptions = null; + } + isEmpty() { + return !this.editorDiv || this.editorDiv.innerText.trim() === ""; + } + remove() { + this.isEditing = false; + if (this.parent) { + this.parent.setEditingState(true); + this.parent.div.classList.add("freeTextEditing"); + } + super.remove(); + } + #extractText() { + const divs = this.editorDiv.getElementsByTagName("div"); + if (divs.length === 0) { + return this.editorDiv.innerText; + } + const buffer = []; + for (const div of divs) { + buffer.push(div.innerText.replace(/\r\n?|\n/, "")); + } + return buffer.join("\n"); + } + #setEditorDimensions() { + const [parentWidth, parentHeight] = this.parentDimensions; + let rect; + if (this.isAttachedToDOM) { + rect = this.div.getBoundingClientRect(); + } else { + const { + currentLayer, + div + } = this; + const savedDisplay = div.style.display; + div.style.display = "hidden"; + currentLayer.div.append(this.div); + rect = div.getBoundingClientRect(); + div.remove(); + div.style.display = savedDisplay; + } + if (this.rotation % 180 === this.parentRotation % 180) { + this.width = rect.width / parentWidth; + this.height = rect.height / parentHeight; + } else { + this.width = rect.height / parentWidth; + this.height = rect.width / parentHeight; + } + this.fixAndSetPosition(); + } + commit() { + if (!this.isInEditMode()) { + return; + } + super.commit(); + this.disableEditMode(); + const savedText = this.#content; + const newText = this.#content = this.#extractText().trimEnd(); + if (savedText === newText) { + return; + } + const setText = text => { + this.#content = text; + if (!text) { + this.remove(); + return; + } + this.#setContent(); + this._uiManager.rebuild(this); + this.#setEditorDimensions(); + }; + this.addCommands({ + cmd: () => { + setText(newText); + }, + undo: () => { + setText(savedText); + }, + mustExec: false + }); + this.#setEditorDimensions(); + } + shouldGetKeyboardEvents() { + return this.isInEditMode(); + } + enterInEditMode() { + this.enableEditMode(); + this.editorDiv.focus(); + } + dblclick(event) { + this.enterInEditMode(); + } + keydown(event) { + if (event.target === this.div && event.key === "Enter") { + this.enterInEditMode(); + event.preventDefault(); + } + } + editorDivKeydown(event) { + FreeTextEditor._keyboardManager.exec(this, event); + } + editorDivFocus(event) { + this.isEditing = true; + } + editorDivBlur(event) { + this.isEditing = false; + } + editorDivInput(event) { + this.parent.div.classList.toggle("freeTextEditing", this.isEmpty()); + } + disableEditing() { + this.editorDiv.setAttribute("role", "comment"); + this.editorDiv.removeAttribute("aria-multiline"); + } + enableEditing() { + this.editorDiv.setAttribute("role", "textbox"); + this.editorDiv.setAttribute("aria-multiline", true); + } + render() { + if (this.div) { + return this.div; + } + let baseX, baseY; + if (this.width) { + baseX = this.x; + baseY = this.y; + } + super.render(); + this.editorDiv = document.createElement("div"); + this.editorDiv.className = "internal"; + this.editorDiv.setAttribute("id", this.#editorDivId); + this.enableEditing(); + _editor.AnnotationEditor._l10nPromise.get("editor_free_text2_aria_label").then(msg => this.editorDiv?.setAttribute("aria-label", msg)); + _editor.AnnotationEditor._l10nPromise.get("free_text2_default_content").then(msg => this.editorDiv?.setAttribute("default-content", msg)); + this.editorDiv.contentEditable = true; + const { + style + } = this.editorDiv; + style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`; + style.color = this.#color; + this.div.append(this.editorDiv); + this.overlayDiv = document.createElement("div"); + this.overlayDiv.classList.add("overlay", "enabled"); + this.div.append(this.overlayDiv); + (0, _tools.bindEvents)(this, this.div, ["dblclick", "keydown"]); + if (this.width) { + const [parentWidth, parentHeight] = this.parentDimensions; + if (this.annotationElementId) { + const { + position + } = this.#initialData; + let [tx, ty] = this.getInitialTranslation(); + [tx, ty] = this.pageTranslationToScreen(tx, ty); + const [pageWidth, pageHeight] = this.pageDimensions; + const [pageX, pageY] = this.pageTranslation; + let posX, posY; + switch (this.rotation) { + case 0: + posX = baseX + (position[0] - pageX) / pageWidth; + posY = baseY + this.height - (position[1] - pageY) / pageHeight; + break; + case 90: + posX = baseX + (position[0] - pageX) / pageWidth; + posY = baseY - (position[1] - pageY) / pageHeight; + [tx, ty] = [ty, -tx]; + break; + case 180: + posX = baseX - this.width + (position[0] - pageX) / pageWidth; + posY = baseY - (position[1] - pageY) / pageHeight; + [tx, ty] = [-tx, -ty]; + break; + case 270: + posX = baseX + (position[0] - pageX - this.height * pageHeight) / pageWidth; + posY = baseY + (position[1] - pageY - this.width * pageWidth) / pageHeight; + [tx, ty] = [-ty, tx]; + break; + } + this.setAt(posX * parentWidth, posY * parentHeight, tx, ty); + } else { + this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); + } + this.#setContent(); + this._isDraggable = true; + this.editorDiv.contentEditable = false; + } else { + this._isDraggable = false; + this.editorDiv.contentEditable = true; + } + return this.div; + } + #setContent() { + this.editorDiv.replaceChildren(); + if (!this.#content) { + return; + } + for (const line of this.#content.split("\n")) { + const div = document.createElement("div"); + div.append(line ? document.createTextNode(line) : document.createElement("br")); + this.editorDiv.append(div); + } + } + get contentDiv() { + return this.editorDiv; + } + static deserialize(data, parent, uiManager) { + let initialData = null; + if (data instanceof _annotation_layer.FreeTextAnnotationElement) { + const { + data: { + defaultAppearanceData: { + fontSize, + fontColor + }, + rect, + rotation, + id + }, + textContent, + textPosition, + parent: { + page: { + pageNumber + } + } + } = data; + if (!textContent || textContent.length === 0) { + return null; + } + initialData = data = { + annotationType: _util.AnnotationEditorType.FREETEXT, + color: Array.from(fontColor), + fontSize, + value: textContent.join("\n"), + position: textPosition, + pageIndex: pageNumber - 1, + rect, + rotation, + id, + deleted: false + }; + } + const editor = super.deserialize(data, parent, uiManager); + editor.#fontSize = data.fontSize; + editor.#color = _util.Util.makeHexColor(...data.color); + editor.#content = data.value; + editor.annotationElementId = data.id || null; + editor.#initialData = initialData; + return editor; + } + serialize(isForCopying = false) { + if (this.isEmpty()) { + return null; + } + if (this.deleted) { + return { + pageIndex: this.pageIndex, + id: this.annotationElementId, + deleted: true + }; + } + const padding = FreeTextEditor._internalPadding * this.parentScale; + const rect = this.getRect(padding, padding); + const color = _editor.AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color); + const serialized = { + annotationType: _util.AnnotationEditorType.FREETEXT, + color, + fontSize: this.#fontSize, + value: this.#content, + pageIndex: this.pageIndex, + rect, + rotation: this.rotation, + structTreeParentId: this._structTreeParentId + }; + if (isForCopying) { + return serialized; + } + if (this.annotationElementId && !this.#hasElementChanged(serialized)) { + return null; + } + serialized.id = this.annotationElementId; + return serialized; + } + #hasElementChanged(serialized) { + const { + value, + fontSize, + color, + rect, + pageIndex + } = this.#initialData; + return serialized.value !== value || serialized.fontSize !== fontSize || serialized.rect.some((x, i) => Math.abs(x - rect[i]) >= 1) || serialized.color.some((c, i) => c !== color[i]) || serialized.pageIndex !== pageIndex; + } + #cheatInitialRect(delayed = false) { + if (!this.annotationElementId) { + return; + } + this.#setEditorDimensions(); + if (!delayed && (this.width === 0 || this.height === 0)) { + setTimeout(() => this.#cheatInitialRect(true), 0); + return; + } + const padding = FreeTextEditor._internalPadding * this.parentScale; + this.#initialData.rect = this.getRect(padding, padding); + } +} +exports.FreeTextEditor = FreeTextEditor; + +/***/ }), +/* 29 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StampAnnotationElement = exports.InkAnnotationElement = exports.FreeTextAnnotationElement = exports.AnnotationLayer = void 0; +var _util = __w_pdfjs_require__(1); +var _display_utils = __w_pdfjs_require__(6); +var _annotation_storage = __w_pdfjs_require__(3); +var _scripting_utils = __w_pdfjs_require__(30); +var _displayL10n_utils = __w_pdfjs_require__(31); +var _xfa_layer = __w_pdfjs_require__(32); +const DEFAULT_TAB_INDEX = 1000; +const DEFAULT_FONT_SIZE = 9; +const GetElementsByNameSet = new WeakSet(); +function getRectDims(rect) { + return { + width: rect[2] - rect[0], + height: rect[3] - rect[1] + }; +} +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); + case "Sig": + return new SignatureWidgetAnnotationElement(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 { + #hasBorder = false; + constructor(parameters, { + isRenderable = false, + ignoreBorder = false, + createQuadrilaterals = false + } = {}) { + this.isRenderable = isRenderable; + this.data = parameters.data; + this.layer = parameters.layer; + this.linkService = parameters.linkService; + this.downloadManager = parameters.downloadManager; + this.imageResourcesPath = parameters.imageResourcesPath; + this.renderForms = parameters.renderForms; + this.svgFactory = parameters.svgFactory; + this.annotationStorage = parameters.annotationStorage; + this.enableScripting = parameters.enableScripting; + this.hasJSActions = parameters.hasJSActions; + this._fieldObjects = parameters.fieldObjects; + this.parent = parameters.parent; + if (isRenderable) { + this.container = this._createContainer(ignoreBorder); + } + if (createQuadrilaterals) { + this._createQuadrilaterals(); + } + } + static _hasPopupData({ + titleObj, + contentsObj, + richText + }) { + return !!(titleObj?.str || contentsObj?.str || richText?.str); + } + get hasPopupData() { + return AnnotationElement._hasPopupData(this.data); + } + _createContainer(ignoreBorder) { + const { + data, + parent: { + page, + viewport + } + } = this; + const container = document.createElement("section"); + container.setAttribute("data-annotation-id", data.id); + if (!(this instanceof WidgetAnnotationElement)) { + container.tabIndex = DEFAULT_TAB_INDEX; + } + container.style.zIndex = this.parent.zIndex++; + if (this.data.popupRef) { + container.setAttribute("aria-haspopup", "dialog"); + } + if (data.noRotate) { + container.classList.add("norotate"); + } + const { + pageWidth, + pageHeight, + pageX, + pageY + } = viewport.rawDims; + if (!data.rect || this instanceof PopupAnnotationElement) { + const { + rotation + } = data; + if (!data.hasOwnCanvas && rotation !== 0) { + this.setRotation(rotation, container); + } + return container; + } + const { + width, + height + } = getRectDims(data.rect); + 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]]); + if (!ignoreBorder && data.borderStyle.width > 0) { + container.style.borderWidth = `${data.borderStyle.width}px`; + const horizontalRadius = data.borderStyle.horizontalCornerRadius; + const verticalRadius = data.borderStyle.verticalCornerRadius; + if (horizontalRadius > 0 || verticalRadius > 0) { + const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`; + container.style.borderRadius = radius; + } else if (this instanceof RadioButtonWidgetAnnotationElement) { + const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`; + 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; + } + const borderColor = data.borderColor || null; + if (borderColor) { + this.#hasBorder = true; + container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0); + } else { + container.style.borderWidth = 0; + } + } + container.style.left = `${100 * (rect[0] - pageX) / pageWidth}%`; + container.style.top = `${100 * (rect[1] - pageY) / pageHeight}%`; + const { + rotation + } = data; + if (data.hasOwnCanvas || rotation === 0) { + container.style.width = `${100 * width / pageWidth}%`; + container.style.height = `${100 * height / pageHeight}%`; + } else { + this.setRotation(rotation, container); + } + return container; + } + setRotation(angle, container = this.container) { + if (!this.data.rect) { + return; + } + const { + pageWidth, + pageHeight + } = this.parent.viewport.rawDims; + const { + width, + height + } = getRectDims(this.data.rect); + let elementWidth, elementHeight; + if (angle % 180 === 0) { + elementWidth = 100 * width / pageWidth; + elementHeight = 100 * height / pageHeight; + } else { + elementWidth = 100 * height / pageWidth; + elementHeight = 100 * width / pageHeight; + } + container.style.width = `${elementWidth}%`; + container.style.height = `${elementHeight}%`; + container.setAttribute("data-main-rotation", (360 - angle) % 360); + } + get _commonActions() { + const setColor = (jsName, styleName, event) => { + const color = event.detail[jsName]; + const colorType = color[0]; + const colorArray = color.slice(1); + event.target.style[styleName] = _scripting_utils.ColorConverters[`${colorType}_HTML`](colorArray); + this.annotationStorage.setValue(this.data.id, { + [styleName]: _scripting_utils.ColorConverters[`${colorType}_rgb`](colorArray) + }); + }; + return (0, _util.shadow)(this, "_commonActions", { + display: event => { + const { + display + } = event.detail; + const hidden = display % 2 === 1; + this.container.style.visibility = hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + noView: hidden, + noPrint: display === 1 || display === 2 + }); + }, + print: event => { + this.annotationStorage.setValue(this.data.id, { + noPrint: !event.detail.print + }); + }, + hidden: event => { + const { + hidden + } = event.detail; + this.container.style.visibility = hidden ? "hidden" : "visible"; + this.annotationStorage.setValue(this.data.id, { + noPrint: hidden, + noView: hidden + }); + }, + focus: event => { + setTimeout(() => event.target.focus({ + preventScroll: false + }), 0); + }, + userName: event => { + event.target.title = event.detail.userName; + }, + readonly: event => { + event.target.disabled = event.detail.readonly; + }, + required: event => { + this._setRequired(event.target, event.detail.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); + }, + rotation: event => { + const angle = event.detail.rotation; + this.setRotation(angle); + this.annotationStorage.setValue(this.data.id, { + rotation: angle + }); + } + }); + } + _dispatchEventFromSandbox(actions, jsEvent) { + const commonActions = this._commonActions; + for (const name of Object.keys(jsEvent.detail)) { + const action = actions[name] || commonActions[name]; + action?.(jsEvent); + } + } + _setDefaultPropertiesFromJS(element) { + if (!this.enableScripting) { + return; + } + const storedData = this.annotationStorage.getRawValue(this.data.id); + if (!storedData) { + return; + } + const commonActions = this._commonActions; + for (const [actionName, detail] of Object.entries(storedData)) { + const action = commonActions[actionName]; + if (action) { + const eventProxy = { + detail: { + [actionName]: detail + }, + target: element + }; + action(eventProxy); + delete storedData[actionName]; + } + } + } + _createQuadrilaterals() { + if (!this.container) { + return; + } + const { + quadPoints + } = this.data; + if (!quadPoints) { + return; + } + const [rectBlX, rectBlY, rectTrX, rectTrY] = this.data.rect; + if (quadPoints.length === 1) { + const [, { + x: trX, + y: trY + }, { + x: blX, + y: blY + }] = quadPoints[0]; + if (rectTrX === trX && rectTrY === trY && rectBlX === blX && rectBlY === blY) { + return; + } + } + const { + style + } = this.container; + let svgBuffer; + if (this.#hasBorder) { + const { + borderColor, + borderWidth + } = style; + style.borderWidth = 0; + svgBuffer = ["url('data:image/svg+xml;utf8,", ``, ``]; + this.container.classList.add("hasBorder"); + } + const width = rectTrX - rectBlX; + const height = rectTrY - rectBlY; + const { + svgFactory + } = this; + const svg = svgFactory.createElement("svg"); + svg.classList.add("quadrilateralsContainer"); + svg.setAttribute("width", 0); + svg.setAttribute("height", 0); + const defs = svgFactory.createElement("defs"); + svg.append(defs); + const clipPath = svgFactory.createElement("clipPath"); + const id = `clippath_${this.data.id}`; + clipPath.setAttribute("id", id); + clipPath.setAttribute("clipPathUnits", "objectBoundingBox"); + defs.append(clipPath); + for (const [, { + x: trX, + y: trY + }, { + x: blX, + y: blY + }] of quadPoints) { + const rect = svgFactory.createElement("rect"); + const x = (blX - rectBlX) / width; + const y = (rectTrY - trY) / height; + const rectWidth = (trX - blX) / width; + const rectHeight = (trY - blY) / height; + rect.setAttribute("x", x); + rect.setAttribute("y", y); + rect.setAttribute("width", rectWidth); + rect.setAttribute("height", rectHeight); + clipPath.append(rect); + svgBuffer?.push(``); + } + if (this.#hasBorder) { + svgBuffer.push(`')`); + style.backgroundImage = svgBuffer.join(""); + } + this.container.append(svg); + this.container.style.clipPath = `url(#${id})`; + } + _createPopup() { + const { + container, + data + } = this; + container.setAttribute("aria-haspopup", "dialog"); + const popup = new PopupAnnotationElement({ + data: { + color: data.color, + titleObj: data.titleObj, + modificationDate: data.modificationDate, + contentsObj: data.contentsObj, + richText: data.richText, + parentRect: data.rect, + borderStyle: 0, + id: `popup_${data.id}`, + rotation: data.rotation + }, + parent: this.parent, + elements: [this] + }); + this.parent.div.append(popup.render()); + } + render() { + (0, _util.unreachable)("Abstract method `AnnotationElement.render` called"); + } + _getElementsByName(name, skipId = null) { + const fields = []; + if (this._fieldObjects) { + const fieldObj = this._fieldObjects[name]; + if (fieldObj) { + for (const { + page, + id, + exportValues + } of fieldObj) { + if (page === -1) { + continue; + } + if (id === skipId) { + continue; + } + const exportValue = typeof exportValues === "string" ? exportValues : null; + const domElement = document.querySelector(`[data-element-id="${id}"]`); + if (domElement && !GetElementsByNameSet.has(domElement)) { + (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`); + continue; + } + fields.push({ + id, + exportValue, + domElement + }); + } + } + return fields; + } + for (const domElement of document.getElementsByName(name)) { + const { + exportValue + } = domElement; + const id = domElement.getAttribute("data-element-id"); + if (id === skipId) { + continue; + } + if (!GetElementsByNameSet.has(domElement)) { + continue; + } + fields.push({ + id, + exportValue, + domElement + }); + } + return fields; + } + show() { + if (this.container) { + this.container.hidden = false; + } + this.popup?.maybeShow(); + } + hide() { + if (this.container) { + this.container.hidden = true; + } + this.popup?.forceHide(); + } + getElementsToTriggerPopup() { + return this.container; + } + addHighlightArea() { + const triggers = this.getElementsToTriggerPopup(); + if (Array.isArray(triggers)) { + for (const element of triggers) { + element.classList.add("highlightArea"); + } + } else { + triggers.classList.add("highlightArea"); + } + } + _editOnDoubleClick() { + const { + annotationEditorType: mode, + data: { + id: editId + } + } = this; + this.container.addEventListener("dblclick", () => { + this.linkService.eventBus?.dispatch("switchannotationeditormode", { + source: this, + mode, + editId + }); + }); + } +} +class LinkAnnotationElement extends AnnotationElement { + constructor(parameters, options = null) { + super(parameters, { + isRenderable: true, + ignoreBorder: !!options?.ignoreBorder, + createQuadrilaterals: true + }); + this.isTooltipOnly = parameters.data.isTooltipOnly; + } + render() { + const { + data, + linkService + } = this; + const link = document.createElement("a"); + link.setAttribute("data-element-id", data.id); + let isBound = false; + if (data.url) { + linkService.addLinkAttributes(link, data.url, data.newWindow); + isBound = true; + } else if (data.action) { + this._bindNamedAction(link, data.action); + isBound = true; + } else if (data.attachment) { + this._bindAttachment(link, data.attachment); + isBound = true; + } else if (data.setOCGState) { + this.#bindSetOCGState(link, data.setOCGState); + isBound = true; + } else if (data.dest) { + this._bindLink(link, data.dest); + isBound = true; + } else { + if (data.actions && (data.actions.Action || data.actions["Mouse Up"] || data.actions["Mouse Down"]) && this.enableScripting && this.hasJSActions) { + this._bindJSAction(link, data); + isBound = true; + } + if (data.resetForm) { + this._bindResetFormAction(link, data.resetForm); + isBound = true; + } else if (this.isTooltipOnly && !isBound) { + this._bindLink(link, ""); + isBound = true; + } + } + this.container.classList.add("linkAnnotation"); + if (isBound) { + this.container.append(link); + } + return this.container; + } + #setInternalLink() { + this.container.setAttribute("data-internal-link", ""); + } + _bindLink(link, destination) { + link.href = this.linkService.getDestinationHash(destination); + link.onclick = () => { + if (destination) { + this.linkService.goToDestination(destination); + } + return false; + }; + if (destination || destination === "") { + this.#setInternalLink(); + } + } + _bindNamedAction(link, action) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.linkService.executeNamedAction(action); + return false; + }; + this.#setInternalLink(); + } + _bindAttachment(link, attachment) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.downloadManager?.openOrDownloadData(this.container, attachment.content, attachment.filename); + return false; + }; + this.#setInternalLink(); + } + #bindSetOCGState(link, action) { + link.href = this.linkService.getAnchorUrl(""); + link.onclick = () => { + this.linkService.executeSetOCGState(action); + return false; + }; + this.#setInternalLink(); + } + _bindJSAction(link, data) { + link.href = this.linkService.getAnchorUrl(""); + const map = new Map([["Action", "onclick"], ["Mouse Up", "onmouseup"], ["Mouse Down", "onmousedown"]]); + for (const name of Object.keys(data.actions)) { + const jsName = map.get(name); + if (!jsName) { + continue; + } + link[jsName] = () => { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: data.id, + name + } + }); + return false; + }; + } + if (!link.onclick) { + link.onclick = () => false; + } + this.#setInternalLink(); + } + _bindResetFormAction(link, resetForm) { + const otherClickAction = link.onclick; + if (!otherClickAction) { + link.href = this.linkService.getAnchorUrl(""); + } + this.#setInternalLink(); + if (!this._fieldObjects) { + (0, _util.warn)(`_bindResetFormAction - "resetForm" action not supported, ` + "ensure that the `fieldObjects` parameter is provided."); + if (!otherClickAction) { + link.onclick = () => false; + } + return; + } + link.onclick = () => { + otherClickAction?.(); + const { + fields: resetFormFields, + refs: resetFormRefs, + include + } = resetForm; + const allFields = []; + if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) { + const fieldIds = new Set(resetFormRefs); + for (const fieldName of resetFormFields) { + const fields = this._fieldObjects[fieldName] || []; + for (const { + id + } of fields) { + fieldIds.add(id); + } + } + for (const fields of Object.values(this._fieldObjects)) { + for (const field of fields) { + if (fieldIds.has(field.id) === include) { + allFields.push(field); + } + } + } + } else { + for (const fields of Object.values(this._fieldObjects)) { + allFields.push(...fields); + } + } + const storage = this.annotationStorage; + const allIds = []; + for (const field of allFields) { + const { + id + } = field; + allIds.push(id); + switch (field.type) { + case "text": + { + const value = field.defaultValue || ""; + storage.setValue(id, { + value + }); + break; + } + case "checkbox": + case "radiobutton": + { + const value = field.defaultValue === field.exportValues; + storage.setValue(id, { + value + }); + break; + } + case "combobox": + case "listbox": + { + const value = field.defaultValue || ""; + storage.setValue(id, { + value + }); + break; + } + default: + continue; + } + const domElement = document.querySelector(`[data-element-id="${id}"]`); + if (!domElement) { + continue; + } else if (!GetElementsByNameSet.has(domElement)) { + (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`); + continue; + } + domElement.dispatchEvent(new Event("resetform")); + } + if (this.enableScripting) { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: "app", + ids: allIds, + name: "ResetForm" + } + }); + } + return false; + }; + } +} +class TextAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true + }); + } + render() { + this.container.classList.add("textAnnotation"); + const image = document.createElement("img"); + 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.popupRef && this.hasPopupData) { + this._createPopup(); + } + this.container.append(image); + return this.container; + } +} +class WidgetAnnotationElement extends AnnotationElement { + render() { + if (this.data.alternativeText) { + this.container.title = this.data.alternativeText; + } + return this.container; + } + showElementAndHideCanvas(element) { + if (this.data.hasOwnCanvas) { + if (element.previousSibling?.nodeName === "CANVAS") { + element.previousSibling.hidden = true; + } + element.hidden = false; + } + } + _getKeyModifier(event) { + const { + isWin, + isMac + } = _util.FeatureTest.platform; + return isWin && event.ctrlKey || isMac && event.metaKey; + } + _setEventListener(element, elementData, 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 => { + if (baseName === "blur") { + if (!elementData.focused || !event.relatedTarget) { + return; + } + elementData.focused = false; + } else if (baseName === "focus") { + if (elementData.focused) { + return; + } + elementData.focused = true; + } + if (!valueGetter) { + return; + } + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id: this.data.id, + name: eventName, + value: valueGetter(event) + } + }); + }); + } + } + _setEventListeners(element, elementData, names, getter) { + for (const [baseName, eventName] of names) { + if (eventName === "Action" || this.data.actions?.[eventName]) { + if (eventName === "Focus" || eventName === "Blur") { + elementData ||= { + focused: false + }; + } + this._setEventListener(element, elementData, baseName, eventName, getter); + if (eventName === "Focus" && !this.data.actions?.Blur) { + this._setEventListener(element, elementData, "blur", "Blur", null); + } else if (eventName === "Blur" && !this.data.actions?.Focus) { + this._setEventListener(element, elementData, "focus", "Focus", null); + } + } + } + } + _setBackgroundColor(element) { + const color = this.data.backgroundColor || null; + element.style.backgroundColor = color === null ? "transparent" : _util.Util.makeHexColor(color[0], color[1], color[2]); + } + _setTextStyle(element) { + const TEXT_ALIGNMENT = ["left", "center", "right"]; + const { + fontColor + } = this.data.defaultAppearanceData; + const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE; + const style = element.style; + let computedFontSize; + const BORDER_SIZE = 2; + const roundToOneDecimal = x => Math.round(10 * x) / 10; + if (this.data.multiLine) { + const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); + const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1; + const lineHeight = height / numberOfLines; + computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR)); + } else { + const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE); + computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR)); + } + style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`; + style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]); + if (this.data.textAlignment !== null) { + style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment]; + } + } + _setRequired(element, isRequired) { + if (isRequired) { + element.setAttribute("required", true); + } else { + element.removeAttribute("required"); + } + element.setAttribute("aria-required", isRequired); + } +} +class TextWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue; + super(parameters, { + isRenderable + }); + } + setPropertyOnSiblings(base, key, value, keyInStorage) { + const storage = this.annotationStorage; + for (const element of this._getElementsByName(base.name, base.id)) { + if (element.domElement) { + element.domElement[key] = value; + } + storage.setValue(element.id, { + [keyInStorage]: value + }); + } + } + render() { + const storage = this.annotationStorage; + const id = this.data.id; + this.container.classList.add("textWidgetAnnotation"); + let element = null; + if (this.renderForms) { + const storedData = storage.getValue(id, { + value: this.data.fieldValue + }); + let textContent = storedData.value || ""; + const maxLen = storage.getValue(id, { + charLimit: this.data.maxLen + }).charLimit; + if (maxLen && textContent.length > maxLen) { + textContent = textContent.slice(0, maxLen); + } + let fieldFormattedValues = storedData.formattedValue || this.data.textContent?.join("\n") || null; + if (fieldFormattedValues && this.data.comb) { + fieldFormattedValues = fieldFormattedValues.replaceAll(/\s+/g, ""); + } + const elementData = { + userValue: textContent, + formattedValue: fieldFormattedValues, + lastCommittedValue: null, + commitKey: 1, + focused: false + }; + if (this.data.multiLine) { + element = document.createElement("textarea"); + element.textContent = fieldFormattedValues ?? textContent; + if (this.data.doNotScroll) { + element.style.overflowY = "hidden"; + } + } else { + element = document.createElement("input"); + element.type = "text"; + element.setAttribute("value", fieldFormattedValues ?? textContent); + if (this.data.doNotScroll) { + element.style.overflowX = "hidden"; + } + } + if (this.data.hasOwnCanvas) { + element.hidden = true; + } + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = this.data.readOnly; + element.name = this.data.fieldName; + element.tabIndex = DEFAULT_TAB_INDEX; + this._setRequired(element, this.data.required); + if (maxLen) { + element.maxLength = maxLen; + } + element.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + this.setPropertyOnSiblings(element, "value", event.target.value, "value"); + elementData.formattedValue = null; + }); + element.addEventListener("resetform", event => { + const defaultValue = this.data.defaultFieldValue ?? ""; + element.value = elementData.userValue = defaultValue; + elementData.formattedValue = null; + }); + let blurListener = event => { + const { + formattedValue + } = elementData; + if (formattedValue !== null && formattedValue !== undefined) { + event.target.value = formattedValue; + } + event.target.scrollLeft = 0; + }; + if (this.enableScripting && this.hasJSActions) { + element.addEventListener("focus", event => { + if (elementData.focused) { + return; + } + const { + target + } = event; + if (elementData.userValue) { + target.value = elementData.userValue; + } + elementData.lastCommittedValue = target.value; + elementData.commitKey = 1; + elementData.focused = true; + }); + element.addEventListener("updatefromsandbox", jsEvent => { + this.showElementAndHideCanvas(jsEvent.target); + const actions = { + value(event) { + elementData.userValue = event.detail.value ?? ""; + storage.setValue(id, { + value: elementData.userValue.toString() + }); + event.target.value = elementData.userValue; + }, + formattedValue(event) { + const { + formattedValue + } = event.detail; + elementData.formattedValue = formattedValue; + if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) { + event.target.value = formattedValue; + } + storage.setValue(id, { + formattedValue + }); + }, + selRange(event) { + event.target.setSelectionRange(...event.detail.selRange); + }, + charLimit: event => { + const { + charLimit + } = event.detail; + const { + target + } = event; + if (charLimit === 0) { + target.removeAttribute("maxLength"); + return; + } + target.setAttribute("maxLength", charLimit); + let value = elementData.userValue; + if (!value || value.length <= charLimit) { + return; + } + value = value.slice(0, charLimit); + target.value = elementData.userValue = value; + storage.setValue(id, { + value + }); + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey: 1, + selStart: target.selectionStart, + selEnd: target.selectionEnd + } + }); + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + element.addEventListener("keydown", event => { + elementData.commitKey = 1; + let commitKey = -1; + if (event.key === "Escape") { + commitKey = 0; + } else if (event.key === "Enter" && !this.data.multiLine) { + commitKey = 2; + } else if (event.key === "Tab") { + elementData.commitKey = 3; + } + if (commitKey === -1) { + return; + } + const { + value + } = event.target; + if (elementData.lastCommittedValue === value) { + return; + } + elementData.lastCommittedValue = value; + elementData.userValue = value; + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + }); + const _blurListener = blurListener; + blurListener = null; + element.addEventListener("blur", event => { + if (!elementData.focused || !event.relatedTarget) { + return; + } + elementData.focused = false; + const { + value + } = event.target; + elementData.userValue = value; + if (elementData.lastCommittedValue !== value) { + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + willCommit: true, + commitKey: elementData.commitKey, + selStart: event.target.selectionStart, + selEnd: event.target.selectionEnd + } + }); + } + _blurListener(event); + }); + if (this.data.actions?.Keystroke) { + element.addEventListener("beforeinput", event => { + elementData.lastCommittedValue = null; + const { + data, + target + } = event; + const { + value, + selectionStart, + selectionEnd + } = target; + let selStart = selectionStart, + selEnd = selectionEnd; + switch (event.inputType) { + case "deleteWordBackward": + { + const match = value.substring(0, selectionStart).match(/\w*[^\w]*$/); + if (match) { + selStart -= match[0].length; + } + break; + } + case "deleteWordForward": + { + const match = value.substring(selectionStart).match(/^[^\w]*\w*/); + if (match) { + selEnd += match[0].length; + } + break; + } + case "deleteContentBackward": + if (selectionStart === selectionEnd) { + selStart -= 1; + } + break; + case "deleteContentForward": + if (selectionStart === selectionEnd) { + selEnd += 1; + } + break; + } + event.preventDefault(); + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value, + change: data || "", + willCommit: false, + selStart, + selEnd + } + }); + }); + } + this._setEventListeners(element, elementData, [["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); + } + if (this.data.comb) { + const fieldWidth = this.data.rect[2] - this.data.rect[0]; + const combWidth = fieldWidth / maxLen; + element.classList.add("comb"); + element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`; + } + } else { + element = document.createElement("div"); + element.textContent = this.data.fieldValue; + element.style.verticalAlign = "middle"; + element.style.display = "table-cell"; + } + this._setTextStyle(element); + this._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class SignatureWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: !!parameters.data.hasOwnCanvas + }); + } +} +class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + const storage = this.annotationStorage; + const data = this.data; + const id = data.id; + let value = storage.getValue(id, { + value: data.exportValue === data.fieldValue + }).value; + if (typeof value === "string") { + value = value !== "Off"; + storage.setValue(id, { + value + }); + } + this.container.classList.add("buttonWidgetAnnotation", "checkBox"); + const element = document.createElement("input"); + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = data.readOnly; + this._setRequired(element, this.data.required); + element.type = "checkbox"; + element.name = data.fieldName; + if (value) { + element.setAttribute("checked", true); + } + element.setAttribute("exportValue", data.exportValue); + element.tabIndex = DEFAULT_TAB_INDEX; + element.addEventListener("change", event => { + const { + name, + checked + } = event.target; + for (const checkbox of this._getElementsByName(name, id)) { + const curChecked = checked && checkbox.exportValue === data.exportValue; + if (checkbox.domElement) { + checkbox.domElement.checked = curChecked; + } + storage.setValue(checkbox.id, { + value: curChecked + }); + } + storage.setValue(id, { + value: checked + }); + }); + element.addEventListener("resetform", event => { + const defaultValue = data.defaultFieldValue || "Off"; + event.target.checked = defaultValue === data.exportValue; + }); + 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, null, [["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._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + this.container.classList.add("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"); + GetElementsByNameSet.add(element); + element.setAttribute("data-element-id", id); + element.disabled = data.readOnly; + this._setRequired(element, this.data.required); + element.type = "radio"; + element.name = data.fieldName; + if (value) { + element.setAttribute("checked", true); + } + element.tabIndex = DEFAULT_TAB_INDEX; + element.addEventListener("change", event => { + const { + name, + checked + } = event.target; + for (const radio of this._getElementsByName(name, id)) { + storage.setValue(radio.id, { + value: false + }); + } + storage.setValue(id, { + value: checked + }); + }); + element.addEventListener("resetform", event => { + const defaultValue = data.defaultFieldValue; + event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue; + }); + 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 this._getElementsByName(event.target.name)) { + const curChecked = checked && radio.id === id; + if (radio.domElement) { + radio.domElement.checked = curChecked; + } + storage.setValue(radio.id, { + value: curChecked + }); + } + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + this._setEventListeners(element, null, [["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._setBackgroundColor(element); + this._setDefaultPropertiesFromJS(element); + this.container.append(element); + return this.container; + } +} +class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { + constructor(parameters) { + super(parameters, { + ignoreBorder: parameters.data.hasAppearance + }); + } + render() { + const container = super.render(); + container.classList.add("buttonWidgetAnnotation", "pushButton"); + if (this.data.alternativeText) { + container.title = this.data.alternativeText; + } + const linkElement = container.lastChild; + if (this.enableScripting && this.hasJSActions && linkElement) { + this._setDefaultPropertiesFromJS(linkElement); + linkElement.addEventListener("updatefromsandbox", jsEvent => { + this._dispatchEventFromSandbox({}, jsEvent); + }); + } + return container; + } +} +class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: parameters.renderForms + }); + } + render() { + this.container.classList.add("choiceWidgetAnnotation"); + const storage = this.annotationStorage; + const id = this.data.id; + const storedData = storage.getValue(id, { + value: this.data.fieldValue + }); + const selectElement = document.createElement("select"); + GetElementsByNameSet.add(selectElement); + selectElement.setAttribute("data-element-id", id); + selectElement.disabled = this.data.readOnly; + this._setRequired(selectElement, this.data.required); + selectElement.name = this.data.fieldName; + selectElement.tabIndex = DEFAULT_TAB_INDEX; + let addAnEmptyEntry = this.data.combo && this.data.options.length > 0; + if (!this.data.combo) { + selectElement.size = this.data.options.length; + if (this.data.multiSelect) { + selectElement.multiple = true; + } + } + selectElement.addEventListener("resetform", event => { + const defaultValue = this.data.defaultFieldValue; + for (const option of selectElement.options) { + option.selected = option.value === defaultValue; + } + }); + for (const option of this.data.options) { + const optionElement = document.createElement("option"); + optionElement.textContent = option.displayValue; + optionElement.value = option.exportValue; + if (storedData.value.includes(option.exportValue)) { + optionElement.setAttribute("selected", true); + addAnEmptyEntry = false; + } + selectElement.append(optionElement); + } + let removeEmptyEntry = null; + if (addAnEmptyEntry) { + const noneOptionElement = document.createElement("option"); + noneOptionElement.value = " "; + noneOptionElement.setAttribute("hidden", true); + noneOptionElement.setAttribute("selected", true); + selectElement.prepend(noneOptionElement); + removeEmptyEntry = () => { + noneOptionElement.remove(); + selectElement.removeEventListener("input", removeEmptyEntry); + removeEmptyEntry = null; + }; + selectElement.addEventListener("input", removeEmptyEntry); + } + const getValue = isExport => { + const name = isExport ? "value" : "textContent"; + const { + options, + multiple + } = selectElement; + if (!multiple) { + return options.selectedIndex === -1 ? null : options[options.selectedIndex][name]; + } + return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]); + }; + let selectedValues = getValue(false); + 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) { + removeEmptyEntry?.(); + const value = event.detail.value; + const values = new Set(Array.isArray(value) ? value : [value]); + for (const option of selectElement.options) { + option.selected = values.has(option.value); + } + storage.setValue(id, { + value: getValue(true) + }); + selectedValues = getValue(false); + }, + 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(true), + items: getItems(event) + }); + selectedValues = getValue(false); + }, + clear(event) { + while (selectElement.length !== 0) { + selectElement.remove(0); + } + storage.setValue(id, { + value: null, + items: [] + }); + selectedValues = getValue(false); + }, + insert(event) { + const { + index, + displayValue, + exportValue + } = event.detail.insert; + const selectChild = selectElement.children[index]; + const optionElement = document.createElement("option"); + optionElement.textContent = displayValue; + optionElement.value = exportValue; + if (selectChild) { + selectChild.before(optionElement); + } else { + selectElement.append(optionElement); + } + storage.setValue(id, { + value: getValue(true), + items: getItems(event) + }); + selectedValues = getValue(false); + }, + 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.append(optionElement); + } + if (selectElement.options.length > 0) { + selectElement.options[0].selected = true; + } + storage.setValue(id, { + value: getValue(true), + items: getItems(event) + }); + selectedValues = getValue(false); + }, + indices(event) { + const indices = new Set(event.detail.indices); + for (const option of event.target.options) { + option.selected = indices.has(option.index); + } + storage.setValue(id, { + value: getValue(true) + }); + selectedValues = getValue(false); + }, + editable(event) { + event.target.disabled = !event.detail.editable; + } + }; + this._dispatchEventFromSandbox(actions, jsEvent); + }); + selectElement.addEventListener("input", event => { + const exportValue = getValue(true); + storage.setValue(id, { + value: exportValue + }); + event.preventDefault(); + this.linkService.eventBus?.dispatch("dispatcheventinsandbox", { + source: this, + detail: { + id, + name: "Keystroke", + value: selectedValues, + changeEx: exportValue, + willCommit: false, + commitKey: 1, + keyDown: false + } + }); + }); + this._setEventListeners(selectElement, null, [["focus", "Focus"], ["blur", "Blur"], ["mousedown", "Mouse Down"], ["mouseenter", "Mouse Enter"], ["mouseleave", "Mouse Exit"], ["mouseup", "Mouse Up"], ["input", "Action"], ["input", "Validate"]], event => event.target.value); + } else { + selectElement.addEventListener("input", function (event) { + storage.setValue(id, { + value: getValue(true) + }); + }); + } + if (this.data.combo) { + this._setTextStyle(selectElement); + } else {} + this._setBackgroundColor(selectElement); + this._setDefaultPropertiesFromJS(selectElement); + this.container.append(selectElement); + return this.container; + } +} +class PopupAnnotationElement extends AnnotationElement { + constructor(parameters) { + const { + data, + elements + } = parameters; + super(parameters, { + isRenderable: AnnotationElement._hasPopupData(data) + }); + this.elements = elements; + } + render() { + this.container.classList.add("popupAnnotation"); + const popup = new PopupElement({ + container: this.container, + color: this.data.color, + titleObj: this.data.titleObj, + modificationDate: this.data.modificationDate, + contentsObj: this.data.contentsObj, + richText: this.data.richText, + rect: this.data.rect, + parentRect: this.data.parentRect || null, + parent: this.parent, + elements: this.elements, + open: this.data.open + }); + const elementIds = []; + for (const element of this.elements) { + element.popup = popup; + elementIds.push(element.data.id); + element.addHighlightArea(); + } + this.container.setAttribute("aria-controls", elementIds.map(id => `${_util.AnnotationPrefix}${id}`).join(",")); + return this.container; + } +} +class PopupElement { + #dateTimePromise = null; + #boundKeyDown = this.#keyDown.bind(this); + #boundHide = this.#hide.bind(this); + #boundShow = this.#show.bind(this); + #boundToggle = this.#toggle.bind(this); + #color = null; + #container = null; + #contentsObj = null; + #elements = null; + #parent = null; + #parentRect = null; + #pinned = false; + #popup = null; + #rect = null; + #richText = null; + #titleObj = null; + #wasVisible = false; + constructor({ + container, + color, + elements, + titleObj, + modificationDate, + contentsObj, + richText, + parent, + rect, + parentRect, + open + }) { + this.#container = container; + this.#titleObj = titleObj; + this.#contentsObj = contentsObj; + this.#richText = richText; + this.#parent = parent; + this.#color = color; + this.#rect = rect; + this.#parentRect = parentRect; + this.#elements = elements; + const dateObject = _display_utils.PDFDateString.toDateObject(modificationDate); + if (dateObject) { + this.#dateTimePromise = parent.l10n.get("annotation_date_string", { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + } + this.trigger = elements.flatMap(e => e.getElementsToTriggerPopup()); + for (const element of this.trigger) { + element.addEventListener("click", this.#boundToggle); + element.addEventListener("mouseenter", this.#boundShow); + element.addEventListener("mouseleave", this.#boundHide); + element.classList.add("popupTriggerArea"); + } + for (const element of elements) { + element.container?.addEventListener("keydown", this.#boundKeyDown); + } + this.#container.hidden = true; + if (open) { + this.#toggle(); + } + } + render() { + if (this.#popup) { + return; + } + const { + page: { + view + }, + viewport: { + rawDims: { + pageWidth, + pageHeight, + pageX, + pageY + } + } + } = this.#parent; + const popup = this.#popup = document.createElement("div"); + popup.className = "popup"; + if (this.#color) { + const baseColor = popup.style.outlineColor = _util.Util.makeHexColor(...this.#color); + if (CSS.supports("background-color", "color-mix(in srgb, red 30%, white)")) { + popup.style.backgroundColor = `color-mix(in srgb, ${baseColor} 30%, white)`; + } else { + const BACKGROUND_ENLIGHT = 0.7; + popup.style.backgroundColor = _util.Util.makeHexColor(...this.#color.map(c => Math.floor(BACKGROUND_ENLIGHT * (255 - c) + c))); + } + } + const header = document.createElement("span"); + header.className = "header"; + const title = document.createElement("h1"); + header.append(title); + ({ + dir: title.dir, + str: title.textContent + } = this.#titleObj); + popup.append(header); + if (this.#dateTimePromise) { + const modificationDate = document.createElement("span"); + modificationDate.classList.add("popupDate"); + this.#dateTimePromise.then(localized => { + modificationDate.textContent = localized; + }); + header.append(modificationDate); + } + const contentsObj = this.#contentsObj; + const richText = this.#richText; + if (richText?.str && (!contentsObj?.str || contentsObj.str === richText.str)) { + _xfa_layer.XfaLayer.render({ + xfaHtml: richText.html, + intent: "richText", + div: popup + }); + popup.lastChild.classList.add("richText", "popupContent"); + } else { + const contents = this._formatContents(contentsObj); + popup.append(contents); + } + let useParentRect = !!this.#parentRect; + let rect = useParentRect ? this.#parentRect : this.#rect; + for (const element of this.#elements) { + if (!rect || _util.Util.intersect(element.data.rect, rect) !== null) { + rect = element.data.rect; + useParentRect = true; + break; + } + } + const normalizedRect = _util.Util.normalizeRect([rect[0], view[3] - rect[1] + view[1], rect[2], view[3] - rect[3] + view[1]]); + const HORIZONTAL_SPACE_AFTER_ANNOTATION = 5; + const parentWidth = useParentRect ? rect[2] - rect[0] + HORIZONTAL_SPACE_AFTER_ANNOTATION : 0; + const popupLeft = normalizedRect[0] + parentWidth; + const popupTop = normalizedRect[1]; + const { + style + } = this.#container; + style.left = `${100 * (popupLeft - pageX) / pageWidth}%`; + style.top = `${100 * (popupTop - pageY) / pageHeight}%`; + this.#container.append(popup); + } + _formatContents({ + str, + dir + }) { + const p = document.createElement("p"); + p.classList.add("popupContent"); + p.dir = dir; + const lines = str.split(/(?:\r\n?|\n)/); + for (let i = 0, ii = lines.length; i < ii; ++i) { + const line = lines[i]; + p.append(document.createTextNode(line)); + if (i < ii - 1) { + p.append(document.createElement("br")); + } + } + return p; + } + #keyDown(event) { + if (event.altKey || event.shiftKey || event.ctrlKey || event.metaKey) { + return; + } + if (event.key === "Enter" || event.key === "Escape" && this.#pinned) { + this.#toggle(); + } + } + #toggle() { + this.#pinned = !this.#pinned; + if (this.#pinned) { + this.#show(); + this.#container.addEventListener("click", this.#boundToggle); + this.#container.addEventListener("keydown", this.#boundKeyDown); + } else { + this.#hide(); + this.#container.removeEventListener("click", this.#boundToggle); + this.#container.removeEventListener("keydown", this.#boundKeyDown); + } + } + #show() { + if (!this.#popup) { + this.render(); + } + if (!this.isVisible) { + this.#container.hidden = false; + this.#container.style.zIndex = parseInt(this.#container.style.zIndex) + 1000; + } else if (this.#pinned) { + this.#container.classList.add("focused"); + } + } + #hide() { + this.#container.classList.remove("focused"); + if (this.#pinned || !this.isVisible) { + return; + } + this.#container.hidden = true; + this.#container.style.zIndex = parseInt(this.#container.style.zIndex) - 1000; + } + forceHide() { + this.#wasVisible = this.isVisible; + if (!this.#wasVisible) { + return; + } + this.#container.hidden = true; + } + maybeShow() { + if (!this.#wasVisible) { + return; + } + this.#wasVisible = false; + this.#container.hidden = false; + } + get isVisible() { + return this.#container.hidden === false; + } +} +class FreeTextAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + this.textContent = parameters.data.textContent; + this.textPosition = parameters.data.textPosition; + this.annotationEditorType = _util.AnnotationEditorType.FREETEXT; + } + render() { + this.container.classList.add("freeTextAnnotation"); + if (this.textContent) { + const content = document.createElement("div"); + content.classList.add("annotationTextContent"); + content.setAttribute("role", "comment"); + for (const line of this.textContent) { + const lineSpan = document.createElement("span"); + lineSpan.textContent = line; + content.append(lineSpan); + } + this.container.append(content); + } + if (!this.data.popupRef && this.hasPopupData) { + this._createPopup(); + } + this._editOnDoubleClick(); + return this.container; + } +} +exports.FreeTextAnnotationElement = FreeTextAnnotationElement; +class LineAnnotationElement extends AnnotationElement { + #line = null; + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + } + render() { + this.container.classList.add("lineAnnotation"); + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const line = this.#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"); + line.setAttribute("fill", "transparent"); + svg.append(line); + this.container.append(svg); + if (!data.popupRef && this.hasPopupData) { + this._createPopup(); + } + return this.container; + } + getElementsToTriggerPopup() { + return this.#line; + } + addHighlightArea() { + this.container.classList.add("highlightArea"); + } +} +class SquareAnnotationElement extends AnnotationElement { + #square = null; + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + } + render() { + this.container.classList.add("squareAnnotation"); + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const borderWidth = data.borderStyle.width; + const square = this.#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", "transparent"); + svg.append(square); + this.container.append(svg); + if (!data.popupRef && this.hasPopupData) { + this._createPopup(); + } + return this.container; + } + getElementsToTriggerPopup() { + return this.#square; + } + addHighlightArea() { + this.container.classList.add("highlightArea"); + } +} +class CircleAnnotationElement extends AnnotationElement { + #circle = null; + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + } + render() { + this.container.classList.add("circleAnnotation"); + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + const borderWidth = data.borderStyle.width; + const circle = this.#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", "transparent"); + svg.append(circle); + this.container.append(svg); + if (!data.popupRef && this.hasPopupData) { + this._createPopup(); + } + return this.container; + } + getElementsToTriggerPopup() { + return this.#circle; + } + addHighlightArea() { + this.container.classList.add("highlightArea"); + } +} +class PolylineAnnotationElement extends AnnotationElement { + #polyline = null; + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + this.containerClassName = "polylineAnnotation"; + this.svgElementName = "svg:polyline"; + } + render() { + this.container.classList.add(this.containerClassName); + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + 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.#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", "transparent"); + svg.append(polyline); + this.container.append(svg); + if (!data.popupRef && this.hasPopupData) { + this._createPopup(); + } + return this.container; + } + getElementsToTriggerPopup() { + return this.#polyline; + } + addHighlightArea() { + this.container.classList.add("highlightArea"); + } +} +class PolygonAnnotationElement extends PolylineAnnotationElement { + constructor(parameters) { + super(parameters); + this.containerClassName = "polygonAnnotation"; + this.svgElementName = "svg:polygon"; + } +} +class CaretAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + } + render() { + this.container.classList.add("caretAnnotation"); + if (!this.data.popupRef && this.hasPopupData) { + this._createPopup(); + } + return this.container; + } +} +class InkAnnotationElement extends AnnotationElement { + #polylines = []; + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + this.containerClassName = "inkAnnotation"; + this.svgElementName = "svg:polyline"; + this.annotationEditorType = _util.AnnotationEditorType.INK; + } + render() { + this.container.classList.add(this.containerClassName); + const data = this.data; + const { + width, + height + } = getRectDims(data.rect); + const svg = this.svgFactory.create(width, height, true); + 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); + this.#polylines.push(polyline); + polyline.setAttribute("points", points); + polyline.setAttribute("stroke-width", data.borderStyle.width || 1); + polyline.setAttribute("stroke", "transparent"); + polyline.setAttribute("fill", "transparent"); + if (!data.popupRef && this.hasPopupData) { + this._createPopup(); + } + svg.append(polyline); + } + this.container.append(svg); + return this.container; + } + getElementsToTriggerPopup() { + return this.#polylines; + } + addHighlightArea() { + this.container.classList.add("highlightArea"); + } +} +exports.InkAnnotationElement = InkAnnotationElement; +class HighlightAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.popupRef && this.hasPopupData) { + this._createPopup(); + } + this.container.classList.add("highlightAnnotation"); + return this.container; + } +} +class UnderlineAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.popupRef && this.hasPopupData) { + this._createPopup(); + } + this.container.classList.add("underlineAnnotation"); + return this.container; + } +} +class SquigglyAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.popupRef && this.hasPopupData) { + this._createPopup(); + } + this.container.classList.add("squigglyAnnotation"); + return this.container; + } +} +class StrikeOutAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true, + createQuadrilaterals: true + }); + } + render() { + if (!this.data.popupRef && this.hasPopupData) { + this._createPopup(); + } + this.container.classList.add("strikeoutAnnotation"); + return this.container; + } +} +class StampAnnotationElement extends AnnotationElement { + constructor(parameters) { + super(parameters, { + isRenderable: true, + ignoreBorder: true + }); + } + render() { + this.container.classList.add("stampAnnotation"); + if (!this.data.popupRef && this.hasPopupData) { + this._createPopup(); + } + return this.container; + } +} +exports.StampAnnotationElement = StampAnnotationElement; +class FileAttachmentAnnotationElement extends AnnotationElement { + #trigger = null; + constructor(parameters) { + super(parameters, { + isRenderable: true + }); + const { + filename, + content + } = this.data.file; + this.filename = (0, _display_utils.getFilenameFromUrl)(filename, true); + this.content = content; + this.linkService.eventBus?.dispatch("fileattachmentannotation", { + source: this, + filename, + content + }); + } + render() { + this.container.classList.add("fileAttachmentAnnotation"); + const { + container, + data + } = this; + let trigger; + if (data.hasAppearance || data.fillAlpha === 0) { + trigger = document.createElement("div"); + } else { + trigger = document.createElement("img"); + trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(data.name) ? "paperclip" : "pushpin"}.svg`; + if (data.fillAlpha && data.fillAlpha < 1) { + trigger.style = `filter: opacity(${Math.round(data.fillAlpha * 100)}%);`; + } + } + trigger.addEventListener("dblclick", this.#download.bind(this)); + this.#trigger = trigger; + const { + isMac + } = _util.FeatureTest.platform; + container.addEventListener("keydown", evt => { + if (evt.key === "Enter" && (isMac ? evt.metaKey : evt.ctrlKey)) { + this.#download(); + } + }); + if (!data.popupRef && this.hasPopupData) { + this._createPopup(); + } else { + trigger.classList.add("popupTriggerArea"); + } + container.append(trigger); + return container; + } + getElementsToTriggerPopup() { + return this.#trigger; + } + addHighlightArea() { + this.container.classList.add("highlightArea"); + } + #download() { + this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename); + } +} +class AnnotationLayer { + #accessibilityManager = null; + #annotationCanvasMap = null; + #editableAnnotations = new Map(); + constructor({ + div, + accessibilityManager, + annotationCanvasMap, + l10n, + page, + viewport + }) { + this.div = div; + this.#accessibilityManager = accessibilityManager; + this.#annotationCanvasMap = annotationCanvasMap; + this.l10n = l10n; + this.page = page; + this.viewport = viewport; + this.zIndex = 0; + this.l10n ||= _displayL10n_utils.NullL10n; + } + #appendElement(element, id) { + const contentElement = element.firstChild || element; + contentElement.id = `${_util.AnnotationPrefix}${id}`; + this.div.append(element); + this.#accessibilityManager?.moveElementInDOM(this.div, element, contentElement, false); + } + async render(params) { + const { + annotations + } = params; + const layer = this.div; + (0, _display_utils.setLayerDimensions)(layer, this.viewport); + const popupToElements = new Map(); + const elementParams = { + data: null, + layer, + linkService: params.linkService, + downloadManager: params.downloadManager, + imageResourcesPath: params.imageResourcesPath || "", + renderForms: params.renderForms !== false, + svgFactory: new _display_utils.DOMSVGFactory(), + annotationStorage: params.annotationStorage || new _annotation_storage.AnnotationStorage(), + enableScripting: params.enableScripting === true, + hasJSActions: params.hasJSActions, + fieldObjects: params.fieldObjects, + parent: this, + elements: null + }; + for (const data of annotations) { + if (data.noHTML) { + continue; + } + const isPopupAnnotation = data.annotationType === _util.AnnotationType.POPUP; + if (!isPopupAnnotation) { + const { + width, + height + } = getRectDims(data.rect); + if (width <= 0 || height <= 0) { + continue; + } + } else { + const elements = popupToElements.get(data.id); + if (!elements) { + continue; + } + elementParams.elements = elements; + } + elementParams.data = data; + const element = AnnotationElementFactory.create(elementParams); + if (!element.isRenderable) { + continue; + } + if (!isPopupAnnotation && data.popupRef) { + const elements = popupToElements.get(data.popupRef); + if (!elements) { + popupToElements.set(data.popupRef, [element]); + } else { + elements.push(element); + } + } + if (element.annotationEditorType > 0) { + this.#editableAnnotations.set(element.data.id, element); + } + const rendered = element.render(); + if (data.hidden) { + rendered.style.visibility = "hidden"; + } + this.#appendElement(rendered, data.id); + } + this.#setAnnotationCanvasMap(); + await this.l10n.translate(layer); + } + update({ + viewport + }) { + const layer = this.div; + this.viewport = viewport; + (0, _display_utils.setLayerDimensions)(layer, { + rotation: viewport.rotation + }); + this.#setAnnotationCanvasMap(); + layer.hidden = false; + } + #setAnnotationCanvasMap() { + if (!this.#annotationCanvasMap) { + return; + } + const layer = this.div; + for (const [id, canvas] of this.#annotationCanvasMap) { + const element = layer.querySelector(`[data-annotation-id="${id}"]`); + if (!element) { + continue; + } + const { + firstChild + } = element; + if (!firstChild) { + element.append(canvas); + } else if (firstChild.nodeName === "CANVAS") { + firstChild.replaceWith(canvas); + } else { + firstChild.before(canvas); + } + } + this.#annotationCanvasMap.clear(); + } + getEditableAnnotations() { + return Array.from(this.#editableAnnotations.values()); + } + getEditableAnnotation(id) { + return this.#editableAnnotations.get(id); + } +} +exports.AnnotationLayer = AnnotationLayer; + +/***/ }), +/* 30 */ +/***/ ((__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"); +} +function scaleAndClamp(x) { + return Math.max(0, Math.min(255, 255 * x)); +} +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_rgb([g]) { + g = scaleAndClamp(g); + return [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_rgb(color) { + return color.map(scaleAndClamp); + } + static RGB_HTML(color) { + return `#${color.map(makeColorComp).join("")}`; + } + static T_HTML() { + return "#00000000"; + } + static T_rgb() { + return [null]; + } + 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_rgb([c, y, m, k]) { + return [scaleAndClamp(1 - Math.min(1, c + k)), scaleAndClamp(1 - Math.min(1, m + k)), scaleAndClamp(1 - Math.min(1, y + k))]; + } + static CMYK_HTML(components) { + const rgb = this.CMYK_RGB(components).slice(1); + return this.RGB_HTML(rgb); + } + 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; + +/***/ }), +/* 31 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.NullL10n = void 0; +exports.getL10nFallback = getL10nFallback; +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", + 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", + 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_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.", + rendering_error: "An error occurred while rendering the page.", + annotation_date_string: "{{date}}, {{time}}", + 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.", + free_text2_default_content: "Start typing…", + editor_free_text2_aria_label: "Text Editor", + editor_ink2_aria_label: "Draw Editor", + editor_ink_canvas_aria_label: "User-created image", + editor_alt_text_button_label: "Alt text", + editor_alt_text_edit_button_label: "Edit alt text", + editor_alt_text_decorative_tooltip: "Marked as decorative" +}; +{ + DEFAULT_L10N_STRINGS.print_progress_percent = "{{progress}}%"; +} +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.replaceAll(/\{\{\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; + +/***/ }), +/* 32 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.XfaLayer = void 0; +var _xfa_text = __w_pdfjs_require__(25); +class XfaLayer { + static setupStorage(html, id, element, storage, intent) { + const storedData = storage.getValue(id, { + value: null + }); + switch (element.name) { + case "textarea": + if (storedData.value !== null) { + html.textContent = storedData.value; + } + if (intent === "print") { + break; + } + html.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + }); + break; + case "input": + if (element.attributes.type === "radio" || element.attributes.type === "checkbox") { + if (storedData.value === element.attributes.xfaOn) { + html.setAttribute("checked", true); + } else if (storedData.value === element.attributes.xfaOff) { + html.removeAttribute("checked"); + } + if (intent === "print") { + break; + } + html.addEventListener("change", event => { + storage.setValue(id, { + value: event.target.checked ? event.target.getAttribute("xfaOn") : event.target.getAttribute("xfaOff") + }); + }); + } else { + if (storedData.value !== null) { + html.setAttribute("value", storedData.value); + } + if (intent === "print") { + break; + } + html.addEventListener("input", event => { + storage.setValue(id, { + value: event.target.value + }); + }); + } + break; + case "select": + if (storedData.value !== null) { + html.setAttribute("value", storedData.value); + for (const option of element.children) { + if (option.attributes.value === storedData.value) { + option.attributes.selected = true; + } else if (option.attributes.hasOwnProperty("selected")) { + delete option.attributes.selected; + } + } + } + html.addEventListener("input", event => { + const options = event.target.options; + const value = options.selectedIndex === -1 ? "" : options[options.selectedIndex].value; + storage.setValue(id, { + value + }); + }); + break; + } + } + static setAttributes({ + html, + element, + storage = null, + intent, + linkService + }) { + const { + attributes + } = element; + const isHTMLAnchorElement = html instanceof HTMLAnchorElement; + if (attributes.type === "radio") { + attributes.name = `${attributes.name}-${intent}`; + } + for (const [key, value] of Object.entries(attributes)) { + if (value === null || value === undefined) { + continue; + } + switch (key) { + case "class": + if (value.length) { + html.setAttribute(key, value.join(" ")); + } + break; + case "dataId": + break; + case "id": + html.setAttribute("data-element-id", value); + break; + case "style": + Object.assign(html.style, value); + break; + case "textContent": + html.textContent = value; + break; + default: + if (!isHTMLAnchorElement || key !== "href" && key !== "newWindow") { + html.setAttribute(key, value); + } + } + } + if (isHTMLAnchorElement) { + linkService.addLinkAttributes(html, attributes.href, attributes.newWindow); + } + if (storage && attributes.dataId) { + this.setupStorage(html, attributes.dataId, element, storage); + } + } + static render(parameters) { + const storage = parameters.annotationStorage; + const linkService = parameters.linkService; + const root = parameters.xfaHtml; + const intent = parameters.intent || "display"; + const rootHtml = document.createElement(root.name); + if (root.attributes) { + this.setAttributes({ + html: rootHtml, + element: root, + intent, + linkService + }); + } + const stack = [[root, -1, rootHtml]]; + const rootDiv = parameters.div; + rootDiv.append(rootHtml); + if (parameters.viewport) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + rootDiv.style.transform = transform; + } + if (intent !== "richText") { + rootDiv.setAttribute("class", "xfaLayer xfaFont"); + } + const textDivs = []; + while (stack.length > 0) { + const [parent, i, html] = stack.at(-1); + if (i + 1 === parent.children.length) { + stack.pop(); + continue; + } + const child = parent.children[++stack.at(-1)[1]]; + if (child === null) { + continue; + } + const { + name + } = child; + if (name === "#text") { + const node = document.createTextNode(child.value); + textDivs.push(node); + html.append(node); + continue; + } + const childHtml = child?.attributes?.xmlns ? document.createElementNS(child.attributes.xmlns, name) : document.createElement(name); + html.append(childHtml); + if (child.attributes) { + this.setAttributes({ + html: childHtml, + element: child, + storage, + intent, + linkService + }); + } + if (child.children && child.children.length > 0) { + stack.push([child, -1, childHtml]); + } else if (child.value) { + const node = document.createTextNode(child.value); + if (_xfa_text.XfaText.shouldBuildText(name)) { + textDivs.push(node); + } + childHtml.append(node); + } + } + for (const el of rootDiv.querySelectorAll(".xfaNonInteractive input, .xfaNonInteractive textarea")) { + el.setAttribute("readOnly", true); + } + return { + textDivs + }; + } + static update(parameters) { + const transform = `matrix(${parameters.viewport.transform.join(",")})`; + parameters.div.style.transform = transform; + parameters.div.hidden = false; + } +} +exports.XfaLayer = XfaLayer; + +/***/ }), +/* 33 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.InkEditor = void 0; +var _util = __w_pdfjs_require__(1); +var _editor = __w_pdfjs_require__(4); +var _annotation_layer = __w_pdfjs_require__(29); +var _display_utils = __w_pdfjs_require__(6); +var _tools = __w_pdfjs_require__(5); +class InkEditor extends _editor.AnnotationEditor { + #baseHeight = 0; + #baseWidth = 0; + #boundCanvasPointermove = this.canvasPointermove.bind(this); + #boundCanvasPointerleave = this.canvasPointerleave.bind(this); + #boundCanvasPointerup = this.canvasPointerup.bind(this); + #boundCanvasPointerdown = this.canvasPointerdown.bind(this); + #currentPath2D = new Path2D(); + #disableEditing = false; + #hasSomethingToDraw = false; + #isCanvasInitialized = false; + #observer = null; + #realWidth = 0; + #realHeight = 0; + #requestFrameCallback = null; + static _defaultColor = null; + static _defaultOpacity = 1; + static _defaultThickness = 1; + static _type = "ink"; + constructor(params) { + super({ + ...params, + name: "inkEditor" + }); + this.color = params.color || null; + this.thickness = params.thickness || null; + this.opacity = params.opacity || null; + this.paths = []; + this.bezierPath2D = []; + this.allRawPaths = []; + this.currentPath = []; + this.scaleFactor = 1; + this.translationX = this.translationY = 0; + this.x = 0; + this.y = 0; + this._willKeepAspectRatio = true; + } + static initialize(l10n) { + _editor.AnnotationEditor.initialize(l10n, { + strings: ["editor_ink_canvas_aria_label", "editor_ink2_aria_label"] + }); + } + static updateDefaultParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.INK_THICKNESS: + InkEditor._defaultThickness = value; + break; + case _util.AnnotationEditorParamsType.INK_COLOR: + InkEditor._defaultColor = value; + break; + case _util.AnnotationEditorParamsType.INK_OPACITY: + InkEditor._defaultOpacity = value / 100; + break; + } + } + updateParams(type, value) { + switch (type) { + case _util.AnnotationEditorParamsType.INK_THICKNESS: + this.#updateThickness(value); + break; + case _util.AnnotationEditorParamsType.INK_COLOR: + this.#updateColor(value); + break; + case _util.AnnotationEditorParamsType.INK_OPACITY: + this.#updateOpacity(value); + break; + } + } + static get defaultPropertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]]; + } + get propertiesToUpdate() { + return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]]; + } + #updateThickness(thickness) { + const savedThickness = this.thickness; + this.addCommands({ + cmd: () => { + this.thickness = thickness; + this.#fitToContent(); + }, + undo: () => { + this.thickness = savedThickness; + this.#fitToContent(); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_THICKNESS, + overwriteIfSameType: true, + keepUndo: true + }); + } + #updateColor(color) { + const savedColor = this.color; + this.addCommands({ + cmd: () => { + this.color = color; + this.#redraw(); + }, + undo: () => { + this.color = savedColor; + this.#redraw(); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_COLOR, + overwriteIfSameType: true, + keepUndo: true + }); + } + #updateOpacity(opacity) { + opacity /= 100; + const savedOpacity = this.opacity; + this.addCommands({ + cmd: () => { + this.opacity = opacity; + this.#redraw(); + }, + undo: () => { + this.opacity = savedOpacity; + this.#redraw(); + }, + mustExec: true, + type: _util.AnnotationEditorParamsType.INK_OPACITY, + overwriteIfSameType: true, + keepUndo: true + }); + } + rebuild() { + if (!this.parent) { + return; + } + super.rebuild(); + if (this.div === null) { + return; + } + if (!this.canvas) { + this.#createCanvas(); + this.#createObserver(); + } + if (!this.isAttachedToDOM) { + this.parent.add(this); + this.#setCanvasDims(); + } + this.#fitToContent(); + } + remove() { + if (this.canvas === null) { + return; + } + if (!this.isEmpty()) { + this.commit(); + } + this.canvas.width = this.canvas.height = 0; + this.canvas.remove(); + this.canvas = null; + this.#observer.disconnect(); + this.#observer = null; + super.remove(); + } + setParent(parent) { + if (!this.parent && parent) { + this._uiManager.removeShouldRescale(this); + } else if (this.parent && parent === null) { + this._uiManager.addShouldRescale(this); + } + super.setParent(parent); + } + onScaleChanging() { + const [parentWidth, parentHeight] = this.parentDimensions; + const width = this.width * parentWidth; + const height = this.height * parentHeight; + this.setDimensions(width, height); + } + enableEditMode() { + if (this.#disableEditing || this.canvas === null) { + return; + } + super.enableEditMode(); + this._isDraggable = false; + this.canvas.addEventListener("pointerdown", this.#boundCanvasPointerdown); + } + disableEditMode() { + if (!this.isInEditMode() || this.canvas === null) { + return; + } + super.disableEditMode(); + this._isDraggable = !this.isEmpty(); + this.div.classList.remove("editing"); + this.canvas.removeEventListener("pointerdown", this.#boundCanvasPointerdown); + } + onceAdded() { + this._isDraggable = !this.isEmpty(); + } + isEmpty() { + return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0; + } + #getInitialBBox() { + const { + parentRotation, + parentDimensions: [width, height] + } = this; + switch (parentRotation) { + case 90: + return [0, height, height, width]; + case 180: + return [width, height, width, height]; + case 270: + return [width, 0, height, width]; + default: + return [0, 0, width, height]; + } + } + #setStroke() { + const { + ctx, + color, + opacity, + thickness, + parentScale, + scaleFactor + } = this; + ctx.lineWidth = thickness * parentScale / scaleFactor; + ctx.lineCap = "round"; + ctx.lineJoin = "round"; + ctx.miterLimit = 10; + ctx.strokeStyle = `${color}${(0, _tools.opacityToHex)(opacity)}`; + } + #startDrawing(x, y) { + this.canvas.addEventListener("contextmenu", _display_utils.noContextMenu); + this.canvas.addEventListener("pointerleave", this.#boundCanvasPointerleave); + this.canvas.addEventListener("pointermove", this.#boundCanvasPointermove); + this.canvas.addEventListener("pointerup", this.#boundCanvasPointerup); + this.canvas.removeEventListener("pointerdown", this.#boundCanvasPointerdown); + this.isEditing = true; + if (!this.#isCanvasInitialized) { + this.#isCanvasInitialized = true; + this.#setCanvasDims(); + this.thickness ||= InkEditor._defaultThickness; + this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor; + this.opacity ??= InkEditor._defaultOpacity; + } + this.currentPath.push([x, y]); + this.#hasSomethingToDraw = false; + this.#setStroke(); + this.#requestFrameCallback = () => { + this.#drawPoints(); + if (this.#requestFrameCallback) { + window.requestAnimationFrame(this.#requestFrameCallback); + } + }; + window.requestAnimationFrame(this.#requestFrameCallback); + } + #draw(x, y) { + const [lastX, lastY] = this.currentPath.at(-1); + if (this.currentPath.length > 1 && x === lastX && y === lastY) { + return; + } + const currentPath = this.currentPath; + let path2D = this.#currentPath2D; + currentPath.push([x, y]); + this.#hasSomethingToDraw = true; + if (currentPath.length <= 2) { + path2D.moveTo(...currentPath[0]); + path2D.lineTo(x, y); + return; + } + if (currentPath.length === 3) { + this.#currentPath2D = path2D = new Path2D(); + path2D.moveTo(...currentPath[0]); + } + this.#makeBezierCurve(path2D, ...currentPath.at(-3), ...currentPath.at(-2), x, y); + } + #endPath() { + if (this.currentPath.length === 0) { + return; + } + const lastPoint = this.currentPath.at(-1); + this.#currentPath2D.lineTo(...lastPoint); + } + #stopDrawing(x, y) { + this.#requestFrameCallback = null; + x = Math.min(Math.max(x, 0), this.canvas.width); + y = Math.min(Math.max(y, 0), this.canvas.height); + this.#draw(x, y); + this.#endPath(); + let bezier; + if (this.currentPath.length !== 1) { + bezier = this.#generateBezierPoints(); + } else { + const xy = [x, y]; + bezier = [[xy, xy.slice(), xy.slice(), xy]]; + } + const path2D = this.#currentPath2D; + const currentPath = this.currentPath; + this.currentPath = []; + this.#currentPath2D = new Path2D(); + const cmd = () => { + this.allRawPaths.push(currentPath); + this.paths.push(bezier); + this.bezierPath2D.push(path2D); + this.rebuild(); + }; + const undo = () => { + this.allRawPaths.pop(); + this.paths.pop(); + this.bezierPath2D.pop(); + if (this.paths.length === 0) { + this.remove(); + } else { + if (!this.canvas) { + this.#createCanvas(); + this.#createObserver(); + } + this.#fitToContent(); + } + }; + this.addCommands({ + cmd, + undo, + mustExec: true + }); + } + #drawPoints() { + if (!this.#hasSomethingToDraw) { + return; + } + this.#hasSomethingToDraw = false; + const thickness = Math.ceil(this.thickness * this.parentScale); + const lastPoints = this.currentPath.slice(-3); + const x = lastPoints.map(xy => xy[0]); + const y = lastPoints.map(xy => xy[1]); + const xMin = Math.min(...x) - thickness; + const xMax = Math.max(...x) + thickness; + const yMin = Math.min(...y) - thickness; + const yMax = Math.max(...y) + thickness; + const { + ctx + } = this; + ctx.save(); + ctx.clearRect(0, 0, this.canvas.width, this.canvas.height); + for (const path of this.bezierPath2D) { + ctx.stroke(path); + } + ctx.stroke(this.#currentPath2D); + ctx.restore(); + } + #makeBezierCurve(path2D, x0, y0, x1, y1, x2, y2) { + const prevX = (x0 + x1) / 2; + const prevY = (y0 + y1) / 2; + const x3 = (x1 + x2) / 2; + const y3 = (y1 + y2) / 2; + path2D.bezierCurveTo(prevX + 2 * (x1 - prevX) / 3, prevY + 2 * (y1 - prevY) / 3, x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3, x3, y3); + } + #generateBezierPoints() { + const path = this.currentPath; + if (path.length <= 2) { + return [[path[0], path[0], path.at(-1), path.at(-1)]]; + } + const bezierPoints = []; + let i; + let [x0, y0] = path[0]; + for (i = 1; i < path.length - 2; i++) { + const [x1, y1] = path[i]; + const [x2, y2] = path[i + 1]; + const x3 = (x1 + x2) / 2; + const y3 = (y1 + y2) / 2; + const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3]; + const control2 = [x3 + 2 * (x1 - x3) / 3, y3 + 2 * (y1 - y3) / 3]; + bezierPoints.push([[x0, y0], control1, control2, [x3, y3]]); + [x0, y0] = [x3, y3]; + } + const [x1, y1] = path[i]; + const [x2, y2] = path[i + 1]; + const control1 = [x0 + 2 * (x1 - x0) / 3, y0 + 2 * (y1 - y0) / 3]; + const control2 = [x2 + 2 * (x1 - x2) / 3, y2 + 2 * (y1 - y2) / 3]; + bezierPoints.push([[x0, y0], control1, control2, [x2, y2]]); + return bezierPoints; + } + #redraw() { + if (this.isEmpty()) { + this.#updateTransform(); + return; + } + this.#setStroke(); + const { + canvas, + ctx + } = this; + ctx.setTransform(1, 0, 0, 1, 0, 0); + ctx.clearRect(0, 0, canvas.width, canvas.height); + this.#updateTransform(); + for (const path of this.bezierPath2D) { + ctx.stroke(path); + } + } + commit() { + if (this.#disableEditing) { + return; + } + super.commit(); + this.isEditing = false; + this.disableEditMode(); + this.setInForeground(); + this.#disableEditing = true; + this.div.classList.add("disabled"); + this.#fitToContent(true); + this.makeResizable(); + this.parent.addInkEditorIfNeeded(true); + this.moveInDOM(); + this.div.focus({ + preventScroll: true + }); + } + focusin(event) { + if (!this._focusEventsAllowed) { + return; + } + super.focusin(event); + this.enableEditMode(); + } + canvasPointerdown(event) { + if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) { + return; + } + this.setInForeground(); + event.preventDefault(); + if (event.type !== "mouse") { + this.div.focus(); + } + this.#startDrawing(event.offsetX, event.offsetY); + } + canvasPointermove(event) { + event.preventDefault(); + this.#draw(event.offsetX, event.offsetY); + } + canvasPointerup(event) { + event.preventDefault(); + this.#endDrawing(event); + } + canvasPointerleave(event) { + this.#endDrawing(event); + } + #endDrawing(event) { + this.canvas.removeEventListener("pointerleave", this.#boundCanvasPointerleave); + this.canvas.removeEventListener("pointermove", this.#boundCanvasPointermove); + this.canvas.removeEventListener("pointerup", this.#boundCanvasPointerup); + this.canvas.addEventListener("pointerdown", this.#boundCanvasPointerdown); + setTimeout(() => { + this.canvas.removeEventListener("contextmenu", _display_utils.noContextMenu); + }, 10); + this.#stopDrawing(event.offsetX, event.offsetY); + this.addToAnnotationStorage(); + this.setInBackground(); + } + #createCanvas() { + this.canvas = document.createElement("canvas"); + this.canvas.width = this.canvas.height = 0; + this.canvas.className = "inkEditorCanvas"; + _editor.AnnotationEditor._l10nPromise.get("editor_ink_canvas_aria_label").then(msg => this.canvas?.setAttribute("aria-label", msg)); + this.div.append(this.canvas); + this.ctx = this.canvas.getContext("2d"); + } + #createObserver() { + this.#observer = new ResizeObserver(entries => { + const rect = entries[0].contentRect; + if (rect.width && rect.height) { + this.setDimensions(rect.width, rect.height); + } + }); + this.#observer.observe(this.div); + } + get isResizable() { + return !this.isEmpty() && this.#disableEditing; + } + render() { + if (this.div) { + return this.div; + } + let baseX, baseY; + if (this.width) { + baseX = this.x; + baseY = this.y; + } + super.render(); + _editor.AnnotationEditor._l10nPromise.get("editor_ink2_aria_label").then(msg => this.div?.setAttribute("aria-label", msg)); + const [x, y, w, h] = this.#getInitialBBox(); + this.setAt(x, y, 0, 0); + this.setDims(w, h); + this.#createCanvas(); + if (this.width) { + const [parentWidth, parentHeight] = this.parentDimensions; + this.setAspectRatio(this.width * parentWidth, this.height * parentHeight); + this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); + this.#isCanvasInitialized = true; + this.#setCanvasDims(); + this.setDims(this.width * parentWidth, this.height * parentHeight); + this.#redraw(); + this.div.classList.add("disabled"); + } else { + this.div.classList.add("editing"); + this.enableEditMode(); + } + this.#createObserver(); + return this.div; + } + #setCanvasDims() { + if (!this.#isCanvasInitialized) { + return; + } + const [parentWidth, parentHeight] = this.parentDimensions; + this.canvas.width = Math.ceil(this.width * parentWidth); + this.canvas.height = Math.ceil(this.height * parentHeight); + this.#updateTransform(); + } + setDimensions(width, height) { + const roundedWidth = Math.round(width); + const roundedHeight = Math.round(height); + if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) { + return; + } + this.#realWidth = roundedWidth; + this.#realHeight = roundedHeight; + this.canvas.style.visibility = "hidden"; + const [parentWidth, parentHeight] = this.parentDimensions; + this.width = width / parentWidth; + this.height = height / parentHeight; + this.fixAndSetPosition(); + if (this.#disableEditing) { + this.#setScaleFactor(width, height); + } + this.#setCanvasDims(); + this.#redraw(); + this.canvas.style.visibility = "visible"; + this.fixDims(); + } + #setScaleFactor(width, height) { + const padding = this.#getPadding(); + const scaleFactorW = (width - padding) / this.#baseWidth; + const scaleFactorH = (height - padding) / this.#baseHeight; + this.scaleFactor = Math.min(scaleFactorW, scaleFactorH); + } + #updateTransform() { + const padding = this.#getPadding() / 2; + this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding); + } + static #buildPath2D(bezier) { + const path2D = new Path2D(); + for (let i = 0, ii = bezier.length; i < ii; i++) { + const [first, control1, control2, second] = bezier[i]; + if (i === 0) { + path2D.moveTo(...first); + } + path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]); + } + return path2D; + } + static #toPDFCoordinates(points, rect, rotation) { + const [blX, blY, trX, trY] = rect; + switch (rotation) { + case 0: + for (let i = 0, ii = points.length; i < ii; i += 2) { + points[i] += blX; + points[i + 1] = trY - points[i + 1]; + } + break; + case 90: + for (let i = 0, ii = points.length; i < ii; i += 2) { + const x = points[i]; + points[i] = points[i + 1] + blX; + points[i + 1] = x + blY; + } + break; + case 180: + for (let i = 0, ii = points.length; i < ii; i += 2) { + points[i] = trX - points[i]; + points[i + 1] += blY; + } + break; + case 270: + for (let i = 0, ii = points.length; i < ii; i += 2) { + const x = points[i]; + points[i] = trX - points[i + 1]; + points[i + 1] = trY - x; + } + break; + default: + throw new Error("Invalid rotation"); + } + return points; + } + static #fromPDFCoordinates(points, rect, rotation) { + const [blX, blY, trX, trY] = rect; + switch (rotation) { + case 0: + for (let i = 0, ii = points.length; i < ii; i += 2) { + points[i] -= blX; + points[i + 1] = trY - points[i + 1]; + } + break; + case 90: + for (let i = 0, ii = points.length; i < ii; i += 2) { + const x = points[i]; + points[i] = points[i + 1] - blY; + points[i + 1] = x - blX; + } + break; + case 180: + for (let i = 0, ii = points.length; i < ii; i += 2) { + points[i] = trX - points[i]; + points[i + 1] -= blY; + } + break; + case 270: + for (let i = 0, ii = points.length; i < ii; i += 2) { + const x = points[i]; + points[i] = trY - points[i + 1]; + points[i + 1] = trX - x; + } + break; + default: + throw new Error("Invalid rotation"); + } + return points; + } + #serializePaths(s, tx, ty, rect) { + const paths = []; + const padding = this.thickness / 2; + const shiftX = s * tx + padding; + const shiftY = s * ty + padding; + for (const bezier of this.paths) { + const buffer = []; + const points = []; + for (let j = 0, jj = bezier.length; j < jj; j++) { + const [first, control1, control2, second] = bezier[j]; + const p10 = s * first[0] + shiftX; + const p11 = s * first[1] + shiftY; + const p20 = s * control1[0] + shiftX; + const p21 = s * control1[1] + shiftY; + const p30 = s * control2[0] + shiftX; + const p31 = s * control2[1] + shiftY; + const p40 = s * second[0] + shiftX; + const p41 = s * second[1] + shiftY; + if (j === 0) { + buffer.push(p10, p11); + points.push(p10, p11); + } + buffer.push(p20, p21, p30, p31, p40, p41); + points.push(p20, p21); + if (j === jj - 1) { + points.push(p40, p41); + } + } + paths.push({ + bezier: InkEditor.#toPDFCoordinates(buffer, rect, this.rotation), + points: InkEditor.#toPDFCoordinates(points, rect, this.rotation) + }); + } + return paths; + } + #getBbox() { + let xMin = Infinity; + let xMax = -Infinity; + let yMin = Infinity; + let yMax = -Infinity; + for (const path of this.paths) { + for (const [first, control1, control2, second] of path) { + const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second); + xMin = Math.min(xMin, bbox[0]); + yMin = Math.min(yMin, bbox[1]); + xMax = Math.max(xMax, bbox[2]); + yMax = Math.max(yMax, bbox[3]); + } + } + return [xMin, yMin, xMax, yMax]; + } + #getPadding() { + return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0; + } + #fitToContent(firstTime = false) { + if (this.isEmpty()) { + return; + } + if (!this.#disableEditing) { + this.#redraw(); + return; + } + const bbox = this.#getBbox(); + const padding = this.#getPadding(); + this.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]); + this.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]); + const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor); + const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor); + const [parentWidth, parentHeight] = this.parentDimensions; + this.width = width / parentWidth; + this.height = height / parentHeight; + this.setAspectRatio(width, height); + const prevTranslationX = this.translationX; + const prevTranslationY = this.translationY; + this.translationX = -bbox[0]; + this.translationY = -bbox[1]; + this.#setCanvasDims(); + this.#redraw(); + this.#realWidth = width; + this.#realHeight = height; + this.setDims(width, height); + const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0; + this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding); + } + static deserialize(data, parent, uiManager) { + if (data instanceof _annotation_layer.InkAnnotationElement) { + return null; + } + const editor = super.deserialize(data, parent, uiManager); + editor.thickness = data.thickness; + editor.color = _util.Util.makeHexColor(...data.color); + editor.opacity = data.opacity; + const [pageWidth, pageHeight] = editor.pageDimensions; + const width = editor.width * pageWidth; + const height = editor.height * pageHeight; + const scaleFactor = editor.parentScale; + const padding = data.thickness / 2; + editor.#disableEditing = true; + editor.#realWidth = Math.round(width); + editor.#realHeight = Math.round(height); + const { + paths, + rect, + rotation + } = data; + for (let { + bezier + } of paths) { + bezier = InkEditor.#fromPDFCoordinates(bezier, rect, rotation); + const path = []; + editor.paths.push(path); + let p0 = scaleFactor * (bezier[0] - padding); + let p1 = scaleFactor * (bezier[1] - padding); + for (let i = 2, ii = bezier.length; i < ii; i += 6) { + const p10 = scaleFactor * (bezier[i] - padding); + const p11 = scaleFactor * (bezier[i + 1] - padding); + const p20 = scaleFactor * (bezier[i + 2] - padding); + const p21 = scaleFactor * (bezier[i + 3] - padding); + const p30 = scaleFactor * (bezier[i + 4] - padding); + const p31 = scaleFactor * (bezier[i + 5] - padding); + path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]); + p0 = p30; + p1 = p31; + } + const path2D = this.#buildPath2D(path); + editor.bezierPath2D.push(path2D); + } + const bbox = editor.#getBbox(); + editor.#baseWidth = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[2] - bbox[0]); + editor.#baseHeight = Math.max(_editor.AnnotationEditor.MIN_SIZE, bbox[3] - bbox[1]); + editor.#setScaleFactor(width, height); + return editor; + } + serialize() { + if (this.isEmpty()) { + return null; + } + const rect = this.getRect(0, 0); + const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle); + return { + annotationType: _util.AnnotationEditorType.INK, + color, + thickness: this.thickness, + opacity: this.opacity, + paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, rect), + pageIndex: this.pageIndex, + rect, + rotation: this.rotation, + structTreeParentId: this._structTreeParentId + }; + } +} +exports.InkEditor = InkEditor; + +/***/ }), +/* 34 */ +/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StampEditor = void 0; +var _util = __w_pdfjs_require__(1); +var _editor = __w_pdfjs_require__(4); +var _display_utils = __w_pdfjs_require__(6); +var _annotation_layer = __w_pdfjs_require__(29); +class StampEditor extends _editor.AnnotationEditor { + #bitmap = null; + #bitmapId = null; + #bitmapPromise = null; + #bitmapUrl = null; + #bitmapFile = null; + #canvas = null; + #observer = null; + #resizeTimeoutId = null; + #isSvg = false; + #hasBeenAddedInUndoStack = false; + static _type = "stamp"; + constructor(params) { + super({ + ...params, + name: "stampEditor" + }); + this.#bitmapUrl = params.bitmapUrl; + this.#bitmapFile = params.bitmapFile; + } + static initialize(l10n) { + _editor.AnnotationEditor.initialize(l10n); + } + static get supportedTypes() { + const types = ["apng", "avif", "bmp", "gif", "jpeg", "png", "svg+xml", "webp", "x-icon"]; + return (0, _util.shadow)(this, "supportedTypes", types.map(type => `image/${type}`)); + } + static get supportedTypesStr() { + return (0, _util.shadow)(this, "supportedTypesStr", this.supportedTypes.join(",")); + } + static isHandlingMimeForPasting(mime) { + return this.supportedTypes.includes(mime); + } + static paste(item, parent) { + parent.pasteEditor(_util.AnnotationEditorType.STAMP, { + bitmapFile: item.getAsFile() + }); + } + #getBitmapFetched(data, fromId = false) { + if (!data) { + this.remove(); + return; + } + this.#bitmap = data.bitmap; + if (!fromId) { + this.#bitmapId = data.id; + this.#isSvg = data.isSvg; + } + this.#createCanvas(); + } + #getBitmapDone() { + this.#bitmapPromise = null; + this._uiManager.enableWaiting(false); + if (this.#canvas) { + this.div.focus(); + } + } + #getBitmap() { + if (this.#bitmapId) { + this._uiManager.enableWaiting(true); + this._uiManager.imageManager.getFromId(this.#bitmapId).then(data => this.#getBitmapFetched(data, true)).finally(() => this.#getBitmapDone()); + return; + } + if (this.#bitmapUrl) { + const url = this.#bitmapUrl; + this.#bitmapUrl = null; + this._uiManager.enableWaiting(true); + this.#bitmapPromise = this._uiManager.imageManager.getFromUrl(url).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone()); + return; + } + if (this.#bitmapFile) { + const file = this.#bitmapFile; + this.#bitmapFile = null; + this._uiManager.enableWaiting(true); + this.#bitmapPromise = this._uiManager.imageManager.getFromFile(file).then(data => this.#getBitmapFetched(data)).finally(() => this.#getBitmapDone()); + return; + } + const input = document.createElement("input"); + input.type = "file"; + input.accept = StampEditor.supportedTypesStr; + this.#bitmapPromise = new Promise(resolve => { + input.addEventListener("change", async () => { + if (!input.files || input.files.length === 0) { + this.remove(); + } else { + this._uiManager.enableWaiting(true); + const data = await this._uiManager.imageManager.getFromFile(input.files[0]); + this.#getBitmapFetched(data); + } + resolve(); + }); + input.addEventListener("cancel", () => { + this.remove(); + resolve(); + }); + }).finally(() => this.#getBitmapDone()); + input.click(); + } + remove() { + if (this.#bitmapId) { + this.#bitmap = null; + this._uiManager.imageManager.deleteId(this.#bitmapId); + this.#canvas?.remove(); + this.#canvas = null; + this.#observer?.disconnect(); + this.#observer = null; + } + super.remove(); + } + rebuild() { + if (!this.parent) { + if (this.#bitmapId) { + this.#getBitmap(); + } + return; + } + super.rebuild(); + if (this.div === null) { + return; + } + if (this.#bitmapId) { + this.#getBitmap(); + } + if (!this.isAttachedToDOM) { + this.parent.add(this); + } + } + onceAdded() { + this._isDraggable = true; + this.div.focus(); + } + isEmpty() { + return !(this.#bitmapPromise || this.#bitmap || this.#bitmapUrl || this.#bitmapFile); + } + get isResizable() { + return true; + } + render() { + if (this.div) { + return this.div; + } + let baseX, baseY; + if (this.width) { + baseX = this.x; + baseY = this.y; + } + super.render(); + this.div.hidden = true; + if (this.#bitmap) { + this.#createCanvas(); + } else { + this.#getBitmap(); + } + if (this.width) { + const [parentWidth, parentHeight] = this.parentDimensions; + this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight); + } + return this.div; + } + #createCanvas() { + const { + div + } = this; + let { + width, + height + } = this.#bitmap; + const [pageWidth, pageHeight] = this.pageDimensions; + const MAX_RATIO = 0.75; + if (this.width) { + width = this.width * pageWidth; + height = this.height * pageHeight; + } else if (width > MAX_RATIO * pageWidth || height > MAX_RATIO * pageHeight) { + const factor = Math.min(MAX_RATIO * pageWidth / width, MAX_RATIO * pageHeight / height); + width *= factor; + height *= factor; + } + const [parentWidth, parentHeight] = this.parentDimensions; + this.setDims(width * parentWidth / pageWidth, height * parentHeight / pageHeight); + this._uiManager.enableWaiting(false); + const canvas = this.#canvas = document.createElement("canvas"); + div.append(canvas); + div.hidden = false; + this.#drawBitmap(width, height); + this.#createObserver(); + if (!this.#hasBeenAddedInUndoStack) { + this.parent.addUndoableEditor(this); + this.#hasBeenAddedInUndoStack = true; + } + this._uiManager._eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "editing", + subtype: this.editorType, + data: { + action: "inserted_image" + } + } + }); + this.addAltTextButton(); + } + #setDimensions(width, height) { + const [parentWidth, parentHeight] = this.parentDimensions; + this.width = width / parentWidth; + this.height = height / parentHeight; + this.setDims(width, height); + if (this._initialOptions?.isCentered) { + this.center(); + } else { + this.fixAndSetPosition(); + } + this._initialOptions = null; + if (this.#resizeTimeoutId !== null) { + clearTimeout(this.#resizeTimeoutId); + } + const TIME_TO_WAIT = 200; + this.#resizeTimeoutId = setTimeout(() => { + this.#resizeTimeoutId = null; + this.#drawBitmap(width, height); + }, TIME_TO_WAIT); + } + #scaleBitmap(width, height) { + const { + width: bitmapWidth, + height: bitmapHeight + } = this.#bitmap; + let newWidth = bitmapWidth; + let newHeight = bitmapHeight; + let bitmap = this.#bitmap; + while (newWidth > 2 * width || newHeight > 2 * height) { + const prevWidth = newWidth; + const prevHeight = newHeight; + if (newWidth > 2 * width) { + newWidth = newWidth >= 16384 ? Math.floor(newWidth / 2) - 1 : Math.ceil(newWidth / 2); + } + if (newHeight > 2 * height) { + newHeight = newHeight >= 16384 ? Math.floor(newHeight / 2) - 1 : Math.ceil(newHeight / 2); + } + const offscreen = new OffscreenCanvas(newWidth, newHeight); + const ctx = offscreen.getContext("2d"); + ctx.drawImage(bitmap, 0, 0, prevWidth, prevHeight, 0, 0, newWidth, newHeight); + bitmap = offscreen.transferToImageBitmap(); + } + return bitmap; + } + #drawBitmap(width, height) { + width = Math.ceil(width); + height = Math.ceil(height); + const canvas = this.#canvas; + if (!canvas || canvas.width === width && canvas.height === height) { + return; + } + canvas.width = width; + canvas.height = height; + const bitmap = this.#isSvg ? this.#bitmap : this.#scaleBitmap(width, height); + const ctx = canvas.getContext("2d"); + ctx.filter = this._uiManager.hcmFilter; + ctx.drawImage(bitmap, 0, 0, bitmap.width, bitmap.height, 0, 0, width, height); + } + #serializeBitmap(toUrl) { + if (toUrl) { + if (this.#isSvg) { + const url = this._uiManager.imageManager.getSvgUrl(this.#bitmapId); + if (url) { + return url; + } + } + const canvas = document.createElement("canvas"); + ({ + width: canvas.width, + height: canvas.height + } = this.#bitmap); + const ctx = canvas.getContext("2d"); + ctx.drawImage(this.#bitmap, 0, 0); + return canvas.toDataURL(); + } + if (this.#isSvg) { + const [pageWidth, pageHeight] = this.pageDimensions; + const width = Math.round(this.width * pageWidth * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); + const height = Math.round(this.height * pageHeight * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS); + const offscreen = new OffscreenCanvas(width, height); + const ctx = offscreen.getContext("2d"); + ctx.drawImage(this.#bitmap, 0, 0, this.#bitmap.width, this.#bitmap.height, 0, 0, width, height); + return offscreen.transferToImageBitmap(); + } + return structuredClone(this.#bitmap); + } + #createObserver() { + this.#observer = new ResizeObserver(entries => { + const rect = entries[0].contentRect; + if (rect.width && rect.height) { + this.#setDimensions(rect.width, rect.height); + } + }); + this.#observer.observe(this.div); + } + static deserialize(data, parent, uiManager) { + if (data instanceof _annotation_layer.StampAnnotationElement) { + return null; + } + const editor = super.deserialize(data, parent, uiManager); + const { + rect, + bitmapUrl, + bitmapId, + isSvg, + accessibilityData + } = data; + if (bitmapId && uiManager.imageManager.isValidId(bitmapId)) { + editor.#bitmapId = bitmapId; + } else { + editor.#bitmapUrl = bitmapUrl; + } + editor.#isSvg = isSvg; + const [parentWidth, parentHeight] = editor.pageDimensions; + editor.width = (rect[2] - rect[0]) / parentWidth; + editor.height = (rect[3] - rect[1]) / parentHeight; + if (accessibilityData) { + editor.altTextData = accessibilityData; + } + return editor; + } + serialize(isForCopying = false, context = null) { + if (this.isEmpty()) { + return null; + } + const serialized = { + annotationType: _util.AnnotationEditorType.STAMP, + bitmapId: this.#bitmapId, + pageIndex: this.pageIndex, + rect: this.getRect(0, 0), + rotation: this.rotation, + isSvg: this.#isSvg, + structTreeParentId: this._structTreeParentId + }; + if (isForCopying) { + serialized.bitmapUrl = this.#serializeBitmap(true); + serialized.accessibilityData = this.altTextData; + return serialized; + } + const { + decorative, + altText + } = this.altTextData; + if (!decorative && altText) { + serialized.accessibilityData = { + type: "Figure", + alt: altText + }; + } + if (context === null) { + return serialized; + } + context.stamps ||= new Map(); + const area = this.#isSvg ? (serialized.rect[2] - serialized.rect[0]) * (serialized.rect[3] - serialized.rect[1]) : null; + if (!context.stamps.has(this.#bitmapId)) { + context.stamps.set(this.#bitmapId, { + area, + serialized + }); + serialized.bitmap = this.#serializeBitmap(false); + } else if (this.#isSvg) { + const prevData = context.stamps.get(this.#bitmapId); + if (area > prevData.area) { + prevData.area = area; + prevData.serialized.bitmap.close(); + prevData.serialized.bitmap = this.#serializeBitmap(false); + } + } + return serialized; + } +} +exports.StampEditor = StampEditor; + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // 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, "AbortException", ({ + enumerable: true, + get: function () { + return _util.AbortException; + } +})); +Object.defineProperty(exports, "AnnotationEditorLayer", ({ + enumerable: true, + get: function () { + return _annotation_editor_layer.AnnotationEditorLayer; + } +})); +Object.defineProperty(exports, "AnnotationEditorParamsType", ({ + enumerable: true, + get: function () { + return _util.AnnotationEditorParamsType; + } +})); +Object.defineProperty(exports, "AnnotationEditorType", ({ + enumerable: true, + get: function () { + return _util.AnnotationEditorType; + } +})); +Object.defineProperty(exports, "AnnotationEditorUIManager", ({ + enumerable: true, + get: function () { + return _tools.AnnotationEditorUIManager; + } +})); +Object.defineProperty(exports, "AnnotationLayer", ({ + enumerable: true, + get: function () { + return _annotation_layer.AnnotationLayer; + } +})); +Object.defineProperty(exports, "AnnotationMode", ({ + enumerable: true, + get: function () { + return _util.AnnotationMode; + } +})); +Object.defineProperty(exports, "CMapCompressionType", ({ + enumerable: true, + get: function () { + return _util.CMapCompressionType; + } +})); +Object.defineProperty(exports, "DOMSVGFactory", ({ + enumerable: true, + get: function () { + return _display_utils.DOMSVGFactory; + } +})); +Object.defineProperty(exports, "FeatureTest", ({ + enumerable: true, + get: function () { + return _util.FeatureTest; + } +})); +Object.defineProperty(exports, "GlobalWorkerOptions", ({ + enumerable: true, + get: function () { + return _worker_options.GlobalWorkerOptions; + } +})); +Object.defineProperty(exports, "ImageKind", ({ + enumerable: true, + get: function () { + return _util.ImageKind; + } +})); +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, "PDFDataRangeTransport", ({ + enumerable: true, + get: function () { + return _api.PDFDataRangeTransport; + } +})); +Object.defineProperty(exports, "PDFDateString", ({ + enumerable: true, + get: function () { + return _display_utils.PDFDateString; + } +})); +Object.defineProperty(exports, "PDFWorker", ({ + enumerable: true, + get: function () { + return _api.PDFWorker; + } +})); +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, "PixelsPerInch", ({ + enumerable: true, + get: function () { + return _display_utils.PixelsPerInch; + } +})); +Object.defineProperty(exports, "PromiseCapability", ({ + enumerable: true, + get: function () { + return _util.PromiseCapability; + } +})); +Object.defineProperty(exports, "RenderingCancelledException", ({ + enumerable: true, + get: function () { + return _display_utils.RenderingCancelledException; + } +})); +Object.defineProperty(exports, "SVGGraphics", ({ + enumerable: true, + get: function () { + return _api.SVGGraphics; + } +})); +Object.defineProperty(exports, "UnexpectedResponseException", ({ + enumerable: true, + get: function () { + return _util.UnexpectedResponseException; + } +})); +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, "XfaLayer", ({ + enumerable: true, + get: function () { + return _xfa_layer.XfaLayer; + } +})); +Object.defineProperty(exports, "build", ({ + enumerable: true, + get: function () { + return _api.build; + } +})); +Object.defineProperty(exports, "createValidAbsoluteUrl", ({ + enumerable: true, + get: function () { + return _util.createValidAbsoluteUrl; + } +})); +Object.defineProperty(exports, "getDocument", ({ + enumerable: true, + get: function () { + return _api.getDocument; + } +})); +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, "getXfaPageViewport", ({ + enumerable: true, + get: function () { + return _display_utils.getXfaPageViewport; + } +})); +Object.defineProperty(exports, "isDataScheme", ({ + enumerable: true, + get: function () { + return _display_utils.isDataScheme; + } +})); +Object.defineProperty(exports, "isPdfFile", ({ + enumerable: true, + get: function () { + return _display_utils.isPdfFile; + } +})); +Object.defineProperty(exports, "loadScript", ({ + enumerable: true, + get: function () { + return _display_utils.loadScript; + } +})); +Object.defineProperty(exports, "noContextMenu", ({ + enumerable: true, + get: function () { + return _display_utils.noContextMenu; + } +})); +Object.defineProperty(exports, "normalizeUnicode", ({ + enumerable: true, + get: function () { + return _util.normalizeUnicode; + } +})); +Object.defineProperty(exports, "renderTextLayer", ({ + enumerable: true, + get: function () { + return _text_layer.renderTextLayer; + } +})); +Object.defineProperty(exports, "setLayerDimensions", ({ + enumerable: true, + get: function () { + return _display_utils.setLayerDimensions; + } +})); +Object.defineProperty(exports, "shadow", ({ + enumerable: true, + get: function () { + return _util.shadow; + } +})); +Object.defineProperty(exports, "updateTextLayer", ({ + enumerable: true, + get: function () { + return _text_layer.updateTextLayer; + } +})); +Object.defineProperty(exports, "version", ({ + enumerable: true, + get: function () { + return _api.version; + } +})); +var _util = __w_pdfjs_require__(1); +var _api = __w_pdfjs_require__(2); +var _display_utils = __w_pdfjs_require__(6); +var _text_layer = __w_pdfjs_require__(26); +var _annotation_editor_layer = __w_pdfjs_require__(27); +var _tools = __w_pdfjs_require__(5); +var _annotation_layer = __w_pdfjs_require__(29); +var _worker_options = __w_pdfjs_require__(14); +var _xfa_layer = __w_pdfjs_require__(32); +const pdfjsVersion = '3.11.174'; +const pdfjsBuild = 'ce8716743'; +})(); + +/******/ return __webpack_exports__; +/******/ })() +; +}); +//# sourceMappingURL=pdf.js.map \ No newline at end of file diff --git a/src/main/webapp/js/pdfjs-3.11.174/build/pdf.js.map b/src/main/webapp/js/pdfjs-3.11.174/build/pdf.js.map new file mode 100644 index 00000000..39c3bd65 --- /dev/null +++ b/src/main/webapp/js/pdfjs-3.11.174/build/pdf.js.map @@ -0,0 +1 @@ +{"version":3,"file":"pdf.js","mappings":"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","sources":["webpack://pdfjs-dist/build/pdf/webpack/universalModuleDefinition","webpack://pdfjs-dist/build/pdf/src/shared/util.js","webpack://pdfjs-dist/build/pdf/src/display/api.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_storage.js","webpack://pdfjs-dist/build/pdf/src/display/editor/editor.js","webpack://pdfjs-dist/build/pdf/src/display/editor/tools.js","webpack://pdfjs-dist/build/pdf/src/display/display_utils.js","webpack://pdfjs-dist/build/pdf/src/display/base_factory.js","webpack://pdfjs-dist/build/pdf/src/shared/murmurhash3.js","webpack://pdfjs-dist/build/pdf/src/display/font_loader.js","webpack://pdfjs-dist/build/pdf/src/display/node_utils.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/shared/image_utils.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/optional_content_config.js","webpack://pdfjs-dist/build/pdf/src/display/transport_stream.js","webpack://pdfjs-dist/build/pdf/src/display/fetch_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/node_stream.js","webpack://pdfjs-dist/build/pdf/src/display/svg.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_text.js","webpack://pdfjs-dist/build/pdf/src/display/text_layer.js","webpack://pdfjs-dist/build/pdf/src/display/editor/annotation_editor_layer.js","webpack://pdfjs-dist/build/pdf/src/display/editor/freetext.js","webpack://pdfjs-dist/build/pdf/src/display/annotation_layer.js","webpack://pdfjs-dist/build/pdf/src/shared/scripting_utils.js","webpack://pdfjs-dist/build/pdf/web/l10n_utils.js","webpack://pdfjs-dist/build/pdf/src/display/xfa_layer.js","webpack://pdfjs-dist/build/pdf/src/display/editor/ink.js","webpack://pdfjs-dist/build/pdf/src/display/editor/stamp.js","webpack://pdfjs-dist/build/pdf/webpack/bootstrap","webpack://pdfjs-dist/build/pdf/src/pdf.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = root.pdfjsLib = 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})(globalThis, () => {\nreturn ","/* 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 process */\n\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://www.electronjs.org/docs/api/process#processversionselectron-readonly\n// https://www.electronjs.org/docs/api/process#processtype-readonly\nconst isNodeJS =\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof process === \"object\" &&\n process + \"\" === \"[object process]\" &&\n !process.versions.nw &&\n !(process.versions.electron && process.type && process.type !== \"browser\");\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\n\nconst MAX_IMAGE_SIZE_TO_CACHE = 10e6; // Ten megabytes.\n\n// Represent the percentage of the height of a single-line field over\n// the font size. Acrobat seems to use this value.\nconst LINE_FACTOR = 1.35;\nconst LINE_DESCENT_FACTOR = 0.35;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\n\n/**\n * Refer to the `WorkerTransport.getRenderingIntent`-method in the API, to see\n * how these flags are being used:\n * - ANY, DISPLAY, and PRINT are the normal rendering intents, note the\n * `PDFPageProxy.{render, getOperatorList, getAnnotations}`-methods.\n * - ANNOTATIONS_FORMS, ANNOTATIONS_STORAGE, ANNOTATIONS_DISABLE control which\n * annotations are rendered onto the canvas (i.e. by being included in the\n * operatorList), note the `PDFPageProxy.{render, getOperatorList}`-methods\n * and their `annotationMode`-option.\n * - OPLIST is used with the `PDFPageProxy.getOperatorList`-method, note the\n * `OperatorList`-constructor (on the worker-thread).\n */\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100,\n};\n\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3,\n};\n\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\n\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n STAMP: 13,\n INK: 15,\n};\n\nconst AnnotationEditorParamsType = {\n RESIZE: 1,\n CREATE: 2,\n FREETEXT_SIZE: 11,\n FREETEXT_COLOR: 12,\n FREETEXT_OPACITY: 13,\n INK_COLOR: 21,\n INK_THICKNESS: 22,\n INK_OPACITY: 23,\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 AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\",\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 AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\",\n};\n\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\",\n};\n\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\",\n};\n\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5,\n};\n\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\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 // PLEASE NOTE: We purposely keep any removed operators commented out, since\n // re-numbering the list would risk breaking third-party users.\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 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 use one of the allowed protocols, e.g. to avoid XSS.\nfunction _isValidProtocol(url) {\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 * @param {Object} [options]\n * @returns Either a valid {URL}, or `null` otherwise.\n */\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n // Let URLs beginning with \"www.\" default to using the \"http://\" protocol.\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n // Avoid accidentally matching a *relative* URL pointing to a file named\n // e.g. \"www.pdf\" or similar.\n if (dots?.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n // According to ISO 32000-1:2008, section 12.6.4.7, URIs should be encoded\n // in 7-bit ASCII. Some bad PDFs use UTF-8 encoding; see bug 1122280.\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch {\n /* `new URL()` will throw on incorrect data. */\n }\n return null;\n}\n\nfunction shadow(obj, prop, value, nonSerializable = false) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n prop in obj,\n `shadow: Property \"${prop && prop.toString()}\" not found in object.`\n );\n }\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false,\n });\n return value;\n}\n\n/**\n * @type {any}\n */\nconst BaseException = (function BaseExceptionClosure() {\n // eslint-disable-next-line no-shadow\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n\n return BaseException;\n})();\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\n\n/**\n * Error caused during parsing PDF data.\n */\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\n\n/**\n * Error used to indicate task cancellation.\n */\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes?.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\n\nfunction string32(value) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n typeof value === \"number\" && Math.abs(value) < 2 ** 32,\n `string32: Unexpected input \"${value}\".`\n );\n }\n return String.fromCharCode(\n (value >> 24) & 0xff,\n (value >> 16) & 0xff,\n (value >> 8) & 0xff,\n value & 0xff\n );\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\n// Ensure that the returned Object has a `null` prototype; hence why\n// `Object.fromEntries(...)` is not used.\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\n\n// Checks the endianness of the platform.\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\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 {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(\n this,\n \"isOffscreenCanvasSupported\",\n typeof OffscreenCanvas !== \"undefined\"\n );\n }\n\n static get platform() {\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n typeof navigator === \"undefined\"\n ) {\n return shadow(this, \"platform\", { isWin: false, isMac: false });\n }\n return shadow(this, \"platform\", {\n isWin: navigator.platform.includes(\"Win\"),\n isMac: navigator.platform.includes(\"Mac\"),\n });\n }\n\n static get isCSSRoundSupported() {\n return shadow(\n this,\n \"isCSSRoundSupported\",\n globalThis.CSS?.supports?.(\"width: round(1.5px, 1px)\")\n );\n }\n}\n\nconst hexNumbers = [...Array(256).keys()].map(n =>\n n.toString(16).padStart(2, \"0\")\n);\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n // Apply a scaling matrix to some min/max values.\n // If a scaling factor is negative then min and max must be\n // swaped.\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n // Concatenates two transformation matrices together and returns the result.\n static 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 static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n // Applies the transform to the rectangle and finds the minimum axially\n // aligned bounding box.\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = this.applyTransform(r, m);\n const p2 = this.applyTransform(r.slice(2, 4), m);\n const p3 = this.applyTransform([r[0], r[3]], m);\n const p4 = this.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 static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [\n m[3] / d,\n -m[1] / d,\n -m[2] / d,\n m[0] / d,\n (m[2] * m[5] - m[4] * m[3]) / d,\n (m[4] * m[1] - m[5] * m[0]) / d,\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 static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n\n // Multiply matrix m with its transpose.\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n\n // Solve the second degree polynomial to get roots.\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n\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 static normalizeRect(rect) {\n const 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 'null'\n // The rectangle coordinates of rect1, rect2 should be [x1, y1, x2, y2]\n static intersect(rect1, rect2) {\n const xLow = Math.max(\n Math.min(rect1[0], rect1[2]),\n Math.min(rect2[0], rect2[2])\n );\n const xHigh = Math.min(\n Math.max(rect1[0], rect1[2]),\n Math.max(rect2[0], rect2[2])\n );\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(\n Math.min(rect1[1], rect1[3]),\n Math.min(rect2[1], rect2[3])\n );\n const yHigh = Math.min(\n Math.max(rect1[1], rect1[3]),\n Math.max(rect2[1], rect2[3])\n );\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n // From https://github.com/adobe-webplatform/Snap.svg/blob/b365287722a72526000ac4bfcf0ce4cac2faa015/src/path.js#L852\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] =\n mt * mt * mt * x0 +\n 3 * mt * mt * t * x1 +\n 3 * mt * t * t * x2 +\n t * t * t * x3;\n bounds[1][j] =\n mt * mt * mt * y0 +\n 3 * mt * mt * t * y1 +\n 3 * mt * t * t * y2 +\n t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n\n return [\n Math.min(...bounds[0]),\n Math.min(...bounds[1]),\n Math.max(...bounds[0]),\n Math.max(...bounds[1]),\n ];\n }\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, 0x2d8,\n 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\n 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192,\n 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018,\n 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d,\n 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac,\n];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, { fatal: true });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n // ISO Latin 1\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\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 isArrayBuffer(v) {\n return typeof v === \"object\" && v?.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [\n date.getUTCFullYear().toString(),\n (date.getUTCMonth() + 1).toString().padStart(2, \"0\"),\n date.getUTCDate().toString().padStart(2, \"0\"),\n date.getUTCHours().toString().padStart(2, \"0\"),\n date.getUTCMinutes().toString().padStart(2, \"0\"),\n date.getUTCSeconds().toString().padStart(2, \"0\"),\n ];\n\n return buffer.join(\"\");\n}\n\nclass PromiseCapability {\n #settled = false;\n\n constructor() {\n /**\n * @type {Promise} The Promise object.\n */\n this.promise = new Promise((resolve, reject) => {\n /**\n * @type {function} Fulfills the Promise.\n */\n this.resolve = data => {\n this.#settled = true;\n resolve(data);\n };\n\n /**\n * @type {function} Rejects the Promise.\n */\n this.reject = reason => {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(reason instanceof Error, 'Expected valid \"reason\" argument.');\n }\n this.#settled = true;\n reject(reason);\n };\n });\n }\n\n /**\n * @type {boolean} If the Promise has been fulfilled/rejected.\n */\n get settled() {\n return this.#settled;\n }\n}\n\nlet NormalizeRegex = null;\nlet NormalizationMap = null;\nfunction normalizeUnicode(str) {\n if (!NormalizeRegex) {\n // In order to generate the following regex:\n // - create a PDF containing all the chars in the range 0000-FFFF with\n // a NFKC which is different of the char.\n // - copy and paste all those chars and get the ones where NFKC is\n // required.\n // It appears that most the chars here contain some ligatures.\n NormalizeRegex =\n /([\\u00a0\\u00b5\\u037e\\u0eb3\\u2000-\\u200a\\u202f\\u2126\\ufb00-\\ufb04\\ufb06\\ufb20-\\ufb36\\ufb38-\\ufb3c\\ufb3e\\ufb40-\\ufb41\\ufb43-\\ufb44\\ufb46-\\ufba1\\ufba4-\\ufba9\\ufbae-\\ufbb1\\ufbd3-\\ufbdc\\ufbde-\\ufbe7\\ufbea-\\ufbf8\\ufbfc-\\ufbfd\\ufc00-\\ufc5d\\ufc64-\\ufcf1\\ufcf5-\\ufd3d\\ufd88\\ufdf4\\ufdfa-\\ufdfb\\ufe71\\ufe77\\ufe79\\ufe7b\\ufe7d]+)|(\\ufb05+)/gu;\n NormalizationMap = new Map([[\"ſt\", \"ſt\"]]);\n }\n return str.replaceAll(NormalizeRegex, (_, p1, p2) => {\n return p1 ? p1.normalize(\"NFKC\") : NormalizationMap.get(p2);\n });\n}\n\nfunction getUuid() {\n if (\n (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n (typeof crypto !== \"undefined\" && typeof crypto?.randomUUID === \"function\")\n ) {\n return crypto.randomUUID();\n }\n const buf = new Uint8Array(32);\n if (\n typeof crypto !== \"undefined\" &&\n typeof crypto?.getRandomValues === \"function\"\n ) {\n crypto.getRandomValues(buf);\n } else {\n for (let i = 0; i < 32; i++) {\n buf[i] = Math.floor(Math.random() * 255);\n }\n }\n return bytesToString(buf);\n}\n\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\n\nexport {\n AbortException,\n AnnotationActionEventType,\n AnnotationBorderStyleType,\n AnnotationEditorParamsType,\n AnnotationEditorPrefix,\n AnnotationEditorType,\n AnnotationFieldFlag,\n AnnotationFlag,\n AnnotationMode,\n AnnotationPrefix,\n AnnotationReplyType,\n AnnotationType,\n assert,\n BaseException,\n BASELINE_FACTOR,\n bytesToString,\n CMapCompressionType,\n createValidAbsoluteUrl,\n DocumentActionEventType,\n FeatureTest,\n FONT_IDENTITY_MATRIX,\n FormatError,\n getModificationDate,\n getUuid,\n getVerbosityLevel,\n IDENTITY_MATRIX,\n ImageKind,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isArrayEqual,\n isNodeJS,\n LINE_DESCENT_FACTOR,\n LINE_FACTOR,\n MAX_IMAGE_SIZE_TO_CACHE,\n MissingPDFException,\n normalizeUnicode,\n objectFromMap,\n objectSize,\n OPS,\n PageActionEventType,\n PasswordException,\n PasswordResponses,\n PermissionFlag,\n PromiseCapability,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n string32,\n stringToBytes,\n stringToPDFString,\n stringToUTF8String,\n TextRenderingMode,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n utf8StringToString,\n Util,\n VerbosityLevel,\n warn,\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\n/**\n * @module pdfjsLib\n */\n\nimport {\n AbortException,\n AnnotationMode,\n assert,\n getVerbosityLevel,\n info,\n InvalidPDFException,\n isArrayBuffer,\n isNodeJS,\n MAX_IMAGE_SIZE_TO_CACHE,\n MissingPDFException,\n PasswordException,\n PromiseCapability,\n RenderingIntentFlag,\n setVerbosityLevel,\n shadow,\n stringToBytes,\n UnexpectedResponseException,\n UnknownErrorException,\n unreachable,\n warn,\n} from \"../shared/util.js\";\nimport {\n AnnotationStorage,\n PrintAnnotationStorage,\n SerializableEmpty,\n} from \"./annotation_storage.js\";\nimport {\n deprecated,\n DOMCanvasFactory,\n DOMCMapReaderFactory,\n DOMFilterFactory,\n DOMStandardFontDataFactory,\n isDataScheme,\n isValidFetchUrl,\n loadScript,\n PageViewport,\n RenderingCancelledException,\n StatTimer,\n} from \"./display_utils.js\";\nimport { FontFaceObject, FontLoader } from \"./font_loader.js\";\nimport {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeFilterFactory,\n NodeStandardFontDataFactory,\n} from \"display-node_utils\";\nimport { CanvasGraphics } from \"./canvas.js\";\nimport { GlobalWorkerOptions } from \"./worker_options.js\";\nimport { MessageHandler } from \"../shared/message_handler.js\";\nimport { Metadata } from \"./metadata.js\";\nimport { OptionalContentConfig } from \"./optional_content_config.js\";\nimport { PDFDataTransportStream } from \"./transport_stream.js\";\nimport { PDFFetchStream } from \"display-fetch_stream\";\nimport { PDFNetworkStream } from \"display-network\";\nimport { PDFNodeStream } from \"display-node_stream\";\nimport { SVGGraphics } from \"display-svg\";\nimport { XfaText } from \"./xfa_text.js\";\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536; // 2^16 = 65536\nconst RENDERING_CANCELLED_TIMEOUT = 100; // ms\nconst DELAYED_CLEANUP_TIMEOUT = 5000; // ms\n\nconst DefaultCanvasFactory =\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n ? NodeCanvasFactory\n : DOMCanvasFactory;\nconst DefaultCMapReaderFactory =\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n ? NodeCMapReaderFactory\n : DOMCMapReaderFactory;\nconst DefaultFilterFactory =\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n ? NodeFilterFactory\n : DOMFilterFactory;\nconst DefaultStandardFontDataFactory =\n typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"GENERIC\") && isNodeJS\n ? NodeStandardFontDataFactory\n : DOMStandardFontDataFactory;\n\n/**\n * @typedef { Int8Array | Uint8Array | Uint8ClampedArray |\n * Int16Array | Uint16Array |\n * Int32Array | Uint32Array | Float32Array |\n * Float64Array\n * } TypedArray\n */\n\n/**\n * @typedef { TypedArray | ArrayBuffer | Array | string } BinaryData\n */\n\n/**\n * @typedef {Object} RefProxy\n * @property {number} num\n * @property {number} gen\n */\n\n/**\n * Document initialization / loading parameters object.\n *\n * @typedef {Object} DocumentInitParameters\n * @property {string | URL} [url] - The URL of the PDF.\n * @property {BinaryData} [data] - Binary PDF data.\n * Use TypedArrays (Uint8Array) to improve the memory usage. If PDF data is\n * BASE64-encoded, use `atob()` to convert it to a binary string first.\n *\n * NOTE: If TypedArrays are used they will generally be transferred to the\n * worker-thread. This will help reduce main-thread memory usage, however\n * it will take ownership of the TypedArrays.\n * @property {Object} [httpHeaders] - Basic authentication headers.\n * @property {boolean} [withCredentials] - Indicates whether or not\n * cross-site Access-Control requests should be made using credentials such\n * as cookies or authorization headers. The default is `false`.\n * @property {string} [password] - For decrypting password-protected PDFs.\n * @property {number} [length] - The PDF file length. It's used for progress\n * reports and range requests operations.\n * @property {PDFDataRangeTransport} [range] - Allows for using a custom range\n * transport implementation.\n * @property {number} [rangeChunkSize] - Specify maximum number of bytes fetched\n * per range request. The default value is {@link DEFAULT_RANGE_CHUNK_SIZE}.\n * @property {PDFWorker} [worker] - The worker that will be used for loading and\n * parsing the PDF data.\n * @property {number} [verbosity] - Controls the logging level; the constants\n * from {@link VerbosityLevel} should be used.\n * @property {string} [docBaseUrl] - The base URL of the document, used when\n * attempting to recover valid absolute URLs for annotations, and outline\n * items, that (incorrectly) only specify relative URLs.\n * @property {string} [cMapUrl] - The URL where the predefined Adobe CMaps are\n * located. Include the trailing slash.\n * @property {boolean} [cMapPacked] - Specifies if the Adobe CMaps are binary\n * packed or not. The default value is `true`.\n * @property {Object} [CMapReaderFactory] - The factory that will be used when\n * reading built-in CMap files. Providing a custom factory is useful for\n * environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMCMapReaderFactory}.\n * @property {boolean} [useSystemFonts] - When `true`, fonts that aren't\n * embedded in the PDF document will fallback to a system font.\n * The default value is `true` in web environments and `false` in Node.js;\n * unless `disableFontFace === true` in which case this defaults to `false`\n * regardless of the environment (to prevent completely broken fonts).\n * @property {string} [standardFontDataUrl] - The URL where the standard font\n * files are located. Include the trailing slash.\n * @property {Object} [StandardFontDataFactory] - The factory that will be used\n * when reading the standard font files. Providing a custom factory is useful\n * for environments without Fetch API or `XMLHttpRequest` support, such as\n * Node.js. The default value is {DOMStandardFontDataFactory}.\n * @property {boolean} [useWorkerFetch] - Enable using the Fetch API in the\n * worker-thread when reading CMap and standard font files. When `true`,\n * the `CMapReaderFactory` and `StandardFontDataFactory` options are ignored.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {boolean} [stopAtErrors] - 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] - The maximum allowed image size in total\n * pixels, i.e. width * height. Images above this value will not be rendered.\n * Use -1 for no limit, which is also the default value.\n * @property {boolean} [isEvalSupported] - Determines if we can evaluate strings\n * as JavaScript. Primarily used to improve performance of font rendering, and\n * when parsing PDF functions. The default value is `true`.\n * @property {boolean} [isOffscreenCanvasSupported] - Determines if we can use\n * `OffscreenCanvas` in the worker. Primarily used to improve performance of\n * image conversion/rendering.\n * The default value is `true` in web environments and `false` in Node.js.\n * @property {number} [canvasMaxAreaInBytes] - The integer value is used to\n * know when an image must be resized (uses `OffscreenCanvas` in the worker).\n * If it's -1 then a possibly slow algorithm is used to guess the max value.\n * @property {boolean} [disableFontFace] - By default fonts are converted to\n * OpenType fonts and loaded via the Font Loading API or `@font-face` rules.\n * If disabled, fonts will be rendered using a built-in font renderer that\n * constructs the glyphs with primitive path commands.\n * The default value is `false` in web environments and `true` in Node.js.\n * @property {boolean} [fontExtraProperties] - Include additional properties,\n * which are unused during rendering of PDF documents, when exporting the\n * parsed font data from the worker-thread. This may be useful for debugging\n * purposes (and backwards compatibility), but note that it will lead to\n * increased memory usage. The default value is `false`.\n * @property {boolean} [enableXfa] - Render Xfa forms if any.\n * The default value is `false`.\n * @property {HTMLDocument} [ownerDocument] - Specify an explicit document\n * context to create elements with and to load resources, such as fonts,\n * into. Defaults to the current document.\n * @property {boolean} [disableRange] - Disable range request loading of PDF\n * files. When enabled, and if the server supports partial content requests,\n * then the PDF will be fetched in chunks. The default value is `false`.\n * @property {boolean} [disableStream] - Disable streaming of PDF file data.\n * By default PDF.js attempts to load PDF files in chunks. The default value\n * is `false`.\n * @property {boolean} [disableAutoFetch] - Disable pre-fetching of PDF file\n * 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 *\n * NOTE: It is also necessary to disable streaming, see above, in order for\n * disabling of pre-fetching to work correctly.\n * @property {boolean} [pdfBug] - Enables special hooks for debugging PDF.js\n * (see `web/debugger.js`). The default value is `false`.\n * @property {Object} [canvasFactory] - The factory instance that will be used\n * when creating canvases. The default value is {new DOMCanvasFactory()}.\n * @property {Object} [filterFactory] - A factory instance that will be used\n * to create SVG filters when rendering some images on the main canvas.\n */\n\n/**\n * This is the main entry point for loading a PDF and interacting with it.\n *\n * NOTE: If a URL is used to fetch the PDF data a standard Fetch API call (or\n * XHR as fallback) is used, which means it must follow same origin rules,\n * e.g. no cross-domain requests without CORS.\n *\n * @param {string | URL | TypedArray | ArrayBuffer | DocumentInitParameters}\n * src - Can be a URL where a PDF file is located, a typed array (Uint8Array)\n * already populated with data, or a parameter object.\n * @returns {PDFDocumentLoadingTask}\n */\nfunction getDocument(src) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = { url: src };\n } else if (isArrayBuffer(src)) {\n src = { data: src };\n }\n }\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, need 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 }\n const task = new PDFDocumentLoadingTask();\n const { docId } = task;\n\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport =\n src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize =\n Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0\n ? src.rangeChunkSize\n : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n // Ignore \"data:\"-URLs, since they can't be used to recover valid absolute\n // URLs anyway. We want to avoid sending them to the worker-thread, since\n // they contain the *entire* PDF document and can thus be arbitrarily long.\n const docBaseUrl =\n typeof src.docBaseUrl === \"string\" && !isDataScheme(src.docBaseUrl)\n ? src.docBaseUrl\n : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl =\n typeof src.standardFontDataUrl === \"string\"\n ? src.standardFontDataUrl\n : null;\n const StandardFontDataFactory =\n src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize =\n Number.isInteger(src.maxImageSize) && src.maxImageSize > -1\n ? src.maxImageSize\n : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported =\n typeof src.isOffscreenCanvasSupported === \"boolean\"\n ? src.isOffscreenCanvasSupported\n : !isNodeJS;\n const canvasMaxAreaInBytes = Number.isInteger(src.canvasMaxAreaInBytes)\n ? src.canvasMaxAreaInBytes\n : -1;\n const disableFontFace =\n typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n\n // Parameters whose default values depend on other parameters.\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts =\n typeof src.useSystemFonts === \"boolean\"\n ? src.useSystemFonts\n : !isNodeJS && !disableFontFace;\n const useWorkerFetch =\n typeof src.useWorkerFetch === \"boolean\"\n ? src.useWorkerFetch\n : (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) ||\n (CMapReaderFactory === DOMCMapReaderFactory &&\n StandardFontDataFactory === DOMStandardFontDataFactory &&\n cMapUrl &&\n standardFontDataUrl &&\n isValidFetchUrl(cMapUrl, document.baseURI) &&\n isValidFetchUrl(standardFontDataUrl, document.baseURI));\n const canvasFactory =\n src.canvasFactory || new DefaultCanvasFactory({ ownerDocument });\n const filterFactory =\n src.filterFactory || new DefaultFilterFactory({ docId, ownerDocument });\n\n // Parameters only intended for development/testing purposes.\n const styleElement =\n typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")\n ? src.styleElement\n : null;\n\n // Set the main-thread verbosity level.\n setVerbosityLevel(verbosity);\n\n // Ensure that the various factories can be initialized, when necessary,\n // since the user may provide *custom* ones.\n const transportFactory = {\n canvasFactory,\n filterFactory,\n };\n if (!useWorkerFetch) {\n transportFactory.cMapReaderFactory = new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked,\n });\n transportFactory.standardFontDataFactory = new StandardFontDataFactory({\n baseUrl: standardFontDataUrl,\n });\n }\n\n if (!worker) {\n const workerParams = {\n 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\n ? PDFWorker.fromPort(workerParams)\n : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const fetchDocParams = {\n docId,\n apiVersion:\n typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"TESTING\")\n ? PDFJSDev.eval(\"BUNDLE_VERSION\")\n : null,\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n canvasMaxAreaInBytes,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null,\n },\n };\n const transportParams = {\n ignoreErrors,\n isEvalSupported,\n disableFontFace,\n fontExtraProperties,\n enableXfa,\n ownerDocument,\n disableAutoFetch,\n pdfBug,\n styleElement,\n };\n\n worker.promise\n .then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new PDFDataTransportStream(\n {\n length,\n initialData: rangeTransport.initialData,\n progressiveDone: rangeTransport.progressiveDone,\n contentDispositionFilename:\n rangeTransport.contentDispositionFilename,\n disableRange,\n disableStream,\n },\n rangeTransport\n );\n } else if (!data) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Not implemented: createPDFNetworkStream\");\n }\n const createPDFNetworkStream = params => {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS\n ) {\n return new PDFNodeStream(params);\n }\n return isValidFetchUrl(params.url)\n ? new PDFFetchStream(params)\n : new PDFNetworkStream(params);\n };\n\n networkStream = createPDFNetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream,\n });\n }\n resolve(networkStream);\n });\n\n return Promise.all([workerIdPromise, networkStreamPromise]).then(\n function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new MessageHandler(\n docId,\n workerId,\n worker.port\n );\n const transport = new WorkerTransport(\n messageHandler,\n task,\n networkStream,\n transportParams,\n transportFactory\n );\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n }\n );\n })\n .catch(task._capability.reject);\n\n return task;\n}\n\n/**\n * Starts fetching of specified PDF document/data.\n *\n * @param {PDFWorker} worker\n * @param {Object} source\n * @returns {Promise} A promise that is resolved when the worker ID of\n * the `MessageHandler` is known.\n * @private\n */\nasync function _fetchDocument(worker, source) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerId = await worker.messageHandler.sendWithPromise(\n \"GetDocRequest\",\n source,\n source.data ? [source.data.buffer] : null\n );\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\n\nfunction getUrlProp(val) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n return null; // The 'url' is unused with `PDFDataRangeTransport`.\n }\n if (val instanceof URL) {\n return val.href;\n }\n try {\n // The full path is required in the 'url' field.\n return new URL(val, window.location).href;\n } catch {\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n typeof val === \"string\"\n ) {\n return val; // Use the url as-is in Node.js environments.\n }\n }\n throw new Error(\n \"Invalid PDF url data: \" +\n \"either string or URL-object is expected in the url property.\"\n );\n}\n\nfunction getDataProp(val) {\n // Converting string or array-like data to Uint8Array.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n isNodeJS &&\n typeof Buffer !== \"undefined\" && // eslint-disable-line no-undef\n val instanceof Buffer // eslint-disable-line no-undef\n ) {\n throw new Error(\n \"Please provide binary data as `Uint8Array`, rather than `Buffer`.\"\n );\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n // Use the data as-is when it's already a Uint8Array that completely\n // \"utilizes\" its underlying ArrayBuffer, to prevent any possible\n // issues when transferring it to the worker-thread.\n return val;\n }\n if (typeof val === \"string\") {\n return stringToBytes(val);\n }\n if ((typeof val === \"object\" && !isNaN(val?.length)) || isArrayBuffer(val)) {\n return new Uint8Array(val);\n }\n throw new Error(\n \"Invalid PDF binary data: either TypedArray, \" +\n \"string, or array-like object is expected in the data property.\"\n );\n}\n\n/**\n * @typedef {Object} OnProgressParameters\n * @property {number} loaded - Currently loaded number of bytes.\n * @property {number} total - Total number of bytes in the PDF file.\n */\n\n/**\n * The loading task controls the operations required to load a PDF document\n * (such as network requests) and provides a way to listen for completion,\n * after which individual pages can be rendered.\n */\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n\n constructor() {\n this._capability = new PromiseCapability();\n this._transport = null;\n this._worker = null;\n\n /**\n * Unique identifier for the document loading task.\n * @type {string}\n */\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n\n /**\n * Whether the loading task is destroyed or not.\n * @type {boolean}\n */\n this.destroyed = false;\n\n /**\n * Callback to request a password if a wrong or no password was provided.\n * The callback receives two parameters: a function that should be called\n * with the new password, and a reason (see {@link PasswordResponses}).\n * @type {function}\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).\n * The callback receives an {@link OnProgressParameters} argument.\n * @type {function}\n */\n this.onProgress = null;\n }\n\n /**\n * Promise for document loading task completion.\n * @type {Promise}\n */\n get promise() {\n return this._capability.promise;\n }\n\n /**\n * Abort all network requests and destroy the worker.\n * @returns {Promise} A promise that is resolved when destruction is\n * completed.\n */\n async destroy() {\n this.destroyed = true;\n try {\n if (this._worker?.port) {\n this._worker._pendingDestroy = true;\n }\n await this._transport?.destroy();\n } catch (ex) {\n if (this._worker?.port) {\n delete this._worker._pendingDestroy;\n }\n throw ex;\n }\n\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\n\n/**\n * Abstract class to support range requests file loading.\n *\n * NOTE: The TypedArrays passed to the constructor and relevant methods below\n * will generally be transferred to the worker-thread. This will help reduce\n * main-thread memory usage, however it will take ownership of the TypedArrays.\n */\nclass PDFDataRangeTransport {\n /**\n * @param {number} length\n * @param {Uint8Array|null} initialData\n * @param {boolean} [progressiveDone]\n * @param {string} [contentDispositionFilename]\n */\n constructor(\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null\n ) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = new PromiseCapability();\n }\n\n /**\n * @param {function} listener\n */\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n /**\n * @param {function} listener\n */\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n /**\n * @param {function} listener\n */\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n /**\n * @param {function} listener\n */\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n /**\n * @param {number} begin\n * @param {Uint8Array|null} chunk\n */\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n /**\n * @param {number} loaded\n * @param {number|undefined} total\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 /**\n * @param {Uint8Array|null} chunk\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 /**\n * @param {number} begin\n * @param {number} end\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.\n */\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n Object.defineProperty(this, \"getJavaScript\", {\n value: () => {\n deprecated(\n \"`PDFDocumentProxy.getJavaScript`, \" +\n \"please use `PDFDocumentProxy.getJSActions` instead.\"\n );\n return this.getJSActions().then(js => {\n if (!js) {\n return js;\n }\n const jsArr = [];\n for (const name in js) {\n jsArr.push(...js[name]);\n }\n return jsArr;\n });\n },\n });\n }\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n // For testing purposes.\n Object.defineProperty(this, \"getXFADatasets\", {\n value: () => {\n return this._transport.getXFADatasets();\n },\n });\n Object.defineProperty(this, \"getXRefPrevValue\", {\n value: () => {\n return this._transport.getXRefPrevValue();\n },\n });\n Object.defineProperty(this, \"getAnnotArray\", {\n value: pageIndex => {\n return this._transport.getAnnotArray(pageIndex);\n },\n });\n }\n }\n\n /**\n * @type {AnnotationStorage} Storage for annotation data in forms.\n */\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n /**\n * @type {Object} The filter factory instance.\n */\n get filterFactory() {\n return this._transport.filterFactory;\n }\n\n /**\n * @type {number} Total number of pages in the PDF file.\n */\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n /**\n * @type {Array} A (not guaranteed to be) unique ID to\n * identify the PDF document.\n * NOTE: The first element will always be defined for all PDF documents,\n * whereas the second element is only defined for *modified* PDF documents.\n */\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n /**\n * @type {boolean} True if only XFA form.\n */\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n\n /**\n * NOTE: This is (mostly) intended to support printing of XFA forms.\n *\n * @type {Object | null} An object representing a HTML tree structure\n * to render the XFA, or `null` when no XFA form exists.\n */\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n /**\n * @param {number} pageNumber - The page number to get. The first page is 1.\n * @returns {Promise} A promise that is resolved with\n * a {@link PDFPageProxy} object.\n */\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n /**\n * @param {RefProxy} ref - The page reference.\n * @returns {Promise} A promise that is resolved with the page index,\n * starting from zero, that is associated with the reference.\n */\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n /**\n * @returns {Promise>>} A promise that is resolved\n * with a mapping from named destinations to references.\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 * @returns {Promise | null>} A promise that is resolved with all\n * information of the given named destination, or `null` when the named\n * destination is not present in the PDF file.\n */\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} containing the page labels that correspond to the page\n * indexes, or `null` when no page labels are present in the PDF file.\n */\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page layout name.\n */\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a {string}\n * containing the page mode name.\n */\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} containing the viewer preferences, or `null` when no viewer\n * preferences are present in the PDF file.\n */\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an {Array}\n * containing the destination, or `null` when no open action is present\n * in the PDF.\n */\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a lookup table\n * for mapping named attachments to their content.\n */\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with the JavaScript actions:\n * - from the name tree.\n * - from A or AA entries in the catalog dictionary.\n * , or `null` if no JavaScript exists.\n */\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n /**\n * @typedef {Object} OutlineNode\n * @property {string} title\n * @property {boolean} bold\n * @property {boolean} italic\n * @property {Uint8ClampedArray} color - The color in RGB format to use for\n * display purposes.\n * @property {string | Array | null} dest\n * @property {string | null} url\n * @property {string | undefined} unsafeUrl\n * @property {boolean | undefined} newWindow\n * @property {number | undefined} count\n * @property {Array} items\n */\n\n /**\n * @returns {Promise>} A promise that is resolved with an\n * {Array} that is a tree outline (if it has one) of the PDF file.\n */\n getOutline() {\n return this._transport.getOutline();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {@link OptionalContentConfig} that contains all the optional content\n * groups (assuming that the document has any).\n */\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with\n * an {Array} that contains the permission flags for the PDF document, or\n * `null` when no permissions are present in the PDF file.\n */\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n /**\n * @returns {Promise<{ info: Object, metadata: Metadata }>} A promise that is\n * resolved with an {Object} that has `info` and `metadata` properties.\n * `info` is an {Object} filled with anything available in the information\n * dictionary and similarly `metadata` is a {Metadata} object with\n * information from the metadata section of the PDF.\n */\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n /**\n * @typedef {Object} MarkInfo\n * Properties correspond to Table 321 of the PDF 32000-1:2008 spec.\n * @property {boolean} Marked\n * @property {boolean} UserProperties\n * @property {boolean} Suspects\n */\n\n /**\n * @returns {Promise} A promise that is resolved with\n * a {MarkInfo} object that contains the MarkInfo flags for the PDF\n * document, or `null` when no MarkInfo values are present in the PDF file.\n */\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {Uint8Array} containing the raw data of the PDF document.\n */\n getData() {\n return this._transport.getData();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with a\n * {Uint8Array} containing the full data of the saved document.\n */\n saveDocument() {\n return this._transport.saveDocument();\n }\n\n /**\n * @returns {Promise<{ length: number }>} A promise that is resolved when the\n * document's data is loaded. It is resolved with an {Object} that contains\n * the `length` property that indicates size of the PDF data in bytes.\n */\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n /**\n * Cleans up resources allocated by the document on both the main and worker\n * threads.\n *\n * NOTE: Do not, under any circumstances, call this method when rendering is\n * currently ongoing since that may lead to rendering errors.\n *\n * @param {boolean} [keepLoadedFonts] - Let fonts remain attached to the DOM.\n * NOTE: This will increase persistent memory usage, hence don't use this\n * option unless absolutely necessary. The default value is `false`.\n * @returns {Promise} A promise that is resolved when clean-up has finished.\n */\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\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 * @type {DocumentInitParameters} A subset of the current\n * {DocumentInitParameters}, which are needed in the viewer.\n */\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n /**\n * @type {PDFDocumentLoadingTask} The loadingTask for the current document.\n */\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n /**\n * @returns {Promise> | null>} A promise that is\n * resolved with an {Object} containing /AcroForm field data for the JS\n * sandbox, or `null` when no field data is present in the PDF file.\n */\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n /**\n * @returns {Promise} A promise that is resolved with `true`\n * if some /AcroForm fields have JavaScript actions.\n */\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n /**\n * @returns {Promise | null>} A promise that is resolved with an\n * {Array} containing IDs of annotations that have a calculation\n * action, or `null` when no such annotations are present in the PDF file.\n */\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\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] - The desired rotation, in degrees, of\n * the viewport. If omitted it defaults to the page rotation.\n * @property {number} [offsetX] - The horizontal, i.e. x-axis, offset.\n * The default value is `0`.\n * @property {number} [offsetY] - The vertical, i.e. y-axis, offset.\n * The default value is `0`.\n * @property {boolean} [dontFlip] - 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} [includeMarkedContent] - When true include marked\n * content items in the items array of TextContent. The default is `false`.\n * @property {boolean} [disableNormalization] - When true the text is *not*\n * normalized in the worker-thread. The default is `false`.\n */\n\n/**\n * Page text content.\n *\n * @typedef {Object} TextContent\n * @property {Array} items - Array of\n * {@link TextItem} and {@link TextMarkedContent} objects. TextMarkedContent\n * items are included when includeMarkedContent is true.\n * @property {Object} styles - {@link TextStyle} objects,\n * 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 * @property {boolean} hasEOL - Indicating if the text content is followed by a\n * line-break.\n */\n\n/**\n * Page text marked content part.\n *\n * @typedef {Object} TextMarkedContent\n * @property {string} type - Either 'beginMarkedContent',\n * 'beginMarkedContentProps', or 'endMarkedContent'.\n * @property {string} id - The marked content identifier. Only used for type\n * 'beginMarkedContentProps'.\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 - Whether or not the text is in vertical mode.\n * @property {string} fontFamily - The possible font family.\n */\n\n/**\n * Page annotation parameters.\n *\n * @typedef {Object} GetAnnotationsParameters\n * @property {string} [intent] - Determines the annotations that are fetched,\n * can be 'display' (viewable annotations), 'print' (printable annotations),\n * or 'any' (all annotations). The default value is 'display'.\n */\n\n/**\n * Page render parameters.\n *\n * @typedef {Object} RenderParameters\n * @property {CanvasRenderingContext2D} canvasContext - A 2D context of a DOM\n * Canvas object.\n * @property {PageViewport} viewport - Rendering viewport obtained by calling\n * the `PDFPageProxy.getViewport` method.\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are rendered\n * onto the canvas, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {Array} [transform] - Additional transform, applied just\n * before viewport transform.\n * @property {CanvasGradient | CanvasPattern | string} [background] - Background\n * to use for the canvas.\n * Any valid `canvas.fillStyle` can be used: a `DOMString` parsed as CSS\n * value, a `CanvasGradient` object (a linear or radial gradient) or\n * a `CanvasPattern` object (a repetitive image). The default value is\n * 'rgb(255,255,255)'.\n *\n * NOTE: This option may be partially, or completely, ignored when the\n * `pageColors`-option is used.\n * @property {Object} [pageColors] - Overwrites background and foreground colors\n * with user defined ones in order to improve readability in high contrast\n * mode.\n * @property {Promise} [optionalContentConfigPromise] -\n * A promise that should resolve with an {@link OptionalContentConfig}\n * created from `PDFDocumentProxy.getOptionalContentConfig`. If `null`,\n * the configuration will be fetched automatically with the default visibility\n * states set.\n * @property {Map} [annotationCanvasMap] - Map some\n * annotation ids with canvases used to render them.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Page getOperatorList parameters.\n *\n * @typedef {Object} GetOperatorListParameters\n * @property {string} [intent] - Rendering intent, can be 'display', 'print',\n * or 'any'. The default value is 'display'.\n * @property {number} [annotationMode] Controls which annotations are included\n * in the operatorList, for annotations with appearance-data; the values from\n * {@link AnnotationMode} should be used. The following values are supported:\n * - `AnnotationMode.DISABLE`, which disables all annotations.\n * - `AnnotationMode.ENABLE`, which includes all possible annotations (thus\n * it also depends on the `intent`-option, see above).\n * - `AnnotationMode.ENABLE_FORMS`, which excludes annotations that contain\n * interactive form elements (those will be rendered in the display layer).\n * - `AnnotationMode.ENABLE_STORAGE`, which includes all possible annotations\n * (as above) but where interactive form elements are updated with data\n * from the {@link AnnotationStorage}-instance; useful e.g. for printing.\n * The default value is `AnnotationMode.ENABLE`.\n * @property {PrintAnnotationStorage} [printAnnotationStorage]\n */\n\n/**\n * Structure tree node. The root node will have a role \"Root\".\n *\n * @typedef {Object} StructTreeNode\n * @property {Array} children - Array of\n * {@link StructTreeNode} and {@link StructTreeContent} objects.\n * @property {string} role - element's role, already mapped if a role map exists\n * in the PDF.\n */\n\n/**\n * Structure tree content.\n *\n * @typedef {Object} StructTreeContent\n * @property {string} type - either \"content\" for page and stream structure\n * elements or \"object\" for object references.\n * @property {string} id - unique id that will map to the text layer.\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 */\nclass PDFPageProxy {\n #delayedCleanupTimeout = null;\n\n #pendingCleanup = false;\n\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() : null;\n this._pdfBug = pdfBug;\n /** @type {PDFObjects} */\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n\n this._maybeCleanupAfterRender = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n\n /**\n * @type {number} Page number of the page. First page is 1.\n */\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n /**\n * @type {number} The number of degrees the page is rotated clockwise.\n */\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n /**\n * @type {RefProxy | null} The reference that points to this page.\n */\n get ref() {\n return this._pageInfo.ref;\n }\n\n /**\n * @type {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 * @type {Array} An array of the visible portion of the PDF page in\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 * @returns {PageViewport} Contains 'width' and 'height' properties\n * along with transforms required for rendering.\n */\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false,\n } = {}) {\n return new PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip,\n });\n }\n\n /**\n * @param {GetAnnotationsParameters} params - Annotation parameters.\n * @returns {Promise>} A promise that is resolved with an\n * {Array} of the annotation objects.\n */\n getAnnotations({ intent = \"display\" } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n return this._transport.getAnnotations(\n this._pageIndex,\n intentArgs.renderingIntent\n );\n }\n\n /**\n * @returns {Promise} A promise that is resolved with an\n * {Object} with JS actions.\n */\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n\n /**\n * @type {Object} The filter factory instance.\n */\n get filterFactory() {\n return this._transport.filterFactory;\n }\n\n /**\n * @type {boolean} True if only XFA form.\n */\n get isPureXfa() {\n return shadow(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n\n /**\n * @returns {Promise} A promise that is resolved with\n * an {Object} with a fake DOM object (a tree structure where elements\n * are {Object} with a name, attributes (class, style, ...), value and\n * children, very similar to a HTML DOM tree), or `null` if no XFA exists.\n */\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n /**\n * Begins the process of rendering a page to the desired context.\n *\n * @param {RenderParameters} params - Page render parameters.\n * @returns {RenderTask} An object that contains a promise that is\n * resolved when the page finishes rendering.\n */\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n transform = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null,\n }) {\n this._stats?.time(\"Overall\");\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n printAnnotationStorage\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 // ... and ensure that a delayed cleanup is always aborted.\n this.#abortDelayedCleanup();\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const intentPrint = !!(\n intentArgs.renderingIntent & RenderingIntentFlag.PRINT\n );\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.displayReadyCapability = new PromiseCapability();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null,\n };\n\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n // Attempt to reduce memory usage during *printing*, by always running\n // cleanup immediately once rendering has finished.\n if (this._maybeCleanupAfterRender || intentPrint) {\n this.#pendingCleanup = true;\n }\n this.#tryCleanup(/* delayed = */ !intentPrint);\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error),\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n // Only include the required properties, and *not* the entire object.\n params: {\n canvasContext,\n viewport,\n transform,\n background,\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: this._transport.canvasFactory,\n filterFactory: this._transport.filterFactory,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors,\n });\n\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n\n Promise.all([\n intentState.displayReadyCapability.promise,\n optionalContentConfigPromise,\n ])\n .then(([transparency, optionalContentConfig]) => {\n if (this.destroyed) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig,\n });\n internalRenderTask.operatorListChanged();\n })\n .catch(complete);\n\n return renderTask;\n }\n\n /**\n * @param {GetOperatorListParameters} params - Page getOperatorList\n * parameters.\n * @returns {Promise} A promise resolved with an\n * {@link PDFOperatorList} object that represents the page's operator list.\n */\n getOperatorList({\n intent = \"display\",\n annotationMode = AnnotationMode.ENABLE,\n printAnnotationStorage = null,\n } = {}) {\n if (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n throw new Error(\"Not implemented: getOperatorList\");\n }\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(\n intent,\n annotationMode,\n printAnnotationStorage,\n /* isOpList = */ true\n );\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = new PromiseCapability();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null,\n };\n\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {ReadableStream} Stream for reading text content chunks.\n */\n streamTextContent({\n includeMarkedContent = false,\n disableNormalization = false,\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n\n return this._transport.messageHandler.sendWithStream(\n \"GetTextContent\",\n {\n pageIndex: this._pageIndex,\n includeMarkedContent: includeMarkedContent === true,\n disableNormalization: disableNormalization === true,\n },\n {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n },\n }\n );\n }\n\n /**\n * NOTE: All occurrences of whitespace will be replaced by\n * standard spaces (0x20).\n *\n * @param {getTextContentParameters} params - getTextContent parameters.\n * @returns {Promise} A promise that is resolved with a\n * {@link TextContent} object that represents the page's text content.\n */\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n // TODO: We need to revisit this once the XFA foreground patch lands and\n // only do this for non-foreground XFA.\n return this.getXfa().then(xfa => {\n return XfaText.textContent(xfa);\n });\n }\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 * @returns {Promise} A promise that is resolved with a\n * {@link StructTreeNode} object that represents the page's structure tree,\n * or `null` when no structure tree is present for the current page.\n */\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n\n /**\n * Destroys the page object.\n * @private\n */\n _destroy() {\n this.destroyed = true;\n\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true,\n });\n\n if (intentState.opListReadCapability) {\n // Avoid errors below, since the renderTasks are just stubs.\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.#pendingCleanup = false;\n this.#abortDelayedCleanup();\n\n return Promise.all(waitOn);\n }\n\n /**\n * Cleans up resources allocated by the page.\n *\n * @param {boolean} [resetStats] - Reset page stats, if enabled.\n * The default value is `false`.\n * @returns {boolean} Indicates if clean-up was successfully run.\n */\n cleanup(resetStats = false) {\n this.#pendingCleanup = true;\n const success = this.#tryCleanup(/* delayed = */ false);\n\n if (resetStats && success) {\n this._stats &&= new StatTimer();\n }\n return success;\n }\n\n /**\n * Attempts to clean up if rendering is in a state where that's possible.\n * @param {boolean} [delayed] - Delay the cleanup, to e.g. improve zooming\n * performance in documents with large images.\n * The default value is `false`.\n * @returns {boolean} Indicates if clean-up was successfully run.\n */\n #tryCleanup(delayed = false) {\n this.#abortDelayedCleanup();\n\n if (!this.#pendingCleanup || this.destroyed) {\n return false;\n }\n if (delayed) {\n this.#delayedCleanupTimeout = setTimeout(() => {\n this.#delayedCleanupTimeout = null;\n this.#tryCleanup(/* delayed = */ false);\n }, DELAYED_CLEANUP_TIMEOUT);\n\n return false;\n }\n for (const { renderTasks, operatorList } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n this.#pendingCleanup = false;\n return true;\n }\n\n #abortDelayedCleanup() {\n if (this.#delayedCleanupTimeout) {\n clearTimeout(this.#delayedCleanupTimeout);\n this.#delayedCleanupTimeout = null;\n }\n }\n\n /**\n * @private\n */\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return; // Rendering was cancelled.\n }\n this._stats?.timeEnd(\"Page Request\");\n\n // TODO Refactor RenderPageRequest to separate rendering\n // and operator list logic\n intentState.displayReadyCapability?.resolve(transparency);\n }\n\n /**\n * @private\n */\n _renderPageChunk(operatorListChunk, intentState) {\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(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n\n // Notify all the rendering tasks there are more operators to be consumed.\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this.#tryCleanup(/* delayed = */ true);\n }\n }\n\n /**\n * @private\n */\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageSerializable,\n }) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n Number.isInteger(renderingIntent) && renderingIntent > 0,\n '_pumpOperatorList: Expected valid \"renderingIntent\" argument.'\n );\n }\n const { map, transfers } = annotationStorageSerializable;\n\n const readableStream = this._transport.messageHandler.sendWithStream(\n \"GetOperatorList\",\n {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: map,\n },\n transfers\n );\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(\n ({ value, done }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n this._renderPageChunk(value, intentState);\n pump();\n },\n reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n if (intentState.operatorList) {\n // Mark operator list as complete.\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this.#tryCleanup(/* delayed = */ true);\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n }\n );\n };\n pump();\n }\n\n /**\n * @private\n */\n _abortOperatorList({ intentState, reason, force = false }) {\n if (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"TESTING\")) {\n assert(\n reason instanceof Error,\n '_abortOperatorList: Expected valid \"reason\" argument.'\n );\n }\n\n if (!intentState.streamReader) {\n return;\n }\n // Ensure that a pending `streamReader` cancel timeout is always aborted.\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n if (!force) {\n // Ensure that an Error occurring in *only* one `InternalRenderTask`, e.g.\n // multiple render() calls on the same canvas, won't break all rendering.\n if (intentState.renderTasks.size > 0) {\n return;\n }\n // Don't immediately abort parsing on the worker-thread when rendering is\n // cancelled, since that will unnecessarily delay re-rendering when (for\n // partially parsed pages) e.g. zooming/rotation occurs in the viewer.\n if (reason instanceof RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < /* ms = */ 1000) {\n // Above, we prevent the total delay from becoming arbitrarily large.\n delay += reason.extraDelay;\n }\n\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({ intentState, reason, force: true });\n }, delay);\n return;\n }\n }\n intentState.streamReader\n .cancel(new AbortException(reason.message))\n .catch(() => {\n // Avoid \"Uncaught promise\" messages in the console.\n });\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return; // Ignore any pending requests if the worker was terminated.\n }\n // Remove the current `intentState`, since a cancelled `getOperatorList`\n // call on the worker-thread cannot be re-started...\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n // ... and force clean-up to ensure that any old state is always removed.\n this.cleanup();\n }\n\n /**\n * @type {StatTimer | null} Returns page stats, if enabled; returns `null`\n * otherwise.\n */\n get stats() {\n return this._stats;\n }\n}\n\nclass LoopbackPort {\n #listeners = new Set();\n\n #deferred = Promise.resolve();\n\n postMessage(obj, transfer) {\n const event = {\n data: structuredClone(\n obj,\n (typeof PDFJSDev === \"undefined\" ||\n PDFJSDev.test(\"SKIP_BABEL || TESTING\")) &&\n transfer\n ? { transfer }\n : null\n ),\n };\n\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this.#listeners.add(listener);\n }\n\n removeEventListener(name, listener) {\n this.#listeners.delete(listener);\n }\n\n terminate() {\n this.#listeners.clear();\n }\n}\n\n/**\n * @typedef {Object} PDFWorkerParameters\n * @property {string} [name] - The name of the worker.\n * @property {Worker} [port] - The `workerPort` object.\n * @property {number} [verbosity] - Controls the logging level;\n * the constants from {@link VerbosityLevel} should be used.\n */\n\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0,\n};\nif (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) {\n // eslint-disable-next-line no-undef\n if (isNodeJS && typeof __non_webpack_require__ === \"function\") {\n // Workers aren't supported in Node.js, force-disabling them there.\n PDFWorkerUtil.isWorkerDisabled = true;\n\n PDFWorkerUtil.fallbackWorkerSrc = PDFJSDev.test(\"LIB\")\n ? \"../pdf.worker.js\"\n : \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(\n /(\\.(?:min\\.)?js)(\\?.*)?$/i,\n \".worker$1$2\"\n );\n }\n }\n\n // Check if URLs have the same origin. For non-HTTP based URLs, returns false.\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false; // non-HTTP url\n }\n } catch {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n // We will rely on blob URL's property to specify origin.\n // We want this function to fail in case if createObjectURL or Blob do not\n // exist or fail for some reason -- our Worker creation will fail anyway.\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\n/**\n * PDF.js web worker abstraction that controls the instantiation of PDF\n * documents. Message handlers are used to pass information from the main\n * thread to the worker thread and vice versa. If the creation of a web\n * worker is not possible, a \"fake\" worker will be used instead.\n *\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\nclass PDFWorker {\n static #workerPorts;\n\n constructor({\n name = null,\n port = null,\n verbosity = getVerbosityLevel(),\n } = {}) {\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n\n this._readyCapability = new PromiseCapability();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (\n (typeof PDFJSDev === \"undefined\" || !PDFJSDev.test(\"MOZCENTRAL\")) &&\n port\n ) {\n if (PDFWorker.#workerPorts?.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n (PDFWorker.#workerPorts ||= new WeakMap()).set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n\n /**\n * Promise for worker initialization completion.\n * @type {Promise}\n */\n get promise() {\n return this._readyCapability.promise;\n }\n\n /**\n * The current `workerPort`, when it exists.\n * @type {Worker}\n */\n get port() {\n return this._port;\n }\n\n /**\n * The current MessageHandler-instance.\n * @type {MessageHandler}\n */\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Not implemented: _initializeFromPort\");\n }\n this._port = port;\n this._messageHandler = new MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {\n // Ignoring \"ready\" event -- MessageHandler should already be initialized\n // and ready to accept messages.\n });\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n }\n\n _initialize() {\n // If worker support isn't disabled explicit and the browser has worker\n // support, create a new web worker and test if it/the browser fulfills\n // all requirements to run parts of pdf.js in a web worker.\n // Right now, the requirement is, that an Uint8Array is still an\n // Uint8Array as it arrives on the worker. (Chrome added this with v.15.)\n if (\n !PDFWorkerUtil.isWorkerDisabled &&\n !PDFWorker._mainThreadWorkerMessageHandler\n ) {\n let { workerSrc } = PDFWorker;\n\n try {\n // Wraps workerSrc path into blob URL, if the former does not belong\n // to the same origin.\n if (\n typeof PDFJSDev !== \"undefined\" &&\n PDFJSDev.test(\"GENERIC\") &&\n !PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)\n ) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(\n new URL(workerSrc, window.location).href\n );\n }\n\n const worker =\n typeof PDFJSDev === \"undefined\" &&\n !workerSrc.endsWith(\"/build/pdf.worker.js\")\n ? new Worker(workerSrc, { type: \"module\" })\n : new Worker(workerSrc);\n const messageHandler = new MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n // Fall back to fake worker if the termination is caused by an\n // error (e.g. NetworkError / SecurityError).\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n // Worker failed to initialize due to an error. Clean up and fall\n // back to the fake worker.\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return; // worker was destroyed\n }\n try {\n sendTest();\n } catch {\n // We need fallback to a faked worker.\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array();\n // Ensure that we can use `postMessage` transfers.\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n\n // It might take time for the worker to initialize. We will try to send\n // the \"test\" message immediately, and once the \"ready\" message arrives.\n // The worker shall process only the first received \"test\" message.\n sendTest();\n return;\n } catch {\n info(\"The worker has been disabled.\");\n }\n }\n // Either workers are disabled, not supported or have thrown an exception.\n // Thus, we fallback to a faked worker.\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n warn(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal\n .then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n\n // All fake workers use the same port, making id unique.\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n\n // If the main thread is our worker, setup the handling for the\n // messages -- the main thread sends to it self.\n const workerHandler = new MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n\n const messageHandler = new MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n // Send global setting, e.g. verbosity level.\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity,\n });\n })\n .catch(reason => {\n this._readyCapability.reject(\n new Error(`Setting up fake worker failed: \"${reason.message}\".`)\n );\n });\n }\n\n /**\n * Destroys the worker instance.\n */\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n // We need to terminate only web worker created resource.\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts?.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n\n /**\n * @param {PDFWorkerParameters} params - The worker initialization parameters.\n */\n static fromPort(params) {\n if (typeof PDFJSDev !== \"undefined\" && PDFJSDev.test(\"MOZCENTRAL\")) {\n throw new Error(\"Not implemented: fromPort\");\n }\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n const cachedPort = this.#workerPorts?.get(params.port);\n if (cachedPort) {\n if (cachedPort._pendingDestroy) {\n throw new Error(\n \"PDFWorker.fromPort - the worker is being destroyed.\\n\" +\n \"Please remember to await `PDFDocumentLoadingTask.destroy()`-calls.\"\n );\n }\n return cachedPort;\n }\n return new PDFWorker(params);\n }\n\n /**\n * The current `workerSrc`, when it exists.\n * @type {string}\n */\n static get workerSrc() {\n if (GlobalWorkerOptions.workerSrc) {\n return GlobalWorkerOptions.workerSrc;\n }\n if (\n (typeof PDFJSDev === \"undefined\" || PDFJSDev.test(\"GENERIC\")) &&\n PDFWorkerUtil.fallbackWorkerSrc !== null\n ) {\n if (!isNodeJS) {\n deprecated('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch {\n return null;\n }\n }\n\n // Loads worker code into the main-thread.\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n // The worker was already loaded using e.g. a ` + + + + + + + +
+ +
+
+
+
+ + + + +
+
+ +
+ +
+
+
+
+
+ + + +
+
+
+ +
+ + + + + + + + + + +
+
+
+
+ +
+ +
+ +
+ +
+ + +
+
+ + + + + + +
+ +
+ + + +
+ +
+ + +
+
+
+ +
+ +
+ + + +
+
+
+
+
+
+
+
+
+
+ +
+
+
+
+ +
+ +
+ +
+
+ +
+
+ + +
+
+ +
+ File name: +

-

+
+
+ File size: +

-

+
+
+
+ Title: +

-

+
+
+ Author: +

-

+
+
+ Subject: +

-

+
+
+ Keywords: +

-

+
+
+ Creation Date: +

-

+
+
+ Modification Date: +

-

+
+
+ Creator: +

-

+
+
+
+ PDF Producer: +

-

+
+
+ PDF Version: +

-

+
+
+ Page Count: +

-

+
+
+ Page Size: +

-

+
+
+
+ Fast Web View: +

-

+
+
+ +
+
+ +
+
+ Choose an option + + Alt text (alternative text) helps when people can’t see the image or when it doesn’t load. + +
+
+
+
+ + +
+
+ + Aim for 1-2 sentences that describe the subject, setting, or actions. + +
+
+
+ +
+
+
+
+
+ + +
+
+ + This is used for ornamental images, like borders or watermarks. + +
+
+
+
+ + +
+
+
+ +
+ Preparing document for printing… +
+
+ + 0% +
+
+ +
+
+
+ +
+
+ + + + diff --git a/src/main/webapp/js/pdfjs-3.11.174/web/viewer.js b/src/main/webapp/js/pdfjs-3.11.174/web/viewer.js new file mode 100644 index 00000000..2043b5a4 --- /dev/null +++ b/src/main/webapp/js/pdfjs-3.11.174/web/viewer.js @@ -0,0 +1,14099 @@ +/** + * @licstart The following is the entire license notice for the + * JavaScript code in this page + * + * Copyright 2023 Mozilla Foundation + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * @licend The above is the entire license notice for the + * JavaScript code in this page + */ + +/******/ (() => { // webpackBootstrap +/******/ "use strict"; +/******/ var __webpack_modules__ = ([ +/* 0 */, +/* 1 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericCom = void 0; +var _app = __webpack_require__(2); +var _preferences = __webpack_require__(42); +var _download_manager = __webpack_require__(43); +var _genericl10n = __webpack_require__(44); +var _generic_scripting = __webpack_require__(46); +; +const GenericCom = {}; +exports.GenericCom = GenericCom; +class GenericPreferences extends _preferences.BasePreferences { + async _writeToStorage(prefObj) { + localStorage.setItem("pdfjs.preferences", JSON.stringify(prefObj)); + } + async _readFromStorage(prefObj) { + return JSON.parse(localStorage.getItem("pdfjs.preferences")); + } +} +class GenericExternalServices extends _app.DefaultExternalServices { + static createDownloadManager() { + return new _download_manager.DownloadManager(); + } + static createPreferences() { + return new GenericPreferences(); + } + static createL10n({ + locale = "en-US" + }) { + return new _genericl10n.GenericL10n(locale); + } + static createScripting({ + sandboxBundleSrc + }) { + return new _generic_scripting.GenericScripting(sandboxBundleSrc); + } +} +_app.PDFViewerApplication.externalServices = GenericExternalServices; + +/***/ }), +/* 2 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFViewerApplication = exports.PDFPrintServiceFactory = exports.DefaultExternalServices = void 0; +var _ui_utils = __webpack_require__(3); +var _pdfjsLib = __webpack_require__(4); +var _app_options = __webpack_require__(5); +var _event_utils = __webpack_require__(6); +var _pdf_link_service = __webpack_require__(7); +var _webAlt_text_manager = __webpack_require__(8); +var _webAnnotation_editor_params = __webpack_require__(9); +var _overlay_manager = __webpack_require__(10); +var _password_prompt = __webpack_require__(11); +var _webPdf_attachment_viewer = __webpack_require__(12); +var _webPdf_cursor_tools = __webpack_require__(14); +var _webPdf_document_properties = __webpack_require__(16); +var _webPdf_find_bar = __webpack_require__(17); +var _pdf_find_controller = __webpack_require__(18); +var _pdf_history = __webpack_require__(20); +var _webPdf_layer_viewer = __webpack_require__(21); +var _webPdf_outline_viewer = __webpack_require__(22); +var _webPdf_presentation_mode = __webpack_require__(23); +var _pdf_rendering_queue = __webpack_require__(24); +var _pdf_scripting_manager = __webpack_require__(25); +var _webPdf_sidebar = __webpack_require__(26); +var _webPdf_thumbnail_viewer = __webpack_require__(27); +var _pdf_viewer = __webpack_require__(29); +var _webSecondary_toolbar = __webpack_require__(39); +var _webToolbar = __webpack_require__(40); +var _view_history = __webpack_require__(41); +const FORCE_PAGES_LOADED_TIMEOUT = 10000; +const WHEEL_ZOOM_DISABLED_TIMEOUT = 1000; +const ViewOnLoad = { + UNKNOWN: -1, + PREVIOUS: 0, + INITIAL: 1 +}; +const ViewerCssTheme = { + AUTOMATIC: 0, + LIGHT: 1, + DARK: 2 +}; +class DefaultExternalServices { + constructor() { + throw new Error("Cannot initialize DefaultExternalServices."); + } + static updateFindControlState(data) {} + static updateFindMatchesCount(data) {} + static initPassiveLoading(callbacks) {} + static reportTelemetry(data) {} + static createDownloadManager() { + 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 supportsPinchToZoom() { + return (0, _pdfjsLib.shadow)(this, "supportsPinchToZoom", true); + } + 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); + } + static updateEditorStates(data) { + throw new Error("Not implemented: updateEditorStates"); + } + static get canvasMaxAreaInBytes() { + return (0, _pdfjsLib.shadow)(this, "canvasMaxAreaInBytes", -1); + } + static getNimbusExperimentData() { + return (0, _pdfjsLib.shadow)(this, "getNimbusExperimentData", Promise.resolve(null)); + } +} +exports.DefaultExternalServices = DefaultExternalServices; +const PDFViewerApplication = { + initialBookmark: document.location.hash.substring(1), + _initializedCapability: new _pdfjsLib.PromiseCapability(), + appConfig: null, + pdfDocument: null, + pdfLoadingTask: null, + printService: null, + pdfViewer: null, + pdfThumbnailViewer: null, + pdfRenderingQueue: null, + pdfPresentationMode: null, + pdfDocumentProperties: null, + pdfLinkService: null, + pdfHistory: null, + pdfSidebar: null, + pdfOutlineViewer: null, + pdfAttachmentViewer: null, + pdfLayerViewer: null, + pdfCursorTools: null, + pdfScriptingManager: null, + store: null, + downloadManager: null, + overlayManager: null, + preferences: null, + toolbar: null, + secondaryToolbar: null, + eventBus: null, + l10n: null, + annotationEditorParams: null, + isInitialViewSet: false, + downloadComplete: false, + isViewerEmbedded: window.parent !== window, + url: "", + baseUrl: "", + _downloadUrl: "", + externalServices: DefaultExternalServices, + _boundEvents: Object.create(null), + documentInfo: null, + metadata: null, + _contentDispositionFilename: null, + _contentLength: null, + _saveInProgress: false, + _wheelUnusedTicks: 0, + _wheelUnusedFactor: 1, + _touchUnusedTicks: 0, + _touchUnusedFactor: 1, + _PDFBug: null, + _hasAnnotationEditors: false, + _title: document.title, + _printAnnotationStoragePromise: null, + _touchInfo: null, + _isCtrlKeyDown: false, + _nimbusDataPromise: null, + async initialize(appConfig) { + this.preferences = this.externalServices.createPreferences(); + this.appConfig = appConfig; + await this._initializeOptions(); + this._forceCssTheme(); + await this._initializeL10n(); + if (this.isViewerEmbedded && _app_options.AppOptions.get("externalLinkTarget") === _pdf_link_service.LinkTarget.NONE) { + _app_options.AppOptions.set("externalLinkTarget", _pdf_link_service.LinkTarget.TOP); + } + await this._initializeViewerComponents(); + this.bindEvents(); + this.bindWindowEvents(); + const appContainer = appConfig.appContainer || document.documentElement; + this.l10n.translate(appContainer).then(() => { + this.eventBus.dispatch("localized", { + source: this + }); + }); + this._initializedCapability.resolve(); + }, + async _initializeOptions() { + if (_app_options.AppOptions.get("disablePreferences")) { + if (_app_options.AppOptions.get("pdfBugEnabled")) { + await this._parseHashParams(); + } + return; + } + if (_app_options.AppOptions._hasUserOptions()) { + console.warn("_initializeOptions: The Preferences may override manually set AppOptions; " + 'please use the "disablePreferences"-option in order to prevent that.'); + } + try { + _app_options.AppOptions.setAll(await this.preferences.getAll()); + } catch (reason) { + console.error(`_initializeOptions: "${reason.message}".`); + } + if (_app_options.AppOptions.get("pdfBugEnabled")) { + await this._parseHashParams(); + } + }, + async _parseHashParams() { + const hash = document.location.hash.substring(1); + if (!hash) { + return; + } + const { + mainContainer, + viewerContainer + } = this.appConfig, + params = (0, _ui_utils.parseQueryString)(hash); + if (params.get("disableworker") === "true") { + try { + await loadFakeWorker(); + } catch (ex) { + console.error(`_parseHashParams: "${ex.message}".`); + } + } + if (params.has("disablerange")) { + _app_options.AppOptions.set("disableRange", params.get("disablerange") === "true"); + } + if (params.has("disablestream")) { + _app_options.AppOptions.set("disableStream", params.get("disablestream") === "true"); + } + if (params.has("disableautofetch")) { + _app_options.AppOptions.set("disableAutoFetch", params.get("disableautofetch") === "true"); + } + if (params.has("disablefontface")) { + _app_options.AppOptions.set("disableFontFace", params.get("disablefontface") === "true"); + } + if (params.has("disablehistory")) { + _app_options.AppOptions.set("disableHistory", params.get("disablehistory") === "true"); + } + if (params.has("verbosity")) { + _app_options.AppOptions.set("verbosity", params.get("verbosity") | 0); + } + if (params.has("textlayer")) { + switch (params.get("textlayer")) { + case "off": + _app_options.AppOptions.set("textLayerMode", _ui_utils.TextLayerMode.DISABLE); + break; + case "visible": + case "shadow": + case "hover": + viewerContainer.classList.add(`textLayer-${params.get("textlayer")}`); + try { + await loadPDFBug(this); + this._PDFBug.loadCSS(); + } catch (ex) { + console.error(`_parseHashParams: "${ex.message}".`); + } + break; + } + } + if (params.has("pdfbug")) { + _app_options.AppOptions.set("pdfBug", true); + _app_options.AppOptions.set("fontExtraProperties", true); + const enabled = params.get("pdfbug").split(","); + try { + await loadPDFBug(this); + this._PDFBug.init(mainContainer, enabled); + } catch (ex) { + console.error(`_parseHashParams: "${ex.message}".`); + } + } + if (params.has("locale")) { + _app_options.AppOptions.set("locale", params.get("locale")); + } + }, + 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 || []; + for (let i = 0, ii = cssRules.length; i < ii; i++) { + const rule = cssRules[i]; + if (rule instanceof CSSMediaRule && rule.media?.[0] === "(prefers-color-scheme: dark)") { + if (cssTheme === ViewerCssTheme.LIGHT) { + styleSheet.deleteRule(i); + return; + } + const darkRules = /^@media \(prefers-color-scheme: dark\) {\n\s*([\w\s-.,:;/\\{}()]+)\n}$/.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, + externalServices, + l10n + } = this; + const eventBus = externalServices.isInAutomation ? new _event_utils.AutomationEventBus() : new _event_utils.EventBus(); + 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 = externalServices.createDownloadManager(); + this.downloadManager = downloadManager; + const findController = new _pdf_find_controller.PDFFindController({ + linkService: pdfLinkService, + eventBus, + updateMatchesCountOnProgress: true + }); + this.findController = findController; + const pdfScriptingManager = new _pdf_scripting_manager.PDFScriptingManager({ + eventBus, + sandboxBundleSrc: _app_options.AppOptions.get("sandboxBundleSrc"), + externalServices, + docProperties: this._scriptingDocProperties.bind(this) + }); + this.pdfScriptingManager = pdfScriptingManager; + const container = appConfig.mainContainer, + viewer = appConfig.viewerContainer; + const annotationEditorMode = _app_options.AppOptions.get("annotationEditorMode"); + const isOffscreenCanvasSupported = _app_options.AppOptions.get("isOffscreenCanvasSupported") && _pdfjsLib.FeatureTest.isOffscreenCanvasSupported; + const pageColors = _app_options.AppOptions.get("forcePageColors") || window.matchMedia("(forced-colors: active)").matches ? { + background: _app_options.AppOptions.get("pageColorsBackground"), + foreground: _app_options.AppOptions.get("pageColorsForeground") + } : null; + const altTextManager = appConfig.altTextDialog ? new _webAlt_text_manager.AltTextManager(appConfig.altTextDialog, container, this.overlayManager, eventBus) : null; + const pdfViewer = new _pdf_viewer.PDFViewer({ + container, + viewer, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + downloadManager, + altTextManager, + findController, + scriptingManager: _app_options.AppOptions.get("enableScripting") && pdfScriptingManager, + l10n, + textLayerMode: _app_options.AppOptions.get("textLayerMode"), + annotationMode: _app_options.AppOptions.get("annotationMode"), + annotationEditorMode, + imageResourcesPath: _app_options.AppOptions.get("imageResourcesPath"), + enablePrintAutoRotate: _app_options.AppOptions.get("enablePrintAutoRotate"), + isOffscreenCanvasSupported, + maxCanvasPixels: _app_options.AppOptions.get("maxCanvasPixels"), + enablePermissions: _app_options.AppOptions.get("enablePermissions"), + pageColors + }); + this.pdfViewer = pdfViewer; + pdfRenderingQueue.setViewer(pdfViewer); + pdfLinkService.setViewer(pdfViewer); + pdfScriptingManager.setViewer(pdfViewer); + if (appConfig.sidebar?.thumbnailView) { + this.pdfThumbnailViewer = new _webPdf_thumbnail_viewer.PDFThumbnailViewer({ + container: appConfig.sidebar.thumbnailView, + eventBus, + renderingQueue: pdfRenderingQueue, + linkService: pdfLinkService, + l10n, + pageColors + }); + pdfRenderingQueue.setThumbnailViewer(this.pdfThumbnailViewer); + } + if (!this.isViewerEmbedded && !_app_options.AppOptions.get("disableHistory")) { + this.pdfHistory = new _pdf_history.PDFHistory({ + linkService: pdfLinkService, + eventBus + }); + pdfLinkService.setHistory(this.pdfHistory); + } + if (!this.supportsIntegratedFind && appConfig.findBar) { + this.findBar = new _webPdf_find_bar.PDFFindBar(appConfig.findBar, eventBus, l10n); + } + if (appConfig.annotationEditorParams) { + if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + if (_app_options.AppOptions.get("enableStampEditor") && isOffscreenCanvasSupported) { + appConfig.toolbar?.editorStampButton?.classList.remove("hidden"); + } + this.annotationEditorParams = new _webAnnotation_editor_params.AnnotationEditorParams(appConfig.annotationEditorParams, eventBus); + } else { + for (const id of ["editorModeButtons", "editorModeSeparator"]) { + document.getElementById(id)?.classList.add("hidden"); + } + } + } + if (appConfig.documentProperties) { + this.pdfDocumentProperties = new _webPdf_document_properties.PDFDocumentProperties(appConfig.documentProperties, this.overlayManager, eventBus, l10n, () => this._docFilename); + } + if (appConfig.secondaryToolbar?.cursorHandToolButton) { + this.pdfCursorTools = new _webPdf_cursor_tools.PDFCursorTools({ + container, + eventBus, + cursorToolOnLoad: _app_options.AppOptions.get("cursorToolOnLoad") + }); + } + if (appConfig.toolbar) { + this.toolbar = new _webToolbar.Toolbar(appConfig.toolbar, eventBus, l10n); + } + if (appConfig.secondaryToolbar) { + this.secondaryToolbar = new _webSecondary_toolbar.SecondaryToolbar(appConfig.secondaryToolbar, eventBus); + } + if (this.supportsFullscreen && appConfig.secondaryToolbar?.presentationModeButton) { + this.pdfPresentationMode = new _webPdf_presentation_mode.PDFPresentationMode({ + container, + pdfViewer, + eventBus + }); + } + if (appConfig.passwordOverlay) { + this.passwordPrompt = new _password_prompt.PasswordPrompt(appConfig.passwordOverlay, this.overlayManager, l10n, this.isViewerEmbedded); + } + if (appConfig.sidebar?.outlineView) { + this.pdfOutlineViewer = new _webPdf_outline_viewer.PDFOutlineViewer({ + container: appConfig.sidebar.outlineView, + eventBus, + linkService: pdfLinkService, + downloadManager + }); + } + if (appConfig.sidebar?.attachmentsView) { + this.pdfAttachmentViewer = new _webPdf_attachment_viewer.PDFAttachmentViewer({ + container: appConfig.sidebar.attachmentsView, + eventBus, + downloadManager + }); + } + if (appConfig.sidebar?.layersView) { + this.pdfLayerViewer = new _webPdf_layer_viewer.PDFLayerViewer({ + container: appConfig.sidebar.layersView, + eventBus, + l10n + }); + } + if (appConfig.sidebar) { + this.pdfSidebar = new _webPdf_sidebar.PDFSidebar({ + elements: appConfig.sidebar, + eventBus, + l10n + }); + this.pdfSidebar.onToggled = this.forceRendering.bind(this); + this.pdfSidebar.onUpdateThumbnails = () => { + for (const pageView of pdfViewer.getCachedPageViews()) { + if (pageView.renderingState === _ui_utils.RenderingStates.FINISHED) { + this.pdfThumbnailViewer.getThumbnail(pageView.id - 1)?.setImage(pageView); + } + } + this.pdfThumbnailViewer.scrollThumbnailIntoView(pdfViewer.currentPageNumber); + }; + } + }, + async run(config) { + await this.initialize(config); + const { + appConfig, + eventBus + } = this; + let file; + const queryString = document.location.search.substring(1); + const params = (0, _ui_utils.parseQueryString)(queryString); + file = params.get("file") ?? _app_options.AppOptions.get("defaultUrl"); + validateFileURL(file); + const fileInput = appConfig.openFileInput; + fileInput.value = null; + fileInput.addEventListener("change", function (evt) { + const { + files + } = evt.target; + if (!files || files.length === 0) { + return; + } + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.target + }); + }); + appConfig.mainContainer.addEventListener("dragover", function (evt) { + evt.preventDefault(); + evt.dataTransfer.dropEffect = evt.dataTransfer.effectAllowed === "copy" ? "copy" : "move"; + }); + appConfig.mainContainer.addEventListener("drop", function (evt) { + evt.preventDefault(); + const { + files + } = evt.dataTransfer; + if (!files || files.length === 0) { + return; + } + eventBus.dispatch("fileinputchange", { + source: this, + fileInput: evt.dataTransfer + }); + }); + if (!this.supportsDocumentFonts) { + _app_options.AppOptions.set("disableFontFace", true); + this.l10n.get("web_fonts_disabled").then(msg => { + console.warn(msg); + }); + } + if (!this.supportsPrinting) { + appConfig.toolbar?.print?.classList.add("hidden"); + appConfig.secondaryToolbar?.printButton.classList.add("hidden"); + } + if (!this.supportsFullscreen) { + appConfig.secondaryToolbar?.presentationModeButton.classList.add("hidden"); + } + if (this.supportsIntegratedFind) { + appConfig.toolbar?.viewFind?.classList.add("hidden"); + } + appConfig.mainContainer.addEventListener("transitionend", function (evt) { + if (evt.target === this) { + eventBus.dispatch("resize", { + source: this + }); + } + }, true); + if (file) { + this.open({ + url: file + }); + } else { + this._hideViewBookmark(); + } + }, + get initialized() { + return this._initializedCapability.settled; + }, + get initializedPromise() { + return this._initializedCapability.promise; + }, + zoomIn(steps, scaleFactor) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.increaseScale({ + drawingDelay: _app_options.AppOptions.get("defaultZoomDelay"), + steps, + scaleFactor + }); + }, + zoomOut(steps, scaleFactor) { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.decreaseScale({ + drawingDelay: _app_options.AppOptions.get("defaultZoomDelay"), + steps, + scaleFactor + }); + }, + zoomReset() { + if (this.pdfViewer.isInPresentationMode) { + return; + } + this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + }, + get pagesCount() { + return this.pdfDocument ? this.pdfDocument.numPages : 0; + }, + get page() { + return this.pdfViewer.currentPageNumber; + }, + set page(val) { + this.pdfViewer.currentPageNumber = val; + }, + get supportsPrinting() { + return PDFPrintServiceFactory.instance.supportsPrinting; + }, + get supportsFullscreen() { + return (0, _pdfjsLib.shadow)(this, "supportsFullscreen", document.fullscreenEnabled); + }, + get supportsPinchToZoom() { + return this.externalServices.supportsPinchToZoom; + }, + get supportsIntegratedFind() { + return this.externalServices.supportsIntegratedFind; + }, + get supportsDocumentFonts() { + return this.externalServices.supportsDocumentFonts; + }, + get loadingBar() { + const barElement = document.getElementById("loadingBar"); + const bar = barElement ? new _ui_utils.ProgressBar(barElement) : null; + return (0, _pdfjsLib.shadow)(this, "loadingBar", bar); + }, + get supportedMouseWheelZoomModifierKeys() { + return this.externalServices.supportedMouseWheelZoomModifierKeys; + }, + initPassiveLoading(file) { + throw new Error("Not implemented: initPassiveLoading"); + }, + setTitleUsingUrl(url = "", downloadUrl = null) { + this.url = url; + this.baseUrl = url.split("#")[0]; + if (downloadUrl) { + this._downloadUrl = downloadUrl === url ? this.baseUrl : downloadUrl.split("#")[0]; + } + if ((0, _pdfjsLib.isDataScheme)(url)) { + this._hideViewBookmark(); + } + let title = (0, _pdfjsLib.getPdfFilenameFromUrl)(url, ""); + if (!title) { + try { + title = decodeURIComponent((0, _pdfjsLib.getFilenameFromUrl)(url)) || url; + } catch { + title = url; + } + } + this.setTitle(title); + }, + setTitle(title = this._title) { + this._title = title; + if (this.isViewerEmbedded) { + return; + } + const editorIndicator = this._hasAnnotationEditors && !this.pdfRenderingQueue.printing; + document.title = `${editorIndicator ? "* " : ""}${title}`; + }, + get _docFilename() { + return this._contentDispositionFilename || (0, _pdfjsLib.getPdfFilenameFromUrl)(this.url); + }, + _hideViewBookmark() { + const { + secondaryToolbar + } = this.appConfig; + secondaryToolbar?.viewBookmarkButton.classList.add("hidden"); + if (secondaryToolbar?.presentationModeButton.classList.contains("hidden")) { + document.getElementById("viewBookmarkSeparator")?.classList.add("hidden"); + } + }, + async close() { + this._unblockDocumentLoadEvent(); + this._hideViewBookmark(); + if (!this.pdfLoadingTask) { + return; + } + if (this.pdfDocument?.annotationStorage.size > 0 && this._annotationStorageModified) { + try { + await this.save(); + } catch {} + } + 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); + } + this.pdfLinkService.externalLinkEnabled = true; + this.store = null; + this.isInitialViewSet = false; + this.downloadComplete = false; + this.url = ""; + this.baseUrl = ""; + this._downloadUrl = ""; + this.documentInfo = null; + this.metadata = null; + this._contentDispositionFilename = null; + this._contentLength = null; + this._saveInProgress = false; + this._hasAnnotationEditors = false; + promises.push(this.pdfScriptingManager.destroyPromise, this.passwordPrompt.close()); + this.setTitle(); + this.pdfSidebar?.reset(); + this.pdfOutlineViewer?.reset(); + this.pdfAttachmentViewer?.reset(); + this.pdfLayerViewer?.reset(); + this.pdfHistory?.reset(); + this.findBar?.reset(); + this.toolbar?.reset(); + this.secondaryToolbar?.reset(); + this._PDFBug?.cleanup(); + await Promise.all(promises); + }, + async open(args) { + let deprecatedArgs = false; + if (typeof args === "string") { + args = { + url: args + }; + deprecatedArgs = true; + } else if (args?.byteLength) { + args = { + data: args + }; + deprecatedArgs = true; + } + if (deprecatedArgs) { + console.error("The `PDFViewerApplication.open` signature was updated, please use an object instead."); + } + if (this.pdfLoadingTask) { + await this.close(); + } + const workerParams = _app_options.AppOptions.getAll(_app_options.OptionKind.WORKER); + Object.assign(_pdfjsLib.GlobalWorkerOptions, workerParams); + if (args.url) { + this.setTitleUsingUrl(args.originalUrl || args.url, args.url); + } + const apiParams = _app_options.AppOptions.getAll(_app_options.OptionKind.API); + const params = { + canvasMaxAreaInBytes: this.externalServices.canvasMaxAreaInBytes, + ...apiParams, + ...args + }; + const loadingTask = (0, _pdfjsLib.getDocument)(params); + this.pdfLoadingTask = loadingTask; + loadingTask.onPassword = (updateCallback, reason) => { + if (this.isViewerEmbedded) { + this._unblockDocumentLoadEvent(); + } + this.pdfLinkService.externalLinkEnabled = false; + this.passwordPrompt.setUpdateCallback(updateCallback, reason); + this.passwordPrompt.open(); + }; + loadingTask.onProgress = ({ + loaded, + total + }) => { + this.progress(loaded / total); + }; + return loadingTask.promise.then(pdfDocument => { + this.load(pdfDocument); + }, reason => { + if (loadingTask !== this.pdfLoadingTask) { + return undefined; + } + let key = "loading_error"; + if (reason instanceof _pdfjsLib.InvalidPDFException) { + key = "invalid_file_error"; + } else if (reason instanceof _pdfjsLib.MissingPDFException) { + key = "missing_file_error"; + } else if (reason instanceof _pdfjsLib.UnexpectedResponseException) { + key = "unexpected_response_error"; + } + return this.l10n.get(key).then(msg => { + this._documentError(msg, { + message: reason?.message + }); + throw reason; + }); + }); + }, + _ensureDownloadComplete() { + if (this.pdfDocument && this.downloadComplete) { + return; + } + throw new Error("PDF document not downloaded."); + }, + async download(options = {}) { + const url = this._downloadUrl, + 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, options); + } catch { + await this.downloadManager.downloadUrl(url, filename, options); + } + }, + async save(options = {}) { + if (this._saveInProgress) { + return; + } + this._saveInProgress = true; + await this.pdfScriptingManager.dispatchWillSave(); + const url = this._downloadUrl, + 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, options); + } catch (reason) { + console.error(`Error when saving the document: ${reason.message}`); + await this.download(options); + } finally { + await this.pdfScriptingManager.dispatchDidSave(); + this._saveInProgress = false; + } + if (this._hasAnnotationEditors) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: "save" + } + }); + } + }, + downloadOrSave(options = {}) { + if (this.pdfDocument?.annotationStorage.size > 0) { + this.save(options); + } else { + this.download(options); + } + }, + openInExternalApp() { + this.downloadOrSave({ + openInExternalApp: true + }); + }, + _documentError(message, moreInfo = null) { + this._unblockDocumentLoadEvent(); + this._otherError(message, moreInfo); + this.eventBus.dispatch("documenterror", { + source: this, + message, + reason: moreInfo?.message ?? null + }); + }, + _otherError(message, moreInfo = null) { + const moreInfoText = [`PDF.js v${_pdfjsLib.version || "?"} (build: ${_pdfjsLib.build || "?"})`]; + if (moreInfo) { + moreInfoText.push(`Message: ${moreInfo.message}`); + if (moreInfo.stack) { + moreInfoText.push(`Stack: ${moreInfo.stack}`); + } else { + if (moreInfo.filename) { + moreInfoText.push(`File: ${moreInfo.filename}`); + } + if (moreInfo.lineNumber) { + moreInfoText.push(`Line: ${moreInfo.lineNumber}`); + } + } + } + console.error(`${message}\n\n${moreInfoText.join("\n")}`); + }, + progress(level) { + if (!this.loadingBar || this.downloadComplete) { + return; + } + const percent = Math.round(level * 100); + if (percent <= this.loadingBar.percent) { + return; + } + this.loadingBar.percent = percent; + if (this.pdfDocument?.loadingParams.disableAutoFetch ?? _app_options.AppOptions.get("disableAutoFetch")) { + this.loadingBar.setDisableAutoFetch(); + } + }, + load(pdfDocument) { + this.pdfDocument = pdfDocument; + pdfDocument.getDownloadInfo().then(({ + length + }) => { + this._contentLength = length; + this.downloadComplete = true; + this.loadingBar?.hide(); + firstPagePromise.then(() => { + this.eventBus.dispatch("documentloaded", { + source: this + }); + }); + }); + const pageLayoutPromise = pdfDocument.getPageLayout().catch(() => {}); + const pageModePromise = pdfDocument.getPageMode().catch(() => {}); + const openActionPromise = pdfDocument.getOpenAction().catch(() => {}); + this.toolbar?.setPagesCount(pdfDocument.numPages, false); + this.secondaryToolbar?.setPagesCount(pdfDocument.numPages); + this.pdfLinkService.setDocument(pdfDocument); + this.pdfDocumentProperties?.setDocument(pdfDocument); + const pdfViewer = this.pdfViewer; + pdfViewer.setDocument(pdfDocument); + const { + firstPagePromise, + onePageRendered, + pagesPromise + } = pdfViewer; + this.pdfThumbnailViewer?.setDocument(pdfDocument); + const storedPromise = (this.store = new _view_history.ViewHistory(pdfDocument.fingerprints[0])).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(() => {}); + firstPagePromise.then(pdfPage => { + this.loadingBar?.setWidth(this.appConfig.viewerContainer); + this._initializeAnnotationStorageCallbacks(pdfDocument); + Promise.all([_ui_utils.animationStarted, storedPromise, pageLayoutPromise, pageModePromise, openActionPromise]).then(async ([timeStamp, stored, pageLayout, pageMode, openAction]) => { + const viewOnLoad = _app_options.AppOptions.get("viewOnLoad"); + this._initializePdfHistory({ + fingerprint: pdfDocument.fingerprints[0], + viewOnLoad, + initialDest: openAction?.dest + }); + const initialBookmark = this.initialBookmark; + const zoom = _app_options.AppOptions.get("defaultZoomValue"); + let hash = zoom ? `zoom=${zoom}` : null; + let rotation = null; + let sidebarView = _app_options.AppOptions.get("sidebarViewOnLoad"); + let scrollMode = _app_options.AppOptions.get("scrollModeOnLoad"); + let spreadMode = _app_options.AppOptions.get("spreadModeOnLoad"); + if (stored?.page && viewOnLoad !== ViewOnLoad.INITIAL) { + hash = `page=${stored.page}&zoom=${zoom || stored.zoom},` + `${stored.scrollLeft},${stored.scrollTop}`; + rotation = parseInt(stored.rotation, 10); + if (sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = stored.sidebarView | 0; + } + if (scrollMode === _ui_utils.ScrollMode.UNKNOWN) { + scrollMode = stored.scrollMode | 0; + } + if (spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + spreadMode = stored.spreadMode | 0; + } + } + if (pageMode && sidebarView === _ui_utils.SidebarView.UNKNOWN) { + sidebarView = (0, _ui_utils.apiPageModeToSidebarView)(pageMode); + } + if (pageLayout && scrollMode === _ui_utils.ScrollMode.UNKNOWN && spreadMode === _ui_utils.SpreadMode.UNKNOWN) { + const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(pageLayout); + spreadMode = modes.spreadMode; + } + this.setInitialView(hash, { + rotation, + sidebarView, + scrollMode, + spreadMode + }); + this.eventBus.dispatch("documentinit", { + source: this + }); + if (!this.isViewerEmbedded) { + pdfViewer.focus(); + } + await Promise.race([pagesPromise, new Promise(resolve => { + setTimeout(resolve, FORCE_PAGES_LOADED_TIMEOUT); + })]); + if (!initialBookmark && !hash) { + return; + } + if (pdfViewer.hasEqualPageSizes) { + return; + } + this.initialBookmark = initialBookmark; + pdfViewer.currentScaleValue = pdfViewer.currentScaleValue; + this.setInitialView(hash); + }).catch(() => { + this.setInitialView(); + }).then(function () { + pdfViewer.update(); + }); + }); + pagesPromise.then(() => { + this._unblockDocumentLoadEvent(); + this._initializeAutoPrint(pdfDocument, openActionPromise); + }, reason => { + this.l10n.get("loading_error").then(msg => { + this._documentError(msg, { + message: reason?.message + }); + }); + }); + onePageRendered.then(data => { + this.externalServices.reportTelemetry({ + type: "pageInfo", + timestamp: data.timestamp + }); + if (this.pdfOutlineViewer) { + pdfDocument.getOutline().then(outline => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfOutlineViewer.render({ + outline, + pdfDocument + }); + }); + } + if (this.pdfAttachmentViewer) { + pdfDocument.getAttachments().then(attachments => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfAttachmentViewer.render({ + attachments + }); + }); + } + if (this.pdfLayerViewer) { + pdfViewer.optionalContentConfigPromise.then(optionalContentConfig => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this.pdfLayerViewer.render({ + optionalContentConfig, + pdfDocument + }); + }); + } + }); + 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 _initializeAutoPrint(pdfDocument, openActionPromise) { + const [openAction, jsActions] = await Promise.all([openActionPromise, this.pdfViewer.enableScripting ? null : pdfDocument.getJSActions()]); + if (pdfDocument !== this.pdfDocument) { + return; + } + let triggerAutoPrint = openAction?.action === "Print"; + if (jsActions) { + console.warn("Warning: JavaScript support is not enabled"); + for (const name in jsActions) { + if (triggerAutoPrint) { + break; + } + switch (name) { + case "WillClose": + case "WillSave": + case "DidSave": + case "WillPrint": + case "DidPrint": + continue; + } + triggerAutoPrint = jsActions[name].some(js => _ui_utils.AutoPrintRegExp.test(js)); + } + } + 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 ??= contentDispositionFilename; + this._contentLength ??= contentLength; + console.log(`PDF ${pdfDocument.fingerprints[0]} [${info.PDFFormatVersion} ` + `${(info.Producer || "-").trim()} / ${(info.Creator || "-").trim()}] ` + `(PDF.js: ${_pdfjsLib.version || "?"} [${_pdfjsLib.build || "?"}])`); + 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} - ${this._contentDispositionFilename || this._title}`); + } else if (this._contentDispositionFilename) { + this.setTitle(this._contentDispositionFilename); + } + if (info.IsXFAPresent && !info.IsAcroFormPresent && !pdfDocument.isPureXfa) { + if (pdfDocument.loadingParams.enableXfa) { + console.warn("Warning: XFA Foreground documents are not supported"); + } else { + console.warn("Warning: XFA support is not enabled"); + } + } else if ((info.IsAcroFormPresent || info.IsXFAPresent) && !this.pdfViewer.renderForms) { + console.warn("Warning: Interactive form support is not enabled"); + } + if (info.IsSignaturesPresent) { + console.warn("Warning: Digital signatures validation is not supported"); + } + 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; + let standardLabels = 0, + emptyLabels = 0; + for (let i = 0; i < numLabels; i++) { + const label = labels[i]; + if (label === (i + 1).toString()) { + standardLabels++; + } else if (label === "") { + emptyLabels++; + } else { + break; + } + } + if (standardLabels >= numLabels || emptyLabels >= 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.pdfHistory) { + return; + } + this.pdfHistory.initialize({ + fingerprint, + resetHistory: viewOnLoad === ViewOnLoad.INITIAL, + updateUrl: _app_options.AppOptions.get("historyUpdateUrl") + }); + if (this.pdfHistory.initialBookmark) { + this.initialBookmark = this.pdfHistory.initialBookmark; + this.initialRotation = this.pdfHistory.initialRotation; + } + if (initialDest && !this.initialBookmark && viewOnLoad === ViewOnLoad.UNKNOWN) { + this.initialBookmark = JSON.stringify(initialDest); + this.pdfHistory.push({ + explicitDest: initialDest, + pageNumber: null + }); + } + }, + _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; + }; + annotationStorage.onAnnotationEditor = typeStr => { + this._hasAnnotationEditors = !!typeStr; + this.setTitle(); + if (typeStr) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: typeStr + } + }); + } + }; + }, + setInitialView(storedHash, { + rotation, + sidebarView, + scrollMode, + spreadMode + } = {}) { + const setRotation = angle => { + if ((0, _ui_utils.isValidRotation)(angle)) { + this.pdfViewer.pagesRotation = angle; + } + }; + const setViewerModes = (scroll, spread) => { + if ((0, _ui_utils.isValidScrollMode)(scroll)) { + this.pdfViewer.scrollMode = scroll; + } + if ((0, _ui_utils.isValidSpreadMode)(spread)) { + this.pdfViewer.spreadMode = spread; + } + }; + this.isInitialViewSet = true; + this.pdfSidebar?.setInitialView(sidebarView); + setViewerModes(scrollMode, spreadMode); + if (this.initialBookmark) { + setRotation(this.initialRotation); + delete this.initialRotation; + this.pdfLinkService.setHash(this.initialBookmark); + this.initialBookmark = null; + } else if (storedHash) { + setRotation(rotation); + this.pdfLinkService.setHash(storedHash); + } + this.toolbar?.setPageNumber(this.pdfViewer.currentPageNumber, this.pdfViewer.currentPageLabel); + this.secondaryToolbar?.setPageNumber(this.pdfViewer.currentPageNumber); + if (!this.pdfViewer.currentScaleValue) { + this.pdfViewer.currentScaleValue = _ui_utils.DEFAULT_SCALE_VALUE; + } + }, + _cleanup() { + if (!this.pdfDocument) { + return; + } + this.pdfViewer.cleanup(); + this.pdfThumbnailViewer?.cleanup(); + this.pdfDocument.cleanup(); + }, + forceRendering() { + this.pdfRenderingQueue.printing = !!this.printService; + this.pdfRenderingQueue.isThumbnailViewEnabled = this.pdfSidebar?.visibleView === _ui_utils.SidebarView.THUMBS; + this.pdfRenderingQueue.renderHighestPriority(); + }, + beforePrint() { + this._printAnnotationStoragePromise = this.pdfScriptingManager.dispatchWillPrint().catch(() => {}).then(() => { + return this.pdfDocument?.annotationStorage.print; + }); + if (this.printService) { + return; + } + if (!this.supportsPrinting) { + this.l10n.get("printing_not_supported").then(msg => { + this._otherError(msg); + }); + return; + } + if (!this.pdfViewer.pageViewsReady) { + this.l10n.get("printing_not_ready").then(msg => { + window.alert(msg); + }); + return; + } + 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._printAnnotationStoragePromise, this.l10n); + this.printService = printService; + this.forceRendering(); + this.setTitle(); + printService.layout(); + if (this._hasAnnotationEditors) { + this.externalServices.reportTelemetry({ + type: "editing", + data: { + type: "print" + } + }); + } + }, + afterPrint() { + if (this._printAnnotationStoragePromise) { + this._printAnnotationStoragePromise.then(() => { + this.pdfScriptingManager.dispatchDidPrint(); + }); + this._printAnnotationStoragePromise = null; + } + if (this.printService) { + this.printService.destroy(); + this.printService = null; + this.pdfDocument?.annotationStorage.resetModified(); + } + this.forceRendering(); + this.setTitle(); + }, + rotatePages(delta) { + this.pdfViewer.pagesRotation += delta; + }, + requestPresentationMode() { + this.pdfPresentationMode?.request(); + }, + 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("pagerender", webViewerPageRender); + 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("switchannotationeditormode", webViewerSwitchAnnotationEditorMode); + eventBus._on("switchannotationeditorparams", webViewerSwitchAnnotationEditorParams); + eventBus._on("print", webViewerPrint); + eventBus._on("download", webViewerDownload); + eventBus._on("openinexternalapp", webViewerOpenInExternalApp); + 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("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; + function addWindowResolutionChange(evt = null) { + if (evt) { + webViewerResolutionChange(evt); + } + const mediaQueryList = window.matchMedia(`(resolution: ${window.devicePixelRatio || 1}dppx)`); + mediaQueryList.addEventListener("change", addWindowResolutionChange, { + once: true + }); + _boundEvents.removeWindowResolutionChange ||= function () { + mediaQueryList.removeEventListener("change", addWindowResolutionChange); + _boundEvents.removeWindowResolutionChange = null; + }; + } + addWindowResolutionChange(); + _boundEvents.windowResize = () => { + eventBus.dispatch("resize", { + source: window + }); + }; + _boundEvents.windowHashChange = () => { + eventBus.dispatch("hashchange", { + source: window, + hash: document.location.hash.substring(1) + }); + }; + _boundEvents.windowBeforePrint = () => { + eventBus.dispatch("beforeprint", { + source: window + }); + }; + _boundEvents.windowAfterPrint = () => { + eventBus.dispatch("afterprint", { + source: window + }); + }; + _boundEvents.windowUpdateFromSandbox = event => { + eventBus.dispatch("updatefromsandbox", { + source: window, + detail: event.detail + }); + }; + window.addEventListener("visibilitychange", webViewerVisibilityChange); + window.addEventListener("wheel", webViewerWheel, { + passive: false + }); + window.addEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.addEventListener("touchmove", webViewerTouchMove, { + passive: false + }); + window.addEventListener("touchend", webViewerTouchEnd, { + passive: false + }); + window.addEventListener("click", webViewerClick); + window.addEventListener("keydown", webViewerKeyDown); + window.addEventListener("keyup", webViewerKeyUp); + 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() { + const { + eventBus, + _boundEvents + } = this; + eventBus._off("resize", webViewerResize); + eventBus._off("hashchange", webViewerHashchange); + eventBus._off("beforeprint", _boundEvents.beforePrint); + eventBus._off("afterprint", _boundEvents.afterPrint); + eventBus._off("pagerender", webViewerPageRender); + 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("openinexternalapp", webViewerOpenInExternalApp); + 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("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() { + const { + _boundEvents + } = this; + window.removeEventListener("visibilitychange", webViewerVisibilityChange); + window.removeEventListener("wheel", webViewerWheel, { + passive: false + }); + window.removeEventListener("touchstart", webViewerTouchStart, { + passive: false + }); + window.removeEventListener("touchmove", webViewerTouchMove, { + passive: false + }); + window.removeEventListener("touchend", webViewerTouchEnd, { + passive: false + }); + window.removeEventListener("click", webViewerClick); + window.removeEventListener("keydown", webViewerKeyDown); + window.removeEventListener("keyup", webViewerKeyUp); + 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.removeWindowResolutionChange?.(); + _boundEvents.windowResize = null; + _boundEvents.windowHashChange = null; + _boundEvents.windowBeforePrint = null; + _boundEvents.windowAfterPrint = null; + _boundEvents.windowUpdateFromSandbox = null; + }, + _accumulateTicks(ticks, prop) { + if (this[prop] > 0 && ticks < 0 || this[prop] < 0 && ticks > 0) { + this[prop] = 0; + } + this[prop] += ticks; + const wholeTicks = Math.trunc(this[prop]); + this[prop] -= wholeTicks; + return wholeTicks; + }, + _accumulateFactor(previousScale, factor, prop) { + if (factor === 1) { + return 1; + } + if (this[prop] > 1 && factor < 1 || this[prop] < 1 && factor > 1) { + this[prop] = 1; + } + const newFactor = Math.floor(previousScale * factor * this[prop] * 100) / (100 * previousScale); + this[prop] = factor / newFactor; + return newFactor; + }, + _centerAtPos(previousScale, x, y) { + const { + pdfViewer + } = this; + const scaleDiff = pdfViewer.currentScale / previousScale - 1; + if (scaleDiff !== 0) { + const [top, left] = pdfViewer.containerTopLeft; + pdfViewer.container.scrollLeft += (x - left) * scaleDiff; + pdfViewer.container.scrollTop += (y - top) * scaleDiff; + } + }, + _unblockDocumentLoadEvent() { + document.blockUnblockOnload?.(false); + this._unblockDocumentLoadEvent = () => {}; + }, + get scriptingReady() { + return this.pdfScriptingManager.ready; + } +}; +exports.PDFViewerApplication = PDFViewerApplication; +{ + const HOSTED_VIEWER_ORIGINS = ["null", "http://mozilla.github.io", "https://mozilla.github.io"]; + var validateFileURL = function (file) { + if (!file) { + return; + } + try { + const viewerOrigin = new URL(window.location.href).origin || "null"; + if (HOSTED_VIEWER_ORIGINS.includes(viewerOrigin)) { + return; + } + const fileOrigin = new URL(file, window.location.href).origin; + if (fileOrigin !== viewerOrigin) { + throw new Error("file origin does not match viewer's"); + } + } catch (ex) { + PDFViewerApplication.l10n.get("loading_error").then(msg => { + PDFViewerApplication._documentError(msg, { + message: ex?.message + }); + }); + throw ex; + } + }; +} +async function loadFakeWorker() { + _pdfjsLib.GlobalWorkerOptions.workerSrc ||= _app_options.AppOptions.get("workerSrc"); + await (0, _pdfjsLib.loadScript)(_pdfjsLib.PDFWorker.workerSrc); +} +async function loadPDFBug(self) { + const { + debuggerScriptPath + } = self.appConfig; + const { + PDFBug + } = await import(debuggerScriptPath); + self._PDFBug = PDFBug; +} +function reportPageStatsPDFBug({ + pageNumber +}) { + if (!globalThis.Stats?.enabled) { + return; + } + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + globalThis.Stats.add(pageNumber, pageView?.pdfPage?.stats); +} +function webViewerPageRender({ + pageNumber +}) { + if (pageNumber === PDFViewerApplication.page) { + PDFViewerApplication.toolbar?.updateLoadingIndicatorState(true); + } +} +function webViewerPageRendered({ + pageNumber, + error +}) { + if (pageNumber === PDFViewerApplication.page) { + PDFViewerApplication.toolbar?.updateLoadingIndicatorState(false); + } + if (PDFViewerApplication.pdfSidebar?.visibleView === _ui_utils.SidebarView.THUMBS) { + const pageView = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + const thumbnailView = PDFViewerApplication.pdfThumbnailViewer?.getThumbnail(pageNumber - 1); + if (pageView) { + thumbnailView?.setImage(pageView); + } + } + if (error) { + PDFViewerApplication.l10n.get("rendering_error").then(msg => { + PDFViewerApplication._otherError(msg, error); + }); + } +} +function webViewerPageMode({ + mode +}) { + let view; + switch (mode) { + case "thumbs": + view = _ui_utils.SidebarView.THUMBS; + break; + case "bookmarks": + case "outline": + view = _ui_utils.SidebarView.OUTLINE; + break; + case "attachments": + view = _ui_utils.SidebarView.ATTACHMENTS; + break; + case "layers": + view = _ui_utils.SidebarView.LAYERS; + break; + case "none": + view = _ui_utils.SidebarView.NONE; + break; + default: + console.error('Invalid "pagemode" hash parameter: ' + mode); + return; + } + PDFViewerApplication.pdfSidebar?.switchView(view, true); +} +function webViewerNamedAction(evt) { + switch (evt.action) { + case "GoToPage": + PDFViewerApplication.appConfig.toolbar?.pageNumber.select(); + break; + case "Find": + if (!PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication?.findBar.toggle(); + } + break; + case "Print": + PDFViewerApplication.triggerPrinting(); + break; + case "SaveAs": + PDFViewerApplication.downloadOrSave(); + break; + } +} +function webViewerPresentationModeChanged(evt) { + PDFViewerApplication.pdfViewer.presentationModeState = evt.state; +} +function webViewerSidebarViewChanged({ + view +}) { + PDFViewerApplication.pdfRenderingQueue.isThumbnailViewEnabled = view === _ui_utils.SidebarView.THUMBS; + if (PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.store?.set("sidebarView", view).catch(() => {}); + } +} +function webViewerUpdateViewarea({ + location +}) { + if (PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.store?.setMultiple({ + page: location.pageNumber, + zoom: location.scale, + scrollLeft: location.left, + scrollTop: location.top, + rotation: location.rotation + }).catch(() => {}); + } + if (PDFViewerApplication.appConfig.secondaryToolbar) { + const href = PDFViewerApplication.pdfLinkService.getAnchorUrl(location.pdfOpenParams); + PDFViewerApplication.appConfig.secondaryToolbar.viewBookmarkButton.href = href; + } +} +function webViewerScrollModeChanged(evt) { + if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { + PDFViewerApplication.store?.set("scrollMode", evt.mode).catch(() => {}); + } +} +function webViewerSpreadModeChanged(evt) { + if (PDFViewerApplication.isInitialViewSet && !PDFViewerApplication.pdfViewer.isInPresentationMode) { + PDFViewerApplication.store?.set("spreadMode", evt.mode).catch(() => {}); + } +} +function webViewerResize() { + const { + pdfDocument, + pdfViewer, + pdfRenderingQueue + } = PDFViewerApplication; + if (pdfRenderingQueue.printing && window.matchMedia("print").matches) { + return; + } + if (!pdfDocument) { + return; + } + const currentScaleValue = pdfViewer.currentScaleValue; + if (currentScaleValue === "auto" || currentScaleValue === "page-fit" || currentScaleValue === "page-width") { + pdfViewer.currentScaleValue = currentScaleValue; + } + pdfViewer.update(); +} +function webViewerHashchange(evt) { + const hash = evt.hash; + if (!hash) { + return; + } + if (!PDFViewerApplication.isInitialViewSet) { + PDFViewerApplication.initialBookmark = hash; + } else if (!PDFViewerApplication.pdfHistory?.popStateInProgress) { + PDFViewerApplication.pdfLinkService.setHash(hash); + } +} +{ + var webViewerFileInputChange = function (evt) { + if (PDFViewerApplication.pdfViewer?.isInPresentationMode) { + return; + } + const file = evt.fileInput.files[0]; + PDFViewerApplication.open({ + url: URL.createObjectURL(file), + originalUrl: file.name + }); + }; + var webViewerOpenFile = function (evt) { + const fileInput = PDFViewerApplication.appConfig.openFileInput; + fileInput.click(); + }; +} +function webViewerPresentationMode() { + PDFViewerApplication.requestPresentationMode(); +} +function webViewerSwitchAnnotationEditorMode(evt) { + PDFViewerApplication.pdfViewer.annotationEditorMode = evt; +} +function webViewerSwitchAnnotationEditorParams(evt) { + PDFViewerApplication.pdfViewer.annotationEditorParams = evt; +} +function webViewerPrint() { + PDFViewerApplication.triggerPrinting(); +} +function webViewerDownload() { + PDFViewerApplication.downloadOrSave(); +} +function webViewerOpenInExternalApp() { + PDFViewerApplication.openInExternalApp(); +} +function webViewerFirstPage() { + PDFViewerApplication.page = 1; +} +function webViewerLastPage() { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; +} +function webViewerNextPage() { + PDFViewerApplication.pdfViewer.nextPage(); +} +function webViewerPreviousPage() { + PDFViewerApplication.pdfViewer.previousPage(); +} +function webViewerZoomIn() { + PDFViewerApplication.zoomIn(); +} +function webViewerZoomOut() { + PDFViewerApplication.zoomOut(); +} +function webViewerZoomReset() { + PDFViewerApplication.zoomReset(); +} +function webViewerPageNumberChanged(evt) { + const pdfViewer = PDFViewerApplication.pdfViewer; + if (evt.value !== "") { + PDFViewerApplication.pdfLinkService.goToPage(evt.value); + } + if (evt.value !== pdfViewer.currentPageNumber.toString() && evt.value !== pdfViewer.currentPageLabel) { + PDFViewerApplication.toolbar?.setPageNumber(pdfViewer.currentPageNumber, pdfViewer.currentPageLabel); + } +} +function webViewerScaleChanged(evt) { + PDFViewerApplication.pdfViewer.currentScaleValue = evt.value; +} +function webViewerRotateCw() { + PDFViewerApplication.rotatePages(90); +} +function webViewerRotateCcw() { + PDFViewerApplication.rotatePages(-90); +} +function webViewerOptionalContentConfig(evt) { + PDFViewerApplication.pdfViewer.optionalContentConfigPromise = evt.promise; +} +function webViewerSwitchScrollMode(evt) { + PDFViewerApplication.pdfViewer.scrollMode = evt.mode; +} +function webViewerSwitchSpreadMode(evt) { + PDFViewerApplication.pdfViewer.spreadMode = evt.mode; +} +function webViewerDocumentProperties() { + PDFViewerApplication.pdfDocumentProperties?.open(); +} +function webViewerFindFromUrlHash(evt) { + PDFViewerApplication.eventBus.dispatch("find", { + source: evt.source, + type: "", + query: evt.query, + caseSensitive: false, + entireWord: false, + highlightAll: true, + findPrevious: false, + matchDiacritics: true + }); +} +function webViewerUpdateFindMatchesCount({ + matchesCount +}) { + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindMatchesCount(matchesCount); + } else { + PDFViewerApplication.findBar.updateResultsCount(matchesCount); + } +} +function webViewerUpdateFindControlState({ + state, + previous, + matchesCount, + rawQuery +}) { + if (PDFViewerApplication.supportsIntegratedFind) { + PDFViewerApplication.externalServices.updateFindControlState({ + result: state, + findPrevious: previous, + matchesCount, + rawQuery + }); + } else { + PDFViewerApplication.findBar?.updateUIState(state, previous, matchesCount); + } +} +function webViewerScaleChanging(evt) { + PDFViewerApplication.toolbar?.setPageScale(evt.presetValue, evt.scale); + PDFViewerApplication.pdfViewer.update(); +} +function webViewerRotationChanging(evt) { + if (PDFViewerApplication.pdfThumbnailViewer) { + PDFViewerApplication.pdfThumbnailViewer.pagesRotation = evt.pagesRotation; + } + PDFViewerApplication.forceRendering(); + PDFViewerApplication.pdfViewer.currentPageNumber = evt.pageNumber; +} +function webViewerPageChanging({ + pageNumber, + pageLabel +}) { + PDFViewerApplication.toolbar?.setPageNumber(pageNumber, pageLabel); + PDFViewerApplication.secondaryToolbar?.setPageNumber(pageNumber); + if (PDFViewerApplication.pdfSidebar?.visibleView === _ui_utils.SidebarView.THUMBS) { + PDFViewerApplication.pdfThumbnailViewer?.scrollThumbnailIntoView(pageNumber); + } + const currentPage = PDFViewerApplication.pdfViewer.getPageView(pageNumber - 1); + PDFViewerApplication.toolbar?.updateLoadingIndicatorState(currentPage?.renderingState === _ui_utils.RenderingStates.RUNNING); +} +function webViewerResolutionChange(evt) { + PDFViewerApplication.pdfViewer.refresh(); +} +function webViewerVisibilityChange(evt) { + if (document.visibilityState === "visible") { + setZoomDisabledTimeout(); + } +} +let zoomDisabledTimeout = null; +function setZoomDisabledTimeout() { + if (zoomDisabledTimeout) { + clearTimeout(zoomDisabledTimeout); + } + zoomDisabledTimeout = setTimeout(function () { + zoomDisabledTimeout = null; + }, WHEEL_ZOOM_DISABLED_TIMEOUT); +} +function webViewerWheel(evt) { + const { + pdfViewer, + supportedMouseWheelZoomModifierKeys, + supportsPinchToZoom + } = PDFViewerApplication; + if (pdfViewer.isInPresentationMode) { + return; + } + const deltaMode = evt.deltaMode; + let scaleFactor = Math.exp(-evt.deltaY / 100); + const isBuiltInMac = false; + const isPinchToZoom = evt.ctrlKey && !PDFViewerApplication._isCtrlKeyDown && deltaMode === WheelEvent.DOM_DELTA_PIXEL && evt.deltaX === 0 && (Math.abs(scaleFactor - 1) < 0.05 || isBuiltInMac) && evt.deltaZ === 0; + if (isPinchToZoom || evt.ctrlKey && supportedMouseWheelZoomModifierKeys.ctrlKey || evt.metaKey && supportedMouseWheelZoomModifierKeys.metaKey) { + evt.preventDefault(); + if (zoomDisabledTimeout || document.visibilityState === "hidden" || PDFViewerApplication.overlayManager.active) { + return; + } + const previousScale = pdfViewer.currentScale; + if (isPinchToZoom && supportsPinchToZoom) { + scaleFactor = PDFViewerApplication._accumulateFactor(previousScale, scaleFactor, "_wheelUnusedFactor"); + if (scaleFactor < 1) { + PDFViewerApplication.zoomOut(null, scaleFactor); + } else if (scaleFactor > 1) { + PDFViewerApplication.zoomIn(null, scaleFactor); + } else { + return; + } + } else { + const delta = (0, _ui_utils.normalizeWheelEventDirection)(evt); + let ticks = 0; + if (deltaMode === WheelEvent.DOM_DELTA_LINE || deltaMode === WheelEvent.DOM_DELTA_PAGE) { + if (Math.abs(delta) >= 1) { + ticks = Math.sign(delta); + } else { + ticks = PDFViewerApplication._accumulateTicks(delta, "_wheelUnusedTicks"); + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + ticks = PDFViewerApplication._accumulateTicks(delta / PIXELS_PER_LINE_SCALE, "_wheelUnusedTicks"); + } + if (ticks < 0) { + PDFViewerApplication.zoomOut(-ticks); + } else if (ticks > 0) { + PDFViewerApplication.zoomIn(ticks); + } else { + return; + } + } + PDFViewerApplication._centerAtPos(previousScale, evt.clientX, evt.clientY); + } else { + setZoomDisabledTimeout(); + } +} +function webViewerTouchStart(evt) { + if (PDFViewerApplication.pdfViewer.isInPresentationMode || evt.touches.length < 2) { + return; + } + evt.preventDefault(); + if (evt.touches.length !== 2 || PDFViewerApplication.overlayManager.active) { + PDFViewerApplication._touchInfo = null; + return; + } + let [touch0, touch1] = evt.touches; + if (touch0.identifier > touch1.identifier) { + [touch0, touch1] = [touch1, touch0]; + } + PDFViewerApplication._touchInfo = { + touch0X: touch0.pageX, + touch0Y: touch0.pageY, + touch1X: touch1.pageX, + touch1Y: touch1.pageY + }; +} +function webViewerTouchMove(evt) { + if (!PDFViewerApplication._touchInfo || evt.touches.length !== 2) { + return; + } + const { + pdfViewer, + _touchInfo, + supportsPinchToZoom + } = PDFViewerApplication; + let [touch0, touch1] = evt.touches; + if (touch0.identifier > touch1.identifier) { + [touch0, touch1] = [touch1, touch0]; + } + const { + pageX: page0X, + pageY: page0Y + } = touch0; + const { + pageX: page1X, + pageY: page1Y + } = touch1; + const { + touch0X: pTouch0X, + touch0Y: pTouch0Y, + touch1X: pTouch1X, + touch1Y: pTouch1Y + } = _touchInfo; + if (Math.abs(pTouch0X - page0X) <= 1 && Math.abs(pTouch0Y - page0Y) <= 1 && Math.abs(pTouch1X - page1X) <= 1 && Math.abs(pTouch1Y - page1Y) <= 1) { + return; + } + _touchInfo.touch0X = page0X; + _touchInfo.touch0Y = page0Y; + _touchInfo.touch1X = page1X; + _touchInfo.touch1Y = page1Y; + if (pTouch0X === page0X && pTouch0Y === page0Y) { + const v1X = pTouch1X - page0X; + const v1Y = pTouch1Y - page0Y; + const v2X = page1X - page0X; + const v2Y = page1Y - page0Y; + const det = v1X * v2Y - v1Y * v2X; + if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { + return; + } + } else if (pTouch1X === page1X && pTouch1Y === page1Y) { + const v1X = pTouch0X - page1X; + const v1Y = pTouch0Y - page1Y; + const v2X = page0X - page1X; + const v2Y = page0Y - page1Y; + const det = v1X * v2Y - v1Y * v2X; + if (Math.abs(det) > 0.02 * Math.hypot(v1X, v1Y) * Math.hypot(v2X, v2Y)) { + return; + } + } else { + const diff0X = page0X - pTouch0X; + const diff1X = page1X - pTouch1X; + const diff0Y = page0Y - pTouch0Y; + const diff1Y = page1Y - pTouch1Y; + const dotProduct = diff0X * diff1X + diff0Y * diff1Y; + if (dotProduct >= 0) { + return; + } + } + evt.preventDefault(); + const distance = Math.hypot(page0X - page1X, page0Y - page1Y) || 1; + const pDistance = Math.hypot(pTouch0X - pTouch1X, pTouch0Y - pTouch1Y) || 1; + const previousScale = pdfViewer.currentScale; + if (supportsPinchToZoom) { + const newScaleFactor = PDFViewerApplication._accumulateFactor(previousScale, distance / pDistance, "_touchUnusedFactor"); + if (newScaleFactor < 1) { + PDFViewerApplication.zoomOut(null, newScaleFactor); + } else if (newScaleFactor > 1) { + PDFViewerApplication.zoomIn(null, newScaleFactor); + } else { + return; + } + } else { + const PIXELS_PER_LINE_SCALE = 30; + const ticks = PDFViewerApplication._accumulateTicks((distance - pDistance) / PIXELS_PER_LINE_SCALE, "_touchUnusedTicks"); + if (ticks < 0) { + PDFViewerApplication.zoomOut(-ticks); + } else if (ticks > 0) { + PDFViewerApplication.zoomIn(ticks); + } else { + return; + } + } + PDFViewerApplication._centerAtPos(previousScale, (page0X + page1X) / 2, (page0Y + page1Y) / 2); +} +function webViewerTouchEnd(evt) { + if (!PDFViewerApplication._touchInfo) { + return; + } + evt.preventDefault(); + PDFViewerApplication._touchInfo = null; + PDFViewerApplication._touchUnusedTicks = 0; + PDFViewerApplication._touchUnusedFactor = 1; +} +function webViewerClick(evt) { + if (!PDFViewerApplication.secondaryToolbar?.isOpen) { + return; + } + const appConfig = PDFViewerApplication.appConfig; + if (PDFViewerApplication.pdfViewer.containsElement(evt.target) || appConfig.toolbar?.container.contains(evt.target) && evt.target !== appConfig.secondaryToolbar?.toggleButton) { + PDFViewerApplication.secondaryToolbar.close(); + } +} +function webViewerKeyUp(evt) { + if (evt.key === "Control") { + PDFViewerApplication._isCtrlKeyDown = false; + } +} +function webViewerKeyDown(evt) { + PDFViewerApplication._isCtrlKeyDown = evt.key === "Control"; + if (PDFViewerApplication.overlayManager.active) { + return; + } + const { + eventBus, + pdfViewer + } = PDFViewerApplication; + const isViewerInPresentationMode = pdfViewer.isInPresentationMode; + let handled = false, + ensureViewerFocused = false; + const cmd = (evt.ctrlKey ? 1 : 0) | (evt.altKey ? 2 : 0) | (evt.shiftKey ? 4 : 0) | (evt.metaKey ? 8 : 0); + if (cmd === 1 || cmd === 8 || cmd === 5 || cmd === 12) { + switch (evt.keyCode) { + case 70: + if (!PDFViewerApplication.supportsIntegratedFind && !evt.shiftKey) { + PDFViewerApplication.findBar?.open(); + handled = true; + } + break; + case 71: + if (!PDFViewerApplication.supportsIntegratedFind) { + const { + state + } = PDFViewerApplication.findController; + if (state) { + const newState = { + source: window, + type: "again", + findPrevious: cmd === 5 || cmd === 12 + }; + eventBus.dispatch("find", { + ...state, + ...newState + }); + } + handled = true; + } + break; + case 61: + case 107: + case 187: + case 171: + PDFViewerApplication.zoomIn(); + handled = true; + break; + case 173: + case 109: + case 189: + PDFViewerApplication.zoomOut(); + handled = true; + break; + case 48: + case 96: + if (!isViewerInPresentationMode) { + setTimeout(function () { + PDFViewerApplication.zoomReset(); + }); + handled = false; + } + break; + case 38: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 40: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + } + } + if (cmd === 1 || cmd === 8) { + switch (evt.keyCode) { + case 83: + eventBus.dispatch("download", { + source: window + }); + handled = true; + break; + case 79: + { + eventBus.dispatch("openfile", { + source: window + }); + handled = true; + } + break; + } + } + if (cmd === 3 || cmd === 10) { + switch (evt.keyCode) { + case 80: + PDFViewerApplication.requestPresentationMode(); + handled = true; + PDFViewerApplication.externalServices.reportTelemetry({ + type: "buttons", + data: { + id: "presentationModeKeyboard" + } + }); + break; + case 71: + if (PDFViewerApplication.appConfig.toolbar) { + PDFViewerApplication.appConfig.toolbar.pageNumber.select(); + handled = true; + } + break; + } + } + if (handled) { + if (ensureViewerFocused && !isViewerInPresentationMode) { + pdfViewer.focus(); + } + evt.preventDefault(); + return; + } + const curElement = (0, _ui_utils.getActiveOrFocusedElement)(); + const curElementTagName = curElement?.tagName.toUpperCase(); + if (curElementTagName === "INPUT" || curElementTagName === "TEXTAREA" || curElementTagName === "SELECT" || curElement?.isContentEditable) { + if (evt.keyCode !== 27) { + return; + } + } + if (cmd === 0) { + let turnPage = 0, + turnOnlyIfPageFit = false; + switch (evt.keyCode) { + case 38: + case 33: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 8: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = -1; + break; + case 37: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 75: + case 80: + turnPage = -1; + break; + case 27: + if (PDFViewerApplication.secondaryToolbar?.isOpen) { + PDFViewerApplication.secondaryToolbar.close(); + handled = true; + } + if (!PDFViewerApplication.supportsIntegratedFind && PDFViewerApplication.findBar?.opened) { + PDFViewerApplication.findBar.close(); + handled = true; + } + break; + case 40: + case 34: + if (pdfViewer.isVerticalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 13: + case 32: + if (!isViewerInPresentationMode) { + turnOnlyIfPageFit = true; + } + turnPage = 1; + break; + case 39: + if (pdfViewer.isHorizontalScrollbarEnabled) { + turnOnlyIfPageFit = true; + } + case 74: + case 78: + turnPage = 1; + break; + case 36: + if (isViewerInPresentationMode || PDFViewerApplication.page > 1) { + PDFViewerApplication.page = 1; + handled = true; + ensureViewerFocused = true; + } + break; + case 35: + if (isViewerInPresentationMode || PDFViewerApplication.page < PDFViewerApplication.pagesCount) { + PDFViewerApplication.page = PDFViewerApplication.pagesCount; + handled = true; + ensureViewerFocused = true; + } + break; + case 83: + PDFViewerApplication.pdfCursorTools?.switchTool(_ui_utils.CursorTool.SELECT); + break; + case 72: + PDFViewerApplication.pdfCursorTools?.switchTool(_ui_utils.CursorTool.HAND); + break; + case 82: + PDFViewerApplication.rotatePages(90); + break; + case 115: + PDFViewerApplication.pdfSidebar?.toggle(); + break; + } + if (turnPage !== 0 && (!turnOnlyIfPageFit || pdfViewer.currentScaleValue === "page-fit")) { + if (turnPage > 0) { + pdfViewer.nextPage(); + } else { + pdfViewer.previousPage(); + } + handled = true; + } + } + if (cmd === 4) { + switch (evt.keyCode) { + case 13: + case 32: + if (!isViewerInPresentationMode && pdfViewer.currentScaleValue !== "page-fit") { + break; + } + pdfViewer.previousPage(); + handled = true; + break; + case 82: + PDFViewerApplication.rotatePages(-90); + break; + } + } + if (!handled && !isViewerInPresentationMode) { + if (evt.keyCode >= 33 && evt.keyCode <= 40 || evt.keyCode === 32 && curElementTagName !== "BUTTON") { + ensureViewerFocused = true; + } + } + if (ensureViewerFocused && !pdfViewer.containsElement(curElement)) { + pdfViewer.focus(); + } + if (handled) { + evt.preventDefault(); + } +} +function beforeUnload(evt) { + evt.preventDefault(); + evt.returnValue = ""; + return false; +} +function webViewerAnnotationEditorStatesChanged(data) { + PDFViewerApplication.externalServices.updateEditorStates(data); +} +function webViewerReportTelemetry({ + details +}) { + PDFViewerApplication.externalServices.reportTelemetry(details); +} +const PDFPrintServiceFactory = { + instance: { + supportsPrinting: false, + createPrintService() { + throw new Error("Not implemented: createPrintService"); + } + } +}; +exports.PDFPrintServiceFactory = PDFPrintServiceFactory; + +/***/ }), +/* 3 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.animationStarted = exports.VERTICAL_PADDING = exports.UNKNOWN_SCALE = exports.TextLayerMode = exports.SpreadMode = exports.SidebarView = exports.ScrollMode = exports.SCROLLBAR_PADDING = exports.RenderingStates = exports.ProgressBar = exports.PresentationModeState = exports.OutputScale = exports.MIN_SCALE = exports.MAX_SCALE = exports.MAX_AUTO_SCALE = exports.DEFAULT_SCALE_VALUE = exports.DEFAULT_SCALE_DELTA = exports.DEFAULT_SCALE = exports.CursorTool = exports.AutoPrintRegExp = void 0; +exports.apiPageLayoutToViewerModes = apiPageLayoutToViewerModes; +exports.apiPageModeToSidebarView = apiPageModeToSidebarView; +exports.approximateFraction = approximateFraction; +exports.backtrackBeforeAllVisibleElements = backtrackBeforeAllVisibleElements; +exports.binarySearchFirstItem = binarySearchFirstItem; +exports.docStyle = void 0; +exports.getActiveOrFocusedElement = getActiveOrFocusedElement; +exports.getPageSizeInches = getPageSizeInches; +exports.getVisibleElements = getVisibleElements; +exports.isPortraitOrientation = isPortraitOrientation; +exports.isValidRotation = isValidRotation; +exports.isValidScrollMode = isValidScrollMode; +exports.isValidSpreadMode = isValidSpreadMode; +exports.normalizeWheelEventDelta = normalizeWheelEventDelta; +exports.normalizeWheelEventDirection = normalizeWheelEventDirection; +exports.parseQueryString = parseQueryString; +exports.removeNullCharacters = removeNullCharacters; +exports.roundToDivide = roundToDivide; +exports.scrollIntoView = scrollIntoView; +exports.toggleCheckedBtn = toggleCheckedBtn; +exports.toggleExpandedBtn = toggleExpandedBtn; +exports.watchScroll = watchScroll; +const DEFAULT_SCALE_VALUE = "auto"; +exports.DEFAULT_SCALE_VALUE = DEFAULT_SCALE_VALUE; +const DEFAULT_SCALE = 1.0; +exports.DEFAULT_SCALE = DEFAULT_SCALE; +const DEFAULT_SCALE_DELTA = 1.1; +exports.DEFAULT_SCALE_DELTA = DEFAULT_SCALE_DELTA; +const MIN_SCALE = 0.1; +exports.MIN_SCALE = MIN_SCALE; +const MAX_SCALE = 10.0; +exports.MAX_SCALE = MAX_SCALE; +const UNKNOWN_SCALE = 0; +exports.UNKNOWN_SCALE = UNKNOWN_SCALE; +const MAX_AUTO_SCALE = 1.25; +exports.MAX_AUTO_SCALE = MAX_AUTO_SCALE; +const SCROLLBAR_PADDING = 40; +exports.SCROLLBAR_PADDING = SCROLLBAR_PADDING; +const VERTICAL_PADDING = 5; +exports.VERTICAL_PADDING = VERTICAL_PADDING; +const RenderingStates = { + INITIAL: 0, + RUNNING: 1, + PAUSED: 2, + FINISHED: 3 +}; +exports.RenderingStates = RenderingStates; +const PresentationModeState = { + UNKNOWN: 0, + NORMAL: 1, + CHANGING: 2, + FULLSCREEN: 3 +}; +exports.PresentationModeState = PresentationModeState; +const SidebarView = { + UNKNOWN: -1, + NONE: 0, + THUMBS: 1, + OUTLINE: 2, + ATTACHMENTS: 3, + LAYERS: 4 +}; +exports.SidebarView = SidebarView; +const TextLayerMode = { + DISABLE: 0, + ENABLE: 1, + ENABLE_PERMISSIONS: 2 +}; +exports.TextLayerMode = TextLayerMode; +const ScrollMode = { + UNKNOWN: -1, + VERTICAL: 0, + HORIZONTAL: 1, + WRAPPED: 2, + PAGE: 3 +}; +exports.ScrollMode = ScrollMode; +const SpreadMode = { + UNKNOWN: -1, + NONE: 0, + ODD: 1, + EVEN: 2 +}; +exports.SpreadMode = SpreadMode; +const CursorTool = { + SELECT: 0, + HAND: 1, + ZOOM: 2 +}; +exports.CursorTool = CursorTool; +const AutoPrintRegExp = /\bprint\s*\(/; +exports.AutoPrintRegExp = AutoPrintRegExp; +class OutputScale { + constructor() { + const pixelRatio = window.devicePixelRatio || 1; + this.sx = pixelRatio; + this.sy = pixelRatio; + } + get scaled() { + return this.sx !== 1 || this.sy !== 1; + } +} +exports.OutputScale = OutputScale; +function scrollIntoView(element, spot, scrollMatches = false) { + let parent = element.offsetParent; + if (!parent) { + console.error("offsetParent is not set -- cannot scroll"); + return; + } + let offsetY = element.offsetTop + element.clientTop; + let offsetX = element.offsetLeft + element.clientLeft; + while (parent.clientHeight === parent.scrollHeight && parent.clientWidth === parent.scrollWidth || scrollMatches && (parent.classList.contains("markedContent") || getComputedStyle(parent).overflow === "hidden")) { + offsetY += parent.offsetTop; + offsetX += parent.offsetLeft; + parent = parent.offsetParent; + if (!parent) { + return; + } + } + if (spot) { + if (spot.top !== undefined) { + offsetY += spot.top; + } + if (spot.left !== undefined) { + offsetX += spot.left; + parent.scrollLeft = offsetX; + } + } + parent.scrollTop = offsetY; +} +function watchScroll(viewAreaElement, callback) { + const debounceScroll = function (evt) { + if (rAF) { + return; + } + rAF = window.requestAnimationFrame(function viewAreaElementScrolled() { + rAF = null; + const currentX = viewAreaElement.scrollLeft; + const lastX = state.lastX; + if (currentX !== lastX) { + state.right = currentX > lastX; + } + state.lastX = currentX; + const currentY = viewAreaElement.scrollTop; + const lastY = state.lastY; + if (currentY !== lastY) { + state.down = currentY > lastY; + } + state.lastY = currentY; + callback(state); + }); + }; + const state = { + right: true, + down: true, + lastX: viewAreaElement.scrollLeft, + lastY: viewAreaElement.scrollTop, + _eventHandler: debounceScroll + }; + let rAF = null; + viewAreaElement.addEventListener("scroll", debounceScroll, true); + return state; +} +function parseQueryString(query) { + const params = new Map(); + for (const [key, value] of new URLSearchParams(query)) { + params.set(key.toLowerCase(), value); + } + return params; +} +const InvisibleCharactersRegExp = /[\x01-\x1F]/g; +function removeNullCharacters(str, replaceInvisible = false) { + if (typeof str !== "string") { + console.error(`The argument must be a string.`); + return str; + } + if (replaceInvisible) { + str = str.replaceAll(InvisibleCharactersRegExp, " "); + } + return str.replaceAll("\x00", ""); +} +function binarySearchFirstItem(items, condition, start = 0) { + let minIndex = start; + let maxIndex = items.length - 1; + if (maxIndex < 0 || !condition(items[maxIndex])) { + return items.length; + } + if (condition(items[minIndex])) { + return minIndex; + } + while (minIndex < maxIndex) { + const currentIndex = minIndex + maxIndex >> 1; + const currentItem = items[currentIndex]; + if (condition(currentItem)) { + maxIndex = currentIndex; + } else { + minIndex = currentIndex + 1; + } + } + return minIndex; +} +function approximateFraction(x) { + if (Math.floor(x) === x) { + return [x, 1]; + } + const xinv = 1 / x; + const limit = 8; + if (xinv > limit) { + return [1, limit]; + } else if (Math.floor(xinv) === xinv) { + return [1, xinv]; + } + const x_ = x > 1 ? xinv : x; + let a = 0, + b = 1, + c = 1, + d = 1; + while (true) { + const p = a + c, + q = b + d; + if (q > limit) { + break; + } + if (x_ <= p / q) { + c = p; + d = q; + } else { + a = p; + b = q; + } + } + let result; + if (x_ - a / b < c / d - x_) { + result = x_ === x ? [a, b] : [b, a]; + } else { + result = x_ === x ? [c, d] : [d, c]; + } + return result; +} +function roundToDivide(x, div) { + const r = x % div; + return r === 0 ? x : Math.round(x - r + div); +} +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 + }; +} +function backtrackBeforeAllVisibleElements(index, views, top) { + if (index < 2) { + return index; + } + 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 (let i = index - 2; i >= 0; --i) { + elt = views[i].div; + if (elt.offsetTop + elt.clientTop + elt.clientHeight <= pageTop) { + break; + } + index = i; + } + return index; +} +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) { + const element = view.div; + const elementBottom = element.offsetTop + element.clientTop + element.clientHeight; + return elementBottom > top; + } + function isElementNextAfterViewHorizontally(view) { + const element = view.div; + const elementLeft = element.offsetLeft + element.clientLeft; + const elementRight = elementLeft + element.clientWidth; + return rtl ? elementLeft < right : elementRight > left; + } + const visible = [], + ids = new Set(), + numViews = views.length; + let firstVisibleElementInd = binarySearchFirstItem(views, horizontal ? isElementNextAfterViewHorizontally : isElementBottomAfterViewTop); + if (firstVisibleElementInd > 0 && firstVisibleElementInd < numViews && !horizontal) { + firstVisibleElementInd = backtrackBeforeAllVisibleElements(firstVisibleElementInd, views, top); + } + let lastEdge = horizontal ? right : -1; + 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) { + lastEdge = viewBottom; + } + } else if ((horizontal ? currentWidth : currentHeight) > lastEdge) { + break; + } + if (viewBottom <= top || currentHeight >= bottom || viewRight <= left || currentWidth >= right) { + continue; + } + 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, + percent, + widthPercent: fractionWidth * 100 | 0 + }); + ids.add(view.id); + } + const first = visible[0], + last = visible.at(-1); + if (sortByVisibility) { + visible.sort(function (a, b) { + const pc = a.percent - b.percent; + if (Math.abs(pc) > 0.001) { + return -pc; + } + return a.id - b.id; + }); + } + return { + first, + last, + views: visible, + ids + }; +} +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; + } + return delta; +} +function normalizeWheelEventDelta(evt) { + const deltaMode = evt.deltaMode; + let delta = normalizeWheelEventDirection(evt); + const MOUSE_PIXELS_PER_LINE = 30; + const MOUSE_LINES_PER_PAGE = 30; + if (deltaMode === WheelEvent.DOM_DELTA_PIXEL) { + delta /= MOUSE_PIXELS_PER_LINE * MOUSE_LINES_PER_PAGE; + } else if (deltaMode === WheelEvent.DOM_DELTA_LINE) { + delta /= MOUSE_LINES_PER_PAGE; + } + return delta; +} +function isValidRotation(angle) { + return Number.isInteger(angle) && angle % 90 === 0; +} +function isValidScrollMode(mode) { + return Number.isInteger(mode) && Object.values(ScrollMode).includes(mode) && mode !== ScrollMode.UNKNOWN; +} +function isValidSpreadMode(mode) { + return Number.isInteger(mode) && Object.values(SpreadMode).includes(mode) && mode !== SpreadMode.UNKNOWN; +} +function isPortraitOrientation(size) { + return size.width <= size.height; +} +const animationStarted = new Promise(function (resolve) { + window.requestAnimationFrame(resolve); +}); +exports.animationStarted = animationStarted; +const docStyle = document.documentElement.style; +exports.docStyle = docStyle; +function clamp(v, min, max) { + return Math.min(Math.max(v, min), max); +} +class ProgressBar { + #classList = null; + #disableAutoFetchTimeout = null; + #percent = 0; + #style = null; + #visible = true; + constructor(bar) { + this.#classList = bar.classList; + this.#style = bar.style; + } + get percent() { + return this.#percent; + } + set percent(val) { + this.#percent = clamp(val, 0, 100); + if (isNaN(val)) { + this.#classList.add("indeterminate"); + return; + } + this.#classList.remove("indeterminate"); + this.#style.setProperty("--progressBar-percent", `${this.#percent}%`); + } + setWidth(viewer) { + if (!viewer) { + return; + } + const container = viewer.parentNode; + const scrollbarWidth = container.offsetWidth - viewer.offsetWidth; + if (scrollbarWidth > 0) { + this.#style.setProperty("--progressBar-end-offset", `${scrollbarWidth}px`); + } + } + setDisableAutoFetch(delay = 5000) { + if (isNaN(this.#percent)) { + return; + } + if (this.#disableAutoFetchTimeout) { + clearTimeout(this.#disableAutoFetchTimeout); + } + this.show(); + this.#disableAutoFetchTimeout = setTimeout(() => { + this.#disableAutoFetchTimeout = null; + this.hide(); + }, delay); + } + hide() { + if (!this.#visible) { + return; + } + this.#visible = false; + this.#classList.add("hidden"); + } + show() { + if (this.#visible) { + return; + } + this.#visible = true; + this.#classList.remove("hidden"); + } +} +exports.ProgressBar = ProgressBar; +function getActiveOrFocusedElement() { + let curRoot = document; + let curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + while (curActiveOrFocused?.shadowRoot) { + curRoot = curActiveOrFocused.shadowRoot; + curActiveOrFocused = curRoot.activeElement || curRoot.querySelector(":focus"); + } + return curActiveOrFocused; +} +function apiPageLayoutToViewerModes(layout) { + let scrollMode = ScrollMode.VERTICAL, + spreadMode = SpreadMode.NONE; + switch (layout) { + case "SinglePage": + scrollMode = ScrollMode.PAGE; + break; + case "OneColumn": + break; + case "TwoPageLeft": + scrollMode = ScrollMode.PAGE; + case "TwoColumnLeft": + spreadMode = SpreadMode.ODD; + break; + case "TwoPageRight": + scrollMode = ScrollMode.PAGE; + case "TwoColumnRight": + spreadMode = SpreadMode.EVEN; + break; + } + return { + scrollMode, + spreadMode + }; +} +function apiPageModeToSidebarView(mode) { + switch (mode) { + case "UseNone": + return SidebarView.NONE; + case "UseThumbs": + return SidebarView.THUMBS; + case "UseOutlines": + return SidebarView.OUTLINE; + case "UseAttachments": + return SidebarView.ATTACHMENTS; + case "UseOC": + return SidebarView.LAYERS; + } + return SidebarView.NONE; +} +function toggleCheckedBtn(button, toggle, view = null) { + button.classList.toggle("toggled", toggle); + button.setAttribute("aria-checked", toggle); + view?.classList.toggle("hidden", !toggle); +} +function toggleExpandedBtn(button, toggle, view = null) { + button.classList.toggle("toggled", toggle); + button.setAttribute("aria-expanded", toggle); + view?.classList.toggle("hidden", !toggle); +} + +/***/ }), +/* 4 */ +/***/ ((module) => { + + + +module.exports = globalThis.pdfjsLib; + +/***/ }), +/* 5 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.compatibilityParams = exports.OptionKind = exports.AppOptions = void 0; +const compatibilityParams = Object.create(null); +exports.compatibilityParams = compatibilityParams; +{ + const userAgent = navigator.userAgent || ""; + const platform = navigator.platform || ""; + const maxTouchPoints = navigator.maxTouchPoints || 1; + const isAndroid = /Android/.test(userAgent); + const isIOS = /\b(iPad|iPhone|iPod)(?=;)/.test(userAgent) || platform === "MacIntel" && maxTouchPoints > 1; + (function checkCanvasSizeLimitation() { + if (isIOS || isAndroid) { + compatibilityParams.maxCanvasPixels = 5242880; + } + })(); +} +const OptionKind = { + VIEWER: 0x02, + API: 0x04, + WORKER: 0x08, + PREFERENCE: 0x80 +}; +exports.OptionKind = OptionKind; +const defaultOptions = { + annotationEditorMode: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + annotationMode: { + value: 2, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + cursorToolOnLoad: { + value: 0, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + defaultZoomDelay: { + value: 400, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + 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 + }, + enableStampEditor: { + 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, + kind: OptionKind.VIEWER + }, + forcePageColors: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsBackground: { + value: "Canvas", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pageColorsForeground: { + value: "CanvasText", + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + pdfBugEnabled: { + value: false, + kind: OptionKind.VIEWER + OptionKind.PREFERENCE + }, + printResolution: { + value: 150, + kind: OptionKind.VIEWER + }, + 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 + }, + 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: true, + kind: OptionKind.API + OptionKind.PREFERENCE + }, + fontExtraProperties: { + value: false, + kind: OptionKind.API + }, + isEvalSupported: { + value: true, + kind: OptionKind.API + }, + isOffscreenCanvasSupported: { + value: true, + kind: OptionKind.API + }, + maxImageSize: { + value: -1, + kind: OptionKind.API + }, + pdfBug: { + value: false, + kind: OptionKind.API + }, + standardFontDataUrl: { + value: "../web/standard_fonts/", + kind: OptionKind.API + }, + verbosity: { + value: 1, + kind: OptionKind.API + }, + workerPort: { + value: null, + kind: OptionKind.WORKER + }, + workerSrc: { + value: "../build/pdf.worker.js", + kind: OptionKind.WORKER + } +}; +{ + defaultOptions.defaultUrl = { + value: "compressed.tracemonkey-pldi-09.pdf", + kind: OptionKind.VIEWER + }; + defaultOptions.disablePreferences = { + value: false, + kind: OptionKind.VIEWER + }; + defaultOptions.locale = { + value: navigator.language || "en-US", + kind: OptionKind.VIEWER + }; + defaultOptions.sandboxBundleSrc = { + value: "../build/pdf.sandbox.js", + kind: OptionKind.VIEWER + }; +} +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 compatibilityParams[name] ?? 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 : compatibilityParams[name] ?? 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]; + } +} +exports.AppOptions = AppOptions; +{ + AppOptions._hasUserOptions = function () { + return Object.keys(userOptions).length > 0; + }; +} + +/***/ }), +/* 6 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.WaitOnType = exports.EventBus = exports.AutomationEventBus = void 0; +exports.waitOnEventOrTimeout = waitOnEventOrTimeout; +const WaitOnType = { + EVENT: "event", + TIMEOUT: "timeout" +}; +exports.WaitOnType = WaitOnType; +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."); + } + function handler(type) { + if (target instanceof EventBus) { + target._off(name, eventHandler); + } else { + target.removeEventListener(name, eventHandler); + } + if (timeout) { + clearTimeout(timeout); + } + resolve(type); + } + const eventHandler = handler.bind(null, WaitOnType.EVENT); + if (target instanceof EventBus) { + target._on(name, eventHandler); + } else { + target.addEventListener(name, eventHandler); + } + const timeoutHandler = handler.bind(null, WaitOnType.TIMEOUT); + const timeout = setTimeout(timeoutHandler, delay); + }); +} +class EventBus { + #listeners = Object.create(null); + on(eventName, listener, options = null) { + this._on(eventName, listener, { + external: true, + once: options?.once + }); + } + off(eventName, listener, options = null) { + this._off(eventName, listener, { + external: true, + once: options?.once + }); + } + dispatch(eventName, data) { + const eventListeners = this.#listeners[eventName]; + if (!eventListeners || eventListeners.length === 0) { + return; + } + let externalListeners; + for (const { + listener, + external, + once + } of eventListeners.slice(0)) { + if (once) { + this._off(eventName, listener); + } + if (external) { + (externalListeners ||= []).push(listener); + continue; + } + listener(data); + } + if (externalListeners) { + for (const listener of externalListeners) { + listener(data); + } + externalListeners = null; + } + } + _on(eventName, listener, options = null) { + const eventListeners = 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; +class AutomationEventBus extends EventBus { + dispatch(eventName, data) { + throw new Error("Not implemented: AutomationEventBus.dispatch"); + } +} +exports.AutomationEventBus = AutomationEventBus; + +/***/ }), +/* 7 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SimpleLinkService = exports.PDFLinkService = exports.LinkTarget = void 0; +var _ui_utils = __webpack_require__(3); +const DEFAULT_LINK_REL = "noopener noreferrer nofollow"; +const LinkTarget = { + NONE: 0, + SELF: 1, + BLANK: 2, + PARENT: 3, + TOP: 4 +}; +exports.LinkTarget = LinkTarget; +function addLinkAttributes(link, { + url, + target, + rel, + enabled = true +} = {}) { + if (!url || typeof url !== "string") { + throw new Error('A valid "url" parameter must provided.'); + } + if (enabled) { + link.href = link.title = url; + } else { + link.href = ""; + link.title = `Disabled: ${url}`; + 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; +} +class PDFLinkService { + #pagesRefCache = new Map(); + constructor({ + eventBus, + externalLinkTarget = null, + externalLinkRel = null, + ignoreDestinationZoom = false + } = {}) { + this.eventBus = eventBus; + this.externalLinkTarget = externalLinkTarget; + this.externalLinkRel = externalLinkRel; + this.externalLinkEnabled = true; + this._ignoreDestinationZoom = ignoreDestinationZoom; + this.baseUrl = null; + this.pdfDocument = null; + this.pdfViewer = null; + this.pdfHistory = null; + } + setDocument(pdfDocument, baseUrl = null) { + this.baseUrl = baseUrl; + this.pdfDocument = pdfDocument; + this.#pagesRefCache.clear(); + } + 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; + } + get isInPresentationMode() { + return this.pdfViewer.isInPresentationMode; + } + #goToDestinationHelper(rawDest, namedDest = null, explicitDest) { + const destRef = explicitDest[0]; + let pageNumber; + if (typeof destRef === "object" && destRef !== null) { + pageNumber = this._cachedPageNumber(destRef); + if (!pageNumber) { + 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; + } + if (!pageNumber || pageNumber < 1 || pageNumber > this.pagesCount) { + console.error(`PDFLinkService.#goToDestinationHelper: "${pageNumber}" is not ` + `a valid page number, for dest="${rawDest}".`); + return; + } + if (this.pdfHistory) { + this.pdfHistory.pushCurrentPosition(); + this.pdfHistory.push({ + namedDest, + explicitDest, + pageNumber + }); + } + this.pdfViewer.scrollPageIntoView({ + pageNumber, + destArray: explicitDest, + ignoreDestinationZoom: this._ignoreDestinationZoom + }); + } + async goToDestination(dest) { + if (!this.pdfDocument) { + return; + } + let namedDest, explicitDest; + if (typeof dest === "string") { + namedDest = dest; + explicitDest = await this.pdfDocument.getDestination(dest); + } else { + namedDest = null; + explicitDest = await dest; + } + 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 + }); + } + addLinkAttributes(link, url, newWindow = false) { + addLinkAttributes(link, { + url, + target: newWindow ? LinkTarget.BLANK : this.externalLinkTarget, + rel: this.externalLinkRel, + enabled: this.externalLinkEnabled + }); + } + 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 ? this.baseUrl + anchor : anchor; + } + setHash(hash) { + if (!this.pdfDocument) { + return; + } + let pageNumber, dest; + if (hash.includes("=")) { + const params = (0, _ui_utils.parseQueryString)(hash); + if (params.has("search")) { + const query = params.get("search").replaceAll('"', ""), + phrase = params.get("phrase") === "true"; + this.eventBus.dispatch("findfromurlhash", { + source: this, + query: phrase ? query : query.match(/\S+/g) + }); + } + if (params.has("page")) { + pageNumber = params.get("page") | 0 || 1; + } + if (params.has("zoom")) { + const zoomArgs = params.get("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 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]; + } + } 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 (params.has("pagemode")) { + this.eventBus.dispatch("pagemode", { + source: this, + mode: params.get("pagemode") + }); + } + if (params.has("nameddest")) { + this.goToDestination(params.get("nameddest")); + } + } else { + dest = unescape(hash); + try { + dest = JSON.parse(dest); + if (!Array.isArray(dest)) { + dest = dest.toString(); + } + } catch {} + if (typeof dest === "string" || PDFLinkService.#isValidExplicitDestination(dest)) { + this.goToDestination(dest); + return; + } + console.error(`PDFLinkService.setHash: "${unescape(hash)}" is not a valid destination.`); + } + } + executeNamedAction(action) { + switch (action) { + case "GoBack": + this.pdfHistory?.back(); + break; + case "GoForward": + 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 + }); + } + async executeSetOCGState(action) { + const pdfDocument = this.pdfDocument; + const optionalContentConfig = await this.pdfViewer.optionalContentConfigPromise; + if (pdfDocument !== this.pdfDocument) { + return; + } + let operator; + for (const elem of action.state) { + switch (elem) { + case "ON": + case "OFF": + case "Toggle": + operator = elem; + continue; + } + switch (operator) { + case "ON": + optionalContentConfig.setVisibility(elem, true); + break; + case "OFF": + optionalContentConfig.setVisibility(elem, false); + break; + case "Toggle": + const group = optionalContentConfig.getGroup(elem); + if (group) { + optionalContentConfig.setVisibility(elem, !group.visible); + } + break; + } + } + this.pdfViewer.optionalContentConfigPromise = Promise.resolve(optionalContentConfig); + } + cachePageRef(pageNum, pageRef) { + if (!pageRef) { + return; + } + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + this.#pagesRefCache.set(refStr, pageNum); + } + _cachedPageNumber(pageRef) { + if (!pageRef) { + return null; + } + const refStr = pageRef.gen === 0 ? `${pageRef.num}R` : `${pageRef.num}R${pageRef.gen}`; + return this.#pagesRefCache.get(refStr) || null; + } + static #isValidExplicitDestination(dest) { + if (!Array.isArray(dest)) { + return false; + } + const destLength = dest.length; + if (destLength < 2) { + return false; + } + const page = dest[0]; + if (!(typeof page === "object" && Number.isInteger(page.num) && Number.isInteger(page.gen)) && !(Number.isInteger(page) && page >= 0)) { + return false; + } + const zoom = dest[1]; + if (!(typeof zoom === "object" && typeof zoom.name === "string")) { + return false; + } + let allowNull = true; + switch (zoom.name) { + case "XYZ": + if (destLength !== 5) { + return false; + } + break; + case "Fit": + case "FitB": + return destLength === 2; + case "FitH": + case "FitBH": + case "FitV": + case "FitBV": + if (destLength !== 3) { + return false; + } + break; + case "FitR": + if (destLength !== 6) { + return false; + } + allowNull = false; + break; + default: + return false; + } + for (let i = 2; i < destLength; i++) { + const param = dest[i]; + if (!(typeof param === "number" || allowNull && param === null)) { + return false; + } + } + return true; + } +} +exports.PDFLinkService = PDFLinkService; +class SimpleLinkService { + constructor() { + this.externalLinkEnabled = true; + } + get pagesCount() { + return 0; + } + get page() { + return 0; + } + set page(value) {} + get rotation() { + return 0; + } + set rotation(value) {} + get isInPresentationMode() { + return false; + } + async goToDestination(dest) {} + goToPage(val) {} + addLinkAttributes(link, url, newWindow = false) { + addLinkAttributes(link, { + url, + enabled: this.externalLinkEnabled + }); + } + getDestinationHash(dest) { + return "#"; + } + getAnchorUrl(hash) { + return "#"; + } + setHash(hash) {} + executeNamedAction(action) {} + executeSetOCGState(action) {} + cachePageRef(pageNum, pageRef) {} +} +exports.SimpleLinkService = SimpleLinkService; + +/***/ }), +/* 8 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AltTextManager = void 0; +var _pdfjsLib = __webpack_require__(4); +class AltTextManager { + #boundUpdateUIState = this.#updateUIState.bind(this); + #boundSetPosition = this.#setPosition.bind(this); + #boundOnClick = this.#onClick.bind(this); + #currentEditor = null; + #cancelButton; + #dialog; + #eventBus; + #hasUsedPointer = false; + #optionDescription; + #optionDecorative; + #overlayManager; + #saveButton; + #textarea; + #uiManager; + #previousAltText = null; + #svgElement = null; + #rectElement = null; + #container; + #telemetryData = null; + constructor({ + dialog, + optionDescription, + optionDecorative, + textarea, + cancelButton, + saveButton + }, container, overlayManager, eventBus) { + this.#dialog = dialog; + this.#optionDescription = optionDescription; + this.#optionDecorative = optionDecorative; + this.#textarea = textarea; + this.#cancelButton = cancelButton; + this.#saveButton = saveButton; + this.#overlayManager = overlayManager; + this.#eventBus = eventBus; + this.#container = container; + dialog.addEventListener("close", this.#close.bind(this)); + dialog.addEventListener("contextmenu", event => { + if (event.target !== this.#textarea) { + event.preventDefault(); + } + }); + cancelButton.addEventListener("click", this.#finish.bind(this)); + saveButton.addEventListener("click", this.#save.bind(this)); + optionDescription.addEventListener("change", this.#boundUpdateUIState); + optionDecorative.addEventListener("change", this.#boundUpdateUIState); + this.#overlayManager.register(dialog); + } + get _elements() { + return (0, _pdfjsLib.shadow)(this, "_elements", [this.#optionDescription, this.#optionDecorative, this.#textarea, this.#saveButton, this.#cancelButton]); + } + #createSVGElement() { + if (this.#svgElement) { + return; + } + const svgFactory = new _pdfjsLib.DOMSVGFactory(); + const svg = this.#svgElement = svgFactory.createElement("svg"); + svg.setAttribute("width", "0"); + svg.setAttribute("height", "0"); + const defs = svgFactory.createElement("defs"); + svg.append(defs); + const mask = svgFactory.createElement("mask"); + defs.append(mask); + mask.setAttribute("id", "alttext-manager-mask"); + mask.setAttribute("maskContentUnits", "objectBoundingBox"); + let rect = svgFactory.createElement("rect"); + mask.append(rect); + rect.setAttribute("fill", "white"); + rect.setAttribute("width", "1"); + rect.setAttribute("height", "1"); + rect.setAttribute("x", "0"); + rect.setAttribute("y", "0"); + rect = this.#rectElement = svgFactory.createElement("rect"); + mask.append(rect); + rect.setAttribute("fill", "black"); + this.#dialog.append(svg); + } + async editAltText(uiManager, editor) { + if (this.#currentEditor || !editor) { + return; + } + this.#createSVGElement(); + this.#hasUsedPointer = false; + for (const element of this._elements) { + element.addEventListener("click", this.#boundOnClick); + } + const { + altText, + decorative + } = editor.altTextData; + if (decorative === true) { + this.#optionDecorative.checked = true; + this.#optionDescription.checked = false; + } else { + this.#optionDecorative.checked = false; + this.#optionDescription.checked = true; + } + this.#previousAltText = this.#textarea.value = altText?.trim() || ""; + this.#updateUIState(); + this.#currentEditor = editor; + this.#uiManager = uiManager; + this.#uiManager.removeEditListeners(); + this.#eventBus._on("resize", this.#boundSetPosition); + try { + await this.#overlayManager.open(this.#dialog); + this.#setPosition(); + } catch (ex) { + this.#close(); + throw ex; + } + } + #setPosition() { + if (!this.#currentEditor) { + return; + } + const dialog = this.#dialog; + const { + style + } = dialog; + const { + x: containerX, + y: containerY, + width: containerW, + height: containerH + } = this.#container.getBoundingClientRect(); + const { + innerWidth: windowW, + innerHeight: windowH + } = window; + const { + width: dialogW, + height: dialogH + } = dialog.getBoundingClientRect(); + const { + x, + y, + width, + height + } = this.#currentEditor.getClientDimensions(); + const MARGIN = 10; + const isLTR = this.#uiManager.direction === "ltr"; + const xs = Math.max(x, containerX); + const xe = Math.min(x + width, containerX + containerW); + const ys = Math.max(y, containerY); + const ye = Math.min(y + height, containerY + containerH); + this.#rectElement.setAttribute("width", `${(xe - xs) / windowW}`); + this.#rectElement.setAttribute("height", `${(ye - ys) / windowH}`); + this.#rectElement.setAttribute("x", `${xs / windowW}`); + this.#rectElement.setAttribute("y", `${ys / windowH}`); + let left = null; + let top = Math.max(y, 0); + top += Math.min(windowH - (top + dialogH), 0); + if (isLTR) { + if (x + width + MARGIN + dialogW < windowW) { + left = x + width + MARGIN; + } else if (x > dialogW + MARGIN) { + left = x - dialogW - MARGIN; + } + } else if (x > dialogW + MARGIN) { + left = x - dialogW - MARGIN; + } else if (x + width + MARGIN + dialogW < windowW) { + left = x + width + MARGIN; + } + if (left === null) { + top = null; + left = Math.max(x, 0); + left += Math.min(windowW - (left + dialogW), 0); + if (y > dialogH + MARGIN) { + top = y - dialogH - MARGIN; + } else if (y + height + MARGIN + dialogH < windowH) { + top = y + height + MARGIN; + } + } + if (top !== null) { + dialog.classList.add("positioned"); + if (isLTR) { + style.left = `${left}px`; + } else { + style.right = `${windowW - left - dialogW}px`; + } + style.top = `${top}px`; + } else { + dialog.classList.remove("positioned"); + style.left = ""; + style.top = ""; + } + } + #finish() { + if (this.#overlayManager.active === this.#dialog) { + this.#overlayManager.close(this.#dialog); + } + } + #close() { + this.#eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "editing", + subtype: this.#currentEditor.editorType, + data: this.#telemetryData || { + action: "alt_text_cancel", + alt_text_keyboard: !this.#hasUsedPointer + } + } + }); + this.#telemetryData = null; + this.#removeOnClickListeners(); + this.#uiManager?.addEditListeners(); + this.#eventBus._off("resize", this.#boundSetPosition); + this.#currentEditor = null; + this.#uiManager = null; + } + #updateUIState() { + this.#textarea.disabled = this.#optionDecorative.checked; + } + #save() { + const altText = this.#textarea.value.trim(); + const decorative = this.#optionDecorative.checked; + this.#currentEditor.altTextData = { + altText, + decorative + }; + this.#telemetryData = { + action: "alt_text_save", + alt_text_description: !!altText, + alt_text_edit: !!this.#previousAltText && this.#previousAltText !== altText, + alt_text_decorative: decorative, + alt_text_keyboard: !this.#hasUsedPointer + }; + this.#finish(); + } + #onClick(evt) { + if (evt.detail === 0) { + return; + } + this.#hasUsedPointer = true; + this.#removeOnClickListeners(); + } + #removeOnClickListeners() { + for (const element of this._elements) { + element.removeEventListener("click", this.#boundOnClick); + } + } + destroy() { + this.#uiManager = null; + this.#finish(); + this.#svgElement?.remove(); + this.#svgElement = this.#rectElement = null; + } +} +exports.AltTextManager = AltTextManager; + +/***/ }), +/* 9 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorParams = void 0; +var _pdfjsLib = __webpack_require__(4); +class AnnotationEditorParams { + constructor(options, eventBus) { + this.eventBus = eventBus; + this.#bindListeners(options); + } + #bindListeners({ + editorFreeTextFontSize, + editorFreeTextColor, + editorInkColor, + editorInkThickness, + editorInkOpacity, + editorStampAddImage + }) { + const dispatchEvent = (typeStr, value) => { + this.eventBus.dispatch("switchannotationeditorparams", { + source: this, + type: _pdfjsLib.AnnotationEditorParamsType[typeStr], + value + }); + }; + editorFreeTextFontSize.addEventListener("input", function () { + dispatchEvent("FREETEXT_SIZE", this.valueAsNumber); + }); + editorFreeTextColor.addEventListener("input", function () { + dispatchEvent("FREETEXT_COLOR", this.value); + }); + editorInkColor.addEventListener("input", function () { + dispatchEvent("INK_COLOR", this.value); + }); + editorInkThickness.addEventListener("input", function () { + dispatchEvent("INK_THICKNESS", this.valueAsNumber); + }); + editorInkOpacity.addEventListener("input", function () { + dispatchEvent("INK_OPACITY", this.valueAsNumber); + }); + editorStampAddImage.addEventListener("click", () => { + dispatchEvent("CREATE"); + }); + this.eventBus._on("annotationeditorparamschanged", evt => { + for (const [type, value] of evt.details) { + switch (type) { + case _pdfjsLib.AnnotationEditorParamsType.FREETEXT_SIZE: + editorFreeTextFontSize.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.FREETEXT_COLOR: + editorFreeTextColor.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.INK_COLOR: + editorInkColor.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.INK_THICKNESS: + editorInkThickness.value = value; + break; + case _pdfjsLib.AnnotationEditorParamsType.INK_OPACITY: + editorInkOpacity.value = value; + break; + } + } + }); + } +} +exports.AnnotationEditorParams = AnnotationEditorParams; + +/***/ }), +/* 10 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.OverlayManager = void 0; +class OverlayManager { + #overlays = new WeakMap(); + #active = null; + get active() { + return this.#active; + } + async register(dialog, canForceClose = false) { + if (typeof dialog !== "object") { + throw new Error("Not enough parameters."); + } else if (this.#overlays.has(dialog)) { + throw new Error("The overlay is already registered."); + } + this.#overlays.set(dialog, { + canForceClose + }); + dialog.addEventListener("cancel", evt => { + this.#active = null; + }); + } + async open(dialog) { + if (!this.#overlays.has(dialog)) { + throw new Error("The overlay does not exist."); + } else if (this.#active) { + if (this.#active === dialog) { + throw new Error("The overlay is already active."); + } else if (this.#overlays.get(dialog).canForceClose) { + await this.close(); + } else { + throw new Error("Another overlay is currently active."); + } + } + this.#active = dialog; + dialog.showModal(); + } + async close(dialog = this.#active) { + if (!this.#overlays.has(dialog)) { + 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 !== dialog) { + throw new Error("Another overlay is currently active."); + } + dialog.close(); + this.#active = null; + } +} +exports.OverlayManager = OverlayManager; + +/***/ }), +/* 11 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PasswordPrompt = void 0; +var _pdfjsLib = __webpack_require__(4); +class PasswordPrompt { + #activeCapability = null; + #updateCallback = null; + #reason = null; + constructor(options, overlayManager, l10n, isViewerEmbedded = false) { + this.dialog = options.dialog; + this.label = options.label; + this.input = options.input; + this.submitButton = options.submitButton; + this.cancelButton = options.cancelButton; + this.overlayManager = overlayManager; + this.l10n = l10n; + this._isViewerEmbedded = isViewerEmbedded; + 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.overlayManager.register(this.dialog, true); + this.dialog.addEventListener("close", this.#cancel.bind(this)); + } + async open() { + if (this.#activeCapability) { + await this.#activeCapability.promise; + } + this.#activeCapability = new _pdfjsLib.PromiseCapability(); + try { + await this.overlayManager.open(this.dialog); + } catch (ex) { + this.#activeCapability.resolve(); + throw ex; + } + const passwordIncorrect = this.#reason === _pdfjsLib.PasswordResponses.INCORRECT_PASSWORD; + if (!this._isViewerEmbedded || passwordIncorrect) { + this.input.focus(); + } + this.label.textContent = await this.l10n.get(`password_${passwordIncorrect ? "invalid" : "label"}`); + } + async close() { + if (this.overlayManager.active === this.dialog) { + this.overlayManager.close(this.dialog); + } + } + #verify() { + const password = this.input.value; + if (password?.length > 0) { + this.#invokeCallback(password); + } + } + #cancel() { + this.#invokeCallback(new Error("PasswordPrompt cancelled.")); + this.#activeCapability.resolve(); + } + #invokeCallback(password) { + if (!this.#updateCallback) { + return; + } + this.close(); + this.input.value = ""; + this.#updateCallback(password); + this.#updateCallback = null; + } + async setUpdateCallback(updateCallback, reason) { + if (this.#activeCapability) { + await this.#activeCapability.promise; + } + this.#updateCallback = updateCallback; + this.#reason = reason; + } +} +exports.PasswordPrompt = PasswordPrompt; + +/***/ }), +/* 12 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFAttachmentViewer = void 0; +var _pdfjsLib = __webpack_require__(4); +var _base_tree_viewer = __webpack_require__(13); +var _event_utils = __webpack_require__(6); +class PDFAttachmentViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.downloadManager = options.downloadManager; + this.eventBus._on("fileattachmentannotation", this.#appendAttachment.bind(this)); + } + reset(keepRenderedCapability = false) { + super.reset(); + this._attachments = null; + if (!keepRenderedCapability) { + this._renderedCapability = new _pdfjsLib.PromiseCapability(); + } + this._pendingDispatchEvent = false; + } + async _dispatchEvent(attachmentsCount) { + this._renderedCapability.resolve(); + if (attachmentsCount === 0 && !this._pendingDispatchEvent) { + this._pendingDispatchEvent = true; + await (0, _event_utils.waitOnEventOrTimeout)({ + target: this.eventBus, + name: "annotationlayerrendered", + delay: 1000 + }); + if (!this._pendingDispatchEvent) { + return; + } + } + this._pendingDispatchEvent = false; + this.eventBus.dispatch("attachmentsloaded", { + source: this, + attachmentsCount + }); + } + _bindLink(element, { + content, + filename + }) { + element.onclick = () => { + this.downloadManager.openOrDownloadData(element, content, filename); + return false; + }; + } + render({ + attachments, + keepRenderedCapability = false + }) { + if (this._attachments) { + this.reset(keepRenderedCapability); + } + this._attachments = attachments || null; + if (!attachments) { + this._dispatchEvent(0); + return; + } + const fragment = document.createDocumentFragment(); + let attachmentsCount = 0; + for (const name in attachments) { + const item = attachments[name]; + const content = item.content, + filename = (0, _pdfjsLib.getFilenameFromUrl)(item.filename, true); + const div = document.createElement("div"); + div.className = "treeItem"; + const element = document.createElement("a"); + this._bindLink(element, { + content, + filename + }); + element.textContent = this._normalizeTextContent(filename); + div.append(element); + fragment.append(div); + attachmentsCount++; + } + this._finishRendering(fragment, attachmentsCount); + } + #appendAttachment({ + filename, + content + }) { + const renderedPromise = this._renderedCapability.promise; + renderedPromise.then(() => { + if (renderedPromise !== this._renderedCapability.promise) { + return; + } + const attachments = this._attachments || Object.create(null); + for (const name in attachments) { + if (filename === name) { + return; + } + } + attachments[filename] = { + filename, + content + }; + this.render({ + attachments, + keepRenderedCapability: true + }); + }); + } +} +exports.PDFAttachmentViewer = PDFAttachmentViewer; + +/***/ }), +/* 13 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BaseTreeViewer = void 0; +var _ui_utils = __webpack_require__(3); +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, _ui_utils.removeNullCharacters)(str, true) || "\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.prepend(toggler); + } + _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.append(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; + +/***/ }), +/* 14 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFCursorTools = void 0; +var _pdfjsLib = __webpack_require__(4); +var _ui_utils = __webpack_require__(3); +var _grab_to_pan = __webpack_require__(15); +class PDFCursorTools { + #active = _ui_utils.CursorTool.SELECT; + #prevActive = null; + constructor({ + container, + eventBus, + cursorToolOnLoad = _ui_utils.CursorTool.SELECT + }) { + this.container = container; + this.eventBus = eventBus; + this.#addEventListeners(); + Promise.resolve().then(() => { + this.switchTool(cursorToolOnLoad); + }); + } + get activeTool() { + return this.#active; + } + switchTool(tool) { + if (this.#prevActive !== null) { + return; + } + if (tool === this.#active) { + return; + } + const disableActiveTool = () => { + switch (this.#active) { + case _ui_utils.CursorTool.SELECT: + break; + case _ui_utils.CursorTool.HAND: + this._handTool.deactivate(); + break; + case _ui_utils.CursorTool.ZOOM: + } + }; + switch (tool) { + case _ui_utils.CursorTool.SELECT: + disableActiveTool(); + break; + case _ui_utils.CursorTool.HAND: + disableActiveTool(); + this._handTool.activate(); + break; + case _ui_utils.CursorTool.ZOOM: + default: + console.error(`switchTool: "${tool}" is an unsupported value.`); + return; + } + this.#active = tool; + this.eventBus.dispatch("cursortoolchanged", { + source: this, + tool + }); + } + #addEventListeners() { + this.eventBus._on("switchcursortool", evt => { + this.switchTool(evt.tool); + }); + let annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE, + presentationModeState = _ui_utils.PresentationModeState.NORMAL; + const disableActive = () => { + const prevActive = this.#active; + this.switchTool(_ui_utils.CursorTool.SELECT); + this.#prevActive ??= prevActive; + }; + const enableActive = () => { + const prevActive = this.#prevActive; + if (prevActive !== null && annotationEditorMode === _pdfjsLib.AnnotationEditorType.NONE && presentationModeState === _ui_utils.PresentationModeState.NORMAL) { + this.#prevActive = null; + this.switchTool(prevActive); + } + }; + this.eventBus._on("secondarytoolbarreset", evt => { + if (this.#prevActive !== null) { + annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; + presentationModeState = _ui_utils.PresentationModeState.NORMAL; + enableActive(); + } + }); + this.eventBus._on("annotationeditormodechanged", ({ + mode + }) => { + annotationEditorMode = mode; + if (mode === _pdfjsLib.AnnotationEditorType.NONE) { + enableActive(); + } else { + disableActive(); + } + }); + this.eventBus._on("presentationmodechanged", ({ + state + }) => { + presentationModeState = state; + if (state === _ui_utils.PresentationModeState.NORMAL) { + enableActive(); + } else if (state === _ui_utils.PresentationModeState.FULLSCREEN) { + disableActive(); + } + }); + } + get _handTool() { + return (0, _pdfjsLib.shadow)(this, "_handTool", new _grab_to_pan.GrabToPan({ + element: this.container + })); + } +} +exports.PDFCursorTools = PDFCursorTools; + +/***/ }), +/* 15 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GrabToPan = void 0; +const CSS_CLASS_GRAB = "grab-to-pan-grab"; +class GrabToPan { + constructor({ + element + }) { + this.element = element; + this.document = element.ownerDocument; + this.activate = this.activate.bind(this); + this.deactivate = this.deactivate.bind(this); + this.toggle = this.toggle.bind(this); + this._onMouseDown = this.#onMouseDown.bind(this); + this._onMouseMove = this.#onMouseMove.bind(this); + this._endPan = this.#endPan.bind(this); + const overlay = this.overlay = document.createElement("div"); + overlay.className = "grab-to-pan-grabbing"; + } + activate() { + if (!this.active) { + this.active = true; + this.element.addEventListener("mousedown", this._onMouseDown, true); + this.element.classList.add(CSS_CLASS_GRAB); + } + } + deactivate() { + if (this.active) { + this.active = false; + this.element.removeEventListener("mousedown", this._onMouseDown, true); + this._endPan(); + this.element.classList.remove(CSS_CLASS_GRAB); + } + } + toggle() { + if (this.active) { + this.deactivate(); + } else { + this.activate(); + } + } + ignoreTarget(node) { + return node.matches("a[href], a[href] *, input, textarea, button, button *, select, option"); + } + #onMouseDown(event) { + if (event.button !== 0 || this.ignoreTarget(event.target)) { + return; + } + if (event.originalTarget) { + try { + event.originalTarget.tagName; + } catch { + return; + } + } + this.scrollLeftStart = this.element.scrollLeft; + 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); + event.preventDefault(); + event.stopPropagation(); + const focusedElement = document.activeElement; + if (focusedElement && !focusedElement.contains(event.target)) { + focusedElement.blur(); + } + } + #onMouseMove(event) { + this.element.removeEventListener("scroll", this._endPan, true); + if (!(event.buttons & 1)) { + this._endPan(); + return; + } + const xDiff = event.clientX - this.clientXStart; + const yDiff = event.clientY - this.clientYStart; + this.element.scrollTo({ + top: this.scrollTopStart - yDiff, + left: this.scrollLeftStart - xDiff, + behavior: "instant" + }); + if (!this.overlay.parentNode) { + document.body.append(this.overlay); + } + } + #endPan() { + this.element.removeEventListener("scroll", this._endPan, true); + this.document.removeEventListener("mousemove", this._onMouseMove, true); + this.document.removeEventListener("mouseup", this._endPan, true); + this.overlay.remove(); + } +} +exports.GrabToPan = GrabToPan; + +/***/ }), +/* 16 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFDocumentProperties = void 0; +var _ui_utils = __webpack_require__(3); +var _pdfjsLib = __webpack_require__(4); +const DEFAULT_FIELD_CONTENT = "-"; +const NON_METRIC_LOCALES = ["en-us", "en-lr", "my"]; +const US_PAGE_NAMES = { + "8.5x11": "Letter", + "8.5x14": "Legal" +}; +const METRIC_PAGE_NAMES = { + "297x420": "A3", + "210x297": "A4" +}; +function getPageName(size, isPortrait, pageNames) { + const width = isPortrait ? size.width : size.height; + const height = isPortrait ? size.height : size.width; + return pageNames[`${width}x${height}`]; +} +class PDFDocumentProperties { + #fieldData = null; + constructor({ + dialog, + fields, + closeButton + }, overlayManager, eventBus, l10n, fileNameLookup) { + this.dialog = dialog; + this.fields = fields; + this.overlayManager = overlayManager; + this.l10n = l10n; + this._fileNameLookup = fileNameLookup; + this.#reset(); + closeButton.addEventListener("click", this.close.bind(this)); + this.overlayManager.register(this.dialog); + eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + eventBus._on("rotationchanging", evt => { + this._pagesRotation = evt.pagesRotation; + }); + this._isNonMetricLocale = true; + l10n.getLanguage().then(locale => { + this._isNonMetricLocale = NON_METRIC_LOCALES.includes(locale); + }); + } + async open() { + await Promise.all([this.overlayManager.open(this.dialog), 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, + contentLength + } = await this.pdfDocument.getMetadata(); + const [fileName, fileSize, creationDate, modificationDate, pageSize, isLinearized] = await Promise.all([this._fileNameLookup(), 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)]); + this.#fieldData = Object.freeze({ + 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); + this.#fieldData = Object.freeze(data); + this.#updateUI(); + } + async close() { + this.overlayManager.close(this.dialog); + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.#reset(); + this.#updateUI(true); + } + if (!pdfDocument) { + return; + } + this.pdfDocument = pdfDocument; + this._dataAvailableCapability.resolve(); + } + #reset() { + this.pdfDocument = null; + this.#fieldData = null; + this._dataAvailableCapability = new _pdfjsLib.PromiseCapability(); + 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.dialog) { + 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) + }; + 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 (rawName) { + sizeInches = { + width: Math.round(intMillimeters.width / 25.4 * 100) / 100, + height: Math.round(intMillimeters.height / 25.4 * 100) / 100 + }; + sizeMillimeters = intMillimeters; + } + } + } + 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; + } + return this.l10n.get("document_properties_date_string", { + date: dateObject.toLocaleDateString(), + time: dateObject.toLocaleTimeString() + }); + } + #parseLinearization(isLinearized) { + return this.l10n.get(`document_properties_linearized_${isLinearized ? "yes" : "no"}`); + } +} +exports.PDFDocumentProperties = PDFDocumentProperties; + +/***/ }), +/* 17 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFFindBar = void 0; +var _pdf_find_controller = __webpack_require__(18); +var _ui_utils = __webpack_require__(3); +const MATCHES_COUNT_LIMIT = 1000; +class PDFFindBar { + constructor(options, eventBus, l10n) { + this.opened = false; + this.bar = options.bar; + this.toggleButton = options.toggleButton; + this.findField = options.findField; + this.highlightAll = options.highlightAllCheckbox; + this.caseSensitive = options.caseSensitiveCheckbox; + this.matchDiacritics = options.matchDiacriticsCheckbox; + 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", () => { + this.toggle(); + }); + this.findField.addEventListener("input", () => { + this.dispatchEvent(""); + }); + this.bar.addEventListener("keydown", e => { + switch (e.keyCode) { + case 13: + if (e.target === this.findField) { + this.dispatchEvent("again", e.shiftKey); + } + break; + case 27: + this.close(); + break; + } + }); + this.findPreviousButton.addEventListener("click", () => { + this.dispatchEvent("again", true); + }); + this.findNextButton.addEventListener("click", () => { + this.dispatchEvent("again", false); + }); + this.highlightAll.addEventListener("click", () => { + this.dispatchEvent("highlightallchange"); + }); + this.caseSensitive.addEventListener("click", () => { + this.dispatchEvent("casesensitivitychange"); + }); + this.entireWord.addEventListener("click", () => { + this.dispatchEvent("entirewordchange"); + }); + this.matchDiacritics.addEventListener("click", () => { + this.dispatchEvent("diacriticmatchingchange"); + }); + this.eventBus._on("resize", this.#adjustWidth.bind(this)); + } + reset() { + this.updateUIState(); + } + dispatchEvent(type, findPrev = false) { + this.eventBus.dispatch("find", { + source: this, + type, + query: this.findField.value, + caseSensitive: this.caseSensitive.checked, + entireWord: this.entireWord.checked, + highlightAll: this.highlightAll.checked, + findPrevious: findPrev, + matchDiacritics: this.matchDiacritics.checked + }); + } + 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; + } + this.findField.setAttribute("data-status", status); + this.findField.setAttribute("aria-invalid", state === _pdf_find_controller.FindState.NOT_FOUND); + findMsg.then(msg => { + this.findMsg.setAttribute("data-status", status); + this.findMsg.textContent = msg; + this.#adjustWidth(); + }); + this.updateResultsCount(matchesCount); + } + 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 { + let key = "find_match_count"; + matchCountMsg = this.l10n.get(key, { + current, + total + }); + } + } + matchCountMsg.then(msg => { + this.findResultsCount.textContent = msg; + this.#adjustWidth(); + }); + } + open() { + if (!this.opened) { + this.opened = true; + (0, _ui_utils.toggleExpandedBtn)(this.toggleButton, true, this.bar); + } + this.findField.select(); + this.findField.focus(); + this.#adjustWidth(); + } + close() { + if (!this.opened) { + return; + } + this.opened = false; + (0, _ui_utils.toggleExpandedBtn)(this.toggleButton, false, this.bar); + 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 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFFindController = exports.FindState = void 0; +var _ui_utils = __webpack_require__(3); +var _pdf_find_utils = __webpack_require__(19); +var _pdfjsLib = __webpack_require__(4); +const FindState = { + FOUND: 0, + NOT_FOUND: 1, + WRAPPED: 2, + PENDING: 3 +}; +exports.FindState = FindState; +const FIND_TIMEOUT = 250; +const MATCH_SCROLL_OFFSET_TOP = -50; +const MATCH_SCROLL_OFFSET_LEFT = -400; +const CHARACTERS_TO_NORMALIZE = { + "\u2010": "-", + "\u2018": "'", + "\u2019": "'", + "\u201A": "'", + "\u201B": "'", + "\u201C": '"', + "\u201D": '"', + "\u201E": '"', + "\u201F": '"', + "\u00BC": "1/4", + "\u00BD": "1/2", + "\u00BE": "3/4" +}; +const DIACRITICS_EXCEPTION = new Set([0x3099, 0x309a, 0x094d, 0x09cd, 0x0a4d, 0x0acd, 0x0b4d, 0x0bcd, 0x0c4d, 0x0ccd, 0x0d3b, 0x0d3c, 0x0d4d, 0x0dca, 0x0e3a, 0x0eba, 0x0f84, 0x1039, 0x103a, 0x1714, 0x1734, 0x17d2, 0x1a60, 0x1b44, 0x1baa, 0x1bab, 0x1bf2, 0x1bf3, 0x2d7f, 0xa806, 0xa82c, 0xa8c4, 0xa953, 0xa9c0, 0xaaf6, 0xabed, 0x0c56, 0x0f71, 0x0f72, 0x0f7a, 0x0f7b, 0x0f7c, 0x0f7d, 0x0f80, 0x0f74]); +let DIACRITICS_EXCEPTION_STR; +const DIACRITICS_REG_EXP = /\p{M}+/gu; +const SPECIAL_CHARS_REG_EXP = /([.*+?^${}()|[\]\\])|(\p{P})|(\s+)|(\p{M})|(\p{L})/gu; +const NOT_DIACRITIC_FROM_END_REG_EXP = /([^\p{M}])\p{M}*$/u; +const NOT_DIACRITIC_FROM_START_REG_EXP = /^\p{M}*([^\p{M}])/u; +const SYLLABLES_REG_EXP = /[\uAC00-\uD7AF\uFA6C\uFACF-\uFAD1\uFAD5-\uFAD7]+/g; +const SYLLABLES_LENGTHS = new Map(); +const FIRST_CHAR_SYLLABLES_REG_EXP = "[\\u1100-\\u1112\\ud7a4-\\ud7af\\ud84a\\ud84c\\ud850\\ud854\\ud857\\ud85f]"; +const NFKC_CHARS_TO_NORMALIZE = new Map(); +let noSyllablesRegExp = null; +let withSyllablesRegExp = null; +function normalize(text) { + const syllablePositions = []; + let m; + while ((m = SYLLABLES_REG_EXP.exec(text)) !== null) { + let { + index + } = m; + for (const char of m[0]) { + let len = SYLLABLES_LENGTHS.get(char); + if (!len) { + len = char.normalize("NFD").length; + SYLLABLES_LENGTHS.set(char, len); + } + syllablePositions.push([len, index++]); + } + } + let normalizationRegex; + if (syllablePositions.length === 0 && noSyllablesRegExp) { + normalizationRegex = noSyllablesRegExp; + } else if (syllablePositions.length > 0 && withSyllablesRegExp) { + normalizationRegex = withSyllablesRegExp; + } else { + const replace = Object.keys(CHARACTERS_TO_NORMALIZE).join(""); + const toNormalizeWithNFKC = (0, _pdf_find_utils.getNormalizeWithNFKC)(); + const CJK = "(?:\\p{Ideographic}|[\u3040-\u30FF])"; + const HKDiacritics = "(?:\u3099|\u309A)"; + const regexp = `([${replace}])|([${toNormalizeWithNFKC}])|(${HKDiacritics}\\n)|(\\p{M}+(?:-\\n)?)|(\\S-\\n)|(${CJK}\\n)|(\\n)`; + if (syllablePositions.length === 0) { + normalizationRegex = noSyllablesRegExp = new RegExp(regexp + "|(\\u0000)", "gum"); + } else { + normalizationRegex = withSyllablesRegExp = new RegExp(regexp + `|(${FIRST_CHAR_SYLLABLES_REG_EXP})`, "gum"); + } + } + const rawDiacriticsPositions = []; + while ((m = DIACRITICS_REG_EXP.exec(text)) !== null) { + rawDiacriticsPositions.push([m[0].length, m.index]); + } + let normalized = text.normalize("NFD"); + const positions = [[0, 0]]; + let rawDiacriticsIndex = 0; + let syllableIndex = 0; + let shift = 0; + let shiftOrigin = 0; + let eol = 0; + let hasDiacritics = false; + normalized = normalized.replace(normalizationRegex, (match, p1, p2, p3, p4, p5, p6, p7, p8, i) => { + i -= shiftOrigin; + if (p1) { + const replacement = CHARACTERS_TO_NORMALIZE[p1]; + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push([i - shift + j, shift - j]); + } + shift -= jj - 1; + return replacement; + } + if (p2) { + let replacement = NFKC_CHARS_TO_NORMALIZE.get(p2); + if (!replacement) { + replacement = p2.normalize("NFKC"); + NFKC_CHARS_TO_NORMALIZE.set(p2, replacement); + } + const jj = replacement.length; + for (let j = 1; j < jj; j++) { + positions.push([i - shift + j, shift - j]); + } + shift -= jj - 1; + return replacement; + } + if (p3) { + hasDiacritics = true; + if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { + ++rawDiacriticsIndex; + } else { + positions.push([i - 1 - shift + 1, shift - 1]); + shift -= 1; + shiftOrigin += 1; + } + positions.push([i - shift + 1, shift]); + shiftOrigin += 1; + eol += 1; + return p3.charAt(0); + } + if (p4) { + const hasTrailingDashEOL = p4.endsWith("\n"); + const len = hasTrailingDashEOL ? p4.length - 2 : p4.length; + hasDiacritics = true; + let jj = len; + if (i + eol === rawDiacriticsPositions[rawDiacriticsIndex]?.[1]) { + jj -= rawDiacriticsPositions[rawDiacriticsIndex][0]; + ++rawDiacriticsIndex; + } + for (let j = 1; j <= jj; j++) { + positions.push([i - 1 - shift + j, shift - j]); + } + shift -= jj; + shiftOrigin += jj; + if (hasTrailingDashEOL) { + i += len - 1; + positions.push([i - shift + 1, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p4.slice(0, len); + } + return p4; + } + if (p5) { + const len = p5.length - 2; + positions.push([i - shift + len, 1 + shift]); + shift += 1; + shiftOrigin += 1; + eol += 1; + return p5.slice(0, -2); + } + if (p6) { + const len = p6.length - 1; + positions.push([i - shift + len, shift]); + shiftOrigin += 1; + eol += 1; + return p6.slice(0, -1); + } + if (p7) { + positions.push([i - shift + 1, shift - 1]); + shift -= 1; + shiftOrigin += 1; + eol += 1; + return " "; + } + if (i + eol === syllablePositions[syllableIndex]?.[1]) { + const newCharLen = syllablePositions[syllableIndex][0] - 1; + ++syllableIndex; + for (let j = 1; j <= newCharLen; j++) { + positions.push([i - (shift - j), shift - j]); + } + shift -= newCharLen; + shiftOrigin += newCharLen; + } + return p8; + }); + positions.push([normalized.length, shift]); + return [normalized, positions, hasDiacritics]; +} +function getOriginalIndex(diffs, pos, len) { + if (!diffs) { + return [pos, len]; + } + const start = pos; + const end = pos + len - 1; + let i = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= start); + if (diffs[i][0] > start) { + --i; + } + let j = (0, _ui_utils.binarySearchFirstItem)(diffs, x => x[0] >= end, i); + if (diffs[j][0] > end) { + --j; + } + const oldStart = start + diffs[i][1]; + const oldEnd = end + diffs[j][1]; + const oldLen = oldEnd + 1 - oldStart; + return [oldStart, oldLen]; +} +class PDFFindController { + #state = null; + #updateMatchesCountOnProgress = true; + #visitedPagesCount = 0; + constructor({ + linkService, + eventBus, + updateMatchesCountOnProgress = true + }) { + this._linkService = linkService; + this._eventBus = eventBus; + this.#updateMatchesCountOnProgress = updateMatchesCountOnProgress; + this.onIsPageVisible = null; + this.#reset(); + eventBus._on("find", this.#onFind.bind(this)); + eventBus._on("findbarclose", this.#onFindBarClose.bind(this)); + } + get highlightMatches() { + return this._highlightMatches; + } + get pageMatches() { + return this._pageMatches; + } + get pageMatchesLength() { + return this._pageMatchesLength; + } + get selected() { + return this._selected; + } + get state() { + return this.#state; + } + setDocument(pdfDocument) { + if (this._pdfDocument) { + this.#reset(); + } + if (!pdfDocument) { + return; + } + this._pdfDocument = pdfDocument; + this._firstPageCapability.resolve(); + } + #onFind(state) { + if (!state) { + return; + } + if (state.phraseSearch === false) { + console.error("The `phraseSearch`-parameter was removed, please provide " + "an Array of strings in the `query`-parameter instead."); + if (typeof state.query === "string") { + state.query = state.query.match(/\S+/g); + } + } + const pdfDocument = this._pdfDocument; + const { + type + } = state; + if (this.#state === null || this.#shouldDirtyMatch(state)) { + this._dirtyMatch = true; + } + this.#state = state; + if (type !== "highlightallchange") { + this.#updateUIState(FindState.PENDING); + } + this._firstPageCapability.promise.then(() => { + if (!this._pdfDocument || pdfDocument && this._pdfDocument !== pdfDocument) { + return; + } + this.#extractText(); + const findbarClosed = !this._highlightMatches; + const pendingTimeout = !!this._findTimeout; + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (!type) { + this._findTimeout = setTimeout(() => { + this.#nextMatch(); + this._findTimeout = null; + }, FIND_TIMEOUT); + } else if (this._dirtyMatch) { + this.#nextMatch(); + } else if (type === "again") { + this.#nextMatch(); + if (findbarClosed && this.#state.highlightAll) { + this.#updateAllPages(); + } + } else if (type === "highlightallchange") { + if (pendingTimeout) { + this.#nextMatch(); + } else { + this._highlightMatches = true; + } + this.#updateAllPages(); + } else { + this.#nextMatch(); + } + }); + } + scrollMatchIntoView({ + element = null, + selectedLeft = 0, + 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; + } + this._scrollMatches = false; + const spot = { + top: MATCH_SCROLL_OFFSET_TOP, + left: selectedLeft + 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.#visitedPagesCount = 0; + this.#state = null; + this._selected = { + pageIdx: -1, + matchIdx: -1 + }; + this._offset = { + pageIdx: null, + matchIdx: null, + wrapped: false + }; + this._extractTextPromises = []; + this._pageContents = []; + this._pageDiffs = []; + this._hasDiacritics = []; + this._matchesCountTotal = 0; + this._pagesToSearch = null; + this._pendingFindMatches = new Set(); + this._resumePageIdx = null; + this._dirtyMatch = false; + clearTimeout(this._findTimeout); + this._findTimeout = null; + this._firstPageCapability = new _pdfjsLib.PromiseCapability(); + } + get #query() { + const { + query + } = this.#state; + if (typeof query === "string") { + if (query !== this._rawQuery) { + this._rawQuery = query; + [this._normalizedQuery] = normalize(query); + } + return this._normalizedQuery; + } + return (query || []).filter(q => !!q).map(q => normalize(q)[0]); + } + #shouldDirtyMatch(state) { + const newQuery = state.query, + prevQuery = this.#state.query; + const newType = typeof newQuery, + prevType = typeof prevQuery; + if (newType !== prevType) { + return true; + } + if (newType === "string") { + if (newQuery !== prevQuery) { + return true; + } + } else if (JSON.stringify(newQuery) !== JSON.stringify(prevQuery)) { + return true; + } + switch (state.type) { + case "again": + const pageNumber = this._selected.pageIdx + 1; + const linkService = this._linkService; + return pageNumber >= 1 && pageNumber <= linkService.pagesCount && pageNumber !== linkService.page && !(this.onIsPageVisible?.(pageNumber) ?? true); + case "highlightallchange": + return false; + } + return true; + } + #isEntireWord(content, startIdx, length) { + let match = content.slice(0, startIdx).match(NOT_DIACRITIC_FROM_END_REG_EXP); + if (match) { + const first = content.charCodeAt(startIdx); + const limit = match[1].charCodeAt(0); + if ((0, _pdf_find_utils.getCharacterType)(first) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + match = content.slice(startIdx + length).match(NOT_DIACRITIC_FROM_START_REG_EXP); + if (match) { + const last = content.charCodeAt(startIdx + length - 1); + const limit = match[1].charCodeAt(0); + if ((0, _pdf_find_utils.getCharacterType)(last) === (0, _pdf_find_utils.getCharacterType)(limit)) { + return false; + } + } + return true; + } + #calculateRegExpMatch(query, entireWord, pageIndex, pageContent) { + const matches = this._pageMatches[pageIndex] = []; + const matchesLength = this._pageMatchesLength[pageIndex] = []; + if (!query) { + return; + } + const diffs = this._pageDiffs[pageIndex]; + let match; + while ((match = query.exec(pageContent)) !== null) { + if (entireWord && !this.#isEntireWord(pageContent, match.index, match[0].length)) { + continue; + } + const [matchPos, matchLen] = getOriginalIndex(diffs, match.index, match[0].length); + if (matchLen) { + matches.push(matchPos); + matchesLength.push(matchLen); + } + } + } + #convertToRegExpString(query, hasDiacritics) { + const { + matchDiacritics + } = this.#state; + let isUnicode = false; + query = query.replaceAll(SPECIAL_CHARS_REG_EXP, (match, p1, p2, p3, p4, p5) => { + if (p1) { + return `[ ]*\\${p1}[ ]*`; + } + if (p2) { + return `[ ]*${p2}[ ]*`; + } + if (p3) { + return "[ ]+"; + } + if (matchDiacritics) { + return p4 || p5; + } + if (p4) { + return DIACRITICS_EXCEPTION.has(p4.charCodeAt(0)) ? p4 : ""; + } + if (hasDiacritics) { + isUnicode = true; + return `${p5}\\p{M}*`; + } + return p5; + }); + const trailingSpaces = "[ ]*"; + if (query.endsWith(trailingSpaces)) { + query = query.slice(0, query.length - trailingSpaces.length); + } + if (matchDiacritics) { + if (hasDiacritics) { + DIACRITICS_EXCEPTION_STR ||= String.fromCharCode(...DIACRITICS_EXCEPTION); + isUnicode = true; + query = `${query}(?=[${DIACRITICS_EXCEPTION_STR}]|[^\\p{M}]|$)`; + } + } + return [isUnicode, query]; + } + #calculateMatch(pageIndex) { + let query = this.#query; + if (query.length === 0) { + return; + } + const { + caseSensitive, + entireWord + } = this.#state; + const pageContent = this._pageContents[pageIndex]; + const hasDiacritics = this._hasDiacritics[pageIndex]; + let isUnicode = false; + if (typeof query === "string") { + [isUnicode, query] = this.#convertToRegExpString(query, hasDiacritics); + } else { + query = query.sort().reverse().map(q => { + const [isUnicodePart, queryPart] = this.#convertToRegExpString(q, hasDiacritics); + isUnicode ||= isUnicodePart; + return `(${queryPart})`; + }).join("|"); + } + const flags = `g${isUnicode ? "u" : ""}${caseSensitive ? "" : "i"}`; + query = query ? new RegExp(query, flags) : null; + this.#calculateRegExpMatch(query, entireWord, pageIndex, pageContent); + if (this.#state.highlightAll) { + this.#updatePage(pageIndex); + } + if (this._resumePageIdx === pageIndex) { + this._resumePageIdx = null; + this.#nextPageMatch(); + } + const pageMatchesCount = this._pageMatches[pageIndex].length; + this._matchesCountTotal += pageMatchesCount; + if (this.#updateMatchesCountOnProgress) { + if (pageMatchesCount > 0) { + this.#updateUIResultsCount(); + } + } else if (++this.#visitedPagesCount === this._linkService.pagesCount) { + this.#updateUIResultsCount(); + } + } + #extractText() { + if (this._extractTextPromises.length > 0) { + return; + } + let promise = Promise.resolve(); + const textOptions = { + disableNormalization: true + }; + for (let i = 0, ii = this._linkService.pagesCount; i < ii; i++) { + const extractTextCapability = new _pdfjsLib.PromiseCapability(); + this._extractTextPromises[i] = extractTextCapability.promise; + promise = promise.then(() => { + return this._pdfDocument.getPage(i + 1).then(pdfPage => { + return pdfPage.getTextContent(textOptions); + }).then(textContent => { + const strBuf = []; + for (const textItem of textContent.items) { + strBuf.push(textItem.str); + if (textItem.hasEOL) { + strBuf.push("\n"); + } + } + [this._pageContents[i], this._pageDiffs[i], this._hasDiacritics[i]] = normalize(strBuf.join("")); + extractTextCapability.resolve(); + }, reason => { + console.error(`Unable to get text content for page ${i + 1}`, reason); + this._pageContents[i] = ""; + this._pageDiffs[i] = null; + this._hasDiacritics[i] = false; + extractTextCapability.resolve(); + }); + }); + } + } + #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.#visitedPagesCount = 0; + this._matchesCountTotal = 0; + this.#updateAllPages(); + for (let i = 0; i < numPages; i++) { + if (this._pendingFindMatches.has(i)) { + continue; + } + this._pendingFindMatches.add(i); + this._extractTextPromises[i].then(() => { + this._pendingFindMatches.delete(i); + this.#calculateMatch(i); + }); + } + } + const query = this.#query; + if (query.length === 0) { + this.#updateUIState(FindState.FOUND); + 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; + } + 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; + } + if (this._findTimeout) { + clearTimeout(this._findTimeout); + this._findTimeout = null; + } + if (this._resumePageIdx) { + this._resumePageIdx = null; + this._dirtyMatch = true; + } + 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 = false) { + if (!this.#updateMatchesCountOnProgress && (this.#visitedPagesCount !== this._linkService.pagesCount || state === FindState.PENDING)) { + return; + } + this._eventBus.dispatch("updatefindcontrolstate", { + source: this, + state, + previous, + matchesCount: this.#requestMatchesCount(), + rawQuery: this.#state?.query ?? null + }); + } +} +exports.PDFFindController = PDFFindController; + +/***/ }), +/* 19 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.CharacterType = void 0; +exports.getCharacterType = getCharacterType; +exports.getNormalizeWithNFKC = getNormalizeWithNFKC; +const CharacterType = { + SPACE: 0, + ALPHA_LETTER: 1, + PUNCT: 2, + HAN_LETTER: 3, + KATAKANA_LETTER: 4, + HIRAGANA_LETTER: 5, + HALFWIDTH_KATAKANA_LETTER: 6, + THAI_LETTER: 7 +}; +exports.CharacterType = CharacterType; +function isAlphabeticalScript(charCode) { + return charCode < 0x2e80; +} +function isAscii(charCode) { + return (charCode & 0xff80) === 0; +} +function isAsciiAlpha(charCode) { + return charCode >= 0x61 && charCode <= 0x7a || charCode >= 0x41 && charCode <= 0x5a; +} +function isAsciiDigit(charCode) { + return charCode >= 0x30 && charCode <= 0x39; +} +function isAsciiSpace(charCode) { + return charCode === 0x20 || charCode === 0x09 || charCode === 0x0d || charCode === 0x0a; +} +function isHan(charCode) { + return charCode >= 0x3400 && charCode <= 0x9fff || charCode >= 0xf900 && charCode <= 0xfaff; +} +function isKatakana(charCode) { + return charCode >= 0x30a0 && charCode <= 0x30ff; +} +function isHiragana(charCode) { + return charCode >= 0x3040 && charCode <= 0x309f; +} +function isHalfwidthKatakana(charCode) { + return charCode >= 0xff60 && charCode <= 0xff9f; +} +function isThai(charCode) { + return (charCode & 0xff80) === 0x0e00; +} +function getCharacterType(charCode) { + if (isAlphabeticalScript(charCode)) { + if (isAscii(charCode)) { + if (isAsciiSpace(charCode)) { + return CharacterType.SPACE; + } 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) { + return CharacterType.SPACE; + } + return CharacterType.ALPHA_LETTER; + } + if (isHan(charCode)) { + return CharacterType.HAN_LETTER; + } else if (isKatakana(charCode)) { + return CharacterType.KATAKANA_LETTER; + } else if (isHiragana(charCode)) { + return CharacterType.HIRAGANA_LETTER; + } else if (isHalfwidthKatakana(charCode)) { + return CharacterType.HALFWIDTH_KATAKANA_LETTER; + } + return CharacterType.ALPHA_LETTER; +} +let NormalizeWithNFKC; +function getNormalizeWithNFKC() { + NormalizeWithNFKC ||= ` ¨ª¯²-µ¸-º¼-¾IJ-ijĿ-ŀʼnſDŽ-njDZ-dzʰ-ʸ˘-˝ˠ-ˤʹͺ;΄-΅·ϐ-ϖϰ-ϲϴ-ϵϹևٵ-ٸक़-य़ড়-ঢ়য়ਲ਼ਸ਼ਖ਼-ਜ਼ਫ਼ଡ଼-ଢ଼ำຳໜ-ໝ༌གྷཌྷདྷབྷཛྷཀྵჼᴬ-ᴮᴰ-ᴺᴼ-ᵍᵏ-ᵪᵸᶛ-ᶿẚ-ẛάέήίόύώΆ᾽-῁ΈΉ῍-῏ΐΊ῝-῟ΰΎ῭-`ΌΏ´-῾ - ‑‗․-… ″-‴‶-‷‼‾⁇-⁉⁗ ⁰-ⁱ⁴-₎ₐ-ₜ₨℀-℃℅-ℇ℉-ℓℕ-№ℙ-ℝ℠-™ℤΩℨK-ℭℯ-ℱℳ-ℹ℻-⅀ⅅ-ⅉ⅐-ⅿ↉∬-∭∯-∰〈-〉①-⓪⨌⩴-⩶⫝̸ⱼ-ⱽⵯ⺟⻳⼀-⿕ 〶〸-〺゛-゜ゟヿㄱ-ㆎ㆒-㆟㈀-㈞㈠-㉇㉐-㉾㊀-㏿ꚜ-ꚝꝰꟲ-ꟴꟸ-ꟹꭜ-ꭟꭩ豈-嗀塚晴凞-羽蘒諸逸-都飯-舘並-龎ff-stﬓ-ﬗיִײַ-זּטּ-לּמּנּ-סּףּ-פּצּ-ﮱﯓ-ﴽﵐ-ﶏﶒ-ﷇﷰ-﷼︐-︙︰-﹄﹇-﹒﹔-﹦﹨-﹫ﹰ-ﹲﹴﹶ-ﻼ!-하-ᅦᅧ-ᅬᅭ-ᅲᅳ-ᅵ¢-₩`; + return NormalizeWithNFKC; +} + +/***/ }), +/* 20 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFHistory = void 0; +exports.isDestArraysEqual = isDestArraysEqual; +exports.isDestHashesEqual = isDestHashesEqual; +var _ui_utils = __webpack_require__(3); +var _event_utils = __webpack_require__(6); +const HASH_CHANGE_TIMEOUT = 1000; +const POSITION_UPDATED_THRESHOLD = 50; +const UPDATE_VIEWAREA_TIMEOUT = 1000; +function getCurrentHash() { + return document.location.hash; +} +class PDFHistory { + constructor({ + linkService, + eventBus + }) { + this.linkService = linkService; + this.eventBus = eventBus; + this._initialized = false; + this._fingerprint = ""; + this.reset(); + this._boundEvents = null; + this.eventBus._on("pagesinit", () => { + this._isPagesLoaded = false; + this.eventBus._on("pagesloaded", evt => { + this._isPagesLoaded = !!evt.pagesCount; + }, { + once: true + }); + }); + } + initialize({ + fingerprint, + resetHistory = false, + updateUrl = false + }) { + if (!fingerprint || typeof fingerprint !== "string") { + console.error('PDFHistory.initialize: The "fingerprint" must be a non-empty string.'); + return; + } + if (this._initialized) { + this.reset(); + } + const reInitialized = this._fingerprint !== "" && this._fingerprint !== fingerprint; + this._fingerprint = fingerprint; + this._updateUrl = updateUrl === true; + this._initialized = true; + this._bindEvents(); + 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 (!this._isValidState(state, true) || resetHistory) { + const { + hash, + page, + rotation + } = this._parseCurrentHash(true); + if (!hash || reInitialized || resetHistory) { + this._pushOrReplaceState(null, true); + return; + } + this._pushOrReplaceState({ + hash, + page, + rotation + }, true); + 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; + } + } + const hash = namedDest || JSON.stringify(explicitDest); + if (!hash) { + return; + } + let forceReplace = false; + 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, + page: pageNumber, + rotation: this.linkService.rotation + }, forceReplace); + if (!this._popStateInProgress) { + this._popStateInProgress = true; + Promise.resolve().then(() => { + this._popStateInProgress = false; + }); + } + } + pushPage(pageNumber) { + if (!this._initialized) { + return; + } + 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; + } + const [perfEntry] = performance.getEntriesByType("navigation"); + 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.get("nameddest") || ""; + let page = params.get("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: 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, _event_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") { + return false; + } + if (destHash === pushHash) { + return true; + } + const nameddest = (0, _ui_utils.parseQueryString)(destHash).get("nameddest"); + if (nameddest === pushHash) { + return true; + } + return false; +} +function isDestArraysEqual(firstDest, secondDest) { + function isEntryEqual(first, second) { + if (typeof first !== typeof second) { + return false; + } + if (Array.isArray(first) || Array.isArray(second)) { + return false; + } + if (first !== null && typeof first === "object" && second !== null) { + if (Object.keys(first).length !== Object.keys(second).length) { + return false; + } + for (const key in first) { + if (!isEntryEqual(first[key], second[key])) { + return false; + } + } + return true; + } + return first === second || Number.isNaN(first) && Number.isNaN(second); + } + if (!(Array.isArray(firstDest) && Array.isArray(secondDest))) { + return false; + } + if (firstDest.length !== secondDest.length) { + return false; + } + for (let i = 0, ii = firstDest.length; i < ii; i++) { + if (!isEntryEqual(firstDest[i], secondDest[i])) { + return false; + } + } + return true; +} + +/***/ }), +/* 21 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFLayerViewer = void 0; +var _base_tree_viewer = __webpack_require__(13); +class PDFLayerViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.l10n = options.l10n; + this.eventBus._on("optionalcontentconfigchanged", evt => { + this.#updateLayers(evt.promise); + }); + this.eventBus._on("resetlayers", () => { + this.#updateLayers(); + }); + this.eventBus._on("togglelayerstree", this._toggleAllTreeItems.bind(this)); + } + reset() { + super.reset(); + this._optionalContentConfig = null; + this._optionalContentHash = null; + } + _dispatchEvent(layersCount) { + this.eventBus.dispatch("layersloaded", { + source: this, + layersCount + }); + } + _bindLink(element, { + groupId, + input + }) { + const setVisibility = () => { + this._optionalContentConfig.setVisibility(groupId, input.checked); + this._optionalContentHash = this._optionalContentConfig.getHash(); + 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; + } + this._optionalContentHash = optionalContentConfig.getHash(); + 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.append(element); + if (typeof groupId === "object") { + hasAnyNesting = true; + this._addToggleButton(div, groupId); + this._setNestedName(element, groupId); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(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.checked = group.visible; + const label = document.createElement("label"); + label.textContent = this._normalizeTextContent(group.name); + label.append(input); + element.append(label); + layersCount++; + } + levelData.parent.append(div); + } + } + this._finishRendering(fragment, layersCount, hasAnyNesting); + } + async #updateLayers(promise = null) { + if (!this._optionalContentConfig) { + return; + } + const pdfDocument = this._pdfDocument; + const optionalContentConfig = await (promise || pdfDocument.getOptionalContentConfig()); + if (pdfDocument !== this._pdfDocument) { + return; + } + if (promise) { + if (optionalContentConfig.getHash() === this._optionalContentHash) { + return; + } + } else { + this.eventBus.dispatch("optionalcontentconfig", { + source: this, + promise: Promise.resolve(optionalContentConfig) + }); + } + this.render({ + optionalContentConfig, + pdfDocument: this._pdfDocument + }); + } +} +exports.PDFLayerViewer = PDFLayerViewer; + +/***/ }), +/* 22 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFOutlineViewer = void 0; +var _base_tree_viewer = __webpack_require__(13); +var _pdfjsLib = __webpack_require__(4); +var _ui_utils = __webpack_require__(3); +class PDFOutlineViewer extends _base_tree_viewer.BaseTreeViewer { + constructor(options) { + super(options); + this.linkService = options.linkService; + this.downloadManager = options.downloadManager; + this.eventBus._on("toggleoutlinetree", this._toggleAllTreeItems.bind(this)); + this.eventBus._on("currentoutlineitem", this._currentOutlineItem.bind(this)); + this.eventBus._on("pagechanging", evt => { + this._currentPageNumber = evt.pageNumber; + }); + 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; + }); + } + reset() { + super.reset(); + this._outline = null; + this._pageNumberToDestHashCapability = null; + this._currentPageNumber = 1; + this._isPagesLoaded = null; + if (this._currentOutlineItemCapability && !this._currentOutlineItemCapability.settled) { + this._currentOutlineItemCapability.resolve(false); + } + this._currentOutlineItemCapability = null; + } + _dispatchEvent(outlineCount) { + this._currentOutlineItemCapability = new _pdfjsLib.PromiseCapability(); + if (outlineCount === 0 || this._pdfDocument?.loadingParams.disableAutoFetch) { + this._currentOutlineItemCapability.resolve(false); + } else if (this._isPagesLoaded !== null) { + this._currentOutlineItemCapability.resolve(this._isPagesLoaded); + } + this.eventBus.dispatch("outlineloaded", { + source: this, + outlineCount, + currentOutlineItemPromise: this._currentOutlineItemCapability.promise + }); + } + _bindLink(element, { + url, + newWindow, + action, + attachment, + dest, + setOCGState + }) { + const { + linkService + } = this; + if (url) { + linkService.addLinkAttributes(element, url, newWindow); + return; + } + if (action) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeNamedAction(action); + return false; + }; + return; + } + if (attachment) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + this.downloadManager.openOrDownloadData(element, attachment.content, attachment.filename); + return false; + }; + return; + } + if (setOCGState) { + element.href = linkService.getAnchorUrl(""); + element.onclick = () => { + linkService.executeSetOCGState(setOCGState); + return false; + }; + return; + } + element.href = linkService.getDestinationHash(dest); + element.onclick = evt => { + this._updateCurrentTreeItem(evt.target.parentNode); + if (dest) { + linkService.goToDestination(dest); + } + return false; + }; + } + _setStyles(element, { + bold, + italic + }) { + if (bold) { + element.style.fontWeight = "bold"; + } + if (italic) { + element.style.fontStyle = "italic"; + } + } + _addToggleButton(div, { + count, + items + }) { + let hidden = false; + if (count < 0) { + let totalCount = items.length; + if (totalCount > 0) { + const queue = [...items]; + while (queue.length > 0) { + const { + count: nestedCount, + items: nestedItems + } = queue.shift(); + if (nestedCount > 0 && nestedItems.length > 0) { + totalCount += nestedItems.length; + queue.push(...nestedItems); + } + } + } + if (Math.abs(count) === totalCount) { + hidden = true; + } + } + super._addToggleButton(div, hidden); + } + _toggleAllTreeItems() { + if (!this._outline) { + return; + } + 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.append(element); + if (item.items.length > 0) { + hasAnyNesting = true; + this._addToggleButton(div, item); + const itemsDiv = document.createElement("div"); + itemsDiv.className = "treeItems"; + div.append(itemsDiv); + queue.push({ + parent: itemsDiv, + items: item.items + }); + } + levelData.parent.append(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; + } + const linkElement = this.container.querySelector(`a[href="${destHash}"]`); + if (!linkElement) { + continue; + } + this._scrollToCurrentTreeItem(linkElement.parentNode); + break; + } + } + async _getPageNumberToDestHash(pdfDocument) { + if (this._pageNumberToDestHashCapability) { + return this._pageNumberToDestHashCapability.promise; + } + this._pageNumberToDestHashCapability = new _pdfjsLib.PromiseCapability(); + const pageNumberToDestHash = new Map(), + pageNumberNesting = new Map(); + const queue = [{ + nesting: 0, + items: this._outline + }]; + while (queue.length > 0) { + const levelData = queue.shift(), + currentNesting = levelData.nesting; + for (const { + dest, + items + } of levelData.items) { + let explicitDest, pageNumber; + if (typeof dest === "string") { + explicitDest = await pdfDocument.getDestination(dest); + if (pdfDocument !== this._pdfDocument) { + return null; + } + } else { + explicitDest = dest; + } + if (Array.isArray(explicitDest)) { + const [destRef] = explicitDest; + if (typeof destRef === "object" && destRef !== null) { + 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 {} + } + } else if (Number.isInteger(destRef)) { + pageNumber = destRef + 1; + } + 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 + }); + } + } + } + this._pageNumberToDestHashCapability.resolve(pageNumberToDestHash.size > 0 ? pageNumberToDestHash : null); + return this._pageNumberToDestHashCapability.promise; + } +} +exports.PDFOutlineViewer = PDFOutlineViewer; + +/***/ }), +/* 23 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFPresentationMode = void 0; +var _ui_utils = __webpack_require__(3); +var _pdfjsLib = __webpack_require__(4); +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 { + #state = _ui_utils.PresentationModeState.UNKNOWN; + #args = null; + constructor({ + container, + pdfViewer, + eventBus + }) { + this.container = container; + this.pdfViewer = pdfViewer; + this.eventBus = eventBus; + this.contextMenuOpen = false; + this.mouseScrollTimeStamp = 0; + this.mouseScrollDelta = 0; + this.touchSwipeState = null; + } + async request() { + const { + container, + pdfViewer + } = this; + if (this.active || !pdfViewer.pagesCount || !container.requestFullscreen) { + return false; + } + this.#addFullscreenChangeListeners(); + this.#notifyStateChange(_ui_utils.PresentationModeState.CHANGING); + const promise = container.requestFullscreen(); + this.#args = { + pageNumber: pdfViewer.currentPageNumber, + scaleValue: pdfViewer.currentScaleValue, + scrollMode: pdfViewer.scrollMode, + spreadMode: null, + annotationEditorMode: null + }; + if (pdfViewer.spreadMode !== _ui_utils.SpreadMode.NONE && !(pdfViewer.pageViewsReady && pdfViewer.hasEqualPageSizes)) { + console.warn("Ignoring Spread modes when entering PresentationMode, " + "since the document may contain varying page sizes."); + this.#args.spreadMode = pdfViewer.spreadMode; + } + if (pdfViewer.annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + this.#args.annotationEditorMode = pdfViewer.annotationEditorMode; + } + try { + await promise; + pdfViewer.focus(); + return true; + } catch { + this.#removeFullscreenChangeListeners(); + this.#notifyStateChange(_ui_utils.PresentationModeState.NORMAL); + } + return false; + } + get active() { + return this.#state === _ui_utils.PresentationModeState.CHANGING || this.#state === _ui_utils.PresentationModeState.FULLSCREEN; + } + #mouseWheel(evt) { + if (!this.active) { + return; + } + evt.preventDefault(); + const delta = (0, _ui_utils.normalizeWheelEventDelta)(evt); + const currentTime = Date.now(); + const storedTime = this.mouseScrollTimeStamp; + if (currentTime > storedTime && currentTime - storedTime < MOUSE_SCROLL_COOLDOWN_TIME) { + return; + } + if (this.mouseScrollDelta > 0 && delta < 0 || this.mouseScrollDelta < 0 && delta > 0) { + this.#resetMouseScrollState(); + } + this.mouseScrollDelta += delta; + if (Math.abs(this.mouseScrollDelta) >= PAGE_SWITCH_THRESHOLD) { + const totalDelta = this.mouseScrollDelta; + this.#resetMouseScrollState(); + const success = totalDelta > 0 ? this.pdfViewer.previousPage() : this.pdfViewer.nextPage(); + if (success) { + this.mouseScrollTimeStamp = currentTime; + } + } + } + #notifyStateChange(state) { + this.#state = state; + this.eventBus.dispatch("presentationmodechanged", { + source: this, + state + }); + } + #enter() { + this.#notifyStateChange(_ui_utils.PresentationModeState.FULLSCREEN); + this.container.classList.add(ACTIVE_SELECTOR); + setTimeout(() => { + this.pdfViewer.scrollMode = _ui_utils.ScrollMode.PAGE; + if (this.#args.spreadMode !== null) { + this.pdfViewer.spreadMode = _ui_utils.SpreadMode.NONE; + } + this.pdfViewer.currentPageNumber = this.#args.pageNumber; + this.pdfViewer.currentScaleValue = "page-fit"; + if (this.#args.annotationEditorMode !== null) { + this.pdfViewer.annotationEditorMode = { + mode: _pdfjsLib.AnnotationEditorType.NONE + }; + } + }, 0); + this.#addWindowListeners(); + this.#showControls(); + this.contextMenuOpen = false; + window.getSelection().removeAllRanges(); + } + #exit() { + const pageNumber = this.pdfViewer.currentPageNumber; + this.container.classList.remove(ACTIVE_SELECTOR); + setTimeout(() => { + this.#removeFullscreenChangeListeners(); + this.#notifyStateChange(_ui_utils.PresentationModeState.NORMAL); + this.pdfViewer.scrollMode = this.#args.scrollMode; + if (this.#args.spreadMode !== null) { + this.pdfViewer.spreadMode = this.#args.spreadMode; + } + this.pdfViewer.currentScaleValue = this.#args.scaleValue; + this.pdfViewer.currentPageNumber = pageNumber; + if (this.#args.annotationEditorMode !== null) { + this.pdfViewer.annotationEditorMode = { + mode: this.#args.annotationEditorMode + }; + } + 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) { + return; + } + if (evt.target.href && evt.target.parentNode?.hasAttribute("data-internal-link")) { + return; + } + evt.preventDefault(); + if (evt.shiftKey) { + this.pdfViewer.previousPage(); + } else { + this.pdfViewer.nextPage(); + } + } + #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; + } + 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; + } + 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; + } + 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 (document.fullscreenElement) { + this.#enter(); + } else { + this.#exit(); + } + } + #addFullscreenChangeListeners() { + this.fullscreenChangeBind = this.#fullscreenChange.bind(this); + window.addEventListener("fullscreenchange", this.fullscreenChangeBind); + } + #removeFullscreenChangeListeners() { + window.removeEventListener("fullscreenchange", this.fullscreenChangeBind); + delete this.fullscreenChangeBind; + } +} +exports.PDFPresentationMode = PDFPresentationMode; + +/***/ }), +/* 24 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFRenderingQueue = void 0; +var _pdfjsLib = __webpack_require__(4); +var _ui_utils = __webpack_require__(3); +const CLEANUP_TIMEOUT = 30000; +class PDFRenderingQueue { + constructor() { + this.pdfViewer = null; + this.pdfThumbnailViewer = null; + this.onIdle = null; + this.highestPriorityPage = null; + this.idleTimeout = null; + this.printing = false; + this.isThumbnailViewEnabled = false; + Object.defineProperty(this, "hasViewer", { + value: () => !!this.pdfViewer + }); + } + setViewer(pdfViewer) { + this.pdfViewer = pdfViewer; + } + 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.isThumbnailViewEnabled && this.pdfThumbnailViewer?.forceRendering()) { + return; + } + if (this.printing) { + return; + } + if (this.onIdle) { + this.idleTimeout = setTimeout(this.onIdle.bind(this), CLEANUP_TIMEOUT); + } + } + getHighestPriority(visible, views, scrolledDown, preRenderExtra = false) { + const visibleViews = visible.views, + numVisible = visibleViews.length; + if (numVisible === 0) { + return null; + } + for (let i = 0; i < numVisible; i++) { + const view = visibleViews[i].view; + if (!this.isViewFinished(view)) { + return view; + } + } + const firstId = visible.first.id, + lastId = visible.last.id; + if (lastId - firstId + 1 > numVisible) { + const visibleIds = visible.ids; + for (let i = 1, ii = lastId - firstId; i < ii; i++) { + const holeId = scrolledDown ? firstId + i : lastId - i; + if (visibleIds.has(holeId)) { + continue; + } + const holeView = views[holeId - 1]; + if (!this.isViewFinished(holeView)) { + return holeView; + } + } + } + let preRenderIndex = scrolledDown ? lastId : firstId - 2; + let preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + if (preRenderExtra) { + preRenderIndex += scrolledDown ? 1 : -1; + preRenderView = views[preRenderIndex]; + if (preRenderView && !this.isViewFinished(preRenderView)) { + return preRenderView; + } + } + return null; + } + isViewFinished(view) { + return view.renderingState === _ui_utils.RenderingStates.FINISHED; + } + renderView(view) { + switch (view.renderingState) { + case _ui_utils.RenderingStates.FINISHED: + return false; + case _ui_utils.RenderingStates.PAUSED: + this.highestPriorityPage = view.renderingId; + view.resume(); + break; + case _ui_utils.RenderingStates.RUNNING: + this.highestPriorityPage = view.renderingId; + break; + case _ui_utils.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; + +/***/ }), +/* 25 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFScriptingManager = void 0; +var _ui_utils = __webpack_require__(3); +var _pdfjsLib = __webpack_require__(4); +class PDFScriptingManager { + #closeCapability = null; + #destroyCapability = null; + #docProperties = null; + #eventBus = null; + #externalServices = null; + #pdfDocument = null; + #pdfViewer = null; + #ready = false; + #sandboxBundleSrc = null; + #scripting = null; + #willPrintCapability = null; + constructor({ + eventBus, + sandboxBundleSrc = null, + externalServices = null, + docProperties = null + }) { + this.#eventBus = eventBus; + this.#sandboxBundleSrc = sandboxBundleSrc; + this.#externalServices = externalServices; + this.#docProperties = docProperties; + } + 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; + } + try { + this.#scripting = this.#initScripting(); + } catch (error) { + console.error(`setDocument: "${error.message}".`); + await this.#destroyScripting(); + return; + } + this._internalEvents.set("updatefromsandbox", event => { + if (event?.source === window) { + 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 () => { + await this.#dispatchPageClose(this.#pdfViewer.currentPageNumber); + await this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillClose" + }); + this.#closeCapability?.resolve(); + }); + for (const [name, listener] of this._internalEvents) { + this.#eventBus._on(name, listener); + } + try { + const docProperties = await this.#docProperties(pdfDocument); + 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(`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() { + return this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "WillSave" + }); + } + async dispatchDidSave() { + return this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidSave" + }); + } + async dispatchWillPrint() { + if (!this.#scripting) { + return; + } + await this.#willPrintCapability?.promise; + this.#willPrintCapability = new _pdfjsLib.PromiseCapability(); + try { + await this.#scripting.dispatchEventInSandbox({ + id: "doc", + name: "WillPrint" + }); + } catch (ex) { + this.#willPrintCapability.resolve(); + this.#willPrintCapability = null; + throw ex; + } + await this.#willPrintCapability.promise; + } + async dispatchDidPrint() { + return this.#scripting?.dispatchEventInSandbox({ + id: "doc", + name: "DidPrint" + }); + } + get destroyPromise() { + return this.#destroyCapability?.promise || null; + } + get ready() { + return this.#ready; + } + get _internalEvents() { + return (0, _pdfjsLib.shadow)(this, "_internalEvents", 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 pdfViewer = this.#pdfViewer; + const isInPresentationMode = pdfViewer.isInPresentationMode || 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": + if (!isInPresentationMode) { + const modes = (0, _ui_utils.apiPageLayoutToViewerModes)(value); + pdfViewer.spreadMode = modes.spreadMode; + } + break; + case "page-num": + pdfViewer.currentPageNumber = value + 1; + break; + case "print": + await pdfViewer.pagesPromise; + this.#eventBus.dispatch("print", { + source: this + }); + break; + case "println": + console.log(value); + break; + case "zoom": + if (!isInPresentationMode) { + pdfViewer.currentScaleValue = value; + } + break; + case "SaveAs": + this.#eventBus.dispatch("download", { + source: this + }); + break; + case "FirstPage": + pdfViewer.currentPageNumber = 1; + break; + case "LastPage": + pdfViewer.currentPageNumber = pdfViewer.pagesCount; + break; + case "NextPage": + pdfViewer.nextPage(); + break; + case "PrevPage": + pdfViewer.previousPage(); + break; + case "ZoomViewIn": + if (!isInPresentationMode) { + pdfViewer.increaseScale(); + } + break; + case "ZoomViewOut": + if (!isInPresentationMode) { + pdfViewer.decreaseScale(); + } + break; + case "WillPrintFinished": + this.#willPrintCapability?.resolve(); + this.#willPrintCapability = null; + break; + } + return; + } + if (isInPresentationMode && detail.focus) { + return; + } + delete detail.id; + delete detail.siblings; + const ids = siblings ? [id, ...siblings] : [id]; + for (const elementId of ids) { + const element = document.querySelector(`[data-element-id="${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 = new _pdfjsLib.PromiseCapability(); + } + if (!this.#closeCapability) { + return; + } + const pageView = this.#pdfViewer.getPageView(pageNumber - 1); + if (pageView?.renderingState !== _ui_utils.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.#closeCapability) { + 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 + }); + } + #initScripting() { + this.#destroyCapability = new _pdfjsLib.PromiseCapability(); + if (this.#scripting) { + throw new Error("#initScripting: Scripting already exists."); + } + return this.#externalServices.createScripting({ + sandboxBundleSrc: this.#sandboxBundleSrc + }); + } + 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(() => {}); + this.#closeCapability = null; + } + this.#pdfDocument = null; + try { + await this.#scripting.destroySandbox(); + } catch {} + this.#willPrintCapability?.reject(new Error("Scripting destroyed.")); + this.#willPrintCapability = null; + for (const [name, listener] of this._internalEvents) { + this.#eventBus._off(name, listener); + } + this._internalEvents.clear(); + this._pageOpenPending.clear(); + this._visitedPages.clear(); + this.#scripting = null; + this.#ready = false; + this.#destroyCapability?.resolve(); + } +} +exports.PDFScriptingManager = PDFScriptingManager; + +/***/ }), +/* 26 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFSidebar = void 0; +var _ui_utils = __webpack_require__(3); +const SIDEBAR_WIDTH_VAR = "--sidebar-width"; +const SIDEBAR_MIN_WIDTH = 200; +const SIDEBAR_RESIZING_CLASS = "sidebarResizing"; +const UI_NOTIFICATION_CLASS = "pdfSidebarNotification"; +class PDFSidebar { + #isRTL = false; + #mouseMoveBound = this.#mouseMove.bind(this); + #mouseUpBound = this.#mouseUp.bind(this); + #outerContainerWidth = null; + #width = null; + constructor({ + elements, + eventBus, + l10n + }) { + this.isOpen = false; + this.active = _ui_utils.SidebarView.THUMBS; + this.isInitialViewSet = false; + this.isInitialEventDispatched = false; + this.onToggled = null; + this.onUpdateThumbnails = null; + this.outerContainer = elements.outerContainer; + this.sidebarContainer = elements.sidebarContainer; + this.toggleButton = elements.toggleButton; + this.resizer = elements.resizer; + 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; + l10n.getDirection().then(dir => { + this.#isRTL = dir === "rtl"; + }); + this.#addEventListeners(); + } + reset() { + this.isInitialViewSet = false; + this.isInitialEventDispatched = 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; + } + 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; + } + this.switchView(view, true); + if (!this.isInitialEventDispatched) { + this.#dispatchEvent(); + } + } + switchView(view, forceOpen = false) { + const isViewChanged = view !== this.active; + let forceRendering = false; + switch (view) { + case _ui_utils.SidebarView.NONE: + if (this.isOpen) { + this.close(); + } + return; + case _ui_utils.SidebarView.THUMBS: + if (this.isOpen && isViewChanged) { + forceRendering = true; + } + break; + case _ui_utils.SidebarView.OUTLINE: + if (this.outlineButton.disabled) { + return; + } + break; + case _ui_utils.SidebarView.ATTACHMENTS: + if (this.attachmentsButton.disabled) { + return; + } + break; + case _ui_utils.SidebarView.LAYERS: + if (this.layersButton.disabled) { + return; + } + break; + default: + console.error(`PDFSidebar.switchView: "${view}" is not a valid view.`); + return; + } + this.active = view; + (0, _ui_utils.toggleCheckedBtn)(this.thumbnailButton, view === _ui_utils.SidebarView.THUMBS, this.thumbnailView); + (0, _ui_utils.toggleCheckedBtn)(this.outlineButton, view === _ui_utils.SidebarView.OUTLINE, this.outlineView); + (0, _ui_utils.toggleCheckedBtn)(this.attachmentsButton, view === _ui_utils.SidebarView.ATTACHMENTS, this.attachmentsView); + (0, _ui_utils.toggleCheckedBtn)(this.layersButton, view === _ui_utils.SidebarView.LAYERS, this.layersView); + this._outlineOptionsContainer.classList.toggle("hidden", view !== _ui_utils.SidebarView.OUTLINE); + if (forceOpen && !this.isOpen) { + this.open(); + return; + } + if (forceRendering) { + this.onUpdateThumbnails(); + this.onToggled(); + } + if (isViewChanged) { + this.#dispatchEvent(); + } + } + open() { + if (this.isOpen) { + return; + } + this.isOpen = true; + (0, _ui_utils.toggleExpandedBtn)(this.toggleButton, true); + this.outerContainer.classList.add("sidebarMoving", "sidebarOpen"); + if (this.active === _ui_utils.SidebarView.THUMBS) { + this.onUpdateThumbnails(); + } + this.onToggled(); + this.#dispatchEvent(); + this.#hideUINotification(); + } + close() { + if (!this.isOpen) { + return; + } + this.isOpen = false; + (0, _ui_utils.toggleExpandedBtn)(this.toggleButton, false); + this.outerContainer.classList.add("sidebarMoving"); + this.outerContainer.classList.remove("sidebarOpen"); + this.onToggled(); + this.#dispatchEvent(); + } + toggle() { + if (this.isOpen) { + this.close(); + } else { + this.open(); + } + } + #dispatchEvent() { + if (this.isInitialViewSet) { + this.isInitialEventDispatched ||= true; + } + this.eventBus.dispatch("sidebarviewchanged", { + source: this, + view: this.visibleView + }); + } + #showUINotification() { + this.toggleButton.setAttribute("data-l10n-id", "toggle_sidebar_notification2"); + this.l10n.translate(this.toggleButton); + 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.toggleButton.setAttribute("data-l10n-id", "toggle_sidebar"); + this.l10n.translate(this.toggleButton); + } + } + #addEventListeners() { + this.sidebarContainer.addEventListener("transitionend", evt => { + if (evt.target === this.sidebarContainer) { + 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.visibleView === _ui_utils.SidebarView.THUMBS) { + this.onUpdateThumbnails(); + } + }); + this.resizer.addEventListener("mousedown", evt => { + if (evt.button !== 0) { + return; + } + this.outerContainer.classList.add(SIDEBAR_RESIZING_CLASS); + window.addEventListener("mousemove", this.#mouseMoveBound); + window.addEventListener("mouseup", this.#mouseUpBound); + }); + this.eventBus._on("resize", evt => { + if (evt.source !== window) { + return; + } + this.#outerContainerWidth = null; + if (!this.#width) { + return; + } + if (!this.isOpen) { + 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 + }); + } + }); + }); + } + get outerContainerWidth() { + return this.#outerContainerWidth ||= this.outerContainer.clientWidth; + } + #updateWidth(width = 0) { + const 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; + _ui_utils.docStyle.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 + }); + window.removeEventListener("mousemove", this.#mouseMoveBound); + window.removeEventListener("mouseup", this.#mouseUpBound); + } +} +exports.PDFSidebar = PDFSidebar; + +/***/ }), +/* 27 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFThumbnailViewer = void 0; +var _ui_utils = __webpack_require__(3); +var _pdf_thumbnail_view = __webpack_require__(28); +const THUMBNAIL_SCROLL_MARGIN = -19; +const THUMBNAIL_SELECTED_CLASS = "selected"; +class PDFThumbnailViewer { + constructor({ + container, + eventBus, + linkService, + renderingQueue, + l10n, + pageColors + }) { + this.container = container; + this.eventBus = eventBus; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.l10n = l10n; + this.pageColors = pageColors || null; + this.scroll = (0, _ui_utils.watchScroll)(this.container, this._scrollUpdated.bind(this)); + this._resetView(); + } + _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; + } + const thumbnailView = this._thumbnails[pageNumber - 1]; + if (!thumbnailView) { + console.error('scrollThumbnailIntoView: Invalid "pageNumber" parameter.'); + return; + } + 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); + } + const { + first, + last, + views + } = this._getVisibleThumbs(); + if (views.length > 0) { + let shouldScroll = false; + if (pageNumber <= first.id || pageNumber >= last.id) { + shouldScroll = true; + } else { + for (const { + id, + percent + } of views) { + if (id !== pageNumber) { + continue; + } + shouldScroll = percent < 100; + break; + } + } + if (shouldScroll) { + (0, _ui_utils.scrollIntoView)(thumbnailView.div, { + top: THUMBNAIL_SCROLL_MARGIN + }); + } + } + 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; + const updateArgs = { + rotation + }; + for (const thumbnail of this._thumbnails) { + thumbnail.update(updateArgs); + } + } + cleanup() { + for (const thumbnail of this._thumbnails) { + if (thumbnail.renderingState !== _ui_utils.RenderingStates.FINISHED) { + thumbnail.reset(); + } + } + _pdf_thumbnail_view.TempImageFactory.destroyCanvas(); + } + _resetView() { + this._thumbnails = []; + this._currentPageNumber = 1; + this._pageLabels = null; + this._pagesRotation = 0; + this.container.textContent = ""; + } + 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 => { + const pagesCount = pdfDocument.numPages; + const viewport = firstPdfPage.getViewport({ + scale: 1 + }); + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const thumbnail = new _pdf_thumbnail_view.PDFThumbnailView({ + container: this.container, + eventBus: this.eventBus, + id: pageNum, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + linkService: this.linkService, + renderingQueue: this.renderingQueue, + l10n: this.l10n, + pageColors: this.pageColors + }); + this._thumbnails.push(thumbnail); + } + this._thumbnails[0]?.setPdfPage(firstPdfPage); + const thumbnailView = this._thumbnails[this._currentPageNumber - 1]; + thumbnailView.div.classList.add(THUMBNAIL_SELECTED_CLASS); + }).catch(reason => { + console.error("Unable to initialize thumbnail viewer", reason); + }); + } + _cancelRendering() { + for (const thumbnail of this._thumbnails) { + thumbnail.cancelRendering(); + } + } + 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); + } + } + async #ensurePdfPageLoaded(thumbView) { + if (thumbView.pdfPage) { + return thumbView.pdfPage; + } + try { + const pdfPage = await this.pdfDocument.getPage(thumbView.id); + if (!thumbView.pdfPage) { + thumbView.setPdfPage(pdfPage); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for thumb view", reason); + return null; + } + } + #getScrollAhead(visible) { + if (visible.first?.id === 1) { + return true; + } else if (visible.last?.id === this._thumbnails.length) { + return false; + } + return this.scroll.down; + } + forceRendering() { + const visibleThumbs = this._getVisibleThumbs(); + const scrollAhead = this.#getScrollAhead(visibleThumbs); + const thumbView = this.renderingQueue.getHighestPriority(visibleThumbs, this._thumbnails, scrollAhead); + if (thumbView) { + this.#ensurePdfPageLoaded(thumbView).then(() => { + this.renderingQueue.renderView(thumbView); + }); + return true; + } + return false; + } +} +exports.PDFThumbnailViewer = PDFThumbnailViewer; + +/***/ }), +/* 28 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TempImageFactory = exports.PDFThumbnailView = void 0; +var _ui_utils = __webpack_require__(3); +var _pdfjsLib = __webpack_require__(4); +const DRAW_UPSCALE_FACTOR = 2; +const MAX_NUM_SCALING_STEPS = 3; +const THUMBNAIL_WIDTH = 98; +class TempImageFactory { + static #tempCanvas = null; + static getCanvas(width, height) { + const tempCanvas = this.#tempCanvas ||= document.createElement("canvas"); + tempCanvas.width = width; + tempCanvas.height = height; + const ctx = tempCanvas.getContext("2d", { + alpha: false + }); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, width, height); + ctx.restore(); + return [tempCanvas, tempCanvas.getContext("2d")]; + } + static destroyCanvas() { + const tempCanvas = this.#tempCanvas; + if (tempCanvas) { + tempCanvas.width = 0; + tempCanvas.height = 0; + } + this.#tempCanvas = null; + } +} +exports.TempImageFactory = TempImageFactory; +class PDFThumbnailView { + constructor({ + container, + eventBus, + id, + defaultViewport, + optionalContentConfigPromise, + linkService, + renderingQueue, + l10n, + pageColors + }) { + this.id = 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.pageColors = pageColors || null; + this.eventBus = eventBus; + this.linkService = linkService; + this.renderingQueue = renderingQueue; + this.renderTask = null; + this.renderingState = _ui_utils.RenderingStates.INITIAL; + this.resume = null; + this.l10n = l10n; + const anchor = document.createElement("a"); + anchor.href = linkService.getAnchorUrl("#page=" + id); + this._thumbPageTitle.then(msg => { + anchor.title = msg; + }); + anchor.onclick = function () { + linkService.goToPage(id); + return false; + }; + this.anchor = anchor; + const div = document.createElement("div"); + div.className = "thumbnail"; + div.setAttribute("data-page-number", this.id); + this.div = div; + this.#updateDims(); + const img = document.createElement("div"); + img.className = "thumbnailImage"; + this._placeholderImg = img; + div.append(img); + anchor.append(div); + container.append(anchor); + } + #updateDims() { + const { + width, + height + } = this.viewport; + const ratio = width / height; + this.canvasWidth = THUMBNAIL_WIDTH; + this.canvasHeight = this.canvasWidth / ratio | 0; + this.scale = this.canvasWidth / width; + const { + style + } = this.div; + style.setProperty("--thumbnail-width", `${this.canvasWidth}px`); + style.setProperty("--thumbnail-height", `${this.canvasHeight}px`); + } + 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(); + } + reset() { + this.cancelRendering(); + this.renderingState = _ui_utils.RenderingStates.INITIAL; + this.div.removeAttribute("data-loaded"); + this.image?.replaceWith(this._placeholderImg); + this.#updateDims(); + if (this.image) { + this.image.removeAttribute("src"); + delete this.image; + } + } + update({ + rotation = null + }) { + if (typeof rotation === "number") { + 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"); + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = new _ui_utils.OutputScale(); + 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 !== _ui_utils.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.src = reducedCanvas.toDataURL(); + this.image = image; + this.div.setAttribute("data-loaded", true); + this._placeholderImg.replaceWith(image); + reducedCanvas.width = 0; + reducedCanvas.height = 0; + } + async #finishRenderTask(renderTask, canvas, error = null) { + if (renderTask === this.renderTask) { + this.renderTask = null; + } + if (error instanceof _pdfjsLib.RenderingCancelledException) { + return; + } + this.renderingState = _ui_utils.RenderingStates.FINISHED; + this._convertCanvasToImage(canvas); + if (error) { + throw error; + } + } + async draw() { + if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + return undefined; + } + const { + pdfPage + } = this; + if (!pdfPage) { + this.renderingState = _ui_utils.RenderingStates.FINISHED; + throw new Error("pdfPage is not loaded"); + } + this.renderingState = _ui_utils.RenderingStates.RUNNING; + const { + ctx, + canvas, + transform + } = this._getPageDrawContext(DRAW_UPSCALE_FACTOR); + const drawViewport = this.viewport.clone({ + scale: DRAW_UPSCALE_FACTOR * this.scale + }); + const renderContinueCallback = cont => { + if (!this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _ui_utils.RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = _ui_utils.RenderingStates.RUNNING; + cont(); + }; + return; + } + cont(); + }; + const renderContext = { + canvasContext: ctx, + transform, + viewport: drawViewport, + optionalContentConfigPromise: this._optionalContentConfigPromise, + pageColors: this.pageColors + }; + const renderTask = this.renderTask = pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(() => this.#finishRenderTask(renderTask, canvas), error => this.#finishRenderTask(renderTask, canvas, error)); + resultPromise.finally(() => { + canvas.width = 0; + canvas.height = 0; + this.eventBus.dispatch("thumbnailrendered", { + source: this, + pageNumber: this.id, + pdfPage: this.pdfPage + }); + }); + return resultPromise; + } + setImage(pageView) { + if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + return; + } + const { + thumbnailCanvas: canvas, + pdfPage, + scale + } = pageView; + if (!canvas) { + return; + } + if (!this.pdfPage) { + this.setPdfPage(pdfPage); + } + if (scale < this.scale) { + return; + } + this.renderingState = _ui_utils.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 !== _ui_utils.RenderingStates.FINISHED) { + return; + } + this._thumbPageCanvas.then(msg => { + this.image?.setAttribute("aria-label", msg); + }); + } +} +exports.PDFThumbnailView = PDFThumbnailView; + +/***/ }), +/* 29 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PagesCountLimit = exports.PDFViewer = exports.PDFPageViewBuffer = void 0; +var _pdfjsLib = __webpack_require__(4); +var _ui_utils = __webpack_require__(3); +var _l10n_utils = __webpack_require__(30); +var _pdf_page_view = __webpack_require__(31); +var _pdf_rendering_queue = __webpack_require__(24); +var _pdf_link_service = __webpack_require__(7); +const DEFAULT_CACHE_SIZE = 10; +const PagesCountLimit = { + FORCE_SCROLL_MODE_PAGE: 15000, + FORCE_LAZY_PAGE_INIT: 7500, + PAUSE_EAGER_PAGE_INIT: 250 +}; +exports.PagesCountLimit = PagesCountLimit; +function isValidAnnotationEditorMode(mode) { + return Object.values(_pdfjsLib.AnnotationEditorType).includes(mode) && mode !== _pdfjsLib.AnnotationEditorType.DISABLE; +} +class PDFPageViewBuffer { + #buf = new Set(); + #size = 0; + constructor(size) { + this.#size = size; + } + push(view) { + const buf = this.#buf; + if (buf.has(view)) { + buf.delete(view); + } + buf.add(view); + if (buf.size > this.#size) { + this.#destroyFirstView(); + } + } + resize(newSize, idsToKeep = null) { + this.#size = newSize; + const buf = this.#buf; + if (idsToKeep) { + const ii = buf.size; + let i = 1; + for (const view of buf) { + if (idsToKeep.has(view.id)) { + buf.delete(view); + buf.add(view); + } + if (++i > ii) { + break; + } + } + } + while (buf.size > this.#size) { + this.#destroyFirstView(); + } + } + has(view) { + return this.#buf.has(view); + } + [Symbol.iterator]() { + return this.#buf.keys(); + } + #destroyFirstView() { + const firstView = this.#buf.keys().next().value; + firstView?.destroy(); + this.#buf.delete(firstView); + } +} +exports.PDFPageViewBuffer = PDFPageViewBuffer; +class PDFViewer { + #buffer = null; + #altTextManager = null; + #annotationEditorMode = _pdfjsLib.AnnotationEditorType.NONE; + #annotationEditorUIManager = null; + #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS; + #containerTopLeft = null; + #copyCallbackBound = null; + #enablePermissions = false; + #getAllTextInProgress = false; + #hiddenCopyElement = null; + #interruptCopyCondition = false; + #previousContainerHeight = 0; + #resizeObserver = new ResizeObserver(this.#resizeObserverCallback.bind(this)); + #scrollModePageState = null; + #onVisibilityChange = null; + #scaleTimeoutId = null; + #textLayerMode = _ui_utils.TextLayerMode.ENABLE; + constructor(options) { + const viewerVersion = '3.11.174'; + if (_pdfjsLib.version !== viewerVersion) { + throw new Error(`The API version "${_pdfjsLib.version}" does not match the Viewer version "${viewerVersion}".`); + } + this.container = options.container; + this.viewer = options.viewer || options.container.firstElementChild; + if (this.container?.tagName !== "DIV" || this.viewer?.tagName !== "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.#resizeObserver.observe(this.container); + this.eventBus = options.eventBus; + this.linkService = options.linkService || new _pdf_link_service.SimpleLinkService(); + this.downloadManager = options.downloadManager || null; + this.findController = options.findController || null; + this.#altTextManager = options.altTextManager || null; + if (this.findController) { + this.findController.onIsPageVisible = pageNumber => this._getVisiblePages().ids.has(pageNumber); + } + this._scriptingManager = options.scriptingManager || null; + this.#textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS; + this.#annotationEditorMode = options.annotationEditorMode ?? _pdfjsLib.AnnotationEditorType.NONE; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.enablePrintAutoRotate = options.enablePrintAutoRotate || false; + this.removePageBorders = options.removePageBorders || false; + if (options.useOnlyCssZoom) { + console.error("useOnlyCssZoom was removed, please use `maxCanvasPixels = 0` instead."); + options.maxCanvasPixels = 0; + } + this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; + this.maxCanvasPixels = options.maxCanvasPixels; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.#enablePermissions = options.enablePermissions || false; + this.pageColors = options.pageColors || null; + this.defaultRenderingQueue = !options.renderingQueue; + if (this.defaultRenderingQueue) { + this.renderingQueue = new _pdf_rendering_queue.PDFRenderingQueue(); + this.renderingQueue.setViewer(this); + } else { + this.renderingQueue = options.renderingQueue; + } + 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.#updateContainerHeightCss(); + this.eventBus._on("thumbnailrendered", ({ + pageNumber, + pdfPage + }) => { + const pageView = this._pages[pageNumber - 1]; + if (!this.#buffer.has(pageView)) { + pdfPage?.cleanup(); + } + }); + } + get pagesCount() { + return this._pages.length; + } + getPageView(index) { + return this._pages[index]; + } + getCachedPageViews() { + return new Set(this.#buffer); + } + get pageViewsReady() { + return this._pagesCapability.settled && this._pages.every(pageView => pageView?.pdfPage); + } + get renderForms() { + return this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS; + } + get enableScripting() { + return !!this._scriptingManager; + } + get currentPageNumber() { + return this._currentPageNumber; + } + set currentPageNumber(val) { + if (!Number.isInteger(val)) { + throw new Error("Invalid page number."); + } + if (!this.pdfDocument) { + return; + } + if (!this._setCurrentPageNumber(val, true)) { + console.error(`currentPageNumber: "${val}" is not a valid page.`); + } + } + _setCurrentPageNumber(val, resetCurrentPageView = false) { + if (this._currentPageNumber === val) { + if (resetCurrentPageView) { + this.#resetCurrentPageView(); + } + return true; + } + if (!(0 < val && val <= this.pagesCount)) { + return false; + } + const previous = this._currentPageNumber; + this._currentPageNumber = val; + this.eventBus.dispatch("pagechanging", { + source: this, + pageNumber: val, + pageLabel: this._pageLabels?.[val - 1] ?? null, + previous + }); + 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; + } + } + if (!this._setCurrentPageNumber(page, true)) { + console.error(`currentPageLabel: "${val}" is not a valid page.`); + } + } + 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, { + noScroll: false + }); + } + get currentScaleValue() { + return this._currentScaleValue; + } + set currentScaleValue(val) { + if (!this.pdfDocument) { + return; + } + this.#setScale(val, { + noScroll: 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; + this.refresh(true, { + rotation + }); + if (this._currentScaleValue) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + this.eventBus.dispatch("rotationchanging", { + source: this, + pagesRotation: rotation, + pageNumber + }); + if (this.defaultRenderingQueue) { + this.update(); + } + } + 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; + } + #layerProperties() { + const self = this; + return { + get annotationEditorUIManager() { + return self.#annotationEditorUIManager; + }, + get annotationStorage() { + return self.pdfDocument?.annotationStorage; + }, + get downloadManager() { + return self.downloadManager; + }, + get enableScripting() { + return !!self._scriptingManager; + }, + get fieldObjectsPromise() { + return self.pdfDocument?.getFieldObjects(); + }, + get findController() { + return self.findController; + }, + get hasJSActionsPromise() { + return self.pdfDocument?.hasJSActions(); + }, + get linkService() { + return self.linkService; + } + }; + } + #initializePermissions(permissions) { + const params = { + annotationEditorMode: this.#annotationEditorMode, + annotationMode: this.#annotationMode, + textLayerMode: this.#textLayerMode + }; + if (!permissions) { + return params; + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.COPY) && this.#textLayerMode === _ui_utils.TextLayerMode.ENABLE) { + params.textLayerMode = _ui_utils.TextLayerMode.ENABLE_PERMISSIONS; + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_CONTENTS)) { + params.annotationEditorMode = _pdfjsLib.AnnotationEditorType.DISABLE; + } + if (!permissions.includes(_pdfjsLib.PermissionFlag.MODIFY_ANNOTATIONS) && !permissions.includes(_pdfjsLib.PermissionFlag.FILL_INTERACTIVE_FORMS) && this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS) { + params.annotationMode = _pdfjsLib.AnnotationMode.ENABLE; + } + return params; + } + #onePageRenderedOrForceFetch() { + if (document.visibilityState === "hidden" || !this.container.offsetParent || this._getVisiblePages().views.length === 0) { + return Promise.resolve(); + } + const visibilityChangePromise = new Promise(resolve => { + this.#onVisibilityChange = () => { + if (document.visibilityState !== "hidden") { + return; + } + resolve(); + document.removeEventListener("visibilitychange", this.#onVisibilityChange); + this.#onVisibilityChange = null; + }; + document.addEventListener("visibilitychange", this.#onVisibilityChange); + }); + return Promise.race([this._onePageRenderedCapability.promise, visibilityChangePromise]); + } + async getAllText() { + const texts = []; + const buffer = []; + for (let pageNum = 1, pagesCount = this.pdfDocument.numPages; pageNum <= pagesCount; ++pageNum) { + if (this.#interruptCopyCondition) { + return null; + } + buffer.length = 0; + const page = await this.pdfDocument.getPage(pageNum); + const { + items + } = await page.getTextContent(); + for (const item of items) { + if (item.str) { + buffer.push(item.str); + } + if (item.hasEOL) { + buffer.push("\n"); + } + } + texts.push((0, _ui_utils.removeNullCharacters)(buffer.join(""))); + } + return texts.join("\n"); + } + #copyCallback(textLayerMode, event) { + const selection = document.getSelection(); + const { + focusNode, + anchorNode + } = selection; + if (anchorNode && focusNode && selection.containsNode(this.#hiddenCopyElement)) { + if (this.#getAllTextInProgress || textLayerMode === _ui_utils.TextLayerMode.ENABLE_PERMISSIONS) { + event.preventDefault(); + event.stopPropagation(); + return; + } + this.#getAllTextInProgress = true; + const savedCursor = this.container.style.cursor; + this.container.style.cursor = "wait"; + const interruptCopy = ev => this.#interruptCopyCondition = ev.key === "Escape"; + window.addEventListener("keydown", interruptCopy); + this.getAllText().then(async text => { + if (text !== null) { + await navigator.clipboard.writeText(text); + } + }).catch(reason => { + console.warn(`Something goes wrong when extracting the text: ${reason.message}`); + }).finally(() => { + this.#getAllTextInProgress = false; + this.#interruptCopyCondition = false; + window.removeEventListener("keydown", interruptCopy); + this.container.style.cursor = savedCursor; + }); + event.preventDefault(); + event.stopPropagation(); + } + } + setDocument(pdfDocument) { + if (this.pdfDocument) { + this.eventBus.dispatch("pagesdestroy", { + source: this + }); + this._cancelRendering(); + this._resetView(); + this.findController?.setDocument(null); + this._scriptingManager?.setDocument(null); + if (this.#annotationEditorUIManager) { + this.#annotationEditorUIManager.destroy(); + this.#annotationEditorUIManager = null; + } + } + this.pdfDocument = pdfDocument; + if (!pdfDocument) { + return; + } + const pagesCount = pdfDocument.numPages; + const firstPagePromise = pdfDocument.getPage(1); + const optionalContentConfigPromise = pdfDocument.getOptionalContentConfig(); + const permissionsPromise = this.#enablePermissions ? pdfDocument.getPermissions() : Promise.resolve(); + if (pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + console.warn("Forcing PAGE-scrolling for performance reasons, given the length of the document."); + const mode = this._scrollMode = _ui_utils.ScrollMode.PAGE; + this.eventBus.dispatch("scrollmodechanged", { + source: this, + mode + }); + } + this._pagesCapability.promise.then(() => { + this.eventBus.dispatch("pagesloaded", { + source: this, + pagesCount + }); + }, () => {}); + this._onBeforeDraw = evt => { + const pageView = this._pages[evt.pageNumber - 1]; + if (!pageView) { + return; + } + this.#buffer.push(pageView); + }; + this.eventBus._on("pagerender", this._onBeforeDraw); + this._onAfterDraw = evt => { + if (evt.cssTransform || this._onePageRenderedCapability.settled) { + return; + } + this._onePageRenderedCapability.resolve({ + timestamp: evt.timestamp + }); + this.eventBus._off("pagerendered", this._onAfterDraw); + this._onAfterDraw = null; + if (this.#onVisibilityChange) { + document.removeEventListener("visibilitychange", this.#onVisibilityChange); + this.#onVisibilityChange = null; + } + }; + this.eventBus._on("pagerendered", this._onAfterDraw); + Promise.all([firstPagePromise, permissionsPromise]).then(([firstPdfPage, permissions]) => { + if (pdfDocument !== this.pdfDocument) { + return; + } + this._firstPageCapability.resolve(firstPdfPage); + this._optionalContentConfigPromise = optionalContentConfigPromise; + const { + annotationEditorMode, + annotationMode, + textLayerMode + } = this.#initializePermissions(permissions); + if (textLayerMode !== _ui_utils.TextLayerMode.DISABLE) { + const element = this.#hiddenCopyElement = document.createElement("div"); + element.id = "hiddenCopyElement"; + this.viewer.before(element); + } + if (annotationEditorMode !== _pdfjsLib.AnnotationEditorType.DISABLE) { + const mode = annotationEditorMode; + if (pdfDocument.isPureXfa) { + console.warn("Warning: XFA-editing is not implemented."); + } else if (isValidAnnotationEditorMode(mode)) { + this.#annotationEditorUIManager = new _pdfjsLib.AnnotationEditorUIManager(this.container, this.viewer, this.#altTextManager, this.eventBus, pdfDocument, this.pageColors); + if (mode !== _pdfjsLib.AnnotationEditorType.NONE) { + this.#annotationEditorUIManager.updateMode(mode); + } + } else { + console.error(`Invalid AnnotationEditor mode: ${mode}`); + } + } + const layerProperties = this.#layerProperties.bind(this); + const viewerElement = this._scrollMode === _ui_utils.ScrollMode.PAGE ? null : this.viewer; + const scale = this.currentScale; + const viewport = firstPdfPage.getViewport({ + scale: scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS + }); + this.viewer.style.setProperty("--scale-factor", viewport.scale); + if (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas") { + this.viewer.style.setProperty("--hcm-highligh-filter", pdfDocument.filterFactory.addHighlightHCMFilter("CanvasText", "Canvas", "HighlightText", "Highlight")); + } + for (let pageNum = 1; pageNum <= pagesCount; ++pageNum) { + const pageView = new _pdf_page_view.PDFPageView({ + container: viewerElement, + eventBus: this.eventBus, + id: pageNum, + scale, + defaultViewport: viewport.clone(), + optionalContentConfigPromise, + renderingQueue: this.renderingQueue, + textLayerMode, + annotationMode, + imageResourcesPath: this.imageResourcesPath, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, + maxCanvasPixels: this.maxCanvasPixels, + pageColors: this.pageColors, + l10n: this.l10n, + layerProperties + }); + this._pages.push(pageView); + } + const firstPageView = this._pages[0]; + if (firstPageView) { + firstPageView.setPdfPage(firstPdfPage); + this.linkService.cachePageRef(1, firstPdfPage.ref); + } + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + this._updateSpreadMode(); + } + this.#onePageRenderedOrForceFetch().then(async () => { + this.findController?.setDocument(pdfDocument); + this._scriptingManager?.setDocument(pdfDocument); + if (this.#hiddenCopyElement) { + this.#copyCallbackBound = this.#copyCallback.bind(this, textLayerMode); + document.addEventListener("copy", this.#copyCallbackBound); + } + if (this.#annotationEditorUIManager) { + this.eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode: this.#annotationEditorMode + }); + } + if (pdfDocument.loadingParams.disableAutoFetch || pagesCount > PagesCountLimit.FORCE_LAZY_PAGE_INIT) { + this._pagesCapability.resolve(); + return; + } + let getPagesLeft = pagesCount - 1; + if (getPagesLeft <= 0) { + this._pagesCapability.resolve(); + return; + } + for (let pageNum = 2; pageNum <= pagesCount; ++pageNum) { + const promise = 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(); + } + }); + if (pageNum % PagesCountLimit.PAUSE_EAGER_PAGE_INIT === 0) { + await promise; + } + } + }); + this.eventBus.dispatch("pagesinit", { + source: this + }); + pdfDocument.getMetadata().then(({ + info + }) => { + if (pdfDocument !== this.pdfDocument) { + return; + } + if (info.Language) { + this.viewer.lang = info.Language; + } + }); + if (this.defaultRenderingQueue) { + this.update(); + } + }).catch(reason => { + console.error("Unable to initialize viewer", reason); + this._pagesCapability.reject(reason); + }); + } + 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(`setPageLabels: Invalid page labels.`); + } else { + this._pageLabels = labels; + } + 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._firstPageCapability = new _pdfjsLib.PromiseCapability(); + this._onePageRenderedCapability = new _pdfjsLib.PromiseCapability(); + this._pagesCapability = new _pdfjsLib.PromiseCapability(); + this._scrollMode = _ui_utils.ScrollMode.VERTICAL; + this._previousScrollMode = _ui_utils.ScrollMode.UNKNOWN; + this._spreadMode = _ui_utils.SpreadMode.NONE; + this.#scrollModePageState = { + previousPageNumber: 1, + scrollDown: true, + pages: [] + }; + if (this._onBeforeDraw) { + this.eventBus._off("pagerender", this._onBeforeDraw); + this._onBeforeDraw = null; + } + if (this._onAfterDraw) { + this.eventBus._off("pagerendered", this._onAfterDraw); + this._onAfterDraw = null; + } + if (this.#onVisibilityChange) { + document.removeEventListener("visibilitychange", this.#onVisibilityChange); + this.#onVisibilityChange = null; + } + this.viewer.textContent = ""; + this._updateScrollMode(); + this.viewer.removeAttribute("lang"); + if (this.#hiddenCopyElement) { + document.removeEventListener("copy", this.#copyCallbackBound); + this.#copyCallbackBound = null; + this.#hiddenCopyElement.remove(); + this.#hiddenCopyElement = null; + } + } + #ensurePageViewVisible() { + if (this._scrollMode !== _ui_utils.ScrollMode.PAGE) { + throw new Error("#ensurePageViewVisible: Invalid scrollMode value."); + } + const pageNumber = this._currentPageNumber, + state = this.#scrollModePageState, + viewer = this.viewer; + viewer.textContent = ""; + state.pages.length = 0; + if (this._spreadMode === _ui_utils.SpreadMode.NONE && !this.isInPresentationMode) { + const pageView = this._pages[pageNumber - 1]; + viewer.append(pageView.div); + state.pages.push(pageView); + } else { + const pageIndexSet = new Set(), + parity = this._spreadMode - 1; + if (parity === -1) { + pageIndexSet.add(pageNumber - 1); + } else if (pageNumber % 2 !== parity) { + pageIndexSet.add(pageNumber - 1); + pageIndexSet.add(pageNumber); + } else { + pageIndexSet.add(pageNumber - 2); + pageIndexSet.add(pageNumber - 1); + } + const spread = document.createElement("div"); + spread.className = "spread"; + if (this.isInPresentationMode) { + const dummyPage = document.createElement("div"); + dummyPage.className = "dummyPage"; + spread.append(dummyPage); + } + for (const i of pageIndexSet) { + const pageView = this._pages[i]; + if (!pageView) { + continue; + } + spread.append(pageView.div); + state.pages.push(pageView); + } + viewer.append(spread); + } + state.scrollDown = pageNumber >= state.previousPageNumber; + state.previousPageNumber = pageNumber; + } + _scrollUpdate() { + if (this.pagesCount === 0) { + return; + } + this.update(); + } + #scrollIntoView(pageView, pageSpot = null) { + const { + div, + id + } = pageView; + if (this._currentPageNumber !== id) { + this._setCurrentPageNumber(id); + } + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + this.update(); + } + if (!pageSpot && !this.isInPresentationMode) { + const left = div.offsetLeft + div.clientLeft, + right = left + div.clientWidth; + const { + scrollLeft, + clientWidth + } = this.container; + if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL || left < scrollLeft || right > scrollLeft + clientWidth) { + pageSpot = { + left: 0, + top: 0 + }; + } + } + (0, _ui_utils.scrollIntoView)(div, pageSpot); + if (!this._currentScaleValue && this._location) { + this._location = null; + } + } + #isSameScale(newScale) { + return newScale === this._currentScale || Math.abs(newScale - this._currentScale) < 1e-15; + } + #setScaleUpdatePages(newScale, newValue, { + noScroll = false, + preset = false, + drawingDelay = -1 + }) { + this._currentScaleValue = newValue.toString(); + if (this.#isSameScale(newScale)) { + if (preset) { + this.eventBus.dispatch("scalechanging", { + source: this, + scale: newScale, + presetValue: newValue + }); + } + return; + } + this.viewer.style.setProperty("--scale-factor", newScale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS); + const postponeDrawing = drawingDelay >= 0 && drawingDelay < 1000; + this.refresh(true, { + scale: newScale, + drawingDelay: postponeDrawing ? drawingDelay : -1 + }); + if (postponeDrawing) { + this.#scaleTimeoutId = setTimeout(() => { + this.#scaleTimeoutId = null; + this.refresh(); + }, drawingDelay); + } + 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 + }); + } + 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) { + return 2; + } + return 1; + } + #setScale(value, options) { + let scale = parseFloat(value); + if (scale > 0) { + options.preset = false; + this.#setScaleUpdatePages(scale, value, options); + } else { + const currentPage = this._pages[this._currentPageNumber - 1]; + if (!currentPage) { + return; + } + let hPadding = _ui_utils.SCROLLBAR_PADDING, + vPadding = _ui_utils.VERTICAL_PADDING; + if (this.isInPresentationMode) { + hPadding = vPadding = 4; + if (this._spreadMode !== _ui_utils.SpreadMode.NONE) { + hPadding *= 2; + } + } else if (this.removePageBorders) { + hPadding = vPadding = 0; + } else if (this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL) { + [hPadding, vPadding] = [vPadding, hPadding]; + } + const pageWidthScale = (this.container.clientWidth - hPadding) / currentPage.width * currentPage.scale / this.#pageWidthScaleFactor; + const 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": + 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(`#setScale: "${value}" is an unknown zoom value.`); + return; + } + options.preset = true; + this.#setScaleUpdatePages(scale, value, options); + } + } + #resetCurrentPageView() { + const pageView = this._pages[this._currentPageNumber - 1]; + if (this.isInPresentationMode) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + this.#scrollIntoView(pageView); + } + 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(`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 / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + const pageHeight = (changeOrientation ? pageView.width : pageView.height) / pageView.scale / _pdfjsLib.PixelsPerInch.PDF_TO_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 < 0) { + 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; + let hPadding = _ui_utils.SCROLLBAR_PADDING, + vPadding = _ui_utils.VERTICAL_PADDING; + if (this.removePageBorders) { + hPadding = vPadding = 0; + } + widthScale = (this.container.clientWidth - hPadding) / width / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + heightScale = (this.container.clientHeight - vPadding) / height / _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS; + scale = Math.min(Math.abs(widthScale), Math.abs(heightScale)); + break; + default: + console.error(`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(pageView); + 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(pageView, { + left, + top + }); + } + _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; + 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]); + let pdfOpenParams = `#page=${pageNumber}`; + if (!this.isInPresentationMode) { + pdfOpenParams += `&zoom=${normalizedScaleValue},${intLeft},${intTop}`; + } + this._location = { + pageNumber, + scale: normalizedScaleValue, + top: intTop, + left: intLeft, + rotation: this._pagesRotation, + pdfOpenParams + }; + } + update() { + const visible = this._getVisiblePages(); + const visiblePages = visible.views, + numVisiblePages = visiblePages.length; + if (numVisiblePages === 0) { + return; + } + const newCacheSize = Math.max(DEFAULT_CACHE_SIZE, 2 * numVisiblePages + 1); + this.#buffer.resize(newCacheSize, visible.ids); + this.renderingQueue.renderHighestPriority(visible); + const isSimpleLayout = this._spreadMode === _ui_utils.SpreadMode.NONE && (this._scrollMode === _ui_utils.ScrollMode.PAGE || this._scrollMode === _ui_utils.ScrollMode.VERTICAL); + const currentId = this._currentPageNumber; + let stillFullyVisible = false; + for (const page of visiblePages) { + if (page.percent < 100) { + break; + } + if (page.id === currentId && isSimpleLayout) { + stillFullyVisible = true; + break; + } + } + this._setCurrentPageNumber(stillFullyVisible ? currentId : visiblePages[0].id); + 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 _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; + } + _getVisiblePages() { + const views = this._scrollMode === _ui_utils.ScrollMode.PAGE ? this.#scrollModePageState.pages : this._pages, + horizontal = this._scrollMode === _ui_utils.ScrollMode.HORIZONTAL, + rtl = horizontal && this._isContainerRtl; + return (0, _ui_utils.getVisibleElements)({ + scrollEl: this.container, + views, + sortByVisibility: true, + horizontal, + rtl + }); + } + cleanup() { + for (const pageView of this._pages) { + if (pageView.renderingState !== _ui_utils.RenderingStates.FINISHED) { + pageView.reset(); + } + } + } + _cancelRendering() { + for (const pageView of this._pages) { + pageView.cancelRendering(); + } + } + async #ensurePdfPageLoaded(pageView) { + if (pageView.pdfPage) { + return pageView.pdfPage; + } + try { + const pdfPage = await this.pdfDocument.getPage(pageView.id); + if (!pageView.pdfPage) { + pageView.setPdfPage(pdfPage); + } + if (!this.linkService._cachedPageNumber?.(pdfPage.ref)) { + this.linkService.cachePageRef(pageView.id, pdfPage.ref); + } + return pdfPage; + } catch (reason) { + console.error("Unable to get page for page view", reason); + return null; + } + } + #getScrollAhead(visible) { + if (visible.first?.id === 1) { + return true; + } else if (visible.last?.id === this.pagesCount) { + return false; + } + switch (this._scrollMode) { + case _ui_utils.ScrollMode.PAGE: + return this.#scrollModePageState.scrollDown; + case _ui_utils.ScrollMode.HORIZONTAL: + return this.scroll.right; + } + return this.scroll.down; + } + forceRendering(currentlyVisiblePages) { + const visiblePages = currentlyVisiblePages || this._getVisiblePages(); + const scrollAhead = this.#getScrollAhead(visiblePages); + const preRenderExtra = this._spreadMode !== _ui_utils.SpreadMode.NONE && this._scrollMode !== _ui_utils.ScrollMode.HORIZONTAL; + const pageView = this.renderingQueue.getHighestPriority(visiblePages, this._pages, scrollAhead, preRenderExtra); + if (pageView) { + this.#ensurePdfPageLoaded(pageView).then(() => { + this.renderingQueue.renderView(pageView); + }); + return true; + } + return false; + } + 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() { + let initialOrientation; + return this._pages.map(pageView => { + const viewport = pageView.pdfPage.getViewport({ + scale: 1 + }); + const orientation = (0, _ui_utils.isPortraitOrientation)(viewport); + if (initialOrientation === undefined) { + initialOrientation = orientation; + } else if (this.enablePrintAutoRotate && orientation !== initialOrientation) { + return { + width: viewport.height, + height: viewport.width, + rotation: (viewport.rotation - 90) % 360 + }; + } + return { + width: viewport.width, + height: viewport.height, + rotation: viewport.rotation + }; + }); + } + get optionalContentConfigPromise() { + if (!this.pdfDocument) { + return Promise.resolve(null); + } + if (!this._optionalContentConfigPromise) { + console.error("optionalContentConfigPromise: Not initialized yet."); + 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; + this.refresh(false, { + optionalContentConfigPromise: promise + }); + 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}`); + } + if (this.pagesCount > PagesCountLimit.FORCE_SCROLL_MODE_PAGE) { + return; + } + this._previousScrollMode = this._scrollMode; + 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); + if (!this.pdfDocument || !pageNumber) { + return; + } + if (scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else if (this._previousScrollMode === _ui_utils.ScrollMode.PAGE) { + this._updateSpreadMode(); + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + 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; + if (this._scrollMode === _ui_utils.ScrollMode.PAGE) { + this.#ensurePageViewVisible(); + } else { + viewer.textContent = ""; + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + for (const pageView of this._pages) { + viewer.append(pageView.div); + } + } else { + const parity = this._spreadMode - 1; + let spread = null; + for (let i = 0, ii = pages.length; i < ii; ++i) { + if (spread === null) { + spread = document.createElement("div"); + spread.className = "spread"; + viewer.append(spread); + } else if (i % 2 === parity) { + spread = spread.cloneNode(false); + viewer.append(spread); + } + spread.append(pages[i].div); + } + } + } + if (!pageNumber) { + return; + } + if (this._currentScaleValue && isNaN(this._currentScaleValue)) { + this.#setScale(this._currentScaleValue, { + noScroll: true + }); + } + this._setCurrentPageNumber(pageNumber, true); + this.update(); + } + _getPageAdvance(currentPageNumber, previous = false) { + 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.push(id); + } + 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; + } + case _ui_utils.ScrollMode.HORIZONTAL: + { + break; + } + case _ui_utils.ScrollMode.PAGE: + case _ui_utils.ScrollMode.VERTICAL: + { + if (this._spreadMode === _ui_utils.SpreadMode.NONE) { + break; + } + const parity = this._spreadMode - 1; + if (previous && currentPageNumber % 2 !== parity) { + break; + } else if (!previous && currentPageNumber % 2 === parity) { + break; + } + const { + views + } = this._getVisiblePages(), + expectedId = previous ? currentPageNumber - 1 : currentPageNumber + 1; + for (const { + id, + percent, + widthPercent + } of views) { + if (id !== expectedId) { + continue; + } + if (percent > 0 && widthPercent === 100) { + return 2; + } + break; + } + break; + } + } + return 1; + } + nextPage() { + const currentPageNumber = this._currentPageNumber, + pagesCount = this.pagesCount; + if (currentPageNumber >= pagesCount) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, false) || 1; + this.currentPageNumber = Math.min(currentPageNumber + advance, pagesCount); + return true; + } + previousPage() { + const currentPageNumber = this._currentPageNumber; + if (currentPageNumber <= 1) { + return false; + } + const advance = this._getPageAdvance(currentPageNumber, true) || 1; + this.currentPageNumber = Math.max(currentPageNumber - advance, 1); + return true; + } + increaseScale({ + drawingDelay, + scaleFactor, + steps + } = {}) { + if (!this.pdfDocument) { + return; + } + let newScale = this._currentScale; + if (scaleFactor > 1) { + newScale = Math.round(newScale * scaleFactor * 100) / 100; + } else { + steps ??= 1; + do { + newScale = Math.ceil((newScale * _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10; + } while (--steps > 0 && newScale < _ui_utils.MAX_SCALE); + } + this.#setScale(Math.min(_ui_utils.MAX_SCALE, newScale), { + noScroll: false, + drawingDelay + }); + } + decreaseScale({ + drawingDelay, + scaleFactor, + steps + } = {}) { + if (!this.pdfDocument) { + return; + } + let newScale = this._currentScale; + if (scaleFactor > 0 && scaleFactor < 1) { + newScale = Math.round(newScale * scaleFactor * 100) / 100; + } else { + steps ??= 1; + do { + newScale = Math.floor((newScale / _ui_utils.DEFAULT_SCALE_DELTA).toFixed(2) * 10) / 10; + } while (--steps > 0 && newScale > _ui_utils.MIN_SCALE); + } + this.#setScale(Math.max(_ui_utils.MIN_SCALE, newScale), { + noScroll: false, + drawingDelay + }); + } + #updateContainerHeightCss(height = this.container.clientHeight) { + if (height !== this.#previousContainerHeight) { + this.#previousContainerHeight = height; + _ui_utils.docStyle.setProperty("--viewer-container-height", `${height}px`); + } + } + #resizeObserverCallback(entries) { + for (const entry of entries) { + if (entry.target === this.container) { + this.#updateContainerHeightCss(Math.floor(entry.borderBoxSize[0].blockSize)); + this.#containerTopLeft = null; + break; + } + } + } + get containerTopLeft() { + return this.#containerTopLeft ||= [this.container.offsetTop, this.container.offsetLeft]; + } + get annotationEditorMode() { + return this.#annotationEditorUIManager ? this.#annotationEditorMode : _pdfjsLib.AnnotationEditorType.DISABLE; + } + set annotationEditorMode({ + mode, + editId = null + }) { + if (!this.#annotationEditorUIManager) { + throw new Error(`The AnnotationEditor is not enabled.`); + } + if (this.#annotationEditorMode === mode) { + return; + } + if (!isValidAnnotationEditorMode(mode)) { + throw new Error(`Invalid AnnotationEditor mode: ${mode}`); + } + if (!this.pdfDocument) { + return; + } + this.#annotationEditorMode = mode; + this.eventBus.dispatch("annotationeditormodechanged", { + source: this, + mode + }); + this.#annotationEditorUIManager.updateMode(mode, editId); + } + set annotationEditorParams({ + type, + value + }) { + if (!this.#annotationEditorUIManager) { + throw new Error(`The AnnotationEditor is not enabled.`); + } + this.#annotationEditorUIManager.updateParams(type, value); + } + refresh(noUpdate = false, updateArgs = Object.create(null)) { + if (!this.pdfDocument) { + return; + } + for (const pageView of this._pages) { + pageView.update(updateArgs); + } + if (this.#scaleTimeoutId !== null) { + clearTimeout(this.#scaleTimeoutId); + this.#scaleTimeoutId = null; + } + if (!noUpdate) { + this.update(); + } + } +} +exports.PDFViewer = PDFViewer; + +/***/ }), +/* 30 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.NullL10n = void 0; +exports.getL10nFallback = getL10nFallback; +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", + 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", + 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_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.", + rendering_error: "An error occurred while rendering the page.", + annotation_date_string: "{{date}}, {{time}}", + 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.", + free_text2_default_content: "Start typing…", + editor_free_text2_aria_label: "Text Editor", + editor_ink2_aria_label: "Draw Editor", + editor_ink_canvas_aria_label: "User-created image", + editor_alt_text_button_label: "Alt text", + editor_alt_text_edit_button_label: "Edit alt text", + editor_alt_text_decorative_tooltip: "Marked as decorative" +}; +{ + DEFAULT_L10N_STRINGS.print_progress_percent = "{{progress}}%"; +} +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.replaceAll(/\{\{\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 _pdfjsLib = __webpack_require__(4); +var _ui_utils = __webpack_require__(3); +var _annotation_editor_layer_builder = __webpack_require__(32); +var _annotation_layer_builder = __webpack_require__(33); +var _app_options = __webpack_require__(5); +var _l10n_utils = __webpack_require__(30); +var _pdf_link_service = __webpack_require__(7); +var _struct_tree_layer_builder = __webpack_require__(34); +var _text_accessibility = __webpack_require__(35); +var _text_highlighter = __webpack_require__(36); +var _text_layer_builder = __webpack_require__(37); +var _xfa_layer_builder = __webpack_require__(38); +const MAX_CANVAS_PIXELS = _app_options.compatibilityParams.maxCanvasPixels || 16777216; +const DEFAULT_LAYER_PROPERTIES = () => { + return null; +}; +class PDFPageView { + #annotationMode = _pdfjsLib.AnnotationMode.ENABLE_FORMS; + #hasRestrictedScaling = false; + #layerProperties = null; + #loadingId = null; + #previousRotation = null; + #renderError = null; + #renderingState = _ui_utils.RenderingStates.INITIAL; + #textLayerMode = _ui_utils.TextLayerMode.ENABLE; + #useThumbnailCanvas = { + directDrawing: true, + initialOptionalContent: true, + regularAnnotations: true + }; + #viewportMap = new WeakMap(); + constructor(options) { + const container = options.container; + const defaultViewport = options.defaultViewport; + this.id = options.id; + this.renderingId = "page" + this.id; + this.#layerProperties = options.layerProperties || DEFAULT_LAYER_PROPERTIES; + 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.#textLayerMode = options.textLayerMode ?? _ui_utils.TextLayerMode.ENABLE; + this.#annotationMode = options.annotationMode ?? _pdfjsLib.AnnotationMode.ENABLE_FORMS; + this.imageResourcesPath = options.imageResourcesPath || ""; + this.isOffscreenCanvasSupported = options.isOffscreenCanvasSupported ?? true; + this.maxCanvasPixels = options.maxCanvasPixels ?? MAX_CANVAS_PIXELS; + this.pageColors = options.pageColors || null; + this.eventBus = options.eventBus; + this.renderingQueue = options.renderingQueue; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.renderTask = null; + this.resume = null; + this._isStandalone = !this.renderingQueue?.hasViewer(); + this._container = container; + if (options.useOnlyCssZoom) { + console.error("useOnlyCssZoom was removed, please use `maxCanvasPixels = 0` instead."); + this.maxCanvasPixels = 0; + } + this._annotationCanvasMap = null; + this.annotationLayer = null; + this.annotationEditorLayer = null; + this.textLayer = null; + this.zoomLayer = null; + this.xfaLayer = null; + this.structTreeLayer = null; + const div = document.createElement("div"); + div.className = "page"; + 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; + this.#setDimensions(); + container?.append(div); + if (this._isStandalone) { + container?.style.setProperty("--scale-factor", this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS); + const { + optionalContentConfigPromise + } = options; + if (optionalContentConfigPromise) { + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + } + } + get renderingState() { + return this.#renderingState; + } + set renderingState(state) { + if (state === this.#renderingState) { + return; + } + this.#renderingState = state; + if (this.#loadingId) { + clearTimeout(this.#loadingId); + this.#loadingId = null; + } + switch (state) { + case _ui_utils.RenderingStates.PAUSED: + this.div.classList.remove("loading"); + break; + case _ui_utils.RenderingStates.RUNNING: + this.div.classList.add("loadingIcon"); + this.#loadingId = setTimeout(() => { + this.div.classList.add("loading"); + this.#loadingId = null; + }, 0); + break; + case _ui_utils.RenderingStates.INITIAL: + case _ui_utils.RenderingStates.FINISHED: + this.div.classList.remove("loadingIcon", "loading"); + break; + } + } + #setDimensions() { + const { + viewport + } = this; + if (this.pdfPage) { + if (this.#previousRotation === viewport.rotation) { + return; + } + this.#previousRotation = viewport.rotation; + } + (0, _pdfjsLib.setLayerDimensions)(this.div, viewport, true, false); + } + setPdfPage(pdfPage) { + if (this._isStandalone && (this.pageColors?.foreground === "CanvasText" || this.pageColors?.background === "Canvas")) { + this._container?.style.setProperty("--hcm-highligh-filter", pdfPage.filterFactory.addHighlightHCMFilter("CanvasText", "Canvas", "HighlightText", "Highlight")); + } + this.pdfPage = pdfPage; + this.pdfPageRotate = pdfPage.rotate; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = pdfPage.getViewport({ + scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.#setDimensions(); + this.reset(); + } + destroy() { + this.reset(); + this.pdfPage?.cleanup(); + } + get _textHighlighter() { + return (0, _pdfjsLib.shadow)(this, "_textHighlighter", new _text_highlighter.TextHighlighter({ + pageIndex: this.id - 1, + eventBus: this.eventBus, + findController: this.#layerProperties().findController + })); + } + async #renderAnnotationLayer() { + let error = null; + try { + await this.annotationLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`#renderAnnotationLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationlayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async #renderAnnotationEditorLayer() { + let error = null; + try { + await this.annotationEditorLayer.render(this.viewport, "display"); + } catch (ex) { + console.error(`#renderAnnotationEditorLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("annotationeditorlayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async #renderXfaLayer() { + let error = null; + try { + const result = await this.xfaLayer.render(this.viewport, "display"); + if (result?.textDivs && this._textHighlighter) { + this.#buildXfaTextContentItems(result.textDivs); + } + } catch (ex) { + console.error(`#renderXfaLayer: "${ex}".`); + error = ex; + } finally { + this.eventBus.dispatch("xfalayerrendered", { + source: this, + pageNumber: this.id, + error + }); + } + } + async #renderTextLayer() { + const { + pdfPage, + textLayer, + viewport + } = this; + if (!textLayer) { + return; + } + let error = null; + try { + if (!textLayer.renderingDone) { + const readableStream = pdfPage.streamTextContent({ + includeMarkedContent: true, + disableNormalization: true + }); + textLayer.setTextContentSource(readableStream); + } + await textLayer.render(viewport); + } catch (ex) { + if (ex instanceof _pdfjsLib.AbortException) { + return; + } + console.error(`#renderTextLayer: "${ex}".`); + error = ex; + } + this.eventBus.dispatch("textlayerrendered", { + source: this, + pageNumber: this.id, + numTextDivs: textLayer.numTextDivs, + error + }); + this.#renderStructTreeLayer(); + } + async #renderStructTreeLayer() { + if (!this.textLayer) { + return; + } + this.structTreeLayer ||= new _struct_tree_layer_builder.StructTreeLayerBuilder(); + const tree = await (!this.structTreeLayer.renderingDone ? this.pdfPage.getStructTree() : null); + const treeDom = this.structTreeLayer?.render(tree); + if (treeDom) { + this.canvas?.append(treeDom); + } + this.structTreeLayer?.show(); + } + async #buildXfaTextContentItems(textDivs) { + const text = await this.pdfPage.getTextContent(); + const items = []; + for (const item of text.items) { + items.push(item.str); + } + this._textHighlighter.setTextMapping(textDivs, items); + this._textHighlighter.enable(); + } + _resetZoomLayer(removeFromDOM = false) { + if (!this.zoomLayer) { + return; + } + const zoomLayerCanvas = this.zoomLayer.firstChild; + this.#viewportMap.delete(zoomLayerCanvas); + zoomLayerCanvas.width = 0; + zoomLayerCanvas.height = 0; + if (removeFromDOM) { + this.zoomLayer.remove(); + } + this.zoomLayer = null; + } + reset({ + keepZoomLayer = false, + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false + } = {}) { + this.cancelRendering({ + keepAnnotationLayer, + keepAnnotationEditorLayer, + keepXfaLayer, + keepTextLayer + }); + this.renderingState = _ui_utils.RenderingStates.INITIAL; + const div = this.div; + const childNodes = div.childNodes, + zoomLayerNode = keepZoomLayer && this.zoomLayer || null, + annotationLayerNode = keepAnnotationLayer && this.annotationLayer?.div || null, + annotationEditorLayerNode = keepAnnotationEditorLayer && this.annotationEditorLayer?.div || null, + xfaLayerNode = keepXfaLayer && this.xfaLayer?.div || null, + textLayerNode = keepTextLayer && this.textLayer?.div || null; + for (let i = childNodes.length - 1; i >= 0; i--) { + const node = childNodes[i]; + switch (node) { + case zoomLayerNode: + case annotationLayerNode: + case annotationEditorLayerNode: + case xfaLayerNode: + case textLayerNode: + continue; + } + node.remove(); + } + div.removeAttribute("data-loaded"); + if (annotationLayerNode) { + this.annotationLayer.hide(); + } + if (annotationEditorLayerNode) { + this.annotationEditorLayer.hide(); + } + if (xfaLayerNode) { + this.xfaLayer.hide(); + } + if (textLayerNode) { + this.textLayer.hide(); + } + this.structTreeLayer?.hide(); + if (!zoomLayerNode) { + if (this.canvas) { + this.#viewportMap.delete(this.canvas); + this.canvas.width = 0; + this.canvas.height = 0; + delete this.canvas; + } + this._resetZoomLayer(); + } + } + update({ + scale = 0, + rotation = null, + optionalContentConfigPromise = null, + drawingDelay = -1 + }) { + this.scale = scale || this.scale; + if (typeof rotation === "number") { + this.rotation = rotation; + } + if (optionalContentConfigPromise instanceof Promise) { + this._optionalContentConfigPromise = optionalContentConfigPromise; + optionalContentConfigPromise.then(optionalContentConfig => { + if (optionalContentConfigPromise !== this._optionalContentConfigPromise) { + return; + } + this.#useThumbnailCanvas.initialOptionalContent = optionalContentConfig.hasInitialVisibility; + }); + } + this.#useThumbnailCanvas.directDrawing = true; + const totalRotation = (this.rotation + this.pdfPageRotate) % 360; + this.viewport = this.viewport.clone({ + scale: this.scale * _pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS, + rotation: totalRotation + }); + this.#setDimensions(); + if (this._isStandalone) { + this._container?.style.setProperty("--scale-factor", this.viewport.scale); + } + if (this.canvas) { + let onlyCssZoom = false; + if (this.#hasRestrictedScaling) { + if (this.maxCanvasPixels === 0) { + onlyCssZoom = true; + } else if (this.maxCanvasPixels > 0) { + const { + width, + height + } = this.viewport; + const { + sx, + sy + } = this.outputScale; + onlyCssZoom = (Math.floor(width) * sx | 0) * (Math.floor(height) * sy | 0) > this.maxCanvasPixels; + } + } + const postponeDrawing = !onlyCssZoom && drawingDelay >= 0 && drawingDelay < 1000; + if (postponeDrawing || onlyCssZoom) { + if (postponeDrawing && this.renderingState !== _ui_utils.RenderingStates.FINISHED) { + this.cancelRendering({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true, + cancelExtraDelay: drawingDelay + }); + this.renderingState = _ui_utils.RenderingStates.FINISHED; + this.#useThumbnailCanvas.directDrawing = false; + } + this.cssTransform({ + target: this.canvas, + redrawAnnotationLayer: true, + redrawAnnotationEditorLayer: true, + redrawXfaLayer: true, + redrawTextLayer: !postponeDrawing, + hideTextLayer: postponeDrawing + }); + if (postponeDrawing) { + return; + } + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: true, + timestamp: performance.now(), + error: this.#renderError + }); + return; + } + if (!this.zoomLayer && !this.canvas.hidden) { + this.zoomLayer = this.canvas.parentNode; + this.zoomLayer.style.position = "absolute"; + } + } + if (this.zoomLayer) { + this.cssTransform({ + target: this.zoomLayer.firstChild + }); + } + this.reset({ + keepZoomLayer: true, + keepAnnotationLayer: true, + keepAnnotationEditorLayer: true, + keepXfaLayer: true, + keepTextLayer: true + }); + } + cancelRendering({ + keepAnnotationLayer = false, + keepAnnotationEditorLayer = false, + keepXfaLayer = false, + keepTextLayer = false, + cancelExtraDelay = 0 + } = {}) { + if (this.renderTask) { + this.renderTask.cancel(cancelExtraDelay); + this.renderTask = null; + } + this.resume = null; + if (this.textLayer && (!keepTextLayer || !this.textLayer.div)) { + this.textLayer.cancel(); + this.textLayer = null; + } + if (this.structTreeLayer && !this.textLayer) { + this.structTreeLayer = null; + } + if (this.annotationLayer && (!keepAnnotationLayer || !this.annotationLayer.div)) { + this.annotationLayer.cancel(); + this.annotationLayer = null; + this._annotationCanvasMap = null; + } + if (this.annotationEditorLayer && (!keepAnnotationEditorLayer || !this.annotationEditorLayer.div)) { + this.annotationEditorLayer.cancel(); + this.annotationEditorLayer = null; + } + if (this.xfaLayer && (!keepXfaLayer || !this.xfaLayer.div)) { + this.xfaLayer.cancel(); + this.xfaLayer = null; + this._textHighlighter?.disable(); + } + } + cssTransform({ + target, + redrawAnnotationLayer = false, + redrawAnnotationEditorLayer = false, + redrawXfaLayer = false, + redrawTextLayer = false, + hideTextLayer = false + }) { + if (!target.hasAttribute("zooming")) { + target.setAttribute("zooming", true); + const { + style + } = target; + style.width = style.height = ""; + } + const originalViewport = this.#viewportMap.get(target); + if (this.viewport !== originalViewport) { + const relativeRotation = this.viewport.rotation - originalViewport.rotation; + const absRotation = Math.abs(relativeRotation); + let scaleX = 1, + scaleY = 1; + if (absRotation === 90 || absRotation === 270) { + const { + width, + height + } = this.viewport; + scaleX = height / width; + scaleY = width / height; + } + target.style.transform = `rotate(${relativeRotation}deg) scale(${scaleX}, ${scaleY})`; + } + if (redrawAnnotationLayer && this.annotationLayer) { + this.#renderAnnotationLayer(); + } + if (redrawAnnotationEditorLayer && this.annotationEditorLayer) { + this.#renderAnnotationEditorLayer(); + } + if (redrawXfaLayer && this.xfaLayer) { + this.#renderXfaLayer(); + } + if (this.textLayer) { + if (hideTextLayer) { + this.textLayer.hide(); + this.structTreeLayer?.hide(); + } else if (redrawTextLayer) { + this.#renderTextLayer(); + } + } + } + get width() { + return this.viewport.width; + } + get height() { + return this.viewport.height; + } + getPagePoint(x, y) { + return this.viewport.convertToPdfPoint(x, y); + } + async #finishRenderTask(renderTask, error = null) { + if (renderTask === this.renderTask) { + this.renderTask = null; + } + if (error instanceof _pdfjsLib.RenderingCancelledException) { + this.#renderError = null; + return; + } + this.#renderError = error; + this.renderingState = _ui_utils.RenderingStates.FINISHED; + this._resetZoomLayer(true); + this.#useThumbnailCanvas.regularAnnotations = !renderTask.separateAnnots; + this.eventBus.dispatch("pagerendered", { + source: this, + pageNumber: this.id, + cssTransform: false, + timestamp: performance.now(), + error: this.#renderError + }); + if (error) { + throw error; + } + } + async draw() { + if (this.renderingState !== _ui_utils.RenderingStates.INITIAL) { + console.error("Must be in new state before drawing"); + this.reset(); + } + const { + div, + l10n, + pageColors, + pdfPage, + viewport + } = this; + if (!pdfPage) { + this.renderingState = _ui_utils.RenderingStates.FINISHED; + throw new Error("pdfPage is not loaded"); + } + this.renderingState = _ui_utils.RenderingStates.RUNNING; + const canvasWrapper = document.createElement("div"); + canvasWrapper.classList.add("canvasWrapper"); + div.append(canvasWrapper); + if (!this.textLayer && this.#textLayerMode !== _ui_utils.TextLayerMode.DISABLE && !pdfPage.isPureXfa) { + this._accessibilityManager ||= new _text_accessibility.TextAccessibilityManager(); + this.textLayer = new _text_layer_builder.TextLayerBuilder({ + highlighter: this._textHighlighter, + accessibilityManager: this._accessibilityManager, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, + enablePermissions: this.#textLayerMode === _ui_utils.TextLayerMode.ENABLE_PERMISSIONS + }); + div.append(this.textLayer.div); + } + if (!this.annotationLayer && this.#annotationMode !== _pdfjsLib.AnnotationMode.DISABLE) { + const { + annotationStorage, + downloadManager, + enableScripting, + fieldObjectsPromise, + hasJSActionsPromise, + linkService + } = this.#layerProperties(); + this._annotationCanvasMap ||= new Map(); + this.annotationLayer = new _annotation_layer_builder.AnnotationLayerBuilder({ + pageDiv: div, + pdfPage, + annotationStorage, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.#annotationMode === _pdfjsLib.AnnotationMode.ENABLE_FORMS, + linkService, + downloadManager, + l10n, + enableScripting, + hasJSActionsPromise, + fieldObjectsPromise, + annotationCanvasMap: this._annotationCanvasMap, + accessibilityManager: this._accessibilityManager + }); + } + const renderContinueCallback = cont => { + showCanvas?.(false); + if (this.renderingQueue && !this.renderingQueue.isHighestPriority(this)) { + this.renderingState = _ui_utils.RenderingStates.PAUSED; + this.resume = () => { + this.renderingState = _ui_utils.RenderingStates.RUNNING; + cont(); + }; + return; + } + cont(); + }; + const { + width, + height + } = viewport; + const canvas = document.createElement("canvas"); + canvas.setAttribute("role", "presentation"); + canvas.hidden = true; + const hasHCM = !!(pageColors?.background && pageColors?.foreground); + let showCanvas = isLastShow => { + if (!hasHCM || isLastShow) { + canvas.hidden = false; + showCanvas = null; + } + }; + canvasWrapper.append(canvas); + this.canvas = canvas; + const ctx = canvas.getContext("2d", { + alpha: false + }); + const outputScale = this.outputScale = new _ui_utils.OutputScale(); + if (this.maxCanvasPixels === 0) { + const invScale = 1 / this.scale; + outputScale.sx *= invScale; + outputScale.sy *= invScale; + this.#hasRestrictedScaling = true; + } else if (this.maxCanvasPixels > 0) { + const pixelsInViewport = width * height; + const maxScale = Math.sqrt(this.maxCanvasPixels / pixelsInViewport); + if (outputScale.sx > maxScale || outputScale.sy > maxScale) { + outputScale.sx = maxScale; + outputScale.sy = maxScale; + this.#hasRestrictedScaling = true; + } else { + this.#hasRestrictedScaling = false; + } + } + const sfx = (0, _ui_utils.approximateFraction)(outputScale.sx); + const sfy = (0, _ui_utils.approximateFraction)(outputScale.sy); + canvas.width = (0, _ui_utils.roundToDivide)(width * outputScale.sx, sfx[0]); + canvas.height = (0, _ui_utils.roundToDivide)(height * outputScale.sy, sfy[0]); + const { + style + } = canvas; + style.width = (0, _ui_utils.roundToDivide)(width, sfx[1]) + "px"; + style.height = (0, _ui_utils.roundToDivide)(height, sfy[1]) + "px"; + this.#viewportMap.set(canvas, viewport); + const transform = outputScale.scaled ? [outputScale.sx, 0, 0, outputScale.sy, 0, 0] : null; + const renderContext = { + canvasContext: ctx, + transform, + viewport, + annotationMode: this.#annotationMode, + optionalContentConfigPromise: this._optionalContentConfigPromise, + annotationCanvasMap: this._annotationCanvasMap, + pageColors + }; + const renderTask = this.renderTask = this.pdfPage.render(renderContext); + renderTask.onContinue = renderContinueCallback; + const resultPromise = renderTask.promise.then(async () => { + showCanvas?.(true); + await this.#finishRenderTask(renderTask); + this.#renderTextLayer(); + if (this.annotationLayer) { + await this.#renderAnnotationLayer(); + } + if (!this.annotationEditorLayer) { + const { + annotationEditorUIManager + } = this.#layerProperties(); + if (!annotationEditorUIManager) { + return; + } + this.annotationEditorLayer = new _annotation_editor_layer_builder.AnnotationEditorLayerBuilder({ + uiManager: annotationEditorUIManager, + pageDiv: div, + pdfPage, + l10n, + accessibilityManager: this._accessibilityManager, + annotationLayer: this.annotationLayer?.annotationLayer + }); + } + this.#renderAnnotationEditorLayer(); + }, error => { + if (!(error instanceof _pdfjsLib.RenderingCancelledException)) { + showCanvas?.(true); + } + return this.#finishRenderTask(renderTask, error); + }); + if (pdfPage.isPureXfa) { + if (!this.xfaLayer) { + const { + annotationStorage, + linkService + } = this.#layerProperties(); + this.xfaLayer = new _xfa_layer_builder.XfaLayerBuilder({ + pageDiv: div, + pdfPage, + annotationStorage, + linkService + }); + } else if (this.xfaLayer.div) { + div.append(this.xfaLayer.div); + } + this.#renderXfaLayer(); + } + div.setAttribute("data-loaded", true); + this.eventBus.dispatch("pagerender", { + source: this, + pageNumber: this.id + }); + return resultPromise; + } + 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"); + } + } + get thumbnailCanvas() { + const { + directDrawing, + initialOptionalContent, + regularAnnotations + } = this.#useThumbnailCanvas; + return directDrawing && initialOptionalContent && regularAnnotations ? this.canvas : null; + } +} +exports.PDFPageView = PDFPageView; + +/***/ }), +/* 32 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationEditorLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(4); +var _l10n_utils = __webpack_require__(30); +class AnnotationEditorLayerBuilder { + #annotationLayer = null; + #uiManager; + constructor(options) { + this.pageDiv = options.pageDiv; + this.pdfPage = options.pdfPage; + this.accessibilityManager = options.accessibilityManager; + this.l10n = options.l10n || _l10n_utils.NullL10n; + this.annotationEditorLayer = null; + this.div = null; + this._cancelled = false; + this.#uiManager = options.uiManager; + this.#annotationLayer = options.annotationLayer || null; + } + async render(viewport, intent = "display") { + if (intent !== "display") { + return; + } + if (this._cancelled) { + return; + } + const clonedViewport = viewport.clone({ + dontFlip: true + }); + if (this.div) { + this.annotationEditorLayer.update({ + viewport: clonedViewport + }); + this.show(); + return; + } + const div = this.div = document.createElement("div"); + div.className = "annotationEditorLayer"; + div.tabIndex = 0; + div.hidden = true; + div.dir = this.#uiManager.direction; + this.pageDiv.append(div); + this.annotationEditorLayer = new _pdfjsLib.AnnotationEditorLayer({ + uiManager: this.#uiManager, + div, + accessibilityManager: this.accessibilityManager, + pageIndex: this.pdfPage.pageNumber - 1, + l10n: this.l10n, + viewport: clonedViewport, + annotationLayer: this.#annotationLayer + }); + const parameters = { + viewport: clonedViewport, + div, + annotations: null, + intent + }; + this.annotationEditorLayer.render(parameters); + this.show(); + } + cancel() { + this._cancelled = true; + if (!this.div) { + return; + } + this.pageDiv = null; + this.annotationEditorLayer.destroy(); + this.div.remove(); + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + show() { + if (!this.div || this.annotationEditorLayer.isEmpty) { + return; + } + this.div.hidden = false; + } +} +exports.AnnotationEditorLayerBuilder = AnnotationEditorLayerBuilder; + +/***/ }), +/* 33 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.AnnotationLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(4); +var _l10n_utils = __webpack_require__(30); +var _ui_utils = __webpack_require__(3); +class AnnotationLayerBuilder { + #onPresentationModeChanged = null; + constructor({ + pageDiv, + pdfPage, + linkService, + downloadManager, + annotationStorage = null, + imageResourcesPath = "", + renderForms = true, + l10n = _l10n_utils.NullL10n, + enableScripting = false, + hasJSActionsPromise = null, + fieldObjectsPromise = null, + annotationCanvasMap = null, + accessibilityManager = null + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.linkService = linkService; + this.downloadManager = downloadManager; + this.imageResourcesPath = imageResourcesPath; + this.renderForms = renderForms; + this.l10n = l10n; + this.annotationStorage = annotationStorage; + this.enableScripting = enableScripting; + this._hasJSActionsPromise = hasJSActionsPromise || Promise.resolve(false); + this._fieldObjectsPromise = fieldObjectsPromise || Promise.resolve(null); + this._annotationCanvasMap = annotationCanvasMap; + this._accessibilityManager = accessibilityManager; + this.annotationLayer = null; + this.div = null; + this._cancelled = false; + this._eventBus = linkService.eventBus; + } + async render(viewport, intent = "display") { + if (this.div) { + if (this._cancelled || !this.annotationLayer) { + return; + } + this.annotationLayer.update({ + viewport: viewport.clone({ + dontFlip: true + }) + }); + return; + } + const [annotations, hasJSActions, fieldObjects] = await Promise.all([this.pdfPage.getAnnotations({ + intent + }), this._hasJSActionsPromise, this._fieldObjectsPromise]); + if (this._cancelled) { + return; + } + const div = this.div = document.createElement("div"); + div.className = "annotationLayer"; + this.pageDiv.append(div); + if (annotations.length === 0) { + this.hide(); + return; + } + this.annotationLayer = new _pdfjsLib.AnnotationLayer({ + div, + accessibilityManager: this._accessibilityManager, + annotationCanvasMap: this._annotationCanvasMap, + l10n: this.l10n, + page: this.pdfPage, + viewport: viewport.clone({ + dontFlip: true + }) + }); + await this.annotationLayer.render({ + annotations, + imageResourcesPath: this.imageResourcesPath, + renderForms: this.renderForms, + linkService: this.linkService, + downloadManager: this.downloadManager, + annotationStorage: this.annotationStorage, + enableScripting: this.enableScripting, + hasJSActions, + fieldObjects + }); + if (this.linkService.isInPresentationMode) { + this.#updatePresentationModeState(_ui_utils.PresentationModeState.FULLSCREEN); + } + if (!this.#onPresentationModeChanged) { + this.#onPresentationModeChanged = evt => { + this.#updatePresentationModeState(evt.state); + }; + this._eventBus?._on("presentationmodechanged", this.#onPresentationModeChanged); + } + } + cancel() { + this._cancelled = true; + if (this.#onPresentationModeChanged) { + this._eventBus?._off("presentationmodechanged", this.#onPresentationModeChanged); + this.#onPresentationModeChanged = null; + } + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } + #updatePresentationModeState(state) { + if (!this.div) { + return; + } + let disableFormElements = false; + switch (state) { + case _ui_utils.PresentationModeState.FULLSCREEN: + disableFormElements = true; + break; + case _ui_utils.PresentationModeState.NORMAL: + break; + default: + return; + } + for (const section of this.div.childNodes) { + if (section.hasAttribute("data-internal-link")) { + continue; + } + section.inert = disableFormElements; + } + } +} +exports.AnnotationLayerBuilder = AnnotationLayerBuilder; + +/***/ }), +/* 34 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.StructTreeLayerBuilder = void 0; +var _ui_utils = __webpack_require__(3); +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+)$/; +class StructTreeLayerBuilder { + #treeDom = undefined; + get renderingDone() { + return this.#treeDom !== undefined; + } + render(structTree) { + if (this.#treeDom !== undefined) { + return this.#treeDom; + } + const treeDom = this.#walk(structTree); + treeDom?.classList.add("structTree"); + return this.#treeDom = treeDom; + } + hide() { + if (this.#treeDom && !this.#treeDom.hidden) { + this.#treeDom.hidden = true; + } + } + show() { + if (this.#treeDom?.hidden) { + this.#treeDom.hidden = false; + } + } + #setAttributes(structElement, htmlElement) { + const { + alt, + id, + lang + } = structElement; + if (alt !== undefined) { + htmlElement.setAttribute("aria-label", (0, _ui_utils.removeNullCharacters)(alt)); + } + if (id !== undefined) { + htmlElement.setAttribute("aria-owns", id); + } + if (lang !== undefined) { + htmlElement.setAttribute("lang", (0, _ui_utils.removeNullCharacters)(lang, true)); + } + } + #walk(node) { + if (!node) { + return null; + } + const element = document.createElement("span"); + if ("role" in node) { + const { + role + } = node; + const match = role.match(HEADING_PATTERN); + 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.append(this.#walk(kid)); + } + } + } + return element; + } +} +exports.StructTreeLayerBuilder = StructTreeLayerBuilder; + +/***/ }), +/* 35 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextAccessibilityManager = void 0; +var _ui_utils = __webpack_require__(3); +class TextAccessibilityManager { + #enabled = false; + #textChildren = null; + #textNodes = new Map(); + #waitingElements = new Map(); + setTextMapping(textDivs) { + this.#textChildren = textDivs; + } + static #compareElementPositions(e1, e2) { + const rect1 = e1.getBoundingClientRect(); + const rect2 = e2.getBoundingClientRect(); + if (rect1.width === 0 && rect1.height === 0) { + return +1; + } + if (rect2.width === 0 && rect2.height === 0) { + return -1; + } + const top1 = rect1.y; + const bot1 = rect1.y + rect1.height; + const mid1 = rect1.y + rect1.height / 2; + const top2 = rect2.y; + const bot2 = rect2.y + rect2.height; + const mid2 = rect2.y + rect2.height / 2; + if (mid1 <= top2 && mid2 >= bot1) { + return -1; + } + if (mid2 <= top1 && mid1 >= bot2) { + return +1; + } + const centerX1 = rect1.x + rect1.width / 2; + const centerX2 = rect2.x + rect2.width / 2; + return centerX1 - centerX2; + } + enable() { + if (this.#enabled) { + throw new Error("TextAccessibilityManager is already enabled."); + } + if (!this.#textChildren) { + throw new Error("Text divs and strings have not been set."); + } + this.#enabled = true; + this.#textChildren = this.#textChildren.slice(); + this.#textChildren.sort(TextAccessibilityManager.#compareElementPositions); + if (this.#textNodes.size > 0) { + const textChildren = this.#textChildren; + for (const [id, nodeIndex] of this.#textNodes) { + const element = document.getElementById(id); + if (!element) { + this.#textNodes.delete(id); + continue; + } + this.#addIdToAriaOwns(id, textChildren[nodeIndex]); + } + } + for (const [element, isRemovable] of this.#waitingElements) { + this.addPointerInTextLayer(element, isRemovable); + } + this.#waitingElements.clear(); + } + disable() { + if (!this.#enabled) { + return; + } + this.#waitingElements.clear(); + this.#textChildren = null; + this.#enabled = false; + } + removePointerInTextLayer(element) { + if (!this.#enabled) { + this.#waitingElements.delete(element); + return; + } + const children = this.#textChildren; + if (!children || children.length === 0) { + return; + } + const { + id + } = element; + const nodeIndex = this.#textNodes.get(id); + if (nodeIndex === undefined) { + return; + } + const node = children[nodeIndex]; + this.#textNodes.delete(id); + let owns = node.getAttribute("aria-owns"); + if (owns?.includes(id)) { + owns = owns.split(" ").filter(x => x !== id).join(" "); + if (owns) { + node.setAttribute("aria-owns", owns); + } else { + node.removeAttribute("aria-owns"); + node.setAttribute("role", "presentation"); + } + } + } + #addIdToAriaOwns(id, node) { + const owns = node.getAttribute("aria-owns"); + if (!owns?.includes(id)) { + node.setAttribute("aria-owns", owns ? `${owns} ${id}` : id); + } + node.removeAttribute("role"); + } + addPointerInTextLayer(element, isRemovable) { + const { + id + } = element; + if (!id) { + return null; + } + if (!this.#enabled) { + this.#waitingElements.set(element, isRemovable); + return null; + } + if (isRemovable) { + this.removePointerInTextLayer(element); + } + const children = this.#textChildren; + if (!children || children.length === 0) { + return null; + } + const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(element, node) < 0); + const nodeIndex = Math.max(0, index - 1); + const child = children[nodeIndex]; + this.#addIdToAriaOwns(id, child); + this.#textNodes.set(id, nodeIndex); + const parent = child.parentNode; + return parent?.classList.contains("markedContent") ? parent.id : null; + } + moveElementInDOM(container, element, contentElement, isRemovable) { + const id = this.addPointerInTextLayer(contentElement, isRemovable); + if (!container.hasChildNodes()) { + container.append(element); + return id; + } + const children = Array.from(container.childNodes).filter(node => node !== element); + if (children.length === 0) { + return id; + } + const elementToCompare = contentElement || element; + const index = (0, _ui_utils.binarySearchFirstItem)(children, node => TextAccessibilityManager.#compareElementPositions(elementToCompare, node) < 0); + if (index === 0) { + children[0].before(element); + } else { + children[index - 1].after(element); + } + return id; + } +} +exports.TextAccessibilityManager = TextAccessibilityManager; + +/***/ }), +/* 36 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextHighlighter = void 0; +class TextHighlighter { + constructor({ + findController, + eventBus, + pageIndex + }) { + this.findController = findController; + this.matches = []; + this.eventBus = eventBus; + this.pageIdx = pageIndex; + this._onUpdateTextLayerMatches = null; + this.textDivs = null; + this.textContentItemsStr = null; + this.enabled = false; + } + setTextMapping(divs, texts) { + this.textDivs = divs; + this.textContentItemsStr = texts; + } + enable() { + if (!this.textDivs || !this.textContentItemsStr) { + throw new Error("Text divs and strings have not been set."); + } + if (this.enabled) { + throw new Error("TextHighlighter is already enabled."); + } + this.enabled = true; + if (!this._onUpdateTextLayerMatches) { + this._onUpdateTextLayerMatches = evt => { + if (evt.pageIndex === this.pageIdx || evt.pageIndex === -1) { + this._updateMatches(); + } + }; + this.eventBus._on("updatetextlayermatches", this._onUpdateTextLayerMatches); + } + this._updateMatches(); + } + disable() { + if (!this.enabled) { + return; + } + this.enabled = false; + if (this._onUpdateTextLayerMatches) { + this.eventBus._off("updatetextlayermatches", this._onUpdateTextLayerMatches); + this._onUpdateTextLayerMatches = null; + } + this._updateMatches(true); + } + _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++; + } + if (i === textContentItemsStr.length) { + console.error("Could not find a matching mapping"); + } + const match = { + begin: { + divIdx: i, + offset: matchIdx - iIndex + } + }; + matchIdx += matchesLength[m]; + 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; + } + _renderMatches(matches) { + if (matches.length === 0) { + return; + } + const { + findController, + pageIdx + } = this; + const { + 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 = ""; + return appendTextToDiv(divIdx, 0, begin.offset, className); + } + function appendTextToDiv(divIdx, fromOffset, toOffset, className) { + let div = textDivs[divIdx]; + if (div.nodeType === Node.TEXT_NODE) { + const span = document.createElement("span"); + div.before(span); + span.append(div); + textDivs[divIdx] = span; + div = span; + } + const content = textContentItemsStr[divIdx].substring(fromOffset, toOffset); + const node = document.createTextNode(content); + if (className) { + const span = document.createElement("span"); + span.className = `${className} appended`; + span.append(node); + div.append(span); + return className.includes("selected") ? span.offsetLeft : 0; + } + div.append(node); + return 0; + } + let i0 = selectedMatchIdx, + i1 = i0 + 1; + if (highlightAll) { + i0 = 0; + i1 = matches.length; + } else if (!isSelectedPage) { + return; + } + let lastDivIdx = -1; + let lastOffset = -1; + for (let i = i0; i < i1; i++) { + const match = matches[i]; + const begin = match.begin; + if (begin.divIdx === lastDivIdx && begin.offset === lastOffset) { + continue; + } + lastDivIdx = begin.divIdx; + lastOffset = begin.offset; + const end = match.end; + const isSelected = isSelectedPage && i === selectedMatchIdx; + const highlightSuffix = isSelected ? " selected" : ""; + let selectedLeft = 0; + 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) { + selectedLeft = appendTextToDiv(begin.divIdx, begin.offset, end.offset, "highlight" + highlightSuffix); + } else { + selectedLeft = 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 (isSelected) { + findController.scrollMatchIntoView({ + element: textDivs[begin.divIdx], + selectedLeft, + pageIndex: pageIdx, + matchIndex: selectedMatchIdx + }); + } + } + if (prevEnd) { + appendTextToDiv(prevEnd.divIdx, prevEnd.offset, infinity.offset); + } + } + _updateMatches(reset = false) { + if (!this.enabled && !reset) { + return; + } + const { + findController, + matches, + pageIdx + } = this; + const { + textContentItemsStr, + textDivs + } = this; + let clearedUntilDivIdx = -1; + for (const match of matches) { + 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 || reset) { + return; + } + const pageMatches = findController.pageMatches[pageIdx] || null; + const pageMatchesLength = findController.pageMatchesLength[pageIdx] || null; + this.matches = this._convertMatches(pageMatches, pageMatchesLength); + this._renderMatches(this.matches); + } +} +exports.TextHighlighter = TextHighlighter; + +/***/ }), +/* 37 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.TextLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(4); +var _ui_utils = __webpack_require__(3); +class TextLayerBuilder { + #enablePermissions = false; + #rotation = 0; + #scale = 0; + #textContentSource = null; + constructor({ + highlighter = null, + accessibilityManager = null, + isOffscreenCanvasSupported = true, + enablePermissions = false + }) { + this.textContentItemsStr = []; + this.renderingDone = false; + this.textDivs = []; + this.textDivProperties = new WeakMap(); + this.textLayerRenderTask = null; + this.highlighter = highlighter; + this.accessibilityManager = accessibilityManager; + this.isOffscreenCanvasSupported = isOffscreenCanvasSupported; + this.#enablePermissions = enablePermissions === true; + this.div = document.createElement("div"); + this.div.className = "textLayer"; + this.hide(); + } + #finishRendering() { + this.renderingDone = true; + const endOfContent = document.createElement("div"); + endOfContent.className = "endOfContent"; + this.div.append(endOfContent); + this.#bindMouse(); + } + get numTextDivs() { + return this.textDivs.length; + } + async render(viewport) { + if (!this.#textContentSource) { + throw new Error('No "textContentSource" parameter specified.'); + } + const scale = viewport.scale * (globalThis.devicePixelRatio || 1); + const { + rotation + } = viewport; + if (this.renderingDone) { + const mustRotate = rotation !== this.#rotation; + const mustRescale = scale !== this.#scale; + if (mustRotate || mustRescale) { + this.hide(); + (0, _pdfjsLib.updateTextLayer)({ + container: this.div, + viewport, + textDivs: this.textDivs, + textDivProperties: this.textDivProperties, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported, + mustRescale, + mustRotate + }); + this.#scale = scale; + this.#rotation = rotation; + } + this.show(); + return; + } + this.cancel(); + this.highlighter?.setTextMapping(this.textDivs, this.textContentItemsStr); + this.accessibilityManager?.setTextMapping(this.textDivs); + this.textLayerRenderTask = (0, _pdfjsLib.renderTextLayer)({ + textContentSource: this.#textContentSource, + container: this.div, + viewport, + textDivs: this.textDivs, + textDivProperties: this.textDivProperties, + textContentItemsStr: this.textContentItemsStr, + isOffscreenCanvasSupported: this.isOffscreenCanvasSupported + }); + await this.textLayerRenderTask.promise; + this.#finishRendering(); + this.#scale = scale; + this.#rotation = rotation; + this.show(); + this.accessibilityManager?.enable(); + } + hide() { + if (!this.div.hidden) { + this.highlighter?.disable(); + this.div.hidden = true; + } + } + show() { + if (this.div.hidden && this.renderingDone) { + this.div.hidden = false; + this.highlighter?.enable(); + } + } + cancel() { + if (this.textLayerRenderTask) { + this.textLayerRenderTask.cancel(); + this.textLayerRenderTask = null; + } + this.highlighter?.disable(); + this.accessibilityManager?.disable(); + this.textContentItemsStr.length = 0; + this.textDivs.length = 0; + this.textDivProperties = new WeakMap(); + } + setTextContentSource(source) { + this.cancel(); + this.#textContentSource = source; + } + #bindMouse() { + const { + div + } = this; + div.addEventListener("mousedown", evt => { + const end = div.querySelector(".endOfContent"); + if (!end) { + return; + } + let adjustTop = evt.target !== div; + adjustTop &&= getComputedStyle(end).getPropertyValue("-moz-user-select") !== "none"; + if (adjustTop) { + const divBounds = div.getBoundingClientRect(); + const r = Math.max(0, (evt.pageY - divBounds.top) / divBounds.height); + end.style.top = (r * 100).toFixed(2) + "%"; + } + end.classList.add("active"); + }); + div.addEventListener("mouseup", () => { + const end = div.querySelector(".endOfContent"); + if (!end) { + return; + } + end.style.top = ""; + end.classList.remove("active"); + }); + div.addEventListener("copy", event => { + if (!this.#enablePermissions) { + const selection = document.getSelection(); + event.clipboardData.setData("text/plain", (0, _ui_utils.removeNullCharacters)((0, _pdfjsLib.normalizeUnicode)(selection.toString()))); + } + event.preventDefault(); + event.stopPropagation(); + }); + } +} +exports.TextLayerBuilder = TextLayerBuilder; + +/***/ }), +/* 38 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.XfaLayerBuilder = void 0; +var _pdfjsLib = __webpack_require__(4); +class XfaLayerBuilder { + constructor({ + pageDiv, + pdfPage, + annotationStorage = null, + linkService, + xfaHtml = null + }) { + this.pageDiv = pageDiv; + this.pdfPage = pdfPage; + this.annotationStorage = annotationStorage; + this.linkService = linkService; + this.xfaHtml = xfaHtml; + this.div = null; + this._cancelled = false; + } + async render(viewport, intent = "display") { + if (intent === "print") { + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml: this.xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + const div = document.createElement("div"); + this.pageDiv.append(div); + parameters.div = div; + return _pdfjsLib.XfaLayer.render(parameters); + } + const xfaHtml = await this.pdfPage.getXfa(); + if (this._cancelled || !xfaHtml) { + return { + textDivs: [] + }; + } + const parameters = { + viewport: viewport.clone({ + dontFlip: true + }), + div: this.div, + xfaHtml, + annotationStorage: this.annotationStorage, + linkService: this.linkService, + intent + }; + if (this.div) { + return _pdfjsLib.XfaLayer.update(parameters); + } + this.div = document.createElement("div"); + this.pageDiv.append(this.div); + parameters.div = this.div; + return _pdfjsLib.XfaLayer.render(parameters); + } + cancel() { + this._cancelled = true; + } + hide() { + if (!this.div) { + return; + } + this.div.hidden = true; + } +} +exports.XfaLayerBuilder = XfaLayerBuilder; + +/***/ }), +/* 39 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.SecondaryToolbar = void 0; +var _ui_utils = __webpack_require__(3); +var _pdf_viewer = __webpack_require__(29); +class SecondaryToolbar { + constructor(options, eventBus) { + this.toolbar = options.toolbar; + this.toggleButton = options.toggleButton; + this.buttons = [{ + element: options.presentationModeButton, + eventName: "presentationmode", + close: true + }, { + element: options.printButton, + eventName: "print", + close: true + }, { + element: options.downloadButton, + eventName: "download", + close: true + }, { + element: options.viewBookmarkButton, + eventName: null, + close: true + }, { + element: options.firstPageButton, + eventName: "firstpage", + close: true + }, { + element: options.lastPageButton, + eventName: "lastpage", + close: true + }, { + element: options.pageRotateCwButton, + eventName: "rotatecw", + close: false + }, { + element: options.pageRotateCcwButton, + eventName: "rotateccw", + close: false + }, { + element: options.cursorSelectToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: _ui_utils.CursorTool.SELECT + }, + close: true + }, { + element: options.cursorHandToolButton, + eventName: "switchcursortool", + eventDetails: { + tool: _ui_utils.CursorTool.HAND + }, + close: true + }, { + element: options.scrollPageButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.PAGE + }, + close: true + }, { + element: options.scrollVerticalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.VERTICAL + }, + close: true + }, { + element: options.scrollHorizontalButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.HORIZONTAL + }, + close: true + }, { + element: options.scrollWrappedButton, + eventName: "switchscrollmode", + eventDetails: { + mode: _ui_utils.ScrollMode.WRAPPED + }, + close: true + }, { + element: options.spreadNoneButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils.SpreadMode.NONE + }, + close: true + }, { + element: options.spreadOddButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils.SpreadMode.ODD + }, + close: true + }, { + element: options.spreadEvenButton, + eventName: "switchspreadmode", + eventDetails: { + mode: _ui_utils.SpreadMode.EVEN + }, + close: true + }, { + element: options.documentPropertiesButton, + eventName: "documentproperties", + close: true + }]; + this.buttons.push({ + element: options.openFileButton, + eventName: "openfile", + close: true + }); + this.items = { + firstPage: options.firstPageButton, + lastPage: options.lastPageButton, + pageRotateCw: options.pageRotateCwButton, + pageRotateCcw: options.pageRotateCcwButton + }; + this.eventBus = eventBus; + this.opened = false; + this.#bindClickListeners(); + this.#bindCursorToolsListener(options); + this.#bindScrollModeListener(options); + this.#bindSpreadModeListener(options); + this.reset(); + } + get isOpen() { + return this.opened; + } + setPageNumber(pageNumber) { + this.pageNumber = pageNumber; + this.#updateUIState(); + } + setPagesCount(pagesCount) { + this.pagesCount = pagesCount; + 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) { + this.eventBus.dispatch(eventName, { + source: this, + ...eventDetails + }); + } + if (close) { + this.close(); + } + this.eventBus.dispatch("reporttelemetry", { + source: this, + details: { + type: "buttons", + data: { + id: element.id + } + } + }); + }); + } + } + #bindCursorToolsListener({ + cursorSelectToolButton, + cursorHandToolButton + }) { + this.eventBus._on("cursortoolchanged", ({ + tool + }) => { + (0, _ui_utils.toggleCheckedBtn)(cursorSelectToolButton, tool === _ui_utils.CursorTool.SELECT); + (0, _ui_utils.toggleCheckedBtn)(cursorHandToolButton, tool === _ui_utils.CursorTool.HAND); + }); + } + #bindScrollModeListener({ + scrollPageButton, + scrollVerticalButton, + scrollHorizontalButton, + scrollWrappedButton, + spreadNoneButton, + spreadOddButton, + spreadEvenButton + }) { + const scrollModeChanged = ({ + mode + }) => { + (0, _ui_utils.toggleCheckedBtn)(scrollPageButton, mode === _ui_utils.ScrollMode.PAGE); + (0, _ui_utils.toggleCheckedBtn)(scrollVerticalButton, mode === _ui_utils.ScrollMode.VERTICAL); + (0, _ui_utils.toggleCheckedBtn)(scrollHorizontalButton, mode === _ui_utils.ScrollMode.HORIZONTAL); + (0, _ui_utils.toggleCheckedBtn)(scrollWrappedButton, mode === _ui_utils.ScrollMode.WRAPPED); + const forceScrollModePage = this.pagesCount > _pdf_viewer.PagesCountLimit.FORCE_SCROLL_MODE_PAGE; + scrollPageButton.disabled = forceScrollModePage; + scrollVerticalButton.disabled = forceScrollModePage; + scrollHorizontalButton.disabled = forceScrollModePage; + scrollWrappedButton.disabled = forceScrollModePage; + const isHorizontal = mode === _ui_utils.ScrollMode.HORIZONTAL; + spreadNoneButton.disabled = isHorizontal; + spreadOddButton.disabled = isHorizontal; + spreadEvenButton.disabled = isHorizontal; + }; + this.eventBus._on("scrollmodechanged", scrollModeChanged); + this.eventBus._on("secondarytoolbarreset", evt => { + if (evt.source === this) { + scrollModeChanged({ + mode: _ui_utils.ScrollMode.VERTICAL + }); + } + }); + } + #bindSpreadModeListener({ + spreadNoneButton, + spreadOddButton, + spreadEvenButton + }) { + const spreadModeChanged = ({ + mode + }) => { + (0, _ui_utils.toggleCheckedBtn)(spreadNoneButton, mode === _ui_utils.SpreadMode.NONE); + (0, _ui_utils.toggleCheckedBtn)(spreadOddButton, mode === _ui_utils.SpreadMode.ODD); + (0, _ui_utils.toggleCheckedBtn)(spreadEvenButton, 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 + }); + } + }); + } + open() { + if (this.opened) { + return; + } + this.opened = true; + (0, _ui_utils.toggleExpandedBtn)(this.toggleButton, true, this.toolbar); + } + close() { + if (!this.opened) { + return; + } + this.opened = false; + (0, _ui_utils.toggleExpandedBtn)(this.toggleButton, false, this.toolbar); + } + toggle() { + if (this.opened) { + this.close(); + } else { + this.open(); + } + } +} +exports.SecondaryToolbar = SecondaryToolbar; + +/***/ }), +/* 40 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.Toolbar = void 0; +var _ui_utils = __webpack_require__(3); +var _pdfjsLib = __webpack_require__(4); +const PAGE_NUMBER_LOADING_INDICATOR = "visiblePageIsLoading"; +class Toolbar { + #wasLocalized = false; + constructor(options, eventBus, l10n) { + this.toolbar = options.container; + this.eventBus = eventBus; + this.l10n = l10n; + this.buttons = [{ + element: options.previous, + eventName: "previouspage" + }, { + element: options.next, + eventName: "nextpage" + }, { + element: options.zoomIn, + eventName: "zoomin" + }, { + element: options.zoomOut, + eventName: "zoomout" + }, { + element: options.print, + eventName: "print" + }, { + element: options.download, + eventName: "download" + }, { + element: options.editorFreeTextButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorFreeTextButton; + return classList.contains("toggled") ? _pdfjsLib.AnnotationEditorType.NONE : _pdfjsLib.AnnotationEditorType.FREETEXT; + } + } + }, { + element: options.editorInkButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorInkButton; + return classList.contains("toggled") ? _pdfjsLib.AnnotationEditorType.NONE : _pdfjsLib.AnnotationEditorType.INK; + } + } + }, { + element: options.editorStampButton, + eventName: "switchannotationeditormode", + eventDetails: { + get mode() { + const { + classList + } = options.editorStampButton; + return classList.contains("toggled") ? _pdfjsLib.AnnotationEditorType.NONE : _pdfjsLib.AnnotationEditorType.STAMP; + } + } + }]; + this.buttons.push({ + element: options.openFile, + eventName: "openfile" + }); + this.items = { + numPages: options.numPages, + pageNumber: options.pageNumber, + scaleSelect: options.scaleSelect, + customScaleOption: options.customScaleOption, + previous: options.previous, + next: options.next, + zoomIn: options.zoomIn, + zoomOut: options.zoomOut + }; + this.#bindListeners(options); + this.reset(); + } + setPageNumber(pageNumber, pageLabel) { + this.pageNumber = pageNumber; + this.pageLabel = pageLabel; + this.#updateUIState(false); + } + setPagesCount(pagesCount, hasPageLabels) { + this.pagesCount = pagesCount; + this.hasPageLabels = hasPageLabels; + this.#updateUIState(true); + } + setPageScale(pageScaleValue, pageScale) { + this.pageScaleValue = (pageScaleValue || pageScale).toString(); + this.pageScale = pageScale; + 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(); + this.eventBus.dispatch("toolbarreset", { + source: this + }); + } + #bindListeners(options) { + const { + pageNumber, + scaleSelect + } = this.items; + const self = this; + for (const { + element, + eventName, + eventDetails + } of this.buttons) { + element.addEventListener("click", evt => { + if (eventName !== null) { + this.eventBus.dispatch(eventName, { + source: this, + ...eventDetails + }); + } + }); + } + 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 = _pdfjsLib.noContextMenu; + this.eventBus._on("localized", () => { + this.#wasLocalized = true; + this.#adjustScaleWidth(); + this.#updateUIState(true); + }); + this.#bindEditorToolsListener(options); + } + #bindEditorToolsListener({ + editorFreeTextButton, + editorFreeTextParamsToolbar, + editorInkButton, + editorInkParamsToolbar, + editorStampButton, + editorStampParamsToolbar + }) { + const editorModeChanged = ({ + mode + }) => { + (0, _ui_utils.toggleCheckedBtn)(editorFreeTextButton, mode === _pdfjsLib.AnnotationEditorType.FREETEXT, editorFreeTextParamsToolbar); + (0, _ui_utils.toggleCheckedBtn)(editorInkButton, mode === _pdfjsLib.AnnotationEditorType.INK, editorInkParamsToolbar); + (0, _ui_utils.toggleCheckedBtn)(editorStampButton, mode === _pdfjsLib.AnnotationEditorType.STAMP, editorStampParamsToolbar); + const isDisable = mode === _pdfjsLib.AnnotationEditorType.DISABLE; + editorFreeTextButton.disabled = isDisable; + editorInkButton.disabled = isDisable; + editorStampButton.disabled = isDisable; + }; + this.eventBus._on("annotationeditormodechanged", editorModeChanged); + this.eventBus._on("toolbarreset", evt => { + if (evt.source === this) { + editorModeChanged({ + mode: _pdfjsLib.AnnotationEditorType.DISABLE + }); + } + }); + } + #updateUIState(resetNumPages = false) { + if (!this.#wasLocalized) { + return; + } + const { + pageNumber, + pagesCount, + pageScaleValue, + pageScale, + items + } = this; + if (resetNumPages) { + if (this.hasPageLabels) { + items.pageNumber.type = "text"; + } else { + items.pageNumber.type = "number"; + this.l10n.get("of_pages", { + pagesCount + }).then(msg => { + items.numPages.textContent = msg; + }); + } + items.pageNumber.max = pagesCount; + } + 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; + } + 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; + } + option.selected = true; + predefinedValueFound = true; + } + if (!predefinedValueFound) { + items.customScaleOption.textContent = msg; + items.customScaleOption.selected = true; + } + }); + } + updateLoadingIndicatorState(loading = false) { + const { + pageNumber + } = this.items; + pageNumber.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")]); + await _ui_utils.animationStarted; + const style = getComputedStyle(items.scaleSelect); + const scaleSelectWidth = parseFloat(style.getPropertyValue("--scale-select-width")); + const canvas = document.createElement("canvas"); + const ctx = canvas.getContext("2d", { + alpha: false + }); + ctx.font = `${style.fontSize} ${style.fontFamily}`; + let maxWidth = 0; + for (const predefinedValue of await predefinedValuesPromise) { + const { + width + } = ctx.measureText(predefinedValue); + if (width > maxWidth) { + maxWidth = width; + } + } + maxWidth += 0.3 * scaleSelectWidth; + if (maxWidth > scaleSelectWidth) { + const container = items.scaleSelect.parentNode; + container.style.setProperty("--scale-select-width", `${maxWidth}px`); + } + canvas.width = 0; + canvas.height = 0; + } +} +exports.Toolbar = Toolbar; + +/***/ }), +/* 41 */ +/***/ ((__unused_webpack_module, exports) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.ViewHistory = void 0; +const DEFAULT_VIEW_HISTORY_CACHE_SIZE = 20; +class ViewHistory { + constructor(fingerprint, cacheSize = DEFAULT_VIEW_HISTORY_CACHE_SIZE) { + this.fingerprint = fingerprint; + this.cacheSize = cacheSize; + this._initializedPromise = this._readFromStorage().then(databaseStr => { + const database = JSON.parse(databaseStr || "{}"); + let index = -1; + if (!Array.isArray(database.files)) { + database.files = []; + } else { + while (database.files.length >= this.cacheSize) { + database.files.shift(); + } + for (let i = 0, ii = database.files.length; i < ii; i++) { + const branch = database.files[i]; + if (branch.fingerprint === this.fingerprint) { + index = i; + break; + } + } + } + if (index === -1) { + index = database.files.push({ + fingerprint: this.fingerprint + }) - 1; + } + this.file = database.files[index]; + this.database = database; + }); + } + async _writeToStorage() { + const databaseStr = JSON.stringify(this.database); + localStorage.setItem("pdfjs.history", databaseStr); + } + async _readFromStorage() { + return localStorage.getItem("pdfjs.history"); + } + async set(name, val) { + await this._initializedPromise; + this.file[name] = val; + return this._writeToStorage(); + } + async setMultiple(properties) { + await this._initializedPromise; + for (const name in properties) { + this.file[name] = properties[name]; + } + return this._writeToStorage(); + } + async get(name, defaultValue) { + await this._initializedPromise; + const val = this.file[name]; + return val !== undefined ? val : defaultValue; + } + async getMultiple(properties) { + await this._initializedPromise; + const values = Object.create(null); + for (const name in properties) { + const val = this.file[name]; + values[name] = val !== undefined ? val : properties[name]; + } + return values; + } +} +exports.ViewHistory = ViewHistory; + +/***/ }), +/* 42 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.BasePreferences = void 0; +var _app_options = __webpack_require__(5); +class BasePreferences { + #defaults = Object.freeze({ + "annotationEditorMode": 0, + "annotationMode": 2, + "cursorToolOnLoad": 0, + "defaultZoomDelay": 400, + "defaultZoomValue": "", + "disablePageLabels": false, + "enablePermissions": false, + "enablePrintAutoRotate": true, + "enableScripting": true, + "enableStampEditor": true, + "externalLinkTarget": 0, + "historyUpdateUrl": false, + "ignoreDestinationZoom": false, + "forcePageColors": false, + "pageColorsBackground": "Canvas", + "pageColorsForeground": "CanvasText", + "pdfBugEnabled": false, + "sidebarViewOnLoad": -1, + "scrollModeOnLoad": -1, + "spreadModeOnLoad": -1, + "textLayerMode": 1, + "viewerCssTheme": 0, + "viewOnLoad": 0, + "disableAutoFetch": false, + "disableFontFace": false, + "disableRange": false, + "disableStream": false, + "enableXfa": true + }); + #prefs = Object.create(null); + #initializedPromise = null; + constructor() { + if (this.constructor === BasePreferences) { + throw new Error("Cannot initialize BasePreferences."); + } + this.#initializedPromise = this._readFromStorage(this.#defaults).then(prefs => { + for (const name in this.#defaults) { + const prefValue = prefs?.[name]; + if (typeof prefValue === typeof this.#defaults[name]) { + this.#prefs[name] = prefValue; + } + } + }); + } + async _writeToStorage(prefObj) { + throw new Error("Not implemented: _writeToStorage"); + } + async _readFromStorage(prefObj) { + throw new Error("Not implemented: _readFromStorage"); + } + async reset() { + await this.#initializedPromise; + const prefs = this.#prefs; + this.#prefs = Object.create(null); + return this._writeToStorage(this.#defaults).catch(reason => { + this.#prefs = prefs; + throw reason; + }); + } + async set(name, value) { + await this.#initializedPromise; + const defaultValue = this.#defaults[name], + prefs = this.#prefs; + 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, + 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}.`); + } + } else if (valueType === "number" && !Number.isInteger(value)) { + throw new Error(`Set preference: "${value}" must be an integer.`); + } + this.#prefs[name] = value; + return this._writeToStorage(this.#prefs).catch(reason => { + this.#prefs = prefs; + throw reason; + }); + } + async get(name) { + await this.#initializedPromise; + const defaultValue = this.#defaults[name]; + if (defaultValue === undefined) { + throw new Error(`Get preference: "${name}" is undefined.`); + } + return this.#prefs[name] ?? defaultValue; + } + async getAll() { + await this.#initializedPromise; + const obj = Object.create(null); + for (const name in this.#defaults) { + obj[name] = this.#prefs[name] ?? this.#defaults[name]; + } + return obj; + } +} +exports.BasePreferences = BasePreferences; + +/***/ }), +/* 43 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.DownloadManager = void 0; +var _pdfjsLib = __webpack_require__(4); +; +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"; + if ("download" in a) { + a.download = filename; + } + (document.body || document.documentElement).append(a); + a.click(); + a.remove(); +} +class DownloadManager { + #openBlobUrls = new WeakMap(); + downloadUrl(url, filename, _options) { + if (!(0, _pdfjsLib.createValidAbsoluteUrl)(url, "http://example.com")) { + console.error(`downloadUrl - not a valid URL: ${url}`); + return; + } + download(url + "#pdfjs.action=download", filename); + } + downloadData(data, filename, contentType) { + const blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + download(blobUrl, filename); + } + openOrDownloadData(element, data, filename) { + const isPdfData = (0, _pdfjsLib.isPdfFile)(filename); + const contentType = isPdfData ? "application/pdf" : ""; + if (isPdfData) { + let blobUrl = this.#openBlobUrls.get(element); + if (!blobUrl) { + blobUrl = URL.createObjectURL(new Blob([data], { + type: contentType + })); + this.#openBlobUrls.set(element, blobUrl); + } + let viewerUrl; + viewerUrl = "?file=" + encodeURIComponent(blobUrl + "#" + filename); + try { + window.open(viewerUrl); + return true; + } catch (ex) { + console.error(`openOrDownloadData: ${ex}`); + URL.revokeObjectURL(blobUrl); + this.#openBlobUrls.delete(element); + } + } + this.downloadData(data, filename, contentType); + return false; + } + download(blob, url, filename, _options) { + const blobUrl = URL.createObjectURL(blob); + download(blobUrl, filename); + } +} +exports.DownloadManager = DownloadManager; + +/***/ }), +/* 44 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericL10n = void 0; +__webpack_require__(45); +var _l10n_utils = __webpack_require__(30); +const PARTIAL_LANG_CODES = { + en: "en-US", + es: "es-ES", + fy: "fy-NL", + ga: "ga-IE", + gu: "gu-IN", + hi: "hi-IN", + hy: "hy-AM", + nb: "nb-NO", + ne: "ne-NP", + nn: "nn-NO", + pa: "pa-IN", + pt: "pt-PT", + sv: "sv-SE", + zh: "zh-CN" +}; +function fixupLangCode(langCode) { + return PARTIAL_LANG_CODES[langCode?.toLowerCase()] || langCode; +} +class GenericL10n { + constructor(lang) { + const { + webL10n + } = document; + this._lang = lang; + this._ready = new Promise((resolve, reject) => { + webL10n.setLanguage(fixupLangCode(lang), () => { + resolve(webL10n); + }); + }); + } + async getLanguage() { + const l10n = await this._ready; + return l10n.getLanguage(); + } + async getDirection() { + const l10n = await this._ready; + return l10n.getDirection(); + } + async get(key, args = null, fallback = (0, _l10n_utils.getL10nFallback)(key, args)) { + const l10n = await this._ready; + return l10n.get(key, args, fallback); + } + async translate(element) { + const l10n = await this._ready; + return l10n.translate(element); + } +} +exports.GenericL10n = GenericL10n; + +/***/ }), +/* 45 */ +/***/ (() => { + + + +document.webL10n = function (window, document) { + var gL10nData = {}; + var gTextData = ''; + var gTextProp = 'textContent'; + var gLanguage = ''; + var gMacros = {}; + var gReadyState = 'loading'; + var gAsyncResourceLoading = true; + function getL10nResourceLinks() { + return document.querySelectorAll('link[type="application/l10n"]'); + } + function getL10nDictionary() { + var script = document.querySelector('script[type="application/l10n"]'); + return script ? JSON.parse(script.innerHTML) : null; + } + function getTranslatableChildren(element) { + return element ? element.querySelectorAll('*[data-l10n-id]') : []; + } + function getL10nAttributes(element) { + if (!element) return {}; + var l10nId = element.getAttribute('data-l10n-id'); + var l10nArgs = element.getAttribute('data-l10n-args'); + var args = {}; + if (l10nArgs) { + try { + args = JSON.parse(l10nArgs); + } catch (e) { + console.warn('could not parse arguments for #' + l10nId); + } + } + return { + id: l10nId, + args: args + }; + } + function xhrLoadText(url, onSuccess, onFailure) { + onSuccess = onSuccess || function _onSuccess(data) {}; + onFailure = onFailure || function _onFailure() {}; + var xhr = new XMLHttpRequest(); + xhr.open('GET', url, gAsyncResourceLoading); + if (xhr.overrideMimeType) { + xhr.overrideMimeType('text/plain; charset=utf-8'); + } + xhr.onreadystatechange = function () { + if (xhr.readyState == 4) { + if (xhr.status == 200 || xhr.status === 0) { + onSuccess(xhr.responseText); + } else { + onFailure(); + } + } + }; + xhr.onerror = onFailure; + xhr.ontimeout = onFailure; + try { + xhr.send(null); + } catch (e) { + onFailure(); + } + } + function parseResource(href, lang, successCallback, failureCallback) { + var baseURL = href.replace(/[^\/]*$/, '') || './'; + function evalString(text) { + if (text.lastIndexOf('\\') < 0) return text; + return text.replace(/\\\\/g, '\\').replace(/\\n/g, '\n').replace(/\\r/g, '\r').replace(/\\t/g, '\t').replace(/\\b/g, '\b').replace(/\\f/g, '\f').replace(/\\{/g, '{').replace(/\\}/g, '}').replace(/\\"/g, '"').replace(/\\'/g, "'"); + } + function parseProperties(text, parsedPropertiesCallback) { + var dictionary = {}; + var reBlank = /^\s*|\s*$/; + var reComment = /^\s*#|^\s*$/; + var reSection = /^\s*\[(.*)\]\s*$/; + var reImport = /^\s*@import\s+url\((.*)\)\s*$/i; + var reSplit = /^([^=\s]*)\s*=\s*(.+)$/; + function parseRawLines(rawText, extendedSyntax, parsedRawLinesCallback) { + var entries = rawText.replace(reBlank, '').split(/[\r\n]+/); + var currentLang = '*'; + var genericLang = lang.split('-', 1)[0]; + var skipLang = false; + var match = ''; + function nextEntry() { + while (true) { + if (!entries.length) { + parsedRawLinesCallback(); + return; + } + var line = entries.shift(); + if (reComment.test(line)) continue; + if (extendedSyntax) { + match = reSection.exec(line); + if (match) { + currentLang = match[1].toLowerCase(); + skipLang = currentLang !== '*' && currentLang !== lang && currentLang !== genericLang; + continue; + } else if (skipLang) { + continue; + } + match = reImport.exec(line); + if (match) { + loadImport(baseURL + match[1], nextEntry); + return; + } + } + var tmp = line.match(reSplit); + if (tmp && tmp.length == 3) { + dictionary[tmp[1]] = evalString(tmp[2]); + } + } + } + nextEntry(); + } + function loadImport(url, callback) { + xhrLoadText(url, function (content) { + parseRawLines(content, false, callback); + }, function () { + console.warn(url + ' not found.'); + callback(); + }); + } + parseRawLines(text, true, function () { + parsedPropertiesCallback(dictionary); + }); + } + xhrLoadText(href, function (response) { + gTextData += response; + parseProperties(response, function (data) { + for (var key in data) { + var id, + prop, + index = key.lastIndexOf('.'); + if (index > 0) { + id = key.substring(0, index); + prop = key.substring(index + 1); + } else { + id = key; + prop = gTextProp; + } + if (!gL10nData[id]) { + gL10nData[id] = {}; + } + gL10nData[id][prop] = data[key]; + } + if (successCallback) { + successCallback(); + } + }); + }, failureCallback); + } + function loadLocale(lang, callback) { + if (lang) { + lang = lang.toLowerCase(); + } + callback = callback || function _callback() {}; + clear(); + gLanguage = lang; + var langLinks = getL10nResourceLinks(); + var langCount = langLinks.length; + if (langCount === 0) { + var dict = getL10nDictionary(); + if (dict && dict.locales && dict.default_locale) { + console.log('using the embedded JSON directory, early way out'); + gL10nData = dict.locales[lang]; + if (!gL10nData) { + var defaultLocale = dict.default_locale.toLowerCase(); + for (var anyCaseLang in dict.locales) { + anyCaseLang = anyCaseLang.toLowerCase(); + if (anyCaseLang === lang) { + gL10nData = dict.locales[lang]; + break; + } else if (anyCaseLang === defaultLocale) { + gL10nData = dict.locales[defaultLocale]; + } + } + } + callback(); + } else { + console.log('no resource to load, early way out'); + } + gReadyState = 'complete'; + return; + } + var onResourceLoaded = null; + var gResourceCount = 0; + onResourceLoaded = function () { + gResourceCount++; + if (gResourceCount >= langCount) { + callback(); + gReadyState = 'complete'; + } + }; + function L10nResourceLink(link) { + var href = link.href; + this.load = function (lang, callback) { + parseResource(href, lang, callback, function () { + console.warn(href + ' not found.'); + console.warn('"' + lang + '" resource not found'); + gLanguage = ''; + callback(); + }); + }; + } + for (var i = 0; i < langCount; i++) { + var resource = new L10nResourceLink(langLinks[i]); + resource.load(lang, onResourceLoaded); + } + } + function clear() { + gL10nData = {}; + gTextData = ''; + gLanguage = ''; + } + function getPluralRules(lang) { + var locales2rules = { + 'af': 3, + 'ak': 4, + 'am': 4, + 'ar': 1, + 'asa': 3, + 'az': 0, + 'be': 11, + 'bem': 3, + 'bez': 3, + 'bg': 3, + 'bh': 4, + 'bm': 0, + 'bn': 3, + 'bo': 0, + 'br': 20, + 'brx': 3, + 'bs': 11, + 'ca': 3, + 'cgg': 3, + 'chr': 3, + 'cs': 12, + 'cy': 17, + 'da': 3, + 'de': 3, + 'dv': 3, + 'dz': 0, + 'ee': 3, + 'el': 3, + 'en': 3, + 'eo': 3, + 'es': 3, + 'et': 3, + 'eu': 3, + 'fa': 0, + 'ff': 5, + 'fi': 3, + 'fil': 4, + 'fo': 3, + 'fr': 5, + 'fur': 3, + 'fy': 3, + 'ga': 8, + 'gd': 24, + 'gl': 3, + 'gsw': 3, + 'gu': 3, + 'guw': 4, + 'gv': 23, + 'ha': 3, + 'haw': 3, + 'he': 2, + 'hi': 4, + 'hr': 11, + 'hu': 0, + 'id': 0, + 'ig': 0, + 'ii': 0, + 'is': 3, + 'it': 3, + 'iu': 7, + 'ja': 0, + 'jmc': 3, + 'jv': 0, + 'ka': 0, + 'kab': 5, + 'kaj': 3, + 'kcg': 3, + 'kde': 0, + 'kea': 0, + 'kk': 3, + 'kl': 3, + 'km': 0, + 'kn': 0, + 'ko': 0, + 'ksb': 3, + 'ksh': 21, + 'ku': 3, + 'kw': 7, + 'lag': 18, + 'lb': 3, + 'lg': 3, + 'ln': 4, + 'lo': 0, + 'lt': 10, + 'lv': 6, + 'mas': 3, + 'mg': 4, + 'mk': 16, + 'ml': 3, + 'mn': 3, + 'mo': 9, + 'mr': 3, + 'ms': 0, + 'mt': 15, + 'my': 0, + 'nah': 3, + 'naq': 7, + 'nb': 3, + 'nd': 3, + 'ne': 3, + 'nl': 3, + 'nn': 3, + 'no': 3, + 'nr': 3, + 'nso': 4, + 'ny': 3, + 'nyn': 3, + 'om': 3, + 'or': 3, + 'pa': 3, + 'pap': 3, + 'pl': 13, + 'ps': 3, + 'pt': 3, + 'rm': 3, + 'ro': 9, + 'rof': 3, + 'ru': 11, + 'rwk': 3, + 'sah': 0, + 'saq': 3, + 'se': 7, + 'seh': 3, + 'ses': 0, + 'sg': 0, + 'sh': 11, + 'shi': 19, + 'sk': 12, + 'sl': 14, + 'sma': 7, + 'smi': 7, + 'smj': 7, + 'smn': 7, + 'sms': 7, + 'sn': 3, + 'so': 3, + 'sq': 3, + 'sr': 11, + 'ss': 3, + 'ssy': 3, + 'st': 3, + 'sv': 3, + 'sw': 3, + 'syr': 3, + 'ta': 3, + 'te': 3, + 'teo': 3, + 'th': 0, + 'ti': 4, + 'tig': 3, + 'tk': 3, + 'tl': 4, + 'tn': 3, + 'to': 0, + 'tr': 0, + 'ts': 3, + 'tzm': 22, + 'uk': 11, + 'ur': 3, + 've': 3, + 'vi': 0, + 'vun': 3, + 'wa': 4, + 'wae': 3, + 'wo': 0, + 'xh': 3, + 'xog': 3, + 'yo': 0, + 'zh': 0, + 'zu': 3 + }; + function isIn(n, list) { + return list.indexOf(n) !== -1; + } + function isBetween(n, start, end) { + return start <= n && n <= end; + } + var pluralRules = { + '0': function (n) { + return 'other'; + }, + '1': function (n) { + if (isBetween(n % 100, 3, 10)) return 'few'; + if (n === 0) return 'zero'; + if (isBetween(n % 100, 11, 99)) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '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) { + if (n == 1) return 'one'; + return 'other'; + }, + '4': function (n) { + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '5': function (n) { + if (isBetween(n, 0, 2) && n != 2) return 'one'; + return 'other'; + }, + '6': function (n) { + if (n === 0) return 'zero'; + if (n % 10 == 1 && n % 100 != 11) return 'one'; + return 'other'; + }, + '7': function (n) { + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '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) { + if (n === 0 || n != 1 && isBetween(n % 100, 1, 19)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '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) { + 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) { + if (isBetween(n, 2, 4)) return 'few'; + if (n == 1) return 'one'; + return 'other'; + }, + '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) { + 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) { + 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) { + if (n % 10 == 1 && n != 11) return 'one'; + return 'other'; + }, + '17': function (n) { + if (n == 3) return 'few'; + if (n === 0) return 'zero'; + if (n == 6) return 'many'; + if (n == 2) return 'two'; + if (n == 1) return 'one'; + return 'other'; + }, + '18': function (n) { + if (n === 0) return 'zero'; + if (isBetween(n, 0, 2) && n !== 0 && n != 2) return 'one'; + return 'other'; + }, + '19': function (n) { + if (isBetween(n, 2, 10)) return 'few'; + if (isBetween(n, 0, 1)) return 'one'; + return 'other'; + }, + '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) { + if (n === 0) return 'zero'; + if (n == 1) return 'one'; + return 'other'; + }, + '22': function (n) { + if (isBetween(n, 0, 1) || isBetween(n, 11, 99)) return 'one'; + return 'other'; + }, + '23': function (n) { + if (isBetween(n % 10, 1, 2) || n % 20 === 0) return 'one'; + return 'other'; + }, + '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'; + return 'other'; + } + }; + var index = locales2rules[lang.replace(/-.*$/, '')]; + if (!(index in pluralRules)) { + console.warn('plural form unknown for [' + lang + ']'); + return function () { + return 'other'; + }; + } + return pluralRules[index]; + } + gMacros.plural = function (str, param, key, prop) { + var n = parseFloat(param); + if (isNaN(n)) return str; + if (prop != gTextProp) return str; + if (!gMacros._pluralRules) { + gMacros._pluralRules = getPluralRules(gLanguage); + } + var index = '[' + gMacros._pluralRules(n) + ']'; + if (n === 0 && key + '[zero]' in gL10nData) { + str = gL10nData[key + '[zero]'][prop]; + } else if (n == 1 && key + '[one]' in gL10nData) { + str = gL10nData[key + '[one]'][prop]; + } else if (n == 2 && key + '[two]' in gL10nData) { + str = gL10nData[key + '[two]'][prop]; + } else if (key + index in gL10nData) { + str = gL10nData[key + index][prop]; + } else if (key + '[other]' in gL10nData) { + str = gL10nData[key + '[other]'][prop]; + } + return str; + }; + function getL10nData(key, args, fallback) { + var data = gL10nData[key]; + if (!data) { + console.warn('#' + key + ' is undefined.'); + if (!fallback) { + return null; + } + data = fallback; + } + var rv = {}; + for (var prop in data) { + var str = data[prop]; + str = substIndexes(str, args, key, prop); + str = substArguments(str, args, key); + rv[prop] = str; + } + return rv; + } + function substIndexes(str, args, key, prop) { + var reIndex = /\{\[\s*([a-zA-Z]+)\(([a-zA-Z]+)\)\s*\]\}/; + var reMatch = reIndex.exec(str); + if (!reMatch || !reMatch.length) return str; + var macroName = reMatch[1]; + var paramName = reMatch[2]; + var param; + if (args && paramName in args) { + param = args[paramName]; + } else if (paramName in gL10nData) { + param = gL10nData[paramName]; + } + if (macroName in gMacros) { + var macro = gMacros[macroName]; + str = macro(str, param, key, prop); + } + return str; + } + function substArguments(str, args, key) { + var reArgs = /\{\{\s*(.+?)\s*\}\}/g; + return str.replace(reArgs, function (matched_text, arg) { + if (args && arg in args) { + return args[arg]; + } + if (arg in gL10nData) { + return gL10nData[arg]; + } + console.log('argument {{' + arg + '}} for #' + key + ' is undefined.'); + return matched_text; + }); + } + function translateElement(element) { + var l10n = getL10nAttributes(element); + if (!l10n.id) return; + var data = getL10nData(l10n.id, l10n.args); + if (!data) { + console.warn('#' + l10n.id + ' is undefined.'); + return; + } + if (data[gTextProp]) { + if (getChildElementCount(element) === 0) { + element[gTextProp] = data[gTextProp]; + } else { + var children = element.childNodes; + var found = false; + for (var i = 0, l = children.length; i < l; i++) { + if (children[i].nodeType === 3 && /\S/.test(children[i].nodeValue)) { + if (found) { + children[i].nodeValue = ''; + } else { + children[i].nodeValue = data[gTextProp]; + found = true; + } + } + } + if (!found) { + var textNode = document.createTextNode(data[gTextProp]); + element.prepend(textNode); + } + } + delete data[gTextProp]; + } + for (var k in data) { + element[k] = data[k]; + } + } + function getChildElementCount(element) { + if (element.children) { + return element.children.length; + } + if (typeof element.childElementCount !== 'undefined') { + return element.childElementCount; + } + var count = 0; + for (var i = 0; i < element.childNodes.length; i++) { + count += element.nodeType === 1 ? 1 : 0; + } + return count; + } + function translateFragment(element) { + element = element || document.documentElement; + var children = getTranslatableChildren(element); + var elementCount = children.length; + for (var i = 0; i < elementCount; i++) { + translateElement(children[i]); + } + translateElement(element); + } + return { + get: function (key, args, fallbackString) { + var index = key.lastIndexOf('.'); + var prop = gTextProp; + if (index > 0) { + prop = key.substring(index + 1); + key = key.substring(0, index); + } + var fallback; + if (fallbackString) { + fallback = {}; + fallback[prop] = fallbackString; + } + var data = getL10nData(key, args, fallback); + if (data && prop in data) { + return data[prop]; + } + return '{{' + key + '}}'; + }, + getData: function () { + return gL10nData; + }, + getText: function () { + return gTextData; + }, + getLanguage: function () { + return gLanguage; + }, + setLanguage: function (lang, callback) { + loadLocale(lang, function () { + if (callback) callback(); + }); + }, + 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 () { + return gReadyState; + }, + ready: function (callback) { + if (!callback) { + return; + } else if (gReadyState == 'complete' || gReadyState == 'interactive') { + window.setTimeout(function () { + callback(); + }); + } else if (document.addEventListener) { + document.addEventListener('localized', function once() { + document.removeEventListener('localized', once); + callback(); + }); + } + } + }; +}(window, document); + +/***/ }), +/* 46 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.GenericScripting = void 0; +exports.docProperties = docProperties; +var _pdfjsLib = __webpack_require__(4); +async function docProperties(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; + setTimeout(() => sandbox.dispatchEvent(event), 0); + } + async destroySandbox() { + const sandbox = await this._ready; + sandbox.nukeSandbox(); + } +} +exports.GenericScripting = GenericScripting; + +/***/ }), +/* 47 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.PDFPrintService = void 0; +var _pdfjsLib = __webpack_require__(4); +var _app = __webpack_require__(2); +var _print_utils = __webpack_require__(48); +let activeService = null; +let dialog = null; +let overlayManager = null; +function renderPage(activeServiceOnEntry, pdfDocument, pageNumber, size, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise) { + const scratchCanvas = activeService.scratchCanvas; + const PRINT_UNITS = printResolution / _pdfjsLib.PixelsPerInch.PDF; + scratchCanvas.width = Math.floor(size.width * PRINT_UNITS); + scratchCanvas.height = Math.floor(size.height * PRINT_UNITS); + const ctx = scratchCanvas.getContext("2d"); + ctx.save(); + ctx.fillStyle = "rgb(255, 255, 255)"; + ctx.fillRect(0, 0, scratchCanvas.width, scratchCanvas.height); + ctx.restore(); + return Promise.all([pdfDocument.getPage(pageNumber), printAnnotationStoragePromise]).then(function ([pdfPage, printAnnotationStorage]) { + const renderContext = { + canvasContext: ctx, + transform: [PRINT_UNITS, 0, 0, PRINT_UNITS, 0, 0], + viewport: pdfPage.getViewport({ + scale: 1, + rotation: size.rotation + }), + intent: "print", + annotationMode: _pdfjsLib.AnnotationMode.ENABLE_STORAGE, + optionalContentConfigPromise, + printAnnotationStorage + }; + return pdfPage.render(renderContext).promise; + }); +} +class PDFPrintService { + constructor(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise = null, printAnnotationStoragePromise = null, l10n) { + this.pdfDocument = pdfDocument; + this.pagesOverview = pagesOverview; + this.printContainer = printContainer; + this._printResolution = printResolution || 150; + this._optionalContentConfigPromise = optionalContentConfigPromise || pdfDocument.getOptionalContentConfig(); + this._printAnnotationStoragePromise = printAnnotationStoragePromise || Promise.resolve(); + this.l10n = l10n; + this.currentPage = -1; + this.scratchCanvas = document.createElement("canvas"); + } + layout() { + this.throwIfInactive(); + const body = document.querySelector("body"); + body.setAttribute("data-pdfjsprinting", true); + const { + width, + height + } = this.pagesOverview[0]; + const hasEqualPageSizes = this.pagesOverview.every(size => size.width === width && size.height === height); + if (!hasEqualPageSizes) { + console.warn("Not all pages have the same size. The printed result may be incorrect!"); + } + this.pageStyleSheet = document.createElement("style"); + this.pageStyleSheet.textContent = `@page { size: ${width}pt ${height}pt;}`; + body.append(this.pageStyleSheet); + } + destroy() { + if (activeService !== this) { + return; + } + this.printContainer.textContent = ""; + const body = document.querySelector("body"); + body.removeAttribute("data-pdfjsprinting"); + if (this.pageStyleSheet) { + this.pageStyleSheet.remove(); + this.pageStyleSheet = null; + } + this.scratchCanvas.width = this.scratchCanvas.height = 0; + this.scratchCanvas = null; + activeService = null; + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + } + renderPages() { + if (this.pdfDocument.isPureXfa) { + (0, _print_utils.getXfaHtmlForPrinting)(this.printContainer, this.pdfDocument); + return Promise.resolve(); + } + const pageCount = this.pagesOverview.length; + const renderNextPage = (resolve, reject) => { + this.throwIfInactive(); + if (++this.currentPage >= pageCount) { + renderProgress(pageCount, pageCount, this.l10n); + resolve(); + return; + } + const index = this.currentPage; + renderProgress(index, pageCount, this.l10n); + renderPage(this, this.pdfDocument, index + 1, this.pagesOverview[index], this._printResolution, this._optionalContentConfigPromise, this._printAnnotationStoragePromise).then(this.useRenderedPage.bind(this)).then(function () { + renderNextPage(resolve, reject); + }, reject); + }; + return new Promise(renderNextPage); + } + useRenderedPage() { + this.throwIfInactive(); + const img = document.createElement("img"); + const scratchCanvas = this.scratchCanvas; + if ("toBlob" in scratchCanvas) { + scratchCanvas.toBlob(function (blob) { + img.src = URL.createObjectURL(blob); + }); + } else { + img.src = scratchCanvas.toDataURL(); + } + const wrapper = document.createElement("div"); + wrapper.className = "printedPage"; + wrapper.append(img); + this.printContainer.append(wrapper); + return new Promise(function (resolve, reject) { + img.onload = resolve; + img.onerror = reject; + }); + } + performPrint() { + this.throwIfInactive(); + return new Promise(resolve => { + setTimeout(() => { + if (!this.active) { + resolve(); + return; + } + print.call(window); + setTimeout(resolve, 20); + }, 0); + }); + } + get active() { + return this === activeService; + } + throwIfInactive() { + if (!this.active) { + throw new Error("This print request was cancelled or completed."); + } + } +} +exports.PDFPrintService = PDFPrintService; +const print = window.print; +window.print = function () { + if (activeService) { + console.warn("Ignored window.print() because of a pending print job."); + return; + } + ensureOverlay().then(function () { + if (activeService) { + overlayManager.open(dialog); + } + }); + try { + dispatchEvent("beforeprint"); + } finally { + if (!activeService) { + console.error("Expected print service to be initialized."); + ensureOverlay().then(function () { + if (overlayManager.active === dialog) { + overlayManager.close(dialog); + } + }); + return; + } + const activeServiceOnEntry = activeService; + activeService.renderPages().then(function () { + return activeServiceOnEntry.performPrint(); + }).catch(function () {}).then(function () { + if (activeServiceOnEntry.active) { + abort(); + } + }); + } +}; +function dispatchEvent(eventType) { + const event = new CustomEvent(eventType, { + bubbles: false, + cancelable: false, + detail: "custom" + }); + window.dispatchEvent(event); +} +function abort() { + if (activeService) { + activeService.destroy(); + dispatchEvent("afterprint"); + } +} +function renderProgress(index, total, l10n) { + dialog ||= document.getElementById("printServiceDialog"); + const progress = Math.round(100 * index / total); + const progressBar = dialog.querySelector("progress"); + const progressPerc = dialog.querySelector(".relative-progress"); + progressBar.value = progress; + l10n.get("print_progress_percent", { + progress + }).then(msg => { + progressPerc.textContent = msg; + }); +} +window.addEventListener("keydown", function (event) { + if (event.keyCode === 80 && (event.ctrlKey || event.metaKey) && !event.altKey && (!event.shiftKey || window.chrome || window.opera)) { + window.print(); + event.preventDefault(); + event.stopImmediatePropagation(); + } +}, true); +if ("onbeforeprint" in window) { + const stopPropagationIfNeeded = function (event) { + if (event.detail !== "custom") { + event.stopImmediatePropagation(); + } + }; + window.addEventListener("beforeprint", stopPropagationIfNeeded); + window.addEventListener("afterprint", stopPropagationIfNeeded); +} +let overlayPromise; +function ensureOverlay() { + if (!overlayPromise) { + overlayManager = _app.PDFViewerApplication.overlayManager; + if (!overlayManager) { + throw new Error("The overlay manager has not yet been initialized."); + } + dialog ||= document.getElementById("printServiceDialog"); + overlayPromise = overlayManager.register(dialog, true); + document.getElementById("printCancel").onclick = abort; + dialog.addEventListener("close", abort); + } + return overlayPromise; +} +_app.PDFPrintServiceFactory.instance = { + supportsPrinting: true, + createPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise, l10n) { + if (activeService) { + throw new Error("The print service is created and active."); + } + activeService = new PDFPrintService(pdfDocument, pagesOverview, printContainer, printResolution, optionalContentConfigPromise, printAnnotationStoragePromise, l10n); + return activeService; + } +}; + +/***/ }), +/* 48 */ +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + + + +Object.defineProperty(exports, "__esModule", ({ + value: true +})); +exports.getXfaHtmlForPrinting = getXfaHtmlForPrinting; +var _pdfjsLib = __webpack_require__(4); +var _pdf_link_service = __webpack_require__(7); +var _xfa_layer_builder = __webpack_require__(38); +function getXfaHtmlForPrinting(printContainer, pdfDocument) { + const xfaHtml = pdfDocument.allXfaHtml; + const linkService = new _pdf_link_service.SimpleLinkService(); + const scale = Math.round(_pdfjsLib.PixelsPerInch.PDF_TO_CSS_UNITS * 100) / 100; + for (const xfaPage of xfaHtml.children) { + const page = document.createElement("div"); + page.className = "xfaPrintedPage"; + printContainer.append(page); + const builder = new _xfa_layer_builder.XfaLayerBuilder({ + pageDiv: page, + pdfPage: null, + annotationStorage: pdfDocument.annotationStorage, + linkService, + xfaHtml: xfaPage + }); + const viewport = (0, _pdfjsLib.getXfaPageViewport)(xfaPage, { + scale + }); + builder.render(viewport, "print"); + } +} + +/***/ }) +/******/ ]); +/************************************************************************/ +/******/ // 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, "PDFViewerApplication", ({ + enumerable: true, + get: function () { + return _app.PDFViewerApplication; + } +})); +exports.PDFViewerApplicationConstants = void 0; +Object.defineProperty(exports, "PDFViewerApplicationOptions", ({ + enumerable: true, + get: function () { + return _app_options.AppOptions; + } +})); +__webpack_require__(1); +__webpack_require__(47); +var _ui_utils = __webpack_require__(3); +var _app_options = __webpack_require__(5); +var _pdf_link_service = __webpack_require__(7); +var _app = __webpack_require__(2); +const pdfjsVersion = '3.11.174'; +const pdfjsBuild = 'ce8716743'; +const AppConstants = { + LinkTarget: _pdf_link_service.LinkTarget, + RenderingStates: _ui_utils.RenderingStates, + ScrollMode: _ui_utils.ScrollMode, + SpreadMode: _ui_utils.SpreadMode +}; +exports.PDFViewerApplicationConstants = AppConstants; +window.PDFViewerApplication = _app.PDFViewerApplication; +window.PDFViewerApplicationConstants = AppConstants; +window.PDFViewerApplicationOptions = _app_options.AppOptions; +function getViewerConfiguration() { + return { + appContainer: document.body, + mainContainer: document.getElementById("viewerContainer"), + viewerContainer: document.getElementById("viewer"), + toolbar: { + container: document.getElementById("toolbarViewer"), + numPages: document.getElementById("numPages"), + pageNumber: document.getElementById("pageNumber"), + 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"), + editorFreeTextButton: document.getElementById("editorFreeText"), + editorFreeTextParamsToolbar: document.getElementById("editorFreeTextParamsToolbar"), + editorInkButton: document.getElementById("editorInk"), + editorInkParamsToolbar: document.getElementById("editorInkParamsToolbar"), + editorStampButton: document.getElementById("editorStamp"), + editorStampParamsToolbar: document.getElementById("editorStampParamsToolbar"), + download: document.getElementById("download") + }, + secondaryToolbar: { + toolbar: document.getElementById("secondaryToolbar"), + toggleButton: document.getElementById("secondaryToolbarToggle"), + presentationModeButton: document.getElementById("presentationMode"), + openFileButton: document.getElementById("secondaryOpenFile"), + printButton: document.getElementById("secondaryPrint"), + downloadButton: document.getElementById("secondaryDownload"), + viewBookmarkButton: document.getElementById("viewBookmark"), + firstPageButton: document.getElementById("firstPage"), + lastPageButton: document.getElementById("lastPage"), + pageRotateCwButton: document.getElementById("pageRotateCw"), + pageRotateCcwButton: document.getElementById("pageRotateCcw"), + cursorSelectToolButton: document.getElementById("cursorSelectTool"), + cursorHandToolButton: document.getElementById("cursorHandTool"), + scrollPageButton: document.getElementById("scrollPage"), + 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"), + sidebarContainer: document.getElementById("sidebarContainer"), + toggleButton: document.getElementById("sidebarToggle"), + resizer: document.getElementById("sidebarResizer"), + 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") + }, + findBar: { + bar: document.getElementById("findbar"), + toggleButton: document.getElementById("viewFind"), + findField: document.getElementById("findInput"), + highlightAllCheckbox: document.getElementById("findHighlightAll"), + caseSensitiveCheckbox: document.getElementById("findMatchCase"), + matchDiacriticsCheckbox: document.getElementById("findMatchDiacritics"), + entireWordCheckbox: document.getElementById("findEntireWord"), + findMsg: document.getElementById("findMsg"), + findResultsCount: document.getElementById("findResultsCount"), + findPreviousButton: document.getElementById("findPrevious"), + findNextButton: document.getElementById("findNext") + }, + passwordOverlay: { + dialog: document.getElementById("passwordDialog"), + label: document.getElementById("passwordText"), + input: document.getElementById("password"), + submitButton: document.getElementById("passwordSubmit"), + cancelButton: document.getElementById("passwordCancel") + }, + documentProperties: { + dialog: document.getElementById("documentPropertiesDialog"), + 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") + } + }, + altTextDialog: { + dialog: document.getElementById("altTextDialog"), + optionDescription: document.getElementById("descriptionButton"), + optionDecorative: document.getElementById("decorativeButton"), + textarea: document.getElementById("descriptionTextarea"), + cancelButton: document.getElementById("altTextCancel"), + saveButton: document.getElementById("altTextSave") + }, + annotationEditorParams: { + editorFreeTextFontSize: document.getElementById("editorFreeTextFontSize"), + editorFreeTextColor: document.getElementById("editorFreeTextColor"), + editorInkColor: document.getElementById("editorInkColor"), + editorInkThickness: document.getElementById("editorInkThickness"), + editorInkOpacity: document.getElementById("editorInkOpacity"), + editorStampAddImage: document.getElementById("editorStampAddImage") + }, + printContainer: document.getElementById("printContainer"), + openFileInput: document.getElementById("fileInput"), + debuggerScriptPath: "./debugger.js" + }; +} +function webViewerLoad() { + const config = getViewerConfiguration(); + const event = new CustomEvent("webviewerloaded", { + bubbles: true, + cancelable: true, + detail: { + source: window + } + }); + try { + parent.document.dispatchEvent(event); + } catch (ex) { + console.error(`webviewerloaded: ${ex}`); + document.dispatchEvent(event); + } + _app.PDFViewerApplication.run(config); +} +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/src/main/webapp/js/pdfjs-3.11.174/web/viewer.js.map b/src/main/webapp/js/pdfjs-3.11.174/web/viewer.js.map new file mode 100644 index 00000000..faf37bc9 --- /dev/null +++ b/src/main/webapp/js/pdfjs-3.11.174/web/viewer.js.map @@ -0,0 +1 @@ +{"version":3,"file":"viewer.js","mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,IAAAA,IAAA,GAAAC,mBAAA;AACA,IAAAC,YAAA,GAAAD,mBAAA;AACA,IAAAE,iBAAA,GAAAF,mBAAA;AACA,IAAAG,YAAA,GAAAH,mBAAA;AACA,IAAAI,kBAAA,GAAAJ,mBAAA;AAEA;AAMA,MAAMK,UAAA,GAAa,EAAnB;AA3BAC,kBAAA,GAAAD,UAAA;AA6BA,MAAME,kBAAN,SAAiCC,4BAAjC,CAAiD;EAC/C,MAAMC,eAANA,CAAsBC,OAAtB,EAA+B;IAC7BC,YAAA,CAAaC,OAAb,CAAqB,mBAArB,EAA0CC,IAAA,CAAKC,SAAL,CAAeJ,OAAf,CAA1C;EAD6B;EAI/B,MAAMK,gBAANA,CAAuBL,OAAvB,EAAgC;IAC9B,OAAOG,IAAA,CAAKG,KAAL,CAAWL,YAAA,CAAaM,OAAb,CAAqB,mBAArB,CAAX,CAAP;EAD8B;AALe;AAUjD,MAAMC,uBAAN,SAAsCC,4BAAtC,CAA8D;EAC5D,OAAOC,qBAAPA,CAAA,EAA+B;IAC7B,OAAO,IAAIC,iCAAJ,EAAP;EAD6B;EAI/B,OAAOC,iBAAPA,CAAA,EAA2B;IACzB,OAAO,IAAIf,kBAAJ,EAAP;EADyB;EAI3B,OAAOgB,UAAPA,CAAkB;IAAEC,MAAA,GAAS;EAAX,CAAlB,EAAwC;IACtC,OAAO,IAAIC,wBAAJ,CAAgBD,MAAhB,CAAP;EADsC;EAIxC,OAAOE,eAAPA,CAAuB;IAAEC;EAAF,CAAvB,EAA6C;IAC3C,OAAO,IAAIC,mCAAJ,CAAqBD,gBAArB,CAAP;EAD2C;AAbe;AAiB9DE,yBAAA,CAAqBC,gBAArB,GAAwCZ,uBAAxC;;;;;;;;;;;;ACzCA,IAAAa,SAAA,GAAA/B,mBAAA;AAoBA,IAAAgC,SAAA,GAAAhC,mBAAA;AAmBA,IAAAiC,YAAA,GAAAjC,mBAAA;AACA,IAAAkC,YAAA,GAAAlC,mBAAA;AACA,IAAAmC,iBAAA,GAAAnC,mBAAA;AACA,IAAAoC,oBAAA,GAAApC,mBAAA;AACA,IAAAqC,4BAAA,GAAArC,mBAAA;AACA,IAAAsC,gBAAA,GAAAtC,mBAAA;AACA,IAAAuC,gBAAA,GAAAvC,mBAAA;AACA,IAAAwC,yBAAA,GAAAxC,mBAAA;AACA,IAAAyC,oBAAA,GAAAzC,mBAAA;AACA,IAAA0C,2BAAA,GAAA1C,mBAAA;AACA,IAAA2C,gBAAA,GAAA3C,mBAAA;AACA,IAAA4C,oBAAA,GAAA5C,mBAAA;AACA,IAAA6C,YAAA,GAAA7C,mBAAA;AACA,IAAA8C,oBAAA,GAAA9C,mBAAA;AACA,IAAA+C,sBAAA,GAAA/C,mBAAA;AACA,IAAAgD,yBAAA,GAAAhD,mBAAA;AACA,IAAAiD,oBAAA,GAAAjD,mBAAA;AACA,IAAAkD,sBAAA,GAAAlD,mBAAA;AACA,IAAAmD,eAAA,GAAAnD,mBAAA;AACA,IAAAoD,wBAAA,GAAApD,mBAAA;AACA,IAAAqD,WAAA,GAAArD,mBAAA;AACA,IAAAsD,qBAAA,GAAAtD,mBAAA;AACA,IAAAuD,WAAA,GAAAvD,mBAAA;AACA,IAAAwD,aAAA,GAAAxD,mBAAA;AAEA,MAAMyD,0BAAA,GAA6B,KAAnC;AACA,MAAMC,2BAAA,GAA8B,IAApC;AAEA,MAAMC,UAAA,GAAa;EACjBC,OAAA,EAAS,CAAC,CADO;EAEjBC,QAAA,EAAU,CAFO;EAGjBC,OAAA,EAAS;AAHQ,CAAnB;AAMA,MAAMC,cAAA,GAAiB;EACrBC,SAAA,EAAW,CADU;EAErBC,KAAA,EAAO,CAFc;EAGrBC,IAAA,EAAM;AAHe,CAAvB;AAMA,MAAM/C,uBAAN,CAA8B;EAC5BgD,YAAA,EAAc;IACZ,MAAM,IAAIC,KAAJ,CAAU,4CAAV,CAAN;EADY;EAId,OAAOC,sBAAPA,CAA8BC,IAA9B,EAAoC;EAEpC,OAAOC,sBAAPA,CAA8BD,IAA9B,EAAoC;EAEpC,OAAOE,kBAAPA,CAA0BC,SAA1B,EAAqC;EAErC,OAAOC,eAAPA,CAAuBJ,IAAvB,EAA6B;EAE7B,OAAOlD,qBAAPA,CAAA,EAA+B;IAC7B,MAAM,IAAIgD,KAAJ,CAAU,wCAAV,CAAN;EAD6B;EAI/B,OAAO9C,iBAAPA,CAAA,EAA2B;IACzB,MAAM,IAAI8C,KAAJ,CAAU,oCAAV,CAAN;EADyB;EAI3B,OAAO7C,UAAPA,CAAkBoD,OAAlB,EAA2B;IACzB,MAAM,IAAIP,KAAJ,CAAU,6BAAV,CAAN;EADyB;EAI3B,OAAO1C,eAAPA,CAAuBiD,OAAvB,EAAgC;IAC9B,MAAM,IAAIP,KAAJ,CAAU,kCAAV,CAAN;EAD8B;EAIhC,WAAWQ,mBAAXA,CAAA,EAAiC;IAC/B,OAAO,IAAAC,gBAAA,EAAO,IAAP,EAAa,qBAAb,EAAoC,IAApC,CAAP;EAD+B;EAIjC,WAAWC,sBAAXA,CAAA,EAAoC;IAClC,OAAO,IAAAD,gBAAA,EAAO,IAAP,EAAa,wBAAb,EAAuC,KAAvC,CAAP;EADkC;EAIpC,WAAWE,qBAAXA,CAAA,EAAmC;IACjC,OAAO,IAAAF,gBAAA,EAAO,IAAP,EAAa,uBAAb,EAAsC,IAAtC,CAAP;EADiC;EAInC,WAAWG,mCAAXA,CAAA,EAAiD;IAC/C,OAAO,IAAAH,gBAAA,EAAO,IAAP,EAAa,qCAAb,EAAoD;MACzDI,OAAA,EAAS,IADgD;MAEzDC,OAAA,EAAS;IAFgD,CAApD,CAAP;EAD+C;EAOjD,WAAWC,cAAXA,CAAA,EAA4B;IAC1B,OAAO,IAAAN,gBAAA,EAAO,IAAP,EAAa,gBAAb,EAA+B,KAA/B,CAAP;EAD0B;EAI5B,OAAOO,kBAAPA,CAA0Bd,IAA1B,EAAgC;IAC9B,MAAM,IAAIF,KAAJ,CAAU,qCAAV,CAAN;EAD8B;EAIhC,WAAWiB,oBAAXA,CAAA,EAAkC;IAChC,OAAO,IAAAR,gBAAA,EAAO,IAAP,EAAa,sBAAb,EAAqC,CAAC,CAAtC,CAAP;EADgC;EAIlC,OAAOS,uBAAPA,CAAA,EAAiC;IAC/B,OAAO,IAAAT,gBAAA,EAAO,IAAP,EAAa,yBAAb,EAAwCU,OAAA,CAAQC,OAAR,CAAgB,IAAhB,CAAxC,CAAP;EAD+B;AA5DL;AA9F9BlF,+BAAA,GAAAa,uBAAA;AA+JA,MAAMU,oBAAA,GAAuB;EAC3B4D,eAAA,EAAiBC,QAAA,CAASC,QAAT,CAAkBC,IAAlB,CAAuBC,SAAvB,CAAiC,CAAjC,CADU;EAE3BC,sBAAA,EAAwB,IAAIC,2BAAJ,EAFG;EAG3BC,SAAA,EAAW,IAHgB;EAI3BC,WAAA,EAAa,IAJc;EAK3BC,cAAA,EAAgB,IALW;EAM3BC,YAAA,EAAc,IANa;EAQ3BC,SAAA,EAAW,IARgB;EAU3BC,kBAAA,EAAoB,IAVO;EAY3BC,iBAAA,EAAmB,IAZQ;EAc3BC,mBAAA,EAAqB,IAdM;EAgB3BC,qBAAA,EAAuB,IAhBI;EAkB3BC,cAAA,EAAgB,IAlBW;EAoB3BC,UAAA,EAAY,IApBe;EAsB3BC,UAAA,EAAY,IAtBe;EAwB3BC,gBAAA,EAAkB,IAxBS;EA0B3BC,mBAAA,EAAqB,IA1BM;EA4B3BC,cAAA,EAAgB,IA5BW;EA8B3BC,cAAA,EAAgB,IA9BW;EAgC3BC,mBAAA,EAAqB,IAhCM;EAkC3BC,KAAA,EAAO,IAlCoB;EAoC3BC,eAAA,EAAiB,IApCU;EAsC3BC,cAAA,EAAgB,IAtCW;EAwC3BC,WAAA,EAAa,IAxCc;EA0C3BC,OAAA,EAAS,IA1CkB;EA4C3BC,gBAAA,EAAkB,IA5CS;EA8C3BC,QAAA,EAAU,IA9CiB;EAgD3BC,IAAA,EAAM,IAhDqB;EAkD3BC,sBAAA,EAAwB,IAlDG;EAmD3BC,gBAAA,EAAkB,KAnDS;EAoD3BC,gBAAA,EAAkB,KApDS;EAqD3BC,gBAAA,EAAkBC,MAAA,CAAOC,MAAP,KAAkBD,MArDT;EAsD3BE,GAAA,EAAK,EAtDsB;EAuD3BC,OAAA,EAAS,EAvDkB;EAwD3BC,YAAA,EAAc,EAxDa;EAyD3BnG,gBAAA,EAAkBX,uBAzDS;EA0D3B+G,YAAA,EAAcC,MAAA,CAAOC,MAAP,CAAc,IAAd,CA1Da;EA2D3BC,YAAA,EAAc,IA3Da;EA4D3BC,QAAA,EAAU,IA5DiB;EA6D3BC,2BAAA,EAA6B,IA7DF;EA8D3BC,cAAA,EAAgB,IA9DW;EA+D3BC,eAAA,EAAiB,KA/DU;EAgE3BC,iBAAA,EAAmB,CAhEQ;EAiE3BC,kBAAA,EAAoB,CAjEO;EAkE3BC,iBAAA,EAAmB,CAlEQ;EAmE3BC,kBAAA,EAAoB,CAnEO;EAoE3BC,OAAA,EAAS,IApEkB;EAqE3BC,qBAAA,EAAuB,KArEI;EAsE3BC,MAAA,EAAQtD,QAAA,CAASuD,KAtEU;EAuE3BC,8BAAA,EAAgC,IAvEL;EAwE3BC,UAAA,EAAY,IAxEe;EAyE3BC,cAAA,EAAgB,KAzEW;EA0E3BC,kBAAA,EAAoB,IA1EO;EA6E3B,MAAMC,UAANA,CAAiBtD,SAAjB,EAA4B;IAC1B,KAAKoB,WAAL,GAAmB,KAAKtF,gBAAL,CAAsBR,iBAAtB,EAAnB;IACA,KAAK0E,SAAL,GAAiBA,SAAjB;IAUA,MAAM,KAAKuD,kBAAL,EAAN;IACA,KAAKC,cAAL;IACA,MAAM,KAAKC,eAAL,EAAN;IAEA,IACE,KAAK7B,gBAAL,IACA8B,uBAAA,CAAWC,GAAX,CAAe,oBAAf,MAAyCC,4BAAA,CAAWC,IAFtD,EAGE;MAGAH,uBAAA,CAAWI,GAAX,CAAe,oBAAf,EAAqCF,4BAAA,CAAWG,GAAhD;IAHA;IAKF,MAAM,KAAKC,2BAAL,EAAN;IAIA,KAAKC,UAAL;IACA,KAAKC,gBAAL;IAGA,MAAMC,YAAA,GAAenE,SAAA,CAAUmE,YAAV,IAA0BzE,QAAA,CAAS0E,eAAxD;IACA,KAAK5C,IAAL,CAAU6C,SAAV,CAAoBF,YAApB,EAAkCG,IAAlC,CAAuC,MAAM;MAG3C,KAAK/C,QAAL,CAAcgD,QAAd,CAAuB,WAAvB,EAAoC;QAAEC,MAAA,EAAQ;MAAV,CAApC;IAH2C,CAA7C;IAMA,KAAK1E,sBAAL,CAA4BN,OAA5B;EAvC0B,CA7ED;EA0H3B,MAAM+D,kBAANA,CAAA,EAA2B;IAEvB,IAAIG,uBAAA,CAAWC,GAAX,CAAe,oBAAf,CAAJ,EAA0C;MACxC,IAAID,uBAAA,CAAWC,GAAX,CAAe,eAAf,CAAJ,EAAqC;QACnC,MAAM,KAAKc,gBAAL,EAAN;MADmC;MAKrC;IANwC;IAQ1C,IAAIf,uBAAA,CAAWgB,eAAX,EAAJ,EAAkC;MAChCC,OAAA,CAAQC,IAAR,CACE,+EACE,sEAFJ;IADgC;IAOpC,IAAI;MACFlB,uBAAA,CAAWmB,MAAX,CAAkB,MAAM,KAAKzD,WAAL,CAAiB0D,MAAjB,EAAxB;IADE,CAAJ,CAEE,OAAOC,MAAP,EAAe;MACfJ,OAAA,CAAQK,KAAR,CAAe,wBAAuBD,MAAA,CAAOE,OAAQ,IAArD;IADe;IAIjB,IAAIvB,uBAAA,CAAWC,GAAX,CAAe,eAAf,CAAJ,EAAqC;MACnC,MAAM,KAAKc,gBAAL,EAAN;IADmC;EAvBZ,CA1HA;EA0J3B,MAAMA,gBAANA,CAAA,EAAyB;IACvB,MAAM7E,IAAA,GAAOF,QAAA,CAASC,QAAT,CAAkBC,IAAlB,CAAuBC,SAAvB,CAAiC,CAAjC,CAAb;IACA,IAAI,CAACD,IAAL,EAAW;MACT;IADS;IAGX,MAAM;QAAEsF,aAAF;QAAiBC;MAAjB,IAAqC,KAAKnF,SAAhD;MACEoF,MAAA,GAAS,IAAAC,0BAAA,EAAiBzF,IAAjB,CADX;IAGA,IAAIwF,MAAA,CAAOzB,GAAP,CAAW,eAAX,MAAgC,MAApC,EAA4C;MAC1C,IAAI;QACF,MAAM2B,cAAA,EAAN;MADE,CAAJ,CAEE,OAAOC,EAAP,EAAW;QACXZ,OAAA,CAAQK,KAAR,CAAe,sBAAqBO,EAAA,CAAGN,OAAQ,IAA/C;MADW;IAH6B;IAO5C,IAAIG,MAAA,CAAOI,GAAP,CAAW,cAAX,CAAJ,EAAgC;MAC9B9B,uBAAA,CAAWI,GAAX,CAAe,cAAf,EAA+BsB,MAAA,CAAOzB,GAAP,CAAW,cAAX,MAA+B,MAA9D;IAD8B;IAGhC,IAAIyB,MAAA,CAAOI,GAAP,CAAW,eAAX,CAAJ,EAAiC;MAC/B9B,uBAAA,CAAWI,GAAX,CAAe,eAAf,EAAgCsB,MAAA,CAAOzB,GAAP,CAAW,eAAX,MAAgC,MAAhE;IAD+B;IAGjC,IAAIyB,MAAA,CAAOI,GAAP,CAAW,kBAAX,CAAJ,EAAoC;MAClC9B,uBAAA,CAAWI,GAAX,CACE,kBADF,EAEEsB,MAAA,CAAOzB,GAAP,CAAW,kBAAX,MAAmC,MAFrC;IADkC;IAMpC,IAAIyB,MAAA,CAAOI,GAAP,CAAW,iBAAX,CAAJ,EAAmC;MACjC9B,uBAAA,CAAWI,GAAX,CACE,iBADF,EAEEsB,MAAA,CAAOzB,GAAP,CAAW,iBAAX,MAAkC,MAFpC;IADiC;IAMnC,IAAIyB,MAAA,CAAOI,GAAP,CAAW,gBAAX,CAAJ,EAAkC;MAChC9B,uBAAA,CAAWI,GAAX,CAAe,gBAAf,EAAiCsB,MAAA,CAAOzB,GAAP,CAAW,gBAAX,MAAiC,MAAlE;IADgC;IAGlC,IAAIyB,MAAA,CAAOI,GAAP,CAAW,WAAX,CAAJ,EAA6B;MAC3B9B,uBAAA,CAAWI,GAAX,CAAe,WAAf,EAA4BsB,MAAA,CAAOzB,GAAP,CAAW,WAAX,IAA0B,CAAtD;IAD2B;IAG7B,IAAIyB,MAAA,CAAOI,GAAP,CAAW,WAAX,CAAJ,EAA6B;MAC3B,QAAQJ,MAAA,CAAOzB,GAAP,CAAW,WAAX,CAAR;QACE,KAAK,KAAL;UACED,uBAAA,CAAWI,GAAX,CAAe,eAAf,EAAgC2B,uBAAA,CAAcC,OAA9C;UACA;QACF,KAAK,SAAL;QACA,KAAK,QAAL;QACA,KAAK,OAAL;UACEP,eAAA,CAAgBQ,SAAhB,CAA0BC,GAA1B,CAA+B,aAAYR,MAAA,CAAOzB,GAAP,CAAW,WAAX,CAAb,EAA9B;UACA,IAAI;YACF,MAAMkC,UAAA,CAAW,IAAX,CAAN;YACA,KAAK/C,OAAL,CAAagD,OAAb;UAFE,CAAJ,CAGE,OAAOP,EAAP,EAAW;YACXZ,OAAA,CAAQK,KAAR,CAAe,sBAAqBO,EAAA,CAAGN,OAAQ,IAA/C;UADW;UAGb;MAdJ;IAD2B;IAkB7B,IAAIG,MAAA,CAAOI,GAAP,CAAW,QAAX,CAAJ,EAA0B;MACxB9B,uBAAA,CAAWI,GAAX,CAAe,QAAf,EAAyB,IAAzB;MACAJ,uBAAA,CAAWI,GAAX,CAAe,qBAAf,EAAsC,IAAtC;MAEA,MAAMiC,OAAA,GAAUX,MAAA,CAAOzB,GAAP,CAAW,QAAX,EAAqBqC,KAArB,CAA2B,GAA3B,CAAhB;MACA,IAAI;QACF,MAAMH,UAAA,CAAW,IAAX,CAAN;QACA,KAAK/C,OAAL,CAAamD,IAAb,CAAkBf,aAAlB,EAAiCa,OAAjC;MAFE,CAAJ,CAGE,OAAOR,EAAP,EAAW;QACXZ,OAAA,CAAQK,KAAR,CAAe,sBAAqBO,EAAA,CAAGN,OAAQ,IAA/C;MADW;IARW;IAa1B,IAEEG,MAAA,CAAOI,GAAP,CAAW,QAAX,CAFF,EAGE;MACA9B,uBAAA,CAAWI,GAAX,CAAe,QAAf,EAAyBsB,MAAA,CAAOzB,GAAP,CAAW,QAAX,CAAzB;IADA;EAzEqB,CA1JE;EA2O3B,MAAMF,eAANA,CAAA,EAAwB;IACtB,KAAKjC,IAAL,GAAY,KAAK1F,gBAAL,CAAsBP,UAAtB,CAEN;MAAEC,MAAA,EAAQkI,uBAAA,CAAWC,GAAX,CAAe,QAAf;IAAV,CAFM,CAAZ;IAKA,MAAMuC,GAAA,GAAM,MAAM,KAAK1E,IAAL,CAAU2E,YAAV,EAAlB;IACAzG,QAAA,CAAS0G,oBAAT,CAA8B,MAA9B,EAAsC,CAAtC,EAAyCF,GAAzC,GAA+CA,GAA/C;EAPsB,CA3OG;EAwP3B1C,eAAA,EAAiB;IACf,MAAM6C,QAAA,GAAW3C,uBAAA,CAAWC,GAAX,CAAe,gBAAf,CAAjB;IACA,IACE0C,QAAA,KAAatI,cAAA,CAAeC,SAA5B,IACA,CAACmE,MAAA,CAAOmE,MAAP,CAAcvI,cAAd,EAA8BwI,QAA9B,CAAuCF,QAAvC,CAFH,EAGE;MACA;IADA;IAGF,IAAI;MACF,MAAMG,UAAA,GAAa9G,QAAA,CAAS+G,WAAT,CAAqB,CAArB,CAAnB;MACA,MAAMC,QAAA,GAAWF,UAAA,EAAYE,QAAZ,IAAwB,EAAzC;MACA,KAAK,IAAIC,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAKF,QAAA,CAASG,MAAzB,EAAiCF,CAAA,GAAIC,EAA1C,EAA8CD,CAAA,EAA9C,EAAmD;QACjD,MAAMG,IAAA,GAAOJ,QAAA,CAASC,CAAT,CAAb;QACA,IACEG,IAAA,YAAgBC,YAAhB,IACAD,IAAA,CAAKE,KAAL,GAAa,CAAb,MAAoB,8BAFtB,EAGE;UACA,IAAIX,QAAA,KAAatI,cAAA,CAAeE,KAAhC,EAAuC;YACrCuI,UAAA,CAAWS,UAAX,CAAsBN,CAAtB;YACA;UAFqC;UAKvC,MAAMO,SAAA,GACJ,yEAAyEC,IAAzE,CACEL,IAAA,CAAKM,OADP,CADF;UAIA,IAAIF,SAAA,GAAY,CAAZ,CAAJ,EAAoB;YAClBV,UAAA,CAAWS,UAAX,CAAsBN,CAAtB;YACAH,UAAA,CAAWa,UAAX,CAAsBH,SAAA,CAAU,CAAV,CAAtB,EAAoCP,CAApC;UAFkB;UAIpB;QAdA;MAL+C;IAHjD,CAAJ,CAyBE,OAAO5B,MAAP,EAAe;MACfJ,OAAA,CAAQK,KAAR,CAAe,oBAAmBD,MAAA,EAAQE,OAAQ,IAAlD;IADe;EAjCF,CAxPU;EAiS3B,MAAMjB,2BAANA,CAAA,EAAoC;IAClC,MAAM;MAAEhE,SAAF;MAAalE,gBAAb;MAA+B0F;IAA/B,IAAwC,IAA9C;IAEA,MAAMD,QAAA,GAAWzF,gBAAA,CAAiBqD,cAAjB,GACb,IAAImI,+BAAJ,EADa,GAEb,IAAIC,qBAAJ,EAFJ;IAGA,KAAKhG,QAAL,GAAgBA,QAAhB;IAEA,KAAKJ,cAAL,GAAsB,IAAIqG,+BAAJ,EAAtB;IAEA,MAAMlH,iBAAA,GAAoB,IAAImH,sCAAJ,EAA1B;IACAnH,iBAAA,CAAkBoH,MAAlB,GAA2B,KAAKC,QAAL,CAAcC,IAAd,CAAmB,IAAnB,CAA3B;IACA,KAAKtH,iBAAL,GAAyBA,iBAAzB;IAEA,MAAMG,cAAA,GAAiB,IAAIoH,gCAAJ,CAAmB;MACxCtG,QADwC;MAExCuG,kBAAA,EAAoBpE,uBAAA,CAAWC,GAAX,CAAe,oBAAf,CAFoB;MAGxCoE,eAAA,EAAiBrE,uBAAA,CAAWC,GAAX,CAAe,iBAAf,CAHuB;MAIxCqE,qBAAA,EAAuBtE,uBAAA,CAAWC,GAAX,CAAe,uBAAf;IAJiB,CAAnB,CAAvB;IAMA,KAAKlD,cAAL,GAAsBA,cAAtB;IAEA,MAAMS,eAAA,GAAkBpF,gBAAA,CAAiBV,qBAAjB,EAAxB;IACA,KAAK8F,eAAL,GAAuBA,eAAvB;IAEA,MAAM+G,cAAA,GAAiB,IAAIC,sCAAJ,CAAsB;MAC3CC,WAAA,EAAa1H,cAD8B;MAE3Cc,QAF2C;MAG3C6G,4BAAA,EAGM;IANqC,CAAtB,CAAvB;IAQA,KAAKH,cAAL,GAAsBA,cAAtB;IAEA,MAAMjH,mBAAA,GAAsB,IAAIqH,0CAAJ,CAAwB;MAClD9G,QADkD;MAElD5F,gBAAA,EAEM+H,uBAAA,CAAWC,GAAX,CAAe,kBAAf,CAJ4C;MAMlD7H,gBANkD;MAOlDwM,aAAA,EAAe,KAAKC,uBAAL,CAA6BX,IAA7B,CAAkC,IAAlC;IAPmC,CAAxB,CAA5B;IASA,KAAK5G,mBAAL,GAA2BA,mBAA3B;IAEA,MAAMwH,SAAA,GAAYxI,SAAA,CAAUkF,aAA5B;MACEuD,MAAA,GAASzI,SAAA,CAAUmF,eADrB;IAEA,MAAMuD,oBAAA,GAAuBhF,uBAAA,CAAWC,GAAX,CAAe,sBAAf,CAA7B;IACA,MAAMgF,0BAAA,GACJjF,uBAAA,CAAWC,GAAX,CAAe,4BAAf,KACAiF,qBAAA,CAAYD,0BAFd;IAGA,MAAME,UAAA,GACJnF,uBAAA,CAAWC,GAAX,CAAe,iBAAf,KACA9B,MAAA,CAAOiH,UAAP,CAAkB,yBAAlB,EAA6CC,OAD7C,GAEI;MACEC,UAAA,EAAYtF,uBAAA,CAAWC,GAAX,CAAe,sBAAf,CADd;MAEEsF,UAAA,EAAYvF,uBAAA,CAAWC,GAAX,CAAe,sBAAf;IAFd,CAFJ,GAMI,IAPN;IAQA,MAAMuF,cAAA,GAAiBlJ,SAAA,CAAUmJ,aAAV,GACnB,IAAIC,mCAAJ,CACEpJ,SAAA,CAAUmJ,aADZ,EAEEX,SAFF,EAGE,KAAKrH,cAHP,EAIEI,QAJF,CADmB,GAOnB,IAPJ;IASA,MAAMnB,SAAA,GAAY,IAAIiJ,qBAAJ,CAAc;MAC9Bb,SAD8B;MAE9BC,MAF8B;MAG9BlH,QAH8B;MAI9B+H,cAAA,EAAgBhJ,iBAJc;MAK9B6H,WAAA,EAAa1H,cALiB;MAM9BS,eAN8B;MAO9BgI,cAP8B;MAQ9BjB,cAR8B;MAS9BsB,gBAAA,EACE7F,uBAAA,CAAWC,GAAX,CAAe,iBAAf,KAAqC3C,mBAVT;MAW9BQ,IAX8B;MAY9BgI,aAAA,EAAe9F,uBAAA,CAAWC,GAAX,CAAe,eAAf,CAZe;MAa9B8F,cAAA,EAAgB/F,uBAAA,CAAWC,GAAX,CAAe,gBAAf,CAbc;MAc9B+E,oBAd8B;MAe9BgB,kBAAA,EAAoBhG,uBAAA,CAAWC,GAAX,CAAe,oBAAf,CAfU;MAgB9BgG,qBAAA,EAAuBjG,uBAAA,CAAWC,GAAX,CAAe,uBAAf,CAhBO;MAiB9BgF,0BAjB8B;MAkB9BiB,eAAA,EAAiBlG,uBAAA,CAAWC,GAAX,CAAe,iBAAf,CAlBa;MAmB9BkG,iBAAA,EAAmBnG,uBAAA,CAAWC,GAAX,CAAe,mBAAf,CAnBW;MAoB9BkF;IApB8B,CAAd,CAAlB;IAsBA,KAAKzI,SAAL,GAAiBA,SAAjB;IAEAE,iBAAA,CAAkBwJ,SAAlB,CAA4B1J,SAA5B;IACAK,cAAA,CAAeqJ,SAAf,CAAyB1J,SAAzB;IACAY,mBAAA,CAAoB8I,SAApB,CAA8B1J,SAA9B;IAEA,IAAIJ,SAAA,CAAU+J,OAAV,EAAmBC,aAAvB,EAAsC;MACpC,KAAK3J,kBAAL,GAA0B,IAAI4J,2CAAJ,CAAuB;QAC/CzB,SAAA,EAAWxI,SAAA,CAAU+J,OAAV,CAAkBC,aADkB;QAE/CzI,QAF+C;QAG/C+H,cAAA,EAAgBhJ,iBAH+B;QAI/C6H,WAAA,EAAa1H,cAJkC;QAK/Ce,IAL+C;QAM/CqH;MAN+C,CAAvB,CAA1B;MAQAvI,iBAAA,CAAkB4J,kBAAlB,CAAqC,KAAK7J,kBAA1C;IAToC;IActC,IAAI,CAAC,KAAKuB,gBAAN,IAA0B,CAAC8B,uBAAA,CAAWC,GAAX,CAAe,gBAAf,CAA/B,EAAiE;MAC/D,KAAKjD,UAAL,GAAkB,IAAIyJ,uBAAJ,CAAe;QAC/BhC,WAAA,EAAa1H,cADkB;QAE/Bc;MAF+B,CAAf,CAAlB;MAIAd,cAAA,CAAe2J,UAAf,CAA0B,KAAK1J,UAA/B;IAL+D;IAQjE,IAAI,CAAC,KAAK5B,sBAAN,IAAgCkB,SAAA,CAAUqK,OAA9C,EAAuD;MACrD,KAAKA,OAAL,GAAe,IAAIC,2BAAJ,CAAetK,SAAA,CAAUqK,OAAzB,EAAkC9I,QAAlC,EAA4CC,IAA5C,CAAf;IADqD;IAIvD,IAAIxB,SAAA,CAAUyB,sBAAd,EAAsC;MACpC,IAAIiH,oBAAA,KAAyB6B,8BAAA,CAAqB7E,OAAlD,EAA2D;QACzD,IAAIhC,uBAAA,CAAWC,GAAX,CAAe,mBAAf,KAAuCgF,0BAA3C,EAAuE;UACrE3I,SAAA,CAAUqB,OAAV,EAAmBmJ,iBAAnB,EAAsC7E,SAAtC,CAAgD8E,MAAhD,CAAuD,QAAvD;QADqE;QAIvE,KAAKhJ,sBAAL,GAA8B,IAAIiJ,mDAAJ,CAC5B1K,SAAA,CAAUyB,sBADkB,EAE5BF,QAF4B,CAA9B;MALyD,CAA3D,MASO;QACL,WAAWoJ,EAAX,IAAiB,CAAC,mBAAD,EAAsB,qBAAtB,CAAjB,EAA+D;UAC7DjL,QAAA,CAASkL,cAAT,CAAwBD,EAAxB,GAA6BhF,SAA7B,CAAuCC,GAAvC,CAA2C,QAA3C;QAD6D;MAD1D;IAV6B;IAiBtC,IAAI5F,SAAA,CAAU6K,kBAAd,EAAkC;MAChC,KAAKrK,qBAAL,GAA6B,IAAIsK,iDAAJ,CAC3B9K,SAAA,CAAU6K,kBADiB,EAE3B,KAAK1J,cAFsB,EAG3BI,QAH2B,EAI3BC,IAJ2B,EAKJ,MAAM,KAAKuJ,YALP,CAA7B;IADgC;IAYlC,IAAI/K,SAAA,CAAUsB,gBAAV,EAA4B0J,oBAAhC,EAAsD;MACpD,KAAKjK,cAAL,GAAsB,IAAIkK,mCAAJ,CAAmB;QACvCzC,SADuC;QAEvCjH,QAFuC;QAGvC2J,gBAAA,EAAkBxH,uBAAA,CAAWC,GAAX,CAAe,kBAAf;MAHqB,CAAnB,CAAtB;IADoD;IAQtD,IAAI3D,SAAA,CAAUqB,OAAd,EAAuB;MAanB,KAAKA,OAAL,GAAe,IAAI8J,mBAAJ,CAAYnL,SAAA,CAAUqB,OAAtB,EAA+BE,QAA/B,EAAyCC,IAAzC,CAAf;IAbmB;IAiBvB,IAAIxB,SAAA,CAAUsB,gBAAd,EAAgC;MAC9B,KAAKA,gBAAL,GAAwB,IAAI8J,sCAAJ,CACtBpL,SAAA,CAAUsB,gBADY,EAEtBC,QAFsB,CAAxB;IAD8B;IAOhC,IACE,KAAK8J,kBAAL,IACArL,SAAA,CAAUsB,gBAAV,EAA4BgK,sBAF9B,EAGE;MACA,KAAK/K,mBAAL,GAA2B,IAAIgL,6CAAJ,CAAwB;QACjD/C,SADiD;QAEjDpI,SAFiD;QAGjDmB;MAHiD,CAAxB,CAA3B;IADA;IAQF,IAAIvB,SAAA,CAAUwL,eAAd,EAA+B;MAC7B,KAAKC,cAAL,GAAsB,IAAIC,+BAAJ,CACpB1L,SAAA,CAAUwL,eADU,EAEpB,KAAKrK,cAFe,EAGpBK,IAHoB,EAIpB,KAAKI,gBAJe,CAAtB;IAD6B;IAS/B,IAAI5B,SAAA,CAAU+J,OAAV,EAAmB4B,WAAvB,EAAoC;MAClC,KAAK/K,gBAAL,GAAwB,IAAIgL,uCAAJ,CAAqB;QAC3CpD,SAAA,EAAWxI,SAAA,CAAU+J,OAAV,CAAkB4B,WADc;QAE3CpK,QAF2C;QAG3C4G,WAAA,EAAa1H,cAH8B;QAI3CS;MAJ2C,CAArB,CAAxB;IADkC;IASpC,IAAIlB,SAAA,CAAU+J,OAAV,EAAmB8B,eAAvB,EAAwC;MACtC,KAAKhL,mBAAL,GAA2B,IAAIiL,6CAAJ,CAAwB;QACjDtD,SAAA,EAAWxI,SAAA,CAAU+J,OAAV,CAAkB8B,eADoB;QAEjDtK,QAFiD;QAGjDL;MAHiD,CAAxB,CAA3B;IADsC;IAQxC,IAAIlB,SAAA,CAAU+J,OAAV,EAAmBgC,UAAvB,EAAmC;MACjC,KAAKjL,cAAL,GAAsB,IAAIkL,mCAAJ,CAAmB;QACvCxD,SAAA,EAAWxI,SAAA,CAAU+J,OAAV,CAAkBgC,UADU;QAEvCxK,QAFuC;QAGvCC;MAHuC,CAAnB,CAAtB;IADiC;IAQnC,IAAIxB,SAAA,CAAU+J,OAAd,EAAuB;MACrB,KAAKpJ,UAAL,GAAkB,IAAIsL,0BAAJ,CAAe;QAC/BC,QAAA,EAAUlM,SAAA,CAAU+J,OADW;QAE/BxI,QAF+B;QAG/BC;MAH+B,CAAf,CAAlB;MAKA,KAAKb,UAAL,CAAgBwL,SAAhB,GAA4B,KAAKC,cAAL,CAAoBxE,IAApB,CAAyB,IAAzB,CAA5B;MACA,KAAKjH,UAAL,CAAgB0L,kBAAhB,GAAqC,MAAM;QAEzC,WAAWC,QAAX,IAAuBlM,SAAA,CAAUmM,kBAAV,EAAvB,EAAuD;UACrD,IAAID,QAAA,CAASE,cAAT,KAA4BC,yBAAA,CAAgBC,QAAhD,EAA0D;YACxD,KAAKrM,kBAAL,CACGsM,YADH,CACgBL,QAAA,CAAS3B,EAAT,GAAc,CAD9B,GAEIiC,QAFJ,CAEaN,QAFb;UADwD;QADL;QAOvD,KAAKjM,kBAAL,CAAwBwM,uBAAxB,CACEzM,SAAA,CAAU0M,iBADZ;MATyC,CAA3C;IAPqB;EArOW,CAjST;EA6hB3B,MAAMC,GAANA,CAAUC,MAAV,EAAkB;IAChB,MAAM,KAAK1J,UAAL,CAAgB0J,MAAhB,CAAN;IAEA,MAAM;MAAEhN,SAAF;MAAauB;IAAb,IAA0B,IAAhC;IACA,IAAI0L,IAAJ;IAEE,MAAMC,WAAA,GAAcxN,QAAA,CAASC,QAAT,CAAkBwN,MAAlB,CAAyBtN,SAAzB,CAAmC,CAAnC,CAApB;IACA,MAAMuF,MAAA,GAAS,IAAAC,0BAAA,EAAiB6H,WAAjB,CAAf;IACAD,IAAA,GAAO7H,MAAA,CAAOzB,GAAP,CAAW,MAAX,KAAsBD,uBAAA,CAAWC,GAAX,CAAe,YAAf,CAA7B;IACAyJ,eAAA,CAAgBH,IAAhB;IAQA,MAAMI,SAAA,GAAYrN,SAAA,CAAUsN,aAA5B;IACAD,SAAA,CAAUE,KAAV,GAAkB,IAAlB;IAEAF,SAAA,CAAUG,gBAAV,CAA2B,QAA3B,EAAqC,UAAUC,GAAV,EAAe;MAClD,MAAM;QAAEC;MAAF,IAAYD,GAAA,CAAIE,MAAtB;MACA,IAAI,CAACD,KAAD,IAAUA,KAAA,CAAM7G,MAAN,KAAiB,CAA/B,EAAkC;QAChC;MADgC;MAGlCtF,QAAA,CAASgD,QAAT,CAAkB,iBAAlB,EAAqC;QACnCC,MAAA,EAAQ,IAD2B;QAEnC6I,SAAA,EAAWI,GAAA,CAAIE;MAFoB,CAArC;IALkD,CAApD;IAYA3N,SAAA,CAAUkF,aAAV,CAAwBsI,gBAAxB,CAAyC,UAAzC,EAAqD,UAAUC,GAAV,EAAe;MAClEA,GAAA,CAAIG,cAAJ;MAEAH,GAAA,CAAII,YAAJ,CAAiBC,UAAjB,GACEL,GAAA,CAAII,YAAJ,CAAiBE,aAAjB,KAAmC,MAAnC,GAA4C,MAA5C,GAAqD,MADvD;IAHkE,CAApE;IAMA/N,SAAA,CAAUkF,aAAV,CAAwBsI,gBAAxB,CAAyC,MAAzC,EAAiD,UAAUC,GAAV,EAAe;MAC9DA,GAAA,CAAIG,cAAJ;MAEA,MAAM;QAAEF;MAAF,IAAYD,GAAA,CAAII,YAAtB;MACA,IAAI,CAACH,KAAD,IAAUA,KAAA,CAAM7G,MAAN,KAAiB,CAA/B,EAAkC;QAChC;MADgC;MAGlCtF,QAAA,CAASgD,QAAT,CAAkB,iBAAlB,EAAqC;QACnCC,MAAA,EAAQ,IAD2B;QAEnC6I,SAAA,EAAWI,GAAA,CAAII;MAFoB,CAArC;IAP8D,CAAhE;IAcF,IAAI,CAAC,KAAK9O,qBAAV,EAAiC;MAC/B2E,uBAAA,CAAWI,GAAX,CAAe,iBAAf,EAAkC,IAAlC;MACA,KAAKtC,IAAL,CAAUmC,GAAV,CAAc,oBAAd,EAAoCW,IAApC,CAAyC0J,GAAA,IAAO;QAC9CrJ,OAAA,CAAQC,IAAR,CAAaoJ,GAAb;MAD8C,CAAhD;IAF+B;IAOjC,IAAI,CAAC,KAAKC,gBAAV,EAA4B;MAC1BjO,SAAA,CAAUqB,OAAV,EAAmB6M,KAAnB,EAA0BvI,SAA1B,CAAoCC,GAApC,CAAwC,QAAxC;MACA5F,SAAA,CAAUsB,gBAAV,EAA4B6M,WAA5B,CAAwCxI,SAAxC,CAAkDC,GAAlD,CAAsD,QAAtD;IAF0B;IAK5B,IAAI,CAAC,KAAKyF,kBAAV,EAA8B;MAC5BrL,SAAA,CAAUsB,gBAAV,EAA4BgK,sBAA5B,CAAmD3F,SAAnD,CAA6DC,GAA7D,CACE,QADF;IAD4B;IAM9B,IAAI,KAAK9G,sBAAT,EAAiC;MAC/BkB,SAAA,CAAUqB,OAAV,EAAmB+M,QAAnB,EAA6BzI,SAA7B,CAAuCC,GAAvC,CAA2C,QAA3C;IAD+B;IAIjC5F,SAAA,CAAUkF,aAAV,CAAwBsI,gBAAxB,CACE,eADF,EAEE,UAAUC,GAAV,EAAe;MACb,IAAIA,GAAA,CAAIE,MAAJ,KAAmC,IAAvC,EAA6C;QAC3CpM,QAAA,CAASgD,QAAT,CAAkB,QAAlB,EAA4B;UAAEC,MAAA,EAAQ;QAAV,CAA5B;MAD2C;IADhC,CAFjB,EAOE,IAPF;IAWE,IAAIyI,IAAJ,EAAU;MACR,KAAKoB,IAAL,CAAU;QAAEtM,GAAA,EAAKkL;MAAP,CAAV;IADQ,CAAV,MAEO;MACL,KAAKqB,iBAAL;IADK;EAvFO,CA7hBS;EA8nB3B,IAAIC,WAAJA,CAAA,EAAkB;IAChB,OAAO,KAAKzO,sBAAL,CAA4B0O,OAAnC;EADgB,CA9nBS;EAkoB3B,IAAIC,kBAAJA,CAAA,EAAyB;IACvB,OAAO,KAAK3O,sBAAL,CAA4B4O,OAAnC;EADuB,CAloBE;EAsoB3BC,OAAOC,KAAP,EAAcC,WAAd,EAA2B;IACzB,IAAI,KAAKzO,SAAL,CAAe0O,oBAAnB,EAAyC;MACvC;IADuC;IAGzC,KAAK1O,SAAL,CAAe2O,aAAf,CAA6B;MAC3BC,YAAA,EAActL,uBAAA,CAAWC,GAAX,CAAe,kBAAf,CADa;MAE3BiL,KAF2B;MAG3BC;IAH2B,CAA7B;EAJyB,CAtoBA;EAipB3BI,QAAQL,KAAR,EAAeC,WAAf,EAA4B;IAC1B,IAAI,KAAKzO,SAAL,CAAe0O,oBAAnB,EAAyC;MACvC;IADuC;IAGzC,KAAK1O,SAAL,CAAe8O,aAAf,CAA6B;MAC3BF,YAAA,EAActL,uBAAA,CAAWC,GAAX,CAAe,kBAAf,CADa;MAE3BiL,KAF2B;MAG3BC;IAH2B,CAA7B;EAJ0B,CAjpBD;EA4pB3BM,UAAA,EAAY;IACV,IAAI,KAAK/O,SAAL,CAAe0O,oBAAnB,EAAyC;MACvC;IADuC;IAGzC,KAAK1O,SAAL,CAAegP,iBAAf,GAAmCC,6BAAnC;EAJU,CA5pBe;EAmqB3B,IAAIC,UAAJA,CAAA,EAAiB;IACf,OAAO,KAAKrP,WAAL,GAAmB,KAAKA,WAAL,CAAiBsP,QAApC,GAA+C,CAAtD;EADe,CAnqBU;EAuqB3B,IAAIC,IAAJA,CAAA,EAAW;IACT,OAAO,KAAKpP,SAAL,CAAe0M,iBAAtB;EADS,CAvqBgB;EA2qB3B,IAAI0C,IAAJA,CAASC,GAAT,EAAc;IACZ,KAAKrP,SAAL,CAAe0M,iBAAf,GAAmC2C,GAAnC;EADY,CA3qBa;EA+qB3B,IAAIxB,gBAAJA,CAAA,EAAuB;IACrB,OAAOyB,sBAAA,CAAuBC,QAAvB,CAAgC1B,gBAAvC;EADqB,CA/qBI;EAmrB3B,IAAI5C,kBAAJA,CAAA,EAAyB;IACvB,OAAO,IAAAxM,gBAAA,EAAO,IAAP,EAAa,oBAAb,EAAmCa,QAAA,CAASkQ,iBAA5C,CAAP;EADuB,CAnrBE;EAurB3B,IAAIhR,mBAAJA,CAAA,EAA0B;IACxB,OAAO,KAAK9C,gBAAL,CAAsB8C,mBAA7B;EADwB,CAvrBC;EA2rB3B,IAAIE,sBAAJA,CAAA,EAA6B;IAC3B,OAAO,KAAKhD,gBAAL,CAAsBgD,sBAA7B;EAD2B,CA3rBF;EA+rB3B,IAAIC,qBAAJA,CAAA,EAA4B;IAC1B,OAAO,KAAKjD,gBAAL,CAAsBiD,qBAA7B;EAD0B,CA/rBD;EAmsB3B,IAAI8Q,UAAJA,CAAA,EAAiB;IACf,MAAMC,UAAA,GAAapQ,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CAAnB;IACA,MAAMmF,GAAA,GAAMD,UAAA,GAAa,IAAIE,qBAAJ,CAAgBF,UAAhB,CAAb,GAA2C,IAAvD;IACA,OAAO,IAAAjR,gBAAA,EAAO,IAAP,EAAa,YAAb,EAA2BkR,GAA3B,CAAP;EAHe,CAnsBU;EAysB3B,IAAI/Q,mCAAJA,CAAA,EAA0C;IACxC,OAAO,KAAKlD,gBAAL,CAAsBkD,mCAA7B;EADwC,CAzsBf;EA6sB3BR,mBAAmByO,IAAnB,EAAyB;IAKrB,MAAM,IAAI7O,KAAJ,CAAU,qCAAV,CAAN;EALqB,CA7sBE;EA8uB3B6R,iBAAiBlO,GAAA,GAAM,EAAvB,EAA2BmO,WAAA,GAAc,IAAzC,EAA+C;IAC7C,KAAKnO,GAAL,GAAWA,GAAX;IACA,KAAKC,OAAL,GAAeD,GAAA,CAAIiE,KAAJ,CAAU,GAAV,EAAe,CAAf,CAAf;IACA,IAAIkK,WAAJ,EAAiB;MACf,KAAKjO,YAAL,GACEiO,WAAA,KAAgBnO,GAAhB,GAAsB,KAAKC,OAA3B,GAAqCkO,WAAA,CAAYlK,KAAZ,CAAkB,GAAlB,EAAuB,CAAvB,CADvC;IADe;IAIjB,IAAI,IAAAmK,sBAAA,EAAapO,GAAb,CAAJ,EAAuB;MACrB,KAAKuM,iBAAL;IADqB;IAGvB,IAAIrL,KAAA,GAAQ,IAAAmN,+BAAA,EAAsBrO,GAAtB,EAA2B,EAA3B,CAAZ;IACA,IAAI,CAACkB,KAAL,EAAY;MACV,IAAI;QACFA,KAAA,GAAQoN,kBAAA,CAAmB,IAAAC,4BAAA,EAAmBvO,GAAnB,CAAnB,KAA+CA,GAAvD;MADE,CAAJ,CAEE,MAAM;QAGNkB,KAAA,GAAQlB,GAAR;MAHM;IAHE;IASZ,KAAKwO,QAAL,CAActN,KAAd;EApB6C,CA9uBpB;EAqwB3BsN,SAAStN,KAAA,GAAQ,KAAKD,MAAtB,EAA8B;IAC5B,KAAKA,MAAL,GAAcC,KAAd;IAEA,IAAI,KAAKrB,gBAAT,EAA2B;MAEzB;IAFyB;IAI3B,MAAM4O,eAAA,GACJ,KAAKzN,qBAAL,IAA8B,CAAC,KAAKzC,iBAAL,CAAuBmQ,QADxD;IAEA/Q,QAAA,CAASuD,KAAT,GAAiB,GAAGuN,eAAA,GAAkB,IAAlB,GAAyB,EAA5B,GAAiCvN,KAAjC,EAAjB;EAT4B,CArwBH;EAixB3B,IAAI8H,YAAJA,CAAA,EAAmB;IAGjB,OAAO,KAAKxI,2BAAL,IAAoC,IAAA6N,+BAAA,EAAsB,KAAKrO,GAA3B,CAA3C;EAHiB,CAjxBQ;EA0xB3BuM,kBAAA,EAAoB;IAClB,MAAM;MAAEhN;IAAF,IAAuB,KAAKtB,SAAlC;IAEAsB,gBAAA,EAAkBoP,kBAAlB,CAAqC/K,SAArC,CAA+CC,GAA/C,CAAmD,QAAnD;IAGA,IAAItE,gBAAA,EAAkBgK,sBAAlB,CAAyC3F,SAAzC,CAAmDgL,QAAnD,CAA4D,QAA5D,CAAJ,EAA2E;MACzEjR,QAAA,CAASkL,cAAT,CAAwB,uBAAxB,GAAkDjF,SAAlD,CAA4DC,GAA5D,CAAgE,QAAhE;IADyE;EANzD,CA1xBO;EA0yB3B,MAAMgL,KAANA,CAAA,EAAc;IACZ,KAAKC,yBAAL;IACA,KAAKvC,iBAAL;IAEA,IAAI,CAAC,KAAKpO,cAAV,EAA0B;MACxB;IADwB;IAG1B,IAEE,KAAKD,WAAL,EAAkB6Q,iBAAlB,CAAoCC,IAApC,GAA2C,CAD3C,IAEA,KAAKC,0BAHP,EAIE;MACA,IAAI;QAEF,MAAM,KAAKC,IAAL,EAAN;MAFE,CAAJ,CAGE,MAAM;IAJR;IAQF,MAAMC,QAAA,GAAW,EAAjB;IAEAA,QAAA,CAASC,IAAT,CAAc,KAAKjR,cAAL,CAAoBkR,OAApB,EAAd;IACA,KAAKlR,cAAL,GAAsB,IAAtB;IAEA,IAAI,KAAKD,WAAT,EAAsB;MACpB,KAAKA,WAAL,GAAmB,IAAnB;MAEA,KAAKI,kBAAL,EAAyBgR,WAAzB,CAAqC,IAArC;MACA,KAAKjR,SAAL,CAAeiR,WAAf,CAA2B,IAA3B;MACA,KAAK5Q,cAAL,CAAoB4Q,WAApB,CAAgC,IAAhC;MACA,KAAK7Q,qBAAL,EAA4B6Q,WAA5B,CAAwC,IAAxC;IANoB;IAQtB,KAAK5Q,cAAL,CAAoB6Q,mBAApB,GAA0C,IAA1C;IACA,KAAKrQ,KAAL,GAAa,IAAb;IACA,KAAKS,gBAAL,GAAwB,KAAxB;IACA,KAAKC,gBAAL,GAAwB,KAAxB;IACA,KAAKI,GAAL,GAAW,EAAX;IACA,KAAKC,OAAL,GAAe,EAAf;IACA,KAAKC,YAAL,GAAoB,EAApB;IACA,KAAKI,YAAL,GAAoB,IAApB;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,2BAAL,GAAmC,IAAnC;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA,KAAKC,eAAL,GAAuB,KAAvB;IACA,KAAKM,qBAAL,GAA6B,KAA7B;IAEAmO,QAAA,CAASC,IAAT,CACE,KAAKnQ,mBAAL,CAAyBuQ,cAD3B,EAEE,KAAK9F,cAAL,CAAoBmF,KAApB,EAFF;IAKA,KAAKL,QAAL;IACA,KAAK5P,UAAL,EAAiB6Q,KAAjB;IACA,KAAK5Q,gBAAL,EAAuB4Q,KAAvB;IACA,KAAK3Q,mBAAL,EAA0B2Q,KAA1B;IACA,KAAK1Q,cAAL,EAAqB0Q,KAArB;IAEA,KAAK9Q,UAAL,EAAiB8Q,KAAjB;IACA,KAAKnH,OAAL,EAAcmH,KAAd;IACA,KAAKnQ,OAAL,EAAcmQ,KAAd;IACA,KAAKlQ,gBAAL,EAAuBkQ,KAAvB;IACA,KAAK1O,OAAL,EAAc2O,OAAd;IAEA,MAAMlS,OAAA,CAAQmS,GAAR,CAAYR,QAAZ,CAAN;EA/DY,CA1yBa;EAk3B3B,MAAM7C,IAANA,CAAWsD,IAAX,EAAiB;IAEb,IAAIC,cAAA,GAAiB,KAArB;IACA,IAAI,OAAOD,IAAP,KAAgB,QAApB,EAA8B;MAC5BA,IAAA,GAAO;QAAE5P,GAAA,EAAK4P;MAAP,CAAP;MACAC,cAAA,GAAiB,IAAjB;IAF4B,CAA9B,MAGO,IAAID,IAAA,EAAME,UAAV,EAAsB;MAC3BF,IAAA,GAAO;QAAErT,IAAA,EAAMqT;MAAR,CAAP;MACAC,cAAA,GAAiB,IAAjB;IAF2B;IAI7B,IAAIA,cAAJ,EAAoB;MAClBjN,OAAA,CAAQK,KAAR,CACE,sFADF;IADkB;IAOtB,IAAI,KAAK9E,cAAT,EAAyB;MAEvB,MAAM,KAAK0Q,KAAL,EAAN;IAFuB;IAKzB,MAAMkB,YAAA,GAAepO,uBAAA,CAAWoB,MAAX,CAAkBiN,uBAAA,CAAWC,MAA7B,CAArB;IACA7P,MAAA,CAAO8P,MAAP,CAAcC,6BAAd,EAAmCJ,YAAnC;IAEA,IAEEH,IAAA,CAAK5P,GAFP,EAGE;MAGA,KAAKkO,gBAAL,CACE0B,IAAA,CAAKQ,WAAL,IAAoBR,IAAA,CAAK5P,GAD3B,EAEsB4P,IAAA,CAAK5P,GAF3B;IAHA;IASF,MAAMqQ,SAAA,GAAY1O,uBAAA,CAAWoB,MAAX,CAAkBiN,uBAAA,CAAWM,GAA7B,CAAlB;IACA,MAAMjN,MAAA,GAAS;MACb/F,oBAAA,EAAsB,KAAKvD,gBAAL,CAAsBuD,oBAD/B;MAEb,GAAG+S,SAFU;MAGb,GAAGT;IAHU,CAAf;IAWA,MAAMW,WAAA,GAAc,IAAAC,qBAAA,EAAYnN,MAAZ,CAApB;IACA,KAAKlF,cAAL,GAAsBoS,WAAtB;IAEAA,WAAA,CAAYE,UAAZ,GAAyB,CAACC,cAAD,EAAiB1N,MAAjB,KAA4B;MACnD,IAAI,KAAKnD,gBAAT,EAA2B;QAIzB,KAAKiP,yBAAL;MAJyB;MAO3B,KAAKpQ,cAAL,CAAoB6Q,mBAApB,GAA0C,KAA1C;MACA,KAAK7F,cAAL,CAAoBiH,iBAApB,CAAsCD,cAAtC,EAAsD1N,MAAtD;MACA,KAAK0G,cAAL,CAAoB4C,IAApB;IAVmD,CAArD;IAaAiE,WAAA,CAAYK,UAAZ,GAAyB,CAAC;MAAEC,MAAF;MAAUC;IAAV,CAAD,KAAuB;MAC9C,KAAKC,QAAL,CAAcF,MAAA,GAASC,KAAvB;IAD8C,CAAhD;IAIA,OAAOP,WAAA,CAAY5D,OAAZ,CAAoBpK,IAApB,CACLrE,WAAA,IAAe;MACb,KAAK8S,IAAL,CAAU9S,WAAV;IADa,CADV,EAIL8E,MAAA,IAAU;MACR,IAAIuN,WAAA,KAAgB,KAAKpS,cAAzB,EAAyC;QACvC,OAAO8S,SAAP;MADuC;MAIzC,IAAIC,GAAA,GAAM,eAAV;MACA,IAAIlO,MAAA,YAAkBmO,6BAAtB,EAA2C;QACzCD,GAAA,GAAM,oBAAN;MADyC,CAA3C,MAEO,IAAIlO,MAAA,YAAkBoO,6BAAtB,EAA2C;QAChDF,GAAA,GAAM,oBAAN;MADgD,CAA3C,MAEA,IAAIlO,MAAA,YAAkBqO,qCAAtB,EAAmD;QACxDH,GAAA,GAAM,2BAAN;MADwD;MAG1D,OAAO,KAAKzR,IAAL,CAAUmC,GAAV,CAAcsP,GAAd,EAAmB3O,IAAnB,CAAwB0J,GAAA,IAAO;QACpC,KAAKqF,cAAL,CAAoBrF,GAApB,EAAyB;UAAE/I,OAAA,EAASF,MAAA,EAAQE;QAAnB,CAAzB;QACA,MAAMF,MAAN;MAFoC,CAA/B,CAAP;IAbQ,CAJL,CAAP;EArEe,CAl3BU;EAm9B3BuO,wBAAA,EAA0B;IACxB,IAAI,KAAKrT,WAAL,IAAoB,KAAK0B,gBAA7B,EAA+C;MAC7C;IAD6C;IAG/C,MAAM,IAAIvD,KAAJ,CAAU,8BAAV,CAAN;EAJwB,CAn9BC;EA09B3B,MAAMmV,QAANA,CAAe5U,OAAA,GAAU,EAAzB,EAA6B;IAC3B,MAAMoD,GAAA,GAAM,KAAKE,YAAjB;MACEuR,QAAA,GAAW,KAAKzI,YADlB;IAEA,IAAI;MACF,KAAKuI,uBAAL;MAEA,MAAMhV,IAAA,GAAO,MAAM,KAAK2B,WAAL,CAAiBwT,OAAjB,EAAnB;MACA,MAAMC,IAAA,GAAO,IAAIC,IAAJ,CAAS,CAACrV,IAAD,CAAT,EAAiB;QAAEsV,IAAA,EAAM;MAAR,CAAjB,CAAb;MAEA,MAAM,KAAK1S,eAAL,CAAqBqS,QAArB,CAA8BG,IAA9B,EAAoC3R,GAApC,EAAyCyR,QAAzC,EAAmD7U,OAAnD,CAAN;IANE,CAAJ,CAOE,MAAM;MAGN,MAAM,KAAKuC,eAAL,CAAqBgP,WAArB,CAAiCnO,GAAjC,EAAsCyR,QAAtC,EAAgD7U,OAAhD,CAAN;IAHM;EAVmB,CA19BF;EA2+B3B,MAAMsS,IAANA,CAAWtS,OAAA,GAAU,EAArB,EAAyB;IACvB,IAAI,KAAK8D,eAAT,EAA0B;MACxB;IADwB;IAG1B,KAAKA,eAAL,GAAuB,IAAvB;IACA,MAAM,KAAKzB,mBAAL,CAAyB6S,gBAAzB,EAAN;IAEA,MAAM9R,GAAA,GAAM,KAAKE,YAAjB;MACEuR,QAAA,GAAW,KAAKzI,YADlB;IAEA,IAAI;MACF,KAAKuI,uBAAL;MAEA,MAAMhV,IAAA,GAAO,MAAM,KAAK2B,WAAL,CAAiB6T,YAAjB,EAAnB;MACA,MAAMJ,IAAA,GAAO,IAAIC,IAAJ,CAAS,CAACrV,IAAD,CAAT,EAAiB;QAAEsV,IAAA,EAAM;MAAR,CAAjB,CAAb;MAEA,MAAM,KAAK1S,eAAL,CAAqBqS,QAArB,CAA8BG,IAA9B,EAAoC3R,GAApC,EAAyCyR,QAAzC,EAAmD7U,OAAnD,CAAN;IANE,CAAJ,CAOE,OAAOoG,MAAP,EAAe;MAGfJ,OAAA,CAAQK,KAAR,CAAe,mCAAkCD,MAAA,CAAOE,OAA1C,EAAd;MACA,MAAM,KAAKsO,QAAL,CAAc5U,OAAd,CAAN;IAJe,CAPjB,SAYU;MACR,MAAM,KAAKqC,mBAAL,CAAyB+S,eAAzB,EAAN;MACA,KAAKtR,eAAL,GAAuB,KAAvB;IAFQ;IAKV,IAAI,KAAKM,qBAAT,EAAgC;MAC9B,KAAKjH,gBAAL,CAAsB4C,eAAtB,CAAsC;QACpCkV,IAAA,EAAM,SAD8B;QAEpCtV,IAAA,EAAM;UAAEsV,IAAA,EAAM;QAAR;MAF8B,CAAtC;IAD8B;EA1BT,CA3+BE;EA6gC3BI,eAAerV,OAAA,GAAU,EAAzB,EAA6B;IAC3B,IAAI,KAAKsB,WAAL,EAAkB6Q,iBAAlB,CAAoCC,IAApC,GAA2C,CAA/C,EAAkD;MAChD,KAAKE,IAAL,CAAUtS,OAAV;IADgD,CAAlD,MAEO;MACL,KAAK4U,QAAL,CAAc5U,OAAd;IADK;EAHoB,CA7gCF;EAqhC3BsV,kBAAA,EAAoB;IAClB,KAAKD,cAAL,CAAoB;MAAEC,iBAAA,EAAmB;IAArB,CAApB;EADkB,CArhCO;EA6hC3BZ,eAAepO,OAAf,EAAwBiP,QAAA,GAAW,IAAnC,EAAyC;IACvC,KAAKrD,yBAAL;IAEA,KAAKsD,WAAL,CAAiBlP,OAAjB,EAA0BiP,QAA1B;IAEA,KAAK3S,QAAL,CAAcgD,QAAd,CAAuB,eAAvB,EAAwC;MACtCC,MAAA,EAAQ,IAD8B;MAEtCS,OAFsC;MAGtCF,MAAA,EAAQmP,QAAA,EAAUjP,OAAV,IAAqB;IAHS,CAAxC;EALuC,CA7hCd;EAgjC3BkP,YAAYlP,OAAZ,EAAqBiP,QAAA,GAAW,IAAhC,EAAsC;IACpC,MAAME,YAAA,GAAe,CAAE,WAAUC,iBAAA,IAAW,GAAI,YAAWC,eAAA,IAAS,GAAI,GAAnD,CAArB;IACA,IAAIJ,QAAJ,EAAc;MACZE,YAAA,CAAajD,IAAb,CAAmB,YAAW+C,QAAA,CAASjP,OAArB,EAAlB;MAEA,IAAIiP,QAAA,CAASK,KAAb,EAAoB;QAClBH,YAAA,CAAajD,IAAb,CAAmB,UAAS+C,QAAA,CAASK,KAAnB,EAAlB;MADkB,CAApB,MAEO;QACL,IAAIL,QAAA,CAASV,QAAb,EAAuB;UACrBY,YAAA,CAAajD,IAAb,CAAmB,SAAQ+C,QAAA,CAASV,QAAlB,EAAlB;QADqB;QAGvB,IAAIU,QAAA,CAASM,UAAb,EAAyB;UACvBJ,YAAA,CAAajD,IAAb,CAAmB,SAAQ+C,QAAA,CAASM,UAAlB,EAAlB;QADuB;MAJpB;IALK;IAed7P,OAAA,CAAQK,KAAR,CAAc,GAAGC,OAAQ,OAAMmP,YAAA,CAAaK,IAAb,CAAkB,IAAlB,CAAjB,EAAd;EAjBoC,CAhjCX;EAokC3B3B,SAAS4B,KAAT,EAAgB;IACd,IAAI,CAAC,KAAK7E,UAAN,IAAoB,KAAKlO,gBAA7B,EAA+C;MAG7C;IAH6C;IAK/C,MAAMgT,OAAA,GAAUC,IAAA,CAAKC,KAAL,CAAWH,KAAA,GAAQ,GAAnB,CAAhB;IAKA,IAAIC,OAAA,IAAW,KAAK9E,UAAL,CAAgB8E,OAA/B,EAAwC;MACtC;IADsC;IAGxC,KAAK9E,UAAL,CAAgB8E,OAAhB,GAA0BA,OAA1B;IAOA,IACE,KAAK1U,WAAL,EAAkB6U,aAAlB,CAAgCC,gBAAhC,IACArR,uBAAA,CAAWC,GAAX,CAAe,kBAAf,CAFF,EAGE;MACA,KAAKkM,UAAL,CAAgBmF,mBAAhB;IADA;EAxBY,CApkCW;EAimC3BjC,KAAK9S,WAAL,EAAkB;IAChB,KAAKA,WAAL,GAAmBA,WAAnB;IAEAA,WAAA,CAAYgV,eAAZ,GAA8B3Q,IAA9B,CAAmC,CAAC;MAAEuC;IAAF,CAAD,KAAgB;MACjD,KAAKrE,cAAL,GAAsBqE,MAAtB;MACA,KAAKlF,gBAAL,GAAwB,IAAxB;MACA,KAAKkO,UAAL,EAAiBqF,IAAjB;MAEAC,gBAAA,CAAiB7Q,IAAjB,CAAsB,MAAM;QAC1B,KAAK/C,QAAL,CAAcgD,QAAd,CAAuB,gBAAvB,EAAyC;UAAEC,MAAA,EAAQ;QAAV,CAAzC;MAD0B,CAA5B;IALiD,CAAnD;IAYA,MAAM4Q,iBAAA,GAAoBnV,WAAA,CAAYoV,aAAZ,GAA4BC,KAA5B,CAAkC,MAAM,EAAxC,CAA1B;IAGA,MAAMC,eAAA,GAAkBtV,WAAA,CAAYuV,WAAZ,GAA0BF,KAA1B,CAAgC,MAAM,EAAtC,CAAxB;IAGA,MAAMG,iBAAA,GAAoBxV,WAAA,CAAYyV,aAAZ,GAA4BJ,KAA5B,CAAkC,MAAM,EAAxC,CAA1B;IAIA,KAAKjU,OAAL,EAAcsU,aAAd,CAA4B1V,WAAA,CAAYsP,QAAxC,EAAkD,KAAlD;IACA,KAAKjO,gBAAL,EAAuBqU,aAAvB,CAAqC1V,WAAA,CAAYsP,QAAjD;IAWE,KAAK9O,cAAL,CAAoB4Q,WAApB,CAAgCpR,WAAhC;IAEF,KAAKO,qBAAL,EAA4B6Q,WAA5B,CAAwCpR,WAAxC;IAEA,MAAMG,SAAA,GAAY,KAAKA,SAAvB;IACAA,SAAA,CAAUiR,WAAV,CAAsBpR,WAAtB;IACA,MAAM;MAAEkV,gBAAF;MAAoBS,eAApB;MAAqCC;IAArC,IAAsDzV,SAA5D;IAEA,KAAKC,kBAAL,EAAyBgR,WAAzB,CAAqCpR,WAArC;IAEA,MAAM6V,aAAA,GAAiB,MAAK7U,KAAL,GAAa,IAAI8U,yBAAJ,CAClC9V,WAAA,CAAY+V,YAAZ,CAAyB,CAAzB,CADkC,CAAb,EAGpBC,WAHmB,CAGP;MACXzG,IAAA,EAAM,IADK;MAEX0G,IAAA,EAAM7G,6BAFK;MAGX8G,UAAA,EAAY,GAHD;MAIXC,SAAA,EAAW,GAJA;MAKXC,QAAA,EAAU,IALC;MAMXC,WAAA,EAAaC,qBAAA,CAAY3Y,OANd;MAOX4Y,UAAA,EAAYC,oBAAA,CAAW7Y,OAPZ;MAQX8Y,UAAA,EAAYC,oBAAA,CAAW/Y;IARZ,CAHO,EAanB0X,KAbmB,CAab,MAAM,EAbO,CAAtB;IAiBAH,gBAAA,CAAiB7Q,IAAjB,CAAsBsS,OAAA,IAAW;MAC/B,KAAK/G,UAAL,EAAiBgH,QAAjB,CAA0B,KAAK7W,SAAL,CAAemF,eAAzC;MACA,KAAK2R,qCAAL,CAA2C7W,WAA3C;MAEAV,OAAA,CAAQmS,GAAR,CAAY,CACVqF,0BADU,EAEVjB,aAFU,EAGVV,iBAHU,EAIVG,eAJU,EAKVE,iBALU,CAAZ,EAOGnR,IAPH,CAOQ,OAAO,CAAC0S,SAAD,EAAYC,MAAZ,EAAoBC,UAApB,EAAgCC,QAAhC,EAA0CC,UAA1C,CAAP,KAAiE;QACrE,MAAMC,UAAA,GAAa3T,uBAAA,CAAWC,GAAX,CAAe,YAAf,CAAnB;QAEA,KAAK2T,qBAAL,CAA2B;UACzBC,WAAA,EAAatX,WAAA,CAAY+V,YAAZ,CAAyB,CAAzB,CADY;UAEzBqB,UAFyB;UAGzBG,WAAA,EAAaJ,UAAA,EAAYK;QAHA,CAA3B;QAKA,MAAMhY,eAAA,GAAkB,KAAKA,eAA7B;QAGA,MAAMyW,IAAA,GAAOxS,uBAAA,CAAWC,GAAX,CAAe,kBAAf,CAAb;QACA,IAAI/D,IAAA,GAAOsW,IAAA,GAAQ,QAAOA,IAAR,EAAP,GAAwB,IAAnC;QAEA,IAAIG,QAAA,GAAW,IAAf;QACA,IAAIC,WAAA,GAAc5S,uBAAA,CAAWC,GAAX,CAAe,mBAAf,CAAlB;QACA,IAAI6S,UAAA,GAAa9S,uBAAA,CAAWC,GAAX,CAAe,kBAAf,CAAjB;QACA,IAAI+S,UAAA,GAAahT,uBAAA,CAAWC,GAAX,CAAe,kBAAf,CAAjB;QAEA,IAAIsT,MAAA,EAAQzH,IAAR,IAAgB6H,UAAA,KAAe1Z,UAAA,CAAWG,OAA9C,EAAuD;UACrD8B,IAAA,GACG,QAAOqX,MAAA,CAAOzH,IAAK,SAAQ0G,IAAA,IAAQe,MAAA,CAAOf,IAAK,GAAhD,GACA,GAAGe,MAAA,CAAOd,UAAW,IAAGc,MAAA,CAAOb,SAA/B,EAFF;UAIAC,QAAA,GAAWqB,QAAA,CAAST,MAAA,CAAOZ,QAAhB,EAA0B,EAA1B,CAAX;UAEA,IAAIC,WAAA,KAAgBC,qBAAA,CAAY3Y,OAAhC,EAAyC;YACvC0Y,WAAA,GAAcW,MAAA,CAAOX,WAAP,GAAqB,CAAnC;UADuC;UAGzC,IAAIE,UAAA,KAAeC,oBAAA,CAAW7Y,OAA9B,EAAuC;YACrC4Y,UAAA,GAAaS,MAAA,CAAOT,UAAP,GAAoB,CAAjC;UADqC;UAGvC,IAAIE,UAAA,KAAeC,oBAAA,CAAW/Y,OAA9B,EAAuC;YACrC8Y,UAAA,GAAaO,MAAA,CAAOP,UAAP,GAAoB,CAAjC;UADqC;QAbc;QAkBvD,IAAIS,QAAA,IAAYb,WAAA,KAAgBC,qBAAA,CAAY3Y,OAA5C,EAAqD;UACnD0Y,WAAA,GAAc,IAAAqB,kCAAA,EAAyBR,QAAzB,CAAd;QADmD;QAGrD,IACED,UAAA,IACAV,UAAA,KAAeC,oBAAA,CAAW7Y,OAD1B,IAEA8Y,UAAA,KAAeC,oBAAA,CAAW/Y,OAH5B,EAIE;UACA,MAAMga,KAAA,GAAQ,IAAAC,oCAAA,EAA2BX,UAA3B,CAAd;UAIAR,UAAA,GAAakB,KAAA,CAAMlB,UAAnB;QALA;QAQF,KAAKoB,cAAL,CAAoBlY,IAApB,EAA0B;UACxByW,QADwB;UAExBC,WAFwB;UAGxBE,UAHwB;UAIxBE;QAJwB,CAA1B;QAMA,KAAKnV,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;UAAEC,MAAA,EAAQ;QAAV,CAAvC;QAGA,IAAI,CAAC,KAAK5C,gBAAV,EAA4B;UAC1BxB,SAAA,CAAU2X,KAAV;QAD0B;QAS5B,MAAMxY,OAAA,CAAQyY,IAAR,CAAa,CACjBnC,YADiB,EAEjB,IAAItW,OAAJ,CAAYC,OAAA,IAAW;UACrByY,UAAA,CAAWzY,OAAX,EAAoB/B,0BAApB;QADqB,CAAvB,CAFiB,CAAb,CAAN;QAMA,IAAI,CAACgC,eAAD,IAAoB,CAACG,IAAzB,EAA+B;UAC7B;QAD6B;QAG/B,IAAIQ,SAAA,CAAU8X,iBAAd,EAAiC;UAC/B;QAD+B;QAGjC,KAAKzY,eAAL,GAAuBA,eAAvB;QAGAW,SAAA,CAAUgP,iBAAV,GAA8BhP,SAAA,CAAUgP,iBAAxC;QAEA,KAAK0I,cAAL,CAAoBlY,IAApB;MAvFqE,CAPzE,EAgGG0V,KAhGH,CAgGS,MAAM;QAGX,KAAKwC,cAAL;MAHW,CAhGf,EAqGGxT,IArGH,CAqGQ,YAAY;QAKhBlE,SAAA,CAAU+X,MAAV;MALgB,CArGpB;IAJ+B,CAAjC;IAkHAtC,YAAA,CAAavR,IAAb,CACE,MAAM;MACJ,KAAKuM,yBAAL;MAEA,KAAKuH,oBAAL,CAA0BnY,WAA1B,EAAuCwV,iBAAvC;IAHI,CADR,EAME1Q,MAAA,IAAU;MACR,KAAKvD,IAAL,CAAUmC,GAAV,CAAc,eAAd,EAA+BW,IAA/B,CAAoC0J,GAAA,IAAO;QACzC,KAAKqF,cAAL,CAAoBrF,GAApB,EAAyB;UAAE/I,OAAA,EAASF,MAAA,EAAQE;QAAnB,CAAzB;MADyC,CAA3C;IADQ,CANZ;IAaA2Q,eAAA,CAAgBtR,IAAhB,CAAqBhG,IAAA,IAAQ;MAC3B,KAAKxC,gBAAL,CAAsB4C,eAAtB,CAAsC;QACpCkV,IAAA,EAAM,UAD8B;QAEpCyE,SAAA,EAAW/Z,IAAA,CAAK+Z;MAFoB,CAAtC;MAKA,IAAI,KAAKzX,gBAAT,EAA2B;QACzBX,WAAA,CAAYqY,UAAZ,GAAyBhU,IAAzB,CAA8BiU,OAAA,IAAW;UACvC,IAAItY,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;YACpC;UADoC;UAGtC,KAAKW,gBAAL,CAAsB4X,MAAtB,CAA6B;YAAED,OAAF;YAAWtY;UAAX,CAA7B;QAJuC,CAAzC;MADyB;MAQ3B,IAAI,KAAKY,mBAAT,EAA8B;QAC5BZ,WAAA,CAAYwY,cAAZ,GAA6BnU,IAA7B,CAAkCoU,WAAA,IAAe;UAC/C,IAAIzY,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;YACpC;UADoC;UAGtC,KAAKY,mBAAL,CAAyB2X,MAAzB,CAAgC;YAAEE;UAAF,CAAhC;QAJ+C,CAAjD;MAD4B;MAQ9B,IAAI,KAAK5X,cAAT,EAAyB;QAGvBV,SAAA,CAAUuY,4BAAV,CAAuCrU,IAAvC,CAA4CsU,qBAAA,IAAyB;UACnE,IAAI3Y,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;YACpC;UADoC;UAGtC,KAAKa,cAAL,CAAoB0X,MAApB,CAA2B;YAAEI,qBAAF;YAAyB3Y;UAAzB,CAA3B;QAJmE,CAArE;MAHuB;IAtBE,CAA7B;IAkCA,KAAK4Y,qBAAL,CAA2B5Y,WAA3B;IACA,KAAK6Y,mBAAL,CAAyB7Y,WAAzB;EAlOgB,CAjmCS;EAy0C3B,MAAMsI,uBAANA,CAA8BtI,WAA9B,EAA2C;IACzC,IAAI,CAAC,KAAKoC,YAAV,EAAwB;MAGtB,MAAM,IAAI9C,OAAJ,CAAYC,OAAA,IAAW;QAC3B,KAAK+B,QAAL,CAAcwX,GAAd,CAAkB,gBAAlB,EAAoCvZ,OAApC,EAA6C;UAAEwZ,IAAA,EAAM;QAAR,CAA7C;MAD2B,CAAvB,CAAN;MAGA,IAAI/Y,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;QACpC,OAAO,IAAP;MADoC;IANhB;IAUxB,IAAI,CAAC,KAAKuC,cAAV,EAA0B;MAMxB,MAAM,IAAIjD,OAAJ,CAAYC,OAAA,IAAW;QAC3B,KAAK+B,QAAL,CAAcwX,GAAd,CAAkB,gBAAlB,EAAoCvZ,OAApC,EAA6C;UAAEwZ,IAAA,EAAM;QAAR,CAA7C;MAD2B,CAAvB,CAAN;MAGA,IAAI/Y,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;QACpC,OAAO,IAAP;MADoC;IATd;IAc1B,OAAO;MACL,GAAG,KAAKoC,YADH;MAEL4W,OAAA,EAAS,KAAKjX,OAFT;MAGLkX,QAAA,EAAU,KAAK1W,cAHV;MAILgR,QAAA,EAAU,KAAKzI,YAJV;MAKLzI,QAAA,EAAU,KAAKA,QAAL,EAAe6W,MAAf,EALL;MAMLC,OAAA,EAAS,KAAK9W,QAAL,EAAeqB,GAAf,CAAmB,YAAnB,CANJ;MAOL4L,QAAA,EAAU,KAAKD,UAPV;MAQL+J,GAAA,EAAK,KAAKtX;IARL,CAAP;EAzByC,CAz0ChB;EAi3C3B,MAAMqW,oBAANA,CAA2BnY,WAA3B,EAAwCwV,iBAAxC,EAA2D;IACzD,MAAM,CAAC2B,UAAD,EAAakC,SAAb,IAA0B,MAAM/Z,OAAA,CAAQmS,GAAR,CAAY,CAChD+D,iBADgD,EAEhD,KAAKrV,SAAL,CAAemZ,eAAf,GAAiC,IAAjC,GAAwCtZ,WAAA,CAAYuZ,YAAZ,EAFQ,CAAZ,CAAtC;IAKA,IAAIvZ,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;MACpC;IADoC;IAGtC,IAAIwZ,gBAAA,GAAmBrC,UAAA,EAAYsC,MAAZ,KAAuB,OAA9C;IAEA,IAAIJ,SAAJ,EAAe;MACb3U,OAAA,CAAQC,IAAR,CAAa,4CAAb;MAGA,WAAW+U,IAAX,IAAmBL,SAAnB,EAA8B;QAC5B,IAAIG,gBAAJ,EAAsB;UACpB;QADoB;QAGtB,QAAQE,IAAR;UACE,KAAK,WAAL;UACA,KAAK,UAAL;UACA,KAAK,SAAL;UACA,KAAK,WAAL;UACA,KAAK,UAAL;YACE;QANJ;QAQAF,gBAAA,GAAmBH,SAAA,CAAUK,IAAV,EAAgBC,IAAhB,CAAqBC,EAAA,IAAMC,yBAAA,CAAgBC,IAAhB,CAAqBF,EAArB,CAA3B,CAAnB;MAZ4B;IAJjB;IAoBf,IAAIJ,gBAAJ,EAAsB;MACpB,KAAKO,eAAL;IADoB;EA/BmC,CAj3ChC;EAw5C3B,MAAMlB,mBAANA,CAA0B7Y,WAA1B,EAAuC;IACrC,MAAM;MAAEga,IAAF;MAAQ3X,QAAR;MAAkB4X,0BAAlB;MAA8CC;IAA9C,IACJ,MAAMla,WAAA,CAAYma,WAAZ,EADR;IAGA,IAAIna,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;MACpC;IADoC;IAGtC,KAAKoC,YAAL,GAAoB4X,IAApB;IACA,KAAK3X,QAAL,GAAgBA,QAAhB;IACA,KAAKC,2BAAL,KAAqC2X,0BAArC;IACA,KAAK1X,cAAL,KAAwB2X,aAAxB;IAGAxV,OAAA,CAAQ0V,GAAR,CACG,OAAMpa,WAAA,CAAY+V,YAAZ,CAAyB,CAAzB,CAA4B,KAAIiE,IAAA,CAAKK,gBAAiB,GAA7D,GACE,GAAI,CAAAL,IAAA,CAAKM,QAAL,IAAiB,GAAjB,EAAsBC,IAAvB,EAA8B,MAAM,CAAAP,IAAA,CAAKQ,OAAL,IAAgB,GAAhB,EAAqBD,IAAtB,EAA6B,IADrE,GAEG,YAAWnG,iBAAA,IAAW,GAAI,KAAIC,eAAA,IAAS,GAAI,IAHhD;IAKA,IAAIoG,QAAA,GAAWT,IAAA,CAAKU,KAApB;IAEA,MAAMC,aAAA,GAAgBtY,QAAA,EAAUqB,GAAV,CAAc,UAAd,CAAtB;IACA,IAAIiX,aAAJ,EAAmB;MAMjB,IACEA,aAAA,KAAkB,UAAlB,IACA,CAAC,mBAAmBb,IAAnB,CAAwBa,aAAxB,CAFH,EAGE;QACAF,QAAA,GAAWE,aAAX;MADA;IATe;IAanB,IAAIF,QAAJ,EAAc;MACZ,KAAKnK,QAAL,CACE,GAAGmK,QAAS,MAAK,KAAKnY,2BAAL,IAAoC,KAAKS,MAA1D,EADF;IADY,CAAd,MAIO,IAAI,KAAKT,2BAAT,EAAsC;MAC3C,KAAKgO,QAAL,CAAc,KAAKhO,2BAAnB;IAD2C;IAI7C,IACE0X,IAAA,CAAKY,YAAL,IACA,CAACZ,IAAA,CAAKa,iBADN,IAEA,CAAC7a,WAAA,CAAY8a,SAHf,EAIE;MACA,IAAI9a,WAAA,CAAY6U,aAAZ,CAA0BkG,SAA9B,EAAyC;QACvCrW,OAAA,CAAQC,IAAR,CAAa,qDAAb;MADuC,CAAzC,MAEO;QACLD,OAAA,CAAQC,IAAR,CAAa,qCAAb;MADK;IAHP,CAJF,MAUO,IACJ,CAAAqV,IAAA,CAAKa,iBAAL,IAA0Bb,IAAA,CAAKY,YAA/B,KACD,CAAC,KAAKza,SAAL,CAAe6a,WAFX,EAGL;MACAtW,OAAA,CAAQC,IAAR,CAAa,kDAAb;IADA;IAIF,IAAIqV,IAAA,CAAKiB,mBAAT,EAA8B;MAC5BvW,OAAA,CAAQC,IAAR,CAAa,yDAAb;IAD4B;IAI9B,KAAKrD,QAAL,CAAcgD,QAAd,CAAuB,gBAAvB,EAAyC;MAAEC,MAAA,EAAQ;IAAV,CAAzC;EA/DqC,CAx5CZ;EA69C3B,MAAMqU,qBAANA,CAA4B5Y,WAA5B,EAAyC;IAQvC,MAAMkb,MAAA,GAAS,MAAMlb,WAAA,CAAYmb,aAAZ,EAArB;IAEA,IAAInb,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;MACpC;IADoC;IAGtC,IAAI,CAACkb,MAAD,IAAWzX,uBAAA,CAAWC,GAAX,CAAe,mBAAf,CAAf,EAAoD;MAClD;IADkD;IAGpD,MAAM0X,SAAA,GAAYF,MAAA,CAAOtU,MAAzB;IAGA,IAAIyU,cAAA,GAAiB,CAArB;MACEC,WAAA,GAAc,CADhB;IAEA,KAAK,IAAI5U,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAI0U,SAApB,EAA+B1U,CAAA,EAA/B,EAAoC;MAClC,MAAM6U,KAAA,GAAQL,MAAA,CAAOxU,CAAP,CAAd;MACA,IAAI6U,KAAA,KAAW,CAAA7U,CAAA,GAAI,CAAJ,EAAO8U,QAAR,EAAd,EAAkC;QAChCH,cAAA;MADgC,CAAlC,MAEO,IAAIE,KAAA,KAAU,EAAd,EAAkB;QACvBD,WAAA;MADuB,CAAlB,MAEA;QACL;MADK;IAN2B;IAUpC,IAAID,cAAA,IAAkBD,SAAlB,IAA+BE,WAAA,IAAeF,SAAlD,EAA6D;MAC3D;IAD2D;IAG7D,MAAM;MAAEjb,SAAF;MAAaC,kBAAb;MAAiCgB;IAAjC,IAA6C,IAAnD;IAEAjB,SAAA,CAAUsb,aAAV,CAAwBP,MAAxB;IACA9a,kBAAA,EAAoBqb,aAApB,CAAkCP,MAAlC;IAIA9Z,OAAA,EAASsU,aAAT,CAAuB0F,SAAvB,EAAkC,IAAlC;IACAha,OAAA,EAASsa,aAAT,CACEvb,SAAA,CAAU0M,iBADZ,EAEE1M,SAAA,CAAUwb,gBAFZ;EA1CuC,CA79Cd;EAghD3BtE,sBAAsB;IAAEC,WAAF;IAAeF,UAAf;IAA2BG,WAAA,GAAc;EAAzC,CAAtB,EAAuE;IACrE,IAAI,CAAC,KAAK9W,UAAV,EAAsB;MACpB;IADoB;IAGtB,KAAKA,UAAL,CAAgB4C,UAAhB,CAA2B;MACzBiU,WADyB;MAEzBsE,YAAA,EAAcxE,UAAA,KAAe1Z,UAAA,CAAWG,OAFf;MAGzBge,SAAA,EAAWpY,uBAAA,CAAWC,GAAX,CAAe,kBAAf;IAHc,CAA3B;IAMA,IAAI,KAAKjD,UAAL,CAAgBjB,eAApB,EAAqC;MACnC,KAAKA,eAAL,GAAuB,KAAKiB,UAAL,CAAgBjB,eAAvC;MAEA,KAAKsc,eAAL,GAAuB,KAAKrb,UAAL,CAAgBqb,eAAvC;IAHmC;IAOrC,IACEvE,WAAA,IACA,CAAC,KAAK/X,eADN,IAEA4X,UAAA,KAAe1Z,UAAA,CAAWC,OAH5B,EAIE;MACA,KAAK6B,eAAL,GAAuB5E,IAAA,CAAKC,SAAL,CAAe0c,WAAf,CAAvB;MAGA,KAAK9W,UAAL,CAAgByQ,IAAhB,CAAqB;QAAE6K,YAAA,EAAcxE,WAAhB;QAA6ByE,UAAA,EAAY;MAAzC,CAArB;IAJA;EArBmE,CAhhD5C;EAgjD3BnF,sCAAsC7W,WAAtC,EAAmD;IACjD,IAAIA,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;MACpC;IADoC;IAGtC,MAAM;MAAE6Q;IAAF,IAAwB7Q,WAA9B;IAEA6Q,iBAAA,CAAkBoL,aAAlB,GAAkC,MAAM;MACtCra,MAAA,CAAO2L,gBAAP,CAAwB,cAAxB,EAAwC2O,YAAxC;MAGE,KAAKnL,0BAAL,GAAkC,IAAlC;IAJoC,CAAxC;IAOAF,iBAAA,CAAkBsL,eAAlB,GAAoC,MAAM;MACxCva,MAAA,CAAOwa,mBAAP,CAA2B,cAA3B,EAA2CF,YAA3C;MAGE,OAAO,KAAKnL,0BAAZ;IAJsC,CAA1C;IAOAF,iBAAA,CAAkBwL,kBAAlB,GAAuCC,OAAA,IAAW;MAChD,KAAKxZ,qBAAL,GAA6B,CAAC,CAACwZ,OAA/B;MACA,KAAKhM,QAAL;MAEA,IAAIgM,OAAJ,EAAa;QACX,KAAKzgB,gBAAL,CAAsB4C,eAAtB,CAAsC;UACpCkV,IAAA,EAAM,SAD8B;UAEpCtV,IAAA,EAAM;YAAEsV,IAAA,EAAM2I;UAAR;QAF8B,CAAtC;MADW;IAJmC,CAAlD;EApBiD,CAhjDxB;EAilD3BzE,eACE0E,UADF,EAEE;IAAEnG,QAAF;IAAYC,WAAZ;IAAyBE,UAAzB;IAAqCE;EAArC,IAAoD,EAFtD,EAGE;IACA,MAAM+F,WAAA,GAAcC,KAAA,IAAS;MAC3B,IAAI,IAAAC,yBAAA,EAAgBD,KAAhB,CAAJ,EAA4B;QAC1B,KAAKtc,SAAL,CAAewc,aAAf,GAA+BF,KAA/B;MAD0B;IADD,CAA7B;IAKA,MAAMG,cAAA,GAAiBA,CAACC,MAAD,EAASC,MAAT,KAAoB;MACzC,IAAI,IAAAC,2BAAA,EAAkBF,MAAlB,CAAJ,EAA+B;QAC7B,KAAK1c,SAAL,CAAeoW,UAAf,GAA4BsG,MAA5B;MAD6B;MAG/B,IAAI,IAAAG,2BAAA,EAAkBF,MAAlB,CAAJ,EAA+B;QAC7B,KAAK3c,SAAL,CAAesW,UAAf,GAA4BqG,MAA5B;MAD6B;IAJU,CAA3C;IAQA,KAAKrb,gBAAL,GAAwB,IAAxB;IACA,KAAKf,UAAL,EAAiBmX,cAAjB,CAAgCxB,WAAhC;IAEAuG,cAAA,CAAerG,UAAf,EAA2BE,UAA3B;IAEA,IAAI,KAAKjX,eAAT,EAA0B;MACxBgd,WAAA,CAAY,KAAKV,eAAjB;MACA,OAAO,KAAKA,eAAZ;MAEA,KAAKtb,cAAL,CAAoByc,OAApB,CAA4B,KAAKzd,eAAjC;MACA,KAAKA,eAAL,GAAuB,IAAvB;IALwB,CAA1B,MAMO,IAAI+c,UAAJ,EAAgB;MACrBC,WAAA,CAAYpG,QAAZ;MAEA,KAAK5V,cAAL,CAAoByc,OAApB,CAA4BV,UAA5B;IAHqB;IAQvB,KAAKnb,OAAL,EAAcsa,aAAd,CACE,KAAKvb,SAAL,CAAe0M,iBADjB,EAEE,KAAK1M,SAAL,CAAewb,gBAFjB;IAIA,KAAKta,gBAAL,EAAuBqa,aAAvB,CAAqC,KAAKvb,SAAL,CAAe0M,iBAApD;IAEA,IAAI,CAAC,KAAK1M,SAAL,CAAegP,iBAApB,EAAuC;MAGrC,KAAKhP,SAAL,CAAegP,iBAAf,GAAmCC,6BAAnC;IAHqC;EAvCvC,CAplDyB;EAqoD3B1H,SAAA,EAAW;IACT,IAAI,CAAC,KAAK1H,WAAV,EAAuB;MACrB;IADqB;IAGvB,KAAKG,SAAL,CAAeqR,OAAf;IACA,KAAKpR,kBAAL,EAAyBoR,OAAzB;IAEA,KAAKxR,WAAL,CAAiBwR,OAAjB;EAPS,CAroDgB;EA+oD3BrF,eAAA,EAAiB;IACf,KAAK9L,iBAAL,CAAuBmQ,QAAvB,GAAkC,CAAC,CAAC,KAAKtQ,YAAzC;IACA,KAAKG,iBAAL,CAAuB6c,sBAAvB,GACE,KAAKxc,UAAL,EAAiByc,WAAjB,KAAiC7G,qBAAA,CAAY8G,MAD/C;IAEA,KAAK/c,iBAAL,CAAuBgd,qBAAvB;EAJe,CA/oDU;EAspD3BC,YAAA,EAAc;IACZ,KAAKra,8BAAL,GAAsC,KAAKlC,mBAAL,CACnCwc,iBADmC,GAEnClI,KAFmC,CAE7B,MAAM,EAFuB,EAKnChR,IALmC,CAK9B,MAAM;MACV,OAAO,KAAKrE,WAAL,EAAkB6Q,iBAAlB,CAAoC5C,KAA3C;IADU,CALwB,CAAtC;IASA,IAAI,KAAK/N,YAAT,EAAuB;MAIrB;IAJqB;IAOvB,IAAI,CAAC,KAAK8N,gBAAV,EAA4B;MAC1B,KAAKzM,IAAL,CAAUmC,GAAV,CAAc,wBAAd,EAAwCW,IAAxC,CAA6C0J,GAAA,IAAO;QAClD,KAAKmG,WAAL,CAAiBnG,GAAjB;MADkD,CAApD;MAGA;IAJ0B;IAS5B,IAAI,CAAC,KAAK5N,SAAL,CAAeqd,cAApB,EAAoC;MAClC,KAAKjc,IAAL,CAAUmC,GAAV,CAAc,oBAAd,EAAoCW,IAApC,CAAyC0J,GAAA,IAAO;QAE9CnM,MAAA,CAAO6b,KAAP,CAAa1P,GAAb;MAF8C,CAAhD;MAIA;IALkC;IAQpC,MAAM2P,aAAA,GAAgB,KAAKvd,SAAL,CAAewd,gBAAf,EAAtB;IACA,MAAMC,cAAA,GAAiB,KAAK7d,SAAL,CAAe6d,cAAtC;IACA,MAAMC,eAAA,GAAkBpa,uBAAA,CAAWC,GAAX,CAAe,iBAAf,CAAxB;IACA,MAAMgV,4BAAA,GACJ,KAAKvY,SAAL,CAAeuY,4BADjB;IAGA,MAAMxY,YAAA,GAAeuP,sBAAA,CAAuBC,QAAvB,CAAgCoO,kBAAhC,CACnB,KAAK9d,WADc,EAEnB0d,aAFmB,EAGnBE,cAHmB,EAInBC,eAJmB,EAKnBnF,4BALmB,EAMnB,KAAKzV,8BANc,EAOnB,KAAK1B,IAPc,CAArB;IASA,KAAKrB,YAAL,GAAoBA,YAApB;IACA,KAAKiM,cAAL;IAEA,KAAKmE,QAAL;IAEApQ,YAAA,CAAa6d,MAAb;IAEA,IAAI,KAAKjb,qBAAT,EAAgC;MAC9B,KAAKjH,gBAAL,CAAsB4C,eAAtB,CAAsC;QACpCkV,IAAA,EAAM,SAD8B;QAEpCtV,IAAA,EAAM;UAAEsV,IAAA,EAAM;QAAR;MAF8B,CAAtC;IAD8B;EAxDpB,CAtpDa;EAstD3BqK,WAAA,EAAa;IACX,IAAI,KAAK/a,8BAAT,EAAyC;MACvC,KAAKA,8BAAL,CAAoCoB,IAApC,CAAyC,MAAM;QAC7C,KAAKtD,mBAAL,CAAyBkd,gBAAzB;MAD6C,CAA/C;MAGA,KAAKhb,8BAAL,GAAsC,IAAtC;IAJuC;IAOzC,IAAI,KAAK/C,YAAT,EAAuB;MACrB,KAAKA,YAAL,CAAkBiR,OAAlB;MACA,KAAKjR,YAAL,GAAoB,IAApB;MAEA,KAAKF,WAAL,EAAkB6Q,iBAAlB,CAAoCqN,aAApC;IAJqB;IAMvB,KAAK/R,cAAL;IAEA,KAAKmE,QAAL;EAhBW,CAttDc;EAyuD3B6N,YAAYC,KAAZ,EAAmB;IACjB,KAAKje,SAAL,CAAewc,aAAf,IAAgCyB,KAAhC;EADiB,CAzuDQ;EA+uD3BC,wBAAA,EAA0B;IACxB,KAAK/d,mBAAL,EAA0Bge,OAA1B;EADwB,CA/uDC;EAmvD3BvE,gBAAA,EAAkB;IAChB,IAAI,CAAC,KAAK/L,gBAAV,EAA4B;MAC1B;IAD0B;IAG5BpM,MAAA,CAAOqM,KAAP;EAJgB,CAnvDS;EA0vD3BjK,WAAA,EAAa;IACX,MAAM;MAAE1C,QAAF;MAAYW;IAAZ,IAA6B,IAAnC;IAEAA,YAAA,CAAaqb,WAAb,GAA2B,KAAKA,WAAL,CAAiB3V,IAAjB,CAAsB,IAAtB,CAA3B;IACA1F,YAAA,CAAa+b,UAAb,GAA0B,KAAKA,UAAL,CAAgBrW,IAAhB,CAAqB,IAArB,CAA1B;IAEArG,QAAA,CAASwX,GAAT,CAAa,QAAb,EAAuByF,eAAvB;IACAjd,QAAA,CAASwX,GAAT,CAAa,YAAb,EAA2B0F,mBAA3B;IACAld,QAAA,CAASwX,GAAT,CAAa,aAAb,EAA4B7W,YAAA,CAAaqb,WAAzC;IACAhc,QAAA,CAASwX,GAAT,CAAa,YAAb,EAA2B7W,YAAA,CAAa+b,UAAxC;IACA1c,QAAA,CAASwX,GAAT,CAAa,YAAb,EAA2B2F,mBAA3B;IACAnd,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6B4F,qBAA7B;IACApd,QAAA,CAASwX,GAAT,CAAa,gBAAb,EAA+B6F,uBAA/B;IACArd,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6B8F,qBAA7B;IACAtd,QAAA,CAASwX,GAAT,CAAa,eAAb,EAA8B+F,sBAA9B;IACAvd,QAAA,CAASwX,GAAT,CAAa,kBAAb,EAAiCgG,yBAAjC;IACAxd,QAAA,CAASwX,GAAT,CAAa,oBAAb,EAAmCiG,2BAAnC;IACAzd,QAAA,CAASwX,GAAT,CAAa,UAAb,EAAyBkG,iBAAzB;IACA1d,QAAA,CAASwX,GAAT,CAAa,aAAb,EAA4BmG,oBAA5B;IACA3d,QAAA,CAASwX,GAAT,CAAa,yBAAb,EAAwCoG,gCAAxC;IACA5d,QAAA,CAASwX,GAAT,CAAa,kBAAb,EAAiCqG,yBAAjC;IACA7d,QAAA,CAASwX,GAAT,CACE,4BADF,EAEEsG,mCAFF;IAIA9d,QAAA,CAASwX,GAAT,CACE,8BADF,EAEEuG,qCAFF;IAIA/d,QAAA,CAASwX,GAAT,CAAa,OAAb,EAAsBwG,cAAtB;IACAhe,QAAA,CAASwX,GAAT,CAAa,UAAb,EAAyByG,iBAAzB;IACAje,QAAA,CAASwX,GAAT,CAAa,mBAAb,EAAkC0G,0BAAlC;IACAle,QAAA,CAASwX,GAAT,CAAa,WAAb,EAA0B2G,kBAA1B;IACAne,QAAA,CAASwX,GAAT,CAAa,UAAb,EAAyB4G,iBAAzB;IACApe,QAAA,CAASwX,GAAT,CAAa,UAAb,EAAyB6G,iBAAzB;IACAre,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6B8G,qBAA7B;IACAte,QAAA,CAASwX,GAAT,CAAa,QAAb,EAAuB+G,eAAvB;IACAve,QAAA,CAASwX,GAAT,CAAa,SAAb,EAAwBgH,gBAAxB;IACAxe,QAAA,CAASwX,GAAT,CAAa,WAAb,EAA0BiH,kBAA1B;IACAze,QAAA,CAASwX,GAAT,CAAa,mBAAb,EAAkCkH,0BAAlC;IACA1e,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6BmH,qBAA7B;IACA3e,QAAA,CAASwX,GAAT,CAAa,UAAb,EAAyBoH,iBAAzB;IACA5e,QAAA,CAASwX,GAAT,CAAa,WAAb,EAA0BqH,kBAA1B;IACA7e,QAAA,CAASwX,GAAT,CAAa,uBAAb,EAAsCsH,8BAAtC;IACA9e,QAAA,CAASwX,GAAT,CAAa,kBAAb,EAAiCuH,yBAAjC;IACA/e,QAAA,CAASwX,GAAT,CAAa,mBAAb,EAAkCwH,0BAAlC;IACAhf,QAAA,CAASwX,GAAT,CAAa,kBAAb,EAAiCyH,yBAAjC;IACAjf,QAAA,CAASwX,GAAT,CAAa,mBAAb,EAAkC0H,0BAAlC;IACAlf,QAAA,CAASwX,GAAT,CAAa,oBAAb,EAAmC2H,2BAAnC;IACAnf,QAAA,CAASwX,GAAT,CAAa,iBAAb,EAAgC4H,wBAAhC;IACApf,QAAA,CAASwX,GAAT,CAAa,wBAAb,EAAuC6H,+BAAvC;IACArf,QAAA,CAASwX,GAAT,CAAa,wBAAb,EAAuC8H,+BAAvC;IAEA,IAAInd,uBAAA,CAAWC,GAAX,CAAe,QAAf,CAAJ,EAA8B;MAC5BzB,YAAA,CAAa4e,qBAAb,GAAqCA,qBAArC;MAEAvf,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6B7W,YAAA,CAAa4e,qBAA1C;MACAvf,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6B7W,YAAA,CAAa4e,qBAA1C;IAJ4B;IAO5Bvf,QAAA,CAASwX,GAAT,CAAa,iBAAb,EAAgCgI,wBAAhC;IACAxf,QAAA,CAASwX,GAAT,CAAa,UAAb,EAAyBiI,iBAAzB;EA7DS,CA1vDc;EAo0D3B9c,iBAAA,EAAmB;IACjB,MAAM;MAAE3C,QAAF;MAAYW;IAAZ,IAA6B,IAAnC;IAEA,SAAS+e,yBAATA,CAAmCxT,GAAA,GAAM,IAAzC,EAA+C;MAC7C,IAAIA,GAAJ,EAAS;QACPyT,yBAAA,CAA0BzT,GAA1B;MADO;MAGT,MAAM0T,cAAA,GAAiBtf,MAAA,CAAOiH,UAAP,CACpB,gBAAejH,MAAA,CAAOuf,gBAAP,IAA2B,CAAE,OADxB,CAAvB;MAGAD,cAAA,CAAe3T,gBAAf,CAAgC,QAAhC,EAA0CyT,yBAA1C,EAAqE;QACnEjI,IAAA,EAAM;MAD6D,CAArE;MAOA9W,YAAA,CAAamf,4BAAb,KAA8C,YAAY;QACxDF,cAAA,CAAe9E,mBAAf,CAAmC,QAAnC,EAA6C4E,yBAA7C;QACA/e,YAAA,CAAamf,4BAAb,GAA4C,IAA5C;MAFwD,CAA1D;IAd6C;IAmB/CJ,yBAAA;IAEA/e,YAAA,CAAaof,YAAb,GAA4B,MAAM;MAChC/f,QAAA,CAASgD,QAAT,CAAkB,QAAlB,EAA4B;QAAEC,MAAA,EAAQ3C;MAAV,CAA5B;IADgC,CAAlC;IAGAK,YAAA,CAAaqf,gBAAb,GAAgC,MAAM;MACpChgB,QAAA,CAASgD,QAAT,CAAkB,YAAlB,EAAgC;QAC9BC,MAAA,EAAQ3C,MADsB;QAE9BjC,IAAA,EAAMF,QAAA,CAASC,QAAT,CAAkBC,IAAlB,CAAuBC,SAAvB,CAAiC,CAAjC;MAFwB,CAAhC;IADoC,CAAtC;IAMAqC,YAAA,CAAasf,iBAAb,GAAiC,MAAM;MACrCjgB,QAAA,CAASgD,QAAT,CAAkB,aAAlB,EAAiC;QAAEC,MAAA,EAAQ3C;MAAV,CAAjC;IADqC,CAAvC;IAGAK,YAAA,CAAauf,gBAAb,GAAgC,MAAM;MACpClgB,QAAA,CAASgD,QAAT,CAAkB,YAAlB,EAAgC;QAAEC,MAAA,EAAQ3C;MAAV,CAAhC;IADoC,CAAtC;IAGAK,YAAA,CAAawf,uBAAb,GAAuCC,KAAA,IAAS;MAC9CpgB,QAAA,CAASgD,QAAT,CAAkB,mBAAlB,EAAuC;QACrCC,MAAA,EAAQ3C,MAD6B;QAErC+f,MAAA,EAAQD,KAAA,CAAMC;MAFuB,CAAvC;IAD8C,CAAhD;IAOA/f,MAAA,CAAO2L,gBAAP,CAAwB,kBAAxB,EAA4CqU,yBAA5C;IACAhgB,MAAA,CAAO2L,gBAAP,CAAwB,OAAxB,EAAiCsU,cAAjC,EAAiD;MAAEC,OAAA,EAAS;IAAX,CAAjD;IACAlgB,MAAA,CAAO2L,gBAAP,CAAwB,YAAxB,EAAsCwU,mBAAtC,EAA2D;MACzDD,OAAA,EAAS;IADgD,CAA3D;IAGAlgB,MAAA,CAAO2L,gBAAP,CAAwB,WAAxB,EAAqCyU,kBAArC,EAAyD;MACvDF,OAAA,EAAS;IAD8C,CAAzD;IAGAlgB,MAAA,CAAO2L,gBAAP,CAAwB,UAAxB,EAAoC0U,iBAApC,EAAuD;MACrDH,OAAA,EAAS;IAD4C,CAAvD;IAGAlgB,MAAA,CAAO2L,gBAAP,CAAwB,OAAxB,EAAiC2U,cAAjC;IACAtgB,MAAA,CAAO2L,gBAAP,CAAwB,SAAxB,EAAmC4U,gBAAnC;IACAvgB,MAAA,CAAO2L,gBAAP,CAAwB,OAAxB,EAAiC6U,cAAjC;IACAxgB,MAAA,CAAO2L,gBAAP,CAAwB,QAAxB,EAAkCtL,YAAA,CAAaof,YAA/C;IACAzf,MAAA,CAAO2L,gBAAP,CAAwB,YAAxB,EAAsCtL,YAAA,CAAaqf,gBAAnD;IACA1f,MAAA,CAAO2L,gBAAP,CAAwB,aAAxB,EAAuCtL,YAAA,CAAasf,iBAApD;IACA3f,MAAA,CAAO2L,gBAAP,CAAwB,YAAxB,EAAsCtL,YAAA,CAAauf,gBAAnD;IACA5f,MAAA,CAAO2L,gBAAP,CACE,mBADF,EAEEtL,YAAA,CAAawf,uBAFf;EAhEiB,CAp0DQ;EA04D3BY,aAAA,EAAe;IAIb,MAAM;MAAE/gB,QAAF;MAAYW;IAAZ,IAA6B,IAAnC;IAEAX,QAAA,CAASghB,IAAT,CAAc,QAAd,EAAwB/D,eAAxB;IACAjd,QAAA,CAASghB,IAAT,CAAc,YAAd,EAA4B9D,mBAA5B;IACAld,QAAA,CAASghB,IAAT,CAAc,aAAd,EAA6BrgB,YAAA,CAAaqb,WAA1C;IACAhc,QAAA,CAASghB,IAAT,CAAc,YAAd,EAA4BrgB,YAAA,CAAa+b,UAAzC;IACA1c,QAAA,CAASghB,IAAT,CAAc,YAAd,EAA4B7D,mBAA5B;IACAnd,QAAA,CAASghB,IAAT,CAAc,cAAd,EAA8B5D,qBAA9B;IACApd,QAAA,CAASghB,IAAT,CAAc,gBAAd,EAAgC3D,uBAAhC;IACArd,QAAA,CAASghB,IAAT,CAAc,cAAd,EAA8B1D,qBAA9B;IACAtd,QAAA,CAASghB,IAAT,CAAc,eAAd,EAA+BzD,sBAA/B;IACAvd,QAAA,CAASghB,IAAT,CAAc,kBAAd,EAAkCxD,yBAAlC;IACAxd,QAAA,CAASghB,IAAT,CAAc,oBAAd,EAAoCvD,2BAApC;IACAzd,QAAA,CAASghB,IAAT,CAAc,UAAd,EAA0BtD,iBAA1B;IACA1d,QAAA,CAASghB,IAAT,CAAc,aAAd,EAA6BrD,oBAA7B;IACA3d,QAAA,CAASghB,IAAT,CAAc,yBAAd,EAAyCpD,gCAAzC;IACA5d,QAAA,CAASghB,IAAT,CAAc,kBAAd,EAAkCnD,yBAAlC;IACA7d,QAAA,CAASghB,IAAT,CAAc,OAAd,EAAuBhD,cAAvB;IACAhe,QAAA,CAASghB,IAAT,CAAc,UAAd,EAA0B/C,iBAA1B;IACAje,QAAA,CAASghB,IAAT,CAAc,mBAAd,EAAmC9C,0BAAnC;IACAle,QAAA,CAASghB,IAAT,CAAc,WAAd,EAA2B7C,kBAA3B;IACAne,QAAA,CAASghB,IAAT,CAAc,UAAd,EAA0B5C,iBAA1B;IACApe,QAAA,CAASghB,IAAT,CAAc,UAAd,EAA0B3C,iBAA1B;IACAre,QAAA,CAASghB,IAAT,CAAc,cAAd,EAA8B1C,qBAA9B;IACAte,QAAA,CAASghB,IAAT,CAAc,QAAd,EAAwBzC,eAAxB;IACAve,QAAA,CAASghB,IAAT,CAAc,SAAd,EAAyBxC,gBAAzB;IACAxe,QAAA,CAASghB,IAAT,CAAc,WAAd,EAA2BvC,kBAA3B;IACAze,QAAA,CAASghB,IAAT,CAAc,mBAAd,EAAmCtC,0BAAnC;IACA1e,QAAA,CAASghB,IAAT,CAAc,cAAd,EAA8BrC,qBAA9B;IACA3e,QAAA,CAASghB,IAAT,CAAc,UAAd,EAA0BpC,iBAA1B;IACA5e,QAAA,CAASghB,IAAT,CAAc,WAAd,EAA2BnC,kBAA3B;IACA7e,QAAA,CAASghB,IAAT,CAAc,uBAAd,EAAuClC,8BAAvC;IACA9e,QAAA,CAASghB,IAAT,CAAc,kBAAd,EAAkCjC,yBAAlC;IACA/e,QAAA,CAASghB,IAAT,CAAc,mBAAd,EAAmChC,0BAAnC;IACAhf,QAAA,CAASghB,IAAT,CAAc,kBAAd,EAAkC/B,yBAAlC;IACAjf,QAAA,CAASghB,IAAT,CAAc,mBAAd,EAAmC9B,0BAAnC;IACAlf,QAAA,CAASghB,IAAT,CAAc,oBAAd,EAAoC7B,2BAApC;IACAnf,QAAA,CAASghB,IAAT,CAAc,iBAAd,EAAiC5B,wBAAjC;IACApf,QAAA,CAASghB,IAAT,CAAc,wBAAd,EAAwC3B,+BAAxC;IACArf,QAAA,CAASghB,IAAT,CAAc,wBAAd,EAAwC1B,+BAAxC;IAEA,IAAI3e,YAAA,CAAa4e,qBAAjB,EAAwC;MACtCvf,QAAA,CAASghB,IAAT,CAAc,cAAd,EAA8BrgB,YAAA,CAAa4e,qBAA3C;MACAvf,QAAA,CAASghB,IAAT,CAAc,cAAd,EAA8BrgB,YAAA,CAAa4e,qBAA3C;MAEA5e,YAAA,CAAa4e,qBAAb,GAAqC,IAArC;IAJsC;IAOtCvf,QAAA,CAASghB,IAAT,CAAc,iBAAd,EAAiCxB,wBAAjC;IACAxf,QAAA,CAASghB,IAAT,CAAc,UAAd,EAA0BvB,iBAA1B;IAGF9e,YAAA,CAAaqb,WAAb,GAA2B,IAA3B;IACArb,YAAA,CAAa+b,UAAb,GAA0B,IAA1B;EAzDa,CA14DY;EAs8D3BuE,mBAAA,EAAqB;IAInB,MAAM;MAAEtgB;IAAF,IAAmB,IAAzB;IAEAL,MAAA,CAAOwa,mBAAP,CAA2B,kBAA3B,EAA+CwF,yBAA/C;IACAhgB,MAAA,CAAOwa,mBAAP,CAA2B,OAA3B,EAAoCyF,cAApC,EAAoD;MAAEC,OAAA,EAAS;IAAX,CAApD;IACAlgB,MAAA,CAAOwa,mBAAP,CAA2B,YAA3B,EAAyC2F,mBAAzC,EAA8D;MAC5DD,OAAA,EAAS;IADmD,CAA9D;IAGAlgB,MAAA,CAAOwa,mBAAP,CAA2B,WAA3B,EAAwC4F,kBAAxC,EAA4D;MAC1DF,OAAA,EAAS;IADiD,CAA5D;IAGAlgB,MAAA,CAAOwa,mBAAP,CAA2B,UAA3B,EAAuC6F,iBAAvC,EAA0D;MACxDH,OAAA,EAAS;IAD+C,CAA1D;IAGAlgB,MAAA,CAAOwa,mBAAP,CAA2B,OAA3B,EAAoC8F,cAApC;IACAtgB,MAAA,CAAOwa,mBAAP,CAA2B,SAA3B,EAAsC+F,gBAAtC;IACAvgB,MAAA,CAAOwa,mBAAP,CAA2B,OAA3B,EAAoCgG,cAApC;IACAxgB,MAAA,CAAOwa,mBAAP,CAA2B,QAA3B,EAAqCna,YAAA,CAAaof,YAAlD;IACAzf,MAAA,CAAOwa,mBAAP,CAA2B,YAA3B,EAAyCna,YAAA,CAAaqf,gBAAtD;IACA1f,MAAA,CAAOwa,mBAAP,CAA2B,aAA3B,EAA0Cna,YAAA,CAAasf,iBAAvD;IACA3f,MAAA,CAAOwa,mBAAP,CAA2B,YAA3B,EAAyCna,YAAA,CAAauf,gBAAtD;IACA5f,MAAA,CAAOwa,mBAAP,CACE,mBADF,EAEEna,YAAA,CAAawf,uBAFf;IAKAxf,YAAA,CAAamf,4BAAb;IACAnf,YAAA,CAAaof,YAAb,GAA4B,IAA5B;IACApf,YAAA,CAAaqf,gBAAb,GAAgC,IAAhC;IACArf,YAAA,CAAasf,iBAAb,GAAiC,IAAjC;IACAtf,YAAA,CAAauf,gBAAb,GAAgC,IAAhC;IACAvf,YAAA,CAAawf,uBAAb,GAAuC,IAAvC;EAlCmB,CAt8DM;EA2+D3Be,iBAAiBC,KAAjB,EAAwBC,IAAxB,EAA8B;IAE5B,IAAK,KAAKA,IAAL,IAAa,CAAb,IAAkBD,KAAA,GAAQ,CAA3B,IAAkC,KAAKC,IAAL,IAAa,CAAb,IAAkBD,KAAA,GAAQ,CAAhE,EAAoE;MAClE,KAAKC,IAAL,IAAa,CAAb;IADkE;IAGpE,KAAKA,IAAL,KAAcD,KAAd;IACA,MAAME,UAAA,GAAahO,IAAA,CAAKiO,KAAL,CAAW,KAAKF,IAAL,CAAX,CAAnB;IACA,KAAKA,IAAL,KAAcC,UAAd;IACA,OAAOA,UAAP;EAR4B,CA3+DH;EAs/D3BE,kBAAkBC,aAAlB,EAAiCC,MAAjC,EAAyCL,IAAzC,EAA+C;IAC7C,IAAIK,MAAA,KAAW,CAAf,EAAkB;MAChB,OAAO,CAAP;IADgB;IAIlB,IAAK,KAAKL,IAAL,IAAa,CAAb,IAAkBK,MAAA,GAAS,CAA5B,IAAmC,KAAKL,IAAL,IAAa,CAAb,IAAkBK,MAAA,GAAS,CAAlE,EAAsE;MACpE,KAAKL,IAAL,IAAa,CAAb;IADoE;IAItE,MAAMM,SAAA,GACJrO,IAAA,CAAKsO,KAAL,CAAWH,aAAA,GAAgBC,MAAhB,GAAyB,KAAKL,IAAL,CAAzB,GAAsC,GAAjD,KACC,MAAMI,aAAN,CAFH;IAGA,KAAKJ,IAAL,IAAaK,MAAA,GAASC,SAAtB;IAEA,OAAOA,SAAP;EAd6C,CAt/DpB;EAugE3BE,aAAaJ,aAAb,EAA4BK,CAA5B,EAA+BC,CAA/B,EAAkC;IAChC,MAAM;MAAEjjB;IAAF,IAAgB,IAAtB;IACA,MAAMkjB,SAAA,GAAYljB,SAAA,CAAUmjB,YAAV,GAAyBR,aAAzB,GAAyC,CAA3D;IACA,IAAIO,SAAA,KAAc,CAAlB,EAAqB;MACnB,MAAM,CAACE,GAAD,EAAMC,IAAN,IAAcrjB,SAAA,CAAUsjB,gBAA9B;MACAtjB,SAAA,CAAUoI,SAAV,CAAoB2N,UAApB,IAAmC,CAAAiN,CAAA,GAAIK,IAAJ,IAAYH,SAA/C;MACAljB,SAAA,CAAUoI,SAAV,CAAoB4N,SAApB,IAAkC,CAAAiN,CAAA,GAAIG,GAAJ,IAAWF,SAA7C;IAHmB;EAHW,CAvgEP;EAshE3BzS,0BAAA,EAA4B;IAC1BnR,QAAA,CAASikB,kBAAT,GAA8B,KAA9B;IAGA,KAAK9S,yBAAL,GAAiC,MAAM,EAAvC;EAJ0B,CAthED;EAiiE3B,IAAI+S,cAAJA,CAAA,EAAqB;IACnB,OAAO,KAAK5iB,mBAAL,CAAyB6iB,KAAhC;EADmB;AAjiEM,CAA7B;AA/JAvpB,4BAAA,GAAAuB,oBAAA;AAqsEiE;EAC/D,MAAMioB,qBAAA,GAAwB,CAC5B,MAD4B,EAE5B,0BAF4B,EAG5B,2BAH4B,CAA9B;EAMA,IAAI1W,eAAA,GAAkB,SAAAA,CAAUH,IAAV,EAAgB;IACpC,IAAI,CAACA,IAAL,EAAW;MACT;IADS;IAGX,IAAI;MACF,MAAM8W,YAAA,GAAe,IAAI1K,GAAJ,CAAQxX,MAAA,CAAOlC,QAAP,CAAgBqkB,IAAxB,EAA8BC,MAA9B,IAAwC,MAA7D;MACA,IAAIH,qBAAA,CAAsBvd,QAAtB,CAA+Bwd,YAA/B,CAAJ,EAAkD;QAEhD;MAFgD;MAIlD,MAAMG,UAAA,GAAa,IAAI7K,GAAJ,CAAQpM,IAAR,EAAcpL,MAAA,CAAOlC,QAAP,CAAgBqkB,IAA9B,EAAoCC,MAAvD;MAIA,IAAIC,UAAA,KAAeH,YAAnB,EAAiC;QAC/B,MAAM,IAAI3lB,KAAJ,CAAU,qCAAV,CAAN;MAD+B;IAV/B,CAAJ,CAaE,OAAOmH,EAAP,EAAW;MACX1J,oBAAA,CAAqB2F,IAArB,CAA0BmC,GAA1B,CAA8B,eAA9B,EAA+CW,IAA/C,CAAoD0J,GAAA,IAAO;QACzDnS,oBAAA,CAAqBwX,cAArB,CAAoCrF,GAApC,EAAyC;UAAE/I,OAAA,EAASM,EAAA,EAAIN;QAAf,CAAzC;MADyD,CAA3D;MAGA,MAAMM,EAAN;IAJW;EAjBuB,CAAtC;AAP+D;AAiCjE,eAAeD,cAAfA,CAAA,EAAgC;EAC9B4M,6BAAA,CAAoBiS,SAApB,KAAkCzgB,uBAAA,CAAWC,GAAX,CAAe,WAAf,CAAlC;EAMA,MAAM,IAAAygB,oBAAA,EAAWC,mBAAA,CAAUF,SAArB,CAAN;AAP8B;AAUhC,eAAete,UAAfA,CAA0Bye,IAA1B,EAAgC;EAC9B,MAAM;IAAEC;EAAF,IAAyBD,IAAA,CAAKtkB,SAApC;EACA,MAAM;IAAEwkB;EAAF,IAGA,MAAMC,sBAAA,CAAuBF,kBAAvB,CAHZ;EAKAD,IAAA,CAAKxhB,OAAL,GAAe0hB,MAAf;AAP8B;AAUhC,SAAS1D,qBAATA,CAA+B;EAAE7E;AAAF,CAA/B,EAA+C;EAC7C,IAAI,CAACyI,UAAA,CAAWC,KAAX,EAAkB5e,OAAvB,EAAgC;IAC9B;EAD8B;EAGhC,MAAMuG,QAAA,GAAWzQ,oBAAA,CAAqBuE,SAArB,CAA+BwkB,WAA/B,CACD3I,UAAA,GAAa,CADZ,CAAjB;EAGAyI,UAAA,CAAWC,KAAX,CAAiB/e,GAAjB,CAAqBqW,UAArB,EAAiC3P,QAAA,EAAUsK,OAAV,EAAmBiO,KAApD;AAP6C;AAU/C,SAASnG,mBAATA,CAA6B;EAAEzC;AAAF,CAA7B,EAA6C;EAG3C,IAAIA,UAAA,KAAepgB,oBAAA,CAAqB2T,IAAxC,EAA8C;IAC5C3T,oBAAA,CAAqBwF,OAArB,EAA8ByjB,2BAA9B,CAA0D,IAA1D;EAD4C;AAHH;AAQ7C,SAASnG,qBAATA,CAA+B;EAAE1C,UAAF;EAAcjX;AAAd,CAA/B,EAAsD;EAGpD,IAAIiX,UAAA,KAAepgB,oBAAA,CAAqB2T,IAAxC,EAA8C;IAC5C3T,oBAAA,CAAqBwF,OAArB,EAA8ByjB,2BAA9B,CAA0D,KAA1D;EAD4C;EAK9C,IAAIjpB,oBAAA,CAAqB8E,UAArB,EAAiCyc,WAAjC,KAAiD7G,qBAAA,CAAY8G,MAAjE,EAAyE;IACvE,MAAM/Q,QAAA,GAAWzQ,oBAAA,CAAqBuE,SAArB,CAA+BwkB,WAA/B,CACD3I,UAAA,GAAa,CADZ,CAAjB;IAGA,MAAMjS,aAAA,GAAgBnO,oBAAA,CAAqBwE,kBAArB,EAAyCsM,YAAzC,CACNsP,UAAA,GAAa,CADP,CAAtB;IAGA,IAAI3P,QAAJ,EAAc;MACZtC,aAAA,EAAe4C,QAAf,CAAwBN,QAAxB;IADY;EAPyD;EAYzE,IAAItH,KAAJ,EAAW;IACTnJ,oBAAA,CAAqB2F,IAArB,CAA0BmC,GAA1B,CAA8B,iBAA9B,EAAiDW,IAAjD,CAAsD0J,GAAA,IAAO;MAC3DnS,oBAAA,CAAqBsY,WAArB,CAAiCnG,GAAjC,EAAsChJ,KAAtC;IAD2D,CAA7D;EADS;AApByC;AA2BtD,SAASia,iBAATA,CAA2B;EAAE8F;AAAF,CAA3B,EAAqC;EAEnC,IAAIC,IAAJ;EACA,QAAQD,IAAR;IACE,KAAK,QAAL;MACEC,IAAA,GAAOzO,qBAAA,CAAY8G,MAAnB;MACA;IACF,KAAK,WAAL;IACA,KAAK,SAAL;MACE2H,IAAA,GAAOzO,qBAAA,CAAY0O,OAAnB;MACA;IACF,KAAK,aAAL;MACED,IAAA,GAAOzO,qBAAA,CAAY2O,WAAnB;MACA;IACF,KAAK,QAAL;MACEF,IAAA,GAAOzO,qBAAA,CAAY4O,MAAnB;MACA;IACF,KAAK,MAAL;MACEH,IAAA,GAAOzO,qBAAA,CAAY1S,IAAnB;MACA;IACF;MACEc,OAAA,CAAQK,KAAR,CAAc,wCAAwC+f,IAAtD;MACA;EAnBJ;EAqBAlpB,oBAAA,CAAqB8E,UAArB,EAAiCykB,UAAjC,CAA4CJ,IAA5C,EAAoE,IAApE;AAxBmC;AA2BrC,SAAS9F,oBAATA,CAA8BzR,GAA9B,EAAmC;EAGjC,QAAQA,GAAA,CAAIiM,MAAZ;IACE,KAAK,UAAL;MACE7d,oBAAA,CAAqBmE,SAArB,CAA+BqB,OAA/B,EAAwC4a,UAAxC,CAAmDoJ,MAAnD;MACA;IAEF,KAAK,MAAL;MACE,IAAI,CAACxpB,oBAAA,CAAqBiD,sBAA1B,EAAkD;QAChDjD,oBAAA,EAAsBwO,OAAtB,CAA8Bib,MAA9B;MADgD;MAGlD;IAEF,KAAK,OAAL;MACEzpB,oBAAA,CAAqBme,eAArB;MACA;IAEF,KAAK,QAAL;MACEne,oBAAA,CAAqBmY,cAArB;MACA;EAjBJ;AAHiC;AAwBnC,SAASmL,gCAATA,CAA0C1R,GAA1C,EAA+C;EAC7C5R,oBAAA,CAAqBuE,SAArB,CAA+BmlB,qBAA/B,GAAuD9X,GAAA,CAAI+X,KAA3D;AAD6C;AAI/C,SAASxG,2BAATA,CAAqC;EAAEgG;AAAF,CAArC,EAA+C;EAC7CnpB,oBAAA,CAAqByE,iBAArB,CAAuC6c,sBAAvC,GACE6H,IAAA,KAASzO,qBAAA,CAAY8G,MADvB;EAGA,IAAIxhB,oBAAA,CAAqB6F,gBAAzB,EAA2C;IAEzC7F,oBAAA,CAAqBoF,KAArB,EAA4B6C,GAA5B,CAAgC,aAAhC,EAA+CkhB,IAA/C,EAAqD1P,KAArD,CAA2D,MAAM,EAAjE;EAFyC;AAJE;AAY/C,SAASsJ,uBAATA,CAAiC;EAAEjf;AAAF,CAAjC,EAA+C;EAC7C,IAAI9D,oBAAA,CAAqB6F,gBAAzB,EAA2C;IAEzC7F,oBAAA,CAAqBoF,KAArB,EACIwkB,WADJ,CACgB;MACZjW,IAAA,EAAM7P,QAAA,CAASsc,UADH;MAEZ/F,IAAA,EAAMvW,QAAA,CAAS+lB,KAFH;MAGZvP,UAAA,EAAYxW,QAAA,CAAS8jB,IAHT;MAIZrN,SAAA,EAAWzW,QAAA,CAAS6jB,GAJR;MAKZnN,QAAA,EAAU1W,QAAA,CAAS0W;IALP,CADhB,EAQGf,KARH,CAQS,MAAM,EARf;EAFyC;EAc3C,IAAIzZ,oBAAA,CAAqBmE,SAArB,CAA+BsB,gBAAnC,EAAqD;IACnD,MAAM0iB,IAAA,GAAOnoB,oBAAA,CAAqB4E,cAArB,CAAoCklB,YAApC,CACXhmB,QAAA,CAASimB,aADE,CAAb;IAGA/pB,oBAAA,CAAqBmE,SAArB,CAA+BsB,gBAA/B,CAAgDoP,kBAAhD,CAAmEsT,IAAnE,GACEA,IADF;EAJmD;AAfR;AAwB/C,SAASzD,0BAATA,CAAoC9S,GAApC,EAAyC;EACvC,IACE5R,oBAAA,CAAqB6F,gBAArB,IACA,CAAC7F,oBAAA,CAAqBuE,SAArB,CAA+B0O,oBAFlC,EAGE;IAEAjT,oBAAA,CAAqBoF,KAArB,EAA4B6C,GAA5B,CAAgC,YAAhC,EAA8C2J,GAAA,CAAIsX,IAAlD,EAAwDzP,KAAxD,CAA8D,MAAM,EAApE;EAFA;AAJqC;AAYzC,SAASmL,0BAATA,CAAoChT,GAApC,EAAyC;EACvC,IACE5R,oBAAA,CAAqB6F,gBAArB,IACA,CAAC7F,oBAAA,CAAqBuE,SAArB,CAA+B0O,oBAFlC,EAGE;IAEAjT,oBAAA,CAAqBoF,KAArB,EAA4B6C,GAA5B,CAAgC,YAAhC,EAA8C2J,GAAA,CAAIsX,IAAlD,EAAwDzP,KAAxD,CAA8D,MAAM,EAApE;EAFA;AAJqC;AAYzC,SAASkJ,eAATA,CAAA,EAA2B;EACzB,MAAM;IAAEve,WAAF;IAAeG,SAAf;IAA0BE;EAA1B,IAAgDzE,oBAAtD;EAEA,IAAIyE,iBAAA,CAAkBmQ,QAAlB,IAA8B5O,MAAA,CAAOiH,UAAP,CAAkB,OAAlB,EAA2BC,OAA7D,EAAsE;IAEpE;EAFoE;EAKtE,IAAI,CAAC9I,WAAL,EAAkB;IAChB;EADgB;EAGlB,MAAMmP,iBAAA,GAAoBhP,SAAA,CAAUgP,iBAApC;EACA,IACEA,iBAAA,KAAsB,MAAtB,IACAA,iBAAA,KAAsB,UADtB,IAEAA,iBAAA,KAAsB,YAHxB,EAIE;IAEAhP,SAAA,CAAUgP,iBAAV,GAA8BA,iBAA9B;EAFA;EAIFhP,SAAA,CAAU+X,MAAV;AApByB;AAuB3B,SAASsG,mBAATA,CAA6BhR,GAA7B,EAAkC;EAChC,MAAM7N,IAAA,GAAO6N,GAAA,CAAI7N,IAAjB;EACA,IAAI,CAACA,IAAL,EAAW;IACT;EADS;EAGX,IAAI,CAAC/D,oBAAA,CAAqB6F,gBAA1B,EAA4C;IAC1C7F,oBAAA,CAAqB4D,eAArB,GAAuCG,IAAvC;EAD0C,CAA5C,MAEO,IAAI,CAAC/D,oBAAA,CAAqB6E,UAArB,EAAiCmlB,kBAAtC,EAA0D;IAC/DhqB,oBAAA,CAAqB4E,cAArB,CAAoCyc,OAApC,CAA4Ctd,IAA5C;EAD+D;AAPjC;AAY+B;EAE/D,IAAImhB,wBAAA,GAA2B,SAAAA,CAAUtT,GAAV,EAAe;IAC5C,IAAI5R,oBAAA,CAAqBuE,SAArB,EAAgC0O,oBAApC,EAA0D;MACxD;IADwD;IAG1D,MAAM7B,IAAA,GAAOQ,GAAA,CAAIJ,SAAJ,CAAcK,KAAd,CAAoB,CAApB,CAAb;IAEA7R,oBAAA,CAAqBwS,IAArB,CAA0B;MACxBtM,GAAA,EAAKsX,GAAA,CAAIyM,eAAJ,CAAoB7Y,IAApB,CADmB;MAExBkF,WAAA,EAAalF,IAAA,CAAK0M;IAFM,CAA1B;EAN4C,CAA9C;EAaA,IAAIqH,iBAAA,GAAoB,SAAAA,CAAUvT,GAAV,EAAe;IACrC,MAAMJ,SAAA,GAAYxR,oBAAA,CAAqBmE,SAArB,CAA+BsN,aAAjD;IACAD,SAAA,CAAU0Y,KAAV;EAFqC,CAAvC;AAf+D;AAqBjE,SAAS3G,yBAATA,CAAA,EAAqC;EACnCvjB,oBAAA,CAAqByiB,uBAArB;AADmC;AAGrC,SAASe,mCAATA,CAA6C5R,GAA7C,EAAkD;EAChD5R,oBAAA,CAAqBuE,SAArB,CAA+BsI,oBAA/B,GAAsD+E,GAAtD;AADgD;AAGlD,SAAS6R,qCAATA,CAA+C7R,GAA/C,EAAoD;EAClD5R,oBAAA,CAAqBuE,SAArB,CAA+BqB,sBAA/B,GAAwDgM,GAAxD;AADkD;AAGpD,SAAS8R,cAATA,CAAA,EAA0B;EACxB1jB,oBAAA,CAAqBme,eAArB;AADwB;AAG1B,SAASwF,iBAATA,CAAA,EAA6B;EAC3B3jB,oBAAA,CAAqBmY,cAArB;AAD2B;AAG7B,SAASyL,0BAATA,CAAA,EAAsC;EACpC5jB,oBAAA,CAAqBoY,iBAArB;AADoC;AAGtC,SAASyL,kBAATA,CAAA,EAA8B;EAC5B7jB,oBAAA,CAAqB2T,IAArB,GAA4B,CAA5B;AAD4B;AAG9B,SAASmQ,iBAATA,CAAA,EAA6B;EAC3B9jB,oBAAA,CAAqB2T,IAArB,GAA4B3T,oBAAA,CAAqByT,UAAjD;AAD2B;AAG7B,SAASsQ,iBAATA,CAAA,EAA6B;EAC3B/jB,oBAAA,CAAqBuE,SAArB,CAA+B4lB,QAA/B;AAD2B;AAG7B,SAASnG,qBAATA,CAAA,EAAiC;EAC/BhkB,oBAAA,CAAqBuE,SAArB,CAA+B6lB,YAA/B;AAD+B;AAGjC,SAASnG,eAATA,CAAA,EAA2B;EACzBjkB,oBAAA,CAAqB8S,MAArB;AADyB;AAG3B,SAASoR,gBAATA,CAAA,EAA4B;EAC1BlkB,oBAAA,CAAqBoT,OAArB;AAD0B;AAG5B,SAAS+Q,kBAATA,CAAA,EAA8B;EAC5BnkB,oBAAA,CAAqBsT,SAArB;AAD4B;AAG9B,SAAS8Q,0BAATA,CAAoCxS,GAApC,EAAyC;EACvC,MAAMrN,SAAA,GAAYvE,oBAAA,CAAqBuE,SAAvC;EAGA,IAAIqN,GAAA,CAAIF,KAAJ,KAAc,EAAlB,EAAsB;IACpB1R,oBAAA,CAAqB4E,cAArB,CAAoCylB,QAApC,CAA6CzY,GAAA,CAAIF,KAAjD;EADoB;EAMtB,IACEE,GAAA,CAAIF,KAAJ,KAAcnN,SAAA,CAAU0M,iBAAV,CAA4B2O,QAA5B,EAAd,IACAhO,GAAA,CAAIF,KAAJ,KAAcnN,SAAA,CAAUwb,gBAF1B,EAGE;IACA/f,oBAAA,CAAqBwF,OAArB,EAA8Bsa,aAA9B,CACEvb,SAAA,CAAU0M,iBADZ,EAEE1M,SAAA,CAAUwb,gBAFZ;EADA;AAbqC;AAoBzC,SAASsE,qBAATA,CAA+BzS,GAA/B,EAAoC;EAClC5R,oBAAA,CAAqBuE,SAArB,CAA+BgP,iBAA/B,GAAmD3B,GAAA,CAAIF,KAAvD;AADkC;AAGpC,SAAS4S,iBAATA,CAAA,EAA6B;EAC3BtkB,oBAAA,CAAqBuiB,WAArB,CAAiC,EAAjC;AAD2B;AAG7B,SAASgC,kBAATA,CAAA,EAA8B;EAC5BvkB,oBAAA,CAAqBuiB,WAArB,CAAiC,CAAC,EAAlC;AAD4B;AAG9B,SAASiC,8BAATA,CAAwC5S,GAAxC,EAA6C;EAC3C5R,oBAAA,CAAqBuE,SAArB,CAA+BuY,4BAA/B,GAA8DlL,GAAA,CAAIiB,OAAlE;AAD2C;AAG7C,SAAS4R,yBAATA,CAAmC7S,GAAnC,EAAwC;EACtC5R,oBAAA,CAAqBuE,SAArB,CAA+BoW,UAA/B,GAA4C/I,GAAA,CAAIsX,IAAhD;AADsC;AAGxC,SAASvE,yBAATA,CAAmC/S,GAAnC,EAAwC;EACtC5R,oBAAA,CAAqBuE,SAArB,CAA+BsW,UAA/B,GAA4CjJ,GAAA,CAAIsX,IAAhD;AADsC;AAGxC,SAASrE,2BAATA,CAAA,EAAuC;EACrC7kB,oBAAA,CAAqB2E,qBAArB,EAA4C6N,IAA5C;AADqC;AAIvC,SAASsS,wBAATA,CAAkClT,GAAlC,EAAuC;EACrC5R,oBAAA,CAAqB0F,QAArB,CAA8BgD,QAA9B,CAAuC,MAAvC,EAA+C;IAC7CC,MAAA,EAAQiJ,GAAA,CAAIjJ,MADiC;IAE7CoP,IAAA,EAAM,EAFuC;IAG7CuS,KAAA,EAAO1Y,GAAA,CAAI0Y,KAHkC;IAI7CC,aAAA,EAAe,KAJ8B;IAK7CC,UAAA,EAAY,KALiC;IAM7CC,YAAA,EAAc,IAN+B;IAO7CC,YAAA,EAAc,KAP+B;IAQ7CC,eAAA,EAAiB;EAR4B,CAA/C;AADqC;AAavC,SAAS5F,+BAATA,CAAyC;EAAE6F;AAAF,CAAzC,EAA2D;EACzD,IAAI5qB,oBAAA,CAAqBiD,sBAAzB,EAAiD;IAC/CjD,oBAAA,CAAqBC,gBAArB,CAAsCyC,sBAAtC,CAA6DkoB,YAA7D;EAD+C,CAAjD,MAEO;IACL5qB,oBAAA,CAAqBwO,OAArB,CAA6Bqc,kBAA7B,CAAgDD,YAAhD;EADK;AAHkD;AAQ3D,SAAS5F,+BAATA,CAAyC;EACvC2E,KADuC;EAEvCmB,QAFuC;EAGvCF,YAHuC;EAIvCG;AAJuC,CAAzC,EAKG;EACD,IAAI/qB,oBAAA,CAAqBiD,sBAAzB,EAAiD;IAC/CjD,oBAAA,CAAqBC,gBAArB,CAAsCuC,sBAAtC,CAA6D;MAC3DwoB,MAAA,EAAQrB,KADmD;MAE3De,YAAA,EAAcI,QAF6C;MAG3DF,YAH2D;MAI3DG;IAJ2D,CAA7D;EAD+C,CAAjD,MAOO;IACL/qB,oBAAA,CAAqBwO,OAArB,EAA8Byc,aAA9B,CAA4CtB,KAA5C,EAAmDmB,QAAnD,EAA6DF,YAA7D;EADK;AARN;AAaH,SAAS3H,sBAATA,CAAgCrR,GAAhC,EAAqC;EACnC5R,oBAAA,CAAqBwF,OAArB,EAA8B0lB,YAA9B,CAA2CtZ,GAAA,CAAIuZ,WAA/C,EAA4DvZ,GAAA,CAAIiY,KAAhE;EAEA7pB,oBAAA,CAAqBuE,SAArB,CAA+B+X,MAA/B;AAHmC;AAMrC,SAAS4G,yBAATA,CAAmCtR,GAAnC,EAAwC;EACtC,IAAI5R,oBAAA,CAAqBwE,kBAAzB,EAA6C;IAC3CxE,oBAAA,CAAqBwE,kBAArB,CAAwCuc,aAAxC,GAAwDnP,GAAA,CAAImP,aAA5D;EAD2C;EAI7C/gB,oBAAA,CAAqBuQ,cAArB;EAEAvQ,oBAAA,CAAqBuE,SAArB,CAA+B0M,iBAA/B,GAAmDW,GAAA,CAAIwO,UAAvD;AAPsC;AAUxC,SAAS4C,qBAATA,CAA+B;EAAE5C,UAAF;EAAcgL;AAAd,CAA/B,EAA0D;EACxDprB,oBAAA,CAAqBwF,OAArB,EAA8Bsa,aAA9B,CAA4CM,UAA5C,EAAwDgL,SAAxD;EACAprB,oBAAA,CAAqByF,gBAArB,EAAuCqa,aAAvC,CAAqDM,UAArD;EAEA,IAAIpgB,oBAAA,CAAqB8E,UAArB,EAAiCyc,WAAjC,KAAiD7G,qBAAA,CAAY8G,MAAjE,EAAyE;IACvExhB,oBAAA,CAAqBwE,kBAArB,EAAyCwM,uBAAzC,CACEoP,UADF;EADuE;EAOzE,MAAMiL,WAAA,GAAcrrB,oBAAA,CAAqBuE,SAArB,CAA+BwkB,WAA/B,CACJ3I,UAAA,GAAa,CADT,CAApB;EAGApgB,oBAAA,CAAqBwF,OAArB,EAA8ByjB,2BAA9B,CACEoC,WAAA,EAAa1a,cAAb,KAAgCC,yBAAA,CAAgB0a,OADlD;AAdwD;AAmB1D,SAASjG,yBAATA,CAAmCzT,GAAnC,EAAwC;EACtC5R,oBAAA,CAAqBuE,SAArB,CAA+BgnB,OAA/B;AADsC;AAIxC,SAASvF,yBAATA,CAAmCpU,GAAnC,EAAwC;EACtC,IAAI/N,QAAA,CAAS2nB,eAAT,KAA6B,SAAjC,EAA4C;IAE1CC,sBAAA;EAF0C;AADN;AAOxC,IAAIC,mBAAA,GAAsB,IAA1B;AACA,SAASD,sBAATA,CAAA,EAAkC;EAChC,IAAIC,mBAAJ,EAAyB;IACvBC,YAAA,CAAaD,mBAAb;EADuB;EAGzBA,mBAAA,GAAsBtP,UAAA,CAAW,YAAY;IAC3CsP,mBAAA,GAAsB,IAAtB;EAD2C,CAAvB,EAEnB7pB,2BAFmB,CAAtB;AAJgC;AASlC,SAASokB,cAATA,CAAwBrU,GAAxB,EAA6B;EAC3B,MAAM;IACJrN,SADI;IAEJpB,mCAFI;IAGJJ;EAHI,IAIF/C,oBAJJ;EAMA,IAAIuE,SAAA,CAAU0O,oBAAd,EAAoC;IAClC;EADkC;EAepC,MAAM2Y,SAAA,GAAYha,GAAA,CAAIga,SAAtB;EAIA,IAAI5Y,WAAA,GAAc+F,IAAA,CAAK8S,GAAL,CAAS,CAACja,GAAA,CAAIka,MAAL,GAAc,GAAvB,CAAlB;EAEA,MAAMC,YAAA,GAEJ,KAFF;EAIA,MAAMC,aAAA,GACJpa,GAAA,CAAIxO,OAAJ,IACA,CAACpD,oBAAA,CAAqBuH,cADtB,IAEAqkB,SAAA,KAAcK,UAAA,CAAWC,eAFzB,IAGAta,GAAA,CAAIua,MAAJ,KAAe,CAHf,KAICpT,IAAA,CAAKqT,GAAL,CAASpZ,WAAA,GAAc,CAAvB,IAA4B,IAA5B,IAAoC+Y,YAApC,CAJD,IAKAna,GAAA,CAAIya,MAAJ,KAAe,CANjB;EAQA,IACEL,aAAA,IACCpa,GAAA,CAAIxO,OAAJ,IAAeD,mCAAA,CAAoCC,OADpD,IAECwO,GAAA,CAAIvO,OAAJ,IAAeF,mCAAA,CAAoCE,OAHtD,EAIE;IAEAuO,GAAA,CAAIG,cAAJ;IAEA,IACE2Z,mBAAA,IACA7nB,QAAA,CAAS2nB,eAAT,KAA6B,QAD7B,IAEAxrB,oBAAA,CAAqBsF,cAArB,CAAoCgnB,MAHtC,EAIE;MACA;IADA;IAIF,MAAMpF,aAAA,GAAgB3iB,SAAA,CAAUmjB,YAAhC;IACA,IAAIsE,aAAA,IAAiBjpB,mBAArB,EAA0C;MACxCiQ,WAAA,GAAchT,oBAAA,CAAqBinB,iBAArB,CACZC,aADY,EAEZlU,WAFY,EAGZ,oBAHY,CAAd;MAKA,IAAIA,WAAA,GAAc,CAAlB,EAAqB;QACnBhT,oBAAA,CAAqBoT,OAArB,CAA6B,IAA7B,EAAmCJ,WAAnC;MADmB,CAArB,MAEO,IAAIA,WAAA,GAAc,CAAlB,EAAqB;QAC1BhT,oBAAA,CAAqB8S,MAArB,CAA4B,IAA5B,EAAkCE,WAAlC;MAD0B,CAArB,MAEA;QACL;MADK;IAViC,CAA1C,MAaO;MACL,MAAMwP,KAAA,GAAQ,IAAA+J,sCAAA,EAA6B3a,GAA7B,CAAd;MAEA,IAAIiV,KAAA,GAAQ,CAAZ;MACA,IACE+E,SAAA,KAAcK,UAAA,CAAWO,cAAzB,IACAZ,SAAA,KAAcK,UAAA,CAAWQ,cAF3B,EAGE;QAKA,IAAI1T,IAAA,CAAKqT,GAAL,CAAS5J,KAAT,KAAmB,CAAvB,EAA0B;UACxBqE,KAAA,GAAQ9N,IAAA,CAAK2T,IAAL,CAAUlK,KAAV,CAAR;QADwB,CAA1B,MAEO;UAGLqE,KAAA,GAAQ7mB,oBAAA,CAAqB4mB,gBAArB,CACNpE,KADM,EAEN,mBAFM,CAAR;QAHK;MAPP,CAHF,MAkBO;QAEL,MAAMmK,qBAAA,GAAwB,EAA9B;QACA9F,KAAA,GAAQ7mB,oBAAA,CAAqB4mB,gBAArB,CACNpE,KAAA,GAAQmK,qBADF,EAEN,mBAFM,CAAR;MAHK;MASP,IAAI9F,KAAA,GAAQ,CAAZ,EAAe;QACb7mB,oBAAA,CAAqBoT,OAArB,CAA6B,CAACyT,KAA9B;MADa,CAAf,MAEO,IAAIA,KAAA,GAAQ,CAAZ,EAAe;QACpB7mB,oBAAA,CAAqB8S,MAArB,CAA4B+T,KAA5B;MADoB,CAAf,MAEA;QACL;MADK;IAnCF;IA2CP7mB,oBAAA,CAAqBsnB,YAArB,CAAkCJ,aAAlC,EAAiDtV,GAAA,CAAIgb,OAArD,EAA8Dhb,GAAA,CAAIib,OAAlE;EArEA,CAJF,MA0EO;IACLpB,sBAAA;EADK;AAlHoB;AAuH7B,SAAStF,mBAATA,CAA6BvU,GAA7B,EAAkC;EAChC,IACE5R,oBAAA,CAAqBuE,SAArB,CAA+B0O,oBAA/B,IACArB,GAAA,CAAIkb,OAAJ,CAAY9hB,MAAZ,GAAqB,CAFvB,EAGE;IACA;EADA;EAGF4G,GAAA,CAAIG,cAAJ;EAEA,IAAIH,GAAA,CAAIkb,OAAJ,CAAY9hB,MAAZ,KAAuB,CAAvB,IAA4BhL,oBAAA,CAAqBsF,cAArB,CAAoCgnB,MAApE,EAA4E;IAC1EtsB,oBAAA,CAAqBsH,UAArB,GAAkC,IAAlC;IACA;EAF0E;EAK5E,IAAI,CAACylB,MAAD,EAASC,MAAT,IAAmBpb,GAAA,CAAIkb,OAA3B;EACA,IAAIC,MAAA,CAAOE,UAAP,GAAoBD,MAAA,CAAOC,UAA/B,EAA2C;IACzC,CAACF,MAAD,EAASC,MAAT,IAAmB,CAACA,MAAD,EAASD,MAAT,CAAnB;EADyC;EAG3C/sB,oBAAA,CAAqBsH,UAArB,GAAkC;IAChC4lB,OAAA,EAASH,MAAA,CAAOI,KADgB;IAEhCC,OAAA,EAASL,MAAA,CAAOM,KAFgB;IAGhCC,OAAA,EAASN,MAAA,CAAOG,KAHgB;IAIhCI,OAAA,EAASP,MAAA,CAAOK;EAJgB,CAAlC;AAlBgC;AA0BlC,SAASjH,kBAATA,CAA4BxU,GAA5B,EAAiC;EAC/B,IAAI,CAAC5R,oBAAA,CAAqBsH,UAAtB,IAAoCsK,GAAA,CAAIkb,OAAJ,CAAY9hB,MAAZ,KAAuB,CAA/D,EAAkE;IAChE;EADgE;EAIlE,MAAM;IAAEzG,SAAF;IAAa+C,UAAb;IAAyBvE;EAAzB,IAAiD/C,oBAAvD;EACA,IAAI,CAAC+sB,MAAD,EAASC,MAAT,IAAmBpb,GAAA,CAAIkb,OAA3B;EACA,IAAIC,MAAA,CAAOE,UAAP,GAAoBD,MAAA,CAAOC,UAA/B,EAA2C;IACzC,CAACF,MAAD,EAASC,MAAT,IAAmB,CAACA,MAAD,EAASD,MAAT,CAAnB;EADyC;EAG3C,MAAM;IAAEI,KAAA,EAAOK,MAAT;IAAiBH,KAAA,EAAOI;EAAxB,IAAmCV,MAAzC;EACA,MAAM;IAAEI,KAAA,EAAOO,MAAT;IAAiBL,KAAA,EAAOM;EAAxB,IAAmCX,MAAzC;EACA,MAAM;IACJE,OAAA,EAASU,QADL;IAEJR,OAAA,EAASS,QAFL;IAGJP,OAAA,EAASQ,QAHL;IAIJP,OAAA,EAASQ;EAJL,IAKFzmB,UALJ;EAOA,IACEyR,IAAA,CAAKqT,GAAL,CAASwB,QAAA,GAAWJ,MAApB,KAA+B,CAA/B,IACAzU,IAAA,CAAKqT,GAAL,CAASyB,QAAA,GAAWJ,MAApB,KAA+B,CAD/B,IAEA1U,IAAA,CAAKqT,GAAL,CAAS0B,QAAA,GAAWJ,MAApB,KAA+B,CAF/B,IAGA3U,IAAA,CAAKqT,GAAL,CAAS2B,QAAA,GAAWJ,MAApB,KAA+B,CAJjC,EAKE;IAGA;EAHA;EAMFrmB,UAAA,CAAW4lB,OAAX,GAAqBM,MAArB;EACAlmB,UAAA,CAAW8lB,OAAX,GAAqBK,MAArB;EACAnmB,UAAA,CAAWgmB,OAAX,GAAqBI,MAArB;EACApmB,UAAA,CAAWimB,OAAX,GAAqBI,MAArB;EAEA,IAAIC,QAAA,KAAaJ,MAAb,IAAuBK,QAAA,KAAaJ,MAAxC,EAAgD;IAE9C,MAAMO,GAAA,GAAMF,QAAA,GAAWN,MAAvB;IACA,MAAMS,GAAA,GAAMF,QAAA,GAAWN,MAAvB;IACA,MAAMS,GAAA,GAAMR,MAAA,GAASF,MAArB;IACA,MAAMW,GAAA,GAAMR,MAAA,GAASF,MAArB;IACA,MAAMW,GAAA,GAAMJ,GAAA,GAAMG,GAAN,GAAYF,GAAA,GAAMC,GAA9B;IAEA,IAAInV,IAAA,CAAKqT,GAAL,CAASgC,GAAT,IAAgB,OAAOrV,IAAA,CAAKsV,KAAL,CAAWL,GAAX,EAAgBC,GAAhB,CAAP,GAA8BlV,IAAA,CAAKsV,KAAL,CAAWH,GAAX,EAAgBC,GAAhB,CAAlD,EAAwE;MACtE;IADsE;EAR1B,CAAhD,MAWO,IAAIL,QAAA,KAAaJ,MAAb,IAAuBK,QAAA,KAAaJ,MAAxC,EAAgD;IAErD,MAAMK,GAAA,GAAMJ,QAAA,GAAWF,MAAvB;IACA,MAAMO,GAAA,GAAMJ,QAAA,GAAWF,MAAvB;IACA,MAAMO,GAAA,GAAMV,MAAA,GAASE,MAArB;IACA,MAAMS,GAAA,GAAMV,MAAA,GAASE,MAArB;IACA,MAAMS,GAAA,GAAMJ,GAAA,GAAMG,GAAN,GAAYF,GAAA,GAAMC,GAA9B;IACA,IAAInV,IAAA,CAAKqT,GAAL,CAASgC,GAAT,IAAgB,OAAOrV,IAAA,CAAKsV,KAAL,CAAWL,GAAX,EAAgBC,GAAhB,CAAP,GAA8BlV,IAAA,CAAKsV,KAAL,CAAWH,GAAX,EAAgBC,GAAhB,CAAlD,EAAwE;MACtE;IADsE;EAPnB,CAAhD,MAUA;IACL,MAAMG,MAAA,GAASd,MAAA,GAASI,QAAxB;IACA,MAAMW,MAAA,GAASb,MAAA,GAASI,QAAxB;IACA,MAAMU,MAAA,GAASf,MAAA,GAASI,QAAxB;IACA,MAAMY,MAAA,GAASd,MAAA,GAASI,QAAxB;IACA,MAAMW,UAAA,GAAaJ,MAAA,GAASC,MAAT,GAAkBC,MAAA,GAASC,MAA9C;IACA,IAAIC,UAAA,IAAc,CAAlB,EAAqB;MAEnB;IAFmB;EANhB;EAYP9c,GAAA,CAAIG,cAAJ;EAEA,MAAM4c,QAAA,GAAW5V,IAAA,CAAKsV,KAAL,CAAWb,MAAA,GAASE,MAApB,EAA4BD,MAAA,GAASE,MAArC,KAAgD,CAAjE;EACA,MAAMiB,SAAA,GAAY7V,IAAA,CAAKsV,KAAL,CAAWT,QAAA,GAAWE,QAAtB,EAAgCD,QAAA,GAAWE,QAA3C,KAAwD,CAA1E;EACA,MAAM7G,aAAA,GAAgB3iB,SAAA,CAAUmjB,YAAhC;EACA,IAAI3kB,mBAAJ,EAAyB;IACvB,MAAM8rB,cAAA,GAAiB7uB,oBAAA,CAAqBinB,iBAArB,CACrBC,aADqB,EAErByH,QAAA,GAAWC,SAFU,EAGrB,oBAHqB,CAAvB;IAKA,IAAIC,cAAA,GAAiB,CAArB,EAAwB;MACtB7uB,oBAAA,CAAqBoT,OAArB,CAA6B,IAA7B,EAAmCyb,cAAnC;IADsB,CAAxB,MAEO,IAAIA,cAAA,GAAiB,CAArB,EAAwB;MAC7B7uB,oBAAA,CAAqB8S,MAArB,CAA4B,IAA5B,EAAkC+b,cAAlC;IAD6B,CAAxB,MAEA;MACL;IADK;EAVgB,CAAzB,MAaO;IACL,MAAMlC,qBAAA,GAAwB,EAA9B;IACA,MAAM9F,KAAA,GAAQ7mB,oBAAA,CAAqB4mB,gBAArB,CACX,CAAA+H,QAAA,GAAWC,SAAX,IAAwBjC,qBADb,EAEZ,mBAFY,CAAd;IAIA,IAAI9F,KAAA,GAAQ,CAAZ,EAAe;MACb7mB,oBAAA,CAAqBoT,OAArB,CAA6B,CAACyT,KAA9B;IADa,CAAf,MAEO,IAAIA,KAAA,GAAQ,CAAZ,EAAe;MACpB7mB,oBAAA,CAAqB8S,MAArB,CAA4B+T,KAA5B;IADoB,CAAf,MAEA;MACL;IADK;EAVF;EAeP7mB,oBAAA,CAAqBsnB,YAArB,CACEJ,aADF,EAEG,CAAAsG,MAAA,GAASE,MAAT,IAAmB,CAFtB,EAGG,CAAAD,MAAA,GAASE,MAAT,IAAmB,CAHtB;AArG+B;AA4GjC,SAAStH,iBAATA,CAA2BzU,GAA3B,EAAgC;EAC9B,IAAI,CAAC5R,oBAAA,CAAqBsH,UAA1B,EAAsC;IACpC;EADoC;EAItCsK,GAAA,CAAIG,cAAJ;EACA/R,oBAAA,CAAqBsH,UAArB,GAAkC,IAAlC;EACAtH,oBAAA,CAAqB+G,iBAArB,GAAyC,CAAzC;EACA/G,oBAAA,CAAqBgH,kBAArB,GAA0C,CAA1C;AAR8B;AAWhC,SAASsf,cAATA,CAAwB1U,GAAxB,EAA6B;EAC3B,IAAI,CAAC5R,oBAAA,CAAqByF,gBAArB,EAAuCqpB,MAA5C,EAAoD;IAClD;EADkD;EAGpD,MAAM3qB,SAAA,GAAYnE,oBAAA,CAAqBmE,SAAvC;EACA,IACEnE,oBAAA,CAAqBuE,SAArB,CAA+BwqB,eAA/B,CAA+Cnd,GAAA,CAAIE,MAAnD,KACC3N,SAAA,CAAUqB,OAAV,EAAmBmH,SAAnB,CAA6BmI,QAA7B,CAAsClD,GAAA,CAAIE,MAA1C,KACCF,GAAA,CAAIE,MAAJ,KAAe3N,SAAA,CAAUsB,gBAAV,EAA4BupB,YAH/C,EAIE;IACAhvB,oBAAA,CAAqByF,gBAArB,CAAsCsP,KAAtC;EADA;AATyB;AAc7B,SAASyR,cAATA,CAAwB5U,GAAxB,EAA6B;EAE3B,IAAIA,GAAA,CAAIwF,GAAJ,KAAY,SAAhB,EAA2B;IACzBpX,oBAAA,CAAqBuH,cAArB,GAAsC,KAAtC;EADyB;AAFA;AAO7B,SAASgf,gBAATA,CAA0B3U,GAA1B,EAA+B;EAC7B5R,oBAAA,CAAqBuH,cAArB,GAAsCqK,GAAA,CAAIwF,GAAJ,KAAY,SAAlD;EAEA,IAAIpX,oBAAA,CAAqBsF,cAArB,CAAoCgnB,MAAxC,EAAgD;IAC9C;EAD8C;EAGhD,MAAM;IAAE5mB,QAAF;IAAYnB;EAAZ,IAA0BvE,oBAAhC;EACA,MAAMivB,0BAAA,GAA6B1qB,SAAA,CAAU0O,oBAA7C;EAEA,IAAIic,OAAA,GAAU,KAAd;IACEC,mBAAA,GAAsB,KADxB;EAEA,MAAMC,GAAA,GACH,CAAAxd,GAAA,CAAIxO,OAAJ,GAAc,CAAd,GAAkB,CAAlB,KACAwO,GAAA,CAAIyd,MAAJ,GAAa,CAAb,GAAiB,CAAjB,CADD,IAECzd,GAAA,CAAI0d,QAAJ,GAAe,CAAf,GAAmB,CAAnB,CAFD,IAGC1d,GAAA,CAAIvO,OAAJ,GAAc,CAAd,GAAkB,CAAlB,CAJH;EAQA,IAAI+rB,GAAA,KAAQ,CAAR,IAAaA,GAAA,KAAQ,CAArB,IAA0BA,GAAA,KAAQ,CAAlC,IAAuCA,GAAA,KAAQ,EAAnD,EAAuD;IAErD,QAAQxd,GAAA,CAAI2d,OAAZ;MACE,KAAK,EAAL;QACE,IAAI,CAACvvB,oBAAA,CAAqBiD,sBAAtB,IAAgD,CAAC2O,GAAA,CAAI0d,QAAzD,EAAmE;UACjEtvB,oBAAA,CAAqBwO,OAArB,EAA8BgE,IAA9B;UACA0c,OAAA,GAAU,IAAV;QAFiE;QAInE;MACF,KAAK,EAAL;QACE,IAAI,CAAClvB,oBAAA,CAAqBiD,sBAA1B,EAAkD;UAChD,MAAM;YAAE0mB;UAAF,IAAY3pB,oBAAA,CAAqBoM,cAAvC;UACA,IAAIud,KAAJ,EAAW;YACT,MAAM6F,QAAA,GAAW;cACf7mB,MAAA,EAAQ3C,MADO;cAEf+R,IAAA,EAAM,OAFS;cAGf2S,YAAA,EAAc0E,GAAA,KAAQ,CAAR,IAAaA,GAAA,KAAQ;YAHpB,CAAjB;YAKA1pB,QAAA,CAASgD,QAAT,CAAkB,MAAlB,EAA0B;cAAE,GAAGihB,KAAL;cAAY,GAAG6F;YAAf,CAA1B;UANS;UAQXN,OAAA,GAAU,IAAV;QAVgD;QAYlD;MACF,KAAK,EAAL;MACA,KAAK,GAAL;MACA,KAAK,GAAL;MACA,KAAK,GAAL;QACElvB,oBAAA,CAAqB8S,MAArB;QACAoc,OAAA,GAAU,IAAV;QACA;MACF,KAAK,GAAL;MACA,KAAK,GAAL;MACA,KAAK,GAAL;QACElvB,oBAAA,CAAqBoT,OAArB;QACA8b,OAAA,GAAU,IAAV;QACA;MACF,KAAK,EAAL;MACA,KAAK,EAAL;QACE,IAAI,CAACD,0BAAL,EAAiC;UAE/B7S,UAAA,CAAW,YAAY;YAErBpc,oBAAA,CAAqBsT,SAArB;UAFqB,CAAvB;UAIA4b,OAAA,GAAU,KAAV;QAN+B;QAQjC;MAEF,KAAK,EAAL;QACE,IAAID,0BAAA,IAA8BjvB,oBAAA,CAAqB2T,IAArB,GAA4B,CAA9D,EAAiE;UAC/D3T,oBAAA,CAAqB2T,IAArB,GAA4B,CAA5B;UACAub,OAAA,GAAU,IAAV;UACAC,mBAAA,GAAsB,IAAtB;QAH+D;QAKjE;MACF,KAAK,EAAL;QACE,IACEF,0BAAA,IACAjvB,oBAAA,CAAqB2T,IAArB,GAA4B3T,oBAAA,CAAqByT,UAFnD,EAGE;UACAzT,oBAAA,CAAqB2T,IAArB,GAA4B3T,oBAAA,CAAqByT,UAAjD;UACAyb,OAAA,GAAU,IAAV;UACAC,mBAAA,GAAsB,IAAtB;QAHA;QAKF;IA9DJ;EAFqD;EAsErD,IAAIC,GAAA,KAAQ,CAAR,IAAaA,GAAA,KAAQ,CAAzB,EAA4B;IAC1B,QAAQxd,GAAA,CAAI2d,OAAZ;MACE,KAAK,EAAL;QACE7pB,QAAA,CAASgD,QAAT,CAAkB,UAAlB,EAA8B;UAAEC,MAAA,EAAQ3C;QAAV,CAA9B;QACAkpB,OAAA,GAAU,IAAV;QACA;MAEF,KAAK,EAAL;QACmE;UAC/DxpB,QAAA,CAASgD,QAAT,CAAkB,UAAlB,EAA8B;YAAEC,MAAA,EAAQ3C;UAAV,CAA9B;UACAkpB,OAAA,GAAU,IAAV;QAF+D;QAIjE;IAXJ;EAD0B;EAkB9B,IAAIE,GAAA,KAAQ,CAAR,IAAaA,GAAA,KAAQ,EAAzB,EAA6B;IAC3B,QAAQxd,GAAA,CAAI2d,OAAZ;MACE,KAAK,EAAL;QACEvvB,oBAAA,CAAqByiB,uBAArB;QACAyM,OAAA,GAAU,IAAV;QACAlvB,oBAAA,CAAqBC,gBAArB,CAAsC4C,eAAtC,CAAsD;UACpDkV,IAAA,EAAM,SAD8C;UAEpDtV,IAAA,EAAM;YAAEqM,EAAA,EAAI;UAAN;QAF8C,CAAtD;QAIA;MACF,KAAK,EAAL;QAEE,IAAI9O,oBAAA,CAAqBmE,SAArB,CAA+BqB,OAAnC,EAA4C;UAC1CxF,oBAAA,CAAqBmE,SAArB,CAA+BqB,OAA/B,CAAuC4a,UAAvC,CAAkDoJ,MAAlD;UACA0F,OAAA,GAAU,IAAV;QAF0C;QAI5C;IAfJ;EAD2B;EAoB7B,IAAIA,OAAJ,EAAa;IACX,IAAIC,mBAAA,IAAuB,CAACF,0BAA5B,EAAwD;MACtD1qB,SAAA,CAAU2X,KAAV;IADsD;IAGxDtK,GAAA,CAAIG,cAAJ;IACA;EALW;EAUb,MAAM0d,UAAA,GAAa,IAAAC,mCAAA,GAAnB;EACA,MAAMC,iBAAA,GAAoBF,UAAA,EAAYG,OAAZ,CAAoBC,WAApB,EAA1B;EACA,IACEF,iBAAA,KAAsB,OAAtB,IACAA,iBAAA,KAAsB,UADtB,IAEAA,iBAAA,KAAsB,QAFtB,IAGAF,UAAA,EAAYK,iBAJd,EAKE;IAEA,IAAIle,GAAA,CAAI2d,OAAJ,KAA4B,EAAhC,EAAoC;MAClC;IADkC;EAFpC;EAQF,IAAIH,GAAA,KAAQ,CAAZ,EAAe;IACb,IAAIW,QAAA,GAAW,CAAf;MACEC,iBAAA,GAAoB,KADtB;IAEA,QAAQpe,GAAA,CAAI2d,OAAZ;MACE,KAAK,EAAL;MACA,KAAK,EAAL;QAEE,IAAIhrB,SAAA,CAAU0rB,0BAAd,EAA0C;UACxCD,iBAAA,GAAoB,IAApB;QADwC;QAG1CD,QAAA,GAAW,CAAC,CAAZ;QACA;MACF,KAAK,CAAL;QACE,IAAI,CAACd,0BAAL,EAAiC;UAC/Be,iBAAA,GAAoB,IAApB;QAD+B;QAGjCD,QAAA,GAAW,CAAC,CAAZ;QACA;MACF,KAAK,EAAL;QAEE,IAAIxrB,SAAA,CAAU2rB,4BAAd,EAA4C;UAC1CF,iBAAA,GAAoB,IAApB;QAD0C;MAI9C,KAAK,EAAL;MACA,KAAK,EAAL;QACED,QAAA,GAAW,CAAC,CAAZ;QACA;MACF,KAAK,EAAL;QACE,IAAI/vB,oBAAA,CAAqByF,gBAArB,EAAuCqpB,MAA3C,EAAmD;UACjD9uB,oBAAA,CAAqByF,gBAArB,CAAsCsP,KAAtC;UACAma,OAAA,GAAU,IAAV;QAFiD;QAInD,IACE,CAAClvB,oBAAA,CAAqBiD,sBAAtB,IACAjD,oBAAA,CAAqBwO,OAArB,EAA8B2hB,MAFhC,EAGE;UACAnwB,oBAAA,CAAqBwO,OAArB,CAA6BuG,KAA7B;UACAma,OAAA,GAAU,IAAV;QAFA;QAIF;MACF,KAAK,EAAL;MACA,KAAK,EAAL;QAEE,IAAI3qB,SAAA,CAAU0rB,0BAAd,EAA0C;UACxCD,iBAAA,GAAoB,IAApB;QADwC;QAG1CD,QAAA,GAAW,CAAX;QACA;MACF,KAAK,EAAL;MACA,KAAK,EAAL;QACE,IAAI,CAACd,0BAAL,EAAiC;UAC/Be,iBAAA,GAAoB,IAApB;QAD+B;QAGjCD,QAAA,GAAW,CAAX;QACA;MACF,KAAK,EAAL;QAEE,IAAIxrB,SAAA,CAAU2rB,4BAAd,EAA4C;UAC1CF,iBAAA,GAAoB,IAApB;QAD0C;MAI9C,KAAK,EAAL;MACA,KAAK,EAAL;QACED,QAAA,GAAW,CAAX;QACA;MAEF,KAAK,EAAL;QACE,IAAId,0BAAA,IAA8BjvB,oBAAA,CAAqB2T,IAArB,GAA4B,CAA9D,EAAiE;UAC/D3T,oBAAA,CAAqB2T,IAArB,GAA4B,CAA5B;UACAub,OAAA,GAAU,IAAV;UACAC,mBAAA,GAAsB,IAAtB;QAH+D;QAKjE;MACF,KAAK,EAAL;QACE,IACEF,0BAAA,IACAjvB,oBAAA,CAAqB2T,IAArB,GAA4B3T,oBAAA,CAAqByT,UAFnD,EAGE;UACAzT,oBAAA,CAAqB2T,IAArB,GAA4B3T,oBAAA,CAAqByT,UAAjD;UACAyb,OAAA,GAAU,IAAV;UACAC,mBAAA,GAAsB,IAAtB;QAHA;QAKF;MAEF,KAAK,EAAL;QACEnvB,oBAAA,CAAqBkF,cAArB,EAAqCkrB,UAArC,CAAgDC,oBAAA,CAAWC,MAA3D;QACA;MACF,KAAK,EAAL;QACEtwB,oBAAA,CAAqBkF,cAArB,EAAqCkrB,UAArC,CAAgDC,oBAAA,CAAWE,IAA3D;QACA;MAEF,KAAK,EAAL;QACEvwB,oBAAA,CAAqBuiB,WAArB,CAAiC,EAAjC;QACA;MAEF,KAAK,GAAL;QACEviB,oBAAA,CAAqB8E,UAArB,EAAiC2kB,MAAjC;QACA;IA/FJ;IAkGA,IACEsG,QAAA,KAAa,CAAb,KACC,CAACC,iBAAD,IAAsBzrB,SAAA,CAAUgP,iBAAV,KAAgC,UAAtD,CAFH,EAGE;MACA,IAAIwc,QAAA,GAAW,CAAf,EAAkB;QAChBxrB,SAAA,CAAU4lB,QAAV;MADgB,CAAlB,MAEO;QACL5lB,SAAA,CAAU6lB,YAAV;MADK;MAGP8E,OAAA,GAAU,IAAV;IANA;EAxGW;EAmHf,IAAIE,GAAA,KAAQ,CAAZ,EAAe;IACb,QAAQxd,GAAA,CAAI2d,OAAZ;MACE,KAAK,EAAL;MACA,KAAK,EAAL;QACE,IACE,CAACN,0BAAD,IACA1qB,SAAA,CAAUgP,iBAAV,KAAgC,UAFlC,EAGE;UACA;QADA;QAGFhP,SAAA,CAAU6lB,YAAV;QAEA8E,OAAA,GAAU,IAAV;QACA;MAEF,KAAK,EAAL;QACElvB,oBAAA,CAAqBuiB,WAArB,CAAiC,CAAC,EAAlC;QACA;IAhBJ;EADa;EAqBf,IAAI,CAAC2M,OAAD,IAAY,CAACD,0BAAjB,EAA6C;IAI3C,IACGrd,GAAA,CAAI2d,OAAJ,IAAe,EAAf,IAAqB3d,GAAA,CAAI2d,OAAJ,IAAe,EAArC,IACC3d,GAAA,CAAI2d,OAAJ,KAAgB,EAAhB,IAAsBI,iBAAA,KAAsB,QAF/C,EAGE;MACAR,mBAAA,GAAsB,IAAtB;IADA;EAPyC;EAY7C,IAAIA,mBAAA,IAAuB,CAAC5qB,SAAA,CAAUwqB,eAAV,CAA0BU,UAA1B,CAA5B,EAAmE;IAIjElrB,SAAA,CAAU2X,KAAV;EAJiE;EAOnE,IAAIgT,OAAJ,EAAa;IACXtd,GAAA,CAAIG,cAAJ;EADW;AAnTgB;AAwT/B,SAASuO,YAATA,CAAsB1O,GAAtB,EAA2B;EACzBA,GAAA,CAAIG,cAAJ;EACAH,GAAA,CAAI4e,WAAJ,GAAkB,EAAlB;EACA,OAAO,KAAP;AAHyB;AAM3B,SAASC,sCAATA,CAAgDhuB,IAAhD,EAAsD;EACpDzC,oBAAA,CAAqBC,gBAArB,CAAsCsD,kBAAtC,CAAyDd,IAAzD;AADoD;AAItD,SAASiuB,wBAATA,CAAkC;EAAEC;AAAF,CAAlC,EAA+C;EAC7C3wB,oBAAA,CAAqBC,gBAArB,CAAsC4C,eAAtC,CAAsD8tB,OAAtD;AAD6C;AAK/C,MAAM9c,sBAAA,GAAyB;EAC7BC,QAAA,EAAU;IACR1B,gBAAA,EAAkB,KADV;IAER8P,mBAAA,EAAqB;MACnB,MAAM,IAAI3f,KAAJ,CAAU,qCAAV,CAAN;IADmB;EAFb;AADmB,CAA/B;AAtuGA9D,8BAAA,GAAAoV,sBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACeA,MAAML,mBAAA,GAAsB,MAA5B;AAfA/U,2BAAA,GAAA+U,mBAAA;AAgBA,MAAMod,aAAA,GAAgB,GAAtB;AAhBAnyB,qBAAA,GAAAmyB,aAAA;AAiBA,MAAMC,mBAAA,GAAsB,GAA5B;AAjBApyB,2BAAA,GAAAoyB,mBAAA;AAkBA,MAAMC,SAAA,GAAY,GAAlB;AAlBAryB,iBAAA,GAAAqyB,SAAA;AAmBA,MAAMC,SAAA,GAAY,IAAlB;AAnBAtyB,iBAAA,GAAAsyB,SAAA;AAoBA,MAAMC,aAAA,GAAgB,CAAtB;AApBAvyB,qBAAA,GAAAuyB,aAAA;AAqBA,MAAMC,cAAA,GAAiB,IAAvB;AArBAxyB,sBAAA,GAAAwyB,cAAA;AAsBA,MAAMC,iBAAA,GAAoB,EAA1B;AAtBAzyB,yBAAA,GAAAyyB,iBAAA;AAuBA,MAAMC,gBAAA,GAAmB,CAAzB;AAvBA1yB,wBAAA,GAAA0yB,gBAAA;AAyBA,MAAMvgB,eAAA,GAAkB;EACtB3O,OAAA,EAAS,CADa;EAEtBqpB,OAAA,EAAS,CAFa;EAGtB8F,MAAA,EAAQ,CAHc;EAItBvgB,QAAA,EAAU;AAJY,CAAxB;AAzBApS,uBAAA,GAAAmS,eAAA;AAgCA,MAAMygB,qBAAA,GAAwB;EAC5BtvB,OAAA,EAAS,CADmB;EAE5BuvB,MAAA,EAAQ,CAFoB;EAG5BC,QAAA,EAAU,CAHkB;EAI5BC,UAAA,EAAY;AAJgB,CAA9B;AAhCA/yB,6BAAA,GAAA4yB,qBAAA;AAuCA,MAAM3W,WAAA,GAAc;EAClB3Y,OAAA,EAAS,CAAC,CADQ;EAElBiG,IAAA,EAAM,CAFY;EAGlBwZ,MAAA,EAAQ,CAHU;EAIlB4H,OAAA,EAAS,CAJS;EAKlBC,WAAA,EAAa,CALK;EAMlBC,MAAA,EAAQ;AANU,CAApB;AAvCA7qB,mBAAA,GAAAic,WAAA;AAgDA,MAAM9Q,aAAA,GAAgB;EACpBC,OAAA,EAAS,CADW;EAEpB4nB,MAAA,EAAQ,CAFY;EAGpBC,kBAAA,EAAoB;AAHA,CAAtB;AAhDAjzB,qBAAA,GAAAmL,aAAA;AAsDA,MAAMgR,UAAA,GAAa;EACjB7Y,OAAA,EAAS,CAAC,CADO;EAEjB4vB,QAAA,EAAU,CAFO;EAGjBC,UAAA,EAAY,CAHK;EAIjBC,OAAA,EAAS,CAJQ;EAKjBC,IAAA,EAAM;AALW,CAAnB;AAtDArzB,kBAAA,GAAAmc,UAAA;AA8DA,MAAME,UAAA,GAAa;EACjB/Y,OAAA,EAAS,CAAC,CADO;EAEjBiG,IAAA,EAAM,CAFW;EAGjB+pB,GAAA,EAAK,CAHY;EAIjBC,IAAA,EAAM;AAJW,CAAnB;AA9DAvzB,kBAAA,GAAAqc,UAAA;AAqEA,MAAMuV,UAAA,GAAa;EACjBC,MAAA,EAAQ,CADS;EAEjBC,IAAA,EAAM,CAFW;EAGjB0B,IAAA,EAAM;AAHW,CAAnB;AArEAxzB,kBAAA,GAAA4xB,UAAA;AA4EA,MAAMpS,eAAA,GAAkB,cAAxB;AA5EAxf,uBAAA,GAAAwf,eAAA;AAiFA,MAAMiU,WAAN,CAAkB;EAChB5vB,YAAA,EAAc;IACZ,MAAM6vB,UAAA,GAAansB,MAAA,CAAOuf,gBAAP,IAA2B,CAA9C;IAKA,KAAK6M,EAAL,GAAUD,UAAV;IAKA,KAAKE,EAAL,GAAUF,UAAV;EAXY;EAiBd,IAAIG,MAAJA,CAAA,EAAa;IACX,OAAO,KAAKF,EAAL,KAAY,CAAZ,IAAiB,KAAKC,EAAL,KAAY,CAApC;EADW;AAlBG;AAjFlB5zB,mBAAA,GAAAyzB,WAAA;AAmHA,SAASK,cAATA,CAAwBC,OAAxB,EAAiCC,IAAjC,EAAuCC,aAAA,GAAgB,KAAvD,EAA8D;EAI5D,IAAIzsB,MAAA,GAASusB,OAAA,CAAQG,YAArB;EACA,IAAI,CAAC1sB,MAAL,EAAa;IACX6C,OAAA,CAAQK,KAAR,CAAc,0CAAd;IACA;EAFW;EAIb,IAAIypB,OAAA,GAAUJ,OAAA,CAAQK,SAAR,GAAoBL,OAAA,CAAQM,SAA1C;EACA,IAAIC,OAAA,GAAUP,OAAA,CAAQQ,UAAR,GAAqBR,OAAA,CAAQS,UAA3C;EACA,OACGhtB,MAAA,CAAOitB,YAAP,KAAwBjtB,MAAA,CAAOktB,YAA/B,IACCltB,MAAA,CAAOmtB,WAAP,KAAuBntB,MAAA,CAAOotB,WADhC,IAECX,aAAA,KACEzsB,MAAA,CAAO6D,SAAP,CAAiBgL,QAAjB,CAA0B,eAA1B,KACCwe,gBAAA,CAAiBrtB,MAAjB,EAAyBstB,QAAzB,KAAsC,QADvC,CAJL,EAME;IACAX,OAAA,IAAW3sB,MAAA,CAAO4sB,SAAlB;IACAE,OAAA,IAAW9sB,MAAA,CAAO+sB,UAAlB;IAEA/sB,MAAA,GAASA,MAAA,CAAO0sB,YAAhB;IACA,IAAI,CAAC1sB,MAAL,EAAa;MACX;IADW;EALb;EASF,IAAIwsB,IAAJ,EAAU;IACR,IAAIA,IAAA,CAAK9K,GAAL,KAAaxQ,SAAjB,EAA4B;MAC1Byb,OAAA,IAAWH,IAAA,CAAK9K,GAAhB;IAD0B;IAG5B,IAAI8K,IAAA,CAAK7K,IAAL,KAAczQ,SAAlB,EAA6B;MAC3B4b,OAAA,IAAWN,IAAA,CAAK7K,IAAhB;MACA3hB,MAAA,CAAOqU,UAAP,GAAoByY,OAApB;IAF2B;EAJrB;EASV9sB,MAAA,CAAOsU,SAAP,GAAmBqY,OAAnB;AAnC4D;AA0C9D,SAASY,WAATA,CAAqBC,eAArB,EAAsCC,QAAtC,EAAgD;EAC9C,MAAMC,cAAA,GAAiB,SAAAA,CAAU/hB,GAAV,EAAe;IACpC,IAAIgiB,GAAJ,EAAS;MACP;IADO;IAITA,GAAA,GAAM5tB,MAAA,CAAO6tB,qBAAP,CAA6B,SAASC,uBAATA,CAAA,EAAmC;MACpEF,GAAA,GAAM,IAAN;MAEA,MAAMG,QAAA,GAAWN,eAAA,CAAgBnZ,UAAjC;MACA,MAAM0Z,KAAA,GAAQrK,KAAA,CAAMqK,KAApB;MACA,IAAID,QAAA,KAAaC,KAAjB,EAAwB;QACtBrK,KAAA,CAAMsK,KAAN,GAAcF,QAAA,GAAWC,KAAzB;MADsB;MAGxBrK,KAAA,CAAMqK,KAAN,GAAcD,QAAd;MACA,MAAMG,QAAA,GAAWT,eAAA,CAAgBlZ,SAAjC;MACA,MAAM4Z,KAAA,GAAQxK,KAAA,CAAMwK,KAApB;MACA,IAAID,QAAA,KAAaC,KAAjB,EAAwB;QACtBxK,KAAA,CAAMyK,IAAN,GAAaF,QAAA,GAAWC,KAAxB;MADsB;MAGxBxK,KAAA,CAAMwK,KAAN,GAAcD,QAAd;MACAR,QAAA,CAAS/J,KAAT;IAfoE,CAAhE,CAAN;EALoC,CAAtC;EAwBA,MAAMA,KAAA,GAAQ;IACZsK,KAAA,EAAO,IADK;IAEZG,IAAA,EAAM,IAFM;IAGZJ,KAAA,EAAOP,eAAA,CAAgBnZ,UAHX;IAIZ6Z,KAAA,EAAOV,eAAA,CAAgBlZ,SAJX;IAKZ8Z,aAAA,EAAeV;EALH,CAAd;EAQA,IAAIC,GAAA,GAAM,IAAV;EACAH,eAAA,CAAgB9hB,gBAAhB,CAAiC,QAAjC,EAA2CgiB,cAA3C,EAA2D,IAA3D;EACA,OAAOhK,KAAP;AAnC8C;AA2ChD,SAASngB,gBAATA,CAA0B8gB,KAA1B,EAAiC;EAC/B,MAAM/gB,MAAA,GAAS,IAAI+qB,GAAJ,EAAf;EACA,WAAW,CAACld,GAAD,EAAM1F,KAAN,CAAX,IAA2B,IAAI6iB,eAAJ,CAAoBjK,KAApB,CAA3B,EAAuD;IACrD/gB,MAAA,CAAOtB,GAAP,CAAWmP,GAAA,CAAIod,WAAJ,EAAX,EAA8B9iB,KAA9B;EADqD;EAGvD,OAAOnI,MAAP;AAL+B;AAQjC,MAAMkrB,yBAAA,GAA4B,cAAlC;AAMA,SAASC,oBAATA,CAA8BC,GAA9B,EAAmCC,gBAAA,GAAmB,KAAtD,EAA6D;EAC3D,IAAI,OAAOD,GAAP,KAAe,QAAnB,EAA6B;IAC3B7rB,OAAA,CAAQK,KAAR,CAAe,gCAAf;IACA,OAAOwrB,GAAP;EAF2B;EAI7B,IAAIC,gBAAJ,EAAsB;IACpBD,GAAA,GAAMA,GAAA,CAAIE,UAAJ,CAAeJ,yBAAf,EAA0C,GAA1C,CAAN;EADoB;EAGtB,OAAOE,GAAA,CAAIE,UAAJ,CAAe,MAAf,EAAuB,EAAvB,CAAP;AAR2D;AAoB7D,SAASC,qBAATA,CAA+BC,KAA/B,EAAsCC,SAAtC,EAAiDC,KAAA,GAAQ,CAAzD,EAA4D;EAC1D,IAAIC,QAAA,GAAWD,KAAf;EACA,IAAIE,QAAA,GAAWJ,KAAA,CAAM/pB,MAAN,GAAe,CAA9B;EAEA,IAAImqB,QAAA,GAAW,CAAX,IAAgB,CAACH,SAAA,CAAUD,KAAA,CAAMI,QAAN,CAAV,CAArB,EAAiD;IAC/C,OAAOJ,KAAA,CAAM/pB,MAAb;EAD+C;EAGjD,IAAIgqB,SAAA,CAAUD,KAAA,CAAMG,QAAN,CAAV,CAAJ,EAAgC;IAC9B,OAAOA,QAAP;EAD8B;EAIhC,OAAOA,QAAA,GAAWC,QAAlB,EAA4B;IAC1B,MAAMC,YAAA,GAAgBF,QAAA,GAAWC,QAAZ,IAAyB,CAA9C;IACA,MAAME,WAAA,GAAcN,KAAA,CAAMK,YAAN,CAApB;IACA,IAAIJ,SAAA,CAAUK,WAAV,CAAJ,EAA4B;MAC1BF,QAAA,GAAWC,YAAX;IAD0B,CAA5B,MAEO;MACLF,QAAA,GAAWE,YAAA,GAAe,CAA1B;IADK;EALmB;EAS5B,OAAOF,QAAP;AApB0D;AA8B5D,SAASI,mBAATA,CAA6B/N,CAA7B,EAAgC;EAE9B,IAAIxO,IAAA,CAAKsO,KAAL,CAAWE,CAAX,MAAkBA,CAAtB,EAAyB;IACvB,OAAO,CAACA,CAAD,EAAI,CAAJ,CAAP;EADuB;EAGzB,MAAMgO,IAAA,GAAO,IAAIhO,CAAjB;EACA,MAAMiO,KAAA,GAAQ,CAAd;EACA,IAAID,IAAA,GAAOC,KAAX,EAAkB;IAChB,OAAO,CAAC,CAAD,EAAIA,KAAJ,CAAP;EADgB,CAAlB,MAEO,IAAIzc,IAAA,CAAKsO,KAAL,CAAWkO,IAAX,MAAqBA,IAAzB,EAA+B;IACpC,OAAO,CAAC,CAAD,EAAIA,IAAJ,CAAP;EADoC;EAItC,MAAME,EAAA,GAAKlO,CAAA,GAAI,CAAJ,GAAQgO,IAAR,GAAehO,CAA1B;EAEA,IAAImO,CAAA,GAAI,CAAR;IACEC,CAAA,GAAI,CADN;IAEEC,CAAA,GAAI,CAFN;IAGEC,CAAA,GAAI,CAHN;EAKA,OAAO,IAAP,EAAa;IAEX,MAAMC,CAAA,GAAIJ,CAAA,GAAIE,CAAd;MACEG,CAAA,GAAIJ,CAAA,GAAIE,CADV;IAEA,IAAIE,CAAA,GAAIP,KAAR,EAAe;MACb;IADa;IAGf,IAAIC,EAAA,IAAMK,CAAA,GAAIC,CAAd,EAAiB;MACfH,CAAA,GAAIE,CAAJ;MACAD,CAAA,GAAIE,CAAJ;IAFe,CAAjB,MAGO;MACLL,CAAA,GAAII,CAAJ;MACAH,CAAA,GAAII,CAAJ;IAFK;EAVI;EAeb,IAAI/K,MAAJ;EAEA,IAAIyK,EAAA,GAAKC,CAAA,GAAIC,CAAT,GAAaC,CAAA,GAAIC,CAAJ,GAAQJ,EAAzB,EAA6B;IAC3BzK,MAAA,GAASyK,EAAA,KAAOlO,CAAP,GAAW,CAACmO,CAAD,EAAIC,CAAJ,CAAX,GAAoB,CAACA,CAAD,EAAID,CAAJ,CAA7B;EAD2B,CAA7B,MAEO;IACL1K,MAAA,GAASyK,EAAA,KAAOlO,CAAP,GAAW,CAACqO,CAAD,EAAIC,CAAJ,CAAX,GAAoB,CAACA,CAAD,EAAID,CAAJ,CAA7B;EADK;EAGP,OAAO5K,MAAP;AA1C8B;AA6ChC,SAASgL,aAATA,CAAuBzO,CAAvB,EAA0B0O,GAA1B,EAA+B;EAC7B,MAAMC,CAAA,GAAI3O,CAAA,GAAI0O,GAAd;EACA,OAAOC,CAAA,KAAM,CAAN,GAAU3O,CAAV,GAAcxO,IAAA,CAAKC,KAAL,CAAWuO,CAAA,GAAI2O,CAAJ,GAAQD,GAAnB,CAArB;AAF6B;AAuB/B,SAASE,iBAATA,CAA2B;EAAEhN,IAAF;EAAQiN,QAAR;EAAkBC;AAAlB,CAA3B,EAAuD;EACrD,MAAM,CAACC,EAAD,EAAKC,EAAL,EAASC,EAAT,EAAaC,EAAb,IAAmBtN,IAAzB;EAEA,MAAMuN,iBAAA,GAAoBL,MAAA,GAAS,GAAT,KAAiB,CAA3C;EAEA,MAAMM,KAAA,GAAU,CAAAH,EAAA,GAAKF,EAAL,IAAW,EAAb,GAAmBF,QAAjC;EACA,MAAMQ,MAAA,GAAW,CAAAH,EAAA,GAAKF,EAAL,IAAW,EAAb,GAAmBH,QAAlC;EAEA,OAAO;IACLO,KAAA,EAAOD,iBAAA,GAAoBE,MAApB,GAA6BD,KAD/B;IAELC,MAAA,EAAQF,iBAAA,GAAoBC,KAApB,GAA4BC;EAF/B,CAAP;AARqD;AAyBvD,SAASC,iCAATA,CAA2CC,KAA3C,EAAkDC,KAAlD,EAAyDpP,GAAzD,EAA8D;EAa5D,IAAImP,KAAA,GAAQ,CAAZ,EAAe;IACb,OAAOA,KAAP;EADa;EA2Bf,IAAIE,GAAA,GAAMD,KAAA,CAAMD,KAAN,EAAab,GAAvB;EACA,IAAIgB,OAAA,GAAUD,GAAA,CAAInE,SAAJ,GAAgBmE,GAAA,CAAIlE,SAAlC;EAEA,IAAImE,OAAA,IAAWtP,GAAf,EAAoB;IAMlBqP,GAAA,GAAMD,KAAA,CAAMD,KAAA,GAAQ,CAAd,EAAiBb,GAAvB;IACAgB,OAAA,GAAUD,GAAA,CAAInE,SAAJ,GAAgBmE,GAAA,CAAIlE,SAA9B;EAPkB;EAkBpB,KAAK,IAAIhoB,CAAA,GAAIgsB,KAAA,GAAQ,CAAhB,EAAmBhsB,CAAA,IAAK,CAA7B,EAAgC,EAAEA,CAAlC,EAAqC;IACnCksB,GAAA,GAAMD,KAAA,CAAMjsB,CAAN,EAASmrB,GAAf;IACA,IAAIe,GAAA,CAAInE,SAAJ,GAAgBmE,GAAA,CAAIlE,SAApB,GAAgCkE,GAAA,CAAI9D,YAApC,IAAoD+D,OAAxD,EAAiE;MAI/D;IAJ+D;IAMjEH,KAAA,GAAQhsB,CAAR;EARmC;EAUrC,OAAOgsB,KAAP;AAvE4D;AA6G9D,SAASI,kBAATA,CAA4B;EAC1BC,QAD0B;EAE1BJ,KAF0B;EAG1BK,gBAAA,GAAmB,KAHO;EAI1BC,UAAA,GAAa,KAJa;EAK1BC,GAAA,GAAM;AALoB,CAA5B,EAMG;EACD,MAAM3P,GAAA,GAAMwP,QAAA,CAAS5c,SAArB;IACEgd,MAAA,GAAS5P,GAAA,GAAMwP,QAAA,CAASjE,YAD1B;EAEA,MAAMtL,IAAA,GAAOuP,QAAA,CAAS7c,UAAtB;IACE2Z,KAAA,GAAQrM,IAAA,GAAOuP,QAAA,CAAS/D,WAD1B;EAaA,SAASoE,2BAATA,CAAqCrO,IAArC,EAA2C;IACzC,MAAMqJ,OAAA,GAAUrJ,IAAA,CAAK8M,GAArB;IACA,MAAMwB,aAAA,GACJjF,OAAA,CAAQK,SAAR,GAAoBL,OAAA,CAAQM,SAA5B,GAAwCN,OAAA,CAAQU,YADlD;IAEA,OAAOuE,aAAA,GAAgB9P,GAAvB;EAJyC;EAM3C,SAAS+P,kCAATA,CAA4CvO,IAA5C,EAAkD;IAChD,MAAMqJ,OAAA,GAAUrJ,IAAA,CAAK8M,GAArB;IACA,MAAM0B,WAAA,GAAcnF,OAAA,CAAQQ,UAAR,GAAqBR,OAAA,CAAQS,UAAjD;IACA,MAAM2E,YAAA,GAAeD,WAAA,GAAcnF,OAAA,CAAQY,WAA3C;IACA,OAAOkE,GAAA,GAAMK,WAAA,GAAc1D,KAApB,GAA4B2D,YAAA,GAAehQ,IAAlD;EAJgD;EAOlD,MAAMiQ,OAAA,GAAU,EAAhB;IACEC,GAAA,GAAM,IAAIC,GAAJ,EADR;IAEEC,QAAA,GAAWjB,KAAA,CAAM/rB,MAFnB;EAGA,IAAIitB,sBAAA,GAAyBnD,qBAAA,CAC3BiC,KAD2B,EAE3BM,UAAA,GACIK,kCADJ,GAEIF,2BAJuB,CAA7B;EASA,IACES,sBAAA,GAAyB,CAAzB,IACAA,sBAAA,GAAyBD,QADzB,IAEA,CAACX,UAHH,EAIE;IAMAY,sBAAA,GAAyBpB,iCAAA,CACvBoB,sBADuB,EAEvBlB,KAFuB,EAGvBpP,GAHuB,CAAzB;EANA;EAqBF,IAAIuQ,QAAA,GAAWb,UAAA,GAAapD,KAAb,GAAqB,CAAC,CAArC;EAEA,KAAK,IAAInpB,CAAA,GAAImtB,sBAAR,EAAgCntB,CAAA,GAAIktB,QAAzC,EAAmDltB,CAAA,EAAnD,EAAwD;IACtD,MAAMqe,IAAA,GAAO4N,KAAA,CAAMjsB,CAAN,CAAb;MACE0nB,OAAA,GAAUrJ,IAAA,CAAK8M,GADjB;IAEA,MAAMkC,YAAA,GAAe3F,OAAA,CAAQQ,UAAR,GAAqBR,OAAA,CAAQS,UAAlD;IACA,MAAMmF,aAAA,GAAgB5F,OAAA,CAAQK,SAAR,GAAoBL,OAAA,CAAQM,SAAlD;IACA,MAAMuF,SAAA,GAAY7F,OAAA,CAAQY,WAA1B;MACEkF,UAAA,GAAa9F,OAAA,CAAQU,YADvB;IAEA,MAAMqF,SAAA,GAAYJ,YAAA,GAAeE,SAAjC;IACA,MAAMG,UAAA,GAAaJ,aAAA,GAAgBE,UAAnC;IAEA,IAAIJ,QAAA,KAAa,CAAC,CAAlB,EAAqB;MAKnB,IAAIM,UAAA,IAAcjB,MAAlB,EAA0B;QACxBW,QAAA,GAAWM,UAAX;MADwB;IALP,CAArB,MAQO,IAAK,CAAAnB,UAAA,GAAac,YAAb,GAA4BC,aAA5B,IAA6CF,QAAlD,EAA4D;MACjE;IADiE;IAInE,IACEM,UAAA,IAAc7Q,GAAd,IACAyQ,aAAA,IAAiBb,MADjB,IAEAgB,SAAA,IAAa3Q,IAFb,IAGAuQ,YAAA,IAAgBlE,KAJlB,EAKE;MACA;IADA;IAIF,MAAMwE,YAAA,GACJ1f,IAAA,CAAK2f,GAAL,CAAS,CAAT,EAAY/Q,GAAA,GAAMyQ,aAAlB,IAAmCrf,IAAA,CAAK2f,GAAL,CAAS,CAAT,EAAYF,UAAA,GAAajB,MAAzB,CADrC;IAEA,MAAMoB,WAAA,GACJ5f,IAAA,CAAK2f,GAAL,CAAS,CAAT,EAAY9Q,IAAA,GAAOuQ,YAAnB,IAAmCpf,IAAA,CAAK2f,GAAL,CAAS,CAAT,EAAYH,SAAA,GAAYtE,KAAxB,CADrC;IAGA,MAAM2E,cAAA,GAAkB,CAAAN,UAAA,GAAaG,YAAb,IAA6BH,UAArD;MACEO,aAAA,GAAiB,CAAAR,SAAA,GAAYM,WAAZ,IAA2BN,SAD9C;IAEA,MAAMvf,OAAA,GAAW8f,cAAA,GAAiBC,aAAjB,GAAiC,GAAlC,GAAyC,CAAzD;IAEAhB,OAAA,CAAQviB,IAAR,CAAa;MACXxG,EAAA,EAAIqa,IAAA,CAAKra,EADE;MAEXyY,CAAA,EAAG4Q,YAFQ;MAGX3Q,CAAA,EAAG4Q,aAHQ;MAIXjP,IAJW;MAKXrQ,OALW;MAMXggB,YAAA,EAAeD,aAAA,GAAgB,GAAjB,GAAwB;IAN3B,CAAb;IAQAf,GAAA,CAAI/tB,GAAJ,CAAQof,IAAA,CAAKra,EAAb;EAhDsD;EAmDxD,MAAMiqB,KAAA,GAAQlB,OAAA,CAAQ,CAAR,CAAd;IACEmB,IAAA,GAAOnB,OAAA,CAAQoB,EAAR,CAAW,CAAC,CAAZ,CADT;EAGA,IAAI7B,gBAAJ,EAAsB;IACpBS,OAAA,CAAQqB,IAAR,CAAa,UAAUxD,CAAV,EAAaC,CAAb,EAAgB;MAC3B,MAAMwD,EAAA,GAAKzD,CAAA,CAAE5c,OAAF,GAAY6c,CAAA,CAAE7c,OAAzB;MACA,IAAIC,IAAA,CAAKqT,GAAL,CAAS+M,EAAT,IAAe,KAAnB,EAA0B;QACxB,OAAO,CAACA,EAAR;MADwB;MAG1B,OAAOzD,CAAA,CAAE5mB,EAAF,GAAO6mB,CAAA,CAAE7mB,EAAhB;IAL2B,CAA7B;EADoB;EAStB,OAAO;IAAEiqB,KAAF;IAASC,IAAT;IAAejC,KAAA,EAAOc,OAAtB;IAA+BC;EAA/B,CAAP;AAnIC;AAsIH,SAASvL,4BAATA,CAAsC3a,GAAtC,EAA2C;EACzC,IAAI4Q,KAAA,GAAQzJ,IAAA,CAAKsV,KAAL,CAAWzc,GAAA,CAAIua,MAAf,EAAuBva,GAAA,CAAIka,MAA3B,CAAZ;EACA,MAAMjL,KAAA,GAAQ9H,IAAA,CAAKqgB,KAAL,CAAWxnB,GAAA,CAAIka,MAAf,EAAuBla,GAAA,CAAIua,MAA3B,CAAd;EACA,IAAI,CAAC,IAAD,GAAQpT,IAAA,CAAKsgB,EAAb,GAAkBxY,KAAlB,IAA2BA,KAAA,GAAQ,OAAO9H,IAAA,CAAKsgB,EAAnD,EAAuD;IAErD7W,KAAA,GAAQ,CAACA,KAAT;EAFqD;EAIvD,OAAOA,KAAP;AAPyC;AAU3C,SAAS8W,wBAATA,CAAkC1nB,GAAlC,EAAuC;EACrC,MAAMga,SAAA,GAAYha,GAAA,CAAIga,SAAtB;EACA,IAAIpJ,KAAA,GAAQ+J,4BAAA,CAA6B3a,GAA7B,CAAZ;EAEA,MAAM2nB,qBAAA,GAAwB,EAA9B;EACA,MAAMC,oBAAA,GAAuB,EAA7B;EAGA,IAAI5N,SAAA,KAAcK,UAAA,CAAWC,eAA7B,EAA8C;IAC5C1J,KAAA,IAAS+W,qBAAA,GAAwBC,oBAAjC;EAD4C,CAA9C,MAEO,IAAI5N,SAAA,KAAcK,UAAA,CAAWO,cAA7B,EAA6C;IAClDhK,KAAA,IAASgX,oBAAT;EADkD;EAGpD,OAAOhX,KAAP;AAbqC;AAgBvC,SAAS1B,eAATA,CAAyBD,KAAzB,EAAgC;EAC9B,OAAO4Y,MAAA,CAAOC,SAAP,CAAiB7Y,KAAjB,KAA2BA,KAAA,GAAQ,EAAR,KAAe,CAAjD;AAD8B;AAIhC,SAASM,iBAATA,CAA2B+H,IAA3B,EAAiC;EAC/B,OACEuQ,MAAA,CAAOC,SAAP,CAAiBxQ,IAAjB,KACA5iB,MAAA,CAAOmE,MAAP,CAAcmQ,UAAd,EAA0BlQ,QAA1B,CAAmCwe,IAAnC,CADA,IAEAA,IAAA,KAAStO,UAAA,CAAW7Y,OAHtB;AAD+B;AAQjC,SAASqf,iBAATA,CAA2B8H,IAA3B,EAAiC;EAC/B,OACEuQ,MAAA,CAAOC,SAAP,CAAiBxQ,IAAjB,KACA5iB,MAAA,CAAOmE,MAAP,CAAcqQ,UAAd,EAA0BpQ,QAA1B,CAAmCwe,IAAnC,CADA,IAEAA,IAAA,KAASpO,UAAA,CAAW/Y,OAHtB;AAD+B;AAQjC,SAAS43B,qBAATA,CAA+BzkB,IAA/B,EAAqC;EACnC,OAAOA,IAAA,CAAKyhB,KAAL,IAAczhB,IAAA,CAAK0hB,MAA1B;AADmC;AAOrC,MAAM1b,gBAAA,GAAmB,IAAIxX,OAAJ,CAAY,UAAUC,OAAV,EAAmB;EAWtDqC,MAAA,CAAO6tB,qBAAP,CAA6BlwB,OAA7B;AAXsD,CAA/B,CAAzB;AAnpBAlF,wBAAA,GAAAyc,gBAAA;AAiqBA,MAAM0e,QAAA,GAKA/1B,QAAA,CAAS0E,eAAT,CAAyBsxB,KAL/B;AAjqBAp7B,gBAAA,GAAAm7B,QAAA;AAwqBA,SAASE,KAATA,CAAeC,CAAf,EAAkBC,GAAlB,EAAuBtB,GAAvB,EAA4B;EAC1B,OAAO3f,IAAA,CAAKihB,GAAL,CAASjhB,IAAA,CAAK2f,GAAL,CAASqB,CAAT,EAAYC,GAAZ,CAAT,EAA2BtB,GAA3B,CAAP;AAD0B;AAI5B,MAAMvkB,WAAN,CAAkB;EAChB,CAAArK,SAAA,GAAa,IAAb;EAEA,CAAAmwB,uBAAA,GAA2B,IAA3B;EAEA,CAAAnhB,OAAA,GAAW,CAAX;EAEA,CAAA+gB,KAAA,GAAS,IAAT;EAEA,CAAAhC,OAAA,GAAW,IAAX;EAEAv1B,YAAY4R,GAAZ,EAAiB;IACf,KAAK,CAAApK,SAAL,GAAkBoK,GAAA,CAAIpK,SAAtB;IACA,KAAK,CAAA+vB,KAAL,GAAc3lB,GAAA,CAAI2lB,KAAlB;EAFe;EAKjB,IAAI/gB,OAAJA,CAAA,EAAc;IACZ,OAAO,KAAK,CAAAA,OAAZ;EADY;EAId,IAAIA,OAAJA,CAAYlF,GAAZ,EAAiB;IACf,KAAK,CAAAkF,OAAL,GAAgBghB,KAAA,CAAMlmB,GAAN,EAAW,CAAX,EAAc,GAAd,CAAhB;IAEA,IAAIsmB,KAAA,CAAMtmB,GAAN,CAAJ,EAAgB;MACd,KAAK,CAAA9J,SAAL,CAAgBC,GAAhB,CAAoB,eAApB;MACA;IAFc;IAIhB,KAAK,CAAAD,SAAL,CAAgB8E,MAAhB,CAAuB,eAAvB;IAEA,KAAK,CAAAirB,KAAL,CAAYM,WAAZ,CAAwB,uBAAxB,EAAiD,GAAG,KAAK,CAAArhB,OAAS,GAAlE;EATe;EAYjBkC,SAASpO,MAAT,EAAiB;IACf,IAAI,CAACA,MAAL,EAAa;MACX;IADW;IAGb,MAAMD,SAAA,GAAYC,MAAA,CAAOwtB,UAAzB;IACA,MAAMC,cAAA,GAAiB1tB,SAAA,CAAU2tB,WAAV,GAAwB1tB,MAAA,CAAO0tB,WAAtD;IACA,IAAID,cAAA,GAAiB,CAArB,EAAwB;MACtB,KAAK,CAAAR,KAAL,CAAYM,WAAZ,CACE,0BADF,EAEE,GAAGE,cAAe,IAFpB;IADsB;EANT;EAcjBlhB,oBAAoBohB,KAAA,GAAmB,IAAvC,EAA6C;IAC3C,IAAIL,KAAA,CAAM,KAAK,CAAAphB,OAAX,CAAJ,EAA0B;MACxB;IADwB;IAG1B,IAAI,KAAK,CAAAmhB,uBAAT,EAAmC;MACjCtO,YAAA,CAAa,KAAK,CAAAsO,uBAAlB;IADiC;IAGnC,KAAKO,IAAL;IAEA,KAAK,CAAAP,uBAAL,GAAgC7d,UAAA,CAAW,MAAM;MAC/C,KAAK,CAAA6d,uBAAL,GAAgC,IAAhC;MACA,KAAK5gB,IAAL;IAF+C,CAAjB,EAG7BkhB,KAH6B,CAAhC;EAT2C;EAe7ClhB,KAAA,EAAO;IACL,IAAI,CAAC,KAAK,CAAAwe,OAAV,EAAoB;MAClB;IADkB;IAGpB,KAAK,CAAAA,OAAL,GAAgB,KAAhB;IACA,KAAK,CAAA/tB,SAAL,CAAgBC,GAAhB,CAAoB,QAApB;EALK;EAQPywB,KAAA,EAAO;IACL,IAAI,KAAK,CAAA3C,OAAT,EAAmB;MACjB;IADiB;IAGnB,KAAK,CAAAA,OAAL,GAAgB,IAAhB;IACA,KAAK,CAAA/tB,SAAL,CAAgB8E,MAAhB,CAAuB,QAAvB;EALK;AArES;AA5qBlBnQ,mBAAA,GAAA0V,WAAA;AAkwBA,SAASub,yBAATA,CAAA,EAAqC;EACnC,IAAI+K,OAAA,GAAU52B,QAAd;EACA,IAAI62B,kBAAA,GACFD,OAAA,CAAQE,aAAR,IAAyBF,OAAA,CAAQG,aAAR,CAAsB,QAAtB,CAD3B;EAGA,OAAOF,kBAAA,EAAoBG,UAA3B,EAAuC;IACrCJ,OAAA,GAAUC,kBAAA,CAAmBG,UAA7B;IACAH,kBAAA,GACED,OAAA,CAAQE,aAAR,IAAyBF,OAAA,CAAQG,aAAR,CAAsB,QAAtB,CAD3B;EAFqC;EAMvC,OAAOF,kBAAP;AAXmC;AAmBrC,SAAS1e,0BAATA,CAAoCmG,MAApC,EAA4C;EAC1C,IAAIxH,UAAA,GAAaC,UAAA,CAAW+W,QAA5B;IACE9W,UAAA,GAAaC,UAAA,CAAW9S,IAD1B;EAGA,QAAQma,MAAR;IACE,KAAK,YAAL;MACExH,UAAA,GAAaC,UAAA,CAAWkX,IAAxB;MACA;IACF,KAAK,WAAL;MACE;IACF,KAAK,aAAL;MACEnX,UAAA,GAAaC,UAAA,CAAWkX,IAAxB;IAEF,KAAK,eAAL;MACEjX,UAAA,GAAaC,UAAA,CAAWiX,GAAxB;MACA;IACF,KAAK,cAAL;MACEpX,UAAA,GAAaC,UAAA,CAAWkX,IAAxB;IAEF,KAAK,gBAAL;MACEjX,UAAA,GAAaC,UAAA,CAAWkX,IAAxB;MACA;EAjBJ;EAmBA,OAAO;IAAErX,UAAF;IAAcE;EAAd,CAAP;AAvB0C;AAkC5C,SAASiB,wBAATA,CAAkCoN,IAAlC,EAAwC;EACtC,QAAQA,IAAR;IACE,KAAK,SAAL;MACE,OAAOxO,WAAA,CAAY1S,IAAnB;IACF,KAAK,WAAL;MACE,OAAO0S,WAAA,CAAY8G,MAAnB;IACF,KAAK,aAAL;MACE,OAAO9G,WAAA,CAAY0O,OAAnB;IACF,KAAK,gBAAL;MACE,OAAO1O,WAAA,CAAY2O,WAAnB;IACF,KAAK,OAAL;MACE,OAAO3O,WAAA,CAAY4O,MAAnB;EAVJ;EAYA,OAAO5O,WAAA,CAAY1S,IAAnB;AAbsC;AAgBxC,SAAS8yB,gBAATA,CAA0BC,MAA1B,EAAkCtR,MAAlC,EAA0CN,IAAA,GAAO,IAAjD,EAAuD;EACrD4R,MAAA,CAAOjxB,SAAP,CAAiB2f,MAAjB,CAAwB,SAAxB,EAAmCA,MAAnC;EACAsR,MAAA,CAAOC,YAAP,CAAoB,cAApB,EAAoCvR,MAApC;EAEAN,IAAA,EAAMrf,SAAN,CAAgB2f,MAAhB,CAAuB,QAAvB,EAAiC,CAACA,MAAlC;AAJqD;AAOvD,SAASwR,iBAATA,CAA2BF,MAA3B,EAAmCtR,MAAnC,EAA2CN,IAAA,GAAO,IAAlD,EAAwD;EACtD4R,MAAA,CAAOjxB,SAAP,CAAiB2f,MAAjB,CAAwB,SAAxB,EAAmCA,MAAnC;EACAsR,MAAA,CAAOC,YAAP,CAAoB,eAApB,EAAqCvR,MAArC;EAEAN,IAAA,EAAMrf,SAAN,CAAgB2f,MAAhB,CAAuB,QAAvB,EAAiC,CAACA,MAAlC;AAJsD;;;;;;AC9zB3C;;AAEbyR,MAAA,CAAOz8B,OAAP,GAAiBoqB,UAAA,CAAWsS,QAA5B;;;;;;;;;;;;ACHA,MAAMC,mBAAA,GAAsB90B,MAAA,CAAOC,MAAP,CAAc,IAAd,CAA5B;AAfA9H,2BAAA,GAAA28B,mBAAA;AAgBiE;EAQ/D,MAAMC,SAAA,GAAYC,SAAA,CAAUD,SAAV,IAAuB,EAAzC;EACA,MAAME,QAAA,GAAWD,SAAA,CAAUC,QAAV,IAAsB,EAAvC;EACA,MAAMC,cAAA,GAAiBF,SAAA,CAAUE,cAAV,IAA4B,CAAnD;EAEA,MAAMC,SAAA,GAAY,UAAUvd,IAAV,CAAemd,SAAf,CAAlB;EACA,MAAMK,KAAA,GACJ,4BAA4Bxd,IAA5B,CAAiCmd,SAAjC,KACCE,QAAA,KAAa,UAAb,IAA2BC,cAAA,GAAiB,CAF/C;EAMC,UAASG,yBAATA,CAAA,EAAqC;IACpC,IAAID,KAAA,IAASD,SAAb,EAAwB;MACtBL,mBAAA,CAAoBrtB,eAApB,GAAsC,OAAtC;IADsB;EADY,CAAtC;AAnB+D;AA0BjE,MAAMmI,UAAA,GAAa;EACjB0lB,MAAA,EAAQ,IADS;EAEjBplB,GAAA,EAAK,IAFY;EAGjBL,MAAA,EAAQ,IAHS;EAIjB0lB,UAAA,EAAY;AAJK,CAAnB;AA1CAp9B,kBAAA,GAAAyX,UAAA;AAsDA,MAAM4lB,cAAA,GAAiB;EACrBjvB,oBAAA,EAAsB;IAEpB6E,KAAA,EAAO,CAFa;IAGpBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHjB,CADD;EAMrBjuB,cAAA,EAAgB;IAEd8D,KAAA,EAAO,CAFO;IAGdqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHvB,CANK;EAWrBxsB,gBAAA,EAAkB;IAEhBqC,KAAA,EAAO,CAFS;IAGhBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHrB,CAXG;EAgBrBG,gBAAA,EAAkB;IAEhBtqB,KAAA,EAAO,GAFS;IAGhBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHrB,CAhBG;EAqBrBI,gBAAA,EAAkB;IAEhBvqB,KAAA,EAAO,EAFS;IAGhBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHrB,CArBG;EA0BrBK,cAAA,EAAgB;IAEdxqB,KAAA,EAAO,KAFO;IAGdqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EAHH,CA1BK;EA+BrBO,iBAAA,EAAmB;IAEjBzqB,KAAA,EAAO,KAFU;IAGjBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHpB,CA/BE;EAoCrB7tB,iBAAA,EAAmB;IAEjB0D,KAAA,EAAO,KAFU;IAGjBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHpB,CApCE;EAyCrB/tB,qBAAA,EAAuB;IAErB4D,KAAA,EAAO,IAFc;IAGrBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHhB,CAzCF;EA8CrBne,eAAA,EAAiB;IAEfhM,KAAA,EAA0C,IAF3B;IAGfqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHtB,CA9CI;EAmDrBO,iBAAA,EAAmB;IAKjB1qB,KAAA,EAAO,IALU;IAMjBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EANpB,CAnDE;EA2DrB3vB,eAAA,EAAiB;IAEfwF,KAAA,EAAO,8BAFQ;IAGfqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EAHF,CA3DI;EAgErB3vB,kBAAA,EAAoB;IAElByF,KAAA,EAAO,CAFW;IAGlBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHnB,CAhEC;EAqErBQ,gBAAA,EAAkB;IAEhB3qB,KAAA,EAAO,KAFS;IAGhBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHrB,CArEG;EA0ErB1vB,qBAAA,EAAuB;IAErBuF,KAAA,EAAO,KAFc;IAGrBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHhB,CA1EF;EA+ErBhuB,kBAAA,EAAoB;IAElB6D,KAAA,EAGM,WALY;IAMlBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EANC,CA/EC;EAuFrB7tB,eAAA,EAAiB;IAEf2D,KAAA,EAAO,QAFQ;IAGfqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EAHF,CAvFI;EA4FrBU,eAAA,EAAiB;IAEf5qB,KAAA,EAAO,KAFQ;IAGfqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHtB,CA5FI;EAiGrBU,oBAAA,EAAsB;IAEpB7qB,KAAA,EAAO,QAFa;IAGpBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHjB,CAjGD;EAsGrBW,oBAAA,EAAsB;IAEpB9qB,KAAA,EAAO,YAFa;IAGpBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHjB,CAtGD;EA2GrBY,aAAA,EAAe;IAEb/qB,KAAA,EAAO,KAFM;IAGbqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHxB,CA3GM;EAgHrB5Z,eAAA,EAAiB;IAEfvQ,KAAA,EAAO,GAFQ;IAGfqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EAHF,CAhHI;EAqHrBc,iBAAA,EAAmB;IAEjBhrB,KAAA,EAAO,CAAC,CAFS;IAGjBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHpB,CArHE;EA0HrBc,gBAAA,EAAkB;IAEhBjrB,KAAA,EAAO,CAAC,CAFQ;IAGhBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHrB,CA1HG;EA+HrBe,gBAAA,EAAkB;IAEhBlrB,KAAA,EAAO,CAAC,CAFQ;IAGhBqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHrB,CA/HG;EAoIrBluB,aAAA,EAAe;IAEb+D,KAAA,EAAO,CAFM;IAGbqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHxB,CApIM;EAyIrBgB,cAAA,EAAgB;IAEdnrB,KAAA,EAAwE,CAF1D;IAGdqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAHvB,CAzIK;EA8IrBrgB,UAAA,EAAY;IAEV9J,KAAA,EAAO,CAFG;IAGVqqB,IAAA,EAAM7lB,UAAA,CAAW0lB,MAAX,GAAoB1lB,UAAA,CAAW2lB;EAH3B,CA9IS;EAoJrBiB,UAAA,EAAY;IAEVprB,KAAA,EAAO,IAFG;IAGVqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHP,CApJS;EAyJrBumB,OAAA,EAAS;IAEPrrB,KAAA,EAMM,eARC;IASPqqB,IAAA,EAAM7lB,UAAA,CAAWM;EATV,CAzJY;EAoKrB0C,gBAAA,EAAkB;IAEhBxH,KAAA,EAAO,KAFS;IAGhBqqB,IAAA,EAAM7lB,UAAA,CAAWM,GAAX,GAAiBN,UAAA,CAAW2lB;EAHlB,CApKG;EAyKrBmB,eAAA,EAAiB;IAEftrB,KAAA,EAAO,KAFQ;IAGfqqB,IAAA,EAAM7lB,UAAA,CAAWM,GAAX,GAAiBN,UAAA,CAAW2lB;EAHnB,CAzKI;EA8KrBoB,YAAA,EAAc;IAEZvrB,KAAA,EAAO,KAFK;IAGZqqB,IAAA,EAAM7lB,UAAA,CAAWM,GAAX,GAAiBN,UAAA,CAAW2lB;EAHtB,CA9KO;EAmLrBqB,aAAA,EAAe;IAEbxrB,KAAA,EAAO,KAFM;IAGbqqB,IAAA,EAAM7lB,UAAA,CAAWM,GAAX,GAAiBN,UAAA,CAAW2lB;EAHrB,CAnLM;EAwLrBsB,UAAA,EAAY;IAEVzrB,KAAA,EAAO,EAFG;IAGVqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHP,CAxLS;EA6LrB2I,SAAA,EAAW;IAETzN,KAAA,EAAO,IAFE;IAGTqqB,IAAA,EAAM7lB,UAAA,CAAWM,GAAX,GAAiBN,UAAA,CAAW2lB;EAHzB,CA7LU;EAkMrBuB,mBAAA,EAAqB;IAEnB1rB,KAAA,EAAO,KAFY;IAGnBqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHE,CAlMA;EAuMrB6mB,eAAA,EAAiB;IAEf3rB,KAAA,EAAO,IAFQ;IAGfqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHF,CAvMI;EA4MrB1J,0BAAA,EAA4B;IAE1B4E,KAAA,EAAO,IAFmB;IAG1BqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHS,CA5MP;EAiNrB8mB,YAAA,EAAc;IAEZ5rB,KAAA,EAAO,CAAC,CAFI;IAGZqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHL,CAjNO;EAsNrB+mB,MAAA,EAAQ;IAEN7rB,KAAA,EAAO,KAFD;IAGNqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHX,CAtNa;EA2NrBgnB,mBAAA,EAAqB;IAEnB9rB,KAAA,EAMM,wBARa;IASnBqqB,IAAA,EAAM7lB,UAAA,CAAWM;EATE,CA3NA;EAsOrBinB,SAAA,EAAW;IAET/rB,KAAA,EAAO,CAFE;IAGTqqB,IAAA,EAAM7lB,UAAA,CAAWM;EAHR,CAtOU;EA4OrBknB,UAAA,EAAY;IAEVhsB,KAAA,EAAO,IAFG;IAGVqqB,IAAA,EAAM7lB,UAAA,CAAWC;EAHP,CA5OS;EAiPrBmS,SAAA,EAAW;IAET5W,KAAA,EAMM,wBARG;IASTqqB,IAAA,EAAM7lB,UAAA,CAAWC;EATR;AAjPU,CAAvB;AA6PiE;EAC/D2lB,cAAA,CAAe6B,UAAf,GAA4B;IAE1BjsB,KAAA,EAAO,oCAFmB;IAG1BqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EAHS,CAA5B;EAKAE,cAAA,CAAe8B,kBAAf,GAAoC;IAElClsB,KAAA,EAA0C,KAFR;IAGlCqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EAHiB,CAApC;EAKAE,cAAA,CAAen8B,MAAf,GAAwB;IAEtB+R,KAAA,EAAO4pB,SAAA,CAAUuC,QAAV,IAAsB,OAFP;IAGtB9B,IAAA,EAAM7lB,UAAA,CAAW0lB;EAHK,CAAxB;EAKAE,cAAA,CAAeh8B,gBAAf,GAAkC;IAEhC4R,KAAA,EAGM,yBAL0B;IAMhCqqB,IAAA,EAAM7lB,UAAA,CAAW0lB;EANe,CAAlC;AAhB+D;AA0CjE,MAAMkC,WAAA,GAAcx3B,MAAA,CAAOC,MAAP,CAAc,IAAd,CAApB;AAEA,MAAMsB,UAAN,CAAiB;EACfvF,YAAA,EAAc;IACZ,MAAM,IAAIC,KAAJ,CAAU,+BAAV,CAAN;EADY;EAId,OAAOuF,GAAPA,CAAWgW,IAAX,EAAiB;IACf,MAAMigB,UAAA,GAAaD,WAAA,CAAYhgB,IAAZ,CAAnB;IACA,IAAIigB,UAAA,KAAe5mB,SAAnB,EAA8B;MAC5B,OAAO4mB,UAAP;IAD4B;IAG9B,MAAMC,aAAA,GAAgBlC,cAAA,CAAehe,IAAf,CAAtB;IACA,IAAIkgB,aAAA,KAAkB7mB,SAAtB,EAAiC;MAC/B,OAAOikB,mBAAA,CAAoBtd,IAApB,KAA6BkgB,aAAA,CAActsB,KAAlD;IAD+B;IAGjC,OAAOyF,SAAP;EATe;EAYjB,OAAOlO,MAAPA,CAAc8yB,IAAA,GAAO,IAArB,EAA2B;IACzB,MAAMj5B,OAAA,GAAUwD,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAhB;IACA,WAAWuX,IAAX,IAAmBge,cAAnB,EAAmC;MACjC,MAAMkC,aAAA,GAAgBlC,cAAA,CAAehe,IAAf,CAAtB;MACA,IAAIie,IAAJ,EAAU;QACR,IAAK,CAAAA,IAAA,GAAOiC,aAAA,CAAcjC,IAArB,MAA+B,CAApC,EAAuC;UACrC;QADqC;QAGvC,IAAIA,IAAA,KAAS7lB,UAAA,CAAW2lB,UAAxB,EAAoC;UAClC,MAAMnqB,KAAA,GAAQssB,aAAA,CAActsB,KAA5B;YACEusB,SAAA,GAAY,OAAOvsB,KADrB;UAGA,IACEusB,SAAA,KAAc,SAAd,IACAA,SAAA,KAAc,QADd,IAECA,SAAA,KAAc,QAAd,IAA0BxE,MAAA,CAAOC,SAAP,CAAiBhoB,KAAjB,CAH7B,EAIE;YACA5O,OAAA,CAAQgb,IAAR,IAAgBpM,KAAhB;YACA;UAFA;UAIF,MAAM,IAAInP,KAAJ,CAAW,gCAA+Bub,IAAhC,EAAV,CAAN;QAZkC;MAJ5B;MAmBV,MAAMigB,UAAA,GAAaD,WAAA,CAAYhgB,IAAZ,CAAnB;MACAhb,OAAA,CAAQgb,IAAR,IACEigB,UAAA,KAAe5mB,SAAf,GACI4mB,UADJ,GAEI3C,mBAAA,CAAoBtd,IAApB,KAA6BkgB,aAAA,CAActsB,KAHjD;IAtBiC;IA2BnC,OAAO5O,OAAP;EA7ByB;EAgC3B,OAAOmF,GAAPA,CAAW6V,IAAX,EAAiBpM,KAAjB,EAAwB;IACtBosB,WAAA,CAAYhgB,IAAZ,IAAoBpM,KAApB;EADsB;EAIxB,OAAO1I,MAAPA,CAAclG,OAAd,EAAuB;IACrB,WAAWgb,IAAX,IAAmBhb,OAAnB,EAA4B;MAC1Bg7B,WAAA,CAAYhgB,IAAZ,IAAoBhb,OAAA,CAAQgb,IAAR,CAApB;IAD0B;EADP;EAMvB,OAAOlP,MAAPA,CAAckP,IAAd,EAAoB;IAClB,OAAOggB,WAAA,CAAYhgB,IAAZ,CAAP;EADkB;AA3DL;AA/VjBrf,kBAAA,GAAAoJ,UAAA;AA+ZiE;EAC/DA,UAAA,CAAWgB,eAAX,GAA6B,YAAY;IACvC,OAAOvC,MAAA,CAAO43B,IAAP,CAAYJ,WAAZ,EAAyB9yB,MAAzB,GAAkC,CAAzC;EADuC,CAAzC;AAD+D;;;;;;;;;;;;;AChZjE,MAAMmzB,UAAA,GAAa;EACjBC,KAAA,EAAO,OADU;EAEjBC,OAAA,EAAS;AAFQ,CAAnB;AAfA5/B,kBAAA,GAAA0/B,UAAA;AAqCA,SAASG,oBAATA,CAA8B;EAAExsB,MAAF;EAAUgM,IAAV;EAAgByc,KAAA,GAAQ;AAAxB,CAA9B,EAA2D;EACzD,OAAO,IAAI72B,OAAJ,CAAY,UAAUC,OAAV,EAAmB46B,MAAnB,EAA2B;IAC5C,IACE,OAAOzsB,MAAP,KAAkB,QAAlB,IACA,EAAEgM,IAAA,IAAQ,OAAOA,IAAP,KAAgB,QAAxB,CADF,IAEA,EAAE2b,MAAA,CAAOC,SAAP,CAAiBa,KAAjB,KAA2BA,KAAA,IAAS,CAApC,CAHJ,EAIE;MACA,MAAM,IAAIh4B,KAAJ,CAAU,4CAAV,CAAN;IADA;IAIF,SAASi8B,OAATA,CAAiBzmB,IAAjB,EAAuB;MACrB,IAAIjG,MAAA,YAAkBpG,QAAtB,EAAgC;QAC9BoG,MAAA,CAAO4U,IAAP,CAAY5I,IAAZ,EAAkB2gB,YAAlB;MAD8B,CAAhC,MAEO;QACL3sB,MAAA,CAAO0O,mBAAP,CAA2B1C,IAA3B,EAAiC2gB,YAAjC;MADK;MAIP,IAAIC,OAAJ,EAAa;QACX/S,YAAA,CAAa+S,OAAb;MADW;MAGb/6B,OAAA,CAAQoU,IAAR;IAVqB;IAavB,MAAM0mB,YAAA,GAAeD,OAAA,CAAQzyB,IAAR,CAAa,IAAb,EAAmBoyB,UAAA,CAAWC,KAA9B,CAArB;IACA,IAAItsB,MAAA,YAAkBpG,QAAtB,EAAgC;MAC9BoG,MAAA,CAAOoL,GAAP,CAAWY,IAAX,EAAiB2gB,YAAjB;IAD8B,CAAhC,MAEO;MACL3sB,MAAA,CAAOH,gBAAP,CAAwBmM,IAAxB,EAA8B2gB,YAA9B;IADK;IAIP,MAAME,cAAA,GAAiBH,OAAA,CAAQzyB,IAAR,CAAa,IAAb,EAAmBoyB,UAAA,CAAWE,OAA9B,CAAvB;IACA,MAAMK,OAAA,GAAUtiB,UAAA,CAAWuiB,cAAX,EAA2BpE,KAA3B,CAAhB;EA9B4C,CAAvC,CAAP;AADyD;AAuC3D,MAAM7uB,QAAN,CAAe;EACb,CAAAkzB,SAAA,GAAat4B,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAb;EAOAs4B,GAAGC,SAAH,EAAcC,QAAd,EAAwBj8B,OAAA,GAAU,IAAlC,EAAwC;IACtC,KAAKoa,GAAL,CAAS4hB,SAAT,EAAoBC,QAApB,EAA8B;MAC5BC,QAAA,EAAU,IADkB;MAE5B7hB,IAAA,EAAMra,OAAA,EAASqa;IAFa,CAA9B;EADsC;EAYxC8hB,IAAIH,SAAJ,EAAeC,QAAf,EAAyBj8B,OAAA,GAAU,IAAnC,EAAyC;IACvC,KAAK4jB,IAAL,CAAUoY,SAAV,EAAqBC,QAArB,EAA+B;MAC7BC,QAAA,EAAU,IADmB;MAE7B7hB,IAAA,EAAMra,OAAA,EAASqa;IAFc,CAA/B;EADuC;EAWzCzU,SAASo2B,SAAT,EAAoBr8B,IAApB,EAA0B;IACxB,MAAMy8B,cAAA,GAAiB,KAAK,CAAAN,SAAL,CAAgBE,SAAhB,CAAvB;IACA,IAAI,CAACI,cAAD,IAAmBA,cAAA,CAAel0B,MAAf,KAA0B,CAAjD,EAAoD;MAClD;IADkD;IAGpD,IAAIm0B,iBAAJ;IAGA,WAAW;MAAEJ,QAAF;MAAYC,QAAZ;MAAsB7hB;IAAtB,CAAX,IAA2C+hB,cAAA,CAAeE,KAAf,CAAqB,CAArB,CAA3C,EAAoE;MAClE,IAAIjiB,IAAJ,EAAU;QACR,KAAKuJ,IAAL,CAAUoY,SAAV,EAAqBC,QAArB;MADQ;MAGV,IAAIC,QAAJ,EAAc;QACX,CAAAG,iBAAA,KAAsB,EAAtB,EAA0B7pB,IAA3B,CAAgCypB,QAAhC;QACA;MAFY;MAIdA,QAAA,CAASt8B,IAAT;IARkE;IAYpE,IAAI08B,iBAAJ,EAAuB;MACrB,WAAWJ,QAAX,IAAuBI,iBAAvB,EAA0C;QACxCJ,QAAA,CAASt8B,IAAT;MADwC;MAG1C08B,iBAAA,GAAoB,IAApB;IAJqB;EApBC;EA+B1BjiB,IAAI4hB,SAAJ,EAAeC,QAAf,EAAyBj8B,OAAA,GAAU,IAAnC,EAAyC;IACvC,MAAMo8B,cAAA,GAAkB,KAAK,CAAAN,SAAL,CAAgBE,SAAhB,MAA+B,EAAvD;IACAI,cAAA,CAAe5pB,IAAf,CAAoB;MAClBypB,QADkB;MAElBC,QAAA,EAAUl8B,OAAA,EAASk8B,QAAT,KAAsB,IAFd;MAGlB7hB,IAAA,EAAMra,OAAA,EAASqa,IAAT,KAAkB;IAHN,CAApB;EAFuC;EAYzCuJ,KAAKoY,SAAL,EAAgBC,QAAhB,EAA0Bj8B,OAAA,GAAU,IAApC,EAA0C;IACxC,MAAMo8B,cAAA,GAAiB,KAAK,CAAAN,SAAL,CAAgBE,SAAhB,CAAvB;IACA,IAAI,CAACI,cAAL,EAAqB;MACnB;IADmB;IAGrB,KAAK,IAAIp0B,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAKm0B,cAAA,CAAel0B,MAA/B,EAAuCF,CAAA,GAAIC,EAAhD,EAAoDD,CAAA,EAApD,EAAyD;MACvD,IAAIo0B,cAAA,CAAep0B,CAAf,EAAkBi0B,QAAlB,KAA+BA,QAAnC,EAA6C;QAC3CG,cAAA,CAAeG,MAAf,CAAsBv0B,CAAtB,EAAyB,CAAzB;QACA;MAF2C;IADU;EALjB;AA1E7B;AA5EfrM,gBAAA,GAAAiN,QAAA;AAuKA,MAAMD,kBAAN,SAAiCC,QAAjC,CAA0C;EACxChD,SAASo2B,SAAT,EAAoBr8B,IAApB,EAA0B;IAEtB,MAAM,IAAIF,KAAJ,CAAU,8CAAV,CAAN;EAFsB;AADc;AAvK1C9D,0BAAA,GAAAgN,kBAAA;;;;;;;;;;;;ACkBA,IAAAvL,SAAA,GAAA/B,mBAAA;AAEA,MAAMmhC,gBAAA,GAAmB,8BAAzB;AAEA,MAAMv3B,UAAA,GAAa;EACjBC,IAAA,EAAM,CADW;EAEjBu3B,IAAA,EAAM,CAFW;EAGjBC,KAAA,EAAO,CAHU;EAIjBC,MAAA,EAAQ,CAJS;EAKjBv3B,GAAA,EAAK;AALY,CAAnB;AAtBAzJ,kBAAA,GAAAsJ,UAAA;AA8CA,SAAS23B,iBAATA,CAA2BC,IAA3B,EAAiC;EAAEz5B,GAAF;EAAO4L,MAAP;EAAe8tB,GAAf;EAAoB11B,OAAA,GAAU;AAA9B,IAAuC,EAAxE,EAA4E;EAC1E,IAAI,CAAChE,GAAD,IAAQ,OAAOA,GAAP,KAAe,QAA3B,EAAqC;IACnC,MAAM,IAAI3D,KAAJ,CAAU,wCAAV,CAAN;EADmC;EAIrC,IAAI2H,OAAJ,EAAa;IACXy1B,IAAA,CAAKxX,IAAL,GAAYwX,IAAA,CAAKv4B,KAAL,GAAalB,GAAzB;EADW,CAAb,MAEO;IACLy5B,IAAA,CAAKxX,IAAL,GAAY,EAAZ;IACAwX,IAAA,CAAKv4B,KAAL,GAAc,aAAYlB,GAAb,EAAb;IACAy5B,IAAA,CAAKE,OAAL,GAAe,MAAM;MACnB,OAAO,KAAP;IADmB,CAArB;EAHK;EAQP,IAAIC,SAAA,GAAY,EAAhB;EACA,QAAQhuB,MAAR;IACE,KAAK/J,UAAA,CAAWC,IAAhB;MACE;IACF,KAAKD,UAAA,CAAWw3B,IAAhB;MACEO,SAAA,GAAY,OAAZ;MACA;IACF,KAAK/3B,UAAA,CAAWy3B,KAAhB;MACEM,SAAA,GAAY,QAAZ;MACA;IACF,KAAK/3B,UAAA,CAAW03B,MAAhB;MACEK,SAAA,GAAY,SAAZ;MACA;IACF,KAAK/3B,UAAA,CAAWG,GAAhB;MACE43B,SAAA,GAAY,MAAZ;MACA;EAdJ;EAgBAH,IAAA,CAAK7tB,MAAL,GAAcguB,SAAd;EAEAH,IAAA,CAAKC,GAAL,GAAW,OAAOA,GAAP,KAAe,QAAf,GAA0BA,GAA1B,GAAgCN,gBAA3C;AAlC0E;AAuD5E,MAAMtzB,cAAN,CAAqB;EACnB,CAAA+zB,aAAA,GAAiB,IAAIzL,GAAJ,EAAjB;EAKAhyB,YAAY;IACVoD,QADU;IAEVuG,kBAAA,GAAqB,IAFX;IAGVC,eAAA,GAAkB,IAHR;IAIVC,qBAAA,GAAwB;EAJd,IAKR,EALJ,EAKQ;IACN,KAAKzG,QAAL,GAAgBA,QAAhB;IACA,KAAKuG,kBAAL,GAA0BA,kBAA1B;IACA,KAAKC,eAAL,GAAuBA,eAAvB;IACA,KAAKuJ,mBAAL,GAA2B,IAA3B;IACA,KAAKuqB,sBAAL,GAA8B7zB,qBAA9B;IAEA,KAAKhG,OAAL,GAAe,IAAf;IACA,KAAK/B,WAAL,GAAmB,IAAnB;IACA,KAAKG,SAAL,GAAiB,IAAjB;IACA,KAAKM,UAAL,GAAkB,IAAlB;EAVM;EAaR2Q,YAAYpR,WAAZ,EAAyB+B,OAAA,GAAU,IAAnC,EAAyC;IACvC,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAK/B,WAAL,GAAmBA,WAAnB;IACA,KAAK,CAAA27B,aAAL,CAAoBE,KAApB;EAHuC;EAMzChyB,UAAU1J,SAAV,EAAqB;IACnB,KAAKA,SAAL,GAAiBA,SAAjB;EADmB;EAIrBgK,WAAW1J,UAAX,EAAuB;IACrB,KAAKA,UAAL,GAAkBA,UAAlB;EADqB;EAOvB,IAAI4O,UAAJA,CAAA,EAAiB;IACf,OAAO,KAAKrP,WAAL,GAAmB,KAAKA,WAAL,CAAiBsP,QAApC,GAA+C,CAAtD;EADe;EAOjB,IAAIC,IAAJA,CAAA,EAAW;IACT,OAAO,KAAKpP,SAAL,CAAe0M,iBAAtB;EADS;EAOX,IAAI0C,IAAJA,CAASjC,KAAT,EAAgB;IACd,KAAKnN,SAAL,CAAe0M,iBAAf,GAAmCS,KAAnC;EADc;EAOhB,IAAI8I,QAAJA,CAAA,EAAe;IACb,OAAO,KAAKjW,SAAL,CAAewc,aAAtB;EADa;EAOf,IAAIvG,QAAJA,CAAa9I,KAAb,EAAoB;IAClB,KAAKnN,SAAL,CAAewc,aAAf,GAA+BrP,KAA/B;EADkB;EAOpB,IAAIuB,oBAAJA,CAAA,EAA2B;IACzB,OAAO,KAAK1O,SAAL,CAAe0O,oBAAtB;EADyB;EAI3B,CAAAitB,sBAAuBC,OAAvB,EAAgCC,SAAA,GAAY,IAA5C,EAAkDjgB,YAAlD,EAAgE;IAE9D,MAAMkgB,OAAA,GAAUlgB,YAAA,CAAa,CAAb,CAAhB;IACA,IAAIC,UAAJ;IAEA,IAAI,OAAOigB,OAAP,KAAmB,QAAnB,IAA+BA,OAAA,KAAY,IAA/C,EAAqD;MACnDjgB,UAAA,GAAa,KAAKkgB,iBAAL,CAAuBD,OAAvB,CAAb;MAEA,IAAI,CAACjgB,UAAL,EAAiB;QAGf,KAAKhc,WAAL,CACGm8B,YADH,CACgBF,OADhB,EAEG53B,IAFH,CAEQ+3B,SAAA,IAAa;UACjB,KAAKC,YAAL,CAAkBD,SAAA,GAAY,CAA9B,EAAiCH,OAAjC;UACA,KAAK,CAAAH,qBAAL,CAA4BC,OAA5B,EAAqCC,SAArC,EAAgDjgB,YAAhD;QAFiB,CAFrB,EAMG1G,KANH,CAMS,MAAM;UACX3Q,OAAA,CAAQK,KAAR,CACG,2CAA0Ck3B,OAAQ,WAAnD,GACG,qCAAoCF,OAAQ,IAFjD;QADW,CANf;QAYA;MAfe;IAHkC,CAArD,MAoBO,IAAI1G,MAAA,CAAOC,SAAP,CAAiB2G,OAAjB,CAAJ,EAA+B;MACpCjgB,UAAA,GAAaigB,OAAA,GAAU,CAAvB;IADoC,CAA/B,MAEA;MACLv3B,OAAA,CAAQK,KAAR,CACG,2CAA0Ck3B,OAAQ,WAAnD,GACG,4CAA2CF,OAAQ,IAFxD;MAIA;IALK;IAOP,IAAI,CAAC/f,UAAD,IAAeA,UAAA,GAAa,CAA5B,IAAiCA,UAAA,GAAa,KAAK3M,UAAvD,EAAmE;MACjE3K,OAAA,CAAQK,KAAR,CACG,2CAA0CiX,UAAW,WAAtD,GACG,kCAAiC+f,OAAQ,IAF9C;MAIA;IALiE;IAQnE,IAAI,KAAKt7B,UAAT,EAAqB;MAGnB,KAAKA,UAAL,CAAgB67B,mBAAhB;MACA,KAAK77B,UAAL,CAAgByQ,IAAhB,CAAqB;QAAE8qB,SAAF;QAAajgB,YAAb;QAA2BC;MAA3B,CAArB;IAJmB;IAOrB,KAAK7b,SAAL,CAAeo8B,kBAAf,CAAkC;MAChCvgB,UADgC;MAEhCwgB,SAAA,EAAWzgB,YAFqB;MAGhChU,qBAAA,EAAuB,KAAK6zB;IAHI,CAAlC;EAjD8D;EA6DhE,MAAMa,eAANA,CAAsBjlB,IAAtB,EAA4B;IAC1B,IAAI,CAAC,KAAKxX,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAIg8B,SAAJ,EAAejgB,YAAf;IACA,IAAI,OAAOvE,IAAP,KAAgB,QAApB,EAA8B;MAC5BwkB,SAAA,GAAYxkB,IAAZ;MACAuE,YAAA,GAAe,MAAM,KAAK/b,WAAL,CAAiB08B,cAAjB,CAAgCllB,IAAhC,CAArB;IAF4B,CAA9B,MAGO;MACLwkB,SAAA,GAAY,IAAZ;MACAjgB,YAAA,GAAe,MAAMvE,IAArB;IAFK;IAIP,IAAI,CAACmlB,KAAA,CAAMC,OAAN,CAAc7gB,YAAd,CAAL,EAAkC;MAChCrX,OAAA,CAAQK,KAAR,CACG,oCAAmCgX,YAAa,WAAjD,GACG,wCAAuCvE,IAAK,IAFjD;MAIA;IALgC;IAOlC,KAAK,CAAAskB,qBAAL,CAA4BtkB,IAA5B,EAAkCwkB,SAAlC,EAA6CjgB,YAA7C;EAnB0B;EA2B5BkK,SAASzW,GAAT,EAAc;IACZ,IAAI,CAAC,KAAKxP,WAAV,EAAuB;MACrB;IADqB;IAGvB,MAAMgc,UAAA,GACH,OAAOxM,GAAP,KAAe,QAAf,IAA2B,KAAKrP,SAAL,CAAe08B,qBAAf,CAAqCrtB,GAArC,CAA5B,IACAA,GAAA,GAAM,CAFR;IAGA,IACE,EACE6lB,MAAA,CAAOC,SAAP,CAAiBtZ,UAAjB,KACAA,UAAA,GAAa,CADb,IAEAA,UAAA,IAAc,KAAK3M,UAFnB,CAFJ,EAME;MACA3K,OAAA,CAAQK,KAAR,CAAe,6BAA4ByK,GAAI,wBAA/C;MACA;IAFA;IAKF,IAAI,KAAK/O,UAAT,EAAqB;MAGnB,KAAKA,UAAL,CAAgB67B,mBAAhB;MACA,KAAK77B,UAAL,CAAgBq8B,QAAhB,CAAyB9gB,UAAzB;IAJmB;IAOrB,KAAK7b,SAAL,CAAeo8B,kBAAf,CAAkC;MAAEvgB;IAAF,CAAlC;EAzBY;EAkCdsf,kBAAkBC,IAAlB,EAAwBz5B,GAAxB,EAA6Bi7B,SAAA,GAAY,KAAzC,EAAgD;IAC9CzB,iBAAA,CAAkBC,IAAlB,EAAwB;MACtBz5B,GADsB;MAEtB4L,MAAA,EAAQqvB,SAAA,GAAYp5B,UAAA,CAAWy3B,KAAvB,GAA+B,KAAKvzB,kBAFtB;MAGtB2zB,GAAA,EAAK,KAAK1zB,eAHY;MAItBhC,OAAA,EAAS,KAAKuL;IAJQ,CAAxB;EAD8C;EAahD2rB,mBAAmBxlB,IAAnB,EAAyB;IACvB,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC5B,IAAIA,IAAA,CAAK5Q,MAAL,GAAc,CAAlB,EAAqB;QACnB,OAAO,KAAK8e,YAAL,CAAkB,MAAMuX,MAAA,CAAOzlB,IAAP,CAAxB,CAAP;MADmB;IADO,CAA9B,MAIO,IAAImlB,KAAA,CAAMC,OAAN,CAAcplB,IAAd,CAAJ,EAAyB;MAC9B,MAAM+Y,GAAA,GAAM31B,IAAA,CAAKC,SAAL,CAAe2c,IAAf,CAAZ;MACA,IAAI+Y,GAAA,CAAI3pB,MAAJ,GAAa,CAAjB,EAAoB;QAClB,OAAO,KAAK8e,YAAL,CAAkB,MAAMuX,MAAA,CAAO1M,GAAP,CAAxB,CAAP;MADkB;IAFU;IAMhC,OAAO,KAAK7K,YAAL,CAAkB,EAAlB,CAAP;EAXuB;EAoBzBA,aAAawX,MAAb,EAAqB;IACnB,OAAO,KAAKn7B,OAAL,GAAe,KAAKA,OAAL,GAAem7B,MAA9B,GAAuCA,MAA9C;EADmB;EAOrBjgB,QAAQtd,IAAR,EAAc;IACZ,IAAI,CAAC,KAAKK,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAIgc,UAAJ,EAAgBxE,IAAhB;IACA,IAAI7X,IAAA,CAAK2G,QAAL,CAAc,GAAd,CAAJ,EAAwB;MACtB,MAAMnB,MAAA,GAAS,IAAAC,0BAAA,EAAiBzF,IAAjB,CAAf;MACA,IAAIwF,MAAA,CAAOI,GAAP,CAAW,QAAX,CAAJ,EAA0B;QACxB,MAAM2gB,KAAA,GAAQ/gB,MAAA,CAAOzB,GAAP,CAAW,QAAX,EAAqB+sB,UAArB,CAAgC,GAAhC,EAAqC,EAArC,CAAd;UACE0M,MAAA,GAASh4B,MAAA,CAAOzB,GAAP,CAAW,QAAX,MAAyB,MADpC;QAGA,KAAKpC,QAAL,CAAcgD,QAAd,CAAuB,iBAAvB,EAA0C;UACxCC,MAAA,EAAQ,IADgC;UAExC2hB,KAAA,EAAOiX,MAAA,GAASjX,KAAT,GAAiBA,KAAA,CAAMkX,KAAN,CAAY,MAAZ;QAFgB,CAA1C;MAJwB;MAU1B,IAAIj4B,MAAA,CAAOI,GAAP,CAAW,MAAX,CAAJ,EAAwB;QACtByW,UAAA,GAAa7W,MAAA,CAAOzB,GAAP,CAAW,MAAX,IAAqB,CAArB,IAA0B,CAAvC;MADsB;MAGxB,IAAIyB,MAAA,CAAOI,GAAP,CAAW,MAAX,CAAJ,EAAwB;QAEtB,MAAM83B,QAAA,GAAWl4B,MAAA,CAAOzB,GAAP,CAAW,MAAX,EAAmBqC,KAAnB,CAAyB,GAAzB,CAAjB;QACA,MAAMu3B,OAAA,GAAUD,QAAA,CAAS,CAAT,CAAhB;QACA,MAAME,aAAA,GAAgBC,UAAA,CAAWF,OAAX,CAAtB;QAEA,IAAI,CAACA,OAAA,CAAQh3B,QAAR,CAAiB,KAAjB,CAAL,EAA8B;UAG5BkR,IAAA,GAAO,CACL,IADK,EAEL;YAAEkC,IAAA,EAAM;UAAR,CAFK,EAGL2jB,QAAA,CAASz2B,MAAT,GAAkB,CAAlB,GAAsBy2B,QAAA,CAAS,CAAT,IAAc,CAApC,GAAwC,IAHnC,EAILA,QAAA,CAASz2B,MAAT,GAAkB,CAAlB,GAAsBy2B,QAAA,CAAS,CAAT,IAAc,CAApC,GAAwC,IAJnC,EAKLE,aAAA,GAAgBA,aAAA,GAAgB,GAAhC,GAAsCD,OALjC,CAAP;QAH4B,CAA9B,MAUO,IAAIA,OAAA,KAAY,KAAZ,IAAqBA,OAAA,KAAY,MAArC,EAA6C;UAClD9lB,IAAA,GAAO,CAAC,IAAD,EAAO;YAAEkC,IAAA,EAAM4jB;UAAR,CAAP,CAAP;QADkD,CAA7C,MAEA,IACLA,OAAA,KAAY,MAAZ,IACAA,OAAA,KAAY,OADZ,IAEAA,OAAA,KAAY,MAFZ,IAGAA,OAAA,KAAY,OAJP,EAKL;UACA9lB,IAAA,GAAO,CACL,IADK,EAEL;YAAEkC,IAAA,EAAM4jB;UAAR,CAFK,EAGLD,QAAA,CAASz2B,MAAT,GAAkB,CAAlB,GAAsBy2B,QAAA,CAAS,CAAT,IAAc,CAApC,GAAwC,IAHnC,CAAP;QADA,CALK,MAWA,IAAIC,OAAA,KAAY,MAAhB,EAAwB;UAC7B,IAAID,QAAA,CAASz2B,MAAT,KAAoB,CAAxB,EAA2B;YACzBlC,OAAA,CAAQK,KAAR,CACE,2DADF;UADyB,CAA3B,MAIO;YACLyS,IAAA,GAAO,CACL,IADK,EAEL;cAAEkC,IAAA,EAAM4jB;YAAR,CAFK,EAGLD,QAAA,CAAS,CAAT,IAAc,CAHT,EAILA,QAAA,CAAS,CAAT,IAAc,CAJT,EAKLA,QAAA,CAAS,CAAT,IAAc,CALT,EAMLA,QAAA,CAAS,CAAT,IAAc,CANT,CAAP;UADK;QALsB,CAAxB,MAeA;UACL34B,OAAA,CAAQK,KAAR,CACG,4BAA2Bu4B,OAAQ,8BADtC;QADK;MA5Ce;MAkDxB,IAAI9lB,IAAJ,EAAU;QACR,KAAKrX,SAAL,CAAeo8B,kBAAf,CAAkC;UAChCvgB,UAAA,EAAYA,UAAA,IAAc,KAAKzM,IADC;UAEhCitB,SAAA,EAAWhlB,IAFqB;UAGhCimB,mBAAA,EAAqB;QAHW,CAAlC;MADQ,CAAV,MAMO,IAAIzhB,UAAJ,EAAgB;QACrB,KAAKzM,IAAL,GAAYyM,UAAZ;MADqB;MAGvB,IAAI7W,MAAA,CAAOI,GAAP,CAAW,UAAX,CAAJ,EAA4B;QAC1B,KAAKjE,QAAL,CAAcgD,QAAd,CAAuB,UAAvB,EAAmC;UACjCC,MAAA,EAAQ,IADyB;UAEjCugB,IAAA,EAAM3f,MAAA,CAAOzB,GAAP,CAAW,UAAX;QAF2B,CAAnC;MAD0B;MAQ5B,IAAIyB,MAAA,CAAOI,GAAP,CAAW,WAAX,CAAJ,EAA6B;QAC3B,KAAKk3B,eAAL,CAAqBt3B,MAAA,CAAOzB,GAAP,CAAW,WAAX,CAArB;MAD2B;IAlFP,CAAxB,MAqFO;MAEL8T,IAAA,GAAOkmB,QAAA,CAAS/9B,IAAT,CAAP;MACA,IAAI;QACF6X,IAAA,GAAO5c,IAAA,CAAKG,KAAL,CAAWyc,IAAX,CAAP;QAEA,IAAI,CAACmlB,KAAA,CAAMC,OAAN,CAAcplB,IAAd,CAAL,EAA0B;UAGxBA,IAAA,GAAOA,IAAA,CAAKgE,QAAL,EAAP;QAHwB;MAHxB,CAAJ,CAQE,MAAM;MAER,IACE,OAAOhE,IAAP,KAAgB,QAAhB,IACA5P,cAAA,CAAe,CAAA+1B,0BAAf,CAA2CnmB,IAA3C,CAFF,EAGE;QACA,KAAKilB,eAAL,CAAqBjlB,IAArB;QACA;MAFA;MAIF9S,OAAA,CAAQK,KAAR,CACG,4BAA2B24B,QAAA,CAC1B/9B,IAD0B,CAE1B,+BAHJ;IApBK;EA1FK;EAyHdi+B,mBAAmBnkB,MAAnB,EAA2B;IAEzB,QAAQA,MAAR;MACE,KAAK,QAAL;QACE,KAAKhZ,UAAL,EAAiBo9B,IAAjB;QACA;MAEF,KAAK,WAAL;QACE,KAAKp9B,UAAL,EAAiBq9B,OAAjB;QACA;MAEF,KAAK,UAAL;QACE,KAAK39B,SAAL,CAAe4lB,QAAf;QACA;MAEF,KAAK,UAAL;QACE,KAAK5lB,SAAL,CAAe6lB,YAAf;QACA;MAEF,KAAK,UAAL;QACE,KAAKzW,IAAL,GAAY,KAAKF,UAAjB;QACA;MAEF,KAAK,WAAL;QACE,KAAKE,IAAL,GAAY,CAAZ;QACA;MAEF;QACE;IA1BJ;IA6BA,KAAKjO,QAAL,CAAcgD,QAAd,CAAuB,aAAvB,EAAsC;MACpCC,MAAA,EAAQ,IAD4B;MAEpCkV;IAFoC,CAAtC;EA/ByB;EAwC3B,MAAMskB,kBAANA,CAAyBtkB,MAAzB,EAAiC;IAC/B,MAAMzZ,WAAA,GAAc,KAAKA,WAAzB;IACA,MAAM2Y,qBAAA,GACJ,MAAM,KAAKxY,SAAL,CAAeuY,4BADvB;IAGA,IAAI1Y,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;MACpC;IADoC;IAGtC,IAAIg+B,QAAJ;IAEA,WAAWC,IAAX,IAAmBxkB,MAAA,CAAO8L,KAA1B,EAAiC;MAC/B,QAAQ0Y,IAAR;QACE,KAAK,IAAL;QACA,KAAK,KAAL;QACA,KAAK,QAAL;UACED,QAAA,GAAWC,IAAX;UACA;MALJ;MAOA,QAAQD,QAAR;QACE,KAAK,IAAL;UACErlB,qBAAA,CAAsBulB,aAAtB,CAAoCD,IAApC,EAA0C,IAA1C;UACA;QACF,KAAK,KAAL;UACEtlB,qBAAA,CAAsBulB,aAAtB,CAAoCD,IAApC,EAA0C,KAA1C;UACA;QACF,KAAK,QAAL;UACE,MAAME,KAAA,GAAQxlB,qBAAA,CAAsBylB,QAAtB,CAA+BH,IAA/B,CAAd;UACA,IAAIE,KAAJ,EAAW;YACTxlB,qBAAA,CAAsBulB,aAAtB,CAAoCD,IAApC,EAA0C,CAACE,KAAA,CAAM1K,OAAjD;UADS;UAGX;MAZJ;IAR+B;IAwBjC,KAAKtzB,SAAL,CAAeuY,4BAAf,GAA8CpZ,OAAA,CAAQC,OAAR,CAC5CoZ,qBAD4C,CAA9C;EAlC+B;EA2CjC0jB,aAAagC,OAAb,EAAsBC,OAAtB,EAA+B;IAC7B,IAAI,CAACA,OAAL,EAAc;MACZ;IADY;IAGd,MAAMC,MAAA,GACJD,OAAA,CAAQE,GAAR,KAAgB,CAAhB,GAAoB,GAAGF,OAAA,CAAQG,GAAI,GAAnC,GAAwC,GAAGH,OAAA,CAAQG,GAAI,IAAGH,OAAA,CAAQE,GAA1B,EAD1C;IAEA,KAAK,CAAA7C,aAAL,CAAoB93B,GAApB,CAAwB06B,MAAxB,EAAgCF,OAAhC;EAN6B;EAY/BnC,kBAAkBoC,OAAlB,EAA2B;IACzB,IAAI,CAACA,OAAL,EAAc;MACZ,OAAO,IAAP;IADY;IAGd,MAAMC,MAAA,GACJD,OAAA,CAAQE,GAAR,KAAgB,CAAhB,GAAoB,GAAGF,OAAA,CAAQG,GAAI,GAAnC,GAAwC,GAAGH,OAAA,CAAQG,GAAI,IAAGH,OAAA,CAAQE,GAA1B,EAD1C;IAEA,OAAO,KAAK,CAAA7C,aAAL,CAAoBj4B,GAApB,CAAwB66B,MAAxB,KAAmC,IAA1C;EANyB;EAS3B,OAAO,CAAAZ,0BAAPA,CAAmCnmB,IAAnC,EAAyC;IACvC,IAAI,CAACmlB,KAAA,CAAMC,OAAN,CAAcplB,IAAd,CAAL,EAA0B;MACxB,OAAO,KAAP;IADwB;IAG1B,MAAMknB,UAAA,GAAalnB,IAAA,CAAK5Q,MAAxB;IACA,IAAI83B,UAAA,GAAa,CAAjB,EAAoB;MAClB,OAAO,KAAP;IADkB;IAGpB,MAAMnvB,IAAA,GAAOiI,IAAA,CAAK,CAAL,CAAb;IACA,IACE,EACE,OAAOjI,IAAP,KAAgB,QAAhB,IACA8lB,MAAA,CAAOC,SAAP,CAAiB/lB,IAAA,CAAKkvB,GAAtB,CADA,IAEApJ,MAAA,CAAOC,SAAP,CAAiB/lB,IAAA,CAAKivB,GAAtB,CAFA,CADF,IAKA,EAAEnJ,MAAA,CAAOC,SAAP,CAAiB/lB,IAAjB,KAA0BA,IAAA,IAAQ,CAAlC,CANJ,EAOE;MACA,OAAO,KAAP;IADA;IAGF,MAAM0G,IAAA,GAAOuB,IAAA,CAAK,CAAL,CAAb;IACA,IAAI,EAAE,OAAOvB,IAAP,KAAgB,QAAhB,IAA4B,OAAOA,IAAA,CAAKyD,IAAZ,KAAqB,QAAjD,CAAN,EAAkE;MAChE,OAAO,KAAP;IADgE;IAGlE,IAAIilB,SAAA,GAAY,IAAhB;IACA,QAAQ1oB,IAAA,CAAKyD,IAAb;MACE,KAAK,KAAL;QACE,IAAIglB,UAAA,KAAe,CAAnB,EAAsB;UACpB,OAAO,KAAP;QADoB;QAGtB;MACF,KAAK,KAAL;MACA,KAAK,MAAL;QACE,OAAOA,UAAA,KAAe,CAAtB;MACF,KAAK,MAAL;MACA,KAAK,OAAL;MACA,KAAK,MAAL;MACA,KAAK,OAAL;QACE,IAAIA,UAAA,KAAe,CAAnB,EAAsB;UACpB,OAAO,KAAP;QADoB;QAGtB;MACF,KAAK,MAAL;QACE,IAAIA,UAAA,KAAe,CAAnB,EAAsB;UACpB,OAAO,KAAP;QADoB;QAGtBC,SAAA,GAAY,KAAZ;QACA;MACF;QACE,OAAO,KAAP;IAxBJ;IA0BA,KAAK,IAAIj4B,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAIg4B,UAApB,EAAgCh4B,CAAA,EAAhC,EAAqC;MACnC,MAAMk4B,KAAA,GAAQpnB,IAAA,CAAK9Q,CAAL,CAAd;MACA,IAAI,EAAE,OAAOk4B,KAAP,KAAiB,QAAjB,IAA8BD,SAAA,IAAaC,KAAA,KAAU,IAArD,CAAN,EAAmE;QACjE,OAAO,KAAP;MADiE;IAFhC;IAMrC,OAAO,IAAP;EAxDuC;AAndtB;AArGrBvkC,sBAAA,GAAAuN,cAAA;AAunBA,MAAMi3B,iBAAN,CAAwB;EACtB3gC,YAAA,EAAc;IACZ,KAAKmT,mBAAL,GAA2B,IAA3B;EADY;EAOd,IAAIhC,UAAJA,CAAA,EAAiB;IACf,OAAO,CAAP;EADe;EAOjB,IAAIE,IAAJA,CAAA,EAAW;IACT,OAAO,CAAP;EADS;EAOX,IAAIA,IAAJA,CAASjC,KAAT,EAAgB;EAKhB,IAAI8I,QAAJA,CAAA,EAAe;IACb,OAAO,CAAP;EADa;EAOf,IAAIA,QAAJA,CAAa9I,KAAb,EAAoB;EAKpB,IAAIuB,oBAAJA,CAAA,EAA2B;IACzB,OAAO,KAAP;EADyB;EAO3B,MAAM4tB,eAANA,CAAsBjlB,IAAtB,EAA4B;EAK5ByO,SAASzW,GAAT,EAAc;EAOd8rB,kBAAkBC,IAAlB,EAAwBz5B,GAAxB,EAA6Bi7B,SAAA,GAAY,KAAzC,EAAgD;IAC9CzB,iBAAA,CAAkBC,IAAlB,EAAwB;MAAEz5B,GAAF;MAAOgE,OAAA,EAAS,KAAKuL;IAArB,CAAxB;EAD8C;EAQhD2rB,mBAAmBxlB,IAAnB,EAAyB;IACvB,OAAO,GAAP;EADuB;EAQzBkO,aAAa/lB,IAAb,EAAmB;IACjB,OAAO,GAAP;EADiB;EAOnBsd,QAAQtd,IAAR,EAAc;EAKdi+B,mBAAmBnkB,MAAnB,EAA2B;EAK3BskB,mBAAmBtkB,MAAnB,EAA2B;EAM3B4iB,aAAagC,OAAb,EAAsBC,OAAtB,EAA+B;AAjGT;AAvnBxBjkC,yBAAA,GAAAwkC,iBAAA;;;;;;;;;;;;ACeA,IAAA9iC,SAAA,GAAAhC,mBAAA;AAEA,MAAMoP,cAAN,CAAqB;EACnB,CAAA21B,kBAAA,GAAsB,KAAK,CAAAjY,aAAL,CAAoBlf,IAApB,CAAyB,IAAzB,CAAtB;EAEA,CAAAo3B,gBAAA,GAAoB,KAAK,CAAAC,WAAL,CAAkBr3B,IAAlB,CAAuB,IAAvB,CAApB;EAEA,CAAAs3B,YAAA,GAAgB,KAAK,CAAAC,OAAL,CAAcv3B,IAAd,CAAmB,IAAnB,CAAhB;EAEA,CAAAw3B,aAAA,GAAiB,IAAjB;EAEA,CAAAC,YAAA;EAEA,CAAAC,MAAA;EAEA,CAAA/9B,QAAA;EAEA,CAAAg+B,cAAA,GAAkB,KAAlB;EAEA,CAAAC,iBAAA;EAEA,CAAAC,gBAAA;EAEA,CAAAt+B,cAAA;EAEA,CAAAu+B,UAAA;EAEA,CAAAC,QAAA;EAEA,CAAAC,SAAA;EAEA,CAAAC,eAAA,GAAmB,IAAnB;EAEA,CAAAC,UAAA,GAAc,IAAd;EAEA,CAAAC,WAAA,GAAe,IAAf;EAEA,CAAAv3B,SAAA;EAEA,CAAAw3B,aAAA,GAAiB,IAAjB;EAEA7hC,YACE;IACEmhC,MADF;IAEEE,iBAFF;IAGEC,gBAHF;IAIEE,QAJF;IAKEN,YALF;IAMEK;EANF,CADF,EASEl3B,SATF,EAUErH,cAVF,EAWEI,QAXF,EAYE;IACA,KAAK,CAAA+9B,MAAL,GAAeA,MAAf;IACA,KAAK,CAAAE,iBAAL,GAA0BA,iBAA1B;IACA,KAAK,CAAAC,gBAAL,GAAyBA,gBAAzB;IACA,KAAK,CAAAE,QAAL,GAAiBA,QAAjB;IACA,KAAK,CAAAN,YAAL,GAAqBA,YAArB;IACA,KAAK,CAAAK,UAAL,GAAmBA,UAAnB;IACA,KAAK,CAAAv+B,cAAL,GAAuBA,cAAvB;IACA,KAAK,CAAAI,QAAL,GAAiBA,QAAjB;IACA,KAAK,CAAAiH,SAAL,GAAkBA,SAAlB;IAEA82B,MAAA,CAAO9xB,gBAAP,CAAwB,OAAxB,EAAiC,KAAK,CAAAoD,KAAL,CAAYhJ,IAAZ,CAAiB,IAAjB,CAAjC;IACA03B,MAAA,CAAO9xB,gBAAP,CAAwB,aAAxB,EAAuCmU,KAAA,IAAS;MAC9C,IAAIA,KAAA,CAAMhU,MAAN,KAAiB,KAAK,CAAAgyB,QAA1B,EAAqC;QACnChe,KAAA,CAAM/T,cAAN;MADmC;IADS,CAAhD;IAKAyxB,YAAA,CAAa7xB,gBAAb,CAA8B,OAA9B,EAAuC,KAAK,CAAAyyB,MAAL,CAAar4B,IAAb,CAAkB,IAAlB,CAAvC;IACA83B,UAAA,CAAWlyB,gBAAX,CAA4B,OAA5B,EAAqC,KAAK,CAAAyD,IAAL,CAAWrJ,IAAX,CAAgB,IAAhB,CAArC;IACA43B,iBAAA,CAAkBhyB,gBAAlB,CAAmC,QAAnC,EAA6C,KAAK,CAAAuxB,kBAAlD;IACAU,gBAAA,CAAiBjyB,gBAAjB,CAAkC,QAAlC,EAA4C,KAAK,CAAAuxB,kBAAjD;IAEA,KAAK,CAAA59B,cAAL,CAAqB++B,QAArB,CAA8BZ,MAA9B;EAtBA;EAyBF,IAAIa,SAAJA,CAAA,EAAgB;IACd,OAAO,IAAAthC,gBAAA,EAAO,IAAP,EAAa,WAAb,EAA0B,CAC/B,KAAK,CAAA2gC,iBAD0B,EAE/B,KAAK,CAAAC,gBAF0B,EAG/B,KAAK,CAAAE,QAH0B,EAI/B,KAAK,CAAAD,UAJ0B,EAK/B,KAAK,CAAAL,YAL0B,CAA1B,CAAP;EADc;EAUhB,CAAAe,iBAAA,EAAoB;IAClB,IAAI,KAAK,CAAAN,UAAT,EAAsB;MACpB;IADoB;IAQtB,MAAMO,UAAA,GAAa,IAAIC,uBAAJ,EAAnB;IACA,MAAMC,GAAA,GAAO,KAAK,CAAAT,UAAL,GAAmBO,UAAA,CAAWG,aAAX,CAAyB,KAAzB,CAAhC;IACAD,GAAA,CAAI1J,YAAJ,CAAiB,OAAjB,EAA0B,GAA1B;IACA0J,GAAA,CAAI1J,YAAJ,CAAiB,QAAjB,EAA2B,GAA3B;IACA,MAAM4J,IAAA,GAAOJ,UAAA,CAAWG,aAAX,CAAyB,MAAzB,CAAb;IACAD,GAAA,CAAIG,MAAJ,CAAWD,IAAX;IACA,MAAME,IAAA,GAAON,UAAA,CAAWG,aAAX,CAAyB,MAAzB,CAAb;IACAC,IAAA,CAAKC,MAAL,CAAYC,IAAZ;IACAA,IAAA,CAAK9J,YAAL,CAAkB,IAAlB,EAAwB,sBAAxB;IACA8J,IAAA,CAAK9J,YAAL,CAAkB,kBAAlB,EAAsC,mBAAtC;IACA,IAAI+J,IAAA,GAAOP,UAAA,CAAWG,aAAX,CAAyB,MAAzB,CAAX;IACAG,IAAA,CAAKD,MAAL,CAAYE,IAAZ;IACAA,IAAA,CAAK/J,YAAL,CAAkB,MAAlB,EAA0B,OAA1B;IACA+J,IAAA,CAAK/J,YAAL,CAAkB,OAAlB,EAA2B,GAA3B;IACA+J,IAAA,CAAK/J,YAAL,CAAkB,QAAlB,EAA4B,GAA5B;IACA+J,IAAA,CAAK/J,YAAL,CAAkB,GAAlB,EAAuB,GAAvB;IACA+J,IAAA,CAAK/J,YAAL,CAAkB,GAAlB,EAAuB,GAAvB;IAEA+J,IAAA,GAAO,KAAK,CAAAb,WAAL,GAAoBM,UAAA,CAAWG,aAAX,CAAyB,MAAzB,CAA3B;IACAG,IAAA,CAAKD,MAAL,CAAYE,IAAZ;IACAA,IAAA,CAAK/J,YAAL,CAAkB,MAAlB,EAA0B,OAA1B;IACA,KAAK,CAAAyI,MAAL,CAAaoB,MAAb,CAAoBH,GAApB;EA9BkB;EAiCpB,MAAMM,WAANA,CAAkBjB,SAAlB,EAA6BkB,MAA7B,EAAqC;IACnC,IAAI,KAAK,CAAA1B,aAAL,IAAuB,CAAC0B,MAA5B,EAAoC;MAClC;IADkC;IAIpC,KAAK,CAAAV,gBAAL;IAEA,KAAK,CAAAb,cAAL,GAAuB,KAAvB;IACA,WAAWlR,OAAX,IAAsB,KAAK8R,SAA3B,EAAsC;MACpC9R,OAAA,CAAQ7gB,gBAAR,CAAyB,OAAzB,EAAkC,KAAK,CAAA0xB,YAAvC;IADoC;IAItC,MAAM;MAAE6B,OAAF;MAAWC;IAAX,IAA0BF,MAAA,CAAOG,WAAvC;IACA,IAAID,UAAA,KAAe,IAAnB,EAAyB;MACvB,KAAK,CAAAvB,gBAAL,CAAuByB,OAAvB,GAAiC,IAAjC;MACA,KAAK,CAAA1B,iBAAL,CAAwB0B,OAAxB,GAAkC,KAAlC;IAFuB,CAAzB,MAGO;MACL,KAAK,CAAAzB,gBAAL,CAAuByB,OAAvB,GAAiC,KAAjC;MACA,KAAK,CAAA1B,iBAAL,CAAwB0B,OAAxB,GAAkC,IAAlC;IAFK;IAIP,KAAK,CAAArB,eAAL,GAAwB,KAAK,CAAAF,QAAL,CAAepyB,KAAf,GAAuBwzB,OAAA,EAASvmB,IAAT,MAAmB,EAAlE;IACA,KAAK,CAAAsM,aAAL;IAEA,KAAK,CAAAsY,aAAL,GAAsB0B,MAAtB;IACA,KAAK,CAAAlB,SAAL,GAAkBA,SAAlB;IACA,KAAK,CAAAA,SAAL,CAAgBuB,mBAAhB;IACA,KAAK,CAAA5/B,QAAL,CAAewX,GAAf,CAAmB,QAAnB,EAA6B,KAAK,CAAAimB,gBAAlC;IAEA,IAAI;MACF,MAAM,KAAK,CAAA79B,cAAL,CAAqBkN,IAArB,CAA0B,KAAK,CAAAixB,MAA/B,CAAN;MACA,KAAK,CAAAL,WAAL;IAFE,CAAJ,CAGE,OAAO15B,EAAP,EAAW;MACX,KAAK,CAAAqL,KAAL;MACA,MAAMrL,EAAN;IAFW;EA/BsB;EAqCrC,CAAA05B,YAAA,EAAe;IACb,IAAI,CAAC,KAAK,CAAAG,aAAV,EAA0B;MACxB;IADwB;IAG1B,MAAME,MAAA,GAAS,KAAK,CAAAA,MAApB;IACA,MAAM;MAAE5J;IAAF,IAAY4J,MAAlB;IACA,MAAM;MACJlc,CAAA,EAAGge,UADC;MAEJ/d,CAAA,EAAGge,UAFC;MAGJ7O,KAAA,EAAO8O,UAHH;MAIJ7O,MAAA,EAAQ8O;IAJJ,IAKF,KAAK,CAAA/4B,SAAL,CAAgBg5B,qBAAhB,EALJ;IAMA,MAAM;MAAEC,UAAA,EAAYC,OAAd;MAAuBC,WAAA,EAAaC;IAApC,IAAgD//B,MAAtD;IACA,MAAM;MAAE2wB,KAAA,EAAOqP,OAAT;MAAkBpP,MAAA,EAAQqP;IAA1B,IAAsCxC,MAAA,CAAOkC,qBAAP,EAA5C;IACA,MAAM;MAAEpe,CAAF;MAAKC,CAAL;MAAQmP,KAAR;MAAeC;IAAf,IAA0B,KAAK,CAAA2M,aAAL,CAAoB2C,mBAApB,EAAhC;IACA,MAAMC,MAAA,GAAS,EAAf;IACA,MAAMC,KAAA,GAAQ,KAAK,CAAArC,SAAL,CAAgBsC,SAAhB,KAA8B,KAA5C;IAEA,MAAMC,EAAA,GAAKvtB,IAAA,CAAK2f,GAAL,CAASnR,CAAT,EAAYge,UAAZ,CAAX;IACA,MAAMgB,EAAA,GAAKxtB,IAAA,CAAKihB,GAAL,CAASzS,CAAA,GAAIoP,KAAb,EAAoB4O,UAAA,GAAaE,UAAjC,CAAX;IACA,MAAMe,EAAA,GAAKztB,IAAA,CAAK2f,GAAL,CAASlR,CAAT,EAAYge,UAAZ,CAAX;IACA,MAAMiB,EAAA,GAAK1tB,IAAA,CAAKihB,GAAL,CAASxS,CAAA,GAAIoP,MAAb,EAAqB4O,UAAA,GAAaE,UAAlC,CAAX;IACA,KAAK,CAAAxB,WAAL,CAAkBlJ,YAAlB,CAA+B,OAA/B,EAAwC,GAAI,CAAAuL,EAAA,GAAKD,EAAL,IAAWT,OAAf,EAAxC;IACA,KAAK,CAAA3B,WAAL,CAAkBlJ,YAAlB,CAA+B,QAA/B,EAAyC,GAAI,CAAAyL,EAAA,GAAKD,EAAL,IAAWT,OAAf,EAAzC;IACA,KAAK,CAAA7B,WAAL,CAAkBlJ,YAAlB,CAA+B,GAA/B,EAAoC,GAAGsL,EAAA,GAAKT,OAAR,EAApC;IACA,KAAK,CAAA3B,WAAL,CAAkBlJ,YAAlB,CAA+B,GAA/B,EAAoC,GAAGwL,EAAA,GAAKT,OAAR,EAApC;IAEA,IAAIne,IAAA,GAAO,IAAX;IACA,IAAID,GAAA,GAAM5O,IAAA,CAAK2f,GAAL,CAASlR,CAAT,EAAY,CAAZ,CAAV;IACAG,GAAA,IAAO5O,IAAA,CAAKihB,GAAL,CAAS+L,OAAA,IAAWpe,GAAA,GAAMse,OAAN,CAApB,EAAoC,CAApC,CAAP;IAEA,IAAIG,KAAJ,EAAW;MAET,IAAI7e,CAAA,GAAIoP,KAAJ,GAAYwP,MAAZ,GAAqBH,OAArB,GAA+BH,OAAnC,EAA4C;QAC1Cje,IAAA,GAAOL,CAAA,GAAIoP,KAAJ,GAAYwP,MAAnB;MAD0C,CAA5C,MAEO,IAAI5e,CAAA,GAAIye,OAAA,GAAUG,MAAlB,EAA0B;QAC/Bve,IAAA,GAAOL,CAAA,GAAIye,OAAJ,GAAcG,MAArB;MAD+B;IAJxB,CAAX,MAOO,IAAI5e,CAAA,GAAIye,OAAA,GAAUG,MAAlB,EAA0B;MAC/Bve,IAAA,GAAOL,CAAA,GAAIye,OAAJ,GAAcG,MAArB;IAD+B,CAA1B,MAEA,IAAI5e,CAAA,GAAIoP,KAAJ,GAAYwP,MAAZ,GAAqBH,OAArB,GAA+BH,OAAnC,EAA4C;MACjDje,IAAA,GAAOL,CAAA,GAAIoP,KAAJ,GAAYwP,MAAnB;IADiD;IAInD,IAAIve,IAAA,KAAS,IAAb,EAAmB;MACjBD,GAAA,GAAM,IAAN;MACAC,IAAA,GAAO7O,IAAA,CAAK2f,GAAL,CAASnR,CAAT,EAAY,CAAZ,CAAP;MACAK,IAAA,IAAQ7O,IAAA,CAAKihB,GAAL,CAAS6L,OAAA,IAAWje,IAAA,GAAOoe,OAAP,CAApB,EAAqC,CAArC,CAAR;MACA,IAAIxe,CAAA,GAAIye,OAAA,GAAUE,MAAlB,EAA0B;QACxBxe,GAAA,GAAMH,CAAA,GAAIye,OAAJ,GAAcE,MAApB;MADwB,CAA1B,MAEO,IAAI3e,CAAA,GAAIoP,MAAJ,GAAauP,MAAb,GAAsBF,OAAtB,GAAgCF,OAApC,EAA6C;QAClDpe,GAAA,GAAMH,CAAA,GAAIoP,MAAJ,GAAauP,MAAnB;MADkD;IANnC;IAWnB,IAAIxe,GAAA,KAAQ,IAAZ,EAAkB;MAChB8b,MAAA,CAAO35B,SAAP,CAAiBC,GAAjB,CAAqB,YAArB;MACA,IAAIq8B,KAAJ,EAAW;QACTvM,KAAA,CAAMjS,IAAN,GAAa,GAAGA,IAAK,IAArB;MADS,CAAX,MAEO;QACLiS,KAAA,CAAM5F,KAAN,GAAc,GAAG4R,OAAA,GAAUje,IAAV,GAAiBoe,OAAQ,IAA1C;MADK;MAGPnM,KAAA,CAAMlS,GAAN,GAAY,GAAGA,GAAI,IAAnB;IAPgB,CAAlB,MAQO;MACL8b,MAAA,CAAO35B,SAAP,CAAiB8E,MAAjB,CAAwB,YAAxB;MACAirB,KAAA,CAAMjS,IAAN,GAAa,EAAb;MACAiS,KAAA,CAAMlS,GAAN,GAAY,EAAZ;IAHK;EA/DM;EAsEf,CAAAyc,OAAA,EAAU;IACR,IAAI,KAAK,CAAA9+B,cAAL,CAAqBgnB,MAArB,KAAgC,KAAK,CAAAmX,MAAzC,EAAkD;MAChD,KAAK,CAAAn+B,cAAL,CAAqByP,KAArB,CAA2B,KAAK,CAAA0uB,MAAhC;IADgD;EAD1C;EAMV,CAAA1uB,MAAA,EAAS;IACP,KAAK,CAAArP,QAAL,CAAegD,QAAf,CAAwB,iBAAxB,EAA2C;MACzCC,MAAA,EAAQ,IADiC;MAEzCgoB,OAAA,EAAS;QACP5Y,IAAA,EAAM,SADC;QAEP2uB,OAAA,EAAS,KAAK,CAAAnD,aAAL,CAAoBoD,UAFtB;QAGPlkC,IAAA,EAAM,KAAK,CAAA0hC,aAAL,IAAuB;UAC3BtmB,MAAA,EAAQ,iBADmB;UAE3B+oB,iBAAA,EAAmB,CAAC,KAAK,CAAAlD;QAFE;MAHtB;IAFgC,CAA3C;IAWA,KAAK,CAAAS,aAAL,GAAsB,IAAtB;IAEA,KAAK,CAAA0C,sBAAL;IACA,KAAK,CAAA9C,SAAL,EAAiB+C,gBAAjB;IACA,KAAK,CAAAphC,QAAL,CAAeghB,IAAf,CAAoB,QAApB,EAA8B,KAAK,CAAAyc,gBAAnC;IACA,KAAK,CAAAI,aAAL,GAAsB,IAAtB;IACA,KAAK,CAAAQ,SAAL,GAAkB,IAAlB;EAlBO;EAqBT,CAAA9Y,cAAA,EAAiB;IACf,KAAK,CAAA6Y,QAAL,CAAeiD,QAAf,GAA0B,KAAK,CAAAnD,gBAAL,CAAuByB,OAAjD;EADe;EAIjB,CAAAjwB,KAAA,EAAQ;IACN,MAAM8vB,OAAA,GAAU,KAAK,CAAApB,QAAL,CAAepyB,KAAf,CAAqBiN,IAArB,EAAhB;IACA,MAAMwmB,UAAA,GAAa,KAAK,CAAAvB,gBAAL,CAAuByB,OAA1C;IACA,KAAK,CAAA9B,aAAL,CAAoB6B,WAApB,GAAkC;MAChCF,OADgC;MAEhCC;IAFgC,CAAlC;IAIA,KAAK,CAAAhB,aAAL,GAAsB;MACpBtmB,MAAA,EAAQ,eADY;MAEpBmpB,oBAAA,EAAsB,CAAC,CAAC9B,OAFJ;MAGpB+B,aAAA,EACE,CAAC,CAAC,KAAK,CAAAjD,eAAP,IAA2B,KAAK,CAAAA,eAAL,KAA0BkB,OAJnC;MAKpBgC,mBAAA,EAAqB/B,UALD;MAMpByB,iBAAA,EAAmB,CAAC,KAAK,CAAAlD;IANL,CAAtB;IAQA,KAAK,CAAAU,MAAL;EAfM;EAkBR,CAAAd,QAAS1xB,GAAT,EAAc;IACZ,IAAIA,GAAA,CAAImU,MAAJ,KAAe,CAAnB,EAAsB;MACpB;IADoB;IAGtB,KAAK,CAAA2d,cAAL,GAAuB,IAAvB;IACA,KAAK,CAAAmD,sBAAL;EALY;EAQd,CAAAA,uBAAA,EAA0B;IACxB,WAAWrU,OAAX,IAAsB,KAAK8R,SAA3B,EAAsC;MACpC9R,OAAA,CAAQhS,mBAAR,CAA4B,OAA5B,EAAqC,KAAK,CAAA6iB,YAA1C;IADoC;EADd;EAM1B9tB,QAAA,EAAU;IACR,KAAK,CAAAwuB,SAAL,GAAkB,IAAlB;IACA,KAAK,CAAAK,MAAL;IACA,KAAK,CAAAH,UAAL,EAAkBr1B,MAAlB;IACA,KAAK,CAAAq1B,UAAL,GAAmB,KAAK,CAAAC,WAAL,GAAoB,IAAvC;EAJQ;AAjSS;AAjBrBzlC,sBAAA,GAAA8O,cAAA;;;;;;;;;;;;ACeA,IAAApN,SAAA,GAAAhC,mBAAA;AAEA,MAAM0Q,sBAAN,CAA6B;EAK3BvM,YAAYQ,OAAZ,EAAqB4C,QAArB,EAA+B;IAC7B,KAAKA,QAAL,GAAgBA,QAAhB;IACA,KAAK,CAAAyhC,aAAL,CAAoBrkC,OAApB;EAF6B;EAK/B,CAAAqkC,cAAe;IACbC,sBADa;IAEbC,mBAFa;IAGbC,cAHa;IAIbC,kBAJa;IAKbC,gBALa;IAMbC;EANa,CAAf,EAOG;IACD,MAAMC,aAAA,GAAgBA,CAAChnB,OAAD,EAAUhP,KAAV,KAAoB;MACxC,KAAKhM,QAAL,CAAcgD,QAAd,CAAuB,8BAAvB,EAAuD;QACrDC,MAAA,EAAQ,IAD6C;QAErDoP,IAAA,EAAM4vB,oCAAA,CAA2BjnB,OAA3B,CAF+C;QAGrDhP;MAHqD,CAAvD;IADwC,CAA1C;IAOA01B,sBAAA,CAAuBz1B,gBAAvB,CAAwC,OAAxC,EAAiD,YAAY;MAC3D+1B,aAAA,CAAc,eAAd,EAA+B,KAAKE,aAApC;IAD2D,CAA7D;IAGAP,mBAAA,CAAoB11B,gBAApB,CAAqC,OAArC,EAA8C,YAAY;MACxD+1B,aAAA,CAAc,gBAAd,EAAgC,KAAKh2B,KAArC;IADwD,CAA1D;IAGA41B,cAAA,CAAe31B,gBAAf,CAAgC,OAAhC,EAAyC,YAAY;MACnD+1B,aAAA,CAAc,WAAd,EAA2B,KAAKh2B,KAAhC;IADmD,CAArD;IAGA61B,kBAAA,CAAmB51B,gBAAnB,CAAoC,OAApC,EAA6C,YAAY;MACvD+1B,aAAA,CAAc,eAAd,EAA+B,KAAKE,aAApC;IADuD,CAAzD;IAGAJ,gBAAA,CAAiB71B,gBAAjB,CAAkC,OAAlC,EAA2C,YAAY;MACrD+1B,aAAA,CAAc,aAAd,EAA6B,KAAKE,aAAlC;IADqD,CAAvD;IAGAH,mBAAA,CAAoB91B,gBAApB,CAAqC,OAArC,EAA8C,MAAM;MAClD+1B,aAAA,CAAc,QAAd;IADkD,CAApD;IAIA,KAAKhiC,QAAL,CAAcwX,GAAd,CAAkB,+BAAlB,EAAmDtL,GAAA,IAAO;MACxD,WAAW,CAACmG,IAAD,EAAOrG,KAAP,CAAX,IAA4BE,GAAA,CAAI+e,OAAhC,EAAyC;QACvC,QAAQ5Y,IAAR;UACE,KAAK4vB,oCAAA,CAA2BE,aAAhC;YACET,sBAAA,CAAuB11B,KAAvB,GAA+BA,KAA/B;YACA;UACF,KAAKi2B,oCAAA,CAA2BG,cAAhC;YACET,mBAAA,CAAoB31B,KAApB,GAA4BA,KAA5B;YACA;UACF,KAAKi2B,oCAAA,CAA2BI,SAAhC;YACET,cAAA,CAAe51B,KAAf,GAAuBA,KAAvB;YACA;UACF,KAAKi2B,oCAAA,CAA2BK,aAAhC;YACET,kBAAA,CAAmB71B,KAAnB,GAA2BA,KAA3B;YACA;UACF,KAAKi2B,oCAAA,CAA2BM,WAAhC;YACET,gBAAA,CAAiB91B,KAAjB,GAAyBA,KAAzB;YACA;QAfJ;MADuC;IADe,CAA1D;EA3BC;AAjBwB;AAjB7BjT,8BAAA,GAAAoQ,sBAAA;;;;;;;;;;;;ACeA,MAAMlD,cAAN,CAAqB;EACnB,CAAAu8B,QAAA,GAAY,IAAIC,OAAJ,EAAZ;EAEA,CAAA7b,MAAA,GAAU,IAAV;EAEA,IAAIA,MAAJA,CAAA,EAAa;IACX,OAAO,KAAK,CAAAA,MAAZ;EADW;EAWb,MAAM+X,QAANA,CAAeZ,MAAf,EAAuB2E,aAAA,GAAgB,KAAvC,EAA8C;IAC5C,IAAI,OAAO3E,MAAP,KAAkB,QAAtB,EAAgC;MAC9B,MAAM,IAAIlhC,KAAJ,CAAU,wBAAV,CAAN;IAD8B,CAAhC,MAEO,IAAI,KAAK,CAAA2lC,QAAL,CAAev+B,GAAf,CAAmB85B,MAAnB,CAAJ,EAAgC;MACrC,MAAM,IAAIlhC,KAAJ,CAAU,oCAAV,CAAN;IADqC;IAGvC,KAAK,CAAA2lC,QAAL,CAAejgC,GAAf,CAAmBw7B,MAAnB,EAA2B;MAAE2E;IAAF,CAA3B;IAEA3E,MAAA,CAAO9xB,gBAAP,CAAwB,QAAxB,EAAkCC,GAAA,IAAO;MACvC,KAAK,CAAA0a,MAAL,GAAe,IAAf;IADuC,CAAzC;EAR4C;EAkB9C,MAAM9Z,IAANA,CAAWixB,MAAX,EAAmB;IACjB,IAAI,CAAC,KAAK,CAAAyE,QAAL,CAAev+B,GAAf,CAAmB85B,MAAnB,CAAL,EAAiC;MAC/B,MAAM,IAAIlhC,KAAJ,CAAU,6BAAV,CAAN;IAD+B,CAAjC,MAEO,IAAI,KAAK,CAAA+pB,MAAT,EAAkB;MACvB,IAAI,KAAK,CAAAA,MAAL,KAAiBmX,MAArB,EAA6B;QAC3B,MAAM,IAAIlhC,KAAJ,CAAU,gCAAV,CAAN;MAD2B,CAA7B,MAEO,IAAI,KAAK,CAAA2lC,QAAL,CAAepgC,GAAf,CAAmB27B,MAAnB,EAA2B2E,aAA/B,EAA8C;QACnD,MAAM,KAAKrzB,KAAL,EAAN;MADmD,CAA9C,MAEA;QACL,MAAM,IAAIxS,KAAJ,CAAU,sCAAV,CAAN;MADK;IALgB;IASzB,KAAK,CAAA+pB,MAAL,GAAemX,MAAf;IACAA,MAAA,CAAO4E,SAAP;EAbiB;EAqBnB,MAAMtzB,KAANA,CAAY0uB,MAAA,GAAS,KAAK,CAAAnX,MAA1B,EAAmC;IACjC,IAAI,CAAC,KAAK,CAAA4b,QAAL,CAAev+B,GAAf,CAAmB85B,MAAnB,CAAL,EAAiC;MAC/B,MAAM,IAAIlhC,KAAJ,CAAU,6BAAV,CAAN;IAD+B,CAAjC,MAEO,IAAI,CAAC,KAAK,CAAA+pB,MAAV,EAAmB;MACxB,MAAM,IAAI/pB,KAAJ,CAAU,sCAAV,CAAN;IADwB,CAAnB,MAEA,IAAI,KAAK,CAAA+pB,MAAL,KAAiBmX,MAArB,EAA6B;MAClC,MAAM,IAAIlhC,KAAJ,CAAU,sCAAV,CAAN;IADkC;IAGpCkhC,MAAA,CAAO1uB,KAAP;IACA,KAAK,CAAAuX,MAAL,GAAe,IAAf;EATiC;AAvDhB;AAfrB7tB,sBAAA,GAAAkN,cAAA;;;;;;;;;;;;ACeA,IAAAxL,SAAA,GAAAhC,mBAAA;AAcA,MAAM0R,cAAN,CAAqB;EACnB,CAAAy4B,gBAAA,GAAoB,IAApB;EAEA,CAAA1xB,cAAA,GAAkB,IAAlB;EAEA,CAAA1N,MAAA,GAAU,IAAV;EASA5G,YAAYQ,OAAZ,EAAqBwC,cAArB,EAAqCK,IAArC,EAA2CI,gBAAA,GAAmB,KAA9D,EAAqE;IACnE,KAAK09B,MAAL,GAAc3gC,OAAA,CAAQ2gC,MAAtB;IACA,KAAK9jB,KAAL,GAAa7c,OAAA,CAAQ6c,KAArB;IACA,KAAK4oB,KAAL,GAAazlC,OAAA,CAAQylC,KAArB;IACA,KAAKC,YAAL,GAAoB1lC,OAAA,CAAQ0lC,YAA5B;IACA,KAAKhF,YAAL,GAAoB1gC,OAAA,CAAQ0gC,YAA5B;IACA,KAAKl+B,cAAL,GAAsBA,cAAtB;IACA,KAAKK,IAAL,GAAYA,IAAZ;IACA,KAAK8iC,iBAAL,GAAyB1iC,gBAAzB;IAGA,KAAKyiC,YAAL,CAAkB72B,gBAAlB,CAAmC,OAAnC,EAA4C,KAAK,CAAA+2B,MAAL,CAAa38B,IAAb,CAAkB,IAAlB,CAA5C;IACA,KAAKy3B,YAAL,CAAkB7xB,gBAAlB,CAAmC,OAAnC,EAA4C,KAAKoD,KAAL,CAAWhJ,IAAX,CAAgB,IAAhB,CAA5C;IACA,KAAKw8B,KAAL,CAAW52B,gBAAX,CAA4B,SAA5B,EAAuCg3B,CAAA,IAAK;MAC1C,IAAIA,CAAA,CAAEpZ,OAAF,KAA4B,EAAhC,EAAoC;QAClC,KAAK,CAAAmZ,MAAL;MADkC;IADM,CAA5C;IAMA,KAAKpjC,cAAL,CAAoB++B,QAApB,CAA6B,KAAKZ,MAAlC,EAAgE,IAAhE;IAEA,KAAKA,MAAL,CAAY9xB,gBAAZ,CAA6B,OAA7B,EAAsC,KAAK,CAAAi3B,MAAL,CAAa78B,IAAb,CAAkB,IAAlB,CAAtC;EArBmE;EAwBrE,MAAMyG,IAANA,CAAA,EAAa;IACX,IAAI,KAAK,CAAA81B,gBAAT,EAA4B;MAC1B,MAAM,KAAK,CAAAA,gBAAL,CAAuBz1B,OAA7B;IAD0B;IAG5B,KAAK,CAAAy1B,gBAAL,GAAyB,IAAIpkC,2BAAJ,EAAzB;IAEA,IAAI;MACF,MAAM,KAAKoB,cAAL,CAAoBkN,IAApB,CAAyB,KAAKixB,MAA9B,CAAN;IADE,CAAJ,CAEE,OAAO/5B,EAAP,EAAW;MACX,KAAK,CAAA4+B,gBAAL,CAAuB3kC,OAAvB;MACA,MAAM+F,EAAN;IAFW;IAKb,MAAMm/B,iBAAA,GACJ,KAAK,CAAA3/B,MAAL,KAAiB4/B,2BAAA,CAAkBC,kBADrC;IAGA,IAAI,CAAC,KAAKN,iBAAN,IAA2BI,iBAA/B,EAAkD;MAChD,KAAKN,KAAL,CAAWrsB,KAAX;IADgD;IAGlD,KAAKyD,KAAL,CAAWqpB,WAAX,GAAyB,MAAM,KAAKrjC,IAAL,CAAUmC,GAAV,CAC5B,YAAW+gC,iBAAA,GAAoB,SAApB,GAAgC,OAA5C,EAD6B,CAA/B;EAnBW;EAwBb,MAAM9zB,KAANA,CAAA,EAAc;IACZ,IAAI,KAAKzP,cAAL,CAAoBgnB,MAApB,KAA+B,KAAKmX,MAAxC,EAAgD;MAC9C,KAAKn+B,cAAL,CAAoByP,KAApB,CAA0B,KAAK0uB,MAA/B;IAD8C;EADpC;EAMd,CAAAiF,OAAA,EAAU;IACR,MAAMO,QAAA,GAAW,KAAKV,KAAL,CAAW72B,KAA5B;IACA,IAAIu3B,QAAA,EAAUj+B,MAAV,GAAmB,CAAvB,EAA0B;MACxB,KAAK,CAAAk+B,cAAL,CAAqBD,QAArB;IADwB;EAFlB;EAOV,CAAAL,OAAA,EAAU;IACR,KAAK,CAAAM,cAAL,CAAqB,IAAI3mC,KAAJ,CAAU,2BAAV,CAArB;IACA,KAAK,CAAA+lC,gBAAL,CAAuB3kC,OAAvB;EAFQ;EAKV,CAAAulC,eAAgBD,QAAhB,EAA0B;IACxB,IAAI,CAAC,KAAK,CAAAryB,cAAV,EAA2B;MACzB;IADyB;IAG3B,KAAK7B,KAAL;IACA,KAAKwzB,KAAL,CAAW72B,KAAX,GAAmB,EAAnB;IAEA,KAAK,CAAAkF,cAAL,CAAqBqyB,QAArB;IACA,KAAK,CAAAryB,cAAL,GAAuB,IAAvB;EARwB;EAW1B,MAAMC,iBAANA,CAAwBD,cAAxB,EAAwC1N,MAAxC,EAAgD;IAC9C,IAAI,KAAK,CAAAo/B,gBAAT,EAA4B;MAC1B,MAAM,KAAK,CAAAA,gBAAL,CAAuBz1B,OAA7B;IAD0B;IAG5B,KAAK,CAAA+D,cAAL,GAAuBA,cAAvB;IACA,KAAK,CAAA1N,MAAL,GAAeA,MAAf;EAL8C;AA3F7B;AA7BrBzK,sBAAA,GAAAoR,cAAA;;;;;;;;;;;;ACeA,IAAA1P,SAAA,GAAAhC,mBAAA;AACA,IAAAgrC,iBAAA,GAAAhrC,mBAAA;AACA,IAAAkC,YAAA,GAAAlC,mBAAA;AAcA,MAAM8R,mBAAN,SAAkCm5B,gCAAlC,CAAiD;EAI/C9mC,YAAYQ,OAAZ,EAAqB;IACnB,MAAMA,OAAN;IACA,KAAKuC,eAAL,GAAuBvC,OAAA,CAAQuC,eAA/B;IAEA,KAAKK,QAAL,CAAcwX,GAAd,CACE,0BADF,EAEE,KAAK,CAAAmsB,gBAAL,CAAuBt9B,IAAvB,CAA4B,IAA5B,CAFF;EAJmB;EAUrB4J,MAAM2zB,sBAAA,GAAyB,KAA/B,EAAsC;IACpC,MAAM3zB,KAAN;IACA,KAAK4zB,YAAL,GAAoB,IAApB;IAEA,IAAI,CAACD,sBAAL,EAA6B;MAG3B,KAAKE,mBAAL,GAA2B,IAAItlC,2BAAJ,EAA3B;IAH2B;IAK7B,KAAKulC,qBAAL,GAA6B,KAA7B;EAToC;EAetC,MAAMC,cAANA,CAAqBC,gBAArB,EAAuC;IACrC,KAAKH,mBAAL,CAAyB7lC,OAAzB;IAEA,IAAIgmC,gBAAA,KAAqB,CAArB,IAA0B,CAAC,KAAKF,qBAApC,EAA2D;MAKzD,KAAKA,qBAAL,GAA6B,IAA7B;MAEA,MAAM,IAAAnL,iCAAA,EAAqB;QACzBxsB,MAAA,EAAQ,KAAKpM,QADY;QAEzBoY,IAAA,EAAM,yBAFmB;QAGzByc,KAAA,EAAO;MAHkB,CAArB,CAAN;MAMA,IAAI,CAAC,KAAKkP,qBAAV,EAAiC;QAC/B;MAD+B;IAbwB;IAiB3D,KAAKA,qBAAL,GAA6B,KAA7B;IAEA,KAAK/jC,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;MAC1CC,MAAA,EAAQ,IADkC;MAE1CghC;IAF0C,CAA5C;EAtBqC;EA+BvCC,UAAUpX,OAAV,EAAmB;IAAEqX,OAAF;IAAWlyB;EAAX,CAAnB,EAA0C;IACxC6a,OAAA,CAAQqN,OAAR,GAAkB,MAAM;MACtB,KAAKx6B,eAAL,CAAqBykC,kBAArB,CAAwCtX,OAAxC,EAAiDqX,OAAjD,EAA0DlyB,QAA1D;MACA,OAAO,KAAP;IAFsB,CAAxB;EADwC;EAU1CgF,OAAO;IAAEE,WAAF;IAAeysB,sBAAA,GAAyB;EAAxC,CAAP,EAAwD;IACtD,IAAI,KAAKC,YAAT,EAAuB;MACrB,KAAK5zB,KAAL,CAAW2zB,sBAAX;IADqB;IAGvB,KAAKC,YAAL,GAAoB1sB,WAAA,IAAe,IAAnC;IAEA,IAAI,CAACA,WAAL,EAAkB;MAChB,KAAK6sB,cAAL,CAA6C,CAA7C;MACA;IAFgB;IAKlB,MAAMK,QAAA,GAAWlmC,QAAA,CAASmmC,sBAAT,EAAjB;IACA,IAAIL,gBAAA,GAAmB,CAAvB;IACA,WAAW7rB,IAAX,IAAmBjB,WAAnB,EAAgC;MAC9B,MAAMotB,IAAA,GAAOptB,WAAA,CAAYiB,IAAZ,CAAb;MACA,MAAM+rB,OAAA,GAAUI,IAAA,CAAKJ,OAArB;QACElyB,QAAA,GAAW,IAAAlD,4BAAA,EACTw1B,IAAA,CAAKtyB,QADI,EAEa,IAFb,CADb;MAMA,MAAMse,GAAA,GAAMpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;MACA1O,GAAA,CAAIiU,SAAJ,GAAgB,UAAhB;MAEA,MAAM1X,OAAA,GAAU3uB,QAAA,CAAS8gC,aAAT,CAAuB,GAAvB,CAAhB;MACA,KAAKiF,SAAL,CAAepX,OAAf,EAAwB;QAAEqX,OAAF;QAAWlyB;MAAX,CAAxB;MACA6a,OAAA,CAAQwW,WAAR,GAAsB,KAAKmB,qBAAL,CAA2BxyB,QAA3B,CAAtB;MAEAse,GAAA,CAAI4O,MAAJ,CAAWrS,OAAX;MAEAuX,QAAA,CAASlF,MAAT,CAAgB5O,GAAhB;MACA0T,gBAAA;IAlB8B;IAqBhC,KAAKS,gBAAL,CAAsBL,QAAtB,EAAgCJ,gBAAhC;EAlCsD;EAwCxD,CAAAN,iBAAkB;IAAE1xB,QAAF;IAAYkyB;EAAZ,CAAlB,EAAyC;IACvC,MAAMQ,eAAA,GAAkB,KAAKb,mBAAL,CAAyB32B,OAAjD;IAEAw3B,eAAA,CAAgB5hC,IAAhB,CAAqB,MAAM;MACzB,IAAI4hC,eAAA,KAAoB,KAAKb,mBAAL,CAAyB32B,OAAjD,EAA0D;QACxD;MADwD;MAG1D,MAAMgK,WAAA,GAAc,KAAK0sB,YAAL,IAAqBjjC,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAzC;MAEA,WAAWuX,IAAX,IAAmBjB,WAAnB,EAAgC;QAC9B,IAAIlF,QAAA,KAAamG,IAAjB,EAAuB;UACrB;QADqB;MADO;MAKhCjB,WAAA,CAAYlF,QAAZ,IAAwB;QACtBA,QADsB;QAEtBkyB;MAFsB,CAAxB;MAIA,KAAKltB,MAAL,CAAY;QACVE,WADU;QAEVysB,sBAAA,EAAwB;MAFd,CAAZ;IAfyB,CAA3B;EAHuC;AA9GM;AA/BjD7qC,2BAAA,GAAAwR,mBAAA;;;;;;;;;;;;ACeA,IAAA/P,SAAA,GAAA/B,mBAAA;AAEA,MAAMmsC,mBAAA,GAAsB,CAAC,GAA7B;AACA,MAAMC,uBAAA,GAA0B,UAAhC;AAEA,MAAMnB,cAAN,CAAqB;EACnB9mC,YAAYQ,OAAZ,EAAqB;IACnB,IAAI,KAAKR,WAAL,KAAqB8mC,cAAzB,EAAyC;MACvC,MAAM,IAAI7mC,KAAJ,CAAU,mCAAV,CAAN;IADuC;IAGzC,KAAKoK,SAAL,GAAiB7J,OAAA,CAAQ6J,SAAzB;IACA,KAAKjH,QAAL,GAAgB5C,OAAA,CAAQ4C,QAAxB;IAEA,KAAKiQ,KAAL;EAPmB;EAUrBA,MAAA,EAAQ;IACN,KAAK60B,YAAL,GAAoB,IAApB;IACA,KAAKC,iBAAL,GAAyB,IAAzB;IACA,KAAKC,gBAAL,GAAwB,IAAxB;IAGA,KAAK/9B,SAAL,CAAeq8B,WAAf,GAA6B,EAA7B;IAGA,KAAKr8B,SAAL,CAAe7C,SAAf,CAAyB8E,MAAzB,CAAgC,qBAAhC;EATM;EAeR86B,eAAeiB,KAAf,EAAsB;IACpB,MAAM,IAAIpoC,KAAJ,CAAU,iCAAV,CAAN;EADoB;EAOtBqnC,UAAUpX,OAAV,EAAmBjpB,MAAnB,EAA2B;IACzB,MAAM,IAAIhH,KAAJ,CAAU,4BAAV,CAAN;EADyB;EAO3B4nC,sBAAsBxV,GAAtB,EAA2B;IAGzB,OACE,IAAAD,8BAAA,EAAqBC,GAArB,EAAiD,IAAjD,KACgB,QAFlB;EAHyB;EAc3BiW,iBAAiB3U,GAAjB,EAAsB4U,MAAA,GAAS,KAA/B,EAAsC;IACpC,MAAMC,OAAA,GAAUjnC,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAhB;IACAmG,OAAA,CAAQZ,SAAR,GAAoB,iBAApB;IACA,IAAIW,MAAJ,EAAY;MACVC,OAAA,CAAQhhC,SAAR,CAAkBC,GAAlB,CAAsB,iBAAtB;IADU;IAGZ+gC,OAAA,CAAQjL,OAAR,GAAkBjuB,GAAA,IAAO;MACvBA,GAAA,CAAIm5B,eAAJ;MACAD,OAAA,CAAQhhC,SAAR,CAAkB2f,MAAlB,CAAyB,iBAAzB;MAEA,IAAI7X,GAAA,CAAI0d,QAAR,EAAkB;QAChB,MAAM0b,aAAA,GAAgB,CAACF,OAAA,CAAQhhC,SAAR,CAAkBgL,QAAlB,CAA2B,iBAA3B,CAAvB;QACA,KAAKm2B,eAAL,CAAqBhV,GAArB,EAA0B+U,aAA1B;MAFgB;IAJK,CAAzB;IASA/U,GAAA,CAAIiV,OAAJ,CAAYJ,OAAZ;EAfoC;EA0BtCG,gBAAgBE,IAAhB,EAAsB3Q,IAAA,GAAO,KAA7B,EAAoC;IAClC,KAAKiQ,iBAAL,GAAyBjQ,IAAzB;IACA,WAAWsQ,OAAX,IAAsBK,IAAA,CAAKC,gBAAL,CAAsB,kBAAtB,CAAtB,EAAiE;MAC/DN,OAAA,CAAQhhC,SAAR,CAAkB2f,MAAlB,CAAyB,iBAAzB,EAA4C,CAAC+Q,IAA7C;IAD+D;EAF/B;EAWpC6Q,oBAAA,EAAsB;IACpB,KAAKJ,eAAL,CAAqB,KAAKt+B,SAA1B,EAAqC,CAAC,KAAK89B,iBAA3C;EADoB;EAOtBL,iBAAiBL,QAAjB,EAA2BY,KAA3B,EAAkCW,aAAA,GAAgB,KAAlD,EAAyD;IACvD,IAAIA,aAAJ,EAAmB;MACjB,KAAK3+B,SAAL,CAAe7C,SAAf,CAAyBC,GAAzB,CAA6B,qBAA7B;MAEA,KAAK0gC,iBAAL,GAAyB,CAACV,QAAA,CAASnP,aAAT,CAAuB,kBAAvB,CAA1B;IAHiB;IAKnB,KAAKjuB,SAAL,CAAek4B,MAAf,CAAsBkF,QAAtB;IAEA,KAAKL,cAAL,CAAoBiB,KAApB;EARuD;EAWzDhuB,OAAOpT,MAAP,EAAe;IACb,MAAM,IAAIhH,KAAJ,CAAU,yBAAV,CAAN;EADa;EAOfgpC,uBAAuBC,QAAA,GAAW,IAAlC,EAAwC;IACtC,IAAI,KAAKd,gBAAT,EAA2B;MAEzB,KAAKA,gBAAL,CAAsB5gC,SAAtB,CAAgC8E,MAAhC,CAAuC27B,uBAAvC;MACA,KAAKG,gBAAL,GAAwB,IAAxB;IAHyB;IAK3B,IAAIc,QAAJ,EAAc;MACZA,QAAA,CAAS1hC,SAAT,CAAmBC,GAAnB,CAAuBwgC,uBAAvB;MACA,KAAKG,gBAAL,GAAwBc,QAAxB;IAFY;EANwB;EAexCC,yBAAyBD,QAAzB,EAAmC;IACjC,IAAI,CAACA,QAAL,EAAe;MACb;IADa;IAKf,IAAIE,WAAA,GAAcF,QAAA,CAASpR,UAA3B;IACA,OAAOsR,WAAA,IAAeA,WAAA,KAAgB,KAAK/+B,SAA3C,EAAsD;MACpD,IAAI++B,WAAA,CAAY5hC,SAAZ,CAAsBgL,QAAtB,CAA+B,UAA/B,CAAJ,EAAgD;QAC9C,MAAMg2B,OAAA,GAAUY,WAAA,CAAYC,iBAA5B;QACAb,OAAA,EAAShhC,SAAT,CAAmB8E,MAAnB,CAA0B,iBAA1B;MAF8C;MAIhD88B,WAAA,GAAcA,WAAA,CAAYtR,UAA1B;IALoD;IAOtD,KAAKmR,sBAAL,CAA4BC,QAA5B;IAEA,KAAK7+B,SAAL,CAAei/B,QAAf,CACEJ,QAAA,CAASxY,UADX,EAEEwY,QAAA,CAAS3Y,SAAT,GAAqByX,mBAFvB;EAhBiC;AAnIhB;AApBrB7rC,sBAAA,GAAA2qC,cAAA;;;;;;;;;;;;ACeA,IAAAjpC,SAAA,GAAAhC,mBAAA;AACA,IAAA+B,SAAA,GAAA/B,mBAAA;AACA,IAAA0tC,YAAA,GAAA1tC,mBAAA;AAWA,MAAMiR,cAAN,CAAqB;EACnB,CAAAkd,MAAA,GAAU+D,oBAAA,CAAWC,MAArB;EAEA,CAAAwb,UAAA,GAAc,IAAd;EAKAxpC,YAAY;IAAEqK,SAAF;IAAajH,QAAb;IAAuB2J,gBAAA,GAAmBghB,oBAAA,CAAWC;EAArD,CAAZ,EAA2E;IACzE,KAAK3jB,SAAL,GAAiBA,SAAjB;IACA,KAAKjH,QAAL,GAAgBA,QAAhB;IAEA,KAAK,CAAAqmC,iBAAL;IAIAroC,OAAA,CAAQC,OAAR,GAAkB8E,IAAlB,CAAuB,MAAM;MAC3B,KAAK2nB,UAAL,CAAgB/gB,gBAAhB;IAD2B,CAA7B;EARyE;EAgB3E,IAAI28B,UAAJA,CAAA,EAAiB;IACf,OAAO,KAAK,CAAA1f,MAAZ;EADe;EAQjB8D,WAAW6b,IAAX,EAAiB;IACf,IAAI,KAAK,CAAAH,UAAL,KAAqB,IAAzB,EAA+B;MAE7B;IAF6B;IAI/B,IAAIG,IAAA,KAAS,KAAK,CAAA3f,MAAlB,EAA2B;MACzB;IADyB;IAI3B,MAAM4f,iBAAA,GAAoBA,CAAA,KAAM;MAC9B,QAAQ,KAAK,CAAA5f,MAAb;QACE,KAAK+D,oBAAA,CAAWC,MAAhB;UACE;QACF,KAAKD,oBAAA,CAAWE,IAAhB;UACE,KAAK4b,SAAL,CAAeC,UAAf;UACA;QACF,KAAK/b,oBAAA,CAAW4B,IAAhB;MANF;IAD8B,CAAhC;IAaA,QAAQga,IAAR;MACE,KAAK5b,oBAAA,CAAWC,MAAhB;QACE4b,iBAAA;QACA;MACF,KAAK7b,oBAAA,CAAWE,IAAhB;QACE2b,iBAAA;QACA,KAAKC,SAAL,CAAeE,QAAf;QACA;MACF,KAAKhc,oBAAA,CAAW4B,IAAhB;MAEA;QACEnpB,OAAA,CAAQK,KAAR,CAAe,gBAAe8iC,IAAK,4BAAnC;QACA;IAZJ;IAgBA,KAAK,CAAA3f,MAAL,GAAe2f,IAAf;IAEA,KAAKvmC,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;MAC1CC,MAAA,EAAQ,IADkC;MAE1CsjC;IAF0C,CAA5C;EAxCe;EA8CjB,CAAAF,kBAAA,EAAqB;IACnB,KAAKrmC,QAAL,CAAcwX,GAAd,CAAkB,kBAAlB,EAAsCtL,GAAA,IAAO;MAC3C,KAAKwe,UAAL,CAAgBxe,GAAA,CAAIq6B,IAApB;IAD2C,CAA7C;IAIA,IAAIp/B,oBAAA,GAAuB6B,8BAAA,CAAqB1G,IAAhD;MACE0hB,qBAAA,GAAwB2H,+BAAA,CAAsBC,MADhD;IAGA,MAAMgb,aAAA,GAAgBA,CAAA,KAAM;MAC1B,MAAMR,UAAA,GAAa,KAAK,CAAAxf,MAAxB;MAEA,KAAK8D,UAAL,CAAgBC,oBAAA,CAAWC,MAA3B;MACA,KAAK,CAAAwb,UAAL,KAAqBA,UAArB;IAJ0B,CAA5B;IAMA,MAAMS,YAAA,GAAeA,CAAA,KAAM;MACzB,MAAMT,UAAA,GAAa,KAAK,CAAAA,UAAxB;MAEA,IACEA,UAAA,KAAe,IAAf,IACAj/B,oBAAA,KAAyB6B,8BAAA,CAAqB1G,IAD9C,IAEA0hB,qBAAA,KAA0B2H,+BAAA,CAAsBC,MAHlD,EAIE;QACA,KAAK,CAAAwa,UAAL,GAAmB,IAAnB;QACA,KAAK1b,UAAL,CAAgB0b,UAAhB;MAFA;IAPuB,CAA3B;IAaA,KAAKpmC,QAAL,CAAcwX,GAAd,CAAkB,uBAAlB,EAA2CtL,GAAA,IAAO;MAChD,IAAI,KAAK,CAAAk6B,UAAL,KAAqB,IAAzB,EAA+B;QAC7Bj/B,oBAAA,GAAuB6B,8BAAA,CAAqB1G,IAA5C;QACA0hB,qBAAA,GAAwB2H,+BAAA,CAAsBC,MAA9C;QAEAib,YAAA;MAJ6B;IADiB,CAAlD;IASA,KAAK7mC,QAAL,CAAcwX,GAAd,CAAkB,6BAAlB,EAAiD,CAAC;MAAEgM;IAAF,CAAD,KAAc;MAC7Drc,oBAAA,GAAuBqc,IAAvB;MAEA,IAAIA,IAAA,KAASxa,8BAAA,CAAqB1G,IAAlC,EAAwC;QACtCukC,YAAA;MADsC,CAAxC,MAEO;QACLD,aAAA;MADK;IALsD,CAA/D;IAUA,KAAK5mC,QAAL,CAAcwX,GAAd,CAAkB,yBAAlB,EAA6C,CAAC;MAAEyM;IAAF,CAAD,KAAe;MAC1DD,qBAAA,GAAwBC,KAAxB;MAEA,IAAIA,KAAA,KAAU0H,+BAAA,CAAsBC,MAApC,EAA4C;QAC1Cib,YAAA;MAD0C,CAA5C,MAEO,IAAI5iB,KAAA,KAAU0H,+BAAA,CAAsBG,UAApC,EAAgD;QACrD8a,aAAA;MADqD;IALG,CAA5D;EA9CmB;EA4DrB,IAAIH,SAAJA,CAAA,EAAgB;IACd,OAAO,IAAAnpC,gBAAA,EACL,IADK,EAEL,WAFK,EAGL,IAAIwpC,sBAAJ,CAAc;MACZha,OAAA,EAAS,KAAK7lB;IADF,CAAd,CAHK,CAAP;EADc;AA1IG;AA5BrBlO,sBAAA,GAAA2Q,cAAA;;;;;;;;;;;;ACiBA,MAAMq9B,cAAA,GAAiB,kBAAvB;AAEA,MAAMD,SAAN,CAAgB;EAKdlqC,YAAY;IAAEkwB;EAAF,CAAZ,EAAyB;IACvB,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAK3uB,QAAL,GAAgB2uB,OAAA,CAAQka,aAAxB;IAIA,KAAKL,QAAL,GAAgB,KAAKA,QAAL,CAActgC,IAAd,CAAmB,IAAnB,CAAhB;IACA,KAAKqgC,UAAL,GAAkB,KAAKA,UAAL,CAAgBrgC,IAAhB,CAAqB,IAArB,CAAlB;IACA,KAAK0d,MAAL,GAAc,KAAKA,MAAL,CAAY1d,IAAZ,CAAiB,IAAjB,CAAd;IACA,KAAK4gC,YAAL,GAAoB,KAAK,CAAAC,WAAL,CAAkB7gC,IAAlB,CAAuB,IAAvB,CAApB;IACA,KAAK8gC,YAAL,GAAoB,KAAK,CAAAC,WAAL,CAAkB/gC,IAAlB,CAAuB,IAAvB,CAApB;IACA,KAAKghC,OAAL,GAAe,KAAK,CAAAC,MAAL,CAAajhC,IAAb,CAAkB,IAAlB,CAAf;IAIA,MAAMkhC,OAAA,GAAW,KAAKA,OAAL,GAAeppC,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAhC;IACAsI,OAAA,CAAQ/C,SAAR,GAAoB,sBAApB;EAhBuB;EAsBzBmC,SAAA,EAAW;IACT,IAAI,CAAC,KAAK/f,MAAV,EAAkB;MAChB,KAAKA,MAAL,GAAc,IAAd;MACA,KAAKkG,OAAL,CAAa7gB,gBAAb,CAA8B,WAA9B,EAA2C,KAAKg7B,YAAhD,EAA8D,IAA9D;MACA,KAAKna,OAAL,CAAa1oB,SAAb,CAAuBC,GAAvB,CAA2B0iC,cAA3B;IAHgB;EADT;EAWXL,WAAA,EAAa;IACX,IAAI,KAAK9f,MAAT,EAAiB;MACf,KAAKA,MAAL,GAAc,KAAd;MACA,KAAKkG,OAAL,CAAahS,mBAAb,CAAiC,WAAjC,EAA8C,KAAKmsB,YAAnD,EAAiE,IAAjE;MACA,KAAKI,OAAL;MACA,KAAKva,OAAL,CAAa1oB,SAAb,CAAuB8E,MAAvB,CAA8B69B,cAA9B;IAJe;EADN;EASbhjB,OAAA,EAAS;IACP,IAAI,KAAK6C,MAAT,EAAiB;MACf,KAAK8f,UAAL;IADe,CAAjB,MAEO;MACL,KAAKC,QAAL;IADK;EAHA;EAeTa,aAAaC,IAAb,EAAmB;IAEjB,OAAOA,IAAA,CAAKjgC,OAAL,CACL,uEADK,CAAP;EAFiB;EAOnB,CAAA0/B,YAAa9mB,KAAb,EAAoB;IAClB,IAAIA,KAAA,CAAMiV,MAAN,KAAiB,CAAjB,IAAsB,KAAKmS,YAAL,CAAkBpnB,KAAA,CAAMhU,MAAxB,CAA1B,EAA2D;MACzD;IADyD;IAG3D,IAAIgU,KAAA,CAAMsnB,cAAV,EAA0B;MACxB,IAAI;QAEFtnB,KAAA,CAAMsnB,cAAN,CAAqBxd,OAArB;MAFE,CAAJ,CAGE,MAAM;QAEN;MAFM;IAJgB;IAU1B,KAAKyd,eAAL,GAAuB,KAAK7a,OAAL,CAAalY,UAApC;IACA,KAAKgzB,cAAL,GAAsB,KAAK9a,OAAL,CAAajY,SAAnC;IACA,KAAKgzB,YAAL,GAAoBznB,KAAA,CAAM8G,OAA1B;IACA,KAAK4gB,YAAL,GAAoB1nB,KAAA,CAAM+G,OAA1B;IACA,KAAKhpB,QAAL,CAAc8N,gBAAd,CAA+B,WAA/B,EAA4C,KAAKk7B,YAAjD,EAA+D,IAA/D;IACA,KAAKhpC,QAAL,CAAc8N,gBAAd,CAA+B,SAA/B,EAA0C,KAAKo7B,OAA/C,EAAwD,IAAxD;IAIA,KAAKva,OAAL,CAAa7gB,gBAAb,CAA8B,QAA9B,EAAwC,KAAKo7B,OAA7C,EAAsD,IAAtD;IACAjnB,KAAA,CAAM/T,cAAN;IACA+T,KAAA,CAAMilB,eAAN;IAEA,MAAM0C,cAAA,GAAiB5pC,QAAA,CAAS82B,aAAhC;IACA,IAAI8S,cAAA,IAAkB,CAACA,cAAA,CAAe34B,QAAf,CAAwBgR,KAAA,CAAMhU,MAA9B,CAAvB,EAA8D;MAC5D27B,cAAA,CAAeC,IAAf;IAD4D;EA5B5C;EAiCpB,CAAAZ,YAAahnB,KAAb,EAAoB;IAClB,KAAK0M,OAAL,CAAahS,mBAAb,CAAiC,QAAjC,EAA2C,KAAKusB,OAAhD,EAAyD,IAAzD;IACA,IAAI,EAAEjnB,KAAA,CAAM6nB,OAAN,GAAgB,CAAhB,CAAN,EAA0B;MAExB,KAAKZ,OAAL;MACA;IAHwB;IAK1B,MAAMa,KAAA,GAAQ9nB,KAAA,CAAM8G,OAAN,GAAgB,KAAK2gB,YAAnC;IACA,MAAMM,KAAA,GAAQ/nB,KAAA,CAAM+G,OAAN,GAAgB,KAAK2gB,YAAnC;IACA,KAAKhb,OAAL,CAAaoZ,QAAb,CAAsB;MACpBjkB,GAAA,EAAK,KAAK2lB,cAAL,GAAsBO,KADP;MAEpBjmB,IAAA,EAAM,KAAKylB,eAAL,GAAuBO,KAFT;MAGpBE,QAAA,EAAU;IAHU,CAAtB;IAMA,IAAI,CAAC,KAAKb,OAAL,CAAa7S,UAAlB,EAA8B;MAC5Bv2B,QAAA,CAASkqC,IAAT,CAAclJ,MAAd,CAAqB,KAAKoI,OAA1B;IAD4B;EAfZ;EAoBpB,CAAAD,OAAA,EAAU;IACR,KAAKxa,OAAL,CAAahS,mBAAb,CAAiC,QAAjC,EAA2C,KAAKusB,OAAhD,EAAyD,IAAzD;IACA,KAAKlpC,QAAL,CAAc2c,mBAAd,CAAkC,WAAlC,EAA+C,KAAKqsB,YAApD,EAAkE,IAAlE;IACA,KAAKhpC,QAAL,CAAc2c,mBAAd,CAAkC,SAAlC,EAA6C,KAAKusB,OAAlD,EAA2D,IAA3D;IAEA,KAAKE,OAAL,CAAar+B,MAAb;EALQ;AA1HI;AAnBhBnQ,iBAAA,GAAA+tC,SAAA;;;;;;;;;;;;ACeA,IAAAtsC,SAAA,GAAA/B,mBAAA;AACA,IAAAgC,SAAA,GAAAhC,mBAAA;AAEA,MAAM6vC,qBAAA,GAAwB,GAA9B;AAGA,MAAMC,kBAAA,GAAqB,CAAC,OAAD,EAAU,OAAV,EAAmB,IAAnB,CAA3B;AAIA,MAAMC,aAAA,GAAgB;EACpB,UAAU,QADU;EAEpB,UAAU;AAFU,CAAtB;AAIA,MAAMC,iBAAA,GAAoB;EACxB,WAAW,IADa;EAExB,WAAW;AAFa,CAA1B;AAKA,SAASC,WAATA,CAAqBl5B,IAArB,EAA2Bm5B,UAA3B,EAAuCC,SAAvC,EAAkD;EAChD,MAAM3X,KAAA,GAAQ0X,UAAA,GAAan5B,IAAA,CAAKyhB,KAAlB,GAA0BzhB,IAAA,CAAK0hB,MAA7C;EACA,MAAMA,MAAA,GAASyX,UAAA,GAAan5B,IAAA,CAAK0hB,MAAlB,GAA2B1hB,IAAA,CAAKyhB,KAA/C;EAEA,OAAO2X,SAAA,CAAU,GAAG3X,KAAM,IAAGC,MAAZ,EAAV,CAAP;AAJgD;AAclD,MAAM3nB,qBAAN,CAA4B;EAC1B,CAAAs/B,SAAA,GAAa,IAAb;EAUAjsC,YACE;IAAEmhC,MAAF;IAAU+K,MAAV;IAAkBC;EAAlB,CADF,EAEEnpC,cAFF,EAGEI,QAHF,EAIEC,IAJF,EAKE+oC,cALF,EAME;IACA,KAAKjL,MAAL,GAAcA,MAAd;IACA,KAAK+K,MAAL,GAAcA,MAAd;IACA,KAAKlpC,cAAL,GAAsBA,cAAtB;IACA,KAAKK,IAAL,GAAYA,IAAZ;IACA,KAAKgpC,eAAL,GAAuBD,cAAvB;IAEA,KAAK,CAAA/4B,KAAL;IAEA84B,WAAA,CAAY98B,gBAAZ,CAA6B,OAA7B,EAAsC,KAAKoD,KAAL,CAAWhJ,IAAX,CAAgB,IAAhB,CAAtC;IAEA,KAAKzG,cAAL,CAAoB++B,QAApB,CAA6B,KAAKZ,MAAlC;IAEA/9B,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6BtL,GAAA,IAAO;MAClC,KAAKg9B,kBAAL,GAA0Bh9B,GAAA,CAAIwO,UAA9B;IADkC,CAApC;IAGA1a,QAAA,CAASwX,GAAT,CAAa,kBAAb,EAAiCtL,GAAA,IAAO;MACtC,KAAKi9B,cAAL,GAAsBj9B,GAAA,CAAImP,aAA1B;IADsC,CAAxC;IAIA,KAAK+tB,kBAAL,GAA0B,IAA1B;IACAnpC,IAAA,CAAKopC,WAAL,GAAmBtmC,IAAnB,CAAwB9I,MAAA,IAAU;MAChC,KAAKmvC,kBAAL,GAA0Bb,kBAAA,CAAmBvjC,QAAnB,CAA4B/K,MAA5B,CAA1B;IADgC,CAAlC;EArBA;EA6BF,MAAM6S,IAANA,CAAA,EAAa;IACX,MAAM9O,OAAA,CAAQmS,GAAR,CAAY,CAChB,KAAKvQ,cAAL,CAAoBkN,IAApB,CAAyB,KAAKixB,MAA9B,CADgB,EAEhB,KAAKuL,wBAAL,CAA8Bn8B,OAFd,CAAZ,CAAN;IAIA,MAAM5B,iBAAA,GAAoB,KAAK29B,kBAA/B;IACA,MAAM7tB,aAAA,GAAgB,KAAK8tB,cAA3B;IAIA,IACE,KAAK,CAAAN,SAAL,IACAt9B,iBAAA,KAAsB,KAAK,CAAAs9B,SAAL,CAAgBK,kBADtC,IAEA7tB,aAAA,KAAkB,KAAK,CAAAwtB,SAAL,CAAgBM,cAHpC,EAIE;MACA,KAAK,CAAAI,QAAL;MACA;IAFA;IAMF,MAAM;MACJ7wB,IADI;MAIJE;IAJI,IAKF,MAAM,KAAKla,WAAL,CAAiBma,WAAjB,EALV;IAOA,MAAM,CACJ2wB,QADI,EAEJC,QAFI,EAGJC,YAHI,EAIJC,gBAJI,EAKJC,QALI,EAMJC,YANI,IAOF,MAAM7rC,OAAA,CAAQmS,GAAR,CAAY,CACpB,KAAK84B,eAAL,EADoB,EAEpB,KAAK,CAAAa,aAAL,CAAoBlxB,aAApB,CAFoB,EAGpB,KAAK,CAAAmxB,SAAL,CAAgBrxB,IAAA,CAAKsxB,YAArB,CAHoB,EAIpB,KAAK,CAAAD,SAAL,CAAgBrxB,IAAA,CAAKuxB,OAArB,CAJoB,EAKpB,KAAKvrC,WAAL,CAAiBwrC,OAAjB,CAAyB3+B,iBAAzB,EAA4CxI,IAA5C,CAAiDsS,OAAA,IAAW;MAC1D,OAAO,KAAK,CAAA80B,aAAL,CAAoB,IAAA1Z,2BAAA,EAAkBpb,OAAlB,CAApB,EAAgDgG,aAAhD,CAAP;IAD0D,CAA5D,CALoB,EAQpB,KAAK,CAAA+uB,kBAAL,CAAyB1xB,IAAA,CAAK2xB,YAA9B,CARoB,CAAZ,CAPV;IAkBA,KAAK,CAAAxB,SAAL,GAAkBjoC,MAAA,CAAO0pC,MAAP,CAAc;MAC9Bd,QAD8B;MAE9BC,QAF8B;MAG9B/nC,KAAA,EAAOgX,IAAA,CAAKU,KAHkB;MAI9BmxB,MAAA,EAAQ7xB,IAAA,CAAK8xB,MAJiB;MAK9BC,OAAA,EAAS/xB,IAAA,CAAKgyB,OALgB;MAM9BC,QAAA,EAAUjyB,IAAA,CAAKkyB,QANe;MAO9BlB,YAP8B;MAQ9BC,gBAR8B;MAS9BkB,OAAA,EAASnyB,IAAA,CAAKQ,OATgB;MAU9B4xB,QAAA,EAAUpyB,IAAA,CAAKM,QAVe;MAW9BlG,OAAA,EAAS4F,IAAA,CAAKK,gBAXgB;MAY9BgyB,SAAA,EAAW,KAAKrsC,WAAL,CAAiBsP,QAZE;MAa9B47B,QAb8B;MAc9BoB,UAAA,EAAYnB,YAdkB;MAe9BX,kBAAA,EAAoB39B,iBAfU;MAgB9B49B,cAAA,EAAgB9tB;IAhBc,CAAd,CAAlB;IAkBA,KAAK,CAAAkuB,QAAL;IAIA,MAAM;MAAEjkC;IAAF,IAAa,MAAM,KAAK5G,WAAL,CAAiBgV,eAAjB,EAAzB;IACA,IAAIkF,aAAA,KAAkBtT,MAAtB,EAA8B;MAC5B;IAD4B;IAG9B,MAAMvI,IAAA,GAAO6D,MAAA,CAAO8P,MAAP,CAAc9P,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAd,EAAmC,KAAK,CAAAgoC,SAAxC,CAAb;IACA9rC,IAAA,CAAK0sC,QAAL,GAAgB,MAAM,KAAK,CAAAK,aAAL,CAAoBxkC,MAApB,CAAtB;IAEA,KAAK,CAAAujC,SAAL,GAAkBjoC,MAAA,CAAO0pC,MAAP,CAAcvtC,IAAd,CAAlB;IACA,KAAK,CAAAwsC,QAAL;EA3EW;EAiFb,MAAMl6B,KAANA,CAAA,EAAc;IACZ,KAAKzP,cAAL,CAAoByP,KAApB,CAA0B,KAAK0uB,MAA/B;EADY;EAWdjuB,YAAYpR,WAAZ,EAAyB;IACvB,IAAI,KAAKA,WAAT,EAAsB;MACpB,KAAK,CAAAuR,KAAL;MACA,KAAK,CAAAs5B,QAAL,CAAe,IAAf;IAFoB;IAItB,IAAI,CAAC7qC,WAAL,EAAkB;MAChB;IADgB;IAGlB,KAAKA,WAAL,GAAmBA,WAAnB;IAEA,KAAK4qC,wBAAL,CAA8BrrC,OAA9B;EAVuB;EAazB,CAAAgS,MAAA,EAAS;IACP,KAAKvR,WAAL,GAAmB,IAAnB;IAEA,KAAK,CAAAmqC,SAAL,GAAkB,IAAlB;IACA,KAAKS,wBAAL,GAAgC,IAAI9qC,2BAAJ,EAAhC;IACA,KAAK0qC,kBAAL,GAA0B,CAA1B;IACA,KAAKC,cAAL,GAAsB,CAAtB;EANO;EAcT,CAAAI,SAAUt5B,KAAA,GAAQ,KAAlB,EAAyB;IACvB,IAAIA,KAAA,IAAS,CAAC,KAAK,CAAA44B,SAAnB,EAA+B;MAC7B,WAAWz/B,EAAX,IAAiB,KAAK0/B,MAAtB,EAA8B;QAC5B,KAAKA,MAAL,CAAY1/B,EAAZ,EAAgBk6B,WAAhB,GAA8BgF,qBAA9B;MAD4B;MAG9B;IAJ6B;IAM/B,IAAI,KAAK1oC,cAAL,CAAoBgnB,MAApB,KAA+B,KAAKmX,MAAxC,EAAgD;MAG9C;IAH8C;IAKhD,WAAW30B,EAAX,IAAiB,KAAK0/B,MAAtB,EAA8B;MAC5B,MAAM3E,OAAA,GAAU,KAAK,CAAA0E,SAAL,CAAgBz/B,EAAhB,CAAhB;MACA,KAAK0/B,MAAL,CAAY1/B,EAAZ,EAAgBk6B,WAAhB,GACEa,OAAA,IAAWA,OAAA,KAAY,CAAvB,GAA2BA,OAA3B,GAAqCmE,qBADvC;IAF4B;EAZP;EAmBzB,MAAM,CAAAwB,aAANA,CAAqBL,QAAA,GAAW,CAAhC,EAAmC;IACjC,MAAMwB,EAAA,GAAKxB,QAAA,GAAW,IAAtB;MACEyB,EAAA,GAAKD,EAAA,GAAK,IADZ;IAEA,IAAI,CAACA,EAAL,EAAS;MACP,OAAOx5B,SAAP;IADO;IAGT,OAAO,KAAKxR,IAAL,CAAUmC,GAAV,CAAe,uBAAsB8oC,EAAA,IAAM,CAAN,GAAU,IAAV,GAAiB,IAAxC,EAAd,EAA8D;MACnEC,OAAA,EAASD,EAAA,IAAM,CAAN,IAAY,EAACA,EAAA,CAAGE,WAAH,CAAe,CAAf,CAAD,EAAoBC,cAArB,EAD+C;MAEnEC,OAAA,EAASJ,EAAA,GAAK,CAAL,IAAW,EAACD,EAAA,CAAGG,WAAH,CAAe,CAAf,CAAD,EAAoBC,cAArB,EAFgD;MAGnEE,MAAA,EAAQ9B,QAAA,CAAS4B,cAAT;IAH2D,CAA9D,CAAP;EANiC;EAanC,MAAM,CAAAlB,aAANA,CAAqBqB,cAArB,EAAqCnwB,aAArC,EAAoD;IAClD,IAAI,CAACmwB,cAAL,EAAqB;MACnB,OAAO/5B,SAAP;IADmB;IAIrB,IAAI4J,aAAA,GAAgB,GAAhB,KAAwB,CAA5B,EAA+B;MAC7BmwB,cAAA,GAAiB;QACfva,KAAA,EAAOua,cAAA,CAAeta,MADP;QAEfA,MAAA,EAAQsa,cAAA,CAAeva;MAFR,CAAjB;IAD6B;IAM/B,MAAM0X,UAAA,GAAa,IAAA1U,+BAAA,EAAsBuX,cAAtB,CAAnB;IAEA,IAAIC,UAAA,GAAa;MACfxa,KAAA,EAAO5d,IAAA,CAAKC,KAAL,CAAWk4B,cAAA,CAAeva,KAAf,GAAuB,GAAlC,IAAyC,GADjC;MAEfC,MAAA,EAAQ7d,IAAA,CAAKC,KAAL,CAAWk4B,cAAA,CAAeta,MAAf,GAAwB,GAAnC,IAA0C;IAFnC,CAAjB;IAKA,IAAIwa,eAAA,GAAkB;MACpBza,KAAA,EAAO5d,IAAA,CAAKC,KAAL,CAAWk4B,cAAA,CAAeva,KAAf,GAAuB,IAAvB,GAA8B,EAAzC,IAA+C,EADlC;MAEpBC,MAAA,EAAQ7d,IAAA,CAAKC,KAAL,CAAWk4B,cAAA,CAAeta,MAAf,GAAwB,IAAxB,GAA+B,EAA1C,IAAgD;IAFpC,CAAtB;IAKA,IAAIya,OAAA,GACFjD,WAAA,CAAY+C,UAAZ,EAAwB9C,UAAxB,EAAoCH,aAApC,KACAE,WAAA,CAAYgD,eAAZ,EAA6B/C,UAA7B,EAAyCF,iBAAzC,CAFF;IAIA,IACE,CAACkD,OAAD,IACA,EACE5X,MAAA,CAAOC,SAAP,CAAiB0X,eAAA,CAAgBza,KAAjC,KACA8C,MAAA,CAAOC,SAAP,CAAiB0X,eAAA,CAAgBxa,MAAjC,CADA,CAHJ,EAME;MAIA,MAAM0a,gBAAA,GAAmB;QACvB3a,KAAA,EAAOua,cAAA,CAAeva,KAAf,GAAuB,IADP;QAEvBC,MAAA,EAAQsa,cAAA,CAAeta,MAAf,GAAwB;MAFT,CAAzB;MAIA,MAAM2a,cAAA,GAAiB;QACrB5a,KAAA,EAAO5d,IAAA,CAAKC,KAAL,CAAWo4B,eAAA,CAAgBza,KAA3B,CADc;QAErBC,MAAA,EAAQ7d,IAAA,CAAKC,KAAL,CAAWo4B,eAAA,CAAgBxa,MAA3B;MAFa,CAAvB;MAMA,IACE7d,IAAA,CAAKqT,GAAL,CAASklB,gBAAA,CAAiB3a,KAAjB,GAAyB4a,cAAA,CAAe5a,KAAjD,IAA0D,GAA1D,IACA5d,IAAA,CAAKqT,GAAL,CAASklB,gBAAA,CAAiB1a,MAAjB,GAA0B2a,cAAA,CAAe3a,MAAlD,IAA4D,GAF9D,EAGE;QACAya,OAAA,GAAUjD,WAAA,CAAYmD,cAAZ,EAA4BlD,UAA5B,EAAwCF,iBAAxC,CAAV;QACA,IAAIkD,OAAJ,EAAa;UAGXF,UAAA,GAAa;YACXxa,KAAA,EAAO5d,IAAA,CAAKC,KAAL,CAAYu4B,cAAA,CAAe5a,KAAf,GAAuB,IAAxB,GAAgC,GAA3C,IAAkD,GAD9C;YAEXC,MAAA,EAAQ7d,IAAA,CAAKC,KAAL,CAAYu4B,cAAA,CAAe3a,MAAf,GAAwB,IAAzB,GAAiC,GAA5C,IAAmD;UAFhD,CAAb;UAIAwa,eAAA,GAAkBG,cAAlB;QAPW;MAFb;IAjBF;IA+BF,MAAM,CAAC;MAAE5a,KAAF;MAASC;IAAT,CAAD,EAAoB4a,IAApB,EAA0B1zB,IAA1B,EAAgC2zB,WAAhC,IAA+C,MAAM/tC,OAAA,CAAQmS,GAAR,CAAY,CACrE,KAAKi5B,kBAAL,GAA0BqC,UAA1B,GAAuCC,eAD8B,EAErE,KAAKzrC,IAAL,CAAUmC,GAAV,CACG,sCACC,KAAKgnC,kBAAL,GAA0B,QAA1B,GAAqC,aADvC,EADF,CAFqE,EAOrEuC,OAAA,IACE,KAAK1rC,IAAL,CAAUmC,GAAV,CACG,sCAAqCupC,OAAA,CAAQ7c,WAAR,EAAtC,EADF,CARmE,EAWrE,KAAK7uB,IAAL,CAAUmC,GAAV,CACG,6CACCumC,UAAA,GAAa,UAAb,GAA0B,WAD5B,EADF,CAXqE,CAAZ,CAA3D;IAkBA,OAAO,KAAK1oC,IAAL,CAAUmC,GAAV,CACJ,2CAA0CgW,IAAA,GAAO,OAAP,GAAiB,EAAG,QAD1D,EAEL;MACE6Y,KAAA,EAAOA,KAAA,CAAMoa,cAAN,EADT;MAEEna,MAAA,EAAQA,MAAA,CAAOma,cAAP,EAFV;MAGES,IAHF;MAIE1zB,IAJF;MAKE2zB;IALF,CAFK,CAAP;EAlFkD;EA8FpD,MAAM,CAAAhC,SAANA,CAAiBiC,SAAjB,EAA4B;IAC1B,MAAMC,UAAA,GAAaC,uBAAA,CAAcC,YAAd,CAA2BH,SAA3B,CAAnB;IACA,IAAI,CAACC,UAAL,EAAiB;MACf,OAAOx6B,SAAP;IADe;IAGjB,OAAO,KAAKxR,IAAL,CAAUmC,GAAV,CAAc,iCAAd,EAAiD;MACtDgqC,IAAA,EAAMH,UAAA,CAAWI,kBAAX,EADgD;MAEtDC,IAAA,EAAML,UAAA,CAAWM,kBAAX;IAFgD,CAAjD,CAAP;EAL0B;EAW5B,CAAAnC,mBAAoBP,YAApB,EAAkC;IAChC,OAAO,KAAK5pC,IAAL,CAAUmC,GAAV,CACJ,kCAAiCynC,YAAA,GAAe,KAAf,GAAuB,IAAzD,EADK,CAAP;EADgC;AA9SR;AAhD5B9wC,6BAAA,GAAAwQ,qBAAA;;;;;;;;;;;;ACeA,IAAAlO,oBAAA,GAAA5C,mBAAA;AACA,IAAA+B,SAAA,GAAA/B,mBAAA;AAEA,MAAM+zC,mBAAA,GAAsB,IAA5B;AAQA,MAAMzjC,UAAN,CAAiB;EACfnM,YAAYQ,OAAZ,EAAqB4C,QAArB,EAA+BC,IAA/B,EAAqC;IACnC,KAAKwqB,MAAL,GAAc,KAAd;IAEA,KAAKjc,GAAL,GAAWpR,OAAA,CAAQoR,GAAnB;IACA,KAAK8a,YAAL,GAAoBlsB,OAAA,CAAQksB,YAA5B;IACA,KAAKmjB,SAAL,GAAiBrvC,OAAA,CAAQqvC,SAAzB;IACA,KAAK1nB,YAAL,GAAoB3nB,OAAA,CAAQsvC,oBAA5B;IACA,KAAK7nB,aAAL,GAAqBznB,OAAA,CAAQuvC,qBAA7B;IACA,KAAK1nB,eAAL,GAAuB7nB,OAAA,CAAQwvC,uBAA/B;IACA,KAAK9nB,UAAL,GAAkB1nB,OAAA,CAAQyvC,kBAA1B;IACA,KAAKC,OAAL,GAAe1vC,OAAA,CAAQ0vC,OAAvB;IACA,KAAKC,gBAAL,GAAwB3vC,OAAA,CAAQ2vC,gBAAhC;IACA,KAAKC,kBAAL,GAA0B5vC,OAAA,CAAQ4vC,kBAAlC;IACA,KAAKC,cAAL,GAAsB7vC,OAAA,CAAQ6vC,cAA9B;IACA,KAAKjtC,QAAL,GAAgBA,QAAhB;IACA,KAAKC,IAAL,GAAYA,IAAZ;IAGA,KAAKqpB,YAAL,CAAkBrd,gBAAlB,CAAmC,OAAnC,EAA4C,MAAM;MAChD,KAAK8X,MAAL;IADgD,CAAlD;IAIA,KAAK0oB,SAAL,CAAexgC,gBAAf,CAAgC,OAAhC,EAAyC,MAAM;MAC7C,KAAK+1B,aAAL,CAAmB,EAAnB;IAD6C,CAA/C;IAIA,KAAKxzB,GAAL,CAASvC,gBAAT,CAA0B,SAA1B,EAAqCg3B,CAAA,IAAK;MACxC,QAAQA,CAAA,CAAEpZ,OAAV;QACE,KAAK,EAAL;UACE,IAAIoZ,CAAA,CAAE72B,MAAF,KAAa,KAAKqgC,SAAtB,EAAiC;YAC/B,KAAKzK,aAAL,CAAmB,OAAnB,EAA4BiB,CAAA,CAAErZ,QAA9B;UAD+B;UAGjC;QACF,KAAK,EAAL;UACE,KAAKva,KAAL;UACA;MARJ;IADwC,CAA1C;IAaA,KAAK29B,kBAAL,CAAwB/gC,gBAAxB,CAAyC,OAAzC,EAAkD,MAAM;MACtD,KAAK+1B,aAAL,CAAmB,OAAnB,EAA4B,IAA5B;IADsD,CAAxD;IAIA,KAAKiL,cAAL,CAAoBhhC,gBAApB,CAAqC,OAArC,EAA8C,MAAM;MAClD,KAAK+1B,aAAL,CAAmB,OAAnB,EAA4B,KAA5B;IADkD,CAApD;IAIA,KAAKjd,YAAL,CAAkB9Y,gBAAlB,CAAmC,OAAnC,EAA4C,MAAM;MAChD,KAAK+1B,aAAL,CAAmB,oBAAnB;IADgD,CAAlD;IAIA,KAAKnd,aAAL,CAAmB5Y,gBAAnB,CAAoC,OAApC,EAA6C,MAAM;MACjD,KAAK+1B,aAAL,CAAmB,uBAAnB;IADiD,CAAnD;IAIA,KAAKld,UAAL,CAAgB7Y,gBAAhB,CAAiC,OAAjC,EAA0C,MAAM;MAC9C,KAAK+1B,aAAL,CAAmB,kBAAnB;IAD8C,CAAhD;IAIA,KAAK/c,eAAL,CAAqBhZ,gBAArB,CAAsC,OAAtC,EAA+C,MAAM;MACnD,KAAK+1B,aAAL,CAAmB,yBAAnB;IADmD,CAArD;IAIA,KAAKhiC,QAAL,CAAcwX,GAAd,CAAkB,QAAlB,EAA4B,KAAK,CAAA01B,WAAL,CAAkB7mC,IAAlB,CAAuB,IAAvB,CAA5B;EA/DmC;EAkErC4J,MAAA,EAAQ;IACN,KAAKsV,aAAL;EADM;EAIRyc,cAAc3vB,IAAd,EAAoB86B,QAAA,GAAW,KAA/B,EAAsC;IACpC,KAAKntC,QAAL,CAAcgD,QAAd,CAAuB,MAAvB,EAA+B;MAC7BC,MAAA,EAAQ,IADqB;MAE7BoP,IAF6B;MAG7BuS,KAAA,EAAO,KAAK6nB,SAAL,CAAezgC,KAHO;MAI7B6Y,aAAA,EAAe,KAAKA,aAAL,CAAmB8a,OAJL;MAK7B7a,UAAA,EAAY,KAAKA,UAAL,CAAgB6a,OALC;MAM7B5a,YAAA,EAAc,KAAKA,YAAL,CAAkB4a,OANH;MAO7B3a,YAAA,EAAcmoB,QAPe;MAQ7BloB,eAAA,EAAiB,KAAKA,eAAL,CAAqB0a;IART,CAA/B;EADoC;EAatCpa,cAActB,KAAd,EAAqBmB,QAArB,EAA+BF,YAA/B,EAA6C;IAC3C,IAAI4nB,OAAA,GAAU9uC,OAAA,CAAQC,OAAR,CAAgB,EAAhB,CAAd;IACA,IAAImvC,MAAA,GAAS,EAAb;IAEA,QAAQnpB,KAAR;MACE,KAAKopB,8BAAA,CAAUC,KAAf;QACE;MACF,KAAKD,8BAAA,CAAUE,OAAf;QACEH,MAAA,GAAS,SAAT;QACA;MACF,KAAKC,8BAAA,CAAUG,SAAf;QACEV,OAAA,GAAU,KAAK7sC,IAAL,CAAUmC,GAAV,CAAc,gBAAd,CAAV;QACAgrC,MAAA,GAAS,UAAT;QACA;MACF,KAAKC,8BAAA,CAAUlhB,OAAf;QACE2gB,OAAA,GAAU,KAAK7sC,IAAL,CAAUmC,GAAV,CAAe,gBAAegjB,QAAA,GAAW,KAAX,GAAmB,QAAnC,EAAd,CAAV;QACA;IAZJ;IAcA,KAAKqnB,SAAL,CAAenX,YAAf,CAA4B,aAA5B,EAA2C8X,MAA3C;IACA,KAAKX,SAAL,CAAenX,YAAf,CAA4B,cAA5B,EAA4CrR,KAAA,KAAUopB,8BAAA,CAAUG,SAAhE;IAEAV,OAAA,CAAQ/pC,IAAR,CAAa0J,GAAA,IAAO;MAClB,KAAKqgC,OAAL,CAAaxX,YAAb,CAA0B,aAA1B,EAAyC8X,MAAzC;MACA,KAAKN,OAAL,CAAaxJ,WAAb,GAA2B72B,GAA3B;MACA,KAAK,CAAAygC,WAAL;IAHkB,CAApB;IAMA,KAAK/nB,kBAAL,CAAwBD,YAAxB;EA3B2C;EA8B7CC,mBAAmB;IAAEsoB,OAAA,GAAU,CAAZ;IAAen8B,KAAA,GAAQ;EAAvB,IAA6B,EAAhD,EAAoD;IAClD,MAAMwe,KAAA,GAAQ0c,mBAAd;IACA,IAAIkB,aAAA,GAAgB1vC,OAAA,CAAQC,OAAR,CAAgB,EAAhB,CAApB;IAEA,IAAIqT,KAAA,GAAQ,CAAZ,EAAe;MACb,IAAIA,KAAA,GAAQwe,KAAZ,EAAmB;QACjB,IAAIpe,GAAA,GAAM,wBAAV;QAOAg8B,aAAA,GAAgB,KAAKztC,IAAL,CAAUmC,GAAV,CAAcsP,GAAd,EAAmB;UAAEoe;QAAF,CAAnB,CAAhB;MARiB,CAAnB,MASO;QACL,IAAIpe,GAAA,GAAM,kBAAV;QAOAg8B,aAAA,GAAgB,KAAKztC,IAAL,CAAUmC,GAAV,CAAcsP,GAAd,EAAmB;UAAE+7B,OAAF;UAAWn8B;QAAX,CAAnB,CAAhB;MARK;IAVM;IAqBfo8B,aAAA,CAAc3qC,IAAd,CAAmB0J,GAAA,IAAO;MACxB,KAAKsgC,gBAAL,CAAsBzJ,WAAtB,GAAoC72B,GAApC;MAGA,KAAK,CAAAygC,WAAL;IAJwB,CAA1B;EAzBkD;EAiCpDpgC,KAAA,EAAO;IACL,IAAI,CAAC,KAAK2d,MAAV,EAAkB;MAChB,KAAKA,MAAL,GAAc,IAAd;MACA,IAAA8K,2BAAA,EAAkB,KAAKjM,YAAvB,EAAqC,IAArC,EAA2C,KAAK9a,GAAhD;IAFgB;IAIlB,KAAKi+B,SAAL,CAAe3oB,MAAf;IACA,KAAK2oB,SAAL,CAAej2B,KAAf;IAEA,KAAK,CAAA02B,WAAL;EARK;EAWP79B,MAAA,EAAQ;IACN,IAAI,CAAC,KAAKob,MAAV,EAAkB;MAChB;IADgB;IAGlB,KAAKA,MAAL,GAAc,KAAd;IACA,IAAA8K,2BAAA,EAAkB,KAAKjM,YAAvB,EAAqC,KAArC,EAA4C,KAAK9a,GAAjD;IAEA,KAAKxO,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;MAAEC,MAAA,EAAQ;IAAV,CAAvC;EAPM;EAUR8gB,OAAA,EAAS;IACP,IAAI,KAAK0G,MAAT,EAAiB;MACf,KAAKpb,KAAL;IADe,CAAjB,MAEO;MACL,KAAKvC,IAAL;IADK;EAHA;EAQT,CAAAogC,YAAA,EAAe;IACb,IAAI,CAAC,KAAKziB,MAAV,EAAkB;MAChB;IADgB;IAQlB,KAAKjc,GAAL,CAASpK,SAAT,CAAmB8E,MAAnB,CAA0B,gBAA1B;IAEA,MAAMykC,aAAA,GAAgB,KAAKn/B,GAAL,CAASgf,YAA/B;IACA,MAAMogB,oBAAA,GAAuB,KAAKp/B,GAAL,CAASy3B,iBAAT,CAA2BzY,YAAxD;IAEA,IAAImgB,aAAA,GAAgBC,oBAApB,EAA0C;MAIxC,KAAKp/B,GAAL,CAASpK,SAAT,CAAmBC,GAAnB,CAAuB,gBAAvB;IAJwC;EAd7B;AAhLA;AA1BjBtL,kBAAA,GAAAgQ,UAAA;;;;;;;;;;;;ACmBA,IAAAvO,SAAA,GAAA/B,mBAAA;AACA,IAAAo1C,eAAA,GAAAp1C,mBAAA;AACA,IAAAgC,SAAA,GAAAhC,mBAAA;AAEA,MAAM40C,SAAA,GAAY;EAChBC,KAAA,EAAO,CADS;EAEhBE,SAAA,EAAW,CAFK;EAGhBrhB,OAAA,EAAS,CAHO;EAIhBohB,OAAA,EAAS;AAJO,CAAlB;AAvBAx0C,iBAAA,GAAAs0C,SAAA;AA8BA,MAAMS,YAAA,GAAe,GAArB;AACA,MAAMC,uBAAA,GAA0B,CAAC,EAAjC;AACA,MAAMC,wBAAA,GAA2B,CAAC,GAAlC;AAEA,MAAMC,uBAAA,GAA0B;EAC9B,UAAU,GADoB;EAE9B,UAAU,GAFoB;EAG9B,UAAU,GAHoB;EAI9B,UAAU,GAJoB;EAK9B,UAAU,GALoB;EAM9B,UAAU,GANoB;EAO9B,UAAU,GAPoB;EAQ9B,UAAU,GARoB;EAS9B,UAAU,GAToB;EAU9B,UAAU,KAVoB;EAW9B,UAAU,KAXoB;EAY9B,UAAU;AAZoB,CAAhC;AAqBA,MAAMC,oBAAA,GAAuB,IAAI7b,GAAJ,CAAQ,CAGnC,MAHmC,EAG3B,MAH2B,EAMnC,MANmC,EAM3B,MAN2B,EAMnB,MANmB,EAMX,MANW,EAMH,MANG,EAMK,MANL,EAMa,MANb,EAMqB,MANrB,EAM6B,MAN7B,EAOnC,MAPmC,EAO3B,MAP2B,EAOnB,MAPmB,EAOX,MAPW,EAOH,MAPG,EAOK,MAPL,EAOa,MAPb,EAOqB,MAPrB,EAO6B,MAP7B,EAQnC,MARmC,EAQ3B,MAR2B,EAQnB,MARmB,EAQX,MARW,EAQH,MARG,EAQK,MARL,EAQa,MARb,EAQqB,MARrB,EAQ6B,MAR7B,EASnC,MATmC,EAS3B,MAT2B,EASnB,MATmB,EASX,MATW,EASH,MATG,EASK,MATL,EASa,MATb,EAYnC,MAZmC,EAenC,MAfmC,EAkBnC,MAlBmC,EAkB3B,MAlB2B,EAkBnB,MAlBmB,EAkBX,MAlBW,EAkBH,MAlBG,EAkBK,MAlBL,EAqBnC,MArBmC,CAAR,CAA7B;AAuBA,IAAI8b,wBAAJ;AAEA,MAAMC,kBAAA,GAAqB,UAA3B;AACA,MAAMC,qBAAA,GACJ,sDADF;AAEA,MAAMC,8BAAA,GAAiC,oBAAvC;AACA,MAAMC,gCAAA,GAAmC,oBAAzC;AAIA,MAAMC,iBAAA,GAAoB,mDAA1B;AACA,MAAMC,iBAAA,GAAoB,IAAI7f,GAAJ,EAA1B;AAGA,MAAM8f,4BAAA,GACJ,4EADF;AAGA,MAAMC,uBAAA,GAA0B,IAAI/f,GAAJ,EAAhC;AAEA,IAAIggB,iBAAA,GAAoB,IAAxB;AACA,IAAIC,mBAAA,GAAsB,IAA1B;AAEA,SAASC,SAATA,CAAmBC,IAAnB,EAAyB;EAMvB,MAAMC,iBAAA,GAAoB,EAA1B;EACA,IAAIC,CAAJ;EACA,OAAQ,CAAAA,CAAA,GAAIT,iBAAA,CAAkB5oC,IAAlB,CAAuBmpC,IAAvB,CAAJ,MAAsC,IAA9C,EAAoD;IAClD,IAAI;MAAE3d;IAAF,IAAY6d,CAAhB;IACA,WAAWC,IAAX,IAAmBD,CAAA,CAAE,CAAF,CAAnB,EAAyB;MACvB,IAAIE,GAAA,GAAMV,iBAAA,CAAkBrsC,GAAlB,CAAsB8sC,IAAtB,CAAV;MACA,IAAI,CAACC,GAAL,EAAU;QACRA,GAAA,GAAMD,IAAA,CAAKJ,SAAL,CAAe,KAAf,EAAsBxpC,MAA5B;QACAmpC,iBAAA,CAAkBlsC,GAAlB,CAAsB2sC,IAAtB,EAA4BC,GAA5B;MAFQ;MAIVH,iBAAA,CAAkBp/B,IAAlB,CAAuB,CAACu/B,GAAD,EAAM/d,KAAA,EAAN,CAAvB;IANuB;EAFyB;EAYpD,IAAIge,kBAAJ;EACA,IAAIJ,iBAAA,CAAkB1pC,MAAlB,KAA6B,CAA7B,IAAkCspC,iBAAtC,EAAyD;IACvDQ,kBAAA,GAAqBR,iBAArB;EADuD,CAAzD,MAEO,IAAII,iBAAA,CAAkB1pC,MAAlB,GAA2B,CAA3B,IAAgCupC,mBAApC,EAAyD;IAC9DO,kBAAA,GAAqBP,mBAArB;EAD8D,CAAzD,MAEA;IAEL,MAAMQ,OAAA,GAAUzuC,MAAA,CAAO43B,IAAP,CAAYyV,uBAAZ,EAAqC/6B,IAArC,CAA0C,EAA1C,CAAhB;IACA,MAAMo8B,mBAAA,GAAsB,IAAAC,oCAAA,GAA5B;IAIA,MAAMC,GAAA,GAAM,sCAAZ;IACA,MAAMC,YAAA,GAAe,mBAArB;IACA,MAAMC,MAAA,GAAU,KAAIL,OAAQ,QAAOC,mBAAoB,OAAMG,YAAa,sCAAqCD,GAAI,YAAnH;IAEA,IAAIR,iBAAA,CAAkB1pC,MAAlB,KAA6B,CAAjC,EAAoC;MAIlC8pC,kBAAA,GAAqBR,iBAAA,GAAoB,IAAIe,MAAJ,CACvCD,MAAA,GAAS,YAD8B,EAEvC,KAFuC,CAAzC;IAJkC,CAApC,MAQO;MACLN,kBAAA,GAAqBP,mBAAA,GAAsB,IAAIc,MAAJ,CACzCD,MAAA,GAAU,KAAIhB,4BAA6B,GADF,EAEzC,KAFyC,CAA3C;IADK;EAnBF;EAuDP,MAAMkB,sBAAA,GAAyB,EAA/B;EACA,OAAQ,CAAAX,CAAA,GAAIb,kBAAA,CAAmBxoC,IAAnB,CAAwBmpC,IAAxB,CAAJ,MAAuC,IAA/C,EAAqD;IACnDa,sBAAA,CAAuBhgC,IAAvB,CAA4B,CAACq/B,CAAA,CAAE,CAAF,EAAK3pC,MAAN,EAAc2pC,CAAA,CAAE7d,KAAhB,CAA5B;EADmD;EAIrD,IAAIye,UAAA,GAAad,IAAA,CAAKD,SAAL,CAAe,KAAf,CAAjB;EACA,MAAMgB,SAAA,GAAY,CAAC,CAAC,CAAD,EAAI,CAAJ,CAAD,CAAlB;EACA,IAAIC,kBAAA,GAAqB,CAAzB;EACA,IAAIC,aAAA,GAAgB,CAApB;EACA,IAAIC,KAAA,GAAQ,CAAZ;EACA,IAAIC,WAAA,GAAc,CAAlB;EACA,IAAIC,GAAA,GAAM,CAAV;EACA,IAAIC,aAAA,GAAgB,KAApB;EAEAP,UAAA,GAAaA,UAAA,CAAWR,OAAX,CACXD,kBADW,EAEX,CAACtT,KAAD,EAAQuU,EAAR,EAAYC,EAAZ,EAAgBC,EAAhB,EAAoBC,EAApB,EAAwBC,EAAxB,EAA4BC,EAA5B,EAAgCC,EAAhC,EAAoCC,EAApC,EAAwCxrC,CAAxC,KAA8C;IAC5CA,CAAA,IAAK8qC,WAAL;IACA,IAAIG,EAAJ,EAAQ;MAEN,MAAMQ,WAAA,GAAc5C,uBAAA,CAAwBoC,EAAxB,CAApB;MACA,MAAMS,EAAA,GAAKD,WAAA,CAAYvrC,MAAvB;MACA,KAAK,IAAIyrC,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAID,EAApB,EAAwBC,CAAA,EAAxB,EAA6B;QAC3BjB,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI6qC,KAAJ,GAAYc,CAAb,EAAgBd,KAAA,GAAQc,CAAxB,CAAf;MAD2B;MAG7Bd,KAAA,IAASa,EAAA,GAAK,CAAd;MACA,OAAOD,WAAP;IARM;IAWR,IAAIP,EAAJ,EAAQ;MAEN,IAAIO,WAAA,GAAclC,uBAAA,CAAwBvsC,GAAxB,CAA4BkuC,EAA5B,CAAlB;MACA,IAAI,CAACO,WAAL,EAAkB;QAChBA,WAAA,GAAcP,EAAA,CAAGxB,SAAH,CAAa,MAAb,CAAd;QACAH,uBAAA,CAAwBpsC,GAAxB,CAA4B+tC,EAA5B,EAAgCO,WAAhC;MAFgB;MAIlB,MAAMC,EAAA,GAAKD,WAAA,CAAYvrC,MAAvB;MACA,KAAK,IAAIyrC,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAID,EAApB,EAAwBC,CAAA,EAAxB,EAA6B;QAC3BjB,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI6qC,KAAJ,GAAYc,CAAb,EAAgBd,KAAA,GAAQc,CAAxB,CAAf;MAD2B;MAG7Bd,KAAA,IAASa,EAAA,GAAK,CAAd;MACA,OAAOD,WAAP;IAZM;IAeR,IAAIN,EAAJ,EAAQ;MAGNH,aAAA,GAAgB,IAAhB;MAGA,IAAIhrC,CAAA,GAAI+qC,GAAJ,KAAYP,sBAAA,CAAuBG,kBAAvB,IAA6C,CAA7C,CAAhB,EAAiE;QAC/D,EAAEA,kBAAF;MAD+D,CAAjE,MAEO;QAGLD,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI,CAAJ,GAAQ6qC,KAAR,GAAgB,CAAjB,EAAoBA,KAAA,GAAQ,CAA5B,CAAf;QACAA,KAAA,IAAS,CAAT;QACAC,WAAA,IAAe,CAAf;MALK;MASPJ,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI6qC,KAAJ,GAAY,CAAb,EAAgBA,KAAhB,CAAf;MACAC,WAAA,IAAe,CAAf;MACAC,GAAA,IAAO,CAAP;MAEA,OAAOI,EAAA,CAAGS,MAAH,CAAU,CAAV,CAAP;IArBM;IAwBR,IAAIR,EAAJ,EAAQ;MACN,MAAMS,kBAAA,GAAqBT,EAAA,CAAGU,QAAH,CAAY,IAAZ,CAA3B;MACA,MAAM/B,GAAA,GAAM8B,kBAAA,GAAqBT,EAAA,CAAGlrC,MAAH,GAAY,CAAjC,GAAqCkrC,EAAA,CAAGlrC,MAApD;MAGA8qC,aAAA,GAAgB,IAAhB;MACA,IAAIU,EAAA,GAAK3B,GAAT;MACA,IAAI/pC,CAAA,GAAI+qC,GAAJ,KAAYP,sBAAA,CAAuBG,kBAAvB,IAA6C,CAA7C,CAAhB,EAAiE;QAC/De,EAAA,IAAMlB,sBAAA,CAAuBG,kBAAvB,EAA2C,CAA3C,CAAN;QACA,EAAEA,kBAAF;MAF+D;MAKjE,KAAK,IAAIgB,CAAA,GAAI,CAAR,EAAWA,CAAA,IAAKD,EAArB,EAAyBC,CAAA,EAAzB,EAA8B;QAG5BjB,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI,CAAJ,GAAQ6qC,KAAR,GAAgBc,CAAjB,EAAoBd,KAAA,GAAQc,CAA5B,CAAf;MAH4B;MAK9Bd,KAAA,IAASa,EAAT;MACAZ,WAAA,IAAeY,EAAf;MAEA,IAAIG,kBAAJ,EAAwB;QAGtB7rC,CAAA,IAAK+pC,GAAA,GAAM,CAAX;QACAW,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI6qC,KAAJ,GAAY,CAAb,EAAgB,IAAIA,KAApB,CAAf;QACAA,KAAA,IAAS,CAAT;QACAC,WAAA,IAAe,CAAf;QACAC,GAAA,IAAO,CAAP;QACA,OAAOK,EAAA,CAAG9W,KAAH,CAAS,CAAT,EAAYyV,GAAZ,CAAP;MARsB;MAWxB,OAAOqB,EAAP;IA/BM;IAkCR,IAAIC,EAAJ,EAAQ;MAON,MAAMtB,GAAA,GAAMsB,EAAA,CAAGnrC,MAAH,GAAY,CAAxB;MACAwqC,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI6qC,KAAJ,GAAYd,GAAb,EAAkB,IAAIc,KAAtB,CAAf;MACAA,KAAA,IAAS,CAAT;MACAC,WAAA,IAAe,CAAf;MACAC,GAAA,IAAO,CAAP;MACA,OAAOM,EAAA,CAAG/W,KAAH,CAAS,CAAT,EAAY,CAAC,CAAb,CAAP;IAZM;IAeR,IAAIgX,EAAJ,EAAQ;MAIN,MAAMvB,GAAA,GAAMuB,EAAA,CAAGprC,MAAH,GAAY,CAAxB;MACAwqC,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI6qC,KAAJ,GAAYd,GAAb,EAAkBc,KAAlB,CAAf;MACAC,WAAA,IAAe,CAAf;MACAC,GAAA,IAAO,CAAP;MACA,OAAOO,EAAA,CAAGhX,KAAH,CAAS,CAAT,EAAY,CAAC,CAAb,CAAP;IARM;IAWR,IAAIiX,EAAJ,EAAQ;MAGNb,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,GAAI6qC,KAAJ,GAAY,CAAb,EAAgBA,KAAA,GAAQ,CAAxB,CAAf;MACAA,KAAA,IAAS,CAAT;MACAC,WAAA,IAAe,CAAf;MACAC,GAAA,IAAO,CAAP;MACA,OAAO,GAAP;IAPM;IAWR,IAAI/qC,CAAA,GAAI+qC,GAAJ,KAAYnB,iBAAA,CAAkBgB,aAAlB,IAAmC,CAAnC,CAAhB,EAAuD;MAGrD,MAAMmB,UAAA,GAAanC,iBAAA,CAAkBgB,aAAlB,EAAiC,CAAjC,IAAsC,CAAzD;MACA,EAAEA,aAAF;MACA,KAAK,IAAIe,CAAA,GAAI,CAAR,EAAWA,CAAA,IAAKI,UAArB,EAAiCJ,CAAA,EAAjC,EAAsC;QACpCjB,SAAA,CAAUlgC,IAAV,CAAe,CAACxK,CAAA,IAAK6qC,KAAA,GAAQc,CAAR,CAAN,EAAkBd,KAAA,GAAQc,CAA1B,CAAf;MADoC;MAGtCd,KAAA,IAASkB,UAAT;MACAjB,WAAA,IAAeiB,UAAf;IATqD;IAWvD,OAAOP,EAAP;EAtI4C,CAFnC,CAAb;EA4IAd,SAAA,CAAUlgC,IAAV,CAAe,CAACigC,UAAA,CAAWvqC,MAAZ,EAAoB2qC,KAApB,CAAf;EAEA,OAAO,CAACJ,UAAD,EAAaC,SAAb,EAAwBM,aAAxB,CAAP;AA5OuB;AAkPzB,SAASgB,gBAATA,CAA0BC,KAA1B,EAAiCC,GAAjC,EAAsCnC,GAAtC,EAA2C;EACzC,IAAI,CAACkC,KAAL,EAAY;IACV,OAAO,CAACC,GAAD,EAAMnC,GAAN,CAAP;EADU;EAKZ,MAAM5f,KAAA,GAAQ+hB,GAAd;EAEA,MAAMC,GAAA,GAAMD,GAAA,GAAMnC,GAAN,GAAY,CAAxB;EACA,IAAI/pC,CAAA,GAAI,IAAAgqB,+BAAA,EAAsBiiB,KAAtB,EAA6BxvB,CAAA,IAAKA,CAAA,CAAE,CAAF,KAAQ0N,KAA1C,CAAR;EACA,IAAI8hB,KAAA,CAAMjsC,CAAN,EAAS,CAAT,IAAcmqB,KAAlB,EAAyB;IACvB,EAAEnqB,CAAF;EADuB;EAIzB,IAAI2rC,CAAA,GAAI,IAAA3hB,+BAAA,EAAsBiiB,KAAtB,EAA6BxvB,CAAA,IAAKA,CAAA,CAAE,CAAF,KAAQ0vB,GAA1C,EAA+CnsC,CAA/C,CAAR;EACA,IAAIisC,KAAA,CAAMN,CAAN,EAAS,CAAT,IAAcQ,GAAlB,EAAuB;IACrB,EAAER,CAAF;EADqB;EAKvB,MAAMS,QAAA,GAAWjiB,KAAA,GAAQ8hB,KAAA,CAAMjsC,CAAN,EAAS,CAAT,CAAzB;EAGA,MAAMqsC,MAAA,GAASF,GAAA,GAAMF,KAAA,CAAMN,CAAN,EAAS,CAAT,CAArB;EACA,MAAMW,MAAA,GAASD,MAAA,GAAS,CAAT,GAAaD,QAA5B;EAEA,OAAO,CAACA,QAAD,EAAWE,MAAX,CAAP;AA1ByC;AAyC3C,MAAM/qC,iBAAN,CAAwB;EACtB,CAAAsd,KAAA,GAAS,IAAT;EAEA,CAAApd,4BAAA,GAAgC,IAAhC;EAEA,CAAA8qC,iBAAA,GAAqB,CAArB;EAKA/0C,YAAY;IAAEgK,WAAF;IAAe5G,QAAf;IAAyB6G,4BAAA,GAA+B;EAAxD,CAAZ,EAA4E;IAC1E,KAAK+qC,YAAL,GAAoBhrC,WAApB;IACA,KAAKirC,SAAL,GAAiB7xC,QAAjB;IACA,KAAK,CAAA6G,4BAAL,GAAqCA,4BAArC;IAMA,KAAKirC,eAAL,GAAuB,IAAvB;IAEA,KAAK,CAAA7hC,KAAL;IACAjQ,QAAA,CAASwX,GAAT,CAAa,MAAb,EAAqB,KAAK,CAAAu6B,MAAL,CAAa1rC,IAAb,CAAkB,IAAlB,CAArB;IACArG,QAAA,CAASwX,GAAT,CAAa,cAAb,EAA6B,KAAK,CAAAw6B,cAAL,CAAqB3rC,IAArB,CAA0B,IAA1B,CAA7B;EAb0E;EAgB5E,IAAI4rC,gBAAJA,CAAA,EAAuB;IACrB,OAAO,KAAKC,iBAAZ;EADqB;EAIvB,IAAIC,WAAJA,CAAA,EAAkB;IAChB,OAAO,KAAKC,YAAZ;EADgB;EAIlB,IAAIC,iBAAJA,CAAA,EAAwB;IACtB,OAAO,KAAKC,kBAAZ;EADsB;EAIxB,IAAIC,QAAJA,CAAA,EAAe;IACb,OAAO,KAAKC,SAAZ;EADa;EAIf,IAAIvuB,KAAJA,CAAA,EAAY;IACV,OAAO,KAAK,CAAAA,KAAZ;EADU;EAUZnU,YAAYpR,WAAZ,EAAyB;IACvB,IAAI,KAAKomC,YAAT,EAAuB;MACrB,KAAK,CAAA70B,KAAL;IADqB;IAGvB,IAAI,CAACvR,WAAL,EAAkB;MAChB;IADgB;IAGlB,KAAKomC,YAAL,GAAoBpmC,WAApB;IACA,KAAK+zC,oBAAL,CAA0Bx0C,OAA1B;EARuB;EAWzB,CAAA8zC,OAAQ9tB,KAAR,EAAe;IACb,IAAI,CAACA,KAAL,EAAY;MACV;IADU;IAGZ,IAEEA,KAAA,CAAMyuB,YAAN,KAAuB,KAFzB,EAGE;MACAtvC,OAAA,CAAQK,KAAR,CACE,8DACE,uDAFJ;MAIA,IAAI,OAAOwgB,KAAA,CAAMW,KAAb,KAAuB,QAA3B,EAAqC;QACnCX,KAAA,CAAMW,KAAN,GAAcX,KAAA,CAAMW,KAAN,CAAYkX,KAAZ,CAAkB,MAAlB,CAAd;MADmC;IALrC;IASF,MAAMp9B,WAAA,GAAc,KAAKomC,YAAzB;IACA,MAAM;MAAEzyB;IAAF,IAAW4R,KAAjB;IAEA,IAAI,KAAK,CAAAA,KAAL,KAAgB,IAAhB,IAAwB,KAAK,CAAA0uB,gBAAL,CAAuB1uB,KAAvB,CAA5B,EAA2D;MACzD,KAAK2uB,WAAL,GAAmB,IAAnB;IADyD;IAG3D,KAAK,CAAA3uB,KAAL,GAAcA,KAAd;IACA,IAAI5R,IAAA,KAAS,oBAAb,EAAmC;MACjC,KAAK,CAAAkT,aAAL,CAAoB8nB,SAAA,CAAUE,OAA9B;IADiC;IAInC,KAAKkF,oBAAL,CAA0BtlC,OAA1B,CAAkCpK,IAAlC,CAAuC,MAAM;MAG3C,IACE,CAAC,KAAK+hC,YAAN,IACCpmC,WAAA,IAAe,KAAKomC,YAAL,KAAsBpmC,WAFxC,EAGE;QACA;MADA;MAGF,KAAK,CAAAm0C,WAAL;MAEA,MAAMC,aAAA,GAAgB,CAAC,KAAKZ,iBAA5B;MACA,MAAMa,cAAA,GAAiB,CAAC,CAAC,KAAKC,YAA9B;MAEA,IAAI,KAAKA,YAAT,EAAuB;QACrB/sB,YAAA,CAAa,KAAK+sB,YAAlB;QACA,KAAKA,YAAL,GAAoB,IAApB;MAFqB;MAIvB,IAAI,CAAC3gC,IAAL,EAAW;QAGT,KAAK2gC,YAAL,GAAoBt8B,UAAA,CAAW,MAAM;UACnC,KAAK,CAAAu8B,SAAL;UACA,KAAKD,YAAL,GAAoB,IAApB;QAFmC,CAAjB,EAGjBlF,YAHiB,CAApB;MAHS,CAAX,MAOO,IAAI,KAAK8E,WAAT,EAAsB;QAG3B,KAAK,CAAAK,SAAL;MAH2B,CAAtB,MAIA,IAAI5gC,IAAA,KAAS,OAAb,EAAsB;QAC3B,KAAK,CAAA4gC,SAAL;QAIA,IAAIH,aAAA,IAAiB,KAAK,CAAA7uB,KAAL,CAAYc,YAAjC,EAA+C;UAC7C,KAAK,CAAAmuB,cAAL;QAD6C;MALpB,CAAtB,MAQA,IAAI7gC,IAAA,KAAS,oBAAb,EAAmC;QAGxC,IAAI0gC,cAAJ,EAAoB;UAClB,KAAK,CAAAE,SAAL;QADkB,CAApB,MAEO;UACL,KAAKf,iBAAL,GAAyB,IAAzB;QADK;QAGP,KAAK,CAAAgB,cAAL;MARwC,CAAnC,MASA;QACL,KAAK,CAAAD,SAAL;MADK;IA9CoC,CAA7C;EA3Ba;EA2FfE,oBAAoB;IAClBrmB,OAAA,GAAU,IADQ;IAElBsmB,YAAA,GAAe,CAFG;IAGlBtY,SAAA,GAAY,CAAC,CAHK;IAIlBuY,UAAA,GAAa,CAAC;EAJI,CAApB,EAKG;IACD,IAAI,CAAC,KAAKC,cAAN,IAAwB,CAACxmB,OAA7B,EAAsC;MACpC;IADoC,CAAtC,MAEO,IAAIumB,UAAA,KAAe,CAAC,CAAhB,IAAqBA,UAAA,KAAe,KAAKb,SAAL,CAAee,QAAvD,EAAiE;MACtE;IADsE,CAAjE,MAEA,IAAIzY,SAAA,KAAc,CAAC,CAAf,IAAoBA,SAAA,KAAc,KAAK0X,SAAL,CAAegB,OAArD,EAA8D;MACnE;IADmE;IAGrE,KAAKF,cAAL,GAAsB,KAAtB;IAEA,MAAMvmB,IAAA,GAAO;MACX9K,GAAA,EAAK8rB,uBADM;MAEX7rB,IAAA,EAAMkxB,YAAA,GAAepF;IAFV,CAAb;IAIA,IAAAnhB,wBAAA,EAAeC,OAAf,EAAwBC,IAAxB,EAAoD,IAApD;EAdC;EAiBH,CAAA9c,MAAA,EAAS;IACP,KAAKiiC,iBAAL,GAAyB,KAAzB;IACA,KAAKoB,cAAL,GAAsB,KAAtB;IACA,KAAKxO,YAAL,GAAoB,IAApB;IACA,KAAKsN,YAAL,GAAoB,EAApB;IACA,KAAKE,kBAAL,GAA0B,EAA1B;IACA,KAAK,CAAAX,iBAAL,GAA0B,CAA1B;IACA,KAAK,CAAA1tB,KAAL,GAAc,IAAd;IAEA,KAAKuuB,SAAL,GAAiB;MACfgB,OAAA,EAAS,CAAC,CADK;MAEfD,QAAA,EAAU,CAAC;IAFI,CAAjB;IAKA,KAAKE,OAAL,GAAe;MACbD,OAAA,EAAS,IADI;MAEbD,QAAA,EAAU,IAFG;MAGbG,OAAA,EAAS;IAHI,CAAf;IAKA,KAAKC,oBAAL,GAA4B,EAA5B;IACA,KAAKC,aAAL,GAAqB,EAArB;IACA,KAAKC,UAAL,GAAkB,EAAlB;IACA,KAAKC,cAAL,GAAsB,EAAtB;IACA,KAAKC,kBAAL,GAA0B,CAA1B;IACA,KAAKC,cAAL,GAAsB,IAAtB;IACA,KAAKC,mBAAL,GAA2B,IAAI5hB,GAAJ,EAA3B;IACA,KAAK6hB,cAAL,GAAsB,IAAtB;IACA,KAAKtB,WAAL,GAAmB,KAAnB;IACA3sB,YAAA,CAAa,KAAK+sB,YAAlB;IACA,KAAKA,YAAL,GAAoB,IAApB;IAEA,KAAKP,oBAAL,GAA4B,IAAIj0C,2BAAJ,EAA5B;EA/BO;EAqCT,IAAI,CAAAomB,KAAJA,CAAA,EAAa;IACX,MAAM;MAAEA;IAAF,IAAY,KAAK,CAAAX,KAAvB;IACA,IAAI,OAAOW,KAAP,KAAiB,QAArB,EAA+B;MAC7B,IAAIA,KAAA,KAAU,KAAKuvB,SAAnB,EAA8B;QAC5B,KAAKA,SAAL,GAAiBvvB,KAAjB;QACA,CAAC,KAAKwvB,gBAAN,IAA0BtF,SAAA,CAAUlqB,KAAV,CAA1B;MAF4B;MAI9B,OAAO,KAAKwvB,gBAAZ;IAL6B;IAS/B,OAAQ,CAAAxvB,KAAA,IAAS,EAAT,EAAayvB,MAAd,CAAqBhkB,CAAA,IAAK,CAAC,CAACA,CAA5B,EAA+BikB,GAA/B,CAAmCjkB,CAAA,IAAKye,SAAA,CAAUze,CAAV,EAAa,CAAb,CAAxC,CAAP;EAXW;EAcb,CAAAsiB,iBAAkB1uB,KAAlB,EAAyB;IAGvB,MAAMswB,QAAA,GAAWtwB,KAAA,CAAMW,KAAvB;MACE4vB,SAAA,GAAY,KAAK,CAAAvwB,KAAL,CAAYW,KAD1B;IAEA,MAAM6vB,OAAA,GAAU,OAAOF,QAAvB;MACEG,QAAA,GAAW,OAAOF,SADpB;IAGA,IAAIC,OAAA,KAAYC,QAAhB,EAA0B;MACxB,OAAO,IAAP;IADwB;IAG1B,IAAID,OAAA,KAAY,QAAhB,EAA0B;MACxB,IAAIF,QAAA,KAAaC,SAAjB,EAA4B;QAC1B,OAAO,IAAP;MAD0B;IADJ,CAA1B,MAIO,IACYl7C,IAAA,CAAKC,SAAL,CAAeg7C,QAAf,MAA6Bj7C,IAAA,CAAKC,SAAL,CAAei7C,SAAf,CADzC,EAEL;MACA,OAAO,IAAP;IADA;IAIF,QAAQvwB,KAAA,CAAM5R,IAAd;MACE,KAAK,OAAL;QACE,MAAMqI,UAAA,GAAa,KAAK83B,SAAL,CAAegB,OAAf,GAAyB,CAA5C;QACA,MAAM5sC,WAAA,GAAc,KAAKgrC,YAAzB;QASA,OACEl3B,UAAA,IAAc,CAAd,IACAA,UAAA,IAAc9T,WAAA,CAAYmH,UAD1B,IAEA2M,UAAA,KAAe9T,WAAA,CAAYqH,IAF3B,IAGA,EAAE,KAAK6jC,eAAL,GAAuBp3B,UAAvB,KAAsC,IAAtC,CAJJ;MAMF,KAAK,oBAAL;QACE,OAAO,KAAP;IAnBJ;IAqBA,OAAO,IAAP;EA1CuB;EAiDzB,CAAAi6B,aAAcxQ,OAAd,EAAuByQ,QAAvB,EAAiCtvC,MAAjC,EAAyC;IACvC,IAAIw2B,KAAA,GAAQqI,OAAA,CACTzK,KADS,CACH,CADG,EACAkb,QADA,EAET9Y,KAFS,CAEHwS,8BAFG,CAAZ;IAGA,IAAIxS,KAAJ,EAAW;MACT,MAAMzI,KAAA,GAAQ8Q,OAAA,CAAQ0Q,UAAR,CAAmBD,QAAnB,CAAd;MACA,MAAM9kB,KAAA,GAAQgM,KAAA,CAAM,CAAN,EAAS+Y,UAAT,CAAoB,CAApB,CAAd;MACA,IAAI,IAAAC,gCAAA,EAAiBzhB,KAAjB,MAA4B,IAAAyhB,gCAAA,EAAiBhlB,KAAjB,CAAhC,EAAyD;QACvD,OAAO,KAAP;MADuD;IAHhD;IAQXgM,KAAA,GAAQqI,OAAA,CACLzK,KADK,CACCkb,QAAA,GAAWtvC,MADZ,EAELw2B,KAFK,CAECyS,gCAFD,CAAR;IAGA,IAAIzS,KAAJ,EAAW;MACT,MAAMxI,IAAA,GAAO6Q,OAAA,CAAQ0Q,UAAR,CAAmBD,QAAA,GAAWtvC,MAAX,GAAoB,CAAvC,CAAb;MACA,MAAMwqB,KAAA,GAAQgM,KAAA,CAAM,CAAN,EAAS+Y,UAAT,CAAoB,CAApB,CAAd;MACA,IAAI,IAAAC,gCAAA,EAAiBxhB,IAAjB,MAA2B,IAAAwhB,gCAAA,EAAiBhlB,KAAjB,CAA/B,EAAwD;QACtD,OAAO,KAAP;MADsD;IAH/C;IAQX,OAAO,IAAP;EAvBuC;EA0BzC,CAAAilB,qBAAsBnwB,KAAtB,EAA6BE,UAA7B,EAAyCgW,SAAzC,EAAoDka,WAApD,EAAiE;IAC/D,MAAMxtC,OAAA,GAAW,KAAK4qC,YAAL,CAAkBtX,SAAlB,IAA+B,EAAhD;IACA,MAAMma,aAAA,GAAiB,KAAK3C,kBAAL,CAAwBxX,SAAxB,IAAqC,EAA5D;IACA,IAAI,CAAClW,KAAL,EAAY;MAGV;IAHU;IAKZ,MAAMysB,KAAA,GAAQ,KAAKwC,UAAL,CAAgB/Y,SAAhB,CAAd;IACA,IAAIgB,KAAJ;IACA,OAAQ,CAAAA,KAAA,GAAQlX,KAAA,CAAMhf,IAAN,CAAWovC,WAAX,CAAR,MAAqC,IAA7C,EAAmD;MACjD,IACElwB,UAAA,IACA,CAAC,KAAK,CAAA6vB,YAAL,CAAmBK,WAAnB,EAAgClZ,KAAA,CAAM1K,KAAtC,EAA6C0K,KAAA,CAAM,CAAN,EAASx2B,MAAtD,CAFH,EAGE;QACA;MADA;MAIF,MAAM,CAAC4vC,QAAD,EAAWC,QAAX,IAAuB/D,gBAAA,CAC3BC,KAD2B,EAE3BvV,KAAA,CAAM1K,KAFqB,EAG3B0K,KAAA,CAAM,CAAN,EAASx2B,MAHkB,CAA7B;MAMA,IAAI6vC,QAAJ,EAAc;QACZ3tC,OAAA,CAAQoI,IAAR,CAAaslC,QAAb;QACAD,aAAA,CAAcrlC,IAAd,CAAmBulC,QAAnB;MAFY;IAdmC;EAVY;EA+BjE,CAAAC,sBAAuBxwB,KAAvB,EAA8BwrB,aAA9B,EAA6C;IAC3C,MAAM;MAAEnrB;IAAF,IAAsB,KAAK,CAAAhB,KAAjC;IACA,IAAIoxB,SAAA,GAAY,KAAhB;IACAzwB,KAAA,GAAQA,KAAA,CAAMuK,UAAN,CACNkf,qBADM,EAEN,CACEvS,KADF,EAEEuU,EAFF,EAGEC,EAHF,EAIEC,EAJF,EAKEC,EALF,EAMEC,EANF,KAOK;MAIH,IAAIJ,EAAJ,EAAQ;QAEN,OAAQ,SAAQA,EAAG,MAAnB;MAFM;MAIR,IAAIC,EAAJ,EAAQ;QAEN,OAAQ,OAAMA,EAAG,MAAjB;MAFM;MAIR,IAAIC,EAAJ,EAAQ;QAEN,OAAO,MAAP;MAFM;MAIR,IAAItrB,eAAJ,EAAqB;QACnB,OAAOurB,EAAA,IAAMC,EAAb;MADmB;MAIrB,IAAID,EAAJ,EAAQ;QAEN,OAAOtC,oBAAA,CAAqBjqC,GAArB,CAAyBusC,EAAA,CAAGqE,UAAH,CAAc,CAAd,CAAzB,IAA6CrE,EAA7C,GAAkD,EAAzD;MAFM;MAOR,IAAIJ,aAAJ,EAAmB;QACjBiF,SAAA,GAAY,IAAZ;QACA,OAAO,GAAG5E,EAAG,SAAb;MAFiB;MAInB,OAAOA,EAAP;IA/BG,CATC,CAAR;IA4CA,MAAM6E,cAAA,GAAiB,MAAvB;IACA,IAAI1wB,KAAA,CAAMssB,QAAN,CAAeoE,cAAf,CAAJ,EAAoC;MAIlC1wB,KAAA,GAAQA,KAAA,CAAM8U,KAAN,CAAY,CAAZ,EAAe9U,KAAA,CAAMtf,MAAN,GAAegwC,cAAA,CAAehwC,MAA7C,CAAR;IAJkC;IAOpC,IAAI2f,eAAJ,EAAqB;MAEnB,IAAImrB,aAAJ,EAAmB;QACjBjC,wBAAA,KAA6BoH,MAAA,CAAOC,YAAP,CAC3B,GAAGtH,oBADwB,CAA7B;QAIAmH,SAAA,GAAY,IAAZ;QACAzwB,KAAA,GAAQ,GAAGA,KAAM,OAAMupB,wBAAyB,gBAAhD;MANiB;IAFA;IAYrB,OAAO,CAACkH,SAAD,EAAYzwB,KAAZ,CAAP;EAnE2C;EAsE7C,CAAA6wB,eAAgB3a,SAAhB,EAA2B;IACzB,IAAIlW,KAAA,GAAQ,KAAK,CAAAA,KAAjB;IACA,IAAIA,KAAA,CAAMtf,MAAN,KAAiB,CAArB,EAAwB;MACtB;IADsB;IAGxB,MAAM;MAAEuf,aAAF;MAAiBC;IAAjB,IAAgC,KAAK,CAAAb,KAA3C;IACA,MAAM+wB,WAAA,GAAc,KAAKpB,aAAL,CAAmB9Y,SAAnB,CAApB;IACA,MAAMsV,aAAA,GAAgB,KAAK0D,cAAL,CAAoBhZ,SAApB,CAAtB;IAEA,IAAIua,SAAA,GAAY,KAAhB;IACA,IAAI,OAAOzwB,KAAP,KAAiB,QAArB,EAA+B;MAC7B,CAACywB,SAAD,EAAYzwB,KAAZ,IAAqB,KAAK,CAAAwwB,qBAAL,CAA4BxwB,KAA5B,EAAmCwrB,aAAnC,CAArB;IAD6B,CAA/B,MAEO;MAGLxrB,KAAA,GAAQA,KAAA,CACL4O,IADK,GAELkiB,OAFK,GAGLpB,GAHK,CAGDjkB,CAAA,IAAK;QACR,MAAM,CAACslB,aAAD,EAAgBC,SAAhB,IAA6B,KAAK,CAAAR,qBAAL,CACjC/kB,CADiC,EAEjC+f,aAFiC,CAAnC;QAIAiF,SAAA,KAAcM,aAAd;QACA,OAAQ,IAAGC,SAAU,GAArB;MANQ,CAHJ,EAWL1iC,IAXK,CAWA,GAXA,CAAR;IAHK;IAiBP,MAAM2iC,KAAA,GAAS,IAAGR,SAAA,GAAY,GAAZ,GAAkB,EAAtB,GAA2BxwB,aAAA,GAAgB,EAAhB,GAAqB,GAAhD,EAAd;IACAD,KAAA,GAAQA,KAAA,GAAQ,IAAI+qB,MAAJ,CAAW/qB,KAAX,EAAkBixB,KAAlB,CAAR,GAAmC,IAA3C;IAEA,KAAK,CAAAd,oBAAL,CAA2BnwB,KAA3B,EAAkCE,UAAlC,EAA8CgW,SAA9C,EAAyDka,WAAzD;IAIA,IAAI,KAAK,CAAA/wB,KAAL,CAAYc,YAAhB,EAA8B;MAC5B,KAAK,CAAA+wB,UAAL,CAAiBhb,SAAjB;IAD4B;IAG9B,IAAI,KAAKoZ,cAAL,KAAwBpZ,SAA5B,EAAuC;MACrC,KAAKoZ,cAAL,GAAsB,IAAtB;MACA,KAAK,CAAA6B,aAAL;IAFqC;IAMvC,MAAMC,gBAAA,GAAmB,KAAK5D,YAAL,CAAkBtX,SAAlB,EAA6Bx1B,MAAtD;IACA,KAAKyuC,kBAAL,IAA2BiC,gBAA3B;IACA,IAAI,KAAK,CAAAnvC,4BAAT,EAAwC;MACtC,IAAImvC,gBAAA,GAAmB,CAAvB,EAA0B;QACxB,KAAK,CAAAC,oBAAL;MADwB;IADY,CAAxC,MAIO,IAAI,EAAE,KAAK,CAAAtE,iBAAP,KAA8B,KAAKC,YAAL,CAAkB7jC,UAApD,EAAgE;MAGrE,KAAK,CAAAkoC,oBAAL;IAHqE;EAnD9C;EA0D3B,CAAApD,YAAA,EAAe;IAEb,IAAI,KAAKc,oBAAL,CAA0BruC,MAA1B,GAAmC,CAAvC,EAA0C;MACxC;IADwC;IAI1C,IAAI6H,OAAA,GAAUnP,OAAA,CAAQC,OAAR,EAAd;IACA,MAAMi4C,WAAA,GAAc;MAAEC,oBAAA,EAAsB;IAAxB,CAApB;IACA,KAAK,IAAI/wC,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAK,KAAKusC,YAAL,CAAkB7jC,UAAlC,EAA8C3I,CAAA,GAAIC,EAAvD,EAA2DD,CAAA,EAA3D,EAAgE;MAC9D,MAAMgxC,qBAAA,GAAwB,IAAI53C,2BAAJ,EAA9B;MACA,KAAKm1C,oBAAL,CAA0BvuC,CAA1B,IAA+BgxC,qBAAA,CAAsBjpC,OAArD;MAEAA,OAAA,GAAUA,OAAA,CAAQpK,IAAR,CAAa,MAAM;QAC3B,OAAO,KAAK+hC,YAAL,CACJoF,OADI,CACI9kC,CAAA,GAAI,CADR,EAEJrC,IAFI,CAECsS,OAAA,IAAW;UACf,OAAOA,OAAA,CAAQghC,cAAR,CAAuBH,WAAvB,CAAP;QADe,CAFZ,EAKJnzC,IALI,CAMHugC,WAAA,IAAe;UACb,MAAMgT,MAAA,GAAS,EAAf;UAEA,WAAWC,QAAX,IAAuBjT,WAAA,CAAYjU,KAAnC,EAA0C;YACxCinB,MAAA,CAAO1mC,IAAP,CAAY2mC,QAAA,CAAStnB,GAArB;YACA,IAAIsnB,QAAA,CAASC,MAAb,EAAqB;cACnBF,MAAA,CAAO1mC,IAAP,CAAY,IAAZ;YADmB;UAFmB;UAQ1C,CACE,KAAKgkC,aAAL,CAAmBxuC,CAAnB,CADF,EAEE,KAAKyuC,UAAL,CAAgBzuC,CAAhB,CAFF,EAGE,KAAK0uC,cAAL,CAAoB1uC,CAApB,CAHF,IAII0pC,SAAA,CAAUwH,MAAA,CAAOpjC,IAAP,CAAY,EAAZ,CAAV,CAJJ;UAKAkjC,qBAAA,CAAsBn4C,OAAtB;QAhBa,CANZ,EAwBHuF,MAAA,IAAU;UACRJ,OAAA,CAAQK,KAAR,CACG,uCAAsC2B,CAAA,GAAI,CAA3C,EADF,EAEE5B,MAFF;UAKA,KAAKowC,aAAL,CAAmBxuC,CAAnB,IAAwB,EAAxB;UACA,KAAKyuC,UAAL,CAAgBzuC,CAAhB,IAAqB,IAArB;UACA,KAAK0uC,cAAL,CAAoB1uC,CAApB,IAAyB,KAAzB;UACAgxC,qBAAA,CAAsBn4C,OAAtB;QATQ,CAxBP,CAAP;MAD2B,CAAnB,CAAV;IAJ8D;EARnD;EAqDf,CAAA63C,WAAY1kB,KAAZ,EAAmB;IACjB,IAAI,KAAKkiB,cAAL,IAAuB,KAAKd,SAAL,CAAegB,OAAf,KAA2BpiB,KAAtD,EAA6D;MAI3D,KAAKwgB,YAAL,CAAkB3jC,IAAlB,GAAyBmjB,KAAA,GAAQ,CAAjC;IAJ2D;IAO7D,KAAKygB,SAAL,CAAe7uC,QAAf,CAAwB,wBAAxB,EAAkD;MAChDC,MAAA,EAAQ,IADwC;MAEhD63B,SAAA,EAAW1J;IAFqC,CAAlD;EARiB;EAcnB,CAAA8hB,eAAA,EAAkB;IAChB,KAAKrB,SAAL,CAAe7uC,QAAf,CAAwB,wBAAxB,EAAkD;MAChDC,MAAA,EAAQ,IADwC;MAEhD63B,SAAA,EAAW,CAAC;IAFoC,CAAlD;EADgB;EAOlB,CAAAmY,UAAA,EAAa;IACX,MAAM7tB,QAAA,GAAW,KAAK,CAAAnB,KAAL,CAAYe,YAA7B;IACA,MAAMyxB,gBAAA,GAAmB,KAAK7E,YAAL,CAAkB3jC,IAAlB,GAAyB,CAAlD;IACA,MAAMD,QAAA,GAAW,KAAK4jC,YAAL,CAAkB7jC,UAAnC;IAEA,KAAKmkC,iBAAL,GAAyB,IAAzB;IAEA,IAAI,KAAKU,WAAT,EAAsB;MAEpB,KAAKA,WAAL,GAAmB,KAAnB;MACA,KAAKJ,SAAL,CAAegB,OAAf,GAAyB,KAAKhB,SAAL,CAAee,QAAf,GAA0B,CAAC,CAApD;MACA,KAAKE,OAAL,CAAaD,OAAb,GAAuBiD,gBAAvB;MACA,KAAKhD,OAAL,CAAaF,QAAb,GAAwB,IAAxB;MACA,KAAKE,OAAL,CAAaC,OAAb,GAAuB,KAAvB;MACA,KAAKQ,cAAL,GAAsB,IAAtB;MACA,KAAK9B,YAAL,CAAkB9sC,MAAlB,GAA2B,CAA3B;MACA,KAAKgtC,kBAAL,CAAwBhtC,MAAxB,GAAiC,CAAjC;MACA,KAAK,CAAAqsC,iBAAL,GAA0B,CAA1B;MACA,KAAKoC,kBAAL,GAA0B,CAA1B;MAEA,KAAK,CAAAb,cAAL;MAEA,KAAK,IAAI9tC,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAI4I,QAApB,EAA8B5I,CAAA,EAA9B,EAAmC;QAEjC,IAAI,KAAK6uC,mBAAL,CAAyBhwC,GAAzB,CAA6BmB,CAA7B,CAAJ,EAAqC;UACnC;QADmC;QAGrC,KAAK6uC,mBAAL,CAAyB5vC,GAAzB,CAA6Be,CAA7B;QACA,KAAKuuC,oBAAL,CAA0BvuC,CAA1B,EAA6BrC,IAA7B,CAAkC,MAAM;UACtC,KAAKkxC,mBAAL,CAAyByC,MAAzB,CAAgCtxC,CAAhC;UACA,KAAK,CAAAqwC,cAAL,CAAqBrwC,CAArB;QAFsC,CAAxC;MANiC;IAff;IA6BtB,MAAMwf,KAAA,GAAQ,KAAK,CAAAA,KAAnB;IACA,IAAIA,KAAA,CAAMtf,MAAN,KAAiB,CAArB,EAAwB;MACtB,KAAK,CAAAigB,aAAL,CAAoB8nB,SAAA,CAAUC,KAA9B;MACA;IAFsB;IAKxB,IAAI,KAAK4G,cAAT,EAAyB;MACvB;IADuB;IAIzB,MAAMyC,MAAA,GAAS,KAAKlD,OAApB;IAEA,KAAKO,cAAL,GAAsBhmC,QAAtB;IAGA,IAAI2oC,MAAA,CAAOpD,QAAP,KAAoB,IAAxB,EAA8B;MAC5B,MAAMqD,cAAA,GAAiB,KAAKxE,YAAL,CAAkBuE,MAAA,CAAOnD,OAAzB,EAAkCluC,MAAzD;MACA,IACG,CAAC8f,QAAD,IAAauxB,MAAA,CAAOpD,QAAP,GAAkB,CAAlB,GAAsBqD,cAApC,IACCxxB,QAAA,IAAYuxB,MAAA,CAAOpD,QAAP,GAAkB,CAFjC,EAGE;QAGAoD,MAAA,CAAOpD,QAAP,GAAkBnuB,QAAA,GAAWuxB,MAAA,CAAOpD,QAAP,GAAkB,CAA7B,GAAiCoD,MAAA,CAAOpD,QAAP,GAAkB,CAArE;QACA,KAAK,CAAAsD,WAAL,CAAgC,IAAhC;QACA;MALA;MASF,KAAK,CAAAC,iBAAL,CAAwB1xB,QAAxB;IAd4B;IAiB9B,KAAK,CAAA2wB,aAAL;EApEW;EAuEb,CAAAgB,aAAcvvC,OAAd,EAAuB;IACrB,MAAMmvC,MAAA,GAAS,KAAKlD,OAApB;IACA,MAAMuD,UAAA,GAAaxvC,OAAA,CAAQlC,MAA3B;IACA,MAAM8f,QAAA,GAAW,KAAK,CAAAnB,KAAL,CAAYe,YAA7B;IAEA,IAAIgyB,UAAJ,EAAgB;MAEdL,MAAA,CAAOpD,QAAP,GAAkBnuB,QAAA,GAAW4xB,UAAA,GAAa,CAAxB,GAA4B,CAA9C;MACA,KAAK,CAAAH,WAAL,CAAgC,IAAhC;MACA,OAAO,IAAP;IAJc;IAOhB,KAAK,CAAAC,iBAAL,CAAwB1xB,QAAxB;IACA,IAAIuxB,MAAA,CAAOjD,OAAX,EAAoB;MAClBiD,MAAA,CAAOpD,QAAP,GAAkB,IAAlB;MACA,IAAI,KAAKS,cAAL,GAAsB,CAA1B,EAA6B;QAE3B,KAAK,CAAA6C,WAAL,CAAgC,KAAhC;QAGA,OAAO,IAAP;MAL2B;IAFX;IAWpB,OAAO,KAAP;EAxBqB;EA2BvB,CAAAd,cAAA,EAAiB;IACf,IAAI,KAAK7B,cAAL,KAAwB,IAA5B,EAAkC;MAChC9wC,OAAA,CAAQK,KAAR,CAAc,qCAAd;IADgC;IAIlC,IAAI+D,OAAA,GAAU,IAAd;IACA,GAAG;MACD,MAAMgsC,OAAA,GAAU,KAAKC,OAAL,CAAaD,OAA7B;MACAhsC,OAAA,GAAU,KAAK4qC,YAAL,CAAkBoB,OAAlB,CAAV;MACA,IAAI,CAAChsC,OAAL,EAAc;QAGZ,KAAK0sC,cAAL,GAAsBV,OAAtB;QACA;MAJY;IAHb,CAAH,QASS,CAAC,KAAK,CAAAuD,YAAL,CAAmBvvC,OAAnB,CATV;EANe;EAkBjB,CAAAsvC,kBAAmB1xB,QAAnB,EAA6B;IAC3B,MAAMuxB,MAAA,GAAS,KAAKlD,OAApB;IACA,MAAMzlC,QAAA,GAAW,KAAK4jC,YAAL,CAAkB7jC,UAAnC;IACA4oC,MAAA,CAAOnD,OAAP,GAAiBpuB,QAAA,GAAWuxB,MAAA,CAAOnD,OAAP,GAAiB,CAA5B,GAAgCmD,MAAA,CAAOnD,OAAP,GAAiB,CAAlE;IACAmD,MAAA,CAAOpD,QAAP,GAAkB,IAAlB;IAEA,KAAKS,cAAL;IAEA,IAAI2C,MAAA,CAAOnD,OAAP,IAAkBxlC,QAAlB,IAA8B2oC,MAAA,CAAOnD,OAAP,GAAiB,CAAnD,EAAsD;MACpDmD,MAAA,CAAOnD,OAAP,GAAiBpuB,QAAA,GAAWpX,QAAA,GAAW,CAAtB,GAA0B,CAA3C;MACA2oC,MAAA,CAAOjD,OAAP,GAAiB,IAAjB;IAFoD;EAR3B;EAc7B,CAAAmD,YAAaI,KAAA,GAAQ,KAArB,EAA4B;IAC1B,IAAIhzB,KAAA,GAAQopB,SAAA,CAAUG,SAAtB;IACA,MAAMkG,OAAA,GAAU,KAAKD,OAAL,CAAaC,OAA7B;IACA,KAAKD,OAAL,CAAaC,OAAb,GAAuB,KAAvB;IAEA,IAAIuD,KAAJ,EAAW;MACT,MAAMvyB,YAAA,GAAe,KAAK8tB,SAAL,CAAegB,OAApC;MACA,KAAKhB,SAAL,CAAegB,OAAf,GAAyB,KAAKC,OAAL,CAAaD,OAAtC;MACA,KAAKhB,SAAL,CAAee,QAAf,GAA0B,KAAKE,OAAL,CAAaF,QAAvC;MACAtvB,KAAA,GAAQyvB,OAAA,GAAUrG,SAAA,CAAUlhB,OAApB,GAA8BkhB,SAAA,CAAUC,KAAhD;MAGA,IAAI5oB,YAAA,KAAiB,CAAC,CAAlB,IAAuBA,YAAA,KAAiB,KAAK8tB,SAAL,CAAegB,OAA3D,EAAoE;QAClE,KAAK,CAAAsC,UAAL,CAAiBpxB,YAAjB;MADkE;IAP3D;IAYX,KAAK,CAAAa,aAAL,CAAoBtB,KAApB,EAA2B,KAAK,CAAAA,KAAL,CAAYe,YAAvC;IACA,IAAI,KAAKwtB,SAAL,CAAegB,OAAf,KAA2B,CAAC,CAAhC,EAAmC;MAEjC,KAAKF,cAAL,GAAsB,IAAtB;MAEA,KAAK,CAAAwC,UAAL,CAAiB,KAAKtD,SAAL,CAAegB,OAAhC;IAJiC;EAlBT;EA0B5B,CAAAxB,eAAgB9lC,GAAhB,EAAqB;IACnB,MAAMxN,WAAA,GAAc,KAAKomC,YAAzB;IAIA,KAAK2N,oBAAL,CAA0BtlC,OAA1B,CAAkCpK,IAAlC,CAAuC,MAAM;MAE3C,IACE,CAAC,KAAK+hC,YAAN,IACCpmC,WAAA,IAAe,KAAKomC,YAAL,KAAsBpmC,WAFxC,EAGE;QACA;MADA;MAIF,IAAI,KAAKs0C,YAAT,EAAuB;QACrB/sB,YAAA,CAAa,KAAK+sB,YAAlB;QACA,KAAKA,YAAL,GAAoB,IAApB;MAFqB;MAQvB,IAAI,KAAKkB,cAAT,EAAyB;QACvB,KAAKA,cAAL,GAAsB,IAAtB;QACA,KAAKtB,WAAL,GAAmB,IAAnB;MAFuB;MAKzB,KAAK,CAAArtB,aAAL,CAAoB8nB,SAAA,CAAUC,KAA9B;MAEA,KAAK4E,iBAAL,GAAyB,KAAzB;MACA,KAAK,CAAAgB,cAAL;IAzB2C,CAA7C;EALmB;EAkCrB,CAAAgE,oBAAA,EAAuB;IACrB,MAAM;MAAE1D,OAAF;MAAWD;IAAX,IAAwB,KAAKf,SAAnC;IACA,IAAI/E,OAAA,GAAU,CAAd;MACEn8B,KAAA,GAAQ,KAAKyiC,kBADf;IAEA,IAAIR,QAAA,KAAa,CAAC,CAAlB,EAAqB;MACnB,KAAK,IAAInuC,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAIouC,OAApB,EAA6BpuC,CAAA,EAA7B,EAAkC;QAChCqoC,OAAA,IAAW,KAAK2E,YAAL,CAAkBhtC,CAAlB,GAAsBE,MAAtB,IAAgC,CAA3C;MADgC;MAGlCmoC,OAAA,IAAW8F,QAAA,GAAW,CAAtB;IAJmB;IASrB,IAAI9F,OAAA,GAAU,CAAV,IAAeA,OAAA,GAAUn8B,KAA7B,EAAoC;MAClCm8B,OAAA,GAAUn8B,KAAA,GAAQ,CAAlB;IADkC;IAGpC,OAAO;MAAEm8B,OAAF;MAAWn8B;IAAX,CAAP;EAhBqB;EAmBvB,CAAA2kC,qBAAA,EAAwB;IACtB,KAAKpE,SAAL,CAAe7uC,QAAf,CAAwB,wBAAxB,EAAkD;MAChDC,MAAA,EAAQ,IADwC;MAEhDiiB,YAAA,EAAc,KAAK,CAAAgyB,mBAAL;IAFkC,CAAlD;EADsB;EAOxB,CAAA3xB,cAAetB,KAAf,EAAsBmB,QAAA,GAAW,KAAjC,EAAwC;IACtC,IACE,CAAC,KAAK,CAAAve,4BAAN,KACC,KAAK,CAAA8qC,iBAAL,KAA4B,KAAKC,YAAL,CAAkB7jC,UAA9C,IACCkW,KAAA,KAAUopB,SAAA,CAAUE,OADrB,CAFH,EAIE;MAGA;IAHA;IAMF,KAAKsE,SAAL,CAAe7uC,QAAf,CAAwB,wBAAxB,EAAkD;MAChDC,MAAA,EAAQ,IADwC;MAEhDghB,KAFgD;MAGhDmB,QAHgD;MAIhDF,YAAA,EAAc,KAAK,CAAAgyB,mBAAL,EAJkC;MAKhD7xB,QAAA,EAAU,KAAK,CAAApB,KAAL,EAAaW,KAAb,IAAsB;IALgB,CAAlD;EAXsC;AA/uBlB;AA/XxB7rB,yBAAA,GAAA4N,iBAAA;;;;;;;;;;;;;;ACeA,MAAMwwC,aAAA,GAAgB;EACpBC,KAAA,EAAO,CADa;EAEpBC,YAAA,EAAc,CAFM;EAGpBC,KAAA,EAAO,CAHa;EAIpBC,UAAA,EAAY,CAJQ;EAKpBC,eAAA,EAAiB,CALG;EAMpBC,eAAA,EAAiB,CANG;EAOpBC,yBAAA,EAA2B,CAPP;EAQpBC,WAAA,EAAa;AARO,CAAtB;AAfA5+C,qBAAA,GAAAo+C,aAAA;AA0BA,SAASS,oBAATA,CAA8BC,QAA9B,EAAwC;EACtC,OAAOA,QAAA,GAAW,MAAlB;AADsC;AAIxC,SAASC,OAATA,CAAiBD,QAAjB,EAA2B;EACzB,OAAQ,CAAAA,QAAA,GAAW,MAAX,MAAuB,CAA/B;AADyB;AAI3B,SAASE,YAATA,CAAsBF,QAAtB,EAAgC;EAC9B,OACGA,QAAA,IAAsB,IAAtB,IAA8BA,QAAA,IAAsB,IAArD,IACCA,QAAA,IAAsB,IAAtB,IAA8BA,QAAA,IAAsB,IAFvD;AAD8B;AAOhC,SAASG,YAATA,CAAsBH,QAAtB,EAAgC;EAC9B,OAAOA,QAAA,IAAsB,IAAtB,IAA8BA,QAAA,IAAsB,IAA3D;AAD8B;AAIhC,SAASI,YAATA,CAAsBJ,QAAtB,EAAgC;EAC9B,OACEA,QAAA,KAA2B,IAA3B,IACAA,QAAA,KAAyB,IADzB,IAEAA,QAAA,KAAwB,IAFxB,IAGAA,QAAA,KAAwB,IAJ1B;AAD8B;AAShC,SAASK,KAATA,CAAeL,QAAf,EAAyB;EACvB,OACGA,QAAA,IAAY,MAAZ,IAAsBA,QAAA,IAAY,MAAnC,IACCA,QAAA,IAAY,MAAZ,IAAsBA,QAAA,IAAY,MAFrC;AADuB;AAOzB,SAASM,UAATA,CAAoBN,QAApB,EAA8B;EAC5B,OAAOA,QAAA,IAAY,MAAZ,IAAsBA,QAAA,IAAY,MAAzC;AAD4B;AAI9B,SAASO,UAATA,CAAoBP,QAApB,EAA8B;EAC5B,OAAOA,QAAA,IAAY,MAAZ,IAAsBA,QAAA,IAAY,MAAzC;AAD4B;AAI9B,SAASQ,mBAATA,CAA6BR,QAA7B,EAAuC;EACrC,OAAOA,QAAA,IAAY,MAAZ,IAAsBA,QAAA,IAAY,MAAzC;AADqC;AAIvC,SAASS,MAATA,CAAgBT,QAAhB,EAA0B;EACxB,OAAQ,CAAAA,QAAA,GAAW,MAAX,MAAuB,MAA/B;AADwB;AAQ1B,SAAS/C,gBAATA,CAA0B+C,QAA1B,EAAoC;EAClC,IAAID,oBAAA,CAAqBC,QAArB,CAAJ,EAAoC;IAClC,IAAIC,OAAA,CAAQD,QAAR,CAAJ,EAAuB;MACrB,IAAII,YAAA,CAAaJ,QAAb,CAAJ,EAA4B;QAC1B,OAAOV,aAAA,CAAcC,KAArB;MAD0B,CAA5B,MAEO,IACLW,YAAA,CAAaF,QAAb,KACAG,YAAA,CAAaH,QAAb,CADA,IAEAA,QAAA,KAAgC,IAH3B,EAIL;QACA,OAAOV,aAAA,CAAcE,YAArB;MADA;MAGF,OAAOF,aAAA,CAAcG,KAArB;IAVqB,CAAvB,MAWO,IAAIgB,MAAA,CAAOT,QAAP,CAAJ,EAAsB;MAC3B,OAAOV,aAAA,CAAcQ,WAArB;IAD2B,CAAtB,MAEA,IAAIE,QAAA,KAA0B,IAA9B,EAAoC;MACzC,OAAOV,aAAA,CAAcC,KAArB;IADyC;IAG3C,OAAOD,aAAA,CAAcE,YAArB;EAjBkC;EAoBpC,IAAIa,KAAA,CAAML,QAAN,CAAJ,EAAqB;IACnB,OAAOV,aAAA,CAAcI,UAArB;EADmB,CAArB,MAEO,IAAIY,UAAA,CAAWN,QAAX,CAAJ,EAA0B;IAC/B,OAAOV,aAAA,CAAcK,eAArB;EAD+B,CAA1B,MAEA,IAAIY,UAAA,CAAWP,QAAX,CAAJ,EAA0B;IAC/B,OAAOV,aAAA,CAAcM,eAArB;EAD+B,CAA1B,MAEA,IAAIY,mBAAA,CAAoBR,QAApB,CAAJ,EAAmC;IACxC,OAAOV,aAAA,CAAcO,yBAArB;EADwC;EAG1C,OAAOP,aAAA,CAAcE,YAArB;AA9BkC;AAiCpC,IAAIkB,iBAAJ;AACA,SAAShJ,oBAATA,CAAA,EAAgC;EAE9BgJ,iBAAA,KAAuB,oXAAvB;EAoCA,OAAOA,iBAAP;AAtC8B;;;;;;;;;;;;;;ACjGhC,IAAA/9C,SAAA,GAAA/B,mBAAA;AACA,IAAAkC,YAAA,GAAAlC,mBAAA;AAGA,MAAM+/C,mBAAA,GAAsB,IAA5B;AAEA,MAAMC,0BAAA,GAA6B,EAAnC;AAEA,MAAMC,uBAAA,GAA0B,IAAhC;AAwBA,SAASC,cAATA,CAAA,EAA0B;EACxB,OAAOx6C,QAAA,CAASC,QAAT,CAAkBC,IAAzB;AADwB;AAI1B,MAAMuK,UAAN,CAAiB;EAIfhM,YAAY;IAAEgK,WAAF;IAAe5G;EAAf,CAAZ,EAAuC;IACrC,KAAK4G,WAAL,GAAmBA,WAAnB;IACA,KAAK5G,QAAL,GAAgBA,QAAhB;IAEA,KAAK44C,YAAL,GAAoB,KAApB;IACA,KAAKC,YAAL,GAAoB,EAApB;IACA,KAAK5oC,KAAL;IAEA,KAAKtP,YAAL,GAAoB,IAApB;IAGA,KAAKX,QAAL,CAAcwX,GAAd,CAAkB,WAAlB,EAA+B,MAAM;MACnC,KAAKshC,cAAL,GAAsB,KAAtB;MAEA,KAAK94C,QAAL,CAAcwX,GAAd,CACE,aADF,EAEEtL,GAAA,IAAO;QACL,KAAK4sC,cAAL,GAAsB,CAAC,CAAC5sC,GAAA,CAAI6B,UAA5B;MADK,CAFT,EAKE;QAAE0J,IAAA,EAAM;MAAR,CALF;IAHmC,CAArC;EAXqC;EA6BvC1V,WAAW;IAAEiU,WAAF;IAAesE,YAAA,GAAe,KAA9B;IAAqCC,SAAA,GAAY;EAAjD,CAAX,EAAqE;IACnE,IAAI,CAACvE,WAAD,IAAgB,OAAOA,WAAP,KAAuB,QAA3C,EAAqD;MACnD5S,OAAA,CAAQK,KAAR,CACE,sEADF;MAGA;IAJmD;IAOrD,IAAI,KAAKm1C,YAAT,EAAuB;MACrB,KAAK3oC,KAAL;IADqB;IAGvB,MAAM8oC,aAAA,GACJ,KAAKF,YAAL,KAAsB,EAAtB,IAA4B,KAAKA,YAAL,KAAsB7iC,WADpD;IAEA,KAAK6iC,YAAL,GAAoB7iC,WAApB;IACA,KAAKgjC,UAAL,GAAkBz+B,SAAA,KAAc,IAAhC;IAEA,KAAKq+B,YAAL,GAAoB,IAApB;IACA,KAAKK,WAAL;IACA,MAAMh1B,KAAA,GAAQ3jB,MAAA,CAAO44C,OAAP,CAAej1B,KAA7B;IAEA,KAAKk1B,mBAAL,GAA2B,KAA3B;IACA,KAAKC,gBAAL,GAAwB,CAAxB;IACA,KAAKC,YAAL,GAAoBV,cAAA,EAApB;IACA,KAAKW,mBAAL,GAA2B,CAA3B;IAEA,KAAKC,IAAL,GAAY,KAAKC,OAAL,GAAe,CAA3B;IACA,KAAKC,YAAL,GAAoB,IAApB;IACA,KAAKC,SAAL,GAAiB,IAAjB;IAEA,IAAI,CAAC,KAAKC,aAAL,CAAmB11B,KAAnB,EAA8C,IAA9C,CAAD,IAAwD3J,YAA5D,EAA0E;MACxE,MAAM;QAAEjc,IAAF;QAAQ4P,IAAR;QAAc6G;MAAd,IAA2B,KAAK8kC,iBAAL,CACR,IADQ,CAAjC;MAIA,IAAI,CAACv7C,IAAD,IAAS06C,aAAT,IAA0Bz+B,YAA9B,EAA4C;QAE1C,KAAKu/B,mBAAL,CAAyB,IAAzB,EAAoD,IAApD;QACA;MAH0C;MAO5C,KAAKA,mBAAL,CACE;QAAEx7C,IAAF;QAAQ4P,IAAR;QAAc6G;MAAd,CADF,EAEuB,IAFvB;MAIA;IAhBwE;IAqB1E,MAAMglC,WAAA,GAAc71B,KAAA,CAAM61B,WAA1B;IACA,KAAKC,oBAAL,CACED,WADF,EAEE71B,KAAA,CAAM+1B,GAFR,EAG0B,IAH1B;IAMA,IAAIF,WAAA,CAAYhlC,QAAZ,KAAyBrD,SAA7B,EAAwC;MACtC,KAAKwoC,gBAAL,GAAwBH,WAAA,CAAYhlC,QAApC;IADsC;IAGxC,IAAIglC,WAAA,CAAY5jC,IAAhB,EAAsB;MACpB,KAAKgkC,gBAAL,GAAwB5gD,IAAA,CAAKC,SAAL,CAAeugD,WAAA,CAAY5jC,IAA3B,CAAxB;MAKA,KAAKujC,YAAL,CAAkBxrC,IAAlB,GAAyB,IAAzB;IANoB,CAAtB,MAOO,IAAI6rC,WAAA,CAAYz7C,IAAhB,EAAsB;MAC3B,KAAK67C,gBAAL,GAAwBJ,WAAA,CAAYz7C,IAApC;IAD2B,CAAtB,MAEA,IAAIy7C,WAAA,CAAY7rC,IAAhB,EAAsB;MAE3B,KAAKisC,gBAAL,GAAyB,QAAOJ,WAAA,CAAY7rC,IAApB,EAAxB;IAF2B;EArEsC;EA+ErEgC,MAAA,EAAQ;IACN,IAAI,KAAK2oC,YAAT,EAAuB;MACrB,KAAKuB,SAAL;MAEA,KAAKvB,YAAL,GAAoB,KAApB;MACA,KAAKwB,aAAL;IAJqB;IAMvB,IAAI,KAAKC,sBAAT,EAAiC;MAC/Bp0B,YAAA,CAAa,KAAKo0B,sBAAlB;MACA,KAAKA,sBAAL,GAA8B,IAA9B;IAF+B;IAIjC,KAAKH,gBAAL,GAAwB,IAAxB;IACA,KAAKD,gBAAL,GAAwB,IAAxB;EAZM;EAmBRrqC,KAAK;IAAE8qB,SAAA,GAAY,IAAd;IAAoBjgB,YAApB;IAAkCC;EAAlC,CAAL,EAAqD;IACnD,IAAI,CAAC,KAAKk+B,YAAV,EAAwB;MACtB;IADsB;IAGxB,IAAIle,SAAA,IAAa,OAAOA,SAAP,KAAqB,QAAtC,EAAgD;MAC9Ct3B,OAAA,CAAQK,KAAR,CACE,sBACG,IAAGi3B,SAAU,uCAFlB;MAIA;IAL8C,CAAhD,MAMO,IAAI,CAACW,KAAA,CAAMC,OAAN,CAAc7gB,YAAd,CAAL,EAAkC;MACvCrX,OAAA,CAAQK,KAAR,CACE,sBACG,IAAGgX,YAAa,0CAFrB;MAIA;IALuC,CAAlC,MAMA,IAAI,CAAC,KAAK6/B,YAAL,CAAkB5/B,UAAlB,CAAL,EAAoC;MAGzC,IAAIA,UAAA,KAAe,IAAf,IAAuB,KAAK++B,YAAhC,EAA8C;QAC5Cr2C,OAAA,CAAQK,KAAR,CACE,sBACG,IAAGiX,UAAW,wCAFnB;QAIA;MAL4C;IAHL;IAY3C,MAAMrc,IAAA,GAAOq8B,SAAA,IAAaphC,IAAA,CAAKC,SAAL,CAAekhB,YAAf,CAA1B;IACA,IAAI,CAACpc,IAAL,EAAW;MAGT;IAHS;IAMX,IAAIk8C,YAAA,GAAe,KAAnB;IACA,IACE,KAAKd,YAAL,KACCe,iBAAA,CAAkB,KAAKf,YAAL,CAAkBp7C,IAApC,EAA0CA,IAA1C,KACCo8C,iBAAA,CAAkB,KAAKhB,YAAL,CAAkBvjC,IAApC,EAA0CuE,YAA1C,CADD,CAFH,EAIE;MAMA,IAAI,KAAKg/B,YAAL,CAAkBxrC,IAAtB,EAA4B;QAC1B;MAD0B;MAG5BssC,YAAA,GAAe,IAAf;IATA;IAWF,IAAI,KAAKpB,mBAAL,IAA4B,CAACoB,YAAjC,EAA+C;MAC7C;IAD6C;IAI/C,KAAKV,mBAAL,CACE;MACE3jC,IAAA,EAAMuE,YADR;MAEEpc,IAFF;MAGE4P,IAAA,EAAMyM,UAHR;MAIE5F,QAAA,EAAU,KAAKlO,WAAL,CAAiBkO;IAJ7B,CADF,EAOEylC,YAPF;IAUA,IAAI,CAAC,KAAKpB,mBAAV,EAA+B;MAG7B,KAAKA,mBAAL,GAA2B,IAA3B;MAGAn7C,OAAA,CAAQC,OAAR,GAAkB8E,IAAlB,CAAuB,MAAM;QAC3B,KAAKo2C,mBAAL,GAA2B,KAA3B;MAD2B,CAA7B;IAN6B;EAjEoB;EAkFrD3d,SAAS9gB,UAAT,EAAqB;IACnB,IAAI,CAAC,KAAKk+B,YAAV,EAAwB;MACtB;IADsB;IAGxB,IAAI,CAAC,KAAK0B,YAAL,CAAkB5/B,UAAlB,CAAL,EAAoC;MAClCtX,OAAA,CAAQK,KAAR,CACG,yBAAwBiX,UAAW,+BADtC;MAGA;IAJkC;IAOpC,IAAI,KAAK++B,YAAL,EAAmBxrC,IAAnB,KAA4ByM,UAAhC,EAA4C;MAG1C;IAH0C;IAK5C,IAAI,KAAKy+B,mBAAT,EAA8B;MAC5B;IAD4B;IAI9B,KAAKU,mBAAL,CAAyB;MAEvB3jC,IAAA,EAAM,IAFiB;MAGvB7X,IAAA,EAAO,QAAOqc,UAAR,EAHiB;MAIvBzM,IAAA,EAAMyM,UAJiB;MAKvB5F,QAAA,EAAU,KAAKlO,WAAL,CAAiBkO;IALJ,CAAzB;IAQA,IAAI,CAAC,KAAKqkC,mBAAV,EAA+B;MAG7B,KAAKA,mBAAL,GAA2B,IAA3B;MAGAn7C,OAAA,CAAQC,OAAR,GAAkB8E,IAAlB,CAAuB,MAAM;QAC3B,KAAKo2C,mBAAL,GAA2B,KAA3B;MAD2B,CAA7B;IAN6B;EA5BZ;EA2CrBne,oBAAA,EAAsB;IACpB,IAAI,CAAC,KAAK4d,YAAN,IAAsB,KAAKO,mBAA/B,EAAoD;MAClD;IADkD;IAGpD,KAAKuB,uBAAL;EAJoB;EAWtBne,KAAA,EAAO;IACL,IAAI,CAAC,KAAKqc,YAAN,IAAsB,KAAKO,mBAA/B,EAAoD;MAClD;IADkD;IAGpD,MAAMl1B,KAAA,GAAQ3jB,MAAA,CAAO44C,OAAP,CAAej1B,KAA7B;IACA,IAAI,KAAK01B,aAAL,CAAmB11B,KAAnB,KAA6BA,KAAA,CAAM+1B,GAAN,GAAY,CAA7C,EAAgD;MAC9C15C,MAAA,CAAO44C,OAAP,CAAe3c,IAAf;IAD8C;EAL3C;EAcPC,QAAA,EAAU;IACR,IAAI,CAAC,KAAKoc,YAAN,IAAsB,KAAKO,mBAA/B,EAAoD;MAClD;IADkD;IAGpD,MAAMl1B,KAAA,GAAQ3jB,MAAA,CAAO44C,OAAP,CAAej1B,KAA7B;IACA,IAAI,KAAK01B,aAAL,CAAmB11B,KAAnB,KAA6BA,KAAA,CAAM+1B,GAAN,GAAY,KAAKR,OAAlD,EAA2D;MACzDl5C,MAAA,CAAO44C,OAAP,CAAe1c,OAAf;IADyD;EALnD;EAcV,IAAIlY,kBAAJA,CAAA,EAAyB;IACvB,OACE,KAAKs0B,YAAL,KACC,KAAKO,mBAAL,IAA4B,KAAKC,gBAAL,GAAwB,CAApD,CAFH;EADuB;EAOzB,IAAIl7C,eAAJA,CAAA,EAAsB;IACpB,OAAO,KAAK06C,YAAL,GAAoB,KAAKsB,gBAAzB,GAA4C,IAAnD;EADoB;EAItB,IAAI1/B,eAAJA,CAAA,EAAsB;IACpB,OAAO,KAAKo+B,YAAL,GAAoB,KAAKqB,gBAAzB,GAA4C,IAAnD;EADoB;EAOtBJ,oBAAoBC,WAApB,EAAiCS,YAAA,GAAe,KAAhD,EAAuD;IACrD,MAAMI,aAAA,GAAgBJ,YAAA,IAAgB,CAAC,KAAKd,YAA5C;IACA,MAAM3vB,QAAA,GAAW;MACf9T,WAAA,EAAa,KAAK6iC,YADH;MAEfmB,GAAA,EAAKW,aAAA,GAAgB,KAAKpB,IAArB,GAA4B,KAAKA,IAAL,GAAY,CAF9B;MAGfO;IAHe,CAAjB;IAcA,KAAKC,oBAAL,CAA0BD,WAA1B,EAAuChwB,QAAA,CAASkwB,GAAhD;IAEA,IAAIY,MAAJ;IACA,IAAI,KAAK5B,UAAL,IAAmBc,WAAA,EAAaz7C,IAApC,EAA0C;MACxC,MAAMoC,OAAA,GAAUtC,QAAA,CAASC,QAAT,CAAkBqkB,IAAlB,CAAuBhe,KAAvB,CAA6B,GAA7B,EAAkC,CAAlC,CAAhB;MAEA,IAAI,CAAChE,OAAA,CAAQo6C,UAAR,CAAmB,SAAnB,CAAL,EAAoC;QAClCD,MAAA,GAAS,GAAGn6C,OAAQ,IAAGq5C,WAAA,CAAYz7C,IAA1B,EAAT;MADkC;IAHI;IAO1C,IAAIs8C,aAAJ,EAAmB;MACjBr6C,MAAA,CAAO44C,OAAP,CAAe4B,YAAf,CAA4BhxB,QAA5B,EAAsC,EAAtC,EAA0C8wB,MAA1C;IADiB,CAAnB,MAEO;MACLt6C,MAAA,CAAO44C,OAAP,CAAe6B,SAAf,CAAyBjxB,QAAzB,EAAmC,EAAnC,EAAuC8wB,MAAvC;IADK;EA5B8C;EA6CvDF,wBAAwBM,SAAA,GAAY,KAApC,EAA2C;IACzC,IAAI,CAAC,KAAKtB,SAAV,EAAqB;MACnB;IADmB;IAGrB,IAAIuB,QAAA,GAAW,KAAKvB,SAApB;IACA,IAAIsB,SAAJ,EAAe;MACbC,QAAA,GAAWr6C,MAAA,CAAO8P,MAAP,CAAc9P,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAd,EAAmC,KAAK64C,SAAxC,CAAX;MACAuB,QAAA,CAASD,SAAT,GAAqB,IAArB;IAFa;IAKf,IAAI,CAAC,KAAKvB,YAAV,EAAwB;MACtB,KAAKI,mBAAL,CAAyBoB,QAAzB;MACA;IAFsB;IAIxB,IAAI,KAAKxB,YAAL,CAAkBuB,SAAtB,EAAiC;MAE/B,KAAKnB,mBAAL,CAAyBoB,QAAzB,EAAwD,IAAxD;MACA;IAH+B;IAKjC,IAAI,KAAKxB,YAAL,CAAkBp7C,IAAlB,KAA2B48C,QAAA,CAAS58C,IAAxC,EAA8C;MAC5C;IAD4C;IAG9C,IACE,CAAC,KAAKo7C,YAAL,CAAkBxrC,IAAnB,KACCwqC,0BAAA,IAA8B,CAA9B,IACC,KAAKa,mBAAL,IAA4Bb,0BAD7B,CAFH,EAIE;MAKA;IALA;IAQF,IAAI8B,YAAA,GAAe,KAAnB;IACA,IACE,KAAKd,YAAL,CAAkBxrC,IAAlB,IAA0BgtC,QAAA,CAAS5nB,KAAnC,IACA,KAAKomB,YAAL,CAAkBxrC,IAAlB,IAA0BgtC,QAAA,CAAShtC,IAFrC,EAGE;MAMA,IAAI,KAAKwrC,YAAL,CAAkBvjC,IAAlB,KAA2BzE,SAA3B,IAAwC,CAAC,KAAKgoC,YAAL,CAAkBpmB,KAA/D,EAAsE;QACpE;MADoE;MAItEknB,YAAA,GAAe,IAAf;IAVA;IAYF,KAAKV,mBAAL,CAAyBoB,QAAzB,EAAmCV,YAAnC;EAlDyC;EAwD3CD,aAAapsC,GAAb,EAAkB;IAChB,OACE6lB,MAAA,CAAOC,SAAP,CAAiB9lB,GAAjB,KAAyBA,GAAA,GAAM,CAA/B,IAAoCA,GAAA,IAAO,KAAKtH,WAAL,CAAiBmH,UAD9D;EADgB;EASlB4rC,cAAc11B,KAAd,EAAqBi3B,WAAA,GAAc,KAAnC,EAA0C;IACxC,IAAI,CAACj3B,KAAL,EAAY;MACV,OAAO,KAAP;IADU;IAGZ,IAAIA,KAAA,CAAMjO,WAAN,KAAsB,KAAK6iC,YAA/B,EAA6C;MAC3C,IAAIqC,WAAJ,EAAiB;QAGf,IACE,OAAOj3B,KAAA,CAAMjO,WAAb,KAA6B,QAA7B,IACAiO,KAAA,CAAMjO,WAAN,CAAkB1Q,MAAlB,KAA6B,KAAKuzC,YAAL,CAAkBvzC,MAFjD,EAGE;UACA,OAAO,KAAP;QADA;QAGF,MAAM,CAAC61C,SAAD,IAAcC,WAAA,CAAYC,gBAAZ,CAA6B,YAA7B,CAApB;QACA,IAAIF,SAAA,EAAW9oC,IAAX,KAAoB,QAAxB,EAAkC;UAChC,OAAO,KAAP;QADgC;MAVnB,CAAjB,MAaO;QAGL,OAAO,KAAP;MAHK;IAdoC;IAoB7C,IAAI,CAAC0hB,MAAA,CAAOC,SAAP,CAAiB/P,KAAA,CAAM+1B,GAAvB,CAAD,IAAgC/1B,KAAA,CAAM+1B,GAAN,GAAY,CAAhD,EAAmD;MACjD,OAAO,KAAP;IADiD;IAGnD,IAAI/1B,KAAA,CAAM61B,WAAN,KAAsB,IAAtB,IAA8B,OAAO71B,KAAA,CAAM61B,WAAb,KAA6B,QAA/D,EAAyE;MACvE,OAAO,KAAP;IADuE;IAGzE,OAAO,IAAP;EA9BwC;EAoC1CC,qBAAqBD,WAArB,EAAkCE,GAAlC,EAAuCsB,eAAA,GAAkB,KAAzD,EAAgE;IAC9D,IAAI,KAAKjB,sBAAT,EAAiC;MAI/Bp0B,YAAA,CAAa,KAAKo0B,sBAAlB;MACA,KAAKA,sBAAL,GAA8B,IAA9B;IAL+B;IAOjC,IAAIiB,eAAA,IAAmBxB,WAAA,EAAakB,SAApC,EAA+C;MAG7C,OAAOlB,WAAA,CAAYkB,SAAnB;IAH6C;IAK/C,KAAKvB,YAAL,GAAoBK,WAApB;IACA,KAAKP,IAAL,GAAYS,GAAZ;IACA,KAAKR,OAAL,GAAenmC,IAAA,CAAK2f,GAAL,CAAS,KAAKwmB,OAAd,EAAuBQ,GAAvB,CAAf;IAEA,KAAKV,mBAAL,GAA2B,CAA3B;EAjB8D;EAuBhEM,kBAAkB2B,cAAA,GAAiB,KAAnC,EAA0C;IACxC,MAAMl9C,IAAA,GAAO+9B,QAAA,CAASuc,cAAA,EAAT,EAA2Br6C,SAA3B,CAAqC,CAArC,CAAb;IACA,MAAMuF,MAAA,GAAS,IAAAC,0BAAA,EAAiBzF,IAAjB,CAAf;IAEA,MAAMm9C,SAAA,GAAY33C,MAAA,CAAOzB,GAAP,CAAW,WAAX,KAA2B,EAA7C;IACA,IAAI6L,IAAA,GAAOpK,MAAA,CAAOzB,GAAP,CAAW,MAAX,IAAqB,CAAhC;IAEA,IAAI,CAAC,KAAKk4C,YAAL,CAAkBrsC,IAAlB,CAAD,IAA6BstC,cAAA,IAAkBC,SAAA,CAAUl2C,MAAV,GAAmB,CAAtE,EAA0E;MACxE2I,IAAA,GAAO,IAAP;IADwE;IAG1E,OAAO;MAAE5P,IAAF;MAAQ4P,IAAR;MAAc6G,QAAA,EAAU,KAAKlO,WAAL,CAAiBkO;IAAzC,CAAP;EAVwC;EAgB1C2mC,gBAAgB;IAAEr9C;EAAF,CAAhB,EAA8B;IAC5B,IAAI,KAAKi8C,sBAAT,EAAiC;MAC/Bp0B,YAAA,CAAa,KAAKo0B,sBAAlB;MACA,KAAKA,sBAAL,GAA8B,IAA9B;IAF+B;IAKjC,KAAKX,SAAL,GAAiB;MACfr7C,IAAA,EAAMD,QAAA,CAASimB,aAAT,CAAuB/lB,SAAvB,CAAiC,CAAjC,CADS;MAEf2P,IAAA,EAAM,KAAKrH,WAAL,CAAiBqH,IAFR;MAGfolB,KAAA,EAAOj1B,QAAA,CAASsc,UAHD;MAIf5F,QAAA,EAAU1W,QAAA,CAAS0W;IAJJ,CAAjB;IAOA,IAAI,KAAKqkC,mBAAT,EAA8B;MAC5B;IAD4B;IAI9B,IACEV,0BAAA,GAA6B,CAA7B,IACA,KAAKK,cADL,IAEA,KAAKW,YAFL,IAGA,CAAC,KAAKA,YAAL,CAAkBxrC,IAJrB,EAKE;MASA,KAAKqrC,mBAAL;IATA;IAYF,IAAIZ,uBAAA,GAA0B,CAA9B,EAAiC;MAgB/B,KAAK2B,sBAAL,GAA8B3jC,UAAA,CAAW,MAAM;QAC7C,IAAI,CAAC,KAAKyiC,mBAAV,EAA+B;UAC7B,KAAKuB,uBAAL,CAA+C,IAA/C;QAD6B;QAG/B,KAAKL,sBAAL,GAA8B,IAA9B;MAJ6C,CAAjB,EAK3B3B,uBAL2B,CAA9B;IAhB+B;EAlCL;EA8D9BgD,UAAU;IAAEz3B;EAAF,CAAV,EAAqB;IACnB,MAAM03B,OAAA,GAAUhD,cAAA,EAAhB;MACEiD,WAAA,GAAc,KAAKvC,YAAL,KAAsBsC,OADtC;IAEA,KAAKtC,YAAL,GAAoBsC,OAApB;IAEA,IAKE,CAAC13B,KALH,EAME;MAEA,KAAKs1B,IAAL;MAEA,MAAM;QAAEl7C,IAAF;QAAQ4P,IAAR;QAAc6G;MAAd,IAA2B,KAAK8kC,iBAAL,EAAjC;MACA,KAAKC,mBAAL,CACE;QAAEx7C,IAAF;QAAQ4P,IAAR;QAAc6G;MAAd,CADF,EAEuB,IAFvB;MAIA;IATA;IAWF,IAAI,CAAC,KAAK6kC,aAAL,CAAmB11B,KAAnB,CAAL,EAAgC;MAG9B;IAH8B;IAQhC,KAAKk1B,mBAAL,GAA2B,IAA3B;IAEA,IAAIyC,WAAJ,EAAiB;MAUf,KAAKxC,gBAAL;MACA,IAAAxgB,iCAAA,EAAqB;QACnBxsB,MAAA,EAAQ9L,MADW;QAEnB8X,IAAA,EAAM,YAFa;QAGnByc,KAAA,EAAO2jB;MAHY,CAArB,EAIGz1C,IAJH,CAIQ,MAAM;QACZ,KAAKq2C,gBAAL;MADY,CAJd;IAXe;IAqBjB,MAAMU,WAAA,GAAc71B,KAAA,CAAM61B,WAA1B;IACA,KAAKC,oBAAL,CACED,WADF,EAEE71B,KAAA,CAAM+1B,GAFR,EAG0B,IAH1B;IAMA,IAAI,IAAA5+B,yBAAA,EAAgB0+B,WAAA,CAAYhlC,QAA5B,CAAJ,EAA2C;MACzC,KAAKlO,WAAL,CAAiBkO,QAAjB,GAA4BglC,WAAA,CAAYhlC,QAAxC;IADyC;IAG3C,IAAIglC,WAAA,CAAY5jC,IAAhB,EAAsB;MACpB,KAAKtP,WAAL,CAAiBu0B,eAAjB,CAAiC2e,WAAA,CAAY5jC,IAA7C;IADoB,CAAtB,MAEO,IAAI4jC,WAAA,CAAYz7C,IAAhB,EAAsB;MAC3B,KAAKuI,WAAL,CAAiB+U,OAAjB,CAAyBm+B,WAAA,CAAYz7C,IAArC;IAD2B,CAAtB,MAEA,IAAIy7C,WAAA,CAAY7rC,IAAhB,EAAsB;MAE3B,KAAKrH,WAAL,CAAiBqH,IAAjB,GAAwB6rC,WAAA,CAAY7rC,IAApC;IAF2B;IAO7BjQ,OAAA,CAAQC,OAAR,GAAkB8E,IAAlB,CAAuB,MAAM;MAC3B,KAAKo2C,mBAAL,GAA2B,KAA3B;IAD2B,CAA7B;EA1EmB;EAkFrBgB,UAAA,EAAY;IAMV,IAAI,CAAC,KAAKV,YAAN,IAAsB,KAAKA,YAAL,CAAkBuB,SAA5C,EAAuD;MACrD,KAAKN,uBAAL;IADqD;EAN7C;EAcZzB,YAAA,EAAc;IACZ,IAAI,KAAKt4C,YAAT,EAAuB;MACrB;IADqB;IAGvB,KAAKA,YAAL,GAAoB;MAClBk7C,cAAA,EAAgB,KAAKJ,eAAL,CAAqBp1C,IAArB,CAA0B,IAA1B,CADE;MAElBy1C,QAAA,EAAU,KAAKJ,SAAL,CAAer1C,IAAf,CAAoB,IAApB,CAFQ;MAGlB01C,QAAA,EAAU,KAAK5B,SAAL,CAAe9zC,IAAf,CAAoB,IAApB;IAHQ,CAApB;IAMA,KAAKrG,QAAL,CAAcwX,GAAd,CAAkB,gBAAlB,EAAoC,KAAK7W,YAAL,CAAkBk7C,cAAtD;IACAv7C,MAAA,CAAO2L,gBAAP,CAAwB,UAAxB,EAAoC,KAAKtL,YAAL,CAAkBm7C,QAAtD;IACAx7C,MAAA,CAAO2L,gBAAP,CAAwB,UAAxB,EAAoC,KAAKtL,YAAL,CAAkBo7C,QAAtD;EAZY;EAkBd3B,cAAA,EAAgB;IACd,IAAI,CAAC,KAAKz5C,YAAV,EAAwB;MACtB;IADsB;IAGxB,KAAKX,QAAL,CAAcghB,IAAd,CAAmB,gBAAnB,EAAqC,KAAKrgB,YAAL,CAAkBk7C,cAAvD;IACAv7C,MAAA,CAAOwa,mBAAP,CAA2B,UAA3B,EAAuC,KAAKna,YAAL,CAAkBm7C,QAAzD;IACAx7C,MAAA,CAAOwa,mBAAP,CAA2B,UAA3B,EAAuC,KAAKna,YAAL,CAAkBo7C,QAAzD;IAEA,KAAKp7C,YAAL,GAAoB,IAApB;EARc;AAlqBD;AAtDjB5H,kBAAA,GAAA6P,UAAA;AAouBA,SAAS4xC,iBAATA,CAA2BwB,QAA3B,EAAqCC,QAArC,EAA+C;EAC7C,IAAI,OAAOD,QAAP,KAAoB,QAApB,IAAgC,OAAOC,QAAP,KAAoB,QAAxD,EAAkE;IAChE,OAAO,KAAP;EADgE;EAGlE,IAAID,QAAA,KAAaC,QAAjB,EAA2B;IACzB,OAAO,IAAP;EADyB;EAG3B,MAAMT,SAAA,GAAY,IAAA13C,0BAAA,EAAiBk4C,QAAjB,EAA2B55C,GAA3B,CAA+B,WAA/B,CAAlB;EACA,IAAIo5C,SAAA,KAAcS,QAAlB,EAA4B;IAC1B,OAAO,IAAP;EAD0B;EAG5B,OAAO,KAAP;AAX6C;AAc/C,SAASxB,iBAATA,CAA2ByB,SAA3B,EAAsCC,UAAtC,EAAkD;EAChD,SAASC,YAATA,CAAsB/oB,KAAtB,EAA6BgpB,MAA7B,EAAqC;IACnC,IAAI,OAAOhpB,KAAP,KAAiB,OAAOgpB,MAA5B,EAAoC;MAClC,OAAO,KAAP;IADkC;IAGpC,IAAIhhB,KAAA,CAAMC,OAAN,CAAcjI,KAAd,KAAwBgI,KAAA,CAAMC,OAAN,CAAc+gB,MAAd,CAA5B,EAAmD;MACjD,OAAO,KAAP;IADiD;IAGnD,IAAIhpB,KAAA,KAAU,IAAV,IAAkB,OAAOA,KAAP,KAAiB,QAAnC,IAA+CgpB,MAAA,KAAW,IAA9D,EAAoE;MAClE,IAAIz7C,MAAA,CAAO43B,IAAP,CAAYnF,KAAZ,EAAmB/tB,MAAnB,KAA8B1E,MAAA,CAAO43B,IAAP,CAAY6jB,MAAZ,EAAoB/2C,MAAtD,EAA8D;QAC5D,OAAO,KAAP;MAD4D;MAG9D,WAAWoM,GAAX,IAAkB2hB,KAAlB,EAAyB;QACvB,IAAI,CAAC+oB,YAAA,CAAa/oB,KAAA,CAAM3hB,GAAN,CAAb,EAAyB2qC,MAAA,CAAO3qC,GAAP,CAAzB,CAAL,EAA4C;UAC1C,OAAO,KAAP;QAD0C;MADrB;MAKzB,OAAO,IAAP;IATkE;IAWpE,OAAO2hB,KAAA,KAAUgpB,MAAV,IAAqBtoB,MAAA,CAAOS,KAAP,CAAanB,KAAb,KAAuBU,MAAA,CAAOS,KAAP,CAAa6nB,MAAb,CAAnD;EAlBmC;EAqBrC,IAAI,EAAEhhB,KAAA,CAAMC,OAAN,CAAc4gB,SAAd,KAA4B7gB,KAAA,CAAMC,OAAN,CAAc6gB,UAAd,CAA5B,CAAN,EAA8D;IAC5D,OAAO,KAAP;EAD4D;EAG9D,IAAID,SAAA,CAAU52C,MAAV,KAAqB62C,UAAA,CAAW72C,MAApC,EAA4C;IAC1C,OAAO,KAAP;EAD0C;EAG5C,KAAK,IAAIF,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAK62C,SAAA,CAAU52C,MAA1B,EAAkCF,CAAA,GAAIC,EAA3C,EAA+CD,CAAA,EAA/C,EAAoD;IAClD,IAAI,CAACg3C,YAAA,CAAaF,SAAA,CAAU92C,CAAV,CAAb,EAA2B+2C,UAAA,CAAW/2C,CAAX,CAA3B,CAAL,EAAgD;MAC9C,OAAO,KAAP;IAD8C;EADE;EAKpD,OAAO,IAAP;AAjCgD;;;;;;;;;;;;ACnuBlD,IAAAq+B,iBAAA,GAAAhrC,mBAAA;AAgBA,MAAMgS,cAAN,SAA6Bi5B,gCAA7B,CAA4C;EAC1C9mC,YAAYQ,OAAZ,EAAqB;IACnB,MAAMA,OAAN;IACA,KAAK6C,IAAL,GAAY7C,OAAA,CAAQ6C,IAApB;IAEA,KAAKD,QAAL,CAAcwX,GAAd,CAAkB,8BAAlB,EAAkDtL,GAAA,IAAO;MACvD,KAAK,CAAAowC,YAAL,CAAmBpwC,GAAA,CAAIiB,OAAvB;IADuD,CAAzD;IAGA,KAAKnN,QAAL,CAAcwX,GAAd,CAAkB,aAAlB,EAAiC,MAAM;MACrC,KAAK,CAAA8kC,YAAL;IADqC,CAAvC;IAGA,KAAKt8C,QAAL,CAAcwX,GAAd,CAAkB,kBAAlB,EAAsC,KAAKmuB,mBAAL,CAAyBt/B,IAAzB,CAA8B,IAA9B,CAAtC;EAVmB;EAarB4J,MAAA,EAAQ;IACN,MAAMA,KAAN;IACA,KAAKssC,sBAAL,GAA8B,IAA9B;IACA,KAAKC,oBAAL,GAA4B,IAA5B;EAHM;EASRxY,eAAeyY,WAAf,EAA4B;IAC1B,KAAKz8C,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;MACrCC,MAAA,EAAQ,IAD6B;MAErCw5C;IAFqC,CAAvC;EAD0B;EAU5BvY,UAAUpX,OAAV,EAAmB;IAAE4vB,OAAF;IAAW7Z;EAAX,CAAnB,EAAuC;IACrC,MAAMjG,aAAA,GAAgBA,CAAA,KAAM;MAC1B,KAAK2f,sBAAL,CAA4B3f,aAA5B,CAA0C8f,OAA1C,EAAmD7Z,KAAA,CAAMlD,OAAzD;MACA,KAAK6c,oBAAL,GAA4B,KAAKD,sBAAL,CAA4BI,OAA5B,EAA5B;MAEA,KAAK38C,QAAL,CAAcgD,QAAd,CAAuB,uBAAvB,EAAgD;QAC9CC,MAAA,EAAQ,IADsC;QAE9CkK,OAAA,EAASnP,OAAA,CAAQC,OAAR,CAAgB,KAAKs+C,sBAArB;MAFqC,CAAhD;IAJ0B,CAA5B;IAUAzvB,OAAA,CAAQqN,OAAR,GAAkBjuB,GAAA,IAAO;MACvB,IAAIA,GAAA,CAAIE,MAAJ,KAAey2B,KAAnB,EAA0B;QACxBjG,aAAA;QACA,OAAO,IAAP;MAFwB,CAA1B,MAGO,IAAI1wB,GAAA,CAAIE,MAAJ,KAAe0gB,OAAnB,EAA4B;QACjC,OAAO,IAAP;MADiC;MAGnC+V,KAAA,CAAMlD,OAAN,GAAgB,CAACkD,KAAA,CAAMlD,OAAvB;MACA/C,aAAA;MACA,OAAO,KAAP;IATuB,CAAzB;EAXqC;EA2BvC,MAAMggB,cAANA,CAAqB9vB,OAArB,EAA8B;IAAE1U,IAAA,GAAO;EAAT,CAA9B,EAA+C;IAC7C,IAAI,OAAOA,IAAP,KAAgB,QAApB,EAA8B;MAC5B0U,OAAA,CAAQwW,WAAR,GAAsB,KAAKmB,qBAAL,CAA2BrsB,IAA3B,CAAtB;MACA;IAF4B;IAI9B0U,OAAA,CAAQwW,WAAR,GAAsB,MAAM,KAAKrjC,IAAL,CAAUmC,GAAV,CAAc,mBAAd,CAA5B;IACA0qB,OAAA,CAAQqH,KAAR,CAAc0oB,SAAd,GAA0B,QAA1B;EAN6C;EAY/C3X,iBAAiB3U,GAAjB,EAAsB;IAAEnY,IAAA,GAAO;EAAT,CAAtB,EAAuC;IACrC,MAAM8sB,gBAAN,CAAuB3U,GAAvB,EAA2CnY,IAAA,KAAS,IAApD;EADqC;EAOvCutB,oBAAA,EAAsB;IACpB,IAAI,CAAC,KAAK4W,sBAAV,EAAkC;MAChC;IADgC;IAGlC,MAAM5W,mBAAN;EAJoB;EAUtB1uB,OAAO;IAAEI,qBAAF;IAAyB3Y;EAAzB,CAAP,EAA+C;IAC7C,IAAI,KAAK69C,sBAAT,EAAiC;MAC/B,KAAKtsC,KAAL;IAD+B;IAGjC,KAAKssC,sBAAL,GAA8BllC,qBAAA,IAAyB,IAAvD;IACA,KAAKytB,YAAL,GAAoBpmC,WAAA,IAAe,IAAnC;IAEA,MAAMo+C,MAAA,GAASzlC,qBAAA,EAAuB0lC,QAAvB,EAAf;IACA,IAAI,CAACD,MAAL,EAAa;MACX,KAAK9Y,cAAL,CAAwC,CAAxC;MACA;IAFW;IAIb,KAAKwY,oBAAL,GAA4BnlC,qBAAA,CAAsBslC,OAAtB,EAA5B;IAEA,MAAMtY,QAAA,GAAWlmC,QAAA,CAASmmC,sBAAT,EAAjB;MACE0Y,KAAA,GAAQ,CAAC;QAAEz8C,MAAA,EAAQ8jC,QAAV;QAAoByY;MAApB,CAAD,CADV;IAEA,IAAIL,WAAA,GAAc,CAAlB;MACE7W,aAAA,GAAgB,KADlB;IAEA,OAAOoX,KAAA,CAAM13C,MAAN,GAAe,CAAtB,EAAyB;MACvB,MAAM23C,SAAA,GAAYD,KAAA,CAAM/M,KAAN,EAAlB;MACA,WAAWyM,OAAX,IAAsBO,SAAA,CAAUH,MAAhC,EAAwC;QACtC,MAAMvsB,GAAA,GAAMpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;QACA1O,GAAA,CAAIiU,SAAJ,GAAgB,UAAhB;QAEA,MAAM1X,OAAA,GAAU3uB,QAAA,CAAS8gC,aAAT,CAAuB,GAAvB,CAAhB;QACA1O,GAAA,CAAI4O,MAAJ,CAAWrS,OAAX;QAEA,IAAI,OAAO4vB,OAAP,KAAmB,QAAvB,EAAiC;UAC/B9W,aAAA,GAAgB,IAAhB;UACA,KAAKV,gBAAL,CAAsB3U,GAAtB,EAA2BmsB,OAA3B;UACA,KAAKE,cAAL,CAAoB9vB,OAApB,EAA6B4vB,OAA7B;UAEA,MAAMQ,QAAA,GAAW/+C,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAjB;UACAie,QAAA,CAAS1Y,SAAT,GAAqB,WAArB;UACAjU,GAAA,CAAI4O,MAAJ,CAAW+d,QAAX;UAEAF,KAAA,CAAMptC,IAAN,CAAW;YAAErP,MAAA,EAAQ28C,QAAV;YAAoBJ,MAAA,EAAQJ,OAAA,CAAQS;UAApC,CAAX;QAT+B,CAAjC,MAUO;UACL,MAAMtgB,KAAA,GAAQxlB,qBAAA,CAAsBylB,QAAtB,CAA+B4f,OAA/B,CAAd;UAEA,MAAM7Z,KAAA,GAAQ1kC,QAAA,CAAS8gC,aAAT,CAAuB,OAAvB,CAAd;UACA,KAAKiF,SAAL,CAAepX,OAAf,EAAwB;YAAE4vB,OAAF;YAAW7Z;UAAX,CAAxB;UACAA,KAAA,CAAMxwB,IAAN,GAAa,UAAb;UACAwwB,KAAA,CAAMlD,OAAN,GAAgB9C,KAAA,CAAM1K,OAAtB;UAEA,MAAMlY,KAAA,GAAQ9b,QAAA,CAAS8gC,aAAT,CAAuB,OAAvB,CAAd;UACAhlB,KAAA,CAAMqpB,WAAN,GAAoB,KAAKmB,qBAAL,CAA2B5H,KAAA,CAAMzkB,IAAjC,CAApB;UAEA6B,KAAA,CAAMklB,MAAN,CAAa0D,KAAb;UACA/V,OAAA,CAAQqS,MAAR,CAAellB,KAAf;UACAwiC,WAAA;QAbK;QAgBPQ,SAAA,CAAU18C,MAAV,CAAiB4+B,MAAjB,CAAwB5O,GAAxB;MAjCsC;IAFjB;IAuCzB,KAAKmU,gBAAL,CAAsBL,QAAtB,EAAgCoY,WAAhC,EAA6C7W,aAA7C;EAzD6C;EA4D/C,MAAM,CAAA0W,YAANA,CAAoBnvC,OAAA,GAAU,IAA9B,EAAoC;IAClC,IAAI,CAAC,KAAKovC,sBAAV,EAAkC;MAChC;IADgC;IAGlC,MAAM79C,WAAA,GAAc,KAAKomC,YAAzB;IACA,MAAMztB,qBAAA,GAAwB,OAAOlK,OAAA,IACnCzO,WAAA,CAAY0+C,wBAAZ,EADmC,CAArC;IAGA,IAAI1+C,WAAA,KAAgB,KAAKomC,YAAzB,EAAuC;MACrC;IADqC;IAGvC,IAAI33B,OAAJ,EAAa;MACX,IAAIkK,qBAAA,CAAsBslC,OAAtB,OAAoC,KAAKH,oBAA7C,EAAmE;QACjE;MADiE;IADxD,CAAb,MAIO;MACL,KAAKx8C,QAAL,CAAcgD,QAAd,CAAuB,uBAAvB,EAAgD;QAC9CC,MAAA,EAAQ,IADsC;QAE9CkK,OAAA,EAASnP,OAAA,CAAQC,OAAR,CAAgBoZ,qBAAhB;MAFqC,CAAhD;IADK;IAQP,KAAKJ,MAAL,CAAY;MACVI,qBADU;MAEV3Y,WAAA,EAAa,KAAKomC;IAFR,CAAZ;EAvBkC;AArJM;AA/B5C/rC,sBAAA,GAAA0R,cAAA;;;;;;;;;;;;ACeA,IAAAg5B,iBAAA,GAAAhrC,mBAAA;AACA,IAAAgC,SAAA,GAAAhC,mBAAA;AACA,IAAA+B,SAAA,GAAA/B,mBAAA;AAgBA,MAAM4R,gBAAN,SAA+Bq5B,gCAA/B,CAA8C;EAI5C9mC,YAAYQ,OAAZ,EAAqB;IACnB,MAAMA,OAAN;IACA,KAAKwJ,WAAL,GAAmBxJ,OAAA,CAAQwJ,WAA3B;IACA,KAAKjH,eAAL,GAAuBvC,OAAA,CAAQuC,eAA/B;IAEA,KAAKK,QAAL,CAAcwX,GAAd,CAAkB,mBAAlB,EAAuC,KAAKmuB,mBAAL,CAAyBt/B,IAAzB,CAA8B,IAA9B,CAAvC;IACA,KAAKrG,QAAL,CAAcwX,GAAd,CACE,oBADF,EAEE,KAAK6lC,mBAAL,CAAyBh3C,IAAzB,CAA8B,IAA9B,CAFF;IAKA,KAAKrG,QAAL,CAAcwX,GAAd,CAAkB,cAAlB,EAAkCtL,GAAA,IAAO;MACvC,KAAKg9B,kBAAL,GAA0Bh9B,GAAA,CAAIwO,UAA9B;IADuC,CAAzC;IAGA,KAAK1a,QAAL,CAAcwX,GAAd,CAAkB,aAAlB,EAAiCtL,GAAA,IAAO;MACtC,KAAK4sC,cAAL,GAAsB,CAAC,CAAC5sC,GAAA,CAAI6B,UAA5B;MAIA,IACE,KAAKuvC,6BAAL,IACA,CAAC,KAAKA,6BAAL,CAAmCrwC,OAFtC,EAGE;QACA,KAAKqwC,6BAAL,CAAmCr/C,OAAnC,CACkB,KAAK66C,cADvB;MADA;IARoC,CAAxC;IAcA,KAAK94C,QAAL,CAAcwX,GAAd,CAAkB,oBAAlB,EAAwCtL,GAAA,IAAO;MAC7C,KAAKqxC,YAAL,GAAoBrxC,GAAA,CAAIuX,IAAxB;IAD6C,CAA/C;EA5BmB;EAiCrBxT,MAAA,EAAQ;IACN,MAAMA,KAAN;IACA,KAAKutC,QAAL,GAAgB,IAAhB;IAEA,KAAKC,+BAAL,GAAuC,IAAvC;IACA,KAAKvU,kBAAL,GAA0B,CAA1B;IACA,KAAK4P,cAAL,GAAsB,IAAtB;IAEA,IACE,KAAKwE,6BAAL,IACA,CAAC,KAAKA,6BAAL,CAAmCrwC,OAFtC,EAGE;MACA,KAAKqwC,6BAAL,CAAmCr/C,OAAnC,CAA2D,KAA3D;IADA;IAGF,KAAKq/C,6BAAL,GAAqC,IAArC;EAdM;EAoBRtZ,eAAe0Z,YAAf,EAA6B;IAC3B,KAAKJ,6BAAL,GAAqC,IAAI9+C,2BAAJ,EAArC;IACA,IACEk/C,YAAA,KAAiB,CAAjB,IACA,KAAK5Y,YAAL,EAAmBvxB,aAAnB,CAAiCC,gBAFnC,EAGE;MACA,KAAK8pC,6BAAL,CAAmCr/C,OAAnC,CAA2D,KAA3D;IADA,CAHF,MAKO,IAAI,KAAK66C,cAAL,KAAwB,IAA5B,EAAkC;MACvC,KAAKwE,6BAAL,CAAmCr/C,OAAnC,CACkB,KAAK66C,cADvB;IADuC;IAMzC,KAAK94C,QAAL,CAAcgD,QAAd,CAAuB,eAAvB,EAAwC;MACtCC,MAAA,EAAQ,IAD8B;MAEtCy6C,YAFsC;MAGtCC,yBAAA,EAA2B,KAAKL,6BAAL,CAAmCnwC;IAHxB,CAAxC;EAb2B;EAuB7B+2B,UACEpX,OADF,EAEE;IAAEtsB,GAAF;IAAOi7B,SAAP;IAAkBtjB,MAAlB;IAA0BylC,UAA1B;IAAsC1nC,IAAtC;IAA4C2nC;EAA5C,CAFF,EAGE;IACA,MAAM;MAAEj3C;IAAF,IAAkB,IAAxB;IAEA,IAAIpG,GAAJ,EAAS;MACPoG,WAAA,CAAYozB,iBAAZ,CAA8BlN,OAA9B,EAAuCtsB,GAAvC,EAA4Ci7B,SAA5C;MACA;IAFO;IAIT,IAAItjB,MAAJ,EAAY;MACV2U,OAAA,CAAQrK,IAAR,GAAe7b,WAAA,CAAYwd,YAAZ,CAAyB,EAAzB,CAAf;MACA0I,OAAA,CAAQqN,OAAR,GAAkB,MAAM;QACtBvzB,WAAA,CAAY01B,kBAAZ,CAA+BnkB,MAA/B;QACA,OAAO,KAAP;MAFsB,CAAxB;MAIA;IANU;IAQZ,IAAIylC,UAAJ,EAAgB;MACd9wB,OAAA,CAAQrK,IAAR,GAAe7b,WAAA,CAAYwd,YAAZ,CAAyB,EAAzB,CAAf;MACA0I,OAAA,CAAQqN,OAAR,GAAkB,MAAM;QACtB,KAAKx6B,eAAL,CAAqBykC,kBAArB,CACEtX,OADF,EAEE8wB,UAAA,CAAWzZ,OAFb,EAGEyZ,UAAA,CAAW3rC,QAHb;QAKA,OAAO,KAAP;MANsB,CAAxB;MAQA;IAVc;IAYhB,IAAI4rC,WAAJ,EAAiB;MACf/wB,OAAA,CAAQrK,IAAR,GAAe7b,WAAA,CAAYwd,YAAZ,CAAyB,EAAzB,CAAf;MACA0I,OAAA,CAAQqN,OAAR,GAAkB,MAAM;QACtBvzB,WAAA,CAAY61B,kBAAZ,CAA+BohB,WAA/B;QACA,OAAO,KAAP;MAFsB,CAAxB;MAIA;IANe;IASjB/wB,OAAA,CAAQrK,IAAR,GAAe7b,WAAA,CAAY80B,kBAAZ,CAA+BxlB,IAA/B,CAAf;IACA4W,OAAA,CAAQqN,OAAR,GAAkBjuB,GAAA,IAAO;MACvB,KAAK25B,sBAAL,CAA4B35B,GAAA,CAAIE,MAAJ,CAAWsoB,UAAvC;MAEA,IAAIxe,IAAJ,EAAU;QACRtP,WAAA,CAAYu0B,eAAZ,CAA4BjlB,IAA5B;MADQ;MAGV,OAAO,KAAP;IANuB,CAAzB;EArCA;EAkDF4nC,WAAWhxB,OAAX,EAAoB;IAAEixB,IAAF;IAAQC;EAAR,CAApB,EAAsC;IACpC,IAAID,IAAJ,EAAU;MACRjxB,OAAA,CAAQqH,KAAR,CAAc8pB,UAAd,GAA2B,MAA3B;IADQ;IAGV,IAAID,MAAJ,EAAY;MACVlxB,OAAA,CAAQqH,KAAR,CAAc0oB,SAAd,GAA0B,QAA1B;IADU;EAJwB;EAYtC3X,iBAAiB3U,GAAjB,EAAsB;IAAE0U,KAAF;IAAS5V;EAAT,CAAtB,EAAwC;IACtC,IAAI8V,MAAA,GAAS,KAAb;IACA,IAAIF,KAAA,GAAQ,CAAZ,EAAe;MACb,IAAIiZ,UAAA,GAAa7uB,KAAA,CAAM/pB,MAAvB;MACA,IAAI44C,UAAA,GAAa,CAAjB,EAAoB;QAClB,MAAMlB,KAAA,GAAQ,CAAC,GAAG3tB,KAAJ,CAAd;QACA,OAAO2tB,KAAA,CAAM13C,MAAN,GAAe,CAAtB,EAAyB;UACvB,MAAM;YAAE2/B,KAAA,EAAOkZ,WAAT;YAAsB9uB,KAAA,EAAO+uB;UAA7B,IAA6CpB,KAAA,CAAM/M,KAAN,EAAnD;UACA,IAAIkO,WAAA,GAAc,CAAd,IAAmBC,WAAA,CAAY94C,MAAZ,GAAqB,CAA5C,EAA+C;YAC7C44C,UAAA,IAAcE,WAAA,CAAY94C,MAA1B;YACA03C,KAAA,CAAMptC,IAAN,CAAW,GAAGwuC,WAAd;UAF6C;QAFxB;MAFP;MAUpB,IAAI/qC,IAAA,CAAKqT,GAAL,CAASue,KAAT,MAAoBiZ,UAAxB,EAAoC;QAClC/Y,MAAA,GAAS,IAAT;MADkC;IAZvB;IAgBf,MAAMD,gBAAN,CAAuB3U,GAAvB,EAA4B4U,MAA5B;EAlBsC;EAwBxCQ,oBAAA,EAAsB;IACpB,IAAI,CAAC,KAAK6X,QAAV,EAAoB;MAClB;IADkB;IAGpB,MAAM7X,mBAAN;EAJoB;EAUtB1uB,OAAO;IAAED,OAAF;IAAWtY;EAAX,CAAP,EAAiC;IAC/B,IAAI,KAAK8+C,QAAT,EAAmB;MACjB,KAAKvtC,KAAL;IADiB;IAGnB,KAAKutC,QAAL,GAAgBxmC,OAAA,IAAW,IAA3B;IACA,KAAK8tB,YAAL,GAAoBpmC,WAAA,IAAe,IAAnC;IAEA,IAAI,CAACsY,OAAL,EAAc;MACZ,KAAKgtB,cAAL,CAAyC,CAAzC;MACA;IAFY;IAKd,MAAMK,QAAA,GAAWlmC,QAAA,CAASmmC,sBAAT,EAAjB;IACA,MAAM0Y,KAAA,GAAQ,CAAC;MAAEz8C,MAAA,EAAQ8jC,QAAV;MAAoBhV,KAAA,EAAOrY;IAA3B,CAAD,CAAd;IACA,IAAI0mC,YAAA,GAAe,CAAnB;MACE9X,aAAA,GAAgB,KADlB;IAEA,OAAOoX,KAAA,CAAM13C,MAAN,GAAe,CAAtB,EAAyB;MACvB,MAAM23C,SAAA,GAAYD,KAAA,CAAM/M,KAAN,EAAlB;MACA,WAAW1L,IAAX,IAAmB0Y,SAAA,CAAU5tB,KAA7B,EAAoC;QAClC,MAAMkB,GAAA,GAAMpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;QACA1O,GAAA,CAAIiU,SAAJ,GAAgB,UAAhB;QAEA,MAAM1X,OAAA,GAAU3uB,QAAA,CAAS8gC,aAAT,CAAuB,GAAvB,CAAhB;QACA,KAAKiF,SAAL,CAAepX,OAAf,EAAwByX,IAAxB;QACA,KAAKuZ,UAAL,CAAgBhxB,OAAhB,EAAyByX,IAAzB;QACAzX,OAAA,CAAQwW,WAAR,GAAsB,KAAKmB,qBAAL,CAA2BF,IAAA,CAAK7iC,KAAhC,CAAtB;QAEA6uB,GAAA,CAAI4O,MAAJ,CAAWrS,OAAX;QAEA,IAAIyX,IAAA,CAAKlV,KAAL,CAAW/pB,MAAX,GAAoB,CAAxB,EAA2B;UACzBsgC,aAAA,GAAgB,IAAhB;UACA,KAAKV,gBAAL,CAAsB3U,GAAtB,EAA2BgU,IAA3B;UAEA,MAAM2Y,QAAA,GAAW/+C,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAjB;UACAie,QAAA,CAAS1Y,SAAT,GAAqB,WAArB;UACAjU,GAAA,CAAI4O,MAAJ,CAAW+d,QAAX;UAEAF,KAAA,CAAMptC,IAAN,CAAW;YAAErP,MAAA,EAAQ28C,QAAV;YAAoB7tB,KAAA,EAAOkV,IAAA,CAAKlV;UAAhC,CAAX;QARyB;QAW3B4tB,SAAA,CAAU18C,MAAV,CAAiB4+B,MAAjB,CAAwB5O,GAAxB;QACAmtB,YAAA;MAvBkC;IAFb;IA6BzB,KAAKhZ,gBAAL,CAAsBL,QAAtB,EAAgCqZ,YAAhC,EAA8C9X,aAA9C;EA7C+B;EAoDjC,MAAMyX,mBAANA,CAAA,EAA4B;IAC1B,IAAI,CAAC,KAAKvE,cAAV,EAA0B;MACxB,MAAM,IAAIj8C,KAAJ,CAAU,sDAAV,CAAN;IADwB;IAG1B,IAAI,CAAC,KAAK2gD,QAAN,IAAkB,CAAC,KAAK1Y,YAA5B,EAA0C;MACxC;IADwC;IAI1C,MAAMuZ,oBAAA,GAAuB,MAAM,KAAKC,wBAAL,CACjC,KAAKxZ,YAD4B,CAAnC;IAGA,IAAI,CAACuZ,oBAAL,EAA2B;MACzB;IADyB;IAG3B,KAAKxY,sBAAL,CAA6C,IAA7C;IAEA,IAAI,KAAK0X,YAAL,KAAsBvoC,qBAAA,CAAY0O,OAAtC,EAA+C;MAC7C;IAD6C;IAK/C,KAAK,IAAIte,CAAA,GAAI,KAAK8jC,kBAAb,EAAiC9jC,CAAA,GAAI,CAA1C,EAA6CA,CAAA,EAA7C,EAAkD;MAChD,MAAM42C,QAAA,GAAWqC,oBAAA,CAAqBj8C,GAArB,CAAyBgD,CAAzB,CAAjB;MACA,IAAI,CAAC42C,QAAL,EAAe;QACb;MADa;MAGf,MAAMuC,WAAA,GAAc,KAAKt3C,SAAL,CAAeiuB,aAAf,CAA8B,WAAU8mB,QAAS,IAAjD,CAApB;MACA,IAAI,CAACuC,WAAL,EAAkB;QAChB;MADgB;MAGlB,KAAKxY,wBAAL,CAA8BwY,WAAA,CAAY7pB,UAA1C;MACA;IAVgD;EArBxB;EA0C5B,MAAM4pB,wBAANA,CAA+B5/C,WAA/B,EAA4C;IAC1C,IAAI,KAAK++C,+BAAT,EAA0C;MACxC,OAAO,KAAKA,+BAAL,CAAqCtwC,OAA5C;IADwC;IAG1C,KAAKswC,+BAAL,GAAuC,IAAIj/C,2BAAJ,EAAvC;IAEA,MAAM6/C,oBAAA,GAAuB,IAAIzvB,GAAJ,EAA7B;MACE4vB,iBAAA,GAAoB,IAAI5vB,GAAJ,EADtB;IAEA,MAAMouB,KAAA,GAAQ,CAAC;MAAEyB,OAAA,EAAS,CAAX;MAAcpvB,KAAA,EAAO,KAAKmuB;IAA1B,CAAD,CAAd;IACA,OAAOR,KAAA,CAAM13C,MAAN,GAAe,CAAtB,EAAyB;MACvB,MAAM23C,SAAA,GAAYD,KAAA,CAAM/M,KAAN,EAAlB;QACEyO,cAAA,GAAiBzB,SAAA,CAAUwB,OAD7B;MAEA,WAAW;QAAEvoC,IAAF;QAAQmZ;MAAR,CAAX,IAA8B4tB,SAAA,CAAU5tB,KAAxC,EAA+C;QAC7C,IAAI5U,YAAJ,EAAkBC,UAAlB;QACA,IAAI,OAAOxE,IAAP,KAAgB,QAApB,EAA8B;UAC5BuE,YAAA,GAAe,MAAM/b,WAAA,CAAY08B,cAAZ,CAA2BllB,IAA3B,CAArB;UAEA,IAAIxX,WAAA,KAAgB,KAAKomC,YAAzB,EAAuC;YACrC,OAAO,IAAP;UADqC;QAHX,CAA9B,MAMO;UACLrqB,YAAA,GAAevE,IAAf;QADK;QAGP,IAAImlB,KAAA,CAAMC,OAAN,CAAc7gB,YAAd,CAAJ,EAAiC;UAC/B,MAAM,CAACkgB,OAAD,IAAYlgB,YAAlB;UAEA,IAAI,OAAOkgB,OAAP,KAAmB,QAAnB,IAA+BA,OAAA,KAAY,IAA/C,EAAqD;YACnDjgB,UAAA,GAAa,KAAK9T,WAAL,CAAiBg0B,iBAAjB,CAAmCD,OAAnC,CAAb;YAEA,IAAI,CAACjgB,UAAL,EAAiB;cACf,IAAI;gBACFA,UAAA,GAAc,OAAMhc,WAAA,CAAYm8B,YAAZ,CAAyBF,OAAzB,CAAP,IAA4C,CAAzD;gBAEA,IAAIj8B,WAAA,KAAgB,KAAKomC,YAAzB,EAAuC;kBACrC,OAAO,IAAP;gBADqC;gBAGvC,KAAKl+B,WAAL,CAAiBm0B,YAAjB,CAA8BrgB,UAA9B,EAA0CigB,OAA1C;cANE,CAAJ,CAOE,MAAM;YARO;UAHkC,CAArD,MAeO,IAAI5G,MAAA,CAAOC,SAAP,CAAiB2G,OAAjB,CAAJ,EAA+B;YACpCjgB,UAAA,GAAaigB,OAAA,GAAU,CAAvB;UADoC;UAItC,IACE5G,MAAA,CAAOC,SAAP,CAAiBtZ,UAAjB,MACC,CAAC2jC,oBAAA,CAAqBp6C,GAArB,CAAyByW,UAAzB,CAAD,IACCgkC,cAAA,GAAiBF,iBAAA,CAAkBp8C,GAAlB,CAAsBsY,UAAtB,CADlB,CAFH,EAIE;YACA,MAAMshC,QAAA,GAAW,KAAKp1C,WAAL,CAAiB80B,kBAAjB,CAAoCxlB,IAApC,CAAjB;YACAmoC,oBAAA,CAAqB97C,GAArB,CAAyBmY,UAAzB,EAAqCshC,QAArC;YACAwC,iBAAA,CAAkBj8C,GAAlB,CAAsBmY,UAAtB,EAAkCgkC,cAAlC;UAHA;QA1B6B;QAiCjC,IAAIrvB,KAAA,CAAM/pB,MAAN,GAAe,CAAnB,EAAsB;UACpB03C,KAAA,CAAMptC,IAAN,CAAW;YAAE6uC,OAAA,EAASC,cAAA,GAAiB,CAA5B;YAA+BrvB;UAA/B,CAAX;QADoB;MA5CuB;IAHxB;IAqDzB,KAAKouB,+BAAL,CAAqCx/C,OAArC,CACEogD,oBAAA,CAAqB7uC,IAArB,GAA4B,CAA5B,GAAgC6uC,oBAAhC,GAAuD,IADzD;IAGA,OAAO,KAAKZ,+BAAL,CAAqCtwC,OAA5C;EAjE0C;AAjRA;AAjC9CpU,wBAAA,GAAAsR,gBAAA;;;;;;;;;;;;ACeA,IAAA7P,SAAA,GAAA/B,mBAAA;AAMA,IAAAgC,SAAA,GAAAhC,mBAAA;AAEA,MAAMkmD,4BAAA,GAA+B,IAArC;AACA,MAAMC,eAAA,GAAkB,qBAAxB;AACA,MAAMC,iBAAA,GAAoB,6BAA1B;AACA,MAAMC,0BAAA,GAA6B,EAAnC;AACA,MAAMC,qBAAA,GAAwB,GAA9B;AAGA,MAAMC,4BAAA,GAA+B,EAArC;AAIA,MAAMC,qBAAA,GAAwB5rC,IAAA,CAAKsgB,EAAL,GAAU,CAAxC;AASA,MAAM3pB,mBAAN,CAA0B;EACxB,CAAAia,KAAA,GAAS0H,+BAAA,CAAsBtvB,OAA/B;EAEA,CAAA+T,IAAA,GAAQ,IAAR;EAKAxT,YAAY;IAAEqK,SAAF;IAAapI,SAAb;IAAwBmB;EAAxB,CAAZ,EAAgD;IAC9C,KAAKiH,SAAL,GAAiBA,SAAjB;IACA,KAAKpI,SAAL,GAAiBA,SAAjB;IACA,KAAKmB,QAAL,GAAgBA,QAAhB;IAEA,KAAKk/C,eAAL,GAAuB,KAAvB;IACA,KAAKC,oBAAL,GAA4B,CAA5B;IACA,KAAKC,gBAAL,GAAwB,CAAxB;IACA,KAAKC,eAAL,GAAuB,IAAvB;EAR8C;EAehD,MAAMriC,OAANA,CAAA,EAAgB;IACd,MAAM;MAAE/V,SAAF;MAAapI;IAAb,IAA2B,IAAjC;IAEA,IAAI,KAAK+nB,MAAL,IAAe,CAAC/nB,SAAA,CAAUkP,UAA1B,IAAwC,CAAC9G,SAAA,CAAUq4C,iBAAvD,EAA0E;MACxE,OAAO,KAAP;IADwE;IAG1E,KAAK,CAAAC,4BAAL;IACA,KAAK,CAAAC,iBAAL,CAAwB7zB,+BAAA,CAAsBE,QAA9C;IAEA,MAAM1e,OAAA,GAAUlG,SAAA,CAAUq4C,iBAAV,EAAhB;IAEA,KAAK,CAAAlvC,IAAL,GAAa;MACXsK,UAAA,EAAY7b,SAAA,CAAU0M,iBADX;MAEXk0C,UAAA,EAAY5gD,SAAA,CAAUgP,iBAFX;MAGXoH,UAAA,EAAYpW,SAAA,CAAUoW,UAHX;MAIXE,UAAA,EAAY,IAJD;MAKXhO,oBAAA,EAAsB;IALX,CAAb;IAQA,IACEtI,SAAA,CAAUsW,UAAV,KAAyBC,oBAAA,CAAW9S,IAApC,IACA,EAAEzD,SAAA,CAAUqd,cAAV,IAA4Brd,SAAA,CAAU8X,iBAAtC,CAFJ,EAGE;MACAvT,OAAA,CAAQC,IAAR,CACE,2DACE,oDAFJ;MAIA,KAAK,CAAA+M,IAAL,CAAW+E,UAAX,GAAwBtW,SAAA,CAAUsW,UAAlC;IALA;IAOF,IAAItW,SAAA,CAAUsI,oBAAV,KAAmC6B,8BAAA,CAAqB7E,OAA5D,EAAqE;MACnE,KAAK,CAAAiM,IAAL,CAAWjJ,oBAAX,GAAkCtI,SAAA,CAAUsI,oBAA5C;IADmE;IAIrE,IAAI;MACF,MAAMgG,OAAN;MACAtO,SAAA,CAAU2X,KAAV;MACA,OAAO,IAAP;IAHE,CAAJ,CAIE,MAAM;MACN,KAAK,CAAAkpC,+BAAL;MACA,KAAK,CAAAF,iBAAL,CAAwB7zB,+BAAA,CAAsBC,MAA9C;IAFM;IAIR,OAAO,KAAP;EAzCc;EA4ChB,IAAIhF,MAAJA,CAAA,EAAa;IACX,OACE,KAAK,CAAA3C,KAAL,KAAgB0H,+BAAA,CAAsBE,QAAtC,IACA,KAAK,CAAA5H,KAAL,KAAgB0H,+BAAA,CAAsBG,UAFxC;EADW;EAOb,CAAA6zB,WAAYzzC,GAAZ,EAAiB;IACf,IAAI,CAAC,KAAK0a,MAAV,EAAkB;MAChB;IADgB;IAGlB1a,GAAA,CAAIG,cAAJ;IAEA,MAAMyQ,KAAA,GAAQ,IAAA8W,kCAAA,EAAyB1nB,GAAzB,CAAd;IACA,MAAM0zC,WAAA,GAAcC,IAAA,CAAKC,GAAL,EAApB;IACA,MAAMC,UAAA,GAAa,KAAKZ,oBAAxB;IAGA,IACES,WAAA,GAAcG,UAAd,IACAH,WAAA,GAAcG,UAAd,GAA2BjB,0BAF7B,EAGE;MACA;IADA;IAIF,IACG,KAAKM,gBAAL,GAAwB,CAAxB,IAA6BtiC,KAAA,GAAQ,CAAtC,IACC,KAAKsiC,gBAAL,GAAwB,CAAxB,IAA6BtiC,KAAA,GAAQ,CAFxC,EAGE;MACA,KAAK,CAAAkjC,qBAAL;IADA;IAGF,KAAKZ,gBAAL,IAAyBtiC,KAAzB;IAEA,IAAIzJ,IAAA,CAAKqT,GAAL,CAAS,KAAK04B,gBAAd,KAAmCL,qBAAvC,EAA8D;MAC5D,MAAMkB,UAAA,GAAa,KAAKb,gBAAxB;MACA,KAAK,CAAAY,qBAAL;MACA,MAAME,OAAA,GACJD,UAAA,GAAa,CAAb,GACI,KAAKphD,SAAL,CAAe6lB,YAAf,EADJ,GAEI,KAAK7lB,SAAL,CAAe4lB,QAAf,EAHN;MAIA,IAAIy7B,OAAJ,EAAa;QACX,KAAKf,oBAAL,GAA4BS,WAA5B;MADW;IAP+C;EA1B/C;EAuCjB,CAAAJ,kBAAmBv7B,KAAnB,EAA0B;IACxB,KAAK,CAAAA,KAAL,GAAcA,KAAd;IAEA,KAAKjkB,QAAL,CAAcgD,QAAd,CAAuB,yBAAvB,EAAkD;MAAEC,MAAA,EAAQ,IAAV;MAAgBghB;IAAhB,CAAlD;EAHwB;EAM1B,CAAAk8B,MAAA,EAAS;IACP,KAAK,CAAAX,iBAAL,CAAwB7zB,+BAAA,CAAsBG,UAA9C;IACA,KAAK7kB,SAAL,CAAe7C,SAAf,CAAyBC,GAAzB,CAA6Bu6C,eAA7B;IAIAloC,UAAA,CAAW,MAAM;MACf,KAAK7X,SAAL,CAAeoW,UAAf,GAA4BC,oBAAA,CAAWkX,IAAvC;MACA,IAAI,KAAK,CAAAhc,IAAL,CAAW+E,UAAX,KAA0B,IAA9B,EAAoC;QAClC,KAAKtW,SAAL,CAAesW,UAAf,GAA4BC,oBAAA,CAAW9S,IAAvC;MADkC;MAGpC,KAAKzD,SAAL,CAAe0M,iBAAf,GAAmC,KAAK,CAAA6E,IAAL,CAAWsK,UAA9C;MACA,KAAK7b,SAAL,CAAegP,iBAAf,GAAmC,UAAnC;MAEA,IAAI,KAAK,CAAAuC,IAAL,CAAWjJ,oBAAX,KAAoC,IAAxC,EAA8C;QAC5C,KAAKtI,SAAL,CAAesI,oBAAf,GAAsC;UACpCqc,IAAA,EAAMxa,8BAAA,CAAqB1G;QADS,CAAtC;MAD4C;IAR/B,CAAjB,EAaG,CAbH;IAeA,KAAK,CAAA89C,kBAAL;IACA,KAAK,CAAAC,YAAL;IACA,KAAKnB,eAAL,GAAuB,KAAvB;IAKA5+C,MAAA,CAAOggD,YAAP,GAAsBC,eAAtB;EA5BO;EA+BT,CAAAC,KAAA,EAAQ;IACN,MAAM9lC,UAAA,GAAa,KAAK7b,SAAL,CAAe0M,iBAAlC;IACA,KAAKtE,SAAL,CAAe7C,SAAf,CAAyB8E,MAAzB,CAAgC01C,eAAhC;IAIAloC,UAAA,CAAW,MAAM;MACf,KAAK,CAAAgpC,+BAAL;MACA,KAAK,CAAAF,iBAAL,CAAwB7zB,+BAAA,CAAsBC,MAA9C;MAEA,KAAK/sB,SAAL,CAAeoW,UAAf,GAA4B,KAAK,CAAA7E,IAAL,CAAW6E,UAAvC;MACA,IAAI,KAAK,CAAA7E,IAAL,CAAW+E,UAAX,KAA0B,IAA9B,EAAoC;QAClC,KAAKtW,SAAL,CAAesW,UAAf,GAA4B,KAAK,CAAA/E,IAAL,CAAW+E,UAAvC;MADkC;MAGpC,KAAKtW,SAAL,CAAegP,iBAAf,GAAmC,KAAK,CAAAuC,IAAL,CAAWqvC,UAA9C;MACA,KAAK5gD,SAAL,CAAe0M,iBAAf,GAAmCmP,UAAnC;MAEA,IAAI,KAAK,CAAAtK,IAAL,CAAWjJ,oBAAX,KAAoC,IAAxC,EAA8C;QAC5C,KAAKtI,SAAL,CAAesI,oBAAf,GAAsC;UACpCqc,IAAA,EAAM,KAAK,CAAApT,IAAL,CAAWjJ;QADmB,CAAtC;MAD4C;MAK9C,KAAK,CAAAiJ,IAAL,GAAa,IAAb;IAhBe,CAAjB,EAiBG,CAjBH;IAmBA,KAAK,CAAAqwC,qBAAL;IACA,KAAK,CAAAC,YAAL;IACA,KAAK,CAAAV,qBAAL;IACA,KAAKd,eAAL,GAAuB,KAAvB;EA5BM;EA+BR,CAAAyB,UAAWz0C,GAAX,EAAgB;IACd,IAAI,KAAKgzC,eAAT,EAA0B;MACxB,KAAKA,eAAL,GAAuB,KAAvB;MACAhzC,GAAA,CAAIG,cAAJ;MACA;IAHwB;IAK1B,IAAIH,GAAA,CAAImpB,MAAJ,KAAe,CAAnB,EAAsB;MACpB;IADoB;IAKtB,IACEnpB,GAAA,CAAIE,MAAJ,CAAWqW,IAAX,IACAvW,GAAA,CAAIE,MAAJ,CAAWsoB,UAAX,EAAuBksB,YAAvB,CAAoC,oBAApC,CAFF,EAGE;MACA;IADA;IAIF10C,GAAA,CAAIG,cAAJ;IAEA,IAAIH,GAAA,CAAI0d,QAAR,EAAkB;MAChB,KAAK/qB,SAAL,CAAe6lB,YAAf;IADgB,CAAlB,MAEO;MACL,KAAK7lB,SAAL,CAAe4lB,QAAf;IADK;EAtBO;EA2BhB,CAAAo8B,YAAA,EAAe;IACb,KAAK3B,eAAL,GAAuB,IAAvB;EADa;EAIf,CAAAmB,aAAA,EAAgB;IACd,IAAI,KAAKS,eAAT,EAA0B;MACxB76B,YAAA,CAAa,KAAK66B,eAAlB;IADwB,CAA1B,MAEO;MACL,KAAK75C,SAAL,CAAe7C,SAAf,CAAyBC,GAAzB,CAA6Bw6C,iBAA7B;IADK;IAGP,KAAKiC,eAAL,GAAuBpqC,UAAA,CAAW,MAAM;MACtC,KAAKzP,SAAL,CAAe7C,SAAf,CAAyB8E,MAAzB,CAAgC21C,iBAAhC;MACA,OAAO,KAAKiC,eAAZ;IAFsC,CAAjB,EAGpBnC,4BAHoB,CAAvB;EANc;EAYhB,CAAA+B,aAAA,EAAgB;IACd,IAAI,CAAC,KAAKI,eAAV,EAA2B;MACzB;IADyB;IAG3B76B,YAAA,CAAa,KAAK66B,eAAlB;IACA,KAAK75C,SAAL,CAAe7C,SAAf,CAAyB8E,MAAzB,CAAgC21C,iBAAhC;IACA,OAAO,KAAKiC,eAAZ;EANc;EAYhB,CAAAd,sBAAA,EAAyB;IACvB,KAAKb,oBAAL,GAA4B,CAA5B;IACA,KAAKC,gBAAL,GAAwB,CAAxB;EAFuB;EAKzB,CAAA2B,WAAY70C,GAAZ,EAAiB;IACf,IAAI,CAAC,KAAK0a,MAAV,EAAkB;MAChB;IADgB;IAGlB,IAAI1a,GAAA,CAAIkb,OAAJ,CAAY9hB,MAAZ,GAAqB,CAAzB,EAA4B;MAE1B,KAAK+5C,eAAL,GAAuB,IAAvB;MACA;IAH0B;IAM5B,QAAQnzC,GAAA,CAAImG,IAAZ;MACE,KAAK,YAAL;QACE,KAAKgtC,eAAL,GAAuB;UACrB2B,MAAA,EAAQ90C,GAAA,CAAIkb,OAAJ,CAAY,CAAZ,EAAeK,KADF;UAErBw5B,MAAA,EAAQ/0C,GAAA,CAAIkb,OAAJ,CAAY,CAAZ,EAAeO,KAFF;UAGrBu5B,IAAA,EAAMh1C,GAAA,CAAIkb,OAAJ,CAAY,CAAZ,EAAeK,KAHA;UAIrB05B,IAAA,EAAMj1C,GAAA,CAAIkb,OAAJ,CAAY,CAAZ,EAAeO;QAJA,CAAvB;QAMA;MACF,KAAK,WAAL;QACE,IAAI,KAAK03B,eAAL,KAAyB,IAA7B,EAAmC;UACjC;QADiC;QAGnC,KAAKA,eAAL,CAAqB6B,IAArB,GAA4Bh1C,GAAA,CAAIkb,OAAJ,CAAY,CAAZ,EAAeK,KAA3C;QACA,KAAK43B,eAAL,CAAqB8B,IAArB,GAA4Bj1C,GAAA,CAAIkb,OAAJ,CAAY,CAAZ,EAAeO,KAA3C;QAGAzb,GAAA,CAAIG,cAAJ;QACA;MACF,KAAK,UAAL;QACE,IAAI,KAAKgzC,eAAL,KAAyB,IAA7B,EAAmC;UACjC;QADiC;QAGnC,IAAIviC,KAAA,GAAQ,CAAZ;QACA,MAAMskC,EAAA,GAAK,KAAK/B,eAAL,CAAqB6B,IAArB,GAA4B,KAAK7B,eAAL,CAAqB2B,MAA5D;QACA,MAAMK,EAAA,GAAK,KAAKhC,eAAL,CAAqB8B,IAArB,GAA4B,KAAK9B,eAAL,CAAqB4B,MAA5D;QACA,MAAMK,QAAA,GAAWjuC,IAAA,CAAKqT,GAAL,CAASrT,IAAA,CAAKqgB,KAAL,CAAW2tB,EAAX,EAAeD,EAAf,CAAT,CAAjB;QACA,IACE/tC,IAAA,CAAKqT,GAAL,CAAS06B,EAAT,IAAepC,4BAAf,KACCsC,QAAA,IAAYrC,qBAAZ,IACCqC,QAAA,IAAYjuC,IAAA,CAAKsgB,EAAL,GAAUsrB,qBADvB,CAFH,EAIE;UAEAniC,KAAA,GAAQskC,EAAR;QAFA,CAJF,MAOO,IACL/tC,IAAA,CAAKqT,GAAL,CAAS26B,EAAT,IAAerC,4BAAf,IACA3rC,IAAA,CAAKqT,GAAL,CAAS46B,QAAA,GAAWjuC,IAAA,CAAKsgB,EAAL,GAAU,CAA9B,KAAoCsrB,qBAF/B,EAGL;UAEAniC,KAAA,GAAQukC,EAAR;QAFA;QAIF,IAAIvkC,KAAA,GAAQ,CAAZ,EAAe;UACb,KAAKje,SAAL,CAAe6lB,YAAf;QADa,CAAf,MAEO,IAAI5H,KAAA,GAAQ,CAAZ,EAAe;UACpB,KAAKje,SAAL,CAAe4lB,QAAf;QADoB;QAGtB;IA9CJ;EAVe;EA4DjB,CAAA27B,mBAAA,EAAsB;IACpB,KAAKmB,gBAAL,GAAwB,KAAK,CAAAlB,YAAL,CAAmBh6C,IAAnB,CAAwB,IAAxB,CAAxB;IACA,KAAKm7C,aAAL,GAAqB,KAAK,CAAAb,SAAL,CAAgBt6C,IAAhB,CAAqB,IAArB,CAArB;IACA,KAAKo7C,cAAL,GAAsB,KAAK,CAAA9B,UAAL,CAAiBt5C,IAAjB,CAAsB,IAAtB,CAAtB;IACA,KAAKq7C,yBAAL,GAAiC,KAAK,CAAA1B,qBAAL,CAA4B35C,IAA5B,CAAiC,IAAjC,CAAjC;IACA,KAAKs7C,eAAL,GAAuB,KAAK,CAAAd,WAAL,CAAkBx6C,IAAlB,CAAuB,IAAvB,CAAvB;IACA,KAAKu7C,cAAL,GAAsB,KAAK,CAAAb,UAAL,CAAiB16C,IAAjB,CAAsB,IAAtB,CAAtB;IAEA/F,MAAA,CAAO2L,gBAAP,CAAwB,WAAxB,EAAqC,KAAKs1C,gBAA1C;IACAjhD,MAAA,CAAO2L,gBAAP,CAAwB,WAAxB,EAAqC,KAAKu1C,aAA1C;IACAlhD,MAAA,CAAO2L,gBAAP,CAAwB,OAAxB,EAAiC,KAAKw1C,cAAtC,EAAsD;MAAEjhC,OAAA,EAAS;IAAX,CAAtD;IACAlgB,MAAA,CAAO2L,gBAAP,CAAwB,SAAxB,EAAmC,KAAKy1C,yBAAxC;IACAphD,MAAA,CAAO2L,gBAAP,CAAwB,aAAxB,EAAuC,KAAK01C,eAA5C;IACArhD,MAAA,CAAO2L,gBAAP,CAAwB,YAAxB,EAAsC,KAAK21C,cAA3C;IACAthD,MAAA,CAAO2L,gBAAP,CAAwB,WAAxB,EAAqC,KAAK21C,cAA1C;IACAthD,MAAA,CAAO2L,gBAAP,CAAwB,UAAxB,EAAoC,KAAK21C,cAAzC;EAfoB;EAkBtB,CAAAnB,sBAAA,EAAyB;IACvBngD,MAAA,CAAOwa,mBAAP,CAA2B,WAA3B,EAAwC,KAAKymC,gBAA7C;IACAjhD,MAAA,CAAOwa,mBAAP,CAA2B,WAA3B,EAAwC,KAAK0mC,aAA7C;IACAlhD,MAAA,CAAOwa,mBAAP,CAA2B,OAA3B,EAAoC,KAAK2mC,cAAzC,EAAyD;MACvDjhC,OAAA,EAAS;IAD8C,CAAzD;IAGAlgB,MAAA,CAAOwa,mBAAP,CAA2B,SAA3B,EAAsC,KAAK4mC,yBAA3C;IACAphD,MAAA,CAAOwa,mBAAP,CAA2B,aAA3B,EAA0C,KAAK6mC,eAA/C;IACArhD,MAAA,CAAOwa,mBAAP,CAA2B,YAA3B,EAAyC,KAAK8mC,cAA9C;IACAthD,MAAA,CAAOwa,mBAAP,CAA2B,WAA3B,EAAwC,KAAK8mC,cAA7C;IACAthD,MAAA,CAAOwa,mBAAP,CAA2B,UAA3B,EAAuC,KAAK8mC,cAA5C;IAEA,OAAO,KAAKL,gBAAZ;IACA,OAAO,KAAKC,aAAZ;IACA,OAAO,KAAKC,cAAZ;IACA,OAAO,KAAKC,yBAAZ;IACA,OAAO,KAAKC,eAAZ;IACA,OAAO,KAAKC,cAAZ;EAjBuB;EAoBzB,CAAAC,iBAAA,EAAoB;IAClB,IAAyB1jD,QAAA,CAAS2jD,iBAAlC,EAAqD;MACnD,KAAK,CAAA3B,KAAL;IADmD,CAArD,MAEO;MACL,KAAK,CAAAK,IAAL;IADK;EAHW;EAQpB,CAAAjB,6BAAA,EAAgC;IAC9B,KAAKwC,oBAAL,GAA4B,KAAK,CAAAF,gBAAL,CAAuBx7C,IAAvB,CAA4B,IAA5B,CAA5B;IACA/F,MAAA,CAAO2L,gBAAP,CAAwB,kBAAxB,EAA4C,KAAK81C,oBAAjD;EAF8B;EAKhC,CAAArC,gCAAA,EAAmC;IACjCp/C,MAAA,CAAOwa,mBAAP,CAA2B,kBAA3B,EAA+C,KAAKinC,oBAApD;IACA,OAAO,KAAKA,oBAAZ;EAFiC;AAhWX;AA3C1BhpD,2BAAA,GAAAiR,mBAAA;;;;;;;;;;;;ACoBA,IAAAvP,SAAA,GAAAhC,mBAAA;AACA,IAAA+B,SAAA,GAAA/B,mBAAA;AAEA,MAAMupD,eAAA,GAAkB,KAAxB;AAKA,MAAM97C,iBAAN,CAAwB;EACtBtJ,YAAA,EAAc;IACZ,KAAKiC,SAAL,GAAiB,IAAjB;IACA,KAAKC,kBAAL,GAA0B,IAA1B;IACA,KAAKqH,MAAL,GAAc,IAAd;IACA,KAAK87C,mBAAL,GAA2B,IAA3B;IAEA,KAAKC,WAAL,GAAmB,IAAnB;IACA,KAAKhzC,QAAL,GAAgB,KAAhB;IACA,KAAK0M,sBAAL,GAA8B,KAA9B;IAGEhb,MAAA,CAAOuhD,cAAP,CAAsB,IAAtB,EAA4B,WAA5B,EAAyC;MACvCn2C,KAAA,EAAOA,CAAA,KAAM,CAAC,CAAC,KAAKnN;IADmB,CAAzC;EAXU;EAoBd0J,UAAU1J,SAAV,EAAqB;IACnB,KAAKA,SAAL,GAAiBA,SAAjB;EADmB;EAOrB8J,mBAAmB7J,kBAAnB,EAAuC;IACrC,KAAKA,kBAAL,GAA0BA,kBAA1B;EADqC;EAQvCsjD,kBAAkB3+B,IAAlB,EAAwB;IACtB,OAAO,KAAKw+B,mBAAL,KAA6Bx+B,IAAA,CAAK4+B,WAAzC;EADsB;EAOxBtmC,sBAAsBumC,qBAAtB,EAA6C;IAC3C,IAAI,KAAKJ,WAAT,EAAsB;MACpBj8B,YAAA,CAAa,KAAKi8B,WAAlB;MACA,KAAKA,WAAL,GAAmB,IAAnB;IAFoB;IAMtB,IAAI,KAAKrjD,SAAL,CAAegM,cAAf,CAA8By3C,qBAA9B,CAAJ,EAA0D;MACxD;IADwD;IAI1D,IACE,KAAK1mC,sBAAL,IACA,KAAK9c,kBAAL,EAAyB+L,cAAzB,EAFF,EAGE;MACA;IADA;IAIF,IAAI,KAAKqE,QAAT,EAAmB;MAEjB;IAFiB;IAKnB,IAAI,KAAK/I,MAAT,EAAiB;MACf,KAAK+7C,WAAL,GAAmBxrC,UAAA,CAAW,KAAKvQ,MAAL,CAAYE,IAAZ,CAAiB,IAAjB,CAAX,EAAmC27C,eAAnC,CAAnB;IADe;EAvB0B;EAkC7CO,mBAAmBpwB,OAAnB,EAA4Bd,KAA5B,EAAmCmxB,YAAnC,EAAiDC,cAAA,GAAiB,KAAlE,EAAyE;IAUvE,MAAMC,YAAA,GAAevwB,OAAA,CAAQd,KAA7B;MACEsxB,UAAA,GAAaD,YAAA,CAAap9C,MAD5B;IAGA,IAAIq9C,UAAA,KAAe,CAAnB,EAAsB;MACpB,OAAO,IAAP;IADoB;IAGtB,KAAK,IAAIv9C,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAIu9C,UAApB,EAAgCv9C,CAAA,EAAhC,EAAqC;MACnC,MAAMqe,IAAA,GAAOi/B,YAAA,CAAat9C,CAAb,EAAgBqe,IAA7B;MACA,IAAI,CAAC,KAAKm/B,cAAL,CAAoBn/B,IAApB,CAAL,EAAgC;QAC9B,OAAOA,IAAP;MAD8B;IAFG;IAMrC,MAAMo/B,OAAA,GAAU1wB,OAAA,CAAQkB,KAAR,CAAcjqB,EAA9B;MACE05C,MAAA,GAAS3wB,OAAA,CAAQmB,IAAR,CAAalqB,EADxB;IAKA,IAAI05C,MAAA,GAASD,OAAT,GAAmB,CAAnB,GAAuBF,UAA3B,EAAuC;MACrC,MAAMI,UAAA,GAAa5wB,OAAA,CAAQC,GAA3B;MACA,KAAK,IAAIhtB,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAKy9C,MAAA,GAASD,OAAzB,EAAkCz9C,CAAA,GAAIC,EAA3C,EAA+CD,CAAA,EAA/C,EAAoD;QAClD,MAAM49C,MAAA,GAASR,YAAA,GAAeK,OAAA,GAAUz9C,CAAzB,GAA6B09C,MAAA,GAAS19C,CAArD;QACA,IAAI29C,UAAA,CAAW9+C,GAAX,CAAe++C,MAAf,CAAJ,EAA4B;UAC1B;QAD0B;QAG5B,MAAMC,QAAA,GAAW5xB,KAAA,CAAM2xB,MAAA,GAAS,CAAf,CAAjB;QACA,IAAI,CAAC,KAAKJ,cAAL,CAAoBK,QAApB,CAAL,EAAoC;UAClC,OAAOA,QAAP;QADkC;MANc;IAFf;IAgBvC,IAAIC,cAAA,GAAiBV,YAAA,GAAeM,MAAf,GAAwBD,OAAA,GAAU,CAAvD;IACA,IAAIM,aAAA,GAAgB9xB,KAAA,CAAM6xB,cAAN,CAApB;IAEA,IAAIC,aAAA,IAAiB,CAAC,KAAKP,cAAL,CAAoBO,aAApB,CAAtB,EAA0D;MACxD,OAAOA,aAAP;IADwD;IAG1D,IAAIV,cAAJ,EAAoB;MAClBS,cAAA,IAAkBV,YAAA,GAAe,CAAf,GAAmB,CAAC,CAAtC;MACAW,aAAA,GAAgB9xB,KAAA,CAAM6xB,cAAN,CAAhB;MAEA,IAAIC,aAAA,IAAiB,CAAC,KAAKP,cAAL,CAAoBO,aAApB,CAAtB,EAA0D;QACxD,OAAOA,aAAP;MADwD;IAJxC;IASpB,OAAO,IAAP;EA1DuE;EAiEzEP,eAAen/B,IAAf,EAAqB;IACnB,OAAOA,IAAA,CAAKxY,cAAL,KAAwBC,yBAAA,CAAgBC,QAA/C;EADmB;EAWrBi4C,WAAW3/B,IAAX,EAAiB;IACf,QAAQA,IAAA,CAAKxY,cAAb;MACE,KAAKC,yBAAA,CAAgBC,QAArB;QACE,OAAO,KAAP;MACF,KAAKD,yBAAA,CAAgBwgB,MAArB;QACE,KAAKu2B,mBAAL,GAA2Bx+B,IAAA,CAAK4+B,WAAhC;QACA5+B,IAAA,CAAK4/B,MAAL;QACA;MACF,KAAKn4C,yBAAA,CAAgB0a,OAArB;QACE,KAAKq8B,mBAAL,GAA2Bx+B,IAAA,CAAK4+B,WAAhC;QACA;MACF,KAAKn3C,yBAAA,CAAgB3O,OAArB;QACE,KAAK0lD,mBAAL,GAA2Bx+B,IAAA,CAAK4+B,WAAhC;QACA5+B,IAAA,CACG6/B,IADH,GAEGC,OAFH,CAEW,MAAM;UACb,KAAKxnC,qBAAL;QADa,CAFjB,EAKGhI,KALH,CAKSvQ,MAAA,IAAU;UACf,IAAIA,MAAA,YAAkBggD,qCAAtB,EAAmD;YACjD;UADiD;UAGnDpgD,OAAA,CAAQK,KAAR,CAAe,gBAAeD,MAAO,GAArC;QAJe,CALnB;QAWA;IAvBJ;IAyBA,OAAO,IAAP;EA1Be;AAzJK;AA5BxBzK,yBAAA,GAAAmN,iBAAA;;;;;;;;;;;;ACiBA,IAAA1L,SAAA,GAAA/B,mBAAA;AACA,IAAAgC,SAAA,GAAAhC,mBAAA;AAcA,MAAMqO,mBAAN,CAA0B;EACxB,CAAA28C,eAAA,GAAmB,IAAnB;EAEA,CAAAC,iBAAA,GAAqB,IAArB;EAEA,CAAA38C,aAAA,GAAiB,IAAjB;EAEA,CAAA/G,QAAA,GAAY,IAAZ;EAEA,CAAAzF,gBAAA,GAAoB,IAApB;EAEA,CAAAmE,WAAA,GAAe,IAAf;EAEA,CAAAG,SAAA,GAAa,IAAb;EAEA,CAAAyjB,KAAA,GAAS,KAAT;EAEA,CAAAloB,gBAAA,GAAoB,IAApB;EAEA,CAAAupD,SAAA,GAAa,IAAb;EAEA,CAAAC,mBAAA,GAAuB,IAAvB;EAKAhnD,YAAY;IACVoD,QADU;IAEV5F,gBAAA,GAAmB,IAFT;IAGVG,gBAAA,GAAmB,IAHT;IAIVwM,aAAA,GAAgB;EAJN,CAAZ,EAKG;IACD,KAAK,CAAA/G,QAAL,GAAiBA,QAAjB;IAEE,KAAK,CAAA5F,gBAAL,GAAyBA,gBAAzB;IAEF,KAAK,CAAAG,gBAAL,GAAyBA,gBAAzB;IACA,KAAK,CAAAwM,aAAL,GAAsBA,aAAtB;EANC;EASHwB,UAAU1J,SAAV,EAAqB;IACnB,KAAK,CAAAA,SAAL,GAAkBA,SAAlB;EADmB;EAIrB,MAAMiR,WAANA,CAAkBpR,WAAlB,EAA+B;IAC7B,IAAI,KAAK,CAAAA,WAAT,EAAuB;MACrB,MAAM,KAAK,CAAAmlD,gBAAL,EAAN;IADqB;IAGvB,KAAK,CAAAnlD,WAAL,GAAoBA,WAApB;IAEA,IAAI,CAACA,WAAL,EAAkB;MAChB;IADgB;IAGlB,MAAM,CAAColD,OAAD,EAAUC,gBAAV,EAA4BC,UAA5B,IAA0C,MAAMhmD,OAAA,CAAQmS,GAAR,CAAY,CAChEzR,WAAA,CAAYulD,eAAZ,EADgE,EAEhEvlD,WAAA,CAAYwlD,sBAAZ,EAFgE,EAGhExlD,WAAA,CAAYuZ,YAAZ,EAHgE,CAAZ,CAAtD;IAMA,IAAI,CAAC6rC,OAAD,IAAY,CAACE,UAAjB,EAA6B;MAE3B,MAAM,KAAK,CAAAH,gBAAL,EAAN;MACA;IAH2B;IAK7B,IAAInlD,WAAA,KAAgB,KAAK,CAAAA,WAAzB,EAAuC;MACrC;IADqC;IAGvC,IAAI;MACF,KAAK,CAAAilD,SAAL,GAAkB,KAAK,CAAAQ,aAAL,EAAlB;IADE,CAAJ,CAEE,OAAO1gD,KAAP,EAAc;MACdL,OAAA,CAAQK,KAAR,CAAe,iBAAgBA,KAAA,CAAMC,OAAQ,IAA7C;MAEA,MAAM,KAAK,CAAAmgD,gBAAL,EAAN;MACA;IAJc;IAOhB,KAAKO,eAAL,CAAqB7hD,GAArB,CAAyB,mBAAzB,EAA8C6d,KAAA,IAAS;MACrD,IAAIA,KAAA,EAAOnd,MAAP,KAAkB3C,MAAtB,EAA8B;QAC5B,KAAK,CAAA+jD,iBAAL,CAAwBjkC,KAAA,CAAMC,MAA9B;MAD4B;IADuB,CAAvD;IAKA,KAAK+jC,eAAL,CAAqB7hD,GAArB,CAAyB,wBAAzB,EAAmD6d,KAAA,IAAS;MAC1D,KAAK,CAAAujC,SAAL,EAAiBW,sBAAjB,CAAwClkC,KAAA,CAAMC,MAA9C;IAD0D,CAA5D;IAIA,KAAK+jC,eAAL,CAAqB7hD,GAArB,CAAyB,cAAzB,EAAyC,CAAC;MAAEmY,UAAF;MAAc0K;IAAd,CAAD,KAA8B;MACrE,IAAI1K,UAAA,KAAe0K,QAAnB,EAA6B;QAC3B;MAD2B;MAG7B,KAAK,CAAAm/B,iBAAL,CAAwBn/B,QAAxB;MACA,KAAK,CAAAo/B,gBAAL,CAAuB9pC,UAAvB;IALqE,CAAvE;IAOA,KAAK0pC,eAAL,CAAqB7hD,GAArB,CAAyB,cAAzB,EAAyC,CAAC;MAAEmY;IAAF,CAAD,KAAoB;MAC3D,IAAI,CAAC,KAAK+pC,gBAAL,CAAsBxgD,GAAtB,CAA0ByW,UAA1B,CAAL,EAA4C;QAC1C;MAD0C;MAG5C,IAAIA,UAAA,KAAe,KAAK,CAAA7b,SAAL,CAAgB0M,iBAAnC,EAAsD;QACpD;MADoD;MAGtD,KAAK,CAAAi5C,gBAAL,CAAuB9pC,UAAvB;IAP2D,CAA7D;IASA,KAAK0pC,eAAL,CAAqB7hD,GAArB,CAAyB,cAAzB,EAAyC,YAAY;MACnD,MAAM,KAAK,CAAAgiD,iBAAL,CAAwB,KAAK,CAAA1lD,SAAL,CAAgB0M,iBAAxC,CAAN;MAEA,MAAM,KAAK,CAAAo4C,SAAL,EAAiBW,sBAAjB,CAAwC;QAC5Cl7C,EAAA,EAAI,KADwC;QAE5CgP,IAAA,EAAM;MAFsC,CAAxC,CAAN;MAKA,KAAK,CAAAqrC,eAAL,EAAuBxlD,OAAvB;IARmD,CAArD;IAWA,WAAW,CAACma,IAAD,EAAOihB,QAAP,CAAX,IAA+B,KAAK+qB,eAApC,EAAqD;MACnD,KAAK,CAAApkD,QAAL,CAAewX,GAAf,CAAmBY,IAAnB,EAAyBihB,QAAzB;IADmD;IAIrD,IAAI;MACF,MAAMtyB,aAAA,GAAgB,MAAM,KAAK,CAAAA,aAAL,CAAoBrI,WAApB,CAA5B;MACA,IAAIA,WAAA,KAAgB,KAAK,CAAAA,WAAzB,EAAuC;QACrC;MADqC;MAIvC,MAAM,KAAK,CAAAilD,SAAL,CAAgBe,aAAhB,CAA8B;QAClCZ,OADkC;QAElCC,gBAFkC;QAGlCY,OAAA,EAAS;UACP9uB,QAAA,EAAUD,SAAA,CAAUC,QADb;UAEPsC,QAAA,EAAUvC,SAAA,CAAUuC;QAFb,CAHyB;QAOlCysB,OAAA,EAAS;UACP,GAAG79C,aADI;UAEP89C,OAAA,EAASb;QAFF;MAPyB,CAA9B,CAAN;MAaA,KAAK,CAAAhkD,QAAL,CAAegD,QAAf,CAAwB,gBAAxB,EAA0C;QAAEC,MAAA,EAAQ;MAAV,CAA1C;IAnBE,CAAJ,CAoBE,OAAOQ,KAAP,EAAc;MACdL,OAAA,CAAQK,KAAR,CAAe,iBAAgBA,KAAA,CAAMC,OAAQ,IAA7C;MAEA,MAAM,KAAK,CAAAmgD,gBAAL,EAAN;MACA;IAJc;IAOhB,MAAM,KAAK,CAAAF,SAAL,EAAiBW,sBAAjB,CAAwC;MAC5Cl7C,EAAA,EAAI,KADwC;MAE5CgP,IAAA,EAAM;IAFsC,CAAxC,CAAN;IAIA,MAAM,KAAK,CAAAosC,gBAAL,CACJ,KAAK,CAAA3lD,SAAL,CAAgB0M,iBADZ,EAEe,IAFf,CAAN;IAMAvN,OAAA,CAAQC,OAAR,GAAkB8E,IAAlB,CAAuB,MAAM;MAC3B,IAAIrE,WAAA,KAAgB,KAAK,CAAAA,WAAzB,EAAuC;QACrC,KAAK,CAAA4jB,KAAL,GAAc,IAAd;MADqC;IADZ,CAA7B;EA7G6B;EAoH/B,MAAMhQ,gBAANA,CAAA,EAAyB;IACvB,OAAO,KAAK,CAAAqxC,SAAL,EAAiBW,sBAAjB,CAAwC;MAC7Cl7C,EAAA,EAAI,KADyC;MAE7CgP,IAAA,EAAM;IAFuC,CAAxC,CAAP;EADuB;EAOzB,MAAM5F,eAANA,CAAA,EAAwB;IACtB,OAAO,KAAK,CAAAmxC,SAAL,EAAiBW,sBAAjB,CAAwC;MAC7Cl7C,EAAA,EAAI,KADyC;MAE7CgP,IAAA,EAAM;IAFuC,CAAxC,CAAP;EADsB;EAOxB,MAAM6D,iBAANA,CAAA,EAA0B;IACxB,IAAI,CAAC,KAAK,CAAA0nC,SAAV,EAAsB;MACpB;IADoB;IAGtB,MAAM,KAAK,CAAAC,mBAAL,EAA2Bz2C,OAAjC;IACA,KAAK,CAAAy2C,mBAAL,GAA4B,IAAIplD,2BAAJ,EAA5B;IACA,IAAI;MACF,MAAM,KAAK,CAAAmlD,SAAL,CAAgBW,sBAAhB,CAAuC;QAC3Cl7C,EAAA,EAAI,KADuC;QAE3CgP,IAAA,EAAM;MAFqC,CAAvC,CAAN;IADE,CAAJ,CAKE,OAAOpU,EAAP,EAAW;MACX,KAAK,CAAA4/C,mBAAL,CAA0B3lD,OAA1B;MACA,KAAK,CAAA2lD,mBAAL,GAA4B,IAA5B;MACA,MAAM5/C,EAAN;IAHW;IAMb,MAAM,KAAK,CAAA4/C,mBAAL,CAA0Bz2C,OAAhC;EAjBwB;EAoB1B,MAAMwP,gBAANA,CAAA,EAAyB;IACvB,OAAO,KAAK,CAAAgnC,SAAL,EAAiBW,sBAAjB,CAAwC;MAC7Cl7C,EAAA,EAAI,KADyC;MAE7CgP,IAAA,EAAM;IAFuC,CAAxC,CAAP;EADuB;EAOzB,IAAIpI,cAAJA,CAAA,EAAqB;IACnB,OAAO,KAAK,CAAA0zC,iBAAL,EAAyBv2C,OAAzB,IAAoC,IAA3C;EADmB;EAIrB,IAAImV,KAAJA,CAAA,EAAY;IACV,OAAO,KAAK,CAAAA,KAAZ;EADU;EAOZ,IAAI8hC,eAAJA,CAAA,EAAsB;IACpB,OAAO,IAAA9mD,gBAAA,EAAO,IAAP,EAAa,iBAAb,EAAgC,IAAIsxB,GAAJ,EAAhC,CAAP;EADoB;EAOtB,IAAI61B,gBAAJA,CAAA,EAAuB;IACrB,OAAO,IAAAnnD,gBAAA,EAAO,IAAP,EAAa,kBAAb,EAAiC,IAAI+0B,GAAJ,EAAjC,CAAP;EADqB;EAOvB,IAAIyyB,aAAJA,CAAA,EAAoB;IAClB,OAAO,IAAAxnD,gBAAA,EAAO,IAAP,EAAa,eAAb,EAA8B,IAAIsxB,GAAJ,EAA9B,CAAP;EADkB;EAIpB,MAAM,CAAAy1B,iBAANA,CAAyBhkC,MAAzB,EAAiC;IAC/B,MAAMxhB,SAAA,GAAY,KAAK,CAAAA,SAAvB;IAEA,MAAM0O,oBAAA,GACJ1O,SAAA,CAAU0O,oBAAV,IAAkC1O,SAAA,CAAUkmD,0BAD9C;IAGA,MAAM;MAAE37C,EAAF;MAAM47C,QAAN;MAAgBC,OAAhB;MAAyBj5C;IAAzB,IAAmCqU,MAAzC;IACA,IAAI,CAACjX,EAAL,EAAS;MACP,QAAQ67C,OAAR;QACE,KAAK,OAAL;UACE7hD,OAAA,CAAQm3B,KAAR;UACA;QACF,KAAK,OAAL;UACEn3B,OAAA,CAAQK,KAAR,CAAcuI,KAAd;UACA;QACF,KAAK,QAAL;UACE,IAAI,CAACuB,oBAAL,EAA2B;YACzB,MAAM8I,KAAA,GAAQ,IAAAC,oCAAA,EAA2BtK,KAA3B,CAAd;YACAnN,SAAA,CAAUsW,UAAV,GAAuBkB,KAAA,CAAMlB,UAA7B;UAFyB;UAI3B;QACF,KAAK,UAAL;UACEtW,SAAA,CAAU0M,iBAAV,GAA8BS,KAAA,GAAQ,CAAtC;UACA;QACF,KAAK,OAAL;UACE,MAAMnN,SAAA,CAAUyV,YAAhB;UACA,KAAK,CAAAtU,QAAL,CAAegD,QAAf,CAAwB,OAAxB,EAAiC;YAAEC,MAAA,EAAQ;UAAV,CAAjC;UACA;QACF,KAAK,SAAL;UACEG,OAAA,CAAQ0V,GAAR,CAAY9M,KAAZ;UACA;QACF,KAAK,MAAL;UACE,IAAI,CAACuB,oBAAL,EAA2B;YACzB1O,SAAA,CAAUgP,iBAAV,GAA8B7B,KAA9B;UADyB;UAG3B;QACF,KAAK,QAAL;UACE,KAAK,CAAAhM,QAAL,CAAegD,QAAf,CAAwB,UAAxB,EAAoC;YAAEC,MAAA,EAAQ;UAAV,CAApC;UACA;QACF,KAAK,WAAL;UACEpE,SAAA,CAAU0M,iBAAV,GAA8B,CAA9B;UACA;QACF,KAAK,UAAL;UACE1M,SAAA,CAAU0M,iBAAV,GAA8B1M,SAAA,CAAUkP,UAAxC;UACA;QACF,KAAK,UAAL;UACElP,SAAA,CAAU4lB,QAAV;UACA;QACF,KAAK,UAAL;UACE5lB,SAAA,CAAU6lB,YAAV;UACA;QACF,KAAK,YAAL;UACE,IAAI,CAACnX,oBAAL,EAA2B;YACzB1O,SAAA,CAAU2O,aAAV;UADyB;UAG3B;QACF,KAAK,aAAL;UACE,IAAI,CAACD,oBAAL,EAA2B;YACzB1O,SAAA,CAAU8O,aAAV;UADyB;UAG3B;QACF,KAAK,mBAAL;UACE,KAAK,CAAAi2C,mBAAL,EAA2B3lD,OAA3B;UACA,KAAK,CAAA2lD,mBAAL,GAA4B,IAA5B;UACA;MAxDJ;MA0DA;IA3DO;IA8DT,IAAIr2C,oBAAA,IAAwB8S,MAAA,CAAO7J,KAAnC,EAA0C;MACxC;IADwC;IAG1C,OAAO6J,MAAA,CAAOjX,EAAd;IACA,OAAOiX,MAAA,CAAO2kC,QAAd;IAEA,MAAM5yB,GAAA,GAAM4yB,QAAA,GAAW,CAAC57C,EAAD,EAAK,GAAG47C,QAAR,CAAX,GAA+B,CAAC57C,EAAD,CAA3C;IACA,WAAW87C,SAAX,IAAwB9yB,GAAxB,EAA6B;MAC3B,MAAMtF,OAAA,GAAU3uB,QAAA,CAAS+2B,aAAT,CACb,qBAAoBgwB,SAAU,IADjB,CAAhB;MAGA,IAAIp4B,OAAJ,EAAa;QACXA,OAAA,CAAQkV,aAAR,CAAsB,IAAImjB,WAAJ,CAAgB,mBAAhB,EAAqC;UAAE9kC;QAAF,CAArC,CAAtB;MADW,CAAb,MAEO;QAEL,KAAK,CAAA3hB,WAAL,EAAmB6Q,iBAAnB,CAAqC61C,QAArC,CAA8CF,SAA9C,EAAyD7kC,MAAzD;MAFK;IANoB;EA5EE;EAyFjC,MAAM,CAAAmkC,gBAANA,CAAwB9pC,UAAxB,EAAoC3Y,UAAA,GAAa,KAAjD,EAAwD;IACtD,MAAMrD,WAAA,GAAc,KAAK,CAAAA,WAAzB;MACE2mD,YAAA,GAAe,KAAKP,aADtB;IAGA,IAAI/iD,UAAJ,EAAgB;MACd,KAAK,CAAA0hD,eAAL,GAAwB,IAAIjlD,2BAAJ,EAAxB;IADc;IAGhB,IAAI,CAAC,KAAK,CAAAilD,eAAV,EAA4B;MAC1B;IAD0B;IAG5B,MAAM14C,QAAA,GAAW,KAAK,CAAAlM,SAAL,CAAgBwkB,WAAhB,CAA0C3I,UAAA,GAAa,CAAvD,CAAjB;IAEA,IAAI3P,QAAA,EAAUE,cAAV,KAA6BC,yBAAA,CAAgBC,QAAjD,EAA2D;MACzD,KAAKs5C,gBAAL,CAAsBpgD,GAAtB,CAA0BqW,UAA1B;MACA;IAFyD;IAI3D,KAAK+pC,gBAAL,CAAsB/N,MAAtB,CAA6Bh8B,UAA7B;IAEA,MAAM4qC,cAAA,GAAkB,aAAY;MAElC,MAAMT,OAAA,GAAU,OAAO,CAACQ,YAAA,CAAaphD,GAAb,CAAiByW,UAAjB,CAAD,GACnB3P,QAAA,CAASsK,OAAT,EAAkB4C,YAAlB,EADmB,GAEnB,IAFmB,CAAvB;MAGA,IAAIvZ,WAAA,KAAgB,KAAK,CAAAA,WAAzB,EAAuC;QACrC;MADqC;MAIvC,MAAM,KAAK,CAAAilD,SAAL,EAAiBW,sBAAjB,CAAwC;QAC5Cl7C,EAAA,EAAI,MADwC;QAE5CgP,IAAA,EAAM,UAFsC;QAG5CsC,UAH4C;QAI5CmqC;MAJ4C,CAAxC,CAAN;IATkC,CAAZ,EAAD,CAAvB;IAgBAQ,YAAA,CAAa9iD,GAAb,CAAiBmY,UAAjB,EAA6B4qC,cAA7B;EAlCsD;EAqCxD,MAAM,CAAAf,iBAANA,CAAyB7pC,UAAzB,EAAqC;IACnC,MAAMhc,WAAA,GAAc,KAAK,CAAAA,WAAzB;MACE2mD,YAAA,GAAe,KAAKP,aADtB;IAGA,IAAI,CAAC,KAAK,CAAArB,eAAV,EAA4B;MAC1B;IAD0B;IAG5B,IAAI,KAAKgB,gBAAL,CAAsBxgD,GAAtB,CAA0ByW,UAA1B,CAAJ,EAA2C;MACzC;IADyC;IAG3C,MAAM4qC,cAAA,GAAiBD,YAAA,CAAajjD,GAAb,CAAiBsY,UAAjB,CAAvB;IACA,IAAI,CAAC4qC,cAAL,EAAqB;MACnB;IADmB;IAGrBD,YAAA,CAAa9iD,GAAb,CAAiBmY,UAAjB,EAA6B,IAA7B;IAGA,MAAM4qC,cAAN;IACA,IAAI5mD,WAAA,KAAgB,KAAK,CAAAA,WAAzB,EAAuC;MACrC;IADqC;IAIvC,MAAM,KAAK,CAAAilD,SAAL,EAAiBW,sBAAjB,CAAwC;MAC5Cl7C,EAAA,EAAI,MADwC;MAE5CgP,IAAA,EAAM,WAFsC;MAG5CsC;IAH4C,CAAxC,CAAN;EAtBmC;EA6BrC,CAAAypC,cAAA,EAAiB;IACf,KAAK,CAAAT,iBAAL,GAA0B,IAAIllD,2BAAJ,EAA1B;IAEA,IAAI,KAAK,CAAAmlD,SAAT,EAAqB;MACnB,MAAM,IAAI9mD,KAAJ,CAAU,2CAAV,CAAN;IADmB;IAGrB,OAAO,KAAK,CAAAtC,gBAAL,CAAuBJ,eAAvB,CAAuC;MAC5CC,gBAAA,EAAkB,KAAK,CAAAA;IADqB,CAAvC,CAAP;EANe;EAWjB,MAAM,CAAAypD,gBAANA,CAAA,EAA0B;IACxB,IAAI,CAAC,KAAK,CAAAF,SAAV,EAAsB;MACpB,KAAK,CAAAjlD,WAAL,GAAoB,IAApB;MAEA,KAAK,CAAAglD,iBAAL,EAAyBzlD,OAAzB;MACA;IAJoB;IAMtB,IAAI,KAAK,CAAAwlD,eAAT,EAA2B;MACzB,MAAMzlD,OAAA,CAAQyY,IAAR,CAAa,CACjB,KAAK,CAAAgtC,eAAL,CAAsBt2C,OADL,EAEjB,IAAInP,OAAJ,CAAYC,OAAA,IAAW;QAErByY,UAAA,CAAWzY,OAAX,EAAoB,IAApB;MAFqB,CAAvB,CAFiB,CAAb,EAMH8V,KANG,CAMG,MAAM,EANT,CAAN;MASA,KAAK,CAAA0vC,eAAL,GAAwB,IAAxB;IAVyB;IAY3B,KAAK,CAAA/kD,WAAL,GAAoB,IAApB;IAEA,IAAI;MACF,MAAM,KAAK,CAAAilD,SAAL,CAAgB4B,cAAhB,EAAN;IADE,CAAJ,CAEE,MAAM;IAER,KAAK,CAAA3B,mBAAL,EAA2B/qB,MAA3B,CAAkC,IAAIh8B,KAAJ,CAAU,sBAAV,CAAlC;IACA,KAAK,CAAA+mD,mBAAL,GAA4B,IAA5B;IAEA,WAAW,CAACxrC,IAAD,EAAOihB,QAAP,CAAX,IAA+B,KAAK+qB,eAApC,EAAqD;MACnD,KAAK,CAAApkD,QAAL,CAAeghB,IAAf,CAAoB5I,IAApB,EAA0BihB,QAA1B;IADmD;IAGrD,KAAK+qB,eAAL,CAAqB7pB,KAArB;IAEA,KAAKkqB,gBAAL,CAAsBlqB,KAAtB;IACA,KAAKuqB,aAAL,CAAmBvqB,KAAnB;IAEA,KAAK,CAAAopB,SAAL,GAAkB,IAAlB;IACA,KAAK,CAAArhC,KAAL,GAAc,KAAd;IAEA,KAAK,CAAAohC,iBAAL,EAAyBzlD,OAAzB;EAvCwB;AA5YF;AAhC1BlF,2BAAA,GAAA+N,mBAAA;;;;;;;;;;;;ACeA,IAAAtM,SAAA,GAAA/B,mBAAA;AAQA,MAAM+sD,iBAAA,GAAoB,iBAA1B;AACA,MAAMC,iBAAA,GAAoB,GAA1B;AACA,MAAMC,sBAAA,GAAyB,iBAA/B;AACA,MAAMC,qBAAA,GAAwB,wBAA9B;AAyCA,MAAMj7C,UAAN,CAAiB;EACf,CAAAk7C,KAAA,GAAS,KAAT;EAEA,CAAAC,cAAA,GAAkB,KAAK,CAAAC,SAAL,CAAgBz/C,IAAhB,CAAqB,IAArB,CAAlB;EAEA,CAAA0/C,YAAA,GAAgB,KAAK,CAAAC,OAAL,CAAc3/C,IAAd,CAAmB,IAAnB,CAAhB;EAEA,CAAA4/C,mBAAA,GAAuB,IAAvB;EAEA,CAAAh1B,KAAA,GAAS,IAAT;EAKAr0B,YAAY;IAAE+N,QAAF;IAAY3K,QAAZ;IAAsBC;EAAtB,CAAZ,EAA0C;IACxC,KAAKmpB,MAAL,GAAc,KAAd;IACA,KAAKxC,MAAL,GAAc5R,qBAAA,CAAY8G,MAA1B;IACA,KAAK3b,gBAAL,GAAwB,KAAxB;IACA,KAAK+lD,wBAAL,GAAgC,KAAhC;IAMA,KAAKt7C,SAAL,GAAiB,IAAjB;IACA,KAAKE,kBAAL,GAA0B,IAA1B;IAEA,KAAKq7C,cAAL,GAAsBx7C,QAAA,CAASw7C,cAA/B;IACA,KAAKC,gBAAL,GAAwBz7C,QAAA,CAASy7C,gBAAjC;IACA,KAAK98B,YAAL,GAAoB3e,QAAA,CAAS2e,YAA7B;IACA,KAAK+8B,OAAL,GAAe17C,QAAA,CAAS07C,OAAxB;IAEA,KAAKC,eAAL,GAAuB37C,QAAA,CAAS27C,eAAhC;IACA,KAAKC,aAAL,GAAqB57C,QAAA,CAAS47C,aAA9B;IACA,KAAKC,iBAAL,GAAyB77C,QAAA,CAAS67C,iBAAlC;IACA,KAAKC,YAAL,GAAoB97C,QAAA,CAAS87C,YAA7B;IAEA,KAAKh+C,aAAL,GAAqBkC,QAAA,CAASlC,aAA9B;IACA,KAAK2B,WAAL,GAAmBO,QAAA,CAASP,WAA5B;IACA,KAAKE,eAAL,GAAuBK,QAAA,CAASL,eAAhC;IACA,KAAKE,UAAL,GAAkBG,QAAA,CAASH,UAA3B;IAEA,KAAKk8C,wBAAL,GAAgC/7C,QAAA,CAASg8C,uBAAzC;IACA,KAAKC,yBAAL,GAAiCj8C,QAAA,CAASk8C,wBAA1C;IAEA,KAAK7mD,QAAL,GAAgBA,QAAhB;IACA,KAAKC,IAAL,GAAYA,IAAZ;IAEAA,IAAA,CAAK2E,YAAL,GAAoB7B,IAApB,CAAyB4B,GAAA,IAAO;MAC9B,KAAK,CAAAihD,KAAL,GAAcjhD,GAAA,KAAQ,KAAtB;IAD8B,CAAhC;IAGA,KAAK,CAAA0hC,iBAAL;EArCwC;EAwC1Cp2B,MAAA,EAAQ;IACN,KAAK9P,gBAAL,GAAwB,KAAxB;IACA,KAAK+lD,wBAAL,GAAgC,KAAhC;IAEA,KAAK,CAAAY,kBAAL,CAAuC,IAAvC;IACA,KAAKjjC,UAAL,CAAgB7O,qBAAA,CAAY8G,MAA5B;IAEA,KAAKyqC,aAAL,CAAmBllB,QAAnB,GAA8B,KAA9B;IACA,KAAKmlB,iBAAL,CAAuBnlB,QAAvB,GAAkC,KAAlC;IACA,KAAKolB,YAAL,CAAkBplB,QAAlB,GAA6B,KAA7B;IACA,KAAKulB,yBAAL,CAA+BvlB,QAA/B,GAA0C,IAA1C;EAVM;EAgBR,IAAIxlB,WAAJA,CAAA,EAAkB;IAChB,OAAO,KAAKuN,MAAL,GAAc,KAAKxC,MAAnB,GAA4B5R,qBAAA,CAAY1S,IAA/C;EADgB;EAQlBiU,eAAekN,IAAA,GAAOzO,qBAAA,CAAY1S,IAAlC,EAAwC;IACtC,IAAI,KAAKnC,gBAAT,EAA2B;MACzB;IADyB;IAG3B,KAAKA,gBAAL,GAAwB,IAAxB;IAIA,IAAIsjB,IAAA,KAASzO,qBAAA,CAAY1S,IAArB,IAA6BmhB,IAAA,KAASzO,qBAAA,CAAY3Y,OAAtD,EAA+D;MAC7D,KAAK,CAAA2lC,aAAL;MACA;IAF6D;IAI/D,KAAKne,UAAL,CAAgBJ,IAAhB,EAAwC,IAAxC;IAIA,IAAI,CAAC,KAAKyiC,wBAAV,EAAoC;MAClC,KAAK,CAAAlkB,aAAL;IADkC;EAhBE;EA2BxCne,WAAWJ,IAAX,EAAiBsjC,SAAA,GAAY,KAA7B,EAAoC;IAClC,MAAMC,aAAA,GAAgBvjC,IAAA,KAAS,KAAKmD,MAApC;IACA,IAAI/b,cAAA,GAAiB,KAArB;IAEA,QAAQ4Y,IAAR;MACE,KAAKzO,qBAAA,CAAY1S,IAAjB;QACE,IAAI,KAAK8mB,MAAT,EAAiB;UACf,KAAK/Z,KAAL;QADe;QAGjB;MACF,KAAK2F,qBAAA,CAAY8G,MAAjB;QACE,IAAI,KAAKsN,MAAL,IAAe49B,aAAnB,EAAkC;UAChCn8C,cAAA,GAAiB,IAAjB;QADgC;QAGlC;MACF,KAAKmK,qBAAA,CAAY0O,OAAjB;QACE,IAAI,KAAK6iC,aAAL,CAAmBllB,QAAvB,EAAiC;UAC/B;QAD+B;QAGjC;MACF,KAAKrsB,qBAAA,CAAY2O,WAAjB;QACE,IAAI,KAAK6iC,iBAAL,CAAuBnlB,QAA3B,EAAqC;UACnC;QADmC;QAGrC;MACF,KAAKrsB,qBAAA,CAAY4O,MAAjB;QACE,IAAI,KAAK6iC,YAAL,CAAkBplB,QAAtB,EAAgC;UAC9B;QAD8B;QAGhC;MACF;QACEj+B,OAAA,CAAQK,KAAR,CAAe,2BAA0BggB,IAAK,wBAA9C;QACA;IA5BJ;IAgCA,KAAKmD,MAAL,GAAcnD,IAAd;IAGA,IAAA2R,0BAAA,EACE,KAAKkxB,eADP,EAEE7iC,IAAA,KAASzO,qBAAA,CAAY8G,MAFvB,EAGE,KAAKrT,aAHP;IAKA,IAAA2sB,0BAAA,EACE,KAAKmxB,aADP,EAEE9iC,IAAA,KAASzO,qBAAA,CAAY0O,OAFvB,EAGE,KAAKtZ,WAHP;IAKA,IAAAgrB,0BAAA,EACE,KAAKoxB,iBADP,EAEE/iC,IAAA,KAASzO,qBAAA,CAAY2O,WAFvB,EAGE,KAAKrZ,eAHP;IAKA,IAAA8qB,0BAAA,EACE,KAAKqxB,YADP,EAEEhjC,IAAA,KAASzO,qBAAA,CAAY4O,MAFvB,EAGE,KAAKpZ,UAHP;IAOA,KAAKk8C,wBAAL,CAA8BtiD,SAA9B,CAAwC2f,MAAxC,CACE,QADF,EAEEN,IAAA,KAASzO,qBAAA,CAAY0O,OAFvB;IAKA,IAAIqjC,SAAA,IAAa,CAAC,KAAK39B,MAAvB,EAA+B;MAC7B,KAAKtc,IAAL;MACA;IAF6B;IAI/B,IAAIjC,cAAJ,EAAoB;MAClB,KAAKC,kBAAL;MACA,KAAKF,SAAL;IAFkB;IAIpB,IAAIo8C,aAAJ,EAAmB;MACjB,KAAK,CAAAhlB,aAAL;IADiB;EA1Ee;EA+EpCl1B,KAAA,EAAO;IACL,IAAI,KAAKsc,MAAT,EAAiB;MACf;IADe;IAGjB,KAAKA,MAAL,GAAc,IAAd;IACA,IAAAmM,2BAAA,EAAkB,KAAKjM,YAAvB,EAAqC,IAArC;IAEA,KAAK68B,cAAL,CAAoB/hD,SAApB,CAA8BC,GAA9B,CAAkC,eAAlC,EAAmD,aAAnD;IAEA,IAAI,KAAKuiB,MAAL,KAAgB5R,qBAAA,CAAY8G,MAAhC,EAAwC;MACtC,KAAKhR,kBAAL;IADsC;IAGxC,KAAKF,SAAL;IACA,KAAK,CAAAo3B,aAAL;IAEA,KAAK,CAAA8kB,kBAAL;EAfK;EAkBPz3C,MAAA,EAAQ;IACN,IAAI,CAAC,KAAK+Z,MAAV,EAAkB;MAChB;IADgB;IAGlB,KAAKA,MAAL,GAAc,KAAd;IACA,IAAAmM,2BAAA,EAAkB,KAAKjM,YAAvB,EAAqC,KAArC;IAEA,KAAK68B,cAAL,CAAoB/hD,SAApB,CAA8BC,GAA9B,CAAkC,eAAlC;IACA,KAAK8hD,cAAL,CAAoB/hD,SAApB,CAA8B8E,MAA9B,CAAqC,aAArC;IAEA,KAAK0B,SAAL;IACA,KAAK,CAAAo3B,aAAL;EAXM;EAcRje,OAAA,EAAS;IACP,IAAI,KAAKqF,MAAT,EAAiB;MACf,KAAK/Z,KAAL;IADe,CAAjB,MAEO;MACL,KAAKvC,IAAL;IADK;EAHA;EAQT,CAAAk1B,cAAA,EAAiB;IACf,IAAI,KAAK7hC,gBAAT,EAA2B;MACzB,KAAK+lD,wBAAL,KAAkC,IAAlC;IADyB;IAI3B,KAAKlmD,QAAL,CAAcgD,QAAd,CAAuB,oBAAvB,EAA6C;MAC3CC,MAAA,EAAQ,IADmC;MAE3CwgB,IAAA,EAAM,KAAK5H;IAFgC,CAA7C;EALe;EAWjB,CAAAorC,mBAAA,EAAsB;IACpB,KAAK39B,YAAL,CAAkBgM,YAAlB,CACE,cADF,EAEE,8BAFF;IAIA,KAAKr1B,IAAL,CAAU6C,SAAV,CAAoB,KAAKwmB,YAAzB;IAEA,IAAI,CAAC,KAAKF,MAAV,EAAkB;MAGhB,KAAKE,YAAL,CAAkBllB,SAAlB,CAA4BC,GAA5B,CAAgCshD,qBAAhC;IAHgB;EAPE;EActB,CAAAmB,mBAAoB72C,KAAA,GAAQ,KAA5B,EAAmC;IACjC,IAAI,KAAKmZ,MAAL,IAAenZ,KAAnB,EAA0B;MAGxB,KAAKqZ,YAAL,CAAkBllB,SAAlB,CAA4B8E,MAA5B,CAAmCy8C,qBAAnC;IAHwB;IAM1B,IAAI11C,KAAJ,EAAW;MACT,KAAKqZ,YAAL,CAAkBgM,YAAlB,CAA+B,cAA/B,EAA+C,gBAA/C;MACA,KAAKr1B,IAAL,CAAU6C,SAAV,CAAoB,KAAKwmB,YAAzB;IAFS;EAPsB;EAanC,CAAA+c,kBAAA,EAAqB;IACnB,KAAK+f,gBAAL,CAAsBn6C,gBAAtB,CAAuC,eAAvC,EAAwDC,GAAA,IAAO;MAC7D,IAAIA,GAAA,CAAIE,MAAJ,KAAe,KAAKg6C,gBAAxB,EAA0C;QACxC,KAAKD,cAAL,CAAoB/hD,SAApB,CAA8B8E,MAA9B,CAAqC,eAArC;MADwC;IADmB,CAA/D;IAMA,KAAKogB,YAAL,CAAkBrd,gBAAlB,CAAmC,OAAnC,EAA4C,MAAM;MAChD,KAAK8X,MAAL;IADgD,CAAlD;IAKA,KAAKuiC,eAAL,CAAqBr6C,gBAArB,CAAsC,OAAtC,EAA+C,MAAM;MACnD,KAAK4X,UAAL,CAAgB7O,qBAAA,CAAY8G,MAA5B;IADmD,CAArD;IAIA,KAAKyqC,aAAL,CAAmBt6C,gBAAnB,CAAoC,OAApC,EAA6C,MAAM;MACjD,KAAK4X,UAAL,CAAgB7O,qBAAA,CAAY0O,OAA5B;IADiD,CAAnD;IAGA,KAAK6iC,aAAL,CAAmBt6C,gBAAnB,CAAoC,UAApC,EAAgD,MAAM;MACpD,KAAKjM,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;QAAEC,MAAA,EAAQ;MAAV,CAA5C;IADoD,CAAtD;IAIA,KAAKujD,iBAAL,CAAuBv6C,gBAAvB,CAAwC,OAAxC,EAAiD,MAAM;MACrD,KAAK4X,UAAL,CAAgB7O,qBAAA,CAAY2O,WAA5B;IADqD,CAAvD;IAIA,KAAK8iC,YAAL,CAAkBx6C,gBAAlB,CAAmC,OAAnC,EAA4C,MAAM;MAChD,KAAK4X,UAAL,CAAgB7O,qBAAA,CAAY4O,MAA5B;IADgD,CAAlD;IAGA,KAAK6iC,YAAL,CAAkBx6C,gBAAlB,CAAmC,UAAnC,EAA+C,MAAM;MACnD,KAAKjM,QAAL,CAAcgD,QAAd,CAAuB,aAAvB,EAAsC;QAAEC,MAAA,EAAQ;MAAV,CAAtC;IADmD,CAArD;IAKA,KAAK2jD,yBAAL,CAA+B36C,gBAA/B,CAAgD,OAAhD,EAAyD,MAAM;MAC7D,KAAKjM,QAAL,CAAcgD,QAAd,CAAuB,oBAAvB,EAA6C;QAAEC,MAAA,EAAQ;MAAV,CAA7C;IAD6D,CAA/D;IAKA,MAAMikD,YAAA,GAAeA,CAACjiB,KAAD,EAAQ5P,MAAR,EAAgB5R,IAAhB,KAAyB;MAC5C4R,MAAA,CAAOgM,QAAP,GAAkB,CAAC4D,KAAnB;MAEA,IAAIA,KAAJ,EAAW;QACT,KAAK,CAAAgiB,kBAAL;MADS,CAAX,MAEO,IAAI,KAAKrgC,MAAL,KAAgBnD,IAApB,EAA0B;QAG/B,KAAKI,UAAL,CAAgB7O,qBAAA,CAAY8G,MAA5B;MAH+B;IALW,CAA9C;IAYA,KAAK9b,QAAL,CAAcwX,GAAd,CAAkB,eAAlB,EAAmCtL,GAAA,IAAO;MACxCg7C,YAAA,CAAah7C,GAAA,CAAIwxC,YAAjB,EAA+B,KAAK6I,aAApC,EAAmDvxC,qBAAA,CAAY0O,OAA/D;MAEAxX,GAAA,CAAIyxC,yBAAJ,CAA8B56C,IAA9B,CAAmCyB,OAAA,IAAW;QAC5C,IAAI,CAAC,KAAKrE,gBAAV,EAA4B;UAC1B;QAD0B;QAG5B,KAAKymD,yBAAL,CAA+BvlB,QAA/B,GAA0C,CAAC78B,OAA3C;MAJ4C,CAA9C;IAHwC,CAA1C;IAWA,KAAKxE,QAAL,CAAcwX,GAAd,CAAkB,mBAAlB,EAAuCtL,GAAA,IAAO;MAC5Cg7C,YAAA,CACEh7C,GAAA,CAAI+3B,gBADN,EAEE,KAAKuiB,iBAFP,EAGExxC,qBAAA,CAAY2O,WAHd;IAD4C,CAA9C;IAQA,KAAK3jB,QAAL,CAAcwX,GAAd,CAAkB,cAAlB,EAAkCtL,GAAA,IAAO;MACvCg7C,YAAA,CAAah7C,GAAA,CAAIuwC,WAAjB,EAA8B,KAAKgK,YAAnC,EAAiDzxC,qBAAA,CAAY4O,MAA7D;IADuC,CAAzC;IAKA,KAAK5jB,QAAL,CAAcwX,GAAd,CAAkB,yBAAlB,EAA6CtL,GAAA,IAAO;MAClD,IACEA,GAAA,CAAI+X,KAAJ,KAAc0H,+BAAA,CAAsBC,MAApC,IACA,KAAK/P,WAAL,KAAqB7G,qBAAA,CAAY8G,MAFnC,EAGE;QACA,KAAKhR,kBAAL;MADA;IAJgD,CAApD;IAUA,KAAKu7C,OAAL,CAAap6C,gBAAb,CAA8B,WAA9B,EAA2CC,GAAA,IAAO;MAChD,IAAIA,GAAA,CAAImpB,MAAJ,KAAe,CAAnB,EAAsB;QACpB;MADoB;MAKtB,KAAK8wB,cAAL,CAAoB/hD,SAApB,CAA8BC,GAA9B,CAAkCqhD,sBAAlC;MAEAplD,MAAA,CAAO2L,gBAAP,CAAwB,WAAxB,EAAqC,KAAK,CAAA45C,cAA1C;MACAvlD,MAAA,CAAO2L,gBAAP,CAAwB,SAAxB,EAAmC,KAAK,CAAA85C,YAAxC;IATgD,CAAlD;IAYA,KAAK/lD,QAAL,CAAcwX,GAAd,CAAkB,QAAlB,EAA4BtL,GAAA,IAAO;MAGjC,IAAIA,GAAA,CAAIjJ,MAAJ,KAAe3C,MAAnB,EAA2B;QACzB;MADyB;MAI3B,KAAK,CAAA2lD,mBAAL,GAA4B,IAA5B;MAEA,IAAI,CAAC,KAAK,CAAAh1B,KAAV,EAAkB;QAEhB;MAFgB;MAMlB,IAAI,CAAC,KAAK7H,MAAV,EAAkB;QAChB,KAAK,CAAA+9B,WAAL,CAAkB,KAAK,CAAAl2B,KAAvB;QACA;MAFgB;MAIlB,KAAKk1B,cAAL,CAAoB/hD,SAApB,CAA8BC,GAA9B,CAAkCqhD,sBAAlC;MACA,MAAM0B,OAAA,GAAU,KAAK,CAAAD,WAAL,CAAkB,KAAK,CAAAl2B,KAAvB,CAAhB;MAEAjzB,OAAA,CAAQC,OAAR,GAAkB8E,IAAlB,CAAuB,MAAM;QAC3B,KAAKojD,cAAL,CAAoB/hD,SAApB,CAA8B8E,MAA9B,CAAqCw8C,sBAArC;QAGA,IAAI0B,OAAJ,EAAa;UACX,KAAKpnD,QAAL,CAAcgD,QAAd,CAAuB,QAAvB,EAAiC;YAAEC,MAAA,EAAQ;UAAV,CAAjC;QADW;MAJc,CAA7B;IAtBiC,CAAnC;EAlGmB;EAsIrB,IAAIgjD,mBAAJA,CAAA,EAA0B;IACxB,OAAQ,KAAK,CAAAA,mBAAL,KAA8B,KAAKE,cAAL,CAAoBz4B,WAA1D;EADwB;EAO1B,CAAAy5B,YAAal2B,KAAA,GAAQ,CAArB,EAAwB;IAGtB,MAAMo2B,QAAA,GAAWh0C,IAAA,CAAKsO,KAAL,CAAW,KAAKskC,mBAAL,GAA2B,CAAtC,CAAjB;IACA,IAAIh1B,KAAA,GAAQo2B,QAAZ,EAAsB;MACpBp2B,KAAA,GAAQo2B,QAAR;IADoB;IAGtB,IAAIp2B,KAAA,GAAQw0B,iBAAZ,EAA+B;MAC7Bx0B,KAAA,GAAQw0B,iBAAR;IAD6B;IAI/B,IAAIx0B,KAAA,KAAU,KAAK,CAAAA,KAAnB,EAA2B;MACzB,OAAO,KAAP;IADyB;IAG3B,KAAK,CAAAA,KAAL,GAAcA,KAAd;IAEAiD,kBAAA,CAASO,WAAT,CAAqB+wB,iBAArB,EAAwC,GAAGv0B,KAAM,IAAjD;IACA,OAAO,IAAP;EAjBsB;EAoBxB,CAAA60B,UAAW55C,GAAX,EAAgB;IACd,IAAI+kB,KAAA,GAAQ/kB,GAAA,CAAIgb,OAAhB;IAEA,IAAI,KAAK,CAAA0+B,KAAT,EAAiB;MACf30B,KAAA,GAAQ,KAAKg1B,mBAAL,GAA2Bh1B,KAAnC;IADe;IAGjB,KAAK,CAAAk2B,WAAL,CAAkBl2B,KAAlB;EANc;EAShB,CAAA+0B,QAAS95C,GAAT,EAAc;IAEZ,KAAKi6C,cAAL,CAAoB/hD,SAApB,CAA8B8E,MAA9B,CAAqCw8C,sBAArC;IAEA,KAAK1lD,QAAL,CAAcgD,QAAd,CAAuB,QAAvB,EAAiC;MAAEC,MAAA,EAAQ;IAAV,CAAjC;IAEA3C,MAAA,CAAOwa,mBAAP,CAA2B,WAA3B,EAAwC,KAAK,CAAA+qC,cAA7C;IACAvlD,MAAA,CAAOwa,mBAAP,CAA2B,SAA3B,EAAsC,KAAK,CAAAirC,YAA3C;EAPY;AAhbC;AAnEjBhtD,kBAAA,GAAA2R,UAAA;;;;;;;;;;;;ACuBA,IAAAlQ,SAAA,GAAA/B,mBAAA;AAOA,IAAA6uD,mBAAA,GAAA7uD,mBAAA;AAEA,MAAM8uD,uBAAA,GAA0B,CAAC,EAAjC;AACA,MAAMC,wBAAA,GAA2B,UAAjC;AAkBA,MAAM9+C,kBAAN,CAAyB;EAIvB9L,YAAY;IACVqK,SADU;IAEVjH,QAFU;IAGV4G,WAHU;IAIVmB,cAJU;IAKV9H,IALU;IAMVqH;EANU,CAAZ,EAOG;IACD,KAAKL,SAAL,GAAiBA,SAAjB;IACA,KAAKjH,QAAL,GAAgBA,QAAhB;IACA,KAAK4G,WAAL,GAAmBA,WAAnB;IACA,KAAKmB,cAAL,GAAsBA,cAAtB;IACA,KAAK9H,IAAL,GAAYA,IAAZ;IACA,KAAKqH,UAAL,GAAkBA,UAAA,IAAc,IAAhC;IAEA,KAAKiU,MAAL,GAAc,IAAAuS,qBAAA,EAAY,KAAK7mB,SAAjB,EAA4B,KAAKwgD,cAAL,CAAoBphD,IAApB,CAAyB,IAAzB,CAA5B,CAAd;IACA,KAAKqhD,UAAL;EATC;EAeHD,eAAA,EAAiB;IACf,KAAK1/C,cAAL,CAAoBgU,qBAApB;EADe;EAIjB3Q,aAAagmB,KAAb,EAAoB;IAClB,OAAO,KAAKu2B,WAAL,CAAiBv2B,KAAjB,CAAP;EADkB;EAOpBw2B,kBAAA,EAAoB;IAClB,OAAO,IAAAp2B,4BAAA,EAAmB;MACxBC,QAAA,EAAU,KAAKxqB,SADS;MAExBoqB,KAAA,EAAO,KAAKs2B;IAFY,CAAnB,CAAP;EADkB;EAOpBr8C,wBAAwBoP,UAAxB,EAAoC;IAClC,IAAI,CAAC,KAAKhc,WAAV,EAAuB;MACrB;IADqB;IAGvB,MAAM+J,aAAA,GAAgB,KAAKk/C,WAAL,CAAiBjtC,UAAA,GAAa,CAA9B,CAAtB;IAEA,IAAI,CAACjS,aAAL,EAAoB;MAClBrF,OAAA,CAAQK,KAAR,CAAc,0DAAd;MACA;IAFkB;IAKpB,IAAIiX,UAAA,KAAe,KAAKwuB,kBAAxB,EAA4C;MAC1C,MAAM2e,iBAAA,GAAoB,KAAKF,WAAL,CAAiB,KAAKze,kBAAL,GAA0B,CAA3C,CAA1B;MAEA2e,iBAAA,CAAkBt3B,GAAlB,CAAsBnsB,SAAtB,CAAgC8E,MAAhC,CAAuCs+C,wBAAvC;MAEA/+C,aAAA,CAAc8nB,GAAd,CAAkBnsB,SAAlB,CAA4BC,GAA5B,CAAgCmjD,wBAAhC;IAL0C;IAO5C,MAAM;MAAEn0B,KAAF;MAASC,IAAT;MAAejC;IAAf,IAAyB,KAAKu2B,iBAAL,EAA/B;IAGA,IAAIv2B,KAAA,CAAM/rB,MAAN,GAAe,CAAnB,EAAsB;MACpB,IAAIwiD,YAAA,GAAe,KAAnB;MACA,IAAIptC,UAAA,IAAc2Y,KAAA,CAAMjqB,EAApB,IAA0BsR,UAAA,IAAc4Y,IAAA,CAAKlqB,EAAjD,EAAqD;QACnD0+C,YAAA,GAAe,IAAf;MADmD,CAArD,MAEO;QACL,WAAW;UAAE1+C,EAAF;UAAMgK;QAAN,CAAX,IAA8Bie,KAA9B,EAAqC;UACnC,IAAIjoB,EAAA,KAAOsR,UAAX,EAAuB;YACrB;UADqB;UAGvBotC,YAAA,GAAe10C,OAAA,GAAU,GAAzB;UACA;QALmC;MADhC;MASP,IAAI00C,YAAJ,EAAkB;QAChB,IAAAj7B,wBAAA,EAAepkB,aAAA,CAAc8nB,GAA7B,EAAkC;UAAEtO,GAAA,EAAKslC;QAAP,CAAlC;MADgB;IAbE;IAkBtB,KAAKre,kBAAL,GAA0BxuB,UAA1B;EAvCkC;EA0CpC,IAAIW,aAAJA,CAAA,EAAoB;IAClB,OAAO,KAAK8tB,cAAZ;EADkB;EAIpB,IAAI9tB,aAAJA,CAAkBvG,QAAlB,EAA4B;IAC1B,IAAI,CAAC,IAAAsG,yBAAA,EAAgBtG,QAAhB,CAAL,EAAgC;MAC9B,MAAM,IAAIjY,KAAJ,CAAU,oCAAV,CAAN;IAD8B;IAGhC,IAAI,CAAC,KAAK6B,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAI,KAAKyqC,cAAL,KAAwBr0B,QAA5B,EAAsC;MACpC;IADoC;IAGtC,KAAKq0B,cAAL,GAAsBr0B,QAAtB;IAEA,MAAMizC,UAAA,GAAa;MAAEjzC;IAAF,CAAnB;IACA,WAAWkzC,SAAX,IAAwB,KAAKL,WAA7B,EAA0C;MACxCK,SAAA,CAAUpxC,MAAV,CAAiBmxC,UAAjB;IADwC;EAbhB;EAkB5B73C,QAAA,EAAU;IACR,WAAW83C,SAAX,IAAwB,KAAKL,WAA7B,EAA0C;MACxC,IAAIK,SAAA,CAAU/8C,cAAV,KAA6BC,yBAAA,CAAgBC,QAAjD,EAA2D;QACzD68C,SAAA,CAAU/3C,KAAV;MADyD;IADnB;IAK1Cg4C,oCAAA,CAAiBC,aAAjB;EANQ;EAYVR,WAAA,EAAa;IACX,KAAKC,WAAL,GAAmB,EAAnB;IACA,KAAKze,kBAAL,GAA0B,CAA1B;IACA,KAAKif,WAAL,GAAmB,IAAnB;IACA,KAAKhf,cAAL,GAAsB,CAAtB;IAGA,KAAKliC,SAAL,CAAeq8B,WAAf,GAA6B,EAA7B;EAPW;EAabxzB,YAAYpR,WAAZ,EAAyB;IACvB,IAAI,KAAKA,WAAT,EAAsB;MACpB,KAAK0pD,gBAAL;MACA,KAAKV,UAAL;IAFoB;IAKtB,KAAKhpD,WAAL,GAAmBA,WAAnB;IACA,IAAI,CAACA,WAAL,EAAkB;MAChB;IADgB;IAGlB,MAAMkV,gBAAA,GAAmBlV,WAAA,CAAYwrC,OAAZ,CAAoB,CAApB,CAAzB;IACA,MAAM9yB,4BAAA,GAA+B1Y,WAAA,CAAY0+C,wBAAZ,EAArC;IAEAxpC,gBAAA,CACG7Q,IADH,CACQslD,YAAA,IAAgB;MACpB,MAAMt6C,UAAA,GAAarP,WAAA,CAAYsP,QAA/B;MACA,MAAMs6C,QAAA,GAAWD,YAAA,CAAaE,WAAb,CAAyB;QAAEpkC,KAAA,EAAO;MAAT,CAAzB,CAAjB;MAEA,KAAK,IAAI4Y,OAAA,GAAU,CAAd,EAAiBA,OAAA,IAAWhvB,UAAjC,EAA6C,EAAEgvB,OAA/C,EAAwD;QACtD,MAAMirB,SAAA,GAAY,IAAIQ,oCAAJ,CAAqB;UACrCvhD,SAAA,EAAW,KAAKA,SADqB;UAErCjH,QAAA,EAAU,KAAKA,QAFsB;UAGrCoJ,EAAA,EAAI2zB,OAHiC;UAIrC0rB,eAAA,EAAiBH,QAAA,CAASI,KAAT,EAJoB;UAKrCtxC,4BALqC;UAMrCxQ,WAAA,EAAa,KAAKA,WANmB;UAOrCmB,cAAA,EAAgB,KAAKA,cAPgB;UAQrC9H,IAAA,EAAM,KAAKA,IAR0B;UASrCqH,UAAA,EAAY,KAAKA;QAToB,CAArB,CAAlB;QAWA,KAAKqgD,WAAL,CAAiB/3C,IAAjB,CAAsBo4C,SAAtB;MAZsD;MAiBxD,KAAKL,WAAL,CAAiB,CAAjB,GAAqBgB,UAArB,CAAgCN,YAAhC;MAGA,MAAM5/C,aAAA,GAAgB,KAAKk/C,WAAL,CAAiB,KAAKze,kBAAL,GAA0B,CAA3C,CAAtB;MACAzgC,aAAA,CAAc8nB,GAAd,CAAkBnsB,SAAlB,CAA4BC,GAA5B,CAAgCmjD,wBAAhC;IAzBoB,CADxB,EA4BGzzC,KA5BH,CA4BSvQ,MAAA,IAAU;MACfJ,OAAA,CAAQK,KAAR,CAAc,uCAAd,EAAuDD,MAAvD;IADe,CA5BnB;EAbuB;EAiDzB4kD,iBAAA,EAAmB;IACjB,WAAWJ,SAAX,IAAwB,KAAKL,WAA7B,EAA0C;MACxCK,SAAA,CAAUY,eAAV;IADwC;EADzB;EASnBzuC,cAAcP,MAAd,EAAsB;IACpB,IAAI,CAAC,KAAKlb,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAI,CAACkb,MAAL,EAAa;MACX,KAAKuuC,WAAL,GAAmB,IAAnB;IADW,CAAb,MAEO,IACL,EAAE9sB,KAAA,CAAMC,OAAN,CAAc1hB,MAAd,KAAyB,KAAKlb,WAAL,CAAiBsP,QAAjB,KAA8B4L,MAAA,CAAOtU,MAA9D,CADG,EAEL;MACA,KAAK6iD,WAAL,GAAmB,IAAnB;MACA/kD,OAAA,CAAQK,KAAR,CAAc,wDAAd;IAFA,CAFK,MAKA;MACL,KAAK0kD,WAAL,GAAmBvuC,MAAnB;IADK;IAIP,KAAK,IAAIxU,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAK,KAAKsiD,WAAL,CAAiBriD,MAAjC,EAAyCF,CAAA,GAAIC,EAAlD,EAAsDD,CAAA,EAAtD,EAA2D;MACzD,KAAKuiD,WAAL,CAAiBviD,CAAjB,EAAoByjD,YAApB,CAAiC,KAAKV,WAAL,GAAmB/iD,CAAnB,KAAyB,IAA1D;IADyD;EAfvC;EAwBtB,MAAM,CAAA0jD,mBAANA,CAA2BC,SAA3B,EAAsC;IACpC,IAAIA,SAAA,CAAU1zC,OAAd,EAAuB;MACrB,OAAO0zC,SAAA,CAAU1zC,OAAjB;IADqB;IAGvB,IAAI;MACF,MAAMA,OAAA,GAAU,MAAM,KAAK3W,WAAL,CAAiBwrC,OAAjB,CAAyB6e,SAAA,CAAU3/C,EAAnC,CAAtB;MACA,IAAI,CAAC2/C,SAAA,CAAU1zC,OAAf,EAAwB;QACtB0zC,SAAA,CAAUJ,UAAV,CAAqBtzC,OAArB;MADsB;MAGxB,OAAOA,OAAP;IALE,CAAJ,CAME,OAAO7R,MAAP,EAAe;MACfJ,OAAA,CAAQK,KAAR,CAAc,mCAAd,EAAmDD,MAAnD;MACA,OAAO,IAAP;IAFe;EAVmB;EAgBtC,CAAAwlD,eAAgB72B,OAAhB,EAAyB;IACvB,IAAIA,OAAA,CAAQkB,KAAR,EAAejqB,EAAf,KAAsB,CAA1B,EAA6B;MAC3B,OAAO,IAAP;IAD2B,CAA7B,MAEO,IAAI+oB,OAAA,CAAQmB,IAAR,EAAclqB,EAAd,KAAqB,KAAKu+C,WAAL,CAAiBriD,MAA1C,EAAkD;MACvD,OAAO,KAAP;IADuD;IAGzD,OAAO,KAAKiW,MAAL,CAAYmT,IAAnB;EANuB;EASzB7jB,eAAA,EAAiB;IACf,MAAMo+C,aAAA,GAAgB,KAAKrB,iBAAL,EAAtB;IACA,MAAMsB,WAAA,GAAc,KAAK,CAAAF,cAAL,CAAqBC,aAArB,CAApB;IACA,MAAMF,SAAA,GAAY,KAAKhhD,cAAL,CAAoBw6C,kBAApB,CAChB0G,aADgB,EAEhB,KAAKtB,WAFW,EAGhBuB,WAHgB,CAAlB;IAKA,IAAIH,SAAJ,EAAe;MACb,KAAK,CAAAD,mBAAL,CAA0BC,SAA1B,EAAqChmD,IAArC,CAA0C,MAAM;QAC9C,KAAKgF,cAAL,CAAoBq7C,UAApB,CAA+B2F,SAA/B;MAD8C,CAAhD;MAGA,OAAO,IAAP;IAJa;IAMf,OAAO,KAAP;EAde;AAhPM;AAnDzBhwD,0BAAA,GAAA2P,kBAAA;;;;;;;;;;;;AC0BA,IAAAlO,SAAA,GAAA/B,mBAAA;AACA,IAAAgC,SAAA,GAAAhC,mBAAA;AAEA,MAAM0wD,mBAAA,GAAsB,CAA5B;AACA,MAAMC,qBAAA,GAAwB,CAA9B;AACA,MAAMC,eAAA,GAAkB,EAAxB;AAmBA,MAAMpB,gBAAN,CAAuB;EACrB,OAAO,CAAAqB,UAAP,GAAqB,IAArB;EAEA,OAAOC,SAAPA,CAAiBt4B,KAAjB,EAAwBC,MAAxB,EAAgC;IAC9B,MAAMo4B,UAAA,GAAc,KAAK,CAAAA,UAAL,KAAqBnrD,QAAA,CAAS8gC,aAAT,CAAuB,QAAvB,CAAzC;IACAqqB,UAAA,CAAWr4B,KAAX,GAAmBA,KAAnB;IACAq4B,UAAA,CAAWp4B,MAAX,GAAoBA,MAApB;IAIA,MAAMs4B,GAAA,GAAMF,UAAA,CAAWG,UAAX,CAAsB,IAAtB,EAA4B;MAAEC,KAAA,EAAO;IAAT,CAA5B,CAAZ;IACAF,GAAA,CAAI95C,IAAJ;IACA85C,GAAA,CAAIG,SAAJ,GAAgB,oBAAhB;IACAH,GAAA,CAAII,QAAJ,CAAa,CAAb,EAAgB,CAAhB,EAAmB34B,KAAnB,EAA0BC,MAA1B;IACAs4B,GAAA,CAAIK,OAAJ;IACA,OAAO,CAACP,UAAD,EAAaA,UAAA,CAAWG,UAAX,CAAsB,IAAtB,CAAb,CAAP;EAZ8B;EAehC,OAAOvB,aAAPA,CAAA,EAAuB;IACrB,MAAMoB,UAAA,GAAa,KAAK,CAAAA,UAAxB;IACA,IAAIA,UAAJ,EAAgB;MAGdA,UAAA,CAAWr4B,KAAX,GAAmB,CAAnB;MACAq4B,UAAA,CAAWp4B,MAAX,GAAoB,CAApB;IAJc;IAMhB,KAAK,CAAAo4B,UAAL,GAAmB,IAAnB;EARqB;AAlBF;AAlDvBvwD,wBAAA,GAAAkvD,gBAAA;AAmFA,MAAMO,gBAAN,CAAuB;EAIrB5rD,YAAY;IACVqK,SADU;IAEVjH,QAFU;IAGVoJ,EAHU;IAIVq/C,eAJU;IAKVrxC,4BALU;IAMVxQ,WANU;IAOVmB,cAPU;IAQV9H,IARU;IASVqH;EATU,CAAZ,EAUG;IACD,KAAK8B,EAAL,GAAUA,EAAV;IACA,KAAKi5C,WAAL,GAAmB,cAAcj5C,EAAjC;IACA,KAAKsc,SAAL,GAAiB,IAAjB;IAEA,KAAKrQ,OAAL,GAAe,IAAf;IACA,KAAKP,QAAL,GAAgB,CAAhB;IACA,KAAKwzC,QAAL,GAAgBG,eAAhB;IACA,KAAKqB,aAAL,GAAqBrB,eAAA,CAAgB3zC,QAArC;IACA,KAAKi1C,6BAAL,GAAqC3yC,4BAAA,IAAgC,IAArE;IACA,KAAK9P,UAAL,GAAkBA,UAAA,IAAc,IAAhC;IAEA,KAAKtH,QAAL,GAAgBA,QAAhB;IACA,KAAK4G,WAAL,GAAmBA,WAAnB;IACA,KAAKmB,cAAL,GAAsBA,cAAtB;IAEA,KAAKiiD,UAAL,GAAkB,IAAlB;IACA,KAAK/+C,cAAL,GAAsBC,yBAAA,CAAgB3O,OAAtC;IACA,KAAK8mD,MAAL,GAAc,IAAd;IACA,KAAKpjD,IAAL,GAAYA,IAAZ;IAEA,MAAM27B,MAAA,GAASz9B,QAAA,CAAS8gC,aAAT,CAAuB,GAAvB,CAAf;IACArD,MAAA,CAAOnZ,IAAP,GAAc7b,WAAA,CAAYwd,YAAZ,CAAyB,WAAWhb,EAApC,CAAd;IACA,KAAK6gD,eAAL,CAAqBlnD,IAArB,CAA0B0J,GAAA,IAAO;MAC/BmvB,MAAA,CAAOl6B,KAAP,GAAe+K,GAAf;IAD+B,CAAjC;IAGAmvB,MAAA,CAAOzB,OAAP,GAAiB,YAAY;MAC3BvzB,WAAA,CAAY+d,QAAZ,CAAqBvb,EAArB;MACA,OAAO,KAAP;IAF2B,CAA7B;IAIA,KAAKwyB,MAAL,GAAcA,MAAd;IAEA,MAAMrL,GAAA,GAAMpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;IACA1O,GAAA,CAAIiU,SAAJ,GAAgB,WAAhB;IACAjU,GAAA,CAAI+E,YAAJ,CAAiB,kBAAjB,EAAqC,KAAKlsB,EAA1C;IACA,KAAKmnB,GAAL,GAAWA,GAAX;IACA,KAAK,CAAA25B,UAAL;IAEA,MAAMC,GAAA,GAAMhsD,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;IACAkrB,GAAA,CAAI3lB,SAAJ,GAAgB,gBAAhB;IACA,KAAK4lB,eAAL,GAAuBD,GAAvB;IAEA55B,GAAA,CAAI4O,MAAJ,CAAWgrB,GAAX;IACAvuB,MAAA,CAAOuD,MAAP,CAAc5O,GAAd;IACAtpB,SAAA,CAAUk4B,MAAV,CAAiBvD,MAAjB;EA5CC;EA+CH,CAAAsuB,WAAA,EAAc;IACZ,MAAM;MAAEj5B,KAAF;MAASC;IAAT,IAAoB,KAAKo3B,QAA/B;IACA,MAAM+B,KAAA,GAAQp5B,KAAA,GAAQC,MAAtB;IAEA,KAAKo5B,WAAL,GAAmBjB,eAAnB;IACA,KAAKkB,YAAL,GAAqB,KAAKD,WAAL,GAAmBD,KAApB,GAA6B,CAAjD;IACA,KAAKlmC,KAAL,GAAa,KAAKmmC,WAAL,GAAmBr5B,KAAhC;IAEA,MAAM;MAAEkD;IAAF,IAAY,KAAK5D,GAAvB;IACA4D,KAAA,CAAMM,WAAN,CAAkB,mBAAlB,EAAuC,GAAG,KAAK61B,WAAY,IAA3D;IACAn2B,KAAA,CAAMM,WAAN,CAAkB,oBAAlB,EAAwC,GAAG,KAAK81B,YAAa,IAA7D;EAVY;EAad5B,WAAWtzC,OAAX,EAAoB;IAClB,KAAKA,OAAL,GAAeA,OAAf;IACA,KAAKy0C,aAAL,GAAqBz0C,OAAA,CAAQsb,MAA7B;IACA,MAAM65B,aAAA,GAAiB,MAAK11C,QAAL,GAAgB,KAAKg1C,aAArB,IAAsC,GAA7D;IACA,KAAKxB,QAAL,GAAgBjzC,OAAA,CAAQkzC,WAAR,CAAoB;MAAEpkC,KAAA,EAAO,CAAT;MAAYrP,QAAA,EAAU01C;IAAtB,CAApB,CAAhB;IACA,KAAKv6C,KAAL;EALkB;EAQpBA,MAAA,EAAQ;IACN,KAAK24C,eAAL;IACA,KAAK39C,cAAL,GAAsBC,yBAAA,CAAgB3O,OAAtC;IAEA,KAAKg0B,GAAL,CAASk6B,eAAT,CAAyB,aAAzB;IACA,KAAKC,KAAL,EAAYC,WAAZ,CAAwB,KAAKP,eAA7B;IACA,KAAK,CAAAF,UAAL;IAEA,IAAI,KAAKQ,KAAT,EAAgB;MACd,KAAKA,KAAL,CAAWD,eAAX,CAA2B,KAA3B;MACA,OAAO,KAAKC,KAAZ;IAFc;EARV;EAcR9zC,OAAO;IAAE9B,QAAA,GAAW;EAAb,CAAP,EAA4B;IAC1B,IAAI,OAAOA,QAAP,KAAoB,QAAxB,EAAkC;MAChC,KAAKA,QAAL,GAAgBA,QAAhB;IADgC;IAGlC,MAAM01C,aAAA,GAAiB,MAAK11C,QAAL,GAAgB,KAAKg1C,aAArB,IAAsC,GAA7D;IACA,KAAKxB,QAAL,GAAgB,KAAKA,QAAL,CAAcI,KAAd,CAAoB;MAClCvkC,KAAA,EAAO,CAD2B;MAElCrP,QAAA,EAAU01C;IAFwB,CAApB,CAAhB;IAIA,KAAKv6C,KAAL;EAT0B;EAgB5B24C,gBAAA,EAAkB;IAChB,IAAI,KAAKoB,UAAT,EAAqB;MACnB,KAAKA,UAAL,CAAgB9mB,MAAhB;MACA,KAAK8mB,UAAL,GAAkB,IAAlB;IAFmB;IAIrB,KAAK3G,MAAL,GAAc,IAAd;EALgB;EAWlBuH,oBAAoBC,aAAA,GAAgB,CAApC,EAAuC;IAGrC,MAAMC,MAAA,GAAS3sD,QAAA,CAAS8gC,aAAT,CAAuB,QAAvB,CAAf;IACA,MAAMuqB,GAAA,GAAMsB,MAAA,CAAOrB,UAAP,CAAkB,IAAlB,EAAwB;MAAEC,KAAA,EAAO;IAAT,CAAxB,CAAZ;IACA,MAAMqB,WAAA,GAAc,IAAIv+B,qBAAJ,EAApB;IAEAs+B,MAAA,CAAO75B,KAAP,GAAgB45B,aAAA,GAAgB,KAAKP,WAArB,GAAmCS,WAAA,CAAYr+B,EAAhD,GAAsD,CAArE;IACAo+B,MAAA,CAAO55B,MAAP,GAAiB25B,aAAA,GAAgB,KAAKN,YAArB,GAAoCQ,WAAA,CAAYp+B,EAAjD,GAAuD,CAAvE;IAEA,MAAMq+B,SAAA,GAAYD,WAAA,CAAYn+B,MAAZ,GACd,CAACm+B,WAAA,CAAYr+B,EAAb,EAAiB,CAAjB,EAAoB,CAApB,EAAuBq+B,WAAA,CAAYp+B,EAAnC,EAAuC,CAAvC,EAA0C,CAA1C,CADc,GAEd,IAFJ;IAIA,OAAO;MAAE68B,GAAF;MAAOsB,MAAP;MAAeE;IAAf,CAAP;EAdqC;EAoBvCC,sBAAsBH,MAAtB,EAA8B;IAC5B,IAAI,KAAK7/C,cAAL,KAAwBC,yBAAA,CAAgBC,QAA5C,EAAsD;MACpD,MAAM,IAAItO,KAAJ,CAAU,oDAAV,CAAN;IADoD;IAGtD,MAAMquD,aAAA,GAAgB,KAAKC,YAAL,CAAkBL,MAAlB,CAAtB;IAEA,MAAMJ,KAAA,GAAQvsD,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAd;IACAyrB,KAAA,CAAMlmB,SAAN,GAAkB,gBAAlB;IACA,KAAK4mB,gBAAL,CAAsBroD,IAAtB,CAA2B0J,GAAA,IAAO;MAChCi+C,KAAA,CAAMp1B,YAAN,CAAmB,YAAnB,EAAiC7oB,GAAjC;IADgC,CAAlC;IAGAi+C,KAAA,CAAMW,GAAN,GAAYH,aAAA,CAAcI,SAAd,EAAZ;IACA,KAAKZ,KAAL,GAAaA,KAAb;IAEA,KAAKn6B,GAAL,CAAS+E,YAAT,CAAsB,aAAtB,EAAqC,IAArC;IACA,KAAK80B,eAAL,CAAqBO,WAArB,CAAiCD,KAAjC;IAIAQ,aAAA,CAAcj6B,KAAd,GAAsB,CAAtB;IACAi6B,aAAA,CAAch6B,MAAd,GAAuB,CAAvB;EApB4B;EAuB9B,MAAM,CAAAq6B,gBAANA,CAAwBvB,UAAxB,EAAoCc,MAApC,EAA4CrnD,KAAA,GAAQ,IAApD,EAA0D;IAIxD,IAAIumD,UAAA,KAAe,KAAKA,UAAxB,EAAoC;MAClC,KAAKA,UAAL,GAAkB,IAAlB;IADkC;IAIpC,IAAIvmD,KAAA,YAAiB+/C,qCAArB,EAAkD;MAChD;IADgD;IAGlD,KAAKv4C,cAAL,GAAsBC,yBAAA,CAAgBC,QAAtC;IACA,KAAK8/C,qBAAL,CAA2BH,MAA3B;IAEA,IAAIrnD,KAAJ,EAAW;MACT,MAAMA,KAAN;IADS;EAd6C;EAmB1D,MAAM6/C,IAANA,CAAA,EAAa;IACX,IAAI,KAAKr4C,cAAL,KAAwBC,yBAAA,CAAgB3O,OAA5C,EAAqD;MACnD6G,OAAA,CAAQK,KAAR,CAAc,qCAAd;MACA,OAAOgO,SAAP;IAFmD;IAIrD,MAAM;MAAE4D;IAAF,IAAc,IAApB;IAEA,IAAI,CAACA,OAAL,EAAc;MACZ,KAAKpK,cAAL,GAAsBC,yBAAA,CAAgBC,QAAtC;MACA,MAAM,IAAItO,KAAJ,CAAU,uBAAV,CAAN;IAFY;IAKd,KAAKoO,cAAL,GAAsBC,yBAAA,CAAgB0a,OAAtC;IAOA,MAAM;MAAE4jC,GAAF;MAAOsB,MAAP;MAAeE;IAAf,IACJ,KAAKJ,mBAAL,CAAyBzB,mBAAzB,CADF;IAEA,MAAMqC,YAAA,GAAe,KAAKlD,QAAL,CAAcI,KAAd,CAAoB;MACvCvkC,KAAA,EAAOglC,mBAAA,GAAsB,KAAKhlC;IADK,CAApB,CAArB;IAGA,MAAMsnC,sBAAA,GAAyBC,IAAA,IAAQ;MACrC,IAAI,CAAC,KAAK3jD,cAAL,CAAoBq6C,iBAApB,CAAsC,IAAtC,CAAL,EAAkD;QAChD,KAAKn3C,cAAL,GAAsBC,yBAAA,CAAgBwgB,MAAtC;QACA,KAAK23B,MAAL,GAAc,MAAM;UAClB,KAAKp4C,cAAL,GAAsBC,yBAAA,CAAgB0a,OAAtC;UACA8lC,IAAA;QAFkB,CAApB;QAIA;MANgD;MAQlDA,IAAA;IATqC,CAAvC;IAYA,MAAMC,aAAA,GAAgB;MACpBC,aAAA,EAAepC,GADK;MAEpBwB,SAFoB;MAGpB1C,QAAA,EAAUkD,YAHU;MAIpBp0C,4BAAA,EAA8B,KAAK2yC,6BAJf;MAKpBziD,UAAA,EAAY,KAAKA;IALG,CAAtB;IAOA,MAAM0iD,UAAA,GAAc,KAAKA,UAAL,GAAkB30C,OAAA,CAAQ4B,MAAR,CAAe00C,aAAf,CAAtC;IACA3B,UAAA,CAAW6B,UAAX,GAAwBJ,sBAAxB;IAEA,MAAMK,aAAA,GAAgB9B,UAAA,CAAW78C,OAAX,CAAmBpK,IAAnB,CACpB,MAAM,KAAK,CAAAwoD,gBAAL,CAAuBvB,UAAvB,EAAmCc,MAAnC,CADc,EAEpBrnD,KAAA,IAAS,KAAK,CAAA8nD,gBAAL,CAAuBvB,UAAvB,EAAmCc,MAAnC,EAA2CrnD,KAA3C,CAFW,CAAtB;IAIAqoD,aAAA,CAAcvI,OAAd,CAAsB,MAAM;MAG1BuH,MAAA,CAAO75B,KAAP,GAAe,CAAf;MACA65B,MAAA,CAAO55B,MAAP,GAAgB,CAAhB;MAEA,KAAKlxB,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;QAC1CC,MAAA,EAAQ,IADkC;QAE1CyX,UAAA,EAAY,KAAKtR,EAFyB;QAG1CiM,OAAA,EAAS,KAAKA;MAH4B,CAA5C;IAN0B,CAA5B;IAaA,OAAOy2C,aAAP;EA/DW;EAkEbzgD,SAASN,QAAT,EAAmB;IACjB,IAAI,KAAKE,cAAL,KAAwBC,yBAAA,CAAgB3O,OAA5C,EAAqD;MACnD;IADmD;IAGrD,MAAM;MAAEwvD,eAAA,EAAiBjB,MAAnB;MAA2Bz1C,OAA3B;MAAoC8O;IAApC,IAA8CpZ,QAApD;IACA,IAAI,CAAC+/C,MAAL,EAAa;MACX;IADW;IAGb,IAAI,CAAC,KAAKz1C,OAAV,EAAmB;MACjB,KAAKszC,UAAL,CAAgBtzC,OAAhB;IADiB;IAGnB,IAAI8O,KAAA,GAAQ,KAAKA,KAAjB,EAAwB;MAEtB;IAFsB;IAIxB,KAAKlZ,cAAL,GAAsBC,yBAAA,CAAgBC,QAAtC;IACA,KAAK8/C,qBAAL,CAA2BH,MAA3B;EAhBiB;EAsBnBK,aAAahB,GAAb,EAAkB;IAChB,MAAM;MAAEX,GAAF;MAAOsB;IAAP,IAAkB,KAAKF,mBAAL,EAAxB;IAEA,IAAIT,GAAA,CAAIl5B,KAAJ,IAAa,IAAI65B,MAAA,CAAO75B,KAA5B,EAAmC;MACjCu4B,GAAA,CAAIwC,SAAJ,CACE7B,GADF,EAEE,CAFF,EAGE,CAHF,EAIEA,GAAA,CAAIl5B,KAJN,EAKEk5B,GAAA,CAAIj5B,MALN,EAME,CANF,EAOE,CAPF,EAQE45B,MAAA,CAAO75B,KART,EASE65B,MAAA,CAAO55B,MATT;MAWA,OAAO45B,MAAP;IAZiC;IAenC,IAAImB,YAAA,GAAenB,MAAA,CAAO75B,KAAP,IAAgBm4B,qBAAnC;IACA,IAAI8C,aAAA,GAAgBpB,MAAA,CAAO55B,MAAP,IAAiBk4B,qBAArC;IACA,MAAM,CAAC+C,YAAD,EAAeC,eAAf,IAAkCnE,gBAAA,CAAiBsB,SAAjB,CACtC0C,YADsC,EAEtCC,aAFsC,CAAxC;IAKA,OAAOD,YAAA,GAAe9B,GAAA,CAAIl5B,KAAnB,IAA4Bi7B,aAAA,GAAgB/B,GAAA,CAAIj5B,MAAvD,EAA+D;MAC7D+6B,YAAA,KAAiB,CAAjB;MACAC,aAAA,KAAkB,CAAlB;IAF6D;IAI/DE,eAAA,CAAgBJ,SAAhB,CACE7B,GADF,EAEE,CAFF,EAGE,CAHF,EAIEA,GAAA,CAAIl5B,KAJN,EAKEk5B,GAAA,CAAIj5B,MALN,EAME,CANF,EAOE,CAPF,EAQE+6B,YARF,EASEC,aATF;IAWA,OAAOD,YAAA,GAAe,IAAInB,MAAA,CAAO75B,KAAjC,EAAwC;MACtCm7B,eAAA,CAAgBJ,SAAhB,CACEG,YADF,EAEE,CAFF,EAGE,CAHF,EAIEF,YAJF,EAKEC,aALF,EAME,CANF,EAOE,CAPF,EAQED,YAAA,IAAgB,CARlB,EASEC,aAAA,IAAiB,CATnB;MAWAD,YAAA,KAAiB,CAAjB;MACAC,aAAA,KAAkB,CAAlB;IAbsC;IAexC1C,GAAA,CAAIwC,SAAJ,CACEG,YADF,EAEE,CAFF,EAGE,CAHF,EAIEF,YAJF,EAKEC,aALF,EAME,CANF,EAOE,CAPF,EAQEpB,MAAA,CAAO75B,KART,EASE65B,MAAA,CAAO55B,MATT;IAWA,OAAO45B,MAAP;EAlEgB;EAqElB,IAAIb,eAAJA,CAAA,EAAsB;IACpB,OAAO,KAAKhqD,IAAL,CAAUmC,GAAV,CAAc,kBAAd,EAAkC;MACvC6L,IAAA,EAAM,KAAKyX,SAAL,IAAkB,KAAKtc;IADU,CAAlC,CAAP;EADoB;EAMtB,IAAIgiD,gBAAJA,CAAA,EAAuB;IACrB,OAAO,KAAKnrD,IAAL,CAAUmC,GAAV,CAAc,mBAAd,EAAmC;MACxC6L,IAAA,EAAM,KAAKyX,SAAL,IAAkB,KAAKtc;IADW,CAAnC,CAAP;EADqB;EASvBy/C,aAAa5uC,KAAb,EAAoB;IAClB,KAAKyL,SAAL,GAAiB,OAAOzL,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC,IAArD;IAEA,KAAKgwC,eAAL,CAAqBlnD,IAArB,CAA0B0J,GAAA,IAAO;MAC/B,KAAKmvB,MAAL,CAAYl6B,KAAZ,GAAoB+K,GAApB;IAD+B,CAAjC;IAIA,IAAI,KAAKxB,cAAL,KAAwBC,yBAAA,CAAgBC,QAA5C,EAAsD;MACpD;IADoD;IAItD,KAAKigD,gBAAL,CAAsBroD,IAAtB,CAA2B0J,GAAA,IAAO;MAChC,KAAKi+C,KAAL,EAAYp1B,YAAZ,CAAyB,YAAzB,EAAuC7oB,GAAvC;IADgC,CAAlC;EAXkB;AArWC;AAnFvB1T,wBAAA,GAAAyvD,gBAAA;;;;;;;;;;;;AC8BA,IAAA/tD,SAAA,GAAAhC,mBAAA;AASA,IAAA+B,SAAA,GAAA/B,mBAAA;AAyBA,IAAA4zD,WAAA,GAAA5zD,mBAAA;AACA,IAAA6zD,cAAA,GAAA7zD,mBAAA;AACA,IAAAiD,oBAAA,GAAAjD,mBAAA;AACA,IAAAmC,iBAAA,GAAAnC,mBAAA;AAEA,MAAM8zD,kBAAA,GAAqB,EAA3B;AAEA,MAAMC,eAAA,GAAkB;EACtBC,sBAAA,EAAwB,KADF;EAEtBC,oBAAA,EAAsB,IAFA;EAGtBC,qBAAA,EAAuB;AAHD,CAAxB;AAvEA5zD,uBAAA,GAAAyzD,eAAA;AA6EA,SAASI,2BAATA,CAAqCppC,IAArC,EAA2C;EACzC,OACE5iB,MAAA,CAAOmE,MAAP,CAAciE,8BAAd,EAAoChE,QAApC,CAA6Cwe,IAA7C,KACAA,IAAA,KAASxa,8BAAA,CAAqB7E,OAFhC;AADyC;AAkD3C,MAAM0oD,iBAAN,CAAwB;EAEtB,CAAAC,GAAA,GAAO,IAAIz6B,GAAJ,EAAP;EAEA,CAAA7iB,IAAA,GAAQ,CAAR;EAEA5S,YAAY4S,IAAZ,EAAkB;IAChB,KAAK,CAAAA,IAAL,GAAaA,IAAb;EADgB;EAIlBI,KAAK6T,IAAL,EAAW;IACT,MAAMqpC,GAAA,GAAM,KAAK,CAAAA,GAAjB;IACA,IAAIA,GAAA,CAAI7oD,GAAJ,CAAQwf,IAAR,CAAJ,EAAmB;MACjBqpC,GAAA,CAAIpW,MAAJ,CAAWjzB,IAAX;IADiB;IAGnBqpC,GAAA,CAAIzoD,GAAJ,CAAQof,IAAR;IAEA,IAAIqpC,GAAA,CAAIt9C,IAAJ,GAAW,KAAK,CAAAA,IAApB,EAA2B;MACzB,KAAK,CAAAu9C,gBAAL;IADyB;EAPlB;EAmBXC,OAAOC,OAAP,EAAgBC,SAAA,GAAY,IAA5B,EAAkC;IAChC,KAAK,CAAA19C,IAAL,GAAay9C,OAAb;IAEA,MAAMH,GAAA,GAAM,KAAK,CAAAA,GAAjB;IACA,IAAII,SAAJ,EAAe;MACb,MAAM7nD,EAAA,GAAKynD,GAAA,CAAIt9C,IAAf;MACA,IAAIpK,CAAA,GAAI,CAAR;MACA,WAAWqe,IAAX,IAAmBqpC,GAAnB,EAAwB;QACtB,IAAII,SAAA,CAAUjpD,GAAV,CAAcwf,IAAA,CAAKra,EAAnB,CAAJ,EAA4B;UAC1B0jD,GAAA,CAAIpW,MAAJ,CAAWjzB,IAAX;UACAqpC,GAAA,CAAIzoD,GAAJ,CAAQof,IAAR;QAF0B;QAI5B,IAAI,EAAEre,CAAF,GAAMC,EAAV,EAAc;UACZ;QADY;MALQ;IAHX;IAcf,OAAOynD,GAAA,CAAIt9C,IAAJ,GAAW,KAAK,CAAAA,IAAvB,EAA8B;MAC5B,KAAK,CAAAu9C,gBAAL;IAD4B;EAlBE;EAuBlC9oD,IAAIwf,IAAJ,EAAU;IACR,OAAO,KAAK,CAAAqpC,GAAL,CAAU7oD,GAAV,CAAcwf,IAAd,CAAP;EADQ;EAIV,CAAC0pC,MAAA,CAAOC,QAAR,IAAoB;IAClB,OAAO,KAAK,CAAAN,GAAL,CAAUt0B,IAAV,EAAP;EADkB;EAIpB,CAAAu0B,iBAAA,EAAoB;IAClB,MAAMM,SAAA,GAAY,KAAK,CAAAP,GAAL,CAAUt0B,IAAV,GAAiB80B,IAAjB,GAAwBthD,KAA1C;IAEAqhD,SAAA,EAAWx9C,OAAX;IACA,KAAK,CAAAi9C,GAAL,CAAUpW,MAAV,CAAiB2W,SAAjB;EAJkB;AA5DE;AA/HxBt0D,yBAAA,GAAA8zD,iBAAA;AAsMA,MAAM/kD,SAAN,CAAgB;EACd,CAAAylD,MAAA,GAAU,IAAV;EAEA,CAAA5lD,cAAA,GAAkB,IAAlB;EAEA,CAAAR,oBAAA,GAAwB6B,8BAAA,CAAqB1G,IAA7C;EAEA,CAAAkrD,yBAAA,GAA6B,IAA7B;EAEA,CAAAtlD,cAAA,GAAkBulD,wBAAA,CAAeC,YAAjC;EAEA,CAAAvrC,gBAAA,GAAoB,IAApB;EAEA,CAAAwrC,iBAAA,GAAqB,IAArB;EAEA,CAAArlD,iBAAA,GAAqB,KAArB;EAEA,CAAAslD,oBAAA,GAAwB,KAAxB;EAEA,CAAAC,iBAAA,GAAqB,IAArB;EAEA,CAAAC,sBAAA,GAA0B,KAA1B;EAEA,CAAAC,uBAAA,GAA2B,CAA3B;EAEA,CAAAC,cAAA,GAAkB,IAAIC,cAAJ,CAAmB,KAAK,CAAAC,sBAAL,CAA6B7nD,IAA7B,CAAkC,IAAlC,CAAnB,CAAlB;EAEA,CAAA8nD,mBAAA,GAAuB,IAAvB;EAEA,CAAAC,kBAAA,GAAsB,IAAtB;EAEA,CAAAC,cAAA,GAAkB,IAAlB;EAEA,CAAApmD,aAAA,GAAiB/D,uBAAA,CAAc6nB,MAA/B;EAKAnvB,YAAYQ,OAAZ,EAAqB;IACnB,MAAMkxD,aAAA,GAC8B,UADpC;IAEA,IAAIx7C,iBAAA,KAAYw7C,aAAhB,EAA+B;MAC7B,MAAM,IAAIzxD,KAAJ,CACH,oBAAmBiW,iBAAQ,wCAAuCw7C,aAAc,IAD7E,CAAN;IAD6B;IAK/B,KAAKrnD,SAAL,GAAiB7J,OAAA,CAAQ6J,SAAzB;IACA,KAAKC,MAAL,GAAc9J,OAAA,CAAQ8J,MAAR,IAAkB9J,OAAA,CAAQ6J,SAAR,CAAkBg/B,iBAAlD;IAGE,IAAI,KAAKh/B,SAAL,EAAgBijB,OAAhB,KAA4B,KAA5B,IAAqC,KAAKhjB,MAAL,EAAagjB,OAAb,KAAyB,KAAlE,EAAyE;MACvE,MAAM,IAAIrtB,KAAJ,CAAU,6CAAV,CAAN;IADuE;IAIzE,IACE,KAAKoK,SAAL,CAAegmB,YAAf,IACAW,gBAAA,CAAiB,KAAK3mB,SAAtB,EAAiCg0C,QAAjC,KAA8C,UAFhD,EAGE;MACA,MAAM,IAAIp+C,KAAJ,CAAU,gDAAV,CAAN;IADA;IAIJ,KAAK,CAAAmxD,cAAL,CAAqBO,OAArB,CAA6B,KAAKtnD,SAAlC;IAEA,KAAKjH,QAAL,GAAgB5C,OAAA,CAAQ4C,QAAxB;IACA,KAAK4G,WAAL,GAAmBxJ,OAAA,CAAQwJ,WAAR,IAAuB,IAAI22B,mCAAJ,EAA1C;IACA,KAAK59B,eAAL,GAAuBvC,OAAA,CAAQuC,eAAR,IAA2B,IAAlD;IACA,KAAK+G,cAAL,GAAsBtJ,OAAA,CAAQsJ,cAAR,IAA0B,IAAhD;IACA,KAAK,CAAAiB,cAAL,GAAuBvK,OAAA,CAAQuK,cAAR,IAA0B,IAAjD;IAEA,IAAI,KAAKjB,cAAT,EAAyB;MACvB,KAAKA,cAAL,CAAoBorC,eAApB,GAAsCp3B,UAAA,IACpC,KAAK8zC,gBAAL,GAAwBp8B,GAAxB,CAA4BnuB,GAA5B,CAAgCyW,UAAhC,CADF;IADuB;IAIzB,KAAK+zC,iBAAL,GAAyBrxD,OAAA,CAAQ4K,gBAAR,IAA4B,IAArD;IACA,KAAK,CAAAC,aAAL,GAAsB7K,OAAA,CAAQ6K,aAAR,IAAyB/D,uBAAA,CAAc6nB,MAA7D;IACA,KAAK,CAAA7jB,cAAL,GACE9K,OAAA,CAAQ8K,cAAR,IAA0BulD,wBAAA,CAAeC,YAD3C;IAEA,KAAK,CAAAvmD,oBAAL,GACE/J,OAAA,CAAQ+J,oBAAR,IAAgC6B,8BAAA,CAAqB1G,IADvD;IAEA,KAAK6F,kBAAL,GAA0B/K,OAAA,CAAQ+K,kBAAR,IAA8B,EAAxD;IACA,KAAKC,qBAAL,GAA6BhL,OAAA,CAAQgL,qBAAR,IAAiC,KAA9D;IAEE,KAAKsmD,iBAAL,GAAyBtxD,OAAA,CAAQsxD,iBAAR,IAA6B,KAAtD;IAEA,IAAItxD,OAAA,CAAQuxD,cAAZ,EAA4B;MAC1BvrD,OAAA,CAAQK,KAAR,CACE,uEADF;MAGArG,OAAA,CAAQiL,eAAR,GAA0B,CAA1B;IAJ0B;IAO9B,KAAKjB,0BAAL,GACEhK,OAAA,CAAQgK,0BAAR,IAAsC,IADxC;IAEA,KAAKiB,eAAL,GAAuBjL,OAAA,CAAQiL,eAA/B;IACA,KAAKpI,IAAL,GAAY7C,OAAA,CAAQ6C,IAAR,IAAgB2uD,oBAA5B;IACA,KAAK,CAAAtmD,iBAAL,GAA0BlL,OAAA,CAAQkL,iBAAR,IAA6B,KAAvD;IACA,KAAKhB,UAAL,GAAkBlK,OAAA,CAAQkK,UAAR,IAAsB,IAAxC;IAEA,KAAKunD,qBAAL,GAA6B,CAACzxD,OAAA,CAAQ2K,cAAtC;IACA,IAEE,KAAK8mD,qBAFP,EAGE;MAEA,KAAK9mD,cAAL,GAAsB,IAAI7B,sCAAJ,EAAtB;MACA,KAAK6B,cAAL,CAAoBQ,SAApB,CAA8B,IAA9B;IAHA,CAHF,MAOO;MACL,KAAKR,cAAL,GAAsB3K,OAAA,CAAQ2K,cAA9B;IADK;IAIP,KAAKwT,MAAL,GAAc,IAAAuS,qBAAA,EAAY,KAAK7mB,SAAjB,EAA4B,KAAK6nD,aAAL,CAAmBzoD,IAAnB,CAAwB,IAAxB,CAA5B,CAAd;IACA,KAAK2d,qBAAL,GAA6B2H,+BAAA,CAAsBtvB,OAAnD;IACA,KAAK0yD,aAAL,GAAqB,KAAKC,YAAL,GAAoB,IAAzC;IACA,KAAKtH,UAAL;IAEA,IAEE,KAAKgH,iBAFP,EAGE;MACA,KAAKxnD,MAAL,CAAY9C,SAAZ,CAAsBC,GAAtB,CAA0B,mBAA1B;IADA;IAIF,KAAK,CAAA4qD,wBAAL;IAIA,KAAKjvD,QAAL,CAAcwX,GAAd,CAAkB,mBAAlB,EAAuC,CAAC;MAAEkD,UAAF;MAAcrF;IAAd,CAAD,KAA6B;MAClE,MAAMtK,QAAA,GAAW,KAAKmkD,MAAL,CAAYx0C,UAAA,GAAa,CAAzB,CAAjB;MACA,IAAI,CAAC,KAAK,CAAA6yC,MAAL,CAAatpD,GAAb,CAAiB8G,QAAjB,CAAL,EAAiC;QAC/BsK,OAAA,EAASnF,OAAT;MAD+B;IAFiC,CAApE;EAxFmB;EAgGrB,IAAInC,UAAJA,CAAA,EAAiB;IACf,OAAO,KAAKmhD,MAAL,CAAY5pD,MAAnB;EADe;EAIjB+d,YAAY+N,KAAZ,EAAmB;IACjB,OAAO,KAAK89B,MAAL,CAAY99B,KAAZ,CAAP;EADiB;EAInBpmB,mBAAA,EAAqB;IACnB,OAAO,IAAIqnB,GAAJ,CAAQ,KAAK,CAAAk7B,MAAb,CAAP;EADmB;EAOrB,IAAIrxC,cAAJA,CAAA,EAAqB;IAGnB,OACE,KAAKizC,gBAAL,CAAsBliD,OAAtB,IACA,KAAKiiD,MAAL,CAAYE,KAAZ,CAAkBrkD,QAAA,IAAYA,QAAA,EAAUsK,OAAxC,CAFF;EAHmB;EAYrB,IAAIqE,WAAJA,CAAA,EAAkB;IAChB,OAAO,KAAK,CAAAxR,cAAL,KAAyBulD,wBAAA,CAAeC,YAA/C;EADgB;EAOlB,IAAI11C,eAAJA,CAAA,EAAsB;IACpB,OAAO,CAAC,CAAC,KAAKy2C,iBAAd;EADoB;EAOtB,IAAIljD,iBAAJA,CAAA,EAAwB;IACtB,OAAO,KAAK29B,kBAAZ;EADsB;EAOxB,IAAI39B,iBAAJA,CAAsB2C,GAAtB,EAA2B;IACzB,IAAI,CAAC6lB,MAAA,CAAOC,SAAP,CAAiB9lB,GAAjB,CAAL,EAA4B;MAC1B,MAAM,IAAIrR,KAAJ,CAAU,sBAAV,CAAN;IAD0B;IAG5B,IAAI,CAAC,KAAK6B,WAAV,EAAuB;MACrB;IADqB;IAIvB,IAAI,CAAC,KAAK2wD,qBAAL,CAA2BnhD,GAA3B,EAA6D,IAA7D,CAAL,EAAyE;MACvE9K,OAAA,CAAQK,KAAR,CAAe,uBAAsByK,GAAI,wBAAzC;IADuE;EARhD;EAiB3BmhD,sBAAsBnhD,GAAtB,EAA2BohD,oBAAA,GAAuB,KAAlD,EAAyD;IACvD,IAAI,KAAKpmB,kBAAL,KAA4Bh7B,GAAhC,EAAqC;MACnC,IAAIohD,oBAAJ,EAA0B;QACxB,KAAK,CAAAA,oBAAL;MADwB;MAG1B,OAAO,IAAP;IAJmC;IAOrC,IAAI,EAAE,IAAIphD,GAAJ,IAAWA,GAAA,IAAO,KAAKH,UAAvB,CAAN,EAA0C;MACxC,OAAO,KAAP;IADwC;IAG1C,MAAMqX,QAAA,GAAW,KAAK8jB,kBAAtB;IACA,KAAKA,kBAAL,GAA0Bh7B,GAA1B;IAEA,KAAKlO,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;MACrCC,MAAA,EAAQ,IAD6B;MAErCyX,UAAA,EAAYxM,GAFyB;MAGrCwX,SAAA,EAAW,KAAKyiC,WAAL,GAAmBj6C,GAAA,GAAM,CAAzB,KAA+B,IAHL;MAIrCkX;IAJqC,CAAvC;IAOA,IAAIkqC,oBAAJ,EAA0B;MACxB,KAAK,CAAAA,oBAAL;IADwB;IAG1B,OAAO,IAAP;EAxBuD;EA+BzD,IAAIj1C,gBAAJA,CAAA,EAAuB;IACrB,OAAO,KAAK8tC,WAAL,GAAmB,KAAKjf,kBAAL,GAA0B,CAA7C,KAAmD,IAA1D;EADqB;EAOvB,IAAI7uB,gBAAJA,CAAqBnM,GAArB,EAA0B;IACxB,IAAI,CAAC,KAAKxP,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAIuP,IAAA,GAAOC,GAAA,GAAM,CAAjB;IACA,IAAI,KAAKi6C,WAAT,EAAsB;MACpB,MAAM/iD,CAAA,GAAI,KAAK+iD,WAAL,CAAiBoH,OAAjB,CAAyBrhD,GAAzB,CAAV;MACA,IAAI9I,CAAA,IAAK,CAAT,EAAY;QACV6I,IAAA,GAAO7I,CAAA,GAAI,CAAX;MADU;IAFQ;IAOtB,IAAI,CAAC,KAAKiqD,qBAAL,CAA2BphD,IAA3B,EAA8D,IAA9D,CAAL,EAA0E;MACxE7K,OAAA,CAAQK,KAAR,CAAe,sBAAqByK,GAAI,wBAAxC;IADwE;EAZlD;EAoB1B,IAAI8T,YAAJA,CAAA,EAAmB;IACjB,OAAO,KAAKwtC,aAAL,KAAuBlkC,uBAAvB,GACH,KAAKkkC,aADF,GAEHtkC,uBAFJ;EADiB;EASnB,IAAIlJ,YAAJA,CAAiB9T,GAAjB,EAAsB;IACpB,IAAIsmB,KAAA,CAAMtmB,GAAN,CAAJ,EAAgB;MACd,MAAM,IAAIrR,KAAJ,CAAU,wBAAV,CAAN;IADc;IAGhB,IAAI,CAAC,KAAK6B,WAAV,EAAuB;MACrB;IADqB;IAGvB,KAAK,CAAA+wD,QAAL,CAAevhD,GAAf,EAAoB;MAAEwhD,QAAA,EAAU;IAAZ,CAApB;EAPoB;EAatB,IAAI7hD,iBAAJA,CAAA,EAAwB;IACtB,OAAO,KAAK8hD,kBAAZ;EADsB;EAOxB,IAAI9hD,iBAAJA,CAAsBK,GAAtB,EAA2B;IACzB,IAAI,CAAC,KAAKxP,WAAV,EAAuB;MACrB;IADqB;IAGvB,KAAK,CAAA+wD,QAAL,CAAevhD,GAAf,EAAoB;MAAEwhD,QAAA,EAAU;IAAZ,CAApB;EAJyB;EAU3B,IAAIr0C,aAAJA,CAAA,EAAoB;IAClB,OAAO,KAAK8tB,cAAZ;EADkB;EAOpB,IAAI9tB,aAAJA,CAAkBvG,QAAlB,EAA4B;IAC1B,IAAI,CAAC,IAAAsG,yBAAA,EAAgBtG,QAAhB,CAAL,EAAgC;MAC9B,MAAM,IAAIjY,KAAJ,CAAU,+BAAV,CAAN;IAD8B;IAGhC,IAAI,CAAC,KAAK6B,WAAV,EAAuB;MACrB;IADqB;IAIvBoW,QAAA,IAAY,GAAZ;IACA,IAAIA,QAAA,GAAW,CAAf,EAAkB;MAChBA,QAAA,IAAY,GAAZ;IADgB;IAGlB,IAAI,KAAKq0B,cAAL,KAAwBr0B,QAA5B,EAAsC;MACpC;IADoC;IAGtC,KAAKq0B,cAAL,GAAsBr0B,QAAtB;IAEA,MAAM4F,UAAA,GAAa,KAAKwuB,kBAAxB;IAEA,KAAKrjB,OAAL,CAAa,IAAb,EAAmB;MAAE/Q;IAAF,CAAnB;IAIA,IAAI,KAAK66C,kBAAT,EAA6B;MAC3B,KAAK,CAAAF,QAAL,CAAe,KAAKE,kBAApB,EAAwC;QAAED,QAAA,EAAU;MAAZ,CAAxC;IAD2B;IAI7B,KAAK1vD,QAAL,CAAcgD,QAAd,CAAuB,kBAAvB,EAA2C;MACzCC,MAAA,EAAQ,IADiC;MAEzCoY,aAAA,EAAevG,QAF0B;MAGzC4F;IAHyC,CAA3C;IAMA,IAAI,KAAKm0C,qBAAT,EAAgC;MAC9B,KAAKj4C,MAAL;IAD8B;EAjCN;EAsC5B,IAAIhD,gBAAJA,CAAA,EAAuB;IACrB,OAAO,KAAKlV,WAAL,GAAmB,KAAK+zC,oBAAL,CAA0BtlC,OAA7C,GAAuD,IAA9D;EADqB;EAIvB,IAAIkH,eAAJA,CAAA,EAAsB;IACpB,OAAO,KAAK3V,WAAL,GAAmB,KAAKkxD,0BAAL,CAAgCziD,OAAnD,GAA6D,IAApE;EADoB;EAItB,IAAImH,YAAJA,CAAA,EAAmB;IACjB,OAAO,KAAK5V,WAAL,GAAmB,KAAKywD,gBAAL,CAAsBhiD,OAAzC,GAAmD,IAA1D;EADiB;EAInB,CAAA0iD,gBAAA,EAAmB;IACjB,MAAM9sC,IAAA,GAAO,IAAb;IACA,OAAO;MACL,IAAIyqC,yBAAJA,CAAA,EAAgC;QAC9B,OAAOzqC,IAAA,CAAK,CAAAyqC,yBAAZ;MAD8B,CAD3B;MAIL,IAAIj+C,iBAAJA,CAAA,EAAwB;QACtB,OAAOwT,IAAA,CAAKrkB,WAAL,EAAkB6Q,iBAAzB;MADsB,CAJnB;MAOL,IAAI5P,eAAJA,CAAA,EAAsB;QACpB,OAAOojB,IAAA,CAAKpjB,eAAZ;MADoB,CAPjB;MAUL,IAAIqY,eAAJA,CAAA,EAAsB;QACpB,OAAO,CAAC,CAAC+K,IAAA,CAAK0rC,iBAAd;MADoB,CAVjB;MAaL,IAAIqB,mBAAJA,CAAA,EAA0B;QACxB,OAAO/sC,IAAA,CAAKrkB,WAAL,EAAkBulD,eAAlB,EAAP;MADwB,CAbrB;MAgBL,IAAIv9C,cAAJA,CAAA,EAAqB;QACnB,OAAOqc,IAAA,CAAKrc,cAAZ;MADmB,CAhBhB;MAmBL,IAAIqpD,mBAAJA,CAAA,EAA0B;QACxB,OAAOhtC,IAAA,CAAKrkB,WAAL,EAAkBsxD,YAAlB,EAAP;MADwB,CAnBrB;MAsBL,IAAIppD,WAAJA,CAAA,EAAkB;QAChB,OAAOmc,IAAA,CAAKnc,WAAZ;MADgB;IAtBb,CAAP;EAFiB;EAkCnB,CAAAqpD,sBAAuBC,WAAvB,EAAoC;IAClC,MAAMrsD,MAAA,GAAS;MACbsD,oBAAA,EAAsB,KAAK,CAAAA,oBADd;MAEbe,cAAA,EAAgB,KAAK,CAAAA,cAFR;MAGbD,aAAA,EAAe,KAAK,CAAAA;IAHP,CAAf;IAKA,IAAI,CAACioD,WAAL,EAAkB;MAChB,OAAOrsD,MAAP;IADgB;IAIlB,IACE,CAACqsD,WAAA,CAAYlrD,QAAZ,CAAqBmrD,wBAAA,CAAeC,IAApC,CAAD,IACA,KAAK,CAAAnoD,aAAL,KAAwB/D,uBAAA,CAAc6nB,MAFxC,EAGE;MACAloB,MAAA,CAAOoE,aAAP,GAAuB/D,uBAAA,CAAc8nB,kBAArC;IADA;IAIF,IAAI,CAACkkC,WAAA,CAAYlrD,QAAZ,CAAqBmrD,wBAAA,CAAeE,eAApC,CAAL,EAA2D;MACzDxsD,MAAA,CAAOsD,oBAAP,GAA8B6B,8BAAA,CAAqB7E,OAAnD;IADyD;IAI3D,IACE,CAAC+rD,WAAA,CAAYlrD,QAAZ,CAAqBmrD,wBAAA,CAAeG,kBAApC,CAAD,IACA,CAACJ,WAAA,CAAYlrD,QAAZ,CAAqBmrD,wBAAA,CAAeI,sBAApC,CADD,IAEA,KAAK,CAAAroD,cAAL,KAAyBulD,wBAAA,CAAeC,YAH1C,EAIE;MACA7pD,MAAA,CAAOqE,cAAP,GAAwBulD,wBAAA,CAAe1hC,MAAvC;IADA;IAIF,OAAOloB,MAAP;EA7BkC;EAgCpC,CAAA2sD,4BAAA,EAA+B;IAW7B,IACEryD,QAAA,CAAS2nB,eAAT,KAA6B,QAA7B,IACA,CAAC,KAAK7e,SAAL,CAAegmB,YADhB,IAEA,KAAKuhC,gBAAL,GAAwBn9B,KAAxB,CAA8B/rB,MAA9B,KAAyC,CAH3C,EAIE;MACA,OAAOtH,OAAA,CAAQC,OAAR,EAAP;IADA;IAMF,MAAMwyD,uBAAA,GAA0B,IAAIzyD,OAAJ,CAAYC,OAAA,IAAW;MACrD,KAAK,CAAAmwD,kBAAL,GAA2B,MAAM;QAC/B,IAAIjwD,QAAA,CAAS2nB,eAAT,KAA6B,QAAjC,EAA2C;UACzC;QADyC;QAG3C7nB,OAAA;QAEAE,QAAA,CAAS2c,mBAAT,CACE,kBADF,EAEE,KAAK,CAAAszC,kBAFP;QAIA,KAAK,CAAAA,kBAAL,GAA2B,IAA3B;MAV+B,CAAjC;MAYAjwD,QAAA,CAAS8N,gBAAT,CAA0B,kBAA1B,EAA8C,KAAK,CAAAmiD,kBAAnD;IAbqD,CAAvB,CAAhC;IAgBA,OAAOpwD,OAAA,CAAQyY,IAAR,CAAa,CAClB,KAAKm5C,0BAAL,CAAgCziD,OADd,EAElBsjD,uBAFkB,CAAb,CAAP;EArC6B;EA2C/B,MAAMC,UAANA,CAAA,EAAmB;IACjB,MAAMC,KAAA,GAAQ,EAAd;IACA,MAAMpD,MAAA,GAAS,EAAf;IACA,KACE,IAAIxwB,OAAA,GAAU,CAAd,EAAiBhvB,UAAA,GAAa,KAAKrP,WAAL,CAAiBsP,QAA/C,EACA+uB,OAAA,IAAWhvB,UAFb,EAGE,EAAEgvB,OAHJ,EAIE;MACA,IAAI,KAAK,CAAA+wB,sBAAT,EAAkC;QAChC,OAAO,IAAP;MADgC;MAGlCP,MAAA,CAAOjoD,MAAP,GAAgB,CAAhB;MACA,MAAM2I,IAAA,GAAO,MAAM,KAAKvP,WAAL,CAAiBwrC,OAAjB,CAAyBnN,OAAzB,CAAnB;MAGA,MAAM;QAAE1N;MAAF,IAAY,MAAMphB,IAAA,CAAKooC,cAAL,EAAxB;MACA,WAAW9R,IAAX,IAAmBlV,KAAnB,EAA0B;QACxB,IAAIkV,IAAA,CAAKtV,GAAT,EAAc;UACZs+B,MAAA,CAAO39C,IAAP,CAAY20B,IAAA,CAAKtV,GAAjB;QADY;QAGd,IAAIsV,IAAA,CAAKiS,MAAT,EAAiB;UACf+W,MAAA,CAAO39C,IAAP,CAAY,IAAZ;QADe;MAJO;MAQ1B+gD,KAAA,CAAM/gD,IAAN,CAAW,IAAAof,8BAAA,EAAqBu+B,MAAA,CAAOr6C,IAAP,CAAY,EAAZ,CAArB,CAAX;IAjBA;IAoBF,OAAOy9C,KAAA,CAAMz9C,IAAN,CAAW,IAAX,CAAP;EA3BiB;EA8BnB,CAAA09C,aAAc3oD,aAAd,EAA6BmY,KAA7B,EAAoC;IAClC,MAAMywC,SAAA,GAAY1yD,QAAA,CAASmiD,YAAT,EAAlB;IACA,MAAM;MAAEwQ,SAAF;MAAaC;IAAb,IAA4BF,SAAlC;IACA,IACEE,UAAA,IACAD,SADA,IAEAD,SAAA,CAAUG,YAAV,CAAuB,KAAK,CAAAnD,iBAA5B,CAHF,EAIE;MASA,IACE,KAAK,CAAAD,oBAAL,IACA3lD,aAAA,KAAkB/D,uBAAA,CAAc8nB,kBAFlC,EAGE;QACA5L,KAAA,CAAM/T,cAAN;QACA+T,KAAA,CAAMilB,eAAN;QACA;MAHA;MAKF,KAAK,CAAAuoB,oBAAL,GAA6B,IAA7B;MAMA,MAAMqD,WAAA,GAAc,KAAKhqD,SAAL,CAAektB,KAAf,CAAqB+8B,MAAzC;MACA,KAAKjqD,SAAL,CAAektB,KAAf,CAAqB+8B,MAArB,GAA8B,MAA9B;MAEA,MAAMC,aAAA,GAAgBC,EAAA,IACnB,KAAK,CAAAtD,sBAAL,GAA+BsD,EAAA,CAAG1/C,GAAH,KAAW,QAD7C;MAEApR,MAAA,CAAO2L,gBAAP,CAAwB,SAAxB,EAAmCklD,aAAnC;MAEA,KAAKT,UAAL,GACG3tD,IADH,CACQ,MAAMgsC,IAAN,IAAc;QAClB,IAAIA,IAAA,KAAS,IAAb,EAAmB;UACjB,MAAMnZ,SAAA,CAAUy7B,SAAV,CAAoBC,SAApB,CAA8BviB,IAA9B,CAAN;QADiB;MADD,CADtB,EAMGh7B,KANH,CAMSvQ,MAAA,IAAU;QACfJ,OAAA,CAAQC,IAAR,CACG,kDAAiDG,MAAA,CAAOE,OAAzD,EADF;MADe,CANnB,EAWG6/C,OAXH,CAWW,MAAM;QACb,KAAK,CAAAqK,oBAAL,GAA6B,KAA7B;QACA,KAAK,CAAAE,sBAAL,GAA+B,KAA/B;QACAxtD,MAAA,CAAOwa,mBAAP,CAA2B,SAA3B,EAAsCq2C,aAAtC;QACA,KAAKlqD,SAAL,CAAektB,KAAf,CAAqB+8B,MAArB,GAA8BD,WAA9B;MAJa,CAXjB;MAkBA7wC,KAAA,CAAM/T,cAAN;MACA+T,KAAA,CAAMilB,eAAN;IAjDA;EAPgC;EA+DpCv1B,YAAYpR,WAAZ,EAAyB;IACvB,IAAI,KAAKA,WAAT,EAAsB;MACpB,KAAKsB,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;QAAEC,MAAA,EAAQ;MAAV,CAAvC;MAEA,KAAKmlD,gBAAL;MACA,KAAKV,UAAL;MAEA,KAAKhhD,cAAL,EAAqBoJ,WAArB,CAAiC,IAAjC;MACA,KAAK2+C,iBAAL,EAAwB3+C,WAAxB,CAAoC,IAApC;MAEA,IAAI,KAAK,CAAA09C,yBAAT,EAAqC;QACnC,KAAK,CAAAA,yBAAL,CAAgC39C,OAAhC;QACA,KAAK,CAAA29C,yBAAL,GAAkC,IAAlC;MAFmC;IATjB;IAetB,KAAK9uD,WAAL,GAAmBA,WAAnB;IACA,IAAI,CAACA,WAAL,EAAkB;MAChB;IADgB;IAGlB,MAAMqP,UAAA,GAAarP,WAAA,CAAYsP,QAA/B;IACA,MAAM4F,gBAAA,GAAmBlV,WAAA,CAAYwrC,OAAZ,CAAoB,CAApB,CAAzB;IAEA,MAAM9yB,4BAAA,GAA+B1Y,WAAA,CAAY0+C,wBAAZ,EAArC;IACA,MAAMmU,kBAAA,GAAqB,KAAK,CAAAjpD,iBAAL,GACvB5J,WAAA,CAAY8yD,cAAZ,EADuB,GAEvBxzD,OAAA,CAAQC,OAAR,EAFJ;IAMA,IAAI8P,UAAA,GAAay+C,eAAA,CAAgBC,sBAAjC,EAAyD;MACvDrpD,OAAA,CAAQC,IAAR,CACE,mFADF;MAGA,MAAMmgB,IAAA,GAAQ,KAAKiuC,WAAL,GAAmBv8C,oBAAA,CAAWkX,IAA5C;MACA,KAAKpsB,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;QAAEC,MAAA,EAAQ,IAAV;QAAgBugB;MAAhB,CAA5C;IALuD;IAQzD,KAAK2rC,gBAAL,CAAsBhiD,OAAtB,CAA8BpK,IAA9B,CACE,MAAM;MACJ,KAAK/C,QAAL,CAAcgD,QAAd,CAAuB,aAAvB,EAAsC;QAAEC,MAAA,EAAQ,IAAV;QAAgB8K;MAAhB,CAAtC;IADI,CADR,EAIE,MAAM,EAJR;IASA,KAAKghD,aAAL,GAAqB7iD,GAAA,IAAO;MAC1B,MAAMnB,QAAA,GAAW,KAAKmkD,MAAL,CAAYhjD,GAAA,CAAIwO,UAAJ,GAAiB,CAA7B,CAAjB;MACA,IAAI,CAAC3P,QAAL,EAAe;QACb;MADa;MAKf,KAAK,CAAAwiD,MAAL,CAAa39C,IAAb,CAAkB7E,QAAlB;IAP0B,CAA5B;IASA,KAAK/K,QAAL,CAAcwX,GAAd,CAAkB,YAAlB,EAAgC,KAAKu3C,aAArC;IAEA,KAAKC,YAAL,GAAoB9iD,GAAA,IAAO;MACzB,IAAIA,GAAA,CAAIwlD,YAAJ,IAAoB,KAAK9B,0BAAL,CAAgC3iD,OAAxD,EAAiE;QAC/D;MAD+D;MAGjE,KAAK2iD,0BAAL,CAAgC3xD,OAAhC,CAAwC;QAAE6Y,SAAA,EAAW5K,GAAA,CAAI4K;MAAjB,CAAxC;MAEA,KAAK9W,QAAL,CAAcghB,IAAd,CAAmB,cAAnB,EAAmC,KAAKguC,YAAxC;MACA,KAAKA,YAAL,GAAoB,IAApB;MAEA,IAAI,KAAK,CAAAZ,kBAAT,EAA8B;QAC5BjwD,QAAA,CAAS2c,mBAAT,CACE,kBADF,EAEE,KAAK,CAAAszC,kBAFP;QAIA,KAAK,CAAAA,kBAAL,GAA2B,IAA3B;MAL4B;IATL,CAA3B;IAiBA,KAAKpuD,QAAL,CAAcwX,GAAd,CAAkB,cAAlB,EAAkC,KAAKw3C,YAAvC;IAIAhxD,OAAA,CAAQmS,GAAR,CAAY,CAACyD,gBAAD,EAAmB29C,kBAAnB,CAAZ,EACGxuD,IADH,CACQ,CAAC,CAACslD,YAAD,EAAe6H,WAAf,CAAD,KAAiC;MACrC,IAAIxxD,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;QACpC;MADoC;MAGtC,KAAK+zC,oBAAL,CAA0Bx0C,OAA1B,CAAkCoqD,YAAlC;MACA,KAAK0B,6BAAL,GAAqC3yC,4BAArC;MAEA,MAAM;QAAEjQ,oBAAF;QAAwBe,cAAxB;QAAwCD;MAAxC,IACJ,KAAK,CAAAgoD,qBAAL,CAA4BC,WAA5B,CADF;MAGA,IAAIjoD,aAAA,KAAkB/D,uBAAA,CAAcC,OAApC,EAA6C;QAC3C,MAAM2oB,OAAA,GAAW,KAAK,CAAA+gC,iBAAL,GACf1vD,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CADF;QAEAnS,OAAA,CAAQ1jB,EAAR,GAAa,mBAAb;QACA,KAAKlC,MAAL,CAAYyqD,MAAZ,CAAmB7kC,OAAnB;MAJ2C;MAO7C,IAAI3lB,oBAAA,KAAyB6B,8BAAA,CAAqB7E,OAAlD,EAA2D;QACzD,MAAMqf,IAAA,GAAOrc,oBAAb;QAEA,IAAIzI,WAAA,CAAY8a,SAAhB,EAA2B;UACzBpW,OAAA,CAAQC,IAAR,CAAa,0CAAb;QADyB,CAA3B,MAEO,IAAIupD,2BAAA,CAA4BppC,IAA5B,CAAJ,EAAuC;UAC5C,KAAK,CAAAgqC,yBAAL,GAAkC,IAAIoE,mCAAJ,CAChC,KAAK3qD,SAD2B,EAEhC,KAAKC,MAF2B,EAGhC,KAAK,CAAAS,cAH2B,EAIhC,KAAK3H,QAJ2B,EAKhCtB,WALgC,EAMhC,KAAK4I,UAN2B,CAAlC;UAQA,IAAIkc,IAAA,KAASxa,8BAAA,CAAqB1G,IAAlC,EAAwC;YACtC,KAAK,CAAAkrD,yBAAL,CAAgCqE,UAAhC,CAA2CruC,IAA3C;UADsC;QATI,CAAvC,MAYA;UACLpgB,OAAA,CAAQK,KAAR,CAAe,kCAAiC+f,IAAlC,EAAd;QADK;MAjBkD;MAsB3D,MAAMqsC,eAAA,GAAkB,KAAK,CAAAA,eAAL,CAAsBxpD,IAAtB,CAA2B,IAA3B,CAAxB;MACA,MAAMyrD,aAAA,GACJ,KAAKL,WAAL,KAAqBv8C,oBAAA,CAAWkX,IAAhC,GAAuC,IAAvC,GAA8C,KAAKllB,MADrD;MAEA,MAAMid,KAAA,GAAQ,KAAKnC,YAAnB;MACA,MAAMsmC,QAAA,GAAWD,YAAA,CAAaE,WAAb,CAAyB;QACxCpkC,KAAA,EAAOA,KAAA,GAAQ4tC,uBAAA,CAAcC;MADW,CAAzB,CAAjB;MAKA,KAAK9qD,MAAL,CAAYitB,KAAZ,CAAkBM,WAAlB,CAA8B,gBAA9B,EAAgD6zB,QAAA,CAASnkC,KAAzD;MACA,IACE,KAAK7c,UAAL,EAAiBI,UAAjB,KAAgC,YAAhC,IACA,KAAKJ,UAAL,EAAiBG,UAAjB,KAAgC,QAFlC,EAGE;QACA,KAAKP,MAAL,CAAYitB,KAAZ,CAAkBM,WAAlB,CACE,uBADF,EAEE/1B,WAAA,CAAYuzD,aAAZ,CAA0BC,qBAA1B,CACE,YADF,EAEE,QAFF,EAGE,eAHF,EAIE,WAJF,CAFF;MADA;MAYF,KAAK,IAAIn1B,OAAA,GAAU,CAAd,EAAiBA,OAAA,IAAWhvB,UAAjC,EAA6C,EAAEgvB,OAA/C,EAAwD;QACtD,MAAMhyB,QAAA,GAAW,IAAIonD,0BAAJ,CAAgB;UAC/BlrD,SAAA,EAAW6qD,aADoB;UAE/B9xD,QAAA,EAAU,KAAKA,QAFgB;UAG/BoJ,EAAA,EAAI2zB,OAH2B;UAI/B5Y,KAJ+B;UAK/BskC,eAAA,EAAiBH,QAAA,CAASI,KAAT,EALc;UAM/BtxC,4BAN+B;UAO/BrP,cAAA,EAAgB,KAAKA,cAPU;UAQ/BE,aAR+B;UAS/BC,cAT+B;UAU/BC,kBAAA,EAAoB,KAAKA,kBAVM;UAW/Bf,0BAAA,EAA4B,KAAKA,0BAXF;UAY/BiB,eAAA,EAAiB,KAAKA,eAZS;UAa/Bf,UAAA,EAAY,KAAKA,UAbc;UAc/BrH,IAAA,EAAM,KAAKA,IAdoB;UAe/B4vD;QAf+B,CAAhB,CAAjB;QAiBA,KAAKX,MAAL,CAAYt/C,IAAZ,CAAiB7E,QAAjB;MAlBsD;MAuBxD,MAAMqnD,aAAA,GAAgB,KAAKlD,MAAL,CAAY,CAAZ,CAAtB;MACA,IAAIkD,aAAJ,EAAmB;QACjBA,aAAA,CAAczJ,UAAd,CAAyBN,YAAzB;QACA,KAAKzhD,WAAL,CAAiBm0B,YAAjB,CAA8B,CAA9B,EAAiCstB,YAAA,CAAagK,GAA9C;MAFiB;MAKnB,IAAI,KAAKZ,WAAL,KAAqBv8C,oBAAA,CAAWkX,IAApC,EAA0C;QAExC,KAAK,CAAAkmC,qBAAL;MAFwC,CAA1C,MAGO,IAAI,KAAKC,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAApC,EAA0C;QAC/C,KAAKkwD,iBAAL;MAD+C;MAOjD,KAAK,CAAAhC,2BAAL,GAAoCztD,IAApC,CAAyC,YAAY;QACnD,KAAK2D,cAAL,EAAqBoJ,WAArB,CAAiCpR,WAAjC;QACA,KAAK+vD,iBAAL,EAAwB3+C,WAAxB,CAAoCpR,WAApC;QAEA,IAAI,KAAK,CAAAmvD,iBAAT,EAA6B;UAC3B,KAAK,CAAAF,iBAAL,GAA0B,KAAK,CAAAiD,YAAL,CAAmBvqD,IAAnB,CACxB,IADwB,EAExB4B,aAFwB,CAA1B;UAIA9J,QAAA,CAAS8N,gBAAT,CAA0B,MAA1B,EAAkC,KAAK,CAAA0hD,iBAAvC;QAL2B;QAQ7B,IAAI,KAAK,CAAAH,yBAAT,EAAqC;UAEnC,KAAKxtD,QAAL,CAAcgD,QAAd,CAAuB,6BAAvB,EAAsD;YACpDC,MAAA,EAAQ,IAD4C;YAEpDugB,IAAA,EAAM,KAAK,CAAArc;UAFyC,CAAtD;QAFmC;QAUrC,IACEzI,WAAA,CAAY6U,aAAZ,CAA0BC,gBAA1B,IACAzF,UAAA,GAAay+C,eAAA,CAAgBE,oBAF/B,EAGE;UAEA,KAAKyC,gBAAL,CAAsBlxD,OAAtB;UACA;QAHA;QAKF,IAAIw0D,YAAA,GAAe1kD,UAAA,GAAa,CAAhC;QAEA,IAAI0kD,YAAA,IAAgB,CAApB,EAAuB;UACrB,KAAKtD,gBAAL,CAAsBlxD,OAAtB;UACA;QAFqB;QAIvB,KAAK,IAAI8+B,OAAA,GAAU,CAAd,EAAiBA,OAAA,IAAWhvB,UAAjC,EAA6C,EAAEgvB,OAA/C,EAAwD;UACtD,MAAM5vB,OAAA,GAAUzO,WAAA,CAAYwrC,OAAZ,CAAoBnN,OAApB,EAA6Bh6B,IAA7B,CACdsS,OAAA,IAAW;YACT,MAAMtK,QAAA,GAAW,KAAKmkD,MAAL,CAAYnyB,OAAA,GAAU,CAAtB,CAAjB;YACA,IAAI,CAAChyB,QAAA,CAASsK,OAAd,EAAuB;cACrBtK,QAAA,CAAS49C,UAAT,CAAoBtzC,OAApB;YADqB;YAGvB,KAAKzO,WAAL,CAAiBm0B,YAAjB,CAA8BgC,OAA9B,EAAuC1nB,OAAA,CAAQg9C,GAA/C;YACA,IAAI,EAAEI,YAAF,KAAmB,CAAvB,EAA0B;cACxB,KAAKtD,gBAAL,CAAsBlxD,OAAtB;YADwB;UANjB,CADG,EAWduF,MAAA,IAAU;YACRJ,OAAA,CAAQK,KAAR,CACG,sBAAqBs5B,OAAQ,uBADhC,EAEEv5B,MAFF;YAIA,IAAI,EAAEivD,YAAF,KAAmB,CAAvB,EAA0B;cACxB,KAAKtD,gBAAL,CAAsBlxD,OAAtB;YADwB;UALlB,CAXI,CAAhB;UAsBA,IAAI8+B,OAAA,GAAUyvB,eAAA,CAAgBG,qBAA1B,KAAoD,CAAxD,EAA2D;YACzD,MAAMx/C,OAAN;UADyD;QAvBL;MApCL,CAArD;MAiEA,KAAKnN,QAAL,CAAcgD,QAAd,CAAuB,WAAvB,EAAoC;QAAEC,MAAA,EAAQ;MAAV,CAApC;MAEAvE,WAAA,CAAYma,WAAZ,GAA0B9V,IAA1B,CAA+B,CAAC;QAAE2V;MAAF,CAAD,KAAc;QAC3C,IAAIha,WAAA,KAAgB,KAAKA,WAAzB,EAAsC;UACpC;QADoC;QAGtC,IAAIga,IAAA,CAAKg6C,QAAT,EAAmB;UACjB,KAAKxrD,MAAL,CAAYyrD,IAAZ,GAAmBj6C,IAAA,CAAKg6C,QAAxB;QADiB;MAJwB,CAA7C;MASA,IAAI,KAAK7D,qBAAT,EAAgC;QAC9B,KAAKj4C,MAAL;MAD8B;IAnLK,CADzC,EAwLG7C,KAxLH,CAwLSvQ,MAAA,IAAU;MACfJ,OAAA,CAAQK,KAAR,CAAc,6BAAd,EAA6CD,MAA7C;MAEA,KAAK2rD,gBAAL,CAAsBt2B,MAAtB,CAA6Br1B,MAA7B;IAHe,CAxLnB;EA/EuB;EAiRzB2W,cAAcP,MAAd,EAAsB;IACpB,IAAI,CAAC,KAAKlb,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAI,CAACkb,MAAL,EAAa;MACX,KAAKuuC,WAAL,GAAmB,IAAnB;IADW,CAAb,MAEO,IACL,EAAE9sB,KAAA,CAAMC,OAAN,CAAc1hB,MAAd,KAAyB,KAAKlb,WAAL,CAAiBsP,QAAjB,KAA8B4L,MAAA,CAAOtU,MAA9D,CADG,EAEL;MACA,KAAK6iD,WAAL,GAAmB,IAAnB;MACA/kD,OAAA,CAAQK,KAAR,CAAe,qCAAf;IAFA,CAFK,MAKA;MACL,KAAK0kD,WAAL,GAAmBvuC,MAAnB;IADK;IAIP,KAAK,IAAIxU,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAK,KAAK6pD,MAAL,CAAY5pD,MAA5B,EAAoCF,CAAA,GAAIC,EAA7C,EAAiDD,CAAA,EAAjD,EAAsD;MACpD,KAAK8pD,MAAL,CAAY9pD,CAAZ,EAAeyjD,YAAf,CAA4B,KAAKV,WAAL,GAAmB/iD,CAAnB,KAAyB,IAArD;IADoD;EAflC;EAoBtBsiD,WAAA,EAAa;IACX,KAAKwH,MAAL,GAAc,EAAd;IACA,KAAKhmB,kBAAL,GAA0B,CAA1B;IACA,KAAKsmB,aAAL,GAAqBlkC,uBAArB;IACA,KAAKqkC,kBAAL,GAA0B,IAA1B;IACA,KAAKxH,WAAL,GAAmB,IAAnB;IACA,KAAK,CAAAoF,MAAL,GAAe,IAAIV,iBAAJ,CAAsBN,kBAAtB,CAAf;IACA,KAAKqG,SAAL,GAAiB,IAAjB;IACA,KAAKzpB,cAAL,GAAsB,CAAtB;IACA,KAAK4gB,6BAAL,GAAqC,IAArC;IACA,KAAKtX,oBAAL,GAA4B,IAAIj0C,2BAAJ,EAA5B;IACA,KAAKoxD,0BAAL,GAAkC,IAAIpxD,2BAAJ,EAAlC;IACA,KAAK2wD,gBAAL,GAAwB,IAAI3wD,2BAAJ,EAAxB;IACA,KAAKizD,WAAL,GAAmBv8C,oBAAA,CAAW+W,QAA9B;IACA,KAAK4mC,mBAAL,GAA2B39C,oBAAA,CAAW7Y,OAAtC;IACA,KAAKk2D,WAAL,GAAmBn9C,oBAAA,CAAW9S,IAA9B;IAEA,KAAK,CAAA6rD,mBAAL,GAA4B;MAC1B2E,kBAAA,EAAoB,CADM;MAE1BC,UAAA,EAAY,IAFc;MAG1BC,KAAA,EAAO;IAHmB,CAA5B;IAMA,IAAI,KAAKjE,aAAT,EAAwB;MACtB,KAAK/uD,QAAL,CAAcghB,IAAd,CAAmB,YAAnB,EAAiC,KAAK+tC,aAAtC;MACA,KAAKA,aAAL,GAAqB,IAArB;IAFsB;IAIxB,IAAI,KAAKC,YAAT,EAAuB;MACrB,KAAKhvD,QAAL,CAAcghB,IAAd,CAAmB,cAAnB,EAAmC,KAAKguC,YAAxC;MACA,KAAKA,YAAL,GAAoB,IAApB;IAFqB;IAIvB,IAAI,KAAK,CAAAZ,kBAAT,EAA8B;MAC5BjwD,QAAA,CAAS2c,mBAAT,CACE,kBADF,EAEE,KAAK,CAAAszC,kBAFP;MAIA,KAAK,CAAAA,kBAAL,GAA2B,IAA3B;IAL4B;IAQ9B,KAAKlnD,MAAL,CAAYo8B,WAAZ,GAA0B,EAA1B;IAEA,KAAK2vB,iBAAL;IAEA,KAAK/rD,MAAL,CAAYujD,eAAZ,CAA4B,MAA5B;IAEA,IAAI,KAAK,CAAAoD,iBAAT,EAA6B;MAC3B1vD,QAAA,CAAS2c,mBAAT,CAA6B,MAA7B,EAAqC,KAAK,CAAA6yC,iBAA1C;MACA,KAAK,CAAAA,iBAAL,GAA0B,IAA1B;MAEA,KAAK,CAAAE,iBAAL,CAAwB3kD,MAAxB;MACA,KAAK,CAAA2kD,iBAAL,GAA0B,IAA1B;IAL2B;EA7ClB;EAsDb,CAAAyE,sBAAA,EAAyB;IACvB,IAAI,KAAKb,WAAL,KAAqBv8C,oBAAA,CAAWkX,IAApC,EAA0C;MACxC,MAAM,IAAIvvB,KAAJ,CAAU,mDAAV,CAAN;IADwC;IAG1C,MAAM6d,UAAA,GAAa,KAAKwuB,kBAAxB;MACEjlB,KAAA,GAAQ,KAAK,CAAAkqC,mBADf;MAEEjnD,MAAA,GAAS,KAAKA,MAFhB;IAKAA,MAAA,CAAOo8B,WAAP,GAAqB,EAArB;IAEArf,KAAA,CAAM+uC,KAAN,CAAY1tD,MAAZ,GAAqB,CAArB;IAEA,IAAI,KAAKitD,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAAhC,IAAwC,CAAC,KAAKiL,oBAAlD,EAAwE;MAEtE,MAAMxC,QAAA,GAAW,KAAKmkD,MAAL,CAAYx0C,UAAA,GAAa,CAAzB,CAAjB;MACAxT,MAAA,CAAOi4B,MAAP,CAAcp0B,QAAA,CAASwlB,GAAvB;MAEAtM,KAAA,CAAM+uC,KAAN,CAAYpjD,IAAZ,CAAiB7E,QAAjB;IALsE,CAAxE,MAMO;MACL,MAAMmoD,YAAA,GAAe,IAAI7gC,GAAJ,EAArB;QACE8gC,MAAA,GAAS,KAAKZ,WAAL,GAAmB,CAD9B;MAIA,IAAIY,MAAA,KAAW,CAAC,CAAhB,EAAmB;QAEjBD,YAAA,CAAa7uD,GAAb,CAAiBqW,UAAA,GAAa,CAA9B;MAFiB,CAAnB,MAGO,IAAIA,UAAA,GAAa,CAAb,KAAmBy4C,MAAvB,EAA+B;QAEpCD,YAAA,CAAa7uD,GAAb,CAAiBqW,UAAA,GAAa,CAA9B;QACAw4C,YAAA,CAAa7uD,GAAb,CAAiBqW,UAAjB;MAHoC,CAA/B,MAIA;QAELw4C,YAAA,CAAa7uD,GAAb,CAAiBqW,UAAA,GAAa,CAA9B;QACAw4C,YAAA,CAAa7uD,GAAb,CAAiBqW,UAAA,GAAa,CAA9B;MAHK;MAOP,MAAMc,MAAA,GAASrd,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAf;MACAzjB,MAAA,CAAOgpB,SAAP,GAAmB,QAAnB;MAEA,IAAI,KAAKj3B,oBAAT,EAA+B;QAC7B,MAAM6lD,SAAA,GAAYj1D,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAlB;QACAm0B,SAAA,CAAU5uB,SAAV,GAAsB,WAAtB;QACAhpB,MAAA,CAAO2jB,MAAP,CAAci0B,SAAd;MAH6B;MAM/B,WAAWhuD,CAAX,IAAgB8tD,YAAhB,EAA8B;QAC5B,MAAMnoD,QAAA,GAAW,KAAKmkD,MAAL,CAAY9pD,CAAZ,CAAjB;QACA,IAAI,CAAC2F,QAAL,EAAe;UACb;QADa;QAGfyQ,MAAA,CAAO2jB,MAAP,CAAcp0B,QAAA,CAASwlB,GAAvB;QAEAtM,KAAA,CAAM+uC,KAAN,CAAYpjD,IAAZ,CAAiB7E,QAAjB;MAP4B;MAS9B7D,MAAA,CAAOi4B,MAAP,CAAc3jB,MAAd;IArCK;IAwCPyI,KAAA,CAAM8uC,UAAN,GAAmBr4C,UAAA,IAAcuJ,KAAA,CAAM6uC,kBAAvC;IACA7uC,KAAA,CAAM6uC,kBAAN,GAA2Bp4C,UAA3B;EA5DuB;EA+DzBo0C,cAAA,EAAgB;IACd,IAAI,KAAK/gD,UAAL,KAAoB,CAAxB,EAA2B;MACzB;IADyB;IAG3B,KAAK6I,MAAL;EAJc;EAOhB,CAAAiW,eAAgB9hB,QAAhB,EAA0BsoD,QAAA,GAAW,IAArC,EAA2C;IACzC,MAAM;MAAE9iC,GAAF;MAAOnnB;IAAP,IAAc2B,QAApB;IAIA,IAAI,KAAKm+B,kBAAL,KAA4B9/B,EAAhC,EAAoC;MAClC,KAAKimD,qBAAL,CAA2BjmD,EAA3B;IADkC;IAGpC,IAAI,KAAKqoD,WAAL,KAAqBv8C,oBAAA,CAAWkX,IAApC,EAA0C;MACxC,KAAK,CAAAkmC,qBAAL;MAGA,KAAK17C,MAAL;IAJwC;IAO1C,IAAI,CAACy8C,QAAD,IAAa,CAAC,KAAK9lD,oBAAvB,EAA6C;MAC3C,MAAM2U,IAAA,GAAOqO,GAAA,CAAIjD,UAAJ,GAAiBiD,GAAA,CAAIhD,UAAlC;QACEgB,KAAA,GAAQrM,IAAA,GAAOqO,GAAA,CAAI7C,WADrB;MAEA,MAAM;QAAE9Y,UAAF;QAAc8Y;MAAd,IAA8B,KAAKzmB,SAAzC;MACA,IACE,KAAKwqD,WAAL,KAAqBv8C,oBAAA,CAAWgX,UAAhC,IACAhK,IAAA,GAAOtN,UADP,IAEA2Z,KAAA,GAAQ3Z,UAAA,GAAa8Y,WAHvB,EAIE;QACA2lC,QAAA,GAAW;UAAEnxC,IAAA,EAAM,CAAR;UAAWD,GAAA,EAAK;QAAhB,CAAX;MADA;IARyC;IAY7C,IAAA4K,wBAAA,EAAe0D,GAAf,EAAoB8iC,QAApB;IAOA,IAAI,CAAC,KAAK1D,kBAAN,IAA4B,KAAKiD,SAArC,EAAgD;MAC9C,KAAKA,SAAL,GAAiB,IAAjB;IAD8C;EAlCP;EA2C3C,CAAAU,YAAaC,QAAb,EAAuB;IACrB,OACEA,QAAA,KAAa,KAAK/D,aAAlB,IACAn8C,IAAA,CAAKqT,GAAL,CAAS6sC,QAAA,GAAW,KAAK/D,aAAzB,IAA0C,KAF5C;EADqB;EAOvB,CAAAgE,oBACED,QADF,EAEEE,QAFF,EAGE;IAAE/D,QAAA,GAAW,KAAb;IAAoBgE,MAAA,GAAS,KAA7B;IAAoCjmD,YAAA,GAAe,CAAC;EAApD,CAHF,EAIE;IACA,KAAKkiD,kBAAL,GAA0B8D,QAAA,CAASv5C,QAAT,EAA1B;IAEA,IAAI,KAAK,CAAAo5C,WAAL,CAAkBC,QAAlB,CAAJ,EAAiC;MAC/B,IAAIG,MAAJ,EAAY;QACV,KAAK1zD,QAAL,CAAcgD,QAAd,CAAuB,eAAvB,EAAwC;UACtCC,MAAA,EAAQ,IAD8B;UAEtCkhB,KAAA,EAAOovC,QAF+B;UAGtC9tC,WAAA,EAAaguC;QAHyB,CAAxC;MADU;MAOZ;IAR+B;IAWjC,KAAKvsD,MAAL,CAAYitB,KAAZ,CAAkBM,WAAlB,CACE,gBADF,EAEE8+B,QAAA,GAAWxB,uBAAA,CAAcC,gBAF3B;IAKA,MAAM2B,eAAA,GAAkBlmD,YAAA,IAAgB,CAAhB,IAAqBA,YAAA,GAAe,IAA5D;IACA,KAAKoY,OAAL,CAAa,IAAb,EAAmB;MACjB1B,KAAA,EAAOovC,QADU;MAEjB9lD,YAAA,EAAckmD,eAAA,GAAkBlmD,YAAlB,GAAiC,CAAC;IAF/B,CAAnB;IAKA,IAAIkmD,eAAJ,EAAqB;MACnB,KAAK,CAAAtF,cAAL,GAAuB33C,UAAA,CAAW,MAAM;QACtC,KAAK,CAAA23C,cAAL,GAAuB,IAAvB;QACA,KAAKxoC,OAAL;MAFsC,CAAjB,EAGpBpY,YAHoB,CAAvB;IADmB;IAOrB,KAAK+hD,aAAL,GAAqB+D,QAArB;IAEA,IAAI,CAAC7D,QAAL,EAAe;MACb,IAAIzhD,IAAA,GAAO,KAAKi7B,kBAAhB;QACEhzB,IADF;MAEA,IACE,KAAK08C,SAAL,IACA,EAAE,KAAKrlD,oBAAL,IAA6B,KAAKw3C,0BAAlC,CAFJ,EAGE;QACA92C,IAAA,GAAO,KAAK2kD,SAAL,CAAel4C,UAAtB;QACAxE,IAAA,GAAO,CACL,IADK,EAEL;UAAEkC,IAAA,EAAM;QAAR,CAFK,EAGL,KAAKw6C,SAAL,CAAe1wC,IAHV,EAIL,KAAK0wC,SAAL,CAAe3wC,GAJV,EAKL,IALK,CAAP;MAFA;MAUF,KAAKgZ,kBAAL,CAAwB;QACtBvgB,UAAA,EAAYzM,IADU;QAEtBitB,SAAA,EAAWhlB,IAFW;QAGtBimB,mBAAA,EAAqB;MAHC,CAAxB;IAhBa;IAuBf,KAAKn8B,QAAL,CAAcgD,QAAd,CAAuB,eAAvB,EAAwC;MACtCC,MAAA,EAAQ,IAD8B;MAEtCkhB,KAAA,EAAOovC,QAF+B;MAGtC9tC,WAAA,EAAaiuC,MAAA,GAASD,QAAT,GAAoBhiD;IAHK,CAAxC;IAMA,IAAI,KAAKo9C,qBAAT,EAAgC;MAC9B,KAAKj4C,MAAL;IAD8B;EA/DhC;EAoEF,IAAI,CAAAg9C,oBAAJA,CAAA,EAA4B;IAC1B,IACE,KAAKrB,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAAhC,IACA,KAAKmvD,WAAL,KAAqBv8C,oBAAA,CAAWgX,UAFlC,EAGE;MACA,OAAO,CAAP;IADA;IAGF,OAAO,CAAP;EAP0B;EAU5B,CAAAujC,SAAUzjD,KAAV,EAAiB5O,OAAjB,EAA0B;IACxB,IAAI+mB,KAAA,GAAQ+X,UAAA,CAAWlwB,KAAX,CAAZ;IAEA,IAAImY,KAAA,GAAQ,CAAZ,EAAe;MACb/mB,OAAA,CAAQs2D,MAAR,GAAiB,KAAjB;MACA,KAAK,CAAAF,mBAAL,CAA0BrvC,KAA1B,EAAiCnY,KAAjC,EAAwC5O,OAAxC;IAFa,CAAf,MAGO;MACL,MAAMuoB,WAAA,GAAc,KAAKupC,MAAL,CAAY,KAAKhmB,kBAAL,GAA0B,CAAtC,CAApB;MACA,IAAI,CAACvjB,WAAL,EAAkB;QAChB;MADgB;MAGlB,IAAIkuC,QAAA,GAAWroC,2BAAf;QACEsoC,QAAA,GAAWroC,0BADb;MAGA,IAAI,KAAKle,oBAAT,EAA+B;QAG7BsmD,QAAA,GAAWC,QAAA,GAAW,CAAtB;QACA,IAAI,KAAKvB,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAApC,EAA0C;UAGxCuxD,QAAA,IAAY,CAAZ;QAHwC;MAJb,CAA/B,MASO,IAEL,KAAKnF,iBAFA,EAGL;QACAmF,QAAA,GAAWC,QAAA,GAAW,CAAtB;MADA,CAHK,MAKA,IAAI,KAAKrC,WAAL,KAAqBv8C,oBAAA,CAAWgX,UAApC,EAAgD;QACrD,CAAC2nC,QAAD,EAAWC,QAAX,IAAuB,CAACA,QAAD,EAAWD,QAAX,CAAvB;MADqD;MAGvD,MAAME,cAAA,GACD,MAAK9sD,SAAL,CAAeymB,WAAf,GAA6BmmC,QAA7B,IAAyCluC,WAAA,CAAYsL,KAAvD,GACCtL,WAAA,CAAYxB,KADd,GAEA,KAAK,CAAAyvC,oBAHP;MAIA,MAAMI,eAAA,GACF,MAAK/sD,SAAL,CAAeumB,YAAf,GAA8BsmC,QAA9B,IAA0CnuC,WAAA,CAAYuL,MAAxD,GACAvL,WAAA,CAAYxB,KAFd;MAGA,QAAQnY,KAAR;QACE,KAAK,aAAL;UACEmY,KAAA,GAAQ,CAAR;UACA;QACF,KAAK,YAAL;UACEA,KAAA,GAAQ4vC,cAAR;UACA;QACF,KAAK,aAAL;UACE5vC,KAAA,GAAQ6vC,eAAR;UACA;QACF,KAAK,UAAL;UACE7vC,KAAA,GAAQ9Q,IAAA,CAAKihB,GAAL,CAASy/B,cAAT,EAAyBC,eAAzB,CAAR;UACA;QACF,KAAK,MAAL;UAGE,MAAMC,eAAA,GAAkB,IAAAhgC,+BAAA,EAAsBtO,WAAtB,IACpBouC,cADoB,GAEpB1gD,IAAA,CAAKihB,GAAL,CAAS0/B,eAAT,EAA0BD,cAA1B,CAFJ;UAGA5vC,KAAA,GAAQ9Q,IAAA,CAAKihB,GAAL,CAAS/I,wBAAT,EAAyB0oC,eAAzB,CAAR;UACA;QACF;UACE7wD,OAAA,CAAQK,KAAR,CAAe,eAAcuI,KAAM,6BAAnC;UACA;MAvBJ;MAyBA5O,OAAA,CAAQs2D,MAAR,GAAiB,IAAjB;MACA,KAAK,CAAAF,mBAAL,CAA0BrvC,KAA1B,EAAiCnY,KAAjC,EAAwC5O,OAAxC;IA1DK;EANiB;EAuE1B,CAAAkyD,qBAAA,EAAwB;IACtB,MAAMvkD,QAAA,GAAW,KAAKmkD,MAAL,CAAY,KAAKhmB,kBAAL,GAA0B,CAAtC,CAAjB;IAEA,IAAI,KAAK37B,oBAAT,EAA+B;MAE7B,KAAK,CAAAkiD,QAAL,CAAe,KAAKE,kBAApB,EAAwC;QAAED,QAAA,EAAU;MAAZ,CAAxC;IAF6B;IAI/B,KAAK,CAAA7iC,cAAL,CAAqB9hB,QAArB;EAPsB;EAexBwwB,sBAAsBthB,KAAtB,EAA6B;IAC3B,IAAI,CAAC,KAAKkuC,WAAV,EAAuB;MACrB,OAAO,IAAP;IADqB;IAGvB,MAAM/iD,CAAA,GAAI,KAAK+iD,WAAL,CAAiBoH,OAAjB,CAAyBt1C,KAAzB,CAAV;IACA,IAAI7U,CAAA,GAAI,CAAR,EAAW;MACT,OAAO,IAAP;IADS;IAGX,OAAOA,CAAA,GAAI,CAAX;EAR2B;EA0B7B61B,mBAAmB;IACjBvgB,UADiB;IAEjBwgB,SAAA,GAAY,IAFK;IAGjBiB,mBAAA,GAAsB,KAHL;IAIjB11B,qBAAA,GAAwB;EAJP,CAAnB,EAKG;IACD,IAAI,CAAC,KAAK/H,WAAV,EAAuB;MACrB;IADqB;IAGvB,MAAMqM,QAAA,GACJgpB,MAAA,CAAOC,SAAP,CAAiBtZ,UAAjB,KAAgC,KAAKw0C,MAAL,CAAYx0C,UAAA,GAAa,CAAzB,CADlC;IAEA,IAAI,CAAC3P,QAAL,EAAe;MACb3H,OAAA,CAAQK,KAAR,CACG,wBAAuBiX,UAAW,wCADrC;MAGA;IAJa;IAOf,IAAI,KAAKnN,oBAAL,IAA6B,CAAC2tB,SAAlC,EAA6C;MAC3C,KAAKm0B,qBAAL,CAA2B30C,UAA3B,EAAoE,IAApE;MACA;IAF2C;IAI7C,IAAImH,CAAA,GAAI,CAAR;MACEC,CAAA,GAAI,CADN;IAEA,IAAImP,KAAA,GAAQ,CAAZ;MACEC,MAAA,GAAS,CADX;MAEEgjC,UAFF;MAGEC,WAHF;IAIA,MAAMnjC,iBAAA,GAAoBjmB,QAAA,CAAS+J,QAAT,GAAoB,GAApB,KAA4B,CAAtD;IACA,MAAMs/C,SAAA,GACH,CAAApjC,iBAAA,GAAoBjmB,QAAA,CAASmmB,MAA7B,GAAsCnmB,QAAA,CAASkmB,KAA/C,IACDlmB,QAAA,CAASoZ,KADT,GAEA4tC,uBAAA,CAAcC,gBAHhB;IAIA,MAAMqC,UAAA,GACH,CAAArjC,iBAAA,GAAoBjmB,QAAA,CAASkmB,KAA7B,GAAqClmB,QAAA,CAASmmB,MAA9C,IACDnmB,QAAA,CAASoZ,KADT,GAEA4tC,uBAAA,CAAcC,gBAHhB;IAIA,IAAI7tC,KAAA,GAAQ,CAAZ;IACA,QAAQ+W,SAAA,CAAU,CAAV,EAAa9iB,IAArB;MACE,KAAK,KAAL;QACEyJ,CAAA,GAAIqZ,SAAA,CAAU,CAAV,CAAJ;QACApZ,CAAA,GAAIoZ,SAAA,CAAU,CAAV,CAAJ;QACA/W,KAAA,GAAQ+W,SAAA,CAAU,CAAV,CAAR;QAKArZ,CAAA,GAAIA,CAAA,KAAM,IAAN,GAAaA,CAAb,GAAiB,CAArB;QACAC,CAAA,GAAIA,CAAA,KAAM,IAAN,GAAaA,CAAb,GAAiBuyC,UAArB;QACA;MACF,KAAK,KAAL;MACA,KAAK,MAAL;QACElwC,KAAA,GAAQ,UAAR;QACA;MACF,KAAK,MAAL;MACA,KAAK,OAAL;QACErC,CAAA,GAAIoZ,SAAA,CAAU,CAAV,CAAJ;QACA/W,KAAA,GAAQ,YAAR;QAGA,IAAIrC,CAAA,KAAM,IAAN,IAAc,KAAK8wC,SAAvB,EAAkC;UAChC/wC,CAAA,GAAI,KAAK+wC,SAAL,CAAe1wC,IAAnB;UACAJ,CAAA,GAAI,KAAK8wC,SAAL,CAAe3wC,GAAnB;QAFgC,CAAlC,MAGO,IAAI,OAAOH,CAAP,KAAa,QAAb,IAAyBA,CAAA,GAAI,CAAjC,EAAoC;UAGzCA,CAAA,GAAIuyC,UAAJ;QAHyC;QAK3C;MACF,KAAK,MAAL;MACA,KAAK,OAAL;QACExyC,CAAA,GAAIqZ,SAAA,CAAU,CAAV,CAAJ;QACAjK,KAAA,GAAQmjC,SAAR;QACAljC,MAAA,GAASmjC,UAAT;QACAlwC,KAAA,GAAQ,aAAR;QACA;MACF,KAAK,MAAL;QACEtC,CAAA,GAAIqZ,SAAA,CAAU,CAAV,CAAJ;QACApZ,CAAA,GAAIoZ,SAAA,CAAU,CAAV,CAAJ;QACAjK,KAAA,GAAQiK,SAAA,CAAU,CAAV,IAAerZ,CAAvB;QACAqP,MAAA,GAASgK,SAAA,CAAU,CAAV,IAAepZ,CAAxB;QACA,IAAI+xC,QAAA,GAAWroC,2BAAf;UACEsoC,QAAA,GAAWroC,0BADb;QAGA,IAEE,KAAKijC,iBAFP,EAGE;UACAmF,QAAA,GAAWC,QAAA,GAAW,CAAtB;QADA;QAGFI,UAAA,GACG,MAAKjtD,SAAL,CAAeymB,WAAf,GAA6BmmC,QAA7B,IACD5iC,KADA,GAEA8gC,uBAAA,CAAcC,gBAHhB;QAIAmC,WAAA,GACG,MAAKltD,SAAL,CAAeumB,YAAf,GAA8BsmC,QAA9B,IACD5iC,MADA,GAEA6gC,uBAAA,CAAcC,gBAHhB;QAIA7tC,KAAA,GAAQ9Q,IAAA,CAAKihB,GAAL,CAASjhB,IAAA,CAAKqT,GAAL,CAASwtC,UAAT,CAAT,EAA+B7gD,IAAA,CAAKqT,GAAL,CAASytC,WAAT,CAA/B,CAAR;QACA;MACF;QACE/wD,OAAA,CAAQK,KAAR,CACG,wBAAuBy3B,SAAA,CAAU,CAAV,EAAa9iB,IAAK,oCAD5C;QAGA;IAlEJ;IAqEA,IAAI,CAAC3R,qBAAL,EAA4B;MAC1B,IAAI0d,KAAA,IAASA,KAAA,KAAU,KAAKqrC,aAA5B,EAA2C;QACzC,KAAK3hD,iBAAL,GAAyBsW,KAAzB;MADyC,CAA3C,MAEO,IAAI,KAAKqrC,aAAL,KAAuBlkC,uBAA3B,EAA0C;QAC/C,KAAKzd,iBAAL,GAAyBC,6BAAzB;MAD+C;IAHvB;IAQ5B,IAAIqW,KAAA,KAAU,UAAV,IAAwB,CAAC+W,SAAA,CAAU,CAAV,CAA7B,EAA2C;MACzC,KAAK,CAAArO,cAAL,CAAqB9hB,QAArB;MACA;IAFyC;IAK3C,MAAMupD,YAAA,GAAe,CACnBvpD,QAAA,CAASu9C,QAAT,CAAkBiM,sBAAlB,CAAyC1yC,CAAzC,EAA4CC,CAA5C,CADmB,EAEnB/W,QAAA,CAASu9C,QAAT,CAAkBiM,sBAAlB,CAAyC1yC,CAAA,GAAIoP,KAA7C,EAAoDnP,CAAA,GAAIoP,MAAxD,CAFmB,CAArB;IAIA,IAAIhP,IAAA,GAAO7O,IAAA,CAAKihB,GAAL,CAASggC,YAAA,CAAa,CAAb,EAAgB,CAAhB,CAAT,EAA6BA,YAAA,CAAa,CAAb,EAAgB,CAAhB,CAA7B,CAAX;IACA,IAAIryC,GAAA,GAAM5O,IAAA,CAAKihB,GAAL,CAASggC,YAAA,CAAa,CAAb,EAAgB,CAAhB,CAAT,EAA6BA,YAAA,CAAa,CAAb,EAAgB,CAAhB,CAA7B,CAAV;IAEA,IAAI,CAACn4B,mBAAL,EAA0B;MAIxBja,IAAA,GAAO7O,IAAA,CAAK2f,GAAL,CAAS9Q,IAAT,EAAe,CAAf,CAAP;MACAD,GAAA,GAAM5O,IAAA,CAAK2f,GAAL,CAAS/Q,GAAT,EAAc,CAAd,CAAN;IALwB;IAO1B,KAAK,CAAA4K,cAAL,CAAqB9hB,QAArB,EAAgD;MAAEmX,IAAF;MAAQD;IAAR,CAAhD;EAjIC;EAoIHuyC,gBAAgBC,SAAhB,EAA2B;IACzB,MAAMzyC,YAAA,GAAe,KAAKwtC,aAA1B;IACA,MAAM3hD,iBAAA,GAAoB,KAAK8hD,kBAA/B;IACA,MAAM+E,oBAAA,GACJx4B,UAAA,CAAWruB,iBAAX,MAAkCmU,YAAlC,GACI3O,IAAA,CAAKC,KAAL,CAAW0O,YAAA,GAAe,KAA1B,IAAmC,GADvC,GAEInU,iBAHN;IAKA,MAAM6M,UAAA,GAAa+5C,SAAA,CAAUrrD,EAA7B;IACA,MAAMurD,eAAA,GAAkB,KAAKzF,MAAL,CAAYx0C,UAAA,GAAa,CAAzB,CAAxB;IACA,MAAMzT,SAAA,GAAY,KAAKA,SAAvB;IACA,MAAM2tD,OAAA,GAAUD,eAAA,CAAgBE,YAAhB,CACd5tD,SAAA,CAAU2N,UAAV,GAAuB6/C,SAAA,CAAU5yC,CADnB,EAEd5a,SAAA,CAAU4N,SAAV,GAAsB4/C,SAAA,CAAU3yC,CAFlB,CAAhB;IAIA,MAAMgzC,OAAA,GAAUzhD,IAAA,CAAKC,KAAL,CAAWshD,OAAA,CAAQ,CAAR,CAAX,CAAhB;IACA,MAAMG,MAAA,GAAS1hD,IAAA,CAAKC,KAAL,CAAWshD,OAAA,CAAQ,CAAR,CAAX,CAAf;IAEA,IAAIvwC,aAAA,GAAiB,SAAQ3J,UAAT,EAApB;IACA,IAAI,CAAC,KAAKnN,oBAAV,EAAgC;MAC9B8W,aAAA,IAAkB,SAAQqwC,oBAAqB,IAAGI,OAAQ,IAAGC,MAA5C,EAAjB;IAD8B;IAIhC,KAAKnC,SAAL,GAAiB;MACfl4C,UADe;MAEfyJ,KAAA,EAAOuwC,oBAFQ;MAGfzyC,GAAA,EAAK8yC,MAHU;MAIf7yC,IAAA,EAAM4yC,OAJS;MAKfhgD,QAAA,EAAU,KAAKq0B,cALA;MAMf9kB;IANe,CAAjB;EAvByB;EAiC3BzN,OAAA,EAAS;IACP,MAAMub,OAAA,GAAU,KAAKq8B,gBAAL,EAAhB;IACA,MAAMwG,YAAA,GAAe7iC,OAAA,CAAQd,KAA7B;MACE4jC,eAAA,GAAkBD,YAAA,CAAa1vD,MADjC;IAGA,IAAI2vD,eAAA,KAAoB,CAAxB,EAA2B;MACzB;IADyB;IAG3B,MAAMC,YAAA,GAAe7hD,IAAA,CAAK2f,GAAL,CAASu5B,kBAAT,EAA6B,IAAI0I,eAAJ,GAAsB,CAAnD,CAArB;IACA,KAAK,CAAA1H,MAAL,CAAaP,MAAb,CAAoBkI,YAApB,EAAkC/iC,OAAA,CAAQC,GAA1C;IAEA,KAAKrqB,cAAL,CAAoBgU,qBAApB,CAA0CoW,OAA1C;IAEA,MAAMgjC,cAAA,GACJ,KAAK5C,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAAhC,KACC,KAAKmvD,WAAL,KAAqBv8C,oBAAA,CAAWkX,IAAhC,IACC,KAAKqlC,WAAL,KAAqBv8C,oBAAA,CAAW+W,QADjC,CAFH;IAIA,MAAMmpC,SAAA,GAAY,KAAKlsB,kBAAvB;IACA,IAAImsB,iBAAA,GAAoB,KAAxB;IAEA,WAAWpnD,IAAX,IAAmB+mD,YAAnB,EAAiC;MAC/B,IAAI/mD,IAAA,CAAKmF,OAAL,GAAe,GAAnB,EAAwB;QACtB;MADsB;MAGxB,IAAInF,IAAA,CAAK7E,EAAL,KAAYgsD,SAAZ,IAAyBD,cAA7B,EAA6C;QAC3CE,iBAAA,GAAoB,IAApB;QACA;MAF2C;IAJd;IASjC,KAAKhG,qBAAL,CACEgG,iBAAA,GAAoBD,SAApB,GAAgCJ,YAAA,CAAa,CAAb,EAAgB5rD,EADlD;IAIA,KAAKorD,eAAL,CAAqBriC,OAAA,CAAQkB,KAA7B;IACA,KAAKrzB,QAAL,CAAcgD,QAAd,CAAuB,gBAAvB,EAAyC;MACvCC,MAAA,EAAQ,IAD+B;MAEvC7E,QAAA,EAAU,KAAKw0D;IAFwB,CAAzC;EAlCO;EAwCTvpC,gBAAgByD,OAAhB,EAAyB;IACvB,OAAO,KAAK7lB,SAAL,CAAemI,QAAf,CAAwB0d,OAAxB,CAAP;EADuB;EAIzBtW,MAAA,EAAQ;IACN,KAAKvP,SAAL,CAAeuP,KAAf;EADM;EAIR,IAAI8+C,eAAJA,CAAA,EAAsB;IACpB,OAAO1nC,gBAAA,CAAiB,KAAK3mB,SAAtB,EAAiC05B,SAAjC,KAA+C,KAAtD;EADoB;EAItB,IAAIpzB,oBAAJA,CAAA,EAA2B;IACzB,OAAO,KAAKyW,qBAAL,KAA+B2H,+BAAA,CAAsBG,UAA5D;EADyB;EAI3B,IAAIi5B,0BAAJA,CAAA,EAAiC;IAC/B,OAAO,KAAK/gC,qBAAL,KAA+B2H,+BAAA,CAAsBE,QAA5D;EAD+B;EAIjC,IAAIrB,4BAAJA,CAAA,EAAmC;IACjC,OAAO,KAAKjd,oBAAL,GACH,KADG,GAEH,KAAKtG,SAAL,CAAe0mB,WAAf,GAA6B,KAAK1mB,SAAL,CAAeymB,WAFhD;EADiC;EAMnC,IAAInD,0BAAJA,CAAA,EAAiC;IAC/B,OAAO,KAAKhd,oBAAL,GACH,KADG,GAEH,KAAKtG,SAAL,CAAewmB,YAAf,GAA8B,KAAKxmB,SAAL,CAAeumB,YAFjD;EAD+B;EAMjCghC,iBAAA,EAAmB;IACjB,MAAMn9B,KAAA,GACF,KAAKogC,WAAL,KAAqBv8C,oBAAA,CAAWkX,IAAhC,GACI,KAAK,CAAA+hC,mBAAL,CAA0B6E,KAD9B,GAEI,KAAK9D,MAHb;MAIEv9B,UAAA,GAAa,KAAK8/B,WAAL,KAAqBv8C,oBAAA,CAAWgX,UAJ/C;MAKE0F,GAAA,GAAMD,UAAA,IAAc,KAAK2jC,eAL3B;IAOA,OAAO,IAAA9jC,4BAAA,EAAmB;MACxBC,QAAA,EAAU,KAAKxqB,SADS;MAExBoqB,KAFwB;MAGxBK,gBAAA,EAAkB,IAHM;MAIxBC,UAJwB;MAKxBC;IALwB,CAAnB,CAAP;EARiB;EAiBnB1hB,QAAA,EAAU;IACR,WAAWnF,QAAX,IAAuB,KAAKmkD,MAA5B,EAAoC;MAClC,IAAInkD,QAAA,CAASE,cAAT,KAA4BC,yBAAA,CAAgBC,QAAhD,EAA0D;QACxDJ,QAAA,CAASkF,KAAT;MADwD;IADxB;EAD5B;EAWVm4C,iBAAA,EAAmB;IACjB,WAAWr9C,QAAX,IAAuB,KAAKmkD,MAA5B,EAAoC;MAClCnkD,QAAA,CAAS69C,eAAT;IADkC;EADnB;EAUnB,MAAM,CAAAE,mBAANA,CAA2B/9C,QAA3B,EAAqC;IACnC,IAAIA,QAAA,CAASsK,OAAb,EAAsB;MACpB,OAAOtK,QAAA,CAASsK,OAAhB;IADoB;IAGtB,IAAI;MACF,MAAMA,OAAA,GAAU,MAAM,KAAK3W,WAAL,CAAiBwrC,OAAjB,CAAyBn/B,QAAA,CAAS3B,EAAlC,CAAtB;MACA,IAAI,CAAC2B,QAAA,CAASsK,OAAd,EAAuB;QACrBtK,QAAA,CAAS49C,UAAT,CAAoBtzC,OAApB;MADqB;MAGvB,IAAI,CAAC,KAAKzO,WAAL,CAAiBg0B,iBAAjB,GAAqCvlB,OAAA,CAAQg9C,GAA7C,CAAL,EAAwD;QACtD,KAAKzrD,WAAL,CAAiBm0B,YAAjB,CAA8BhwB,QAAA,CAAS3B,EAAvC,EAA2CiM,OAAA,CAAQg9C,GAAnD;MADsD;MAGxD,OAAOh9C,OAAP;IARE,CAAJ,CASE,OAAO7R,MAAP,EAAe;MACfJ,OAAA,CAAQK,KAAR,CAAc,kCAAd,EAAkDD,MAAlD;MACA,OAAO,IAAP;IAFe;EAbkB;EAmBrC,CAAAwlD,eAAgB72B,OAAhB,EAAyB;IACvB,IAAIA,OAAA,CAAQkB,KAAR,EAAejqB,EAAf,KAAsB,CAA1B,EAA6B;MAC3B,OAAO,IAAP;IAD2B,CAA7B,MAEO,IAAI+oB,OAAA,CAAQmB,IAAR,EAAclqB,EAAd,KAAqB,KAAK2E,UAA9B,EAA0C;MAC/C,OAAO,KAAP;IAD+C;IAGjD,QAAQ,KAAK0jD,WAAb;MACE,KAAKv8C,oBAAA,CAAWkX,IAAhB;QACE,OAAO,KAAK,CAAA+hC,mBAAL,CAA0B4E,UAAjC;MACF,KAAK79C,oBAAA,CAAWgX,UAAhB;QACE,OAAO,KAAK3Q,MAAL,CAAYgT,KAAnB;IAJJ;IAMA,OAAO,KAAKhT,MAAL,CAAYmT,IAAnB;EAZuB;EAezB7jB,eAAey3C,qBAAf,EAAsC;IACpC,MAAM0S,YAAA,GAAe1S,qBAAA,IAAyB,KAAKkM,gBAAL,EAA9C;IACA,MAAMtF,WAAA,GAAc,KAAK,CAAAF,cAAL,CAAqBgM,YAArB,CAApB;IACA,MAAMvS,cAAA,GACJ,KAAK8P,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAAhC,IACA,KAAKmvD,WAAL,KAAqBv8C,oBAAA,CAAWgX,UAFlC;IAIA,MAAMnhB,QAAA,GAAW,KAAKhD,cAAL,CAAoBw6C,kBAApB,CACfyS,YADe,EAEf,KAAK9F,MAFU,EAGfhG,WAHe,EAIfzG,cAJe,CAAjB;IAOA,IAAI13C,QAAJ,EAAc;MACZ,KAAK,CAAA+9C,mBAAL,CAA0B/9C,QAA1B,EAAoChI,IAApC,CAAyC,MAAM;QAC7C,KAAKgF,cAAL,CAAoBq7C,UAApB,CAA+Br4C,QAA/B;MAD6C,CAA/C;MAGA,OAAO,IAAP;IAJY;IAMd,OAAO,KAAP;EApBoC;EA2BtC,IAAI4L,iBAAJA,CAAA,EAAwB;IACtB,MAAMy7C,aAAA,GAAgB,KAAKlD,MAAL,CAAY,CAAZ,CAAtB;IACA,KAAK,IAAI9pD,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAK,KAAK6pD,MAAL,CAAY5pD,MAA5B,EAAoCF,CAAA,GAAIC,EAA7C,EAAiD,EAAED,CAAnD,EAAsD;MACpD,MAAM2F,QAAA,GAAW,KAAKmkD,MAAL,CAAY9pD,CAAZ,CAAjB;MACA,IACE2F,QAAA,CAASkmB,KAAT,KAAmBmhC,aAAA,CAAcnhC,KAAjC,IACAlmB,QAAA,CAASmmB,MAAT,KAAoBkhC,aAAA,CAAclhC,MAFpC,EAGE;QACA,OAAO,KAAP;MADA;IALkD;IAStD,OAAO,IAAP;EAXsB;EAkBxB7U,iBAAA,EAAmB;IACjB,IAAIk5C,kBAAJ;IACA,OAAO,KAAKrG,MAAL,CAAY5a,GAAZ,CAAgBvpC,QAAA,IAAY;MACjC,MAAMu9C,QAAA,GAAWv9C,QAAA,CAASsK,OAAT,CAAiBkzC,WAAjB,CAA6B;QAAEpkC,KAAA,EAAO;MAAT,CAA7B,CAAjB;MACA,MAAM4nB,WAAA,GAAc,IAAA9X,+BAAA,EAAsBq0B,QAAtB,CAApB;MACA,IAAIiN,kBAAA,KAAuB9jD,SAA3B,EAAsC;QACpC8jD,kBAAA,GAAqBxpB,WAArB;MADoC,CAAtC,MAEO,IACL,KAAK3jC,qBAAL,IACA2jC,WAAA,KAAgBwpB,kBAFX,EAGL;QAEA,OAAO;UACLtkC,KAAA,EAAOq3B,QAAA,CAASp3B,MADX;UAELA,MAAA,EAAQo3B,QAAA,CAASr3B,KAFZ;UAGLnc,QAAA,EAAW,CAAAwzC,QAAA,CAASxzC,QAAT,GAAoB,EAApB,IAA0B;QAHhC,CAAP;MAFA;MAQF,OAAO;QACLmc,KAAA,EAAOq3B,QAAA,CAASr3B,KADX;QAELC,MAAA,EAAQo3B,QAAA,CAASp3B,MAFZ;QAGLpc,QAAA,EAAUwzC,QAAA,CAASxzC;MAHd,CAAP;IAhBiC,CAA5B,CAAP;EAFiB;EA6BnB,IAAIsC,4BAAJA,CAAA,EAAmC;IACjC,IAAI,CAAC,KAAK1Y,WAAV,EAAuB;MACrB,OAAOV,OAAA,CAAQC,OAAR,CAAgB,IAAhB,CAAP;IADqB;IAGvB,IAAI,CAAC,KAAK8rD,6BAAV,EAAyC;MACvC3mD,OAAA,CAAQK,KAAR,CAAc,oDAAd;MAGA,OAAO,KAAK/E,WAAL,CAAiB0+C,wBAAjB,EAAP;IAJuC;IAMzC,OAAO,KAAK2M,6BAAZ;EAViC;EAiBnC,IAAI3yC,4BAAJA,CAAiCjK,OAAjC,EAA0C;IACxC,IAAI,EAAEA,OAAA,YAAmBnP,OAAnB,CAAN,EAAmC;MACjC,MAAM,IAAInB,KAAJ,CAAW,yCAAwCsQ,OAAzC,EAAV,CAAN;IADiC;IAGnC,IAAI,CAAC,KAAKzO,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAI,CAAC,KAAKqrD,6BAAV,EAAyC;MAGvC;IAHuC;IAKzC,KAAKA,6BAAL,GAAqC58C,OAArC;IAEA,KAAK0Y,OAAL,CAAa,KAAb,EAAoB;MAAEzO,4BAAA,EAA8BjK;IAAhC,CAApB;IAEA,KAAKnN,QAAL,CAAcgD,QAAd,CAAuB,8BAAvB,EAAuD;MACrDC,MAAA,EAAQ,IAD6C;MAErDkK;IAFqD,CAAvD;EAhBwC;EAyB1C,IAAI8H,UAAJA,CAAA,EAAiB;IACf,OAAO,KAAKw8C,WAAZ;EADe;EASjB,IAAIx8C,UAAJA,CAAeuO,IAAf,EAAqB;IAUnB,IAAI,KAAKiuC,WAAL,KAAqBjuC,IAAzB,EAA+B;MAC7B;IAD6B;IAG/B,IAAI,CAAC,IAAA/H,2BAAA,EAAkB+H,IAAlB,CAAL,EAA8B;MAC5B,MAAM,IAAI3mB,KAAJ,CAAW,wBAAuB2mB,IAAxB,EAAV,CAAN;IAD4B;IAG9B,IAAI,KAAKzV,UAAL,GAAkBy+C,eAAA,CAAgBC,sBAAtC,EAA8D;MAC5D;IAD4D;IAG9D,KAAKoG,mBAAL,GAA2B,KAAKpB,WAAhC;IAEA,KAAKA,WAAL,GAAmBjuC,IAAnB;IACA,KAAKxjB,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;MAAEC,MAAA,EAAQ,IAAV;MAAgBugB;IAAhB,CAA5C;IAEA,KAAKyvC,iBAAL,CAA0C,KAAK/pB,kBAA/C;EAxBmB;EA2BrB+pB,kBAAkBv4C,UAAA,GAAa,IAA/B,EAAqC;IACnC,MAAMzF,UAAA,GAAa,KAAKw8C,WAAxB;MACEvqD,MAAA,GAAS,KAAKA,MADhB;IAGAA,MAAA,CAAO9C,SAAP,CAAiB2f,MAAjB,CACE,kBADF,EAEE9O,UAAA,KAAeC,oBAAA,CAAWgX,UAF5B;IAIAhlB,MAAA,CAAO9C,SAAP,CAAiB2f,MAAjB,CAAwB,eAAxB,EAAyC9O,UAAA,KAAeC,oBAAA,CAAWiX,OAAnE;IAEA,IAAI,CAAC,KAAKztB,WAAN,IAAqB,CAACgc,UAA1B,EAAsC;MACpC;IADoC;IAItC,IAAIzF,UAAA,KAAeC,oBAAA,CAAWkX,IAA9B,EAAoC;MAClC,KAAK,CAAAkmC,qBAAL;IADkC,CAApC,MAEO,IAAI,KAAKO,mBAAL,KAA6B39C,oBAAA,CAAWkX,IAA5C,EAAkD;MAGvD,KAAKomC,iBAAL;IAHuD;IAQzD,IAAI,KAAK7C,kBAAL,IAA2Bn7B,KAAA,CAAM,KAAKm7B,kBAAX,CAA/B,EAA+D;MAC7D,KAAK,CAAAF,QAAL,CAAe,KAAKE,kBAApB,EAAwC;QAAED,QAAA,EAAU;MAAZ,CAAxC;IAD6D;IAG/D,KAAKL,qBAAL,CAA2B30C,UAA3B,EAAoE,IAApE;IACA,KAAK9D,MAAL;EA5BmC;EAkCrC,IAAIzB,UAAJA,CAAA,EAAiB;IACf,OAAO,KAAKo9C,WAAZ;EADe;EASjB,IAAIp9C,UAAJA,CAAeqO,IAAf,EAAqB;IAUnB,IAAI,KAAK+uC,WAAL,KAAqB/uC,IAAzB,EAA+B;MAC7B;IAD6B;IAG/B,IAAI,CAAC,IAAA9H,2BAAA,EAAkB8H,IAAlB,CAAL,EAA8B;MAC5B,MAAM,IAAI3mB,KAAJ,CAAW,wBAAuB2mB,IAAxB,EAAV,CAAN;IAD4B;IAG9B,KAAK+uC,WAAL,GAAmB/uC,IAAnB;IACA,KAAKxjB,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;MAAEC,MAAA,EAAQ,IAAV;MAAgBugB;IAAhB,CAA5C;IAEA,KAAKgvC,iBAAL,CAA0C,KAAKtpB,kBAA/C;EAnBmB;EAsBrBspB,kBAAkB93C,UAAA,GAAa,IAA/B,EAAqC;IACnC,IAAI,CAAC,KAAKhc,WAAV,EAAuB;MACrB;IADqB;IAGvB,MAAMwI,MAAA,GAAS,KAAKA,MAApB;MACE8rD,KAAA,GAAQ,KAAK9D,MADf;IAGA,IAAI,KAAKuC,WAAL,KAAqBv8C,oBAAA,CAAWkX,IAApC,EAA0C;MACxC,KAAK,CAAAkmC,qBAAL;IADwC,CAA1C,MAEO;MAELprD,MAAA,CAAOo8B,WAAP,GAAqB,EAArB;MAEA,IAAI,KAAKivB,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAApC,EAA0C;QACxC,WAAWyI,QAAX,IAAuB,KAAKmkD,MAA5B,EAAoC;UAClChoD,MAAA,CAAOi4B,MAAP,CAAcp0B,QAAA,CAASwlB,GAAvB;QADkC;MADI,CAA1C,MAIO;QACL,MAAM4iC,MAAA,GAAS,KAAKZ,WAAL,GAAmB,CAAlC;QACA,IAAI/2C,MAAA,GAAS,IAAb;QACA,KAAK,IAAIpW,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAK2tD,KAAA,CAAM1tD,MAAtB,EAA8BF,CAAA,GAAIC,EAAvC,EAA2C,EAAED,CAA7C,EAAgD;UAC9C,IAAIoW,MAAA,KAAW,IAAf,EAAqB;YACnBA,MAAA,GAASrd,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAT;YACAzjB,MAAA,CAAOgpB,SAAP,GAAmB,QAAnB;YACAt9B,MAAA,CAAOi4B,MAAP,CAAc3jB,MAAd;UAHmB,CAArB,MAIO,IAAIpW,CAAA,GAAI,CAAJ,KAAU+tD,MAAd,EAAsB;YAC3B33C,MAAA,GAASA,MAAA,CAAOg6C,SAAP,CAAiB,KAAjB,CAAT;YACAtuD,MAAA,CAAOi4B,MAAP,CAAc3jB,MAAd;UAF2B;UAI7BA,MAAA,CAAO2jB,MAAP,CAAc6zB,KAAA,CAAM5tD,CAAN,EAASmrB,GAAvB;QAT8C;MAH3C;IARF;IAyBP,IAAI,CAAC7V,UAAL,EAAiB;MACf;IADe;IAMjB,IAAI,KAAKi1C,kBAAL,IAA2Bn7B,KAAA,CAAM,KAAKm7B,kBAAX,CAA/B,EAA+D;MAC7D,KAAK,CAAAF,QAAL,CAAe,KAAKE,kBAApB,EAAwC;QAAED,QAAA,EAAU;MAAZ,CAAxC;IAD6D;IAG/D,KAAKL,qBAAL,CAA2B30C,UAA3B,EAAoE,IAApE;IACA,KAAK9D,MAAL;EA5CmC;EAkDrC6+C,gBAAgBlqD,iBAAhB,EAAmC6Z,QAAA,GAAW,KAA9C,EAAqD;IACnD,QAAQ,KAAKqsC,WAAb;MACE,KAAKv8C,oBAAA,CAAWiX,OAAhB;QAAyB;UACvB,MAAM;cAAEkF;YAAF,IAAY,KAAKm9B,gBAAL,EAAlB;YACE74C,UAAA,GAAa,IAAIiZ,GAAJ,EADf;UAIA,WAAW;YAAExlB,EAAF;YAAM0Y,CAAN;YAAS1O,OAAT;YAAkBggB;UAAlB,CAAX,IAA+C/B,KAA/C,EAAsD;YACpD,IAAIje,OAAA,KAAY,CAAZ,IAAiBggB,YAAA,GAAe,GAApC,EAAyC;cACvC;YADuC;YAGzC,IAAIsiC,MAAA,GAAS//C,UAAA,CAAWvT,GAAX,CAAe0f,CAAf,CAAb;YACA,IAAI,CAAC4zC,MAAL,EAAa;cACX//C,UAAA,CAAWpT,GAAX,CAAeuf,CAAf,EAAmB4zC,MAAA,KAAW,EAA9B;YADW;YAGbA,MAAA,CAAO9lD,IAAP,CAAYxG,EAAZ;UARoD;UAWtD,WAAWssD,MAAX,IAAqB//C,UAAA,CAAW5Q,MAAX,EAArB,EAA0C;YACxC,MAAM2qB,YAAA,GAAegmC,MAAA,CAAOnG,OAAP,CAAehkD,iBAAf,CAArB;YACA,IAAImkB,YAAA,KAAiB,CAAC,CAAtB,EAAyB;cACvB;YADuB;YAGzB,MAAM1hB,QAAA,GAAW0nD,MAAA,CAAOpwD,MAAxB;YACA,IAAI0I,QAAA,KAAa,CAAjB,EAAoB;cAClB;YADkB;YAIpB,IAAIoX,QAAJ,EAAc;cACZ,KAAK,IAAIhgB,CAAA,GAAIsqB,YAAA,GAAe,CAAvB,EAA0BrqB,EAAA,GAAK,CAA/B,EAAkCD,CAAA,IAAKC,EAA5C,EAAgDD,CAAA,EAAhD,EAAqD;gBACnD,MAAMgwD,SAAA,GAAYM,MAAA,CAAOtwD,CAAP,CAAlB;kBACEuwD,UAAA,GAAaD,MAAA,CAAOtwD,CAAA,GAAI,CAAX,IAAgB,CAD/B;gBAEA,IAAIgwD,SAAA,GAAYO,UAAhB,EAA4B;kBAC1B,OAAOpqD,iBAAA,GAAoBoqD,UAA3B;gBAD0B;cAHuB;YADzC,CAAd,MAQO;cACL,KAAK,IAAIvwD,CAAA,GAAIsqB,YAAA,GAAe,CAAvB,EAA0BrqB,EAAA,GAAK2I,QAA/B,EAAyC5I,CAAA,GAAIC,EAAlD,EAAsDD,CAAA,EAAtD,EAA2D;gBACzD,MAAMgwD,SAAA,GAAYM,MAAA,CAAOtwD,CAAP,CAAlB;kBACEuwD,UAAA,GAAaD,MAAA,CAAOtwD,CAAA,GAAI,CAAX,IAAgB,CAD/B;gBAEA,IAAIgwD,SAAA,GAAYO,UAAhB,EAA4B;kBAC1B,OAAOA,UAAA,GAAapqD,iBAApB;gBAD0B;cAH6B;YADtD;YAUP,IAAI6Z,QAAJ,EAAc;cACZ,MAAMy9B,OAAA,GAAU6S,MAAA,CAAO,CAAP,CAAhB;cACA,IAAI7S,OAAA,GAAUt3C,iBAAd,EAAiC;gBAC/B,OAAOA,iBAAA,GAAoBs3C,OAApB,GAA8B,CAArC;cAD+B;YAFrB,CAAd,MAKO;cACL,MAAMC,MAAA,GAAS4S,MAAA,CAAO1nD,QAAA,GAAW,CAAlB,CAAf;cACA,IAAI80C,MAAA,GAASv3C,iBAAb,EAAgC;gBAC9B,OAAOu3C,MAAA,GAASv3C,iBAAT,GAA6B,CAApC;cAD8B;YAF3B;YAMP;UAvCwC;UAyC1C;QAzDuB;MA2DzB,KAAK2J,oBAAA,CAAWgX,UAAhB;QAA4B;UAC1B;QAD0B;MAG5B,KAAKhX,oBAAA,CAAWkX,IAAhB;MACA,KAAKlX,oBAAA,CAAW+W,QAAhB;QAA0B;UACxB,IAAI,KAAKsmC,WAAL,KAAqBn9C,oBAAA,CAAW9S,IAApC,EAA0C;YACxC;UADwC;UAG1C,MAAM6wD,MAAA,GAAS,KAAKZ,WAAL,GAAmB,CAAlC;UAEA,IAAIntC,QAAA,IAAY7Z,iBAAA,GAAoB,CAApB,KAA0B4nD,MAA1C,EAAkD;YAChD;UADgD,CAAlD,MAEO,IAAI,CAAC/tC,QAAD,IAAa7Z,iBAAA,GAAoB,CAApB,KAA0B4nD,MAA3C,EAAmD;YACxD;UADwD;UAG1D,MAAM;cAAE9hC;YAAF,IAAY,KAAKm9B,gBAAL,EAAlB;YACEmH,UAAA,GAAavwC,QAAA,GAAW7Z,iBAAA,GAAoB,CAA/B,GAAmCA,iBAAA,GAAoB,CADtE;UAGA,WAAW;YAAEnC,EAAF;YAAMgK,OAAN;YAAeggB;UAAf,CAAX,IAA4C/B,KAA5C,EAAmD;YACjD,IAAIjoB,EAAA,KAAOusD,UAAX,EAAuB;cACrB;YADqB;YAGvB,IAAIviD,OAAA,GAAU,CAAV,IAAeggB,YAAA,KAAiB,GAApC,EAAyC;cACvC,OAAO,CAAP;YADuC;YAGzC;UAPiD;UASnD;QAvBwB;IAhE5B;IA0FA,OAAO,CAAP;EA3FmD;EAkGrD3O,SAAA,EAAW;IACT,MAAMlZ,iBAAA,GAAoB,KAAK29B,kBAA/B;MACEn7B,UAAA,GAAa,KAAKA,UADpB;IAGA,IAAIxC,iBAAA,IAAqBwC,UAAzB,EAAqC;MACnC,OAAO,KAAP;IADmC;IAGrC,MAAM6nD,OAAA,GACJ,KAAKH,eAAL,CAAqBlqD,iBAArB,EAAyD,KAAzD,KAAmE,CADrE;IAGA,KAAKA,iBAAL,GAAyB8H,IAAA,CAAKihB,GAAL,CAAS/oB,iBAAA,GAAoBqqD,OAA7B,EAAsC7nD,UAAtC,CAAzB;IACA,OAAO,IAAP;EAXS;EAkBX2W,aAAA,EAAe;IACb,MAAMnZ,iBAAA,GAAoB,KAAK29B,kBAA/B;IAEA,IAAI39B,iBAAA,IAAqB,CAAzB,EAA4B;MAC1B,OAAO,KAAP;IAD0B;IAG5B,MAAMqqD,OAAA,GACJ,KAAKH,eAAL,CAAqBlqD,iBAArB,EAAyD,IAAzD,KAAkE,CADpE;IAGA,KAAKA,iBAAL,GAAyB8H,IAAA,CAAK2f,GAAL,CAASznB,iBAAA,GAAoBqqD,OAA7B,EAAsC,CAAtC,CAAzB;IACA,OAAO,IAAP;EAVa;EAwBfpoD,cAAc;IAAEC,YAAF;IAAgBH,WAAhB;IAA6BD;EAA7B,IAAuC,EAArD,EAAyD;IACvD,IAAI,CAAC,KAAK3O,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAI60D,QAAA,GAAW,KAAK/D,aAApB;IACA,IAAIliD,WAAA,GAAc,CAAlB,EAAqB;MACnBimD,QAAA,GAAWlgD,IAAA,CAAKC,KAAL,CAAWigD,QAAA,GAAWjmD,WAAX,GAAyB,GAApC,IAA2C,GAAtD;IADmB,CAArB,MAEO;MACLD,KAAA,KAAU,CAAV;MACA,GAAG;QACDkmD,QAAA,GACElgD,IAAA,CAAKwiD,IAAL,CAAW,CAAAtC,QAAA,GAAWpoC,6BAAX,EAAgC2qC,OAAjC,CAAyC,CAAzC,IAA8C,EAAxD,IAA8D,EADhE;MADC,CAAH,QAGS,EAAEzoD,KAAF,GAAU,CAAV,IAAekmD,QAAA,GAAWloC,mBAHnC;IAFK;IAOP,KAAK,CAAAokC,QAAL,CAAep8C,IAAA,CAAKihB,GAAL,CAASjJ,mBAAT,EAAoBkoC,QAApB,CAAf,EAA8C;MAC5C7D,QAAA,EAAU,KADkC;MAE5CjiD;IAF4C,CAA9C;EAduD;EAwBzDE,cAAc;IAAEF,YAAF;IAAgBH,WAAhB;IAA6BD;EAA7B,IAAuC,EAArD,EAAyD;IACvD,IAAI,CAAC,KAAK3O,WAAV,EAAuB;MACrB;IADqB;IAGvB,IAAI60D,QAAA,GAAW,KAAK/D,aAApB;IACA,IAAIliD,WAAA,GAAc,CAAd,IAAmBA,WAAA,GAAc,CAArC,EAAwC;MACtCimD,QAAA,GAAWlgD,IAAA,CAAKC,KAAL,CAAWigD,QAAA,GAAWjmD,WAAX,GAAyB,GAApC,IAA2C,GAAtD;IADsC,CAAxC,MAEO;MACLD,KAAA,KAAU,CAAV;MACA,GAAG;QACDkmD,QAAA,GACElgD,IAAA,CAAKsO,KAAL,CAAY,CAAA4xC,QAAA,GAAWpoC,6BAAX,EAAgC2qC,OAAjC,CAAyC,CAAzC,IAA8C,EAAzD,IAA+D,EADjE;MADC,CAAH,QAGS,EAAEzoD,KAAF,GAAU,CAAV,IAAekmD,QAAA,GAAWnoC,mBAHnC;IAFK;IAOP,KAAK,CAAAqkC,QAAL,CAAep8C,IAAA,CAAK2f,GAAL,CAAS5H,mBAAT,EAAoBmoC,QAApB,CAAf,EAA8C;MAC5C7D,QAAA,EAAU,KADkC;MAE5CjiD;IAF4C,CAA9C;EAduD;EAoBzD,CAAAwhD,yBAA0B/9B,MAAA,GAAS,KAAKjqB,SAAL,CAAeumB,YAAlD,EAAgE;IAC9D,IAAI0D,MAAA,KAAW,KAAK,CAAA68B,uBAApB,EAA8C;MAC5C,KAAK,CAAAA,uBAAL,GAAgC78B,MAAhC;MACAgD,kBAAA,CAASO,WAAT,CAAqB,2BAArB,EAAkD,GAAGvD,MAAO,IAA5D;IAF4C;EADgB;EAOhE,CAAAg9B,uBAAwB6H,OAAxB,EAAiC;IAC/B,WAAWC,KAAX,IAAoBD,OAApB,EAA6B;MAC3B,IAAIC,KAAA,CAAM5pD,MAAN,KAAiB,KAAKnF,SAA1B,EAAqC;QACnC,KAAK,CAAAgoD,wBAAL,CACE57C,IAAA,CAAKsO,KAAL,CAAWq0C,KAAA,CAAMC,aAAN,CAAoB,CAApB,EAAuBC,SAAlC,CADF;QAGA,KAAK,CAAA/zC,gBAAL,GAAyB,IAAzB;QACA;MALmC;IADV;EADE;EAYjC,IAAIA,gBAAJA,CAAA,EAAuB;IACrB,OAAQ,KAAK,CAAAA,gBAAL,KAA2B,CACjC,KAAKlb,SAAL,CAAekmB,SADkB,EAEjC,KAAKlmB,SAAL,CAAeqmB,UAFkB,CAAnC;EADqB;EAUvB,IAAInmB,oBAAJA,CAAA,EAA2B;IACzB,OAAO,KAAK,CAAAqmD,yBAAL,GACH,KAAK,CAAArmD,oBADF,GAEH6B,8BAAA,CAAqB7E,OAFzB;EADyB;EAS3B,IAAIgD,oBAAJA,CAAyB;IAAEqc,IAAF;IAAQ2yC,MAAA,GAAS;EAAjB,CAAzB,EAAkD;IAChD,IAAI,CAAC,KAAK,CAAA3I,yBAAV,EAAsC;MACpC,MAAM,IAAI3wD,KAAJ,CAAW,sCAAX,CAAN;IADoC;IAGtC,IAAI,KAAK,CAAAsK,oBAAL,KAA+Bqc,IAAnC,EAAyC;MACvC;IADuC;IAGzC,IAAI,CAACopC,2BAAA,CAA4BppC,IAA5B,CAAL,EAAwC;MACtC,MAAM,IAAI3mB,KAAJ,CAAW,kCAAiC2mB,IAAlC,EAAV,CAAN;IADsC;IAGxC,IAAI,CAAC,KAAK9kB,WAAV,EAAuB;MACrB;IADqB;IAGvB,KAAK,CAAAyI,oBAAL,GAA6Bqc,IAA7B;IACA,KAAKxjB,QAAL,CAAcgD,QAAd,CAAuB,6BAAvB,EAAsD;MACpDC,MAAA,EAAQ,IAD4C;MAEpDugB;IAFoD,CAAtD;IAKA,KAAK,CAAAgqC,yBAAL,CAAgCqE,UAAhC,CAA2CruC,IAA3C,EAAiD2yC,MAAjD;EAnBgD;EAuBlD,IAAIj2D,sBAAJA,CAA2B;IAAEmS,IAAF;IAAQrG;EAAR,CAA3B,EAA4C;IAC1C,IAAI,CAAC,KAAK,CAAAwhD,yBAAV,EAAsC;MACpC,MAAM,IAAI3wD,KAAJ,CAAW,sCAAX,CAAN;IADoC;IAGtC,KAAK,CAAA2wD,yBAAL,CAAgC4I,YAAhC,CAA6C/jD,IAA7C,EAAmDrG,KAAnD;EAJ0C;EAO5C6Z,QAAQwwC,QAAA,GAAW,KAAnB,EAA0BtO,UAAA,GAAannD,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAvC,EAA4D;IAC1D,IAAI,CAAC,KAAKnC,WAAV,EAAuB;MACrB;IADqB;IAGvB,WAAWqM,QAAX,IAAuB,KAAKmkD,MAA5B,EAAoC;MAClCnkD,QAAA,CAAS6L,MAAT,CAAgBmxC,UAAhB;IADkC;IAGpC,IAAI,KAAK,CAAAsG,cAAL,KAAyB,IAA7B,EAAmC;MACjCpoC,YAAA,CAAa,KAAK,CAAAooC,cAAlB;MACA,KAAK,CAAAA,cAAL,GAAuB,IAAvB;IAFiC;IAInC,IAAI,CAACgI,QAAL,EAAe;MACb,KAAKz/C,MAAL;IADa;EAX2C;AAjgE9C;AAtMhB7d,iBAAA,GAAA+O,SAAA;;;;;;;;;;;;;ACyBA,MAAMwuD,oBAAA,GAAuB;EAC3BC,QAAA,EAAU,mBADiB;EAE3BC,aAAA,EAAe,oCAFY;EAI3BC,sBAAA,EAAwB,mCAJG;EAK3BC,sBAAA,EAAwB,mCALG;EAM3BC,+BAAA,EAAiC,oBANN;EAO3BC,yCAAA,EAA2C,IAPhB;EAQ3BC,8CAAA,EAAgD,IARrB;EAS3BC,kDAAA,EAAoD,UATzB;EAU3BC,mDAAA,EAAqD,WAV1B;EAW3BC,qCAAA,EAAuC,IAXZ;EAY3BC,qCAAA,EAAuC,IAZZ;EAa3BC,yCAAA,EAA2C,QAbhB;EAc3BC,wCAAA,EAA0C,OAdf;EAe3BC,8CAAA,EACE,mDAhByB;EAiB3BC,mDAAA,EACE,6DAlByB;EAmB3BC,kCAAA,EAAoC,KAnBT;EAoB3BC,iCAAA,EAAmC,IApBR;EAsB3BC,iBAAA,EAAmB,mBAtBQ;EAuB3BC,aAAA,EAAe,eAvBY;EAwB3BC,gBAAA,EAAkB,eAxBS;EAyB3BC,iBAAA,EAAmB,4BAzBQ;EA2B3BC,gBAAA,EAAkB,gDA3BS;EA4B3BC,mBAAA,EAAqB,6CA5BM;EA6B3B,yBAAyB,gCA7BE;EA8B3B,2BAA2B,kCA9BA;EA+B3B,+BAA+B,2BA/BJ;EAgC3B,iCAAiC,6BAhCN;EAiC3BC,cAAA,EAAgB,kBAjCW;EAmC3BC,gBAAA,EAAkB,YAnCS;EAoC3BC,cAAA,EAAgB,UApCW;EAqC3BC,eAAA,EAAiB,gBArCU;EAsC3BC,iBAAA,EAAmB,aAtCQ;EAuC3BC,kBAAA,EAAoB,YAvCO;EAyC3BC,aAAA,EAAe,0CAzCY;EA0C3BC,kBAAA,EAAoB,gCA1CO;EA2C3BC,kBAAA,EAAoB,mBA3CO;EA4C3BC,yBAAA,EAA2B,6BA5CA;EA6C3BC,eAAA,EAAiB,6CA7CU;EA+C3BC,sBAAA,EAAwB,oBA/CG;EAiD3BC,sBAAA,EACE,2DAlDyB;EAmD3BC,kBAAA,EAAoB,oDAnDO;EAoD3BC,kBAAA,EACE,2DArDyB;EAuD3BC,0BAAA,EAA4B,eAvDD;EAwD3BC,4BAAA,EAA8B,aAxDH;EAyD3BC,sBAAA,EAAwB,aAzDG;EA0D3BC,4BAAA,EAA8B,oBA1DH;EA2D3BC,4BAAA,EAA8B,UA3DH;EA4D3BC,iCAAA,EAAmC,eA5DR;EA6D3BC,kCAAA,EAAoC;AA7DT,CAA7B;AA+DqE;EACnE7C,oBAAA,CAAqB8C,sBAArB,GAA8C,eAA9C;AADmE;AAIrE,SAASC,eAATA,CAAyB3nD,GAAzB,EAA8BtB,IAA9B,EAAoC;EAClC,QAAQsB,GAAR;IACE,KAAK,kBAAL;MACEA,GAAA,GAAO,oBAAmBtB,IAAA,CAAKkB,KAAL,KAAe,CAAf,GAAmB,KAAnB,GAA2B,OAAQ,GAA7D;MACA;IACF,KAAK,wBAAL;MACEI,GAAA,GAAO,0BAAyBtB,IAAA,CAAK0f,KAAL,KAAe,CAAf,GAAmB,KAAnB,GAA2B,OAAQ,GAAnE;MACA;EANJ;EAQA,OAAOwmC,oBAAA,CAAqB5kD,GAArB,KAA6B,EAApC;AATkC;AAapC,SAAS4nD,eAATA,CAAyBvqB,IAAzB,EAA+B3+B,IAA/B,EAAqC;EACnC,IAAI,CAACA,IAAL,EAAW;IACT,OAAO2+B,IAAP;EADS;EAGX,OAAOA,IAAA,CAAK5f,UAAL,CAAgB,sBAAhB,EAAwC,CAAChf,GAAD,EAAMiI,IAAN,KAAe;IAC5D,OAAOA,IAAA,IAAQhI,IAAR,GAAeA,IAAA,CAAKgI,IAAL,CAAf,GAA4B,OAAOA,IAAP,GAAc,IAAjD;EAD4D,CAAvD,CAAP;AAJmC;AAarC,MAAMw2C,QAAA,GAAW;EACf,MAAMvlB,WAANA,CAAA,EAAoB;IAClB,OAAO,OAAP;EADkB,CADL;EAKf,MAAMzkC,YAANA,CAAA,EAAqB;IACnB,OAAO,KAAP;EADmB,CALN;EASf,MAAMxC,GAANA,CAAUsP,GAAV,EAAetB,IAAA,GAAO,IAAtB,EAA4BmpD,QAAA,GAAWF,eAAA,CAAgB3nD,GAAhB,EAAqBtB,IAArB,CAAvC,EAAmE;IACjE,OAAOkpD,eAAA,CAAgBC,QAAhB,EAA0BnpD,IAA1B,CAAP;EADiE,CATpD;EAaf,MAAMtN,SAANA,CAAgBgqB,OAAhB,EAAyB;AAbV,CAAjB;AAtHA/zB,gBAAA,GAAA61D,QAAA;;;;;;;;;;;;ACyBA,IAAAn0D,SAAA,GAAAhC,mBAAA;AAQA,IAAA+B,SAAA,GAAA/B,mBAAA;AAQA,IAAA+gE,gCAAA,GAAA/gE,mBAAA;AACA,IAAAghE,yBAAA,GAAAhhE,mBAAA;AACA,IAAAiC,YAAA,GAAAjC,mBAAA;AACA,IAAA4zD,WAAA,GAAA5zD,mBAAA;AACA,IAAAmC,iBAAA,GAAAnC,mBAAA;AACA,IAAAihE,0BAAA,GAAAjhE,mBAAA;AACA,IAAAkhE,mBAAA,GAAAlhE,mBAAA;AACA,IAAAmhE,iBAAA,GAAAnhE,mBAAA;AACA,IAAAohE,mBAAA,GAAAphE,mBAAA;AACA,IAAAqhE,kBAAA,GAAArhE,mBAAA;AAoCA,MAAMshE,iBAAA,GAAoBrkC,gCAAA,CAAoBrtB,eAApB,IAAuC,QAAjE;AAEA,MAAM2xD,wBAAA,GAA2BA,CAAA,KAAM;EAEnC,OAAO,IAAP;AAFmC,CAAvC;AAqBA,MAAM7H,WAAN,CAAkB;EAChB,CAAAjqD,cAAA,GAAkBulD,wBAAA,CAAeC,YAAjC;EAEA,CAAAuM,oBAAA,GAAwB,KAAxB;EAEA,CAAApK,eAAA,GAAmB,IAAnB;EAEA,CAAAqK,SAAA,GAAa,IAAb;EAEA,CAAAC,gBAAA,GAAoB,IAApB;EAEA,CAAAC,WAAA,GAAe,IAAf;EAEA,CAAAnvD,cAAA,GAAkBC,yBAAA,CAAgB3O,OAAlC;EAEA,CAAA0L,aAAA,GAAiB/D,uBAAA,CAAc6nB,MAA/B;EAEA,CAAAsuC,kBAAA,GAAsB;IACpBC,aAAA,EAAe,IADK;IAEpBC,sBAAA,EAAwB,IAFJ;IAGpBC,kBAAA,EAAoB;EAHA,CAAtB;EAMA,CAAAC,WAAA,GAAe,IAAIh4B,OAAJ,EAAf;EAKA7lC,YAAYQ,OAAZ,EAAqB;IACnB,MAAM6J,SAAA,GAAY7J,OAAA,CAAQ6J,SAA1B;IACA,MAAMwhD,eAAA,GAAkBrrD,OAAA,CAAQqrD,eAAhC;IAEA,KAAKr/C,EAAL,GAAUhM,OAAA,CAAQgM,EAAlB;IACA,KAAKi5C,WAAL,GAAmB,SAAS,KAAKj5C,EAAjC;IACA,KAAK,CAAAymD,eAAL,GAAwBzyD,OAAA,CAAQyyD,eAAR,IAA2BmK,wBAAnD;IAEA,KAAK3kD,OAAL,GAAe,IAAf;IACA,KAAKqQ,SAAL,GAAiB,IAAjB;IACA,KAAK5Q,QAAL,GAAgB,CAAhB;IACA,KAAKqP,KAAL,GAAa/mB,OAAA,CAAQ+mB,KAAR,IAAiB+G,uBAA9B;IACA,KAAKo9B,QAAL,GAAgBG,eAAhB;IACA,KAAKqB,aAAL,GAAqBrB,eAAA,CAAgB3zC,QAArC;IACA,KAAKi1C,6BAAL,GACE3sD,OAAA,CAAQga,4BAAR,IAAwC,IAD1C;IAEA,KAAK,CAAAnP,aAAL,GAAsB7K,OAAA,CAAQ6K,aAAR,IAAyB/D,uBAAA,CAAc6nB,MAA7D;IACA,KAAK,CAAA7jB,cAAL,GACE9K,OAAA,CAAQ8K,cAAR,IAA0BulD,wBAAA,CAAeC,YAD3C;IAEA,KAAKvlD,kBAAL,GAA0B/K,OAAA,CAAQ+K,kBAAR,IAA8B,EAAxD;IACA,KAAKf,0BAAL,GACEhK,OAAA,CAAQgK,0BAAR,IAAsC,IADxC;IAEA,KAAKiB,eAAL,GAAuBjL,OAAA,CAAQiL,eAAR,IAA2B0xD,iBAAlD;IACA,KAAKzyD,UAAL,GAAkBlK,OAAA,CAAQkK,UAAR,IAAsB,IAAxC;IAEA,KAAKtH,QAAL,GAAgB5C,OAAA,CAAQ4C,QAAxB;IACA,KAAK+H,cAAL,GAAsB3K,OAAA,CAAQ2K,cAA9B;IACA,KAAK9H,IAAL,GAAY7C,OAAA,CAAQ6C,IAAR,IAAgB2uD,oBAA5B;IAEA,KAAK5E,UAAL,GAAkB,IAAlB;IACA,KAAK3G,MAAL,GAAc,IAAd;IAEE,KAAKqX,aAAL,GAAqB,CAAC,KAAK3yD,cAAL,EAAqB4yD,SAArB,EAAtB;IACA,KAAKC,UAAL,GAAkB3zD,SAAlB;IAEA,IAAI7J,OAAA,CAAQuxD,cAAZ,EAA4B;MAC1BvrD,OAAA,CAAQK,KAAR,CACE,uEADF;MAGA,KAAK4E,eAAL,GAAuB,CAAvB;IAJ0B;IAQ9B,KAAKwyD,oBAAL,GAA4B,IAA5B;IAEA,KAAKC,eAAL,GAAuB,IAAvB;IACA,KAAKC,qBAAL,GAA6B,IAA7B;IACA,KAAKC,SAAL,GAAiB,IAAjB;IACA,KAAKC,SAAL,GAAiB,IAAjB;IACA,KAAKC,QAAL,GAAgB,IAAhB;IACA,KAAKC,eAAL,GAAuB,IAAvB;IAEA,MAAM5qC,GAAA,GAAMpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;IACA1O,GAAA,CAAIiU,SAAJ,GAAgB,MAAhB;IACAjU,GAAA,CAAI+E,YAAJ,CAAiB,kBAAjB,EAAqC,KAAKlsB,EAA1C;IACAmnB,GAAA,CAAI+E,YAAJ,CAAiB,MAAjB,EAAyB,QAAzB;IACA,KAAKr1B,IAAL,CAAUmC,GAAV,CAAc,eAAd,EAA+B;MAAE6L,IAAA,EAAM,KAAK7E;IAAb,CAA/B,EAAkDrG,IAAlD,CAAuD0J,GAAA,IAAO;MAC5D8jB,GAAA,CAAI+E,YAAJ,CAAiB,YAAjB,EAA+B7oB,GAA/B;IAD4D,CAA9D;IAGA,KAAK8jB,GAAL,GAAWA,GAAX;IAEA,KAAK,CAAA6qC,aAAL;IACAn0D,SAAA,EAAWk4B,MAAX,CAAkB5O,GAAlB;IAEA,IAEE,KAAKmqC,aAFP,EAGE;MAGAzzD,SAAA,EAAWktB,KAAX,CAAiBM,WAAjB,CACE,gBADF,EAEE,KAAKtQ,KAAL,GAAa4tC,uBAAA,CAAcC,gBAF7B;MAKA,MAAM;QAAE56C;MAAF,IAAmCha,OAAzC;MACA,IAAIga,4BAAJ,EAAkC;QAGhCA,4BAAA,CAA6BrU,IAA7B,CAAkCsU,qBAAA,IAAyB;UACzD,IACED,4BAAA,KAAiC,KAAK2yC,6BADxC,EAEE;YACA;UADA;UAGF,KAAK,CAAAsQ,kBAAL,CAAyBE,sBAAzB,GACEljD,qBAAA,CAAsBgkD,oBADxB;QANyD,CAA3D;MAHgC;IATlC;EAnEiB;EA4FrB,IAAIpwD,cAAJA,CAAA,EAAqB;IACnB,OAAO,KAAK,CAAAA,cAAZ;EADmB;EAIrB,IAAIA,cAAJA,CAAmBgZ,KAAnB,EAA0B;IACxB,IAAIA,KAAA,KAAU,KAAK,CAAAhZ,cAAnB,EAAoC;MAClC;IADkC;IAGpC,KAAK,CAAAA,cAAL,GAAuBgZ,KAAvB;IAEA,IAAI,KAAK,CAAAi2C,SAAT,EAAqB;MACnBj0C,YAAA,CAAa,KAAK,CAAAi0C,SAAlB;MACA,KAAK,CAAAA,SAAL,GAAkB,IAAlB;IAFmB;IAKrB,QAAQj2C,KAAR;MACE,KAAK/Y,yBAAA,CAAgBwgB,MAArB;QACE,KAAK6E,GAAL,CAASnsB,SAAT,CAAmB8E,MAAnB,CAA0B,SAA1B;QACA;MACF,KAAKgC,yBAAA,CAAgB0a,OAArB;QACE,KAAK2K,GAAL,CAASnsB,SAAT,CAAmBC,GAAnB,CAAuB,aAAvB;QACA,KAAK,CAAA61D,SAAL,GAAkBxjD,UAAA,CAAW,MAAM;UAKjC,KAAK6Z,GAAL,CAASnsB,SAAT,CAAmBC,GAAnB,CAAuB,SAAvB;UACA,KAAK,CAAA61D,SAAL,GAAkB,IAAlB;QANiC,CAAjB,EAOf,CAPe,CAAlB;QAQA;MACF,KAAKhvD,yBAAA,CAAgB3O,OAArB;MACA,KAAK2O,yBAAA,CAAgBC,QAArB;QACE,KAAKolB,GAAL,CAASnsB,SAAT,CAAmB8E,MAAnB,CAA0B,aAA1B,EAAyC,SAAzC;QACA;IAlBJ;EAXwB;EAiC1B,CAAAkyD,cAAA,EAAiB;IACf,MAAM;MAAE9S;IAAF,IAAe,IAArB;IACA,IAAI,KAAKjzC,OAAT,EAAkB;MAChB,IAAI,KAAK,CAAA8kD,gBAAL,KAA2B7R,QAAA,CAASxzC,QAAxC,EAAkD;QAChD;MADgD;MAGlD,KAAK,CAAAqlD,gBAAL,GAAyB7R,QAAA,CAASxzC,QAAlC;IAJgB;IAOlB,IAAAwmD,4BAAA,EACE,KAAK/qC,GADP,EAEE+3B,QAFF,EAGmB,IAHnB,EAIqB,KAJrB;EATe;EAiBjBK,WAAWtzC,OAAX,EAAoB;IAClB,IAEE,KAAKqlD,aADL,KAEC,KAAKpzD,UAAL,EAAiBI,UAAjB,KAAgC,YAAhC,IACC,KAAKJ,UAAL,EAAiBG,UAAjB,KAAgC,QADjC,CAHH,EAKE;MACA,KAAKmzD,UAAL,EAAiBzmC,KAAjB,CAAuBM,WAAvB,CACE,uBADF,EAEEpf,OAAA,CAAQ48C,aAAR,CAAsBC,qBAAtB,CACE,YADF,EAEE,QAFF,EAGE,eAHF,EAIE,WAJF,CAFF;IADA;IAWF,KAAK78C,OAAL,GAAeA,OAAf;IACA,KAAKy0C,aAAL,GAAqBz0C,OAAA,CAAQsb,MAA7B;IAEA,MAAM65B,aAAA,GAAiB,MAAK11C,QAAL,GAAgB,KAAKg1C,aAArB,IAAsC,GAA7D;IACA,KAAKxB,QAAL,GAAgBjzC,OAAA,CAAQkzC,WAAR,CAAoB;MAClCpkC,KAAA,EAAO,KAAKA,KAAL,GAAa4tC,uBAAA,CAAcC,gBADA;MAElCl9C,QAAA,EAAU01C;IAFwB,CAApB,CAAhB;IAIA,KAAK,CAAA4Q,aAAL;IACA,KAAKnrD,KAAL;EA1BkB;EA6BpBJ,QAAA,EAAU;IACR,KAAKI,KAAL;IACA,KAAKoF,OAAL,EAAcnF,OAAd;EAFQ;EAKV,IAAIqrD,gBAAJA,CAAA,EAAuB;IACrB,OAAO,IAAAj+D,gBAAA,EACL,IADK,EAEL,kBAFK,EAGL,IAAIk+D,iCAAJ,CAAoB;MAClB1gC,SAAA,EAAW,KAAK1xB,EAAL,GAAU,CADH;MAElBpJ,QAAA,EAAU,KAAKA,QAFG;MAGlB0G,cAAA,EAAgB,KAAK,CAAAmpD,eAAL,GAAwBnpD;IAHtB,CAApB,CAHK,CAAP;EADqB;EAYvB,MAAM,CAAA+0D,qBAANA,CAAA,EAA+B;IAC7B,IAAIh4D,KAAA,GAAQ,IAAZ;IACA,IAAI;MACF,MAAM,KAAKq3D,eAAL,CAAqB7jD,MAArB,CAA4B,KAAKqxC,QAAjC,EAA2C,SAA3C,CAAN;IADE,CAAJ,CAEE,OAAOtkD,EAAP,EAAW;MACXZ,OAAA,CAAQK,KAAR,CAAe,4BAA2BO,EAAG,IAA7C;MACAP,KAAA,GAAQO,EAAR;IAFW,CAFb,SAKU;MACR,KAAKhE,QAAL,CAAcgD,QAAd,CAAuB,yBAAvB,EAAkD;QAChDC,MAAA,EAAQ,IADwC;QAEhDyX,UAAA,EAAY,KAAKtR,EAF+B;QAGhD3F;MAHgD,CAAlD;IADQ;EAPmB;EAgB/B,MAAM,CAAAi4D,2BAANA,CAAA,EAAqC;IACnC,IAAIj4D,KAAA,GAAQ,IAAZ;IACA,IAAI;MACF,MAAM,KAAKs3D,qBAAL,CAA2B9jD,MAA3B,CAAkC,KAAKqxC,QAAvC,EAAiD,SAAjD,CAAN;IADE,CAAJ,CAEE,OAAOtkD,EAAP,EAAW;MACXZ,OAAA,CAAQK,KAAR,CAAe,kCAAiCO,EAAG,IAAnD;MACAP,KAAA,GAAQO,EAAR;IAFW,CAFb,SAKU;MACR,KAAKhE,QAAL,CAAcgD,QAAd,CAAuB,+BAAvB,EAAwD;QACtDC,MAAA,EAAQ,IAD8C;QAEtDyX,UAAA,EAAY,KAAKtR,EAFqC;QAGtD3F;MAHsD,CAAxD;IADQ;EAPyB;EAgBrC,MAAM,CAAAk4D,cAANA,CAAA,EAAwB;IACtB,IAAIl4D,KAAA,GAAQ,IAAZ;IACA,IAAI;MACF,MAAM6hB,MAAA,GAAS,MAAM,KAAK41C,QAAL,CAAcjkD,MAAd,CAAqB,KAAKqxC,QAA1B,EAAoC,SAApC,CAArB;MACA,IAAIhjC,MAAA,EAAQs2C,QAAR,IAAoB,KAAKL,gBAA7B,EAA+C;QAC7C,KAAK,CAAAM,wBAAL,CAA+Bv2C,MAAA,CAAOs2C,QAAtC;MAD6C;IAF7C,CAAJ,CAKE,OAAO53D,EAAP,EAAW;MACXZ,OAAA,CAAQK,KAAR,CAAe,qBAAoBO,EAAG,IAAtC;MACAP,KAAA,GAAQO,EAAR;IAFW,CALb,SAQU;MACR,KAAKhE,QAAL,CAAcgD,QAAd,CAAuB,kBAAvB,EAA2C;QACzCC,MAAA,EAAQ,IADiC;QAEzCyX,UAAA,EAAY,KAAKtR,EAFwB;QAGzC3F;MAHyC,CAA3C;IADQ;EAVY;EAmBxB,MAAM,CAAAq4D,eAANA,CAAA,EAAyB;IACvB,MAAM;MAAEzmD,OAAF;MAAW2lD,SAAX;MAAsB1S;IAAtB,IAAmC,IAAzC;IACA,IAAI,CAAC0S,SAAL,EAAgB;MACd;IADc;IAIhB,IAAIv3D,KAAA,GAAQ,IAAZ;IACA,IAAI;MACF,IAAI,CAACu3D,SAAA,CAAUe,aAAf,EAA8B;QAC5B,MAAMC,cAAA,GAAiB3mD,OAAA,CAAQ4mD,iBAAR,CAA0B;UAC/CC,oBAAA,EAAsB,IADyB;UAE/C/lB,oBAAA,EAAsB;QAFyB,CAA1B,CAAvB;QAIA6kB,SAAA,CAAUmB,oBAAV,CAA+BH,cAA/B;MAL4B;MAO9B,MAAMhB,SAAA,CAAU/jD,MAAV,CAAiBqxC,QAAjB,CAAN;IARE,CAAJ,CASE,OAAOtkD,EAAP,EAAW;MACX,IAAIA,EAAA,YAAco4D,wBAAlB,EAAkC;QAChC;MADgC;MAGlCh5D,OAAA,CAAQK,KAAR,CAAe,sBAAqBO,EAAG,IAAvC;MACAP,KAAA,GAAQO,EAAR;IALW;IAQb,KAAKhE,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;MAC1CC,MAAA,EAAQ,IADkC;MAE1CyX,UAAA,EAAY,KAAKtR,EAFyB;MAG1CizD,WAAA,EAAarB,SAAA,CAAUqB,WAHmB;MAI1C54D;IAJ0C,CAA5C;IAOA,KAAK,CAAA64D,qBAAL;EA/BuB;EAyCzB,MAAM,CAAAA,qBAANA,CAAA,EAA+B;IAC7B,IAAI,CAAC,KAAKtB,SAAV,EAAqB;MACnB;IADmB;IAGrB,KAAKG,eAAL,KAAyB,IAAIoB,iDAAJ,EAAzB;IAEA,MAAMC,IAAA,GAAO,OAAO,CAAC,KAAKrB,eAAL,CAAqBY,aAAtB,GAChB,KAAK1mD,OAAL,CAAaonD,aAAb,EADgB,GAEhB,IAFgB,CAApB;IAGA,MAAMC,OAAA,GAAU,KAAKvB,eAAL,EAAsBlkD,MAAtB,CAA6BulD,IAA7B,CAAhB;IACA,IAAIE,OAAJ,EAAa;MACX,KAAK5R,MAAL,EAAa3rB,MAAb,CAAoBu9B,OAApB;IADW;IAGb,KAAKvB,eAAL,EAAsBrmC,IAAtB;EAb6B;EAgB/B,MAAM,CAAA+mC,wBAANA,CAAgCD,QAAhC,EAA0C;IACxC,MAAM7sB,IAAA,GAAO,MAAM,KAAK15B,OAAL,CAAaghC,cAAb,EAAnB;IACA,MAAMhnB,KAAA,GAAQ,EAAd;IACA,WAAWkV,IAAX,IAAmBwK,IAAA,CAAK1f,KAAxB,EAA+B;MAC7BA,KAAA,CAAMzf,IAAN,CAAW20B,IAAA,CAAKtV,GAAhB;IAD6B;IAG/B,KAAKssC,gBAAL,CAAsBoB,cAAtB,CAAqCf,QAArC,EAA+CvsC,KAA/C;IACA,KAAKksC,gBAAL,CAAsBqB,MAAtB;EAPwC;EAa1CC,gBAAgBC,aAAA,GAAgB,KAAhC,EAAuC;IACrC,IAAI,CAAC,KAAK7B,SAAV,EAAqB;MACnB;IADmB;IAGrB,MAAM8B,eAAA,GAAkB,KAAK9B,SAAL,CAAe+B,UAAvC;IACA,KAAK,CAAAvC,WAAL,CAAkB/jB,MAAlB,CAAyBqmB,eAAzB;IAGAA,eAAA,CAAgB9rC,KAAhB,GAAwB,CAAxB;IACA8rC,eAAA,CAAgB7rC,MAAhB,GAAyB,CAAzB;IAEA,IAAI4rC,aAAJ,EAAmB;MAEjB,KAAK7B,SAAL,CAAe/xD,MAAf;IAFiB;IAInB,KAAK+xD,SAAL,GAAiB,IAAjB;EAfqC;EAkBvChrD,MAAM;IACJgtD,aAAA,GAAgB,KADZ;IAEJC,mBAAA,GAAsB,KAFlB;IAGJC,yBAAA,GAA4B,KAHxB;IAIJC,YAAA,GAAe,KAJX;IAKJC,aAAA,GAAgB;EALZ,IAMF,EANJ,EAMQ;IACN,KAAKzU,eAAL,CAAqB;MACnBsU,mBADmB;MAEnBC,yBAFmB;MAGnBC,YAHmB;MAInBC;IAJmB,CAArB;IAMA,KAAKpyD,cAAL,GAAsBC,yBAAA,CAAgB3O,OAAtC;IAEA,MAAMg0B,GAAA,GAAM,KAAKA,GAAjB;IAEA,MAAM+sC,UAAA,GAAa/sC,GAAA,CAAI+sC,UAAvB;MACEC,aAAA,GAAiBN,aAAA,IAAiB,KAAKhC,SAAvB,IAAqC,IADvD;MAEEuC,mBAAA,GACGN,mBAAA,IAAuB,KAAKpC,eAAL,EAAsBvqC,GAA9C,IAAsD,IAH1D;MAIEktC,yBAAA,GACGN,yBAAA,IAA6B,KAAKpC,qBAAL,EAA4BxqC,GAA1D,IAAkE,IALtE;MAMEmtC,YAAA,GAAgBN,YAAA,IAAgB,KAAKlC,QAAL,EAAe3qC,GAAhC,IAAwC,IANzD;MAOEotC,aAAA,GAAiBN,aAAA,IAAiB,KAAKrC,SAAL,EAAgBzqC,GAAlC,IAA0C,IAP5D;IAQA,KAAK,IAAInrB,CAAA,GAAIk4D,UAAA,CAAWh4D,MAAX,GAAoB,CAA5B,EAA+BF,CAAA,IAAK,CAAzC,EAA4CA,CAAA,EAA5C,EAAiD;MAC/C,MAAMqiC,IAAA,GAAO61B,UAAA,CAAWl4D,CAAX,CAAb;MACA,QAAQqiC,IAAR;QACE,KAAK81B,aAAL;QACA,KAAKC,mBAAL;QACA,KAAKC,yBAAL;QACA,KAAKC,YAAL;QACA,KAAKC,aAAL;UACE;MANJ;MAQAl2B,IAAA,CAAKv+B,MAAL;IAV+C;IAYjDqnB,GAAA,CAAIk6B,eAAJ,CAAoB,aAApB;IAEA,IAAI+S,mBAAJ,EAAyB;MAGvB,KAAK1C,eAAL,CAAqBnnD,IAArB;IAHuB;IAKzB,IAAI8pD,yBAAJ,EAA+B;MAC7B,KAAK1C,qBAAL,CAA2BpnD,IAA3B;IAD6B;IAG/B,IAAI+pD,YAAJ,EAAkB;MAGhB,KAAKxC,QAAL,CAAcvnD,IAAd;IAHgB;IAKlB,IAAIgqD,aAAJ,EAAmB;MACjB,KAAK3C,SAAL,CAAernD,IAAf;IADiB;IAGnB,KAAKwnD,eAAL,EAAsBxnD,IAAtB;IAEA,IAAI,CAAC4pD,aAAL,EAAoB;MAClB,IAAI,KAAKzS,MAAT,EAAiB;QACf,KAAK,CAAA2P,WAAL,CAAkB/jB,MAAlB,CAAyB,KAAKoU,MAA9B;QAGA,KAAKA,MAAL,CAAY75B,KAAZ,GAAoB,CAApB;QACA,KAAK65B,MAAL,CAAY55B,MAAZ,GAAqB,CAArB;QACA,OAAO,KAAK45B,MAAZ;MANe;MAQjB,KAAK+R,eAAL;IATkB;EAnDd;EA8ERjmD,OAAO;IACLuN,KAAA,GAAQ,CADH;IAELrP,QAAA,GAAW,IAFN;IAGLsC,4BAAA,GAA+B,IAH1B;IAIL3J,YAAA,GAAe,CAAC;EAJX,CAAP,EAKG;IACD,KAAK0W,KAAL,GAAaA,KAAA,IAAS,KAAKA,KAA3B;IACA,IAAI,OAAOrP,QAAP,KAAoB,QAAxB,EAAkC;MAChC,KAAKA,QAAL,GAAgBA,QAAhB;IADgC;IAGlC,IAAIsC,4BAAA,YAAwCpZ,OAA5C,EAAqD;MACnD,KAAK+rD,6BAAL,GAAqC3yC,4BAArC;MAIAA,4BAAA,CAA6BrU,IAA7B,CAAkCsU,qBAAA,IAAyB;QACzD,IACED,4BAAA,KAAiC,KAAK2yC,6BADxC,EAEE;UACA;QADA;QAGF,KAAK,CAAAsQ,kBAAL,CAAyBE,sBAAzB,GACEljD,qBAAA,CAAsBgkD,oBADxB;MANyD,CAA3D;IALmD;IAerD,KAAK,CAAAhB,kBAAL,CAAyBC,aAAzB,GAAyC,IAAzC;IAEA,MAAM9P,aAAA,GAAiB,MAAK11C,QAAL,GAAgB,KAAKg1C,aAArB,IAAsC,GAA7D;IACA,KAAKxB,QAAL,GAAgB,KAAKA,QAAL,CAAcI,KAAd,CAAoB;MAClCvkC,KAAA,EAAO,KAAKA,KAAL,GAAa4tC,uBAAA,CAAcC,gBADA;MAElCl9C,QAAA,EAAU01C;IAFwB,CAApB,CAAhB;IAIA,KAAK,CAAA4Q,aAAL;IAEA,IAEE,KAAKV,aAFP,EAGE;MACA,KAAKE,UAAL,EAAiBzmC,KAAjB,CAAuBM,WAAvB,CAAmC,gBAAnC,EAAqD,KAAK6zB,QAAL,CAAcnkC,KAAnE;IADA;IAIF,IAAI,KAAK2mC,MAAT,EAAiB;MACf,IAAI8S,WAAA,GAAc,KAAlB;MACA,IAAI,KAAK,CAAA3D,oBAAT,EAAgC;QAC9B,IAEE,KAAK5xD,eAAL,KAAyB,CAF3B,EAGE;UACAu1D,WAAA,GAAc,IAAd;QADA,CAHF,MAKO,IAAI,KAAKv1D,eAAL,GAAuB,CAA3B,EAA8B;UACnC,MAAM;YAAE4oB,KAAF;YAASC;UAAT,IAAoB,KAAKo3B,QAA/B;UACA,MAAM;YAAE57B,EAAF;YAAMC;UAAN,IAAa,KAAKo+B,WAAxB;UACA6S,WAAA,GACG,CAACvqD,IAAA,CAAKsO,KAAL,CAAWsP,KAAX,IAAoBvE,EAArB,GAA2B,CAA3B,KAAkCrZ,IAAA,CAAKsO,KAAL,CAAWuP,MAAX,IAAqBvE,EAAtB,GAA4B,CAA5B,CAAlC,GACA,KAAKtkB,eAFP;QAHmC;MANP;MAchC,MAAMsrD,eAAA,GACJ,CAACiK,WAAD,IAAgBnwD,YAAA,IAAgB,CAAhC,IAAqCA,YAAA,GAAe,IADtD;MAGA,IAAIkmD,eAAA,IAAmBiK,WAAvB,EAAoC;QAClC,IACEjK,eAAA,IACA,KAAK1oD,cAAL,KAAwBC,yBAAA,CAAgBC,QAF1C,EAGE;UACA,KAAKy9C,eAAL,CAAqB;YACnBqU,aAAA,EAAe,IADI;YAEnBC,mBAAA,EAAqB,IAFF;YAGnBC,yBAAA,EAA2B,IAHR;YAInBC,YAAA,EAAc,IAJK;YAKnBC,aAAA,EAAe,IALI;YAMnBQ,gBAAA,EAAkBpwD;UANC,CAArB;UAYA,KAAKxC,cAAL,GAAsBC,yBAAA,CAAgBC,QAAtC;UAGA,KAAK,CAAAkvD,kBAAL,CAAyBC,aAAzB,GAAyC,KAAzC;QAhBA;QAmBF,KAAK5I,YAAL,CAAkB;UAChBtlD,MAAA,EAAQ,KAAK0+C,MADG;UAEhBgT,qBAAA,EAAuB,IAFP;UAGhBC,2BAAA,EAA6B,IAHb;UAIhBC,cAAA,EAAgB,IAJA;UAKhBC,eAAA,EAAiB,CAACtK,eALF;UAMhBuK,aAAA,EAAevK;QANC,CAAlB;QASA,IAAIA,eAAJ,EAAqB;UAGnB;QAHmB;QAKrB,KAAK3zD,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;UACrCC,MAAA,EAAQ,IAD6B;UAErCyX,UAAA,EAAY,KAAKtR,EAFoB;UAGrCsoD,YAAA,EAAc,IAHuB;UAIrC56C,SAAA,EAAWskC,WAAA,CAAY0E,GAAZ,EAJ0B;UAKrCr8C,KAAA,EAAO,KAAK,CAAA22D;QALyB,CAAvC;QAOA;MA5CkC;MA8CpC,IAAI,CAAC,KAAKa,SAAN,IAAmB,CAAC,KAAKnQ,MAAL,CAAY3lB,MAApC,EAA4C;QAC1C,KAAK81B,SAAL,GAAiB,KAAKnQ,MAAL,CAAYp2B,UAA7B;QACA,KAAKumC,SAAL,CAAe9mC,KAAf,CAAqB8mB,QAArB,GAAgC,UAAhC;MAF0C;IAjE7B;IAsEjB,IAAI,KAAKggB,SAAT,EAAoB;MAClB,KAAKvJ,YAAL,CAAkB;QAAEtlD,MAAA,EAAQ,KAAK6uD,SAAL,CAAe+B;MAAzB,CAAlB;IADkB;IAGpB,KAAK/sD,KAAL,CAAW;MACTgtD,aAAA,EAAe,IADN;MAETC,mBAAA,EAAqB,IAFZ;MAGTC,yBAAA,EAA2B,IAHlB;MAITC,YAAA,EAAc,IAJL;MAKTC,aAAA,EAAe;IALN,CAAX;EA7GC;EA0HHzU,gBAAgB;IACdsU,mBAAA,GAAsB,KADR;IAEdC,yBAAA,GAA4B,KAFd;IAGdC,YAAA,GAAe,KAHD;IAIdC,aAAA,GAAgB,KAJF;IAKdQ,gBAAA,GAAmB;EALL,IAMZ,EANJ,EAMQ;IACN,IAAI,KAAK7T,UAAT,EAAqB;MACnB,KAAKA,UAAL,CAAgB9mB,MAAhB,CAAuB26B,gBAAvB;MACA,KAAK7T,UAAL,GAAkB,IAAlB;IAFmB;IAIrB,KAAK3G,MAAL,GAAc,IAAd;IAEA,IAAI,KAAK2X,SAAL,KAAmB,CAACqC,aAAD,IAAkB,CAAC,KAAKrC,SAAL,CAAezqC,GAAlC,CAAvB,EAA+D;MAC7D,KAAKyqC,SAAL,CAAe93B,MAAf;MACA,KAAK83B,SAAL,GAAiB,IAAjB;IAF6D;IAI/D,IAAI,KAAKG,eAAL,IAAwB,CAAC,KAAKH,SAAlC,EAA6C;MAC3C,KAAKG,eAAL,GAAuB,IAAvB;IAD2C;IAG7C,IACE,KAAKL,eAAL,KACC,CAACoC,mBAAD,IAAwB,CAAC,KAAKpC,eAAL,CAAqBvqC,GAA9C,CAFH,EAGE;MACA,KAAKuqC,eAAL,CAAqB53B,MAArB;MACA,KAAK43B,eAAL,GAAuB,IAAvB;MACA,KAAKD,oBAAL,GAA4B,IAA5B;IAHA;IAKF,IACE,KAAKE,qBAAL,KACC,CAACoC,yBAAD,IAA8B,CAAC,KAAKpC,qBAAL,CAA2BxqC,GAA1D,CAFH,EAGE;MACA,KAAKwqC,qBAAL,CAA2B73B,MAA3B;MACA,KAAK63B,qBAAL,GAA6B,IAA7B;IAFA;IAIF,IAAI,KAAKG,QAAL,KAAkB,CAACkC,YAAD,IAAiB,CAAC,KAAKlC,QAAL,CAAc3qC,GAAhC,CAAtB,EAA4D;MAC1D,KAAK2qC,QAAL,CAAch4B,MAAd;MACA,KAAKg4B,QAAL,GAAgB,IAAhB;MACA,KAAKK,gBAAL,EAAuB4C,OAAvB;IAH0D;EA7BtD;EAoCRzM,aAAa;IACXtlD,MADW;IAEX0xD,qBAAA,GAAwB,KAFb;IAGXC,2BAAA,GAA8B,KAHnB;IAIXC,cAAA,GAAiB,KAJN;IAKXC,eAAA,GAAkB,KALP;IAMXC,aAAA,GAAgB;EANL,CAAb,EAOG;IAQD,IAAI,CAAC9xD,MAAA,CAAOw0C,YAAP,CAAoB,SAApB,CAAL,EAAqC;MACnCx0C,MAAA,CAAOkpB,YAAP,CAAoB,SAApB,EAA+B,IAA/B;MACA,MAAM;QAAEnB;MAAF,IAAY/nB,MAAlB;MACA+nB,KAAA,CAAMlD,KAAN,GAAckD,KAAA,CAAMjD,MAAN,GAAe,EAA7B;IAHmC;IAMrC,MAAMktC,gBAAA,GAAmB,KAAK,CAAA3D,WAAL,CAAkBr4D,GAAlB,CAAsBgK,MAAtB,CAAzB;IACA,IAAI,KAAKk8C,QAAL,KAAkB8V,gBAAtB,EAAwC;MAEtC,MAAMC,gBAAA,GACJ,KAAK/V,QAAL,CAAcxzC,QAAd,GAAyBspD,gBAAA,CAAiBtpD,QAD5C;MAEA,MAAMwpD,WAAA,GAAcjrD,IAAA,CAAKqT,GAAL,CAAS23C,gBAAT,CAApB;MACA,IAAIE,MAAA,GAAS,CAAb;QACEC,MAAA,GAAS,CADX;MAEA,IAAIF,WAAA,KAAgB,EAAhB,IAAsBA,WAAA,KAAgB,GAA1C,EAA+C;QAC7C,MAAM;UAAErtC,KAAF;UAASC;QAAT,IAAoB,KAAKo3B,QAA/B;QAEAiW,MAAA,GAASrtC,MAAA,GAASD,KAAlB;QACAutC,MAAA,GAASvtC,KAAA,GAAQC,MAAjB;MAJ6C;MAM/C9kB,MAAA,CAAO+nB,KAAP,CAAa62B,SAAb,GAA0B,UAASqT,gBAAiB,cAAaE,MAAO,KAAIC,MAAO,GAAnF;IAbsC;IAgBxC,IAAIV,qBAAA,IAAyB,KAAKhD,eAAlC,EAAmD;MACjD,KAAK,CAAAW,qBAAL;IADiD;IAGnD,IAAIsC,2BAAA,IAA+B,KAAKhD,qBAAxC,EAA+D;MAC7D,KAAK,CAAAW,2BAAL;IAD6D;IAG/D,IAAIsC,cAAA,IAAkB,KAAK9C,QAA3B,EAAqC;MACnC,KAAK,CAAAS,cAAL;IADmC;IAIrC,IAAI,KAAKX,SAAT,EAAoB;MAClB,IAAIkD,aAAJ,EAAmB;QACjB,KAAKlD,SAAL,CAAernD,IAAf;QACA,KAAKwnD,eAAL,EAAsBxnD,IAAtB;MAFiB,CAAnB,MAGO,IAAIsqD,eAAJ,EAAqB;QAC1B,KAAK,CAAAnC,eAAL;MAD0B;IAJV;EAzCnB;EAmDH,IAAI7qC,KAAJA,CAAA,EAAY;IACV,OAAO,KAAKq3B,QAAL,CAAcr3B,KAArB;EADU;EAIZ,IAAIC,MAAJA,CAAA,EAAa;IACX,OAAO,KAAKo3B,QAAL,CAAcp3B,MAArB;EADW;EAIb2jC,aAAahzC,CAAb,EAAgBC,CAAhB,EAAmB;IACjB,OAAO,KAAKwmC,QAAL,CAAcmW,iBAAd,CAAgC58C,CAAhC,EAAmCC,CAAnC,CAAP;EADiB;EAInB,MAAM,CAAAypC,gBAANA,CAAwBvB,UAAxB,EAAoCvmD,KAAA,GAAQ,IAA5C,EAAkD;IAIhD,IAAIumD,UAAA,KAAe,KAAKA,UAAxB,EAAoC;MAClC,KAAKA,UAAL,GAAkB,IAAlB;IADkC;IAIpC,IAAIvmD,KAAA,YAAiB+/C,qCAArB,EAAkD;MAChD,KAAK,CAAA4W,WAAL,GAAoB,IAApB;MACA;IAFgD;IAIlD,KAAK,CAAAA,WAAL,GAAoB32D,KAApB;IAEA,KAAKwH,cAAL,GAAsBC,yBAAA,CAAgBC,QAAtC;IACA,KAAK0xD,eAAL,CAA2C,IAA3C;IAIA,KAAK,CAAAxC,kBAAL,CAAyBG,kBAAzB,GAA8C,CAACxQ,UAAA,CAAW0U,cAA1D;IAEA,KAAK1+D,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;MACrCC,MAAA,EAAQ,IAD6B;MAErCyX,UAAA,EAAY,KAAKtR,EAFoB;MAGrCsoD,YAAA,EAAc,KAHuB;MAIrC56C,SAAA,EAAWskC,WAAA,CAAY0E,GAAZ,EAJ0B;MAKrCr8C,KAAA,EAAO,KAAK,CAAA22D;IALyB,CAAvC;IAQA,IAAI32D,KAAJ,EAAW;MACT,MAAMA,KAAN;IADS;EA7BqC;EAkClD,MAAM6/C,IAANA,CAAA,EAAa;IACX,IAAI,KAAKr4C,cAAL,KAAwBC,yBAAA,CAAgB3O,OAA5C,EAAqD;MACnD6G,OAAA,CAAQK,KAAR,CAAc,qCAAd;MACA,KAAKwM,KAAL;IAFmD;IAIrD,MAAM;MAAEsgB,GAAF;MAAOtwB,IAAP;MAAaqH,UAAb;MAAyB+N,OAAzB;MAAkCizC;IAAlC,IAA+C,IAArD;IAEA,IAAI,CAACjzC,OAAL,EAAc;MACZ,KAAKpK,cAAL,GAAsBC,yBAAA,CAAgBC,QAAtC;MACA,MAAM,IAAItO,KAAJ,CAAU,uBAAV,CAAN;IAFY;IAKd,KAAKoO,cAAL,GAAsBC,yBAAA,CAAgB0a,OAAtC;IAIA,MAAM+4C,aAAA,GAAgBxgE,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAtB;IACA0/B,aAAA,CAAcv6D,SAAd,CAAwBC,GAAxB,CAA4B,eAA5B;IACAksB,GAAA,CAAI4O,MAAJ,CAAWw/B,aAAX;IAEA,IACE,CAAC,KAAK3D,SAAN,IACA,KAAK,CAAA/yD,aAAL,KAAwB/D,uBAAA,CAAcC,OADtC,IAEA,CAACkR,OAAA,CAAQmE,SAHX,EAIE;MACA,KAAKolD,qBAAL,KAA+B,IAAIC,4CAAJ,EAA/B;MAEA,KAAK7D,SAAL,GAAiB,IAAI8D,oCAAJ,CAAqB;QACpCC,WAAA,EAAa,KAAKxD,gBADkB;QAEpCyD,oBAAA,EAAsB,KAAKJ,qBAFS;QAGpCx3D,0BAAA,EAA4B,KAAKA,0BAHG;QAIpCkB,iBAAA,EACE,KAAK,CAAAL,aAAL,KAAwB/D,uBAAA,CAAc8nB;MALJ,CAArB,CAAjB;MAOAuE,GAAA,CAAI4O,MAAJ,CAAW,KAAK67B,SAAL,CAAezqC,GAA1B;IAVA;IAaF,IACE,CAAC,KAAKuqC,eAAN,IACA,KAAK,CAAA5yD,cAAL,KAAyBulD,wBAAA,CAAetpD,OAF1C,EAGE;MACA,MAAM;QACJoL,iBADI;QAEJ5P,eAFI;QAGJqY,eAHI;QAIJ83C,mBAJI;QAKJC,mBALI;QAMJnpD;MANI,IAOF,KAAK,CAAAipD,eAAL,EAPJ;MASA,KAAKgL,oBAAL,KAA8B,IAAIjsC,GAAJ,EAA9B;MACA,KAAKksC,eAAL,GAAuB,IAAImE,gDAAJ,CAA2B;QAChDC,OAAA,EAAS3uC,GADuC;QAEhDlb,OAFgD;QAGhD9F,iBAHgD;QAIhDpH,kBAAA,EAAoB,KAAKA,kBAJuB;QAKhDuR,WAAA,EAAa,KAAK,CAAAxR,cAAL,KAAyBulD,wBAAA,CAAeC,YALL;QAMhD9mD,WANgD;QAOhDjH,eAPgD;QAQhDM,IARgD;QAShD+X,eATgD;QAUhD+3C,mBAVgD;QAWhDD,mBAXgD;QAYhDqP,mBAAA,EAAqB,KAAKtE,oBAZsB;QAahDmE,oBAAA,EAAsB,KAAKJ;MAbqB,CAA3B,CAAvB;IAXA;IA4BF,MAAMnT,sBAAA,GAAyBC,IAAA,IAAQ;MACrC0T,UAAA,GAAa,KAAb;MACA,IAAI,KAAKr3D,cAAL,IAAuB,CAAC,KAAKA,cAAL,CAAoBq6C,iBAApB,CAAsC,IAAtC,CAA5B,EAAyE;QACvE,KAAKn3C,cAAL,GAAsBC,yBAAA,CAAgBwgB,MAAtC;QACA,KAAK23B,MAAL,GAAc,MAAM;UAClB,KAAKp4C,cAAL,GAAsBC,yBAAA,CAAgB0a,OAAtC;UACA8lC,IAAA;QAFkB,CAApB;QAIA;MANuE;MAQzEA,IAAA;IAVqC,CAAvC;IAaA,MAAM;MAAEz6B,KAAF;MAASC;IAAT,IAAoBo3B,QAA1B;IACA,MAAMwC,MAAA,GAAS3sD,QAAA,CAAS8gC,aAAT,CAAuB,QAAvB,CAAf;IACA6rB,MAAA,CAAOx1B,YAAP,CAAoB,MAApB,EAA4B,cAA5B;IAIAw1B,MAAA,CAAO3lB,MAAP,GAAgB,IAAhB;IACA,MAAMk6B,MAAA,GAAS,CAAC,EAAE/3D,UAAA,EAAYG,UAAZ,IAA0BH,UAAA,EAAYI,UAAtC,CAAlB;IAEA,IAAI03D,UAAA,GAAaE,UAAA,IAAc;MAI7B,IAAI,CAACD,MAAD,IAAWC,UAAf,EAA2B;QACzBxU,MAAA,CAAO3lB,MAAP,GAAgB,KAAhB;QACAi6B,UAAA,GAAa,IAAb;MAFyB;IAJE,CAA/B;IASAT,aAAA,CAAcx/B,MAAd,CAAqB2rB,MAArB;IACA,KAAKA,MAAL,GAAcA,MAAd;IAEA,MAAMtB,GAAA,GAAMsB,MAAA,CAAOrB,UAAP,CAAkB,IAAlB,EAAwB;MAAEC,KAAA,EAAO;IAAT,CAAxB,CAAZ;IACA,MAAMqB,WAAA,GAAe,KAAKA,WAAL,GAAmB,IAAIv+B,qBAAJ,EAAxC;IAEA,IAEE,KAAKnkB,eAAL,KAAyB,CAF3B,EAGE;MACA,MAAMk3D,QAAA,GAAW,IAAI,KAAKp7C,KAA1B;MAGA4mC,WAAA,CAAYr+B,EAAZ,IAAkB6yC,QAAlB;MACAxU,WAAA,CAAYp+B,EAAZ,IAAkB4yC,QAAlB;MACA,KAAK,CAAAtF,oBAAL,GAA6B,IAA7B;IANA,CAHF,MAUO,IAAI,KAAK5xD,eAAL,GAAuB,CAA3B,EAA8B;MACnC,MAAMm3D,gBAAA,GAAmBvuC,KAAA,GAAQC,MAAjC;MACA,MAAMuuC,QAAA,GAAWpsD,IAAA,CAAKqsD,IAAL,CAAU,KAAKr3D,eAAL,GAAuBm3D,gBAAjC,CAAjB;MACA,IAAIzU,WAAA,CAAYr+B,EAAZ,GAAiB+yC,QAAjB,IAA6B1U,WAAA,CAAYp+B,EAAZ,GAAiB8yC,QAAlD,EAA4D;QAC1D1U,WAAA,CAAYr+B,EAAZ,GAAiB+yC,QAAjB;QACA1U,WAAA,CAAYp+B,EAAZ,GAAiB8yC,QAAjB;QACA,KAAK,CAAAxF,oBAAL,GAA6B,IAA7B;MAH0D,CAA5D,MAIO;QACL,KAAK,CAAAA,oBAAL,GAA6B,KAA7B;MADK;IAP4B;IAWrC,MAAM0F,GAAA,GAAM,IAAA/vC,6BAAA,EAAoBm7B,WAAA,CAAYr+B,EAAhC,CAAZ;IACA,MAAMkzC,GAAA,GAAM,IAAAhwC,6BAAA,EAAoBm7B,WAAA,CAAYp+B,EAAhC,CAAZ;IAEAm+B,MAAA,CAAO75B,KAAP,GAAe,IAAAX,uBAAA,EAAcW,KAAA,GAAQ85B,WAAA,CAAYr+B,EAAlC,EAAsCizC,GAAA,CAAI,CAAJ,CAAtC,CAAf;IACA7U,MAAA,CAAO55B,MAAP,GAAgB,IAAAZ,uBAAA,EAAcY,MAAA,GAAS65B,WAAA,CAAYp+B,EAAnC,EAAuCizC,GAAA,CAAI,CAAJ,CAAvC,CAAhB;IACA,MAAM;MAAEzrC;IAAF,IAAY22B,MAAlB;IACA32B,KAAA,CAAMlD,KAAN,GAAc,IAAAX,uBAAA,EAAcW,KAAd,EAAqB0uC,GAAA,CAAI,CAAJ,CAArB,IAA+B,IAA7C;IACAxrC,KAAA,CAAMjD,MAAN,GAAe,IAAAZ,uBAAA,EAAcY,MAAd,EAAsB0uC,GAAA,CAAI,CAAJ,CAAtB,IAAgC,IAA/C;IAGA,KAAK,CAAAnF,WAAL,CAAkBl4D,GAAlB,CAAsBuoD,MAAtB,EAA8BxC,QAA9B;IAGA,MAAM0C,SAAA,GAAYD,WAAA,CAAYn+B,MAAZ,GACd,CAACm+B,WAAA,CAAYr+B,EAAb,EAAiB,CAAjB,EAAoB,CAApB,EAAuBq+B,WAAA,CAAYp+B,EAAnC,EAAuC,CAAvC,EAA0C,CAA1C,CADc,GAEd,IAFJ;IAGA,MAAMg/B,aAAA,GAAgB;MACpBC,aAAA,EAAepC,GADK;MAEpBwB,SAFoB;MAGpB1C,QAHoB;MAIpBpgD,cAAA,EAAgB,KAAK,CAAAA,cAJD;MAKpBkP,4BAAA,EAA8B,KAAK2yC,6BALf;MAMpBoV,mBAAA,EAAqB,KAAKtE,oBANN;MAOpBvzD;IAPoB,CAAtB;IASA,MAAM0iD,UAAA,GAAc,KAAKA,UAAL,GAAkB,KAAK30C,OAAL,CAAa4B,MAAb,CAAoB00C,aAApB,CAAtC;IACA3B,UAAA,CAAW6B,UAAX,GAAwBJ,sBAAxB;IAEA,MAAMK,aAAA,GAAgB9B,UAAA,CAAW78C,OAAX,CAAmBpK,IAAnB,CACpB,YAAY;MACVq8D,UAAA,GAAa,IAAb;MACA,MAAM,KAAK,CAAA7T,gBAAL,CAAuBvB,UAAvB,CAAN;MAEA,KAAK,CAAA8R,eAAL;MAEA,IAAI,KAAKhB,eAAT,EAA0B;QACxB,MAAM,KAAK,CAAAW,qBAAL,EAAN;MADwB;MAI1B,IAAI,CAAC,KAAKV,qBAAV,EAAiC;QAC/B,MAAM;UAAEvN;QAAF,IAAgC,KAAK,CAAAqC,eAAL,EAAtC;QAEA,IAAI,CAACrC,yBAAL,EAAgC;UAC9B;QAD8B;QAGhC,KAAKuN,qBAAL,GAA6B,IAAI8E,6DAAJ,CAAiC;UAC5DxhC,SAAA,EAAWmvB,yBADiD;UAE5D0R,OAAA,EAAS3uC,GAFmD;UAG5Dlb,OAH4D;UAI5DpV,IAJ4D;UAK5D++D,oBAAA,EAAsB,KAAKJ,qBALiC;UAM5D9D,eAAA,EAAiB,KAAKA,eAAL,EAAsBA;QANqB,CAAjC,CAA7B;MAN+B;MAejC,KAAK,CAAAY,2BAAL;IAzBU,CADQ,EA4BpBj4D,KAAA,IAAS;MAIP,IAAI,EAAEA,KAAA,YAAiB+/C,qCAAjB,CAAN,EAAqD;QACnD4b,UAAA,GAAa,IAAb;MADmD;MAGrD,OAAO,KAAK,CAAA7T,gBAAL,CAAuBvB,UAAvB,EAAmCvmD,KAAnC,CAAP;IAPO,CA5BW,CAAtB;IAuCA,IAAI4R,OAAA,CAAQmE,SAAZ,EAAuB;MACrB,IAAI,CAAC,KAAK0hD,QAAV,EAAoB;QAClB,MAAM;UAAE3rD,iBAAF;UAAqB3I;QAArB,IAAqC,KAAK,CAAAipD,eAAL,EAA3C;QAEA,KAAKqL,QAAL,GAAgB,IAAI4E,kCAAJ,CAAoB;UAClCZ,OAAA,EAAS3uC,GADyB;UAElClb,OAFkC;UAGlC9F,iBAHkC;UAIlC3I;QAJkC,CAApB,CAAhB;MAHkB,CAApB,MASO,IAAI,KAAKs0D,QAAL,CAAc3qC,GAAlB,EAAuB;QAE5BA,GAAA,CAAI4O,MAAJ,CAAW,KAAK+7B,QAAL,CAAc3qC,GAAzB;MAF4B;MAI9B,KAAK,CAAAorC,cAAL;IAdqB;IAiBvBprC,GAAA,CAAI+E,YAAJ,CAAiB,aAAjB,EAAgC,IAAhC;IAEA,KAAKt1B,QAAL,CAAcgD,QAAd,CAAuB,YAAvB,EAAqC;MACnCC,MAAA,EAAQ,IAD2B;MAEnCyX,UAAA,EAAY,KAAKtR;IAFkB,CAArC;IAIA,OAAO0iD,aAAP;EAxNW;EA8NbjD,aAAa5uC,KAAb,EAAoB;IAClB,KAAKyL,SAAL,GAAiB,OAAOzL,KAAP,KAAiB,QAAjB,GAA4BA,KAA5B,GAAoC,IAArD;IAEA,IAAI,KAAKyL,SAAL,KAAmB,IAAvB,EAA6B;MAC3B,KAAK6K,GAAL,CAAS+E,YAAT,CAAsB,iBAAtB,EAAyC,KAAK5P,SAA9C;IAD2B,CAA7B,MAEO;MACL,KAAK6K,GAAL,CAASk6B,eAAT,CAAyB,iBAAzB;IADK;EALW;EAcpB,IAAIsB,eAAJA,CAAA,EAAsB;IACpB,MAAM;MAAEuO,aAAF;MAAiBC,sBAAjB;MAAyCC;IAAzC,IACJ,KAAK,CAAAH,kBADP;IAEA,OAAOC,aAAA,IAAiBC,sBAAjB,IAA2CC,kBAA3C,GACH,KAAK1P,MADF,GAEH,IAFJ;EAHoB;AAx7BN;AA7GlB/xD,mBAAA,GAAAo5D,WAAA;;;;;;;;;;;;AC0BA,IAAA13D,SAAA,GAAAhC,mBAAA;AACA,IAAA4zD,WAAA,GAAA5zD,mBAAA;AAYA,MAAMonE,4BAAN,CAAmC;EACjC,CAAA/E,eAAA,GAAmB,IAAnB;EAEA,CAAAz8B,SAAA;EAKAzhC,YAAYQ,OAAZ,EAAqB;IACnB,KAAK8hE,OAAL,GAAe9hE,OAAA,CAAQ8hE,OAAvB;IACA,KAAK7pD,OAAL,GAAejY,OAAA,CAAQiY,OAAvB;IACA,KAAK2pD,oBAAL,GAA4B5hE,OAAA,CAAQ4hE,oBAApC;IACA,KAAK/+D,IAAL,GAAY7C,OAAA,CAAQ6C,IAAR,IAAgB2uD,oBAA5B;IACA,KAAKmM,qBAAL,GAA6B,IAA7B;IACA,KAAKxqC,GAAL,GAAW,IAAX;IACA,KAAKwvC,UAAL,GAAkB,KAAlB;IACA,KAAK,CAAA1hC,SAAL,GAAkBjhC,OAAA,CAAQihC,SAA1B;IACA,KAAK,CAAAy8B,eAAL,GAAwB19D,OAAA,CAAQ09D,eAAR,IAA2B,IAAnD;EATmB;EAgBrB,MAAM7jD,MAANA,CAAaqxC,QAAb,EAAuB0X,MAAA,GAAS,SAAhC,EAA2C;IACzC,IAAIA,MAAA,KAAW,SAAf,EAA0B;MACxB;IADwB;IAI1B,IAAI,KAAKD,UAAT,EAAqB;MACnB;IADmB;IAIrB,MAAME,cAAA,GAAiB3X,QAAA,CAASI,KAAT,CAAe;MAAEwX,QAAA,EAAU;IAAZ,CAAf,CAAvB;IACA,IAAI,KAAK3vC,GAAT,EAAc;MACZ,KAAKwqC,qBAAL,CAA2BnkD,MAA3B,CAAkC;QAAE0xC,QAAA,EAAU2X;MAAZ,CAAlC;MACA,KAAKnrC,IAAL;MACA;IAHY;IAOd,MAAMvE,GAAA,GAAO,KAAKA,GAAL,GAAWpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAxB;IACA1O,GAAA,CAAIiU,SAAJ,GAAgB,uBAAhB;IACAjU,GAAA,CAAI4vC,QAAJ,GAAe,CAAf;IACA5vC,GAAA,CAAI4U,MAAJ,GAAa,IAAb;IACA5U,GAAA,CAAI5rB,GAAJ,GAAU,KAAK,CAAA05B,SAAL,CAAgBsC,SAA1B;IACA,KAAKu+B,OAAL,CAAa//B,MAAb,CAAoB5O,GAApB;IAEA,KAAKwqC,qBAAL,GAA6B,IAAIqF,+BAAJ,CAA0B;MACrD/hC,SAAA,EAAW,KAAK,CAAAA,SADqC;MAErD9N,GAFqD;MAGrDyuC,oBAAA,EAAsB,KAAKA,oBAH0B;MAIrDlkC,SAAA,EAAW,KAAKzlB,OAAL,CAAaqF,UAAb,GAA0B,CAJgB;MAKrDza,IAAA,EAAM,KAAKA,IAL0C;MAMrDqoD,QAAA,EAAU2X,cAN2C;MAOrDnF,eAAA,EAAiB,KAAK,CAAAA;IAP+B,CAA1B,CAA7B;IAUA,MAAMuF,UAAA,GAAa;MACjB/X,QAAA,EAAU2X,cADO;MAEjB1vC,GAFiB;MAGjB+vC,WAAA,EAAa,IAHI;MAIjBN;IAJiB,CAAnB;IAOA,KAAKjF,qBAAL,CAA2B9jD,MAA3B,CAAkCopD,UAAlC;IACA,KAAKvrC,IAAL;EA1CyC;EA6C3CoO,OAAA,EAAS;IACP,KAAK68B,UAAL,GAAkB,IAAlB;IAEA,IAAI,CAAC,KAAKxvC,GAAV,EAAe;MACb;IADa;IAGf,KAAK2uC,OAAL,GAAe,IAAf;IACA,KAAKnE,qBAAL,CAA2BlrD,OAA3B;IACA,KAAK0gB,GAAL,CAASrnB,MAAT;EARO;EAWTyK,KAAA,EAAO;IACL,IAAI,CAAC,KAAK4c,GAAV,EAAe;MACb;IADa;IAGf,KAAKA,GAAL,CAAS4U,MAAT,GAAkB,IAAlB;EAJK;EAOPrQ,KAAA,EAAO;IACL,IAAI,CAAC,KAAKvE,GAAN,IAAa,KAAKwqC,qBAAL,CAA2BwF,OAA5C,EAAqD;MACnD;IADmD;IAGrD,KAAKhwC,GAAL,CAAS4U,MAAT,GAAkB,KAAlB;EAJK;AAvF0B;AAvCnCpsC,oCAAA,GAAA8mE,4BAAA;;;;;;;;;;;;AC0BA,IAAAplE,SAAA,GAAAhC,mBAAA;AACA,IAAA4zD,WAAA,GAAA5zD,mBAAA;AACA,IAAA+B,SAAA,GAAA/B,mBAAA;AAqBA,MAAMwmE,sBAAN,CAA6B;EAC3B,CAAAuB,yBAAA,GAA6B,IAA7B;EAKA5jE,YAAY;IACVsiE,OADU;IAEV7pD,OAFU;IAGVzO,WAHU;IAIVjH,eAJU;IAKV4P,iBAAA,GAAoB,IALV;IAMVpH,kBAAA,GAAqB,EANX;IAOVuR,WAAA,GAAc,IAPJ;IAQVzZ,IAAA,GAAO2uD,oBARG;IASV52C,eAAA,GAAkB,KATR;IAUV+3C,mBAAA,GAAsB,IAVZ;IAWVD,mBAAA,GAAsB,IAXZ;IAYVqP,mBAAA,GAAsB,IAZZ;IAaVH,oBAAA,GAAuB;EAbb,CAAZ,EAcG;IACD,KAAKE,OAAL,GAAeA,OAAf;IACA,KAAK7pD,OAAL,GAAeA,OAAf;IACA,KAAKzO,WAAL,GAAmBA,WAAnB;IACA,KAAKjH,eAAL,GAAuBA,eAAvB;IACA,KAAKwI,kBAAL,GAA0BA,kBAA1B;IACA,KAAKuR,WAAL,GAAmBA,WAAnB;IACA,KAAKzZ,IAAL,GAAYA,IAAZ;IACA,KAAKsP,iBAAL,GAAyBA,iBAAzB;IACA,KAAKyI,eAAL,GAAuBA,eAAvB;IACA,KAAKyoD,oBAAL,GAA4B1Q,mBAAA,IAAuB/xD,OAAA,CAAQC,OAAR,CAAgB,KAAhB,CAAnD;IACA,KAAKyiE,oBAAL,GAA4B5Q,mBAAA,IAAuB9xD,OAAA,CAAQC,OAAR,CAAgB,IAAhB,CAAnD;IACA,KAAK48D,oBAAL,GAA4BsE,mBAA5B;IACA,KAAKP,qBAAL,GAA6BI,oBAA7B;IAEA,KAAKlE,eAAL,GAAuB,IAAvB;IACA,KAAKvqC,GAAL,GAAW,IAAX;IACA,KAAKwvC,UAAL,GAAkB,KAAlB;IACA,KAAKluB,SAAL,GAAiBjrC,WAAA,CAAY5G,QAA7B;EAlBC;EA2BH,MAAMiX,MAANA,CAAaqxC,QAAb,EAAuB0X,MAAA,GAAS,SAAhC,EAA2C;IACzC,IAAI,KAAKzvC,GAAT,EAAc;MACZ,IAAI,KAAKwvC,UAAL,IAAmB,CAAC,KAAKjF,eAA7B,EAA8C;QAC5C;MAD4C;MAK9C,KAAKA,eAAL,CAAqBlkD,MAArB,CAA4B;QAC1B0xC,QAAA,EAAUA,QAAA,CAASI,KAAT,CAAe;UAAEwX,QAAA,EAAU;QAAZ,CAAf;MADgB,CAA5B;MAGA;IATY;IAYd,MAAM,CAACI,WAAD,EAActQ,YAAd,EAA4B2Q,YAA5B,IAA4C,MAAM3iE,OAAA,CAAQmS,GAAR,CAAY,CAClE,KAAKkF,OAAL,CAAaurD,cAAb,CAA4B;MAAEZ;IAAF,CAA5B,CADkE,EAElE,KAAKS,oBAF6D,EAGlE,KAAKC,oBAH6D,CAAZ,CAAxD;IAKA,IAAI,KAAKX,UAAT,EAAqB;MACnB;IADmB;IAMrB,MAAMxvC,GAAA,GAAO,KAAKA,GAAL,GAAWpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAxB;IACA1O,GAAA,CAAIiU,SAAJ,GAAgB,iBAAhB;IACA,KAAK06B,OAAL,CAAa//B,MAAb,CAAoB5O,GAApB;IAEA,IAAI+vC,WAAA,CAAYh7D,MAAZ,KAAuB,CAA3B,EAA8B;MAC5B,KAAKqO,IAAL;MACA;IAF4B;IAK9B,KAAKmnD,eAAL,GAAuB,IAAI+F,yBAAJ,CAAoB;MACzCtwC,GADyC;MAEzCyuC,oBAAA,EAAsB,KAAKJ,qBAFc;MAGzCO,mBAAA,EAAqB,KAAKtE,oBAHe;MAIzC56D,IAAA,EAAM,KAAKA,IAJ8B;MAKzCgO,IAAA,EAAM,KAAKoH,OAL8B;MAMzCizC,QAAA,EAAUA,QAAA,CAASI,KAAT,CAAe;QAAEwX,QAAA,EAAU;MAAZ,CAAf;IAN+B,CAApB,CAAvB;IASA,MAAM,KAAKpF,eAAL,CAAqB7jD,MAArB,CAA4B;MAChCqpD,WADgC;MAEhCn4D,kBAAA,EAAoB,KAAKA,kBAFO;MAGhCuR,WAAA,EAAa,KAAKA,WAHc;MAIhC9S,WAAA,EAAa,KAAKA,WAJc;MAKhCjH,eAAA,EAAiB,KAAKA,eALU;MAMhC4P,iBAAA,EAAmB,KAAKA,iBANQ;MAOhCyI,eAAA,EAAiB,KAAKA,eAPU;MAQhCg4C,YARgC;MAShC2Q;IATgC,CAA5B,CAAN;IAcA,IAAI,KAAK/5D,WAAL,CAAiB2G,oBAArB,EAA2C;MACzC,KAAK,CAAAuzD,2BAAL,CAAkCn1C,+BAAA,CAAsBG,UAAxD;IADyC;IAG3C,IAAI,CAAC,KAAK,CAAA00C,yBAAV,EAAsC;MACpC,KAAK,CAAAA,yBAAL,GAAkCt0D,GAAA,IAAO;QACvC,KAAK,CAAA40D,2BAAL,CAAkC50D,GAAA,CAAI+X,KAAtC;MADuC,CAAzC;MAGA,KAAK4tB,SAAL,EAAgBr6B,GAAhB,CACE,yBADF,EAEE,KAAK,CAAAgpD,yBAFP;IAJoC;EA3DG;EAsE3Ct9B,OAAA,EAAS;IACP,KAAK68B,UAAL,GAAkB,IAAlB;IAEA,IAAI,KAAK,CAAAS,yBAAT,EAAqC;MACnC,KAAK3uB,SAAL,EAAgB7wB,IAAhB,CACE,yBADF,EAEE,KAAK,CAAAw/C,yBAFP;MAIA,KAAK,CAAAA,yBAAL,GAAkC,IAAlC;IALmC;EAH9B;EAYT7sD,KAAA,EAAO;IACL,IAAI,CAAC,KAAK4c,GAAV,EAAe;MACb;IADa;IAGf,KAAKA,GAAL,CAAS4U,MAAT,GAAkB,IAAlB;EAJK;EAOP,CAAA27B,4BAA6B78C,KAA7B,EAAoC;IAClC,IAAI,CAAC,KAAKsM,GAAV,EAAe;MACb;IADa;IAGf,IAAIwwC,mBAAA,GAAsB,KAA1B;IAEA,QAAQ98C,KAAR;MACE,KAAK0H,+BAAA,CAAsBG,UAA3B;QACEi1C,mBAAA,GAAsB,IAAtB;QACA;MACF,KAAKp1C,+BAAA,CAAsBC,MAA3B;QACE;MACF;QACE;IAPJ;IASA,WAAWo1C,OAAX,IAAsB,KAAKzwC,GAAL,CAAS+sC,UAA/B,EAA2C;MACzC,IAAI0D,OAAA,CAAQpgB,YAAR,CAAqB,oBAArB,CAAJ,EAAgD;QAC9C;MAD8C;MAGhDogB,OAAA,CAAQC,KAAR,GAAgBF,mBAAhB;IAJyC;EAfT;AAxIT;AAjD7BhoE,8BAAA,GAAAkmE,sBAAA;;;;;;;;;;;;ACeA,IAAAzkE,SAAA,GAAA/B,mBAAA;AAEA,MAAMyoE,qBAAA,GAAwB;EAE5BC,QAAA,EAAU,IAFkB;EAG5BC,gBAAA,EAAkB,IAHU;EAK5BC,IAAA,EAAM,OALsB;EAM5BC,IAAA,EAAM,OANsB;EAO5BC,GAAA,EAAK,OAPuB;EAQ5BC,KAAA,EAAO,MARqB;EAS5BC,SAAA,EAAW,MATiB;EAW5BC,CAAA,EAAG,IAXyB;EAa5BC,CAAA,EAAG,SAbyB;EAc5BvoD,KAAA,EAAO,IAdqB;EAe5BwoD,MAAA,EAAQ,MAfoB;EAiB5BC,GAAA,EAAK,OAjBuB;EAmB5BC,GAAA,EAAK,IAnBuB;EAoB5BC,IAAA,EAAM,IApBsB;EAqB5BC,EAAA,EAAI,IArBwB;EAsB5BC,MAAA,EAAQ,IAtBoB;EAuB5BC,IAAA,EAAM,MAvBsB;EAwB5BC,KAAA,EAAO,MAxBqB;EAyB5BC,IAAA,EAAM,MAzBsB;EA2B5BC,IAAA,EAAM,IA3BsB;EA4B5BC,EAAA,EAAI,IA5BwB;EA6B5BC,EAAA,EAAI,IA7BwB;EA8B5BC,EAAA,EAAI,IA9BwB;EA+B5BC,OAAA,EAAS,IA/BmB;EAgC5BC,EAAA,EAAI,IAhCwB;EAiC5BC,EAAA,EAAI,IAjCwB;EAmC5BC,CAAA,EAAG,MAnCyB;EAoC5BC,EAAA,EAAI,UApCwB;EAqC5BC,KAAA,EAAO,IArCqB;EAuC5BC,KAAA,EAAO,OAvCqB;EAwC5BC,EAAA,EAAI,KAxCwB;EAyC5BC,EAAA,EAAI,cAzCwB;EA0C5BC,EAAA,EAAI,MA1CwB;EA2C5BC,KAAA,EAAO,cA3CqB;EA4C5BC,KAAA,EAAO,IA5CqB;EA6C5BC,KAAA,EAAO,IA7CqB;EA+C5BC,OAAA,EAAS,IA/CmB;EAiD5BC,MAAA,EAAQ,QAjDoB;EAmD5BC,OAAA,EAAS,IAnDmB;EAqD5BC,QAAA,EAAU;AArDkB,CAA9B;AAwDA,MAAMC,eAAA,GAAkB,UAAxB;AAEA,MAAMnH,sBAAN,CAA6B;EAC3B,CAAAG,OAAA,GAAWjrD,SAAX;EAEA,IAAIsqD,aAAJA,CAAA,EAAoB;IAClB,OAAO,KAAK,CAAAW,OAAL,KAAkBjrD,SAAzB;EADkB;EAIpBwF,OAAO0sD,UAAP,EAAmB;IACjB,IAAI,KAAK,CAAAjH,OAAL,KAAkBjrD,SAAtB,EAAiC;MAC/B,OAAO,KAAK,CAAAirD,OAAZ;IAD+B;IAGjC,MAAMA,OAAA,GAAU,KAAK,CAAAkH,IAAL,CAAWD,UAAX,CAAhB;IACAjH,OAAA,EAASt4D,SAAT,CAAmBC,GAAnB,CAAuB,YAAvB;IACA,OAAQ,KAAK,CAAAq4D,OAAL,GAAgBA,OAAxB;EANiB;EASnB/oD,KAAA,EAAO;IACL,IAAI,KAAK,CAAA+oD,OAAL,IAAiB,CAAC,KAAK,CAAAA,OAAL,CAAcv3B,MAApC,EAA4C;MAC1C,KAAK,CAAAu3B,OAAL,CAAcv3B,MAAd,GAAuB,IAAvB;IAD0C;EADvC;EAMPrQ,KAAA,EAAO;IACL,IAAI,KAAK,CAAA4nC,OAAL,EAAev3B,MAAnB,EAA2B;MACzB,KAAK,CAAAu3B,OAAL,CAAcv3B,MAAd,GAAuB,KAAvB;IADyB;EADtB;EAMP,CAAA0+B,cAAeC,aAAf,EAA8BC,WAA9B,EAA2C;IACzC,MAAM;MAAEC,GAAF;MAAO56D,EAAP;MAAWupD;IAAX,IAAoBmR,aAA1B;IACA,IAAIE,GAAA,KAAQvyD,SAAZ,EAAuB;MACrBsyD,WAAA,CAAYzuC,YAAZ,CAAyB,YAAzB,EAAuC,IAAAtG,8BAAA,EAAqBg1C,GAArB,CAAvC;IADqB;IAGvB,IAAI56D,EAAA,KAAOqI,SAAX,EAAsB;MACpBsyD,WAAA,CAAYzuC,YAAZ,CAAyB,WAAzB,EAAsClsB,EAAtC;IADoB;IAGtB,IAAIupD,IAAA,KAASlhD,SAAb,EAAwB;MACtBsyD,WAAA,CAAYzuC,YAAZ,CACE,MADF,EAEE,IAAAtG,8BAAA,EAAqB2jC,IAArB,EAAoD,IAApD,CAFF;IADsB;EARiB;EAgB3C,CAAAiR,KAAMn8B,IAAN,EAAY;IACV,IAAI,CAACA,IAAL,EAAW;MACT,OAAO,IAAP;IADS;IAIX,MAAM3a,OAAA,GAAU3uB,QAAA,CAAS8gC,aAAT,CAAuB,MAAvB,CAAhB;IACA,IAAI,UAAUwI,IAAd,EAAoB;MAClB,MAAM;QAAEw8B;MAAF,IAAWx8B,IAAjB;MACA,MAAM3L,KAAA,GAAQmoC,IAAA,CAAKnoC,KAAL,CAAW4nC,eAAX,CAAd;MACA,IAAI5nC,KAAJ,EAAW;QACThP,OAAA,CAAQwI,YAAR,CAAqB,MAArB,EAA6B,SAA7B;QACAxI,OAAA,CAAQwI,YAAR,CAAqB,YAArB,EAAmCwG,KAAA,CAAM,CAAN,CAAnC;MAFS,CAAX,MAGO,IAAIolC,qBAAA,CAAsB+C,IAAtB,CAAJ,EAAiC;QACtCn3C,OAAA,CAAQwI,YAAR,CAAqB,MAArB,EAA6B4rC,qBAAA,CAAsB+C,IAAtB,CAA7B;MADsC;IANtB;IAWpB,KAAK,CAAAJ,aAAL,CAAoBp8B,IAApB,EAA0B3a,OAA1B;IAEA,IAAI2a,IAAA,CAAKy8B,QAAT,EAAmB;MACjB,IAAIz8B,IAAA,CAAKy8B,QAAL,CAAc5+D,MAAd,KAAyB,CAAzB,IAA8B,QAAQmiC,IAAA,CAAKy8B,QAAL,CAAc,CAAd,CAA1C,EAA4D;QAG1D,KAAK,CAAAL,aAAL,CAAoBp8B,IAAA,CAAKy8B,QAAL,CAAc,CAAd,CAApB,EAAsCp3C,OAAtC;MAH0D,CAA5D,MAIO;QACL,WAAWq3C,GAAX,IAAkB18B,IAAA,CAAKy8B,QAAvB,EAAiC;UAC/Bp3C,OAAA,CAAQqS,MAAR,CAAe,KAAK,CAAAykC,IAAL,CAAWO,GAAX,CAAf;QAD+B;MAD5B;IALU;IAWnB,OAAOr3C,OAAP;EA9BU;AA5Ce;AA3E7B/zB,8BAAA,GAAAwjE,sBAAA;;;;;;;;;;;;ACeA,IAAA/hE,SAAA,GAAA/B,mBAAA;AASA,MAAMomE,wBAAN,CAA+B;EAC7B,CAAAr6D,OAAA,GAAW,KAAX;EAEA,CAAA4/D,YAAA,GAAgB,IAAhB;EAEA,CAAAC,SAAA,GAAa,IAAIz1C,GAAJ,EAAb;EAEA,CAAA01C,eAAA,GAAmB,IAAI11C,GAAJ,EAAnB;EAEA+tC,eAAef,QAAf,EAAyB;IACvB,KAAK,CAAAwI,YAAL,GAAqBxI,QAArB;EADuB;EAYzB,OAAO,CAAA2I,uBAAPA,CAAgCC,EAAhC,EAAoCC,EAApC,EAAwC;IACtC,MAAMC,KAAA,GAAQF,EAAA,CAAGvkC,qBAAH,EAAd;IACA,MAAM0kC,KAAA,GAAQF,EAAA,CAAGxkC,qBAAH,EAAd;IAEA,IAAIykC,KAAA,CAAMzzC,KAAN,KAAgB,CAAhB,IAAqByzC,KAAA,CAAMxzC,MAAN,KAAiB,CAA1C,EAA6C;MAC3C,OAAO,CAAC,CAAR;IAD2C;IAI7C,IAAIyzC,KAAA,CAAM1zC,KAAN,KAAgB,CAAhB,IAAqB0zC,KAAA,CAAMzzC,MAAN,KAAiB,CAA1C,EAA6C;MAC3C,OAAO,CAAC,CAAR;IAD2C;IAI7C,MAAM0zC,IAAA,GAAOF,KAAA,CAAM5iD,CAAnB;IACA,MAAM+iD,IAAA,GAAOH,KAAA,CAAM5iD,CAAN,GAAU4iD,KAAA,CAAMxzC,MAA7B;IACA,MAAM4zC,IAAA,GAAOJ,KAAA,CAAM5iD,CAAN,GAAU4iD,KAAA,CAAMxzC,MAAN,GAAe,CAAtC;IAEA,MAAM6zC,IAAA,GAAOJ,KAAA,CAAM7iD,CAAnB;IACA,MAAMkjD,IAAA,GAAOL,KAAA,CAAM7iD,CAAN,GAAU6iD,KAAA,CAAMzzC,MAA7B;IACA,MAAM+zC,IAAA,GAAON,KAAA,CAAM7iD,CAAN,GAAU6iD,KAAA,CAAMzzC,MAAN,GAAe,CAAtC;IAEA,IAAI4zC,IAAA,IAAQC,IAAR,IAAgBE,IAAA,IAAQJ,IAA5B,EAAkC;MAChC,OAAO,CAAC,CAAR;IADgC;IAIlC,IAAII,IAAA,IAAQL,IAAR,IAAgBE,IAAA,IAAQE,IAA5B,EAAkC;MAChC,OAAO,CAAC,CAAR;IADgC;IAIlC,MAAME,QAAA,GAAWR,KAAA,CAAM7iD,CAAN,GAAU6iD,KAAA,CAAMzzC,KAAN,GAAc,CAAzC;IACA,MAAMk0C,QAAA,GAAWR,KAAA,CAAM9iD,CAAN,GAAU8iD,KAAA,CAAM1zC,KAAN,GAAc,CAAzC;IAEA,OAAOi0C,QAAA,GAAWC,QAAlB;EA/BsC;EAqCxCvI,OAAA,EAAS;IACP,IAAI,KAAK,CAAAp4D,OAAT,EAAmB;MACjB,MAAM,IAAI3H,KAAJ,CAAU,8CAAV,CAAN;IADiB;IAGnB,IAAI,CAAC,KAAK,CAAAunE,YAAV,EAAyB;MACvB,MAAM,IAAIvnE,KAAJ,CAAU,0CAAV,CAAN;IADuB;IAIzB,KAAK,CAAA2H,OAAL,GAAgB,IAAhB;IACA,KAAK,CAAA4/D,YAAL,GAAqB,KAAK,CAAAA,YAAL,CAAmB1qC,KAAnB,EAArB;IACA,KAAK,CAAA0qC,YAAL,CAAmB5wC,IAAnB,CAAwBqrC,wBAAA,CAAyB,CAAA0F,uBAAjD;IAEA,IAAI,KAAK,CAAAF,SAAL,CAAgB70D,IAAhB,GAAuB,CAA3B,EAA8B;MAG5B,MAAM40D,YAAA,GAAe,KAAK,CAAAA,YAA1B;MACA,WAAW,CAACh7D,EAAD,EAAKg8D,SAAL,CAAX,IAA8B,KAAK,CAAAf,SAAnC,EAA+C;QAC7C,MAAMv3C,OAAA,GAAU3uB,QAAA,CAASkL,cAAT,CAAwBD,EAAxB,CAAhB;QACA,IAAI,CAAC0jB,OAAL,EAAc;UAGZ,KAAK,CAAAu3C,SAAL,CAAgB3tB,MAAhB,CAAuBttC,EAAvB;UACA;QAJY;QAMd,KAAK,CAAAi8D,eAAL,CAAsBj8D,EAAtB,EAA0Bg7D,YAAA,CAAagB,SAAb,CAA1B;MAR6C;IAJnB;IAgB9B,WAAW,CAACt4C,OAAD,EAAUw4C,WAAV,CAAX,IAAqC,KAAK,CAAAhB,eAA1C,EAA4D;MAC1D,KAAKiB,qBAAL,CAA2Bz4C,OAA3B,EAAoCw4C,WAApC;IAD0D;IAG5D,KAAK,CAAAhB,eAAL,CAAsB/pC,KAAtB;EA/BO;EAkCT4jC,QAAA,EAAU;IACR,IAAI,CAAC,KAAK,CAAA35D,OAAV,EAAoB;MAClB;IADkB;IAOpB,KAAK,CAAA8/D,eAAL,CAAsB/pC,KAAtB;IACA,KAAK,CAAA6pC,YAAL,GAAqB,IAArB;IACA,KAAK,CAAA5/D,OAAL,GAAgB,KAAhB;EAVQ;EAiBVghE,yBAAyB14C,OAAzB,EAAkC;IAChC,IAAI,CAAC,KAAK,CAAAtoB,OAAV,EAAoB;MAClB,KAAK,CAAA8/D,eAAL,CAAsB5tB,MAAtB,CAA6B5pB,OAA7B;MACA;IAFkB;IAKpB,MAAMo3C,QAAA,GAAW,KAAK,CAAAE,YAAtB;IACA,IAAI,CAACF,QAAD,IAAaA,QAAA,CAAS5+D,MAAT,KAAoB,CAArC,EAAwC;MACtC;IADsC;IAIxC,MAAM;MAAE8D;IAAF,IAAS0jB,OAAf;IACA,MAAMs4C,SAAA,GAAY,KAAK,CAAAf,SAAL,CAAgBjiE,GAAhB,CAAoBgH,EAApB,CAAlB;IACA,IAAIg8D,SAAA,KAAc3zD,SAAlB,EAA6B;MAC3B;IAD2B;IAI7B,MAAMg2B,IAAA,GAAOy8B,QAAA,CAASkB,SAAT,CAAb;IAEA,KAAK,CAAAf,SAAL,CAAgB3tB,MAAhB,CAAuBttC,EAAvB;IACA,IAAIq8D,IAAA,GAAOh+B,IAAA,CAAKi+B,YAAL,CAAkB,WAAlB,CAAX;IACA,IAAID,IAAA,EAAMzgE,QAAN,CAAeoE,EAAf,CAAJ,EAAwB;MACtBq8D,IAAA,GAAOA,IAAA,CACJhhE,KADI,CACE,GADF,EAEJ4vC,MAFI,CAEGxyB,CAAA,IAAKA,CAAA,KAAMzY,EAFd,EAGJ8J,IAHI,CAGC,GAHD,CAAP;MAIA,IAAIuyD,IAAJ,EAAU;QACRh+B,IAAA,CAAKnS,YAAL,CAAkB,WAAlB,EAA+BmwC,IAA/B;MADQ,CAAV,MAEO;QACLh+B,IAAA,CAAKgjB,eAAL,CAAqB,WAArB;QACAhjB,IAAA,CAAKnS,YAAL,CAAkB,MAAlB,EAA0B,cAA1B;MAFK;IAPe;EArBQ;EAmClC,CAAA+vC,gBAAiBj8D,EAAjB,EAAqBq+B,IAArB,EAA2B;IACzB,MAAMg+B,IAAA,GAAOh+B,IAAA,CAAKi+B,YAAL,CAAkB,WAAlB,CAAb;IACA,IAAI,CAACD,IAAA,EAAMzgE,QAAN,CAAeoE,EAAf,CAAL,EAAyB;MACvBq+B,IAAA,CAAKnS,YAAL,CAAkB,WAAlB,EAA+BmwC,IAAA,GAAO,GAAGA,IAAK,IAAGr8D,EAAX,EAAP,GAAyBA,EAAxD;IADuB;IAGzBq+B,IAAA,CAAKgjB,eAAL,CAAqB,MAArB;EALyB;EAe3B8a,sBAAsBz4C,OAAtB,EAA+Bw4C,WAA/B,EAA4C;IAC1C,MAAM;MAAEl8D;IAAF,IAAS0jB,OAAf;IACA,IAAI,CAAC1jB,EAAL,EAAS;MACP,OAAO,IAAP;IADO;IAIT,IAAI,CAAC,KAAK,CAAA5E,OAAV,EAAoB;MAElB,KAAK,CAAA8/D,eAAL,CAAsB/hE,GAAtB,CAA0BuqB,OAA1B,EAAmCw4C,WAAnC;MACA,OAAO,IAAP;IAHkB;IAMpB,IAAIA,WAAJ,EAAiB;MACf,KAAKE,wBAAL,CAA8B14C,OAA9B;IADe;IAIjB,MAAMo3C,QAAA,GAAW,KAAK,CAAAE,YAAtB;IACA,IAAI,CAACF,QAAD,IAAaA,QAAA,CAAS5+D,MAAT,KAAoB,CAArC,EAAwC;MACtC,OAAO,IAAP;IADsC;IAIxC,MAAM8rB,KAAA,GAAQ,IAAAhC,+BAAA,EACZ80C,QADY,EAEZz8B,IAAA,IACEo3B,wBAAA,CAAyB,CAAA0F,uBAAzB,CAAkDz3C,OAAlD,EAA2D2a,IAA3D,IAAmE,CAHzD,CAAd;IAMA,MAAM29B,SAAA,GAAY/xD,IAAA,CAAK2f,GAAL,CAAS,CAAT,EAAY5B,KAAA,GAAQ,CAApB,CAAlB;IACA,MAAMu0C,KAAA,GAAQzB,QAAA,CAASkB,SAAT,CAAd;IACA,KAAK,CAAAC,eAAL,CAAsBj8D,EAAtB,EAA0Bu8D,KAA1B;IACA,KAAK,CAAAtB,SAAL,CAAgB9hE,GAAhB,CAAoB6G,EAApB,EAAwBg8D,SAAxB;IAEA,MAAM7kE,MAAA,GAASolE,KAAA,CAAMjxC,UAArB;IACA,OAAOn0B,MAAA,EAAQ6D,SAAR,CAAkBgL,QAAlB,CAA2B,eAA3B,IAA8C7O,MAAA,CAAO6I,EAArD,GAA0D,IAAjE;EAjC0C;EAyC5Cw8D,iBAAiB3+D,SAAjB,EAA4B6lB,OAA5B,EAAqC+4C,cAArC,EAAqDP,WAArD,EAAkE;IAChE,MAAMl8D,EAAA,GAAK,KAAKm8D,qBAAL,CAA2BM,cAA3B,EAA2CP,WAA3C,CAAX;IAEA,IAAI,CAACr+D,SAAA,CAAU6+D,aAAV,EAAL,EAAgC;MAC9B7+D,SAAA,CAAUk4B,MAAV,CAAiBrS,OAAjB;MACA,OAAO1jB,EAAP;IAF8B;IAKhC,MAAM86D,QAAA,GAAW7oC,KAAA,CAAM0qC,IAAN,CAAW9+D,SAAA,CAAUq2D,UAArB,EAAiCjpB,MAAjC,CACf5M,IAAA,IAAQA,IAAA,KAAS3a,OADF,CAAjB;IAIA,IAAIo3C,QAAA,CAAS5+D,MAAT,KAAoB,CAAxB,EAA2B;MACzB,OAAO8D,EAAP;IADyB;IAI3B,MAAM48D,gBAAA,GAAmBH,cAAA,IAAkB/4C,OAA3C;IACA,MAAMsE,KAAA,GAAQ,IAAAhC,+BAAA,EACZ80C,QADY,EAEZz8B,IAAA,IACEo3B,wBAAA,CAAyB,CAAA0F,uBAAzB,CACEyB,gBADF,EAEEv+B,IAFF,IAGI,CANM,CAAd;IASA,IAAIrW,KAAA,KAAU,CAAd,EAAiB;MACf8yC,QAAA,CAAS,CAAT,EAAYvS,MAAZ,CAAmB7kC,OAAnB;IADe,CAAjB,MAEO;MACLo3C,QAAA,CAAS9yC,KAAA,GAAQ,CAAjB,EAAoB60C,KAApB,CAA0Bn5C,OAA1B;IADK;IAIP,OAAO1jB,EAAP;EAhCgE;AAxMrC;AAxB/BrQ,gCAAA,GAAA8lE,wBAAA;;;;;;;;;;;;AC8BA,MAAMrD,eAAN,CAAsB;EAIpB5+D,YAAY;IAAE8J,cAAF;IAAkB1G,QAAlB;IAA4B86B;EAA5B,CAAZ,EAAqD;IACnD,KAAKp0B,cAAL,GAAsBA,cAAtB;IACA,KAAKc,OAAL,GAAe,EAAf;IACA,KAAKxH,QAAL,GAAgBA,QAAhB;IACA,KAAKwzC,OAAL,GAAe1Y,SAAf;IACA,KAAKorC,yBAAL,GAAiC,IAAjC;IACA,KAAKtK,QAAL,GAAgB,IAAhB;IACA,KAAKuK,mBAAL,GAA2B,IAA3B;IACA,KAAK3hE,OAAL,GAAe,KAAf;EARmD;EAoBrDm4D,eAAeyJ,IAAf,EAAqBzV,KAArB,EAA4B;IAC1B,KAAKiL,QAAL,GAAgBwK,IAAhB;IACA,KAAKD,mBAAL,GAA2BxV,KAA3B;EAF0B;EAS5BiM,OAAA,EAAS;IACP,IAAI,CAAC,KAAKhB,QAAN,IAAkB,CAAC,KAAKuK,mBAA5B,EAAiD;MAC/C,MAAM,IAAItpE,KAAJ,CAAU,0CAAV,CAAN;IAD+C;IAGjD,IAAI,KAAK2H,OAAT,EAAkB;MAChB,MAAM,IAAI3H,KAAJ,CAAU,qCAAV,CAAN;IADgB;IAGlB,KAAK2H,OAAL,GAAe,IAAf;IACA,IAAI,CAAC,KAAK0hE,yBAAV,EAAqC;MACnC,KAAKA,yBAAL,GAAiCh6D,GAAA,IAAO;QACtC,IAAIA,GAAA,CAAI4uB,SAAJ,KAAkB,KAAK0Y,OAAvB,IAAkCtnC,GAAA,CAAI4uB,SAAJ,KAAkB,CAAC,CAAzD,EAA4D;UAC1D,KAAKurC,cAAL;QAD0D;MADtB,CAAxC;MAKA,KAAKrmE,QAAL,CAAcwX,GAAd,CACE,wBADF,EAEE,KAAK0uD,yBAFP;IANmC;IAWrC,KAAKG,cAAL;EAnBO;EAsBTlI,QAAA,EAAU;IACR,IAAI,CAAC,KAAK35D,OAAV,EAAmB;MACjB;IADiB;IAGnB,KAAKA,OAAL,GAAe,KAAf;IACA,IAAI,KAAK0hE,yBAAT,EAAoC;MAClC,KAAKlmE,QAAL,CAAcghB,IAAd,CACE,wBADF,EAEE,KAAKklD,yBAFP;MAIA,KAAKA,yBAAL,GAAiC,IAAjC;IALkC;IAOpC,KAAKG,cAAL,CAAkC,IAAlC;EAZQ;EAeVC,gBAAgB9+D,OAAhB,EAAyBytC,aAAzB,EAAwC;IAEtC,IAAI,CAACztC,OAAL,EAAc;MACZ,OAAO,EAAP;IADY;IAGd,MAAM;MAAE2+D;IAAF,IAA0B,IAAhC;IAEA,IAAI/gE,CAAA,GAAI,CAAR;MACEmhE,MAAA,GAAS,CADX;IAEA,MAAMh1B,GAAA,GAAM40B,mBAAA,CAAoB7gE,MAApB,GAA6B,CAAzC;IACA,MAAMggB,MAAA,GAAS,EAAf;IAEA,KAAK,IAAI2pB,CAAA,GAAI,CAAR,EAAWu3B,EAAA,GAAKh/D,OAAA,CAAQlC,MAAxB,EAAgC2pC,CAAA,GAAIu3B,EAAzC,EAA6Cv3B,CAAA,EAA7C,EAAkD;MAEhD,IAAIsE,QAAA,GAAW/rC,OAAA,CAAQynC,CAAR,CAAf;MAGA,OAAO7pC,CAAA,KAAMmsC,GAAN,IAAagC,QAAA,IAAYgzB,MAAA,GAASJ,mBAAA,CAAoB/gE,CAApB,EAAuBE,MAAhE,EAAwE;QACtEihE,MAAA,IAAUJ,mBAAA,CAAoB/gE,CAApB,EAAuBE,MAAjC;QACAF,CAAA;MAFsE;MAKxE,IAAIA,CAAA,KAAM+gE,mBAAA,CAAoB7gE,MAA9B,EAAsC;QACpClC,OAAA,CAAQK,KAAR,CAAc,mCAAd;MADoC;MAItC,MAAMq4B,KAAA,GAAQ;QACZ2qC,KAAA,EAAO;UACLC,MAAA,EAAQthE,CADH;UAELuxC,MAAA,EAAQpD,QAAA,GAAWgzB;QAFd;MADK,CAAd;MAQAhzB,QAAA,IAAY0B,aAAA,CAAchG,CAAd,CAAZ;MAIA,OAAO7pC,CAAA,KAAMmsC,GAAN,IAAagC,QAAA,GAAWgzB,MAAA,GAASJ,mBAAA,CAAoB/gE,CAApB,EAAuBE,MAA/D,EAAuE;QACrEihE,MAAA,IAAUJ,mBAAA,CAAoB/gE,CAApB,EAAuBE,MAAjC;QACAF,CAAA;MAFqE;MAKvE02B,KAAA,CAAMyV,GAAN,GAAY;QACVm1B,MAAA,EAAQthE,CADE;QAEVuxC,MAAA,EAAQpD,QAAA,GAAWgzB;MAFT,CAAZ;MAIAjhD,MAAA,CAAO1V,IAAP,CAAYksB,KAAZ;IAnCgD;IAqClD,OAAOxW,MAAP;EAjDsC;EAoDxCqhD,eAAen/D,OAAf,EAAwB;IAEtB,IAAIA,OAAA,CAAQlC,MAAR,KAAmB,CAAvB,EAA0B;MACxB;IADwB;IAG1B,MAAM;MAAEoB,cAAF;MAAkB8sC;IAAlB,IAA8B,IAApC;IACA,MAAM;MAAE2yB,mBAAF;MAAuBvK;IAAvB,IAAoC,IAA1C;IAEA,MAAMgL,cAAA,GAAiBpzB,OAAA,KAAY9sC,cAAA,CAAe6rC,QAAf,CAAwBiB,OAA3D;IACA,MAAMqzB,gBAAA,GAAmBngE,cAAA,CAAe6rC,QAAf,CAAwBgB,QAAjD;IACA,MAAMxuB,YAAA,GAAere,cAAA,CAAeud,KAAf,CAAqBc,YAA1C;IACA,IAAI+hD,OAAA,GAAU,IAAd;IACA,MAAMC,QAAA,GAAW;MACfL,MAAA,EAAQ,CAAC,CADM;MAEf/vB,MAAA,EAAQllC;IAFO,CAAjB;IAKA,SAASu1D,SAATA,CAAmBP,KAAnB,EAA0BjiC,SAA1B,EAAqC;MACnC,MAAMkiC,MAAA,GAASD,KAAA,CAAMC,MAArB;MACA9K,QAAA,CAAS8K,MAAT,EAAiBpjC,WAAjB,GAA+B,EAA/B;MACA,OAAO2jC,eAAA,CAAgBP,MAAhB,EAAwB,CAAxB,EAA2BD,KAAA,CAAM9vB,MAAjC,EAAyCnS,SAAzC,CAAP;IAHmC;IAMrC,SAASyiC,eAATA,CAAyBP,MAAzB,EAAiCQ,UAAjC,EAA6CC,QAA7C,EAAuD3iC,SAAvD,EAAkE;MAChE,IAAIjU,GAAA,GAAMqrC,QAAA,CAAS8K,MAAT,CAAV;MACA,IAAIn2C,GAAA,CAAI62C,QAAJ,KAAiBC,IAAA,CAAKC,SAA1B,EAAqC;QACnC,MAAMC,IAAA,GAAOppE,QAAA,CAAS8gC,aAAT,CAAuB,MAAvB,CAAb;QACA1O,GAAA,CAAIohC,MAAJ,CAAW4V,IAAX;QACAA,IAAA,CAAKpoC,MAAL,CAAY5O,GAAZ;QACAqrC,QAAA,CAAS8K,MAAT,IAAmBa,IAAnB;QACAh3C,GAAA,GAAMg3C,IAAN;MALmC;MAOrC,MAAMpjC,OAAA,GAAUgiC,mBAAA,CAAoBO,MAApB,EAA4BpoE,SAA5B,CACd4oE,UADc,EAEdC,QAFc,CAAhB;MAIA,MAAM1/B,IAAA,GAAOtpC,QAAA,CAASqpE,cAAT,CAAwBrjC,OAAxB,CAAb;MACA,IAAIK,SAAJ,EAAe;QACb,MAAM+iC,IAAA,GAAOppE,QAAA,CAAS8gC,aAAT,CAAuB,MAAvB,CAAb;QACAsoC,IAAA,CAAK/iC,SAAL,GAAiB,GAAGA,SAAU,WAA9B;QACA+iC,IAAA,CAAKpoC,MAAL,CAAYsI,IAAZ;QACAlX,GAAA,CAAI4O,MAAJ,CAAWooC,IAAX;QACA,OAAO/iC,SAAA,CAAUx/B,QAAV,CAAmB,UAAnB,IAAiCuiE,IAAA,CAAKj6C,UAAtC,GAAmD,CAA1D;MALa;MAOfiD,GAAA,CAAI4O,MAAJ,CAAWsI,IAAX;MACA,OAAO,CAAP;IAtBgE;IAyBlE,IAAIggC,EAAA,GAAKZ,gBAAT;MACEa,EAAA,GAAKD,EAAA,GAAK,CADZ;IAEA,IAAI1iD,YAAJ,EAAkB;MAChB0iD,EAAA,GAAK,CAAL;MACAC,EAAA,GAAKlgE,OAAA,CAAQlC,MAAb;IAFgB,CAAlB,MAGO,IAAI,CAACshE,cAAL,EAAqB;MAE1B;IAF0B;IAK5B,IAAIe,UAAA,GAAa,CAAC,CAAlB;IACA,IAAIC,UAAA,GAAa,CAAC,CAAlB;IACA,KAAK,IAAIxiE,CAAA,GAAIqiE,EAAR,EAAYriE,CAAA,GAAIsiE,EAArB,EAAyBtiE,CAAA,EAAzB,EAA8B;MAC5B,MAAM02B,KAAA,GAAQt0B,OAAA,CAAQpC,CAAR,CAAd;MACA,MAAMqhE,KAAA,GAAQ3qC,KAAA,CAAM2qC,KAApB;MACA,IAAIA,KAAA,CAAMC,MAAN,KAAiBiB,UAAjB,IAA+BlB,KAAA,CAAM9vB,MAAN,KAAiBixB,UAApD,EAAgE;QAI9D;MAJ8D;MAMhED,UAAA,GAAalB,KAAA,CAAMC,MAAnB;MACAkB,UAAA,GAAanB,KAAA,CAAM9vB,MAAnB;MAEA,MAAMpF,GAAA,GAAMzV,KAAA,CAAMyV,GAAlB;MACA,MAAMs2B,UAAA,GAAajB,cAAA,IAAkBxhE,CAAA,KAAMyhE,gBAA3C;MACA,MAAMiB,eAAA,GAAkBD,UAAA,GAAa,WAAb,GAA2B,EAAnD;MACA,IAAIz0B,YAAA,GAAe,CAAnB;MAGA,IAAI,CAAC0zB,OAAD,IAAYL,KAAA,CAAMC,MAAN,KAAiBI,OAAA,CAAQJ,MAAzC,EAAiD;QAE/C,IAAII,OAAA,KAAY,IAAhB,EAAsB;UACpBG,eAAA,CAAgBH,OAAA,CAAQJ,MAAxB,EAAgCI,OAAA,CAAQnwB,MAAxC,EAAgDowB,QAAA,CAASpwB,MAAzD;QADoB;QAItBqwB,SAAA,CAAUP,KAAV;MAN+C,CAAjD,MAOO;QACLQ,eAAA,CAAgBH,OAAA,CAAQJ,MAAxB,EAAgCI,OAAA,CAAQnwB,MAAxC,EAAgD8vB,KAAA,CAAM9vB,MAAtD;MADK;MAIP,IAAI8vB,KAAA,CAAMC,MAAN,KAAiBn1B,GAAA,CAAIm1B,MAAzB,EAAiC;QAC/BtzB,YAAA,GAAe6zB,eAAA,CACbR,KAAA,CAAMC,MADO,EAEbD,KAAA,CAAM9vB,MAFO,EAGbpF,GAAA,CAAIoF,MAHS,EAIb,cAAcmxB,eAJD,CAAf;MAD+B,CAAjC,MAOO;QACL10B,YAAA,GAAe6zB,eAAA,CACbR,KAAA,CAAMC,MADO,EAEbD,KAAA,CAAM9vB,MAFO,EAGbowB,QAAA,CAASpwB,MAHI,EAIb,oBAAoBmxB,eAJP,CAAf;QAMA,KAAK,IAAIC,EAAA,GAAKtB,KAAA,CAAMC,MAAN,GAAe,CAAxB,EAA2BsB,EAAA,GAAKz2B,GAAA,CAAIm1B,MAApC,EAA4CqB,EAAA,GAAKC,EAAtD,EAA0DD,EAAA,EAA1D,EAAgE;UAC9DnM,QAAA,CAASmM,EAAT,EAAavjC,SAAb,GAAyB,qBAAqBsjC,eAA9C;QAD8D;QAGhEd,SAAA,CAAUz1B,GAAV,EAAe,kBAAkBu2B,eAAjC;MAVK;MAYPhB,OAAA,GAAUv1B,GAAV;MAEA,IAAIs2B,UAAJ,EAAgB;QAEdnhE,cAAA,CAAeysC,mBAAf,CAAmC;UACjCrmB,OAAA,EAAS8uC,QAAA,CAAS6K,KAAA,CAAMC,MAAf,CADwB;UAEjCtzB,YAFiC;UAGjCtY,SAAA,EAAW0Y,OAHsB;UAIjCH,UAAA,EAAYwzB;QAJqB,CAAnC;MAFc;IAlDY;IA6D9B,IAAIC,OAAJ,EAAa;MACXG,eAAA,CAAgBH,OAAA,CAAQJ,MAAxB,EAAgCI,OAAA,CAAQnwB,MAAxC,EAAgDowB,QAAA,CAASpwB,MAAzD;IADW;EAzHS;EA8HxB0vB,eAAep2D,KAAA,GAAQ,KAAvB,EAA8B;IAC5B,IAAI,CAAC,KAAKzL,OAAN,IAAiB,CAACyL,KAAtB,EAA6B;MAC3B;IAD2B;IAG7B,MAAM;MAAEvJ,cAAF;MAAkBc,OAAlB;MAA2BgsC;IAA3B,IAAuC,IAA7C;IACA,MAAM;MAAE2yB,mBAAF;MAAuBvK;IAAvB,IAAoC,IAA1C;IACA,IAAIqM,kBAAA,GAAqB,CAAC,CAA1B;IAGA,WAAWnsC,KAAX,IAAoBt0B,OAApB,EAA6B;MAC3B,MAAMi/D,KAAA,GAAQpzD,IAAA,CAAK2f,GAAL,CAASi1C,kBAAT,EAA6BnsC,KAAA,CAAM2qC,KAAN,CAAYC,MAAzC,CAAd;MACA,KAAK,IAAIwB,CAAA,GAAIzB,KAAR,EAAel1B,GAAA,GAAMzV,KAAA,CAAMyV,GAAN,CAAUm1B,MAA/B,EAAuCwB,CAAA,IAAK32B,GAAjD,EAAsD22B,CAAA,EAAtD,EAA2D;QACzD,MAAM33C,GAAA,GAAMqrC,QAAA,CAASsM,CAAT,CAAZ;QACA33C,GAAA,CAAI+S,WAAJ,GAAkB6iC,mBAAA,CAAoB+B,CAApB,CAAlB;QACA33C,GAAA,CAAIiU,SAAJ,GAAgB,EAAhB;MAHyD;MAK3DyjC,kBAAA,GAAqBnsC,KAAA,CAAMyV,GAAN,CAAUm1B,MAAV,GAAmB,CAAxC;IAP2B;IAU7B,IAAI,CAAChgE,cAAA,EAAgBurC,gBAAjB,IAAqChiC,KAAzC,EAAgD;MAC9C;IAD8C;IAKhD,MAAMkiC,WAAA,GAAczrC,cAAA,CAAeyrC,WAAf,CAA2BqB,OAA3B,KAAuC,IAA3D;IACA,MAAMnB,iBAAA,GAAoB3rC,cAAA,CAAe2rC,iBAAf,CAAiCmB,OAAjC,KAA6C,IAAvE;IAEA,KAAKhsC,OAAL,GAAe,KAAK8+D,eAAL,CAAqBn0B,WAArB,EAAkCE,iBAAlC,CAAf;IACA,KAAKs0B,cAAL,CAAoB,KAAKn/D,OAAzB;EA5B4B;AAxPV;AA9BtBzO,uBAAA,GAAAyiE,eAAA;;;;;;;;;;;;ACsBA,IAAA/gE,SAAA,GAAAhC,mBAAA;AACA,IAAA+B,SAAA,GAAA/B,mBAAA;AAgBA,MAAMqmE,gBAAN,CAAuB;EACrB,CAAAx2D,iBAAA,GAAqB,KAArB;EAEA,CAAAwM,QAAA,GAAY,CAAZ;EAEA,CAAAqP,KAAA,GAAS,CAAT;EAEA,CAAAgkD,iBAAA,GAAqB,IAArB;EAEAvrE,YAAY;IACVmiE,WAAA,GAAc,IADJ;IAEVC,oBAAA,GAAuB,IAFb;IAGV53D,0BAAA,GAA6B,IAHnB;IAIVkB,iBAAA,GAAoB;EAJV,CAAZ,EAKG;IACD,KAAK69D,mBAAL,GAA2B,EAA3B;IACA,KAAKpK,aAAL,GAAqB,KAArB;IACA,KAAKH,QAAL,GAAgB,EAAhB;IACA,KAAKwM,iBAAL,GAAyB,IAAI3lC,OAAJ,EAAzB;IACA,KAAK4lC,mBAAL,GAA2B,IAA3B;IACA,KAAKtJ,WAAL,GAAmBA,WAAnB;IACA,KAAKC,oBAAL,GAA4BA,oBAA5B;IACA,KAAK53D,0BAAL,GAAkCA,0BAAlC;IACA,KAAK,CAAAkB,iBAAL,GAA0BA,iBAAA,KAAsB,IAAhD;IAEA,KAAKioB,GAAL,GAAWpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAX;IACA,KAAK1O,GAAL,CAASiU,SAAT,GAAqB,WAArB;IACA,KAAK7wB,IAAL;EAbC;EAgBH,CAAA20D,gBAAA,EAAmB;IACjB,KAAKvM,aAAL,GAAqB,IAArB;IAEA,MAAMwM,YAAA,GAAepqE,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAArB;IACAspC,YAAA,CAAa/jC,SAAb,GAAyB,cAAzB;IACA,KAAKjU,GAAL,CAAS4O,MAAT,CAAgBopC,YAAhB;IAEA,KAAK,CAAAC,SAAL;EAPiB;EAUnB,IAAInM,WAAJA,CAAA,EAAkB;IAChB,OAAO,KAAKT,QAAL,CAAct2D,MAArB;EADgB;EAQlB,MAAM2R,MAANA,CAAaqxC,QAAb,EAAuB;IACrB,IAAI,CAAC,KAAK,CAAA6f,iBAAV,EAA8B;MAC5B,MAAM,IAAItrE,KAAJ,CAAU,6CAAV,CAAN;IAD4B;IAI9B,MAAMsnB,KAAA,GAAQmkC,QAAA,CAASnkC,KAAT,IAAkBhB,UAAA,CAAWtD,gBAAX,IAA+B,CAA/B,CAAhC;IACA,MAAM;MAAE/K;IAAF,IAAewzC,QAArB;IACA,IAAI,KAAKyT,aAAT,EAAwB;MACtB,MAAM0M,UAAA,GAAa3zD,QAAA,KAAa,KAAK,CAAAA,QAArC;MACA,MAAM4zD,WAAA,GAAcvkD,KAAA,KAAU,KAAK,CAAAA,KAAnC;MACA,IAAIskD,UAAA,IAAcC,WAAlB,EAA+B;QAC7B,KAAK/0D,IAAL;QACA,IAAAg1D,yBAAA,EAAgB;UACd1hE,SAAA,EAAW,KAAKspB,GADF;UAEd+3B,QAFc;UAGdsT,QAAA,EAAU,KAAKA,QAHD;UAIdwM,iBAAA,EAAmB,KAAKA,iBAJV;UAKdhhE,0BAAA,EAA4B,KAAKA,0BALnB;UAMdshE,WANc;UAOdD;QAPc,CAAhB;QASA,KAAK,CAAAtkD,KAAL,GAAcA,KAAd;QACA,KAAK,CAAArP,QAAL,GAAiBA,QAAjB;MAZ6B;MAc/B,KAAKggB,IAAL;MACA;IAlBsB;IAqBxB,KAAKoO,MAAL;IACA,KAAK67B,WAAL,EAAkBpC,cAAlB,CAAiC,KAAKf,QAAtC,EAAgD,KAAKuK,mBAArD;IACA,KAAKnH,oBAAL,EAA2BrC,cAA3B,CAA0C,KAAKf,QAA/C;IAEA,KAAKyM,mBAAL,GAA2B,IAAAvM,yBAAA,EAAgB;MACzCqM,iBAAA,EAAmB,KAAK,CAAAA,iBADiB;MAEzClhE,SAAA,EAAW,KAAKspB,GAFyB;MAGzC+3B,QAHyC;MAIzCsT,QAAA,EAAU,KAAKA,QAJ0B;MAKzCwM,iBAAA,EAAmB,KAAKA,iBALiB;MAMzCjC,mBAAA,EAAqB,KAAKA,mBANe;MAOzC/+D,0BAAA,EAA4B,KAAKA;IAPQ,CAAhB,CAA3B;IAUA,MAAM,KAAKihE,mBAAL,CAAyBl7D,OAA/B;IACA,KAAK,CAAAm7D,eAAL;IACA,KAAK,CAAAnkD,KAAL,GAAcA,KAAd;IACA,KAAK,CAAArP,QAAL,GAAiBA,QAAjB;IACA,KAAKggB,IAAL;IACA,KAAKkqC,oBAAL,EAA2BpC,MAA3B;EA/CqB;EAkDvBjpD,KAAA,EAAO;IACL,IAAI,CAAC,KAAK4c,GAAL,CAAS4U,MAAd,EAAsB;MAGpB,KAAK45B,WAAL,EAAkBZ,OAAlB;MACA,KAAK5tC,GAAL,CAAS4U,MAAT,GAAkB,IAAlB;IAJoB;EADjB;EASPrQ,KAAA,EAAO;IACL,IAAI,KAAKvE,GAAL,CAAS4U,MAAT,IAAmB,KAAK42B,aAA5B,EAA2C;MACzC,KAAKxrC,GAAL,CAAS4U,MAAT,GAAkB,KAAlB;MACA,KAAK45B,WAAL,EAAkBnC,MAAlB;IAFyC;EADtC;EAUP15B,OAAA,EAAS;IACP,IAAI,KAAKmlC,mBAAT,EAA8B;MAC5B,KAAKA,mBAAL,CAAyBnlC,MAAzB;MACA,KAAKmlC,mBAAL,GAA2B,IAA3B;IAF4B;IAI9B,KAAKtJ,WAAL,EAAkBZ,OAAlB;IACA,KAAKa,oBAAL,EAA2Bb,OAA3B;IACA,KAAKgI,mBAAL,CAAyB7gE,MAAzB,GAAkC,CAAlC;IACA,KAAKs2D,QAAL,CAAct2D,MAAd,GAAuB,CAAvB;IACA,KAAK8iE,iBAAL,GAAyB,IAAI3lC,OAAJ,EAAzB;EATO;EAeT05B,qBAAqBl5D,MAArB,EAA6B;IAC3B,KAAKigC,MAAL;IACA,KAAK,CAAAilC,iBAAL,GAA0BllE,MAA1B;EAF2B;EAU7B,CAAAulE,UAAA,EAAa;IACX,MAAM;MAAEj4C;IAAF,IAAU,IAAhB;IAEAA,GAAA,CAAItkB,gBAAJ,CAAqB,WAArB,EAAkCC,GAAA,IAAO;MACvC,MAAMqlC,GAAA,GAAMhhB,GAAA,CAAI2E,aAAJ,CAAkB,eAAlB,CAAZ;MACA,IAAI,CAACqc,GAAL,EAAU;QACR;MADQ;MAQR,IAAIq3B,SAAA,GAAY18D,GAAA,CAAIE,MAAJ,KAAemkB,GAA/B;MAEEq4C,SAAA,KACEh7C,gBAAA,CAAiB2jB,GAAjB,EAAsBs3B,gBAAtB,CAAuC,kBAAvC,MACA,MAFF;MAIF,IAAID,SAAJ,EAAe;QACb,MAAME,SAAA,GAAYv4C,GAAA,CAAI0P,qBAAJ,EAAlB;QACA,MAAMzP,CAAA,GAAInd,IAAA,CAAK2f,GAAL,CAAS,CAAT,EAAa,CAAA9mB,GAAA,CAAIyb,KAAJ,GAAYmhD,SAAA,CAAU7mD,GAAtB,IAA6B6mD,SAAA,CAAU53C,MAApD,CAAV;QACAqgB,GAAA,CAAIpd,KAAJ,CAAUlS,GAAV,GAAiB,CAAAuO,CAAA,GAAI,GAAJ,EAASslC,OAAV,CAAkB,CAAlB,IAAuB,GAAvC;MAHa;MAMjBvkB,GAAA,CAAIntC,SAAJ,CAAcC,GAAd,CAAkB,QAAlB;IAtBuC,CAAzC;IAyBAksB,GAAA,CAAItkB,gBAAJ,CAAqB,SAArB,EAAgC,MAAM;MACpC,MAAMslC,GAAA,GAAMhhB,GAAA,CAAI2E,aAAJ,CAAkB,eAAlB,CAAZ;MACA,IAAI,CAACqc,GAAL,EAAU;QACR;MADQ;MAIRA,GAAA,CAAIpd,KAAJ,CAAUlS,GAAV,GAAgB,EAAhB;MAEFsvB,GAAA,CAAIntC,SAAJ,CAAc8E,MAAd,CAAqB,QAArB;IARoC,CAAtC;IAWAqnB,GAAA,CAAItkB,gBAAJ,CAAqB,MAArB,EAA6BmU,KAAA,IAAS;MACpC,IAAI,CAAC,KAAK,CAAA9X,iBAAV,EAA8B;QAC5B,MAAMuoD,SAAA,GAAY1yD,QAAA,CAASmiD,YAAT,EAAlB;QACAlgC,KAAA,CAAM2oD,aAAN,CAAoBC,OAApB,CACE,YADF,EAEE,IAAAh6C,8BAAA,EAAqB,IAAAi6C,0BAAA,EAAiBpY,SAAA,CAAU32C,QAAV,EAAjB,CAArB,CAFF;MAF4B;MAO9BkG,KAAA,CAAM/T,cAAN;MACA+T,KAAA,CAAMilB,eAAN;IAToC,CAAtC;EAvCW;AA9IQ;AAvCvBtsC,wBAAA,GAAA+lE,gBAAA;;;;;;;;;;;;ACsBA,IAAArkE,SAAA,GAAAhC,mBAAA;AAWA,MAAMqnE,eAAN,CAAsB;EAIpBljE,YAAY;IACVsiE,OADU;IAEV7pD,OAFU;IAGV9F,iBAAA,GAAoB,IAHV;IAIV3I,WAJU;IAKVsiE,OAAA,GAAU;EALA,CAAZ,EAMG;IACD,KAAKhK,OAAL,GAAeA,OAAf;IACA,KAAK7pD,OAAL,GAAeA,OAAf;IACA,KAAK9F,iBAAL,GAAyBA,iBAAzB;IACA,KAAK3I,WAAL,GAAmBA,WAAnB;IACA,KAAKsiE,OAAL,GAAeA,OAAf;IAEA,KAAK34C,GAAL,GAAW,IAAX;IACA,KAAKwvC,UAAL,GAAkB,KAAlB;EARC;EAkBH,MAAM9oD,MAANA,CAAaqxC,QAAb,EAAuB0X,MAAA,GAAS,SAAhC,EAA2C;IACzC,IAAIA,MAAA,KAAW,OAAf,EAAwB;MACtB,MAAMK,UAAA,GAAa;QACjB/X,QAAA,EAAUA,QAAA,CAASI,KAAT,CAAe;UAAEwX,QAAA,EAAU;QAAZ,CAAf,CADO;QAEjB3vC,GAAA,EAAK,KAAKA,GAFO;QAGjB24C,OAAA,EAAS,KAAKA,OAHG;QAIjB35D,iBAAA,EAAmB,KAAKA,iBAJP;QAKjB3I,WAAA,EAAa,KAAKA,WALD;QAMjBo5D;MANiB,CAAnB;MAUA,MAAMzvC,GAAA,GAAMpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;MACA,KAAKigC,OAAL,CAAa//B,MAAb,CAAoB5O,GAApB;MACA8vC,UAAA,CAAW9vC,GAAX,GAAiBA,GAAjB;MAEA,OAAO44C,kBAAA,CAASlyD,MAAT,CAAgBopD,UAAhB,CAAP;IAfsB;IAmBxB,MAAM6I,OAAA,GAAU,MAAM,KAAK7zD,OAAL,CAAa+zD,MAAb,EAAtB;IACA,IAAI,KAAKrJ,UAAL,IAAmB,CAACmJ,OAAxB,EAAiC;MAC/B,OAAO;QAAEtN,QAAA,EAAU;MAAZ,CAAP;IAD+B;IAIjC,MAAMyE,UAAA,GAAa;MACjB/X,QAAA,EAAUA,QAAA,CAASI,KAAT,CAAe;QAAEwX,QAAA,EAAU;MAAZ,CAAf,CADO;MAEjB3vC,GAAA,EAAK,KAAKA,GAFO;MAGjB24C,OAHiB;MAIjB35D,iBAAA,EAAmB,KAAKA,iBAJP;MAKjB3I,WAAA,EAAa,KAAKA,WALD;MAMjBo5D;IANiB,CAAnB;IASA,IAAI,KAAKzvC,GAAT,EAAc;MACZ,OAAO44C,kBAAA,CAASvyD,MAAT,CAAgBypD,UAAhB,CAAP;IADY;IAId,KAAK9vC,GAAL,GAAWpyB,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAX;IACA,KAAKigC,OAAL,CAAa//B,MAAb,CAAoB,KAAK5O,GAAzB;IACA8vC,UAAA,CAAW9vC,GAAX,GAAiB,KAAKA,GAAtB;IAEA,OAAO44C,kBAAA,CAASlyD,MAAT,CAAgBopD,UAAhB,CAAP;EA1CyC;EA6C3Cn9B,OAAA,EAAS;IACP,KAAK68B,UAAL,GAAkB,IAAlB;EADO;EAITpsD,KAAA,EAAO;IACL,IAAI,CAAC,KAAK4c,GAAV,EAAe;MACb;IADa;IAGf,KAAKA,GAAL,CAAS4U,MAAT,GAAkB,IAAlB;EAJK;AA7Ea;AAjCtBpsC,uBAAA,GAAA+mE,eAAA;;;;;;;;;;;;ACeA,IAAAtlE,SAAA,GAAA/B,mBAAA;AAOA,IAAAqD,WAAA,GAAArD,mBAAA;AA+BA,MAAMoR,gBAAN,CAAuB;EAKrBjN,YAAYQ,OAAZ,EAAqB4C,QAArB,EAA+B;IAC7B,KAAKF,OAAL,GAAe1C,OAAA,CAAQ0C,OAAvB;IACA,KAAKwpB,YAAL,GAAoBlsB,OAAA,CAAQksB,YAA5B;IACA,KAAK2e,OAAL,GAAe,CACb;MACEnb,OAAA,EAAS1vB,OAAA,CAAQ2M,sBADnB;MAEEqvB,SAAA,EAAW,kBAFb;MAGE/pB,KAAA,EAAO;IAHT,CADa,EAMb;MAAEyd,OAAA,EAAS1vB,OAAA,CAAQwP,WAAnB;MAAgCwsB,SAAA,EAAW,OAA3C;MAAoD/pB,KAAA,EAAO;IAA3D,CANa,EAOb;MAAEyd,OAAA,EAAS1vB,OAAA,CAAQisE,cAAnB;MAAmCjwC,SAAA,EAAW,UAA9C;MAA0D/pB,KAAA,EAAO;IAAjE,CAPa,EAQb;MAAEyd,OAAA,EAAS1vB,OAAA,CAAQ+R,kBAAnB;MAAuCiqB,SAAA,EAAW,IAAlD;MAAwD/pB,KAAA,EAAO;IAA/D,CARa,EASb;MAAEyd,OAAA,EAAS1vB,OAAA,CAAQksE,eAAnB;MAAoClwC,SAAA,EAAW,WAA/C;MAA4D/pB,KAAA,EAAO;IAAnE,CATa,EAUb;MAAEyd,OAAA,EAAS1vB,OAAA,CAAQmsE,cAAnB;MAAmCnwC,SAAA,EAAW,UAA9C;MAA0D/pB,KAAA,EAAO;IAAjE,CAVa,EAWb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQosE,kBADnB;MAEEpwC,SAAA,EAAW,UAFb;MAGE/pB,KAAA,EAAO;IAHT,CAXa,EAgBb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQqsE,mBADnB;MAEErwC,SAAA,EAAW,WAFb;MAGE/pB,KAAA,EAAO;IAHT,CAhBa,EAqBb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQssE,sBADnB;MAEEtwC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEpjC,IAAA,EAAM5b,oBAAA,CAAWC;MAAnB,CAHhB;MAIEvb,KAAA,EAAO;IAJT,CArBa,EA2Bb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQqM,oBADnB;MAEE2vB,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEpjC,IAAA,EAAM5b,oBAAA,CAAWE;MAAnB,CAHhB;MAIExb,KAAA,EAAO;IAJT,CA3Ba,EAiCb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQwsE,gBADnB;MAEExwC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEnmD,IAAA,EAAMtO,oBAAA,CAAWkX;MAAnB,CAHhB;MAIE/c,KAAA,EAAO;IAJT,CAjCa,EAuCb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQysE,oBADnB;MAEEzwC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEnmD,IAAA,EAAMtO,oBAAA,CAAW+W;MAAnB,CAHhB;MAIE5c,KAAA,EAAO;IAJT,CAvCa,EA6Cb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQ0sE,sBADnB;MAEE1wC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEnmD,IAAA,EAAMtO,oBAAA,CAAWgX;MAAnB,CAHhB;MAIE7c,KAAA,EAAO;IAJT,CA7Ca,EAmDb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQ2sE,mBADnB;MAEE3wC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEnmD,IAAA,EAAMtO,oBAAA,CAAWiX;MAAnB,CAHhB;MAIE9c,KAAA,EAAO;IAJT,CAnDa,EAyDb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQ4sE,gBADnB;MAEE5wC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEnmD,IAAA,EAAMpO,oBAAA,CAAW9S;MAAnB,CAHhB;MAIE+M,KAAA,EAAO;IAJT,CAzDa,EA+Db;MACEyd,OAAA,EAAS1vB,OAAA,CAAQ6sE,eADnB;MAEE7wC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEnmD,IAAA,EAAMpO,oBAAA,CAAWiX;MAAnB,CAHhB;MAIEhd,KAAA,EAAO;IAJT,CA/Da,EAqEb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQ8sE,gBADnB;MAEE9wC,SAAA,EAAW,kBAFb;MAGEuwC,YAAA,EAAc;QAAEnmD,IAAA,EAAMpO,oBAAA,CAAWkX;MAAnB,CAHhB;MAIEjd,KAAA,EAAO;IAJT,CArEa,EA2Eb;MACEyd,OAAA,EAAS1vB,OAAA,CAAQ+sE,wBADnB;MAEE/wC,SAAA,EAAW,oBAFb;MAGE/pB,KAAA,EAAO;IAHT,CA3Ea,CAAf;IAkFE,KAAK44B,OAAL,CAAar4B,IAAb,CAAkB;MAChBkd,OAAA,EAAS1vB,OAAA,CAAQgtE,cADD;MAEhBhxC,SAAA,EAAW,UAFK;MAGhB/pB,KAAA,EAAO;IAHS,CAAlB;IAMF,KAAKggB,KAAL,GAAa;MACXolC,SAAA,EAAWr3D,OAAA,CAAQksE,eADR;MAEXe,QAAA,EAAUjtE,OAAA,CAAQmsE,cAFP;MAGXe,YAAA,EAAcltE,OAAA,CAAQosE,kBAHX;MAIXe,aAAA,EAAentE,OAAA,CAAQqsE;IAJZ,CAAb;IAOA,KAAKzpE,QAAL,GAAgBA,QAAhB;IACA,KAAKyqB,MAAL,GAAc,KAAd;IAIA,KAAK,CAAA+/C,kBAAL;IACA,KAAK,CAAAC,uBAAL,CAA8BrtE,OAA9B;IACA,KAAK,CAAAstE,sBAAL,CAA6BttE,OAA7B;IACA,KAAK,CAAAutE,sBAAL,CAA6BvtE,OAA7B;IAEA,KAAK6S,KAAL;EA5G6B;EAkH/B,IAAImZ,MAAJA,CAAA,EAAa;IACX,OAAO,KAAKqB,MAAZ;EADW;EAIbrQ,cAAcM,UAAd,EAA0B;IACxB,KAAKA,UAAL,GAAkBA,UAAlB;IACA,KAAK,CAAA6K,aAAL;EAFwB;EAK1BnR,cAAcrG,UAAd,EAA0B;IACxB,KAAKA,UAAL,GAAkBA,UAAlB;IACA,KAAK,CAAAwX,aAAL;EAFwB;EAK1BtV,MAAA,EAAQ;IACN,KAAKyK,UAAL,GAAkB,CAAlB;IACA,KAAK3M,UAAL,GAAkB,CAAlB;IACA,KAAK,CAAAwX,aAAL;IAGA,KAAKvlB,QAAL,CAAcgD,QAAd,CAAuB,uBAAvB,EAAgD;MAAEC,MAAA,EAAQ;IAAV,CAAhD;EANM;EASR,CAAAsiB,cAAA,EAAiB;IACf,KAAK8J,KAAL,CAAWolC,SAAX,CAAqBpzB,QAArB,GAAgC,KAAK3mB,UAAL,IAAmB,CAAnD;IACA,KAAK2U,KAAL,CAAWg7C,QAAX,CAAoBhpC,QAApB,GAA+B,KAAK3mB,UAAL,IAAmB,KAAK3M,UAAvD;IACA,KAAKshB,KAAL,CAAWi7C,YAAX,CAAwBjpC,QAAxB,GAAmC,KAAKtzB,UAAL,KAAoB,CAAvD;IACA,KAAKshB,KAAL,CAAWk7C,aAAX,CAAyBlpC,QAAzB,GAAoC,KAAKtzB,UAAL,KAAoB,CAAxD;EAJe;EAOjB,CAAAy8D,mBAAA,EAAsB;IAEpB,KAAKlhD,YAAL,CAAkBrd,gBAAlB,CAAmC,OAAnC,EAA4C,KAAK8X,MAAL,CAAY1d,IAAZ,CAAiB,IAAjB,CAA5C;IAGA,WAAW;MAAEymB,OAAF;MAAWsM,SAAX;MAAsB/pB,KAAtB;MAA6Bs6D;IAA7B,CAAX,IAA0D,KAAK1hC,OAA/D,EAAwE;MACtEnb,OAAA,CAAQ7gB,gBAAR,CAAyB,OAAzB,EAAkCC,GAAA,IAAO;QACvC,IAAIktB,SAAA,KAAc,IAAlB,EAAwB;UACtB,KAAKp5B,QAAL,CAAcgD,QAAd,CAAuBo2B,SAAvB,EAAkC;YAAEn2B,MAAA,EAAQ,IAAV;YAAgB,GAAG0mE;UAAnB,CAAlC;QADsB;QAGxB,IAAIt6D,KAAJ,EAAW;UACT,KAAKA,KAAL;QADS;QAGX,KAAKrP,QAAL,CAAcgD,QAAd,CAAuB,iBAAvB,EAA0C;UACxCC,MAAA,EAAQ,IADgC;UAExCgoB,OAAA,EAAS;YACP5Y,IAAA,EAAM,SADC;YAEPtV,IAAA,EAAM;cAAEqM,EAAA,EAAI0jB,OAAA,CAAQ1jB;YAAd;UAFC;QAF+B,CAA1C;MAPuC,CAAzC;IADsE;EALpD;EAwBtB,CAAAqhE,wBAAyB;IAAEf,sBAAF;IAA0BjgE;EAA1B,CAAzB,EAA2E;IACzE,KAAKzJ,QAAL,CAAcwX,GAAd,CAAkB,mBAAlB,EAAuC,CAAC;MAAE+uB;IAAF,CAAD,KAAc;MACnD,IAAAnR,0BAAA,EAAiBs0C,sBAAjB,EAAyCnjC,IAAA,KAAS5b,oBAAA,CAAWC,MAA7D;MACA,IAAAwK,0BAAA,EAAiB3rB,oBAAjB,EAAuC88B,IAAA,KAAS5b,oBAAA,CAAWE,IAA3D;IAFmD,CAArD;EADyE;EAO3E,CAAA6/C,uBAAwB;IACtBd,gBADsB;IAEtBC,oBAFsB;IAGtBC,sBAHsB;IAItBC,mBAJsB;IAKtBC,gBALsB;IAMtBC,eANsB;IAOtBC;EAPsB,CAAxB,EAQG;IACD,MAAMU,iBAAA,GAAoBA,CAAC;MAAEpnD;IAAF,CAAD,KAAc;MACtC,IAAA4R,0BAAA,EAAiBw0C,gBAAjB,EAAmCpmD,IAAA,KAAStO,oBAAA,CAAWkX,IAAvD;MACA,IAAAgJ,0BAAA,EAAiBy0C,oBAAjB,EAAuCrmD,IAAA,KAAStO,oBAAA,CAAW+W,QAA3D;MACA,IAAAmJ,0BAAA,EAAiB00C,sBAAjB,EAAyCtmD,IAAA,KAAStO,oBAAA,CAAWgX,UAA7D;MACA,IAAAkJ,0BAAA,EAAiB20C,mBAAjB,EAAsCvmD,IAAA,KAAStO,oBAAA,CAAWiX,OAA1D;MAIA,MAAM0+C,mBAAA,GACJ,KAAK98D,UAAL,GAAkBy+C,2BAAA,CAAgBC,sBADpC;MAEAmd,gBAAA,CAAiBvoC,QAAjB,GAA4BwpC,mBAA5B;MACAhB,oBAAA,CAAqBxoC,QAArB,GAAgCwpC,mBAAhC;MACAf,sBAAA,CAAuBzoC,QAAvB,GAAkCwpC,mBAAlC;MACAd,mBAAA,CAAoB1oC,QAApB,GAA+BwpC,mBAA/B;MAIA,MAAMC,YAAA,GAAetnD,IAAA,KAAStO,oBAAA,CAAWgX,UAAzC;MACA89C,gBAAA,CAAiB3oC,QAAjB,GAA4BypC,YAA5B;MACAb,eAAA,CAAgB5oC,QAAhB,GAA2BypC,YAA3B;MACAZ,gBAAA,CAAiB7oC,QAAjB,GAA4BypC,YAA5B;IApBsC,CAAxC;IAsBA,KAAK9qE,QAAL,CAAcwX,GAAd,CAAkB,mBAAlB,EAAuCozD,iBAAvC;IAEA,KAAK5qE,QAAL,CAAcwX,GAAd,CAAkB,uBAAlB,EAA2CtL,GAAA,IAAO;MAChD,IAAIA,GAAA,CAAIjJ,MAAJ,KAAe,IAAnB,EAAyB;QACvB2nE,iBAAA,CAAkB;UAAEpnD,IAAA,EAAMtO,oBAAA,CAAW+W;QAAnB,CAAlB;MADuB;IADuB,CAAlD;EAzBC;EAgCH,CAAA0+C,uBAAwB;IACtBX,gBADsB;IAEtBC,eAFsB;IAGtBC;EAHsB,CAAxB,EAIG;IACD,MAAMa,iBAAA,GAAoBA,CAAC;MAAEvnD;IAAF,CAAD,KAAc;MACtC,IAAA4R,0BAAA,EAAiB40C,gBAAjB,EAAmCxmD,IAAA,KAASpO,oBAAA,CAAW9S,IAAvD;MACA,IAAA8yB,0BAAA,EAAiB60C,eAAjB,EAAkCzmD,IAAA,KAASpO,oBAAA,CAAWiX,GAAtD;MACA,IAAA+I,0BAAA,EAAiB80C,gBAAjB,EAAmC1mD,IAAA,KAASpO,oBAAA,CAAWkX,IAAvD;IAHsC,CAAxC;IAKA,KAAKtsB,QAAL,CAAcwX,GAAd,CAAkB,mBAAlB,EAAuCuzD,iBAAvC;IAEA,KAAK/qE,QAAL,CAAcwX,GAAd,CAAkB,uBAAlB,EAA2CtL,GAAA,IAAO;MAChD,IAAIA,GAAA,CAAIjJ,MAAJ,KAAe,IAAnB,EAAyB;QACvB8nE,iBAAA,CAAkB;UAAEvnD,IAAA,EAAMpO,oBAAA,CAAW9S;QAAnB,CAAlB;MADuB;IADuB,CAAlD;EARC;EAeHwK,KAAA,EAAO;IACL,IAAI,KAAK2d,MAAT,EAAiB;MACf;IADe;IAGjB,KAAKA,MAAL,GAAc,IAAd;IACA,IAAA8K,2BAAA,EAAkB,KAAKjM,YAAvB,EAAqC,IAArC,EAA2C,KAAKxpB,OAAhD;EALK;EAQPuP,MAAA,EAAQ;IACN,IAAI,CAAC,KAAKob,MAAV,EAAkB;MAChB;IADgB;IAGlB,KAAKA,MAAL,GAAc,KAAd;IACA,IAAA8K,2BAAA,EAAkB,KAAKjM,YAAvB,EAAqC,KAArC,EAA4C,KAAKxpB,OAAjD;EALM;EAQRikB,OAAA,EAAS;IACP,IAAI,KAAK0G,MAAT,EAAiB;MACf,KAAKpb,KAAL;IADe,CAAjB,MAEO;MACL,KAAKvC,IAAL;IADK;EAHA;AA/PY;AArDvB/T,wBAAA,GAAA8Q,gBAAA;;;;;;;;;;;;ACeA,IAAArP,SAAA,GAAA/B,mBAAA;AAQA,IAAAgC,SAAA,GAAAhC,mBAAA;AAEA,MAAMuyE,6BAAA,GAAgC,sBAAtC;AAuBA,MAAMphE,OAAN,CAAc;EACZ,CAAAqhE,YAAA,GAAgB,KAAhB;EAOAruE,YAAYQ,OAAZ,EAAqB4C,QAArB,EAA+BC,IAA/B,EAAqC;IACnC,KAAKH,OAAL,GAAe1C,OAAA,CAAQ6J,SAAvB;IACA,KAAKjH,QAAL,GAAgBA,QAAhB;IACA,KAAKC,IAAL,GAAYA,IAAZ;IACA,KAAKgoC,OAAL,GAAe,CACb;MAAEnb,OAAA,EAAS1vB,OAAA,CAAQgoB,QAAnB;MAA6BgU,SAAA,EAAW;IAAxC,CADa,EAEb;MAAEtM,OAAA,EAAS1vB,OAAA,CAAQkwD,IAAnB;MAAyBl0B,SAAA,EAAW;IAApC,CAFa,EAGb;MAAEtM,OAAA,EAAS1vB,OAAA,CAAQgQ,MAAnB;MAA2BgsB,SAAA,EAAW;IAAtC,CAHa,EAIb;MAAEtM,OAAA,EAAS1vB,OAAA,CAAQsQ,OAAnB;MAA4B0rB,SAAA,EAAW;IAAvC,CAJa,EAKb;MAAEtM,OAAA,EAAS1vB,OAAA,CAAQuP,KAAnB;MAA0BysB,SAAA,EAAW;IAArC,CALa,EAMb;MAAEtM,OAAA,EAAS1vB,OAAA,CAAQ4U,QAAnB;MAA6BonB,SAAA,EAAW;IAAxC,CANa,EAOb;MACEtM,OAAA,EAAS1vB,OAAA,CAAQ8tE,oBADnB;MAEE9xC,SAAA,EAAW,4BAFb;MAGEuwC,YAAA,EAAc;QACZ,IAAInmD,IAAJA,CAAA,EAAW;UACT,MAAM;YAAEpf;UAAF,IAAgBhH,OAAA,CAAQ8tE,oBAA9B;UACA,OAAO9mE,SAAA,CAAUgL,QAAV,CAAmB,SAAnB,IACHpG,8BAAA,CAAqB1G,IADlB,GAEH0G,8BAAA,CAAqBmiE,QAFzB;QAFS;MADC;IAHhB,CAPa,EAmBb;MACEr+C,OAAA,EAAS1vB,OAAA,CAAQguE,eADnB;MAEEhyC,SAAA,EAAW,4BAFb;MAGEuwC,YAAA,EAAc;QACZ,IAAInmD,IAAJA,CAAA,EAAW;UACT,MAAM;YAAEpf;UAAF,IAAgBhH,OAAA,CAAQguE,eAA9B;UACA,OAAOhnE,SAAA,CAAUgL,QAAV,CAAmB,SAAnB,IACHpG,8BAAA,CAAqB1G,IADlB,GAEH0G,8BAAA,CAAqBqiE,GAFzB;QAFS;MADC;IAHhB,CAnBa,EA+Bb;MACEv+C,OAAA,EAAS1vB,OAAA,CAAQ6L,iBADnB;MAEEmwB,SAAA,EAAW,4BAFb;MAGEuwC,YAAA,EAAc;QACZ,IAAInmD,IAAJA,CAAA,EAAW;UACT,MAAM;YAAEpf;UAAF,IAAgBhH,OAAA,CAAQ6L,iBAA9B;UACA,OAAO7E,SAAA,CAAUgL,QAAV,CAAmB,SAAnB,IACHpG,8BAAA,CAAqB1G,IADlB,GAEH0G,8BAAA,CAAqBsiE,KAFzB;QAFS;MADC;IAHhB,CA/Ba,CAAf;IA6CE,KAAKrjC,OAAL,CAAar4B,IAAb,CAAkB;MAAEkd,OAAA,EAAS1vB,OAAA,CAAQmuE,QAAnB;MAA6BnyC,SAAA,EAAW;IAAxC,CAAlB;IAEF,KAAK/J,KAAL,GAAa;MACXrhB,QAAA,EAAU5Q,OAAA,CAAQ4Q,QADP;MAEX0M,UAAA,EAAYtd,OAAA,CAAQsd,UAFT;MAGX8wD,WAAA,EAAapuE,OAAA,CAAQouE,WAHV;MAIXC,iBAAA,EAAmBruE,OAAA,CAAQquE,iBAJhB;MAKXrmD,QAAA,EAAUhoB,OAAA,CAAQgoB,QALP;MAMXkoC,IAAA,EAAMlwD,OAAA,CAAQkwD,IANH;MAOXlgD,MAAA,EAAQhQ,OAAA,CAAQgQ,MAPL;MAQXM,OAAA,EAAStQ,OAAA,CAAQsQ;IARN,CAAb;IAYA,KAAK,CAAA+zB,aAAL,CAAoBrkC,OAApB;IAEA,KAAK6S,KAAL;EAjEmC;EAoErCmK,cAAcM,UAAd,EAA0BgL,SAA1B,EAAqC;IACnC,KAAKhL,UAAL,GAAkBA,UAAlB;IACA,KAAKgL,SAAL,GAAiBA,SAAjB;IACA,KAAK,CAAAH,aAAL,CAAoB,KAApB;EAHmC;EAMrCnR,cAAcrG,UAAd,EAA0B29D,aAA1B,EAAyC;IACvC,KAAK39D,UAAL,GAAkBA,UAAlB;IACA,KAAK29D,aAAL,GAAqBA,aAArB;IACA,KAAK,CAAAnmD,aAAL,CAAoB,IAApB;EAHuC;EAMzCC,aAAammD,cAAb,EAA6BC,SAA7B,EAAwC;IACtC,KAAKD,cAAL,GAAuB,CAAAA,cAAA,IAAkBC,SAAlB,EAA6B1xD,QAA9B,EAAtB;IACA,KAAK0xD,SAAL,GAAiBA,SAAjB;IACA,KAAK,CAAArmD,aAAL,CAAoB,KAApB;EAHsC;EAMxCtV,MAAA,EAAQ;IACN,KAAKyK,UAAL,GAAkB,CAAlB;IACA,KAAKgL,SAAL,GAAiB,IAAjB;IACA,KAAKgmD,aAAL,GAAqB,KAArB;IACA,KAAK39D,UAAL,GAAkB,CAAlB;IACA,KAAK49D,cAAL,GAAsB79D,6BAAtB;IACA,KAAK89D,SAAL,GAAiB1gD,uBAAjB;IACA,KAAK,CAAA3F,aAAL,CAAoB,IAApB;IACA,KAAKhC,2BAAL;IAGA,KAAKvjB,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;MAAEC,MAAA,EAAQ;IAAV,CAAvC;EAXM;EAcR,CAAAw+B,cAAerkC,OAAf,EAAwB;IACtB,MAAM;MAAEsd,UAAF;MAAc8wD;IAAd,IAA8B,KAAKn8C,KAAzC;IACA,MAAMtM,IAAA,GAAO,IAAb;IAGA,WAAW;MAAE+J,OAAF;MAAWsM,SAAX;MAAsBuwC;IAAtB,CAAX,IAAmD,KAAK1hC,OAAxD,EAAiE;MAC/Dnb,OAAA,CAAQ7gB,gBAAR,CAAyB,OAAzB,EAAkCC,GAAA,IAAO;QACvC,IAAIktB,SAAA,KAAc,IAAlB,EAAwB;UACtB,KAAKp5B,QAAL,CAAcgD,QAAd,CAAuBo2B,SAAvB,EAAkC;YAAEn2B,MAAA,EAAQ,IAAV;YAAgB,GAAG0mE;UAAnB,CAAlC;QADsB;MADe,CAAzC;IAD+D;IAQjEjvD,UAAA,CAAWzO,gBAAX,CAA4B,OAA5B,EAAqC,YAAY;MAC/C,KAAK6X,MAAL;IAD+C,CAAjD;IAGApJ,UAAA,CAAWzO,gBAAX,CAA4B,QAA5B,EAAsC,YAAY;MAChD8W,IAAA,CAAK/iB,QAAL,CAAcgD,QAAd,CAAuB,mBAAvB,EAA4C;QAC1CC,MAAA,EAAQ8f,IADkC;QAE1C/W,KAAA,EAAO,KAAKA;MAF8B,CAA5C;IADgD,CAAlD;IAOAw/D,WAAA,CAAYv/D,gBAAZ,CAA6B,QAA7B,EAAuC,YAAY;MACjD,IAAI,KAAKD,KAAL,KAAe,QAAnB,EAA6B;QAC3B;MAD2B;MAG7B+W,IAAA,CAAK/iB,QAAL,CAAcgD,QAAd,CAAuB,cAAvB,EAAuC;QACrCC,MAAA,EAAQ8f,IAD6B;QAErC/W,KAAA,EAAO,KAAKA;MAFyB,CAAvC;IAJiD,CAAnD;IAWAw/D,WAAA,CAAYv/D,gBAAZ,CAA6B,OAA7B,EAAsC,UAAUC,GAAV,EAAe;MACnD,MAAME,MAAA,GAASF,GAAA,CAAIE,MAAnB;MAGA,IACE,KAAKJ,KAAL,KAAe+W,IAAA,CAAK4oD,cAApB,IACAv/D,MAAA,CAAO8d,OAAP,CAAeC,WAAf,OAAiC,QAFnC,EAGE;QACA,KAAK6d,IAAL;MADA;IAPiD,CAArD;IAYAwjC,WAAA,CAAYK,aAAZ,GAA4BC,uBAA5B;IAEA,KAAK9rE,QAAL,CAAcwX,GAAd,CAAkB,WAAlB,EAA+B,MAAM;MACnC,KAAK,CAAAyzD,YAAL,GAAqB,IAArB;MACA,KAAK,CAAAc,gBAAL;MACA,KAAK,CAAAxmD,aAAL,CAAoB,IAApB;IAHmC,CAArC;IAMA,KAAK,CAAAymD,uBAAL,CAA8B5uE,OAA9B;EAtDsB;EAyDxB,CAAA4uE,wBAAyB;IACvBd,oBADuB;IAEvBe,2BAFuB;IAGvBb,eAHuB;IAIvBc,sBAJuB;IAKvBjjE,iBALuB;IAMvBkjE;EANuB,CAAzB,EAOG;IACD,MAAMC,iBAAA,GAAoBA,CAAC;MAAE5oD;IAAF,CAAD,KAAc;MACtC,IAAA4R,0BAAA,EACE81C,oBADF,EAEE1nD,IAAA,KAASxa,8BAAA,CAAqBmiE,QAFhC,EAGEc,2BAHF;MAKA,IAAA72C,0BAAA,EACEg2C,eADF,EAEE5nD,IAAA,KAASxa,8BAAA,CAAqBqiE,GAFhC,EAGEa,sBAHF;MAKA,IAAA92C,0BAAA,EACEnsB,iBADF,EAEEua,IAAA,KAASxa,8BAAA,CAAqBsiE,KAFhC,EAGEa,wBAHF;MAMA,MAAME,SAAA,GAAY7oD,IAAA,KAASxa,8BAAA,CAAqB7E,OAAhD;MACA+mE,oBAAA,CAAqB7pC,QAArB,GAAgCgrC,SAAhC;MACAjB,eAAA,CAAgB/pC,QAAhB,GAA2BgrC,SAA3B;MACApjE,iBAAA,CAAkBo4B,QAAlB,GAA6BgrC,SAA7B;IApBsC,CAAxC;IAsBA,KAAKrsE,QAAL,CAAcwX,GAAd,CAAkB,6BAAlB,EAAiD40D,iBAAjD;IAEA,KAAKpsE,QAAL,CAAcwX,GAAd,CAAkB,cAAlB,EAAkCtL,GAAA,IAAO;MACvC,IAAIA,GAAA,CAAIjJ,MAAJ,KAAe,IAAnB,EAAyB;QACvBmpE,iBAAA,CAAkB;UAAE5oD,IAAA,EAAMxa,8BAAA,CAAqB7E;QAA7B,CAAlB;MADuB;IADc,CAAzC;EAzBC;EAgCH,CAAAohB,cAAe+mD,aAAA,GAAgB,KAA/B,EAAsC;IACpC,IAAI,CAAC,KAAK,CAAArB,YAAV,EAAyB;MAEvB;IAFuB;IAIzB,MAAM;MAAEvwD,UAAF;MAAc3M,UAAd;MAA0B49D,cAA1B;MAA0CC,SAA1C;MAAqDv8C;IAArD,IAA+D,IAArE;IAEA,IAAIi9C,aAAJ,EAAmB;MACjB,IAAI,KAAKZ,aAAT,EAAwB;QACtBr8C,KAAA,CAAM3U,UAAN,CAAiBrI,IAAjB,GAAwB,MAAxB;MADsB,CAAxB,MAEO;QACLgd,KAAA,CAAM3U,UAAN,CAAiBrI,IAAjB,GAAwB,QAAxB;QACA,KAAKpS,IAAL,CAAUmC,GAAV,CAAc,UAAd,EAA0B;UAAE2L;QAAF,CAA1B,EAA0ChL,IAA1C,CAA+C0J,GAAA,IAAO;UACpD4iB,KAAA,CAAMrhB,QAAN,CAAes1B,WAAf,GAA6B72B,GAA7B;QADoD,CAAtD;MAFK;MAMP4iB,KAAA,CAAM3U,UAAN,CAAiBsY,GAAjB,GAAuBjlB,UAAvB;IATiB;IAYnB,IAAI,KAAK29D,aAAT,EAAwB;MACtBr8C,KAAA,CAAM3U,UAAN,CAAiB1O,KAAjB,GAAyB,KAAK0Z,SAA9B;MACA,KAAKzlB,IAAL,CAAUmC,GAAV,CAAc,eAAd,EAA+B;QAAEsY,UAAF;QAAc3M;MAAd,CAA/B,EAA2DhL,IAA3D,CAAgE0J,GAAA,IAAO;QACrE4iB,KAAA,CAAMrhB,QAAN,CAAes1B,WAAf,GAA6B72B,GAA7B;MADqE,CAAvE;IAFsB,CAAxB,MAKO;MACL4iB,KAAA,CAAM3U,UAAN,CAAiB1O,KAAjB,GAAyB0O,UAAzB;IADK;IAIP2U,KAAA,CAAMjK,QAAN,CAAeic,QAAf,GAA0B3mB,UAAA,IAAc,CAAxC;IACA2U,KAAA,CAAMi+B,IAAN,CAAWjsB,QAAX,GAAsB3mB,UAAA,IAAc3M,UAApC;IAEAshB,KAAA,CAAM3hB,OAAN,CAAc2zB,QAAd,GAAyBuqC,SAAA,IAAaxgD,mBAAtC;IACAiE,KAAA,CAAMjiB,MAAN,CAAai0B,QAAb,GAAwBuqC,SAAA,IAAavgD,mBAArC;IAEA,KAAKprB,IAAL,CACGmC,GADH,CACO,oBADP,EAC6B;MAAE+hB,KAAA,EAAO9Q,IAAA,CAAKC,KAAL,CAAWs4D,SAAA,GAAY,KAAvB,IAAgC;IAAzC,CAD7B,EAEG7oE,IAFH,CAEQ0J,GAAA,IAAO;MACX,IAAI8/D,oBAAA,GAAuB,KAA3B;MACA,WAAWC,MAAX,IAAqBn9C,KAAA,CAAMm8C,WAAN,CAAkBpuE,OAAvC,EAAgD;QAC9C,IAAIovE,MAAA,CAAOxgE,KAAP,KAAiB2/D,cAArB,EAAqC;UACnCa,MAAA,CAAOj6B,QAAP,GAAkB,KAAlB;UACA;QAFmC;QAIrCi6B,MAAA,CAAOj6B,QAAP,GAAkB,IAAlB;QACAg6B,oBAAA,GAAuB,IAAvB;MAN8C;MAQhD,IAAI,CAACA,oBAAL,EAA2B;QACzBl9C,KAAA,CAAMo8C,iBAAN,CAAwBnoC,WAAxB,GAAsC72B,GAAtC;QACA4iB,KAAA,CAAMo8C,iBAAN,CAAwBl5B,QAAxB,GAAmC,IAAnC;MAFyB;IAVhB,CAFf;EAlCoC;EAqDtChvB,4BAA4BkpD,OAAA,GAAU,KAAtC,EAA6C;IAC3C,MAAM;MAAE/xD;IAAF,IAAiB,KAAK2U,KAA5B;IAEA3U,UAAA,CAAWtW,SAAX,CAAqB2f,MAArB,CAA4BinD,6BAA5B,EAA2DyB,OAA3D;EAH2C;EAU7C,MAAM,CAAAV,gBAANA,CAAA,EAA0B;IACxB,MAAM;MAAE18C,KAAF;MAASpvB;IAAT,IAAkB,IAAxB;IAEA,MAAMysE,uBAAA,GAA0B1uE,OAAA,CAAQmS,GAAR,CAAY,CAC1ClQ,IAAA,CAAKmC,GAAL,CAAS,iBAAT,CAD0C,EAE1CnC,IAAA,CAAKmC,GAAL,CAAS,mBAAT,CAF0C,EAG1CnC,IAAA,CAAKmC,GAAL,CAAS,gBAAT,CAH0C,EAI1CnC,IAAA,CAAKmC,GAAL,CAAS,kBAAT,CAJ0C,CAAZ,CAAhC;IAMA,MAAMoT,0BAAN;IAEA,MAAM2e,KAAA,GAAQvG,gBAAA,CAAiByB,KAAA,CAAMm8C,WAAvB,CAAd;IACA,MAAMmB,gBAAA,GAAmBzwC,UAAA,CACvB/H,KAAA,CAAM00C,gBAAN,CAAuB,sBAAvB,CADuB,CAAzB;IAKA,MAAM/d,MAAA,GAAS3sD,QAAA,CAAS8gC,aAAT,CAAuB,QAAvB,CAAf;IACA,MAAMuqB,GAAA,GAAMsB,MAAA,CAAOrB,UAAP,CAAkB,IAAlB,EAAwB;MAAEC,KAAA,EAAO;IAAT,CAAxB,CAAZ;IACAF,GAAA,CAAIojB,IAAJ,GAAW,GAAGz4C,KAAA,CAAM04C,QAAS,IAAG14C,KAAA,CAAM24C,UAA3B,EAAX;IAEA,IAAIzlB,QAAA,GAAW,CAAf;IACA,WAAW0lB,eAAX,IAA8B,MAAML,uBAApC,EAA6D;MAC3D,MAAM;QAAEz7C;MAAF,IAAYu4B,GAAA,CAAIwjB,WAAJ,CAAgBD,eAAhB,CAAlB;MACA,IAAI97C,KAAA,GAAQo2B,QAAZ,EAAsB;QACpBA,QAAA,GAAWp2B,KAAX;MADoB;IAFqC;IAQ7Do2B,QAAA,IAAY,MAAMslB,gBAAlB;IAEA,IAAItlB,QAAA,GAAWslB,gBAAf,EAAiC;MAC/B,MAAM1lE,SAAA,GAAYooB,KAAA,CAAMm8C,WAAN,CAAkB92C,UAApC;MACAztB,SAAA,CAAUktB,KAAV,CAAgBM,WAAhB,CAA4B,sBAA5B,EAAoD,GAAG4yB,QAAS,IAAhE;IAF+B;IAMjCyD,MAAA,CAAO75B,KAAP,GAAe,CAAf;IACA65B,MAAA,CAAO55B,MAAP,GAAgB,CAAhB;EAvCwB;AA3Qd;AAhDdn4B,eAAA,GAAA6Q,OAAA;;;;;;;;;;;;ACeA,MAAMqjE,+BAAA,GAAkC,EAAxC;AAWA,MAAMz4D,WAAN,CAAkB;EAChB5X,YAAYoZ,WAAZ,EAAyBk3D,SAAA,GAAYD,+BAArC,EAAsE;IACpE,KAAKj3D,WAAL,GAAmBA,WAAnB;IACA,KAAKk3D,SAAL,GAAiBA,SAAjB;IAEA,KAAKC,mBAAL,GAA2B,KAAK3zE,gBAAL,GAAwBuJ,IAAxB,CAA6BqqE,WAAA,IAAe;MACrE,MAAMC,QAAA,GAAW/zE,IAAA,CAAKG,KAAL,CAAW2zE,WAAA,IAAe,IAA1B,CAAjB;MACA,IAAIh8C,KAAA,GAAQ,CAAC,CAAb;MACA,IAAI,CAACiK,KAAA,CAAMC,OAAN,CAAc+xC,QAAA,CAASlhE,KAAvB,CAAL,EAAoC;QAClCkhE,QAAA,CAASlhE,KAAT,GAAiB,EAAjB;MADkC,CAApC,MAEO;QACL,OAAOkhE,QAAA,CAASlhE,KAAT,CAAe7G,MAAf,IAAyB,KAAK4nE,SAArC,EAAgD;UAC9CG,QAAA,CAASlhE,KAAT,CAAe8jC,KAAf;QAD8C;QAIhD,KAAK,IAAI7qC,CAAA,GAAI,CAAR,EAAWC,EAAA,GAAKgoE,QAAA,CAASlhE,KAAT,CAAe7G,MAA/B,EAAuCF,CAAA,GAAIC,EAAhD,EAAoDD,CAAA,EAApD,EAAyD;UACvD,MAAMkoE,MAAA,GAASD,QAAA,CAASlhE,KAAT,CAAe/G,CAAf,CAAf;UACA,IAAIkoE,MAAA,CAAOt3D,WAAP,KAAuB,KAAKA,WAAhC,EAA6C;YAC3Cob,KAAA,GAAQhsB,CAAR;YACA;UAF2C;QAFU;MALpD;MAaP,IAAIgsB,KAAA,KAAU,CAAC,CAAf,EAAkB;QAChBA,KAAA,GAAQi8C,QAAA,CAASlhE,KAAT,CAAeyD,IAAf,CAAoB;UAAEoG,WAAA,EAAa,KAAKA;QAApB,CAApB,IAAyD,CAAjE;MADgB;MAGlB,KAAKtK,IAAL,GAAY2hE,QAAA,CAASlhE,KAAT,CAAeilB,KAAf,CAAZ;MACA,KAAKi8C,QAAL,GAAgBA,QAAhB;IAtBqE,CAA5C,CAA3B;EAJoE;EA8BtE,MAAMn0E,eAANA,CAAA,EAAwB;IACtB,MAAMk0E,WAAA,GAAc9zE,IAAA,CAAKC,SAAL,CAAe,KAAK8zE,QAApB,CAApB;IAMAj0E,YAAA,CAAaC,OAAb,CAAqB,eAArB,EAAsC+zE,WAAtC;EAPsB;EAUxB,MAAM5zE,gBAANA,CAAA,EAAyB;IAIvB,OAAOJ,YAAA,CAAaM,OAAb,CAAqB,eAArB,CAAP;EAJuB;EAOzB,MAAM6I,GAANA,CAAU6V,IAAV,EAAgBlK,GAAhB,EAAqB;IACnB,MAAM,KAAKi/D,mBAAX;IACA,KAAKzhE,IAAL,CAAU0M,IAAV,IAAkBlK,GAAlB;IACA,OAAO,KAAKhV,eAAL,EAAP;EAHmB;EAMrB,MAAMgrB,WAANA,CAAkBqpD,UAAlB,EAA8B;IAC5B,MAAM,KAAKJ,mBAAX;IACA,WAAW/0D,IAAX,IAAmBm1D,UAAnB,EAA+B;MAC7B,KAAK7hE,IAAL,CAAU0M,IAAV,IAAkBm1D,UAAA,CAAWn1D,IAAX,CAAlB;IAD6B;IAG/B,OAAO,KAAKlf,eAAL,EAAP;EAL4B;EAQ9B,MAAMkJ,GAANA,CAAUgW,IAAV,EAAgBo1D,YAAhB,EAA8B;IAC5B,MAAM,KAAKL,mBAAX;IACA,MAAMj/D,GAAA,GAAM,KAAKxC,IAAL,CAAU0M,IAAV,CAAZ;IACA,OAAOlK,GAAA,KAAQuD,SAAR,GAAoBvD,GAApB,GAA0Bs/D,YAAjC;EAH4B;EAM9B,MAAM94D,WAANA,CAAkB64D,UAAlB,EAA8B;IAC5B,MAAM,KAAKJ,mBAAX;IACA,MAAMpoE,MAAA,GAASnE,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAf;IAEA,WAAWuX,IAAX,IAAmBm1D,UAAnB,EAA+B;MAC7B,MAAMr/D,GAAA,GAAM,KAAKxC,IAAL,CAAU0M,IAAV,CAAZ;MACArT,MAAA,CAAOqT,IAAP,IAAelK,GAAA,KAAQuD,SAAR,GAAoBvD,GAApB,GAA0Bq/D,UAAA,CAAWn1D,IAAX,CAAzC;IAF6B;IAI/B,OAAOrT,MAAP;EAR4B;AApEd;AA1BlBhM,mBAAA,GAAAyb,WAAA;;;;;;;;;;;;ACeA,IAAA9Z,YAAA,GAAAjC,mBAAA;AAOA,MAAMQ,eAAN,CAAsB;EACpB,CAAAw0E,QAAA,GAAY7sE,MAAA,CAAO0pC,MAAP,CAGN;6BAAA;uBAAA;yBAAA;2BAAA;0BAAA;8BAAA;8BAAA;iCAAA;2BAAA;6BAAA;2BAAA;6BAAA;kCAAA;4BAAA;oCAAA;wCAAA;0BAAA;2BAAA;0BAAA;0BAAA;sBAAA;uBAAA;mBAAA;6BAAA;4BAAA;yBAAA;0BAAA;;EAAA,CAHM,CAAZ;EAMA,CAAAojC,KAAA,GAAS9sE,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAT;EAEA,CAAAqM,kBAAA,GAAsB,IAAtB;EAEAtQ,YAAA,EAAc;IACZ,IAAI,KAAKA,WAAL,KAAqB3D,eAAzB,EAA0C;MACxC,MAAM,IAAI4D,KAAJ,CAAU,oCAAV,CAAN;IADwC;IAY1C,KAAK,CAAAqQ,kBAAL,GAA2B,KAAK1T,gBAAL,CAAsB,KAAK,CAAAi0E,QAA3B,EAAsC1qE,IAAtC,CACzB2qE,KAAA,IAAS;MACP,WAAWt1D,IAAX,IAAmB,KAAK,CAAAq1D,QAAxB,EAAmC;QACjC,MAAME,SAAA,GAAYD,KAAA,GAAQt1D,IAAR,CAAlB;QAEA,IAAI,OAAOu1D,SAAP,KAAqB,OAAO,KAAK,CAAAF,QAAL,CAAer1D,IAAf,CAAhC,EAAsD;UACpD,KAAK,CAAAs1D,KAAL,CAAYt1D,IAAZ,IAAoBu1D,SAApB;QADoD;MAHrB;IAD5B,CADgB,CAA3B;EAbY;EAgCd,MAAMz0E,eAANA,CAAsBC,OAAtB,EAA+B;IAC7B,MAAM,IAAI0D,KAAJ,CAAU,kCAAV,CAAN;EAD6B;EAU/B,MAAMrD,gBAANA,CAAuBL,OAAvB,EAAgC;IAC9B,MAAM,IAAI0D,KAAJ,CAAU,mCAAV,CAAN;EAD8B;EAShC,MAAMoT,KAANA,CAAA,EAAc;IAIZ,MAAM,KAAK,CAAA/C,kBAAX;IACA,MAAMwgE,KAAA,GAAQ,KAAK,CAAAA,KAAnB;IAEA,KAAK,CAAAA,KAAL,GAAc9sE,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAd;IACA,OAAO,KAAK3H,eAAL,CAAqB,KAAK,CAAAu0E,QAA1B,EAAqC15D,KAArC,CAA2CvQ,MAAA,IAAU;MAE1D,KAAK,CAAAkqE,KAAL,GAAcA,KAAd;MACA,MAAMlqE,MAAN;IAH0D,CAArD,CAAP;EARY;EAsBd,MAAMjB,GAANA,CAAU6V,IAAV,EAAgBpM,KAAhB,EAAuB;IAIrB,MAAM,KAAK,CAAAkB,kBAAX;IACA,MAAMsgE,YAAA,GAAe,KAAK,CAAAC,QAAL,CAAer1D,IAAf,CAArB;MACEs1D,KAAA,GAAQ,KAAK,CAAAA,KADf;IAGA,IAAIF,YAAA,KAAiB/7D,SAArB,EAAgC;MAC9B,MAAM,IAAI5U,KAAJ,CAAW,oBAAmBub,IAAK,iBAAnC,CAAN;IAD8B,CAAhC,MAEO,IAAIpM,KAAA,KAAUyF,SAAd,EAAyB;MAC9B,MAAM,IAAI5U,KAAJ,CAAU,wCAAV,CAAN;IAD8B;IAGhC,MAAM07B,SAAA,GAAY,OAAOvsB,KAAzB;MACE4hE,WAAA,GAAc,OAAOJ,YADvB;IAGA,IAAIj1C,SAAA,KAAcq1C,WAAlB,EAA+B;MAC7B,IAAIr1C,SAAA,KAAc,QAAd,IAA0Bq1C,WAAA,KAAgB,QAA9C,EAAwD;QACtD5hE,KAAA,GAAQA,KAAA,CAAMkO,QAAN,EAAR;MADsD,CAAxD,MAEO;QACL,MAAM,IAAIrd,KAAJ,CACH,oBAAmBmP,KAAM,UAASusB,SAAU,gBAAeq1C,WAAY,GADpE,CAAN;MADK;IAHsB,CAA/B,MAQO,IAAIr1C,SAAA,KAAc,QAAd,IAA0B,CAACxE,MAAA,CAAOC,SAAP,CAAiBhoB,KAAjB,CAA/B,EAAwD;MAC7D,MAAM,IAAInP,KAAJ,CAAW,oBAAmBmP,KAAM,uBAApC,CAAN;IAD6D;IAI/D,KAAK,CAAA0hE,KAAL,CAAYt1D,IAAZ,IAAoBpM,KAApB;IACA,OAAO,KAAK9S,eAAL,CAAqB,KAAK,CAAAw0E,KAA1B,EAAkC35D,KAAlC,CAAwCvQ,MAAA,IAAU;MAEvD,KAAK,CAAAkqE,KAAL,GAAcA,KAAd;MACA,MAAMlqE,MAAN;IAHuD,CAAlD,CAAP;EA7BqB;EA0CvB,MAAMpB,GAANA,CAAUgW,IAAV,EAAgB;IACd,MAAM,KAAK,CAAAlL,kBAAX;IACA,MAAMsgE,YAAA,GAAe,KAAK,CAAAC,QAAL,CAAer1D,IAAf,CAArB;IAEA,IAAIo1D,YAAA,KAAiB/7D,SAArB,EAAgC;MAC9B,MAAM,IAAI5U,KAAJ,CAAW,oBAAmBub,IAAK,iBAAnC,CAAN;IAD8B;IAGhC,OAAO,KAAK,CAAAs1D,KAAL,CAAYt1D,IAAZ,KAAqBo1D,YAA5B;EAPc;EAehB,MAAMjqE,MAANA,CAAA,EAAe;IACb,MAAM,KAAK,CAAA2J,kBAAX;IACA,MAAM2gE,GAAA,GAAMjtE,MAAA,CAAOC,MAAP,CAAc,IAAd,CAAZ;IAEA,WAAWuX,IAAX,IAAmB,KAAK,CAAAq1D,QAAxB,EAAmC;MACjCI,GAAA,CAAIz1D,IAAJ,IAAY,KAAK,CAAAs1D,KAAL,CAAYt1D,IAAZ,KAAqB,KAAK,CAAAq1D,QAAL,CAAer1D,IAAf,CAAjC;IADiC;IAGnC,OAAOy1D,GAAP;EAPa;AA7IK;AAtBtB90E,uBAAA,GAAAE,eAAA;;;;;;;;;;;;ACiBA,IAAAwB,SAAA,GAAAhC,mBAAA;AAEA;AAOA,SAASuZ,QAATA,CAAkB87D,OAAlB,EAA2B77D,QAA3B,EAAqC;EACnC,MAAM+d,CAAA,GAAI7xB,QAAA,CAAS8gC,aAAT,CAAuB,GAAvB,CAAV;EACA,IAAI,CAACjP,CAAA,CAAExL,KAAP,EAAc;IACZ,MAAM,IAAI3nB,KAAJ,CAAU,gDAAV,CAAN;EADY;EAGdmzB,CAAA,CAAEvN,IAAF,GAASqrD,OAAT;EACA99C,CAAA,CAAE5jB,MAAF,GAAW,SAAX;EAGA,IAAI,cAAc4jB,CAAlB,EAAqB;IACnBA,CAAA,CAAEhe,QAAF,GAAaC,QAAb;EADmB;EAKpB,CAAA9T,QAAA,CAASkqC,IAAT,IAAiBlqC,QAAA,CAAS0E,eAA1B,EAA2Cs8B,MAA5C,CAAmDnP,CAAnD;EACAA,CAAA,CAAExL,KAAF;EACAwL,CAAA,CAAE9mB,MAAF;AAhBmC;AAsBrC,MAAMpP,eAAN,CAAsB;EACpB,CAAAi0E,YAAA,GAAgB,IAAItrC,OAAJ,EAAhB;EAEA9zB,YAAYnO,GAAZ,EAAiByR,QAAjB,EAA2B+7D,QAA3B,EAAqC;IACnC,IAAI,CAAC,IAAAC,gCAAA,EAAuBztE,GAAvB,EAA4B,oBAA5B,CAAL,EAAwD;MACtD4C,OAAA,CAAQK,KAAR,CAAe,kCAAiCjD,GAAlC,EAAd;MACA;IAFsD;IAIxDwR,QAAA,CAASxR,GAAA,GAAM,wBAAf,EAAyCyR,QAAzC;EALmC;EAQrCi8D,aAAanxE,IAAb,EAAmBkV,QAAnB,EAA6Bk8D,WAA7B,EAA0C;IACxC,MAAML,OAAA,GAAUh2D,GAAA,CAAIyM,eAAJ,CACd,IAAInS,IAAJ,CAAS,CAACrV,IAAD,CAAT,EAAiB;MAAEsV,IAAA,EAAM87D;IAAR,CAAjB,CADc,CAAhB;IAGAn8D,QAAA,CAAS87D,OAAT,EAAkB77D,QAAlB;EAJwC;EAU1CmyB,mBAAmBtX,OAAnB,EAA4B/vB,IAA5B,EAAkCkV,QAAlC,EAA4C;IAC1C,MAAMm8D,SAAA,GAAY,IAAAC,mBAAA,EAAUp8D,QAAV,CAAlB;IACA,MAAMk8D,WAAA,GAAcC,SAAA,GAAY,iBAAZ,GAAgC,EAApD;IAEA,IAEEA,SAFF,EAGE;MACA,IAAIN,OAAA,GAAU,KAAK,CAAAC,YAAL,CAAmB3rE,GAAnB,CAAuB0qB,OAAvB,CAAd;MACA,IAAI,CAACghD,OAAL,EAAc;QACZA,OAAA,GAAUh2D,GAAA,CAAIyM,eAAJ,CAAoB,IAAInS,IAAJ,CAAS,CAACrV,IAAD,CAAT,EAAiB;UAAEsV,IAAA,EAAM87D;QAAR,CAAjB,CAApB,CAAV;QACA,KAAK,CAAAJ,YAAL,CAAmBxrE,GAAnB,CAAuBuqB,OAAvB,EAAgCghD,OAAhC;MAFY;MAId,IAAIQ,SAAJ;MAGEA,SAAA,GAAY,WAAWC,kBAAA,CAAmBT,OAAA,GAAU,GAAV,GAAgB77D,QAAnC,CAAvB;MAWF,IAAI;QACF3R,MAAA,CAAOwM,IAAP,CAAYwhE,SAAZ;QACA,OAAO,IAAP;MAFE,CAAJ,CAGE,OAAOtqE,EAAP,EAAW;QACXZ,OAAA,CAAQK,KAAR,CAAe,uBAAsBO,EAAvB,EAAd;QAGA8T,GAAA,CAAI02D,eAAJ,CAAoBV,OAApB;QACA,KAAK,CAAAC,YAAL,CAAmBr3B,MAAnB,CAA0B5pB,OAA1B;MALW;IAvBb;IAgCF,KAAKohD,YAAL,CAAkBnxE,IAAlB,EAAwBkV,QAAxB,EAAkCk8D,WAAlC;IACA,OAAO,KAAP;EAxC0C;EA2C5Cn8D,SAASG,IAAT,EAAe3R,GAAf,EAAoByR,QAApB,EAA8B+7D,QAA9B,EAAwC;IACtC,MAAMF,OAAA,GAAUh2D,GAAA,CAAIyM,eAAJ,CAAoBpS,IAApB,CAAhB;IACAH,QAAA,CAAS87D,OAAT,EAAkB77D,QAAlB;EAFsC;AAhEpB;AAhDtBlZ,uBAAA,GAAAe,eAAA;;;;;;;;;;;;ACiBArB,mBAAA;AACA,IAAA4zD,WAAA,GAAA5zD,mBAAA;AAEA,MAAMg2E,kBAAA,GAAqB;EACzBC,EAAA,EAAI,OADqB;EAEzBC,EAAA,EAAI,OAFqB;EAGzBC,EAAA,EAAI,OAHqB;EAIzBC,EAAA,EAAI,OAJqB;EAKzBC,EAAA,EAAI,OALqB;EAMzBC,EAAA,EAAI,OANqB;EAOzBC,EAAA,EAAI,OAPqB;EAQzBC,EAAA,EAAI,OARqB;EASzBC,EAAA,EAAI,OATqB;EAUzBC,EAAA,EAAI,OAVqB;EAWzBC,EAAA,EAAI,OAXqB;EAYzBC,EAAA,EAAI,OAZqB;EAazBC,EAAA,EAAI,OAbqB;EAczBC,EAAA,EAAI;AAdqB,CAA3B;AAkBA,SAASC,aAATA,CAAuBC,QAAvB,EAAiC;EAC/B,OAAOhB,kBAAA,CAAmBgB,QAAA,EAAU3gD,WAAV,EAAnB,KAA+C2gD,QAAtD;AAD+B;AAOjC,MAAMv1E,WAAN,CAAkB;EAChB0C,YAAY+1D,IAAZ,EAAkB;IAChB,MAAM;MAAE+c;IAAF,IAAcvxE,QAApB;IACA,KAAKwxE,KAAL,GAAahd,IAAb;IACA,KAAKid,MAAL,GAAc,IAAI5xE,OAAJ,CAAY,CAACC,OAAD,EAAU46B,MAAV,KAAqB;MAC7C62C,OAAA,CAAQG,WAAR,CAAoBL,aAAA,CAAc7c,IAAd,CAApB,EAAyC,MAAM;QAC7C10D,OAAA,CAAQyxE,OAAR;MAD6C,CAA/C;IAD6C,CAAjC,CAAd;EAHgB;EAUlB,MAAMrmC,WAANA,CAAA,EAAoB;IAClB,MAAMppC,IAAA,GAAO,MAAM,KAAK2vE,MAAxB;IACA,OAAO3vE,IAAA,CAAKopC,WAAL,EAAP;EAFkB;EAKpB,MAAMzkC,YAANA,CAAA,EAAqB;IACnB,MAAM3E,IAAA,GAAO,MAAM,KAAK2vE,MAAxB;IACA,OAAO3vE,IAAA,CAAK2E,YAAL,EAAP;EAFmB;EAKrB,MAAMxC,GAANA,CAAUsP,GAAV,EAAetB,IAAA,GAAO,IAAtB,EAA4BmpD,QAAA,GAAW,IAAAF,2BAAA,EAAgB3nD,GAAhB,EAAqBtB,IAArB,CAAvC,EAAmE;IACjE,MAAMnQ,IAAA,GAAO,MAAM,KAAK2vE,MAAxB;IACA,OAAO3vE,IAAA,CAAKmC,GAAL,CAASsP,GAAT,EAActB,IAAd,EAAoBmpD,QAApB,CAAP;EAFiE;EAKnE,MAAMz2D,SAANA,CAAgBgqB,OAAhB,EAAyB;IACvB,MAAM7sB,IAAA,GAAO,MAAM,KAAK2vE,MAAxB;IACA,OAAO3vE,IAAA,CAAK6C,SAAL,CAAegqB,OAAf,CAAP;EAFuB;AA1BT;AA7ClB/zB,mBAAA,GAAAmB,WAAA;;;;;;ACqCa;;AAEmDiE,QAAhE,CAA0EuxE,OAA1E,GAAqF,UAASpvE,MAAT,EAAiBnC,QAAjB,EAA2B;EAC9G,IAAI2xE,SAAA,GAAY,EAAhB;EACA,IAAIC,SAAA,GAAY,EAAhB;EACA,IAAIC,SAAA,GAAY,aAAhB;EACA,IAAIC,SAAA,GAAY,EAAhB;EACA,IAAIC,OAAA,GAAU,EAAd;EACA,IAAIC,WAAA,GAAc,SAAlB;EAeA,IAAIC,qBAAA,GAAwB,IAA5B;EAUA,SAASC,oBAATA,CAAA,EAAgC;IAC9B,OAAOlyE,QAAA,CAASunC,gBAAT,CAA0B,+BAA1B,CAAP;EAD8B;EAIhC,SAAS4qC,iBAATA,CAAA,EAA6B;IAC3B,IAAIC,MAAA,GAASpyE,QAAA,CAAS+2B,aAAT,CAAuB,iCAAvB,CAAb;IAEA,OAAOq7C,MAAA,GAASj3E,IAAA,CAAKG,KAAL,CAAW82E,MAAA,CAAOC,SAAlB,CAAT,GAAwC,IAA/C;EAH2B;EAM7B,SAASC,uBAATA,CAAiC3jD,OAAjC,EAA0C;IACxC,OAAOA,OAAA,GAAUA,OAAA,CAAQ4Y,gBAAR,CAAyB,iBAAzB,CAAV,GAAwD,EAA/D;EADwC;EAI1C,SAASgrC,iBAATA,CAA2B5jD,OAA3B,EAAoC;IAClC,IAAI,CAACA,OAAL,EACE,OAAO,EAAP;IAEF,IAAI6jD,MAAA,GAAS7jD,OAAA,CAAQ44C,YAAR,CAAqB,cAArB,CAAb;IACA,IAAIkL,QAAA,GAAW9jD,OAAA,CAAQ44C,YAAR,CAAqB,gBAArB,CAAf;IACA,IAAIt1D,IAAA,GAAO,EAAX;IACA,IAAIwgE,QAAJ,EAAc;MACZ,IAAI;QACFxgE,IAAA,GAAO9W,IAAA,CAAKG,KAAL,CAAWm3E,QAAX,CAAP;MADE,CAAJ,CAEE,OAAO3tC,CAAP,EAAU;QACV7/B,OAAA,CAAQC,IAAR,CAAa,oCAAoCstE,MAAjD;MADU;IAHA;IAOd,OAAO;MAAEvnE,EAAA,EAAIunE,MAAN;MAAcvgE,IAAA,EAAMA;IAApB,CAAP;EAdkC;EAiBpC,SAASygE,WAATA,CAAqBrwE,GAArB,EAA0BswE,SAA1B,EAAqCC,SAArC,EAAgD;IAC9CD,SAAA,GAAYA,SAAA,IAAa,SAASE,UAATA,CAAoBj0E,IAApB,EAA0B,EAAnD;IACAg0E,SAAA,GAAYA,SAAA,IAAa,SAASE,UAATA,CAAA,EAAsB,EAA/C;IAEA,IAAIC,GAAA,GAAM,IAAIC,cAAJ,EAAV;IACAD,GAAA,CAAIpkE,IAAJ,CAAS,KAAT,EAAgBtM,GAAhB,EAAqB4vE,qBAArB;IACA,IAAIc,GAAA,CAAIE,gBAAR,EAA0B;MACxBF,GAAA,CAAIE,gBAAJ,CAAqB,2BAArB;IADwB;IAG1BF,GAAA,CAAIG,kBAAJ,GAAyB,YAAW;MAClC,IAAIH,GAAA,CAAII,UAAJ,IAAkB,CAAtB,EAAyB;QACvB,IAAIJ,GAAA,CAAI9jC,MAAJ,IAAc,GAAd,IAAqB8jC,GAAA,CAAI9jC,MAAJ,KAAe,CAAxC,EAA2C;UACzC0jC,SAAA,CAAUI,GAAA,CAAIK,YAAd;QADyC,CAA3C,MAEO;UACLR,SAAA;QADK;MAHgB;IADS,CAApC;IASAG,GAAA,CAAIM,OAAJ,GAAcT,SAAd;IACAG,GAAA,CAAIO,SAAJ,GAAgBV,SAAhB;IAIA,IAAI;MACFG,GAAA,CAAIQ,IAAJ,CAAS,IAAT;IADE,CAAJ,CAEE,OAAOzuC,CAAP,EAAU;MACV8tC,SAAA;IADU;EAzBkC;EAsDhD,SAASY,aAATA,CAAuBlvD,IAAvB,EAA6BkwC,IAA7B,EAAmCif,eAAnC,EAAoDC,eAApD,EAAqE;IACnE,IAAIn6D,OAAA,GAAU+K,IAAA,CAAK4sB,OAAL,CAAa,SAAb,EAAwB,EAAxB,KAA+B,IAA7C;IAGA,SAASyiC,UAATA,CAAoB/iC,IAApB,EAA0B;MACxB,IAAIA,IAAA,CAAKgjC,WAAL,CAAiB,IAAjB,IAAyB,CAA7B,EACE,OAAOhjC,IAAP;MACF,OAAOA,IAAA,CAAKM,OAAL,CAAa,OAAb,EAAsB,IAAtB,EACKA,OADL,CACa,MADb,EACqB,IADrB,EAEKA,OAFL,CAEa,MAFb,EAEqB,IAFrB,EAGKA,OAHL,CAGa,MAHb,EAGqB,IAHrB,EAIKA,OAJL,CAIa,MAJb,EAIqB,IAJrB,EAKKA,OALL,CAKa,MALb,EAKqB,IALrB,EAMKA,OANL,CAMa,MANb,EAMqB,GANrB,EAOKA,OAPL,CAOa,MAPb,EAOqB,GAPrB,EAQKA,OARL,CAQa,MARb,EAQqB,GARrB,EASKA,OATL,CASa,MATb,EASqB,GATrB,CAAP;IAHwB;IAkB1B,SAAS2iC,eAATA,CAAyBjjC,IAAzB,EAA+BkjC,wBAA/B,EAAyD;MACvD,IAAIC,UAAA,GAAa,EAAjB;MAGA,IAAIC,OAAA,GAAU,WAAd;MACA,IAAIC,SAAA,GAAY,aAAhB;MACA,IAAIC,SAAA,GAAY,kBAAhB;MACA,IAAIC,QAAA,GAAW,gCAAf;MACA,IAAIC,OAAA,GAAU,wBAAd;MAGA,SAASC,aAATA,CAAuBC,OAAvB,EAAgCC,cAAhC,EAAgDC,sBAAhD,EAAwE;QACtE,IAAI5c,OAAA,GAAU0c,OAAA,CAAQpjC,OAAR,CAAgB8iC,OAAhB,EAAyB,EAAzB,EAA6B1tE,KAA7B,CAAmC,SAAnC,CAAd;QACA,IAAImuE,WAAA,GAAc,GAAlB;QACA,IAAIC,WAAA,GAAclgB,IAAA,CAAKluD,KAAL,CAAW,GAAX,EAAgB,CAAhB,EAAmB,CAAnB,CAAlB;QACA,IAAIquE,QAAA,GAAW,KAAf;QACA,IAAIh3C,KAAA,GAAQ,EAAZ;QAEA,SAASi3C,SAATA,CAAA,EAAqB;UAGnB,OAAO,IAAP,EAAa;YACX,IAAI,CAAChd,OAAA,CAAQzwD,MAAb,EAAqB;cACnBqtE,sBAAA;cACA;YAFmB;YAIrB,IAAIK,IAAA,GAAOjd,OAAA,CAAQ9lB,KAAR,EAAX;YAGA,IAAImiC,SAAA,CAAU55D,IAAV,CAAew6D,IAAf,CAAJ,EACE;YAGF,IAAIN,cAAJ,EAAoB;cAClB52C,KAAA,GAAQu2C,SAAA,CAAUzsE,IAAV,CAAeotE,IAAf,CAAR;cACA,IAAIl3C,KAAJ,EAAW;gBAIT82C,WAAA,GAAc92C,KAAA,CAAM,CAAN,EAAShN,WAAT,EAAd;gBACAgkD,QAAA,GAAYF,WAAA,KAAgB,GAAjB,IACNA,WAAA,KAAgBjgB,IADV,IACoBigB,WAAA,KAAgBC,WAD/C;gBAEA;cAPS,CAAX,MAQO,IAAIC,QAAJ,EAAc;gBACnB;cADmB;cAGrBh3C,KAAA,GAAQw2C,QAAA,CAAS1sE,IAAT,CAAcotE,IAAd,CAAR;cACA,IAAIl3C,KAAJ,EAAW;gBACTm3C,UAAA,CAAWv7D,OAAA,GAAUokB,KAAA,CAAM,CAAN,CAArB,EAA+Bi3C,SAA/B;gBACA;cAFS;YAdO;YAqBpB,IAAIG,GAAA,GAAMF,IAAA,CAAKl3C,KAAL,CAAWy2C,OAAX,CAAV;YACA,IAAIW,GAAA,IAAOA,GAAA,CAAI5tE,MAAJ,IAAc,CAAzB,EAA4B;cAC1B4sE,UAAA,CAAWgB,GAAA,CAAI,CAAJ,CAAX,IAAqBpB,UAAA,CAAWoB,GAAA,CAAI,CAAJ,CAAX,CAArB;YAD0B;UAlCjB;QAHM;QA0CrBH,SAAA;MAjDsE;MAqDxE,SAASE,UAATA,CAAoBzyE,GAApB,EAAyBwtB,QAAzB,EAAmC;QACjC6iD,WAAA,CAAYrwE,GAAZ,EAAiB,UAAS2jC,OAAT,EAAkB;UACjCquC,aAAA,CAAcruC,OAAd,EAAuB,KAAvB,EAA8BnW,QAA9B;QADiC,CAAnC,EAEG,YAAY;UACb5qB,OAAA,CAAQC,IAAR,CAAa7C,GAAA,GAAM,aAAnB;UACAwtB,QAAA;QAFa,CAFf;MADiC;MAUnCwkD,aAAA,CAAczjC,IAAd,EAAoB,IAApB,EAA0B,YAAW;QACnCkjC,wBAAA,CAAyBC,UAAzB;MADmC,CAArC;IA1EuD;IAgFzDrB,WAAA,CAAYpuD,IAAZ,EAAkB,UAAS0wD,QAAT,EAAmB;MACnCpD,SAAA,IAAaoD,QAAb;MAGAnB,eAAA,CAAgBmB,QAAhB,EAA0B,UAASp2E,IAAT,EAAe;QAGvC,SAAS2U,GAAT,IAAgB3U,IAAhB,EAAsB;UACpB,IAAIqM,EAAJ;YAAQgY,IAAR;YAAcgQ,KAAA,GAAQ1f,GAAA,CAAIqgE,WAAJ,CAAgB,GAAhB,CAAtB;UACA,IAAI3gD,KAAA,GAAQ,CAAZ,EAAe;YACbhoB,EAAA,GAAKsI,GAAA,CAAIpT,SAAJ,CAAc,CAAd,EAAiB8yB,KAAjB,CAAL;YACAhQ,IAAA,GAAO1P,GAAA,CAAIpT,SAAJ,CAAc8yB,KAAA,GAAQ,CAAtB,CAAP;UAFa,CAAf,MAGO;YACLhoB,EAAA,GAAKsI,GAAL;YACA0P,IAAA,GAAO4uD,SAAP;UAFK;UAIP,IAAI,CAACF,SAAA,CAAU1mE,EAAV,CAAL,EAAoB;YAClB0mE,SAAA,CAAU1mE,EAAV,IAAgB,EAAhB;UADkB;UAGpB0mE,SAAA,CAAU1mE,EAAV,EAAcgY,IAAd,IAAsBrkB,IAAA,CAAK2U,GAAL,CAAtB;QAZoB;QAgBtB,IAAIkgE,eAAJ,EAAqB;UACnBA,eAAA;QADmB;MAnBkB,CAAzC;IAJmC,CAArC,EA2BGC,eA3BH;EAtGmE;EAqIrE,SAASuB,UAATA,CAAoBzgB,IAApB,EAA0B3kC,QAA1B,EAAoC;IAGlC,IAAI2kC,IAAJ,EAAU;MACRA,IAAA,GAAOA,IAAA,CAAK7jC,WAAL,EAAP;IADQ;IAIVd,QAAA,GAAWA,QAAA,IAAY,SAASqlD,SAATA,CAAA,EAAqB,EAA5C;IAEA94C,KAAA;IACA01C,SAAA,GAAYtd,IAAZ;IAIA,IAAI2gB,SAAA,GAAYjD,oBAAA,EAAhB;IACA,IAAIkD,SAAA,GAAYD,SAAA,CAAUhuE,MAA1B;IACA,IAAIiuE,SAAA,KAAc,CAAlB,EAAqB;MAEnB,IAAIC,IAAA,GAAOlD,iBAAA,EAAX;MACA,IAAIkD,IAAA,IAAQA,IAAA,CAAKC,OAAb,IAAwBD,IAAA,CAAKE,cAAjC,EAAiD;QAC/CtwE,OAAA,CAAQ0V,GAAR,CAAY,kDAAZ;QACAg3D,SAAA,GAAY0D,IAAA,CAAKC,OAAL,CAAa9gB,IAAb,CAAZ;QACA,IAAI,CAACmd,SAAL,EAAgB;UACd,IAAI6D,aAAA,GAAgBH,IAAA,CAAKE,cAAL,CAAoB5kD,WAApB,EAApB;UACA,SAAS8kD,WAAT,IAAwBJ,IAAA,CAAKC,OAA7B,EAAsC;YACpCG,WAAA,GAAcA,WAAA,CAAY9kD,WAAZ,EAAd;YACA,IAAI8kD,WAAA,KAAgBjhB,IAApB,EAA0B;cACxBmd,SAAA,GAAY0D,IAAA,CAAKC,OAAL,CAAa9gB,IAAb,CAAZ;cACA;YAFwB,CAA1B,MAGO,IAAIihB,WAAA,KAAgBD,aAApB,EAAmC;cACxC7D,SAAA,GAAY0D,IAAA,CAAKC,OAAL,CAAaE,aAAb,CAAZ;YADwC;UALN;QAFxB;QAYhB3lD,QAAA;MAf+C,CAAjD,MAgBO;QACL5qB,OAAA,CAAQ0V,GAAR,CAAY,oCAAZ;MADK;MAIPq3D,WAAA,GAAc,UAAd;MACA;IAxBmB;IA4BrB,IAAI0D,gBAAA,GAAmB,IAAvB;IACA,IAAIC,cAAA,GAAiB,CAArB;IACAD,gBAAA,GAAmB,SAAAA,CAAA,EAAW;MAC5BC,cAAA;MACA,IAAIA,cAAA,IAAkBP,SAAtB,EAAiC;QAC/BvlD,QAAA;QACAmiD,WAAA,GAAc,UAAd;MAF+B;IAFL,CAA9B;IASA,SAAS4D,gBAATA,CAA0B95C,IAA1B,EAAgC;MAC9B,IAAIxX,IAAA,GAAOwX,IAAA,CAAKxX,IAAhB;MAGA,KAAKjR,IAAL,GAAY,UAASmhD,IAAT,EAAe3kC,QAAf,EAAyB;QACnC2jD,aAAA,CAAclvD,IAAd,EAAoBkwC,IAApB,EAA0B3kC,QAA1B,EAAoC,YAAW;UAC7C5qB,OAAA,CAAQC,IAAR,CAAaof,IAAA,GAAO,aAApB;UAEArf,OAAA,CAAQC,IAAR,CAAa,MAAMsvD,IAAN,GAAa,sBAA1B;UACAsd,SAAA,GAAY,EAAZ;UAEAjiD,QAAA;QAN6C,CAA/C;MADmC,CAArC;IAJ8B;IAgBhC,KAAK,IAAI5oB,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAImuE,SAApB,EAA+BnuE,CAAA,EAA/B,EAAoC;MAClC,IAAI4uE,QAAA,GAAW,IAAID,gBAAJ,CAAqBT,SAAA,CAAUluE,CAAV,CAArB,CAAf;MACA4uE,QAAA,CAASxiE,IAAT,CAAcmhD,IAAd,EAAoBkhB,gBAApB;IAFkC;EAvEF;EA8EpC,SAASt5C,KAATA,CAAA,EAAiB;IACfu1C,SAAA,GAAY,EAAZ;IACAC,SAAA,GAAY,EAAZ;IACAE,SAAA,GAAY,EAAZ;EAHe;EAyBjB,SAASgE,cAATA,CAAwBthB,IAAxB,EAA8B;IAC5B,IAAIuhB,aAAA,GAAgB;MAClB,MAAM,CADY;MAElB,MAAM,CAFY;MAGlB,MAAM,CAHY;MAIlB,MAAM,CAJY;MAKlB,OAAO,CALW;MAMlB,MAAM,CANY;MAOlB,MAAM,EAPY;MAQlB,OAAO,CARW;MASlB,OAAO,CATW;MAUlB,MAAM,CAVY;MAWlB,MAAM,CAXY;MAYlB,MAAM,CAZY;MAalB,MAAM,CAbY;MAclB,MAAM,CAdY;MAelB,MAAM,EAfY;MAgBlB,OAAO,CAhBW;MAiBlB,MAAM,EAjBY;MAkBlB,MAAM,CAlBY;MAmBlB,OAAO,CAnBW;MAoBlB,OAAO,CApBW;MAqBlB,MAAM,EArBY;MAsBlB,MAAM,EAtBY;MAuBlB,MAAM,CAvBY;MAwBlB,MAAM,CAxBY;MAyBlB,MAAM,CAzBY;MA0BlB,MAAM,CA1BY;MA2BlB,MAAM,CA3BY;MA4BlB,MAAM,CA5BY;MA6BlB,MAAM,CA7BY;MA8BlB,MAAM,CA9BY;MA+BlB,MAAM,CA/BY;MAgClB,MAAM,CAhCY;MAiClB,MAAM,CAjCY;MAkClB,MAAM,CAlCY;MAmClB,MAAM,CAnCY;MAoClB,MAAM,CApCY;MAqClB,OAAO,CArCW;MAsClB,MAAM,CAtCY;MAuClB,MAAM,CAvCY;MAwClB,OAAO,CAxCW;MAyClB,MAAM,CAzCY;MA0ClB,MAAM,CA1CY;MA2ClB,MAAM,EA3CY;MA4ClB,MAAM,CA5CY;MA6ClB,OAAO,CA7CW;MA8ClB,MAAM,CA9CY;MA+ClB,OAAO,CA/CW;MAgDlB,MAAM,EAhDY;MAiDlB,MAAM,CAjDY;MAkDlB,OAAO,CAlDW;MAmDlB,MAAM,CAnDY;MAoDlB,MAAM,CApDY;MAqDlB,MAAM,EArDY;MAsDlB,MAAM,CAtDY;MAuDlB,MAAM,CAvDY;MAwDlB,MAAM,CAxDY;MAyDlB,MAAM,CAzDY;MA0DlB,MAAM,CA1DY;MA2DlB,MAAM,CA3DY;MA4DlB,MAAM,CA5DY;MA6DlB,MAAM,CA7DY;MA8DlB,OAAO,CA9DW;MA+DlB,MAAM,CA/DY;MAgElB,MAAM,CAhEY;MAiElB,OAAO,CAjEW;MAkElB,OAAO,CAlEW;MAmElB,OAAO,CAnEW;MAoElB,OAAO,CApEW;MAqElB,OAAO,CArEW;MAsElB,MAAM,CAtEY;MAuElB,MAAM,CAvEY;MAwElB,MAAM,CAxEY;MAyElB,MAAM,CAzEY;MA0ElB,MAAM,CA1EY;MA2ElB,OAAO,CA3EW;MA4ElB,OAAO,EA5EW;MA6ElB,MAAM,CA7EY;MA8ElB,MAAM,CA9EY;MA+ElB,OAAO,EA/EW;MAgFlB,MAAM,CAhFY;MAiFlB,MAAM,CAjFY;MAkFlB,MAAM,CAlFY;MAmFlB,MAAM,CAnFY;MAoFlB,MAAM,EApFY;MAqFlB,MAAM,CArFY;MAsFlB,OAAO,CAtFW;MAuFlB,MAAM,CAvFY;MAwFlB,MAAM,EAxFY;MAyFlB,MAAM,CAzFY;MA0FlB,MAAM,CA1FY;MA2FlB,MAAM,CA3FY;MA4FlB,MAAM,CA5FY;MA6FlB,MAAM,CA7FY;MA8FlB,MAAM,EA9FY;MA+FlB,MAAM,CA/FY;MAgGlB,OAAO,CAhGW;MAiGlB,OAAO,CAjGW;MAkGlB,MAAM,CAlGY;MAmGlB,MAAM,CAnGY;MAoGlB,MAAM,CApGY;MAqGlB,MAAM,CArGY;MAsGlB,MAAM,CAtGY;MAuGlB,MAAM,CAvGY;MAwGlB,MAAM,CAxGY;MAyGlB,OAAO,CAzGW;MA0GlB,MAAM,CA1GY;MA2GlB,OAAO,CA3GW;MA4GlB,MAAM,CA5GY;MA6GlB,MAAM,CA7GY;MA8GlB,MAAM,CA9GY;MA+GlB,OAAO,CA/GW;MAgHlB,MAAM,EAhHY;MAiHlB,MAAM,CAjHY;MAkHlB,MAAM,CAlHY;MAmHlB,MAAM,CAnHY;MAoHlB,MAAM,CApHY;MAqHlB,OAAO,CArHW;MAsHlB,MAAM,EAtHY;MAuHlB,OAAO,CAvHW;MAwHlB,OAAO,CAxHW;MAyHlB,OAAO,CAzHW;MA0HlB,MAAM,CA1HY;MA2HlB,OAAO,CA3HW;MA4HlB,OAAO,CA5HW;MA6HlB,MAAM,CA7HY;MA8HlB,MAAM,EA9HY;MA+HlB,OAAO,EA/HW;MAgIlB,MAAM,EAhIY;MAiIlB,MAAM,EAjIY;MAkIlB,OAAO,CAlIW;MAmIlB,OAAO,CAnIW;MAoIlB,OAAO,CApIW;MAqIlB,OAAO,CArIW;MAsIlB,OAAO,CAtIW;MAuIlB,MAAM,CAvIY;MAwIlB,MAAM,CAxIY;MAyIlB,MAAM,CAzIY;MA0IlB,MAAM,EA1IY;MA2IlB,MAAM,CA3IY;MA4IlB,OAAO,CA5IW;MA6IlB,MAAM,CA7IY;MA8IlB,MAAM,CA9IY;MA+IlB,MAAM,CA/IY;MAgJlB,OAAO,CAhJW;MAiJlB,MAAM,CAjJY;MAkJlB,MAAM,CAlJY;MAmJlB,OAAO,CAnJW;MAoJlB,MAAM,CApJY;MAqJlB,MAAM,CArJY;MAsJlB,OAAO,CAtJW;MAuJlB,MAAM,CAvJY;MAwJlB,MAAM,CAxJY;MAyJlB,MAAM,CAzJY;MA0JlB,MAAM,CA1JY;MA2JlB,MAAM,CA3JY;MA4JlB,MAAM,CA5JY;MA6JlB,OAAO,EA7JW;MA8JlB,MAAM,EA9JY;MA+JlB,MAAM,CA/JY;MAgKlB,MAAM,CAhKY;MAiKlB,MAAM,CAjKY;MAkKlB,OAAO,CAlKW;MAmKlB,MAAM,CAnKY;MAoKlB,OAAO,CApKW;MAqKlB,MAAM,CArKY;MAsKlB,MAAM,CAtKY;MAuKlB,OAAO,CAvKW;MAwKlB,MAAM,CAxKY;MAyKlB,MAAM,CAzKY;MA0KlB,MAAM;IA1KY,CAApB;IA8KA,SAASC,IAATA,CAAcjM,CAAd,EAAiBkM,IAAjB,EAAuB;MACrB,OAAOA,IAAA,CAAK7kB,OAAL,CAAa2Y,CAAb,MAAoB,CAAC,CAA5B;IADqB;IAGvB,SAASmM,SAATA,CAAmBnM,CAAnB,EAAsB34C,KAAtB,EAA6BgiB,GAA7B,EAAkC;MAChC,OAAOhiB,KAAA,IAAS24C,CAAT,IAAcA,CAAA,IAAK32B,GAA1B;IADgC;IAMlC,IAAI+iC,WAAA,GAAc;MAChB,KAAK,SAAAC,CAASrM,CAAT,EAAY;QACf,OAAO,OAAP;MADe,CADD;MAIhB,KAAK,SAAAsM,CAAStM,CAAT,EAAY;QACf,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,CAArB,EAAwB,EAAxB,CAAL,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,KAAM,CAAV,EACE,OAAO,MAAP;QACF,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAAL,EACE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAXe,CAJD;MAiBhB,KAAK,SAAAuM,CAASvM,CAAT,EAAY;QACf,IAAIA,CAAA,KAAM,CAAN,IAAYA,CAAA,GAAI,EAAL,KAAa,CAA5B,EACE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAPe,CAjBD;MA0BhB,KAAK,SAAAwM,CAASxM,CAAT,EAAY;QACf,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAHe,CA1BD;MA+BhB,KAAK,SAAAyM,CAASzM,CAAT,EAAY;QACf,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAL,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAHe,CA/BD;MAoChB,KAAK,SAAA0M,CAAS1M,CAAT,EAAY;QACf,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAD,IAAwBA,CAAA,IAAK,CAAjC,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAHe,CApCD;MAyChB,KAAK,SAAA2M,CAAS3M,CAAT,EAAY;QACf,IAAIA,CAAA,KAAM,CAAV,EACE,OAAO,MAAP;QACF,IAAKA,CAAA,GAAI,EAAL,IAAY,CAAZ,IAAkBA,CAAA,GAAI,GAAL,IAAa,EAAlC,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALe,CAzCD;MAgDhB,KAAK,SAAA4M,CAAS5M,CAAT,EAAY;QACf,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALe,CAhDD;MAuDhB,KAAK,SAAA6M,CAAS7M,CAAT,EAAY;QACf,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAL,EACE,OAAO,KAAP;QACF,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,EAAhB,CAAL,EACE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MATe,CAvDD;MAkEhB,KAAK,SAAA8M,CAAS9M,CAAT,EAAY;QACf,IAAIA,CAAA,KAAM,CAAN,IAAWA,CAAA,IAAK,CAAL,IAAWmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,CAArB,EAAwB,EAAxB,CAA1B,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALe,CAlED;MAyEhB,MAAM,SAAA+M,CAAS/M,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,CAAD,IAA+B,CAAEmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAArC,EACE,OAAO,KAAP;QACF,IAAKA,CAAA,GAAI,EAAL,IAAY,CAAZ,IAAiB,CAAEmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAAvB,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALgB,CAzEF;MAgFhB,MAAM,SAAAgN,CAAShN,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,CAAD,IAA+B,CAAEmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAArC,EACE,OAAO,KAAP;QACF,IAAKA,CAAA,GAAI,EAAL,KAAa,CAAb,IACCmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,CADD,IAECmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAFL,EAGE,OAAO,MAAP;QACF,IAAKA,CAAA,GAAI,EAAL,IAAY,CAAZ,IAAkBA,CAAA,GAAI,GAAL,IAAa,EAAlC,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MATgB,CAhFF;MA2FhB,MAAM,SAAAiN,CAASjN,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAL,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALgB,CA3FF;MAkGhB,MAAM,SAAAkN,CAASlN,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,CAAD,IAA+B,CAAEmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAArC,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAL,IAAWmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,CAAX,IACCmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,CADD,IAECmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAFL,EAGE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MATgB,CAlGF;MA6GhB,MAAM,SAAAmN,CAASnN,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,CAArB,EAAwB,CAAxB,CAAL,EACE,OAAO,KAAP;QACF,IAAKA,CAAA,GAAI,GAAL,IAAa,CAAjB,EACE,OAAO,KAAP;QACF,IAAKA,CAAA,GAAI,GAAL,IAAa,CAAjB,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAPgB,CA7GF;MAsHhB,MAAM,SAAAoN,CAASpN,CAAT,EAAY;QAChB,IAAIA,CAAA,KAAM,CAAN,IAAYmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,CAArB,EAAwB,EAAxB,CAAhB,EACE,OAAO,KAAP;QACF,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAAL,EACE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAPgB,CAtHF;MA+HhB,MAAM,SAAAqN,CAASrN,CAAT,EAAY;QAChB,IAAKA,CAAA,GAAI,EAAL,IAAY,CAAZ,IAAiBA,CAAA,IAAK,EAA1B,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAHgB,CA/HF;MAoIhB,MAAM,SAAAsN,CAAStN,CAAT,EAAY;QAChB,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,KAAM,CAAV,EACE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAXgB,CApIF;MAiJhB,MAAM,SAAAuN,CAASvN,CAAT,EAAY;QAChB,IAAIA,CAAA,KAAM,CAAV,EACE,OAAO,MAAP;QACF,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAD,IAAwBA,CAAA,KAAM,CAA9B,IAAmCA,CAAA,IAAK,CAA5C,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALgB,CAjJF;MAwJhB,MAAM,SAAAwN,CAASxN,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,EAAhB,CAAL,EACE,OAAO,KAAP;QACF,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAL,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALgB,CAxJF;MA+JhB,MAAM,SAAAyN,CAASzN,CAAT,EAAY;QAChB,IAAK,CAAAmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,KAA+BA,CAAA,GAAI,EAAL,IAAY,CAA1C,KAAiD,EAClDmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,KACAmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CADA,IAEAmM,SAAA,CAAWnM,CAAA,GAAI,GAAf,EAAqB,EAArB,EAAyB,EAAzB,CAFA,CADJ,EAKE,OAAO,KAAP;QACF,IAAKA,CAAA,GAAI,OAAL,KAAkB,CAAlB,IAAuBA,CAAA,KAAM,CAAjC,EACE,OAAO,MAAP;QACF,IAAKA,CAAA,GAAI,EAAL,IAAY,CAAZ,IAAiB,CAACiM,IAAA,CAAMjM,CAAA,GAAI,GAAV,EAAgB,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,CAAhB,CAAtB,EACE,OAAO,KAAP;QACF,IAAKA,CAAA,GAAI,EAAL,IAAY,CAAZ,IAAiB,CAACiM,IAAA,CAAMjM,CAAA,GAAI,GAAV,EAAgB,CAAC,EAAD,EAAK,EAAL,EAAS,EAAT,CAAhB,CAAtB,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAbgB,CA/JF;MA8KhB,MAAM,SAAA0N,CAAS1N,CAAT,EAAY;QAChB,IAAIA,CAAA,KAAM,CAAV,EACE,OAAO,MAAP;QACF,IAAIA,CAAA,IAAK,CAAT,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MALgB,CA9KF;MAqLhB,MAAM,SAAA2N,CAAS3N,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,CAAhB,CAAD,IAAyBmM,SAAA,CAAUnM,CAAV,EAAa,EAAb,EAAiB,EAAjB,CAA7B,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAHgB,CArLF;MA0LhB,MAAM,SAAA4N,CAAS5N,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAWnM,CAAA,GAAI,EAAf,EAAoB,CAApB,EAAuB,CAAvB,CAAD,IAAgCA,CAAA,GAAI,EAAL,KAAa,CAAhD,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAHgB,CA1LF;MA+LhB,MAAM,SAAA6N,CAAS7N,CAAT,EAAY;QAChB,IAAKmM,SAAA,CAAUnM,CAAV,EAAa,CAAb,EAAgB,EAAhB,KAAuBmM,SAAA,CAAUnM,CAAV,EAAa,EAAb,EAAiB,EAAjB,CAA5B,EACE,OAAO,KAAP;QACF,IAAIiM,IAAA,CAAKjM,CAAL,EAAQ,CAAC,CAAD,EAAI,EAAJ,CAAR,CAAJ,EACE,OAAO,KAAP;QACF,IAAIiM,IAAA,CAAKjM,CAAL,EAAQ,CAAC,CAAD,EAAI,EAAJ,CAAR,CAAJ,EACE,OAAO,KAAP;QACF,OAAO,OAAP;MAPgB;IA/LF,CAAlB;IA2MA,IAAI92C,KAAA,GAAQ8iD,aAAA,CAAcvhB,IAAA,CAAKtjB,OAAL,CAAa,MAAb,EAAqB,EAArB,CAAd,CAAZ;IACA,IAAI,EAAEje,KAAA,IAASkjD,WAAT,CAAN,EAA6B;MAC3BlxE,OAAA,CAAQC,IAAR,CAAa,8BAA8BsvD,IAA9B,GAAqC,GAAlD;MACA,OAAO,YAAW;QAAE,OAAO,OAAP;MAAF,CAAlB;IAF2B;IAI7B,OAAO2hB,WAAA,CAAYljD,KAAZ,CAAP;EAxY4B;EA4Y9B8+C,OAAA,CAAQ8F,MAAR,GAAiB,UAAS/mD,GAAT,EAAcqO,KAAd,EAAqB5rB,GAArB,EAA0B0P,IAA1B,EAAgC;IAC/C,IAAI8mD,CAAA,GAAIhsC,UAAA,CAAWoB,KAAX,CAAR;IACA,IAAI9I,KAAA,CAAM0zC,CAAN,CAAJ,EACE,OAAOj5C,GAAP;IAGF,IAAI7N,IAAA,IAAQ4uD,SAAZ,EACE,OAAO/gD,GAAP;IAGF,IAAI,CAACihD,OAAA,CAAQ+F,YAAb,EAA2B;MACzB/F,OAAA,CAAQ+F,YAAR,GAAuBhC,cAAA,CAAehE,SAAf,CAAvB;IADyB;IAG3B,IAAI7+C,KAAA,GAAQ,MAAM8+C,OAAA,CAAQ+F,YAAR,CAAqB/N,CAArB,CAAN,GAAgC,GAA5C;IAGA,IAAIA,CAAA,KAAM,CAAN,IAAYx2D,GAAA,GAAM,QAAP,IAAoBo+D,SAAnC,EAA8C;MAC5C7gD,GAAA,GAAM6gD,SAAA,CAAUp+D,GAAA,GAAM,QAAhB,EAA0B0P,IAA1B,CAAN;IAD4C,CAA9C,MAEO,IAAI8mD,CAAA,IAAK,CAAL,IAAWx2D,GAAA,GAAM,OAAP,IAAmBo+D,SAAjC,EAA4C;MACjD7gD,GAAA,GAAM6gD,SAAA,CAAUp+D,GAAA,GAAM,OAAhB,EAAyB0P,IAAzB,CAAN;IADiD,CAA5C,MAEA,IAAI8mD,CAAA,IAAK,CAAL,IAAWx2D,GAAA,GAAM,OAAP,IAAmBo+D,SAAjC,EAA4C;MACjD7gD,GAAA,GAAM6gD,SAAA,CAAUp+D,GAAA,GAAM,OAAhB,EAAyB0P,IAAzB,CAAN;IADiD,CAA5C,MAEA,IAAK1P,GAAA,GAAM0f,KAAP,IAAiB0+C,SAArB,EAAgC;MACrC7gD,GAAA,GAAM6gD,SAAA,CAAUp+D,GAAA,GAAM0f,KAAhB,EAAuBhQ,IAAvB,CAAN;IADqC,CAAhC,MAEA,IAAK1P,GAAA,GAAM,SAAP,IAAqBo+D,SAAzB,EAAoC;MACzC7gD,GAAA,GAAM6gD,SAAA,CAAUp+D,GAAA,GAAM,SAAhB,EAA2B0P,IAA3B,CAAN;IADyC;IAI3C,OAAO6N,GAAP;EA5B+C,CAAjD;EAqCA,SAASinD,WAATA,CAAqBxkE,GAArB,EAA0BtB,IAA1B,EAAgCmpD,QAAhC,EAA0C;IACxC,IAAIx8D,IAAA,GAAO+yE,SAAA,CAAUp+D,GAAV,CAAX;IACA,IAAI,CAAC3U,IAAL,EAAW;MACTqG,OAAA,CAAQC,IAAR,CAAa,MAAMqO,GAAN,GAAY,gBAAzB;MACA,IAAI,CAAC6nD,QAAL,EAAe;QACb,OAAO,IAAP;MADa;MAGfx8D,IAAA,GAAOw8D,QAAP;IALS;IAaX,IAAI4c,EAAA,GAAK,EAAT;IACA,SAAS/0D,IAAT,IAAiBrkB,IAAjB,EAAuB;MACrB,IAAIkyB,GAAA,GAAMlyB,IAAA,CAAKqkB,IAAL,CAAV;MACA6N,GAAA,GAAMmnD,YAAA,CAAannD,GAAb,EAAkB7e,IAAlB,EAAwBsB,GAAxB,EAA6B0P,IAA7B,CAAN;MACA6N,GAAA,GAAMonD,cAAA,CAAepnD,GAAf,EAAoB7e,IAApB,EAA0BsB,GAA1B,CAAN;MACAykE,EAAA,CAAG/0D,IAAH,IAAW6N,GAAX;IAJqB;IAMvB,OAAOknD,EAAP;EAtBwC;EA0B1C,SAASC,YAATA,CAAsBnnD,GAAtB,EAA2B7e,IAA3B,EAAiCsB,GAAjC,EAAsC0P,IAAtC,EAA4C;IAC1C,IAAIk1D,OAAA,GAAU,0CAAd;IACA,IAAIC,OAAA,GAAUD,OAAA,CAAQ1wE,IAAR,CAAaqpB,GAAb,CAAd;IACA,IAAI,CAACsnD,OAAD,IAAY,CAACA,OAAA,CAAQjxE,MAAzB,EACE,OAAO2pB,GAAP;IAIF,IAAIunD,SAAA,GAAYD,OAAA,CAAQ,CAAR,CAAhB;IACA,IAAIE,SAAA,GAAYF,OAAA,CAAQ,CAAR,CAAhB;IACA,IAAIj5C,KAAJ;IACA,IAAIltB,IAAA,IAAQqmE,SAAA,IAAarmE,IAAzB,EAA+B;MAC7BktB,KAAA,GAAQltB,IAAA,CAAKqmE,SAAL,CAAR;IAD6B,CAA/B,MAEO,IAAIA,SAAA,IAAa3G,SAAjB,EAA4B;MACjCxyC,KAAA,GAAQwyC,SAAA,CAAU2G,SAAV,CAAR;IADiC;IAKnC,IAAID,SAAA,IAAatG,OAAjB,EAA0B;MACxB,IAAIwG,KAAA,GAAQxG,OAAA,CAAQsG,SAAR,CAAZ;MACAvnD,GAAA,GAAMynD,KAAA,CAAMznD,GAAN,EAAWqO,KAAX,EAAkB5rB,GAAlB,EAAuB0P,IAAvB,CAAN;IAFwB;IAI1B,OAAO6N,GAAP;EAtB0C;EA0B5C,SAASonD,cAATA,CAAwBpnD,GAAxB,EAA6B7e,IAA7B,EAAmCsB,GAAnC,EAAwC;IACtC,IAAIilE,MAAA,GAAS,sBAAb;IACA,OAAO1nD,GAAA,CAAIogB,OAAJ,CAAYsnC,MAAZ,EAAoB,UAASC,YAAT,EAAuBC,GAAvB,EAA4B;MACrD,IAAIzmE,IAAA,IAAQymE,GAAA,IAAOzmE,IAAnB,EAAyB;QACvB,OAAOA,IAAA,CAAKymE,GAAL,CAAP;MADuB;MAGzB,IAAIA,GAAA,IAAO/G,SAAX,EAAsB;QACpB,OAAOA,SAAA,CAAU+G,GAAV,CAAP;MADoB;MAGtBzzE,OAAA,CAAQ0V,GAAR,CAAY,gBAAgB+9D,GAAhB,GAAsB,UAAtB,GAAmCnlE,GAAnC,GAAyC,gBAArD;MACA,OAAOklE,YAAP;IARqD,CAAhD,CAAP;EAFsC;EAexC,SAASE,gBAATA,CAA0BhqD,OAA1B,EAAmC;IACjC,IAAI7sB,IAAA,GAAOywE,iBAAA,CAAkB5jD,OAAlB,CAAX;IACA,IAAI,CAAC7sB,IAAA,CAAKmJ,EAAV,EACE;IAGF,IAAIrM,IAAA,GAAOm5E,WAAA,CAAYj2E,IAAA,CAAKmJ,EAAjB,EAAqBnJ,IAAA,CAAKmQ,IAA1B,CAAX;IACA,IAAI,CAACrT,IAAL,EAAW;MACTqG,OAAA,CAAQC,IAAR,CAAa,MAAMpD,IAAA,CAAKmJ,EAAX,GAAgB,gBAA7B;MACA;IAFS;IAMX,IAAIrM,IAAA,CAAKizE,SAAL,CAAJ,EAAqB;MACnB,IAAI+G,oBAAA,CAAqBjqD,OAArB,MAAkC,CAAtC,EAAyC;QACvCA,OAAA,CAAQkjD,SAAR,IAAqBjzE,IAAA,CAAKizE,SAAL,CAArB;MADuC,CAAzC,MAEO;QAGL,IAAI9L,QAAA,GAAWp3C,OAAA,CAAQwwC,UAAvB;QACA,IAAIrmB,KAAA,GAAQ,KAAZ;QACA,KAAK,IAAI7xC,CAAA,GAAI,CAAR,EAAW4xE,CAAA,GAAI9S,QAAA,CAAS5+D,MAAxB,EAAgCF,CAAA,GAAI4xE,CAAzC,EAA4C5xE,CAAA,EAA5C,EAAiD;UAC/C,IAAI8+D,QAAA,CAAS9+D,CAAT,EAAYgiE,QAAZ,KAAyB,CAAzB,IAA8B,KAAK5uD,IAAL,CAAU0rD,QAAA,CAAS9+D,CAAT,EAAY6xE,SAAtB,CAAlC,EAAoE;YAClE,IAAIhgC,KAAJ,EAAW;cACTitB,QAAA,CAAS9+D,CAAT,EAAY6xE,SAAZ,GAAwB,EAAxB;YADS,CAAX,MAEO;cACL/S,QAAA,CAAS9+D,CAAT,EAAY6xE,SAAZ,GAAwBl6E,IAAA,CAAKizE,SAAL,CAAxB;cACA/4B,KAAA,GAAQ,IAAR;YAFK;UAH2D;QADrB;QAYjD,IAAI,CAACA,KAAL,EAAY;UACV,IAAIigC,QAAA,GAAW/4E,QAAA,CAASqpE,cAAT,CAAwBzqE,IAAA,CAAKizE,SAAL,CAAxB,CAAf;UACAljD,OAAA,CAAQ0Y,OAAR,CAAgB0xC,QAAhB;QAFU;MAjBP;MAsBP,OAAOn6E,IAAA,CAAKizE,SAAL,CAAP;IAzBmB;IA4BrB,SAASmH,CAAT,IAAcp6E,IAAd,EAAoB;MAClB+vB,OAAA,CAAQqqD,CAAR,IAAap6E,IAAA,CAAKo6E,CAAL,CAAb;IADkB;EAzCa;EA+CnC,SAASJ,oBAATA,CAA8BjqD,OAA9B,EAAuC;IACrC,IAAIA,OAAA,CAAQo3C,QAAZ,EAAsB;MACpB,OAAOp3C,OAAA,CAAQo3C,QAAR,CAAiB5+D,MAAxB;IADoB;IAGtB,IAAI,OAAOwnB,OAAA,CAAQsqD,iBAAf,KAAqC,WAAzC,EAAsD;MACpD,OAAOtqD,OAAA,CAAQsqD,iBAAf;IADoD;IAGtD,IAAInyC,KAAA,GAAQ,CAAZ;IACA,KAAK,IAAI7/B,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAI0nB,OAAA,CAAQwwC,UAAR,CAAmBh4D,MAAvC,EAA+CF,CAAA,EAA/C,EAAoD;MAClD6/B,KAAA,IAASnY,OAAA,CAAQs6C,QAAR,KAAqB,CAArB,GAAyB,CAAzB,GAA6B,CAAtC;IADkD;IAGpD,OAAOniC,KAAP;EAXqC;EAevC,SAASoyC,iBAATA,CAA2BvqD,OAA3B,EAAoC;IAClCA,OAAA,GAAUA,OAAA,IAAW3uB,QAAA,CAAS0E,eAA9B;IAGA,IAAIqhE,QAAA,GAAWuM,uBAAA,CAAwB3jD,OAAxB,CAAf;IACA,IAAIwqD,YAAA,GAAepT,QAAA,CAAS5+D,MAA5B;IACA,KAAK,IAAIF,CAAA,GAAI,CAAR,EAAWA,CAAA,GAAIkyE,YAApB,EAAkClyE,CAAA,EAAlC,EAAuC;MACrC0xE,gBAAA,CAAiB5S,QAAA,CAAS9+D,CAAT,CAAjB;IADqC;IAKvC0xE,gBAAA,CAAiBhqD,OAAjB;EAXkC;EAcpC,OAAO;IAEL1qB,GAAA,EAAK,SAAAA,CAASsP,GAAT,EAActB,IAAd,EAAoBmnE,cAApB,EAAoC;MACvC,IAAInmD,KAAA,GAAQ1f,GAAA,CAAIqgE,WAAJ,CAAgB,GAAhB,CAAZ;MACA,IAAI3wD,IAAA,GAAO4uD,SAAX;MACA,IAAI5+C,KAAA,GAAQ,CAAZ,EAAe;QACbhQ,IAAA,GAAO1P,GAAA,CAAIpT,SAAJ,CAAc8yB,KAAA,GAAQ,CAAtB,CAAP;QACA1f,GAAA,GAAMA,GAAA,CAAIpT,SAAJ,CAAc,CAAd,EAAiB8yB,KAAjB,CAAN;MAFa;MAIf,IAAImoC,QAAJ;MACA,IAAIge,cAAJ,EAAoB;QAClBhe,QAAA,GAAW,EAAX;QACAA,QAAA,CAASn4C,IAAT,IAAiBm2D,cAAjB;MAFkB;MAIpB,IAAIx6E,IAAA,GAAOm5E,WAAA,CAAYxkE,GAAZ,EAAiBtB,IAAjB,EAAuBmpD,QAAvB,CAAX;MACA,IAAIx8D,IAAA,IAAQqkB,IAAA,IAAQrkB,IAApB,EAA0B;QACxB,OAAOA,IAAA,CAAKqkB,IAAL,CAAP;MADwB;MAG1B,OAAO,OAAO1P,GAAP,GAAa,IAApB;IAhBuC,CAFpC;IAsBLQ,OAAA,EAAS,SAAAA,CAAA,EAAW;MAAE,OAAO49D,SAAP;IAAF,CAtBf;IAuBL0H,OAAA,EAAS,SAAAA,CAAA,EAAW;MAAE,OAAOzH,SAAP;IAAF,CAvBf;IA0BL1mC,WAAA,EAAa,SAAAA,CAAA,EAAW;MAAE,OAAO4mC,SAAP;IAAF,CA1BnB;IA2BLJ,WAAA,EAAa,SAAAA,CAASld,IAAT,EAAe3kC,QAAf,EAAyB;MACpColD,UAAA,CAAWzgB,IAAX,EAAiB,YAAW;QAC1B,IAAI3kC,QAAJ,EACEA,QAAA;MAFwB,CAA5B;IADoC,CA3BjC;IAmCLppB,YAAA,EAAc,SAAAA,CAAA,EAAW;MAGvB,IAAI6yE,OAAA,GAAU,CAAC,IAAD,EAAO,IAAP,EAAa,IAAb,EAAmB,IAAnB,EAAyB,IAAzB,CAAd;MACA,IAAIC,SAAA,GAAYzH,SAAA,CAAUxrE,KAAV,CAAgB,GAAhB,EAAqB,CAArB,EAAwB,CAAxB,CAAhB;MACA,OAAQgzE,OAAA,CAAQloB,OAAR,CAAgBmoB,SAAhB,KAA8B,CAA/B,GAAoC,KAApC,GAA4C,KAAnD;IALuB,CAnCpB;IA4CL50E,SAAA,EAAWu0E,iBA5CN;IA+CLM,aAAA,EAAe,SAAAA,CAAA,EAAW;MAAE,OAAOxH,WAAP;IAAF,CA/CrB;IAgDL7tD,KAAA,EAAO,SAAAA,CAAS0L,QAAT,EAAmB;MACxB,IAAI,CAACA,QAAL,EAAe;QACb;MADa,CAAf,MAEO,IAAImiD,WAAA,IAAe,UAAf,IAA6BA,WAAA,IAAe,aAAhD,EAA+D;QACpE7vE,MAAA,CAAOoW,UAAP,CAAkB,YAAW;UAC3BsX,QAAA;QAD2B,CAA7B;MADoE,CAA/D,MAIA,IAAI7vB,QAAA,CAAS8N,gBAAb,EAA+B;QACpC9N,QAAA,CAAS8N,gBAAT,CAA0B,WAA1B,EAAuC,SAASwL,IAATA,CAAA,EAAgB;UACrDtZ,QAAA,CAAS2c,mBAAT,CAA6B,WAA7B,EAA0CrD,IAA1C;UACAuW,QAAA;QAFqD,CAAvD;MADoC;IAPd;EAhDrB,CAAP;AAh6B8G,CAA5B,CAg+BnB1tB,MAh+BmB,EAi+BnBnC,QAj+BmB,CAApF;;;;;;;;;;;;;ACxBA,IAAA1D,SAAA,GAAAhC,mBAAA;AAEA,eAAesO,aAAfA,CAA6BrI,WAA7B,EAA0C;EACxC,MAAM8B,GAAA,GAAM,EAAZ;IACEC,OAAA,GAAUD,GAAA,CAAIiE,KAAJ,CAAU,GAAV,EAAe,CAAf,CADZ;EAGA,IAAI;IAAEiU,IAAF;IAAQ3X,QAAR;IAAkB4X,0BAAlB;IAA8CC;EAA9C,IACF,MAAMla,WAAA,CAAYma,WAAZ,EADR;EAGA,IAAI,CAACD,aAAL,EAAoB;IAClB,MAAM;MAAEtT;IAAF,IAAa,MAAM5G,WAAA,CAAYgV,eAAZ,EAAzB;IACAkF,aAAA,GAAgBtT,MAAhB;EAFkB;EAKpB,OAAO;IACL,GAAGoT,IADE;IAELhB,OAAA,EAASjX,OAFJ;IAGLkX,QAAA,EAAUiB,aAHL;IAIL3G,QAAA,EAAU0G,0BAAA,IAA8B,IAAA9J,+BAAA,EAAsBrO,GAAtB,CAJnC;IAKLO,QAAA,EAAUA,QAAA,EAAU6W,MAAV,EALL;IAMLC,OAAA,EAAS9W,QAAA,EAAUqB,GAAV,CAAc,YAAd,CANJ;IAOL4L,QAAA,EAAUtP,WAAA,CAAYsP,QAPjB;IAQL8J,GAAA,EAAKtX;EARA,CAAP;AAZwC;AAwB1C,MAAMnG,gBAAN,CAAuB;EACrBuC,YAAYxC,gBAAZ,EAA8B;IAC5B,KAAKw1E,MAAL,GAAc,IAAA/sD,oBAAA,EACZzoB,gBADY,EAEgB,IAFhB,EAGZ2I,IAHY,CAGP,MAAM;MACX,OAAOzC,MAAA,CAAOs3E,YAAP,CAAoBC,cAApB,EAAP;IADW,CAHC,CAAd;EAD4B;EAS9B,MAAMnzB,aAANA,CAAoB3nD,IAApB,EAA0B;IACxB,MAAM+6E,OAAA,GAAU,MAAM,KAAKlI,MAA3B;IACAkI,OAAA,CAAQj3E,MAAR,CAAe9D,IAAf;EAFwB;EAK1B,MAAMunD,sBAANA,CAA6BlkC,KAA7B,EAAoC;IAClC,MAAM03D,OAAA,GAAU,MAAM,KAAKlI,MAA3B;IACAl5D,UAAA,CAAW,MAAMohE,OAAA,CAAQ91C,aAAR,CAAsB5hB,KAAtB,CAAjB,EAA+C,CAA/C;EAFkC;EAKpC,MAAMmlC,cAANA,CAAA,EAAuB;IACrB,MAAMuyB,OAAA,GAAU,MAAM,KAAKlI,MAA3B;IACAkI,OAAA,CAAQC,WAAR;EAFqB;AApBF;AAzCvBh/E,wBAAA,GAAAsB,gBAAA;;;;;;;;;;;;ACeA,IAAAI,SAAA,GAAAhC,mBAAA;AACA,IAAAD,IAAA,GAAAC,mBAAA;AACA,IAAAu/E,YAAA,GAAAv/E,mBAAA;AAEA,IAAIw/E,aAAA,GAAgB,IAApB;AACA,IAAIl6C,MAAA,GAAS,IAAb;AACA,IAAIn+B,cAAA,GAAiB,IAArB;AAIA,SAASs4E,UAATA,CACEC,oBADF,EAEEz5E,WAFF,EAGEgc,UAHF,EAIElL,IAJF,EAKE+M,eALF,EAMEnF,4BANF,EAOEghE,6BAPF,EAQE;EACA,MAAMC,aAAA,GAAgBJ,aAAA,CAAcI,aAApC;EAGA,MAAMC,WAAA,GAAc/7D,eAAA,GAAkBw1C,uBAAA,CAAcwmB,GAApD;EACAF,aAAA,CAAcpnD,KAAd,GAAsB5d,IAAA,CAAKsO,KAAL,CAAWnS,IAAA,CAAKyhB,KAAL,GAAaqnD,WAAxB,CAAtB;EACAD,aAAA,CAAcnnD,MAAd,GAAuB7d,IAAA,CAAKsO,KAAL,CAAWnS,IAAA,CAAK0hB,MAAL,GAAconD,WAAzB,CAAvB;EAEA,MAAM9uB,GAAA,GAAM6uB,aAAA,CAAc5uB,UAAd,CAAyB,IAAzB,CAAZ;EACAD,GAAA,CAAI95C,IAAJ;EACA85C,GAAA,CAAIG,SAAJ,GAAgB,oBAAhB;EACAH,GAAA,CAAII,QAAJ,CAAa,CAAb,EAAgB,CAAhB,EAAmByuB,aAAA,CAAcpnD,KAAjC,EAAwConD,aAAA,CAAcnnD,MAAtD;EACAs4B,GAAA,CAAIK,OAAJ;EAEA,OAAO7rD,OAAA,CAAQmS,GAAR,CAAY,CACjBzR,WAAA,CAAYwrC,OAAZ,CAAoBxvB,UAApB,CADiB,EAEjB09D,6BAFiB,CAAZ,EAGJr1E,IAHI,CAGC,UAAU,CAACsS,OAAD,EAAUmjE,sBAAV,CAAV,EAA6C;IACnD,MAAM7sB,aAAA,GAAgB;MACpBC,aAAA,EAAepC,GADK;MAEpBwB,SAAA,EAAW,CAACstB,WAAD,EAAc,CAAd,EAAiB,CAAjB,EAAoBA,WAApB,EAAiC,CAAjC,EAAoC,CAApC,CAFS;MAGpBhwB,QAAA,EAAUjzC,OAAA,CAAQkzC,WAAR,CAAoB;QAAEpkC,KAAA,EAAO,CAAT;QAAYrP,QAAA,EAAUtF,IAAA,CAAKsF;MAA3B,CAApB,CAHU;MAIpBkrD,MAAA,EAAQ,OAJY;MAKpB93D,cAAA,EAAgBulD,wBAAA,CAAegrB,cALX;MAMpBrhE,4BANoB;MAOpBohE;IAPoB,CAAtB;IASA,OAAOnjE,OAAA,CAAQ4B,MAAR,CAAe00C,aAAf,EAA8Bx+C,OAArC;EAVmD,CAH9C,CAAP;AAdA;AA+BF,MAAMurE,eAAN,CAAsB;EACpB97E,YACE8B,WADF,EAEE0d,aAFF,EAGEE,cAHF,EAIEC,eAJF,EAKEnF,4BAAA,GAA+B,IALjC,EAMEghE,6BAAA,GAAgC,IANlC,EAOEn4E,IAPF,EAQE;IACA,KAAKvB,WAAL,GAAmBA,WAAnB;IACA,KAAK0d,aAAL,GAAqBA,aAArB;IACA,KAAKE,cAAL,GAAsBA,cAAtB;IACA,KAAKq8D,gBAAL,GAAwBp8D,eAAA,IAAmB,GAA3C;IACA,KAAKwtC,6BAAL,GACE3yC,4BAAA,IAAgC1Y,WAAA,CAAY0+C,wBAAZ,EADlC;IAEA,KAAKz7C,8BAAL,GACEy2E,6BAAA,IAAiCp6E,OAAA,CAAQC,OAAR,EADnC;IAEA,KAAKgC,IAAL,GAAYA,IAAZ;IACA,KAAK0lB,WAAL,GAAmB,CAAC,CAApB;IAEA,KAAK0yD,aAAL,GAAqBl6E,QAAA,CAAS8gC,aAAT,CAAuB,QAAvB,CAArB;EAZA;EAeFxiB,OAAA,EAAS;IACP,KAAKm8D,eAAL;IAEA,MAAMvwC,IAAA,GAAOlqC,QAAA,CAAS+2B,aAAT,CAAuB,MAAvB,CAAb;IACAmT,IAAA,CAAK/S,YAAL,CAAkB,oBAAlB,EAAwC,IAAxC;IAEA,MAAM;MAAErE,KAAF;MAASC;IAAT,IAAoB,KAAK9U,aAAL,CAAmB,CAAnB,CAA1B;IACA,MAAMzF,iBAAA,GAAoB,KAAKyF,aAAL,CAAmBgzC,KAAnB,CACxB5/C,IAAA,IAAQA,IAAA,CAAKyhB,KAAL,KAAeA,KAAf,IAAwBzhB,IAAA,CAAK0hB,MAAL,KAAgBA,MADxB,CAA1B;IAGA,IAAI,CAACva,iBAAL,EAAwB;MACtBvT,OAAA,CAAQC,IAAR,CACE,wEADF;IADsB;IAexB,KAAKw1E,cAAL,GAAsB16E,QAAA,CAAS8gC,aAAT,CAAuB,OAAvB,CAAtB;IACA,KAAK45C,cAAL,CAAoBv1C,WAApB,GAAmC,iBAAgBrS,KAAM,MAAKC,MAAO,MAArE;IACAmX,IAAA,CAAKlJ,MAAL,CAAY,KAAK05C,cAAjB;EA3BO;EA8BThpE,QAAA,EAAU;IACR,IAAIooE,aAAA,KAAkB,IAAtB,EAA4B;MAG1B;IAH0B;IAK5B,KAAK37D,cAAL,CAAoBgnB,WAApB,GAAkC,EAAlC;IAEA,MAAM+E,IAAA,GAAOlqC,QAAA,CAAS+2B,aAAT,CAAuB,MAAvB,CAAb;IACAmT,IAAA,CAAKoiB,eAAL,CAAqB,oBAArB;IAEA,IAAI,KAAKouB,cAAT,EAAyB;MACvB,KAAKA,cAAL,CAAoB3vE,MAApB;MACA,KAAK2vE,cAAL,GAAsB,IAAtB;IAFuB;IAIzB,KAAKR,aAAL,CAAmBpnD,KAAnB,GAA2B,KAAKonD,aAAL,CAAmBnnD,MAAnB,GAA4B,CAAvD;IACA,KAAKmnD,aAAL,GAAqB,IAArB;IACAJ,aAAA,GAAgB,IAAhB;IACAa,aAAA,GAAgB/1E,IAAhB,CAAqB,YAAY;MAC/B,IAAInD,cAAA,CAAegnB,MAAf,KAA0BmX,MAA9B,EAAsC;QACpCn+B,cAAA,CAAeyP,KAAf,CAAqB0uB,MAArB;MADoC;IADP,CAAjC;EAlBQ;EAyBVg7C,YAAA,EAAc;IACZ,IAAI,KAAKr6E,WAAL,CAAiB8a,SAArB,EAAgC;MAC9B,IAAAw/D,kCAAA,EAAsB,KAAK18D,cAA3B,EAA2C,KAAK5d,WAAhD;MACA,OAAOV,OAAA,CAAQC,OAAR,EAAP;IAF8B;IAKhC,MAAM8sC,SAAA,GAAY,KAAK3uB,aAAL,CAAmB9W,MAArC;IACA,MAAM2zE,cAAA,GAAiBA,CAACh7E,OAAD,EAAU46B,MAAV,KAAqB;MAC1C,KAAK+/C,eAAL;MACA,IAAI,EAAE,KAAKjzD,WAAP,IAAsBolB,SAA1B,EAAqC;QACnCmuC,cAAA,CAAenuC,SAAf,EAA0BA,SAA1B,EAAqC,KAAK9qC,IAA1C;QACAhC,OAAA;QACA;MAHmC;MAKrC,MAAMmzB,KAAA,GAAQ,KAAKzL,WAAnB;MACAuzD,cAAA,CAAe9nD,KAAf,EAAsB2Z,SAAtB,EAAiC,KAAK9qC,IAAtC;MACAi4E,UAAA,CACE,IADF,EAEE,KAAKx5E,WAFP,EAGqB0yB,KAAA,GAAQ,CAH7B,EAIE,KAAKhV,aAAL,CAAmBgV,KAAnB,CAJF,EAKE,KAAKunD,gBALP,EAME,KAAK5uB,6BANP,EAOE,KAAKpoD,8BAPP,EASGoB,IATH,CASQ,KAAKo2E,eAAL,CAAqB9yE,IAArB,CAA0B,IAA1B,CATR,EAUGtD,IAVH,CAUQ,YAAY;QAChBk2E,cAAA,CAAeh7E,OAAf,EAAwB46B,MAAxB;MADgB,CAVpB,EAYKA,MAZL;IAT0C,CAA5C;IAuBA,OAAO,IAAI76B,OAAJ,CAAYi7E,cAAZ,CAAP;EA9BY;EAiCdE,gBAAA,EAAkB;IAChB,KAAKP,eAAL;IACA,MAAMzuB,GAAA,GAAMhsD,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAZ;IACA,MAAMo5C,aAAA,GAAgB,KAAKA,aAA3B;IACA,IAAI,YAAYA,aAAhB,EAA+B;MAC7BA,aAAA,CAAce,MAAd,CAAqB,UAAUjnE,IAAV,EAAgB;QACnCg4C,GAAA,CAAIkB,GAAJ,GAAUvzC,GAAA,CAAIyM,eAAJ,CAAoBpS,IAApB,CAAV;MADmC,CAArC;IAD6B,CAA/B,MAIO;MACLg4C,GAAA,CAAIkB,GAAJ,GAAUgtB,aAAA,CAAc/sB,SAAd,EAAV;IADK;IAIP,MAAM+tB,OAAA,GAAUl7E,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAhB;IACAo6C,OAAA,CAAQ70C,SAAR,GAAoB,aAApB;IACA60C,OAAA,CAAQl6C,MAAR,CAAegrB,GAAf;IACA,KAAK7tC,cAAL,CAAoB6iB,MAApB,CAA2Bk6C,OAA3B;IAEA,OAAO,IAAIr7E,OAAJ,CAAY,UAAUC,OAAV,EAAmB46B,MAAnB,EAA2B;MAC5CsxB,GAAA,CAAImvB,MAAJ,GAAar7E,OAAb;MACAksD,GAAA,CAAIqnB,OAAJ,GAAc34C,MAAd;IAF4C,CAAvC,CAAP;EAjBgB;EAuBlB0gD,aAAA,EAAe;IACb,KAAKX,eAAL;IACA,OAAO,IAAI56E,OAAJ,CAAYC,OAAA,IAAW;MAI5ByY,UAAA,CAAW,MAAM;QACf,IAAI,CAAC,KAAKkQ,MAAV,EAAkB;UAChB3oB,OAAA;UACA;QAFgB;QAIlB0O,KAAA,CAAM6sE,IAAN,CAAWl5E,MAAX;QAEAoW,UAAA,CAAWzY,OAAX,EAAoB,EAApB;MAPe,CAAjB,EAQG,CARH;IAJ4B,CAAvB,CAAP;EAFa;EAkBf,IAAI2oB,MAAJA,CAAA,EAAa;IACX,OAAO,SAASqxD,aAAhB;EADW;EAIbW,gBAAA,EAAkB;IAChB,IAAI,CAAC,KAAKhyD,MAAV,EAAkB;MAChB,MAAM,IAAI/pB,KAAJ,CAAU,gDAAV,CAAN;IADgB;EADF;AA7JE;AAhEtB9D,uBAAA,GAAA2/E,eAAA;AAoOA,MAAM/rE,KAAA,GAAQrM,MAAA,CAAOqM,KAArB;AACArM,MAAA,CAAOqM,KAAP,GAAe,YAAY;EACzB,IAAIsrE,aAAJ,EAAmB;IACjB70E,OAAA,CAAQC,IAAR,CAAa,wDAAb;IACA;EAFiB;EAInBy1E,aAAA,GAAgB/1E,IAAhB,CAAqB,YAAY;IAC/B,IAAIk1E,aAAJ,EAAmB;MACjBr4E,cAAA,CAAekN,IAAf,CAAoBixB,MAApB;IADiB;EADY,CAAjC;EAMA,IAAI;IACFiE,aAAA,CAAc,aAAd;EADE,CAAJ,SAEU;IACR,IAAI,CAACi2C,aAAL,EAAoB;MAClB70E,OAAA,CAAQK,KAAR,CAAc,2CAAd;MACAq1E,aAAA,GAAgB/1E,IAAhB,CAAqB,YAAY;QAC/B,IAAInD,cAAA,CAAegnB,MAAf,KAA0BmX,MAA9B,EAAsC;UACpCn+B,cAAA,CAAeyP,KAAf,CAAqB0uB,MAArB;QADoC;MADP,CAAjC;MAKA;IAPkB;IASpB,MAAMo6C,oBAAA,GAAuBF,aAA7B;IACAA,aAAA,CACGc,WADH,GAEGh2E,IAFH,CAEQ,YAAY;MAChB,OAAOo1E,oBAAA,CAAqBoB,YAArB,EAAP;IADgB,CAFpB,EAKGxlE,KALH,CAKS,YAAY,EALrB,EAQGhR,IARH,CAQQ,YAAY;MAMhB,IAAIo1E,oBAAA,CAAqBvxD,MAAzB,EAAiC;QAC/B6yD,KAAA;MAD+B;IANjB,CARpB;EAXQ;AAbe,CAA3B;AA6CA,SAASz3C,aAATA,CAAuB03C,SAAvB,EAAkC;EAChC,MAAMt5D,KAAA,GAAQ,IAAI+kC,WAAJ,CAAgBu0B,SAAhB,EAA2B;IACvCC,OAAA,EAAS,KAD8B;IAEvCC,UAAA,EAAY,KAF2B;IAGvCv5D,MAAA,EAAQ;EAH+B,CAA3B,CAAd;EAKA/f,MAAA,CAAO0hC,aAAP,CAAqB5hB,KAArB;AANgC;AASlC,SAASq5D,KAATA,CAAA,EAAiB;EACf,IAAIxB,aAAJ,EAAmB;IACjBA,aAAA,CAAcpoE,OAAd;IACAmyB,aAAA,CAAc,YAAd;EAFiB;AADJ;AAOjB,SAASk3C,cAATA,CAAwB9nD,KAAxB,EAA+B9f,KAA/B,EAAsCrR,IAAtC,EAA4C;EAI1C89B,MAAA,KAAW5/B,QAAA,CAASkL,cAAT,CAAwB,oBAAxB,CAAX;EACA,MAAMkI,QAAA,GAAW8B,IAAA,CAAKC,KAAL,CAAY,MAAM8d,KAAP,GAAgB9f,KAA3B,CAAjB;EACA,MAAMuoE,WAAA,GAAc97C,MAAA,CAAO7I,aAAP,CAAqB,UAArB,CAApB;EACA,MAAM4kD,YAAA,GAAe/7C,MAAA,CAAO7I,aAAP,CAAqB,oBAArB,CAArB;EACA2kD,WAAA,CAAY7tE,KAAZ,GAAoBuF,QAApB;EACAtR,IAAA,CAAKmC,GAAL,CAAS,wBAAT,EAAmC;IAAEmP;EAAF,CAAnC,EAAiDxO,IAAjD,CAAsD0J,GAAA,IAAO;IAC3DqtE,YAAA,CAAax2C,WAAb,GAA2B72B,GAA3B;EAD2D,CAA7D;AAT0C;AAc5CnM,MAAA,CAAO2L,gBAAP,CACE,SADF,EAEE,UAAUmU,KAAV,EAAiB;EAGf,IACEA,KAAA,CAAMyJ,OAAN,KAA2B,EAA3B,KACCzJ,KAAA,CAAM1iB,OAAN,IAAiB0iB,KAAA,CAAMziB,OAAvB,CADD,IAEA,CAACyiB,KAAA,CAAMuJ,MAFP,KAGC,CAACvJ,KAAA,CAAMwJ,QAAP,IAAmBtpB,MAAA,CAAOy5E,MAA1B,IAAoCz5E,MAAA,CAAO05E,KAA3C,CAJH,EAKE;IACA15E,MAAA,CAAOqM,KAAP;IAEAyT,KAAA,CAAM/T,cAAN;IACA+T,KAAA,CAAM65D,wBAAN;EAJA;AARa,CAFnB,EAiBE,IAjBF;AAoBA,IAAI,mBAAmB35E,MAAvB,EAA+B;EAG7B,MAAM45E,uBAAA,GAA0B,SAAAA,CAAU95D,KAAV,EAAiB;IAC/C,IAAIA,KAAA,CAAMC,MAAN,KAAiB,QAArB,EAA+B;MAC7BD,KAAA,CAAM65D,wBAAN;IAD6B;EADgB,CAAjD;EAKA35E,MAAA,CAAO2L,gBAAP,CAAwB,aAAxB,EAAuCiuE,uBAAvC;EACA55E,MAAA,CAAO2L,gBAAP,CAAwB,YAAxB,EAAsCiuE,uBAAtC;AAT6B;AAY/B,IAAIC,cAAJ;AACA,SAASrB,aAATA,CAAA,EAAyB;EAMvB,IAAI,CAACqB,cAAL,EAAqB;IACnBv6E,cAAA,GAAiBtF,yBAAA,CAAqBsF,cAAtC;IACA,IAAI,CAACA,cAAL,EAAqB;MACnB,MAAM,IAAI/C,KAAJ,CAAU,mDAAV,CAAN;IADmB;IAGrBkhC,MAAA,KAAW5/B,QAAA,CAASkL,cAAT,CAAwB,oBAAxB,CAAX;IAEA8wE,cAAA,GAAiBv6E,cAAA,CAAe++B,QAAf,CACfZ,MADe,EAEO,IAFP,CAAjB;IAKA5/B,QAAA,CAASkL,cAAT,CAAwB,aAAxB,EAAuC8wB,OAAvC,GAAiDs/C,KAAjD;IACA17C,MAAA,CAAO9xB,gBAAP,CAAwB,OAAxB,EAAiCwtE,KAAjC;EAbmB;EAerB,OAAOU,cAAP;AArBuB;AAwBzBhsE,2BAAA,CAAuBC,QAAvB,GAAkC;EAChC1B,gBAAA,EAAkB,IADc;EAGhC8P,mBACE9d,WADF,EAEE0d,aAFF,EAGEE,cAHF,EAIEC,eAJF,EAKEnF,4BALF,EAMEghE,6BANF,EAOEn4E,IAPF,EAQE;IACA,IAAIg4E,aAAJ,EAAmB;MACjB,MAAM,IAAIp7E,KAAJ,CAAU,0CAAV,CAAN;IADiB;IAGnBo7E,aAAA,GAAgB,IAAIS,eAAJ,CACdh6E,WADc,EAEd0d,aAFc,EAGdE,cAHc,EAIdC,eAJc,EAKdnF,4BALc,EAMdghE,6BANc,EAOdn4E,IAPc,CAAhB;IASA,OAAOg4E,aAAP;EAbA;AAX8B,CAAlC;;;;;;;;;;;;AC1VA,IAAAx9E,SAAA,GAAAhC,mBAAA;AACA,IAAAmC,iBAAA,GAAAnC,mBAAA;AACA,IAAAqhE,kBAAA,GAAArhE,mBAAA;AAEA,SAASugF,qBAATA,CAA+B18D,cAA/B,EAA+C5d,WAA/C,EAA4D;EAC1D,MAAMwqE,OAAA,GAAUxqE,WAAA,CAAY07E,UAA5B;EACA,MAAMxzE,WAAA,GAAc,IAAI22B,mCAAJ,EAApB;EACA,MAAMpZ,KAAA,GAAQ9Q,IAAA,CAAKC,KAAL,CAAWy+C,uBAAA,CAAcC,gBAAd,GAAiC,GAA5C,IAAmD,GAAjE;EAEA,WAAWqoB,OAAX,IAAsBnR,OAAA,CAAQhF,QAA9B,EAAwC;IACtC,MAAMj2D,IAAA,GAAO9P,QAAA,CAAS8gC,aAAT,CAAuB,KAAvB,CAAb;IACAhxB,IAAA,CAAKu2B,SAAL,GAAiB,gBAAjB;IACAloB,cAAA,CAAe6iB,MAAf,CAAsBlxB,IAAtB;IAEA,MAAMqsE,OAAA,GAAU,IAAIxa,kCAAJ,CAAoB;MAClCZ,OAAA,EAASjxD,IADyB;MAElCoH,OAAA,EAAS,IAFyB;MAGlC9F,iBAAA,EAAmB7Q,WAAA,CAAY6Q,iBAHG;MAIlC3I,WAJkC;MAKlCsiE,OAAA,EAASmR;IALyB,CAApB,CAAhB;IAOA,MAAM/xB,QAAA,GAAW,IAAAiyB,4BAAA,EAAmBF,OAAnB,EAA4B;MAAEl2D;IAAF,CAA5B,CAAjB;IAEAm2D,OAAA,CAAQrjE,MAAR,CAAeqxC,QAAf,EAAyB,OAAzB;EAdsC;AALkB;;;;;UCnB5D;UACA;;UAEA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;UACA;;UAEA;UACA;;UAEA;UACA;UACA;;;;;;;;;;;;;;;;;;;;;;;;;ACPA7vD,mBAAA;AACAA,mBAAA;AACA,IAAA+B,SAAA,GAAA/B,mBAAA;AACA,IAAAiC,YAAA,GAAAjC,mBAAA;AACA,IAAAmC,iBAAA,GAAAnC,mBAAA;AACA,IAAAD,IAAA,GAAAC,mBAAA;AAGA,MAAM+hF,YAAA,GAC8B,UADpC;AAGA,MAAMC,UAAA,GAC8B,WADpC;AAGA,MAAMC,YAAA,GAEA;EAAEr4E,UAAF,EAAEA,4BAAF;EAAc6I,eAAd,EAAcA,yBAAd;EAA+BgK,UAA/B,EAA+BA,oBAA/B;EAA2CE,UAA3C,EAA2CA;AAA3C,CAFN;AA7BArc,qCAAA,GAAA2hF,YAAA;AAkCAp6E,MAAA,CAAOhG,oBAAP,GAA8BA,yBAA9B;AACAgG,MAAA,CAAOq6E,6BAAP,GAAuCD,YAAvC;AACAp6E,MAAA,CAAOs6E,2BAAP,GAAqCz4E,uBAArC;AAEA,SAAS04E,sBAATA,CAAA,EAAkC;EAChC,OAAO;IACLj4E,YAAA,EAAczE,QAAA,CAASkqC,IADlB;IAEL1kC,aAAA,EAAexF,QAAA,CAASkL,cAAT,CAAwB,iBAAxB,CAFV;IAGLzF,eAAA,EAAiBzF,QAAA,CAASkL,cAAT,CAAwB,QAAxB,CAHZ;IAILvJ,OAAA,EAAS;MACPmH,SAAA,EAAW9I,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CADJ;MAEP2E,QAAA,EAAU7P,QAAA,CAASkL,cAAT,CAAwB,UAAxB,CAFH;MAGPqR,UAAA,EAAYvc,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CAHL;MAIPmiE,WAAA,EAAartE,QAAA,CAASkL,cAAT,CAAwB,aAAxB,CAJN;MAKPoiE,iBAAA,EAAmBttE,QAAA,CAASkL,cAAT,CAAwB,mBAAxB,CALZ;MAMP+b,QAAA,EAAUjnB,QAAA,CAASkL,cAAT,CAAwB,UAAxB,CANH;MAOPikD,IAAA,EAAMnvD,QAAA,CAASkL,cAAT,CAAwB,MAAxB,CAPC;MAQP+D,MAAA,EAAQjP,QAAA,CAASkL,cAAT,CAAwB,QAAxB,CARD;MASPqE,OAAA,EAASvP,QAAA,CAASkL,cAAT,CAAwB,SAAxB,CATF;MAUPwD,QAAA,EAAU1O,QAAA,CAASkL,cAAT,CAAwB,UAAxB,CAVH;MAWPkiE,QAAA,EAEMptE,QAAA,CAASkL,cAAT,CAAwB,UAAxB,CAbC;MAePsD,KAAA,EAAOxO,QAAA,CAASkL,cAAT,CAAwB,OAAxB,CAfA;MAgBP6hE,oBAAA,EAAsB/sE,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAhBf;MAiBP4iE,2BAAA,EAA6B9tE,QAAA,CAASkL,cAAT,CAC3B,6BAD2B,CAjBtB;MAoBP+hE,eAAA,EAAiBjtE,QAAA,CAASkL,cAAT,CAAwB,WAAxB,CApBV;MAqBP6iE,sBAAA,EAAwB/tE,QAAA,CAASkL,cAAT,CAAwB,wBAAxB,CArBjB;MAsBPJ,iBAAA,EAAmB9K,QAAA,CAASkL,cAAT,CAAwB,aAAxB,CAtBZ;MAuBP8iE,wBAAA,EAA0BhuE,QAAA,CAASkL,cAAT,CACxB,0BADwB,CAvBnB;MA0BP2I,QAAA,EAAU7T,QAAA,CAASkL,cAAT,CAAwB,UAAxB;IA1BH,CAJJ;IAgCLtJ,gBAAA,EAAkB;MAChBD,OAAA,EAAS3B,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CADO;MAEhBigB,YAAA,EAAcnrB,QAAA,CAASkL,cAAT,CAAwB,wBAAxB,CAFE;MAGhBU,sBAAA,EAAwB5L,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CAHR;MAIhB+gE,cAAA,EAEMjsE,QAAA,CAASkL,cAAT,CAAwB,mBAAxB,CANU;MAQhBuD,WAAA,EAAazO,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CARG;MAShBggE,cAAA,EAAgBlrE,QAAA,CAASkL,cAAT,CAAwB,mBAAxB,CATA;MAUhB8F,kBAAA,EAAoBhR,QAAA,CAASkL,cAAT,CAAwB,cAAxB,CAVJ;MAWhBigE,eAAA,EAAiBnrE,QAAA,CAASkL,cAAT,CAAwB,WAAxB,CAXD;MAYhBkgE,cAAA,EAAgBprE,QAAA,CAASkL,cAAT,CAAwB,UAAxB,CAZA;MAahBmgE,kBAAA,EAAoBrrE,QAAA,CAASkL,cAAT,CAAwB,cAAxB,CAbJ;MAchBogE,mBAAA,EAAqBtrE,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CAdL;MAehBqgE,sBAAA,EAAwBvrE,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CAfR;MAgBhBI,oBAAA,EAAsBtL,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAhBN;MAiBhBugE,gBAAA,EAAkBzrE,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CAjBF;MAkBhBwgE,oBAAA,EAAsB1rE,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAlBN;MAmBhBygE,sBAAA,EAAwB3rE,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CAnBR;MAoBhB0gE,mBAAA,EAAqB5rE,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CApBL;MAqBhB2gE,gBAAA,EAAkB7rE,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CArBF;MAsBhB4gE,eAAA,EAAiB9rE,QAAA,CAASkL,cAAT,CAAwB,WAAxB,CAtBD;MAuBhB6gE,gBAAA,EAAkB/rE,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CAvBF;MAwBhB8gE,wBAAA,EAA0BhsE,QAAA,CAASkL,cAAT,CAAwB,oBAAxB;IAxBV,CAhCb;IA0DLb,OAAA,EAAS;MAEP29C,cAAA,EAAgBhoD,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAFT;MAGP+8C,gBAAA,EAAkBjoD,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CAHX;MAIPigB,YAAA,EAAcnrB,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CAJP;MAKPg9C,OAAA,EAASloD,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CALF;MAOPi9C,eAAA,EAAiBnoD,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CAPV;MAQPk9C,aAAA,EAAepoD,QAAA,CAASkL,cAAT,CAAwB,aAAxB,CARR;MASPm9C,iBAAA,EAAmBroD,QAAA,CAASkL,cAAT,CAAwB,iBAAxB,CATZ;MAUPo9C,YAAA,EAActoD,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CAVP;MAYPZ,aAAA,EAAetK,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CAZR;MAaPe,WAAA,EAAajM,QAAA,CAASkL,cAAT,CAAwB,aAAxB,CAbN;MAcPiB,eAAA,EAAiBnM,QAAA,CAASkL,cAAT,CAAwB,iBAAxB,CAdV;MAePmB,UAAA,EAAYrM,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CAfL;MAiBPs9C,uBAAA,EAAyBxoD,QAAA,CAASkL,cAAT,CACvB,yBADuB,CAjBlB;MAoBPw9C,wBAAA,EAA0B1oD,QAAA,CAASkL,cAAT,CAAwB,oBAAxB;IApBnB,CA1DJ;IAgFLP,OAAA,EAAS;MACP0F,GAAA,EAAKrQ,QAAA,CAASkL,cAAT,CAAwB,SAAxB,CADE;MAEPigB,YAAA,EAAcnrB,QAAA,CAASkL,cAAT,CAAwB,UAAxB,CAFP;MAGPojC,SAAA,EAAWtuC,QAAA,CAASkL,cAAT,CAAwB,WAAxB,CAHJ;MAIPqjC,oBAAA,EAAsBvuC,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CAJf;MAKPsjC,qBAAA,EAAuBxuC,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CALhB;MAMPujC,uBAAA,EAAyBzuC,QAAA,CAASkL,cAAT,CAAwB,qBAAxB,CANlB;MAOPwjC,kBAAA,EAAoB1uC,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAPb;MAQPyjC,OAAA,EAAS3uC,QAAA,CAASkL,cAAT,CAAwB,SAAxB,CARF;MASP0jC,gBAAA,EAAkB5uC,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CATX;MAUP2jC,kBAAA,EAAoB7uC,QAAA,CAASkL,cAAT,CAAwB,cAAxB,CAVb;MAWP4jC,cAAA,EAAgB9uC,QAAA,CAASkL,cAAT,CAAwB,UAAxB;IAXT,CAhFJ;IA6FLY,eAAA,EAAiB;MACf8zB,MAAA,EAAQ5/B,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CADO;MAEf4Q,KAAA,EAAO9b,QAAA,CAASkL,cAAT,CAAwB,cAAxB,CAFQ;MAGfw5B,KAAA,EAAO1kC,QAAA,CAASkL,cAAT,CAAwB,UAAxB,CAHQ;MAIfy5B,YAAA,EAAc3kC,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAJC;MAKfy0B,YAAA,EAAc3/B,QAAA,CAASkL,cAAT,CAAwB,gBAAxB;IALC,CA7FZ;IAoGLC,kBAAA,EAAoB;MAClBy0B,MAAA,EAAQ5/B,QAAA,CAASkL,cAAT,CAAwB,0BAAxB,CADU;MAElB0/B,WAAA,EAAa5qC,QAAA,CAASkL,cAAT,CAAwB,yBAAxB,CAFK;MAGlBy/B,MAAA,EAAQ;QACNU,QAAA,EAAUrrC,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CADJ;QAENogC,QAAA,EAAUtrC,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CAFJ;QAGN3H,KAAA,EAAOvD,QAAA,CAASkL,cAAT,CAAwB,YAAxB,CAHD;QAINkhC,MAAA,EAAQpsC,QAAA,CAASkL,cAAT,CAAwB,aAAxB,CAJF;QAKNohC,OAAA,EAAStsC,QAAA,CAASkL,cAAT,CAAwB,cAAxB,CALH;QAMNshC,QAAA,EAAUxsC,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CANJ;QAONqgC,YAAA,EAAcvrC,QAAA,CAASkL,cAAT,CAAwB,mBAAxB,CAPR;QAQNsgC,gBAAA,EAAkBxrC,QAAA,CAASkL,cAAT,CAAwB,uBAAxB,CARZ;QASNwhC,OAAA,EAAS1sC,QAAA,CAASkL,cAAT,CAAwB,cAAxB,CATH;QAUNyhC,QAAA,EAAU3sC,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CAVJ;QAWNyJ,OAAA,EAAS3U,QAAA,CAASkL,cAAT,CAAwB,cAAxB,CAXH;QAYN0hC,SAAA,EAAW5sC,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAZL;QAaNugC,QAAA,EAAUzrC,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CAbJ;QAcN2hC,UAAA,EAAY7sC,QAAA,CAASkL,cAAT,CAAwB,iBAAxB;MAdN;IAHU,CApGf;IAwHLzB,aAAA,EAAe;MACbm2B,MAAA,EAAQ5/B,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CADK;MAEb40B,iBAAA,EAAmB9/B,QAAA,CAASkL,cAAT,CAAwB,mBAAxB,CAFN;MAGb60B,gBAAA,EAAkB//B,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CAHL;MAIb+0B,QAAA,EAAUjgC,QAAA,CAASkL,cAAT,CAAwB,qBAAxB,CAJG;MAKby0B,YAAA,EAAc3/B,QAAA,CAASkL,cAAT,CAAwB,eAAxB,CALD;MAMb80B,UAAA,EAAYhgC,QAAA,CAASkL,cAAT,CAAwB,aAAxB;IANC,CAxHV;IAgILnJ,sBAAA,EAAwB;MACtBwhC,sBAAA,EAAwBvjC,QAAA,CAASkL,cAAT,CAAwB,wBAAxB,CADF;MAEtBs4B,mBAAA,EAAqBxjC,QAAA,CAASkL,cAAT,CAAwB,qBAAxB,CAFC;MAGtBu4B,cAAA,EAAgBzjC,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAHM;MAItBw4B,kBAAA,EAAoB1jC,QAAA,CAASkL,cAAT,CAAwB,oBAAxB,CAJE;MAKtBy4B,gBAAA,EAAkB3jC,QAAA,CAASkL,cAAT,CAAwB,kBAAxB,CALI;MAMtB04B,mBAAA,EAAqB5jC,QAAA,CAASkL,cAAT,CAAwB,qBAAxB;IANC,CAhInB;IAwILiT,cAAA,EAAgBne,QAAA,CAASkL,cAAT,CAAwB,gBAAxB,CAxIX;IAyIL0C,aAAA,EAEM5N,QAAA,CAASkL,cAAT,CAAwB,WAAxB,CA3ID;IA6IL2Z,kBAAA,EAAoB;EA7If,CAAP;AADgC;AAkJlC,SAAS83D,aAATA,CAAA,EAAyB;EACvB,MAAMrvE,MAAA,GAASovE,sBAAA,EAAf;EAME,MAAMz6D,KAAA,GAAQ,IAAI+kC,WAAJ,CAAgB,iBAAhB,EAAmC;IAC/Cw0B,OAAA,EAAS,IADsC;IAE/CC,UAAA,EAAY,IAFmC;IAG/Cv5D,MAAA,EAAQ;MACNpd,MAAA,EAAQ3C;IADF;EAHuC,CAAnC,CAAd;EAOA,IAAI;IAIFC,MAAA,CAAOpC,QAAP,CAAgB6jC,aAAhB,CAA8B5hB,KAA9B;EAJE,CAAJ,CAKE,OAAOpc,EAAP,EAAW;IAGXZ,OAAA,CAAQK,KAAR,CAAe,oBAAmBO,EAApB,EAAd;IACA7F,QAAA,CAAS6jC,aAAT,CAAuB5hB,KAAvB;EAJW;EAOf9lB,yBAAA,CAAqBkR,GAArB,CAAyBC,MAAzB;AA1BuB;AA+BzBtN,QAAA,CAASikB,kBAAT,GAA8B,IAA9B;AAEA,IACEjkB,QAAA,CAASmzE,UAAT,KAAwB,aAAxB,IACAnzE,QAAA,CAASmzE,UAAT,KAAwB,UAF1B,EAGE;EACAwJ,aAAA;AADA,CAHF,MAKO;EACL38E,QAAA,CAAS8N,gBAAT,CAA0B,kBAA1B,EAA8C6uE,aAA9C,EAA6D,IAA7D;AADK","sources":["webpack://pdf.js/web/genericcom.js","webpack://pdf.js/web/app.js","webpack://pdf.js/web/ui_utils.js","webpack://pdf.js/web/pdfjs.js","webpack://pdf.js/web/app_options.js","webpack://pdf.js/web/event_utils.js","webpack://pdf.js/web/pdf_link_service.js","webpack://pdf.js/web/alt_text_manager.js","webpack://pdf.js/web/annotation_editor_params.js","webpack://pdf.js/web/overlay_manager.js","webpack://pdf.js/web/password_prompt.js","webpack://pdf.js/web/pdf_attachment_viewer.js","webpack://pdf.js/web/base_tree_viewer.js","webpack://pdf.js/web/pdf_cursor_tools.js","webpack://pdf.js/web/grab_to_pan.js","webpack://pdf.js/web/pdf_document_properties.js","webpack://pdf.js/web/pdf_find_bar.js","webpack://pdf.js/web/pdf_find_controller.js","webpack://pdf.js/web/pdf_find_utils.js","webpack://pdf.js/web/pdf_history.js","webpack://pdf.js/web/pdf_layer_viewer.js","webpack://pdf.js/web/pdf_outline_viewer.js","webpack://pdf.js/web/pdf_presentation_mode.js","webpack://pdf.js/web/pdf_rendering_queue.js","webpack://pdf.js/web/pdf_scripting_manager.js","webpack://pdf.js/web/pdf_sidebar.js","webpack://pdf.js/web/pdf_thumbnail_viewer.js","webpack://pdf.js/web/pdf_thumbnail_view.js","webpack://pdf.js/web/pdf_viewer.js","webpack://pdf.js/web/l10n_utils.js","webpack://pdf.js/web/pdf_page_view.js","webpack://pdf.js/web/annotation_editor_layer_builder.js","webpack://pdf.js/web/annotation_layer_builder.js","webpack://pdf.js/web/struct_tree_layer_builder.js","webpack://pdf.js/web/text_accessibility.js","webpack://pdf.js/web/text_highlighter.js","webpack://pdf.js/web/text_layer_builder.js","webpack://pdf.js/web/xfa_layer_builder.js","webpack://pdf.js/web/secondary_toolbar.js","webpack://pdf.js/web/toolbar.js","webpack://pdf.js/web/view_history.js","webpack://pdf.js/web/preferences.js","webpack://pdf.js/web/download_manager.js","webpack://pdf.js/web/genericl10n.js","webpack://pdf.js/external/webL10n/l10n.js","webpack://pdf.js/web/generic_scripting.js","webpack://pdf.js/web/pdf_print_service.js","webpack://pdf.js/web/print_utils.js","webpack://pdf.js/webpack/bootstrap","webpack://pdf.js/web/viewer.js"],"sourcesContent":["/* 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\nimport { DefaultExternalServices, PDFViewerApplication } from \"./app.js\";\nimport { BasePreferences } from \"./preferences.js\";\nimport { DownloadManager } from \"./download_manager.js\";\nimport { GenericL10n } from \"./genericl10n.js\";\nimport { GenericScripting } from \"./generic_scripting.js\";\n\nif (typeof PDFJSDev !== \"undefined\" && !PDFJSDev.test(\"GENERIC\")) {\n throw new Error(\n 'Module \"pdfjs-web/genericcom\" shall not be used outside GENERIC build.'\n );\n}\n\nconst GenericCom = {};\n\nclass GenericPreferences extends BasePreferences {\n async _writeToStorage(prefObj) {\n localStorage.setItem(\"pdfjs.preferences\", JSON.stringify(prefObj));\n }\n\n async _readFromStorage(prefObj) {\n return JSON.parse(localStorage.getItem(\"pdfjs.preferences\"));\n }\n}\n\nclass GenericExternalServices extends DefaultExternalServices {\n static createDownloadManager() {\n return new DownloadManager();\n }\n\n static createPreferences() {\n return new GenericPreferences();\n }\n\n static createL10n({ locale = \"en-US\" }) {\n return new GenericL10n(locale);\n }\n\n static createScripting({ sandboxBundleSrc }) {\n return new GenericScripting(sandboxBundleSrc);\n }\n}\nPDFViewerApplication.externalServices = GenericExternalServices;\n\nexport { GenericCom };\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 {\n animationStarted,\n apiPageLayoutToViewerModes,\n apiPageModeToSidebarView,\n AutoPrintRegExp,\n CursorTool,\n DEFAULT_SCALE_VALUE,\n getActiveOrFocusedElement,\n isValidRotation,\n isValidScrollMode,\n isValidSpreadMode,\n normalizeWheelEventDirection,\n parseQueryString,\n ProgressBar,\n RenderingStates,\n ScrollMode,\n SidebarView,\n SpreadMode,\n TextLayerMode,\n} from \"./ui_utils.js\";\nimport {\n AnnotationEditorType,\n build,\n FeatureTest,\n getDocument,\n getFilenameFromUrl,\n getPdfFilenameFromUrl,\n GlobalWorkerOptions,\n InvalidPDFException,\n isDataScheme,\n isPdfFile,\n loadScript,\n MissingPDFException,\n PDFWorker,\n PromiseCapability,\n shadow,\n UnexpectedResponseException,\n version,\n} from \"pdfjs-lib\";\nimport { AppOptions, OptionKind } from \"./app_options.js\";\nimport { AutomationEventBus, EventBus } from \"./event_utils.js\";\nimport { LinkTarget, PDFLinkService } from \"./pdf_link_service.js\";\nimport { AltTextManager } from \"web-alt_text_manager\";\nimport { AnnotationEditorParams } from \"web-annotation_editor_params\";\nimport { OverlayManager } from \"./overlay_manager.js\";\nimport { PasswordPrompt } from \"./password_prompt.js\";\nimport { PDFAttachmentViewer } from \"web-pdf_attachment_viewer\";\nimport { PDFCursorTools } from \"web-pdf_cursor_tools\";\nimport { PDFDocumentProperties } from \"web-pdf_document_properties\";\nimport { PDFFindBar } from \"web-pdf_find_bar\";\nimport { PDFFindController } from \"./pdf_find_controller.js\";\nimport { PDFHistory } from \"./pdf_history.js\";\nimport { PDFLayerViewer } from \"web-pdf_layer_viewer\";\nimport { PDFOutlineViewer } from \"web-pdf_outline_viewer\";\nimport { PDFPresentationMode } from \"web-pdf_presentation_mode\";\nimport { PDFRenderingQueue } from \"./pdf_rendering_queue.js\";\nimport { PDFScriptingManager } from \"./pdf_scripting_manager.js\";\nimport { PDFSidebar } from \"web-pdf_sidebar\";\nimport { PDFThumbnailViewer } from \"web-pdf_thumbnail_viewer\";\nimport { PDFViewer } from \"./pdf_viewer.js\";\nimport { SecondaryToolbar } from \"web-secondary_toolbar\";\nimport { Toolbar } from \"web-toolbar\";\nimport { ViewHistory } from \"./view_history.js\";\n\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 ViewerCssTheme = {\n AUTOMATIC: 0, // Default value.\n LIGHT: 1,\n DARK: 2,\n};\n\nclass DefaultExternalServices {\n constructor() {\n throw new Error(\"Cannot initialize DefaultExternalServices.\");\n }\n\n static updateFindControlState(data) {}\n\n static updateFindMatchesCount(data) {}\n\n static initPassiveLoading(callbacks) {}\n\n static reportTelemetry(data) {}\n\n static createDownloadManager() {\n throw new Error(\"Not implemented: createDownloadManager\");\n }\n\n static createPreferences() {\n throw new Error(\"Not implemented: createPreferences\");\n }\n\n static createL10n(options) {\n throw new Error(\"Not implemented: createL10n\");\n }\n\n static createScripting(options) {\n throw new Error(\"Not implemented: createScripting\");\n }\n\n static get supportsPinchToZoom() {\n return shadow(this, \"supportsPinchToZoom\", true);\n }\n\n static get supportsIntegratedFind() {\n return shadow(this, \"supportsIntegratedFind\", false);\n }\n\n static get supportsDocumentFonts() {\n return shadow(this, \"supportsDocumentFonts\", true);\n }\n\n static get supportedMouseWheelZoomModifierKeys() {\n return shadow(this, \"supportedMouseWheelZoomModifierKeys\", {\n ctrlKey: true,\n metaKey: true,\n });\n }\n\n static get isInAutomation() {\n return shadow(this, \"isInAutomation\", false);\n }\n\n static updateEditorStates(data) {\n throw new Error(\"Not implemented: updateEditorStates\");\n }\n\n static get canvasMaxAreaInBytes() {\n return shadow(this, \"canvasMaxAreaInBytes\", -1);\n }\n\n static getNimbusExperimentData() {\n return shadow(this, \"getNimbusExperimentData\", Promise.resolve(null));\n }\n}\n\nconst PDFViewerApplication = {\n initialBookmark: document.location.hash.substring(1),\n _initializedCapability: new PromiseCapability(),\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 {PDFOutlineViewer} */\n pdfOutlineViewer: null,\n /** @type {PDFAttachmentViewer} */\n pdfAttachmentViewer: null,\n /** @type {PDFLayerViewer} */\n pdfLayerViewer: null,\n /** @type {PDFCursorTools} */\n pdfCursorTools: null,\n /** @type {PDFScriptingManager} */\n pdfScriptingManager: 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 /** @type {AnnotationEditorParams} */\n annotationEditorParams: null,\n isInitialViewSet: false,\n downloadComplete: false,\n isViewerEmbedded: window.parent !== window,\n url: \"\",\n baseUrl: \"\",\n _downloadUrl: \"\",\n externalServices: DefaultExternalServices,\n _boundEvents: Object.create(null),\n documentInfo: null,\n metadata: null,\n _contentDispositionFilename: null,\n _contentLength: null,\n _saveInProgress: false,\n _wheelUnusedTicks: 0,\n _wheelUnusedFactor: 1,\n _touchUnusedTicks: 0,\n _touchUnusedFactor: 1,\n _PDFBug: null,\n _hasAnnotationEditors: false,\n _title: document.title,\n _printAnnotationStoragePromise: null,\n _touchInfo: null,\n _isCtrlKeyDown: false,\n _nimbusDataPromise: 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 if (\n typeof PDFJSDev === \"undefined\"\n ? window.isGECKOVIEW\n : PDFJSDev.test(\"GECKOVIEW\")\n ) {\n this._nimbusDataPromise = this.externalServices.getNimbusExperimentData();\n }\n\n await this._initializeOptions();\n this._forceCssTheme();\n await this._initializeL10n();\n\n if (\n this.isViewerEmbedded &&\n AppOptions.get(\"externalLinkTarget\") === LinkTarget.NONE\n ) {\n // Prevent external links from \"replacing\" the viewer,\n // when it's embedded in e.g. an