UNPKG

793 kBJavaScriptView Raw
1/**
2 * @licstart The following is the entire license notice for the
3 * Javascript code in this page
4 *
5 * Copyright 2020 Mozilla Foundation
6 *
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
10 *
11 * http://www.apache.org/licenses/LICENSE-2.0
12 *
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 *
19 * @licend The above is the entire license notice for the
20 * Javascript code in this page
21 */
22
23(function webpackUniversalModuleDefinition(root, factory) {
24 if(typeof exports === 'object' && typeof module === 'object')
25 module.exports = factory();
26 else if(typeof define === 'function' && define.amd)
27 define("pdfjs-dist/build/pdf", [], factory);
28 else if(typeof exports === 'object')
29 exports["pdfjs-dist/build/pdf"] = factory();
30 else
31 root["pdfjs-dist/build/pdf"] = root.pdfjsLib = factory();
32})(this, function() {
33return /******/ (function(modules) { // webpackBootstrap
34/******/ // The module cache
35/******/ var installedModules = {};
36/******/
37/******/ // The require function
38/******/ function __w_pdfjs_require__(moduleId) {
39/******/
40/******/ // Check if module is in cache
41/******/ if(installedModules[moduleId]) {
42/******/ return installedModules[moduleId].exports;
43/******/ }
44/******/ // Create a new module (and put it into the cache)
45/******/ var module = installedModules[moduleId] = {
46/******/ i: moduleId,
47/******/ l: false,
48/******/ exports: {}
49/******/ };
50/******/
51/******/ // Execute the module function
52/******/ modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);
53/******/
54/******/ // Flag the module as loaded
55/******/ module.l = true;
56/******/
57/******/ // Return the exports of the module
58/******/ return module.exports;
59/******/ }
60/******/
61/******/
62/******/ // expose the modules object (__webpack_modules__)
63/******/ __w_pdfjs_require__.m = modules;
64/******/
65/******/ // expose the module cache
66/******/ __w_pdfjs_require__.c = installedModules;
67/******/
68/******/ // define getter function for harmony exports
69/******/ __w_pdfjs_require__.d = function(exports, name, getter) {
70/******/ if(!__w_pdfjs_require__.o(exports, name)) {
71/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
72/******/ }
73/******/ };
74/******/
75/******/ // define __esModule on exports
76/******/ __w_pdfjs_require__.r = function(exports) {
77/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
78/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
79/******/ }
80/******/ Object.defineProperty(exports, '__esModule', { value: true });
81/******/ };
82/******/
83/******/ // create a fake namespace object
84/******/ // mode & 1: value is a module id, require it
85/******/ // mode & 2: merge all properties of value into the ns
86/******/ // mode & 4: return value when already ns object
87/******/ // mode & 8|1: behave like require
88/******/ __w_pdfjs_require__.t = function(value, mode) {
89/******/ if(mode & 1) value = __w_pdfjs_require__(value);
90/******/ if(mode & 8) return value;
91/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
92/******/ var ns = Object.create(null);
93/******/ __w_pdfjs_require__.r(ns);
94/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
95/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __w_pdfjs_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
96/******/ return ns;
97/******/ };
98/******/
99/******/ // getDefaultExport function for compatibility with non-harmony modules
100/******/ __w_pdfjs_require__.n = function(module) {
101/******/ var getter = module && module.__esModule ?
102/******/ function getDefault() { return module['default']; } :
103/******/ function getModuleExports() { return module; };
104/******/ __w_pdfjs_require__.d(getter, 'a', getter);
105/******/ return getter;
106/******/ };
107/******/
108/******/ // Object.prototype.hasOwnProperty.call
109/******/ __w_pdfjs_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
110/******/
111/******/ // __webpack_public_path__
112/******/ __w_pdfjs_require__.p = "";
113/******/
114/******/
115/******/ // Load entry module and return exports
116/******/ return __w_pdfjs_require__(__w_pdfjs_require__.s = 0);
117/******/ })
118/************************************************************************/
119/******/ ([
120/* 0 */
121/***/ (function(module, exports, __w_pdfjs_require__) {
122
123"use strict";
124
125
126var pdfjsVersion = '2.4.456';
127var pdfjsBuild = '228a591c';
128
129var pdfjsSharedUtil = __w_pdfjs_require__(1);
130
131var pdfjsDisplayAPI = __w_pdfjs_require__(190);
132
133var pdfjsDisplayTextLayer = __w_pdfjs_require__(205);
134
135var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(206);
136
137var pdfjsDisplayDisplayUtils = __w_pdfjs_require__(194);
138
139var pdfjsDisplaySVG = __w_pdfjs_require__(207);
140
141var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(199);
142
143var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(196);
144
145{
146 var _require = __w_pdfjs_require__(48),
147 isNodeJS = _require.isNodeJS;
148
149 if (isNodeJS) {
150 var PDFNodeStream = __w_pdfjs_require__(208).PDFNodeStream;
151
152 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
153 return new PDFNodeStream(params);
154 });
155 } else {
156 var PDFNetworkStream = __w_pdfjs_require__(211).PDFNetworkStream;
157
158 var PDFFetchStream;
159
160 if (pdfjsDisplayDisplayUtils.isFetchSupported()) {
161 PDFFetchStream = __w_pdfjs_require__(212).PDFFetchStream;
162 }
163
164 pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
165 if (PDFFetchStream && pdfjsDisplayDisplayUtils.isValidFetchUrl(params.url)) {
166 return new PDFFetchStream(params);
167 }
168
169 return new PDFNetworkStream(params);
170 });
171 }
172}
173exports.build = pdfjsDisplayAPI.build;
174exports.version = pdfjsDisplayAPI.version;
175exports.getDocument = pdfjsDisplayAPI.getDocument;
176exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;
177exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;
178exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;
179exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;
180exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;
181exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;
182exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;
183exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;
184exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;
185exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;
186exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;
187exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;
188exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;
189exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;
190exports.OPS = pdfjsSharedUtil.OPS;
191exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;
192exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;
193exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;
194exports.createObjectURL = pdfjsSharedUtil.createObjectURL;
195exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;
196exports.shadow = pdfjsSharedUtil.shadow;
197exports.Util = pdfjsSharedUtil.Util;
198exports.RenderingCancelledException = pdfjsDisplayDisplayUtils.RenderingCancelledException;
199exports.getFilenameFromUrl = pdfjsDisplayDisplayUtils.getFilenameFromUrl;
200exports.LinkTarget = pdfjsDisplayDisplayUtils.LinkTarget;
201exports.addLinkAttributes = pdfjsDisplayDisplayUtils.addLinkAttributes;
202exports.loadScript = pdfjsDisplayDisplayUtils.loadScript;
203exports.PDFDateString = pdfjsDisplayDisplayUtils.PDFDateString;
204exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;
205exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;
206
207/***/ }),
208/* 1 */
209/***/ (function(module, exports, __w_pdfjs_require__) {
210
211"use strict";
212
213
214Object.defineProperty(exports, "__esModule", {
215 value: true
216});
217exports.arrayByteLength = arrayByteLength;
218exports.arraysToBytes = arraysToBytes;
219exports.assert = assert;
220exports.bytesToString = bytesToString;
221exports.createPromiseCapability = createPromiseCapability;
222exports.getVerbosityLevel = getVerbosityLevel;
223exports.info = info;
224exports.isArrayBuffer = isArrayBuffer;
225exports.isArrayEqual = isArrayEqual;
226exports.isBool = isBool;
227exports.isEmptyObj = isEmptyObj;
228exports.isNum = isNum;
229exports.isString = isString;
230exports.isSameOrigin = isSameOrigin;
231exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
232exports.removeNullCharacters = removeNullCharacters;
233exports.setVerbosityLevel = setVerbosityLevel;
234exports.shadow = shadow;
235exports.string32 = string32;
236exports.stringToBytes = stringToBytes;
237exports.stringToPDFString = stringToPDFString;
238exports.stringToUTF8String = stringToUTF8String;
239exports.utf8StringToString = utf8StringToString;
240exports.warn = warn;
241exports.unreachable = unreachable;
242exports.IsEvalSupportedCached = exports.IsLittleEndianCached = exports.createObjectURL = exports.FormatError = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = exports.BaseException = void 0;
243
244__w_pdfjs_require__(2);
245
246function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
247
248function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
249
250function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
251
252function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
253
254function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
255
256function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
257
258function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
259
260function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
261
262function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
263
264var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
265exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
266var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
267exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
268var NativeImageDecoding = {
269 NONE: "none",
270 DECODE: "decode",
271 DISPLAY: "display"
272};
273exports.NativeImageDecoding = NativeImageDecoding;
274var PermissionFlag = {
275 PRINT: 0x04,
276 MODIFY_CONTENTS: 0x08,
277 COPY: 0x10,
278 MODIFY_ANNOTATIONS: 0x20,
279 FILL_INTERACTIVE_FORMS: 0x100,
280 COPY_FOR_ACCESSIBILITY: 0x200,
281 ASSEMBLE: 0x400,
282 PRINT_HIGH_QUALITY: 0x800
283};
284exports.PermissionFlag = PermissionFlag;
285var TextRenderingMode = {
286 FILL: 0,
287 STROKE: 1,
288 FILL_STROKE: 2,
289 INVISIBLE: 3,
290 FILL_ADD_TO_PATH: 4,
291 STROKE_ADD_TO_PATH: 5,
292 FILL_STROKE_ADD_TO_PATH: 6,
293 ADD_TO_PATH: 7,
294 FILL_STROKE_MASK: 3,
295 ADD_TO_PATH_FLAG: 4
296};
297exports.TextRenderingMode = TextRenderingMode;
298var ImageKind = {
299 GRAYSCALE_1BPP: 1,
300 RGB_24BPP: 2,
301 RGBA_32BPP: 3
302};
303exports.ImageKind = ImageKind;
304var AnnotationType = {
305 TEXT: 1,
306 LINK: 2,
307 FREETEXT: 3,
308 LINE: 4,
309 SQUARE: 5,
310 CIRCLE: 6,
311 POLYGON: 7,
312 POLYLINE: 8,
313 HIGHLIGHT: 9,
314 UNDERLINE: 10,
315 SQUIGGLY: 11,
316 STRIKEOUT: 12,
317 STAMP: 13,
318 CARET: 14,
319 INK: 15,
320 POPUP: 16,
321 FILEATTACHMENT: 17,
322 SOUND: 18,
323 MOVIE: 19,
324 WIDGET: 20,
325 SCREEN: 21,
326 PRINTERMARK: 22,
327 TRAPNET: 23,
328 WATERMARK: 24,
329 THREED: 25,
330 REDACT: 26
331};
332exports.AnnotationType = AnnotationType;
333var AnnotationStateModelType = {
334 MARKED: "Marked",
335 REVIEW: "Review"
336};
337exports.AnnotationStateModelType = AnnotationStateModelType;
338var AnnotationMarkedState = {
339 MARKED: "Marked",
340 UNMARKED: "Unmarked"
341};
342exports.AnnotationMarkedState = AnnotationMarkedState;
343var AnnotationReviewState = {
344 ACCEPTED: "Accepted",
345 REJECTED: "Rejected",
346 CANCELLED: "Cancelled",
347 COMPLETED: "Completed",
348 NONE: "None"
349};
350exports.AnnotationReviewState = AnnotationReviewState;
351var AnnotationReplyType = {
352 GROUP: "Group",
353 REPLY: "R"
354};
355exports.AnnotationReplyType = AnnotationReplyType;
356var AnnotationFlag = {
357 INVISIBLE: 0x01,
358 HIDDEN: 0x02,
359 PRINT: 0x04,
360 NOZOOM: 0x08,
361 NOROTATE: 0x10,
362 NOVIEW: 0x20,
363 READONLY: 0x40,
364 LOCKED: 0x80,
365 TOGGLENOVIEW: 0x100,
366 LOCKEDCONTENTS: 0x200
367};
368exports.AnnotationFlag = AnnotationFlag;
369var AnnotationFieldFlag = {
370 READONLY: 0x0000001,
371 REQUIRED: 0x0000002,
372 NOEXPORT: 0x0000004,
373 MULTILINE: 0x0001000,
374 PASSWORD: 0x0002000,
375 NOTOGGLETOOFF: 0x0004000,
376 RADIO: 0x0008000,
377 PUSHBUTTON: 0x0010000,
378 COMBO: 0x0020000,
379 EDIT: 0x0040000,
380 SORT: 0x0080000,
381 FILESELECT: 0x0100000,
382 MULTISELECT: 0x0200000,
383 DONOTSPELLCHECK: 0x0400000,
384 DONOTSCROLL: 0x0800000,
385 COMB: 0x1000000,
386 RICHTEXT: 0x2000000,
387 RADIOSINUNISON: 0x2000000,
388 COMMITONSELCHANGE: 0x4000000
389};
390exports.AnnotationFieldFlag = AnnotationFieldFlag;
391var AnnotationBorderStyleType = {
392 SOLID: 1,
393 DASHED: 2,
394 BEVELED: 3,
395 INSET: 4,
396 UNDERLINE: 5
397};
398exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
399var StreamType = {
400 UNKNOWN: "UNKNOWN",
401 FLATE: "FLATE",
402 LZW: "LZW",
403 DCT: "DCT",
404 JPX: "JPX",
405 JBIG: "JBIG",
406 A85: "A85",
407 AHX: "AHX",
408 CCF: "CCF",
409 RLX: "RLX"
410};
411exports.StreamType = StreamType;
412var FontType = {
413 UNKNOWN: "UNKNOWN",
414 TYPE1: "TYPE1",
415 TYPE1C: "TYPE1C",
416 CIDFONTTYPE0: "CIDFONTTYPE0",
417 CIDFONTTYPE0C: "CIDFONTTYPE0C",
418 TRUETYPE: "TRUETYPE",
419 CIDFONTTYPE2: "CIDFONTTYPE2",
420 TYPE3: "TYPE3",
421 OPENTYPE: "OPENTYPE",
422 TYPE0: "TYPE0",
423 MMTYPE1: "MMTYPE1"
424};
425exports.FontType = FontType;
426var VerbosityLevel = {
427 ERRORS: 0,
428 WARNINGS: 1,
429 INFOS: 5
430};
431exports.VerbosityLevel = VerbosityLevel;
432var CMapCompressionType = {
433 NONE: 0,
434 BINARY: 1,
435 STREAM: 2
436};
437exports.CMapCompressionType = CMapCompressionType;
438var OPS = {
439 dependency: 1,
440 setLineWidth: 2,
441 setLineCap: 3,
442 setLineJoin: 4,
443 setMiterLimit: 5,
444 setDash: 6,
445 setRenderingIntent: 7,
446 setFlatness: 8,
447 setGState: 9,
448 save: 10,
449 restore: 11,
450 transform: 12,
451 moveTo: 13,
452 lineTo: 14,
453 curveTo: 15,
454 curveTo2: 16,
455 curveTo3: 17,
456 closePath: 18,
457 rectangle: 19,
458 stroke: 20,
459 closeStroke: 21,
460 fill: 22,
461 eoFill: 23,
462 fillStroke: 24,
463 eoFillStroke: 25,
464 closeFillStroke: 26,
465 closeEOFillStroke: 27,
466 endPath: 28,
467 clip: 29,
468 eoClip: 30,
469 beginText: 31,
470 endText: 32,
471 setCharSpacing: 33,
472 setWordSpacing: 34,
473 setHScale: 35,
474 setLeading: 36,
475 setFont: 37,
476 setTextRenderingMode: 38,
477 setTextRise: 39,
478 moveText: 40,
479 setLeadingMoveText: 41,
480 setTextMatrix: 42,
481 nextLine: 43,
482 showText: 44,
483 showSpacedText: 45,
484 nextLineShowText: 46,
485 nextLineSetSpacingShowText: 47,
486 setCharWidth: 48,
487 setCharWidthAndBounds: 49,
488 setStrokeColorSpace: 50,
489 setFillColorSpace: 51,
490 setStrokeColor: 52,
491 setStrokeColorN: 53,
492 setFillColor: 54,
493 setFillColorN: 55,
494 setStrokeGray: 56,
495 setFillGray: 57,
496 setStrokeRGBColor: 58,
497 setFillRGBColor: 59,
498 setStrokeCMYKColor: 60,
499 setFillCMYKColor: 61,
500 shadingFill: 62,
501 beginInlineImage: 63,
502 beginImageData: 64,
503 endInlineImage: 65,
504 paintXObject: 66,
505 markPoint: 67,
506 markPointProps: 68,
507 beginMarkedContent: 69,
508 beginMarkedContentProps: 70,
509 endMarkedContent: 71,
510 beginCompat: 72,
511 endCompat: 73,
512 paintFormXObjectBegin: 74,
513 paintFormXObjectEnd: 75,
514 beginGroup: 76,
515 endGroup: 77,
516 beginAnnotations: 78,
517 endAnnotations: 79,
518 beginAnnotation: 80,
519 endAnnotation: 81,
520 paintJpegXObject: 82,
521 paintImageMaskXObject: 83,
522 paintImageMaskXObjectGroup: 84,
523 paintImageXObject: 85,
524 paintInlineImageXObject: 86,
525 paintInlineImageXObjectGroup: 87,
526 paintImageXObjectRepeat: 88,
527 paintImageMaskXObjectRepeat: 89,
528 paintSolidColorImageMask: 90,
529 constructPath: 91
530};
531exports.OPS = OPS;
532var UNSUPPORTED_FEATURES = {
533 unknown: "unknown",
534 forms: "forms",
535 javaScript: "javaScript",
536 smask: "smask",
537 shadingPattern: "shadingPattern",
538 font: "font"
539};
540exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
541var PasswordResponses = {
542 NEED_PASSWORD: 1,
543 INCORRECT_PASSWORD: 2
544};
545exports.PasswordResponses = PasswordResponses;
546var verbosity = VerbosityLevel.WARNINGS;
547
548function setVerbosityLevel(level) {
549 if (Number.isInteger(level)) {
550 verbosity = level;
551 }
552}
553
554function getVerbosityLevel() {
555 return verbosity;
556}
557
558function info(msg) {
559 if (verbosity >= VerbosityLevel.INFOS) {
560 console.log("Info: ".concat(msg));
561 }
562}
563
564function warn(msg) {
565 if (verbosity >= VerbosityLevel.WARNINGS) {
566 console.log("Warning: ".concat(msg));
567 }
568}
569
570function unreachable(msg) {
571 throw new Error(msg);
572}
573
574function assert(cond, msg) {
575 if (!cond) {
576 unreachable(msg);
577 }
578}
579
580function isSameOrigin(baseUrl, otherUrl) {
581 var base;
582
583 try {
584 base = new URL(baseUrl);
585
586 if (!base.origin || base.origin === "null") {
587 return false;
588 }
589 } catch (e) {
590 return false;
591 }
592
593 var other = new URL(otherUrl, base);
594 return base.origin === other.origin;
595}
596
597function _isValidProtocol(url) {
598 if (!url) {
599 return false;
600 }
601
602 switch (url.protocol) {
603 case "http:":
604 case "https:":
605 case "ftp:":
606 case "mailto:":
607 case "tel:":
608 return true;
609
610 default:
611 return false;
612 }
613}
614
615function createValidAbsoluteUrl(url, baseUrl) {
616 if (!url) {
617 return null;
618 }
619
620 try {
621 var absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);
622
623 if (_isValidProtocol(absoluteUrl)) {
624 return absoluteUrl;
625 }
626 } catch (ex) {}
627
628 return null;
629}
630
631function shadow(obj, prop, value) {
632 Object.defineProperty(obj, prop, {
633 value: value,
634 enumerable: true,
635 configurable: true,
636 writable: false
637 });
638 return value;
639}
640
641var BaseException = function BaseExceptionClosure() {
642 function BaseException(message) {
643 if (this.constructor === BaseException) {
644 unreachable("Cannot initialize BaseException.");
645 }
646
647 this.message = message;
648 this.name = this.constructor.name;
649 }
650
651 BaseException.prototype = new Error();
652 BaseException.constructor = BaseException;
653 return BaseException;
654}();
655
656exports.BaseException = BaseException;
657
658var PasswordException = /*#__PURE__*/function (_BaseException) {
659 _inherits(PasswordException, _BaseException);
660
661 function PasswordException(msg, code) {
662 var _this;
663
664 _classCallCheck(this, PasswordException);
665
666 _this = _possibleConstructorReturn(this, _getPrototypeOf(PasswordException).call(this, msg));
667 _this.code = code;
668 return _this;
669 }
670
671 return PasswordException;
672}(BaseException);
673
674exports.PasswordException = PasswordException;
675
676var UnknownErrorException = /*#__PURE__*/function (_BaseException2) {
677 _inherits(UnknownErrorException, _BaseException2);
678
679 function UnknownErrorException(msg, details) {
680 var _this2;
681
682 _classCallCheck(this, UnknownErrorException);
683
684 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(UnknownErrorException).call(this, msg));
685 _this2.details = details;
686 return _this2;
687 }
688
689 return UnknownErrorException;
690}(BaseException);
691
692exports.UnknownErrorException = UnknownErrorException;
693
694var InvalidPDFException = /*#__PURE__*/function (_BaseException3) {
695 _inherits(InvalidPDFException, _BaseException3);
696
697 function InvalidPDFException() {
698 _classCallCheck(this, InvalidPDFException);
699
700 return _possibleConstructorReturn(this, _getPrototypeOf(InvalidPDFException).apply(this, arguments));
701 }
702
703 return InvalidPDFException;
704}(BaseException);
705
706exports.InvalidPDFException = InvalidPDFException;
707
708var MissingPDFException = /*#__PURE__*/function (_BaseException4) {
709 _inherits(MissingPDFException, _BaseException4);
710
711 function MissingPDFException() {
712 _classCallCheck(this, MissingPDFException);
713
714 return _possibleConstructorReturn(this, _getPrototypeOf(MissingPDFException).apply(this, arguments));
715 }
716
717 return MissingPDFException;
718}(BaseException);
719
720exports.MissingPDFException = MissingPDFException;
721
722var UnexpectedResponseException = /*#__PURE__*/function (_BaseException5) {
723 _inherits(UnexpectedResponseException, _BaseException5);
724
725 function UnexpectedResponseException(msg, status) {
726 var _this3;
727
728 _classCallCheck(this, UnexpectedResponseException);
729
730 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(UnexpectedResponseException).call(this, msg));
731 _this3.status = status;
732 return _this3;
733 }
734
735 return UnexpectedResponseException;
736}(BaseException);
737
738exports.UnexpectedResponseException = UnexpectedResponseException;
739
740var FormatError = /*#__PURE__*/function (_BaseException6) {
741 _inherits(FormatError, _BaseException6);
742
743 function FormatError() {
744 _classCallCheck(this, FormatError);
745
746 return _possibleConstructorReturn(this, _getPrototypeOf(FormatError).apply(this, arguments));
747 }
748
749 return FormatError;
750}(BaseException);
751
752exports.FormatError = FormatError;
753
754var AbortException = /*#__PURE__*/function (_BaseException7) {
755 _inherits(AbortException, _BaseException7);
756
757 function AbortException() {
758 _classCallCheck(this, AbortException);
759
760 return _possibleConstructorReturn(this, _getPrototypeOf(AbortException).apply(this, arguments));
761 }
762
763 return AbortException;
764}(BaseException);
765
766exports.AbortException = AbortException;
767var NullCharactersRegExp = /\x00/g;
768
769function removeNullCharacters(str) {
770 if (typeof str !== "string") {
771 warn("The argument for removeNullCharacters must be a string.");
772 return str;
773 }
774
775 return str.replace(NullCharactersRegExp, "");
776}
777
778function bytesToString(bytes) {
779 assert(bytes !== null && _typeof(bytes) === "object" && bytes.length !== undefined, "Invalid argument for bytesToString");
780 var length = bytes.length;
781 var MAX_ARGUMENT_COUNT = 8192;
782
783 if (length < MAX_ARGUMENT_COUNT) {
784 return String.fromCharCode.apply(null, bytes);
785 }
786
787 var strBuf = [];
788
789 for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
790 var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
791 var chunk = bytes.subarray(i, chunkEnd);
792 strBuf.push(String.fromCharCode.apply(null, chunk));
793 }
794
795 return strBuf.join("");
796}
797
798function stringToBytes(str) {
799 assert(typeof str === "string", "Invalid argument for stringToBytes");
800 var length = str.length;
801 var bytes = new Uint8Array(length);
802
803 for (var i = 0; i < length; ++i) {
804 bytes[i] = str.charCodeAt(i) & 0xff;
805 }
806
807 return bytes;
808}
809
810function arrayByteLength(arr) {
811 if (arr.length !== undefined) {
812 return arr.length;
813 }
814
815 assert(arr.byteLength !== undefined);
816 return arr.byteLength;
817}
818
819function arraysToBytes(arr) {
820 var length = arr.length;
821
822 if (length === 1 && arr[0] instanceof Uint8Array) {
823 return arr[0];
824 }
825
826 var resultLength = 0;
827
828 for (var i = 0; i < length; i++) {
829 resultLength += arrayByteLength(arr[i]);
830 }
831
832 var pos = 0;
833 var data = new Uint8Array(resultLength);
834
835 for (var _i = 0; _i < length; _i++) {
836 var item = arr[_i];
837
838 if (!(item instanceof Uint8Array)) {
839 if (typeof item === "string") {
840 item = stringToBytes(item);
841 } else {
842 item = new Uint8Array(item);
843 }
844 }
845
846 var itemLength = item.byteLength;
847 data.set(item, pos);
848 pos += itemLength;
849 }
850
851 return data;
852}
853
854function string32(value) {
855 return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
856}
857
858function isLittleEndian() {
859 var buffer8 = new Uint8Array(4);
860 buffer8[0] = 1;
861 var view32 = new Uint32Array(buffer8.buffer, 0, 1);
862 return view32[0] === 1;
863}
864
865var IsLittleEndianCached = {
866 get value() {
867 return shadow(this, "value", isLittleEndian());
868 }
869
870};
871exports.IsLittleEndianCached = IsLittleEndianCached;
872
873function isEvalSupported() {
874 try {
875 new Function("");
876 return true;
877 } catch (e) {
878 return false;
879 }
880}
881
882var IsEvalSupportedCached = {
883 get value() {
884 return shadow(this, "value", isEvalSupported());
885 }
886
887};
888exports.IsEvalSupportedCached = IsEvalSupportedCached;
889var rgbBuf = ["rgb(", 0, ",", 0, ",", 0, ")"];
890
891var Util = /*#__PURE__*/function () {
892 function Util() {
893 _classCallCheck(this, Util);
894 }
895
896 _createClass(Util, null, [{
897 key: "makeCssRgb",
898 value: function makeCssRgb(r, g, b) {
899 rgbBuf[1] = r;
900 rgbBuf[3] = g;
901 rgbBuf[5] = b;
902 return rgbBuf.join("");
903 }
904 }, {
905 key: "transform",
906 value: function transform(m1, m2) {
907 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]];
908 }
909 }, {
910 key: "applyTransform",
911 value: function applyTransform(p, m) {
912 var xt = p[0] * m[0] + p[1] * m[2] + m[4];
913 var yt = p[0] * m[1] + p[1] * m[3] + m[5];
914 return [xt, yt];
915 }
916 }, {
917 key: "applyInverseTransform",
918 value: function applyInverseTransform(p, m) {
919 var d = m[0] * m[3] - m[1] * m[2];
920 var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
921 var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
922 return [xt, yt];
923 }
924 }, {
925 key: "getAxialAlignedBoundingBox",
926 value: function getAxialAlignedBoundingBox(r, m) {
927 var p1 = Util.applyTransform(r, m);
928 var p2 = Util.applyTransform(r.slice(2, 4), m);
929 var p3 = Util.applyTransform([r[0], r[3]], m);
930 var p4 = Util.applyTransform([r[2], r[1]], m);
931 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])];
932 }
933 }, {
934 key: "inverseTransform",
935 value: function inverseTransform(m) {
936 var d = m[0] * m[3] - m[1] * m[2];
937 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];
938 }
939 }, {
940 key: "apply3dTransform",
941 value: function apply3dTransform(m, v) {
942 return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];
943 }
944 }, {
945 key: "singularValueDecompose2dScale",
946 value: function singularValueDecompose2dScale(m) {
947 var transpose = [m[0], m[2], m[1], m[3]];
948 var a = m[0] * transpose[0] + m[1] * transpose[2];
949 var b = m[0] * transpose[1] + m[1] * transpose[3];
950 var c = m[2] * transpose[0] + m[3] * transpose[2];
951 var d = m[2] * transpose[1] + m[3] * transpose[3];
952 var first = (a + d) / 2;
953 var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
954 var sx = first + second || 1;
955 var sy = first - second || 1;
956 return [Math.sqrt(sx), Math.sqrt(sy)];
957 }
958 }, {
959 key: "normalizeRect",
960 value: function normalizeRect(rect) {
961 var r = rect.slice(0);
962
963 if (rect[0] > rect[2]) {
964 r[0] = rect[2];
965 r[2] = rect[0];
966 }
967
968 if (rect[1] > rect[3]) {
969 r[1] = rect[3];
970 r[3] = rect[1];
971 }
972
973 return r;
974 }
975 }, {
976 key: "intersect",
977 value: function intersect(rect1, rect2) {
978 function compare(a, b) {
979 return a - b;
980 }
981
982 var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare);
983 var orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare);
984 var result = [];
985 rect1 = Util.normalizeRect(rect1);
986 rect2 = Util.normalizeRect(rect2);
987
988 if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {
989 result[0] = orderedX[1];
990 result[2] = orderedX[2];
991 } else {
992 return null;
993 }
994
995 if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {
996 result[1] = orderedY[1];
997 result[3] = orderedY[2];
998 } else {
999 return null;
1000 }
1001
1002 return result;
1003 }
1004 }]);
1005
1006 return Util;
1007}();
1008
1009exports.Util = Util;
1010var 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];
1011
1012function stringToPDFString(str) {
1013 var length = str.length,
1014 strBuf = [];
1015
1016 if (str[0] === "\xFE" && str[1] === "\xFF") {
1017 for (var i = 2; i < length; i += 2) {
1018 strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
1019 }
1020 } else if (str[0] === "\xFF" && str[1] === "\xFE") {
1021 for (var _i2 = 2; _i2 < length; _i2 += 2) {
1022 strBuf.push(String.fromCharCode(str.charCodeAt(_i2 + 1) << 8 | str.charCodeAt(_i2)));
1023 }
1024 } else {
1025 for (var _i3 = 0; _i3 < length; ++_i3) {
1026 var code = PDFStringTranslateTable[str.charCodeAt(_i3)];
1027 strBuf.push(code ? String.fromCharCode(code) : str.charAt(_i3));
1028 }
1029 }
1030
1031 return strBuf.join("");
1032}
1033
1034function stringToUTF8String(str) {
1035 return decodeURIComponent(escape(str));
1036}
1037
1038function utf8StringToString(str) {
1039 return unescape(encodeURIComponent(str));
1040}
1041
1042function isEmptyObj(obj) {
1043 for (var key in obj) {
1044 return false;
1045 }
1046
1047 return true;
1048}
1049
1050function isBool(v) {
1051 return typeof v === "boolean";
1052}
1053
1054function isNum(v) {
1055 return typeof v === "number";
1056}
1057
1058function isString(v) {
1059 return typeof v === "string";
1060}
1061
1062function isArrayBuffer(v) {
1063 return _typeof(v) === "object" && v !== null && v.byteLength !== undefined;
1064}
1065
1066function isArrayEqual(arr1, arr2) {
1067 if (arr1.length !== arr2.length) {
1068 return false;
1069 }
1070
1071 return arr1.every(function (element, index) {
1072 return element === arr2[index];
1073 });
1074}
1075
1076function createPromiseCapability() {
1077 var capability = Object.create(null);
1078 var isSettled = false;
1079 Object.defineProperty(capability, "settled", {
1080 get: function get() {
1081 return isSettled;
1082 }
1083 });
1084 capability.promise = new Promise(function (resolve, reject) {
1085 capability.resolve = function (data) {
1086 isSettled = true;
1087 resolve(data);
1088 };
1089
1090 capability.reject = function (reason) {
1091 isSettled = true;
1092 reject(reason);
1093 };
1094 });
1095 return capability;
1096}
1097
1098var createObjectURL = function createObjectURLClosure() {
1099 var digits = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
1100 return function createObjectURL(data, contentType) {
1101 var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1102
1103 if (!forceDataSchema && URL.createObjectURL) {
1104 var blob = new Blob([data], {
1105 type: contentType
1106 });
1107 return URL.createObjectURL(blob);
1108 }
1109
1110 var buffer = "data:".concat(contentType, ";base64,");
1111
1112 for (var i = 0, ii = data.length; i < ii; i += 3) {
1113 var b1 = data[i] & 0xff;
1114 var b2 = data[i + 1] & 0xff;
1115 var b3 = data[i + 2] & 0xff;
1116 var d1 = b1 >> 2,
1117 d2 = (b1 & 3) << 4 | b2 >> 4;
1118 var d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;
1119 var d4 = i + 2 < ii ? b3 & 0x3f : 64;
1120 buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
1121 }
1122
1123 return buffer;
1124 };
1125}();
1126
1127exports.createObjectURL = createObjectURL;
1128
1129/***/ }),
1130/* 2 */
1131/***/ (function(module, exports, __w_pdfjs_require__) {
1132
1133"use strict";
1134
1135
1136function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1137
1138if (typeof globalThis === "undefined" || !globalThis._pdfjsCompatibilityChecked) {
1139 if (typeof globalThis === "undefined" || globalThis.Math !== Math) {
1140 globalThis = __w_pdfjs_require__(3);
1141 }
1142
1143 globalThis._pdfjsCompatibilityChecked = true;
1144
1145 var _require = __w_pdfjs_require__(48),
1146 isNodeJS = _require.isNodeJS;
1147
1148 var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === "object" && (typeof document === "undefined" ? "undefined" : _typeof(document)) === "object";
1149 var userAgent = typeof navigator !== "undefined" && navigator.userAgent || "";
1150 var isIE = /Trident/.test(userAgent);
1151
1152 (function checkNodeBtoa() {
1153 if (globalThis.btoa || !isNodeJS) {
1154 return;
1155 }
1156
1157 globalThis.btoa = function (chars) {
1158 return Buffer.from(chars, "binary").toString("base64");
1159 };
1160 })();
1161
1162 (function checkNodeAtob() {
1163 if (globalThis.atob || !isNodeJS) {
1164 return;
1165 }
1166
1167 globalThis.atob = function (input) {
1168 return Buffer.from(input, "base64").toString("binary");
1169 };
1170 })();
1171
1172 (function checkChildNodeRemove() {
1173 if (!hasDOM) {
1174 return;
1175 }
1176
1177 if (typeof Element.prototype.remove !== "undefined") {
1178 return;
1179 }
1180
1181 Element.prototype.remove = function () {
1182 if (this.parentNode) {
1183 this.parentNode.removeChild(this);
1184 }
1185 };
1186 })();
1187
1188 (function checkDOMTokenListAddRemove() {
1189 if (!hasDOM || isNodeJS) {
1190 return;
1191 }
1192
1193 var div = document.createElement("div");
1194 div.classList.add("testOne", "testTwo");
1195
1196 if (div.classList.contains("testOne") === true && div.classList.contains("testTwo") === true) {
1197 return;
1198 }
1199
1200 var OriginalDOMTokenListAdd = DOMTokenList.prototype.add;
1201 var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;
1202
1203 DOMTokenList.prototype.add = function () {
1204 for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {
1205 tokens[_key] = arguments[_key];
1206 }
1207
1208 for (var _i = 0, _tokens = tokens; _i < _tokens.length; _i++) {
1209 var token = _tokens[_i];
1210 OriginalDOMTokenListAdd.call(this, token);
1211 }
1212 };
1213
1214 DOMTokenList.prototype.remove = function () {
1215 for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1216 tokens[_key2] = arguments[_key2];
1217 }
1218
1219 for (var _i2 = 0, _tokens2 = tokens; _i2 < _tokens2.length; _i2++) {
1220 var token = _tokens2[_i2];
1221 OriginalDOMTokenListRemove.call(this, token);
1222 }
1223 };
1224 })();
1225
1226 (function checkDOMTokenListToggle() {
1227 if (!hasDOM || isNodeJS) {
1228 return;
1229 }
1230
1231 var div = document.createElement("div");
1232
1233 if (div.classList.toggle("test", 0) === false) {
1234 return;
1235 }
1236
1237 DOMTokenList.prototype.toggle = function (token) {
1238 var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token);
1239 return this[force ? "add" : "remove"](token), force;
1240 };
1241 })();
1242
1243 (function checkWindowHistoryPushStateReplaceState() {
1244 if (!hasDOM || !isIE) {
1245 return;
1246 }
1247
1248 var OriginalPushState = window.history.pushState;
1249 var OriginalReplaceState = window.history.replaceState;
1250
1251 window.history.pushState = function (state, title, url) {
1252 var args = url === undefined ? [state, title] : [state, title, url];
1253 OriginalPushState.apply(this, args);
1254 };
1255
1256 window.history.replaceState = function (state, title, url) {
1257 var args = url === undefined ? [state, title] : [state, title, url];
1258 OriginalReplaceState.apply(this, args);
1259 };
1260 })();
1261
1262 (function checkStringStartsWith() {
1263 if (String.prototype.startsWith) {
1264 return;
1265 }
1266
1267 __w_pdfjs_require__(49);
1268 })();
1269
1270 (function checkStringEndsWith() {
1271 if (String.prototype.endsWith) {
1272 return;
1273 }
1274
1275 __w_pdfjs_require__(60);
1276 })();
1277
1278 (function checkStringIncludes() {
1279 if (String.prototype.includes) {
1280 return;
1281 }
1282
1283 __w_pdfjs_require__(62);
1284 })();
1285
1286 (function checkArrayIncludes() {
1287 if (Array.prototype.includes) {
1288 return;
1289 }
1290
1291 __w_pdfjs_require__(64);
1292 })();
1293
1294 (function checkArrayFrom() {
1295 if (Array.from) {
1296 return;
1297 }
1298
1299 __w_pdfjs_require__(72);
1300 })();
1301
1302 (function checkObjectAssign() {
1303 if (Object.assign) {
1304 return;
1305 }
1306
1307 __w_pdfjs_require__(94);
1308 })();
1309
1310 (function checkMathLog2() {
1311 if (Math.log2) {
1312 return;
1313 }
1314
1315 Math.log2 = __w_pdfjs_require__(97);
1316 })();
1317
1318 (function checkNumberIsNaN() {
1319 if (Number.isNaN) {
1320 return;
1321 }
1322
1323 Number.isNaN = __w_pdfjs_require__(99);
1324 })();
1325
1326 (function checkNumberIsInteger() {
1327 if (Number.isInteger) {
1328 return;
1329 }
1330
1331 Number.isInteger = __w_pdfjs_require__(101);
1332 })();
1333
1334 (function checkPromise() {
1335 if (globalThis.Promise && globalThis.Promise.allSettled) {
1336 return;
1337 }
1338
1339 globalThis.Promise = __w_pdfjs_require__(104);
1340 })();
1341
1342 (function checkURL() {
1343 globalThis.URL = __w_pdfjs_require__(128);
1344 })();
1345
1346 (function checkReadableStream() {
1347 var isReadableStreamSupported = false;
1348
1349 if (typeof ReadableStream !== "undefined") {
1350 try {
1351 new ReadableStream({
1352 start: function start(controller) {
1353 controller.close();
1354 }
1355 });
1356 isReadableStreamSupported = true;
1357 } catch (e) {}
1358 }
1359
1360 if (isReadableStreamSupported) {
1361 return;
1362 }
1363
1364 globalThis.ReadableStream = __w_pdfjs_require__(135).ReadableStream;
1365 })();
1366
1367 (function checkMapEntries() {
1368 if (globalThis.Map && globalThis.Map.prototype.entries) {
1369 return;
1370 }
1371
1372 globalThis.Map = __w_pdfjs_require__(136);
1373 })();
1374
1375 (function checkSetEntries() {
1376 if (globalThis.Set && globalThis.Set.prototype.entries) {
1377 return;
1378 }
1379
1380 globalThis.Set = __w_pdfjs_require__(143);
1381 })();
1382
1383 (function checkWeakMap() {
1384 if (globalThis.WeakMap) {
1385 return;
1386 }
1387
1388 globalThis.WeakMap = __w_pdfjs_require__(145);
1389 })();
1390
1391 (function checkWeakSet() {
1392 if (globalThis.WeakSet) {
1393 return;
1394 }
1395
1396 globalThis.WeakSet = __w_pdfjs_require__(151);
1397 })();
1398
1399 (function checkStringCodePointAt() {
1400 if (String.prototype.codePointAt) {
1401 return;
1402 }
1403
1404 __w_pdfjs_require__(153);
1405 })();
1406
1407 (function checkStringFromCodePoint() {
1408 if (String.fromCodePoint) {
1409 return;
1410 }
1411
1412 String.fromCodePoint = __w_pdfjs_require__(155);
1413 })();
1414
1415 (function checkSymbol() {
1416 if (globalThis.Symbol) {
1417 return;
1418 }
1419
1420 __w_pdfjs_require__(157);
1421 })();
1422
1423 (function checkStringPadStart() {
1424 if (String.prototype.padStart) {
1425 return;
1426 }
1427
1428 __w_pdfjs_require__(180);
1429 })();
1430
1431 (function checkStringPadEnd() {
1432 if (String.prototype.padEnd) {
1433 return;
1434 }
1435
1436 __w_pdfjs_require__(185);
1437 })();
1438
1439 (function checkObjectValues() {
1440 if (Object.values) {
1441 return;
1442 }
1443
1444 Object.values = __w_pdfjs_require__(187);
1445 })();
1446}
1447
1448/***/ }),
1449/* 3 */
1450/***/ (function(module, exports, __w_pdfjs_require__) {
1451
1452__w_pdfjs_require__(4);
1453module.exports = __w_pdfjs_require__(6);
1454
1455/***/ }),
1456/* 4 */
1457/***/ (function(module, exports, __w_pdfjs_require__) {
1458
1459var $ = __w_pdfjs_require__(5);
1460var global = __w_pdfjs_require__(6);
1461$({ global: true }, { globalThis: global });
1462
1463/***/ }),
1464/* 5 */
1465/***/ (function(module, exports, __w_pdfjs_require__) {
1466
1467var global = __w_pdfjs_require__(6);
1468var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f;
1469var createNonEnumerableProperty = __w_pdfjs_require__(21);
1470var redefine = __w_pdfjs_require__(24);
1471var setGlobal = __w_pdfjs_require__(25);
1472var copyConstructorProperties = __w_pdfjs_require__(35);
1473var isForced = __w_pdfjs_require__(47);
1474module.exports = function (options, source) {
1475 var TARGET = options.target;
1476 var GLOBAL = options.global;
1477 var STATIC = options.stat;
1478 var FORCED, target, key, targetProperty, sourceProperty, descriptor;
1479 if (GLOBAL) {
1480 target = global;
1481 } else if (STATIC) {
1482 target = global[TARGET] || setGlobal(TARGET, {});
1483 } else {
1484 target = (global[TARGET] || {}).prototype;
1485 }
1486 if (target)
1487 for (key in source) {
1488 sourceProperty = source[key];
1489 if (options.noTargetGet) {
1490 descriptor = getOwnPropertyDescriptor(target, key);
1491 targetProperty = descriptor && descriptor.value;
1492 } else
1493 targetProperty = target[key];
1494 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);
1495 if (!FORCED && targetProperty !== undefined) {
1496 if (typeof sourceProperty === typeof targetProperty)
1497 continue;
1498 copyConstructorProperties(sourceProperty, targetProperty);
1499 }
1500 if (options.sham || targetProperty && targetProperty.sham) {
1501 createNonEnumerableProperty(sourceProperty, 'sham', true);
1502 }
1503 redefine(target, key, sourceProperty, options);
1504 }
1505};
1506
1507/***/ }),
1508/* 6 */
1509/***/ (function(module, exports) {
1510
1511var check = function (it) {
1512 return it && it.Math == Math && it;
1513};
1514module.exports = check(typeof globalThis == 'object' && globalThis) || check(typeof window == 'object' && window) || check(typeof self == 'object' && self) || check(typeof global == 'object' && global) || Function('return this')();
1515
1516/***/ }),
1517/* 7 */
1518/***/ (function(module, exports, __w_pdfjs_require__) {
1519
1520var DESCRIPTORS = __w_pdfjs_require__(8);
1521var propertyIsEnumerableModule = __w_pdfjs_require__(10);
1522var createPropertyDescriptor = __w_pdfjs_require__(11);
1523var toIndexedObject = __w_pdfjs_require__(12);
1524var toPrimitive = __w_pdfjs_require__(16);
1525var has = __w_pdfjs_require__(18);
1526var IE8_DOM_DEFINE = __w_pdfjs_require__(19);
1527var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
1528exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {
1529 O = toIndexedObject(O);
1530 P = toPrimitive(P, true);
1531 if (IE8_DOM_DEFINE)
1532 try {
1533 return nativeGetOwnPropertyDescriptor(O, P);
1534 } catch (error) {
1535 }
1536 if (has(O, P))
1537 return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);
1538};
1539
1540/***/ }),
1541/* 8 */
1542/***/ (function(module, exports, __w_pdfjs_require__) {
1543
1544var fails = __w_pdfjs_require__(9);
1545module.exports = !fails(function () {
1546 return Object.defineProperty({}, 1, {
1547 get: function () {
1548 return 7;
1549 }
1550 })[1] != 7;
1551});
1552
1553/***/ }),
1554/* 9 */
1555/***/ (function(module, exports) {
1556
1557module.exports = function (exec) {
1558 try {
1559 return !!exec();
1560 } catch (error) {
1561 return true;
1562 }
1563};
1564
1565/***/ }),
1566/* 10 */
1567/***/ (function(module, exports, __w_pdfjs_require__) {
1568
1569"use strict";
1570
1571var nativePropertyIsEnumerable = {}.propertyIsEnumerable;
1572var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;
1573var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);
1574exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {
1575 var descriptor = getOwnPropertyDescriptor(this, V);
1576 return !!descriptor && descriptor.enumerable;
1577} : nativePropertyIsEnumerable;
1578
1579/***/ }),
1580/* 11 */
1581/***/ (function(module, exports) {
1582
1583module.exports = function (bitmap, value) {
1584 return {
1585 enumerable: !(bitmap & 1),
1586 configurable: !(bitmap & 2),
1587 writable: !(bitmap & 4),
1588 value: value
1589 };
1590};
1591
1592/***/ }),
1593/* 12 */
1594/***/ (function(module, exports, __w_pdfjs_require__) {
1595
1596var IndexedObject = __w_pdfjs_require__(13);
1597var requireObjectCoercible = __w_pdfjs_require__(15);
1598module.exports = function (it) {
1599 return IndexedObject(requireObjectCoercible(it));
1600};
1601
1602/***/ }),
1603/* 13 */
1604/***/ (function(module, exports, __w_pdfjs_require__) {
1605
1606var fails = __w_pdfjs_require__(9);
1607var classof = __w_pdfjs_require__(14);
1608var split = ''.split;
1609module.exports = fails(function () {
1610 return !Object('z').propertyIsEnumerable(0);
1611}) ? function (it) {
1612 return classof(it) == 'String' ? split.call(it, '') : Object(it);
1613} : Object;
1614
1615/***/ }),
1616/* 14 */
1617/***/ (function(module, exports) {
1618
1619var toString = {}.toString;
1620module.exports = function (it) {
1621 return toString.call(it).slice(8, -1);
1622};
1623
1624/***/ }),
1625/* 15 */
1626/***/ (function(module, exports) {
1627
1628module.exports = function (it) {
1629 if (it == undefined)
1630 throw TypeError("Can't call method on " + it);
1631 return it;
1632};
1633
1634/***/ }),
1635/* 16 */
1636/***/ (function(module, exports, __w_pdfjs_require__) {
1637
1638var isObject = __w_pdfjs_require__(17);
1639module.exports = function (input, PREFERRED_STRING) {
1640 if (!isObject(input))
1641 return input;
1642 var fn, val;
1643 if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input)))
1644 return val;
1645 if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input)))
1646 return val;
1647 if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input)))
1648 return val;
1649 throw TypeError("Can't convert object to primitive value");
1650};
1651
1652/***/ }),
1653/* 17 */
1654/***/ (function(module, exports) {
1655
1656module.exports = function (it) {
1657 return typeof it === 'object' ? it !== null : typeof it === 'function';
1658};
1659
1660/***/ }),
1661/* 18 */
1662/***/ (function(module, exports) {
1663
1664var hasOwnProperty = {}.hasOwnProperty;
1665module.exports = function (it, key) {
1666 return hasOwnProperty.call(it, key);
1667};
1668
1669/***/ }),
1670/* 19 */
1671/***/ (function(module, exports, __w_pdfjs_require__) {
1672
1673var DESCRIPTORS = __w_pdfjs_require__(8);
1674var fails = __w_pdfjs_require__(9);
1675var createElement = __w_pdfjs_require__(20);
1676module.exports = !DESCRIPTORS && !fails(function () {
1677 return Object.defineProperty(createElement('div'), 'a', {
1678 get: function () {
1679 return 7;
1680 }
1681 }).a != 7;
1682});
1683
1684/***/ }),
1685/* 20 */
1686/***/ (function(module, exports, __w_pdfjs_require__) {
1687
1688var global = __w_pdfjs_require__(6);
1689var isObject = __w_pdfjs_require__(17);
1690var document = global.document;
1691var EXISTS = isObject(document) && isObject(document.createElement);
1692module.exports = function (it) {
1693 return EXISTS ? document.createElement(it) : {};
1694};
1695
1696/***/ }),
1697/* 21 */
1698/***/ (function(module, exports, __w_pdfjs_require__) {
1699
1700var DESCRIPTORS = __w_pdfjs_require__(8);
1701var definePropertyModule = __w_pdfjs_require__(22);
1702var createPropertyDescriptor = __w_pdfjs_require__(11);
1703module.exports = DESCRIPTORS ? function (object, key, value) {
1704 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));
1705} : function (object, key, value) {
1706 object[key] = value;
1707 return object;
1708};
1709
1710/***/ }),
1711/* 22 */
1712/***/ (function(module, exports, __w_pdfjs_require__) {
1713
1714var DESCRIPTORS = __w_pdfjs_require__(8);
1715var IE8_DOM_DEFINE = __w_pdfjs_require__(19);
1716var anObject = __w_pdfjs_require__(23);
1717var toPrimitive = __w_pdfjs_require__(16);
1718var nativeDefineProperty = Object.defineProperty;
1719exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {
1720 anObject(O);
1721 P = toPrimitive(P, true);
1722 anObject(Attributes);
1723 if (IE8_DOM_DEFINE)
1724 try {
1725 return nativeDefineProperty(O, P, Attributes);
1726 } catch (error) {
1727 }
1728 if ('get' in Attributes || 'set' in Attributes)
1729 throw TypeError('Accessors not supported');
1730 if ('value' in Attributes)
1731 O[P] = Attributes.value;
1732 return O;
1733};
1734
1735/***/ }),
1736/* 23 */
1737/***/ (function(module, exports, __w_pdfjs_require__) {
1738
1739var isObject = __w_pdfjs_require__(17);
1740module.exports = function (it) {
1741 if (!isObject(it)) {
1742 throw TypeError(String(it) + ' is not an object');
1743 }
1744 return it;
1745};
1746
1747/***/ }),
1748/* 24 */
1749/***/ (function(module, exports, __w_pdfjs_require__) {
1750
1751var global = __w_pdfjs_require__(6);
1752var createNonEnumerableProperty = __w_pdfjs_require__(21);
1753var has = __w_pdfjs_require__(18);
1754var setGlobal = __w_pdfjs_require__(25);
1755var inspectSource = __w_pdfjs_require__(26);
1756var InternalStateModule = __w_pdfjs_require__(28);
1757var getInternalState = InternalStateModule.get;
1758var enforceInternalState = InternalStateModule.enforce;
1759var TEMPLATE = String(String).split('String');
1760(module.exports = function (O, key, value, options) {
1761 var unsafe = options ? !!options.unsafe : false;
1762 var simple = options ? !!options.enumerable : false;
1763 var noTargetGet = options ? !!options.noTargetGet : false;
1764 if (typeof value == 'function') {
1765 if (typeof key == 'string' && !has(value, 'name'))
1766 createNonEnumerableProperty(value, 'name', key);
1767 enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');
1768 }
1769 if (O === global) {
1770 if (simple)
1771 O[key] = value;
1772 else
1773 setGlobal(key, value);
1774 return;
1775 } else if (!unsafe) {
1776 delete O[key];
1777 } else if (!noTargetGet && O[key]) {
1778 simple = true;
1779 }
1780 if (simple)
1781 O[key] = value;
1782 else
1783 createNonEnumerableProperty(O, key, value);
1784})(Function.prototype, 'toString', function toString() {
1785 return typeof this == 'function' && getInternalState(this).source || inspectSource(this);
1786});
1787
1788/***/ }),
1789/* 25 */
1790/***/ (function(module, exports, __w_pdfjs_require__) {
1791
1792var global = __w_pdfjs_require__(6);
1793var createNonEnumerableProperty = __w_pdfjs_require__(21);
1794module.exports = function (key, value) {
1795 try {
1796 createNonEnumerableProperty(global, key, value);
1797 } catch (error) {
1798 global[key] = value;
1799 }
1800 return value;
1801};
1802
1803/***/ }),
1804/* 26 */
1805/***/ (function(module, exports, __w_pdfjs_require__) {
1806
1807var store = __w_pdfjs_require__(27);
1808var functionToString = Function.toString;
1809if (typeof store.inspectSource != 'function') {
1810 store.inspectSource = function (it) {
1811 return functionToString.call(it);
1812 };
1813}
1814module.exports = store.inspectSource;
1815
1816/***/ }),
1817/* 27 */
1818/***/ (function(module, exports, __w_pdfjs_require__) {
1819
1820var global = __w_pdfjs_require__(6);
1821var setGlobal = __w_pdfjs_require__(25);
1822var SHARED = '__core-js_shared__';
1823var store = global[SHARED] || setGlobal(SHARED, {});
1824module.exports = store;
1825
1826/***/ }),
1827/* 28 */
1828/***/ (function(module, exports, __w_pdfjs_require__) {
1829
1830var NATIVE_WEAK_MAP = __w_pdfjs_require__(29);
1831var global = __w_pdfjs_require__(6);
1832var isObject = __w_pdfjs_require__(17);
1833var createNonEnumerableProperty = __w_pdfjs_require__(21);
1834var objectHas = __w_pdfjs_require__(18);
1835var sharedKey = __w_pdfjs_require__(30);
1836var hiddenKeys = __w_pdfjs_require__(34);
1837var WeakMap = global.WeakMap;
1838var set, get, has;
1839var enforce = function (it) {
1840 return has(it) ? get(it) : set(it, {});
1841};
1842var getterFor = function (TYPE) {
1843 return function (it) {
1844 var state;
1845 if (!isObject(it) || (state = get(it)).type !== TYPE) {
1846 throw TypeError('Incompatible receiver, ' + TYPE + ' required');
1847 }
1848 return state;
1849 };
1850};
1851if (NATIVE_WEAK_MAP) {
1852 var store = new WeakMap();
1853 var wmget = store.get;
1854 var wmhas = store.has;
1855 var wmset = store.set;
1856 set = function (it, metadata) {
1857 wmset.call(store, it, metadata);
1858 return metadata;
1859 };
1860 get = function (it) {
1861 return wmget.call(store, it) || {};
1862 };
1863 has = function (it) {
1864 return wmhas.call(store, it);
1865 };
1866} else {
1867 var STATE = sharedKey('state');
1868 hiddenKeys[STATE] = true;
1869 set = function (it, metadata) {
1870 createNonEnumerableProperty(it, STATE, metadata);
1871 return metadata;
1872 };
1873 get = function (it) {
1874 return objectHas(it, STATE) ? it[STATE] : {};
1875 };
1876 has = function (it) {
1877 return objectHas(it, STATE);
1878 };
1879}
1880module.exports = {
1881 set: set,
1882 get: get,
1883 has: has,
1884 enforce: enforce,
1885 getterFor: getterFor
1886};
1887
1888/***/ }),
1889/* 29 */
1890/***/ (function(module, exports, __w_pdfjs_require__) {
1891
1892var global = __w_pdfjs_require__(6);
1893var inspectSource = __w_pdfjs_require__(26);
1894var WeakMap = global.WeakMap;
1895module.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));
1896
1897/***/ }),
1898/* 30 */
1899/***/ (function(module, exports, __w_pdfjs_require__) {
1900
1901var shared = __w_pdfjs_require__(31);
1902var uid = __w_pdfjs_require__(33);
1903var keys = shared('keys');
1904module.exports = function (key) {
1905 return keys[key] || (keys[key] = uid(key));
1906};
1907
1908/***/ }),
1909/* 31 */
1910/***/ (function(module, exports, __w_pdfjs_require__) {
1911
1912var IS_PURE = __w_pdfjs_require__(32);
1913var store = __w_pdfjs_require__(27);
1914(module.exports = function (key, value) {
1915 return store[key] || (store[key] = value !== undefined ? value : {});
1916})('versions', []).push({
1917 version: '3.6.4',
1918 mode: IS_PURE ? 'pure' : 'global',
1919 copyright: '© 2020 Denis Pushkarev (zloirock.ru)'
1920});
1921
1922/***/ }),
1923/* 32 */
1924/***/ (function(module, exports) {
1925
1926module.exports = false;
1927
1928/***/ }),
1929/* 33 */
1930/***/ (function(module, exports) {
1931
1932var id = 0;
1933var postfix = Math.random();
1934module.exports = function (key) {
1935 return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);
1936};
1937
1938/***/ }),
1939/* 34 */
1940/***/ (function(module, exports) {
1941
1942module.exports = {};
1943
1944/***/ }),
1945/* 35 */
1946/***/ (function(module, exports, __w_pdfjs_require__) {
1947
1948var has = __w_pdfjs_require__(18);
1949var ownKeys = __w_pdfjs_require__(36);
1950var getOwnPropertyDescriptorModule = __w_pdfjs_require__(7);
1951var definePropertyModule = __w_pdfjs_require__(22);
1952module.exports = function (target, source) {
1953 var keys = ownKeys(source);
1954 var defineProperty = definePropertyModule.f;
1955 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
1956 for (var i = 0; i < keys.length; i++) {
1957 var key = keys[i];
1958 if (!has(target, key))
1959 defineProperty(target, key, getOwnPropertyDescriptor(source, key));
1960 }
1961};
1962
1963/***/ }),
1964/* 36 */
1965/***/ (function(module, exports, __w_pdfjs_require__) {
1966
1967var getBuiltIn = __w_pdfjs_require__(37);
1968var getOwnPropertyNamesModule = __w_pdfjs_require__(39);
1969var getOwnPropertySymbolsModule = __w_pdfjs_require__(46);
1970var anObject = __w_pdfjs_require__(23);
1971module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {
1972 var keys = getOwnPropertyNamesModule.f(anObject(it));
1973 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
1974 return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;
1975};
1976
1977/***/ }),
1978/* 37 */
1979/***/ (function(module, exports, __w_pdfjs_require__) {
1980
1981var path = __w_pdfjs_require__(38);
1982var global = __w_pdfjs_require__(6);
1983var aFunction = function (variable) {
1984 return typeof variable == 'function' ? variable : undefined;
1985};
1986module.exports = function (namespace, method) {
1987 return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];
1988};
1989
1990/***/ }),
1991/* 38 */
1992/***/ (function(module, exports, __w_pdfjs_require__) {
1993
1994var global = __w_pdfjs_require__(6);
1995module.exports = global;
1996
1997/***/ }),
1998/* 39 */
1999/***/ (function(module, exports, __w_pdfjs_require__) {
2000
2001var internalObjectKeys = __w_pdfjs_require__(40);
2002var enumBugKeys = __w_pdfjs_require__(45);
2003var hiddenKeys = enumBugKeys.concat('length', 'prototype');
2004exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
2005 return internalObjectKeys(O, hiddenKeys);
2006};
2007
2008/***/ }),
2009/* 40 */
2010/***/ (function(module, exports, __w_pdfjs_require__) {
2011
2012var has = __w_pdfjs_require__(18);
2013var toIndexedObject = __w_pdfjs_require__(12);
2014var indexOf = __w_pdfjs_require__(41).indexOf;
2015var hiddenKeys = __w_pdfjs_require__(34);
2016module.exports = function (object, names) {
2017 var O = toIndexedObject(object);
2018 var i = 0;
2019 var result = [];
2020 var key;
2021 for (key in O)
2022 !has(hiddenKeys, key) && has(O, key) && result.push(key);
2023 while (names.length > i)
2024 if (has(O, key = names[i++])) {
2025 ~indexOf(result, key) || result.push(key);
2026 }
2027 return result;
2028};
2029
2030/***/ }),
2031/* 41 */
2032/***/ (function(module, exports, __w_pdfjs_require__) {
2033
2034var toIndexedObject = __w_pdfjs_require__(12);
2035var toLength = __w_pdfjs_require__(42);
2036var toAbsoluteIndex = __w_pdfjs_require__(44);
2037var createMethod = function (IS_INCLUDES) {
2038 return function ($this, el, fromIndex) {
2039 var O = toIndexedObject($this);
2040 var length = toLength(O.length);
2041 var index = toAbsoluteIndex(fromIndex, length);
2042 var value;
2043 if (IS_INCLUDES && el != el)
2044 while (length > index) {
2045 value = O[index++];
2046 if (value != value)
2047 return true;
2048 }
2049 else
2050 for (; length > index; index++) {
2051 if ((IS_INCLUDES || index in O) && O[index] === el)
2052 return IS_INCLUDES || index || 0;
2053 }
2054 return !IS_INCLUDES && -1;
2055 };
2056};
2057module.exports = {
2058 includes: createMethod(true),
2059 indexOf: createMethod(false)
2060};
2061
2062/***/ }),
2063/* 42 */
2064/***/ (function(module, exports, __w_pdfjs_require__) {
2065
2066var toInteger = __w_pdfjs_require__(43);
2067var min = Math.min;
2068module.exports = function (argument) {
2069 return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0;
2070};
2071
2072/***/ }),
2073/* 43 */
2074/***/ (function(module, exports) {
2075
2076var ceil = Math.ceil;
2077var floor = Math.floor;
2078module.exports = function (argument) {
2079 return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);
2080};
2081
2082/***/ }),
2083/* 44 */
2084/***/ (function(module, exports, __w_pdfjs_require__) {
2085
2086var toInteger = __w_pdfjs_require__(43);
2087var max = Math.max;
2088var min = Math.min;
2089module.exports = function (index, length) {
2090 var integer = toInteger(index);
2091 return integer < 0 ? max(integer + length, 0) : min(integer, length);
2092};
2093
2094/***/ }),
2095/* 45 */
2096/***/ (function(module, exports) {
2097
2098module.exports = [
2099 'constructor',
2100 'hasOwnProperty',
2101 'isPrototypeOf',
2102 'propertyIsEnumerable',
2103 'toLocaleString',
2104 'toString',
2105 'valueOf'
2106];
2107
2108/***/ }),
2109/* 46 */
2110/***/ (function(module, exports) {
2111
2112exports.f = Object.getOwnPropertySymbols;
2113
2114/***/ }),
2115/* 47 */
2116/***/ (function(module, exports, __w_pdfjs_require__) {
2117
2118var fails = __w_pdfjs_require__(9);
2119var replacement = /#|\.prototype\./;
2120var isForced = function (feature, detection) {
2121 var value = data[normalize(feature)];
2122 return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection;
2123};
2124var normalize = isForced.normalize = function (string) {
2125 return String(string).replace(replacement, '.').toLowerCase();
2126};
2127var data = isForced.data = {};
2128var NATIVE = isForced.NATIVE = 'N';
2129var POLYFILL = isForced.POLYFILL = 'P';
2130module.exports = isForced;
2131
2132/***/ }),
2133/* 48 */
2134/***/ (function(module, exports, __w_pdfjs_require__) {
2135
2136"use strict";
2137
2138
2139Object.defineProperty(exports, "__esModule", {
2140 value: true
2141});
2142exports.isNodeJS = void 0;
2143
2144function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
2145
2146var isNodeJS = (typeof process === "undefined" ? "undefined" : _typeof(process)) === "object" && process + "" === "[object process]" && !process.versions["nw"] && !process.versions["electron"];
2147exports.isNodeJS = isNodeJS;
2148
2149/***/ }),
2150/* 49 */
2151/***/ (function(module, exports, __w_pdfjs_require__) {
2152
2153__w_pdfjs_require__(50);
2154var entryUnbind = __w_pdfjs_require__(57);
2155module.exports = entryUnbind('String', 'startsWith');
2156
2157/***/ }),
2158/* 50 */
2159/***/ (function(module, exports, __w_pdfjs_require__) {
2160
2161"use strict";
2162
2163var $ = __w_pdfjs_require__(5);
2164var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f;
2165var toLength = __w_pdfjs_require__(42);
2166var notARegExp = __w_pdfjs_require__(51);
2167var requireObjectCoercible = __w_pdfjs_require__(15);
2168var correctIsRegExpLogic = __w_pdfjs_require__(56);
2169var IS_PURE = __w_pdfjs_require__(32);
2170var nativeStartsWith = ''.startsWith;
2171var min = Math.min;
2172var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');
2173var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
2174 var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');
2175 return descriptor && !descriptor.writable;
2176}();
2177$({
2178 target: 'String',
2179 proto: true,
2180 forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC
2181}, {
2182 startsWith: function startsWith(searchString) {
2183 var that = String(requireObjectCoercible(this));
2184 notARegExp(searchString);
2185 var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));
2186 var search = String(searchString);
2187 return nativeStartsWith ? nativeStartsWith.call(that, search, index) : that.slice(index, index + search.length) === search;
2188 }
2189});
2190
2191/***/ }),
2192/* 51 */
2193/***/ (function(module, exports, __w_pdfjs_require__) {
2194
2195var isRegExp = __w_pdfjs_require__(52);
2196module.exports = function (it) {
2197 if (isRegExp(it)) {
2198 throw TypeError("The method doesn't accept regular expressions");
2199 }
2200 return it;
2201};
2202
2203/***/ }),
2204/* 52 */
2205/***/ (function(module, exports, __w_pdfjs_require__) {
2206
2207var isObject = __w_pdfjs_require__(17);
2208var classof = __w_pdfjs_require__(14);
2209var wellKnownSymbol = __w_pdfjs_require__(53);
2210var MATCH = wellKnownSymbol('match');
2211module.exports = function (it) {
2212 var isRegExp;
2213 return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');
2214};
2215
2216/***/ }),
2217/* 53 */
2218/***/ (function(module, exports, __w_pdfjs_require__) {
2219
2220var global = __w_pdfjs_require__(6);
2221var shared = __w_pdfjs_require__(31);
2222var has = __w_pdfjs_require__(18);
2223var uid = __w_pdfjs_require__(33);
2224var NATIVE_SYMBOL = __w_pdfjs_require__(54);
2225var USE_SYMBOL_AS_UID = __w_pdfjs_require__(55);
2226var WellKnownSymbolsStore = shared('wks');
2227var Symbol = global.Symbol;
2228var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;
2229module.exports = function (name) {
2230 if (!has(WellKnownSymbolsStore, name)) {
2231 if (NATIVE_SYMBOL && has(Symbol, name))
2232 WellKnownSymbolsStore[name] = Symbol[name];
2233 else
2234 WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);
2235 }
2236 return WellKnownSymbolsStore[name];
2237};
2238
2239/***/ }),
2240/* 54 */
2241/***/ (function(module, exports, __w_pdfjs_require__) {
2242
2243var fails = __w_pdfjs_require__(9);
2244module.exports = !!Object.getOwnPropertySymbols && !fails(function () {
2245 return !String(Symbol());
2246});
2247
2248/***/ }),
2249/* 55 */
2250/***/ (function(module, exports, __w_pdfjs_require__) {
2251
2252var NATIVE_SYMBOL = __w_pdfjs_require__(54);
2253module.exports = NATIVE_SYMBOL && !Symbol.sham && typeof Symbol.iterator == 'symbol';
2254
2255/***/ }),
2256/* 56 */
2257/***/ (function(module, exports, __w_pdfjs_require__) {
2258
2259var wellKnownSymbol = __w_pdfjs_require__(53);
2260var MATCH = wellKnownSymbol('match');
2261module.exports = function (METHOD_NAME) {
2262 var regexp = /./;
2263 try {
2264 '/./'[METHOD_NAME](regexp);
2265 } catch (e) {
2266 try {
2267 regexp[MATCH] = false;
2268 return '/./'[METHOD_NAME](regexp);
2269 } catch (f) {
2270 }
2271 }
2272 return false;
2273};
2274
2275/***/ }),
2276/* 57 */
2277/***/ (function(module, exports, __w_pdfjs_require__) {
2278
2279var global = __w_pdfjs_require__(6);
2280var bind = __w_pdfjs_require__(58);
2281var call = Function.call;
2282module.exports = function (CONSTRUCTOR, METHOD, length) {
2283 return bind(call, global[CONSTRUCTOR].prototype[METHOD], length);
2284};
2285
2286/***/ }),
2287/* 58 */
2288/***/ (function(module, exports, __w_pdfjs_require__) {
2289
2290var aFunction = __w_pdfjs_require__(59);
2291module.exports = function (fn, that, length) {
2292 aFunction(fn);
2293 if (that === undefined)
2294 return fn;
2295 switch (length) {
2296 case 0:
2297 return function () {
2298 return fn.call(that);
2299 };
2300 case 1:
2301 return function (a) {
2302 return fn.call(that, a);
2303 };
2304 case 2:
2305 return function (a, b) {
2306 return fn.call(that, a, b);
2307 };
2308 case 3:
2309 return function (a, b, c) {
2310 return fn.call(that, a, b, c);
2311 };
2312 }
2313 return function () {
2314 return fn.apply(that, arguments);
2315 };
2316};
2317
2318/***/ }),
2319/* 59 */
2320/***/ (function(module, exports) {
2321
2322module.exports = function (it) {
2323 if (typeof it != 'function') {
2324 throw TypeError(String(it) + ' is not a function');
2325 }
2326 return it;
2327};
2328
2329/***/ }),
2330/* 60 */
2331/***/ (function(module, exports, __w_pdfjs_require__) {
2332
2333__w_pdfjs_require__(61);
2334var entryUnbind = __w_pdfjs_require__(57);
2335module.exports = entryUnbind('String', 'endsWith');
2336
2337/***/ }),
2338/* 61 */
2339/***/ (function(module, exports, __w_pdfjs_require__) {
2340
2341"use strict";
2342
2343var $ = __w_pdfjs_require__(5);
2344var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f;
2345var toLength = __w_pdfjs_require__(42);
2346var notARegExp = __w_pdfjs_require__(51);
2347var requireObjectCoercible = __w_pdfjs_require__(15);
2348var correctIsRegExpLogic = __w_pdfjs_require__(56);
2349var IS_PURE = __w_pdfjs_require__(32);
2350var nativeEndsWith = ''.endsWith;
2351var min = Math.min;
2352var CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');
2353var MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {
2354 var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');
2355 return descriptor && !descriptor.writable;
2356}();
2357$({
2358 target: 'String',
2359 proto: true,
2360 forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC
2361}, {
2362 endsWith: function endsWith(searchString) {
2363 var that = String(requireObjectCoercible(this));
2364 notARegExp(searchString);
2365 var endPosition = arguments.length > 1 ? arguments[1] : undefined;
2366 var len = toLength(that.length);
2367 var end = endPosition === undefined ? len : min(toLength(endPosition), len);
2368 var search = String(searchString);
2369 return nativeEndsWith ? nativeEndsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
2370 }
2371});
2372
2373/***/ }),
2374/* 62 */
2375/***/ (function(module, exports, __w_pdfjs_require__) {
2376
2377__w_pdfjs_require__(63);
2378var entryUnbind = __w_pdfjs_require__(57);
2379module.exports = entryUnbind('String', 'includes');
2380
2381/***/ }),
2382/* 63 */
2383/***/ (function(module, exports, __w_pdfjs_require__) {
2384
2385"use strict";
2386
2387var $ = __w_pdfjs_require__(5);
2388var notARegExp = __w_pdfjs_require__(51);
2389var requireObjectCoercible = __w_pdfjs_require__(15);
2390var correctIsRegExpLogic = __w_pdfjs_require__(56);
2391$({
2392 target: 'String',
2393 proto: true,
2394 forced: !correctIsRegExpLogic('includes')
2395}, {
2396 includes: function includes(searchString) {
2397 return !!~String(requireObjectCoercible(this)).indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);
2398 }
2399});
2400
2401/***/ }),
2402/* 64 */
2403/***/ (function(module, exports, __w_pdfjs_require__) {
2404
2405__w_pdfjs_require__(65);
2406var entryUnbind = __w_pdfjs_require__(57);
2407module.exports = entryUnbind('Array', 'includes');
2408
2409/***/ }),
2410/* 65 */
2411/***/ (function(module, exports, __w_pdfjs_require__) {
2412
2413"use strict";
2414
2415var $ = __w_pdfjs_require__(5);
2416var $includes = __w_pdfjs_require__(41).includes;
2417var addToUnscopables = __w_pdfjs_require__(66);
2418var arrayMethodUsesToLength = __w_pdfjs_require__(71);
2419var USES_TO_LENGTH = arrayMethodUsesToLength('indexOf', {
2420 ACCESSORS: true,
2421 1: 0
2422});
2423$({
2424 target: 'Array',
2425 proto: true,
2426 forced: !USES_TO_LENGTH
2427}, {
2428 includes: function includes(el) {
2429 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
2430 }
2431});
2432addToUnscopables('includes');
2433
2434/***/ }),
2435/* 66 */
2436/***/ (function(module, exports, __w_pdfjs_require__) {
2437
2438var wellKnownSymbol = __w_pdfjs_require__(53);
2439var create = __w_pdfjs_require__(67);
2440var definePropertyModule = __w_pdfjs_require__(22);
2441var UNSCOPABLES = wellKnownSymbol('unscopables');
2442var ArrayPrototype = Array.prototype;
2443if (ArrayPrototype[UNSCOPABLES] == undefined) {
2444 definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {
2445 configurable: true,
2446 value: create(null)
2447 });
2448}
2449module.exports = function (key) {
2450 ArrayPrototype[UNSCOPABLES][key] = true;
2451};
2452
2453/***/ }),
2454/* 67 */
2455/***/ (function(module, exports, __w_pdfjs_require__) {
2456
2457var anObject = __w_pdfjs_require__(23);
2458var defineProperties = __w_pdfjs_require__(68);
2459var enumBugKeys = __w_pdfjs_require__(45);
2460var hiddenKeys = __w_pdfjs_require__(34);
2461var html = __w_pdfjs_require__(70);
2462var documentCreateElement = __w_pdfjs_require__(20);
2463var sharedKey = __w_pdfjs_require__(30);
2464var GT = '>';
2465var LT = '<';
2466var PROTOTYPE = 'prototype';
2467var SCRIPT = 'script';
2468var IE_PROTO = sharedKey('IE_PROTO');
2469var EmptyConstructor = function () {
2470};
2471var scriptTag = function (content) {
2472 return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;
2473};
2474var NullProtoObjectViaActiveX = function (activeXDocument) {
2475 activeXDocument.write(scriptTag(''));
2476 activeXDocument.close();
2477 var temp = activeXDocument.parentWindow.Object;
2478 activeXDocument = null;
2479 return temp;
2480};
2481var NullProtoObjectViaIFrame = function () {
2482 var iframe = documentCreateElement('iframe');
2483 var JS = 'java' + SCRIPT + ':';
2484 var iframeDocument;
2485 iframe.style.display = 'none';
2486 html.appendChild(iframe);
2487 iframe.src = String(JS);
2488 iframeDocument = iframe.contentWindow.document;
2489 iframeDocument.open();
2490 iframeDocument.write(scriptTag('document.F=Object'));
2491 iframeDocument.close();
2492 return iframeDocument.F;
2493};
2494var activeXDocument;
2495var NullProtoObject = function () {
2496 try {
2497 activeXDocument = document.domain && new ActiveXObject('htmlfile');
2498 } catch (error) {
2499 }
2500 NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();
2501 var length = enumBugKeys.length;
2502 while (length--)
2503 delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];
2504 return NullProtoObject();
2505};
2506hiddenKeys[IE_PROTO] = true;
2507module.exports = Object.create || function create(O, Properties) {
2508 var result;
2509 if (O !== null) {
2510 EmptyConstructor[PROTOTYPE] = anObject(O);
2511 result = new EmptyConstructor();
2512 EmptyConstructor[PROTOTYPE] = null;
2513 result[IE_PROTO] = O;
2514 } else
2515 result = NullProtoObject();
2516 return Properties === undefined ? result : defineProperties(result, Properties);
2517};
2518
2519/***/ }),
2520/* 68 */
2521/***/ (function(module, exports, __w_pdfjs_require__) {
2522
2523var DESCRIPTORS = __w_pdfjs_require__(8);
2524var definePropertyModule = __w_pdfjs_require__(22);
2525var anObject = __w_pdfjs_require__(23);
2526var objectKeys = __w_pdfjs_require__(69);
2527module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {
2528 anObject(O);
2529 var keys = objectKeys(Properties);
2530 var length = keys.length;
2531 var index = 0;
2532 var key;
2533 while (length > index)
2534 definePropertyModule.f(O, key = keys[index++], Properties[key]);
2535 return O;
2536};
2537
2538/***/ }),
2539/* 69 */
2540/***/ (function(module, exports, __w_pdfjs_require__) {
2541
2542var internalObjectKeys = __w_pdfjs_require__(40);
2543var enumBugKeys = __w_pdfjs_require__(45);
2544module.exports = Object.keys || function keys(O) {
2545 return internalObjectKeys(O, enumBugKeys);
2546};
2547
2548/***/ }),
2549/* 70 */
2550/***/ (function(module, exports, __w_pdfjs_require__) {
2551
2552var getBuiltIn = __w_pdfjs_require__(37);
2553module.exports = getBuiltIn('document', 'documentElement');
2554
2555/***/ }),
2556/* 71 */
2557/***/ (function(module, exports, __w_pdfjs_require__) {
2558
2559var DESCRIPTORS = __w_pdfjs_require__(8);
2560var fails = __w_pdfjs_require__(9);
2561var has = __w_pdfjs_require__(18);
2562var defineProperty = Object.defineProperty;
2563var cache = {};
2564var thrower = function (it) {
2565 throw it;
2566};
2567module.exports = function (METHOD_NAME, options) {
2568 if (has(cache, METHOD_NAME))
2569 return cache[METHOD_NAME];
2570 if (!options)
2571 options = {};
2572 var method = [][METHOD_NAME];
2573 var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;
2574 var argument0 = has(options, 0) ? options[0] : thrower;
2575 var argument1 = has(options, 1) ? options[1] : undefined;
2576 return cache[METHOD_NAME] = !!method && !fails(function () {
2577 if (ACCESSORS && !DESCRIPTORS)
2578 return true;
2579 var O = { length: -1 };
2580 if (ACCESSORS)
2581 defineProperty(O, 1, {
2582 enumerable: true,
2583 get: thrower
2584 });
2585 else
2586 O[1] = 1;
2587 method.call(O, argument0, argument1);
2588 });
2589};
2590
2591/***/ }),
2592/* 72 */
2593/***/ (function(module, exports, __w_pdfjs_require__) {
2594
2595__w_pdfjs_require__(73);
2596__w_pdfjs_require__(85);
2597var path = __w_pdfjs_require__(38);
2598module.exports = path.Array.from;
2599
2600/***/ }),
2601/* 73 */
2602/***/ (function(module, exports, __w_pdfjs_require__) {
2603
2604"use strict";
2605
2606var charAt = __w_pdfjs_require__(74).charAt;
2607var InternalStateModule = __w_pdfjs_require__(28);
2608var defineIterator = __w_pdfjs_require__(75);
2609var STRING_ITERATOR = 'String Iterator';
2610var setInternalState = InternalStateModule.set;
2611var getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);
2612defineIterator(String, 'String', function (iterated) {
2613 setInternalState(this, {
2614 type: STRING_ITERATOR,
2615 string: String(iterated),
2616 index: 0
2617 });
2618}, function next() {
2619 var state = getInternalState(this);
2620 var string = state.string;
2621 var index = state.index;
2622 var point;
2623 if (index >= string.length)
2624 return {
2625 value: undefined,
2626 done: true
2627 };
2628 point = charAt(string, index);
2629 state.index += point.length;
2630 return {
2631 value: point,
2632 done: false
2633 };
2634});
2635
2636/***/ }),
2637/* 74 */
2638/***/ (function(module, exports, __w_pdfjs_require__) {
2639
2640var toInteger = __w_pdfjs_require__(43);
2641var requireObjectCoercible = __w_pdfjs_require__(15);
2642var createMethod = function (CONVERT_TO_STRING) {
2643 return function ($this, pos) {
2644 var S = String(requireObjectCoercible($this));
2645 var position = toInteger(pos);
2646 var size = S.length;
2647 var first, second;
2648 if (position < 0 || position >= size)
2649 return CONVERT_TO_STRING ? '' : undefined;
2650 first = S.charCodeAt(position);
2651 return first < 0xD800 || first > 0xDBFF || position + 1 === size || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF ? CONVERT_TO_STRING ? S.charAt(position) : first : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;
2652 };
2653};
2654module.exports = {
2655 codeAt: createMethod(false),
2656 charAt: createMethod(true)
2657};
2658
2659/***/ }),
2660/* 75 */
2661/***/ (function(module, exports, __w_pdfjs_require__) {
2662
2663"use strict";
2664
2665var $ = __w_pdfjs_require__(5);
2666var createIteratorConstructor = __w_pdfjs_require__(76);
2667var getPrototypeOf = __w_pdfjs_require__(78);
2668var setPrototypeOf = __w_pdfjs_require__(83);
2669var setToStringTag = __w_pdfjs_require__(81);
2670var createNonEnumerableProperty = __w_pdfjs_require__(21);
2671var redefine = __w_pdfjs_require__(24);
2672var wellKnownSymbol = __w_pdfjs_require__(53);
2673var IS_PURE = __w_pdfjs_require__(32);
2674var Iterators = __w_pdfjs_require__(82);
2675var IteratorsCore = __w_pdfjs_require__(77);
2676var IteratorPrototype = IteratorsCore.IteratorPrototype;
2677var BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;
2678var ITERATOR = wellKnownSymbol('iterator');
2679var KEYS = 'keys';
2680var VALUES = 'values';
2681var ENTRIES = 'entries';
2682var returnThis = function () {
2683 return this;
2684};
2685module.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {
2686 createIteratorConstructor(IteratorConstructor, NAME, next);
2687 var getIterationMethod = function (KIND) {
2688 if (KIND === DEFAULT && defaultIterator)
2689 return defaultIterator;
2690 if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype)
2691 return IterablePrototype[KIND];
2692 switch (KIND) {
2693 case KEYS:
2694 return function keys() {
2695 return new IteratorConstructor(this, KIND);
2696 };
2697 case VALUES:
2698 return function values() {
2699 return new IteratorConstructor(this, KIND);
2700 };
2701 case ENTRIES:
2702 return function entries() {
2703 return new IteratorConstructor(this, KIND);
2704 };
2705 }
2706 return function () {
2707 return new IteratorConstructor(this);
2708 };
2709 };
2710 var TO_STRING_TAG = NAME + ' Iterator';
2711 var INCORRECT_VALUES_NAME = false;
2712 var IterablePrototype = Iterable.prototype;
2713 var nativeIterator = IterablePrototype[ITERATOR] || IterablePrototype['@@iterator'] || DEFAULT && IterablePrototype[DEFAULT];
2714 var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);
2715 var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;
2716 var CurrentIteratorPrototype, methods, KEY;
2717 if (anyNativeIterator) {
2718 CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));
2719 if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {
2720 if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {
2721 if (setPrototypeOf) {
2722 setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);
2723 } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {
2724 createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);
2725 }
2726 }
2727 setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);
2728 if (IS_PURE)
2729 Iterators[TO_STRING_TAG] = returnThis;
2730 }
2731 }
2732 if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {
2733 INCORRECT_VALUES_NAME = true;
2734 defaultIterator = function values() {
2735 return nativeIterator.call(this);
2736 };
2737 }
2738 if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {
2739 createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);
2740 }
2741 Iterators[NAME] = defaultIterator;
2742 if (DEFAULT) {
2743 methods = {
2744 values: getIterationMethod(VALUES),
2745 keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),
2746 entries: getIterationMethod(ENTRIES)
2747 };
2748 if (FORCED)
2749 for (KEY in methods) {
2750 if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {
2751 redefine(IterablePrototype, KEY, methods[KEY]);
2752 }
2753 }
2754 else
2755 $({
2756 target: NAME,
2757 proto: true,
2758 forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME
2759 }, methods);
2760 }
2761 return methods;
2762};
2763
2764/***/ }),
2765/* 76 */
2766/***/ (function(module, exports, __w_pdfjs_require__) {
2767
2768"use strict";
2769
2770var IteratorPrototype = __w_pdfjs_require__(77).IteratorPrototype;
2771var create = __w_pdfjs_require__(67);
2772var createPropertyDescriptor = __w_pdfjs_require__(11);
2773var setToStringTag = __w_pdfjs_require__(81);
2774var Iterators = __w_pdfjs_require__(82);
2775var returnThis = function () {
2776 return this;
2777};
2778module.exports = function (IteratorConstructor, NAME, next) {
2779 var TO_STRING_TAG = NAME + ' Iterator';
2780 IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });
2781 setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);
2782 Iterators[TO_STRING_TAG] = returnThis;
2783 return IteratorConstructor;
2784};
2785
2786/***/ }),
2787/* 77 */
2788/***/ (function(module, exports, __w_pdfjs_require__) {
2789
2790"use strict";
2791
2792var getPrototypeOf = __w_pdfjs_require__(78);
2793var createNonEnumerableProperty = __w_pdfjs_require__(21);
2794var has = __w_pdfjs_require__(18);
2795var wellKnownSymbol = __w_pdfjs_require__(53);
2796var IS_PURE = __w_pdfjs_require__(32);
2797var ITERATOR = wellKnownSymbol('iterator');
2798var BUGGY_SAFARI_ITERATORS = false;
2799var returnThis = function () {
2800 return this;
2801};
2802var IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;
2803if ([].keys) {
2804 arrayIterator = [].keys();
2805 if (!('next' in arrayIterator))
2806 BUGGY_SAFARI_ITERATORS = true;
2807 else {
2808 PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));
2809 if (PrototypeOfArrayIteratorPrototype !== Object.prototype)
2810 IteratorPrototype = PrototypeOfArrayIteratorPrototype;
2811 }
2812}
2813if (IteratorPrototype == undefined)
2814 IteratorPrototype = {};
2815if (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {
2816 createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);
2817}
2818module.exports = {
2819 IteratorPrototype: IteratorPrototype,
2820 BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS
2821};
2822
2823/***/ }),
2824/* 78 */
2825/***/ (function(module, exports, __w_pdfjs_require__) {
2826
2827var has = __w_pdfjs_require__(18);
2828var toObject = __w_pdfjs_require__(79);
2829var sharedKey = __w_pdfjs_require__(30);
2830var CORRECT_PROTOTYPE_GETTER = __w_pdfjs_require__(80);
2831var IE_PROTO = sharedKey('IE_PROTO');
2832var ObjectPrototype = Object.prototype;
2833module.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {
2834 O = toObject(O);
2835 if (has(O, IE_PROTO))
2836 return O[IE_PROTO];
2837 if (typeof O.constructor == 'function' && O instanceof O.constructor) {
2838 return O.constructor.prototype;
2839 }
2840 return O instanceof Object ? ObjectPrototype : null;
2841};
2842
2843/***/ }),
2844/* 79 */
2845/***/ (function(module, exports, __w_pdfjs_require__) {
2846
2847var requireObjectCoercible = __w_pdfjs_require__(15);
2848module.exports = function (argument) {
2849 return Object(requireObjectCoercible(argument));
2850};
2851
2852/***/ }),
2853/* 80 */
2854/***/ (function(module, exports, __w_pdfjs_require__) {
2855
2856var fails = __w_pdfjs_require__(9);
2857module.exports = !fails(function () {
2858 function F() {
2859 }
2860 F.prototype.constructor = null;
2861 return Object.getPrototypeOf(new F()) !== F.prototype;
2862});
2863
2864/***/ }),
2865/* 81 */
2866/***/ (function(module, exports, __w_pdfjs_require__) {
2867
2868var defineProperty = __w_pdfjs_require__(22).f;
2869var has = __w_pdfjs_require__(18);
2870var wellKnownSymbol = __w_pdfjs_require__(53);
2871var TO_STRING_TAG = wellKnownSymbol('toStringTag');
2872module.exports = function (it, TAG, STATIC) {
2873 if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {
2874 defineProperty(it, TO_STRING_TAG, {
2875 configurable: true,
2876 value: TAG
2877 });
2878 }
2879};
2880
2881/***/ }),
2882/* 82 */
2883/***/ (function(module, exports) {
2884
2885module.exports = {};
2886
2887/***/ }),
2888/* 83 */
2889/***/ (function(module, exports, __w_pdfjs_require__) {
2890
2891var anObject = __w_pdfjs_require__(23);
2892var aPossiblePrototype = __w_pdfjs_require__(84);
2893module.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {
2894 var CORRECT_SETTER = false;
2895 var test = {};
2896 var setter;
2897 try {
2898 setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;
2899 setter.call(test, []);
2900 CORRECT_SETTER = test instanceof Array;
2901 } catch (error) {
2902 }
2903 return function setPrototypeOf(O, proto) {
2904 anObject(O);
2905 aPossiblePrototype(proto);
2906 if (CORRECT_SETTER)
2907 setter.call(O, proto);
2908 else
2909 O.__proto__ = proto;
2910 return O;
2911 };
2912}() : undefined);
2913
2914/***/ }),
2915/* 84 */
2916/***/ (function(module, exports, __w_pdfjs_require__) {
2917
2918var isObject = __w_pdfjs_require__(17);
2919module.exports = function (it) {
2920 if (!isObject(it) && it !== null) {
2921 throw TypeError("Can't set " + String(it) + ' as a prototype');
2922 }
2923 return it;
2924};
2925
2926/***/ }),
2927/* 85 */
2928/***/ (function(module, exports, __w_pdfjs_require__) {
2929
2930var $ = __w_pdfjs_require__(5);
2931var from = __w_pdfjs_require__(86);
2932var checkCorrectnessOfIteration = __w_pdfjs_require__(93);
2933var INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {
2934 Array.from(iterable);
2935});
2936$({
2937 target: 'Array',
2938 stat: true,
2939 forced: INCORRECT_ITERATION
2940}, { from: from });
2941
2942/***/ }),
2943/* 86 */
2944/***/ (function(module, exports, __w_pdfjs_require__) {
2945
2946"use strict";
2947
2948var bind = __w_pdfjs_require__(58);
2949var toObject = __w_pdfjs_require__(79);
2950var callWithSafeIterationClosing = __w_pdfjs_require__(87);
2951var isArrayIteratorMethod = __w_pdfjs_require__(88);
2952var toLength = __w_pdfjs_require__(42);
2953var createProperty = __w_pdfjs_require__(89);
2954var getIteratorMethod = __w_pdfjs_require__(90);
2955module.exports = function from(arrayLike) {
2956 var O = toObject(arrayLike);
2957 var C = typeof this == 'function' ? this : Array;
2958 var argumentsLength = arguments.length;
2959 var mapfn = argumentsLength > 1 ? arguments[1] : undefined;
2960 var mapping = mapfn !== undefined;
2961 var iteratorMethod = getIteratorMethod(O);
2962 var index = 0;
2963 var length, result, step, iterator, next, value;
2964 if (mapping)
2965 mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);
2966 if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {
2967 iterator = iteratorMethod.call(O);
2968 next = iterator.next;
2969 result = new C();
2970 for (; !(step = next.call(iterator)).done; index++) {
2971 value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [
2972 step.value,
2973 index
2974 ], true) : step.value;
2975 createProperty(result, index, value);
2976 }
2977 } else {
2978 length = toLength(O.length);
2979 result = new C(length);
2980 for (; length > index; index++) {
2981 value = mapping ? mapfn(O[index], index) : O[index];
2982 createProperty(result, index, value);
2983 }
2984 }
2985 result.length = index;
2986 return result;
2987};
2988
2989/***/ }),
2990/* 87 */
2991/***/ (function(module, exports, __w_pdfjs_require__) {
2992
2993var anObject = __w_pdfjs_require__(23);
2994module.exports = function (iterator, fn, value, ENTRIES) {
2995 try {
2996 return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);
2997 } catch (error) {
2998 var returnMethod = iterator['return'];
2999 if (returnMethod !== undefined)
3000 anObject(returnMethod.call(iterator));
3001 throw error;
3002 }
3003};
3004
3005/***/ }),
3006/* 88 */
3007/***/ (function(module, exports, __w_pdfjs_require__) {
3008
3009var wellKnownSymbol = __w_pdfjs_require__(53);
3010var Iterators = __w_pdfjs_require__(82);
3011var ITERATOR = wellKnownSymbol('iterator');
3012var ArrayPrototype = Array.prototype;
3013module.exports = function (it) {
3014 return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);
3015};
3016
3017/***/ }),
3018/* 89 */
3019/***/ (function(module, exports, __w_pdfjs_require__) {
3020
3021"use strict";
3022
3023var toPrimitive = __w_pdfjs_require__(16);
3024var definePropertyModule = __w_pdfjs_require__(22);
3025var createPropertyDescriptor = __w_pdfjs_require__(11);
3026module.exports = function (object, key, value) {
3027 var propertyKey = toPrimitive(key);
3028 if (propertyKey in object)
3029 definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));
3030 else
3031 object[propertyKey] = value;
3032};
3033
3034/***/ }),
3035/* 90 */
3036/***/ (function(module, exports, __w_pdfjs_require__) {
3037
3038var classof = __w_pdfjs_require__(91);
3039var Iterators = __w_pdfjs_require__(82);
3040var wellKnownSymbol = __w_pdfjs_require__(53);
3041var ITERATOR = wellKnownSymbol('iterator');
3042module.exports = function (it) {
3043 if (it != undefined)
3044 return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
3045};
3046
3047/***/ }),
3048/* 91 */
3049/***/ (function(module, exports, __w_pdfjs_require__) {
3050
3051var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(92);
3052var classofRaw = __w_pdfjs_require__(14);
3053var wellKnownSymbol = __w_pdfjs_require__(53);
3054var TO_STRING_TAG = wellKnownSymbol('toStringTag');
3055var CORRECT_ARGUMENTS = classofRaw(function () {
3056 return arguments;
3057}()) == 'Arguments';
3058var tryGet = function (it, key) {
3059 try {
3060 return it[key];
3061 } catch (error) {
3062 }
3063};
3064module.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {
3065 var O, tag, result;
3066 return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag : CORRECT_ARGUMENTS ? classofRaw(O) : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;
3067};
3068
3069/***/ }),
3070/* 92 */
3071/***/ (function(module, exports, __w_pdfjs_require__) {
3072
3073var wellKnownSymbol = __w_pdfjs_require__(53);
3074var TO_STRING_TAG = wellKnownSymbol('toStringTag');
3075var test = {};
3076test[TO_STRING_TAG] = 'z';
3077module.exports = String(test) === '[object z]';
3078
3079/***/ }),
3080/* 93 */
3081/***/ (function(module, exports, __w_pdfjs_require__) {
3082
3083var wellKnownSymbol = __w_pdfjs_require__(53);
3084var ITERATOR = wellKnownSymbol('iterator');
3085var SAFE_CLOSING = false;
3086try {
3087 var called = 0;
3088 var iteratorWithReturn = {
3089 next: function () {
3090 return { done: !!called++ };
3091 },
3092 'return': function () {
3093 SAFE_CLOSING = true;
3094 }
3095 };
3096 iteratorWithReturn[ITERATOR] = function () {
3097 return this;
3098 };
3099 Array.from(iteratorWithReturn, function () {
3100 throw 2;
3101 });
3102} catch (error) {
3103}
3104module.exports = function (exec, SKIP_CLOSING) {
3105 if (!SKIP_CLOSING && !SAFE_CLOSING)
3106 return false;
3107 var ITERATION_SUPPORT = false;
3108 try {
3109 var object = {};
3110 object[ITERATOR] = function () {
3111 return {
3112 next: function () {
3113 return { done: ITERATION_SUPPORT = true };
3114 }
3115 };
3116 };
3117 exec(object);
3118 } catch (error) {
3119 }
3120 return ITERATION_SUPPORT;
3121};
3122
3123/***/ }),
3124/* 94 */
3125/***/ (function(module, exports, __w_pdfjs_require__) {
3126
3127__w_pdfjs_require__(95);
3128var path = __w_pdfjs_require__(38);
3129module.exports = path.Object.assign;
3130
3131/***/ }),
3132/* 95 */
3133/***/ (function(module, exports, __w_pdfjs_require__) {
3134
3135var $ = __w_pdfjs_require__(5);
3136var assign = __w_pdfjs_require__(96);
3137$({
3138 target: 'Object',
3139 stat: true,
3140 forced: Object.assign !== assign
3141}, { assign: assign });
3142
3143/***/ }),
3144/* 96 */
3145/***/ (function(module, exports, __w_pdfjs_require__) {
3146
3147"use strict";
3148
3149var DESCRIPTORS = __w_pdfjs_require__(8);
3150var fails = __w_pdfjs_require__(9);
3151var objectKeys = __w_pdfjs_require__(69);
3152var getOwnPropertySymbolsModule = __w_pdfjs_require__(46);
3153var propertyIsEnumerableModule = __w_pdfjs_require__(10);
3154var toObject = __w_pdfjs_require__(79);
3155var IndexedObject = __w_pdfjs_require__(13);
3156var nativeAssign = Object.assign;
3157var defineProperty = Object.defineProperty;
3158module.exports = !nativeAssign || fails(function () {
3159 if (DESCRIPTORS && nativeAssign({ b: 1 }, nativeAssign(defineProperty({}, 'a', {
3160 enumerable: true,
3161 get: function () {
3162 defineProperty(this, 'b', {
3163 value: 3,
3164 enumerable: false
3165 });
3166 }
3167 }), { b: 2 })).b !== 1)
3168 return true;
3169 var A = {};
3170 var B = {};
3171 var symbol = Symbol();
3172 var alphabet = 'abcdefghijklmnopqrst';
3173 A[symbol] = 7;
3174 alphabet.split('').forEach(function (chr) {
3175 B[chr] = chr;
3176 });
3177 return nativeAssign({}, A)[symbol] != 7 || objectKeys(nativeAssign({}, B)).join('') != alphabet;
3178}) ? function assign(target, source) {
3179 var T = toObject(target);
3180 var argumentsLength = arguments.length;
3181 var index = 1;
3182 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;
3183 var propertyIsEnumerable = propertyIsEnumerableModule.f;
3184 while (argumentsLength > index) {
3185 var S = IndexedObject(arguments[index++]);
3186 var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);
3187 var length = keys.length;
3188 var j = 0;
3189 var key;
3190 while (length > j) {
3191 key = keys[j++];
3192 if (!DESCRIPTORS || propertyIsEnumerable.call(S, key))
3193 T[key] = S[key];
3194 }
3195 }
3196 return T;
3197} : nativeAssign;
3198
3199/***/ }),
3200/* 97 */
3201/***/ (function(module, exports, __w_pdfjs_require__) {
3202
3203__w_pdfjs_require__(98);
3204var path = __w_pdfjs_require__(38);
3205module.exports = path.Math.log2;
3206
3207/***/ }),
3208/* 98 */
3209/***/ (function(module, exports, __w_pdfjs_require__) {
3210
3211var $ = __w_pdfjs_require__(5);
3212var log = Math.log;
3213var LN2 = Math.LN2;
3214$({
3215 target: 'Math',
3216 stat: true
3217}, {
3218 log2: function log2(x) {
3219 return log(x) / LN2;
3220 }
3221});
3222
3223/***/ }),
3224/* 99 */
3225/***/ (function(module, exports, __w_pdfjs_require__) {
3226
3227__w_pdfjs_require__(100);
3228var path = __w_pdfjs_require__(38);
3229module.exports = path.Number.isNaN;
3230
3231/***/ }),
3232/* 100 */
3233/***/ (function(module, exports, __w_pdfjs_require__) {
3234
3235var $ = __w_pdfjs_require__(5);
3236$({
3237 target: 'Number',
3238 stat: true
3239}, {
3240 isNaN: function isNaN(number) {
3241 return number != number;
3242 }
3243});
3244
3245/***/ }),
3246/* 101 */
3247/***/ (function(module, exports, __w_pdfjs_require__) {
3248
3249__w_pdfjs_require__(102);
3250var path = __w_pdfjs_require__(38);
3251module.exports = path.Number.isInteger;
3252
3253/***/ }),
3254/* 102 */
3255/***/ (function(module, exports, __w_pdfjs_require__) {
3256
3257var $ = __w_pdfjs_require__(5);
3258var isInteger = __w_pdfjs_require__(103);
3259$({
3260 target: 'Number',
3261 stat: true
3262}, { isInteger: isInteger });
3263
3264/***/ }),
3265/* 103 */
3266/***/ (function(module, exports, __w_pdfjs_require__) {
3267
3268var isObject = __w_pdfjs_require__(17);
3269var floor = Math.floor;
3270module.exports = function isInteger(it) {
3271 return !isObject(it) && isFinite(it) && floor(it) === it;
3272};
3273
3274/***/ }),
3275/* 104 */
3276/***/ (function(module, exports, __w_pdfjs_require__) {
3277
3278__w_pdfjs_require__(105);
3279__w_pdfjs_require__(73);
3280__w_pdfjs_require__(107);
3281__w_pdfjs_require__(110);
3282__w_pdfjs_require__(126);
3283__w_pdfjs_require__(127);
3284var path = __w_pdfjs_require__(38);
3285module.exports = path.Promise;
3286
3287/***/ }),
3288/* 105 */
3289/***/ (function(module, exports, __w_pdfjs_require__) {
3290
3291var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(92);
3292var redefine = __w_pdfjs_require__(24);
3293var toString = __w_pdfjs_require__(106);
3294if (!TO_STRING_TAG_SUPPORT) {
3295 redefine(Object.prototype, 'toString', toString, { unsafe: true });
3296}
3297
3298/***/ }),
3299/* 106 */
3300/***/ (function(module, exports, __w_pdfjs_require__) {
3301
3302"use strict";
3303
3304var TO_STRING_TAG_SUPPORT = __w_pdfjs_require__(92);
3305var classof = __w_pdfjs_require__(91);
3306module.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {
3307 return '[object ' + classof(this) + ']';
3308};
3309
3310/***/ }),
3311/* 107 */
3312/***/ (function(module, exports, __w_pdfjs_require__) {
3313
3314var global = __w_pdfjs_require__(6);
3315var DOMIterables = __w_pdfjs_require__(108);
3316var ArrayIteratorMethods = __w_pdfjs_require__(109);
3317var createNonEnumerableProperty = __w_pdfjs_require__(21);
3318var wellKnownSymbol = __w_pdfjs_require__(53);
3319var ITERATOR = wellKnownSymbol('iterator');
3320var TO_STRING_TAG = wellKnownSymbol('toStringTag');
3321var ArrayValues = ArrayIteratorMethods.values;
3322for (var COLLECTION_NAME in DOMIterables) {
3323 var Collection = global[COLLECTION_NAME];
3324 var CollectionPrototype = Collection && Collection.prototype;
3325 if (CollectionPrototype) {
3326 if (CollectionPrototype[ITERATOR] !== ArrayValues)
3327 try {
3328 createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);
3329 } catch (error) {
3330 CollectionPrototype[ITERATOR] = ArrayValues;
3331 }
3332 if (!CollectionPrototype[TO_STRING_TAG]) {
3333 createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);
3334 }
3335 if (DOMIterables[COLLECTION_NAME])
3336 for (var METHOD_NAME in ArrayIteratorMethods) {
3337 if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME])
3338 try {
3339 createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);
3340 } catch (error) {
3341 CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];
3342 }
3343 }
3344 }
3345}
3346
3347/***/ }),
3348/* 108 */
3349/***/ (function(module, exports) {
3350
3351module.exports = {
3352 CSSRuleList: 0,
3353 CSSStyleDeclaration: 0,
3354 CSSValueList: 0,
3355 ClientRectList: 0,
3356 DOMRectList: 0,
3357 DOMStringList: 0,
3358 DOMTokenList: 1,
3359 DataTransferItemList: 0,
3360 FileList: 0,
3361 HTMLAllCollection: 0,
3362 HTMLCollection: 0,
3363 HTMLFormElement: 0,
3364 HTMLSelectElement: 0,
3365 MediaList: 0,
3366 MimeTypeArray: 0,
3367 NamedNodeMap: 0,
3368 NodeList: 1,
3369 PaintRequestList: 0,
3370 Plugin: 0,
3371 PluginArray: 0,
3372 SVGLengthList: 0,
3373 SVGNumberList: 0,
3374 SVGPathSegList: 0,
3375 SVGPointList: 0,
3376 SVGStringList: 0,
3377 SVGTransformList: 0,
3378 SourceBufferList: 0,
3379 StyleSheetList: 0,
3380 TextTrackCueList: 0,
3381 TextTrackList: 0,
3382 TouchList: 0
3383};
3384
3385/***/ }),
3386/* 109 */
3387/***/ (function(module, exports, __w_pdfjs_require__) {
3388
3389"use strict";
3390
3391var toIndexedObject = __w_pdfjs_require__(12);
3392var addToUnscopables = __w_pdfjs_require__(66);
3393var Iterators = __w_pdfjs_require__(82);
3394var InternalStateModule = __w_pdfjs_require__(28);
3395var defineIterator = __w_pdfjs_require__(75);
3396var ARRAY_ITERATOR = 'Array Iterator';
3397var setInternalState = InternalStateModule.set;
3398var getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);
3399module.exports = defineIterator(Array, 'Array', function (iterated, kind) {
3400 setInternalState(this, {
3401 type: ARRAY_ITERATOR,
3402 target: toIndexedObject(iterated),
3403 index: 0,
3404 kind: kind
3405 });
3406}, function () {
3407 var state = getInternalState(this);
3408 var target = state.target;
3409 var kind = state.kind;
3410 var index = state.index++;
3411 if (!target || index >= target.length) {
3412 state.target = undefined;
3413 return {
3414 value: undefined,
3415 done: true
3416 };
3417 }
3418 if (kind == 'keys')
3419 return {
3420 value: index,
3421 done: false
3422 };
3423 if (kind == 'values')
3424 return {
3425 value: target[index],
3426 done: false
3427 };
3428 return {
3429 value: [
3430 index,
3431 target[index]
3432 ],
3433 done: false
3434 };
3435}, 'values');
3436Iterators.Arguments = Iterators.Array;
3437addToUnscopables('keys');
3438addToUnscopables('values');
3439addToUnscopables('entries');
3440
3441/***/ }),
3442/* 110 */
3443/***/ (function(module, exports, __w_pdfjs_require__) {
3444
3445"use strict";
3446
3447var $ = __w_pdfjs_require__(5);
3448var IS_PURE = __w_pdfjs_require__(32);
3449var global = __w_pdfjs_require__(6);
3450var getBuiltIn = __w_pdfjs_require__(37);
3451var NativePromise = __w_pdfjs_require__(111);
3452var redefine = __w_pdfjs_require__(24);
3453var redefineAll = __w_pdfjs_require__(112);
3454var setToStringTag = __w_pdfjs_require__(81);
3455var setSpecies = __w_pdfjs_require__(113);
3456var isObject = __w_pdfjs_require__(17);
3457var aFunction = __w_pdfjs_require__(59);
3458var anInstance = __w_pdfjs_require__(114);
3459var classof = __w_pdfjs_require__(14);
3460var inspectSource = __w_pdfjs_require__(26);
3461var iterate = __w_pdfjs_require__(115);
3462var checkCorrectnessOfIteration = __w_pdfjs_require__(93);
3463var speciesConstructor = __w_pdfjs_require__(116);
3464var task = __w_pdfjs_require__(117).set;
3465var microtask = __w_pdfjs_require__(120);
3466var promiseResolve = __w_pdfjs_require__(121);
3467var hostReportErrors = __w_pdfjs_require__(123);
3468var newPromiseCapabilityModule = __w_pdfjs_require__(122);
3469var perform = __w_pdfjs_require__(124);
3470var InternalStateModule = __w_pdfjs_require__(28);
3471var isForced = __w_pdfjs_require__(47);
3472var wellKnownSymbol = __w_pdfjs_require__(53);
3473var V8_VERSION = __w_pdfjs_require__(125);
3474var SPECIES = wellKnownSymbol('species');
3475var PROMISE = 'Promise';
3476var getInternalState = InternalStateModule.get;
3477var setInternalState = InternalStateModule.set;
3478var getInternalPromiseState = InternalStateModule.getterFor(PROMISE);
3479var PromiseConstructor = NativePromise;
3480var TypeError = global.TypeError;
3481var document = global.document;
3482var process = global.process;
3483var $fetch = getBuiltIn('fetch');
3484var newPromiseCapability = newPromiseCapabilityModule.f;
3485var newGenericPromiseCapability = newPromiseCapability;
3486var IS_NODE = classof(process) == 'process';
3487var DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);
3488var UNHANDLED_REJECTION = 'unhandledrejection';
3489var REJECTION_HANDLED = 'rejectionhandled';
3490var PENDING = 0;
3491var FULFILLED = 1;
3492var REJECTED = 2;
3493var HANDLED = 1;
3494var UNHANDLED = 2;
3495var Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;
3496var FORCED = isForced(PROMISE, function () {
3497 var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);
3498 if (!GLOBAL_CORE_JS_PROMISE) {
3499 if (V8_VERSION === 66)
3500 return true;
3501 if (!IS_NODE && typeof PromiseRejectionEvent != 'function')
3502 return true;
3503 }
3504 if (IS_PURE && !PromiseConstructor.prototype['finally'])
3505 return true;
3506 if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor))
3507 return false;
3508 var promise = PromiseConstructor.resolve(1);
3509 var FakePromise = function (exec) {
3510 exec(function () {
3511 }, function () {
3512 });
3513 };
3514 var constructor = promise.constructor = {};
3515 constructor[SPECIES] = FakePromise;
3516 return !(promise.then(function () {
3517 }) instanceof FakePromise);
3518});
3519var INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {
3520 PromiseConstructor.all(iterable)['catch'](function () {
3521 });
3522});
3523var isThenable = function (it) {
3524 var then;
3525 return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
3526};
3527var notify = function (promise, state, isReject) {
3528 if (state.notified)
3529 return;
3530 state.notified = true;
3531 var chain = state.reactions;
3532 microtask(function () {
3533 var value = state.value;
3534 var ok = state.state == FULFILLED;
3535 var index = 0;
3536 while (chain.length > index) {
3537 var reaction = chain[index++];
3538 var handler = ok ? reaction.ok : reaction.fail;
3539 var resolve = reaction.resolve;
3540 var reject = reaction.reject;
3541 var domain = reaction.domain;
3542 var result, then, exited;
3543 try {
3544 if (handler) {
3545 if (!ok) {
3546 if (state.rejection === UNHANDLED)
3547 onHandleUnhandled(promise, state);
3548 state.rejection = HANDLED;
3549 }
3550 if (handler === true)
3551 result = value;
3552 else {
3553 if (domain)
3554 domain.enter();
3555 result = handler(value);
3556 if (domain) {
3557 domain.exit();
3558 exited = true;
3559 }
3560 }
3561 if (result === reaction.promise) {
3562 reject(TypeError('Promise-chain cycle'));
3563 } else if (then = isThenable(result)) {
3564 then.call(result, resolve, reject);
3565 } else
3566 resolve(result);
3567 } else
3568 reject(value);
3569 } catch (error) {
3570 if (domain && !exited)
3571 domain.exit();
3572 reject(error);
3573 }
3574 }
3575 state.reactions = [];
3576 state.notified = false;
3577 if (isReject && !state.rejection)
3578 onUnhandled(promise, state);
3579 });
3580};
3581var dispatchEvent = function (name, promise, reason) {
3582 var event, handler;
3583 if (DISPATCH_EVENT) {
3584 event = document.createEvent('Event');
3585 event.promise = promise;
3586 event.reason = reason;
3587 event.initEvent(name, false, true);
3588 global.dispatchEvent(event);
3589 } else
3590 event = {
3591 promise: promise,
3592 reason: reason
3593 };
3594 if (handler = global['on' + name])
3595 handler(event);
3596 else if (name === UNHANDLED_REJECTION)
3597 hostReportErrors('Unhandled promise rejection', reason);
3598};
3599var onUnhandled = function (promise, state) {
3600 task.call(global, function () {
3601 var value = state.value;
3602 var IS_UNHANDLED = isUnhandled(state);
3603 var result;
3604 if (IS_UNHANDLED) {
3605 result = perform(function () {
3606 if (IS_NODE) {
3607 process.emit('unhandledRejection', value, promise);
3608 } else
3609 dispatchEvent(UNHANDLED_REJECTION, promise, value);
3610 });
3611 state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;
3612 if (result.error)
3613 throw result.value;
3614 }
3615 });
3616};
3617var isUnhandled = function (state) {
3618 return state.rejection !== HANDLED && !state.parent;
3619};
3620var onHandleUnhandled = function (promise, state) {
3621 task.call(global, function () {
3622 if (IS_NODE) {
3623 process.emit('rejectionHandled', promise);
3624 } else
3625 dispatchEvent(REJECTION_HANDLED, promise, state.value);
3626 });
3627};
3628var bind = function (fn, promise, state, unwrap) {
3629 return function (value) {
3630 fn(promise, state, value, unwrap);
3631 };
3632};
3633var internalReject = function (promise, state, value, unwrap) {
3634 if (state.done)
3635 return;
3636 state.done = true;
3637 if (unwrap)
3638 state = unwrap;
3639 state.value = value;
3640 state.state = REJECTED;
3641 notify(promise, state, true);
3642};
3643var internalResolve = function (promise, state, value, unwrap) {
3644 if (state.done)
3645 return;
3646 state.done = true;
3647 if (unwrap)
3648 state = unwrap;
3649 try {
3650 if (promise === value)
3651 throw TypeError("Promise can't be resolved itself");
3652 var then = isThenable(value);
3653 if (then) {
3654 microtask(function () {
3655 var wrapper = { done: false };
3656 try {
3657 then.call(value, bind(internalResolve, promise, wrapper, state), bind(internalReject, promise, wrapper, state));
3658 } catch (error) {
3659 internalReject(promise, wrapper, error, state);
3660 }
3661 });
3662 } else {
3663 state.value = value;
3664 state.state = FULFILLED;
3665 notify(promise, state, false);
3666 }
3667 } catch (error) {
3668 internalReject(promise, { done: false }, error, state);
3669 }
3670};
3671if (FORCED) {
3672 PromiseConstructor = function Promise(executor) {
3673 anInstance(this, PromiseConstructor, PROMISE);
3674 aFunction(executor);
3675 Internal.call(this);
3676 var state = getInternalState(this);
3677 try {
3678 executor(bind(internalResolve, this, state), bind(internalReject, this, state));
3679 } catch (error) {
3680 internalReject(this, state, error);
3681 }
3682 };
3683 Internal = function Promise(executor) {
3684 setInternalState(this, {
3685 type: PROMISE,
3686 done: false,
3687 notified: false,
3688 parent: false,
3689 reactions: [],
3690 rejection: false,
3691 state: PENDING,
3692 value: undefined
3693 });
3694 };
3695 Internal.prototype = redefineAll(PromiseConstructor.prototype, {
3696 then: function then(onFulfilled, onRejected) {
3697 var state = getInternalPromiseState(this);
3698 var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));
3699 reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
3700 reaction.fail = typeof onRejected == 'function' && onRejected;
3701 reaction.domain = IS_NODE ? process.domain : undefined;
3702 state.parent = true;
3703 state.reactions.push(reaction);
3704 if (state.state != PENDING)
3705 notify(this, state, false);
3706 return reaction.promise;
3707 },
3708 'catch': function (onRejected) {
3709 return this.then(undefined, onRejected);
3710 }
3711 });
3712 OwnPromiseCapability = function () {
3713 var promise = new Internal();
3714 var state = getInternalState(promise);
3715 this.promise = promise;
3716 this.resolve = bind(internalResolve, promise, state);
3717 this.reject = bind(internalReject, promise, state);
3718 };
3719 newPromiseCapabilityModule.f = newPromiseCapability = function (C) {
3720 return C === PromiseConstructor || C === PromiseWrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
3721 };
3722 if (!IS_PURE && typeof NativePromise == 'function') {
3723 nativeThen = NativePromise.prototype.then;
3724 redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {
3725 var that = this;
3726 return new PromiseConstructor(function (resolve, reject) {
3727 nativeThen.call(that, resolve, reject);
3728 }).then(onFulfilled, onRejected);
3729 }, { unsafe: true });
3730 if (typeof $fetch == 'function')
3731 $({
3732 global: true,
3733 enumerable: true,
3734 forced: true
3735 }, {
3736 fetch: function fetch(input) {
3737 return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));
3738 }
3739 });
3740 }
3741}
3742$({
3743 global: true,
3744 wrap: true,
3745 forced: FORCED
3746}, { Promise: PromiseConstructor });
3747setToStringTag(PromiseConstructor, PROMISE, false, true);
3748setSpecies(PROMISE);
3749PromiseWrapper = getBuiltIn(PROMISE);
3750$({
3751 target: PROMISE,
3752 stat: true,
3753 forced: FORCED
3754}, {
3755 reject: function reject(r) {
3756 var capability = newPromiseCapability(this);
3757 capability.reject.call(undefined, r);
3758 return capability.promise;
3759 }
3760});
3761$({
3762 target: PROMISE,
3763 stat: true,
3764 forced: IS_PURE || FORCED
3765}, {
3766 resolve: function resolve(x) {
3767 return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);
3768 }
3769});
3770$({
3771 target: PROMISE,
3772 stat: true,
3773 forced: INCORRECT_ITERATION
3774}, {
3775 all: function all(iterable) {
3776 var C = this;
3777 var capability = newPromiseCapability(C);
3778 var resolve = capability.resolve;
3779 var reject = capability.reject;
3780 var result = perform(function () {
3781 var $promiseResolve = aFunction(C.resolve);
3782 var values = [];
3783 var counter = 0;
3784 var remaining = 1;
3785 iterate(iterable, function (promise) {
3786 var index = counter++;
3787 var alreadyCalled = false;
3788 values.push(undefined);
3789 remaining++;
3790 $promiseResolve.call(C, promise).then(function (value) {
3791 if (alreadyCalled)
3792 return;
3793 alreadyCalled = true;
3794 values[index] = value;
3795 --remaining || resolve(values);
3796 }, reject);
3797 });
3798 --remaining || resolve(values);
3799 });
3800 if (result.error)
3801 reject(result.value);
3802 return capability.promise;
3803 },
3804 race: function race(iterable) {
3805 var C = this;
3806 var capability = newPromiseCapability(C);
3807 var reject = capability.reject;
3808 var result = perform(function () {
3809 var $promiseResolve = aFunction(C.resolve);
3810 iterate(iterable, function (promise) {
3811 $promiseResolve.call(C, promise).then(capability.resolve, reject);
3812 });
3813 });
3814 if (result.error)
3815 reject(result.value);
3816 return capability.promise;
3817 }
3818});
3819
3820/***/ }),
3821/* 111 */
3822/***/ (function(module, exports, __w_pdfjs_require__) {
3823
3824var global = __w_pdfjs_require__(6);
3825module.exports = global.Promise;
3826
3827/***/ }),
3828/* 112 */
3829/***/ (function(module, exports, __w_pdfjs_require__) {
3830
3831var redefine = __w_pdfjs_require__(24);
3832module.exports = function (target, src, options) {
3833 for (var key in src)
3834 redefine(target, key, src[key], options);
3835 return target;
3836};
3837
3838/***/ }),
3839/* 113 */
3840/***/ (function(module, exports, __w_pdfjs_require__) {
3841
3842"use strict";
3843
3844var getBuiltIn = __w_pdfjs_require__(37);
3845var definePropertyModule = __w_pdfjs_require__(22);
3846var wellKnownSymbol = __w_pdfjs_require__(53);
3847var DESCRIPTORS = __w_pdfjs_require__(8);
3848var SPECIES = wellKnownSymbol('species');
3849module.exports = function (CONSTRUCTOR_NAME) {
3850 var Constructor = getBuiltIn(CONSTRUCTOR_NAME);
3851 var defineProperty = definePropertyModule.f;
3852 if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {
3853 defineProperty(Constructor, SPECIES, {
3854 configurable: true,
3855 get: function () {
3856 return this;
3857 }
3858 });
3859 }
3860};
3861
3862/***/ }),
3863/* 114 */
3864/***/ (function(module, exports) {
3865
3866module.exports = function (it, Constructor, name) {
3867 if (!(it instanceof Constructor)) {
3868 throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');
3869 }
3870 return it;
3871};
3872
3873/***/ }),
3874/* 115 */
3875/***/ (function(module, exports, __w_pdfjs_require__) {
3876
3877var anObject = __w_pdfjs_require__(23);
3878var isArrayIteratorMethod = __w_pdfjs_require__(88);
3879var toLength = __w_pdfjs_require__(42);
3880var bind = __w_pdfjs_require__(58);
3881var getIteratorMethod = __w_pdfjs_require__(90);
3882var callWithSafeIterationClosing = __w_pdfjs_require__(87);
3883var Result = function (stopped, result) {
3884 this.stopped = stopped;
3885 this.result = result;
3886};
3887var iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {
3888 var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);
3889 var iterator, iterFn, index, length, result, next, step;
3890 if (IS_ITERATOR) {
3891 iterator = iterable;
3892 } else {
3893 iterFn = getIteratorMethod(iterable);
3894 if (typeof iterFn != 'function')
3895 throw TypeError('Target is not iterable');
3896 if (isArrayIteratorMethod(iterFn)) {
3897 for (index = 0, length = toLength(iterable.length); length > index; index++) {
3898 result = AS_ENTRIES ? boundFunction(anObject(step = iterable[index])[0], step[1]) : boundFunction(iterable[index]);
3899 if (result && result instanceof Result)
3900 return result;
3901 }
3902 return new Result(false);
3903 }
3904 iterator = iterFn.call(iterable);
3905 }
3906 next = iterator.next;
3907 while (!(step = next.call(iterator)).done) {
3908 result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);
3909 if (typeof result == 'object' && result && result instanceof Result)
3910 return result;
3911 }
3912 return new Result(false);
3913};
3914iterate.stop = function (result) {
3915 return new Result(true, result);
3916};
3917
3918/***/ }),
3919/* 116 */
3920/***/ (function(module, exports, __w_pdfjs_require__) {
3921
3922var anObject = __w_pdfjs_require__(23);
3923var aFunction = __w_pdfjs_require__(59);
3924var wellKnownSymbol = __w_pdfjs_require__(53);
3925var SPECIES = wellKnownSymbol('species');
3926module.exports = function (O, defaultConstructor) {
3927 var C = anObject(O).constructor;
3928 var S;
3929 return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);
3930};
3931
3932/***/ }),
3933/* 117 */
3934/***/ (function(module, exports, __w_pdfjs_require__) {
3935
3936var global = __w_pdfjs_require__(6);
3937var fails = __w_pdfjs_require__(9);
3938var classof = __w_pdfjs_require__(14);
3939var bind = __w_pdfjs_require__(58);
3940var html = __w_pdfjs_require__(70);
3941var createElement = __w_pdfjs_require__(20);
3942var IS_IOS = __w_pdfjs_require__(118);
3943var location = global.location;
3944var set = global.setImmediate;
3945var clear = global.clearImmediate;
3946var process = global.process;
3947var MessageChannel = global.MessageChannel;
3948var Dispatch = global.Dispatch;
3949var counter = 0;
3950var queue = {};
3951var ONREADYSTATECHANGE = 'onreadystatechange';
3952var defer, channel, port;
3953var run = function (id) {
3954 if (queue.hasOwnProperty(id)) {
3955 var fn = queue[id];
3956 delete queue[id];
3957 fn();
3958 }
3959};
3960var runner = function (id) {
3961 return function () {
3962 run(id);
3963 };
3964};
3965var listener = function (event) {
3966 run(event.data);
3967};
3968var post = function (id) {
3969 global.postMessage(id + '', location.protocol + '//' + location.host);
3970};
3971if (!set || !clear) {
3972 set = function setImmediate(fn) {
3973 var args = [];
3974 var i = 1;
3975 while (arguments.length > i)
3976 args.push(arguments[i++]);
3977 queue[++counter] = function () {
3978 (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);
3979 };
3980 defer(counter);
3981 return counter;
3982 };
3983 clear = function clearImmediate(id) {
3984 delete queue[id];
3985 };
3986 if (classof(process) == 'process') {
3987 defer = function (id) {
3988 process.nextTick(runner(id));
3989 };
3990 } else if (Dispatch && Dispatch.now) {
3991 defer = function (id) {
3992 Dispatch.now(runner(id));
3993 };
3994 } else if (MessageChannel && !IS_IOS) {
3995 channel = new MessageChannel();
3996 port = channel.port2;
3997 channel.port1.onmessage = listener;
3998 defer = bind(port.postMessage, port, 1);
3999 } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {
4000 defer = post;
4001 global.addEventListener('message', listener, false);
4002 } else if (ONREADYSTATECHANGE in createElement('script')) {
4003 defer = function (id) {
4004 html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {
4005 html.removeChild(this);
4006 run(id);
4007 };
4008 };
4009 } else {
4010 defer = function (id) {
4011 setTimeout(runner(id), 0);
4012 };
4013 }
4014}
4015module.exports = {
4016 set: set,
4017 clear: clear
4018};
4019
4020/***/ }),
4021/* 118 */
4022/***/ (function(module, exports, __w_pdfjs_require__) {
4023
4024var userAgent = __w_pdfjs_require__(119);
4025module.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);
4026
4027/***/ }),
4028/* 119 */
4029/***/ (function(module, exports, __w_pdfjs_require__) {
4030
4031var getBuiltIn = __w_pdfjs_require__(37);
4032module.exports = getBuiltIn('navigator', 'userAgent') || '';
4033
4034/***/ }),
4035/* 120 */
4036/***/ (function(module, exports, __w_pdfjs_require__) {
4037
4038var global = __w_pdfjs_require__(6);
4039var getOwnPropertyDescriptor = __w_pdfjs_require__(7).f;
4040var classof = __w_pdfjs_require__(14);
4041var macrotask = __w_pdfjs_require__(117).set;
4042var IS_IOS = __w_pdfjs_require__(118);
4043var MutationObserver = global.MutationObserver || global.WebKitMutationObserver;
4044var process = global.process;
4045var Promise = global.Promise;
4046var IS_NODE = classof(process) == 'process';
4047var queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');
4048var queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;
4049var flush, head, last, notify, toggle, node, promise, then;
4050if (!queueMicrotask) {
4051 flush = function () {
4052 var parent, fn;
4053 if (IS_NODE && (parent = process.domain))
4054 parent.exit();
4055 while (head) {
4056 fn = head.fn;
4057 head = head.next;
4058 try {
4059 fn();
4060 } catch (error) {
4061 if (head)
4062 notify();
4063 else
4064 last = undefined;
4065 throw error;
4066 }
4067 }
4068 last = undefined;
4069 if (parent)
4070 parent.enter();
4071 };
4072 if (IS_NODE) {
4073 notify = function () {
4074 process.nextTick(flush);
4075 };
4076 } else if (MutationObserver && !IS_IOS) {
4077 toggle = true;
4078 node = document.createTextNode('');
4079 new MutationObserver(flush).observe(node, { characterData: true });
4080 notify = function () {
4081 node.data = toggle = !toggle;
4082 };
4083 } else if (Promise && Promise.resolve) {
4084 promise = Promise.resolve(undefined);
4085 then = promise.then;
4086 notify = function () {
4087 then.call(promise, flush);
4088 };
4089 } else {
4090 notify = function () {
4091 macrotask.call(global, flush);
4092 };
4093 }
4094}
4095module.exports = queueMicrotask || function (fn) {
4096 var task = {
4097 fn: fn,
4098 next: undefined
4099 };
4100 if (last)
4101 last.next = task;
4102 if (!head) {
4103 head = task;
4104 notify();
4105 }
4106 last = task;
4107};
4108
4109/***/ }),
4110/* 121 */
4111/***/ (function(module, exports, __w_pdfjs_require__) {
4112
4113var anObject = __w_pdfjs_require__(23);
4114var isObject = __w_pdfjs_require__(17);
4115var newPromiseCapability = __w_pdfjs_require__(122);
4116module.exports = function (C, x) {
4117 anObject(C);
4118 if (isObject(x) && x.constructor === C)
4119 return x;
4120 var promiseCapability = newPromiseCapability.f(C);
4121 var resolve = promiseCapability.resolve;
4122 resolve(x);
4123 return promiseCapability.promise;
4124};
4125
4126/***/ }),
4127/* 122 */
4128/***/ (function(module, exports, __w_pdfjs_require__) {
4129
4130"use strict";
4131
4132var aFunction = __w_pdfjs_require__(59);
4133var PromiseCapability = function (C) {
4134 var resolve, reject;
4135 this.promise = new C(function ($$resolve, $$reject) {
4136 if (resolve !== undefined || reject !== undefined)
4137 throw TypeError('Bad Promise constructor');
4138 resolve = $$resolve;
4139 reject = $$reject;
4140 });
4141 this.resolve = aFunction(resolve);
4142 this.reject = aFunction(reject);
4143};
4144module.exports.f = function (C) {
4145 return new PromiseCapability(C);
4146};
4147
4148/***/ }),
4149/* 123 */
4150/***/ (function(module, exports, __w_pdfjs_require__) {
4151
4152var global = __w_pdfjs_require__(6);
4153module.exports = function (a, b) {
4154 var console = global.console;
4155 if (console && console.error) {
4156 arguments.length === 1 ? console.error(a) : console.error(a, b);
4157 }
4158};
4159
4160/***/ }),
4161/* 124 */
4162/***/ (function(module, exports) {
4163
4164module.exports = function (exec) {
4165 try {
4166 return {
4167 error: false,
4168 value: exec()
4169 };
4170 } catch (error) {
4171 return {
4172 error: true,
4173 value: error
4174 };
4175 }
4176};
4177
4178/***/ }),
4179/* 125 */
4180/***/ (function(module, exports, __w_pdfjs_require__) {
4181
4182var global = __w_pdfjs_require__(6);
4183var userAgent = __w_pdfjs_require__(119);
4184var process = global.process;
4185var versions = process && process.versions;
4186var v8 = versions && versions.v8;
4187var match, version;
4188if (v8) {
4189 match = v8.split('.');
4190 version = match[0] + match[1];
4191} else if (userAgent) {
4192 match = userAgent.match(/Edge\/(\d+)/);
4193 if (!match || match[1] >= 74) {
4194 match = userAgent.match(/Chrome\/(\d+)/);
4195 if (match)
4196 version = match[1];
4197 }
4198}
4199module.exports = version && +version;
4200
4201/***/ }),
4202/* 126 */
4203/***/ (function(module, exports, __w_pdfjs_require__) {
4204
4205"use strict";
4206
4207var $ = __w_pdfjs_require__(5);
4208var aFunction = __w_pdfjs_require__(59);
4209var newPromiseCapabilityModule = __w_pdfjs_require__(122);
4210var perform = __w_pdfjs_require__(124);
4211var iterate = __w_pdfjs_require__(115);
4212$({
4213 target: 'Promise',
4214 stat: true
4215}, {
4216 allSettled: function allSettled(iterable) {
4217 var C = this;
4218 var capability = newPromiseCapabilityModule.f(C);
4219 var resolve = capability.resolve;
4220 var reject = capability.reject;
4221 var result = perform(function () {
4222 var promiseResolve = aFunction(C.resolve);
4223 var values = [];
4224 var counter = 0;
4225 var remaining = 1;
4226 iterate(iterable, function (promise) {
4227 var index = counter++;
4228 var alreadyCalled = false;
4229 values.push(undefined);
4230 remaining++;
4231 promiseResolve.call(C, promise).then(function (value) {
4232 if (alreadyCalled)
4233 return;
4234 alreadyCalled = true;
4235 values[index] = {
4236 status: 'fulfilled',
4237 value: value
4238 };
4239 --remaining || resolve(values);
4240 }, function (e) {
4241 if (alreadyCalled)
4242 return;
4243 alreadyCalled = true;
4244 values[index] = {
4245 status: 'rejected',
4246 reason: e
4247 };
4248 --remaining || resolve(values);
4249 });
4250 });
4251 --remaining || resolve(values);
4252 });
4253 if (result.error)
4254 reject(result.value);
4255 return capability.promise;
4256 }
4257});
4258
4259/***/ }),
4260/* 127 */
4261/***/ (function(module, exports, __w_pdfjs_require__) {
4262
4263"use strict";
4264
4265var $ = __w_pdfjs_require__(5);
4266var IS_PURE = __w_pdfjs_require__(32);
4267var NativePromise = __w_pdfjs_require__(111);
4268var fails = __w_pdfjs_require__(9);
4269var getBuiltIn = __w_pdfjs_require__(37);
4270var speciesConstructor = __w_pdfjs_require__(116);
4271var promiseResolve = __w_pdfjs_require__(121);
4272var redefine = __w_pdfjs_require__(24);
4273var NON_GENERIC = !!NativePromise && fails(function () {
4274 NativePromise.prototype['finally'].call({
4275 then: function () {
4276 }
4277 }, function () {
4278 });
4279});
4280$({
4281 target: 'Promise',
4282 proto: true,
4283 real: true,
4284 forced: NON_GENERIC
4285}, {
4286 'finally': function (onFinally) {
4287 var C = speciesConstructor(this, getBuiltIn('Promise'));
4288 var isFunction = typeof onFinally == 'function';
4289 return this.then(isFunction ? function (x) {
4290 return promiseResolve(C, onFinally()).then(function () {
4291 return x;
4292 });
4293 } : onFinally, isFunction ? function (e) {
4294 return promiseResolve(C, onFinally()).then(function () {
4295 throw e;
4296 });
4297 } : onFinally);
4298 }
4299});
4300if (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {
4301 redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);
4302}
4303
4304/***/ }),
4305/* 128 */
4306/***/ (function(module, exports, __w_pdfjs_require__) {
4307
4308__w_pdfjs_require__(129);
4309__w_pdfjs_require__(134);
4310__w_pdfjs_require__(132);
4311var path = __w_pdfjs_require__(38);
4312module.exports = path.URL;
4313
4314/***/ }),
4315/* 129 */
4316/***/ (function(module, exports, __w_pdfjs_require__) {
4317
4318"use strict";
4319
4320__w_pdfjs_require__(73);
4321var $ = __w_pdfjs_require__(5);
4322var DESCRIPTORS = __w_pdfjs_require__(8);
4323var USE_NATIVE_URL = __w_pdfjs_require__(130);
4324var global = __w_pdfjs_require__(6);
4325var defineProperties = __w_pdfjs_require__(68);
4326var redefine = __w_pdfjs_require__(24);
4327var anInstance = __w_pdfjs_require__(114);
4328var has = __w_pdfjs_require__(18);
4329var assign = __w_pdfjs_require__(96);
4330var arrayFrom = __w_pdfjs_require__(86);
4331var codeAt = __w_pdfjs_require__(74).codeAt;
4332var toASCII = __w_pdfjs_require__(131);
4333var setToStringTag = __w_pdfjs_require__(81);
4334var URLSearchParamsModule = __w_pdfjs_require__(132);
4335var InternalStateModule = __w_pdfjs_require__(28);
4336var NativeURL = global.URL;
4337var URLSearchParams = URLSearchParamsModule.URLSearchParams;
4338var getInternalSearchParamsState = URLSearchParamsModule.getState;
4339var setInternalState = InternalStateModule.set;
4340var getInternalURLState = InternalStateModule.getterFor('URL');
4341var floor = Math.floor;
4342var pow = Math.pow;
4343var INVALID_AUTHORITY = 'Invalid authority';
4344var INVALID_SCHEME = 'Invalid scheme';
4345var INVALID_HOST = 'Invalid host';
4346var INVALID_PORT = 'Invalid port';
4347var ALPHA = /[A-Za-z]/;
4348var ALPHANUMERIC = /[\d+\-.A-Za-z]/;
4349var DIGIT = /\d/;
4350var HEX_START = /^(0x|0X)/;
4351var OCT = /^[0-7]+$/;
4352var DEC = /^\d+$/;
4353var HEX = /^[\dA-Fa-f]+$/;
4354var FORBIDDEN_HOST_CODE_POINT = /[\u0000\u0009\u000A\u000D #%/:?@[\\]]/;
4355var FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\u0000\u0009\u000A\u000D #/:?@[\\]]/;
4356var LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\u0000-\u001F ]+|[\u0000-\u001F ]+$/g;
4357var TAB_AND_NEW_LINE = /[\u0009\u000A\u000D]/g;
4358var EOF;
4359var parseHost = function (url, input) {
4360 var result, codePoints, index;
4361 if (input.charAt(0) == '[') {
4362 if (input.charAt(input.length - 1) != ']')
4363 return INVALID_HOST;
4364 result = parseIPv6(input.slice(1, -1));
4365 if (!result)
4366 return INVALID_HOST;
4367 url.host = result;
4368 } else if (!isSpecial(url)) {
4369 if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input))
4370 return INVALID_HOST;
4371 result = '';
4372 codePoints = arrayFrom(input);
4373 for (index = 0; index < codePoints.length; index++) {
4374 result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);
4375 }
4376 url.host = result;
4377 } else {
4378 input = toASCII(input);
4379 if (FORBIDDEN_HOST_CODE_POINT.test(input))
4380 return INVALID_HOST;
4381 result = parseIPv4(input);
4382 if (result === null)
4383 return INVALID_HOST;
4384 url.host = result;
4385 }
4386};
4387var parseIPv4 = function (input) {
4388 var parts = input.split('.');
4389 var partsLength, numbers, index, part, radix, number, ipv4;
4390 if (parts.length && parts[parts.length - 1] == '') {
4391 parts.pop();
4392 }
4393 partsLength = parts.length;
4394 if (partsLength > 4)
4395 return input;
4396 numbers = [];
4397 for (index = 0; index < partsLength; index++) {
4398 part = parts[index];
4399 if (part == '')
4400 return input;
4401 radix = 10;
4402 if (part.length > 1 && part.charAt(0) == '0') {
4403 radix = HEX_START.test(part) ? 16 : 8;
4404 part = part.slice(radix == 8 ? 1 : 2);
4405 }
4406 if (part === '') {
4407 number = 0;
4408 } else {
4409 if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part))
4410 return input;
4411 number = parseInt(part, radix);
4412 }
4413 numbers.push(number);
4414 }
4415 for (index = 0; index < partsLength; index++) {
4416 number = numbers[index];
4417 if (index == partsLength - 1) {
4418 if (number >= pow(256, 5 - partsLength))
4419 return null;
4420 } else if (number > 255)
4421 return null;
4422 }
4423 ipv4 = numbers.pop();
4424 for (index = 0; index < numbers.length; index++) {
4425 ipv4 += numbers[index] * pow(256, 3 - index);
4426 }
4427 return ipv4;
4428};
4429var parseIPv6 = function (input) {
4430 var address = [
4431 0,
4432 0,
4433 0,
4434 0,
4435 0,
4436 0,
4437 0,
4438 0
4439 ];
4440 var pieceIndex = 0;
4441 var compress = null;
4442 var pointer = 0;
4443 var value, length, numbersSeen, ipv4Piece, number, swaps, swap;
4444 var char = function () {
4445 return input.charAt(pointer);
4446 };
4447 if (char() == ':') {
4448 if (input.charAt(1) != ':')
4449 return;
4450 pointer += 2;
4451 pieceIndex++;
4452 compress = pieceIndex;
4453 }
4454 while (char()) {
4455 if (pieceIndex == 8)
4456 return;
4457 if (char() == ':') {
4458 if (compress !== null)
4459 return;
4460 pointer++;
4461 pieceIndex++;
4462 compress = pieceIndex;
4463 continue;
4464 }
4465 value = length = 0;
4466 while (length < 4 && HEX.test(char())) {
4467 value = value * 16 + parseInt(char(), 16);
4468 pointer++;
4469 length++;
4470 }
4471 if (char() == '.') {
4472 if (length == 0)
4473 return;
4474 pointer -= length;
4475 if (pieceIndex > 6)
4476 return;
4477 numbersSeen = 0;
4478 while (char()) {
4479 ipv4Piece = null;
4480 if (numbersSeen > 0) {
4481 if (char() == '.' && numbersSeen < 4)
4482 pointer++;
4483 else
4484 return;
4485 }
4486 if (!DIGIT.test(char()))
4487 return;
4488 while (DIGIT.test(char())) {
4489 number = parseInt(char(), 10);
4490 if (ipv4Piece === null)
4491 ipv4Piece = number;
4492 else if (ipv4Piece == 0)
4493 return;
4494 else
4495 ipv4Piece = ipv4Piece * 10 + number;
4496 if (ipv4Piece > 255)
4497 return;
4498 pointer++;
4499 }
4500 address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;
4501 numbersSeen++;
4502 if (numbersSeen == 2 || numbersSeen == 4)
4503 pieceIndex++;
4504 }
4505 if (numbersSeen != 4)
4506 return;
4507 break;
4508 } else if (char() == ':') {
4509 pointer++;
4510 if (!char())
4511 return;
4512 } else if (char())
4513 return;
4514 address[pieceIndex++] = value;
4515 }
4516 if (compress !== null) {
4517 swaps = pieceIndex - compress;
4518 pieceIndex = 7;
4519 while (pieceIndex != 0 && swaps > 0) {
4520 swap = address[pieceIndex];
4521 address[pieceIndex--] = address[compress + swaps - 1];
4522 address[compress + --swaps] = swap;
4523 }
4524 } else if (pieceIndex != 8)
4525 return;
4526 return address;
4527};
4528var findLongestZeroSequence = function (ipv6) {
4529 var maxIndex = null;
4530 var maxLength = 1;
4531 var currStart = null;
4532 var currLength = 0;
4533 var index = 0;
4534 for (; index < 8; index++) {
4535 if (ipv6[index] !== 0) {
4536 if (currLength > maxLength) {
4537 maxIndex = currStart;
4538 maxLength = currLength;
4539 }
4540 currStart = null;
4541 currLength = 0;
4542 } else {
4543 if (currStart === null)
4544 currStart = index;
4545 ++currLength;
4546 }
4547 }
4548 if (currLength > maxLength) {
4549 maxIndex = currStart;
4550 maxLength = currLength;
4551 }
4552 return maxIndex;
4553};
4554var serializeHost = function (host) {
4555 var result, index, compress, ignore0;
4556 if (typeof host == 'number') {
4557 result = [];
4558 for (index = 0; index < 4; index++) {
4559 result.unshift(host % 256);
4560 host = floor(host / 256);
4561 }
4562 return result.join('.');
4563 } else if (typeof host == 'object') {
4564 result = '';
4565 compress = findLongestZeroSequence(host);
4566 for (index = 0; index < 8; index++) {
4567 if (ignore0 && host[index] === 0)
4568 continue;
4569 if (ignore0)
4570 ignore0 = false;
4571 if (compress === index) {
4572 result += index ? ':' : '::';
4573 ignore0 = true;
4574 } else {
4575 result += host[index].toString(16);
4576 if (index < 7)
4577 result += ':';
4578 }
4579 }
4580 return '[' + result + ']';
4581 }
4582 return host;
4583};
4584var C0ControlPercentEncodeSet = {};
4585var fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {
4586 ' ': 1,
4587 '"': 1,
4588 '<': 1,
4589 '>': 1,
4590 '`': 1
4591});
4592var pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {
4593 '#': 1,
4594 '?': 1,
4595 '{': 1,
4596 '}': 1
4597});
4598var userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {
4599 '/': 1,
4600 ':': 1,
4601 ';': 1,
4602 '=': 1,
4603 '@': 1,
4604 '[': 1,
4605 '\\': 1,
4606 ']': 1,
4607 '^': 1,
4608 '|': 1
4609});
4610var percentEncode = function (char, set) {
4611 var code = codeAt(char, 0);
4612 return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);
4613};
4614var specialSchemes = {
4615 ftp: 21,
4616 file: null,
4617 http: 80,
4618 https: 443,
4619 ws: 80,
4620 wss: 443
4621};
4622var isSpecial = function (url) {
4623 return has(specialSchemes, url.scheme);
4624};
4625var includesCredentials = function (url) {
4626 return url.username != '' || url.password != '';
4627};
4628var cannotHaveUsernamePasswordPort = function (url) {
4629 return !url.host || url.cannotBeABaseURL || url.scheme == 'file';
4630};
4631var isWindowsDriveLetter = function (string, normalized) {
4632 var second;
4633 return string.length == 2 && ALPHA.test(string.charAt(0)) && ((second = string.charAt(1)) == ':' || !normalized && second == '|');
4634};
4635var startsWithWindowsDriveLetter = function (string) {
4636 var third;
4637 return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (string.length == 2 || ((third = string.charAt(2)) === '/' || third === '\\' || third === '?' || third === '#'));
4638};
4639var shortenURLsPath = function (url) {
4640 var path = url.path;
4641 var pathSize = path.length;
4642 if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {
4643 path.pop();
4644 }
4645};
4646var isSingleDot = function (segment) {
4647 return segment === '.' || segment.toLowerCase() === '%2e';
4648};
4649var isDoubleDot = function (segment) {
4650 segment = segment.toLowerCase();
4651 return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';
4652};
4653var SCHEME_START = {};
4654var SCHEME = {};
4655var NO_SCHEME = {};
4656var SPECIAL_RELATIVE_OR_AUTHORITY = {};
4657var PATH_OR_AUTHORITY = {};
4658var RELATIVE = {};
4659var RELATIVE_SLASH = {};
4660var SPECIAL_AUTHORITY_SLASHES = {};
4661var SPECIAL_AUTHORITY_IGNORE_SLASHES = {};
4662var AUTHORITY = {};
4663var HOST = {};
4664var HOSTNAME = {};
4665var PORT = {};
4666var FILE = {};
4667var FILE_SLASH = {};
4668var FILE_HOST = {};
4669var PATH_START = {};
4670var PATH = {};
4671var CANNOT_BE_A_BASE_URL_PATH = {};
4672var QUERY = {};
4673var FRAGMENT = {};
4674var parseURL = function (url, input, stateOverride, base) {
4675 var state = stateOverride || SCHEME_START;
4676 var pointer = 0;
4677 var buffer = '';
4678 var seenAt = false;
4679 var seenBracket = false;
4680 var seenPasswordToken = false;
4681 var codePoints, char, bufferCodePoints, failure;
4682 if (!stateOverride) {
4683 url.scheme = '';
4684 url.username = '';
4685 url.password = '';
4686 url.host = null;
4687 url.port = null;
4688 url.path = [];
4689 url.query = null;
4690 url.fragment = null;
4691 url.cannotBeABaseURL = false;
4692 input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');
4693 }
4694 input = input.replace(TAB_AND_NEW_LINE, '');
4695 codePoints = arrayFrom(input);
4696 while (pointer <= codePoints.length) {
4697 char = codePoints[pointer];
4698 switch (state) {
4699 case SCHEME_START:
4700 if (char && ALPHA.test(char)) {
4701 buffer += char.toLowerCase();
4702 state = SCHEME;
4703 } else if (!stateOverride) {
4704 state = NO_SCHEME;
4705 continue;
4706 } else
4707 return INVALID_SCHEME;
4708 break;
4709 case SCHEME:
4710 if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {
4711 buffer += char.toLowerCase();
4712 } else if (char == ':') {
4713 if (stateOverride && (isSpecial(url) != has(specialSchemes, buffer) || buffer == 'file' && (includesCredentials(url) || url.port !== null) || url.scheme == 'file' && !url.host))
4714 return;
4715 url.scheme = buffer;
4716 if (stateOverride) {
4717 if (isSpecial(url) && specialSchemes[url.scheme] == url.port)
4718 url.port = null;
4719 return;
4720 }
4721 buffer = '';
4722 if (url.scheme == 'file') {
4723 state = FILE;
4724 } else if (isSpecial(url) && base && base.scheme == url.scheme) {
4725 state = SPECIAL_RELATIVE_OR_AUTHORITY;
4726 } else if (isSpecial(url)) {
4727 state = SPECIAL_AUTHORITY_SLASHES;
4728 } else if (codePoints[pointer + 1] == '/') {
4729 state = PATH_OR_AUTHORITY;
4730 pointer++;
4731 } else {
4732 url.cannotBeABaseURL = true;
4733 url.path.push('');
4734 state = CANNOT_BE_A_BASE_URL_PATH;
4735 }
4736 } else if (!stateOverride) {
4737 buffer = '';
4738 state = NO_SCHEME;
4739 pointer = 0;
4740 continue;
4741 } else
4742 return INVALID_SCHEME;
4743 break;
4744 case NO_SCHEME:
4745 if (!base || base.cannotBeABaseURL && char != '#')
4746 return INVALID_SCHEME;
4747 if (base.cannotBeABaseURL && char == '#') {
4748 url.scheme = base.scheme;
4749 url.path = base.path.slice();
4750 url.query = base.query;
4751 url.fragment = '';
4752 url.cannotBeABaseURL = true;
4753 state = FRAGMENT;
4754 break;
4755 }
4756 state = base.scheme == 'file' ? FILE : RELATIVE;
4757 continue;
4758 case SPECIAL_RELATIVE_OR_AUTHORITY:
4759 if (char == '/' && codePoints[pointer + 1] == '/') {
4760 state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
4761 pointer++;
4762 } else {
4763 state = RELATIVE;
4764 continue;
4765 }
4766 break;
4767 case PATH_OR_AUTHORITY:
4768 if (char == '/') {
4769 state = AUTHORITY;
4770 break;
4771 } else {
4772 state = PATH;
4773 continue;
4774 }
4775 case RELATIVE:
4776 url.scheme = base.scheme;
4777 if (char == EOF) {
4778 url.username = base.username;
4779 url.password = base.password;
4780 url.host = base.host;
4781 url.port = base.port;
4782 url.path = base.path.slice();
4783 url.query = base.query;
4784 } else if (char == '/' || char == '\\' && isSpecial(url)) {
4785 state = RELATIVE_SLASH;
4786 } else if (char == '?') {
4787 url.username = base.username;
4788 url.password = base.password;
4789 url.host = base.host;
4790 url.port = base.port;
4791 url.path = base.path.slice();
4792 url.query = '';
4793 state = QUERY;
4794 } else if (char == '#') {
4795 url.username = base.username;
4796 url.password = base.password;
4797 url.host = base.host;
4798 url.port = base.port;
4799 url.path = base.path.slice();
4800 url.query = base.query;
4801 url.fragment = '';
4802 state = FRAGMENT;
4803 } else {
4804 url.username = base.username;
4805 url.password = base.password;
4806 url.host = base.host;
4807 url.port = base.port;
4808 url.path = base.path.slice();
4809 url.path.pop();
4810 state = PATH;
4811 continue;
4812 }
4813 break;
4814 case RELATIVE_SLASH:
4815 if (isSpecial(url) && (char == '/' || char == '\\')) {
4816 state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
4817 } else if (char == '/') {
4818 state = AUTHORITY;
4819 } else {
4820 url.username = base.username;
4821 url.password = base.password;
4822 url.host = base.host;
4823 url.port = base.port;
4824 state = PATH;
4825 continue;
4826 }
4827 break;
4828 case SPECIAL_AUTHORITY_SLASHES:
4829 state = SPECIAL_AUTHORITY_IGNORE_SLASHES;
4830 if (char != '/' || buffer.charAt(pointer + 1) != '/')
4831 continue;
4832 pointer++;
4833 break;
4834 case SPECIAL_AUTHORITY_IGNORE_SLASHES:
4835 if (char != '/' && char != '\\') {
4836 state = AUTHORITY;
4837 continue;
4838 }
4839 break;
4840 case AUTHORITY:
4841 if (char == '@') {
4842 if (seenAt)
4843 buffer = '%40' + buffer;
4844 seenAt = true;
4845 bufferCodePoints = arrayFrom(buffer);
4846 for (var i = 0; i < bufferCodePoints.length; i++) {
4847 var codePoint = bufferCodePoints[i];
4848 if (codePoint == ':' && !seenPasswordToken) {
4849 seenPasswordToken = true;
4850 continue;
4851 }
4852 var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);
4853 if (seenPasswordToken)
4854 url.password += encodedCodePoints;
4855 else
4856 url.username += encodedCodePoints;
4857 }
4858 buffer = '';
4859 } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url)) {
4860 if (seenAt && buffer == '')
4861 return INVALID_AUTHORITY;
4862 pointer -= arrayFrom(buffer).length + 1;
4863 buffer = '';
4864 state = HOST;
4865 } else
4866 buffer += char;
4867 break;
4868 case HOST:
4869 case HOSTNAME:
4870 if (stateOverride && url.scheme == 'file') {
4871 state = FILE_HOST;
4872 continue;
4873 } else if (char == ':' && !seenBracket) {
4874 if (buffer == '')
4875 return INVALID_HOST;
4876 failure = parseHost(url, buffer);
4877 if (failure)
4878 return failure;
4879 buffer = '';
4880 state = PORT;
4881 if (stateOverride == HOSTNAME)
4882 return;
4883 } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url)) {
4884 if (isSpecial(url) && buffer == '')
4885 return INVALID_HOST;
4886 if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null))
4887 return;
4888 failure = parseHost(url, buffer);
4889 if (failure)
4890 return failure;
4891 buffer = '';
4892 state = PATH_START;
4893 if (stateOverride)
4894 return;
4895 continue;
4896 } else {
4897 if (char == '[')
4898 seenBracket = true;
4899 else if (char == ']')
4900 seenBracket = false;
4901 buffer += char;
4902 }
4903 break;
4904 case PORT:
4905 if (DIGIT.test(char)) {
4906 buffer += char;
4907 } else if (char == EOF || char == '/' || char == '?' || char == '#' || char == '\\' && isSpecial(url) || stateOverride) {
4908 if (buffer != '') {
4909 var port = parseInt(buffer, 10);
4910 if (port > 0xFFFF)
4911 return INVALID_PORT;
4912 url.port = isSpecial(url) && port === specialSchemes[url.scheme] ? null : port;
4913 buffer = '';
4914 }
4915 if (stateOverride)
4916 return;
4917 state = PATH_START;
4918 continue;
4919 } else
4920 return INVALID_PORT;
4921 break;
4922 case FILE:
4923 url.scheme = 'file';
4924 if (char == '/' || char == '\\')
4925 state = FILE_SLASH;
4926 else if (base && base.scheme == 'file') {
4927 if (char == EOF) {
4928 url.host = base.host;
4929 url.path = base.path.slice();
4930 url.query = base.query;
4931 } else if (char == '?') {
4932 url.host = base.host;
4933 url.path = base.path.slice();
4934 url.query = '';
4935 state = QUERY;
4936 } else if (char == '#') {
4937 url.host = base.host;
4938 url.path = base.path.slice();
4939 url.query = base.query;
4940 url.fragment = '';
4941 state = FRAGMENT;
4942 } else {
4943 if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
4944 url.host = base.host;
4945 url.path = base.path.slice();
4946 shortenURLsPath(url);
4947 }
4948 state = PATH;
4949 continue;
4950 }
4951 } else {
4952 state = PATH;
4953 continue;
4954 }
4955 break;
4956 case FILE_SLASH:
4957 if (char == '/' || char == '\\') {
4958 state = FILE_HOST;
4959 break;
4960 }
4961 if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {
4962 if (isWindowsDriveLetter(base.path[0], true))
4963 url.path.push(base.path[0]);
4964 else
4965 url.host = base.host;
4966 }
4967 state = PATH;
4968 continue;
4969 case FILE_HOST:
4970 if (char == EOF || char == '/' || char == '\\' || char == '?' || char == '#') {
4971 if (!stateOverride && isWindowsDriveLetter(buffer)) {
4972 state = PATH;
4973 } else if (buffer == '') {
4974 url.host = '';
4975 if (stateOverride)
4976 return;
4977 state = PATH_START;
4978 } else {
4979 failure = parseHost(url, buffer);
4980 if (failure)
4981 return failure;
4982 if (url.host == 'localhost')
4983 url.host = '';
4984 if (stateOverride)
4985 return;
4986 buffer = '';
4987 state = PATH_START;
4988 }
4989 continue;
4990 } else
4991 buffer += char;
4992 break;
4993 case PATH_START:
4994 if (isSpecial(url)) {
4995 state = PATH;
4996 if (char != '/' && char != '\\')
4997 continue;
4998 } else if (!stateOverride && char == '?') {
4999 url.query = '';
5000 state = QUERY;
5001 } else if (!stateOverride && char == '#') {
5002 url.fragment = '';
5003 state = FRAGMENT;
5004 } else if (char != EOF) {
5005 state = PATH;
5006 if (char != '/')
5007 continue;
5008 }
5009 break;
5010 case PATH:
5011 if (char == EOF || char == '/' || char == '\\' && isSpecial(url) || !stateOverride && (char == '?' || char == '#')) {
5012 if (isDoubleDot(buffer)) {
5013 shortenURLsPath(url);
5014 if (char != '/' && !(char == '\\' && isSpecial(url))) {
5015 url.path.push('');
5016 }
5017 } else if (isSingleDot(buffer)) {
5018 if (char != '/' && !(char == '\\' && isSpecial(url))) {
5019 url.path.push('');
5020 }
5021 } else {
5022 if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {
5023 if (url.host)
5024 url.host = '';
5025 buffer = buffer.charAt(0) + ':';
5026 }
5027 url.path.push(buffer);
5028 }
5029 buffer = '';
5030 if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {
5031 while (url.path.length > 1 && url.path[0] === '') {
5032 url.path.shift();
5033 }
5034 }
5035 if (char == '?') {
5036 url.query = '';
5037 state = QUERY;
5038 } else if (char == '#') {
5039 url.fragment = '';
5040 state = FRAGMENT;
5041 }
5042 } else {
5043 buffer += percentEncode(char, pathPercentEncodeSet);
5044 }
5045 break;
5046 case CANNOT_BE_A_BASE_URL_PATH:
5047 if (char == '?') {
5048 url.query = '';
5049 state = QUERY;
5050 } else if (char == '#') {
5051 url.fragment = '';
5052 state = FRAGMENT;
5053 } else if (char != EOF) {
5054 url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);
5055 }
5056 break;
5057 case QUERY:
5058 if (!stateOverride && char == '#') {
5059 url.fragment = '';
5060 state = FRAGMENT;
5061 } else if (char != EOF) {
5062 if (char == "'" && isSpecial(url))
5063 url.query += '%27';
5064 else if (char == '#')
5065 url.query += '%23';
5066 else
5067 url.query += percentEncode(char, C0ControlPercentEncodeSet);
5068 }
5069 break;
5070 case FRAGMENT:
5071 if (char != EOF)
5072 url.fragment += percentEncode(char, fragmentPercentEncodeSet);
5073 break;
5074 }
5075 pointer++;
5076 }
5077};
5078var URLConstructor = function URL(url) {
5079 var that = anInstance(this, URLConstructor, 'URL');
5080 var base = arguments.length > 1 ? arguments[1] : undefined;
5081 var urlString = String(url);
5082 var state = setInternalState(that, { type: 'URL' });
5083 var baseState, failure;
5084 if (base !== undefined) {
5085 if (base instanceof URLConstructor)
5086 baseState = getInternalURLState(base);
5087 else {
5088 failure = parseURL(baseState = {}, String(base));
5089 if (failure)
5090 throw TypeError(failure);
5091 }
5092 }
5093 failure = parseURL(state, urlString, null, baseState);
5094 if (failure)
5095 throw TypeError(failure);
5096 var searchParams = state.searchParams = new URLSearchParams();
5097 var searchParamsState = getInternalSearchParamsState(searchParams);
5098 searchParamsState.updateSearchParams(state.query);
5099 searchParamsState.updateURL = function () {
5100 state.query = String(searchParams) || null;
5101 };
5102 if (!DESCRIPTORS) {
5103 that.href = serializeURL.call(that);
5104 that.origin = getOrigin.call(that);
5105 that.protocol = getProtocol.call(that);
5106 that.username = getUsername.call(that);
5107 that.password = getPassword.call(that);
5108 that.host = getHost.call(that);
5109 that.hostname = getHostname.call(that);
5110 that.port = getPort.call(that);
5111 that.pathname = getPathname.call(that);
5112 that.search = getSearch.call(that);
5113 that.searchParams = getSearchParams.call(that);
5114 that.hash = getHash.call(that);
5115 }
5116};
5117var URLPrototype = URLConstructor.prototype;
5118var serializeURL = function () {
5119 var url = getInternalURLState(this);
5120 var scheme = url.scheme;
5121 var username = url.username;
5122 var password = url.password;
5123 var host = url.host;
5124 var port = url.port;
5125 var path = url.path;
5126 var query = url.query;
5127 var fragment = url.fragment;
5128 var output = scheme + ':';
5129 if (host !== null) {
5130 output += '//';
5131 if (includesCredentials(url)) {
5132 output += username + (password ? ':' + password : '') + '@';
5133 }
5134 output += serializeHost(host);
5135 if (port !== null)
5136 output += ':' + port;
5137 } else if (scheme == 'file')
5138 output += '//';
5139 output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
5140 if (query !== null)
5141 output += '?' + query;
5142 if (fragment !== null)
5143 output += '#' + fragment;
5144 return output;
5145};
5146var getOrigin = function () {
5147 var url = getInternalURLState(this);
5148 var scheme = url.scheme;
5149 var port = url.port;
5150 if (scheme == 'blob')
5151 try {
5152 return new URL(scheme.path[0]).origin;
5153 } catch (error) {
5154 return 'null';
5155 }
5156 if (scheme == 'file' || !isSpecial(url))
5157 return 'null';
5158 return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');
5159};
5160var getProtocol = function () {
5161 return getInternalURLState(this).scheme + ':';
5162};
5163var getUsername = function () {
5164 return getInternalURLState(this).username;
5165};
5166var getPassword = function () {
5167 return getInternalURLState(this).password;
5168};
5169var getHost = function () {
5170 var url = getInternalURLState(this);
5171 var host = url.host;
5172 var port = url.port;
5173 return host === null ? '' : port === null ? serializeHost(host) : serializeHost(host) + ':' + port;
5174};
5175var getHostname = function () {
5176 var host = getInternalURLState(this).host;
5177 return host === null ? '' : serializeHost(host);
5178};
5179var getPort = function () {
5180 var port = getInternalURLState(this).port;
5181 return port === null ? '' : String(port);
5182};
5183var getPathname = function () {
5184 var url = getInternalURLState(this);
5185 var path = url.path;
5186 return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';
5187};
5188var getSearch = function () {
5189 var query = getInternalURLState(this).query;
5190 return query ? '?' + query : '';
5191};
5192var getSearchParams = function () {
5193 return getInternalURLState(this).searchParams;
5194};
5195var getHash = function () {
5196 var fragment = getInternalURLState(this).fragment;
5197 return fragment ? '#' + fragment : '';
5198};
5199var accessorDescriptor = function (getter, setter) {
5200 return {
5201 get: getter,
5202 set: setter,
5203 configurable: true,
5204 enumerable: true
5205 };
5206};
5207if (DESCRIPTORS) {
5208 defineProperties(URLPrototype, {
5209 href: accessorDescriptor(serializeURL, function (href) {
5210 var url = getInternalURLState(this);
5211 var urlString = String(href);
5212 var failure = parseURL(url, urlString);
5213 if (failure)
5214 throw TypeError(failure);
5215 getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
5216 }),
5217 origin: accessorDescriptor(getOrigin),
5218 protocol: accessorDescriptor(getProtocol, function (protocol) {
5219 var url = getInternalURLState(this);
5220 parseURL(url, String(protocol) + ':', SCHEME_START);
5221 }),
5222 username: accessorDescriptor(getUsername, function (username) {
5223 var url = getInternalURLState(this);
5224 var codePoints = arrayFrom(String(username));
5225 if (cannotHaveUsernamePasswordPort(url))
5226 return;
5227 url.username = '';
5228 for (var i = 0; i < codePoints.length; i++) {
5229 url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);
5230 }
5231 }),
5232 password: accessorDescriptor(getPassword, function (password) {
5233 var url = getInternalURLState(this);
5234 var codePoints = arrayFrom(String(password));
5235 if (cannotHaveUsernamePasswordPort(url))
5236 return;
5237 url.password = '';
5238 for (var i = 0; i < codePoints.length; i++) {
5239 url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);
5240 }
5241 }),
5242 host: accessorDescriptor(getHost, function (host) {
5243 var url = getInternalURLState(this);
5244 if (url.cannotBeABaseURL)
5245 return;
5246 parseURL(url, String(host), HOST);
5247 }),
5248 hostname: accessorDescriptor(getHostname, function (hostname) {
5249 var url = getInternalURLState(this);
5250 if (url.cannotBeABaseURL)
5251 return;
5252 parseURL(url, String(hostname), HOSTNAME);
5253 }),
5254 port: accessorDescriptor(getPort, function (port) {
5255 var url = getInternalURLState(this);
5256 if (cannotHaveUsernamePasswordPort(url))
5257 return;
5258 port = String(port);
5259 if (port == '')
5260 url.port = null;
5261 else
5262 parseURL(url, port, PORT);
5263 }),
5264 pathname: accessorDescriptor(getPathname, function (pathname) {
5265 var url = getInternalURLState(this);
5266 if (url.cannotBeABaseURL)
5267 return;
5268 url.path = [];
5269 parseURL(url, pathname + '', PATH_START);
5270 }),
5271 search: accessorDescriptor(getSearch, function (search) {
5272 var url = getInternalURLState(this);
5273 search = String(search);
5274 if (search == '') {
5275 url.query = null;
5276 } else {
5277 if ('?' == search.charAt(0))
5278 search = search.slice(1);
5279 url.query = '';
5280 parseURL(url, search, QUERY);
5281 }
5282 getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);
5283 }),
5284 searchParams: accessorDescriptor(getSearchParams),
5285 hash: accessorDescriptor(getHash, function (hash) {
5286 var url = getInternalURLState(this);
5287 hash = String(hash);
5288 if (hash == '') {
5289 url.fragment = null;
5290 return;
5291 }
5292 if ('#' == hash.charAt(0))
5293 hash = hash.slice(1);
5294 url.fragment = '';
5295 parseURL(url, hash, FRAGMENT);
5296 })
5297 });
5298}
5299redefine(URLPrototype, 'toJSON', function toJSON() {
5300 return serializeURL.call(this);
5301}, { enumerable: true });
5302redefine(URLPrototype, 'toString', function toString() {
5303 return serializeURL.call(this);
5304}, { enumerable: true });
5305if (NativeURL) {
5306 var nativeCreateObjectURL = NativeURL.createObjectURL;
5307 var nativeRevokeObjectURL = NativeURL.revokeObjectURL;
5308 if (nativeCreateObjectURL)
5309 redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {
5310 return nativeCreateObjectURL.apply(NativeURL, arguments);
5311 });
5312 if (nativeRevokeObjectURL)
5313 redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {
5314 return nativeRevokeObjectURL.apply(NativeURL, arguments);
5315 });
5316}
5317setToStringTag(URLConstructor, 'URL');
5318$({
5319 global: true,
5320 forced: !USE_NATIVE_URL,
5321 sham: !DESCRIPTORS
5322}, { URL: URLConstructor });
5323
5324/***/ }),
5325/* 130 */
5326/***/ (function(module, exports, __w_pdfjs_require__) {
5327
5328var fails = __w_pdfjs_require__(9);
5329var wellKnownSymbol = __w_pdfjs_require__(53);
5330var IS_PURE = __w_pdfjs_require__(32);
5331var ITERATOR = wellKnownSymbol('iterator');
5332module.exports = !fails(function () {
5333 var url = new URL('b?a=1&b=2&c=3', 'http://a');
5334 var searchParams = url.searchParams;
5335 var result = '';
5336 url.pathname = 'c%20d';
5337 searchParams.forEach(function (value, key) {
5338 searchParams['delete']('b');
5339 result += key + value;
5340 });
5341 return IS_PURE && !url.toJSON || !searchParams.sort || url.href !== 'http://a/c%20d?a=1&c=3' || searchParams.get('c') !== '3' || String(new URLSearchParams('?a=1')) !== 'a=1' || !searchParams[ITERATOR] || new URL('https://a@b').username !== 'a' || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b' || new URL('http://тест').host !== 'xn--e1aybc' || new URL('http://a#б').hash !== '#%D0%B1' || result !== 'a1c3' || new URL('http://x', undefined).host !== 'x';
5342});
5343
5344/***/ }),
5345/* 131 */
5346/***/ (function(module, exports, __w_pdfjs_require__) {
5347
5348"use strict";
5349
5350var maxInt = 2147483647;
5351var base = 36;
5352var tMin = 1;
5353var tMax = 26;
5354var skew = 38;
5355var damp = 700;
5356var initialBias = 72;
5357var initialN = 128;
5358var delimiter = '-';
5359var regexNonASCII = /[^\0-\u007E]/;
5360var regexSeparators = /[.\u3002\uFF0E\uFF61]/g;
5361var OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';
5362var baseMinusTMin = base - tMin;
5363var floor = Math.floor;
5364var stringFromCharCode = String.fromCharCode;
5365var ucs2decode = function (string) {
5366 var output = [];
5367 var counter = 0;
5368 var length = string.length;
5369 while (counter < length) {
5370 var value = string.charCodeAt(counter++);
5371 if (value >= 0xD800 && value <= 0xDBFF && counter < length) {
5372 var extra = string.charCodeAt(counter++);
5373 if ((extra & 0xFC00) == 0xDC00) {
5374 output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);
5375 } else {
5376 output.push(value);
5377 counter--;
5378 }
5379 } else {
5380 output.push(value);
5381 }
5382 }
5383 return output;
5384};
5385var digitToBasic = function (digit) {
5386 return digit + 22 + 75 * (digit < 26);
5387};
5388var adapt = function (delta, numPoints, firstTime) {
5389 var k = 0;
5390 delta = firstTime ? floor(delta / damp) : delta >> 1;
5391 delta += floor(delta / numPoints);
5392 for (; delta > baseMinusTMin * tMax >> 1; k += base) {
5393 delta = floor(delta / baseMinusTMin);
5394 }
5395 return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));
5396};
5397var encode = function (input) {
5398 var output = [];
5399 input = ucs2decode(input);
5400 var inputLength = input.length;
5401 var n = initialN;
5402 var delta = 0;
5403 var bias = initialBias;
5404 var i, currentValue;
5405 for (i = 0; i < input.length; i++) {
5406 currentValue = input[i];
5407 if (currentValue < 0x80) {
5408 output.push(stringFromCharCode(currentValue));
5409 }
5410 }
5411 var basicLength = output.length;
5412 var handledCPCount = basicLength;
5413 if (basicLength) {
5414 output.push(delimiter);
5415 }
5416 while (handledCPCount < inputLength) {
5417 var m = maxInt;
5418 for (i = 0; i < input.length; i++) {
5419 currentValue = input[i];
5420 if (currentValue >= n && currentValue < m) {
5421 m = currentValue;
5422 }
5423 }
5424 var handledCPCountPlusOne = handledCPCount + 1;
5425 if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {
5426 throw RangeError(OVERFLOW_ERROR);
5427 }
5428 delta += (m - n) * handledCPCountPlusOne;
5429 n = m;
5430 for (i = 0; i < input.length; i++) {
5431 currentValue = input[i];
5432 if (currentValue < n && ++delta > maxInt) {
5433 throw RangeError(OVERFLOW_ERROR);
5434 }
5435 if (currentValue == n) {
5436 var q = delta;
5437 for (var k = base;; k += base) {
5438 var t = k <= bias ? tMin : k >= bias + tMax ? tMax : k - bias;
5439 if (q < t)
5440 break;
5441 var qMinusT = q - t;
5442 var baseMinusT = base - t;
5443 output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));
5444 q = floor(qMinusT / baseMinusT);
5445 }
5446 output.push(stringFromCharCode(digitToBasic(q)));
5447 bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);
5448 delta = 0;
5449 ++handledCPCount;
5450 }
5451 }
5452 ++delta;
5453 ++n;
5454 }
5455 return output.join('');
5456};
5457module.exports = function (input) {
5458 var encoded = [];
5459 var labels = input.toLowerCase().replace(regexSeparators, '\u002E').split('.');
5460 var i, label;
5461 for (i = 0; i < labels.length; i++) {
5462 label = labels[i];
5463 encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);
5464 }
5465 return encoded.join('.');
5466};
5467
5468/***/ }),
5469/* 132 */
5470/***/ (function(module, exports, __w_pdfjs_require__) {
5471
5472"use strict";
5473
5474__w_pdfjs_require__(109);
5475var $ = __w_pdfjs_require__(5);
5476var getBuiltIn = __w_pdfjs_require__(37);
5477var USE_NATIVE_URL = __w_pdfjs_require__(130);
5478var redefine = __w_pdfjs_require__(24);
5479var redefineAll = __w_pdfjs_require__(112);
5480var setToStringTag = __w_pdfjs_require__(81);
5481var createIteratorConstructor = __w_pdfjs_require__(76);
5482var InternalStateModule = __w_pdfjs_require__(28);
5483var anInstance = __w_pdfjs_require__(114);
5484var hasOwn = __w_pdfjs_require__(18);
5485var bind = __w_pdfjs_require__(58);
5486var classof = __w_pdfjs_require__(91);
5487var anObject = __w_pdfjs_require__(23);
5488var isObject = __w_pdfjs_require__(17);
5489var create = __w_pdfjs_require__(67);
5490var createPropertyDescriptor = __w_pdfjs_require__(11);
5491var getIterator = __w_pdfjs_require__(133);
5492var getIteratorMethod = __w_pdfjs_require__(90);
5493var wellKnownSymbol = __w_pdfjs_require__(53);
5494var $fetch = getBuiltIn('fetch');
5495var Headers = getBuiltIn('Headers');
5496var ITERATOR = wellKnownSymbol('iterator');
5497var URL_SEARCH_PARAMS = 'URLSearchParams';
5498var URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';
5499var setInternalState = InternalStateModule.set;
5500var getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);
5501var getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);
5502var plus = /\+/g;
5503var sequences = Array(4);
5504var percentSequence = function (bytes) {
5505 return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\da-f]{2}){' + bytes + '})', 'gi'));
5506};
5507var percentDecode = function (sequence) {
5508 try {
5509 return decodeURIComponent(sequence);
5510 } catch (error) {
5511 return sequence;
5512 }
5513};
5514var deserialize = function (it) {
5515 var result = it.replace(plus, ' ');
5516 var bytes = 4;
5517 try {
5518 return decodeURIComponent(result);
5519 } catch (error) {
5520 while (bytes) {
5521 result = result.replace(percentSequence(bytes--), percentDecode);
5522 }
5523 return result;
5524 }
5525};
5526var find = /[!'()~]|%20/g;
5527var replace = {
5528 '!': '%21',
5529 "'": '%27',
5530 '(': '%28',
5531 ')': '%29',
5532 '~': '%7E',
5533 '%20': '+'
5534};
5535var replacer = function (match) {
5536 return replace[match];
5537};
5538var serialize = function (it) {
5539 return encodeURIComponent(it).replace(find, replacer);
5540};
5541var parseSearchParams = function (result, query) {
5542 if (query) {
5543 var attributes = query.split('&');
5544 var index = 0;
5545 var attribute, entry;
5546 while (index < attributes.length) {
5547 attribute = attributes[index++];
5548 if (attribute.length) {
5549 entry = attribute.split('=');
5550 result.push({
5551 key: deserialize(entry.shift()),
5552 value: deserialize(entry.join('='))
5553 });
5554 }
5555 }
5556 }
5557};
5558var updateSearchParams = function (query) {
5559 this.entries.length = 0;
5560 parseSearchParams(this.entries, query);
5561};
5562var validateArgumentsLength = function (passed, required) {
5563 if (passed < required)
5564 throw TypeError('Not enough arguments');
5565};
5566var URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {
5567 setInternalState(this, {
5568 type: URL_SEARCH_PARAMS_ITERATOR,
5569 iterator: getIterator(getInternalParamsState(params).entries),
5570 kind: kind
5571 });
5572}, 'Iterator', function next() {
5573 var state = getInternalIteratorState(this);
5574 var kind = state.kind;
5575 var step = state.iterator.next();
5576 var entry = step.value;
5577 if (!step.done) {
5578 step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [
5579 entry.key,
5580 entry.value
5581 ];
5582 }
5583 return step;
5584});
5585var URLSearchParamsConstructor = function URLSearchParams() {
5586 anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);
5587 var init = arguments.length > 0 ? arguments[0] : undefined;
5588 var that = this;
5589 var entries = [];
5590 var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;
5591 setInternalState(that, {
5592 type: URL_SEARCH_PARAMS,
5593 entries: entries,
5594 updateURL: function () {
5595 },
5596 updateSearchParams: updateSearchParams
5597 });
5598 if (init !== undefined) {
5599 if (isObject(init)) {
5600 iteratorMethod = getIteratorMethod(init);
5601 if (typeof iteratorMethod === 'function') {
5602 iterator = iteratorMethod.call(init);
5603 next = iterator.next;
5604 while (!(step = next.call(iterator)).done) {
5605 entryIterator = getIterator(anObject(step.value));
5606 entryNext = entryIterator.next;
5607 if ((first = entryNext.call(entryIterator)).done || (second = entryNext.call(entryIterator)).done || !entryNext.call(entryIterator).done)
5608 throw TypeError('Expected sequence with length 2');
5609 entries.push({
5610 key: first.value + '',
5611 value: second.value + ''
5612 });
5613 }
5614 } else
5615 for (key in init)
5616 if (hasOwn(init, key))
5617 entries.push({
5618 key: key,
5619 value: init[key] + ''
5620 });
5621 } else {
5622 parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');
5623 }
5624 }
5625};
5626var URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;
5627redefineAll(URLSearchParamsPrototype, {
5628 append: function append(name, value) {
5629 validateArgumentsLength(arguments.length, 2);
5630 var state = getInternalParamsState(this);
5631 state.entries.push({
5632 key: name + '',
5633 value: value + ''
5634 });
5635 state.updateURL();
5636 },
5637 'delete': function (name) {
5638 validateArgumentsLength(arguments.length, 1);
5639 var state = getInternalParamsState(this);
5640 var entries = state.entries;
5641 var key = name + '';
5642 var index = 0;
5643 while (index < entries.length) {
5644 if (entries[index].key === key)
5645 entries.splice(index, 1);
5646 else
5647 index++;
5648 }
5649 state.updateURL();
5650 },
5651 get: function get(name) {
5652 validateArgumentsLength(arguments.length, 1);
5653 var entries = getInternalParamsState(this).entries;
5654 var key = name + '';
5655 var index = 0;
5656 for (; index < entries.length; index++) {
5657 if (entries[index].key === key)
5658 return entries[index].value;
5659 }
5660 return null;
5661 },
5662 getAll: function getAll(name) {
5663 validateArgumentsLength(arguments.length, 1);
5664 var entries = getInternalParamsState(this).entries;
5665 var key = name + '';
5666 var result = [];
5667 var index = 0;
5668 for (; index < entries.length; index++) {
5669 if (entries[index].key === key)
5670 result.push(entries[index].value);
5671 }
5672 return result;
5673 },
5674 has: function has(name) {
5675 validateArgumentsLength(arguments.length, 1);
5676 var entries = getInternalParamsState(this).entries;
5677 var key = name + '';
5678 var index = 0;
5679 while (index < entries.length) {
5680 if (entries[index++].key === key)
5681 return true;
5682 }
5683 return false;
5684 },
5685 set: function set(name, value) {
5686 validateArgumentsLength(arguments.length, 1);
5687 var state = getInternalParamsState(this);
5688 var entries = state.entries;
5689 var found = false;
5690 var key = name + '';
5691 var val = value + '';
5692 var index = 0;
5693 var entry;
5694 for (; index < entries.length; index++) {
5695 entry = entries[index];
5696 if (entry.key === key) {
5697 if (found)
5698 entries.splice(index--, 1);
5699 else {
5700 found = true;
5701 entry.value = val;
5702 }
5703 }
5704 }
5705 if (!found)
5706 entries.push({
5707 key: key,
5708 value: val
5709 });
5710 state.updateURL();
5711 },
5712 sort: function sort() {
5713 var state = getInternalParamsState(this);
5714 var entries = state.entries;
5715 var slice = entries.slice();
5716 var entry, entriesIndex, sliceIndex;
5717 entries.length = 0;
5718 for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {
5719 entry = slice[sliceIndex];
5720 for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {
5721 if (entries[entriesIndex].key > entry.key) {
5722 entries.splice(entriesIndex, 0, entry);
5723 break;
5724 }
5725 }
5726 if (entriesIndex === sliceIndex)
5727 entries.push(entry);
5728 }
5729 state.updateURL();
5730 },
5731 forEach: function forEach(callback) {
5732 var entries = getInternalParamsState(this).entries;
5733 var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);
5734 var index = 0;
5735 var entry;
5736 while (index < entries.length) {
5737 entry = entries[index++];
5738 boundFunction(entry.value, entry.key, this);
5739 }
5740 },
5741 keys: function keys() {
5742 return new URLSearchParamsIterator(this, 'keys');
5743 },
5744 values: function values() {
5745 return new URLSearchParamsIterator(this, 'values');
5746 },
5747 entries: function entries() {
5748 return new URLSearchParamsIterator(this, 'entries');
5749 }
5750}, { enumerable: true });
5751redefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);
5752redefine(URLSearchParamsPrototype, 'toString', function toString() {
5753 var entries = getInternalParamsState(this).entries;
5754 var result = [];
5755 var index = 0;
5756 var entry;
5757 while (index < entries.length) {
5758 entry = entries[index++];
5759 result.push(serialize(entry.key) + '=' + serialize(entry.value));
5760 }
5761 return result.join('&');
5762}, { enumerable: true });
5763setToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);
5764$({
5765 global: true,
5766 forced: !USE_NATIVE_URL
5767}, { URLSearchParams: URLSearchParamsConstructor });
5768if (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {
5769 $({
5770 global: true,
5771 enumerable: true,
5772 forced: true
5773 }, {
5774 fetch: function fetch(input) {
5775 var args = [input];
5776 var init, body, headers;
5777 if (arguments.length > 1) {
5778 init = arguments[1];
5779 if (isObject(init)) {
5780 body = init.body;
5781 if (classof(body) === URL_SEARCH_PARAMS) {
5782 headers = init.headers ? new Headers(init.headers) : new Headers();
5783 if (!headers.has('content-type')) {
5784 headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
5785 }
5786 init = create(init, {
5787 body: createPropertyDescriptor(0, String(body)),
5788 headers: createPropertyDescriptor(0, headers)
5789 });
5790 }
5791 }
5792 args.push(init);
5793 }
5794 return $fetch.apply(this, args);
5795 }
5796 });
5797}
5798module.exports = {
5799 URLSearchParams: URLSearchParamsConstructor,
5800 getState: getInternalParamsState
5801};
5802
5803/***/ }),
5804/* 133 */
5805/***/ (function(module, exports, __w_pdfjs_require__) {
5806
5807var anObject = __w_pdfjs_require__(23);
5808var getIteratorMethod = __w_pdfjs_require__(90);
5809module.exports = function (it) {
5810 var iteratorMethod = getIteratorMethod(it);
5811 if (typeof iteratorMethod != 'function') {
5812 throw TypeError(String(it) + ' is not iterable');
5813 }
5814 return anObject(iteratorMethod.call(it));
5815};
5816
5817/***/ }),
5818/* 134 */
5819/***/ (function(module, exports, __w_pdfjs_require__) {
5820
5821"use strict";
5822
5823var $ = __w_pdfjs_require__(5);
5824$({
5825 target: 'URL',
5826 proto: true,
5827 enumerable: true
5828}, {
5829 toJSON: function toJSON() {
5830 return URL.prototype.toString.call(this);
5831 }
5832});
5833
5834/***/ }),
5835/* 135 */
5836/***/ (function(module, exports, __w_pdfjs_require__) {
5837
5838(function (global, factory) {
5839 true ? factory(exports) : undefined;
5840}(this, function (exports) {
5841 'use strict';
5842 var SymbolPolyfill = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol : function (description) {
5843 return "Symbol(" + description + ")";
5844 };
5845 function noop() {
5846 }
5847 var NumberIsNaN = Number.isNaN || function (x) {
5848 return x !== x;
5849 };
5850 var rethrowAssertionErrorRejection = noop;
5851 function typeIsObject(x) {
5852 return typeof x === 'object' && x !== null || typeof x === 'function';
5853 }
5854 function createArrayFromList(elements) {
5855 return elements.slice();
5856 }
5857 function ArrayBufferCopy(dest, destOffset, src, srcOffset, n) {
5858 new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);
5859 }
5860 function IsFiniteNonNegativeNumber(v) {
5861 if (IsNonNegativeNumber(v) === false) {
5862 return false;
5863 }
5864 if (v === Infinity) {
5865 return false;
5866 }
5867 return true;
5868 }
5869 function IsNonNegativeNumber(v) {
5870 if (typeof v !== 'number') {
5871 return false;
5872 }
5873 if (NumberIsNaN(v)) {
5874 return false;
5875 }
5876 if (v < 0) {
5877 return false;
5878 }
5879 return true;
5880 }
5881 function Call(F, V, args) {
5882 if (typeof F !== 'function') {
5883 throw new TypeError('Argument is not a function');
5884 }
5885 return Function.prototype.apply.call(F, V, args);
5886 }
5887 function CreateAlgorithmFromUnderlyingMethod(underlyingObject, methodName, algoArgCount, extraArgs) {
5888 var method = underlyingObject[methodName];
5889 if (method !== undefined) {
5890 if (typeof method !== 'function') {
5891 throw new TypeError(method + " is not a method");
5892 }
5893 switch (algoArgCount) {
5894 case 0: {
5895 return function () {
5896 return PromiseCall(method, underlyingObject, extraArgs);
5897 };
5898 }
5899 case 1: {
5900 return function (arg) {
5901 var fullArgs = [arg].concat(extraArgs);
5902 return PromiseCall(method, underlyingObject, fullArgs);
5903 };
5904 }
5905 }
5906 }
5907 return function () {
5908 return promiseResolvedWith(undefined);
5909 };
5910 }
5911 function InvokeOrNoop(O, P, args) {
5912 var method = O[P];
5913 if (method === undefined) {
5914 return undefined;
5915 }
5916 return Call(method, O, args);
5917 }
5918 function PromiseCall(F, V, args) {
5919 try {
5920 return promiseResolvedWith(Call(F, V, args));
5921 } catch (value) {
5922 return promiseRejectedWith(value);
5923 }
5924 }
5925 function TransferArrayBuffer(O) {
5926 return O;
5927 }
5928 function IsDetachedBuffer(O) {
5929 return false;
5930 }
5931 function ValidateAndNormalizeHighWaterMark(highWaterMark) {
5932 highWaterMark = Number(highWaterMark);
5933 if (NumberIsNaN(highWaterMark) || highWaterMark < 0) {
5934 throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');
5935 }
5936 return highWaterMark;
5937 }
5938 function MakeSizeAlgorithmFromSizeFunction(size) {
5939 if (size === undefined) {
5940 return function () {
5941 return 1;
5942 };
5943 }
5944 if (typeof size !== 'function') {
5945 throw new TypeError('size property of a queuing strategy must be a function');
5946 }
5947 return function (chunk) {
5948 return size(chunk);
5949 };
5950 }
5951 var originalPromise = Promise;
5952 var originalPromiseThen = Promise.prototype.then;
5953 var originalPromiseResolve = Promise.resolve.bind(originalPromise);
5954 var originalPromiseReject = Promise.reject.bind(originalPromise);
5955 function newPromise(executor) {
5956 return new originalPromise(executor);
5957 }
5958 function promiseResolvedWith(value) {
5959 return originalPromiseResolve(value);
5960 }
5961 function promiseRejectedWith(reason) {
5962 return originalPromiseReject(reason);
5963 }
5964 function PerformPromiseThen(promise, onFulfilled, onRejected) {
5965 return originalPromiseThen.call(promise, onFulfilled, onRejected);
5966 }
5967 function uponPromise(promise, onFulfilled, onRejected) {
5968 PerformPromiseThen(PerformPromiseThen(promise, onFulfilled, onRejected), undefined, rethrowAssertionErrorRejection);
5969 }
5970 function uponFulfillment(promise, onFulfilled) {
5971 uponPromise(promise, onFulfilled);
5972 }
5973 function uponRejection(promise, onRejected) {
5974 uponPromise(promise, undefined, onRejected);
5975 }
5976 function transformPromiseWith(promise, fulfillmentHandler, rejectionHandler) {
5977 return PerformPromiseThen(promise, fulfillmentHandler, rejectionHandler);
5978 }
5979 function setPromiseIsHandledToTrue(promise) {
5980 PerformPromiseThen(promise, undefined, rethrowAssertionErrorRejection);
5981 }
5982 var QUEUE_MAX_ARRAY_SIZE = 16384;
5983 var SimpleQueue = function () {
5984 function SimpleQueue() {
5985 this._cursor = 0;
5986 this._size = 0;
5987 this._front = {
5988 _elements: [],
5989 _next: undefined
5990 };
5991 this._back = this._front;
5992 this._cursor = 0;
5993 this._size = 0;
5994 }
5995 Object.defineProperty(SimpleQueue.prototype, "length", {
5996 get: function () {
5997 return this._size;
5998 },
5999 enumerable: true,
6000 configurable: true
6001 });
6002 SimpleQueue.prototype.push = function (element) {
6003 var oldBack = this._back;
6004 var newBack = oldBack;
6005 if (oldBack._elements.length === QUEUE_MAX_ARRAY_SIZE - 1) {
6006 newBack = {
6007 _elements: [],
6008 _next: undefined
6009 };
6010 }
6011 oldBack._elements.push(element);
6012 if (newBack !== oldBack) {
6013 this._back = newBack;
6014 oldBack._next = newBack;
6015 }
6016 ++this._size;
6017 };
6018 SimpleQueue.prototype.shift = function () {
6019 var oldFront = this._front;
6020 var newFront = oldFront;
6021 var oldCursor = this._cursor;
6022 var newCursor = oldCursor + 1;
6023 var elements = oldFront._elements;
6024 var element = elements[oldCursor];
6025 if (newCursor === QUEUE_MAX_ARRAY_SIZE) {
6026 newFront = oldFront._next;
6027 newCursor = 0;
6028 }
6029 --this._size;
6030 this._cursor = newCursor;
6031 if (oldFront !== newFront) {
6032 this._front = newFront;
6033 }
6034 elements[oldCursor] = undefined;
6035 return element;
6036 };
6037 SimpleQueue.prototype.forEach = function (callback) {
6038 var i = this._cursor;
6039 var node = this._front;
6040 var elements = node._elements;
6041 while (i !== elements.length || node._next !== undefined) {
6042 if (i === elements.length) {
6043 node = node._next;
6044 elements = node._elements;
6045 i = 0;
6046 if (elements.length === 0) {
6047 break;
6048 }
6049 }
6050 callback(elements[i]);
6051 ++i;
6052 }
6053 };
6054 SimpleQueue.prototype.peek = function () {
6055 var front = this._front;
6056 var cursor = this._cursor;
6057 return front._elements[cursor];
6058 };
6059 return SimpleQueue;
6060 }();
6061 function ReadableStreamCreateReadResult(value, done, forAuthorCode) {
6062 var prototype = null;
6063 if (forAuthorCode === true) {
6064 prototype = Object.prototype;
6065 }
6066 var obj = Object.create(prototype);
6067 obj.value = value;
6068 obj.done = done;
6069 return obj;
6070 }
6071 function ReadableStreamReaderGenericInitialize(reader, stream) {
6072 reader._forAuthorCode = true;
6073 reader._ownerReadableStream = stream;
6074 stream._reader = reader;
6075 if (stream._state === 'readable') {
6076 defaultReaderClosedPromiseInitialize(reader);
6077 } else if (stream._state === 'closed') {
6078 defaultReaderClosedPromiseInitializeAsResolved(reader);
6079 } else {
6080 defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);
6081 }
6082 }
6083 function ReadableStreamReaderGenericCancel(reader, reason) {
6084 var stream = reader._ownerReadableStream;
6085 return ReadableStreamCancel(stream, reason);
6086 }
6087 function ReadableStreamReaderGenericRelease(reader) {
6088 if (reader._ownerReadableStream._state === 'readable') {
6089 defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
6090 } else {
6091 defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
6092 }
6093 reader._ownerReadableStream._reader = undefined;
6094 reader._ownerReadableStream = undefined;
6095 }
6096 function readerLockException(name) {
6097 return new TypeError('Cannot ' + name + ' a stream using a released reader');
6098 }
6099 function defaultReaderClosedPromiseInitialize(reader) {
6100 reader._closedPromise = newPromise(function (resolve, reject) {
6101 reader._closedPromise_resolve = resolve;
6102 reader._closedPromise_reject = reject;
6103 });
6104 }
6105 function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {
6106 defaultReaderClosedPromiseInitialize(reader);
6107 defaultReaderClosedPromiseReject(reader, reason);
6108 }
6109 function defaultReaderClosedPromiseInitializeAsResolved(reader) {
6110 defaultReaderClosedPromiseInitialize(reader);
6111 defaultReaderClosedPromiseResolve(reader);
6112 }
6113 function defaultReaderClosedPromiseReject(reader, reason) {
6114 setPromiseIsHandledToTrue(reader._closedPromise);
6115 reader._closedPromise_reject(reason);
6116 reader._closedPromise_resolve = undefined;
6117 reader._closedPromise_reject = undefined;
6118 }
6119 function defaultReaderClosedPromiseResetToRejected(reader, reason) {
6120 defaultReaderClosedPromiseInitializeAsRejected(reader, reason);
6121 }
6122 function defaultReaderClosedPromiseResolve(reader) {
6123 reader._closedPromise_resolve(undefined);
6124 reader._closedPromise_resolve = undefined;
6125 reader._closedPromise_reject = undefined;
6126 }
6127 var CancelSteps = SymbolPolyfill('[[CancelSteps]]');
6128 var PullSteps = SymbolPolyfill('[[PullSteps]]');
6129 function AcquireReadableStreamDefaultReader(stream, forAuthorCode) {
6130 if (forAuthorCode === void 0) {
6131 forAuthorCode = false;
6132 }
6133 var reader = new ReadableStreamDefaultReader(stream);
6134 reader._forAuthorCode = forAuthorCode;
6135 return reader;
6136 }
6137 function ReadableStreamAddReadRequest(stream) {
6138 var promise = newPromise(function (resolve, reject) {
6139 var readRequest = {
6140 _resolve: resolve,
6141 _reject: reject
6142 };
6143 stream._reader._readRequests.push(readRequest);
6144 });
6145 return promise;
6146 }
6147 function ReadableStreamFulfillReadRequest(stream, chunk, done) {
6148 var reader = stream._reader;
6149 var readRequest = reader._readRequests.shift();
6150 readRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));
6151 }
6152 function ReadableStreamGetNumReadRequests(stream) {
6153 return stream._reader._readRequests.length;
6154 }
6155 function ReadableStreamHasDefaultReader(stream) {
6156 var reader = stream._reader;
6157 if (reader === undefined) {
6158 return false;
6159 }
6160 if (!IsReadableStreamDefaultReader(reader)) {
6161 return false;
6162 }
6163 return true;
6164 }
6165 var ReadableStreamDefaultReader = function () {
6166 function ReadableStreamDefaultReader(stream) {
6167 if (IsReadableStream(stream) === false) {
6168 throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');
6169 }
6170 if (IsReadableStreamLocked(stream) === true) {
6171 throw new TypeError('This stream has already been locked for exclusive reading by another reader');
6172 }
6173 ReadableStreamReaderGenericInitialize(this, stream);
6174 this._readRequests = new SimpleQueue();
6175 }
6176 Object.defineProperty(ReadableStreamDefaultReader.prototype, "closed", {
6177 get: function () {
6178 if (!IsReadableStreamDefaultReader(this)) {
6179 return promiseRejectedWith(defaultReaderBrandCheckException('closed'));
6180 }
6181 return this._closedPromise;
6182 },
6183 enumerable: true,
6184 configurable: true
6185 });
6186 ReadableStreamDefaultReader.prototype.cancel = function (reason) {
6187 if (!IsReadableStreamDefaultReader(this)) {
6188 return promiseRejectedWith(defaultReaderBrandCheckException('cancel'));
6189 }
6190 if (this._ownerReadableStream === undefined) {
6191 return promiseRejectedWith(readerLockException('cancel'));
6192 }
6193 return ReadableStreamReaderGenericCancel(this, reason);
6194 };
6195 ReadableStreamDefaultReader.prototype.read = function () {
6196 if (!IsReadableStreamDefaultReader(this)) {
6197 return promiseRejectedWith(defaultReaderBrandCheckException('read'));
6198 }
6199 if (this._ownerReadableStream === undefined) {
6200 return promiseRejectedWith(readerLockException('read from'));
6201 }
6202 return ReadableStreamDefaultReaderRead(this);
6203 };
6204 ReadableStreamDefaultReader.prototype.releaseLock = function () {
6205 if (!IsReadableStreamDefaultReader(this)) {
6206 throw defaultReaderBrandCheckException('releaseLock');
6207 }
6208 if (this._ownerReadableStream === undefined) {
6209 return;
6210 }
6211 if (this._readRequests.length > 0) {
6212 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
6213 }
6214 ReadableStreamReaderGenericRelease(this);
6215 };
6216 return ReadableStreamDefaultReader;
6217 }();
6218 function IsReadableStreamDefaultReader(x) {
6219 if (!typeIsObject(x)) {
6220 return false;
6221 }
6222 if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {
6223 return false;
6224 }
6225 return true;
6226 }
6227 function ReadableStreamDefaultReaderRead(reader) {
6228 var stream = reader._ownerReadableStream;
6229 stream._disturbed = true;
6230 if (stream._state === 'closed') {
6231 return promiseResolvedWith(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));
6232 }
6233 if (stream._state === 'errored') {
6234 return promiseRejectedWith(stream._storedError);
6235 }
6236 return stream._readableStreamController[PullSteps]();
6237 }
6238 function defaultReaderBrandCheckException(name) {
6239 return new TypeError("ReadableStreamDefaultReader.prototype." + name + " can only be used on a ReadableStreamDefaultReader");
6240 }
6241 var _a;
6242 var AsyncIteratorPrototype;
6243 if (typeof SymbolPolyfill.asyncIterator === 'symbol') {
6244 AsyncIteratorPrototype = (_a = {}, _a[SymbolPolyfill.asyncIterator] = function () {
6245 return this;
6246 }, _a);
6247 Object.defineProperty(AsyncIteratorPrototype, SymbolPolyfill.asyncIterator, { enumerable: false });
6248 }
6249 var ReadableStreamAsyncIteratorPrototype = {
6250 next: function () {
6251 if (IsReadableStreamAsyncIterator(this) === false) {
6252 return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));
6253 }
6254 var reader = this._asyncIteratorReader;
6255 if (reader._ownerReadableStream === undefined) {
6256 return promiseRejectedWith(readerLockException('iterate'));
6257 }
6258 return transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {
6259 var done = result.done;
6260 if (done) {
6261 ReadableStreamReaderGenericRelease(reader);
6262 }
6263 var value = result.value;
6264 return ReadableStreamCreateReadResult(value, done, true);
6265 });
6266 },
6267 return: function (value) {
6268 if (IsReadableStreamAsyncIterator(this) === false) {
6269 return promiseRejectedWith(streamAsyncIteratorBrandCheckException('next'));
6270 }
6271 var reader = this._asyncIteratorReader;
6272 if (reader._ownerReadableStream === undefined) {
6273 return promiseRejectedWith(readerLockException('finish iterating'));
6274 }
6275 if (reader._readRequests.length > 0) {
6276 return promiseRejectedWith(new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled'));
6277 }
6278 if (this._preventCancel === false) {
6279 var result = ReadableStreamReaderGenericCancel(reader, value);
6280 ReadableStreamReaderGenericRelease(reader);
6281 return transformPromiseWith(result, function () {
6282 return ReadableStreamCreateReadResult(value, true, true);
6283 });
6284 }
6285 ReadableStreamReaderGenericRelease(reader);
6286 return promiseResolvedWith(ReadableStreamCreateReadResult(value, true, true));
6287 }
6288 };
6289 if (AsyncIteratorPrototype !== undefined) {
6290 Object.setPrototypeOf(ReadableStreamAsyncIteratorPrototype, AsyncIteratorPrototype);
6291 }
6292 Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'next', { enumerable: false });
6293 Object.defineProperty(ReadableStreamAsyncIteratorPrototype, 'return', { enumerable: false });
6294 function AcquireReadableStreamAsyncIterator(stream, preventCancel) {
6295 if (preventCancel === void 0) {
6296 preventCancel = false;
6297 }
6298 var reader = AcquireReadableStreamDefaultReader(stream);
6299 var iterator = Object.create(ReadableStreamAsyncIteratorPrototype);
6300 iterator._asyncIteratorReader = reader;
6301 iterator._preventCancel = Boolean(preventCancel);
6302 return iterator;
6303 }
6304 function IsReadableStreamAsyncIterator(x) {
6305 if (!typeIsObject(x)) {
6306 return false;
6307 }
6308 if (!Object.prototype.hasOwnProperty.call(x, '_asyncIteratorReader')) {
6309 return false;
6310 }
6311 return true;
6312 }
6313 function streamAsyncIteratorBrandCheckException(name) {
6314 return new TypeError("ReadableStreamAsyncIterator." + name + " can only be used on a ReadableSteamAsyncIterator");
6315 }
6316 function DequeueValue(container) {
6317 var pair = container._queue.shift();
6318 container._queueTotalSize -= pair.size;
6319 if (container._queueTotalSize < 0) {
6320 container._queueTotalSize = 0;
6321 }
6322 return pair.value;
6323 }
6324 function EnqueueValueWithSize(container, value, size) {
6325 size = Number(size);
6326 if (!IsFiniteNonNegativeNumber(size)) {
6327 throw new RangeError('Size must be a finite, non-NaN, non-negative number.');
6328 }
6329 container._queue.push({
6330 value: value,
6331 size: size
6332 });
6333 container._queueTotalSize += size;
6334 }
6335 function PeekQueueValue(container) {
6336 var pair = container._queue.peek();
6337 return pair.value;
6338 }
6339 function ResetQueue(container) {
6340 container._queue = new SimpleQueue();
6341 container._queueTotalSize = 0;
6342 }
6343 var AbortSteps = SymbolPolyfill('[[AbortSteps]]');
6344 var ErrorSteps = SymbolPolyfill('[[ErrorSteps]]');
6345 var WritableStream = function () {
6346 function WritableStream(underlyingSink, strategy) {
6347 if (underlyingSink === void 0) {
6348 underlyingSink = {};
6349 }
6350 if (strategy === void 0) {
6351 strategy = {};
6352 }
6353 InitializeWritableStream(this);
6354 var size = strategy.size;
6355 var highWaterMark = strategy.highWaterMark;
6356 var type = underlyingSink.type;
6357 if (type !== undefined) {
6358 throw new RangeError('Invalid type is specified');
6359 }
6360 var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);
6361 if (highWaterMark === undefined) {
6362 highWaterMark = 1;
6363 }
6364 highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);
6365 SetUpWritableStreamDefaultControllerFromUnderlyingSink(this, underlyingSink, highWaterMark, sizeAlgorithm);
6366 }
6367 Object.defineProperty(WritableStream.prototype, "locked", {
6368 get: function () {
6369 if (IsWritableStream(this) === false) {
6370 throw streamBrandCheckException('locked');
6371 }
6372 return IsWritableStreamLocked(this);
6373 },
6374 enumerable: true,
6375 configurable: true
6376 });
6377 WritableStream.prototype.abort = function (reason) {
6378 if (IsWritableStream(this) === false) {
6379 return promiseRejectedWith(streamBrandCheckException('abort'));
6380 }
6381 if (IsWritableStreamLocked(this) === true) {
6382 return promiseRejectedWith(new TypeError('Cannot abort a stream that already has a writer'));
6383 }
6384 return WritableStreamAbort(this, reason);
6385 };
6386 WritableStream.prototype.close = function () {
6387 if (IsWritableStream(this) === false) {
6388 return promiseRejectedWith(streamBrandCheckException('close'));
6389 }
6390 if (IsWritableStreamLocked(this) === true) {
6391 return promiseRejectedWith(new TypeError('Cannot close a stream that already has a writer'));
6392 }
6393 if (WritableStreamCloseQueuedOrInFlight(this) === true) {
6394 return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));
6395 }
6396 return WritableStreamClose(this);
6397 };
6398 WritableStream.prototype.getWriter = function () {
6399 if (IsWritableStream(this) === false) {
6400 throw streamBrandCheckException('getWriter');
6401 }
6402 return AcquireWritableStreamDefaultWriter(this);
6403 };
6404 return WritableStream;
6405 }();
6406 function AcquireWritableStreamDefaultWriter(stream) {
6407 return new WritableStreamDefaultWriter(stream);
6408 }
6409 function CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {
6410 if (highWaterMark === void 0) {
6411 highWaterMark = 1;
6412 }
6413 if (sizeAlgorithm === void 0) {
6414 sizeAlgorithm = function () {
6415 return 1;
6416 };
6417 }
6418 var stream = Object.create(WritableStream.prototype);
6419 InitializeWritableStream(stream);
6420 var controller = Object.create(WritableStreamDefaultController.prototype);
6421 SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);
6422 return stream;
6423 }
6424 function InitializeWritableStream(stream) {
6425 stream._state = 'writable';
6426 stream._storedError = undefined;
6427 stream._writer = undefined;
6428 stream._writableStreamController = undefined;
6429 stream._writeRequests = new SimpleQueue();
6430 stream._inFlightWriteRequest = undefined;
6431 stream._closeRequest = undefined;
6432 stream._inFlightCloseRequest = undefined;
6433 stream._pendingAbortRequest = undefined;
6434 stream._backpressure = false;
6435 }
6436 function IsWritableStream(x) {
6437 if (!typeIsObject(x)) {
6438 return false;
6439 }
6440 if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {
6441 return false;
6442 }
6443 return true;
6444 }
6445 function IsWritableStreamLocked(stream) {
6446 if (stream._writer === undefined) {
6447 return false;
6448 }
6449 return true;
6450 }
6451 function WritableStreamAbort(stream, reason) {
6452 var state = stream._state;
6453 if (state === 'closed' || state === 'errored') {
6454 return promiseResolvedWith(undefined);
6455 }
6456 if (stream._pendingAbortRequest !== undefined) {
6457 return stream._pendingAbortRequest._promise;
6458 }
6459 var wasAlreadyErroring = false;
6460 if (state === 'erroring') {
6461 wasAlreadyErroring = true;
6462 reason = undefined;
6463 }
6464 var promise = newPromise(function (resolve, reject) {
6465 stream._pendingAbortRequest = {
6466 _promise: undefined,
6467 _resolve: resolve,
6468 _reject: reject,
6469 _reason: reason,
6470 _wasAlreadyErroring: wasAlreadyErroring
6471 };
6472 });
6473 stream._pendingAbortRequest._promise = promise;
6474 if (wasAlreadyErroring === false) {
6475 WritableStreamStartErroring(stream, reason);
6476 }
6477 return promise;
6478 }
6479 function WritableStreamClose(stream) {
6480 var state = stream._state;
6481 if (state === 'closed' || state === 'errored') {
6482 return promiseRejectedWith(new TypeError("The stream (in " + state + " state) is not in the writable state and cannot be closed"));
6483 }
6484 var promise = newPromise(function (resolve, reject) {
6485 var closeRequest = {
6486 _resolve: resolve,
6487 _reject: reject
6488 };
6489 stream._closeRequest = closeRequest;
6490 });
6491 var writer = stream._writer;
6492 if (writer !== undefined && stream._backpressure === true && state === 'writable') {
6493 defaultWriterReadyPromiseResolve(writer);
6494 }
6495 WritableStreamDefaultControllerClose(stream._writableStreamController);
6496 return promise;
6497 }
6498 function WritableStreamAddWriteRequest(stream) {
6499 var promise = newPromise(function (resolve, reject) {
6500 var writeRequest = {
6501 _resolve: resolve,
6502 _reject: reject
6503 };
6504 stream._writeRequests.push(writeRequest);
6505 });
6506 return promise;
6507 }
6508 function WritableStreamDealWithRejection(stream, error) {
6509 var state = stream._state;
6510 if (state === 'writable') {
6511 WritableStreamStartErroring(stream, error);
6512 return;
6513 }
6514 WritableStreamFinishErroring(stream);
6515 }
6516 function WritableStreamStartErroring(stream, reason) {
6517 var controller = stream._writableStreamController;
6518 stream._state = 'erroring';
6519 stream._storedError = reason;
6520 var writer = stream._writer;
6521 if (writer !== undefined) {
6522 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
6523 }
6524 if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {
6525 WritableStreamFinishErroring(stream);
6526 }
6527 }
6528 function WritableStreamFinishErroring(stream) {
6529 stream._state = 'errored';
6530 stream._writableStreamController[ErrorSteps]();
6531 var storedError = stream._storedError;
6532 stream._writeRequests.forEach(function (writeRequest) {
6533 writeRequest._reject(storedError);
6534 });
6535 stream._writeRequests = new SimpleQueue();
6536 if (stream._pendingAbortRequest === undefined) {
6537 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
6538 return;
6539 }
6540 var abortRequest = stream._pendingAbortRequest;
6541 stream._pendingAbortRequest = undefined;
6542 if (abortRequest._wasAlreadyErroring === true) {
6543 abortRequest._reject(storedError);
6544 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
6545 return;
6546 }
6547 var promise = stream._writableStreamController[AbortSteps](abortRequest._reason);
6548 uponPromise(promise, function () {
6549 abortRequest._resolve();
6550 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
6551 }, function (reason) {
6552 abortRequest._reject(reason);
6553 WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
6554 });
6555 }
6556 function WritableStreamFinishInFlightWrite(stream) {
6557 stream._inFlightWriteRequest._resolve(undefined);
6558 stream._inFlightWriteRequest = undefined;
6559 }
6560 function WritableStreamFinishInFlightWriteWithError(stream, error) {
6561 stream._inFlightWriteRequest._reject(error);
6562 stream._inFlightWriteRequest = undefined;
6563 WritableStreamDealWithRejection(stream, error);
6564 }
6565 function WritableStreamFinishInFlightClose(stream) {
6566 stream._inFlightCloseRequest._resolve(undefined);
6567 stream._inFlightCloseRequest = undefined;
6568 var state = stream._state;
6569 if (state === 'erroring') {
6570 stream._storedError = undefined;
6571 if (stream._pendingAbortRequest !== undefined) {
6572 stream._pendingAbortRequest._resolve();
6573 stream._pendingAbortRequest = undefined;
6574 }
6575 }
6576 stream._state = 'closed';
6577 var writer = stream._writer;
6578 if (writer !== undefined) {
6579 defaultWriterClosedPromiseResolve(writer);
6580 }
6581 }
6582 function WritableStreamFinishInFlightCloseWithError(stream, error) {
6583 stream._inFlightCloseRequest._reject(error);
6584 stream._inFlightCloseRequest = undefined;
6585 if (stream._pendingAbortRequest !== undefined) {
6586 stream._pendingAbortRequest._reject(error);
6587 stream._pendingAbortRequest = undefined;
6588 }
6589 WritableStreamDealWithRejection(stream, error);
6590 }
6591 function WritableStreamCloseQueuedOrInFlight(stream) {
6592 if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {
6593 return false;
6594 }
6595 return true;
6596 }
6597 function WritableStreamHasOperationMarkedInFlight(stream) {
6598 if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {
6599 return false;
6600 }
6601 return true;
6602 }
6603 function WritableStreamMarkCloseRequestInFlight(stream) {
6604 stream._inFlightCloseRequest = stream._closeRequest;
6605 stream._closeRequest = undefined;
6606 }
6607 function WritableStreamMarkFirstWriteRequestInFlight(stream) {
6608 stream._inFlightWriteRequest = stream._writeRequests.shift();
6609 }
6610 function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
6611 if (stream._closeRequest !== undefined) {
6612 stream._closeRequest._reject(stream._storedError);
6613 stream._closeRequest = undefined;
6614 }
6615 var writer = stream._writer;
6616 if (writer !== undefined) {
6617 defaultWriterClosedPromiseReject(writer, stream._storedError);
6618 }
6619 }
6620 function WritableStreamUpdateBackpressure(stream, backpressure) {
6621 var writer = stream._writer;
6622 if (writer !== undefined && backpressure !== stream._backpressure) {
6623 if (backpressure === true) {
6624 defaultWriterReadyPromiseReset(writer);
6625 } else {
6626 defaultWriterReadyPromiseResolve(writer);
6627 }
6628 }
6629 stream._backpressure = backpressure;
6630 }
6631 var WritableStreamDefaultWriter = function () {
6632 function WritableStreamDefaultWriter(stream) {
6633 if (IsWritableStream(stream) === false) {
6634 throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');
6635 }
6636 if (IsWritableStreamLocked(stream) === true) {
6637 throw new TypeError('This stream has already been locked for exclusive writing by another writer');
6638 }
6639 this._ownerWritableStream = stream;
6640 stream._writer = this;
6641 var state = stream._state;
6642 if (state === 'writable') {
6643 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {
6644 defaultWriterReadyPromiseInitialize(this);
6645 } else {
6646 defaultWriterReadyPromiseInitializeAsResolved(this);
6647 }
6648 defaultWriterClosedPromiseInitialize(this);
6649 } else if (state === 'erroring') {
6650 defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);
6651 defaultWriterClosedPromiseInitialize(this);
6652 } else if (state === 'closed') {
6653 defaultWriterReadyPromiseInitializeAsResolved(this);
6654 defaultWriterClosedPromiseInitializeAsResolved(this);
6655 } else {
6656 var storedError = stream._storedError;
6657 defaultWriterReadyPromiseInitializeAsRejected(this, storedError);
6658 defaultWriterClosedPromiseInitializeAsRejected(this, storedError);
6659 }
6660 }
6661 Object.defineProperty(WritableStreamDefaultWriter.prototype, "closed", {
6662 get: function () {
6663 if (IsWritableStreamDefaultWriter(this) === false) {
6664 return promiseRejectedWith(defaultWriterBrandCheckException('closed'));
6665 }
6666 return this._closedPromise;
6667 },
6668 enumerable: true,
6669 configurable: true
6670 });
6671 Object.defineProperty(WritableStreamDefaultWriter.prototype, "desiredSize", {
6672 get: function () {
6673 if (IsWritableStreamDefaultWriter(this) === false) {
6674 throw defaultWriterBrandCheckException('desiredSize');
6675 }
6676 if (this._ownerWritableStream === undefined) {
6677 throw defaultWriterLockException('desiredSize');
6678 }
6679 return WritableStreamDefaultWriterGetDesiredSize(this);
6680 },
6681 enumerable: true,
6682 configurable: true
6683 });
6684 Object.defineProperty(WritableStreamDefaultWriter.prototype, "ready", {
6685 get: function () {
6686 if (IsWritableStreamDefaultWriter(this) === false) {
6687 return promiseRejectedWith(defaultWriterBrandCheckException('ready'));
6688 }
6689 return this._readyPromise;
6690 },
6691 enumerable: true,
6692 configurable: true
6693 });
6694 WritableStreamDefaultWriter.prototype.abort = function (reason) {
6695 if (IsWritableStreamDefaultWriter(this) === false) {
6696 return promiseRejectedWith(defaultWriterBrandCheckException('abort'));
6697 }
6698 if (this._ownerWritableStream === undefined) {
6699 return promiseRejectedWith(defaultWriterLockException('abort'));
6700 }
6701 return WritableStreamDefaultWriterAbort(this, reason);
6702 };
6703 WritableStreamDefaultWriter.prototype.close = function () {
6704 if (IsWritableStreamDefaultWriter(this) === false) {
6705 return promiseRejectedWith(defaultWriterBrandCheckException('close'));
6706 }
6707 var stream = this._ownerWritableStream;
6708 if (stream === undefined) {
6709 return promiseRejectedWith(defaultWriterLockException('close'));
6710 }
6711 if (WritableStreamCloseQueuedOrInFlight(stream) === true) {
6712 return promiseRejectedWith(new TypeError('Cannot close an already-closing stream'));
6713 }
6714 return WritableStreamDefaultWriterClose(this);
6715 };
6716 WritableStreamDefaultWriter.prototype.releaseLock = function () {
6717 if (IsWritableStreamDefaultWriter(this) === false) {
6718 throw defaultWriterBrandCheckException('releaseLock');
6719 }
6720 var stream = this._ownerWritableStream;
6721 if (stream === undefined) {
6722 return;
6723 }
6724 WritableStreamDefaultWriterRelease(this);
6725 };
6726 WritableStreamDefaultWriter.prototype.write = function (chunk) {
6727 if (IsWritableStreamDefaultWriter(this) === false) {
6728 return promiseRejectedWith(defaultWriterBrandCheckException('write'));
6729 }
6730 if (this._ownerWritableStream === undefined) {
6731 return promiseRejectedWith(defaultWriterLockException('write to'));
6732 }
6733 return WritableStreamDefaultWriterWrite(this, chunk);
6734 };
6735 return WritableStreamDefaultWriter;
6736 }();
6737 function IsWritableStreamDefaultWriter(x) {
6738 if (!typeIsObject(x)) {
6739 return false;
6740 }
6741 if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {
6742 return false;
6743 }
6744 return true;
6745 }
6746 function WritableStreamDefaultWriterAbort(writer, reason) {
6747 var stream = writer._ownerWritableStream;
6748 return WritableStreamAbort(stream, reason);
6749 }
6750 function WritableStreamDefaultWriterClose(writer) {
6751 var stream = writer._ownerWritableStream;
6752 return WritableStreamClose(stream);
6753 }
6754 function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
6755 var stream = writer._ownerWritableStream;
6756 var state = stream._state;
6757 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
6758 return promiseResolvedWith(undefined);
6759 }
6760 if (state === 'errored') {
6761 return promiseRejectedWith(stream._storedError);
6762 }
6763 return WritableStreamDefaultWriterClose(writer);
6764 }
6765 function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
6766 if (writer._closedPromiseState === 'pending') {
6767 defaultWriterClosedPromiseReject(writer, error);
6768 } else {
6769 defaultWriterClosedPromiseResetToRejected(writer, error);
6770 }
6771 }
6772 function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
6773 if (writer._readyPromiseState === 'pending') {
6774 defaultWriterReadyPromiseReject(writer, error);
6775 } else {
6776 defaultWriterReadyPromiseResetToRejected(writer, error);
6777 }
6778 }
6779 function WritableStreamDefaultWriterGetDesiredSize(writer) {
6780 var stream = writer._ownerWritableStream;
6781 var state = stream._state;
6782 if (state === 'errored' || state === 'erroring') {
6783 return null;
6784 }
6785 if (state === 'closed') {
6786 return 0;
6787 }
6788 return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);
6789 }
6790 function WritableStreamDefaultWriterRelease(writer) {
6791 var stream = writer._ownerWritableStream;
6792 var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness');
6793 WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
6794 WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
6795 stream._writer = undefined;
6796 writer._ownerWritableStream = undefined;
6797 }
6798 function WritableStreamDefaultWriterWrite(writer, chunk) {
6799 var stream = writer._ownerWritableStream;
6800 var controller = stream._writableStreamController;
6801 var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);
6802 if (stream !== writer._ownerWritableStream) {
6803 return promiseRejectedWith(defaultWriterLockException('write to'));
6804 }
6805 var state = stream._state;
6806 if (state === 'errored') {
6807 return promiseRejectedWith(stream._storedError);
6808 }
6809 if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
6810 return promiseRejectedWith(new TypeError('The stream is closing or closed and cannot be written to'));
6811 }
6812 if (state === 'erroring') {
6813 return promiseRejectedWith(stream._storedError);
6814 }
6815 var promise = WritableStreamAddWriteRequest(stream);
6816 WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);
6817 return promise;
6818 }
6819 var WritableStreamDefaultController = function () {
6820 function WritableStreamDefaultController() {
6821 throw new TypeError('WritableStreamDefaultController cannot be constructed explicitly');
6822 }
6823 WritableStreamDefaultController.prototype.error = function (e) {
6824 if (IsWritableStreamDefaultController(this) === false) {
6825 throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');
6826 }
6827 var state = this._controlledWritableStream._state;
6828 if (state !== 'writable') {
6829 return;
6830 }
6831 WritableStreamDefaultControllerError(this, e);
6832 };
6833 WritableStreamDefaultController.prototype[AbortSteps] = function (reason) {
6834 var result = this._abortAlgorithm(reason);
6835 WritableStreamDefaultControllerClearAlgorithms(this);
6836 return result;
6837 };
6838 WritableStreamDefaultController.prototype[ErrorSteps] = function () {
6839 ResetQueue(this);
6840 };
6841 return WritableStreamDefaultController;
6842 }();
6843 function IsWritableStreamDefaultController(x) {
6844 if (!typeIsObject(x)) {
6845 return false;
6846 }
6847 if (!Object.prototype.hasOwnProperty.call(x, '_controlledWritableStream')) {
6848 return false;
6849 }
6850 return true;
6851 }
6852 function SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm) {
6853 controller._controlledWritableStream = stream;
6854 stream._writableStreamController = controller;
6855 controller._queue = undefined;
6856 controller._queueTotalSize = undefined;
6857 ResetQueue(controller);
6858 controller._started = false;
6859 controller._strategySizeAlgorithm = sizeAlgorithm;
6860 controller._strategyHWM = highWaterMark;
6861 controller._writeAlgorithm = writeAlgorithm;
6862 controller._closeAlgorithm = closeAlgorithm;
6863 controller._abortAlgorithm = abortAlgorithm;
6864 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
6865 WritableStreamUpdateBackpressure(stream, backpressure);
6866 var startResult = startAlgorithm();
6867 var startPromise = promiseResolvedWith(startResult);
6868 uponPromise(startPromise, function () {
6869 controller._started = true;
6870 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6871 }, function (r) {
6872 controller._started = true;
6873 WritableStreamDealWithRejection(stream, r);
6874 });
6875 }
6876 function SetUpWritableStreamDefaultControllerFromUnderlyingSink(stream, underlyingSink, highWaterMark, sizeAlgorithm) {
6877 var controller = Object.create(WritableStreamDefaultController.prototype);
6878 function startAlgorithm() {
6879 return InvokeOrNoop(underlyingSink, 'start', [controller]);
6880 }
6881 var writeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'write', 1, [controller]);
6882 var closeAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'close', 0, []);
6883 var abortAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSink, 'abort', 1, []);
6884 SetUpWritableStreamDefaultController(stream, controller, startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, highWaterMark, sizeAlgorithm);
6885 }
6886 function WritableStreamDefaultControllerClearAlgorithms(controller) {
6887 controller._writeAlgorithm = undefined;
6888 controller._closeAlgorithm = undefined;
6889 controller._abortAlgorithm = undefined;
6890 controller._strategySizeAlgorithm = undefined;
6891 }
6892 function WritableStreamDefaultControllerClose(controller) {
6893 EnqueueValueWithSize(controller, 'close', 0);
6894 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6895 }
6896 function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {
6897 try {
6898 return controller._strategySizeAlgorithm(chunk);
6899 } catch (chunkSizeE) {
6900 WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
6901 return 1;
6902 }
6903 }
6904 function WritableStreamDefaultControllerGetDesiredSize(controller) {
6905 return controller._strategyHWM - controller._queueTotalSize;
6906 }
6907 function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
6908 var writeRecord = { chunk: chunk };
6909 try {
6910 EnqueueValueWithSize(controller, writeRecord, chunkSize);
6911 } catch (enqueueE) {
6912 WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
6913 return;
6914 }
6915 var stream = controller._controlledWritableStream;
6916 if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {
6917 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
6918 WritableStreamUpdateBackpressure(stream, backpressure);
6919 }
6920 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6921 }
6922 function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
6923 var stream = controller._controlledWritableStream;
6924 if (controller._started === false) {
6925 return;
6926 }
6927 if (stream._inFlightWriteRequest !== undefined) {
6928 return;
6929 }
6930 var state = stream._state;
6931 if (state === 'erroring') {
6932 WritableStreamFinishErroring(stream);
6933 return;
6934 }
6935 if (controller._queue.length === 0) {
6936 return;
6937 }
6938 var writeRecord = PeekQueueValue(controller);
6939 if (writeRecord === 'close') {
6940 WritableStreamDefaultControllerProcessClose(controller);
6941 } else {
6942 WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);
6943 }
6944 }
6945 function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {
6946 if (controller._controlledWritableStream._state === 'writable') {
6947 WritableStreamDefaultControllerError(controller, error);
6948 }
6949 }
6950 function WritableStreamDefaultControllerProcessClose(controller) {
6951 var stream = controller._controlledWritableStream;
6952 WritableStreamMarkCloseRequestInFlight(stream);
6953 DequeueValue(controller);
6954 var sinkClosePromise = controller._closeAlgorithm();
6955 WritableStreamDefaultControllerClearAlgorithms(controller);
6956 uponPromise(sinkClosePromise, function () {
6957 WritableStreamFinishInFlightClose(stream);
6958 }, function (reason) {
6959 WritableStreamFinishInFlightCloseWithError(stream, reason);
6960 });
6961 }
6962 function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
6963 var stream = controller._controlledWritableStream;
6964 WritableStreamMarkFirstWriteRequestInFlight(stream);
6965 var sinkWritePromise = controller._writeAlgorithm(chunk);
6966 uponPromise(sinkWritePromise, function () {
6967 WritableStreamFinishInFlightWrite(stream);
6968 var state = stream._state;
6969 DequeueValue(controller);
6970 if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {
6971 var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
6972 WritableStreamUpdateBackpressure(stream, backpressure);
6973 }
6974 WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6975 }, function (reason) {
6976 if (stream._state === 'writable') {
6977 WritableStreamDefaultControllerClearAlgorithms(controller);
6978 }
6979 WritableStreamFinishInFlightWriteWithError(stream, reason);
6980 });
6981 }
6982 function WritableStreamDefaultControllerGetBackpressure(controller) {
6983 var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);
6984 return desiredSize <= 0;
6985 }
6986 function WritableStreamDefaultControllerError(controller, error) {
6987 var stream = controller._controlledWritableStream;
6988 WritableStreamDefaultControllerClearAlgorithms(controller);
6989 WritableStreamStartErroring(stream, error);
6990 }
6991 function streamBrandCheckException(name) {
6992 return new TypeError("WritableStream.prototype." + name + " can only be used on a WritableStream");
6993 }
6994 function defaultWriterBrandCheckException(name) {
6995 return new TypeError("WritableStreamDefaultWriter.prototype." + name + " can only be used on a WritableStreamDefaultWriter");
6996 }
6997 function defaultWriterLockException(name) {
6998 return new TypeError('Cannot ' + name + ' a stream using a released writer');
6999 }
7000 function defaultWriterClosedPromiseInitialize(writer) {
7001 writer._closedPromise = newPromise(function (resolve, reject) {
7002 writer._closedPromise_resolve = resolve;
7003 writer._closedPromise_reject = reject;
7004 writer._closedPromiseState = 'pending';
7005 });
7006 }
7007 function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {
7008 defaultWriterClosedPromiseInitialize(writer);
7009 defaultWriterClosedPromiseReject(writer, reason);
7010 }
7011 function defaultWriterClosedPromiseInitializeAsResolved(writer) {
7012 defaultWriterClosedPromiseInitialize(writer);
7013 defaultWriterClosedPromiseResolve(writer);
7014 }
7015 function defaultWriterClosedPromiseReject(writer, reason) {
7016 setPromiseIsHandledToTrue(writer._closedPromise);
7017 writer._closedPromise_reject(reason);
7018 writer._closedPromise_resolve = undefined;
7019 writer._closedPromise_reject = undefined;
7020 writer._closedPromiseState = 'rejected';
7021 }
7022 function defaultWriterClosedPromiseResetToRejected(writer, reason) {
7023 defaultWriterClosedPromiseInitializeAsRejected(writer, reason);
7024 }
7025 function defaultWriterClosedPromiseResolve(writer) {
7026 writer._closedPromise_resolve(undefined);
7027 writer._closedPromise_resolve = undefined;
7028 writer._closedPromise_reject = undefined;
7029 writer._closedPromiseState = 'resolved';
7030 }
7031 function defaultWriterReadyPromiseInitialize(writer) {
7032 writer._readyPromise = newPromise(function (resolve, reject) {
7033 writer._readyPromise_resolve = resolve;
7034 writer._readyPromise_reject = reject;
7035 });
7036 writer._readyPromiseState = 'pending';
7037 }
7038 function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {
7039 defaultWriterReadyPromiseInitialize(writer);
7040 defaultWriterReadyPromiseReject(writer, reason);
7041 }
7042 function defaultWriterReadyPromiseInitializeAsResolved(writer) {
7043 defaultWriterReadyPromiseInitialize(writer);
7044 defaultWriterReadyPromiseResolve(writer);
7045 }
7046 function defaultWriterReadyPromiseReject(writer, reason) {
7047 setPromiseIsHandledToTrue(writer._readyPromise);
7048 writer._readyPromise_reject(reason);
7049 writer._readyPromise_resolve = undefined;
7050 writer._readyPromise_reject = undefined;
7051 writer._readyPromiseState = 'rejected';
7052 }
7053 function defaultWriterReadyPromiseReset(writer) {
7054 defaultWriterReadyPromiseInitialize(writer);
7055 }
7056 function defaultWriterReadyPromiseResetToRejected(writer, reason) {
7057 defaultWriterReadyPromiseInitializeAsRejected(writer, reason);
7058 }
7059 function defaultWriterReadyPromiseResolve(writer) {
7060 writer._readyPromise_resolve(undefined);
7061 writer._readyPromise_resolve = undefined;
7062 writer._readyPromise_reject = undefined;
7063 writer._readyPromiseState = 'fulfilled';
7064 }
7065 function isAbortSignal(value) {
7066 if (typeof value !== 'object' || value === null) {
7067 return false;
7068 }
7069 try {
7070 return typeof value.aborted === 'boolean';
7071 } catch (_a) {
7072 return false;
7073 }
7074 }
7075 var NativeDOMException = typeof DOMException !== 'undefined' ? DOMException : undefined;
7076 function isDOMExceptionConstructor(ctor) {
7077 if (!(typeof ctor === 'function' || typeof ctor === 'object')) {
7078 return false;
7079 }
7080 try {
7081 new ctor();
7082 return true;
7083 } catch (_a) {
7084 return false;
7085 }
7086 }
7087 function createDOMExceptionPolyfill() {
7088 var ctor = function DOMException(message, name) {
7089 this.message = message || '';
7090 this.name = name || 'Error';
7091 if (Error.captureStackTrace) {
7092 Error.captureStackTrace(this, this.constructor);
7093 }
7094 };
7095 ctor.prototype = Object.create(Error.prototype);
7096 Object.defineProperty(ctor.prototype, 'constructor', {
7097 value: ctor,
7098 writable: true,
7099 configurable: true
7100 });
7101 return ctor;
7102 }
7103 var DOMException$1 = isDOMExceptionConstructor(NativeDOMException) ? NativeDOMException : createDOMExceptionPolyfill();
7104 function ReadableStreamPipeTo(source, dest, preventClose, preventAbort, preventCancel, signal) {
7105 var reader = AcquireReadableStreamDefaultReader(source);
7106 var writer = AcquireWritableStreamDefaultWriter(dest);
7107 source._disturbed = true;
7108 var shuttingDown = false;
7109 var currentWrite = promiseResolvedWith(undefined);
7110 return newPromise(function (resolve, reject) {
7111 var abortAlgorithm;
7112 if (signal !== undefined) {
7113 abortAlgorithm = function () {
7114 var error = new DOMException$1('Aborted', 'AbortError');
7115 var actions = [];
7116 if (preventAbort === false) {
7117 actions.push(function () {
7118 if (dest._state === 'writable') {
7119 return WritableStreamAbort(dest, error);
7120 }
7121 return promiseResolvedWith(undefined);
7122 });
7123 }
7124 if (preventCancel === false) {
7125 actions.push(function () {
7126 if (source._state === 'readable') {
7127 return ReadableStreamCancel(source, error);
7128 }
7129 return promiseResolvedWith(undefined);
7130 });
7131 }
7132 shutdownWithAction(function () {
7133 return Promise.all(actions.map(function (action) {
7134 return action();
7135 }));
7136 }, true, error);
7137 };
7138 if (signal.aborted === true) {
7139 abortAlgorithm();
7140 return;
7141 }
7142 signal.addEventListener('abort', abortAlgorithm);
7143 }
7144 function pipeLoop() {
7145 return newPromise(function (resolveLoop, rejectLoop) {
7146 function next(done) {
7147 if (done) {
7148 resolveLoop();
7149 } else {
7150 PerformPromiseThen(pipeStep(), next, rejectLoop);
7151 }
7152 }
7153 next(false);
7154 });
7155 }
7156 function pipeStep() {
7157 if (shuttingDown === true) {
7158 return promiseResolvedWith(true);
7159 }
7160 return PerformPromiseThen(writer._readyPromise, function () {
7161 return PerformPromiseThen(ReadableStreamDefaultReaderRead(reader), function (_a) {
7162 var value = _a.value, done = _a.done;
7163 if (done === true) {
7164 return true;
7165 }
7166 currentWrite = PerformPromiseThen(WritableStreamDefaultWriterWrite(writer, value), undefined, noop);
7167 return false;
7168 });
7169 });
7170 }
7171 isOrBecomesErrored(source, reader._closedPromise, function (storedError) {
7172 if (preventAbort === false) {
7173 shutdownWithAction(function () {
7174 return WritableStreamAbort(dest, storedError);
7175 }, true, storedError);
7176 } else {
7177 shutdown(true, storedError);
7178 }
7179 });
7180 isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {
7181 if (preventCancel === false) {
7182 shutdownWithAction(function () {
7183 return ReadableStreamCancel(source, storedError);
7184 }, true, storedError);
7185 } else {
7186 shutdown(true, storedError);
7187 }
7188 });
7189 isOrBecomesClosed(source, reader._closedPromise, function () {
7190 if (preventClose === false) {
7191 shutdownWithAction(function () {
7192 return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);
7193 });
7194 } else {
7195 shutdown();
7196 }
7197 });
7198 if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {
7199 var destClosed_1 = new TypeError('the destination writable stream closed before all data could be piped to it');
7200 if (preventCancel === false) {
7201 shutdownWithAction(function () {
7202 return ReadableStreamCancel(source, destClosed_1);
7203 }, true, destClosed_1);
7204 } else {
7205 shutdown(true, destClosed_1);
7206 }
7207 }
7208 setPromiseIsHandledToTrue(pipeLoop());
7209 function waitForWritesToFinish() {
7210 var oldCurrentWrite = currentWrite;
7211 return PerformPromiseThen(currentWrite, function () {
7212 return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;
7213 });
7214 }
7215 function isOrBecomesErrored(stream, promise, action) {
7216 if (stream._state === 'errored') {
7217 action(stream._storedError);
7218 } else {
7219 uponRejection(promise, action);
7220 }
7221 }
7222 function isOrBecomesClosed(stream, promise, action) {
7223 if (stream._state === 'closed') {
7224 action();
7225 } else {
7226 uponFulfillment(promise, action);
7227 }
7228 }
7229 function shutdownWithAction(action, originalIsError, originalError) {
7230 if (shuttingDown === true) {
7231 return;
7232 }
7233 shuttingDown = true;
7234 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
7235 uponFulfillment(waitForWritesToFinish(), doTheRest);
7236 } else {
7237 doTheRest();
7238 }
7239 function doTheRest() {
7240 uponPromise(action(), function () {
7241 return finalize(originalIsError, originalError);
7242 }, function (newError) {
7243 return finalize(true, newError);
7244 });
7245 }
7246 }
7247 function shutdown(isError, error) {
7248 if (shuttingDown === true) {
7249 return;
7250 }
7251 shuttingDown = true;
7252 if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
7253 uponFulfillment(waitForWritesToFinish(), function () {
7254 return finalize(isError, error);
7255 });
7256 } else {
7257 finalize(isError, error);
7258 }
7259 }
7260 function finalize(isError, error) {
7261 WritableStreamDefaultWriterRelease(writer);
7262 ReadableStreamReaderGenericRelease(reader);
7263 if (signal !== undefined) {
7264 signal.removeEventListener('abort', abortAlgorithm);
7265 }
7266 if (isError) {
7267 reject(error);
7268 } else {
7269 resolve(undefined);
7270 }
7271 }
7272 });
7273 }
7274 var ReadableStreamDefaultController = function () {
7275 function ReadableStreamDefaultController() {
7276 throw new TypeError();
7277 }
7278 Object.defineProperty(ReadableStreamDefaultController.prototype, "desiredSize", {
7279 get: function () {
7280 if (IsReadableStreamDefaultController(this) === false) {
7281 throw defaultControllerBrandCheckException('desiredSize');
7282 }
7283 return ReadableStreamDefaultControllerGetDesiredSize(this);
7284 },
7285 enumerable: true,
7286 configurable: true
7287 });
7288 ReadableStreamDefaultController.prototype.close = function () {
7289 if (IsReadableStreamDefaultController(this) === false) {
7290 throw defaultControllerBrandCheckException('close');
7291 }
7292 if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {
7293 throw new TypeError('The stream is not in a state that permits close');
7294 }
7295 ReadableStreamDefaultControllerClose(this);
7296 };
7297 ReadableStreamDefaultController.prototype.enqueue = function (chunk) {
7298 if (IsReadableStreamDefaultController(this) === false) {
7299 throw defaultControllerBrandCheckException('enqueue');
7300 }
7301 if (ReadableStreamDefaultControllerCanCloseOrEnqueue(this) === false) {
7302 throw new TypeError('The stream is not in a state that permits enqueue');
7303 }
7304 return ReadableStreamDefaultControllerEnqueue(this, chunk);
7305 };
7306 ReadableStreamDefaultController.prototype.error = function (e) {
7307 if (IsReadableStreamDefaultController(this) === false) {
7308 throw defaultControllerBrandCheckException('error');
7309 }
7310 ReadableStreamDefaultControllerError(this, e);
7311 };
7312 ReadableStreamDefaultController.prototype[CancelSteps] = function (reason) {
7313 ResetQueue(this);
7314 var result = this._cancelAlgorithm(reason);
7315 ReadableStreamDefaultControllerClearAlgorithms(this);
7316 return result;
7317 };
7318 ReadableStreamDefaultController.prototype[PullSteps] = function () {
7319 var stream = this._controlledReadableStream;
7320 if (this._queue.length > 0) {
7321 var chunk = DequeueValue(this);
7322 if (this._closeRequested === true && this._queue.length === 0) {
7323 ReadableStreamDefaultControllerClearAlgorithms(this);
7324 ReadableStreamClose(stream);
7325 } else {
7326 ReadableStreamDefaultControllerCallPullIfNeeded(this);
7327 }
7328 return promiseResolvedWith(ReadableStreamCreateReadResult(chunk, false, stream._reader._forAuthorCode));
7329 }
7330 var pendingPromise = ReadableStreamAddReadRequest(stream);
7331 ReadableStreamDefaultControllerCallPullIfNeeded(this);
7332 return pendingPromise;
7333 };
7334 return ReadableStreamDefaultController;
7335 }();
7336 function IsReadableStreamDefaultController(x) {
7337 if (!typeIsObject(x)) {
7338 return false;
7339 }
7340 if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableStream')) {
7341 return false;
7342 }
7343 return true;
7344 }
7345 function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
7346 var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
7347 if (shouldPull === false) {
7348 return;
7349 }
7350 if (controller._pulling === true) {
7351 controller._pullAgain = true;
7352 return;
7353 }
7354 controller._pulling = true;
7355 var pullPromise = controller._pullAlgorithm();
7356 uponPromise(pullPromise, function () {
7357 controller._pulling = false;
7358 if (controller._pullAgain === true) {
7359 controller._pullAgain = false;
7360 ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7361 }
7362 }, function (e) {
7363 ReadableStreamDefaultControllerError(controller, e);
7364 });
7365 }
7366 function ReadableStreamDefaultControllerShouldCallPull(controller) {
7367 var stream = controller._controlledReadableStream;
7368 if (ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) === false) {
7369 return false;
7370 }
7371 if (controller._started === false) {
7372 return false;
7373 }
7374 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
7375 return true;
7376 }
7377 var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
7378 if (desiredSize > 0) {
7379 return true;
7380 }
7381 return false;
7382 }
7383 function ReadableStreamDefaultControllerClearAlgorithms(controller) {
7384 controller._pullAlgorithm = undefined;
7385 controller._cancelAlgorithm = undefined;
7386 controller._strategySizeAlgorithm = undefined;
7387 }
7388 function ReadableStreamDefaultControllerClose(controller) {
7389 var stream = controller._controlledReadableStream;
7390 controller._closeRequested = true;
7391 if (controller._queue.length === 0) {
7392 ReadableStreamDefaultControllerClearAlgorithms(controller);
7393 ReadableStreamClose(stream);
7394 }
7395 }
7396 function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
7397 var stream = controller._controlledReadableStream;
7398 if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
7399 ReadableStreamFulfillReadRequest(stream, chunk, false);
7400 } else {
7401 var chunkSize = void 0;
7402 try {
7403 chunkSize = controller._strategySizeAlgorithm(chunk);
7404 } catch (chunkSizeE) {
7405 ReadableStreamDefaultControllerError(controller, chunkSizeE);
7406 throw chunkSizeE;
7407 }
7408 try {
7409 EnqueueValueWithSize(controller, chunk, chunkSize);
7410 } catch (enqueueE) {
7411 ReadableStreamDefaultControllerError(controller, enqueueE);
7412 throw enqueueE;
7413 }
7414 }
7415 ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7416 }
7417 function ReadableStreamDefaultControllerError(controller, e) {
7418 var stream = controller._controlledReadableStream;
7419 if (stream._state !== 'readable') {
7420 return;
7421 }
7422 ResetQueue(controller);
7423 ReadableStreamDefaultControllerClearAlgorithms(controller);
7424 ReadableStreamError(stream, e);
7425 }
7426 function ReadableStreamDefaultControllerGetDesiredSize(controller) {
7427 var stream = controller._controlledReadableStream;
7428 var state = stream._state;
7429 if (state === 'errored') {
7430 return null;
7431 }
7432 if (state === 'closed') {
7433 return 0;
7434 }
7435 return controller._strategyHWM - controller._queueTotalSize;
7436 }
7437 function ReadableStreamDefaultControllerHasBackpressure(controller) {
7438 if (ReadableStreamDefaultControllerShouldCallPull(controller) === true) {
7439 return false;
7440 }
7441 return true;
7442 }
7443 function ReadableStreamDefaultControllerCanCloseOrEnqueue(controller) {
7444 var state = controller._controlledReadableStream._state;
7445 if (controller._closeRequested === false && state === 'readable') {
7446 return true;
7447 }
7448 return false;
7449 }
7450 function SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {
7451 controller._controlledReadableStream = stream;
7452 controller._queue = undefined;
7453 controller._queueTotalSize = undefined;
7454 ResetQueue(controller);
7455 controller._started = false;
7456 controller._closeRequested = false;
7457 controller._pullAgain = false;
7458 controller._pulling = false;
7459 controller._strategySizeAlgorithm = sizeAlgorithm;
7460 controller._strategyHWM = highWaterMark;
7461 controller._pullAlgorithm = pullAlgorithm;
7462 controller._cancelAlgorithm = cancelAlgorithm;
7463 stream._readableStreamController = controller;
7464 var startResult = startAlgorithm();
7465 uponPromise(promiseResolvedWith(startResult), function () {
7466 controller._started = true;
7467 ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7468 }, function (r) {
7469 ReadableStreamDefaultControllerError(controller, r);
7470 });
7471 }
7472 function SetUpReadableStreamDefaultControllerFromUnderlyingSource(stream, underlyingSource, highWaterMark, sizeAlgorithm) {
7473 var controller = Object.create(ReadableStreamDefaultController.prototype);
7474 function startAlgorithm() {
7475 return InvokeOrNoop(underlyingSource, 'start', [controller]);
7476 }
7477 var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'pull', 0, [controller]);
7478 var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingSource, 'cancel', 1, []);
7479 SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);
7480 }
7481 function defaultControllerBrandCheckException(name) {
7482 return new TypeError("ReadableStreamDefaultController.prototype." + name + " can only be used on a ReadableStreamDefaultController");
7483 }
7484 function ReadableStreamTee(stream, cloneForBranch2) {
7485 var reader = AcquireReadableStreamDefaultReader(stream);
7486 var reading = false;
7487 var canceled1 = false;
7488 var canceled2 = false;
7489 var reason1;
7490 var reason2;
7491 var branch1;
7492 var branch2;
7493 var resolveCancelPromise;
7494 var cancelPromise = newPromise(function (resolve) {
7495 resolveCancelPromise = resolve;
7496 });
7497 function pullAlgorithm() {
7498 if (reading === true) {
7499 return promiseResolvedWith(undefined);
7500 }
7501 reading = true;
7502 var readPromise = transformPromiseWith(ReadableStreamDefaultReaderRead(reader), function (result) {
7503 reading = false;
7504 var done = result.done;
7505 if (done === true) {
7506 if (canceled1 === false) {
7507 ReadableStreamDefaultControllerClose(branch1._readableStreamController);
7508 }
7509 if (canceled2 === false) {
7510 ReadableStreamDefaultControllerClose(branch2._readableStreamController);
7511 }
7512 return;
7513 }
7514 var value = result.value;
7515 var value1 = value;
7516 var value2 = value;
7517 if (canceled1 === false) {
7518 ReadableStreamDefaultControllerEnqueue(branch1._readableStreamController, value1);
7519 }
7520 if (canceled2 === false) {
7521 ReadableStreamDefaultControllerEnqueue(branch2._readableStreamController, value2);
7522 }
7523 });
7524 setPromiseIsHandledToTrue(readPromise);
7525 return promiseResolvedWith(undefined);
7526 }
7527 function cancel1Algorithm(reason) {
7528 canceled1 = true;
7529 reason1 = reason;
7530 if (canceled2 === true) {
7531 var compositeReason = createArrayFromList([
7532 reason1,
7533 reason2
7534 ]);
7535 var cancelResult = ReadableStreamCancel(stream, compositeReason);
7536 resolveCancelPromise(cancelResult);
7537 }
7538 return cancelPromise;
7539 }
7540 function cancel2Algorithm(reason) {
7541 canceled2 = true;
7542 reason2 = reason;
7543 if (canceled1 === true) {
7544 var compositeReason = createArrayFromList([
7545 reason1,
7546 reason2
7547 ]);
7548 var cancelResult = ReadableStreamCancel(stream, compositeReason);
7549 resolveCancelPromise(cancelResult);
7550 }
7551 return cancelPromise;
7552 }
7553 function startAlgorithm() {
7554 }
7555 branch1 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel1Algorithm);
7556 branch2 = CreateReadableStream(startAlgorithm, pullAlgorithm, cancel2Algorithm);
7557 uponRejection(reader._closedPromise, function (r) {
7558 ReadableStreamDefaultControllerError(branch1._readableStreamController, r);
7559 ReadableStreamDefaultControllerError(branch2._readableStreamController, r);
7560 });
7561 return [
7562 branch1,
7563 branch2
7564 ];
7565 }
7566 var NumberIsInteger = Number.isInteger || function (value) {
7567 return typeof value === 'number' && isFinite(value) && Math.floor(value) === value;
7568 };
7569 var ReadableStreamBYOBRequest = function () {
7570 function ReadableStreamBYOBRequest() {
7571 throw new TypeError('ReadableStreamBYOBRequest cannot be used directly');
7572 }
7573 Object.defineProperty(ReadableStreamBYOBRequest.prototype, "view", {
7574 get: function () {
7575 if (IsReadableStreamBYOBRequest(this) === false) {
7576 throw byobRequestBrandCheckException('view');
7577 }
7578 return this._view;
7579 },
7580 enumerable: true,
7581 configurable: true
7582 });
7583 ReadableStreamBYOBRequest.prototype.respond = function (bytesWritten) {
7584 if (IsReadableStreamBYOBRequest(this) === false) {
7585 throw byobRequestBrandCheckException('respond');
7586 }
7587 if (this._associatedReadableByteStreamController === undefined) {
7588 throw new TypeError('This BYOB request has been invalidated');
7589 }
7590 if (IsDetachedBuffer(this._view.buffer) === true);
7591 ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
7592 };
7593 ReadableStreamBYOBRequest.prototype.respondWithNewView = function (view) {
7594 if (IsReadableStreamBYOBRequest(this) === false) {
7595 throw byobRequestBrandCheckException('respond');
7596 }
7597 if (this._associatedReadableByteStreamController === undefined) {
7598 throw new TypeError('This BYOB request has been invalidated');
7599 }
7600 if (!ArrayBuffer.isView(view)) {
7601 throw new TypeError('You can only respond with array buffer views');
7602 }
7603 if (IsDetachedBuffer(view.buffer) === true);
7604 ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
7605 };
7606 return ReadableStreamBYOBRequest;
7607 }();
7608 var ReadableByteStreamController = function () {
7609 function ReadableByteStreamController() {
7610 throw new TypeError('ReadableByteStreamController constructor cannot be used directly');
7611 }
7612 Object.defineProperty(ReadableByteStreamController.prototype, "byobRequest", {
7613 get: function () {
7614 if (IsReadableByteStreamController(this) === false) {
7615 throw byteStreamControllerBrandCheckException('byobRequest');
7616 }
7617 if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {
7618 var firstDescriptor = this._pendingPullIntos.peek();
7619 var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
7620 var byobRequest = Object.create(ReadableStreamBYOBRequest.prototype);
7621 SetUpReadableStreamBYOBRequest(byobRequest, this, view);
7622 this._byobRequest = byobRequest;
7623 }
7624 return this._byobRequest;
7625 },
7626 enumerable: true,
7627 configurable: true
7628 });
7629 Object.defineProperty(ReadableByteStreamController.prototype, "desiredSize", {
7630 get: function () {
7631 if (IsReadableByteStreamController(this) === false) {
7632 throw byteStreamControllerBrandCheckException('desiredSize');
7633 }
7634 return ReadableByteStreamControllerGetDesiredSize(this);
7635 },
7636 enumerable: true,
7637 configurable: true
7638 });
7639 ReadableByteStreamController.prototype.close = function () {
7640 if (IsReadableByteStreamController(this) === false) {
7641 throw byteStreamControllerBrandCheckException('close');
7642 }
7643 if (this._closeRequested === true) {
7644 throw new TypeError('The stream has already been closed; do not close it again!');
7645 }
7646 var state = this._controlledReadableByteStream._state;
7647 if (state !== 'readable') {
7648 throw new TypeError("The stream (in " + state + " state) is not in the readable state and cannot be closed");
7649 }
7650 ReadableByteStreamControllerClose(this);
7651 };
7652 ReadableByteStreamController.prototype.enqueue = function (chunk) {
7653 if (IsReadableByteStreamController(this) === false) {
7654 throw byteStreamControllerBrandCheckException('enqueue');
7655 }
7656 if (this._closeRequested === true) {
7657 throw new TypeError('stream is closed or draining');
7658 }
7659 var state = this._controlledReadableByteStream._state;
7660 if (state !== 'readable') {
7661 throw new TypeError("The stream (in " + state + " state) is not in the readable state and cannot be enqueued to");
7662 }
7663 if (!ArrayBuffer.isView(chunk)) {
7664 throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');
7665 }
7666 if (IsDetachedBuffer(chunk.buffer) === true);
7667 ReadableByteStreamControllerEnqueue(this, chunk);
7668 };
7669 ReadableByteStreamController.prototype.error = function (e) {
7670 if (IsReadableByteStreamController(this) === false) {
7671 throw byteStreamControllerBrandCheckException('error');
7672 }
7673 ReadableByteStreamControllerError(this, e);
7674 };
7675 ReadableByteStreamController.prototype[CancelSteps] = function (reason) {
7676 if (this._pendingPullIntos.length > 0) {
7677 var firstDescriptor = this._pendingPullIntos.peek();
7678 firstDescriptor.bytesFilled = 0;
7679 }
7680 ResetQueue(this);
7681 var result = this._cancelAlgorithm(reason);
7682 ReadableByteStreamControllerClearAlgorithms(this);
7683 return result;
7684 };
7685 ReadableByteStreamController.prototype[PullSteps] = function () {
7686 var stream = this._controlledReadableByteStream;
7687 if (this._queueTotalSize > 0) {
7688 var entry = this._queue.shift();
7689 this._queueTotalSize -= entry.byteLength;
7690 ReadableByteStreamControllerHandleQueueDrain(this);
7691 var view = void 0;
7692 try {
7693 view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
7694 } catch (viewE) {
7695 return promiseRejectedWith(viewE);
7696 }
7697 return promiseResolvedWith(ReadableStreamCreateReadResult(view, false, stream._reader._forAuthorCode));
7698 }
7699 var autoAllocateChunkSize = this._autoAllocateChunkSize;
7700 if (autoAllocateChunkSize !== undefined) {
7701 var buffer = void 0;
7702 try {
7703 buffer = new ArrayBuffer(autoAllocateChunkSize);
7704 } catch (bufferE) {
7705 return promiseRejectedWith(bufferE);
7706 }
7707 var pullIntoDescriptor = {
7708 buffer: buffer,
7709 byteOffset: 0,
7710 byteLength: autoAllocateChunkSize,
7711 bytesFilled: 0,
7712 elementSize: 1,
7713 ctor: Uint8Array,
7714 readerType: 'default'
7715 };
7716 this._pendingPullIntos.push(pullIntoDescriptor);
7717 }
7718 var promise = ReadableStreamAddReadRequest(stream);
7719 ReadableByteStreamControllerCallPullIfNeeded(this);
7720 return promise;
7721 };
7722 return ReadableByteStreamController;
7723 }();
7724 function IsReadableByteStreamController(x) {
7725 if (!typeIsObject(x)) {
7726 return false;
7727 }
7728 if (!Object.prototype.hasOwnProperty.call(x, '_controlledReadableByteStream')) {
7729 return false;
7730 }
7731 return true;
7732 }
7733 function IsReadableStreamBYOBRequest(x) {
7734 if (!typeIsObject(x)) {
7735 return false;
7736 }
7737 if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {
7738 return false;
7739 }
7740 return true;
7741 }
7742 function ReadableByteStreamControllerCallPullIfNeeded(controller) {
7743 var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);
7744 if (shouldPull === false) {
7745 return;
7746 }
7747 if (controller._pulling === true) {
7748 controller._pullAgain = true;
7749 return;
7750 }
7751 controller._pulling = true;
7752 var pullPromise = controller._pullAlgorithm();
7753 uponPromise(pullPromise, function () {
7754 controller._pulling = false;
7755 if (controller._pullAgain === true) {
7756 controller._pullAgain = false;
7757 ReadableByteStreamControllerCallPullIfNeeded(controller);
7758 }
7759 }, function (e) {
7760 ReadableByteStreamControllerError(controller, e);
7761 });
7762 }
7763 function ReadableByteStreamControllerClearPendingPullIntos(controller) {
7764 ReadableByteStreamControllerInvalidateBYOBRequest(controller);
7765 controller._pendingPullIntos = new SimpleQueue();
7766 }
7767 function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {
7768 var done = false;
7769 if (stream._state === 'closed') {
7770 done = true;
7771 }
7772 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
7773 if (pullIntoDescriptor.readerType === 'default') {
7774 ReadableStreamFulfillReadRequest(stream, filledView, done);
7775 } else {
7776 ReadableStreamFulfillReadIntoRequest(stream, filledView, done);
7777 }
7778 }
7779 function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {
7780 var bytesFilled = pullIntoDescriptor.bytesFilled;
7781 var elementSize = pullIntoDescriptor.elementSize;
7782 return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);
7783 }
7784 function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {
7785 controller._queue.push({
7786 buffer: buffer,
7787 byteOffset: byteOffset,
7788 byteLength: byteLength
7789 });
7790 controller._queueTotalSize += byteLength;
7791 }
7792 function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {
7793 var elementSize = pullIntoDescriptor.elementSize;
7794 var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;
7795 var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);
7796 var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
7797 var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;
7798 var totalBytesToCopyRemaining = maxBytesToCopy;
7799 var ready = false;
7800 if (maxAlignedBytes > currentAlignedBytes) {
7801 totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
7802 ready = true;
7803 }
7804 var queue = controller._queue;
7805 while (totalBytesToCopyRemaining > 0) {
7806 var headOfQueue = queue.peek();
7807 var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);
7808 var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
7809 ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);
7810 if (headOfQueue.byteLength === bytesToCopy) {
7811 queue.shift();
7812 } else {
7813 headOfQueue.byteOffset += bytesToCopy;
7814 headOfQueue.byteLength -= bytesToCopy;
7815 }
7816 controller._queueTotalSize -= bytesToCopy;
7817 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);
7818 totalBytesToCopyRemaining -= bytesToCopy;
7819 }
7820 return ready;
7821 }
7822 function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {
7823 ReadableByteStreamControllerInvalidateBYOBRequest(controller);
7824 pullIntoDescriptor.bytesFilled += size;
7825 }
7826 function ReadableByteStreamControllerHandleQueueDrain(controller) {
7827 if (controller._queueTotalSize === 0 && controller._closeRequested === true) {
7828 ReadableByteStreamControllerClearAlgorithms(controller);
7829 ReadableStreamClose(controller._controlledReadableByteStream);
7830 } else {
7831 ReadableByteStreamControllerCallPullIfNeeded(controller);
7832 }
7833 }
7834 function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {
7835 if (controller._byobRequest === undefined) {
7836 return;
7837 }
7838 controller._byobRequest._associatedReadableByteStreamController = undefined;
7839 controller._byobRequest._view = undefined;
7840 controller._byobRequest = undefined;
7841 }
7842 function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {
7843 while (controller._pendingPullIntos.length > 0) {
7844 if (controller._queueTotalSize === 0) {
7845 return;
7846 }
7847 var pullIntoDescriptor = controller._pendingPullIntos.peek();
7848 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
7849 ReadableByteStreamControllerShiftPendingPullInto(controller);
7850 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);
7851 }
7852 }
7853 }
7854 function ReadableByteStreamControllerPullInto(controller, view) {
7855 var stream = controller._controlledReadableByteStream;
7856 var elementSize = 1;
7857 if (view.constructor !== DataView) {
7858 elementSize = view.constructor.BYTES_PER_ELEMENT;
7859 }
7860 var ctor = view.constructor;
7861 var buffer = TransferArrayBuffer(view.buffer);
7862 var pullIntoDescriptor = {
7863 buffer: buffer,
7864 byteOffset: view.byteOffset,
7865 byteLength: view.byteLength,
7866 bytesFilled: 0,
7867 elementSize: elementSize,
7868 ctor: ctor,
7869 readerType: 'byob'
7870 };
7871 if (controller._pendingPullIntos.length > 0) {
7872 controller._pendingPullIntos.push(pullIntoDescriptor);
7873 return ReadableStreamAddReadIntoRequest(stream);
7874 }
7875 if (stream._state === 'closed') {
7876 var emptyView = new ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
7877 return promiseResolvedWith(ReadableStreamCreateReadResult(emptyView, true, stream._reader._forAuthorCode));
7878 }
7879 if (controller._queueTotalSize > 0) {
7880 if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
7881 var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
7882 ReadableByteStreamControllerHandleQueueDrain(controller);
7883 return promiseResolvedWith(ReadableStreamCreateReadResult(filledView, false, stream._reader._forAuthorCode));
7884 }
7885 if (controller._closeRequested === true) {
7886 var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
7887 ReadableByteStreamControllerError(controller, e);
7888 return promiseRejectedWith(e);
7889 }
7890 }
7891 controller._pendingPullIntos.push(pullIntoDescriptor);
7892 var promise = ReadableStreamAddReadIntoRequest(stream);
7893 ReadableByteStreamControllerCallPullIfNeeded(controller);
7894 return promise;
7895 }
7896 function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
7897 firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
7898 var stream = controller._controlledReadableByteStream;
7899 if (ReadableStreamHasBYOBReader(stream) === true) {
7900 while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {
7901 var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);
7902 ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);
7903 }
7904 }
7905 }
7906 function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
7907 if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {
7908 throw new RangeError('bytesWritten out of range');
7909 }
7910 ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);
7911 if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {
7912 return;
7913 }
7914 ReadableByteStreamControllerShiftPendingPullInto(controller);
7915 var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
7916 if (remainderSize > 0) {
7917 var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
7918 var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);
7919 ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);
7920 }
7921 pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
7922 pullIntoDescriptor.bytesFilled -= remainderSize;
7923 ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableByteStream, pullIntoDescriptor);
7924 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
7925 }
7926 function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {
7927 var firstDescriptor = controller._pendingPullIntos.peek();
7928 var stream = controller._controlledReadableByteStream;
7929 if (stream._state === 'closed') {
7930 if (bytesWritten !== 0) {
7931 throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');
7932 }
7933 ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
7934 } else {
7935 ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
7936 }
7937 ReadableByteStreamControllerCallPullIfNeeded(controller);
7938 }
7939 function ReadableByteStreamControllerShiftPendingPullInto(controller) {
7940 var descriptor = controller._pendingPullIntos.shift();
7941 ReadableByteStreamControllerInvalidateBYOBRequest(controller);
7942 return descriptor;
7943 }
7944 function ReadableByteStreamControllerShouldCallPull(controller) {
7945 var stream = controller._controlledReadableByteStream;
7946 if (stream._state !== 'readable') {
7947 return false;
7948 }
7949 if (controller._closeRequested === true) {
7950 return false;
7951 }
7952 if (controller._started === false) {
7953 return false;
7954 }
7955 if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
7956 return true;
7957 }
7958 if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {
7959 return true;
7960 }
7961 var desiredSize = ReadableByteStreamControllerGetDesiredSize(controller);
7962 if (desiredSize > 0) {
7963 return true;
7964 }
7965 return false;
7966 }
7967 function ReadableByteStreamControllerClearAlgorithms(controller) {
7968 controller._pullAlgorithm = undefined;
7969 controller._cancelAlgorithm = undefined;
7970 }
7971 function ReadableByteStreamControllerClose(controller) {
7972 var stream = controller._controlledReadableByteStream;
7973 if (controller._queueTotalSize > 0) {
7974 controller._closeRequested = true;
7975 return;
7976 }
7977 if (controller._pendingPullIntos.length > 0) {
7978 var firstPendingPullInto = controller._pendingPullIntos.peek();
7979 if (firstPendingPullInto.bytesFilled > 0) {
7980 var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
7981 ReadableByteStreamControllerError(controller, e);
7982 throw e;
7983 }
7984 }
7985 ReadableByteStreamControllerClearAlgorithms(controller);
7986 ReadableStreamClose(stream);
7987 }
7988 function ReadableByteStreamControllerEnqueue(controller, chunk) {
7989 var stream = controller._controlledReadableByteStream;
7990 var buffer = chunk.buffer;
7991 var byteOffset = chunk.byteOffset;
7992 var byteLength = chunk.byteLength;
7993 var transferredBuffer = TransferArrayBuffer(buffer);
7994 if (ReadableStreamHasDefaultReader(stream) === true) {
7995 if (ReadableStreamGetNumReadRequests(stream) === 0) {
7996 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
7997 } else {
7998 var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);
7999 ReadableStreamFulfillReadRequest(stream, transferredView, false);
8000 }
8001 } else if (ReadableStreamHasBYOBReader(stream) === true) {
8002 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8003 ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
8004 } else {
8005 ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8006 }
8007 ReadableByteStreamControllerCallPullIfNeeded(controller);
8008 }
8009 function ReadableByteStreamControllerError(controller, e) {
8010 var stream = controller._controlledReadableByteStream;
8011 if (stream._state !== 'readable') {
8012 return;
8013 }
8014 ReadableByteStreamControllerClearPendingPullIntos(controller);
8015 ResetQueue(controller);
8016 ReadableByteStreamControllerClearAlgorithms(controller);
8017 ReadableStreamError(stream, e);
8018 }
8019 function ReadableByteStreamControllerGetDesiredSize(controller) {
8020 var stream = controller._controlledReadableByteStream;
8021 var state = stream._state;
8022 if (state === 'errored') {
8023 return null;
8024 }
8025 if (state === 'closed') {
8026 return 0;
8027 }
8028 return controller._strategyHWM - controller._queueTotalSize;
8029 }
8030 function ReadableByteStreamControllerRespond(controller, bytesWritten) {
8031 bytesWritten = Number(bytesWritten);
8032 if (IsFiniteNonNegativeNumber(bytesWritten) === false) {
8033 throw new RangeError('bytesWritten must be a finite');
8034 }
8035 ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
8036 }
8037 function ReadableByteStreamControllerRespondWithNewView(controller, view) {
8038 var firstDescriptor = controller._pendingPullIntos.peek();
8039 if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
8040 throw new RangeError('The region specified by view does not match byobRequest');
8041 }
8042 if (firstDescriptor.byteLength !== view.byteLength) {
8043 throw new RangeError('The buffer of view has different capacity than byobRequest');
8044 }
8045 firstDescriptor.buffer = view.buffer;
8046 ReadableByteStreamControllerRespondInternal(controller, view.byteLength);
8047 }
8048 function SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize) {
8049 controller._controlledReadableByteStream = stream;
8050 controller._pullAgain = false;
8051 controller._pulling = false;
8052 controller._byobRequest = undefined;
8053 controller._queue = controller._queueTotalSize = undefined;
8054 ResetQueue(controller);
8055 controller._closeRequested = false;
8056 controller._started = false;
8057 controller._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);
8058 controller._pullAlgorithm = pullAlgorithm;
8059 controller._cancelAlgorithm = cancelAlgorithm;
8060 controller._autoAllocateChunkSize = autoAllocateChunkSize;
8061 controller._pendingPullIntos = new SimpleQueue();
8062 stream._readableStreamController = controller;
8063 var startResult = startAlgorithm();
8064 uponPromise(promiseResolvedWith(startResult), function () {
8065 controller._started = true;
8066 ReadableByteStreamControllerCallPullIfNeeded(controller);
8067 }, function (r) {
8068 ReadableByteStreamControllerError(controller, r);
8069 });
8070 }
8071 function SetUpReadableByteStreamControllerFromUnderlyingSource(stream, underlyingByteSource, highWaterMark) {
8072 var controller = Object.create(ReadableByteStreamController.prototype);
8073 function startAlgorithm() {
8074 return InvokeOrNoop(underlyingByteSource, 'start', [controller]);
8075 }
8076 var pullAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'pull', 0, [controller]);
8077 var cancelAlgorithm = CreateAlgorithmFromUnderlyingMethod(underlyingByteSource, 'cancel', 1, []);
8078 var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
8079 if (autoAllocateChunkSize !== undefined) {
8080 autoAllocateChunkSize = Number(autoAllocateChunkSize);
8081 if (NumberIsInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {
8082 throw new RangeError('autoAllocateChunkSize must be a positive integer');
8083 }
8084 }
8085 SetUpReadableByteStreamController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, autoAllocateChunkSize);
8086 }
8087 function SetUpReadableStreamBYOBRequest(request, controller, view) {
8088 request._associatedReadableByteStreamController = controller;
8089 request._view = view;
8090 }
8091 function byobRequestBrandCheckException(name) {
8092 return new TypeError("ReadableStreamBYOBRequest.prototype." + name + " can only be used on a ReadableStreamBYOBRequest");
8093 }
8094 function byteStreamControllerBrandCheckException(name) {
8095 return new TypeError("ReadableByteStreamController.prototype." + name + " can only be used on a ReadableByteStreamController");
8096 }
8097 function AcquireReadableStreamBYOBReader(stream, forAuthorCode) {
8098 if (forAuthorCode === void 0) {
8099 forAuthorCode = false;
8100 }
8101 var reader = new ReadableStreamBYOBReader(stream);
8102 reader._forAuthorCode = forAuthorCode;
8103 return reader;
8104 }
8105 function ReadableStreamAddReadIntoRequest(stream) {
8106 var promise = newPromise(function (resolve, reject) {
8107 var readIntoRequest = {
8108 _resolve: resolve,
8109 _reject: reject
8110 };
8111 stream._reader._readIntoRequests.push(readIntoRequest);
8112 });
8113 return promise;
8114 }
8115 function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {
8116 var reader = stream._reader;
8117 var readIntoRequest = reader._readIntoRequests.shift();
8118 readIntoRequest._resolve(ReadableStreamCreateReadResult(chunk, done, reader._forAuthorCode));
8119 }
8120 function ReadableStreamGetNumReadIntoRequests(stream) {
8121 return stream._reader._readIntoRequests.length;
8122 }
8123 function ReadableStreamHasBYOBReader(stream) {
8124 var reader = stream._reader;
8125 if (reader === undefined) {
8126 return false;
8127 }
8128 if (!IsReadableStreamBYOBReader(reader)) {
8129 return false;
8130 }
8131 return true;
8132 }
8133 var ReadableStreamBYOBReader = function () {
8134 function ReadableStreamBYOBReader(stream) {
8135 if (!IsReadableStream(stream)) {
8136 throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');
8137 }
8138 if (IsReadableByteStreamController(stream._readableStreamController) === false) {
8139 throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + 'source');
8140 }
8141 if (IsReadableStreamLocked(stream)) {
8142 throw new TypeError('This stream has already been locked for exclusive reading by another reader');
8143 }
8144 ReadableStreamReaderGenericInitialize(this, stream);
8145 this._readIntoRequests = new SimpleQueue();
8146 }
8147 Object.defineProperty(ReadableStreamBYOBReader.prototype, "closed", {
8148 get: function () {
8149 if (!IsReadableStreamBYOBReader(this)) {
8150 return promiseRejectedWith(byobReaderBrandCheckException('closed'));
8151 }
8152 return this._closedPromise;
8153 },
8154 enumerable: true,
8155 configurable: true
8156 });
8157 ReadableStreamBYOBReader.prototype.cancel = function (reason) {
8158 if (!IsReadableStreamBYOBReader(this)) {
8159 return promiseRejectedWith(byobReaderBrandCheckException('cancel'));
8160 }
8161 if (this._ownerReadableStream === undefined) {
8162 return promiseRejectedWith(readerLockException('cancel'));
8163 }
8164 return ReadableStreamReaderGenericCancel(this, reason);
8165 };
8166 ReadableStreamBYOBReader.prototype.read = function (view) {
8167 if (!IsReadableStreamBYOBReader(this)) {
8168 return promiseRejectedWith(byobReaderBrandCheckException('read'));
8169 }
8170 if (this._ownerReadableStream === undefined) {
8171 return promiseRejectedWith(readerLockException('read from'));
8172 }
8173 if (!ArrayBuffer.isView(view)) {
8174 return promiseRejectedWith(new TypeError('view must be an array buffer view'));
8175 }
8176 if (IsDetachedBuffer(view.buffer) === true);
8177 if (view.byteLength === 0) {
8178 return promiseRejectedWith(new TypeError('view must have non-zero byteLength'));
8179 }
8180 return ReadableStreamBYOBReaderRead(this, view);
8181 };
8182 ReadableStreamBYOBReader.prototype.releaseLock = function () {
8183 if (!IsReadableStreamBYOBReader(this)) {
8184 throw byobReaderBrandCheckException('releaseLock');
8185 }
8186 if (this._ownerReadableStream === undefined) {
8187 return;
8188 }
8189 if (this._readIntoRequests.length > 0) {
8190 throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
8191 }
8192 ReadableStreamReaderGenericRelease(this);
8193 };
8194 return ReadableStreamBYOBReader;
8195 }();
8196 function IsReadableStreamBYOBReader(x) {
8197 if (!typeIsObject(x)) {
8198 return false;
8199 }
8200 if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {
8201 return false;
8202 }
8203 return true;
8204 }
8205 function ReadableStreamBYOBReaderRead(reader, view) {
8206 var stream = reader._ownerReadableStream;
8207 stream._disturbed = true;
8208 if (stream._state === 'errored') {
8209 return promiseRejectedWith(stream._storedError);
8210 }
8211 return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);
8212 }
8213 function byobReaderBrandCheckException(name) {
8214 return new TypeError("ReadableStreamBYOBReader.prototype." + name + " can only be used on a ReadableStreamBYOBReader");
8215 }
8216 var ReadableStream = function () {
8217 function ReadableStream(underlyingSource, strategy) {
8218 if (underlyingSource === void 0) {
8219 underlyingSource = {};
8220 }
8221 if (strategy === void 0) {
8222 strategy = {};
8223 }
8224 InitializeReadableStream(this);
8225 var size = strategy.size;
8226 var highWaterMark = strategy.highWaterMark;
8227 var type = underlyingSource.type;
8228 var typeString = String(type);
8229 if (typeString === 'bytes') {
8230 if (size !== undefined) {
8231 throw new RangeError('The strategy for a byte stream cannot have a size function');
8232 }
8233 if (highWaterMark === undefined) {
8234 highWaterMark = 0;
8235 }
8236 highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);
8237 SetUpReadableByteStreamControllerFromUnderlyingSource(this, underlyingSource, highWaterMark);
8238 } else if (type === undefined) {
8239 var sizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(size);
8240 if (highWaterMark === undefined) {
8241 highWaterMark = 1;
8242 }
8243 highWaterMark = ValidateAndNormalizeHighWaterMark(highWaterMark);
8244 SetUpReadableStreamDefaultControllerFromUnderlyingSource(this, underlyingSource, highWaterMark, sizeAlgorithm);
8245 } else {
8246 throw new RangeError('Invalid type is specified');
8247 }
8248 }
8249 Object.defineProperty(ReadableStream.prototype, "locked", {
8250 get: function () {
8251 if (IsReadableStream(this) === false) {
8252 throw streamBrandCheckException$1('locked');
8253 }
8254 return IsReadableStreamLocked(this);
8255 },
8256 enumerable: true,
8257 configurable: true
8258 });
8259 ReadableStream.prototype.cancel = function (reason) {
8260 if (IsReadableStream(this) === false) {
8261 return promiseRejectedWith(streamBrandCheckException$1('cancel'));
8262 }
8263 if (IsReadableStreamLocked(this) === true) {
8264 return promiseRejectedWith(new TypeError('Cannot cancel a stream that already has a reader'));
8265 }
8266 return ReadableStreamCancel(this, reason);
8267 };
8268 ReadableStream.prototype.getReader = function (_a) {
8269 var mode = (_a === void 0 ? {} : _a).mode;
8270 if (IsReadableStream(this) === false) {
8271 throw streamBrandCheckException$1('getReader');
8272 }
8273 if (mode === undefined) {
8274 return AcquireReadableStreamDefaultReader(this, true);
8275 }
8276 mode = String(mode);
8277 if (mode === 'byob') {
8278 return AcquireReadableStreamBYOBReader(this, true);
8279 }
8280 throw new RangeError('Invalid mode is specified');
8281 };
8282 ReadableStream.prototype.pipeThrough = function (_a, _b) {
8283 var writable = _a.writable, readable = _a.readable;
8284 var _c = _b === void 0 ? {} : _b, preventClose = _c.preventClose, preventAbort = _c.preventAbort, preventCancel = _c.preventCancel, signal = _c.signal;
8285 if (IsReadableStream(this) === false) {
8286 throw streamBrandCheckException$1('pipeThrough');
8287 }
8288 if (IsWritableStream(writable) === false) {
8289 throw new TypeError('writable argument to pipeThrough must be a WritableStream');
8290 }
8291 if (IsReadableStream(readable) === false) {
8292 throw new TypeError('readable argument to pipeThrough must be a ReadableStream');
8293 }
8294 preventClose = Boolean(preventClose);
8295 preventAbort = Boolean(preventAbort);
8296 preventCancel = Boolean(preventCancel);
8297 if (signal !== undefined && !isAbortSignal(signal)) {
8298 throw new TypeError('ReadableStream.prototype.pipeThrough\'s signal option must be an AbortSignal');
8299 }
8300 if (IsReadableStreamLocked(this) === true) {
8301 throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked ReadableStream');
8302 }
8303 if (IsWritableStreamLocked(writable) === true) {
8304 throw new TypeError('ReadableStream.prototype.pipeThrough cannot be used on a locked WritableStream');
8305 }
8306 var promise = ReadableStreamPipeTo(this, writable, preventClose, preventAbort, preventCancel, signal);
8307 setPromiseIsHandledToTrue(promise);
8308 return readable;
8309 };
8310 ReadableStream.prototype.pipeTo = function (dest, _a) {
8311 var _b = _a === void 0 ? {} : _a, preventClose = _b.preventClose, preventAbort = _b.preventAbort, preventCancel = _b.preventCancel, signal = _b.signal;
8312 if (IsReadableStream(this) === false) {
8313 return promiseRejectedWith(streamBrandCheckException$1('pipeTo'));
8314 }
8315 if (IsWritableStream(dest) === false) {
8316 return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream'));
8317 }
8318 preventClose = Boolean(preventClose);
8319 preventAbort = Boolean(preventAbort);
8320 preventCancel = Boolean(preventCancel);
8321 if (signal !== undefined && !isAbortSignal(signal)) {
8322 return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo\'s signal option must be an AbortSignal'));
8323 }
8324 if (IsReadableStreamLocked(this) === true) {
8325 return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));
8326 }
8327 if (IsWritableStreamLocked(dest) === true) {
8328 return promiseRejectedWith(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));
8329 }
8330 return ReadableStreamPipeTo(this, dest, preventClose, preventAbort, preventCancel, signal);
8331 };
8332 ReadableStream.prototype.tee = function () {
8333 if (IsReadableStream(this) === false) {
8334 throw streamBrandCheckException$1('tee');
8335 }
8336 var branches = ReadableStreamTee(this);
8337 return createArrayFromList(branches);
8338 };
8339 ReadableStream.prototype.getIterator = function (_a) {
8340 var _b = (_a === void 0 ? {} : _a).preventCancel, preventCancel = _b === void 0 ? false : _b;
8341 if (IsReadableStream(this) === false) {
8342 throw streamBrandCheckException$1('getIterator');
8343 }
8344 return AcquireReadableStreamAsyncIterator(this, preventCancel);
8345 };
8346 return ReadableStream;
8347 }();
8348 if (typeof SymbolPolyfill.asyncIterator === 'symbol') {
8349 Object.defineProperty(ReadableStream.prototype, SymbolPolyfill.asyncIterator, {
8350 value: ReadableStream.prototype.getIterator,
8351 enumerable: false,
8352 writable: true,
8353 configurable: true
8354 });
8355 }
8356 function CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm) {
8357 if (highWaterMark === void 0) {
8358 highWaterMark = 1;
8359 }
8360 if (sizeAlgorithm === void 0) {
8361 sizeAlgorithm = function () {
8362 return 1;
8363 };
8364 }
8365 var stream = Object.create(ReadableStream.prototype);
8366 InitializeReadableStream(stream);
8367 var controller = Object.create(ReadableStreamDefaultController.prototype);
8368 SetUpReadableStreamDefaultController(stream, controller, startAlgorithm, pullAlgorithm, cancelAlgorithm, highWaterMark, sizeAlgorithm);
8369 return stream;
8370 }
8371 function InitializeReadableStream(stream) {
8372 stream._state = 'readable';
8373 stream._reader = undefined;
8374 stream._storedError = undefined;
8375 stream._disturbed = false;
8376 }
8377 function IsReadableStream(x) {
8378 if (!typeIsObject(x)) {
8379 return false;
8380 }
8381 if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {
8382 return false;
8383 }
8384 return true;
8385 }
8386 function IsReadableStreamLocked(stream) {
8387 if (stream._reader === undefined) {
8388 return false;
8389 }
8390 return true;
8391 }
8392 function ReadableStreamCancel(stream, reason) {
8393 stream._disturbed = true;
8394 if (stream._state === 'closed') {
8395 return promiseResolvedWith(undefined);
8396 }
8397 if (stream._state === 'errored') {
8398 return promiseRejectedWith(stream._storedError);
8399 }
8400 ReadableStreamClose(stream);
8401 var sourceCancelPromise = stream._readableStreamController[CancelSteps](reason);
8402 return transformPromiseWith(sourceCancelPromise, noop);
8403 }
8404 function ReadableStreamClose(stream) {
8405 stream._state = 'closed';
8406 var reader = stream._reader;
8407 if (reader === undefined) {
8408 return;
8409 }
8410 if (IsReadableStreamDefaultReader(reader)) {
8411 reader._readRequests.forEach(function (readRequest) {
8412 readRequest._resolve(ReadableStreamCreateReadResult(undefined, true, reader._forAuthorCode));
8413 });
8414 reader._readRequests = new SimpleQueue();
8415 }
8416 defaultReaderClosedPromiseResolve(reader);
8417 }
8418 function ReadableStreamError(stream, e) {
8419 stream._state = 'errored';
8420 stream._storedError = e;
8421 var reader = stream._reader;
8422 if (reader === undefined) {
8423 return;
8424 }
8425 if (IsReadableStreamDefaultReader(reader)) {
8426 reader._readRequests.forEach(function (readRequest) {
8427 readRequest._reject(e);
8428 });
8429 reader._readRequests = new SimpleQueue();
8430 } else {
8431 reader._readIntoRequests.forEach(function (readIntoRequest) {
8432 readIntoRequest._reject(e);
8433 });
8434 reader._readIntoRequests = new SimpleQueue();
8435 }
8436 defaultReaderClosedPromiseReject(reader, e);
8437 }
8438 function streamBrandCheckException$1(name) {
8439 return new TypeError("ReadableStream.prototype." + name + " can only be used on a ReadableStream");
8440 }
8441 var ByteLengthQueuingStrategy = function () {
8442 function ByteLengthQueuingStrategy(_a) {
8443 var highWaterMark = _a.highWaterMark;
8444 this.highWaterMark = highWaterMark;
8445 }
8446 ByteLengthQueuingStrategy.prototype.size = function (chunk) {
8447 return chunk.byteLength;
8448 };
8449 return ByteLengthQueuingStrategy;
8450 }();
8451 var CountQueuingStrategy = function () {
8452 function CountQueuingStrategy(_a) {
8453 var highWaterMark = _a.highWaterMark;
8454 this.highWaterMark = highWaterMark;
8455 }
8456 CountQueuingStrategy.prototype.size = function () {
8457 return 1;
8458 };
8459 return CountQueuingStrategy;
8460 }();
8461 var TransformStream = function () {
8462 function TransformStream(transformer, writableStrategy, readableStrategy) {
8463 if (transformer === void 0) {
8464 transformer = {};
8465 }
8466 if (writableStrategy === void 0) {
8467 writableStrategy = {};
8468 }
8469 if (readableStrategy === void 0) {
8470 readableStrategy = {};
8471 }
8472 var writableSizeFunction = writableStrategy.size;
8473 var writableHighWaterMark = writableStrategy.highWaterMark;
8474 var readableSizeFunction = readableStrategy.size;
8475 var readableHighWaterMark = readableStrategy.highWaterMark;
8476 var writableType = transformer.writableType;
8477 if (writableType !== undefined) {
8478 throw new RangeError('Invalid writable type specified');
8479 }
8480 var writableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(writableSizeFunction);
8481 if (writableHighWaterMark === undefined) {
8482 writableHighWaterMark = 1;
8483 }
8484 writableHighWaterMark = ValidateAndNormalizeHighWaterMark(writableHighWaterMark);
8485 var readableType = transformer.readableType;
8486 if (readableType !== undefined) {
8487 throw new RangeError('Invalid readable type specified');
8488 }
8489 var readableSizeAlgorithm = MakeSizeAlgorithmFromSizeFunction(readableSizeFunction);
8490 if (readableHighWaterMark === undefined) {
8491 readableHighWaterMark = 0;
8492 }
8493 readableHighWaterMark = ValidateAndNormalizeHighWaterMark(readableHighWaterMark);
8494 var startPromise_resolve;
8495 var startPromise = newPromise(function (resolve) {
8496 startPromise_resolve = resolve;
8497 });
8498 InitializeTransformStream(this, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
8499 SetUpTransformStreamDefaultControllerFromTransformer(this, transformer);
8500 var startResult = InvokeOrNoop(transformer, 'start', [this._transformStreamController]);
8501 startPromise_resolve(startResult);
8502 }
8503 Object.defineProperty(TransformStream.prototype, "readable", {
8504 get: function () {
8505 if (IsTransformStream(this) === false) {
8506 throw streamBrandCheckException$2('readable');
8507 }
8508 return this._readable;
8509 },
8510 enumerable: true,
8511 configurable: true
8512 });
8513 Object.defineProperty(TransformStream.prototype, "writable", {
8514 get: function () {
8515 if (IsTransformStream(this) === false) {
8516 throw streamBrandCheckException$2('writable');
8517 }
8518 return this._writable;
8519 },
8520 enumerable: true,
8521 configurable: true
8522 });
8523 return TransformStream;
8524 }();
8525 function InitializeTransformStream(stream, startPromise, writableHighWaterMark, writableSizeAlgorithm, readableHighWaterMark, readableSizeAlgorithm) {
8526 function startAlgorithm() {
8527 return startPromise;
8528 }
8529 function writeAlgorithm(chunk) {
8530 return TransformStreamDefaultSinkWriteAlgorithm(stream, chunk);
8531 }
8532 function abortAlgorithm(reason) {
8533 return TransformStreamDefaultSinkAbortAlgorithm(stream, reason);
8534 }
8535 function closeAlgorithm() {
8536 return TransformStreamDefaultSinkCloseAlgorithm(stream);
8537 }
8538 stream._writable = CreateWritableStream(startAlgorithm, writeAlgorithm, closeAlgorithm, abortAlgorithm, writableHighWaterMark, writableSizeAlgorithm);
8539 function pullAlgorithm() {
8540 return TransformStreamDefaultSourcePullAlgorithm(stream);
8541 }
8542 function cancelAlgorithm(reason) {
8543 TransformStreamErrorWritableAndUnblockWrite(stream, reason);
8544 return promiseResolvedWith(undefined);
8545 }
8546 stream._readable = CreateReadableStream(startAlgorithm, pullAlgorithm, cancelAlgorithm, readableHighWaterMark, readableSizeAlgorithm);
8547 stream._backpressure = undefined;
8548 stream._backpressureChangePromise = undefined;
8549 stream._backpressureChangePromise_resolve = undefined;
8550 TransformStreamSetBackpressure(stream, true);
8551 stream._transformStreamController = undefined;
8552 }
8553 function IsTransformStream(x) {
8554 if (!typeIsObject(x)) {
8555 return false;
8556 }
8557 if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {
8558 return false;
8559 }
8560 return true;
8561 }
8562 function TransformStreamError(stream, e) {
8563 ReadableStreamDefaultControllerError(stream._readable._readableStreamController, e);
8564 TransformStreamErrorWritableAndUnblockWrite(stream, e);
8565 }
8566 function TransformStreamErrorWritableAndUnblockWrite(stream, e) {
8567 TransformStreamDefaultControllerClearAlgorithms(stream._transformStreamController);
8568 WritableStreamDefaultControllerErrorIfNeeded(stream._writable._writableStreamController, e);
8569 if (stream._backpressure === true) {
8570 TransformStreamSetBackpressure(stream, false);
8571 }
8572 }
8573 function TransformStreamSetBackpressure(stream, backpressure) {
8574 if (stream._backpressureChangePromise !== undefined) {
8575 stream._backpressureChangePromise_resolve();
8576 }
8577 stream._backpressureChangePromise = newPromise(function (resolve) {
8578 stream._backpressureChangePromise_resolve = resolve;
8579 });
8580 stream._backpressure = backpressure;
8581 }
8582 var TransformStreamDefaultController = function () {
8583 function TransformStreamDefaultController() {
8584 throw new TypeError('TransformStreamDefaultController instances cannot be created directly');
8585 }
8586 Object.defineProperty(TransformStreamDefaultController.prototype, "desiredSize", {
8587 get: function () {
8588 if (IsTransformStreamDefaultController(this) === false) {
8589 throw defaultControllerBrandCheckException$1('desiredSize');
8590 }
8591 var readableController = this._controlledTransformStream._readable._readableStreamController;
8592 return ReadableStreamDefaultControllerGetDesiredSize(readableController);
8593 },
8594 enumerable: true,
8595 configurable: true
8596 });
8597 TransformStreamDefaultController.prototype.enqueue = function (chunk) {
8598 if (IsTransformStreamDefaultController(this) === false) {
8599 throw defaultControllerBrandCheckException$1('enqueue');
8600 }
8601 TransformStreamDefaultControllerEnqueue(this, chunk);
8602 };
8603 TransformStreamDefaultController.prototype.error = function (reason) {
8604 if (IsTransformStreamDefaultController(this) === false) {
8605 throw defaultControllerBrandCheckException$1('error');
8606 }
8607 TransformStreamDefaultControllerError(this, reason);
8608 };
8609 TransformStreamDefaultController.prototype.terminate = function () {
8610 if (IsTransformStreamDefaultController(this) === false) {
8611 throw defaultControllerBrandCheckException$1('terminate');
8612 }
8613 TransformStreamDefaultControllerTerminate(this);
8614 };
8615 return TransformStreamDefaultController;
8616 }();
8617 function IsTransformStreamDefaultController(x) {
8618 if (!typeIsObject(x)) {
8619 return false;
8620 }
8621 if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {
8622 return false;
8623 }
8624 return true;
8625 }
8626 function SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm) {
8627 controller._controlledTransformStream = stream;
8628 stream._transformStreamController = controller;
8629 controller._transformAlgorithm = transformAlgorithm;
8630 controller._flushAlgorithm = flushAlgorithm;
8631 }
8632 function SetUpTransformStreamDefaultControllerFromTransformer(stream, transformer) {
8633 var controller = Object.create(TransformStreamDefaultController.prototype);
8634 var transformAlgorithm = function (chunk) {
8635 try {
8636 TransformStreamDefaultControllerEnqueue(controller, chunk);
8637 return promiseResolvedWith(undefined);
8638 } catch (transformResultE) {
8639 return promiseRejectedWith(transformResultE);
8640 }
8641 };
8642 var transformMethod = transformer.transform;
8643 if (transformMethod !== undefined) {
8644 if (typeof transformMethod !== 'function') {
8645 throw new TypeError('transform is not a method');
8646 }
8647 transformAlgorithm = function (chunk) {
8648 return PromiseCall(transformMethod, transformer, [
8649 chunk,
8650 controller
8651 ]);
8652 };
8653 }
8654 var flushAlgorithm = CreateAlgorithmFromUnderlyingMethod(transformer, 'flush', 0, [controller]);
8655 SetUpTransformStreamDefaultController(stream, controller, transformAlgorithm, flushAlgorithm);
8656 }
8657 function TransformStreamDefaultControllerClearAlgorithms(controller) {
8658 controller._transformAlgorithm = undefined;
8659 controller._flushAlgorithm = undefined;
8660 }
8661 function TransformStreamDefaultControllerEnqueue(controller, chunk) {
8662 var stream = controller._controlledTransformStream;
8663 var readableController = stream._readable._readableStreamController;
8664 if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === false) {
8665 throw new TypeError('Readable side is not in a state that permits enqueue');
8666 }
8667 try {
8668 ReadableStreamDefaultControllerEnqueue(readableController, chunk);
8669 } catch (e) {
8670 TransformStreamErrorWritableAndUnblockWrite(stream, e);
8671 throw stream._readable._storedError;
8672 }
8673 var backpressure = ReadableStreamDefaultControllerHasBackpressure(readableController);
8674 if (backpressure !== stream._backpressure) {
8675 TransformStreamSetBackpressure(stream, true);
8676 }
8677 }
8678 function TransformStreamDefaultControllerError(controller, e) {
8679 TransformStreamError(controller._controlledTransformStream, e);
8680 }
8681 function TransformStreamDefaultControllerPerformTransform(controller, chunk) {
8682 var transformPromise = controller._transformAlgorithm(chunk);
8683 return transformPromiseWith(transformPromise, undefined, function (r) {
8684 TransformStreamError(controller._controlledTransformStream, r);
8685 throw r;
8686 });
8687 }
8688 function TransformStreamDefaultControllerTerminate(controller) {
8689 var stream = controller._controlledTransformStream;
8690 var readableController = stream._readable._readableStreamController;
8691 if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {
8692 ReadableStreamDefaultControllerClose(readableController);
8693 }
8694 var error = new TypeError('TransformStream terminated');
8695 TransformStreamErrorWritableAndUnblockWrite(stream, error);
8696 }
8697 function TransformStreamDefaultSinkWriteAlgorithm(stream, chunk) {
8698 var controller = stream._transformStreamController;
8699 if (stream._backpressure === true) {
8700 var backpressureChangePromise = stream._backpressureChangePromise;
8701 return transformPromiseWith(backpressureChangePromise, function () {
8702 var writable = stream._writable;
8703 var state = writable._state;
8704 if (state === 'erroring') {
8705 throw writable._storedError;
8706 }
8707 return TransformStreamDefaultControllerPerformTransform(controller, chunk);
8708 });
8709 }
8710 return TransformStreamDefaultControllerPerformTransform(controller, chunk);
8711 }
8712 function TransformStreamDefaultSinkAbortAlgorithm(stream, reason) {
8713 TransformStreamError(stream, reason);
8714 return promiseResolvedWith(undefined);
8715 }
8716 function TransformStreamDefaultSinkCloseAlgorithm(stream) {
8717 var readable = stream._readable;
8718 var controller = stream._transformStreamController;
8719 var flushPromise = controller._flushAlgorithm();
8720 TransformStreamDefaultControllerClearAlgorithms(controller);
8721 return transformPromiseWith(flushPromise, function () {
8722 if (readable._state === 'errored') {
8723 throw readable._storedError;
8724 }
8725 var readableController = readable._readableStreamController;
8726 if (ReadableStreamDefaultControllerCanCloseOrEnqueue(readableController) === true) {
8727 ReadableStreamDefaultControllerClose(readableController);
8728 }
8729 }, function (r) {
8730 TransformStreamError(stream, r);
8731 throw readable._storedError;
8732 });
8733 }
8734 function TransformStreamDefaultSourcePullAlgorithm(stream) {
8735 TransformStreamSetBackpressure(stream, false);
8736 return stream._backpressureChangePromise;
8737 }
8738 function defaultControllerBrandCheckException$1(name) {
8739 return new TypeError("TransformStreamDefaultController.prototype." + name + " can only be used on a TransformStreamDefaultController");
8740 }
8741 function streamBrandCheckException$2(name) {
8742 return new TypeError("TransformStream.prototype." + name + " can only be used on a TransformStream");
8743 }
8744 exports.ByteLengthQueuingStrategy = ByteLengthQueuingStrategy;
8745 exports.CountQueuingStrategy = CountQueuingStrategy;
8746 exports.ReadableStream = ReadableStream;
8747 exports.TransformStream = TransformStream;
8748 exports.WritableStream = WritableStream;
8749 Object.defineProperty(exports, '__esModule', { value: true });
8750}));
8751
8752/***/ }),
8753/* 136 */
8754/***/ (function(module, exports, __w_pdfjs_require__) {
8755
8756__w_pdfjs_require__(137);
8757__w_pdfjs_require__(105);
8758__w_pdfjs_require__(73);
8759__w_pdfjs_require__(107);
8760var path = __w_pdfjs_require__(38);
8761module.exports = path.Map;
8762
8763/***/ }),
8764/* 137 */
8765/***/ (function(module, exports, __w_pdfjs_require__) {
8766
8767"use strict";
8768
8769var collection = __w_pdfjs_require__(138);
8770var collectionStrong = __w_pdfjs_require__(142);
8771module.exports = collection('Map', function (init) {
8772 return function Map() {
8773 return init(this, arguments.length ? arguments[0] : undefined);
8774 };
8775}, collectionStrong);
8776
8777/***/ }),
8778/* 138 */
8779/***/ (function(module, exports, __w_pdfjs_require__) {
8780
8781"use strict";
8782
8783var $ = __w_pdfjs_require__(5);
8784var global = __w_pdfjs_require__(6);
8785var isForced = __w_pdfjs_require__(47);
8786var redefine = __w_pdfjs_require__(24);
8787var InternalMetadataModule = __w_pdfjs_require__(139);
8788var iterate = __w_pdfjs_require__(115);
8789var anInstance = __w_pdfjs_require__(114);
8790var isObject = __w_pdfjs_require__(17);
8791var fails = __w_pdfjs_require__(9);
8792var checkCorrectnessOfIteration = __w_pdfjs_require__(93);
8793var setToStringTag = __w_pdfjs_require__(81);
8794var inheritIfRequired = __w_pdfjs_require__(141);
8795module.exports = function (CONSTRUCTOR_NAME, wrapper, common) {
8796 var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;
8797 var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;
8798 var ADDER = IS_MAP ? 'set' : 'add';
8799 var NativeConstructor = global[CONSTRUCTOR_NAME];
8800 var NativePrototype = NativeConstructor && NativeConstructor.prototype;
8801 var Constructor = NativeConstructor;
8802 var exported = {};
8803 var fixMethod = function (KEY) {
8804 var nativeMethod = NativePrototype[KEY];
8805 redefine(NativePrototype, KEY, KEY == 'add' ? function add(value) {
8806 nativeMethod.call(this, value === 0 ? 0 : value);
8807 return this;
8808 } : KEY == 'delete' ? function (key) {
8809 return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
8810 } : KEY == 'get' ? function get(key) {
8811 return IS_WEAK && !isObject(key) ? undefined : nativeMethod.call(this, key === 0 ? 0 : key);
8812 } : KEY == 'has' ? function has(key) {
8813 return IS_WEAK && !isObject(key) ? false : nativeMethod.call(this, key === 0 ? 0 : key);
8814 } : function set(key, value) {
8815 nativeMethod.call(this, key === 0 ? 0 : key, value);
8816 return this;
8817 });
8818 };
8819 if (isForced(CONSTRUCTOR_NAME, typeof NativeConstructor != 'function' || !(IS_WEAK || NativePrototype.forEach && !fails(function () {
8820 new NativeConstructor().entries().next();
8821 })))) {
8822 Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);
8823 InternalMetadataModule.REQUIRED = true;
8824 } else if (isForced(CONSTRUCTOR_NAME, true)) {
8825 var instance = new Constructor();
8826 var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
8827 var THROWS_ON_PRIMITIVES = fails(function () {
8828 instance.has(1);
8829 });
8830 var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) {
8831 new NativeConstructor(iterable);
8832 });
8833 var BUGGY_ZERO = !IS_WEAK && fails(function () {
8834 var $instance = new NativeConstructor();
8835 var index = 5;
8836 while (index--)
8837 $instance[ADDER](index, index);
8838 return !$instance.has(-0);
8839 });
8840 if (!ACCEPT_ITERABLES) {
8841 Constructor = wrapper(function (dummy, iterable) {
8842 anInstance(dummy, Constructor, CONSTRUCTOR_NAME);
8843 var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);
8844 if (iterable != undefined)
8845 iterate(iterable, that[ADDER], that, IS_MAP);
8846 return that;
8847 });
8848 Constructor.prototype = NativePrototype;
8849 NativePrototype.constructor = Constructor;
8850 }
8851 if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
8852 fixMethod('delete');
8853 fixMethod('has');
8854 IS_MAP && fixMethod('get');
8855 }
8856 if (BUGGY_ZERO || HASNT_CHAINING)
8857 fixMethod(ADDER);
8858 if (IS_WEAK && NativePrototype.clear)
8859 delete NativePrototype.clear;
8860 }
8861 exported[CONSTRUCTOR_NAME] = Constructor;
8862 $({
8863 global: true,
8864 forced: Constructor != NativeConstructor
8865 }, exported);
8866 setToStringTag(Constructor, CONSTRUCTOR_NAME);
8867 if (!IS_WEAK)
8868 common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);
8869 return Constructor;
8870};
8871
8872/***/ }),
8873/* 139 */
8874/***/ (function(module, exports, __w_pdfjs_require__) {
8875
8876var hiddenKeys = __w_pdfjs_require__(34);
8877var isObject = __w_pdfjs_require__(17);
8878var has = __w_pdfjs_require__(18);
8879var defineProperty = __w_pdfjs_require__(22).f;
8880var uid = __w_pdfjs_require__(33);
8881var FREEZING = __w_pdfjs_require__(140);
8882var METADATA = uid('meta');
8883var id = 0;
8884var isExtensible = Object.isExtensible || function () {
8885 return true;
8886};
8887var setMetadata = function (it) {
8888 defineProperty(it, METADATA, {
8889 value: {
8890 objectID: 'O' + ++id,
8891 weakData: {}
8892 }
8893 });
8894};
8895var fastKey = function (it, create) {
8896 if (!isObject(it))
8897 return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
8898 if (!has(it, METADATA)) {
8899 if (!isExtensible(it))
8900 return 'F';
8901 if (!create)
8902 return 'E';
8903 setMetadata(it);
8904 }
8905 return it[METADATA].objectID;
8906};
8907var getWeakData = function (it, create) {
8908 if (!has(it, METADATA)) {
8909 if (!isExtensible(it))
8910 return true;
8911 if (!create)
8912 return false;
8913 setMetadata(it);
8914 }
8915 return it[METADATA].weakData;
8916};
8917var onFreeze = function (it) {
8918 if (FREEZING && meta.REQUIRED && isExtensible(it) && !has(it, METADATA))
8919 setMetadata(it);
8920 return it;
8921};
8922var meta = module.exports = {
8923 REQUIRED: false,
8924 fastKey: fastKey,
8925 getWeakData: getWeakData,
8926 onFreeze: onFreeze
8927};
8928hiddenKeys[METADATA] = true;
8929
8930/***/ }),
8931/* 140 */
8932/***/ (function(module, exports, __w_pdfjs_require__) {
8933
8934var fails = __w_pdfjs_require__(9);
8935module.exports = !fails(function () {
8936 return Object.isExtensible(Object.preventExtensions({}));
8937});
8938
8939/***/ }),
8940/* 141 */
8941/***/ (function(module, exports, __w_pdfjs_require__) {
8942
8943var isObject = __w_pdfjs_require__(17);
8944var setPrototypeOf = __w_pdfjs_require__(83);
8945module.exports = function ($this, dummy, Wrapper) {
8946 var NewTarget, NewTargetPrototype;
8947 if (setPrototypeOf && typeof (NewTarget = dummy.constructor) == 'function' && NewTarget !== Wrapper && isObject(NewTargetPrototype = NewTarget.prototype) && NewTargetPrototype !== Wrapper.prototype)
8948 setPrototypeOf($this, NewTargetPrototype);
8949 return $this;
8950};
8951
8952/***/ }),
8953/* 142 */
8954/***/ (function(module, exports, __w_pdfjs_require__) {
8955
8956"use strict";
8957
8958var defineProperty = __w_pdfjs_require__(22).f;
8959var create = __w_pdfjs_require__(67);
8960var redefineAll = __w_pdfjs_require__(112);
8961var bind = __w_pdfjs_require__(58);
8962var anInstance = __w_pdfjs_require__(114);
8963var iterate = __w_pdfjs_require__(115);
8964var defineIterator = __w_pdfjs_require__(75);
8965var setSpecies = __w_pdfjs_require__(113);
8966var DESCRIPTORS = __w_pdfjs_require__(8);
8967var fastKey = __w_pdfjs_require__(139).fastKey;
8968var InternalStateModule = __w_pdfjs_require__(28);
8969var setInternalState = InternalStateModule.set;
8970var internalStateGetterFor = InternalStateModule.getterFor;
8971module.exports = {
8972 getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
8973 var C = wrapper(function (that, iterable) {
8974 anInstance(that, C, CONSTRUCTOR_NAME);
8975 setInternalState(that, {
8976 type: CONSTRUCTOR_NAME,
8977 index: create(null),
8978 first: undefined,
8979 last: undefined,
8980 size: 0
8981 });
8982 if (!DESCRIPTORS)
8983 that.size = 0;
8984 if (iterable != undefined)
8985 iterate(iterable, that[ADDER], that, IS_MAP);
8986 });
8987 var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
8988 var define = function (that, key, value) {
8989 var state = getInternalState(that);
8990 var entry = getEntry(that, key);
8991 var previous, index;
8992 if (entry) {
8993 entry.value = value;
8994 } else {
8995 state.last = entry = {
8996 index: index = fastKey(key, true),
8997 key: key,
8998 value: value,
8999 previous: previous = state.last,
9000 next: undefined,
9001 removed: false
9002 };
9003 if (!state.first)
9004 state.first = entry;
9005 if (previous)
9006 previous.next = entry;
9007 if (DESCRIPTORS)
9008 state.size++;
9009 else
9010 that.size++;
9011 if (index !== 'F')
9012 state.index[index] = entry;
9013 }
9014 return that;
9015 };
9016 var getEntry = function (that, key) {
9017 var state = getInternalState(that);
9018 var index = fastKey(key);
9019 var entry;
9020 if (index !== 'F')
9021 return state.index[index];
9022 for (entry = state.first; entry; entry = entry.next) {
9023 if (entry.key == key)
9024 return entry;
9025 }
9026 };
9027 redefineAll(C.prototype, {
9028 clear: function clear() {
9029 var that = this;
9030 var state = getInternalState(that);
9031 var data = state.index;
9032 var entry = state.first;
9033 while (entry) {
9034 entry.removed = true;
9035 if (entry.previous)
9036 entry.previous = entry.previous.next = undefined;
9037 delete data[entry.index];
9038 entry = entry.next;
9039 }
9040 state.first = state.last = undefined;
9041 if (DESCRIPTORS)
9042 state.size = 0;
9043 else
9044 that.size = 0;
9045 },
9046 'delete': function (key) {
9047 var that = this;
9048 var state = getInternalState(that);
9049 var entry = getEntry(that, key);
9050 if (entry) {
9051 var next = entry.next;
9052 var prev = entry.previous;
9053 delete state.index[entry.index];
9054 entry.removed = true;
9055 if (prev)
9056 prev.next = next;
9057 if (next)
9058 next.previous = prev;
9059 if (state.first == entry)
9060 state.first = next;
9061 if (state.last == entry)
9062 state.last = prev;
9063 if (DESCRIPTORS)
9064 state.size--;
9065 else
9066 that.size--;
9067 }
9068 return !!entry;
9069 },
9070 forEach: function forEach(callbackfn) {
9071 var state = getInternalState(this);
9072 var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
9073 var entry;
9074 while (entry = entry ? entry.next : state.first) {
9075 boundFunction(entry.value, entry.key, this);
9076 while (entry && entry.removed)
9077 entry = entry.previous;
9078 }
9079 },
9080 has: function has(key) {
9081 return !!getEntry(this, key);
9082 }
9083 });
9084 redefineAll(C.prototype, IS_MAP ? {
9085 get: function get(key) {
9086 var entry = getEntry(this, key);
9087 return entry && entry.value;
9088 },
9089 set: function set(key, value) {
9090 return define(this, key === 0 ? 0 : key, value);
9091 }
9092 } : {
9093 add: function add(value) {
9094 return define(this, value = value === 0 ? 0 : value, value);
9095 }
9096 });
9097 if (DESCRIPTORS)
9098 defineProperty(C.prototype, 'size', {
9099 get: function () {
9100 return getInternalState(this).size;
9101 }
9102 });
9103 return C;
9104 },
9105 setStrong: function (C, CONSTRUCTOR_NAME, IS_MAP) {
9106 var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';
9107 var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);
9108 var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);
9109 defineIterator(C, CONSTRUCTOR_NAME, function (iterated, kind) {
9110 setInternalState(this, {
9111 type: ITERATOR_NAME,
9112 target: iterated,
9113 state: getInternalCollectionState(iterated),
9114 kind: kind,
9115 last: undefined
9116 });
9117 }, function () {
9118 var state = getInternalIteratorState(this);
9119 var kind = state.kind;
9120 var entry = state.last;
9121 while (entry && entry.removed)
9122 entry = entry.previous;
9123 if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {
9124 state.target = undefined;
9125 return {
9126 value: undefined,
9127 done: true
9128 };
9129 }
9130 if (kind == 'keys')
9131 return {
9132 value: entry.key,
9133 done: false
9134 };
9135 if (kind == 'values')
9136 return {
9137 value: entry.value,
9138 done: false
9139 };
9140 return {
9141 value: [
9142 entry.key,
9143 entry.value
9144 ],
9145 done: false
9146 };
9147 }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
9148 setSpecies(CONSTRUCTOR_NAME);
9149 }
9150};
9151
9152/***/ }),
9153/* 143 */
9154/***/ (function(module, exports, __w_pdfjs_require__) {
9155
9156__w_pdfjs_require__(144);
9157__w_pdfjs_require__(105);
9158__w_pdfjs_require__(73);
9159__w_pdfjs_require__(107);
9160var path = __w_pdfjs_require__(38);
9161module.exports = path.Set;
9162
9163/***/ }),
9164/* 144 */
9165/***/ (function(module, exports, __w_pdfjs_require__) {
9166
9167"use strict";
9168
9169var collection = __w_pdfjs_require__(138);
9170var collectionStrong = __w_pdfjs_require__(142);
9171module.exports = collection('Set', function (init) {
9172 return function Set() {
9173 return init(this, arguments.length ? arguments[0] : undefined);
9174 };
9175}, collectionStrong);
9176
9177/***/ }),
9178/* 145 */
9179/***/ (function(module, exports, __w_pdfjs_require__) {
9180
9181__w_pdfjs_require__(105);
9182__w_pdfjs_require__(146);
9183__w_pdfjs_require__(107);
9184var path = __w_pdfjs_require__(38);
9185module.exports = path.WeakMap;
9186
9187/***/ }),
9188/* 146 */
9189/***/ (function(module, exports, __w_pdfjs_require__) {
9190
9191"use strict";
9192
9193var global = __w_pdfjs_require__(6);
9194var redefineAll = __w_pdfjs_require__(112);
9195var InternalMetadataModule = __w_pdfjs_require__(139);
9196var collection = __w_pdfjs_require__(138);
9197var collectionWeak = __w_pdfjs_require__(147);
9198var isObject = __w_pdfjs_require__(17);
9199var enforceIternalState = __w_pdfjs_require__(28).enforce;
9200var NATIVE_WEAK_MAP = __w_pdfjs_require__(29);
9201var IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;
9202var isExtensible = Object.isExtensible;
9203var InternalWeakMap;
9204var wrapper = function (init) {
9205 return function WeakMap() {
9206 return init(this, arguments.length ? arguments[0] : undefined);
9207 };
9208};
9209var $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);
9210if (NATIVE_WEAK_MAP && IS_IE11) {
9211 InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);
9212 InternalMetadataModule.REQUIRED = true;
9213 var WeakMapPrototype = $WeakMap.prototype;
9214 var nativeDelete = WeakMapPrototype['delete'];
9215 var nativeHas = WeakMapPrototype.has;
9216 var nativeGet = WeakMapPrototype.get;
9217 var nativeSet = WeakMapPrototype.set;
9218 redefineAll(WeakMapPrototype, {
9219 'delete': function (key) {
9220 if (isObject(key) && !isExtensible(key)) {
9221 var state = enforceIternalState(this);
9222 if (!state.frozen)
9223 state.frozen = new InternalWeakMap();
9224 return nativeDelete.call(this, key) || state.frozen['delete'](key);
9225 }
9226 return nativeDelete.call(this, key);
9227 },
9228 has: function has(key) {
9229 if (isObject(key) && !isExtensible(key)) {
9230 var state = enforceIternalState(this);
9231 if (!state.frozen)
9232 state.frozen = new InternalWeakMap();
9233 return nativeHas.call(this, key) || state.frozen.has(key);
9234 }
9235 return nativeHas.call(this, key);
9236 },
9237 get: function get(key) {
9238 if (isObject(key) && !isExtensible(key)) {
9239 var state = enforceIternalState(this);
9240 if (!state.frozen)
9241 state.frozen = new InternalWeakMap();
9242 return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);
9243 }
9244 return nativeGet.call(this, key);
9245 },
9246 set: function set(key, value) {
9247 if (isObject(key) && !isExtensible(key)) {
9248 var state = enforceIternalState(this);
9249 if (!state.frozen)
9250 state.frozen = new InternalWeakMap();
9251 nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);
9252 } else
9253 nativeSet.call(this, key, value);
9254 return this;
9255 }
9256 });
9257}
9258
9259/***/ }),
9260/* 147 */
9261/***/ (function(module, exports, __w_pdfjs_require__) {
9262
9263"use strict";
9264
9265var redefineAll = __w_pdfjs_require__(112);
9266var getWeakData = __w_pdfjs_require__(139).getWeakData;
9267var anObject = __w_pdfjs_require__(23);
9268var isObject = __w_pdfjs_require__(17);
9269var anInstance = __w_pdfjs_require__(114);
9270var iterate = __w_pdfjs_require__(115);
9271var ArrayIterationModule = __w_pdfjs_require__(148);
9272var $has = __w_pdfjs_require__(18);
9273var InternalStateModule = __w_pdfjs_require__(28);
9274var setInternalState = InternalStateModule.set;
9275var internalStateGetterFor = InternalStateModule.getterFor;
9276var find = ArrayIterationModule.find;
9277var findIndex = ArrayIterationModule.findIndex;
9278var id = 0;
9279var uncaughtFrozenStore = function (store) {
9280 return store.frozen || (store.frozen = new UncaughtFrozenStore());
9281};
9282var UncaughtFrozenStore = function () {
9283 this.entries = [];
9284};
9285var findUncaughtFrozen = function (store, key) {
9286 return find(store.entries, function (it) {
9287 return it[0] === key;
9288 });
9289};
9290UncaughtFrozenStore.prototype = {
9291 get: function (key) {
9292 var entry = findUncaughtFrozen(this, key);
9293 if (entry)
9294 return entry[1];
9295 },
9296 has: function (key) {
9297 return !!findUncaughtFrozen(this, key);
9298 },
9299 set: function (key, value) {
9300 var entry = findUncaughtFrozen(this, key);
9301 if (entry)
9302 entry[1] = value;
9303 else
9304 this.entries.push([
9305 key,
9306 value
9307 ]);
9308 },
9309 'delete': function (key) {
9310 var index = findIndex(this.entries, function (it) {
9311 return it[0] === key;
9312 });
9313 if (~index)
9314 this.entries.splice(index, 1);
9315 return !!~index;
9316 }
9317};
9318module.exports = {
9319 getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {
9320 var C = wrapper(function (that, iterable) {
9321 anInstance(that, C, CONSTRUCTOR_NAME);
9322 setInternalState(that, {
9323 type: CONSTRUCTOR_NAME,
9324 id: id++,
9325 frozen: undefined
9326 });
9327 if (iterable != undefined)
9328 iterate(iterable, that[ADDER], that, IS_MAP);
9329 });
9330 var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);
9331 var define = function (that, key, value) {
9332 var state = getInternalState(that);
9333 var data = getWeakData(anObject(key), true);
9334 if (data === true)
9335 uncaughtFrozenStore(state).set(key, value);
9336 else
9337 data[state.id] = value;
9338 return that;
9339 };
9340 redefineAll(C.prototype, {
9341 'delete': function (key) {
9342 var state = getInternalState(this);
9343 if (!isObject(key))
9344 return false;
9345 var data = getWeakData(key);
9346 if (data === true)
9347 return uncaughtFrozenStore(state)['delete'](key);
9348 return data && $has(data, state.id) && delete data[state.id];
9349 },
9350 has: function has(key) {
9351 var state = getInternalState(this);
9352 if (!isObject(key))
9353 return false;
9354 var data = getWeakData(key);
9355 if (data === true)
9356 return uncaughtFrozenStore(state).has(key);
9357 return data && $has(data, state.id);
9358 }
9359 });
9360 redefineAll(C.prototype, IS_MAP ? {
9361 get: function get(key) {
9362 var state = getInternalState(this);
9363 if (isObject(key)) {
9364 var data = getWeakData(key);
9365 if (data === true)
9366 return uncaughtFrozenStore(state).get(key);
9367 return data ? data[state.id] : undefined;
9368 }
9369 },
9370 set: function set(key, value) {
9371 return define(this, key, value);
9372 }
9373 } : {
9374 add: function add(value) {
9375 return define(this, value, true);
9376 }
9377 });
9378 return C;
9379 }
9380};
9381
9382/***/ }),
9383/* 148 */
9384/***/ (function(module, exports, __w_pdfjs_require__) {
9385
9386var bind = __w_pdfjs_require__(58);
9387var IndexedObject = __w_pdfjs_require__(13);
9388var toObject = __w_pdfjs_require__(79);
9389var toLength = __w_pdfjs_require__(42);
9390var arraySpeciesCreate = __w_pdfjs_require__(149);
9391var push = [].push;
9392var createMethod = function (TYPE) {
9393 var IS_MAP = TYPE == 1;
9394 var IS_FILTER = TYPE == 2;
9395 var IS_SOME = TYPE == 3;
9396 var IS_EVERY = TYPE == 4;
9397 var IS_FIND_INDEX = TYPE == 6;
9398 var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
9399 return function ($this, callbackfn, that, specificCreate) {
9400 var O = toObject($this);
9401 var self = IndexedObject(O);
9402 var boundFunction = bind(callbackfn, that, 3);
9403 var length = toLength(self.length);
9404 var index = 0;
9405 var create = specificCreate || arraySpeciesCreate;
9406 var target = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
9407 var value, result;
9408 for (; length > index; index++)
9409 if (NO_HOLES || index in self) {
9410 value = self[index];
9411 result = boundFunction(value, index, O);
9412 if (TYPE) {
9413 if (IS_MAP)
9414 target[index] = result;
9415 else if (result)
9416 switch (TYPE) {
9417 case 3:
9418 return true;
9419 case 5:
9420 return value;
9421 case 6:
9422 return index;
9423 case 2:
9424 push.call(target, value);
9425 }
9426 else if (IS_EVERY)
9427 return false;
9428 }
9429 }
9430 return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;
9431 };
9432};
9433module.exports = {
9434 forEach: createMethod(0),
9435 map: createMethod(1),
9436 filter: createMethod(2),
9437 some: createMethod(3),
9438 every: createMethod(4),
9439 find: createMethod(5),
9440 findIndex: createMethod(6)
9441};
9442
9443/***/ }),
9444/* 149 */
9445/***/ (function(module, exports, __w_pdfjs_require__) {
9446
9447var isObject = __w_pdfjs_require__(17);
9448var isArray = __w_pdfjs_require__(150);
9449var wellKnownSymbol = __w_pdfjs_require__(53);
9450var SPECIES = wellKnownSymbol('species');
9451module.exports = function (originalArray, length) {
9452 var C;
9453 if (isArray(originalArray)) {
9454 C = originalArray.constructor;
9455 if (typeof C == 'function' && (C === Array || isArray(C.prototype)))
9456 C = undefined;
9457 else if (isObject(C)) {
9458 C = C[SPECIES];
9459 if (C === null)
9460 C = undefined;
9461 }
9462 }
9463 return new (C === undefined ? Array : C)(length === 0 ? 0 : length);
9464};
9465
9466/***/ }),
9467/* 150 */
9468/***/ (function(module, exports, __w_pdfjs_require__) {
9469
9470var classof = __w_pdfjs_require__(14);
9471module.exports = Array.isArray || function isArray(arg) {
9472 return classof(arg) == 'Array';
9473};
9474
9475/***/ }),
9476/* 151 */
9477/***/ (function(module, exports, __w_pdfjs_require__) {
9478
9479__w_pdfjs_require__(105);
9480__w_pdfjs_require__(152);
9481__w_pdfjs_require__(107);
9482var path = __w_pdfjs_require__(38);
9483module.exports = path.WeakSet;
9484
9485/***/ }),
9486/* 152 */
9487/***/ (function(module, exports, __w_pdfjs_require__) {
9488
9489"use strict";
9490
9491var collection = __w_pdfjs_require__(138);
9492var collectionWeak = __w_pdfjs_require__(147);
9493collection('WeakSet', function (init) {
9494 return function WeakSet() {
9495 return init(this, arguments.length ? arguments[0] : undefined);
9496 };
9497}, collectionWeak);
9498
9499/***/ }),
9500/* 153 */
9501/***/ (function(module, exports, __w_pdfjs_require__) {
9502
9503__w_pdfjs_require__(154);
9504var entryUnbind = __w_pdfjs_require__(57);
9505module.exports = entryUnbind('String', 'codePointAt');
9506
9507/***/ }),
9508/* 154 */
9509/***/ (function(module, exports, __w_pdfjs_require__) {
9510
9511"use strict";
9512
9513var $ = __w_pdfjs_require__(5);
9514var codeAt = __w_pdfjs_require__(74).codeAt;
9515$({
9516 target: 'String',
9517 proto: true
9518}, {
9519 codePointAt: function codePointAt(pos) {
9520 return codeAt(this, pos);
9521 }
9522});
9523
9524/***/ }),
9525/* 155 */
9526/***/ (function(module, exports, __w_pdfjs_require__) {
9527
9528__w_pdfjs_require__(156);
9529var path = __w_pdfjs_require__(38);
9530module.exports = path.String.fromCodePoint;
9531
9532/***/ }),
9533/* 156 */
9534/***/ (function(module, exports, __w_pdfjs_require__) {
9535
9536var $ = __w_pdfjs_require__(5);
9537var toAbsoluteIndex = __w_pdfjs_require__(44);
9538var fromCharCode = String.fromCharCode;
9539var nativeFromCodePoint = String.fromCodePoint;
9540var INCORRECT_LENGTH = !!nativeFromCodePoint && nativeFromCodePoint.length != 1;
9541$({
9542 target: 'String',
9543 stat: true,
9544 forced: INCORRECT_LENGTH
9545}, {
9546 fromCodePoint: function fromCodePoint(x) {
9547 var elements = [];
9548 var length = arguments.length;
9549 var i = 0;
9550 var code;
9551 while (length > i) {
9552 code = +arguments[i++];
9553 if (toAbsoluteIndex(code, 0x10FFFF) !== code)
9554 throw RangeError(code + ' is not a valid code point');
9555 elements.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xD800, code % 0x400 + 0xDC00));
9556 }
9557 return elements.join('');
9558 }
9559});
9560
9561/***/ }),
9562/* 157 */
9563/***/ (function(module, exports, __w_pdfjs_require__) {
9564
9565__w_pdfjs_require__(158);
9566__w_pdfjs_require__(105);
9567__w_pdfjs_require__(160);
9568__w_pdfjs_require__(164);
9569__w_pdfjs_require__(165);
9570__w_pdfjs_require__(166);
9571__w_pdfjs_require__(167);
9572__w_pdfjs_require__(168);
9573__w_pdfjs_require__(169);
9574__w_pdfjs_require__(170);
9575__w_pdfjs_require__(171);
9576__w_pdfjs_require__(172);
9577__w_pdfjs_require__(173);
9578__w_pdfjs_require__(174);
9579__w_pdfjs_require__(175);
9580__w_pdfjs_require__(176);
9581__w_pdfjs_require__(177);
9582__w_pdfjs_require__(178);
9583__w_pdfjs_require__(179);
9584var path = __w_pdfjs_require__(38);
9585module.exports = path.Symbol;
9586
9587/***/ }),
9588/* 158 */
9589/***/ (function(module, exports, __w_pdfjs_require__) {
9590
9591"use strict";
9592
9593var $ = __w_pdfjs_require__(5);
9594var fails = __w_pdfjs_require__(9);
9595var isArray = __w_pdfjs_require__(150);
9596var isObject = __w_pdfjs_require__(17);
9597var toObject = __w_pdfjs_require__(79);
9598var toLength = __w_pdfjs_require__(42);
9599var createProperty = __w_pdfjs_require__(89);
9600var arraySpeciesCreate = __w_pdfjs_require__(149);
9601var arrayMethodHasSpeciesSupport = __w_pdfjs_require__(159);
9602var wellKnownSymbol = __w_pdfjs_require__(53);
9603var V8_VERSION = __w_pdfjs_require__(125);
9604var IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');
9605var MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF;
9606var MAXIMUM_ALLOWED_INDEX_EXCEEDED = 'Maximum allowed index exceeded';
9607var IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {
9608 var array = [];
9609 array[IS_CONCAT_SPREADABLE] = false;
9610 return array.concat()[0] !== array;
9611});
9612var SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');
9613var isConcatSpreadable = function (O) {
9614 if (!isObject(O))
9615 return false;
9616 var spreadable = O[IS_CONCAT_SPREADABLE];
9617 return spreadable !== undefined ? !!spreadable : isArray(O);
9618};
9619var FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;
9620$({
9621 target: 'Array',
9622 proto: true,
9623 forced: FORCED
9624}, {
9625 concat: function concat(arg) {
9626 var O = toObject(this);
9627 var A = arraySpeciesCreate(O, 0);
9628 var n = 0;
9629 var i, k, length, len, E;
9630 for (i = -1, length = arguments.length; i < length; i++) {
9631 E = i === -1 ? O : arguments[i];
9632 if (isConcatSpreadable(E)) {
9633 len = toLength(E.length);
9634 if (n + len > MAX_SAFE_INTEGER)
9635 throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
9636 for (k = 0; k < len; k++, n++)
9637 if (k in E)
9638 createProperty(A, n, E[k]);
9639 } else {
9640 if (n >= MAX_SAFE_INTEGER)
9641 throw TypeError(MAXIMUM_ALLOWED_INDEX_EXCEEDED);
9642 createProperty(A, n++, E);
9643 }
9644 }
9645 A.length = n;
9646 return A;
9647 }
9648});
9649
9650/***/ }),
9651/* 159 */
9652/***/ (function(module, exports, __w_pdfjs_require__) {
9653
9654var fails = __w_pdfjs_require__(9);
9655var wellKnownSymbol = __w_pdfjs_require__(53);
9656var V8_VERSION = __w_pdfjs_require__(125);
9657var SPECIES = wellKnownSymbol('species');
9658module.exports = function (METHOD_NAME) {
9659 return V8_VERSION >= 51 || !fails(function () {
9660 var array = [];
9661 var constructor = array.constructor = {};
9662 constructor[SPECIES] = function () {
9663 return { foo: 1 };
9664 };
9665 return array[METHOD_NAME](Boolean).foo !== 1;
9666 });
9667};
9668
9669/***/ }),
9670/* 160 */
9671/***/ (function(module, exports, __w_pdfjs_require__) {
9672
9673"use strict";
9674
9675var $ = __w_pdfjs_require__(5);
9676var global = __w_pdfjs_require__(6);
9677var getBuiltIn = __w_pdfjs_require__(37);
9678var IS_PURE = __w_pdfjs_require__(32);
9679var DESCRIPTORS = __w_pdfjs_require__(8);
9680var NATIVE_SYMBOL = __w_pdfjs_require__(54);
9681var USE_SYMBOL_AS_UID = __w_pdfjs_require__(55);
9682var fails = __w_pdfjs_require__(9);
9683var has = __w_pdfjs_require__(18);
9684var isArray = __w_pdfjs_require__(150);
9685var isObject = __w_pdfjs_require__(17);
9686var anObject = __w_pdfjs_require__(23);
9687var toObject = __w_pdfjs_require__(79);
9688var toIndexedObject = __w_pdfjs_require__(12);
9689var toPrimitive = __w_pdfjs_require__(16);
9690var createPropertyDescriptor = __w_pdfjs_require__(11);
9691var nativeObjectCreate = __w_pdfjs_require__(67);
9692var objectKeys = __w_pdfjs_require__(69);
9693var getOwnPropertyNamesModule = __w_pdfjs_require__(39);
9694var getOwnPropertyNamesExternal = __w_pdfjs_require__(161);
9695var getOwnPropertySymbolsModule = __w_pdfjs_require__(46);
9696var getOwnPropertyDescriptorModule = __w_pdfjs_require__(7);
9697var definePropertyModule = __w_pdfjs_require__(22);
9698var propertyIsEnumerableModule = __w_pdfjs_require__(10);
9699var createNonEnumerableProperty = __w_pdfjs_require__(21);
9700var redefine = __w_pdfjs_require__(24);
9701var shared = __w_pdfjs_require__(31);
9702var sharedKey = __w_pdfjs_require__(30);
9703var hiddenKeys = __w_pdfjs_require__(34);
9704var uid = __w_pdfjs_require__(33);
9705var wellKnownSymbol = __w_pdfjs_require__(53);
9706var wrappedWellKnownSymbolModule = __w_pdfjs_require__(162);
9707var defineWellKnownSymbol = __w_pdfjs_require__(163);
9708var setToStringTag = __w_pdfjs_require__(81);
9709var InternalStateModule = __w_pdfjs_require__(28);
9710var $forEach = __w_pdfjs_require__(148).forEach;
9711var HIDDEN = sharedKey('hidden');
9712var SYMBOL = 'Symbol';
9713var PROTOTYPE = 'prototype';
9714var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');
9715var setInternalState = InternalStateModule.set;
9716var getInternalState = InternalStateModule.getterFor(SYMBOL);
9717var ObjectPrototype = Object[PROTOTYPE];
9718var $Symbol = global.Symbol;
9719var $stringify = getBuiltIn('JSON', 'stringify');
9720var nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;
9721var nativeDefineProperty = definePropertyModule.f;
9722var nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;
9723var nativePropertyIsEnumerable = propertyIsEnumerableModule.f;
9724var AllSymbols = shared('symbols');
9725var ObjectPrototypeSymbols = shared('op-symbols');
9726var StringToSymbolRegistry = shared('string-to-symbol-registry');
9727var SymbolToStringRegistry = shared('symbol-to-string-registry');
9728var WellKnownSymbolsStore = shared('wks');
9729var QObject = global.QObject;
9730var USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
9731var setSymbolDescriptor = DESCRIPTORS && fails(function () {
9732 return nativeObjectCreate(nativeDefineProperty({}, 'a', {
9733 get: function () {
9734 return nativeDefineProperty(this, 'a', { value: 7 }).a;
9735 }
9736 })).a != 7;
9737}) ? function (O, P, Attributes) {
9738 var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);
9739 if (ObjectPrototypeDescriptor)
9740 delete ObjectPrototype[P];
9741 nativeDefineProperty(O, P, Attributes);
9742 if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {
9743 nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);
9744 }
9745} : nativeDefineProperty;
9746var wrap = function (tag, description) {
9747 var symbol = AllSymbols[tag] = nativeObjectCreate($Symbol[PROTOTYPE]);
9748 setInternalState(symbol, {
9749 type: SYMBOL,
9750 tag: tag,
9751 description: description
9752 });
9753 if (!DESCRIPTORS)
9754 symbol.description = description;
9755 return symbol;
9756};
9757var isSymbol = USE_SYMBOL_AS_UID ? function (it) {
9758 return typeof it == 'symbol';
9759} : function (it) {
9760 return Object(it) instanceof $Symbol;
9761};
9762var $defineProperty = function defineProperty(O, P, Attributes) {
9763 if (O === ObjectPrototype)
9764 $defineProperty(ObjectPrototypeSymbols, P, Attributes);
9765 anObject(O);
9766 var key = toPrimitive(P, true);
9767 anObject(Attributes);
9768 if (has(AllSymbols, key)) {
9769 if (!Attributes.enumerable) {
9770 if (!has(O, HIDDEN))
9771 nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));
9772 O[HIDDEN][key] = true;
9773 } else {
9774 if (has(O, HIDDEN) && O[HIDDEN][key])
9775 O[HIDDEN][key] = false;
9776 Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });
9777 }
9778 return setSymbolDescriptor(O, key, Attributes);
9779 }
9780 return nativeDefineProperty(O, key, Attributes);
9781};
9782var $defineProperties = function defineProperties(O, Properties) {
9783 anObject(O);
9784 var properties = toIndexedObject(Properties);
9785 var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));
9786 $forEach(keys, function (key) {
9787 if (!DESCRIPTORS || $propertyIsEnumerable.call(properties, key))
9788 $defineProperty(O, key, properties[key]);
9789 });
9790 return O;
9791};
9792var $create = function create(O, Properties) {
9793 return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);
9794};
9795var $propertyIsEnumerable = function propertyIsEnumerable(V) {
9796 var P = toPrimitive(V, true);
9797 var enumerable = nativePropertyIsEnumerable.call(this, P);
9798 if (this === ObjectPrototype && has(AllSymbols, P) && !has(ObjectPrototypeSymbols, P))
9799 return false;
9800 return enumerable || !has(this, P) || !has(AllSymbols, P) || has(this, HIDDEN) && this[HIDDEN][P] ? enumerable : true;
9801};
9802var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {
9803 var it = toIndexedObject(O);
9804 var key = toPrimitive(P, true);
9805 if (it === ObjectPrototype && has(AllSymbols, key) && !has(ObjectPrototypeSymbols, key))
9806 return;
9807 var descriptor = nativeGetOwnPropertyDescriptor(it, key);
9808 if (descriptor && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) {
9809 descriptor.enumerable = true;
9810 }
9811 return descriptor;
9812};
9813var $getOwnPropertyNames = function getOwnPropertyNames(O) {
9814 var names = nativeGetOwnPropertyNames(toIndexedObject(O));
9815 var result = [];
9816 $forEach(names, function (key) {
9817 if (!has(AllSymbols, key) && !has(hiddenKeys, key))
9818 result.push(key);
9819 });
9820 return result;
9821};
9822var $getOwnPropertySymbols = function getOwnPropertySymbols(O) {
9823 var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;
9824 var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));
9825 var result = [];
9826 $forEach(names, function (key) {
9827 if (has(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || has(ObjectPrototype, key))) {
9828 result.push(AllSymbols[key]);
9829 }
9830 });
9831 return result;
9832};
9833if (!NATIVE_SYMBOL) {
9834 $Symbol = function Symbol() {
9835 if (this instanceof $Symbol)
9836 throw TypeError('Symbol is not a constructor');
9837 var description = !arguments.length || arguments[0] === undefined ? undefined : String(arguments[0]);
9838 var tag = uid(description);
9839 var setter = function (value) {
9840 if (this === ObjectPrototype)
9841 setter.call(ObjectPrototypeSymbols, value);
9842 if (has(this, HIDDEN) && has(this[HIDDEN], tag))
9843 this[HIDDEN][tag] = false;
9844 setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));
9845 };
9846 if (DESCRIPTORS && USE_SETTER)
9847 setSymbolDescriptor(ObjectPrototype, tag, {
9848 configurable: true,
9849 set: setter
9850 });
9851 return wrap(tag, description);
9852 };
9853 redefine($Symbol[PROTOTYPE], 'toString', function toString() {
9854 return getInternalState(this).tag;
9855 });
9856 redefine($Symbol, 'withoutSetter', function (description) {
9857 return wrap(uid(description), description);
9858 });
9859 propertyIsEnumerableModule.f = $propertyIsEnumerable;
9860 definePropertyModule.f = $defineProperty;
9861 getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;
9862 getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;
9863 getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;
9864 wrappedWellKnownSymbolModule.f = function (name) {
9865 return wrap(wellKnownSymbol(name), name);
9866 };
9867 if (DESCRIPTORS) {
9868 nativeDefineProperty($Symbol[PROTOTYPE], 'description', {
9869 configurable: true,
9870 get: function description() {
9871 return getInternalState(this).description;
9872 }
9873 });
9874 if (!IS_PURE) {
9875 redefine(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });
9876 }
9877 }
9878}
9879$({
9880 global: true,
9881 wrap: true,
9882 forced: !NATIVE_SYMBOL,
9883 sham: !NATIVE_SYMBOL
9884}, { Symbol: $Symbol });
9885$forEach(objectKeys(WellKnownSymbolsStore), function (name) {
9886 defineWellKnownSymbol(name);
9887});
9888$({
9889 target: SYMBOL,
9890 stat: true,
9891 forced: !NATIVE_SYMBOL
9892}, {
9893 'for': function (key) {
9894 var string = String(key);
9895 if (has(StringToSymbolRegistry, string))
9896 return StringToSymbolRegistry[string];
9897 var symbol = $Symbol(string);
9898 StringToSymbolRegistry[string] = symbol;
9899 SymbolToStringRegistry[symbol] = string;
9900 return symbol;
9901 },
9902 keyFor: function keyFor(sym) {
9903 if (!isSymbol(sym))
9904 throw TypeError(sym + ' is not a symbol');
9905 if (has(SymbolToStringRegistry, sym))
9906 return SymbolToStringRegistry[sym];
9907 },
9908 useSetter: function () {
9909 USE_SETTER = true;
9910 },
9911 useSimple: function () {
9912 USE_SETTER = false;
9913 }
9914});
9915$({
9916 target: 'Object',
9917 stat: true,
9918 forced: !NATIVE_SYMBOL,
9919 sham: !DESCRIPTORS
9920}, {
9921 create: $create,
9922 defineProperty: $defineProperty,
9923 defineProperties: $defineProperties,
9924 getOwnPropertyDescriptor: $getOwnPropertyDescriptor
9925});
9926$({
9927 target: 'Object',
9928 stat: true,
9929 forced: !NATIVE_SYMBOL
9930}, {
9931 getOwnPropertyNames: $getOwnPropertyNames,
9932 getOwnPropertySymbols: $getOwnPropertySymbols
9933});
9934$({
9935 target: 'Object',
9936 stat: true,
9937 forced: fails(function () {
9938 getOwnPropertySymbolsModule.f(1);
9939 })
9940}, {
9941 getOwnPropertySymbols: function getOwnPropertySymbols(it) {
9942 return getOwnPropertySymbolsModule.f(toObject(it));
9943 }
9944});
9945if ($stringify) {
9946 var FORCED_JSON_STRINGIFY = !NATIVE_SYMBOL || fails(function () {
9947 var symbol = $Symbol();
9948 return $stringify([symbol]) != '[null]' || $stringify({ a: symbol }) != '{}' || $stringify(Object(symbol)) != '{}';
9949 });
9950 $({
9951 target: 'JSON',
9952 stat: true,
9953 forced: FORCED_JSON_STRINGIFY
9954 }, {
9955 stringify: function stringify(it, replacer, space) {
9956 var args = [it];
9957 var index = 1;
9958 var $replacer;
9959 while (arguments.length > index)
9960 args.push(arguments[index++]);
9961 $replacer = replacer;
9962 if (!isObject(replacer) && it === undefined || isSymbol(it))
9963 return;
9964 if (!isArray(replacer))
9965 replacer = function (key, value) {
9966 if (typeof $replacer == 'function')
9967 value = $replacer.call(this, key, value);
9968 if (!isSymbol(value))
9969 return value;
9970 };
9971 args[1] = replacer;
9972 return $stringify.apply(null, args);
9973 }
9974 });
9975}
9976if (!$Symbol[PROTOTYPE][TO_PRIMITIVE]) {
9977 createNonEnumerableProperty($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
9978}
9979setToStringTag($Symbol, SYMBOL);
9980hiddenKeys[HIDDEN] = true;
9981
9982/***/ }),
9983/* 161 */
9984/***/ (function(module, exports, __w_pdfjs_require__) {
9985
9986var toIndexedObject = __w_pdfjs_require__(12);
9987var nativeGetOwnPropertyNames = __w_pdfjs_require__(39).f;
9988var toString = {}.toString;
9989var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
9990var getWindowNames = function (it) {
9991 try {
9992 return nativeGetOwnPropertyNames(it);
9993 } catch (error) {
9994 return windowNames.slice();
9995 }
9996};
9997module.exports.f = function getOwnPropertyNames(it) {
9998 return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : nativeGetOwnPropertyNames(toIndexedObject(it));
9999};
10000
10001/***/ }),
10002/* 162 */
10003/***/ (function(module, exports, __w_pdfjs_require__) {
10004
10005var wellKnownSymbol = __w_pdfjs_require__(53);
10006exports.f = wellKnownSymbol;
10007
10008/***/ }),
10009/* 163 */
10010/***/ (function(module, exports, __w_pdfjs_require__) {
10011
10012var path = __w_pdfjs_require__(38);
10013var has = __w_pdfjs_require__(18);
10014var wrappedWellKnownSymbolModule = __w_pdfjs_require__(162);
10015var defineProperty = __w_pdfjs_require__(22).f;
10016module.exports = function (NAME) {
10017 var Symbol = path.Symbol || (path.Symbol = {});
10018 if (!has(Symbol, NAME))
10019 defineProperty(Symbol, NAME, { value: wrappedWellKnownSymbolModule.f(NAME) });
10020};
10021
10022/***/ }),
10023/* 164 */
10024/***/ (function(module, exports, __w_pdfjs_require__) {
10025
10026var defineWellKnownSymbol = __w_pdfjs_require__(163);
10027defineWellKnownSymbol('asyncIterator');
10028
10029/***/ }),
10030/* 165 */
10031/***/ (function(module, exports, __w_pdfjs_require__) {
10032
10033"use strict";
10034
10035var $ = __w_pdfjs_require__(5);
10036var DESCRIPTORS = __w_pdfjs_require__(8);
10037var global = __w_pdfjs_require__(6);
10038var has = __w_pdfjs_require__(18);
10039var isObject = __w_pdfjs_require__(17);
10040var defineProperty = __w_pdfjs_require__(22).f;
10041var copyConstructorProperties = __w_pdfjs_require__(35);
10042var NativeSymbol = global.Symbol;
10043if (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) || NativeSymbol().description !== undefined)) {
10044 var EmptyStringDescriptionStore = {};
10045 var SymbolWrapper = function Symbol() {
10046 var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);
10047 var result = this instanceof SymbolWrapper ? new NativeSymbol(description) : description === undefined ? NativeSymbol() : NativeSymbol(description);
10048 if (description === '')
10049 EmptyStringDescriptionStore[result] = true;
10050 return result;
10051 };
10052 copyConstructorProperties(SymbolWrapper, NativeSymbol);
10053 var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;
10054 symbolPrototype.constructor = SymbolWrapper;
10055 var symbolToString = symbolPrototype.toString;
10056 var native = String(NativeSymbol('test')) == 'Symbol(test)';
10057 var regexp = /^Symbol\((.*)\)[^)]+$/;
10058 defineProperty(symbolPrototype, 'description', {
10059 configurable: true,
10060 get: function description() {
10061 var symbol = isObject(this) ? this.valueOf() : this;
10062 var string = symbolToString.call(symbol);
10063 if (has(EmptyStringDescriptionStore, symbol))
10064 return '';
10065 var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');
10066 return desc === '' ? undefined : desc;
10067 }
10068 });
10069 $({
10070 global: true,
10071 forced: true
10072 }, { Symbol: SymbolWrapper });
10073}
10074
10075/***/ }),
10076/* 166 */
10077/***/ (function(module, exports, __w_pdfjs_require__) {
10078
10079var defineWellKnownSymbol = __w_pdfjs_require__(163);
10080defineWellKnownSymbol('hasInstance');
10081
10082/***/ }),
10083/* 167 */
10084/***/ (function(module, exports, __w_pdfjs_require__) {
10085
10086var defineWellKnownSymbol = __w_pdfjs_require__(163);
10087defineWellKnownSymbol('isConcatSpreadable');
10088
10089/***/ }),
10090/* 168 */
10091/***/ (function(module, exports, __w_pdfjs_require__) {
10092
10093var defineWellKnownSymbol = __w_pdfjs_require__(163);
10094defineWellKnownSymbol('iterator');
10095
10096/***/ }),
10097/* 169 */
10098/***/ (function(module, exports, __w_pdfjs_require__) {
10099
10100var defineWellKnownSymbol = __w_pdfjs_require__(163);
10101defineWellKnownSymbol('match');
10102
10103/***/ }),
10104/* 170 */
10105/***/ (function(module, exports, __w_pdfjs_require__) {
10106
10107var defineWellKnownSymbol = __w_pdfjs_require__(163);
10108defineWellKnownSymbol('matchAll');
10109
10110/***/ }),
10111/* 171 */
10112/***/ (function(module, exports, __w_pdfjs_require__) {
10113
10114var defineWellKnownSymbol = __w_pdfjs_require__(163);
10115defineWellKnownSymbol('replace');
10116
10117/***/ }),
10118/* 172 */
10119/***/ (function(module, exports, __w_pdfjs_require__) {
10120
10121var defineWellKnownSymbol = __w_pdfjs_require__(163);
10122defineWellKnownSymbol('search');
10123
10124/***/ }),
10125/* 173 */
10126/***/ (function(module, exports, __w_pdfjs_require__) {
10127
10128var defineWellKnownSymbol = __w_pdfjs_require__(163);
10129defineWellKnownSymbol('species');
10130
10131/***/ }),
10132/* 174 */
10133/***/ (function(module, exports, __w_pdfjs_require__) {
10134
10135var defineWellKnownSymbol = __w_pdfjs_require__(163);
10136defineWellKnownSymbol('split');
10137
10138/***/ }),
10139/* 175 */
10140/***/ (function(module, exports, __w_pdfjs_require__) {
10141
10142var defineWellKnownSymbol = __w_pdfjs_require__(163);
10143defineWellKnownSymbol('toPrimitive');
10144
10145/***/ }),
10146/* 176 */
10147/***/ (function(module, exports, __w_pdfjs_require__) {
10148
10149var defineWellKnownSymbol = __w_pdfjs_require__(163);
10150defineWellKnownSymbol('toStringTag');
10151
10152/***/ }),
10153/* 177 */
10154/***/ (function(module, exports, __w_pdfjs_require__) {
10155
10156var defineWellKnownSymbol = __w_pdfjs_require__(163);
10157defineWellKnownSymbol('unscopables');
10158
10159/***/ }),
10160/* 178 */
10161/***/ (function(module, exports, __w_pdfjs_require__) {
10162
10163var setToStringTag = __w_pdfjs_require__(81);
10164setToStringTag(Math, 'Math', true);
10165
10166/***/ }),
10167/* 179 */
10168/***/ (function(module, exports, __w_pdfjs_require__) {
10169
10170var global = __w_pdfjs_require__(6);
10171var setToStringTag = __w_pdfjs_require__(81);
10172setToStringTag(global.JSON, 'JSON', true);
10173
10174/***/ }),
10175/* 180 */
10176/***/ (function(module, exports, __w_pdfjs_require__) {
10177
10178__w_pdfjs_require__(181);
10179var entryUnbind = __w_pdfjs_require__(57);
10180module.exports = entryUnbind('String', 'padStart');
10181
10182/***/ }),
10183/* 181 */
10184/***/ (function(module, exports, __w_pdfjs_require__) {
10185
10186"use strict";
10187
10188var $ = __w_pdfjs_require__(5);
10189var $padStart = __w_pdfjs_require__(182).start;
10190var WEBKIT_BUG = __w_pdfjs_require__(184);
10191$({
10192 target: 'String',
10193 proto: true,
10194 forced: WEBKIT_BUG
10195}, {
10196 padStart: function padStart(maxLength) {
10197 return $padStart(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
10198 }
10199});
10200
10201/***/ }),
10202/* 182 */
10203/***/ (function(module, exports, __w_pdfjs_require__) {
10204
10205var toLength = __w_pdfjs_require__(42);
10206var repeat = __w_pdfjs_require__(183);
10207var requireObjectCoercible = __w_pdfjs_require__(15);
10208var ceil = Math.ceil;
10209var createMethod = function (IS_END) {
10210 return function ($this, maxLength, fillString) {
10211 var S = String(requireObjectCoercible($this));
10212 var stringLength = S.length;
10213 var fillStr = fillString === undefined ? ' ' : String(fillString);
10214 var intMaxLength = toLength(maxLength);
10215 var fillLen, stringFiller;
10216 if (intMaxLength <= stringLength || fillStr == '')
10217 return S;
10218 fillLen = intMaxLength - stringLength;
10219 stringFiller = repeat.call(fillStr, ceil(fillLen / fillStr.length));
10220 if (stringFiller.length > fillLen)
10221 stringFiller = stringFiller.slice(0, fillLen);
10222 return IS_END ? S + stringFiller : stringFiller + S;
10223 };
10224};
10225module.exports = {
10226 start: createMethod(false),
10227 end: createMethod(true)
10228};
10229
10230/***/ }),
10231/* 183 */
10232/***/ (function(module, exports, __w_pdfjs_require__) {
10233
10234"use strict";
10235
10236var toInteger = __w_pdfjs_require__(43);
10237var requireObjectCoercible = __w_pdfjs_require__(15);
10238module.exports = ''.repeat || function repeat(count) {
10239 var str = String(requireObjectCoercible(this));
10240 var result = '';
10241 var n = toInteger(count);
10242 if (n < 0 || n == Infinity)
10243 throw RangeError('Wrong number of repetitions');
10244 for (; n > 0; (n >>>= 1) && (str += str))
10245 if (n & 1)
10246 result += str;
10247 return result;
10248};
10249
10250/***/ }),
10251/* 184 */
10252/***/ (function(module, exports, __w_pdfjs_require__) {
10253
10254var userAgent = __w_pdfjs_require__(119);
10255module.exports = /Version\/10\.\d+(\.\d+)?( Mobile\/\w+)? Safari\//.test(userAgent);
10256
10257/***/ }),
10258/* 185 */
10259/***/ (function(module, exports, __w_pdfjs_require__) {
10260
10261__w_pdfjs_require__(186);
10262var entryUnbind = __w_pdfjs_require__(57);
10263module.exports = entryUnbind('String', 'padEnd');
10264
10265/***/ }),
10266/* 186 */
10267/***/ (function(module, exports, __w_pdfjs_require__) {
10268
10269"use strict";
10270
10271var $ = __w_pdfjs_require__(5);
10272var $padEnd = __w_pdfjs_require__(182).end;
10273var WEBKIT_BUG = __w_pdfjs_require__(184);
10274$({
10275 target: 'String',
10276 proto: true,
10277 forced: WEBKIT_BUG
10278}, {
10279 padEnd: function padEnd(maxLength) {
10280 return $padEnd(this, maxLength, arguments.length > 1 ? arguments[1] : undefined);
10281 }
10282});
10283
10284/***/ }),
10285/* 187 */
10286/***/ (function(module, exports, __w_pdfjs_require__) {
10287
10288__w_pdfjs_require__(188);
10289var path = __w_pdfjs_require__(38);
10290module.exports = path.Object.values;
10291
10292/***/ }),
10293/* 188 */
10294/***/ (function(module, exports, __w_pdfjs_require__) {
10295
10296var $ = __w_pdfjs_require__(5);
10297var $values = __w_pdfjs_require__(189).values;
10298$({
10299 target: 'Object',
10300 stat: true
10301}, {
10302 values: function values(O) {
10303 return $values(O);
10304 }
10305});
10306
10307/***/ }),
10308/* 189 */
10309/***/ (function(module, exports, __w_pdfjs_require__) {
10310
10311var DESCRIPTORS = __w_pdfjs_require__(8);
10312var objectKeys = __w_pdfjs_require__(69);
10313var toIndexedObject = __w_pdfjs_require__(12);
10314var propertyIsEnumerable = __w_pdfjs_require__(10).f;
10315var createMethod = function (TO_ENTRIES) {
10316 return function (it) {
10317 var O = toIndexedObject(it);
10318 var keys = objectKeys(O);
10319 var length = keys.length;
10320 var i = 0;
10321 var result = [];
10322 var key;
10323 while (length > i) {
10324 key = keys[i++];
10325 if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {
10326 result.push(TO_ENTRIES ? [
10327 key,
10328 O[key]
10329 ] : O[key]);
10330 }
10331 }
10332 return result;
10333 };
10334};
10335module.exports = {
10336 entries: createMethod(true),
10337 values: createMethod(false)
10338};
10339
10340/***/ }),
10341/* 190 */
10342/***/ (function(module, exports, __w_pdfjs_require__) {
10343
10344"use strict";
10345
10346
10347Object.defineProperty(exports, "__esModule", {
10348 value: true
10349});
10350exports.getDocument = getDocument;
10351exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
10352exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
10353
10354var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
10355
10356var _util = __w_pdfjs_require__(1);
10357
10358var _display_utils = __w_pdfjs_require__(194);
10359
10360var _font_loader = __w_pdfjs_require__(195);
10361
10362var _api_compatibility = __w_pdfjs_require__(196);
10363
10364var _canvas = __w_pdfjs_require__(197);
10365
10366var _worker_options = __w_pdfjs_require__(199);
10367
10368var _is_node = __w_pdfjs_require__(48);
10369
10370var _message_handler = __w_pdfjs_require__(200);
10371
10372var _metadata = __w_pdfjs_require__(201);
10373
10374var _transport_stream = __w_pdfjs_require__(203);
10375
10376var _webgl = __w_pdfjs_require__(204);
10377
10378function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
10379
10380function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
10381
10382function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
10383
10384function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
10385
10386function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
10387
10388function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
10389
10390function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
10391
10392function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
10393
10394function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
10395
10396function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
10397
10398function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
10399
10400function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
10401
10402function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
10403
10404function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
10405
10406function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
10407
10408var DEFAULT_RANGE_CHUNK_SIZE = 65536;
10409var RENDERING_CANCELLED_TIMEOUT = 100;
10410var createPDFNetworkStream;
10411
10412function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
10413 createPDFNetworkStream = pdfNetworkStreamFactory;
10414}
10415
10416function getDocument(src) {
10417 var task = new PDFDocumentLoadingTask();
10418 var source;
10419
10420 if (typeof src === "string") {
10421 source = {
10422 url: src
10423 };
10424 } else if ((0, _util.isArrayBuffer)(src)) {
10425 source = {
10426 data: src
10427 };
10428 } else if (src instanceof PDFDataRangeTransport) {
10429 source = {
10430 range: src
10431 };
10432 } else {
10433 if (_typeof(src) !== "object") {
10434 throw new Error("Invalid parameter in getDocument, " + "need either Uint8Array, string or a parameter object");
10435 }
10436
10437 if (!src.url && !src.data && !src.range) {
10438 throw new Error("Invalid parameter object: need either .data, .range or .url");
10439 }
10440
10441 source = src;
10442 }
10443
10444 var params = Object.create(null);
10445 var rangeTransport = null,
10446 worker = null;
10447
10448 for (var key in source) {
10449 if (key === "url" && typeof window !== "undefined") {
10450 params[key] = new URL(source[key], window.location).href;
10451 continue;
10452 } else if (key === "range") {
10453 rangeTransport = source[key];
10454 continue;
10455 } else if (key === "worker") {
10456 worker = source[key];
10457 continue;
10458 } else if (key === "data" && !(source[key] instanceof Uint8Array)) {
10459 var pdfBytes = source[key];
10460
10461 if (typeof pdfBytes === "string") {
10462 params[key] = (0, _util.stringToBytes)(pdfBytes);
10463 } else if (_typeof(pdfBytes) === "object" && pdfBytes !== null && !isNaN(pdfBytes.length)) {
10464 params[key] = new Uint8Array(pdfBytes);
10465 } else if ((0, _util.isArrayBuffer)(pdfBytes)) {
10466 params[key] = new Uint8Array(pdfBytes);
10467 } else {
10468 throw new Error("Invalid PDF binary data: either typed array, " + "string or array-like object is expected in the " + "data property.");
10469 }
10470
10471 continue;
10472 }
10473
10474 params[key] = source[key];
10475 }
10476
10477 params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
10478 params.CMapReaderFactory = params.CMapReaderFactory || _display_utils.DOMCMapReaderFactory;
10479 params.ignoreErrors = params.stopAtErrors !== true;
10480 params.pdfBug = params.pdfBug === true;
10481 var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
10482
10483 if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {
10484 params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;
10485 }
10486
10487 if (!Number.isInteger(params.maxImageSize)) {
10488 params.maxImageSize = -1;
10489 }
10490
10491 if (typeof params.isEvalSupported !== "boolean") {
10492 params.isEvalSupported = true;
10493 }
10494
10495 if (typeof params.disableFontFace !== "boolean") {
10496 params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
10497 }
10498
10499 if (typeof params.disableRange !== "boolean") {
10500 params.disableRange = false;
10501 }
10502
10503 if (typeof params.disableStream !== "boolean") {
10504 params.disableStream = false;
10505 }
10506
10507 if (typeof params.disableAutoFetch !== "boolean") {
10508 params.disableAutoFetch = false;
10509 }
10510
10511 if (typeof params.disableCreateObjectURL !== "boolean") {
10512 params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;
10513 }
10514
10515 (0, _util.setVerbosityLevel)(params.verbosity);
10516
10517 if (!worker) {
10518 var workerParams = {
10519 verbosity: params.verbosity,
10520 port: _worker_options.GlobalWorkerOptions.workerPort
10521 };
10522 worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
10523 task._worker = worker;
10524 }
10525
10526 var docId = task.docId;
10527 worker.promise.then(function () {
10528 if (task.destroyed) {
10529 throw new Error("Loading aborted");
10530 }
10531
10532 return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {
10533 if (task.destroyed) {
10534 throw new Error("Loading aborted");
10535 }
10536
10537 var networkStream;
10538
10539 if (rangeTransport) {
10540 networkStream = new _transport_stream.PDFDataTransportStream({
10541 length: params.length,
10542 initialData: params.initialData,
10543 progressiveDone: params.progressiveDone,
10544 disableRange: params.disableRange,
10545 disableStream: params.disableStream
10546 }, rangeTransport);
10547 } else if (!params.data) {
10548 networkStream = createPDFNetworkStream({
10549 url: params.url,
10550 length: params.length,
10551 httpHeaders: params.httpHeaders,
10552 withCredentials: params.withCredentials,
10553 rangeChunkSize: params.rangeChunkSize,
10554 disableRange: params.disableRange,
10555 disableStream: params.disableStream
10556 });
10557 }
10558
10559 var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
10560 messageHandler.postMessageTransfers = worker.postMessageTransfers;
10561 var transport = new WorkerTransport(messageHandler, task, networkStream, params);
10562 task._transport = transport;
10563 messageHandler.send("Ready", null);
10564 });
10565 })["catch"](task._capability.reject);
10566 return task;
10567}
10568
10569function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
10570 if (worker.destroyed) {
10571 return Promise.reject(new Error("Worker was destroyed"));
10572 }
10573
10574 if (pdfDataRangeTransport) {
10575 source.length = pdfDataRangeTransport.length;
10576 source.initialData = pdfDataRangeTransport.initialData;
10577 source.progressiveDone = pdfDataRangeTransport.progressiveDone;
10578 }
10579
10580 return worker.messageHandler.sendWithPromise("GetDocRequest", {
10581 docId: docId,
10582 apiVersion: '2.4.456',
10583 source: {
10584 data: source.data,
10585 url: source.url,
10586 password: source.password,
10587 disableAutoFetch: source.disableAutoFetch,
10588 rangeChunkSize: source.rangeChunkSize,
10589 length: source.length
10590 },
10591 maxImageSize: source.maxImageSize,
10592 disableFontFace: source.disableFontFace,
10593 disableCreateObjectURL: source.disableCreateObjectURL,
10594 postMessageTransfers: worker.postMessageTransfers,
10595 docBaseUrl: source.docBaseUrl,
10596 nativeImageDecoderSupport: source.nativeImageDecoderSupport,
10597 ignoreErrors: source.ignoreErrors,
10598 isEvalSupported: source.isEvalSupported
10599 }).then(function (workerId) {
10600 if (worker.destroyed) {
10601 throw new Error("Worker was destroyed");
10602 }
10603
10604 return workerId;
10605 });
10606}
10607
10608var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
10609 var nextDocumentId = 0;
10610
10611 var PDFDocumentLoadingTask = /*#__PURE__*/function () {
10612 function PDFDocumentLoadingTask() {
10613 _classCallCheck(this, PDFDocumentLoadingTask);
10614
10615 this._capability = (0, _util.createPromiseCapability)();
10616 this._transport = null;
10617 this._worker = null;
10618 this.docId = "d" + nextDocumentId++;
10619 this.destroyed = false;
10620 this.onPassword = null;
10621 this.onProgress = null;
10622 this.onUnsupportedFeature = null;
10623 }
10624
10625 _createClass(PDFDocumentLoadingTask, [{
10626 key: "destroy",
10627 value: function destroy() {
10628 var _this = this;
10629
10630 this.destroyed = true;
10631 var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
10632 return transportDestroyed.then(function () {
10633 _this._transport = null;
10634
10635 if (_this._worker) {
10636 _this._worker.destroy();
10637
10638 _this._worker = null;
10639 }
10640 });
10641 }
10642 }, {
10643 key: "then",
10644 value: function then(onFulfilled, onRejected) {
10645 throw new Error("Removed API method: " + "PDFDocumentLoadingTask.then, use the `promise` getter instead.");
10646 }
10647 }, {
10648 key: "promise",
10649 get: function get() {
10650 return this._capability.promise;
10651 }
10652 }]);
10653
10654 return PDFDocumentLoadingTask;
10655 }();
10656
10657 return PDFDocumentLoadingTask;
10658}();
10659
10660var PDFDataRangeTransport = /*#__PURE__*/function () {
10661 function PDFDataRangeTransport(length, initialData) {
10662 var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
10663
10664 _classCallCheck(this, PDFDataRangeTransport);
10665
10666 this.length = length;
10667 this.initialData = initialData;
10668 this.progressiveDone = progressiveDone;
10669 this._rangeListeners = [];
10670 this._progressListeners = [];
10671 this._progressiveReadListeners = [];
10672 this._progressiveDoneListeners = [];
10673 this._readyCapability = (0, _util.createPromiseCapability)();
10674 }
10675
10676 _createClass(PDFDataRangeTransport, [{
10677 key: "addRangeListener",
10678 value: function addRangeListener(listener) {
10679 this._rangeListeners.push(listener);
10680 }
10681 }, {
10682 key: "addProgressListener",
10683 value: function addProgressListener(listener) {
10684 this._progressListeners.push(listener);
10685 }
10686 }, {
10687 key: "addProgressiveReadListener",
10688 value: function addProgressiveReadListener(listener) {
10689 this._progressiveReadListeners.push(listener);
10690 }
10691 }, {
10692 key: "addProgressiveDoneListener",
10693 value: function addProgressiveDoneListener(listener) {
10694 this._progressiveDoneListeners.push(listener);
10695 }
10696 }, {
10697 key: "onDataRange",
10698 value: function onDataRange(begin, chunk) {
10699 var _iteratorNormalCompletion = true;
10700 var _didIteratorError = false;
10701 var _iteratorError = undefined;
10702
10703 try {
10704 for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
10705 var listener = _step.value;
10706 listener(begin, chunk);
10707 }
10708 } catch (err) {
10709 _didIteratorError = true;
10710 _iteratorError = err;
10711 } finally {
10712 try {
10713 if (!_iteratorNormalCompletion && _iterator["return"] != null) {
10714 _iterator["return"]();
10715 }
10716 } finally {
10717 if (_didIteratorError) {
10718 throw _iteratorError;
10719 }
10720 }
10721 }
10722 }
10723 }, {
10724 key: "onDataProgress",
10725 value: function onDataProgress(loaded, total) {
10726 var _this2 = this;
10727
10728 this._readyCapability.promise.then(function () {
10729 var _iteratorNormalCompletion2 = true;
10730 var _didIteratorError2 = false;
10731 var _iteratorError2 = undefined;
10732
10733 try {
10734 for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
10735 var listener = _step2.value;
10736 listener(loaded, total);
10737 }
10738 } catch (err) {
10739 _didIteratorError2 = true;
10740 _iteratorError2 = err;
10741 } finally {
10742 try {
10743 if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
10744 _iterator2["return"]();
10745 }
10746 } finally {
10747 if (_didIteratorError2) {
10748 throw _iteratorError2;
10749 }
10750 }
10751 }
10752 });
10753 }
10754 }, {
10755 key: "onDataProgressiveRead",
10756 value: function onDataProgressiveRead(chunk) {
10757 var _this3 = this;
10758
10759 this._readyCapability.promise.then(function () {
10760 var _iteratorNormalCompletion3 = true;
10761 var _didIteratorError3 = false;
10762 var _iteratorError3 = undefined;
10763
10764 try {
10765 for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
10766 var listener = _step3.value;
10767 listener(chunk);
10768 }
10769 } catch (err) {
10770 _didIteratorError3 = true;
10771 _iteratorError3 = err;
10772 } finally {
10773 try {
10774 if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
10775 _iterator3["return"]();
10776 }
10777 } finally {
10778 if (_didIteratorError3) {
10779 throw _iteratorError3;
10780 }
10781 }
10782 }
10783 });
10784 }
10785 }, {
10786 key: "onDataProgressiveDone",
10787 value: function onDataProgressiveDone() {
10788 var _this4 = this;
10789
10790 this._readyCapability.promise.then(function () {
10791 var _iteratorNormalCompletion4 = true;
10792 var _didIteratorError4 = false;
10793 var _iteratorError4 = undefined;
10794
10795 try {
10796 for (var _iterator4 = _this4._progressiveDoneListeners[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
10797 var listener = _step4.value;
10798 listener();
10799 }
10800 } catch (err) {
10801 _didIteratorError4 = true;
10802 _iteratorError4 = err;
10803 } finally {
10804 try {
10805 if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
10806 _iterator4["return"]();
10807 }
10808 } finally {
10809 if (_didIteratorError4) {
10810 throw _iteratorError4;
10811 }
10812 }
10813 }
10814 });
10815 }
10816 }, {
10817 key: "transportReady",
10818 value: function transportReady() {
10819 this._readyCapability.resolve();
10820 }
10821 }, {
10822 key: "requestDataRange",
10823 value: function requestDataRange(begin, end) {
10824 (0, _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange");
10825 }
10826 }, {
10827 key: "abort",
10828 value: function abort() {}
10829 }]);
10830
10831 return PDFDataRangeTransport;
10832}();
10833
10834exports.PDFDataRangeTransport = PDFDataRangeTransport;
10835
10836var PDFDocumentProxy = /*#__PURE__*/function () {
10837 function PDFDocumentProxy(pdfInfo, transport) {
10838 _classCallCheck(this, PDFDocumentProxy);
10839
10840 this._pdfInfo = pdfInfo;
10841 this._transport = transport;
10842 }
10843
10844 _createClass(PDFDocumentProxy, [{
10845 key: "getPage",
10846 value: function getPage(pageNumber) {
10847 return this._transport.getPage(pageNumber);
10848 }
10849 }, {
10850 key: "getPageIndex",
10851 value: function getPageIndex(ref) {
10852 return this._transport.getPageIndex(ref);
10853 }
10854 }, {
10855 key: "getDestinations",
10856 value: function getDestinations() {
10857 return this._transport.getDestinations();
10858 }
10859 }, {
10860 key: "getDestination",
10861 value: function getDestination(id) {
10862 return this._transport.getDestination(id);
10863 }
10864 }, {
10865 key: "getPageLabels",
10866 value: function getPageLabels() {
10867 return this._transport.getPageLabels();
10868 }
10869 }, {
10870 key: "getPageLayout",
10871 value: function getPageLayout() {
10872 return this._transport.getPageLayout();
10873 }
10874 }, {
10875 key: "getPageMode",
10876 value: function getPageMode() {
10877 return this._transport.getPageMode();
10878 }
10879 }, {
10880 key: "getViewerPreferences",
10881 value: function getViewerPreferences() {
10882 return this._transport.getViewerPreferences();
10883 }
10884 }, {
10885 key: "getOpenAction",
10886 value: function getOpenAction() {
10887 return this._transport.getOpenAction();
10888 }
10889 }, {
10890 key: "getOpenActionDestination",
10891 value: function getOpenActionDestination() {
10892 (0, _display_utils.deprecated)("getOpenActionDestination, use getOpenAction instead.");
10893 return this.getOpenAction().then(function (openAction) {
10894 return openAction && openAction.dest ? openAction.dest : null;
10895 });
10896 }
10897 }, {
10898 key: "getAttachments",
10899 value: function getAttachments() {
10900 return this._transport.getAttachments();
10901 }
10902 }, {
10903 key: "getJavaScript",
10904 value: function getJavaScript() {
10905 return this._transport.getJavaScript();
10906 }
10907 }, {
10908 key: "getOutline",
10909 value: function getOutline() {
10910 return this._transport.getOutline();
10911 }
10912 }, {
10913 key: "getPermissions",
10914 value: function getPermissions() {
10915 return this._transport.getPermissions();
10916 }
10917 }, {
10918 key: "getMetadata",
10919 value: function getMetadata() {
10920 return this._transport.getMetadata();
10921 }
10922 }, {
10923 key: "getData",
10924 value: function getData() {
10925 return this._transport.getData();
10926 }
10927 }, {
10928 key: "getDownloadInfo",
10929 value: function getDownloadInfo() {
10930 return this._transport.downloadInfoCapability.promise;
10931 }
10932 }, {
10933 key: "getStats",
10934 value: function getStats() {
10935 return this._transport.getStats();
10936 }
10937 }, {
10938 key: "cleanup",
10939 value: function cleanup() {
10940 return this._transport.startCleanup();
10941 }
10942 }, {
10943 key: "destroy",
10944 value: function destroy() {
10945 return this.loadingTask.destroy();
10946 }
10947 }, {
10948 key: "numPages",
10949 get: function get() {
10950 return this._pdfInfo.numPages;
10951 }
10952 }, {
10953 key: "fingerprint",
10954 get: function get() {
10955 return this._pdfInfo.fingerprint;
10956 }
10957 }, {
10958 key: "loadingParams",
10959 get: function get() {
10960 return this._transport.loadingParams;
10961 }
10962 }, {
10963 key: "loadingTask",
10964 get: function get() {
10965 return this._transport.loadingTask;
10966 }
10967 }]);
10968
10969 return PDFDocumentProxy;
10970}();
10971
10972exports.PDFDocumentProxy = PDFDocumentProxy;
10973
10974var PDFPageProxy = /*#__PURE__*/function () {
10975 function PDFPageProxy(pageIndex, pageInfo, transport) {
10976 var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
10977
10978 _classCallCheck(this, PDFPageProxy);
10979
10980 this._pageIndex = pageIndex;
10981 this._pageInfo = pageInfo;
10982 this._transport = transport;
10983 this._stats = pdfBug ? new _display_utils.StatTimer() : null;
10984 this._pdfBug = pdfBug;
10985 this.commonObjs = transport.commonObjs;
10986 this.objs = new PDFObjects();
10987 this.cleanupAfterRender = false;
10988 this.pendingCleanup = false;
10989 this.intentStates = Object.create(null);
10990 this.destroyed = false;
10991 }
10992
10993 _createClass(PDFPageProxy, [{
10994 key: "getViewport",
10995 value: function getViewport() {
10996 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10997 scale = _ref.scale,
10998 _ref$rotation = _ref.rotation,
10999 rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,
11000 _ref$offsetX = _ref.offsetX,
11001 offsetX = _ref$offsetX === void 0 ? 0 : _ref$offsetX,
11002 _ref$offsetY = _ref.offsetY,
11003 offsetY = _ref$offsetY === void 0 ? 0 : _ref$offsetY,
11004 _ref$dontFlip = _ref.dontFlip,
11005 dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;
11006
11007 if (arguments.length > 1 || typeof arguments[0] === "number") {
11008 throw new Error("PDFPageProxy.getViewport is called with obsolete arguments.");
11009 }
11010
11011 return new _display_utils.PageViewport({
11012 viewBox: this.view,
11013 scale: scale,
11014 rotation: rotation,
11015 offsetX: offsetX,
11016 offsetY: offsetY,
11017 dontFlip: dontFlip
11018 });
11019 }
11020 }, {
11021 key: "getAnnotations",
11022 value: function getAnnotations() {
11023 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
11024 _ref2$intent = _ref2.intent,
11025 intent = _ref2$intent === void 0 ? null : _ref2$intent;
11026
11027 if (!this.annotationsPromise || this.annotationsIntent !== intent) {
11028 this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, intent);
11029 this.annotationsIntent = intent;
11030 }
11031
11032 return this.annotationsPromise;
11033 }
11034 }, {
11035 key: "render",
11036 value: function render(_ref3) {
11037 var _this5 = this;
11038
11039 var canvasContext = _ref3.canvasContext,
11040 viewport = _ref3.viewport,
11041 _ref3$intent = _ref3.intent,
11042 intent = _ref3$intent === void 0 ? "display" : _ref3$intent,
11043 _ref3$enableWebGL = _ref3.enableWebGL,
11044 enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,
11045 _ref3$renderInteracti = _ref3.renderInteractiveForms,
11046 renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,
11047 _ref3$transform = _ref3.transform,
11048 transform = _ref3$transform === void 0 ? null : _ref3$transform,
11049 _ref3$imageLayer = _ref3.imageLayer,
11050 imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,
11051 _ref3$canvasFactory = _ref3.canvasFactory,
11052 canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,
11053 _ref3$background = _ref3.background,
11054 background = _ref3$background === void 0 ? null : _ref3$background;
11055
11056 if (this._stats) {
11057 this._stats.time("Overall");
11058 }
11059
11060 var renderingIntent = intent === "print" ? "print" : "display";
11061 this.pendingCleanup = false;
11062
11063 if (!this.intentStates[renderingIntent]) {
11064 this.intentStates[renderingIntent] = Object.create(null);
11065 }
11066
11067 var intentState = this.intentStates[renderingIntent];
11068
11069 if (intentState.streamReaderCancelTimeout) {
11070 clearTimeout(intentState.streamReaderCancelTimeout);
11071 intentState.streamReaderCancelTimeout = null;
11072 }
11073
11074 var canvasFactoryInstance = canvasFactory || new _display_utils.DOMCanvasFactory();
11075 var webGLContext = new _webgl.WebGLContext({
11076 enable: enableWebGL
11077 });
11078
11079 if (!intentState.displayReadyCapability) {
11080 intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
11081 intentState.operatorList = {
11082 fnArray: [],
11083 argsArray: [],
11084 lastChunk: false
11085 };
11086
11087 if (this._stats) {
11088 this._stats.time("Page Request");
11089 }
11090
11091 this._pumpOperatorList({
11092 pageIndex: this._pageIndex,
11093 intent: renderingIntent,
11094 renderInteractiveForms: renderInteractiveForms === true
11095 });
11096 }
11097
11098 var complete = function complete(error) {
11099 var i = intentState.renderTasks.indexOf(internalRenderTask);
11100
11101 if (i >= 0) {
11102 intentState.renderTasks.splice(i, 1);
11103 }
11104
11105 if (_this5.cleanupAfterRender || renderingIntent === "print") {
11106 _this5.pendingCleanup = true;
11107 }
11108
11109 _this5._tryCleanup();
11110
11111 if (error) {
11112 internalRenderTask.capability.reject(error);
11113
11114 _this5._abortOperatorList({
11115 intentState: intentState,
11116 reason: error
11117 });
11118 } else {
11119 internalRenderTask.capability.resolve();
11120 }
11121
11122 if (_this5._stats) {
11123 _this5._stats.timeEnd("Rendering");
11124
11125 _this5._stats.timeEnd("Overall");
11126 }
11127 };
11128
11129 var internalRenderTask = new InternalRenderTask({
11130 callback: complete,
11131 params: {
11132 canvasContext: canvasContext,
11133 viewport: viewport,
11134 transform: transform,
11135 imageLayer: imageLayer,
11136 background: background
11137 },
11138 objs: this.objs,
11139 commonObjs: this.commonObjs,
11140 operatorList: intentState.operatorList,
11141 pageIndex: this._pageIndex,
11142 canvasFactory: canvasFactoryInstance,
11143 webGLContext: webGLContext,
11144 useRequestAnimationFrame: renderingIntent !== "print",
11145 pdfBug: this._pdfBug
11146 });
11147
11148 if (!intentState.renderTasks) {
11149 intentState.renderTasks = [];
11150 }
11151
11152 intentState.renderTasks.push(internalRenderTask);
11153 var renderTask = internalRenderTask.task;
11154 intentState.displayReadyCapability.promise.then(function (transparency) {
11155 if (_this5.pendingCleanup) {
11156 complete();
11157 return;
11158 }
11159
11160 if (_this5._stats) {
11161 _this5._stats.time("Rendering");
11162 }
11163
11164 internalRenderTask.initializeGraphics(transparency);
11165 internalRenderTask.operatorListChanged();
11166 })["catch"](complete);
11167 return renderTask;
11168 }
11169 }, {
11170 key: "getOperatorList",
11171 value: function getOperatorList() {
11172 function operatorListChanged() {
11173 if (intentState.operatorList.lastChunk) {
11174 intentState.opListReadCapability.resolve(intentState.operatorList);
11175 var i = intentState.renderTasks.indexOf(opListTask);
11176
11177 if (i >= 0) {
11178 intentState.renderTasks.splice(i, 1);
11179 }
11180 }
11181 }
11182
11183 var renderingIntent = "oplist";
11184
11185 if (!this.intentStates[renderingIntent]) {
11186 this.intentStates[renderingIntent] = Object.create(null);
11187 }
11188
11189 var intentState = this.intentStates[renderingIntent];
11190 var opListTask;
11191
11192 if (!intentState.opListReadCapability) {
11193 opListTask = {};
11194 opListTask.operatorListChanged = operatorListChanged;
11195 intentState.opListReadCapability = (0, _util.createPromiseCapability)();
11196 intentState.renderTasks = [];
11197 intentState.renderTasks.push(opListTask);
11198 intentState.operatorList = {
11199 fnArray: [],
11200 argsArray: [],
11201 lastChunk: false
11202 };
11203
11204 if (this._stats) {
11205 this._stats.time("Page Request");
11206 }
11207
11208 this._pumpOperatorList({
11209 pageIndex: this._pageIndex,
11210 intent: renderingIntent
11211 });
11212 }
11213
11214 return intentState.opListReadCapability.promise;
11215 }
11216 }, {
11217 key: "streamTextContent",
11218 value: function streamTextContent() {
11219 var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
11220 _ref4$normalizeWhites = _ref4.normalizeWhitespace,
11221 normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,
11222 _ref4$disableCombineT = _ref4.disableCombineTextItems,
11223 disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;
11224
11225 var TEXT_CONTENT_CHUNK_SIZE = 100;
11226 return this._transport.messageHandler.sendWithStream("GetTextContent", {
11227 pageIndex: this._pageIndex,
11228 normalizeWhitespace: normalizeWhitespace === true,
11229 combineTextItems: disableCombineTextItems !== true
11230 }, {
11231 highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
11232 size: function size(textContent) {
11233 return textContent.items.length;
11234 }
11235 });
11236 }
11237 }, {
11238 key: "getTextContent",
11239 value: function getTextContent() {
11240 var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
11241 var readableStream = this.streamTextContent(params);
11242 return new Promise(function (resolve, reject) {
11243 function pump() {
11244 reader.read().then(function (_ref5) {
11245 var _textContent$items;
11246
11247 var value = _ref5.value,
11248 done = _ref5.done;
11249
11250 if (done) {
11251 resolve(textContent);
11252 return;
11253 }
11254
11255 Object.assign(textContent.styles, value.styles);
11256
11257 (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));
11258
11259 pump();
11260 }, reject);
11261 }
11262
11263 var reader = readableStream.getReader();
11264 var textContent = {
11265 items: [],
11266 styles: Object.create(null)
11267 };
11268 pump();
11269 });
11270 }
11271 }, {
11272 key: "_destroy",
11273 value: function _destroy() {
11274 var _this6 = this;
11275
11276 this.destroyed = true;
11277 this._transport.pageCache[this._pageIndex] = null;
11278 var waitOn = [];
11279 Object.keys(this.intentStates).forEach(function (intent) {
11280 var intentState = _this6.intentStates[intent];
11281
11282 _this6._abortOperatorList({
11283 intentState: intentState,
11284 reason: new Error("Page was destroyed."),
11285 force: true
11286 });
11287
11288 if (intent === "oplist") {
11289 return;
11290 }
11291
11292 intentState.renderTasks.forEach(function (renderTask) {
11293 var renderCompleted = renderTask.capability.promise["catch"](function () {});
11294 waitOn.push(renderCompleted);
11295 renderTask.cancel();
11296 });
11297 });
11298 this.objs.clear();
11299 this.annotationsPromise = null;
11300 this.pendingCleanup = false;
11301 return Promise.all(waitOn);
11302 }
11303 }, {
11304 key: "cleanup",
11305 value: function cleanup() {
11306 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
11307 this.pendingCleanup = true;
11308 return this._tryCleanup(resetStats);
11309 }
11310 }, {
11311 key: "_tryCleanup",
11312 value: function _tryCleanup() {
11313 var _this7 = this;
11314
11315 var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
11316
11317 if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {
11318 var intentState = _this7.intentStates[intent];
11319 return intentState.renderTasks.length !== 0 || !intentState.operatorList.lastChunk;
11320 })) {
11321 return false;
11322 }
11323
11324 Object.keys(this.intentStates).forEach(function (intent) {
11325 delete _this7.intentStates[intent];
11326 });
11327 this.objs.clear();
11328 this.annotationsPromise = null;
11329
11330 if (resetStats && this._stats) {
11331 this._stats = new _display_utils.StatTimer();
11332 }
11333
11334 this.pendingCleanup = false;
11335 return true;
11336 }
11337 }, {
11338 key: "_startRenderPage",
11339 value: function _startRenderPage(transparency, intent) {
11340 var intentState = this.intentStates[intent];
11341
11342 if (!intentState) {
11343 return;
11344 }
11345
11346 if (this._stats) {
11347 this._stats.timeEnd("Page Request");
11348 }
11349
11350 if (intentState.displayReadyCapability) {
11351 intentState.displayReadyCapability.resolve(transparency);
11352 }
11353 }
11354 }, {
11355 key: "_renderPageChunk",
11356 value: function _renderPageChunk(operatorListChunk, intentState) {
11357 for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {
11358 intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
11359 intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
11360 }
11361
11362 intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
11363
11364 for (var _i = 0; _i < intentState.renderTasks.length; _i++) {
11365 intentState.renderTasks[_i].operatorListChanged();
11366 }
11367
11368 if (operatorListChunk.lastChunk) {
11369 this._tryCleanup();
11370 }
11371 }
11372 }, {
11373 key: "_pumpOperatorList",
11374 value: function _pumpOperatorList(args) {
11375 var _this8 = this;
11376
11377 (0, _util.assert)(args.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.');
11378
11379 var readableStream = this._transport.messageHandler.sendWithStream("GetOperatorList", args);
11380
11381 var reader = readableStream.getReader();
11382 var intentState = this.intentStates[args.intent];
11383 intentState.streamReader = reader;
11384
11385 var pump = function pump() {
11386 reader.read().then(function (_ref6) {
11387 var value = _ref6.value,
11388 done = _ref6.done;
11389
11390 if (done) {
11391 intentState.streamReader = null;
11392 return;
11393 }
11394
11395 if (_this8._transport.destroyed) {
11396 return;
11397 }
11398
11399 _this8._renderPageChunk(value, intentState);
11400
11401 pump();
11402 }, function (reason) {
11403 intentState.streamReader = null;
11404
11405 if (_this8._transport.destroyed) {
11406 return;
11407 }
11408
11409 if (intentState.operatorList) {
11410 intentState.operatorList.lastChunk = true;
11411
11412 for (var i = 0; i < intentState.renderTasks.length; i++) {
11413 intentState.renderTasks[i].operatorListChanged();
11414 }
11415
11416 _this8._tryCleanup();
11417 }
11418
11419 if (intentState.displayReadyCapability) {
11420 intentState.displayReadyCapability.reject(reason);
11421 } else if (intentState.opListReadCapability) {
11422 intentState.opListReadCapability.reject(reason);
11423 } else {
11424 throw reason;
11425 }
11426 });
11427 };
11428
11429 pump();
11430 }
11431 }, {
11432 key: "_abortOperatorList",
11433 value: function _abortOperatorList(_ref7) {
11434 var _this9 = this;
11435
11436 var intentState = _ref7.intentState,
11437 reason = _ref7.reason,
11438 _ref7$force = _ref7.force,
11439 force = _ref7$force === void 0 ? false : _ref7$force;
11440 (0, _util.assert)(reason instanceof Error || _typeof(reason) === "object" && reason !== null, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.');
11441
11442 if (!intentState.streamReader) {
11443 return;
11444 }
11445
11446 if (!force) {
11447 if (intentState.renderTasks.length !== 0) {
11448 return;
11449 }
11450
11451 if (reason instanceof _display_utils.RenderingCancelledException) {
11452 intentState.streamReaderCancelTimeout = setTimeout(function () {
11453 _this9._abortOperatorList({
11454 intentState: intentState,
11455 reason: reason,
11456 force: true
11457 });
11458
11459 intentState.streamReaderCancelTimeout = null;
11460 }, RENDERING_CANCELLED_TIMEOUT);
11461 return;
11462 }
11463 }
11464
11465 intentState.streamReader.cancel(new _util.AbortException(reason && reason.message));
11466 intentState.streamReader = null;
11467
11468 if (this._transport.destroyed) {
11469 return;
11470 }
11471
11472 Object.keys(this.intentStates).some(function (intent) {
11473 if (_this9.intentStates[intent] === intentState) {
11474 delete _this9.intentStates[intent];
11475 return true;
11476 }
11477
11478 return false;
11479 });
11480 this.cleanup();
11481 }
11482 }, {
11483 key: "pageNumber",
11484 get: function get() {
11485 return this._pageIndex + 1;
11486 }
11487 }, {
11488 key: "rotate",
11489 get: function get() {
11490 return this._pageInfo.rotate;
11491 }
11492 }, {
11493 key: "ref",
11494 get: function get() {
11495 return this._pageInfo.ref;
11496 }
11497 }, {
11498 key: "userUnit",
11499 get: function get() {
11500 return this._pageInfo.userUnit;
11501 }
11502 }, {
11503 key: "view",
11504 get: function get() {
11505 return this._pageInfo.view;
11506 }
11507 }, {
11508 key: "stats",
11509 get: function get() {
11510 return this._stats;
11511 }
11512 }]);
11513
11514 return PDFPageProxy;
11515}();
11516
11517exports.PDFPageProxy = PDFPageProxy;
11518
11519var LoopbackPort = /*#__PURE__*/function () {
11520 function LoopbackPort() {
11521 var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
11522
11523 _classCallCheck(this, LoopbackPort);
11524
11525 this._listeners = [];
11526 this._defer = defer;
11527 this._deferred = Promise.resolve(undefined);
11528 }
11529
11530 _createClass(LoopbackPort, [{
11531 key: "postMessage",
11532 value: function postMessage(obj, transfers) {
11533 var _this10 = this;
11534
11535 function cloneValue(value) {
11536 if (_typeof(value) !== "object" || value === null) {
11537 return value;
11538 }
11539
11540 if (cloned.has(value)) {
11541 return cloned.get(value);
11542 }
11543
11544 var buffer, result;
11545
11546 if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
11547 var transferable = transfers && transfers.includes(buffer);
11548
11549 if (transferable) {
11550 result = new value.constructor(buffer, value.byteOffset, value.byteLength);
11551 } else {
11552 result = new value.constructor(value);
11553 }
11554
11555 cloned.set(value, result);
11556 return result;
11557 }
11558
11559 result = Array.isArray(value) ? [] : {};
11560 cloned.set(value, result);
11561
11562 for (var i in value) {
11563 var desc = void 0,
11564 p = value;
11565
11566 while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
11567 p = Object.getPrototypeOf(p);
11568 }
11569
11570 if (typeof desc.value === "undefined") {
11571 continue;
11572 }
11573
11574 if (typeof desc.value === "function") {
11575 if (value.hasOwnProperty && value.hasOwnProperty(i)) {
11576 throw new Error("LoopbackPort.postMessage - cannot clone: ".concat(value[i]));
11577 }
11578
11579 continue;
11580 }
11581
11582 result[i] = cloneValue(desc.value);
11583 }
11584
11585 return result;
11586 }
11587
11588 if (!this._defer) {
11589 this._listeners.forEach(function (listener) {
11590 listener.call(_this10, {
11591 data: obj
11592 });
11593 });
11594
11595 return;
11596 }
11597
11598 var cloned = new WeakMap();
11599 var e = {
11600 data: cloneValue(obj)
11601 };
11602
11603 this._deferred.then(function () {
11604 _this10._listeners.forEach(function (listener) {
11605 listener.call(_this10, e);
11606 });
11607 });
11608 }
11609 }, {
11610 key: "addEventListener",
11611 value: function addEventListener(name, listener) {
11612 this._listeners.push(listener);
11613 }
11614 }, {
11615 key: "removeEventListener",
11616 value: function removeEventListener(name, listener) {
11617 var i = this._listeners.indexOf(listener);
11618
11619 this._listeners.splice(i, 1);
11620 }
11621 }, {
11622 key: "terminate",
11623 value: function terminate() {
11624 this._listeners.length = 0;
11625 }
11626 }]);
11627
11628 return LoopbackPort;
11629}();
11630
11631exports.LoopbackPort = LoopbackPort;
11632
11633var PDFWorker = function PDFWorkerClosure() {
11634 var pdfWorkerPorts = new WeakMap();
11635 var isWorkerDisabled = false;
11636 var fallbackWorkerSrc;
11637 var nextFakeWorkerId = 0;
11638 var fakeWorkerCapability;
11639
11640 if (_is_node.isNodeJS && typeof require === "function") {
11641 isWorkerDisabled = true;
11642 fallbackWorkerSrc = "./pdf.worker.js";
11643 } else if ((typeof document === "undefined" ? "undefined" : _typeof(document)) === "object" && "currentScript" in document) {
11644 var pdfjsFilePath = document.currentScript && document.currentScript.src;
11645
11646 if (pdfjsFilePath) {
11647 fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2");
11648 }
11649 }
11650
11651 function _getWorkerSrc() {
11652 if (_worker_options.GlobalWorkerOptions.workerSrc) {
11653 return _worker_options.GlobalWorkerOptions.workerSrc;
11654 }
11655
11656 if (typeof fallbackWorkerSrc !== "undefined") {
11657 if (!_is_node.isNodeJS) {
11658 (0, _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.');
11659 }
11660
11661 return fallbackWorkerSrc;
11662 }
11663
11664 throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
11665 }
11666
11667 function getMainThreadWorkerMessageHandler() {
11668 var mainWorkerMessageHandler;
11669
11670 try {
11671 mainWorkerMessageHandler = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler;
11672 } catch (ex) {}
11673
11674 return mainWorkerMessageHandler || null;
11675 }
11676
11677 function setupFakeWorkerGlobal() {
11678 if (fakeWorkerCapability) {
11679 return fakeWorkerCapability.promise;
11680 }
11681
11682 fakeWorkerCapability = (0, _util.createPromiseCapability)();
11683
11684 var loader = /*#__PURE__*/function () {
11685 var _ref8 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
11686 var mainWorkerMessageHandler, worker;
11687 return _regenerator["default"].wrap(function _callee$(_context) {
11688 while (1) {
11689 switch (_context.prev = _context.next) {
11690 case 0:
11691 mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
11692
11693 if (!mainWorkerMessageHandler) {
11694 _context.next = 3;
11695 break;
11696 }
11697
11698 return _context.abrupt("return", mainWorkerMessageHandler);
11699
11700 case 3:
11701 if (!(_is_node.isNodeJS && typeof require === "function")) {
11702 _context.next = 6;
11703 break;
11704 }
11705
11706 worker = eval("require")(_getWorkerSrc());
11707 return _context.abrupt("return", worker.WorkerMessageHandler);
11708
11709 case 6:
11710 _context.next = 8;
11711 return (0, _display_utils.loadScript)(_getWorkerSrc());
11712
11713 case 8:
11714 return _context.abrupt("return", window.pdfjsWorker.WorkerMessageHandler);
11715
11716 case 9:
11717 case "end":
11718 return _context.stop();
11719 }
11720 }
11721 }, _callee);
11722 }));
11723
11724 return function loader() {
11725 return _ref8.apply(this, arguments);
11726 };
11727 }();
11728
11729 loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject);
11730 return fakeWorkerCapability.promise;
11731 }
11732
11733 function createCDNWrapper(url) {
11734 var wrapper = "importScripts('" + url + "');";
11735 return URL.createObjectURL(new Blob([wrapper]));
11736 }
11737
11738 var PDFWorker = /*#__PURE__*/function () {
11739 function PDFWorker() {
11740 var _ref9 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
11741 _ref9$name = _ref9.name,
11742 name = _ref9$name === void 0 ? null : _ref9$name,
11743 _ref9$port = _ref9.port,
11744 port = _ref9$port === void 0 ? null : _ref9$port,
11745 _ref9$verbosity = _ref9.verbosity,
11746 verbosity = _ref9$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref9$verbosity;
11747
11748 _classCallCheck(this, PDFWorker);
11749
11750 if (port && pdfWorkerPorts.has(port)) {
11751 throw new Error("Cannot use more than one PDFWorker per port");
11752 }
11753
11754 this.name = name;
11755 this.destroyed = false;
11756 this.postMessageTransfers = true;
11757 this.verbosity = verbosity;
11758 this._readyCapability = (0, _util.createPromiseCapability)();
11759 this._port = null;
11760 this._webWorker = null;
11761 this._messageHandler = null;
11762
11763 if (port) {
11764 pdfWorkerPorts.set(port, this);
11765
11766 this._initializeFromPort(port);
11767
11768 return;
11769 }
11770
11771 this._initialize();
11772 }
11773
11774 _createClass(PDFWorker, [{
11775 key: "_initializeFromPort",
11776 value: function _initializeFromPort(port) {
11777 this._port = port;
11778 this._messageHandler = new _message_handler.MessageHandler("main", "worker", port);
11779
11780 this._messageHandler.on("ready", function () {});
11781
11782 this._readyCapability.resolve();
11783 }
11784 }, {
11785 key: "_initialize",
11786 value: function _initialize() {
11787 var _this11 = this;
11788
11789 if (typeof Worker !== "undefined" && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
11790 var workerSrc = _getWorkerSrc();
11791
11792 try {
11793 if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
11794 workerSrc = createCDNWrapper(new URL(workerSrc, window.location).href);
11795 }
11796
11797 var worker = new Worker(workerSrc);
11798 var messageHandler = new _message_handler.MessageHandler("main", "worker", worker);
11799
11800 var terminateEarly = function terminateEarly() {
11801 worker.removeEventListener("error", onWorkerError);
11802 messageHandler.destroy();
11803 worker.terminate();
11804
11805 if (_this11.destroyed) {
11806 _this11._readyCapability.reject(new Error("Worker was destroyed"));
11807 } else {
11808 _this11._setupFakeWorker();
11809 }
11810 };
11811
11812 var onWorkerError = function onWorkerError() {
11813 if (!_this11._webWorker) {
11814 terminateEarly();
11815 }
11816 };
11817
11818 worker.addEventListener("error", onWorkerError);
11819 messageHandler.on("test", function (data) {
11820 worker.removeEventListener("error", onWorkerError);
11821
11822 if (_this11.destroyed) {
11823 terminateEarly();
11824 return;
11825 }
11826
11827 if (data) {
11828 _this11._messageHandler = messageHandler;
11829 _this11._port = worker;
11830 _this11._webWorker = worker;
11831
11832 if (!data.supportTransfers) {
11833 _this11.postMessageTransfers = false;
11834 }
11835
11836 _this11._readyCapability.resolve();
11837
11838 messageHandler.send("configure", {
11839 verbosity: _this11.verbosity
11840 });
11841 } else {
11842 _this11._setupFakeWorker();
11843
11844 messageHandler.destroy();
11845 worker.terminate();
11846 }
11847 });
11848 messageHandler.on("ready", function (data) {
11849 worker.removeEventListener("error", onWorkerError);
11850
11851 if (_this11.destroyed) {
11852 terminateEarly();
11853 return;
11854 }
11855
11856 try {
11857 sendTest();
11858 } catch (e) {
11859 _this11._setupFakeWorker();
11860 }
11861 });
11862
11863 var sendTest = function sendTest() {
11864 var testObj = new Uint8Array([_this11.postMessageTransfers ? 255 : 0]);
11865
11866 try {
11867 messageHandler.send("test", testObj, [testObj.buffer]);
11868 } catch (ex) {
11869 (0, _util.warn)("Cannot use postMessage transfers.");
11870 testObj[0] = 0;
11871 messageHandler.send("test", testObj);
11872 }
11873 };
11874
11875 sendTest();
11876 return;
11877 } catch (e) {
11878 (0, _util.info)("The worker has been disabled.");
11879 }
11880 }
11881
11882 this._setupFakeWorker();
11883 }
11884 }, {
11885 key: "_setupFakeWorker",
11886 value: function _setupFakeWorker() {
11887 var _this12 = this;
11888
11889 if (!isWorkerDisabled) {
11890 (0, _util.warn)("Setting up fake worker.");
11891 isWorkerDisabled = true;
11892 }
11893
11894 setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
11895 if (_this12.destroyed) {
11896 _this12._readyCapability.reject(new Error("Worker was destroyed"));
11897
11898 return;
11899 }
11900
11901 var port = new LoopbackPort();
11902 _this12._port = port;
11903 var id = "fake" + nextFakeWorkerId++;
11904 var workerHandler = new _message_handler.MessageHandler(id + "_worker", id, port);
11905 WorkerMessageHandler.setup(workerHandler, port);
11906 var messageHandler = new _message_handler.MessageHandler(id, id + "_worker", port);
11907 _this12._messageHandler = messageHandler;
11908
11909 _this12._readyCapability.resolve();
11910
11911 messageHandler.send("configure", {
11912 verbosity: _this12.verbosity
11913 });
11914 })["catch"](function (reason) {
11915 _this12._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\".")));
11916 });
11917 }
11918 }, {
11919 key: "destroy",
11920 value: function destroy() {
11921 this.destroyed = true;
11922
11923 if (this._webWorker) {
11924 this._webWorker.terminate();
11925
11926 this._webWorker = null;
11927 }
11928
11929 pdfWorkerPorts["delete"](this._port);
11930 this._port = null;
11931
11932 if (this._messageHandler) {
11933 this._messageHandler.destroy();
11934
11935 this._messageHandler = null;
11936 }
11937 }
11938 }, {
11939 key: "promise",
11940 get: function get() {
11941 return this._readyCapability.promise;
11942 }
11943 }, {
11944 key: "port",
11945 get: function get() {
11946 return this._port;
11947 }
11948 }, {
11949 key: "messageHandler",
11950 get: function get() {
11951 return this._messageHandler;
11952 }
11953 }], [{
11954 key: "fromPort",
11955 value: function fromPort(params) {
11956 if (!params || !params.port) {
11957 throw new Error("PDFWorker.fromPort - invalid method signature.");
11958 }
11959
11960 if (pdfWorkerPorts.has(params.port)) {
11961 return pdfWorkerPorts.get(params.port);
11962 }
11963
11964 return new PDFWorker(params);
11965 }
11966 }, {
11967 key: "getWorkerSrc",
11968 value: function getWorkerSrc() {
11969 return _getWorkerSrc();
11970 }
11971 }]);
11972
11973 return PDFWorker;
11974 }();
11975
11976 return PDFWorker;
11977}();
11978
11979exports.PDFWorker = PDFWorker;
11980
11981var WorkerTransport = /*#__PURE__*/function () {
11982 function WorkerTransport(messageHandler, loadingTask, networkStream, params) {
11983 _classCallCheck(this, WorkerTransport);
11984
11985 this.messageHandler = messageHandler;
11986 this.loadingTask = loadingTask;
11987 this.commonObjs = new PDFObjects();
11988 this.fontLoader = new _font_loader.FontLoader({
11989 docId: loadingTask.docId,
11990 onUnsupportedFeature: this._onUnsupportedFeature.bind(this)
11991 });
11992 this._params = params;
11993 this.CMapReaderFactory = new params.CMapReaderFactory({
11994 baseUrl: params.cMapUrl,
11995 isCompressed: params.cMapPacked
11996 });
11997 this.destroyed = false;
11998 this.destroyCapability = null;
11999 this._passwordCapability = null;
12000 this._networkStream = networkStream;
12001 this._fullReader = null;
12002 this._lastProgress = null;
12003 this.pageCache = [];
12004 this.pagePromises = [];
12005 this.downloadInfoCapability = (0, _util.createPromiseCapability)();
12006 this.setupMessageHandler();
12007 }
12008
12009 _createClass(WorkerTransport, [{
12010 key: "destroy",
12011 value: function destroy() {
12012 var _this13 = this;
12013
12014 if (this.destroyCapability) {
12015 return this.destroyCapability.promise;
12016 }
12017
12018 this.destroyed = true;
12019 this.destroyCapability = (0, _util.createPromiseCapability)();
12020
12021 if (this._passwordCapability) {
12022 this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback"));
12023 }
12024
12025 var waitOn = [];
12026 this.pageCache.forEach(function (page) {
12027 if (page) {
12028 waitOn.push(page._destroy());
12029 }
12030 });
12031 this.pageCache.length = 0;
12032 this.pagePromises.length = 0;
12033 var terminated = this.messageHandler.sendWithPromise("Terminate", null);
12034 waitOn.push(terminated);
12035 Promise.all(waitOn).then(function () {
12036 _this13.fontLoader.clear();
12037
12038 if (_this13._networkStream) {
12039 _this13._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated."));
12040 }
12041
12042 if (_this13.messageHandler) {
12043 _this13.messageHandler.destroy();
12044
12045 _this13.messageHandler = null;
12046 }
12047
12048 _this13.destroyCapability.resolve();
12049 }, this.destroyCapability.reject);
12050 return this.destroyCapability.promise;
12051 }
12052 }, {
12053 key: "setupMessageHandler",
12054 value: function setupMessageHandler() {
12055 var _this14 = this;
12056
12057 var messageHandler = this.messageHandler,
12058 loadingTask = this.loadingTask;
12059 messageHandler.on("GetReader", function (data, sink) {
12060 (0, _util.assert)(_this14._networkStream);
12061 _this14._fullReader = _this14._networkStream.getFullReader();
12062
12063 _this14._fullReader.onProgress = function (evt) {
12064 _this14._lastProgress = {
12065 loaded: evt.loaded,
12066 total: evt.total
12067 };
12068 };
12069
12070 sink.onPull = function () {
12071 _this14._fullReader.read().then(function (_ref10) {
12072 var value = _ref10.value,
12073 done = _ref10.done;
12074
12075 if (done) {
12076 sink.close();
12077 return;
12078 }
12079
12080 (0, _util.assert)((0, _util.isArrayBuffer)(value));
12081 sink.enqueue(new Uint8Array(value), 1, [value]);
12082 })["catch"](function (reason) {
12083 sink.error(reason);
12084 });
12085 };
12086
12087 sink.onCancel = function (reason) {
12088 _this14._fullReader.cancel(reason);
12089 };
12090 });
12091 messageHandler.on("ReaderHeadersReady", function (data) {
12092 var headersCapability = (0, _util.createPromiseCapability)();
12093 var fullReader = _this14._fullReader;
12094 fullReader.headersReady.then(function () {
12095 if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
12096 if (_this14._lastProgress && loadingTask.onProgress) {
12097 loadingTask.onProgress(_this14._lastProgress);
12098 }
12099
12100 fullReader.onProgress = function (evt) {
12101 if (loadingTask.onProgress) {
12102 loadingTask.onProgress({
12103 loaded: evt.loaded,
12104 total: evt.total
12105 });
12106 }
12107 };
12108 }
12109
12110 headersCapability.resolve({
12111 isStreamingSupported: fullReader.isStreamingSupported,
12112 isRangeSupported: fullReader.isRangeSupported,
12113 contentLength: fullReader.contentLength
12114 });
12115 }, headersCapability.reject);
12116 return headersCapability.promise;
12117 });
12118 messageHandler.on("GetRangeReader", function (data, sink) {
12119 (0, _util.assert)(_this14._networkStream);
12120
12121 var rangeReader = _this14._networkStream.getRangeReader(data.begin, data.end);
12122
12123 if (!rangeReader) {
12124 sink.close();
12125 return;
12126 }
12127
12128 sink.onPull = function () {
12129 rangeReader.read().then(function (_ref11) {
12130 var value = _ref11.value,
12131 done = _ref11.done;
12132
12133 if (done) {
12134 sink.close();
12135 return;
12136 }
12137
12138 (0, _util.assert)((0, _util.isArrayBuffer)(value));
12139 sink.enqueue(new Uint8Array(value), 1, [value]);
12140 })["catch"](function (reason) {
12141 sink.error(reason);
12142 });
12143 };
12144
12145 sink.onCancel = function (reason) {
12146 rangeReader.cancel(reason);
12147 };
12148 });
12149 messageHandler.on("GetDoc", function (_ref12) {
12150 var pdfInfo = _ref12.pdfInfo;
12151 _this14._numPages = pdfInfo.numPages;
12152
12153 loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, _this14));
12154 });
12155 messageHandler.on("DocException", function (ex) {
12156 var reason;
12157
12158 switch (ex.name) {
12159 case "PasswordException":
12160 reason = new _util.PasswordException(ex.message, ex.code);
12161 break;
12162
12163 case "InvalidPDFException":
12164 reason = new _util.InvalidPDFException(ex.message);
12165 break;
12166
12167 case "MissingPDFException":
12168 reason = new _util.MissingPDFException(ex.message);
12169 break;
12170
12171 case "UnexpectedResponseException":
12172 reason = new _util.UnexpectedResponseException(ex.message, ex.status);
12173 break;
12174
12175 case "UnknownErrorException":
12176 reason = new _util.UnknownErrorException(ex.message, ex.details);
12177 break;
12178 }
12179
12180 loadingTask._capability.reject(reason);
12181 });
12182 messageHandler.on("PasswordRequest", function (exception) {
12183 _this14._passwordCapability = (0, _util.createPromiseCapability)();
12184
12185 if (loadingTask.onPassword) {
12186 var updatePassword = function updatePassword(password) {
12187 _this14._passwordCapability.resolve({
12188 password: password
12189 });
12190 };
12191
12192 try {
12193 loadingTask.onPassword(updatePassword, exception.code);
12194 } catch (ex) {
12195 _this14._passwordCapability.reject(ex);
12196 }
12197 } else {
12198 _this14._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
12199 }
12200
12201 return _this14._passwordCapability.promise;
12202 });
12203 messageHandler.on("DataLoaded", function (data) {
12204 if (loadingTask.onProgress) {
12205 loadingTask.onProgress({
12206 loaded: data.length,
12207 total: data.length
12208 });
12209 }
12210
12211 _this14.downloadInfoCapability.resolve(data);
12212 });
12213 messageHandler.on("StartRenderPage", function (data) {
12214 if (_this14.destroyed) {
12215 return;
12216 }
12217
12218 var page = _this14.pageCache[data.pageIndex];
12219
12220 page._startRenderPage(data.transparency, data.intent);
12221 });
12222 messageHandler.on("commonobj", function (data) {
12223 if (_this14.destroyed) {
12224 return;
12225 }
12226
12227 var _data = _slicedToArray(data, 3),
12228 id = _data[0],
12229 type = _data[1],
12230 exportedData = _data[2];
12231
12232 if (_this14.commonObjs.has(id)) {
12233 return;
12234 }
12235
12236 switch (type) {
12237 case "Font":
12238 var params = _this14._params;
12239
12240 if ("error" in exportedData) {
12241 var exportedError = exportedData.error;
12242 (0, _util.warn)("Error during font loading: ".concat(exportedError));
12243
12244 _this14.commonObjs.resolve(id, exportedError);
12245
12246 break;
12247 }
12248
12249 var fontRegistry = null;
12250
12251 if (params.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled) {
12252 fontRegistry = {
12253 registerFont: function registerFont(font, url) {
12254 globalThis.FontInspector.fontAdded(font, url);
12255 }
12256 };
12257 }
12258
12259 var font = new _font_loader.FontFaceObject(exportedData, {
12260 isEvalSupported: params.isEvalSupported,
12261 disableFontFace: params.disableFontFace,
12262 ignoreErrors: params.ignoreErrors,
12263 onUnsupportedFeature: _this14._onUnsupportedFeature.bind(_this14),
12264 fontRegistry: fontRegistry
12265 });
12266
12267 _this14.fontLoader.bind(font).then(function () {
12268 _this14.commonObjs.resolve(id, font);
12269 }, function (reason) {
12270 messageHandler.sendWithPromise("FontFallback", {
12271 id: id
12272 })["finally"](function () {
12273 _this14.commonObjs.resolve(id, font);
12274 });
12275 });
12276
12277 break;
12278
12279 case "FontPath":
12280 case "FontType3Res":
12281 _this14.commonObjs.resolve(id, exportedData);
12282
12283 break;
12284
12285 default:
12286 throw new Error("Got unknown common object type ".concat(type));
12287 }
12288 });
12289 messageHandler.on("obj", function (data) {
12290 if (_this14.destroyed) {
12291 return undefined;
12292 }
12293
12294 var _data2 = _slicedToArray(data, 4),
12295 id = _data2[0],
12296 pageIndex = _data2[1],
12297 type = _data2[2],
12298 imageData = _data2[3];
12299
12300 var pageProxy = _this14.pageCache[pageIndex];
12301
12302 if (pageProxy.objs.has(id)) {
12303 return undefined;
12304 }
12305
12306 switch (type) {
12307 case "JpegStream":
12308 return new Promise(function (resolve, reject) {
12309 var img = new Image();
12310
12311 img.onload = function () {
12312 resolve(img);
12313 };
12314
12315 img.onerror = function () {
12316 reject(new Error("Error during JPEG image loading"));
12317 (0, _display_utils.releaseImageResources)(img);
12318 };
12319
12320 img.src = imageData;
12321 }).then(function (img) {
12322 pageProxy.objs.resolve(id, img);
12323 });
12324
12325 case "Image":
12326 pageProxy.objs.resolve(id, imageData);
12327 var MAX_IMAGE_SIZE_TO_STORE = 8000000;
12328
12329 if (imageData && "data" in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
12330 pageProxy.cleanupAfterRender = true;
12331 }
12332
12333 break;
12334
12335 default:
12336 throw new Error("Got unknown object type ".concat(type));
12337 }
12338
12339 return undefined;
12340 });
12341 messageHandler.on("DocProgress", function (data) {
12342 if (_this14.destroyed) {
12343 return;
12344 }
12345
12346 if (loadingTask.onProgress) {
12347 loadingTask.onProgress({
12348 loaded: data.loaded,
12349 total: data.total
12350 });
12351 }
12352 });
12353 messageHandler.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this));
12354 messageHandler.on("JpegDecode", function (data) {
12355 if (_this14.destroyed) {
12356 return Promise.reject(new Error("Worker was destroyed"));
12357 }
12358
12359 if (typeof document === "undefined") {
12360 return Promise.reject(new Error('"document" is not defined.'));
12361 }
12362
12363 var _data3 = _slicedToArray(data, 2),
12364 imageUrl = _data3[0],
12365 components = _data3[1];
12366
12367 if (components !== 3 && components !== 1) {
12368 return Promise.reject(new Error("Only 3 components or 1 component can be returned"));
12369 }
12370
12371 return new Promise(function (resolve, reject) {
12372 var img = new Image();
12373
12374 img.onload = function () {
12375 var width = img.width,
12376 height = img.height;
12377 var size = width * height;
12378 var rgbaLength = size * 4;
12379 var buf = new Uint8ClampedArray(size * components);
12380 var tmpCanvas = document.createElement("canvas");
12381 tmpCanvas.width = width;
12382 tmpCanvas.height = height;
12383 var tmpCtx = tmpCanvas.getContext("2d");
12384 tmpCtx.drawImage(img, 0, 0);
12385 var data = tmpCtx.getImageData(0, 0, width, height).data;
12386
12387 if (components === 3) {
12388 for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
12389 buf[j] = data[i];
12390 buf[j + 1] = data[i + 1];
12391 buf[j + 2] = data[i + 2];
12392 }
12393 } else if (components === 1) {
12394 for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) {
12395 buf[_j] = data[_i2];
12396 }
12397 }
12398
12399 resolve({
12400 data: buf,
12401 width: width,
12402 height: height
12403 });
12404 (0, _display_utils.releaseImageResources)(img);
12405 tmpCanvas.width = 0;
12406 tmpCanvas.height = 0;
12407 tmpCanvas = null;
12408 tmpCtx = null;
12409 };
12410
12411 img.onerror = function () {
12412 reject(new Error("JpegDecode failed to load image"));
12413 (0, _display_utils.releaseImageResources)(img);
12414 };
12415
12416 img.src = imageUrl;
12417 });
12418 });
12419 messageHandler.on("FetchBuiltInCMap", function (data, sink) {
12420 if (_this14.destroyed) {
12421 sink.error(new Error("Worker was destroyed"));
12422 return;
12423 }
12424
12425 var fetched = false;
12426
12427 sink.onPull = function () {
12428 if (fetched) {
12429 sink.close();
12430 return;
12431 }
12432
12433 fetched = true;
12434
12435 _this14.CMapReaderFactory.fetch(data).then(function (builtInCMap) {
12436 sink.enqueue(builtInCMap, 1, [builtInCMap.cMapData.buffer]);
12437 })["catch"](function (reason) {
12438 sink.error(reason);
12439 });
12440 };
12441 });
12442 }
12443 }, {
12444 key: "_onUnsupportedFeature",
12445 value: function _onUnsupportedFeature(_ref13) {
12446 var featureId = _ref13.featureId;
12447
12448 if (this.destroyed) {
12449 return;
12450 }
12451
12452 if (this.loadingTask.onUnsupportedFeature) {
12453 this.loadingTask.onUnsupportedFeature(featureId);
12454 }
12455 }
12456 }, {
12457 key: "getData",
12458 value: function getData() {
12459 return this.messageHandler.sendWithPromise("GetData", null);
12460 }
12461 }, {
12462 key: "getPage",
12463 value: function getPage(pageNumber) {
12464 var _this15 = this;
12465
12466 if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {
12467 return Promise.reject(new Error("Invalid page request"));
12468 }
12469
12470 var pageIndex = pageNumber - 1;
12471
12472 if (pageIndex in this.pagePromises) {
12473 return this.pagePromises[pageIndex];
12474 }
12475
12476 var promise = this.messageHandler.sendWithPromise("GetPage", {
12477 pageIndex: pageIndex
12478 }).then(function (pageInfo) {
12479 if (_this15.destroyed) {
12480 throw new Error("Transport destroyed");
12481 }
12482
12483 var page = new PDFPageProxy(pageIndex, pageInfo, _this15, _this15._params.pdfBug);
12484 _this15.pageCache[pageIndex] = page;
12485 return page;
12486 });
12487 this.pagePromises[pageIndex] = promise;
12488 return promise;
12489 }
12490 }, {
12491 key: "getPageIndex",
12492 value: function getPageIndex(ref) {
12493 return this.messageHandler.sendWithPromise("GetPageIndex", {
12494 ref: ref
12495 })["catch"](function (reason) {
12496 return Promise.reject(new Error(reason));
12497 });
12498 }
12499 }, {
12500 key: "getAnnotations",
12501 value: function getAnnotations(pageIndex, intent) {
12502 return this.messageHandler.sendWithPromise("GetAnnotations", {
12503 pageIndex: pageIndex,
12504 intent: intent
12505 });
12506 }
12507 }, {
12508 key: "getDestinations",
12509 value: function getDestinations() {
12510 return this.messageHandler.sendWithPromise("GetDestinations", null);
12511 }
12512 }, {
12513 key: "getDestination",
12514 value: function getDestination(id) {
12515 if (typeof id !== "string") {
12516 return Promise.reject(new Error("Invalid destination request."));
12517 }
12518
12519 return this.messageHandler.sendWithPromise("GetDestination", {
12520 id: id
12521 });
12522 }
12523 }, {
12524 key: "getPageLabels",
12525 value: function getPageLabels() {
12526 return this.messageHandler.sendWithPromise("GetPageLabels", null);
12527 }
12528 }, {
12529 key: "getPageLayout",
12530 value: function getPageLayout() {
12531 return this.messageHandler.sendWithPromise("GetPageLayout", null);
12532 }
12533 }, {
12534 key: "getPageMode",
12535 value: function getPageMode() {
12536 return this.messageHandler.sendWithPromise("GetPageMode", null);
12537 }
12538 }, {
12539 key: "getViewerPreferences",
12540 value: function getViewerPreferences() {
12541 return this.messageHandler.sendWithPromise("GetViewerPreferences", null);
12542 }
12543 }, {
12544 key: "getOpenAction",
12545 value: function getOpenAction() {
12546 return this.messageHandler.sendWithPromise("GetOpenAction", null);
12547 }
12548 }, {
12549 key: "getAttachments",
12550 value: function getAttachments() {
12551 return this.messageHandler.sendWithPromise("GetAttachments", null);
12552 }
12553 }, {
12554 key: "getJavaScript",
12555 value: function getJavaScript() {
12556 return this.messageHandler.sendWithPromise("GetJavaScript", null);
12557 }
12558 }, {
12559 key: "getOutline",
12560 value: function getOutline() {
12561 return this.messageHandler.sendWithPromise("GetOutline", null);
12562 }
12563 }, {
12564 key: "getPermissions",
12565 value: function getPermissions() {
12566 return this.messageHandler.sendWithPromise("GetPermissions", null);
12567 }
12568 }, {
12569 key: "getMetadata",
12570 value: function getMetadata() {
12571 var _this16 = this;
12572
12573 return this.messageHandler.sendWithPromise("GetMetadata", null).then(function (results) {
12574 return {
12575 info: results[0],
12576 metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
12577 contentDispositionFilename: _this16._fullReader ? _this16._fullReader.filename : null
12578 };
12579 });
12580 }
12581 }, {
12582 key: "getStats",
12583 value: function getStats() {
12584 return this.messageHandler.sendWithPromise("GetStats", null);
12585 }
12586 }, {
12587 key: "startCleanup",
12588 value: function startCleanup() {
12589 var _this17 = this;
12590
12591 return this.messageHandler.sendWithPromise("Cleanup", null).then(function () {
12592 for (var i = 0, ii = _this17.pageCache.length; i < ii; i++) {
12593 var page = _this17.pageCache[i];
12594
12595 if (page) {
12596 var cleanupSuccessful = page.cleanup();
12597
12598 if (!cleanupSuccessful) {
12599 throw new Error("startCleanup: Page ".concat(i + 1, " is currently rendering."));
12600 }
12601 }
12602 }
12603
12604 _this17.commonObjs.clear();
12605
12606 _this17.fontLoader.clear();
12607 });
12608 }
12609 }, {
12610 key: "loadingParams",
12611 get: function get() {
12612 var params = this._params;
12613 return (0, _util.shadow)(this, "loadingParams", {
12614 disableAutoFetch: params.disableAutoFetch,
12615 disableCreateObjectURL: params.disableCreateObjectURL,
12616 disableFontFace: params.disableFontFace,
12617 nativeImageDecoderSupport: params.nativeImageDecoderSupport
12618 });
12619 }
12620 }]);
12621
12622 return WorkerTransport;
12623}();
12624
12625var PDFObjects = /*#__PURE__*/function () {
12626 function PDFObjects() {
12627 _classCallCheck(this, PDFObjects);
12628
12629 this._objs = Object.create(null);
12630 }
12631
12632 _createClass(PDFObjects, [{
12633 key: "_ensureObj",
12634 value: function _ensureObj(objId) {
12635 if (this._objs[objId]) {
12636 return this._objs[objId];
12637 }
12638
12639 return this._objs[objId] = {
12640 capability: (0, _util.createPromiseCapability)(),
12641 data: null,
12642 resolved: false
12643 };
12644 }
12645 }, {
12646 key: "get",
12647 value: function get(objId) {
12648 var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
12649
12650 if (callback) {
12651 this._ensureObj(objId).capability.promise.then(callback);
12652
12653 return null;
12654 }
12655
12656 var obj = this._objs[objId];
12657
12658 if (!obj || !obj.resolved) {
12659 throw new Error("Requesting object that isn't resolved yet ".concat(objId, "."));
12660 }
12661
12662 return obj.data;
12663 }
12664 }, {
12665 key: "has",
12666 value: function has(objId) {
12667 var obj = this._objs[objId];
12668 return obj ? obj.resolved : false;
12669 }
12670 }, {
12671 key: "resolve",
12672 value: function resolve(objId, data) {
12673 var obj = this._ensureObj(objId);
12674
12675 obj.resolved = true;
12676 obj.data = data;
12677 obj.capability.resolve(data);
12678 }
12679 }, {
12680 key: "clear",
12681 value: function clear() {
12682 for (var objId in this._objs) {
12683 var data = this._objs[objId].data;
12684
12685 if (typeof Image !== "undefined" && data instanceof Image) {
12686 (0, _display_utils.releaseImageResources)(data);
12687 }
12688 }
12689
12690 this._objs = Object.create(null);
12691 }
12692 }]);
12693
12694 return PDFObjects;
12695}();
12696
12697var RenderTask = /*#__PURE__*/function () {
12698 function RenderTask(internalRenderTask) {
12699 _classCallCheck(this, RenderTask);
12700
12701 this._internalRenderTask = internalRenderTask;
12702 this.onContinue = null;
12703 }
12704
12705 _createClass(RenderTask, [{
12706 key: "cancel",
12707 value: function cancel() {
12708 this._internalRenderTask.cancel();
12709 }
12710 }, {
12711 key: "then",
12712 value: function then(onFulfilled, onRejected) {
12713 throw new Error("Removed API method: " + "RenderTask.then, use the `promise` getter instead.");
12714 }
12715 }, {
12716 key: "promise",
12717 get: function get() {
12718 return this._internalRenderTask.capability.promise;
12719 }
12720 }]);
12721
12722 return RenderTask;
12723}();
12724
12725var InternalRenderTask = function InternalRenderTaskClosure() {
12726 var canvasInRendering = new WeakSet();
12727
12728 var InternalRenderTask = /*#__PURE__*/function () {
12729 function InternalRenderTask(_ref14) {
12730 var callback = _ref14.callback,
12731 params = _ref14.params,
12732 objs = _ref14.objs,
12733 commonObjs = _ref14.commonObjs,
12734 operatorList = _ref14.operatorList,
12735 pageIndex = _ref14.pageIndex,
12736 canvasFactory = _ref14.canvasFactory,
12737 webGLContext = _ref14.webGLContext,
12738 _ref14$useRequestAnim = _ref14.useRequestAnimationFrame,
12739 useRequestAnimationFrame = _ref14$useRequestAnim === void 0 ? false : _ref14$useRequestAnim,
12740 _ref14$pdfBug = _ref14.pdfBug,
12741 pdfBug = _ref14$pdfBug === void 0 ? false : _ref14$pdfBug;
12742
12743 _classCallCheck(this, InternalRenderTask);
12744
12745 this.callback = callback;
12746 this.params = params;
12747 this.objs = objs;
12748 this.commonObjs = commonObjs;
12749 this.operatorListIdx = null;
12750 this.operatorList = operatorList;
12751 this._pageIndex = pageIndex;
12752 this.canvasFactory = canvasFactory;
12753 this.webGLContext = webGLContext;
12754 this._pdfBug = pdfBug;
12755 this.running = false;
12756 this.graphicsReadyCallback = null;
12757 this.graphicsReady = false;
12758 this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== "undefined";
12759 this.cancelled = false;
12760 this.capability = (0, _util.createPromiseCapability)();
12761 this.task = new RenderTask(this);
12762 this._continueBound = this._continue.bind(this);
12763 this._scheduleNextBound = this._scheduleNext.bind(this);
12764 this._nextBound = this._next.bind(this);
12765 this._canvas = params.canvasContext.canvas;
12766 }
12767
12768 _createClass(InternalRenderTask, [{
12769 key: "initializeGraphics",
12770 value: function initializeGraphics() {
12771 var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
12772
12773 if (this.cancelled) {
12774 return;
12775 }
12776
12777 if (this._canvas) {
12778 if (canvasInRendering.has(this._canvas)) {
12779 throw new Error("Cannot use the same canvas during multiple render() operations. " + "Use different canvas or ensure previous operations were " + "cancelled or completed.");
12780 }
12781
12782 canvasInRendering.add(this._canvas);
12783 }
12784
12785 if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) {
12786 this.stepper = globalThis.StepperManager.create(this._pageIndex);
12787 this.stepper.init(this.operatorList);
12788 this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
12789 }
12790
12791 var _this$params = this.params,
12792 canvasContext = _this$params.canvasContext,
12793 viewport = _this$params.viewport,
12794 transform = _this$params.transform,
12795 imageLayer = _this$params.imageLayer,
12796 background = _this$params.background;
12797 this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);
12798 this.gfx.beginDrawing({
12799 transform: transform,
12800 viewport: viewport,
12801 transparency: transparency,
12802 background: background
12803 });
12804 this.operatorListIdx = 0;
12805 this.graphicsReady = true;
12806
12807 if (this.graphicsReadyCallback) {
12808 this.graphicsReadyCallback();
12809 }
12810 }
12811 }, {
12812 key: "cancel",
12813 value: function cancel() {
12814 var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
12815 this.running = false;
12816 this.cancelled = true;
12817
12818 if (this.gfx) {
12819 this.gfx.endDrawing();
12820 }
12821
12822 if (this._canvas) {
12823 canvasInRendering["delete"](this._canvas);
12824 }
12825
12826 this.callback(error || new _display_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this._pageIndex + 1), "canvas"));
12827 }
12828 }, {
12829 key: "operatorListChanged",
12830 value: function operatorListChanged() {
12831 if (!this.graphicsReady) {
12832 if (!this.graphicsReadyCallback) {
12833 this.graphicsReadyCallback = this._continueBound;
12834 }
12835
12836 return;
12837 }
12838
12839 if (this.stepper) {
12840 this.stepper.updateOperatorList(this.operatorList);
12841 }
12842
12843 if (this.running) {
12844 return;
12845 }
12846
12847 this._continue();
12848 }
12849 }, {
12850 key: "_continue",
12851 value: function _continue() {
12852 this.running = true;
12853
12854 if (this.cancelled) {
12855 return;
12856 }
12857
12858 if (this.task.onContinue) {
12859 this.task.onContinue(this._scheduleNextBound);
12860 } else {
12861 this._scheduleNext();
12862 }
12863 }
12864 }, {
12865 key: "_scheduleNext",
12866 value: function _scheduleNext() {
12867 var _this18 = this;
12868
12869 if (this._useRequestAnimationFrame) {
12870 window.requestAnimationFrame(function () {
12871 _this18._nextBound()["catch"](_this18.cancel.bind(_this18));
12872 });
12873 } else {
12874 Promise.resolve().then(this._nextBound)["catch"](this.cancel.bind(this));
12875 }
12876 }
12877 }, {
12878 key: "_next",
12879 value: function () {
12880 var _next2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
12881 return _regenerator["default"].wrap(function _callee2$(_context2) {
12882 while (1) {
12883 switch (_context2.prev = _context2.next) {
12884 case 0:
12885 if (!this.cancelled) {
12886 _context2.next = 2;
12887 break;
12888 }
12889
12890 return _context2.abrupt("return");
12891
12892 case 2:
12893 this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
12894
12895 if (this.operatorListIdx === this.operatorList.argsArray.length) {
12896 this.running = false;
12897
12898 if (this.operatorList.lastChunk) {
12899 this.gfx.endDrawing();
12900
12901 if (this._canvas) {
12902 canvasInRendering["delete"](this._canvas);
12903 }
12904
12905 this.callback();
12906 }
12907 }
12908
12909 case 4:
12910 case "end":
12911 return _context2.stop();
12912 }
12913 }
12914 }, _callee2, this);
12915 }));
12916
12917 function _next() {
12918 return _next2.apply(this, arguments);
12919 }
12920
12921 return _next;
12922 }()
12923 }]);
12924
12925 return InternalRenderTask;
12926 }();
12927
12928 return InternalRenderTask;
12929}();
12930
12931var version = '2.4.456';
12932exports.version = version;
12933var build = '228a591c';
12934exports.build = build;
12935
12936/***/ }),
12937/* 191 */
12938/***/ (function(module, exports, __w_pdfjs_require__) {
12939
12940"use strict";
12941
12942
12943module.exports = __w_pdfjs_require__(192);
12944
12945/***/ }),
12946/* 192 */
12947/***/ (function(module, exports, __w_pdfjs_require__) {
12948
12949"use strict";
12950/* WEBPACK VAR INJECTION */(function(module) {
12951
12952function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
12953
12954var runtime = function (exports) {
12955 "use strict";
12956
12957 var Op = Object.prototype;
12958 var hasOwn = Op.hasOwnProperty;
12959 var undefined;
12960 var $Symbol = typeof Symbol === "function" ? Symbol : {};
12961 var iteratorSymbol = $Symbol.iterator || "@@iterator";
12962 var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
12963 var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
12964
12965 function wrap(innerFn, outerFn, self, tryLocsList) {
12966 var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
12967 var generator = Object.create(protoGenerator.prototype);
12968 var context = new Context(tryLocsList || []);
12969 generator._invoke = makeInvokeMethod(innerFn, self, context);
12970 return generator;
12971 }
12972
12973 exports.wrap = wrap;
12974
12975 function tryCatch(fn, obj, arg) {
12976 try {
12977 return {
12978 type: "normal",
12979 arg: fn.call(obj, arg)
12980 };
12981 } catch (err) {
12982 return {
12983 type: "throw",
12984 arg: err
12985 };
12986 }
12987 }
12988
12989 var GenStateSuspendedStart = "suspendedStart";
12990 var GenStateSuspendedYield = "suspendedYield";
12991 var GenStateExecuting = "executing";
12992 var GenStateCompleted = "completed";
12993 var ContinueSentinel = {};
12994
12995 function Generator() {}
12996
12997 function GeneratorFunction() {}
12998
12999 function GeneratorFunctionPrototype() {}
13000
13001 var IteratorPrototype = {};
13002
13003 IteratorPrototype[iteratorSymbol] = function () {
13004 return this;
13005 };
13006
13007 var getProto = Object.getPrototypeOf;
13008 var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
13009
13010 if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
13011 IteratorPrototype = NativeIteratorPrototype;
13012 }
13013
13014 var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
13015 GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
13016 GeneratorFunctionPrototype.constructor = GeneratorFunction;
13017 GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction";
13018
13019 function defineIteratorMethods(prototype) {
13020 ["next", "throw", "return"].forEach(function (method) {
13021 prototype[method] = function (arg) {
13022 return this._invoke(method, arg);
13023 };
13024 });
13025 }
13026
13027 exports.isGeneratorFunction = function (genFun) {
13028 var ctor = typeof genFun === "function" && genFun.constructor;
13029 return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
13030 };
13031
13032 exports.mark = function (genFun) {
13033 if (Object.setPrototypeOf) {
13034 Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
13035 } else {
13036 genFun.__proto__ = GeneratorFunctionPrototype;
13037
13038 if (!(toStringTagSymbol in genFun)) {
13039 genFun[toStringTagSymbol] = "GeneratorFunction";
13040 }
13041 }
13042
13043 genFun.prototype = Object.create(Gp);
13044 return genFun;
13045 };
13046
13047 exports.awrap = function (arg) {
13048 return {
13049 __await: arg
13050 };
13051 };
13052
13053 function AsyncIterator(generator, PromiseImpl) {
13054 function invoke(method, arg, resolve, reject) {
13055 var record = tryCatch(generator[method], generator, arg);
13056
13057 if (record.type === "throw") {
13058 reject(record.arg);
13059 } else {
13060 var result = record.arg;
13061 var value = result.value;
13062
13063 if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) {
13064 return PromiseImpl.resolve(value.__await).then(function (value) {
13065 invoke("next", value, resolve, reject);
13066 }, function (err) {
13067 invoke("throw", err, resolve, reject);
13068 });
13069 }
13070
13071 return PromiseImpl.resolve(value).then(function (unwrapped) {
13072 result.value = unwrapped;
13073 resolve(result);
13074 }, function (error) {
13075 return invoke("throw", error, resolve, reject);
13076 });
13077 }
13078 }
13079
13080 var previousPromise;
13081
13082 function enqueue(method, arg) {
13083 function callInvokeWithMethodAndArg() {
13084 return new PromiseImpl(function (resolve, reject) {
13085 invoke(method, arg, resolve, reject);
13086 });
13087 }
13088
13089 return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
13090 }
13091
13092 this._invoke = enqueue;
13093 }
13094
13095 defineIteratorMethods(AsyncIterator.prototype);
13096
13097 AsyncIterator.prototype[asyncIteratorSymbol] = function () {
13098 return this;
13099 };
13100
13101 exports.AsyncIterator = AsyncIterator;
13102
13103 exports.async = function (innerFn, outerFn, self, tryLocsList, PromiseImpl) {
13104 if (PromiseImpl === void 0) PromiseImpl = Promise;
13105 var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList), PromiseImpl);
13106 return exports.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
13107 return result.done ? result.value : iter.next();
13108 });
13109 };
13110
13111 function makeInvokeMethod(innerFn, self, context) {
13112 var state = GenStateSuspendedStart;
13113 return function invoke(method, arg) {
13114 if (state === GenStateExecuting) {
13115 throw new Error("Generator is already running");
13116 }
13117
13118 if (state === GenStateCompleted) {
13119 if (method === "throw") {
13120 throw arg;
13121 }
13122
13123 return doneResult();
13124 }
13125
13126 context.method = method;
13127 context.arg = arg;
13128
13129 while (true) {
13130 var delegate = context.delegate;
13131
13132 if (delegate) {
13133 var delegateResult = maybeInvokeDelegate(delegate, context);
13134
13135 if (delegateResult) {
13136 if (delegateResult === ContinueSentinel) continue;
13137 return delegateResult;
13138 }
13139 }
13140
13141 if (context.method === "next") {
13142 context.sent = context._sent = context.arg;
13143 } else if (context.method === "throw") {
13144 if (state === GenStateSuspendedStart) {
13145 state = GenStateCompleted;
13146 throw context.arg;
13147 }
13148
13149 context.dispatchException(context.arg);
13150 } else if (context.method === "return") {
13151 context.abrupt("return", context.arg);
13152 }
13153
13154 state = GenStateExecuting;
13155 var record = tryCatch(innerFn, self, context);
13156
13157 if (record.type === "normal") {
13158 state = context.done ? GenStateCompleted : GenStateSuspendedYield;
13159
13160 if (record.arg === ContinueSentinel) {
13161 continue;
13162 }
13163
13164 return {
13165 value: record.arg,
13166 done: context.done
13167 };
13168 } else if (record.type === "throw") {
13169 state = GenStateCompleted;
13170 context.method = "throw";
13171 context.arg = record.arg;
13172 }
13173 }
13174 };
13175 }
13176
13177 function maybeInvokeDelegate(delegate, context) {
13178 var method = delegate.iterator[context.method];
13179
13180 if (method === undefined) {
13181 context.delegate = null;
13182
13183 if (context.method === "throw") {
13184 if (delegate.iterator["return"]) {
13185 context.method = "return";
13186 context.arg = undefined;
13187 maybeInvokeDelegate(delegate, context);
13188
13189 if (context.method === "throw") {
13190 return ContinueSentinel;
13191 }
13192 }
13193
13194 context.method = "throw";
13195 context.arg = new TypeError("The iterator does not provide a 'throw' method");
13196 }
13197
13198 return ContinueSentinel;
13199 }
13200
13201 var record = tryCatch(method, delegate.iterator, context.arg);
13202
13203 if (record.type === "throw") {
13204 context.method = "throw";
13205 context.arg = record.arg;
13206 context.delegate = null;
13207 return ContinueSentinel;
13208 }
13209
13210 var info = record.arg;
13211
13212 if (!info) {
13213 context.method = "throw";
13214 context.arg = new TypeError("iterator result is not an object");
13215 context.delegate = null;
13216 return ContinueSentinel;
13217 }
13218
13219 if (info.done) {
13220 context[delegate.resultName] = info.value;
13221 context.next = delegate.nextLoc;
13222
13223 if (context.method !== "return") {
13224 context.method = "next";
13225 context.arg = undefined;
13226 }
13227 } else {
13228 return info;
13229 }
13230
13231 context.delegate = null;
13232 return ContinueSentinel;
13233 }
13234
13235 defineIteratorMethods(Gp);
13236 Gp[toStringTagSymbol] = "Generator";
13237
13238 Gp[iteratorSymbol] = function () {
13239 return this;
13240 };
13241
13242 Gp.toString = function () {
13243 return "[object Generator]";
13244 };
13245
13246 function pushTryEntry(locs) {
13247 var entry = {
13248 tryLoc: locs[0]
13249 };
13250
13251 if (1 in locs) {
13252 entry.catchLoc = locs[1];
13253 }
13254
13255 if (2 in locs) {
13256 entry.finallyLoc = locs[2];
13257 entry.afterLoc = locs[3];
13258 }
13259
13260 this.tryEntries.push(entry);
13261 }
13262
13263 function resetTryEntry(entry) {
13264 var record = entry.completion || {};
13265 record.type = "normal";
13266 delete record.arg;
13267 entry.completion = record;
13268 }
13269
13270 function Context(tryLocsList) {
13271 this.tryEntries = [{
13272 tryLoc: "root"
13273 }];
13274 tryLocsList.forEach(pushTryEntry, this);
13275 this.reset(true);
13276 }
13277
13278 exports.keys = function (object) {
13279 var keys = [];
13280
13281 for (var key in object) {
13282 keys.push(key);
13283 }
13284
13285 keys.reverse();
13286 return function next() {
13287 while (keys.length) {
13288 var key = keys.pop();
13289
13290 if (key in object) {
13291 next.value = key;
13292 next.done = false;
13293 return next;
13294 }
13295 }
13296
13297 next.done = true;
13298 return next;
13299 };
13300 };
13301
13302 function values(iterable) {
13303 if (iterable) {
13304 var iteratorMethod = iterable[iteratorSymbol];
13305
13306 if (iteratorMethod) {
13307 return iteratorMethod.call(iterable);
13308 }
13309
13310 if (typeof iterable.next === "function") {
13311 return iterable;
13312 }
13313
13314 if (!isNaN(iterable.length)) {
13315 var i = -1,
13316 next = function next() {
13317 while (++i < iterable.length) {
13318 if (hasOwn.call(iterable, i)) {
13319 next.value = iterable[i];
13320 next.done = false;
13321 return next;
13322 }
13323 }
13324
13325 next.value = undefined;
13326 next.done = true;
13327 return next;
13328 };
13329
13330 return next.next = next;
13331 }
13332 }
13333
13334 return {
13335 next: doneResult
13336 };
13337 }
13338
13339 exports.values = values;
13340
13341 function doneResult() {
13342 return {
13343 value: undefined,
13344 done: true
13345 };
13346 }
13347
13348 Context.prototype = {
13349 constructor: Context,
13350 reset: function reset(skipTempReset) {
13351 this.prev = 0;
13352 this.next = 0;
13353 this.sent = this._sent = undefined;
13354 this.done = false;
13355 this.delegate = null;
13356 this.method = "next";
13357 this.arg = undefined;
13358 this.tryEntries.forEach(resetTryEntry);
13359
13360 if (!skipTempReset) {
13361 for (var name in this) {
13362 if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {
13363 this[name] = undefined;
13364 }
13365 }
13366 }
13367 },
13368 stop: function stop() {
13369 this.done = true;
13370 var rootEntry = this.tryEntries[0];
13371 var rootRecord = rootEntry.completion;
13372
13373 if (rootRecord.type === "throw") {
13374 throw rootRecord.arg;
13375 }
13376
13377 return this.rval;
13378 },
13379 dispatchException: function dispatchException(exception) {
13380 if (this.done) {
13381 throw exception;
13382 }
13383
13384 var context = this;
13385
13386 function handle(loc, caught) {
13387 record.type = "throw";
13388 record.arg = exception;
13389 context.next = loc;
13390
13391 if (caught) {
13392 context.method = "next";
13393 context.arg = undefined;
13394 }
13395
13396 return !!caught;
13397 }
13398
13399 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
13400 var entry = this.tryEntries[i];
13401 var record = entry.completion;
13402
13403 if (entry.tryLoc === "root") {
13404 return handle("end");
13405 }
13406
13407 if (entry.tryLoc <= this.prev) {
13408 var hasCatch = hasOwn.call(entry, "catchLoc");
13409 var hasFinally = hasOwn.call(entry, "finallyLoc");
13410
13411 if (hasCatch && hasFinally) {
13412 if (this.prev < entry.catchLoc) {
13413 return handle(entry.catchLoc, true);
13414 } else if (this.prev < entry.finallyLoc) {
13415 return handle(entry.finallyLoc);
13416 }
13417 } else if (hasCatch) {
13418 if (this.prev < entry.catchLoc) {
13419 return handle(entry.catchLoc, true);
13420 }
13421 } else if (hasFinally) {
13422 if (this.prev < entry.finallyLoc) {
13423 return handle(entry.finallyLoc);
13424 }
13425 } else {
13426 throw new Error("try statement without catch or finally");
13427 }
13428 }
13429 }
13430 },
13431 abrupt: function abrupt(type, arg) {
13432 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
13433 var entry = this.tryEntries[i];
13434
13435 if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
13436 var finallyEntry = entry;
13437 break;
13438 }
13439 }
13440
13441 if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
13442 finallyEntry = null;
13443 }
13444
13445 var record = finallyEntry ? finallyEntry.completion : {};
13446 record.type = type;
13447 record.arg = arg;
13448
13449 if (finallyEntry) {
13450 this.method = "next";
13451 this.next = finallyEntry.finallyLoc;
13452 return ContinueSentinel;
13453 }
13454
13455 return this.complete(record);
13456 },
13457 complete: function complete(record, afterLoc) {
13458 if (record.type === "throw") {
13459 throw record.arg;
13460 }
13461
13462 if (record.type === "break" || record.type === "continue") {
13463 this.next = record.arg;
13464 } else if (record.type === "return") {
13465 this.rval = this.arg = record.arg;
13466 this.method = "return";
13467 this.next = "end";
13468 } else if (record.type === "normal" && afterLoc) {
13469 this.next = afterLoc;
13470 }
13471
13472 return ContinueSentinel;
13473 },
13474 finish: function finish(finallyLoc) {
13475 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
13476 var entry = this.tryEntries[i];
13477
13478 if (entry.finallyLoc === finallyLoc) {
13479 this.complete(entry.completion, entry.afterLoc);
13480 resetTryEntry(entry);
13481 return ContinueSentinel;
13482 }
13483 }
13484 },
13485 "catch": function _catch(tryLoc) {
13486 for (var i = this.tryEntries.length - 1; i >= 0; --i) {
13487 var entry = this.tryEntries[i];
13488
13489 if (entry.tryLoc === tryLoc) {
13490 var record = entry.completion;
13491
13492 if (record.type === "throw") {
13493 var thrown = record.arg;
13494 resetTryEntry(entry);
13495 }
13496
13497 return thrown;
13498 }
13499 }
13500
13501 throw new Error("illegal catch attempt");
13502 },
13503 delegateYield: function delegateYield(iterable, resultName, nextLoc) {
13504 this.delegate = {
13505 iterator: values(iterable),
13506 resultName: resultName,
13507 nextLoc: nextLoc
13508 };
13509
13510 if (this.method === "next") {
13511 this.arg = undefined;
13512 }
13513
13514 return ContinueSentinel;
13515 }
13516 };
13517 return exports;
13518}(( false ? undefined : _typeof(module)) === "object" ? module.exports : {});
13519
13520try {
13521 regeneratorRuntime = runtime;
13522} catch (accidentalStrictMode) {
13523 Function("r", "regeneratorRuntime = r")(runtime);
13524}
13525/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(193)(module)))
13526
13527/***/ }),
13528/* 193 */
13529/***/ (function(module, exports, __w_pdfjs_require__) {
13530
13531"use strict";
13532
13533
13534module.exports = function (module) {
13535 if (!module.webpackPolyfill) {
13536 module.deprecate = function () {};
13537
13538 module.paths = [];
13539 if (!module.children) module.children = [];
13540 Object.defineProperty(module, "loaded", {
13541 enumerable: true,
13542 get: function get() {
13543 return module.l;
13544 }
13545 });
13546 Object.defineProperty(module, "id", {
13547 enumerable: true,
13548 get: function get() {
13549 return module.i;
13550 }
13551 });
13552 module.webpackPolyfill = 1;
13553 }
13554
13555 return module;
13556};
13557
13558/***/ }),
13559/* 194 */
13560/***/ (function(module, exports, __w_pdfjs_require__) {
13561
13562"use strict";
13563
13564
13565Object.defineProperty(exports, "__esModule", {
13566 value: true
13567});
13568exports.addLinkAttributes = addLinkAttributes;
13569exports.getFilenameFromUrl = getFilenameFromUrl;
13570exports.isFetchSupported = isFetchSupported;
13571exports.isValidFetchUrl = isValidFetchUrl;
13572exports.loadScript = loadScript;
13573exports.deprecated = deprecated;
13574exports.releaseImageResources = releaseImageResources;
13575exports.PDFDateString = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;
13576
13577var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
13578
13579var _util = __w_pdfjs_require__(1);
13580
13581function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
13582
13583function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13584
13585function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
13586
13587function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13588
13589function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13590
13591function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
13592
13593function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13594
13595function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
13596
13597function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
13598
13599function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13600
13601function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
13602
13603function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
13604
13605var DEFAULT_LINK_REL = "noopener noreferrer nofollow";
13606exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
13607var SVG_NS = "http://www.w3.org/2000/svg";
13608
13609var DOMCanvasFactory = /*#__PURE__*/function () {
13610 function DOMCanvasFactory() {
13611 _classCallCheck(this, DOMCanvasFactory);
13612 }
13613
13614 _createClass(DOMCanvasFactory, [{
13615 key: "create",
13616 value: function create(width, height) {
13617 if (width <= 0 || height <= 0) {
13618 throw new Error("Invalid canvas size");
13619 }
13620
13621 var canvas = document.createElement("canvas");
13622 var context = canvas.getContext("2d");
13623 canvas.width = width;
13624 canvas.height = height;
13625 return {
13626 canvas: canvas,
13627 context: context
13628 };
13629 }
13630 }, {
13631 key: "reset",
13632 value: function reset(canvasAndContext, width, height) {
13633 if (!canvasAndContext.canvas) {
13634 throw new Error("Canvas is not specified");
13635 }
13636
13637 if (width <= 0 || height <= 0) {
13638 throw new Error("Invalid canvas size");
13639 }
13640
13641 canvasAndContext.canvas.width = width;
13642 canvasAndContext.canvas.height = height;
13643 }
13644 }, {
13645 key: "destroy",
13646 value: function destroy(canvasAndContext) {
13647 if (!canvasAndContext.canvas) {
13648 throw new Error("Canvas is not specified");
13649 }
13650
13651 canvasAndContext.canvas.width = 0;
13652 canvasAndContext.canvas.height = 0;
13653 canvasAndContext.canvas = null;
13654 canvasAndContext.context = null;
13655 }
13656 }]);
13657
13658 return DOMCanvasFactory;
13659}();
13660
13661exports.DOMCanvasFactory = DOMCanvasFactory;
13662
13663var DOMCMapReaderFactory = /*#__PURE__*/function () {
13664 function DOMCMapReaderFactory(_ref) {
13665 var _ref$baseUrl = _ref.baseUrl,
13666 baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,
13667 _ref$isCompressed = _ref.isCompressed,
13668 isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;
13669
13670 _classCallCheck(this, DOMCMapReaderFactory);
13671
13672 this.baseUrl = baseUrl;
13673 this.isCompressed = isCompressed;
13674 }
13675
13676 _createClass(DOMCMapReaderFactory, [{
13677 key: "fetch",
13678 value: function (_fetch) {
13679 function fetch(_x) {
13680 return _fetch.apply(this, arguments);
13681 }
13682
13683 fetch.toString = function () {
13684 return _fetch.toString();
13685 };
13686
13687 return fetch;
13688 }( /*#__PURE__*/function () {
13689 var _ref2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2(_ref3) {
13690 var _this = this;
13691
13692 var name, url, compressionType;
13693 return _regenerator["default"].wrap(function _callee2$(_context2) {
13694 while (1) {
13695 switch (_context2.prev = _context2.next) {
13696 case 0:
13697 name = _ref3.name;
13698
13699 if (this.baseUrl) {
13700 _context2.next = 3;
13701 break;
13702 }
13703
13704 throw new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.');
13705
13706 case 3:
13707 if (name) {
13708 _context2.next = 5;
13709 break;
13710 }
13711
13712 throw new Error("CMap name must be specified.");
13713
13714 case 5:
13715 url = this.baseUrl + name + (this.isCompressed ? ".bcmap" : "");
13716 compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;
13717
13718 if (!(isFetchSupported() && isValidFetchUrl(url, document.baseURI))) {
13719 _context2.next = 9;
13720 break;
13721 }
13722
13723 return _context2.abrupt("return", fetch(url).then( /*#__PURE__*/function () {
13724 var _ref4 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(response) {
13725 var cMapData;
13726 return _regenerator["default"].wrap(function _callee$(_context) {
13727 while (1) {
13728 switch (_context.prev = _context.next) {
13729 case 0:
13730 if (response.ok) {
13731 _context.next = 2;
13732 break;
13733 }
13734
13735 throw new Error(response.statusText);
13736
13737 case 2:
13738 if (!_this.isCompressed) {
13739 _context.next = 10;
13740 break;
13741 }
13742
13743 _context.t0 = Uint8Array;
13744 _context.next = 6;
13745 return response.arrayBuffer();
13746
13747 case 6:
13748 _context.t1 = _context.sent;
13749 cMapData = new _context.t0(_context.t1);
13750 _context.next = 15;
13751 break;
13752
13753 case 10:
13754 _context.t2 = _util.stringToBytes;
13755 _context.next = 13;
13756 return response.text();
13757
13758 case 13:
13759 _context.t3 = _context.sent;
13760 cMapData = (0, _context.t2)(_context.t3);
13761
13762 case 15:
13763 return _context.abrupt("return", {
13764 cMapData: cMapData,
13765 compressionType: compressionType
13766 });
13767
13768 case 16:
13769 case "end":
13770 return _context.stop();
13771 }
13772 }
13773 }, _callee);
13774 }));
13775
13776 return function (_x3) {
13777 return _ref4.apply(this, arguments);
13778 };
13779 }())["catch"](function (reason) {
13780 throw new Error("Unable to load ".concat(_this.isCompressed ? "binary " : "") + "CMap at: ".concat(url));
13781 }));
13782
13783 case 9:
13784 return _context2.abrupt("return", new Promise(function (resolve, reject) {
13785 var request = new XMLHttpRequest();
13786 request.open("GET", url, true);
13787
13788 if (_this.isCompressed) {
13789 request.responseType = "arraybuffer";
13790 }
13791
13792 request.onreadystatechange = function () {
13793 if (request.readyState !== XMLHttpRequest.DONE) {
13794 return;
13795 }
13796
13797 if (request.status === 200 || request.status === 0) {
13798 var cMapData;
13799
13800 if (_this.isCompressed && request.response) {
13801 cMapData = new Uint8Array(request.response);
13802 } else if (!_this.isCompressed && request.responseText) {
13803 cMapData = (0, _util.stringToBytes)(request.responseText);
13804 }
13805
13806 if (cMapData) {
13807 resolve({
13808 cMapData: cMapData,
13809 compressionType: compressionType
13810 });
13811 return;
13812 }
13813 }
13814
13815 reject(new Error(request.statusText));
13816 };
13817
13818 request.send(null);
13819 })["catch"](function (reason) {
13820 throw new Error("Unable to load ".concat(_this.isCompressed ? "binary " : "") + "CMap at: ".concat(url));
13821 }));
13822
13823 case 10:
13824 case "end":
13825 return _context2.stop();
13826 }
13827 }
13828 }, _callee2, this);
13829 }));
13830
13831 return function (_x2) {
13832 return _ref2.apply(this, arguments);
13833 };
13834 }())
13835 }]);
13836
13837 return DOMCMapReaderFactory;
13838}();
13839
13840exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
13841
13842var DOMSVGFactory = /*#__PURE__*/function () {
13843 function DOMSVGFactory() {
13844 _classCallCheck(this, DOMSVGFactory);
13845 }
13846
13847 _createClass(DOMSVGFactory, [{
13848 key: "create",
13849 value: function create(width, height) {
13850 (0, _util.assert)(width > 0 && height > 0, "Invalid SVG dimensions");
13851 var svg = document.createElementNS(SVG_NS, "svg:svg");
13852 svg.setAttribute("version", "1.1");
13853 svg.setAttribute("width", width + "px");
13854 svg.setAttribute("height", height + "px");
13855 svg.setAttribute("preserveAspectRatio", "none");
13856 svg.setAttribute("viewBox", "0 0 " + width + " " + height);
13857 return svg;
13858 }
13859 }, {
13860 key: "createElement",
13861 value: function createElement(type) {
13862 (0, _util.assert)(typeof type === "string", "Invalid SVG element type");
13863 return document.createElementNS(SVG_NS, type);
13864 }
13865 }]);
13866
13867 return DOMSVGFactory;
13868}();
13869
13870exports.DOMSVGFactory = DOMSVGFactory;
13871
13872var PageViewport = /*#__PURE__*/function () {
13873 function PageViewport(_ref5) {
13874 var viewBox = _ref5.viewBox,
13875 scale = _ref5.scale,
13876 rotation = _ref5.rotation,
13877 _ref5$offsetX = _ref5.offsetX,
13878 offsetX = _ref5$offsetX === void 0 ? 0 : _ref5$offsetX,
13879 _ref5$offsetY = _ref5.offsetY,
13880 offsetY = _ref5$offsetY === void 0 ? 0 : _ref5$offsetY,
13881 _ref5$dontFlip = _ref5.dontFlip,
13882 dontFlip = _ref5$dontFlip === void 0 ? false : _ref5$dontFlip;
13883
13884 _classCallCheck(this, PageViewport);
13885
13886 this.viewBox = viewBox;
13887 this.scale = scale;
13888 this.rotation = rotation;
13889 this.offsetX = offsetX;
13890 this.offsetY = offsetY;
13891 var centerX = (viewBox[2] + viewBox[0]) / 2;
13892 var centerY = (viewBox[3] + viewBox[1]) / 2;
13893 var rotateA, rotateB, rotateC, rotateD;
13894 rotation = rotation % 360;
13895 rotation = rotation < 0 ? rotation + 360 : rotation;
13896
13897 switch (rotation) {
13898 case 180:
13899 rotateA = -1;
13900 rotateB = 0;
13901 rotateC = 0;
13902 rotateD = 1;
13903 break;
13904
13905 case 90:
13906 rotateA = 0;
13907 rotateB = 1;
13908 rotateC = 1;
13909 rotateD = 0;
13910 break;
13911
13912 case 270:
13913 rotateA = 0;
13914 rotateB = -1;
13915 rotateC = -1;
13916 rotateD = 0;
13917 break;
13918
13919 default:
13920 rotateA = 1;
13921 rotateB = 0;
13922 rotateC = 0;
13923 rotateD = -1;
13924 break;
13925 }
13926
13927 if (dontFlip) {
13928 rotateC = -rotateC;
13929 rotateD = -rotateD;
13930 }
13931
13932 var offsetCanvasX, offsetCanvasY;
13933 var width, height;
13934
13935 if (rotateA === 0) {
13936 offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
13937 offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
13938 width = Math.abs(viewBox[3] - viewBox[1]) * scale;
13939 height = Math.abs(viewBox[2] - viewBox[0]) * scale;
13940 } else {
13941 offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
13942 offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
13943 width = Math.abs(viewBox[2] - viewBox[0]) * scale;
13944 height = Math.abs(viewBox[3] - viewBox[1]) * scale;
13945 }
13946
13947 this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];
13948 this.width = width;
13949 this.height = height;
13950 }
13951
13952 _createClass(PageViewport, [{
13953 key: "clone",
13954 value: function clone() {
13955 var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
13956 _ref6$scale = _ref6.scale,
13957 scale = _ref6$scale === void 0 ? this.scale : _ref6$scale,
13958 _ref6$rotation = _ref6.rotation,
13959 rotation = _ref6$rotation === void 0 ? this.rotation : _ref6$rotation,
13960 _ref6$offsetX = _ref6.offsetX,
13961 offsetX = _ref6$offsetX === void 0 ? this.offsetX : _ref6$offsetX,
13962 _ref6$offsetY = _ref6.offsetY,
13963 offsetY = _ref6$offsetY === void 0 ? this.offsetY : _ref6$offsetY,
13964 _ref6$dontFlip = _ref6.dontFlip,
13965 dontFlip = _ref6$dontFlip === void 0 ? false : _ref6$dontFlip;
13966
13967 return new PageViewport({
13968 viewBox: this.viewBox.slice(),
13969 scale: scale,
13970 rotation: rotation,
13971 offsetX: offsetX,
13972 offsetY: offsetY,
13973 dontFlip: dontFlip
13974 });
13975 }
13976 }, {
13977 key: "convertToViewportPoint",
13978 value: function convertToViewportPoint(x, y) {
13979 return _util.Util.applyTransform([x, y], this.transform);
13980 }
13981 }, {
13982 key: "convertToViewportRectangle",
13983 value: function convertToViewportRectangle(rect) {
13984 var topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
13985
13986 var bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
13987
13988 return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];
13989 }
13990 }, {
13991 key: "convertToPdfPoint",
13992 value: function convertToPdfPoint(x, y) {
13993 return _util.Util.applyInverseTransform([x, y], this.transform);
13994 }
13995 }]);
13996
13997 return PageViewport;
13998}();
13999
14000exports.PageViewport = PageViewport;
14001
14002var RenderingCancelledException = /*#__PURE__*/function (_BaseException) {
14003 _inherits(RenderingCancelledException, _BaseException);
14004
14005 function RenderingCancelledException(msg, type) {
14006 var _this2;
14007
14008 _classCallCheck(this, RenderingCancelledException);
14009
14010 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(RenderingCancelledException).call(this, msg));
14011 _this2.type = type;
14012 return _this2;
14013 }
14014
14015 return RenderingCancelledException;
14016}(_util.BaseException);
14017
14018exports.RenderingCancelledException = RenderingCancelledException;
14019var LinkTarget = {
14020 NONE: 0,
14021 SELF: 1,
14022 BLANK: 2,
14023 PARENT: 3,
14024 TOP: 4
14025};
14026exports.LinkTarget = LinkTarget;
14027
14028function addLinkAttributes(link) {
14029 var _ref7 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
14030 url = _ref7.url,
14031 target = _ref7.target,
14032 rel = _ref7.rel,
14033 _ref7$enabled = _ref7.enabled,
14034 enabled = _ref7$enabled === void 0 ? true : _ref7$enabled;
14035
14036 (0, _util.assert)(url && typeof url === "string", 'addLinkAttributes: A valid "url" parameter must provided.');
14037 var urlNullRemoved = (0, _util.removeNullCharacters)(url);
14038
14039 if (enabled) {
14040 link.href = link.title = urlNullRemoved;
14041 } else {
14042 link.href = "";
14043 link.title = "Disabled: ".concat(urlNullRemoved);
14044
14045 link.onclick = function () {
14046 return false;
14047 };
14048 }
14049
14050 var targetStr = "";
14051
14052 switch (target) {
14053 case LinkTarget.NONE:
14054 break;
14055
14056 case LinkTarget.SELF:
14057 targetStr = "_self";
14058 break;
14059
14060 case LinkTarget.BLANK:
14061 targetStr = "_blank";
14062 break;
14063
14064 case LinkTarget.PARENT:
14065 targetStr = "_parent";
14066 break;
14067
14068 case LinkTarget.TOP:
14069 targetStr = "_top";
14070 break;
14071 }
14072
14073 link.target = targetStr;
14074 link.rel = typeof rel === "string" ? rel : DEFAULT_LINK_REL;
14075}
14076
14077function getFilenameFromUrl(url) {
14078 var anchor = url.indexOf("#");
14079 var query = url.indexOf("?");
14080 var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
14081 return url.substring(url.lastIndexOf("/", end) + 1, end);
14082}
14083
14084var StatTimer = /*#__PURE__*/function () {
14085 function StatTimer() {
14086 _classCallCheck(this, StatTimer);
14087
14088 this.started = Object.create(null);
14089 this.times = [];
14090 }
14091
14092 _createClass(StatTimer, [{
14093 key: "time",
14094 value: function time(name) {
14095 if (name in this.started) {
14096 (0, _util.warn)("Timer is already running for ".concat(name));
14097 }
14098
14099 this.started[name] = Date.now();
14100 }
14101 }, {
14102 key: "timeEnd",
14103 value: function timeEnd(name) {
14104 if (!(name in this.started)) {
14105 (0, _util.warn)("Timer has not been started for ".concat(name));
14106 }
14107
14108 this.times.push({
14109 name: name,
14110 start: this.started[name],
14111 end: Date.now()
14112 });
14113 delete this.started[name];
14114 }
14115 }, {
14116 key: "toString",
14117 value: function toString() {
14118 var outBuf = [];
14119 var longest = 0;
14120 var _iteratorNormalCompletion = true;
14121 var _didIteratorError = false;
14122 var _iteratorError = undefined;
14123
14124 try {
14125 for (var _iterator = this.times[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
14126 var time = _step.value;
14127 var name = time.name;
14128
14129 if (name.length > longest) {
14130 longest = name.length;
14131 }
14132 }
14133 } catch (err) {
14134 _didIteratorError = true;
14135 _iteratorError = err;
14136 } finally {
14137 try {
14138 if (!_iteratorNormalCompletion && _iterator["return"] != null) {
14139 _iterator["return"]();
14140 }
14141 } finally {
14142 if (_didIteratorError) {
14143 throw _iteratorError;
14144 }
14145 }
14146 }
14147
14148 var _iteratorNormalCompletion2 = true;
14149 var _didIteratorError2 = false;
14150 var _iteratorError2 = undefined;
14151
14152 try {
14153 for (var _iterator2 = this.times[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
14154 var _time = _step2.value;
14155 var duration = _time.end - _time.start;
14156 outBuf.push("".concat(_time.name.padEnd(longest), " ").concat(duration, "ms\n"));
14157 }
14158 } catch (err) {
14159 _didIteratorError2 = true;
14160 _iteratorError2 = err;
14161 } finally {
14162 try {
14163 if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
14164 _iterator2["return"]();
14165 }
14166 } finally {
14167 if (_didIteratorError2) {
14168 throw _iteratorError2;
14169 }
14170 }
14171 }
14172
14173 return outBuf.join("");
14174 }
14175 }]);
14176
14177 return StatTimer;
14178}();
14179
14180exports.StatTimer = StatTimer;
14181
14182function isFetchSupported() {
14183 return typeof fetch !== "undefined" && typeof Response !== "undefined" && "body" in Response.prototype && typeof ReadableStream !== "undefined";
14184}
14185
14186function isValidFetchUrl(url, baseUrl) {
14187 try {
14188 var _ref8 = baseUrl ? new URL(url, baseUrl) : new URL(url),
14189 protocol = _ref8.protocol;
14190
14191 return protocol === "http:" || protocol === "https:";
14192 } catch (ex) {
14193 return false;
14194 }
14195}
14196
14197function loadScript(src) {
14198 return new Promise(function (resolve, reject) {
14199 var script = document.createElement("script");
14200 script.src = src;
14201 script.onload = resolve;
14202
14203 script.onerror = function () {
14204 reject(new Error("Cannot load script at: ".concat(script.src)));
14205 };
14206
14207 (document.head || document.documentElement).appendChild(script);
14208 });
14209}
14210
14211function deprecated(details) {
14212 console.log("Deprecated API usage: " + details);
14213}
14214
14215function releaseImageResources(img) {
14216 (0, _util.assert)(img instanceof Image, "Invalid `img` parameter.");
14217 var url = img.src;
14218
14219 if (typeof url === "string" && url.startsWith("blob:") && URL.revokeObjectURL) {
14220 URL.revokeObjectURL(url);
14221 }
14222
14223 img.removeAttribute("src");
14224}
14225
14226var pdfDateStringRegex;
14227
14228var PDFDateString = /*#__PURE__*/function () {
14229 function PDFDateString() {
14230 _classCallCheck(this, PDFDateString);
14231 }
14232
14233 _createClass(PDFDateString, null, [{
14234 key: "toDateObject",
14235 value: function toDateObject(input) {
14236 if (!input || !(0, _util.isString)(input)) {
14237 return null;
14238 }
14239
14240 if (!pdfDateStringRegex) {
14241 pdfDateStringRegex = new RegExp("^D:" + "(\\d{4})" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "(\\d{2})?" + "([Z|+|-])?" + "(\\d{2})?" + "'?" + "(\\d{2})?" + "'?");
14242 }
14243
14244 var matches = pdfDateStringRegex.exec(input);
14245
14246 if (!matches) {
14247 return null;
14248 }
14249
14250 var year = parseInt(matches[1], 10);
14251 var month = parseInt(matches[2], 10);
14252 month = month >= 1 && month <= 12 ? month - 1 : 0;
14253 var day = parseInt(matches[3], 10);
14254 day = day >= 1 && day <= 31 ? day : 1;
14255 var hour = parseInt(matches[4], 10);
14256 hour = hour >= 0 && hour <= 23 ? hour : 0;
14257 var minute = parseInt(matches[5], 10);
14258 minute = minute >= 0 && minute <= 59 ? minute : 0;
14259 var second = parseInt(matches[6], 10);
14260 second = second >= 0 && second <= 59 ? second : 0;
14261 var universalTimeRelation = matches[7] || "Z";
14262 var offsetHour = parseInt(matches[8], 10);
14263 offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;
14264 var offsetMinute = parseInt(matches[9], 10) || 0;
14265 offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;
14266
14267 if (universalTimeRelation === "-") {
14268 hour += offsetHour;
14269 minute += offsetMinute;
14270 } else if (universalTimeRelation === "+") {
14271 hour -= offsetHour;
14272 minute -= offsetMinute;
14273 }
14274
14275 return new Date(Date.UTC(year, month, day, hour, minute, second));
14276 }
14277 }]);
14278
14279 return PDFDateString;
14280}();
14281
14282exports.PDFDateString = PDFDateString;
14283
14284/***/ }),
14285/* 195 */
14286/***/ (function(module, exports, __w_pdfjs_require__) {
14287
14288"use strict";
14289
14290
14291Object.defineProperty(exports, "__esModule", {
14292 value: true
14293});
14294exports.FontLoader = exports.FontFaceObject = void 0;
14295
14296var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
14297
14298var _util = __w_pdfjs_require__(1);
14299
14300function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
14301
14302function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
14303
14304function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
14305
14306function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
14307
14308function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
14309
14310function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
14311
14312function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
14313
14314function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
14315
14316function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
14317
14318function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
14319
14320function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
14321
14322function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
14323
14324var BaseFontLoader = /*#__PURE__*/function () {
14325 function BaseFontLoader(_ref) {
14326 var docId = _ref.docId,
14327 onUnsupportedFeature = _ref.onUnsupportedFeature;
14328
14329 _classCallCheck(this, BaseFontLoader);
14330
14331 if (this.constructor === BaseFontLoader) {
14332 (0, _util.unreachable)("Cannot initialize BaseFontLoader.");
14333 }
14334
14335 this.docId = docId;
14336 this._onUnsupportedFeature = onUnsupportedFeature;
14337 this.nativeFontFaces = [];
14338 this.styleElement = null;
14339 }
14340
14341 _createClass(BaseFontLoader, [{
14342 key: "addNativeFontFace",
14343 value: function addNativeFontFace(nativeFontFace) {
14344 this.nativeFontFaces.push(nativeFontFace);
14345 document.fonts.add(nativeFontFace);
14346 }
14347 }, {
14348 key: "insertRule",
14349 value: function insertRule(rule) {
14350 var styleElement = this.styleElement;
14351
14352 if (!styleElement) {
14353 styleElement = this.styleElement = document.createElement("style");
14354 styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId);
14355 document.documentElement.getElementsByTagName("head")[0].appendChild(styleElement);
14356 }
14357
14358 var styleSheet = styleElement.sheet;
14359 styleSheet.insertRule(rule, styleSheet.cssRules.length);
14360 }
14361 }, {
14362 key: "clear",
14363 value: function clear() {
14364 this.nativeFontFaces.forEach(function (nativeFontFace) {
14365 document.fonts["delete"](nativeFontFace);
14366 });
14367 this.nativeFontFaces.length = 0;
14368
14369 if (this.styleElement) {
14370 this.styleElement.remove();
14371 this.styleElement = null;
14372 }
14373 }
14374 }, {
14375 key: "bind",
14376 value: function () {
14377 var _bind = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(font) {
14378 var _this = this;
14379
14380 var nativeFontFace, rule;
14381 return _regenerator["default"].wrap(function _callee$(_context) {
14382 while (1) {
14383 switch (_context.prev = _context.next) {
14384 case 0:
14385 if (!(font.attached || font.missingFile)) {
14386 _context.next = 2;
14387 break;
14388 }
14389
14390 return _context.abrupt("return");
14391
14392 case 2:
14393 font.attached = true;
14394
14395 if (!this.isFontLoadingAPISupported) {
14396 _context.next = 19;
14397 break;
14398 }
14399
14400 nativeFontFace = font.createNativeFontFace();
14401
14402 if (!nativeFontFace) {
14403 _context.next = 18;
14404 break;
14405 }
14406
14407 this.addNativeFontFace(nativeFontFace);
14408 _context.prev = 7;
14409 _context.next = 10;
14410 return nativeFontFace.loaded;
14411
14412 case 10:
14413 _context.next = 18;
14414 break;
14415
14416 case 12:
14417 _context.prev = 12;
14418 _context.t0 = _context["catch"](7);
14419
14420 this._onUnsupportedFeature({
14421 featureId: _util.UNSUPPORTED_FEATURES.font
14422 });
14423
14424 (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'."));
14425 font.disableFontFace = true;
14426 throw _context.t0;
14427
14428 case 18:
14429 return _context.abrupt("return");
14430
14431 case 19:
14432 rule = font.createFontFaceRule();
14433
14434 if (!rule) {
14435 _context.next = 26;
14436 break;
14437 }
14438
14439 this.insertRule(rule);
14440
14441 if (!this.isSyncFontLoadingSupported) {
14442 _context.next = 24;
14443 break;
14444 }
14445
14446 return _context.abrupt("return");
14447
14448 case 24:
14449 _context.next = 26;
14450 return new Promise(function (resolve) {
14451 var request = _this._queueLoadingCallback(resolve);
14452
14453 _this._prepareFontLoadEvent([rule], [font], request);
14454 });
14455
14456 case 26:
14457 case "end":
14458 return _context.stop();
14459 }
14460 }
14461 }, _callee, this, [[7, 12]]);
14462 }));
14463
14464 function bind(_x) {
14465 return _bind.apply(this, arguments);
14466 }
14467
14468 return bind;
14469 }()
14470 }, {
14471 key: "_queueLoadingCallback",
14472 value: function _queueLoadingCallback(callback) {
14473 (0, _util.unreachable)("Abstract method `_queueLoadingCallback`.");
14474 }
14475 }, {
14476 key: "_prepareFontLoadEvent",
14477 value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {
14478 (0, _util.unreachable)("Abstract method `_prepareFontLoadEvent`.");
14479 }
14480 }, {
14481 key: "isFontLoadingAPISupported",
14482 get: function get() {
14483 var supported = typeof document !== "undefined" && !!document.fonts;
14484 return (0, _util.shadow)(this, "isFontLoadingAPISupported", supported);
14485 }
14486 }, {
14487 key: "isSyncFontLoadingSupported",
14488 get: function get() {
14489 (0, _util.unreachable)("Abstract method `isSyncFontLoadingSupported`.");
14490 }
14491 }, {
14492 key: "_loadTestFont",
14493 get: function get() {
14494 (0, _util.unreachable)("Abstract method `_loadTestFont`.");
14495 }
14496 }]);
14497
14498 return BaseFontLoader;
14499}();
14500
14501var FontLoader;
14502exports.FontLoader = FontLoader;
14503{
14504 exports.FontLoader = FontLoader = /*#__PURE__*/function (_BaseFontLoader) {
14505 _inherits(GenericFontLoader, _BaseFontLoader);
14506
14507 function GenericFontLoader(docId) {
14508 var _this2;
14509
14510 _classCallCheck(this, GenericFontLoader);
14511
14512 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));
14513 _this2.loadingContext = {
14514 requests: [],
14515 nextRequestId: 0
14516 };
14517 _this2.loadTestFontId = 0;
14518 return _this2;
14519 }
14520
14521 _createClass(GenericFontLoader, [{
14522 key: "_queueLoadingCallback",
14523 value: function _queueLoadingCallback(callback) {
14524 function completeRequest() {
14525 (0, _util.assert)(!request.done, "completeRequest() cannot be called twice.");
14526 request.done = true;
14527
14528 while (context.requests.length > 0 && context.requests[0].done) {
14529 var otherRequest = context.requests.shift();
14530 setTimeout(otherRequest.callback, 0);
14531 }
14532 }
14533
14534 var context = this.loadingContext;
14535 var request = {
14536 id: "pdfjs-font-loading-".concat(context.nextRequestId++),
14537 done: false,
14538 complete: completeRequest,
14539 callback: callback
14540 };
14541 context.requests.push(request);
14542 return request;
14543 }
14544 }, {
14545 key: "_prepareFontLoadEvent",
14546 value: function _prepareFontLoadEvent(rules, fonts, request) {
14547 function int32(data, offset) {
14548 return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
14549 }
14550
14551 function spliceString(s, offset, remove, insert) {
14552 var chunk1 = s.substring(0, offset);
14553 var chunk2 = s.substring(offset + remove);
14554 return chunk1 + insert + chunk2;
14555 }
14556
14557 var i, ii;
14558 var canvas = document.createElement("canvas");
14559 canvas.width = 1;
14560 canvas.height = 1;
14561 var ctx = canvas.getContext("2d");
14562 var called = 0;
14563
14564 function isFontReady(name, callback) {
14565 called++;
14566
14567 if (called > 30) {
14568 (0, _util.warn)("Load test font never loaded.");
14569 callback();
14570 return;
14571 }
14572
14573 ctx.font = "30px " + name;
14574 ctx.fillText(".", 0, 20);
14575 var imageData = ctx.getImageData(0, 0, 1, 1);
14576
14577 if (imageData.data[3] > 0) {
14578 callback();
14579 return;
14580 }
14581
14582 setTimeout(isFontReady.bind(null, name, callback));
14583 }
14584
14585 var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++);
14586 var data = this._loadTestFont;
14587 var COMMENT_OFFSET = 976;
14588 data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
14589 var CFF_CHECKSUM_OFFSET = 16;
14590 var XXXX_VALUE = 0x58585858;
14591 var checksum = int32(data, CFF_CHECKSUM_OFFSET);
14592
14593 for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
14594 checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
14595 }
14596
14597 if (i < loadTestFontId.length) {
14598 checksum = checksum - XXXX_VALUE + int32(loadTestFontId + "XXX", i) | 0;
14599 }
14600
14601 data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
14602 var url = "url(data:font/opentype;base64,".concat(btoa(data), ");");
14603 var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}");
14604 this.insertRule(rule);
14605 var names = [];
14606
14607 for (i = 0, ii = fonts.length; i < ii; i++) {
14608 names.push(fonts[i].loadedName);
14609 }
14610
14611 names.push(loadTestFontId);
14612 var div = document.createElement("div");
14613 div.style.visibility = "hidden";
14614 div.style.width = div.style.height = "10px";
14615 div.style.position = "absolute";
14616 div.style.top = div.style.left = "0px";
14617
14618 for (i = 0, ii = names.length; i < ii; ++i) {
14619 var span = document.createElement("span");
14620 span.textContent = "Hi";
14621 span.style.fontFamily = names[i];
14622 div.appendChild(span);
14623 }
14624
14625 document.body.appendChild(div);
14626 isFontReady(loadTestFontId, function () {
14627 document.body.removeChild(div);
14628 request.complete();
14629 });
14630 }
14631 }, {
14632 key: "isSyncFontLoadingSupported",
14633 get: function get() {
14634 var supported = false;
14635
14636 if (typeof navigator === "undefined") {
14637 supported = true;
14638 } else {
14639 var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
14640
14641 if (m && m[1] >= 14) {
14642 supported = true;
14643 }
14644 }
14645
14646 return (0, _util.shadow)(this, "isSyncFontLoadingSupported", supported);
14647 }
14648 }, {
14649 key: "_loadTestFont",
14650 get: function get() {
14651 var getLoadTestFont = function getLoadTestFont() {
14652 return atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA" + "FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA" + "ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA" + "AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1" + "AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD" + "6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM" + "AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D" + "IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA" + "AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA" + "AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB" + "AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY" + "AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA" + "AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" + "AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA" + "AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC" + "AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3" + "Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj" + "FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==");
14653 };
14654
14655 return (0, _util.shadow)(this, "_loadTestFont", getLoadTestFont());
14656 }
14657 }]);
14658
14659 return GenericFontLoader;
14660 }(BaseFontLoader);
14661}
14662
14663var FontFaceObject = /*#__PURE__*/function () {
14664 function FontFaceObject(translatedData, _ref2) {
14665 var _ref2$isEvalSupported = _ref2.isEvalSupported,
14666 isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,
14667 _ref2$disableFontFace = _ref2.disableFontFace,
14668 disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,
14669 _ref2$ignoreErrors = _ref2.ignoreErrors,
14670 ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,
14671 _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,
14672 onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,
14673 _ref2$fontRegistry = _ref2.fontRegistry,
14674 fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;
14675
14676 _classCallCheck(this, FontFaceObject);
14677
14678 this.compiledGlyphs = Object.create(null);
14679
14680 for (var i in translatedData) {
14681 this[i] = translatedData[i];
14682 }
14683
14684 this.isEvalSupported = isEvalSupported !== false;
14685 this.disableFontFace = disableFontFace === true;
14686 this.ignoreErrors = ignoreErrors === true;
14687 this._onUnsupportedFeature = onUnsupportedFeature;
14688 this.fontRegistry = fontRegistry;
14689 }
14690
14691 _createClass(FontFaceObject, [{
14692 key: "createNativeFontFace",
14693 value: function createNativeFontFace() {
14694 if (!this.data || this.disableFontFace) {
14695 return null;
14696 }
14697
14698 var nativeFontFace = new FontFace(this.loadedName, this.data, {});
14699
14700 if (this.fontRegistry) {
14701 this.fontRegistry.registerFont(this);
14702 }
14703
14704 return nativeFontFace;
14705 }
14706 }, {
14707 key: "createFontFaceRule",
14708 value: function createFontFaceRule() {
14709 if (!this.data || this.disableFontFace) {
14710 return null;
14711 }
14712
14713 var data = (0, _util.bytesToString)(new Uint8Array(this.data));
14714 var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");");
14715 var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}");
14716
14717 if (this.fontRegistry) {
14718 this.fontRegistry.registerFont(this, url);
14719 }
14720
14721 return rule;
14722 }
14723 }, {
14724 key: "getPathGenerator",
14725 value: function getPathGenerator(objs, character) {
14726 if (this.compiledGlyphs[character] !== undefined) {
14727 return this.compiledGlyphs[character];
14728 }
14729
14730 var cmds, current;
14731
14732 try {
14733 cmds = objs.get(this.loadedName + "_path_" + character);
14734 } catch (ex) {
14735 if (!this.ignoreErrors) {
14736 throw ex;
14737 }
14738
14739 if (this._onUnsupportedFeature) {
14740 this._onUnsupportedFeature({
14741 featureId: _util.UNSUPPORTED_FEATURES.font
14742 });
14743 }
14744
14745 (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\"."));
14746 return this.compiledGlyphs[character] = function (c, size) {};
14747 }
14748
14749 if (this.isEvalSupported && _util.IsEvalSupportedCached.value) {
14750 var args,
14751 js = "";
14752
14753 for (var i = 0, ii = cmds.length; i < ii; i++) {
14754 current = cmds[i];
14755
14756 if (current.args !== undefined) {
14757 args = current.args.join(",");
14758 } else {
14759 args = "";
14760 }
14761
14762 js += "c." + current.cmd + "(" + args + ");\n";
14763 }
14764
14765 return this.compiledGlyphs[character] = new Function("c", "size", js);
14766 }
14767
14768 return this.compiledGlyphs[character] = function (c, size) {
14769 for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {
14770 current = cmds[_i];
14771
14772 if (current.cmd === "scale") {
14773 current.args = [size, -size];
14774 }
14775
14776 c[current.cmd].apply(c, current.args);
14777 }
14778 };
14779 }
14780 }]);
14781
14782 return FontFaceObject;
14783}();
14784
14785exports.FontFaceObject = FontFaceObject;
14786
14787/***/ }),
14788/* 196 */
14789/***/ (function(module, exports, __w_pdfjs_require__) {
14790
14791"use strict";
14792
14793
14794var compatibilityParams = Object.create(null);
14795{
14796 var _require = __w_pdfjs_require__(48),
14797 isNodeJS = _require.isNodeJS;
14798
14799 var userAgent = typeof navigator !== "undefined" && navigator.userAgent || "";
14800 var isIE = /Trident/.test(userAgent);
14801 var isIOSChrome = /CriOS/.test(userAgent);
14802
14803 (function checkOnBlobSupport() {
14804 if (isIE || isIOSChrome) {
14805 compatibilityParams.disableCreateObjectURL = true;
14806 }
14807 })();
14808
14809 (function checkFontFaceAndImage() {
14810 if (isNodeJS) {
14811 compatibilityParams.disableFontFace = true;
14812 compatibilityParams.nativeImageDecoderSupport = "none";
14813 }
14814 })();
14815}
14816exports.apiCompatibilityParams = Object.freeze(compatibilityParams);
14817
14818/***/ }),
14819/* 197 */
14820/***/ (function(module, exports, __w_pdfjs_require__) {
14821
14822"use strict";
14823
14824
14825Object.defineProperty(exports, "__esModule", {
14826 value: true
14827});
14828exports.CanvasGraphics = void 0;
14829
14830var _util = __w_pdfjs_require__(1);
14831
14832var _pattern_helper = __w_pdfjs_require__(198);
14833
14834var MIN_FONT_SIZE = 16;
14835var MAX_FONT_SIZE = 100;
14836var MAX_GROUP_SIZE = 4096;
14837var MIN_WIDTH_FACTOR = 0.65;
14838var COMPILE_TYPE3_GLYPHS = true;
14839var MAX_SIZE_TO_COMPILE = 1000;
14840var FULL_CHUNK_HEIGHT = 16;
14841
14842function addContextCurrentTransform(ctx) {
14843 if (!ctx.mozCurrentTransform) {
14844 ctx._originalSave = ctx.save;
14845 ctx._originalRestore = ctx.restore;
14846 ctx._originalRotate = ctx.rotate;
14847 ctx._originalScale = ctx.scale;
14848 ctx._originalTranslate = ctx.translate;
14849 ctx._originalTransform = ctx.transform;
14850 ctx._originalSetTransform = ctx.setTransform;
14851 ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];
14852 ctx._transformStack = [];
14853 Object.defineProperty(ctx, "mozCurrentTransform", {
14854 get: function getCurrentTransform() {
14855 return this._transformMatrix;
14856 }
14857 });
14858 Object.defineProperty(ctx, "mozCurrentTransformInverse", {
14859 get: function getCurrentTransformInverse() {
14860 var m = this._transformMatrix;
14861 var a = m[0],
14862 b = m[1],
14863 c = m[2],
14864 d = m[3],
14865 e = m[4],
14866 f = m[5];
14867 var ad_bc = a * d - b * c;
14868 var bc_ad = b * c - a * d;
14869 return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];
14870 }
14871 });
14872
14873 ctx.save = function ctxSave() {
14874 var old = this._transformMatrix;
14875
14876 this._transformStack.push(old);
14877
14878 this._transformMatrix = old.slice(0, 6);
14879
14880 this._originalSave();
14881 };
14882
14883 ctx.restore = function ctxRestore() {
14884 var prev = this._transformStack.pop();
14885
14886 if (prev) {
14887 this._transformMatrix = prev;
14888
14889 this._originalRestore();
14890 }
14891 };
14892
14893 ctx.translate = function ctxTranslate(x, y) {
14894 var m = this._transformMatrix;
14895 m[4] = m[0] * x + m[2] * y + m[4];
14896 m[5] = m[1] * x + m[3] * y + m[5];
14897
14898 this._originalTranslate(x, y);
14899 };
14900
14901 ctx.scale = function ctxScale(x, y) {
14902 var m = this._transformMatrix;
14903 m[0] = m[0] * x;
14904 m[1] = m[1] * x;
14905 m[2] = m[2] * y;
14906 m[3] = m[3] * y;
14907
14908 this._originalScale(x, y);
14909 };
14910
14911 ctx.transform = function ctxTransform(a, b, c, d, e, f) {
14912 var m = this._transformMatrix;
14913 this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];
14914
14915 ctx._originalTransform(a, b, c, d, e, f);
14916 };
14917
14918 ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {
14919 this._transformMatrix = [a, b, c, d, e, f];
14920
14921 ctx._originalSetTransform(a, b, c, d, e, f);
14922 };
14923
14924 ctx.rotate = function ctxRotate(angle) {
14925 var cosValue = Math.cos(angle);
14926 var sinValue = Math.sin(angle);
14927 var m = this._transformMatrix;
14928 this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];
14929
14930 this._originalRotate(angle);
14931 };
14932 }
14933}
14934
14935var CachedCanvases = function CachedCanvasesClosure() {
14936 function CachedCanvases(canvasFactory) {
14937 this.canvasFactory = canvasFactory;
14938 this.cache = Object.create(null);
14939 }
14940
14941 CachedCanvases.prototype = {
14942 getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {
14943 var canvasEntry;
14944
14945 if (this.cache[id] !== undefined) {
14946 canvasEntry = this.cache[id];
14947 this.canvasFactory.reset(canvasEntry, width, height);
14948 canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);
14949 } else {
14950 canvasEntry = this.canvasFactory.create(width, height);
14951 this.cache[id] = canvasEntry;
14952 }
14953
14954 if (trackTransform) {
14955 addContextCurrentTransform(canvasEntry.context);
14956 }
14957
14958 return canvasEntry;
14959 },
14960 clear: function clear() {
14961 for (var id in this.cache) {
14962 var canvasEntry = this.cache[id];
14963 this.canvasFactory.destroy(canvasEntry);
14964 delete this.cache[id];
14965 }
14966 }
14967 };
14968 return CachedCanvases;
14969}();
14970
14971function compileType3Glyph(imgData) {
14972 var POINT_TO_PROCESS_LIMIT = 1000;
14973 var width = imgData.width,
14974 height = imgData.height;
14975 var i,
14976 j,
14977 j0,
14978 width1 = width + 1;
14979 var points = new Uint8Array(width1 * (height + 1));
14980 var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);
14981 var lineSize = width + 7 & ~7,
14982 data0 = imgData.data;
14983 var data = new Uint8Array(lineSize * height),
14984 pos = 0,
14985 ii;
14986
14987 for (i = 0, ii = data0.length; i < ii; i++) {
14988 var mask = 128,
14989 elem = data0[i];
14990
14991 while (mask > 0) {
14992 data[pos++] = elem & mask ? 0 : 255;
14993 mask >>= 1;
14994 }
14995 }
14996
14997 var count = 0;
14998 pos = 0;
14999
15000 if (data[pos] !== 0) {
15001 points[0] = 1;
15002 ++count;
15003 }
15004
15005 for (j = 1; j < width; j++) {
15006 if (data[pos] !== data[pos + 1]) {
15007 points[j] = data[pos] ? 2 : 1;
15008 ++count;
15009 }
15010
15011 pos++;
15012 }
15013
15014 if (data[pos] !== 0) {
15015 points[j] = 2;
15016 ++count;
15017 }
15018
15019 for (i = 1; i < height; i++) {
15020 pos = i * lineSize;
15021 j0 = i * width1;
15022
15023 if (data[pos - lineSize] !== data[pos]) {
15024 points[j0] = data[pos] ? 1 : 8;
15025 ++count;
15026 }
15027
15028 var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);
15029
15030 for (j = 1; j < width; j++) {
15031 sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);
15032
15033 if (POINT_TYPES[sum]) {
15034 points[j0 + j] = POINT_TYPES[sum];
15035 ++count;
15036 }
15037
15038 pos++;
15039 }
15040
15041 if (data[pos - lineSize] !== data[pos]) {
15042 points[j0 + j] = data[pos] ? 2 : 4;
15043 ++count;
15044 }
15045
15046 if (count > POINT_TO_PROCESS_LIMIT) {
15047 return null;
15048 }
15049 }
15050
15051 pos = lineSize * (height - 1);
15052 j0 = i * width1;
15053
15054 if (data[pos] !== 0) {
15055 points[j0] = 8;
15056 ++count;
15057 }
15058
15059 for (j = 1; j < width; j++) {
15060 if (data[pos] !== data[pos + 1]) {
15061 points[j0 + j] = data[pos] ? 4 : 8;
15062 ++count;
15063 }
15064
15065 pos++;
15066 }
15067
15068 if (data[pos] !== 0) {
15069 points[j0 + j] = 4;
15070 ++count;
15071 }
15072
15073 if (count > POINT_TO_PROCESS_LIMIT) {
15074 return null;
15075 }
15076
15077 var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);
15078 var outlines = [];
15079
15080 for (i = 0; count && i <= height; i++) {
15081 var p = i * width1;
15082 var end = p + width;
15083
15084 while (p < end && !points[p]) {
15085 p++;
15086 }
15087
15088 if (p === end) {
15089 continue;
15090 }
15091
15092 var coords = [p % width1, i];
15093 var type = points[p],
15094 p0 = p,
15095 pp;
15096
15097 do {
15098 var step = steps[type];
15099
15100 do {
15101 p += step;
15102 } while (!points[p]);
15103
15104 pp = points[p];
15105
15106 if (pp !== 5 && pp !== 10) {
15107 type = pp;
15108 points[p] = 0;
15109 } else {
15110 type = pp & 0x33 * type >> 4;
15111 points[p] &= type >> 2 | type << 2;
15112 }
15113
15114 coords.push(p % width1);
15115 coords.push(p / width1 | 0);
15116
15117 if (!points[p]) {
15118 --count;
15119 }
15120 } while (p0 !== p);
15121
15122 outlines.push(coords);
15123 --i;
15124 }
15125
15126 var drawOutline = function drawOutline(c) {
15127 c.save();
15128 c.scale(1 / width, -1 / height);
15129 c.translate(0, -height);
15130 c.beginPath();
15131
15132 for (var i = 0, ii = outlines.length; i < ii; i++) {
15133 var o = outlines[i];
15134 c.moveTo(o[0], o[1]);
15135
15136 for (var j = 2, jj = o.length; j < jj; j += 2) {
15137 c.lineTo(o[j], o[j + 1]);
15138 }
15139 }
15140
15141 c.fill();
15142 c.beginPath();
15143 c.restore();
15144 };
15145
15146 return drawOutline;
15147}
15148
15149var CanvasExtraState = function CanvasExtraStateClosure() {
15150 function CanvasExtraState() {
15151 this.alphaIsShape = false;
15152 this.fontSize = 0;
15153 this.fontSizeScale = 1;
15154 this.textMatrix = _util.IDENTITY_MATRIX;
15155 this.textMatrixScale = 1;
15156 this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
15157 this.leading = 0;
15158 this.x = 0;
15159 this.y = 0;
15160 this.lineX = 0;
15161 this.lineY = 0;
15162 this.charSpacing = 0;
15163 this.wordSpacing = 0;
15164 this.textHScale = 1;
15165 this.textRenderingMode = _util.TextRenderingMode.FILL;
15166 this.textRise = 0;
15167 this.fillColor = "#000000";
15168 this.strokeColor = "#000000";
15169 this.patternFill = false;
15170 this.fillAlpha = 1;
15171 this.strokeAlpha = 1;
15172 this.lineWidth = 1;
15173 this.activeSMask = null;
15174 this.resumeSMaskCtx = null;
15175 }
15176
15177 CanvasExtraState.prototype = {
15178 clone: function CanvasExtraState_clone() {
15179 return Object.create(this);
15180 },
15181 setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {
15182 this.x = x;
15183 this.y = y;
15184 }
15185 };
15186 return CanvasExtraState;
15187}();
15188
15189var CanvasGraphics = function CanvasGraphicsClosure() {
15190 var EXECUTION_TIME = 15;
15191 var EXECUTION_STEPS = 10;
15192
15193 function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {
15194 this.ctx = canvasCtx;
15195 this.current = new CanvasExtraState();
15196 this.stateStack = [];
15197 this.pendingClip = null;
15198 this.pendingEOFill = false;
15199 this.res = null;
15200 this.xobjs = null;
15201 this.commonObjs = commonObjs;
15202 this.objs = objs;
15203 this.canvasFactory = canvasFactory;
15204 this.webGLContext = webGLContext;
15205 this.imageLayer = imageLayer;
15206 this.groupStack = [];
15207 this.processingType3 = null;
15208 this.baseTransform = null;
15209 this.baseTransformStack = [];
15210 this.groupLevel = 0;
15211 this.smaskStack = [];
15212 this.smaskCounter = 0;
15213 this.tempSMask = null;
15214 this.cachedCanvases = new CachedCanvases(this.canvasFactory);
15215
15216 if (canvasCtx) {
15217 addContextCurrentTransform(canvasCtx);
15218 }
15219
15220 this._cachedGetSinglePixelWidth = null;
15221 }
15222
15223 function putBinaryImageData(ctx, imgData) {
15224 if (typeof ImageData !== "undefined" && imgData instanceof ImageData) {
15225 ctx.putImageData(imgData, 0, 0);
15226 return;
15227 }
15228
15229 var height = imgData.height,
15230 width = imgData.width;
15231 var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
15232 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
15233 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
15234 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
15235 var srcPos = 0,
15236 destPos;
15237 var src = imgData.data;
15238 var dest = chunkImgData.data;
15239 var i, j, thisChunkHeight, elemsInThisChunk;
15240
15241 if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {
15242 var srcLength = src.byteLength;
15243 var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);
15244 var dest32DataLength = dest32.length;
15245 var fullSrcDiff = width + 7 >> 3;
15246 var white = 0xffffffff;
15247 var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;
15248
15249 for (i = 0; i < totalChunks; i++) {
15250 thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
15251 destPos = 0;
15252
15253 for (j = 0; j < thisChunkHeight; j++) {
15254 var srcDiff = srcLength - srcPos;
15255 var k = 0;
15256 var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;
15257 var kEndUnrolled = kEnd & ~7;
15258 var mask = 0;
15259 var srcByte = 0;
15260
15261 for (; k < kEndUnrolled; k += 8) {
15262 srcByte = src[srcPos++];
15263 dest32[destPos++] = srcByte & 128 ? white : black;
15264 dest32[destPos++] = srcByte & 64 ? white : black;
15265 dest32[destPos++] = srcByte & 32 ? white : black;
15266 dest32[destPos++] = srcByte & 16 ? white : black;
15267 dest32[destPos++] = srcByte & 8 ? white : black;
15268 dest32[destPos++] = srcByte & 4 ? white : black;
15269 dest32[destPos++] = srcByte & 2 ? white : black;
15270 dest32[destPos++] = srcByte & 1 ? white : black;
15271 }
15272
15273 for (; k < kEnd; k++) {
15274 if (mask === 0) {
15275 srcByte = src[srcPos++];
15276 mask = 128;
15277 }
15278
15279 dest32[destPos++] = srcByte & mask ? white : black;
15280 mask >>= 1;
15281 }
15282 }
15283
15284 while (destPos < dest32DataLength) {
15285 dest32[destPos++] = 0;
15286 }
15287
15288 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
15289 }
15290 } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {
15291 j = 0;
15292 elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;
15293
15294 for (i = 0; i < fullChunks; i++) {
15295 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
15296 srcPos += elemsInThisChunk;
15297 ctx.putImageData(chunkImgData, 0, j);
15298 j += FULL_CHUNK_HEIGHT;
15299 }
15300
15301 if (i < totalChunks) {
15302 elemsInThisChunk = width * partialChunkHeight * 4;
15303 dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
15304 ctx.putImageData(chunkImgData, 0, j);
15305 }
15306 } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {
15307 thisChunkHeight = FULL_CHUNK_HEIGHT;
15308 elemsInThisChunk = width * thisChunkHeight;
15309
15310 for (i = 0; i < totalChunks; i++) {
15311 if (i >= fullChunks) {
15312 thisChunkHeight = partialChunkHeight;
15313 elemsInThisChunk = width * thisChunkHeight;
15314 }
15315
15316 destPos = 0;
15317
15318 for (j = elemsInThisChunk; j--;) {
15319 dest[destPos++] = src[srcPos++];
15320 dest[destPos++] = src[srcPos++];
15321 dest[destPos++] = src[srcPos++];
15322 dest[destPos++] = 255;
15323 }
15324
15325 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
15326 }
15327 } else {
15328 throw new Error("bad image kind: ".concat(imgData.kind));
15329 }
15330 }
15331
15332 function putBinaryImageMask(ctx, imgData) {
15333 var height = imgData.height,
15334 width = imgData.width;
15335 var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
15336 var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
15337 var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
15338 var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
15339 var srcPos = 0;
15340 var src = imgData.data;
15341 var dest = chunkImgData.data;
15342
15343 for (var i = 0; i < totalChunks; i++) {
15344 var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
15345 var destPos = 3;
15346
15347 for (var j = 0; j < thisChunkHeight; j++) {
15348 var mask = 0;
15349
15350 for (var k = 0; k < width; k++) {
15351 if (!mask) {
15352 var elem = src[srcPos++];
15353 mask = 128;
15354 }
15355
15356 dest[destPos] = elem & mask ? 0 : 255;
15357 destPos += 4;
15358 mask >>= 1;
15359 }
15360 }
15361
15362 ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
15363 }
15364 }
15365
15366 function copyCtxState(sourceCtx, destCtx) {
15367 var properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"];
15368
15369 for (var i = 0, ii = properties.length; i < ii; i++) {
15370 var property = properties[i];
15371
15372 if (sourceCtx[property] !== undefined) {
15373 destCtx[property] = sourceCtx[property];
15374 }
15375 }
15376
15377 if (sourceCtx.setLineDash !== undefined) {
15378 destCtx.setLineDash(sourceCtx.getLineDash());
15379 destCtx.lineDashOffset = sourceCtx.lineDashOffset;
15380 }
15381 }
15382
15383 function resetCtxToDefault(ctx) {
15384 ctx.strokeStyle = "#000000";
15385 ctx.fillStyle = "#000000";
15386 ctx.fillRule = "nonzero";
15387 ctx.globalAlpha = 1;
15388 ctx.lineWidth = 1;
15389 ctx.lineCap = "butt";
15390 ctx.lineJoin = "miter";
15391 ctx.miterLimit = 10;
15392 ctx.globalCompositeOperation = "source-over";
15393 ctx.font = "10px sans-serif";
15394
15395 if (ctx.setLineDash !== undefined) {
15396 ctx.setLineDash([]);
15397 ctx.lineDashOffset = 0;
15398 }
15399 }
15400
15401 function composeSMaskBackdrop(bytes, r0, g0, b0) {
15402 var length = bytes.length;
15403
15404 for (var i = 3; i < length; i += 4) {
15405 var alpha = bytes[i];
15406
15407 if (alpha === 0) {
15408 bytes[i - 3] = r0;
15409 bytes[i - 2] = g0;
15410 bytes[i - 1] = b0;
15411 } else if (alpha < 255) {
15412 var alpha_ = 255 - alpha;
15413 bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;
15414 bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;
15415 bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;
15416 }
15417 }
15418 }
15419
15420 function composeSMaskAlpha(maskData, layerData, transferMap) {
15421 var length = maskData.length;
15422 var scale = 1 / 255;
15423
15424 for (var i = 3; i < length; i += 4) {
15425 var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];
15426 layerData[i] = layerData[i] * alpha * scale | 0;
15427 }
15428 }
15429
15430 function composeSMaskLuminosity(maskData, layerData, transferMap) {
15431 var length = maskData.length;
15432
15433 for (var i = 3; i < length; i += 4) {
15434 var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;
15435 layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;
15436 }
15437 }
15438
15439 function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {
15440 var hasBackdrop = !!backdrop;
15441 var r0 = hasBackdrop ? backdrop[0] : 0;
15442 var g0 = hasBackdrop ? backdrop[1] : 0;
15443 var b0 = hasBackdrop ? backdrop[2] : 0;
15444 var composeFn;
15445
15446 if (subtype === "Luminosity") {
15447 composeFn = composeSMaskLuminosity;
15448 } else {
15449 composeFn = composeSMaskAlpha;
15450 }
15451
15452 var PIXELS_TO_PROCESS = 1048576;
15453 var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));
15454
15455 for (var row = 0; row < height; row += chunkSize) {
15456 var chunkHeight = Math.min(chunkSize, height - row);
15457 var maskData = maskCtx.getImageData(0, row, width, chunkHeight);
15458 var layerData = layerCtx.getImageData(0, row, width, chunkHeight);
15459
15460 if (hasBackdrop) {
15461 composeSMaskBackdrop(maskData.data, r0, g0, b0);
15462 }
15463
15464 composeFn(maskData.data, layerData.data, transferMap);
15465 maskCtx.putImageData(layerData, 0, row);
15466 }
15467 }
15468
15469 function composeSMask(ctx, smask, layerCtx, webGLContext) {
15470 var mask = smask.canvas;
15471 var maskCtx = smask.context;
15472 ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);
15473 var backdrop = smask.backdrop || null;
15474
15475 if (!smask.transferMap && webGLContext.isEnabled) {
15476 var composed = webGLContext.composeSMask({
15477 layer: layerCtx.canvas,
15478 mask: mask,
15479 properties: {
15480 subtype: smask.subtype,
15481 backdrop: backdrop
15482 }
15483 });
15484 ctx.setTransform(1, 0, 0, 1, 0, 0);
15485 ctx.drawImage(composed, smask.offsetX, smask.offsetY);
15486 return;
15487 }
15488
15489 genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);
15490 ctx.drawImage(mask, 0, 0);
15491 }
15492
15493 var LINE_CAP_STYLES = ["butt", "round", "square"];
15494 var LINE_JOIN_STYLES = ["miter", "round", "bevel"];
15495 var NORMAL_CLIP = {};
15496 var EO_CLIP = {};
15497 CanvasGraphics.prototype = {
15498 beginDrawing: function beginDrawing(_ref) {
15499 var transform = _ref.transform,
15500 viewport = _ref.viewport,
15501 _ref$transparency = _ref.transparency,
15502 transparency = _ref$transparency === void 0 ? false : _ref$transparency,
15503 _ref$background = _ref.background,
15504 background = _ref$background === void 0 ? null : _ref$background;
15505 var width = this.ctx.canvas.width;
15506 var height = this.ctx.canvas.height;
15507 this.ctx.save();
15508 this.ctx.fillStyle = background || "rgb(255, 255, 255)";
15509 this.ctx.fillRect(0, 0, width, height);
15510 this.ctx.restore();
15511
15512 if (transparency) {
15513 var transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height, true);
15514 this.compositeCtx = this.ctx;
15515 this.transparentCanvas = transparentCanvas.canvas;
15516 this.ctx = transparentCanvas.context;
15517 this.ctx.save();
15518 this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);
15519 }
15520
15521 this.ctx.save();
15522 resetCtxToDefault(this.ctx);
15523
15524 if (transform) {
15525 this.ctx.transform.apply(this.ctx, transform);
15526 }
15527
15528 this.ctx.transform.apply(this.ctx, viewport.transform);
15529 this.baseTransform = this.ctx.mozCurrentTransform.slice();
15530
15531 if (this.imageLayer) {
15532 this.imageLayer.beginLayout();
15533 }
15534 },
15535 executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {
15536 var argsArray = operatorList.argsArray;
15537 var fnArray = operatorList.fnArray;
15538 var i = executionStartIdx || 0;
15539 var argsArrayLen = argsArray.length;
15540
15541 if (argsArrayLen === i) {
15542 return i;
15543 }
15544
15545 var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function";
15546 var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;
15547 var steps = 0;
15548 var commonObjs = this.commonObjs;
15549 var objs = this.objs;
15550 var fnId;
15551
15552 while (true) {
15553 if (stepper !== undefined && i === stepper.nextBreakPoint) {
15554 stepper.breakIt(i, continueCallback);
15555 return i;
15556 }
15557
15558 fnId = fnArray[i];
15559
15560 if (fnId !== _util.OPS.dependency) {
15561 this[fnId].apply(this, argsArray[i]);
15562 } else {
15563 var _iteratorNormalCompletion = true;
15564 var _didIteratorError = false;
15565 var _iteratorError = undefined;
15566
15567 try {
15568 for (var _iterator = argsArray[i][Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
15569 var depObjId = _step.value;
15570 var objsPool = depObjId.startsWith("g_") ? commonObjs : objs;
15571
15572 if (!objsPool.has(depObjId)) {
15573 objsPool.get(depObjId, continueCallback);
15574 return i;
15575 }
15576 }
15577 } catch (err) {
15578 _didIteratorError = true;
15579 _iteratorError = err;
15580 } finally {
15581 try {
15582 if (!_iteratorNormalCompletion && _iterator["return"] != null) {
15583 _iterator["return"]();
15584 }
15585 } finally {
15586 if (_didIteratorError) {
15587 throw _iteratorError;
15588 }
15589 }
15590 }
15591 }
15592
15593 i++;
15594
15595 if (i === argsArrayLen) {
15596 return i;
15597 }
15598
15599 if (chunkOperations && ++steps > EXECUTION_STEPS) {
15600 if (Date.now() > endTime) {
15601 continueCallback();
15602 return i;
15603 }
15604
15605 steps = 0;
15606 }
15607 }
15608 },
15609 endDrawing: function CanvasGraphics_endDrawing() {
15610 if (this.current.activeSMask !== null) {
15611 this.endSMaskGroup();
15612 }
15613
15614 this.ctx.restore();
15615
15616 if (this.transparentCanvas) {
15617 this.ctx = this.compositeCtx;
15618 this.ctx.save();
15619 this.ctx.setTransform(1, 0, 0, 1, 0, 0);
15620 this.ctx.drawImage(this.transparentCanvas, 0, 0);
15621 this.ctx.restore();
15622 this.transparentCanvas = null;
15623 }
15624
15625 this.cachedCanvases.clear();
15626 this.webGLContext.clear();
15627
15628 if (this.imageLayer) {
15629 this.imageLayer.endLayout();
15630 }
15631 },
15632 setLineWidth: function CanvasGraphics_setLineWidth(width) {
15633 this.current.lineWidth = width;
15634 this.ctx.lineWidth = width;
15635 },
15636 setLineCap: function CanvasGraphics_setLineCap(style) {
15637 this.ctx.lineCap = LINE_CAP_STYLES[style];
15638 },
15639 setLineJoin: function CanvasGraphics_setLineJoin(style) {
15640 this.ctx.lineJoin = LINE_JOIN_STYLES[style];
15641 },
15642 setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {
15643 this.ctx.miterLimit = limit;
15644 },
15645 setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {
15646 var ctx = this.ctx;
15647
15648 if (ctx.setLineDash !== undefined) {
15649 ctx.setLineDash(dashArray);
15650 ctx.lineDashOffset = dashPhase;
15651 }
15652 },
15653 setRenderingIntent: function setRenderingIntent(intent) {},
15654 setFlatness: function setFlatness(flatness) {},
15655 setGState: function CanvasGraphics_setGState(states) {
15656 for (var i = 0, ii = states.length; i < ii; i++) {
15657 var state = states[i];
15658 var key = state[0];
15659 var value = state[1];
15660
15661 switch (key) {
15662 case "LW":
15663 this.setLineWidth(value);
15664 break;
15665
15666 case "LC":
15667 this.setLineCap(value);
15668 break;
15669
15670 case "LJ":
15671 this.setLineJoin(value);
15672 break;
15673
15674 case "ML":
15675 this.setMiterLimit(value);
15676 break;
15677
15678 case "D":
15679 this.setDash(value[0], value[1]);
15680 break;
15681
15682 case "RI":
15683 this.setRenderingIntent(value);
15684 break;
15685
15686 case "FL":
15687 this.setFlatness(value);
15688 break;
15689
15690 case "Font":
15691 this.setFont(value[0], value[1]);
15692 break;
15693
15694 case "CA":
15695 this.current.strokeAlpha = state[1];
15696 break;
15697
15698 case "ca":
15699 this.current.fillAlpha = state[1];
15700 this.ctx.globalAlpha = state[1];
15701 break;
15702
15703 case "BM":
15704 this.ctx.globalCompositeOperation = value;
15705 break;
15706
15707 case "SMask":
15708 if (this.current.activeSMask) {
15709 if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {
15710 this.suspendSMaskGroup();
15711 } else {
15712 this.endSMaskGroup();
15713 }
15714 }
15715
15716 this.current.activeSMask = value ? this.tempSMask : null;
15717
15718 if (this.current.activeSMask) {
15719 this.beginSMaskGroup();
15720 }
15721
15722 this.tempSMask = null;
15723 break;
15724 }
15725 }
15726 },
15727 beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {
15728 var activeSMask = this.current.activeSMask;
15729 var drawnWidth = activeSMask.canvas.width;
15730 var drawnHeight = activeSMask.canvas.height;
15731 var cacheId = "smaskGroupAt" + this.groupLevel;
15732 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
15733 var currentCtx = this.ctx;
15734 var currentTransform = currentCtx.mozCurrentTransform;
15735 this.ctx.save();
15736 var groupCtx = scratchCanvas.context;
15737 groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);
15738 groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);
15739 groupCtx.transform.apply(groupCtx, currentTransform);
15740 activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;
15741 copyCtxState(currentCtx, groupCtx);
15742 this.ctx = groupCtx;
15743 this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]);
15744 this.groupStack.push(currentCtx);
15745 this.groupLevel++;
15746 },
15747 suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {
15748 var groupCtx = this.ctx;
15749 this.groupLevel--;
15750 this.ctx = this.groupStack.pop();
15751 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
15752 this.ctx.restore();
15753 this.ctx.save();
15754 copyCtxState(groupCtx, this.ctx);
15755 this.current.resumeSMaskCtx = groupCtx;
15756
15757 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
15758
15759 this.ctx.transform.apply(this.ctx, deltaTransform);
15760 groupCtx.save();
15761 groupCtx.setTransform(1, 0, 0, 1, 0, 0);
15762 groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);
15763 groupCtx.restore();
15764 },
15765 resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {
15766 var groupCtx = this.current.resumeSMaskCtx;
15767 var currentCtx = this.ctx;
15768 this.ctx = groupCtx;
15769 this.groupStack.push(currentCtx);
15770 this.groupLevel++;
15771 },
15772 endSMaskGroup: function CanvasGraphics_endSMaskGroup() {
15773 var groupCtx = this.ctx;
15774 this.groupLevel--;
15775 this.ctx = this.groupStack.pop();
15776 composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
15777 this.ctx.restore();
15778 copyCtxState(groupCtx, this.ctx);
15779
15780 var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
15781
15782 this.ctx.transform.apply(this.ctx, deltaTransform);
15783 },
15784 save: function CanvasGraphics_save() {
15785 this.ctx.save();
15786 var old = this.current;
15787 this.stateStack.push(old);
15788 this.current = old.clone();
15789 this.current.resumeSMaskCtx = null;
15790 },
15791 restore: function CanvasGraphics_restore() {
15792 if (this.current.resumeSMaskCtx) {
15793 this.resumeSMaskGroup();
15794 }
15795
15796 if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {
15797 this.endSMaskGroup();
15798 }
15799
15800 if (this.stateStack.length !== 0) {
15801 this.current = this.stateStack.pop();
15802 this.ctx.restore();
15803 this.pendingClip = null;
15804 this._cachedGetSinglePixelWidth = null;
15805 }
15806 },
15807 transform: function CanvasGraphics_transform(a, b, c, d, e, f) {
15808 this.ctx.transform(a, b, c, d, e, f);
15809 this._cachedGetSinglePixelWidth = null;
15810 },
15811 constructPath: function CanvasGraphics_constructPath(ops, args) {
15812 var ctx = this.ctx;
15813 var current = this.current;
15814 var x = current.x,
15815 y = current.y;
15816
15817 for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {
15818 switch (ops[i] | 0) {
15819 case _util.OPS.rectangle:
15820 x = args[j++];
15821 y = args[j++];
15822 var width = args[j++];
15823 var height = args[j++];
15824
15825 if (width === 0) {
15826 width = this.getSinglePixelWidth();
15827 }
15828
15829 if (height === 0) {
15830 height = this.getSinglePixelWidth();
15831 }
15832
15833 var xw = x + width;
15834 var yh = y + height;
15835 this.ctx.moveTo(x, y);
15836 this.ctx.lineTo(xw, y);
15837 this.ctx.lineTo(xw, yh);
15838 this.ctx.lineTo(x, yh);
15839 this.ctx.lineTo(x, y);
15840 this.ctx.closePath();
15841 break;
15842
15843 case _util.OPS.moveTo:
15844 x = args[j++];
15845 y = args[j++];
15846 ctx.moveTo(x, y);
15847 break;
15848
15849 case _util.OPS.lineTo:
15850 x = args[j++];
15851 y = args[j++];
15852 ctx.lineTo(x, y);
15853 break;
15854
15855 case _util.OPS.curveTo:
15856 x = args[j + 4];
15857 y = args[j + 5];
15858 ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);
15859 j += 6;
15860 break;
15861
15862 case _util.OPS.curveTo2:
15863 ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);
15864 x = args[j + 2];
15865 y = args[j + 3];
15866 j += 4;
15867 break;
15868
15869 case _util.OPS.curveTo3:
15870 x = args[j + 2];
15871 y = args[j + 3];
15872 ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);
15873 j += 4;
15874 break;
15875
15876 case _util.OPS.closePath:
15877 ctx.closePath();
15878 break;
15879 }
15880 }
15881
15882 current.setCurrentPoint(x, y);
15883 },
15884 closePath: function CanvasGraphics_closePath() {
15885 this.ctx.closePath();
15886 },
15887 stroke: function CanvasGraphics_stroke(consumePath) {
15888 consumePath = typeof consumePath !== "undefined" ? consumePath : true;
15889 var ctx = this.ctx;
15890 var strokeColor = this.current.strokeColor;
15891 ctx.globalAlpha = this.current.strokeAlpha;
15892
15893 if (strokeColor && strokeColor.hasOwnProperty("type") && strokeColor.type === "Pattern") {
15894 ctx.save();
15895 var transform = ctx.mozCurrentTransform;
15896
15897 var scale = _util.Util.singularValueDecompose2dScale(transform)[0];
15898
15899 ctx.strokeStyle = strokeColor.getPattern(ctx, this);
15900 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale);
15901 ctx.stroke();
15902 ctx.restore();
15903 } else {
15904 ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);
15905 ctx.stroke();
15906 }
15907
15908 if (consumePath) {
15909 this.consumePath();
15910 }
15911
15912 ctx.globalAlpha = this.current.fillAlpha;
15913 },
15914 closeStroke: function CanvasGraphics_closeStroke() {
15915 this.closePath();
15916 this.stroke();
15917 },
15918 fill: function CanvasGraphics_fill(consumePath) {
15919 consumePath = typeof consumePath !== "undefined" ? consumePath : true;
15920 var ctx = this.ctx;
15921 var fillColor = this.current.fillColor;
15922 var isPatternFill = this.current.patternFill;
15923 var needRestore = false;
15924
15925 if (isPatternFill) {
15926 ctx.save();
15927
15928 if (this.baseTransform) {
15929 ctx.setTransform.apply(ctx, this.baseTransform);
15930 }
15931
15932 ctx.fillStyle = fillColor.getPattern(ctx, this);
15933 needRestore = true;
15934 }
15935
15936 if (this.pendingEOFill) {
15937 ctx.fill("evenodd");
15938 this.pendingEOFill = false;
15939 } else {
15940 ctx.fill();
15941 }
15942
15943 if (needRestore) {
15944 ctx.restore();
15945 }
15946
15947 if (consumePath) {
15948 this.consumePath();
15949 }
15950 },
15951 eoFill: function CanvasGraphics_eoFill() {
15952 this.pendingEOFill = true;
15953 this.fill();
15954 },
15955 fillStroke: function CanvasGraphics_fillStroke() {
15956 this.fill(false);
15957 this.stroke(false);
15958 this.consumePath();
15959 },
15960 eoFillStroke: function CanvasGraphics_eoFillStroke() {
15961 this.pendingEOFill = true;
15962 this.fillStroke();
15963 },
15964 closeFillStroke: function CanvasGraphics_closeFillStroke() {
15965 this.closePath();
15966 this.fillStroke();
15967 },
15968 closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {
15969 this.pendingEOFill = true;
15970 this.closePath();
15971 this.fillStroke();
15972 },
15973 endPath: function CanvasGraphics_endPath() {
15974 this.consumePath();
15975 },
15976 clip: function CanvasGraphics_clip() {
15977 this.pendingClip = NORMAL_CLIP;
15978 },
15979 eoClip: function CanvasGraphics_eoClip() {
15980 this.pendingClip = EO_CLIP;
15981 },
15982 beginText: function CanvasGraphics_beginText() {
15983 this.current.textMatrix = _util.IDENTITY_MATRIX;
15984 this.current.textMatrixScale = 1;
15985 this.current.x = this.current.lineX = 0;
15986 this.current.y = this.current.lineY = 0;
15987 },
15988 endText: function CanvasGraphics_endText() {
15989 var paths = this.pendingTextPaths;
15990 var ctx = this.ctx;
15991
15992 if (paths === undefined) {
15993 ctx.beginPath();
15994 return;
15995 }
15996
15997 ctx.save();
15998 ctx.beginPath();
15999
16000 for (var i = 0; i < paths.length; i++) {
16001 var path = paths[i];
16002 ctx.setTransform.apply(ctx, path.transform);
16003 ctx.translate(path.x, path.y);
16004 path.addToPath(ctx, path.fontSize);
16005 }
16006
16007 ctx.restore();
16008 ctx.clip();
16009 ctx.beginPath();
16010 delete this.pendingTextPaths;
16011 },
16012 setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {
16013 this.current.charSpacing = spacing;
16014 },
16015 setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {
16016 this.current.wordSpacing = spacing;
16017 },
16018 setHScale: function CanvasGraphics_setHScale(scale) {
16019 this.current.textHScale = scale / 100;
16020 },
16021 setLeading: function CanvasGraphics_setLeading(leading) {
16022 this.current.leading = -leading;
16023 },
16024 setFont: function CanvasGraphics_setFont(fontRefName, size) {
16025 var fontObj = this.commonObjs.get(fontRefName);
16026 var current = this.current;
16027
16028 if (!fontObj) {
16029 throw new Error("Can't find font for ".concat(fontRefName));
16030 }
16031
16032 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
16033
16034 if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {
16035 (0, _util.warn)("Invalid font matrix for font " + fontRefName);
16036 }
16037
16038 if (size < 0) {
16039 size = -size;
16040 current.fontDirection = -1;
16041 } else {
16042 current.fontDirection = 1;
16043 }
16044
16045 this.current.font = fontObj;
16046 this.current.fontSize = size;
16047
16048 if (fontObj.isType3Font) {
16049 return;
16050 }
16051
16052 var name = fontObj.loadedName || "sans-serif";
16053 var bold = "normal";
16054
16055 if (fontObj.black) {
16056 bold = "900";
16057 } else if (fontObj.bold) {
16058 bold = "bold";
16059 }
16060
16061 var italic = fontObj.italic ? "italic" : "normal";
16062 var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName);
16063 var browserFontSize = size;
16064
16065 if (size < MIN_FONT_SIZE) {
16066 browserFontSize = MIN_FONT_SIZE;
16067 } else if (size > MAX_FONT_SIZE) {
16068 browserFontSize = MAX_FONT_SIZE;
16069 }
16070
16071 this.current.fontSizeScale = size / browserFontSize;
16072 this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface);
16073 },
16074 setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {
16075 this.current.textRenderingMode = mode;
16076 },
16077 setTextRise: function CanvasGraphics_setTextRise(rise) {
16078 this.current.textRise = rise;
16079 },
16080 moveText: function CanvasGraphics_moveText(x, y) {
16081 this.current.x = this.current.lineX += x;
16082 this.current.y = this.current.lineY += y;
16083 },
16084 setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {
16085 this.setLeading(-y);
16086 this.moveText(x, y);
16087 },
16088 setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {
16089 this.current.textMatrix = [a, b, c, d, e, f];
16090 this.current.textMatrixScale = Math.sqrt(a * a + b * b);
16091 this.current.x = this.current.lineX = 0;
16092 this.current.y = this.current.lineY = 0;
16093 },
16094 nextLine: function CanvasGraphics_nextLine() {
16095 this.moveText(0, this.current.leading);
16096 },
16097 paintChar: function paintChar(character, x, y, patternTransform) {
16098 var ctx = this.ctx;
16099 var current = this.current;
16100 var font = current.font;
16101 var textRenderingMode = current.textRenderingMode;
16102 var fontSize = current.fontSize / current.fontSizeScale;
16103 var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
16104 var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);
16105 var patternFill = current.patternFill && font.data;
16106 var addToPath;
16107
16108 if (font.disableFontFace || isAddToPathSet || patternFill) {
16109 addToPath = font.getPathGenerator(this.commonObjs, character);
16110 }
16111
16112 if (font.disableFontFace || patternFill) {
16113 ctx.save();
16114 ctx.translate(x, y);
16115 ctx.beginPath();
16116 addToPath(ctx, fontSize);
16117
16118 if (patternTransform) {
16119 ctx.setTransform.apply(ctx, patternTransform);
16120 }
16121
16122 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
16123 ctx.fill();
16124 }
16125
16126 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
16127 ctx.stroke();
16128 }
16129
16130 ctx.restore();
16131 } else {
16132 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
16133 ctx.fillText(character, x, y);
16134 }
16135
16136 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
16137 ctx.strokeText(character, x, y);
16138 }
16139 }
16140
16141 if (isAddToPathSet) {
16142 var paths = this.pendingTextPaths || (this.pendingTextPaths = []);
16143 paths.push({
16144 transform: ctx.mozCurrentTransform,
16145 x: x,
16146 y: y,
16147 fontSize: fontSize,
16148 addToPath: addToPath
16149 });
16150 }
16151 },
16152
16153 get isFontSubpixelAAEnabled() {
16154 var _this$cachedCanvases$ = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10),
16155 ctx = _this$cachedCanvases$.context;
16156
16157 ctx.scale(1.5, 1);
16158 ctx.fillText("I", 0, 10);
16159 var data = ctx.getImageData(0, 0, 10, 10).data;
16160 var enabled = false;
16161
16162 for (var i = 3; i < data.length; i += 4) {
16163 if (data[i] > 0 && data[i] < 255) {
16164 enabled = true;
16165 break;
16166 }
16167 }
16168
16169 return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled);
16170 },
16171
16172 showText: function CanvasGraphics_showText(glyphs) {
16173 var current = this.current;
16174 var font = current.font;
16175
16176 if (font.isType3Font) {
16177 return this.showType3Text(glyphs);
16178 }
16179
16180 var fontSize = current.fontSize;
16181
16182 if (fontSize === 0) {
16183 return undefined;
16184 }
16185
16186 var ctx = this.ctx;
16187 var fontSizeScale = current.fontSizeScale;
16188 var charSpacing = current.charSpacing;
16189 var wordSpacing = current.wordSpacing;
16190 var fontDirection = current.fontDirection;
16191 var textHScale = current.textHScale * fontDirection;
16192 var glyphsLength = glyphs.length;
16193 var vertical = font.vertical;
16194 var spacingDir = vertical ? 1 : -1;
16195 var defaultVMetrics = font.defaultVMetrics;
16196 var widthAdvanceScale = fontSize * current.fontMatrix[0];
16197 var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;
16198 ctx.save();
16199 var patternTransform;
16200
16201 if (current.patternFill) {
16202 ctx.save();
16203 var pattern = current.fillColor.getPattern(ctx, this);
16204 patternTransform = ctx.mozCurrentTransform;
16205 ctx.restore();
16206 ctx.fillStyle = pattern;
16207 }
16208
16209 ctx.transform.apply(ctx, current.textMatrix);
16210 ctx.translate(current.x, current.y + current.textRise);
16211
16212 if (fontDirection > 0) {
16213 ctx.scale(textHScale, -1);
16214 } else {
16215 ctx.scale(textHScale, 1);
16216 }
16217
16218 var lineWidth = current.lineWidth;
16219 var scale = current.textMatrixScale;
16220
16221 if (scale === 0 || lineWidth === 0) {
16222 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
16223
16224 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
16225 this._cachedGetSinglePixelWidth = null;
16226 lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;
16227 }
16228 } else {
16229 lineWidth /= scale;
16230 }
16231
16232 if (fontSizeScale !== 1.0) {
16233 ctx.scale(fontSizeScale, fontSizeScale);
16234 lineWidth /= fontSizeScale;
16235 }
16236
16237 ctx.lineWidth = lineWidth;
16238 var x = 0,
16239 i;
16240
16241 for (i = 0; i < glyphsLength; ++i) {
16242 var glyph = glyphs[i];
16243
16244 if ((0, _util.isNum)(glyph)) {
16245 x += spacingDir * glyph * fontSize / 1000;
16246 continue;
16247 }
16248
16249 var restoreNeeded = false;
16250 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
16251 var character = glyph.fontChar;
16252 var accent = glyph.accent;
16253 var scaledX, scaledY, scaledAccentX, scaledAccentY;
16254 var width = glyph.width;
16255
16256 if (vertical) {
16257 var vmetric, vx, vy;
16258 vmetric = glyph.vmetric || defaultVMetrics;
16259 vx = glyph.vmetric ? vmetric[1] : width * 0.5;
16260 vx = -vx * widthAdvanceScale;
16261 vy = vmetric[2] * widthAdvanceScale;
16262 width = vmetric ? -vmetric[0] : width;
16263 scaledX = vx / fontSizeScale;
16264 scaledY = (x + vy) / fontSizeScale;
16265 } else {
16266 scaledX = x / fontSizeScale;
16267 scaledY = 0;
16268 }
16269
16270 if (font.remeasure && width > 0) {
16271 var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;
16272
16273 if (width < measuredWidth && this.isFontSubpixelAAEnabled) {
16274 var characterScaleX = width / measuredWidth;
16275 restoreNeeded = true;
16276 ctx.save();
16277 ctx.scale(characterScaleX, 1);
16278 scaledX /= characterScaleX;
16279 } else if (width !== measuredWidth) {
16280 scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;
16281 }
16282 }
16283
16284 if (glyph.isInFont || font.missingFile) {
16285 if (simpleFillText && !accent) {
16286 ctx.fillText(character, scaledX, scaledY);
16287 } else {
16288 this.paintChar(character, scaledX, scaledY, patternTransform);
16289
16290 if (accent) {
16291 scaledAccentX = scaledX + accent.offset.x / fontSizeScale;
16292 scaledAccentY = scaledY - accent.offset.y / fontSizeScale;
16293 this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);
16294 }
16295 }
16296 }
16297
16298 var charWidth;
16299
16300 if (vertical) {
16301 charWidth = width * widthAdvanceScale - spacing * fontDirection;
16302 } else {
16303 charWidth = width * widthAdvanceScale + spacing * fontDirection;
16304 }
16305
16306 x += charWidth;
16307
16308 if (restoreNeeded) {
16309 ctx.restore();
16310 }
16311 }
16312
16313 if (vertical) {
16314 current.y -= x;
16315 } else {
16316 current.x += x * textHScale;
16317 }
16318
16319 ctx.restore();
16320 },
16321 showType3Text: function CanvasGraphics_showType3Text(glyphs) {
16322 var ctx = this.ctx;
16323 var current = this.current;
16324 var font = current.font;
16325 var fontSize = current.fontSize;
16326 var fontDirection = current.fontDirection;
16327 var spacingDir = font.vertical ? 1 : -1;
16328 var charSpacing = current.charSpacing;
16329 var wordSpacing = current.wordSpacing;
16330 var textHScale = current.textHScale * fontDirection;
16331 var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;
16332 var glyphsLength = glyphs.length;
16333 var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;
16334 var i, glyph, width, spacingLength;
16335
16336 if (isTextInvisible || fontSize === 0) {
16337 return;
16338 }
16339
16340 this._cachedGetSinglePixelWidth = null;
16341 ctx.save();
16342 ctx.transform.apply(ctx, current.textMatrix);
16343 ctx.translate(current.x, current.y);
16344 ctx.scale(textHScale, fontDirection);
16345
16346 for (i = 0; i < glyphsLength; ++i) {
16347 glyph = glyphs[i];
16348
16349 if ((0, _util.isNum)(glyph)) {
16350 spacingLength = spacingDir * glyph * fontSize / 1000;
16351 this.ctx.translate(spacingLength, 0);
16352 current.x += spacingLength * textHScale;
16353 continue;
16354 }
16355
16356 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
16357 var operatorList = font.charProcOperatorList[glyph.operatorListId];
16358
16359 if (!operatorList) {
16360 (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available."));
16361 continue;
16362 }
16363
16364 this.processingType3 = glyph;
16365 this.save();
16366 ctx.scale(fontSize, fontSize);
16367 ctx.transform.apply(ctx, fontMatrix);
16368 this.executeOperatorList(operatorList);
16369 this.restore();
16370
16371 var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);
16372
16373 width = transformed[0] * fontSize + spacing;
16374 ctx.translate(width, 0);
16375 current.x += width * textHScale;
16376 }
16377
16378 ctx.restore();
16379 this.processingType3 = null;
16380 },
16381 setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},
16382 setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {
16383 this.ctx.rect(llx, lly, urx - llx, ury - lly);
16384 this.clip();
16385 this.endPath();
16386 },
16387 getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {
16388 var _this = this;
16389
16390 var pattern;
16391
16392 if (IR[0] === "TilingPattern") {
16393 var color = IR[1];
16394 var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();
16395 var canvasGraphicsFactory = {
16396 createCanvasGraphics: function createCanvasGraphics(ctx) {
16397 return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext);
16398 }
16399 };
16400 pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);
16401 } else {
16402 pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);
16403 }
16404
16405 return pattern;
16406 },
16407 setStrokeColorN: function CanvasGraphics_setStrokeColorN() {
16408 this.current.strokeColor = this.getColorN_Pattern(arguments);
16409 },
16410 setFillColorN: function CanvasGraphics_setFillColorN() {
16411 this.current.fillColor = this.getColorN_Pattern(arguments);
16412 this.current.patternFill = true;
16413 },
16414 setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {
16415 var color = _util.Util.makeCssRgb(r, g, b);
16416
16417 this.ctx.strokeStyle = color;
16418 this.current.strokeColor = color;
16419 },
16420 setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {
16421 var color = _util.Util.makeCssRgb(r, g, b);
16422
16423 this.ctx.fillStyle = color;
16424 this.current.fillColor = color;
16425 this.current.patternFill = false;
16426 },
16427 shadingFill: function CanvasGraphics_shadingFill(patternIR) {
16428 var ctx = this.ctx;
16429 this.save();
16430 var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);
16431 ctx.fillStyle = pattern.getPattern(ctx, this, true);
16432 var inv = ctx.mozCurrentTransformInverse;
16433
16434 if (inv) {
16435 var canvas = ctx.canvas;
16436 var width = canvas.width;
16437 var height = canvas.height;
16438
16439 var bl = _util.Util.applyTransform([0, 0], inv);
16440
16441 var br = _util.Util.applyTransform([0, height], inv);
16442
16443 var ul = _util.Util.applyTransform([width, 0], inv);
16444
16445 var ur = _util.Util.applyTransform([width, height], inv);
16446
16447 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
16448 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
16449 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
16450 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
16451 this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
16452 } else {
16453 this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
16454 }
16455
16456 this.restore();
16457 },
16458 beginInlineImage: function CanvasGraphics_beginInlineImage() {
16459 (0, _util.unreachable)("Should not call beginInlineImage");
16460 },
16461 beginImageData: function CanvasGraphics_beginImageData() {
16462 (0, _util.unreachable)("Should not call beginImageData");
16463 },
16464 paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {
16465 this.save();
16466 this.baseTransformStack.push(this.baseTransform);
16467
16468 if (Array.isArray(matrix) && matrix.length === 6) {
16469 this.transform.apply(this, matrix);
16470 }
16471
16472 this.baseTransform = this.ctx.mozCurrentTransform;
16473
16474 if (bbox) {
16475 var width = bbox[2] - bbox[0];
16476 var height = bbox[3] - bbox[1];
16477 this.ctx.rect(bbox[0], bbox[1], width, height);
16478 this.clip();
16479 this.endPath();
16480 }
16481 },
16482 paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
16483 this.restore();
16484 this.baseTransform = this.baseTransformStack.pop();
16485 },
16486 beginGroup: function CanvasGraphics_beginGroup(group) {
16487 this.save();
16488 var currentCtx = this.ctx;
16489
16490 if (!group.isolated) {
16491 (0, _util.info)("TODO: Support non-isolated groups.");
16492 }
16493
16494 if (group.knockout) {
16495 (0, _util.warn)("Knockout groups not supported.");
16496 }
16497
16498 var currentTransform = currentCtx.mozCurrentTransform;
16499
16500 if (group.matrix) {
16501 currentCtx.transform.apply(currentCtx, group.matrix);
16502 }
16503
16504 if (!group.bbox) {
16505 throw new Error("Bounding box is required.");
16506 }
16507
16508 var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);
16509
16510 var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];
16511 bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];
16512 var offsetX = Math.floor(bounds[0]);
16513 var offsetY = Math.floor(bounds[1]);
16514 var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);
16515 var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);
16516 var scaleX = 1,
16517 scaleY = 1;
16518
16519 if (drawnWidth > MAX_GROUP_SIZE) {
16520 scaleX = drawnWidth / MAX_GROUP_SIZE;
16521 drawnWidth = MAX_GROUP_SIZE;
16522 }
16523
16524 if (drawnHeight > MAX_GROUP_SIZE) {
16525 scaleY = drawnHeight / MAX_GROUP_SIZE;
16526 drawnHeight = MAX_GROUP_SIZE;
16527 }
16528
16529 var cacheId = "groupAt" + this.groupLevel;
16530
16531 if (group.smask) {
16532 cacheId += "_smask_" + this.smaskCounter++ % 2;
16533 }
16534
16535 var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
16536 var groupCtx = scratchCanvas.context;
16537 groupCtx.scale(1 / scaleX, 1 / scaleY);
16538 groupCtx.translate(-offsetX, -offsetY);
16539 groupCtx.transform.apply(groupCtx, currentTransform);
16540
16541 if (group.smask) {
16542 this.smaskStack.push({
16543 canvas: scratchCanvas.canvas,
16544 context: groupCtx,
16545 offsetX: offsetX,
16546 offsetY: offsetY,
16547 scaleX: scaleX,
16548 scaleY: scaleY,
16549 subtype: group.smask.subtype,
16550 backdrop: group.smask.backdrop,
16551 transferMap: group.smask.transferMap || null,
16552 startTransformInverse: null
16553 });
16554 } else {
16555 currentCtx.setTransform(1, 0, 0, 1, 0, 0);
16556 currentCtx.translate(offsetX, offsetY);
16557 currentCtx.scale(scaleX, scaleY);
16558 }
16559
16560 copyCtxState(currentCtx, groupCtx);
16561 this.ctx = groupCtx;
16562 this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]);
16563 this.groupStack.push(currentCtx);
16564 this.groupLevel++;
16565 this.current.activeSMask = null;
16566 },
16567 endGroup: function CanvasGraphics_endGroup(group) {
16568 this.groupLevel--;
16569 var groupCtx = this.ctx;
16570 this.ctx = this.groupStack.pop();
16571
16572 if (this.ctx.imageSmoothingEnabled !== undefined) {
16573 this.ctx.imageSmoothingEnabled = false;
16574 } else {
16575 this.ctx.mozImageSmoothingEnabled = false;
16576 }
16577
16578 if (group.smask) {
16579 this.tempSMask = this.smaskStack.pop();
16580 } else {
16581 this.ctx.drawImage(groupCtx.canvas, 0, 0);
16582 }
16583
16584 this.restore();
16585 },
16586 beginAnnotations: function CanvasGraphics_beginAnnotations() {
16587 this.save();
16588
16589 if (this.baseTransform) {
16590 this.ctx.setTransform.apply(this.ctx, this.baseTransform);
16591 }
16592 },
16593 endAnnotations: function CanvasGraphics_endAnnotations() {
16594 this.restore();
16595 },
16596 beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {
16597 this.save();
16598 resetCtxToDefault(this.ctx);
16599 this.current = new CanvasExtraState();
16600
16601 if (Array.isArray(rect) && rect.length === 4) {
16602 var width = rect[2] - rect[0];
16603 var height = rect[3] - rect[1];
16604 this.ctx.rect(rect[0], rect[1], width, height);
16605 this.clip();
16606 this.endPath();
16607 }
16608
16609 this.transform.apply(this, transform);
16610 this.transform.apply(this, matrix);
16611 },
16612 endAnnotation: function CanvasGraphics_endAnnotation() {
16613 this.restore();
16614 },
16615 paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
16616 var domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
16617
16618 if (!domImage) {
16619 (0, _util.warn)("Dependent image isn't ready yet");
16620 return;
16621 }
16622
16623 this.save();
16624 var ctx = this.ctx;
16625 ctx.scale(1 / w, -1 / h);
16626 ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);
16627
16628 if (this.imageLayer) {
16629 var currentTransform = ctx.mozCurrentTransformInverse;
16630 var position = this.getCanvasPosition(0, 0);
16631 this.imageLayer.appendImage({
16632 objId: objId,
16633 left: position[0],
16634 top: position[1],
16635 width: w / currentTransform[0],
16636 height: h / currentTransform[3]
16637 });
16638 }
16639
16640 this.restore();
16641 },
16642 paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {
16643 var ctx = this.ctx;
16644 var width = img.width,
16645 height = img.height;
16646 var fillColor = this.current.fillColor;
16647 var isPatternFill = this.current.patternFill;
16648 var glyph = this.processingType3;
16649
16650 if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {
16651 if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {
16652 glyph.compiled = compileType3Glyph({
16653 data: img.data,
16654 width: width,
16655 height: height
16656 });
16657 } else {
16658 glyph.compiled = null;
16659 }
16660 }
16661
16662 if (glyph && glyph.compiled) {
16663 glyph.compiled(ctx);
16664 return;
16665 }
16666
16667 var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
16668 var maskCtx = maskCanvas.context;
16669 maskCtx.save();
16670 putBinaryImageMask(maskCtx, img);
16671 maskCtx.globalCompositeOperation = "source-in";
16672 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
16673 maskCtx.fillRect(0, 0, width, height);
16674 maskCtx.restore();
16675 this.paintInlineImageXObject(maskCanvas.canvas);
16676 },
16677 paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {
16678 var width = imgData.width;
16679 var height = imgData.height;
16680 var fillColor = this.current.fillColor;
16681 var isPatternFill = this.current.patternFill;
16682 var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
16683 var maskCtx = maskCanvas.context;
16684 maskCtx.save();
16685 putBinaryImageMask(maskCtx, imgData);
16686 maskCtx.globalCompositeOperation = "source-in";
16687 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
16688 maskCtx.fillRect(0, 0, width, height);
16689 maskCtx.restore();
16690 var ctx = this.ctx;
16691
16692 for (var i = 0, ii = positions.length; i < ii; i += 2) {
16693 ctx.save();
16694 ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);
16695 ctx.scale(1, -1);
16696 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
16697 ctx.restore();
16698 }
16699 },
16700 paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {
16701 var ctx = this.ctx;
16702 var fillColor = this.current.fillColor;
16703 var isPatternFill = this.current.patternFill;
16704
16705 for (var i = 0, ii = images.length; i < ii; i++) {
16706 var image = images[i];
16707 var width = image.width,
16708 height = image.height;
16709 var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
16710 var maskCtx = maskCanvas.context;
16711 maskCtx.save();
16712 putBinaryImageMask(maskCtx, image);
16713 maskCtx.globalCompositeOperation = "source-in";
16714 maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
16715 maskCtx.fillRect(0, 0, width, height);
16716 maskCtx.restore();
16717 ctx.save();
16718 ctx.transform.apply(ctx, image.transform);
16719 ctx.scale(1, -1);
16720 ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
16721 ctx.restore();
16722 }
16723 },
16724 paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {
16725 var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
16726
16727 if (!imgData) {
16728 (0, _util.warn)("Dependent image isn't ready yet");
16729 return;
16730 }
16731
16732 this.paintInlineImageXObject(imgData);
16733 },
16734 paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {
16735 var imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
16736
16737 if (!imgData) {
16738 (0, _util.warn)("Dependent image isn't ready yet");
16739 return;
16740 }
16741
16742 var width = imgData.width;
16743 var height = imgData.height;
16744 var map = [];
16745
16746 for (var i = 0, ii = positions.length; i < ii; i += 2) {
16747 map.push({
16748 transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],
16749 x: 0,
16750 y: 0,
16751 w: width,
16752 h: height
16753 });
16754 }
16755
16756 this.paintInlineImageXObjectGroup(imgData, map);
16757 },
16758 paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {
16759 var width = imgData.width;
16760 var height = imgData.height;
16761 var ctx = this.ctx;
16762 this.save();
16763 ctx.scale(1 / width, -1 / height);
16764 var currentTransform = ctx.mozCurrentTransformInverse;
16765 var a = currentTransform[0],
16766 b = currentTransform[1];
16767 var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);
16768 var c = currentTransform[2],
16769 d = currentTransform[3];
16770 var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);
16771 var imgToPaint, tmpCanvas;
16772
16773 if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) {
16774 imgToPaint = imgData;
16775 } else {
16776 tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height);
16777 var tmpCtx = tmpCanvas.context;
16778 putBinaryImageData(tmpCtx, imgData);
16779 imgToPaint = tmpCanvas.canvas;
16780 }
16781
16782 var paintWidth = width,
16783 paintHeight = height;
16784 var tmpCanvasId = "prescale1";
16785
16786 while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {
16787 var newWidth = paintWidth,
16788 newHeight = paintHeight;
16789
16790 if (widthScale > 2 && paintWidth > 1) {
16791 newWidth = Math.ceil(paintWidth / 2);
16792 widthScale /= paintWidth / newWidth;
16793 }
16794
16795 if (heightScale > 2 && paintHeight > 1) {
16796 newHeight = Math.ceil(paintHeight / 2);
16797 heightScale /= paintHeight / newHeight;
16798 }
16799
16800 tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);
16801 tmpCtx = tmpCanvas.context;
16802 tmpCtx.clearRect(0, 0, newWidth, newHeight);
16803 tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);
16804 imgToPaint = tmpCanvas.canvas;
16805 paintWidth = newWidth;
16806 paintHeight = newHeight;
16807 tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1";
16808 }
16809
16810 ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);
16811
16812 if (this.imageLayer) {
16813 var position = this.getCanvasPosition(0, -height);
16814 this.imageLayer.appendImage({
16815 imgData: imgData,
16816 left: position[0],
16817 top: position[1],
16818 width: width / currentTransform[0],
16819 height: height / currentTransform[3]
16820 });
16821 }
16822
16823 this.restore();
16824 },
16825 paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {
16826 var ctx = this.ctx;
16827 var w = imgData.width;
16828 var h = imgData.height;
16829 var tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h);
16830 var tmpCtx = tmpCanvas.context;
16831 putBinaryImageData(tmpCtx, imgData);
16832
16833 for (var i = 0, ii = map.length; i < ii; i++) {
16834 var entry = map[i];
16835 ctx.save();
16836 ctx.transform.apply(ctx, entry.transform);
16837 ctx.scale(1, -1);
16838 ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);
16839
16840 if (this.imageLayer) {
16841 var position = this.getCanvasPosition(entry.x, entry.y);
16842 this.imageLayer.appendImage({
16843 imgData: imgData,
16844 left: position[0],
16845 top: position[1],
16846 width: w,
16847 height: h
16848 });
16849 }
16850
16851 ctx.restore();
16852 }
16853 },
16854 paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {
16855 this.ctx.fillRect(0, 0, 1, 1);
16856 },
16857 paintXObject: function CanvasGraphics_paintXObject() {
16858 (0, _util.warn)("Unsupported 'paintXObject' command.");
16859 },
16860 markPoint: function CanvasGraphics_markPoint(tag) {},
16861 markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},
16862 beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},
16863 beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},
16864 endMarkedContent: function CanvasGraphics_endMarkedContent() {},
16865 beginCompat: function CanvasGraphics_beginCompat() {},
16866 endCompat: function CanvasGraphics_endCompat() {},
16867 consumePath: function CanvasGraphics_consumePath() {
16868 var ctx = this.ctx;
16869
16870 if (this.pendingClip) {
16871 if (this.pendingClip === EO_CLIP) {
16872 ctx.clip("evenodd");
16873 } else {
16874 ctx.clip();
16875 }
16876
16877 this.pendingClip = null;
16878 }
16879
16880 ctx.beginPath();
16881 },
16882 getSinglePixelWidth: function getSinglePixelWidth(scale) {
16883 if (this._cachedGetSinglePixelWidth === null) {
16884 var inverse = this.ctx.mozCurrentTransformInverse;
16885 this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));
16886 }
16887
16888 return this._cachedGetSinglePixelWidth;
16889 },
16890 getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {
16891 var transform = this.ctx.mozCurrentTransform;
16892 return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];
16893 }
16894 };
16895
16896 for (var op in _util.OPS) {
16897 CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];
16898 }
16899
16900 return CanvasGraphics;
16901}();
16902
16903exports.CanvasGraphics = CanvasGraphics;
16904
16905/***/ }),
16906/* 198 */
16907/***/ (function(module, exports, __w_pdfjs_require__) {
16908
16909"use strict";
16910
16911
16912Object.defineProperty(exports, "__esModule", {
16913 value: true
16914});
16915exports.getShadingPatternFromIR = getShadingPatternFromIR;
16916exports.TilingPattern = void 0;
16917
16918var _util = __w_pdfjs_require__(1);
16919
16920var ShadingIRs = {};
16921
16922function applyBoundingBox(ctx, bbox) {
16923 if (!bbox || typeof Path2D === "undefined") {
16924 return;
16925 }
16926
16927 var width = bbox[2] - bbox[0];
16928 var height = bbox[3] - bbox[1];
16929 var region = new Path2D();
16930 region.rect(bbox[0], bbox[1], width, height);
16931 ctx.clip(region);
16932}
16933
16934ShadingIRs.RadialAxial = {
16935 fromIR: function RadialAxial_fromIR(raw) {
16936 var type = raw[1];
16937 var bbox = raw[2];
16938 var colorStops = raw[3];
16939 var p0 = raw[4];
16940 var p1 = raw[5];
16941 var r0 = raw[6];
16942 var r1 = raw[7];
16943 return {
16944 type: "Pattern",
16945 getPattern: function RadialAxial_getPattern(ctx) {
16946 applyBoundingBox(ctx, bbox);
16947 var grad;
16948
16949 if (type === "axial") {
16950 grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
16951 } else if (type === "radial") {
16952 grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
16953 }
16954
16955 for (var i = 0, ii = colorStops.length; i < ii; ++i) {
16956 var c = colorStops[i];
16957 grad.addColorStop(c[0], c[1]);
16958 }
16959
16960 return grad;
16961 }
16962 };
16963 }
16964};
16965
16966var createMeshCanvas = function createMeshCanvasClosure() {
16967 function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {
16968 var coords = context.coords,
16969 colors = context.colors;
16970 var bytes = data.data,
16971 rowSize = data.width * 4;
16972 var tmp;
16973
16974 if (coords[p1 + 1] > coords[p2 + 1]) {
16975 tmp = p1;
16976 p1 = p2;
16977 p2 = tmp;
16978 tmp = c1;
16979 c1 = c2;
16980 c2 = tmp;
16981 }
16982
16983 if (coords[p2 + 1] > coords[p3 + 1]) {
16984 tmp = p2;
16985 p2 = p3;
16986 p3 = tmp;
16987 tmp = c2;
16988 c2 = c3;
16989 c3 = tmp;
16990 }
16991
16992 if (coords[p1 + 1] > coords[p2 + 1]) {
16993 tmp = p1;
16994 p1 = p2;
16995 p2 = tmp;
16996 tmp = c1;
16997 c1 = c2;
16998 c2 = tmp;
16999 }
17000
17001 var x1 = (coords[p1] + context.offsetX) * context.scaleX;
17002 var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;
17003 var x2 = (coords[p2] + context.offsetX) * context.scaleX;
17004 var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;
17005 var x3 = (coords[p3] + context.offsetX) * context.scaleX;
17006 var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;
17007
17008 if (y1 >= y3) {
17009 return;
17010 }
17011
17012 var c1r = colors[c1],
17013 c1g = colors[c1 + 1],
17014 c1b = colors[c1 + 2];
17015 var c2r = colors[c2],
17016 c2g = colors[c2 + 1],
17017 c2b = colors[c2 + 2];
17018 var c3r = colors[c3],
17019 c3g = colors[c3 + 1],
17020 c3b = colors[c3 + 2];
17021 var minY = Math.round(y1),
17022 maxY = Math.round(y3);
17023 var xa, car, cag, cab;
17024 var xb, cbr, cbg, cbb;
17025
17026 for (var y = minY; y <= maxY; y++) {
17027 if (y < y2) {
17028 var _k = void 0;
17029
17030 if (y < y1) {
17031 _k = 0;
17032 } else if (y1 === y2) {
17033 _k = 1;
17034 } else {
17035 _k = (y1 - y) / (y1 - y2);
17036 }
17037
17038 xa = x1 - (x1 - x2) * _k;
17039 car = c1r - (c1r - c2r) * _k;
17040 cag = c1g - (c1g - c2g) * _k;
17041 cab = c1b - (c1b - c2b) * _k;
17042 } else {
17043 var _k2 = void 0;
17044
17045 if (y > y3) {
17046 _k2 = 1;
17047 } else if (y2 === y3) {
17048 _k2 = 0;
17049 } else {
17050 _k2 = (y2 - y) / (y2 - y3);
17051 }
17052
17053 xa = x2 - (x2 - x3) * _k2;
17054 car = c2r - (c2r - c3r) * _k2;
17055 cag = c2g - (c2g - c3g) * _k2;
17056 cab = c2b - (c2b - c3b) * _k2;
17057 }
17058
17059 var k = void 0;
17060
17061 if (y < y1) {
17062 k = 0;
17063 } else if (y > y3) {
17064 k = 1;
17065 } else {
17066 k = (y1 - y) / (y1 - y3);
17067 }
17068
17069 xb = x1 - (x1 - x3) * k;
17070 cbr = c1r - (c1r - c3r) * k;
17071 cbg = c1g - (c1g - c3g) * k;
17072 cbb = c1b - (c1b - c3b) * k;
17073 var x1_ = Math.round(Math.min(xa, xb));
17074 var x2_ = Math.round(Math.max(xa, xb));
17075 var j = rowSize * y + x1_ * 4;
17076
17077 for (var x = x1_; x <= x2_; x++) {
17078 var _k3 = (xa - x) / (xa - xb);
17079
17080 if (_k3 < 0) {
17081 _k3 = 0;
17082 } else if (_k3 > 1) {
17083 _k3 = 1;
17084 }
17085
17086 bytes[j++] = car - (car - cbr) * _k3 | 0;
17087 bytes[j++] = cag - (cag - cbg) * _k3 | 0;
17088 bytes[j++] = cab - (cab - cbb) * _k3 | 0;
17089 bytes[j++] = 255;
17090 }
17091 }
17092 }
17093
17094 function drawFigure(data, figure, context) {
17095 var ps = figure.coords;
17096 var cs = figure.colors;
17097 var i, ii;
17098
17099 switch (figure.type) {
17100 case "lattice":
17101 var verticesPerRow = figure.verticesPerRow;
17102 var rows = Math.floor(ps.length / verticesPerRow) - 1;
17103 var cols = verticesPerRow - 1;
17104
17105 for (i = 0; i < rows; i++) {
17106 var q = i * verticesPerRow;
17107
17108 for (var j = 0; j < cols; j++, q++) {
17109 drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);
17110 drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);
17111 }
17112 }
17113
17114 break;
17115
17116 case "triangles":
17117 for (i = 0, ii = ps.length; i < ii; i += 3) {
17118 drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);
17119 }
17120
17121 break;
17122
17123 default:
17124 throw new Error("illegal figure");
17125 }
17126 }
17127
17128 function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {
17129 var EXPECTED_SCALE = 1.1;
17130 var MAX_PATTERN_SIZE = 3000;
17131 var BORDER_SIZE = 2;
17132 var offsetX = Math.floor(bounds[0]);
17133 var offsetY = Math.floor(bounds[1]);
17134 var boundsWidth = Math.ceil(bounds[2]) - offsetX;
17135 var boundsHeight = Math.ceil(bounds[3]) - offsetY;
17136 var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
17137 var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
17138 var scaleX = boundsWidth / width;
17139 var scaleY = boundsHeight / height;
17140 var context = {
17141 coords: coords,
17142 colors: colors,
17143 offsetX: -offsetX,
17144 offsetY: -offsetY,
17145 scaleX: 1 / scaleX,
17146 scaleY: 1 / scaleY
17147 };
17148 var paddedWidth = width + BORDER_SIZE * 2;
17149 var paddedHeight = height + BORDER_SIZE * 2;
17150 var canvas, tmpCanvas, i, ii;
17151
17152 if (webGLContext.isEnabled) {
17153 canvas = webGLContext.drawFigures({
17154 width: width,
17155 height: height,
17156 backgroundColor: backgroundColor,
17157 figures: figures,
17158 context: context
17159 });
17160 tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false);
17161 tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);
17162 canvas = tmpCanvas.canvas;
17163 } else {
17164 tmpCanvas = cachedCanvases.getCanvas("mesh", paddedWidth, paddedHeight, false);
17165 var tmpCtx = tmpCanvas.context;
17166 var data = tmpCtx.createImageData(width, height);
17167
17168 if (backgroundColor) {
17169 var bytes = data.data;
17170
17171 for (i = 0, ii = bytes.length; i < ii; i += 4) {
17172 bytes[i] = backgroundColor[0];
17173 bytes[i + 1] = backgroundColor[1];
17174 bytes[i + 2] = backgroundColor[2];
17175 bytes[i + 3] = 255;
17176 }
17177 }
17178
17179 for (i = 0; i < figures.length; i++) {
17180 drawFigure(data, figures[i], context);
17181 }
17182
17183 tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);
17184 canvas = tmpCanvas.canvas;
17185 }
17186
17187 return {
17188 canvas: canvas,
17189 offsetX: offsetX - BORDER_SIZE * scaleX,
17190 offsetY: offsetY - BORDER_SIZE * scaleY,
17191 scaleX: scaleX,
17192 scaleY: scaleY
17193 };
17194 }
17195
17196 return createMeshCanvas;
17197}();
17198
17199ShadingIRs.Mesh = {
17200 fromIR: function Mesh_fromIR(raw) {
17201 var coords = raw[2];
17202 var colors = raw[3];
17203 var figures = raw[4];
17204 var bounds = raw[5];
17205 var matrix = raw[6];
17206 var bbox = raw[7];
17207 var background = raw[8];
17208 return {
17209 type: "Pattern",
17210 getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
17211 applyBoundingBox(ctx, bbox);
17212 var scale;
17213
17214 if (shadingFill) {
17215 scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
17216 } else {
17217 scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);
17218
17219 if (matrix) {
17220 var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);
17221
17222 scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];
17223 }
17224 }
17225
17226 var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);
17227
17228 if (!shadingFill) {
17229 ctx.setTransform.apply(ctx, owner.baseTransform);
17230
17231 if (matrix) {
17232 ctx.transform.apply(ctx, matrix);
17233 }
17234 }
17235
17236 ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
17237 ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);
17238 return ctx.createPattern(temporaryPatternCanvas.canvas, "no-repeat");
17239 }
17240 };
17241 }
17242};
17243ShadingIRs.Dummy = {
17244 fromIR: function Dummy_fromIR() {
17245 return {
17246 type: "Pattern",
17247 getPattern: function Dummy_fromIR_getPattern() {
17248 return "hotpink";
17249 }
17250 };
17251 }
17252};
17253
17254function getShadingPatternFromIR(raw) {
17255 var shadingIR = ShadingIRs[raw[0]];
17256
17257 if (!shadingIR) {
17258 throw new Error("Unknown IR type: ".concat(raw[0]));
17259 }
17260
17261 return shadingIR.fromIR(raw);
17262}
17263
17264var TilingPattern = function TilingPatternClosure() {
17265 var PaintType = {
17266 COLORED: 1,
17267 UNCOLORED: 2
17268 };
17269 var MAX_PATTERN_SIZE = 3000;
17270
17271 function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {
17272 this.operatorList = IR[2];
17273 this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];
17274 this.bbox = IR[4];
17275 this.xstep = IR[5];
17276 this.ystep = IR[6];
17277 this.paintType = IR[7];
17278 this.tilingType = IR[8];
17279 this.color = color;
17280 this.canvasGraphicsFactory = canvasGraphicsFactory;
17281 this.baseTransform = baseTransform;
17282 this.type = "Pattern";
17283 this.ctx = ctx;
17284 }
17285
17286 TilingPattern.prototype = {
17287 createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {
17288 var operatorList = this.operatorList;
17289 var bbox = this.bbox;
17290 var xstep = this.xstep;
17291 var ystep = this.ystep;
17292 var paintType = this.paintType;
17293 var tilingType = this.tilingType;
17294 var color = this.color;
17295 var canvasGraphicsFactory = this.canvasGraphicsFactory;
17296 (0, _util.info)("TilingType: " + tilingType);
17297 var x0 = bbox[0],
17298 y0 = bbox[1],
17299 x1 = bbox[2],
17300 y1 = bbox[3];
17301
17302 var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);
17303
17304 var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);
17305
17306 var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];
17307 var dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);
17308 var dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);
17309 var tmpCanvas = owner.cachedCanvases.getCanvas("pattern", dimx.size, dimy.size, true);
17310 var tmpCtx = tmpCanvas.context;
17311 var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);
17312 graphics.groupLevel = owner.groupLevel;
17313 this.setFillAndStrokeStyleToContext(graphics, paintType, color);
17314 graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);
17315 graphics.transform(1, 0, 0, 1, -x0, -y0);
17316 this.clipBbox(graphics, bbox, x0, y0, x1, y1);
17317 graphics.executeOperatorList(operatorList);
17318 this.ctx.transform(1, 0, 0, 1, x0, y0);
17319 this.ctx.scale(1 / dimx.scale, 1 / dimy.scale);
17320 return tmpCanvas.canvas;
17321 },
17322 getSizeAndScale: function TilingPattern_getSizeAndScale(step, realOutputSize, scale) {
17323 step = Math.abs(step);
17324 var maxSize = Math.max(MAX_PATTERN_SIZE, realOutputSize);
17325 var size = Math.ceil(step * scale);
17326
17327 if (size >= maxSize) {
17328 size = maxSize;
17329 } else {
17330 scale = size / step;
17331 }
17332
17333 return {
17334 scale: scale,
17335 size: size
17336 };
17337 },
17338 clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {
17339 if (Array.isArray(bbox) && bbox.length === 4) {
17340 var bboxWidth = x1 - x0;
17341 var bboxHeight = y1 - y0;
17342 graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);
17343 graphics.clip();
17344 graphics.endPath();
17345 }
17346 },
17347 setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {
17348 var context = graphics.ctx,
17349 current = graphics.current;
17350
17351 switch (paintType) {
17352 case PaintType.COLORED:
17353 var ctx = this.ctx;
17354 context.fillStyle = ctx.fillStyle;
17355 context.strokeStyle = ctx.strokeStyle;
17356 current.fillColor = ctx.fillStyle;
17357 current.strokeColor = ctx.strokeStyle;
17358 break;
17359
17360 case PaintType.UNCOLORED:
17361 var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);
17362
17363 context.fillStyle = cssColor;
17364 context.strokeStyle = cssColor;
17365 current.fillColor = cssColor;
17366 current.strokeColor = cssColor;
17367 break;
17368
17369 default:
17370 throw new _util.FormatError("Unsupported paint type: ".concat(paintType));
17371 }
17372 },
17373 getPattern: function TilingPattern_getPattern(ctx, owner) {
17374 ctx = this.ctx;
17375 ctx.setTransform.apply(ctx, this.baseTransform);
17376 ctx.transform.apply(ctx, this.matrix);
17377 var temporaryPatternCanvas = this.createPatternCanvas(owner);
17378 return ctx.createPattern(temporaryPatternCanvas, "repeat");
17379 }
17380 };
17381 return TilingPattern;
17382}();
17383
17384exports.TilingPattern = TilingPattern;
17385
17386/***/ }),
17387/* 199 */
17388/***/ (function(module, exports, __w_pdfjs_require__) {
17389
17390"use strict";
17391
17392
17393Object.defineProperty(exports, "__esModule", {
17394 value: true
17395});
17396exports.GlobalWorkerOptions = void 0;
17397var GlobalWorkerOptions = Object.create(null);
17398exports.GlobalWorkerOptions = GlobalWorkerOptions;
17399GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;
17400GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? "" : GlobalWorkerOptions.workerSrc;
17401
17402/***/ }),
17403/* 200 */
17404/***/ (function(module, exports, __w_pdfjs_require__) {
17405
17406"use strict";
17407
17408
17409Object.defineProperty(exports, "__esModule", {
17410 value: true
17411});
17412exports.MessageHandler = void 0;
17413
17414var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
17415
17416var _util = __w_pdfjs_require__(1);
17417
17418function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
17419
17420function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
17421
17422function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
17423
17424function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17425
17426function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17427
17428function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17429
17430function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17431
17432var CallbackKind = {
17433 UNKNOWN: 0,
17434 DATA: 1,
17435 ERROR: 2
17436};
17437var StreamKind = {
17438 UNKNOWN: 0,
17439 CANCEL: 1,
17440 CANCEL_COMPLETE: 2,
17441 CLOSE: 3,
17442 ENQUEUE: 4,
17443 ERROR: 5,
17444 PULL: 6,
17445 PULL_COMPLETE: 7,
17446 START_COMPLETE: 8
17447};
17448
17449function wrapReason(reason) {
17450 if (_typeof(reason) !== "object" || reason === null) {
17451 return reason;
17452 }
17453
17454 switch (reason.name) {
17455 case "AbortException":
17456 return new _util.AbortException(reason.message);
17457
17458 case "MissingPDFException":
17459 return new _util.MissingPDFException(reason.message);
17460
17461 case "UnexpectedResponseException":
17462 return new _util.UnexpectedResponseException(reason.message, reason.status);
17463
17464 case "UnknownErrorException":
17465 return new _util.UnknownErrorException(reason.message, reason.details);
17466
17467 default:
17468 return new _util.UnknownErrorException(reason.message, reason.toString());
17469 }
17470}
17471
17472var MessageHandler = /*#__PURE__*/function () {
17473 function MessageHandler(sourceName, targetName, comObj) {
17474 var _this = this;
17475
17476 _classCallCheck(this, MessageHandler);
17477
17478 this.sourceName = sourceName;
17479 this.targetName = targetName;
17480 this.comObj = comObj;
17481 this.callbackId = 1;
17482 this.streamId = 1;
17483 this.postMessageTransfers = true;
17484 this.streamSinks = Object.create(null);
17485 this.streamControllers = Object.create(null);
17486 this.callbackCapabilities = Object.create(null);
17487 this.actionHandler = Object.create(null);
17488
17489 this._onComObjOnMessage = function (event) {
17490 var data = event.data;
17491
17492 if (data.targetName !== _this.sourceName) {
17493 return;
17494 }
17495
17496 if (data.stream) {
17497 _this._processStreamMessage(data);
17498
17499 return;
17500 }
17501
17502 if (data.callback) {
17503 var callbackId = data.callbackId;
17504 var capability = _this.callbackCapabilities[callbackId];
17505
17506 if (!capability) {
17507 throw new Error("Cannot resolve callback ".concat(callbackId));
17508 }
17509
17510 delete _this.callbackCapabilities[callbackId];
17511
17512 if (data.callback === CallbackKind.DATA) {
17513 capability.resolve(data.data);
17514 } else if (data.callback === CallbackKind.ERROR) {
17515 capability.reject(wrapReason(data.reason));
17516 } else {
17517 throw new Error("Unexpected callback case");
17518 }
17519
17520 return;
17521 }
17522
17523 var action = _this.actionHandler[data.action];
17524
17525 if (!action) {
17526 throw new Error("Unknown action from worker: ".concat(data.action));
17527 }
17528
17529 if (data.callbackId) {
17530 var _sourceName = _this.sourceName;
17531 var _targetName = data.sourceName;
17532 new Promise(function (resolve) {
17533 resolve(action(data.data));
17534 }).then(function (result) {
17535 comObj.postMessage({
17536 sourceName: _sourceName,
17537 targetName: _targetName,
17538 callback: CallbackKind.DATA,
17539 callbackId: data.callbackId,
17540 data: result
17541 });
17542 }, function (reason) {
17543 comObj.postMessage({
17544 sourceName: _sourceName,
17545 targetName: _targetName,
17546 callback: CallbackKind.ERROR,
17547 callbackId: data.callbackId,
17548 reason: wrapReason(reason)
17549 });
17550 });
17551 return;
17552 }
17553
17554 if (data.streamId) {
17555 _this._createStreamSink(data);
17556
17557 return;
17558 }
17559
17560 action(data.data);
17561 };
17562
17563 comObj.addEventListener("message", this._onComObjOnMessage);
17564 }
17565
17566 _createClass(MessageHandler, [{
17567 key: "on",
17568 value: function on(actionName, handler) {
17569 var ah = this.actionHandler;
17570
17571 if (ah[actionName]) {
17572 throw new Error("There is already an actionName called \"".concat(actionName, "\""));
17573 }
17574
17575 ah[actionName] = handler;
17576 }
17577 }, {
17578 key: "send",
17579 value: function send(actionName, data, transfers) {
17580 this._postMessage({
17581 sourceName: this.sourceName,
17582 targetName: this.targetName,
17583 action: actionName,
17584 data: data
17585 }, transfers);
17586 }
17587 }, {
17588 key: "sendWithPromise",
17589 value: function sendWithPromise(actionName, data, transfers) {
17590 var callbackId = this.callbackId++;
17591 var capability = (0, _util.createPromiseCapability)();
17592 this.callbackCapabilities[callbackId] = capability;
17593
17594 try {
17595 this._postMessage({
17596 sourceName: this.sourceName,
17597 targetName: this.targetName,
17598 action: actionName,
17599 callbackId: callbackId,
17600 data: data
17601 }, transfers);
17602 } catch (ex) {
17603 capability.reject(ex);
17604 }
17605
17606 return capability.promise;
17607 }
17608 }, {
17609 key: "sendWithStream",
17610 value: function sendWithStream(actionName, data, queueingStrategy, transfers) {
17611 var _this2 = this;
17612
17613 var streamId = this.streamId++;
17614 var sourceName = this.sourceName;
17615 var targetName = this.targetName;
17616 var comObj = this.comObj;
17617 return new ReadableStream({
17618 start: function start(controller) {
17619 var startCapability = (0, _util.createPromiseCapability)();
17620 _this2.streamControllers[streamId] = {
17621 controller: controller,
17622 startCall: startCapability,
17623 pullCall: null,
17624 cancelCall: null,
17625 isClosed: false
17626 };
17627
17628 _this2._postMessage({
17629 sourceName: sourceName,
17630 targetName: targetName,
17631 action: actionName,
17632 streamId: streamId,
17633 data: data,
17634 desiredSize: controller.desiredSize
17635 }, transfers);
17636
17637 return startCapability.promise;
17638 },
17639 pull: function pull(controller) {
17640 var pullCapability = (0, _util.createPromiseCapability)();
17641 _this2.streamControllers[streamId].pullCall = pullCapability;
17642 comObj.postMessage({
17643 sourceName: sourceName,
17644 targetName: targetName,
17645 stream: StreamKind.PULL,
17646 streamId: streamId,
17647 desiredSize: controller.desiredSize
17648 });
17649 return pullCapability.promise;
17650 },
17651 cancel: function cancel(reason) {
17652 (0, _util.assert)(reason instanceof Error, "cancel must have a valid reason");
17653 var cancelCapability = (0, _util.createPromiseCapability)();
17654 _this2.streamControllers[streamId].cancelCall = cancelCapability;
17655 _this2.streamControllers[streamId].isClosed = true;
17656 comObj.postMessage({
17657 sourceName: sourceName,
17658 targetName: targetName,
17659 stream: StreamKind.CANCEL,
17660 streamId: streamId,
17661 reason: wrapReason(reason)
17662 });
17663 return cancelCapability.promise;
17664 }
17665 }, queueingStrategy);
17666 }
17667 }, {
17668 key: "_createStreamSink",
17669 value: function _createStreamSink(data) {
17670 var self = this;
17671 var action = this.actionHandler[data.action];
17672 var streamId = data.streamId;
17673 var sourceName = this.sourceName;
17674 var targetName = data.sourceName;
17675 var comObj = this.comObj;
17676 var streamSink = {
17677 enqueue: function enqueue(chunk) {
17678 var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
17679 var transfers = arguments.length > 2 ? arguments[2] : undefined;
17680
17681 if (this.isCancelled) {
17682 return;
17683 }
17684
17685 var lastDesiredSize = this.desiredSize;
17686 this.desiredSize -= size;
17687
17688 if (lastDesiredSize > 0 && this.desiredSize <= 0) {
17689 this.sinkCapability = (0, _util.createPromiseCapability)();
17690 this.ready = this.sinkCapability.promise;
17691 }
17692
17693 self._postMessage({
17694 sourceName: sourceName,
17695 targetName: targetName,
17696 stream: StreamKind.ENQUEUE,
17697 streamId: streamId,
17698 chunk: chunk
17699 }, transfers);
17700 },
17701 close: function close() {
17702 if (this.isCancelled) {
17703 return;
17704 }
17705
17706 this.isCancelled = true;
17707 comObj.postMessage({
17708 sourceName: sourceName,
17709 targetName: targetName,
17710 stream: StreamKind.CLOSE,
17711 streamId: streamId
17712 });
17713 delete self.streamSinks[streamId];
17714 },
17715 error: function error(reason) {
17716 (0, _util.assert)(reason instanceof Error, "error must have a valid reason");
17717
17718 if (this.isCancelled) {
17719 return;
17720 }
17721
17722 this.isCancelled = true;
17723 comObj.postMessage({
17724 sourceName: sourceName,
17725 targetName: targetName,
17726 stream: StreamKind.ERROR,
17727 streamId: streamId,
17728 reason: wrapReason(reason)
17729 });
17730 },
17731 sinkCapability: (0, _util.createPromiseCapability)(),
17732 onPull: null,
17733 onCancel: null,
17734 isCancelled: false,
17735 desiredSize: data.desiredSize,
17736 ready: null
17737 };
17738 streamSink.sinkCapability.resolve();
17739 streamSink.ready = streamSink.sinkCapability.promise;
17740 this.streamSinks[streamId] = streamSink;
17741 new Promise(function (resolve) {
17742 resolve(action(data.data, streamSink));
17743 }).then(function () {
17744 comObj.postMessage({
17745 sourceName: sourceName,
17746 targetName: targetName,
17747 stream: StreamKind.START_COMPLETE,
17748 streamId: streamId,
17749 success: true
17750 });
17751 }, function (reason) {
17752 comObj.postMessage({
17753 sourceName: sourceName,
17754 targetName: targetName,
17755 stream: StreamKind.START_COMPLETE,
17756 streamId: streamId,
17757 reason: wrapReason(reason)
17758 });
17759 });
17760 }
17761 }, {
17762 key: "_processStreamMessage",
17763 value: function _processStreamMessage(data) {
17764 var streamId = data.streamId;
17765 var sourceName = this.sourceName;
17766 var targetName = data.sourceName;
17767 var comObj = this.comObj;
17768
17769 switch (data.stream) {
17770 case StreamKind.START_COMPLETE:
17771 if (data.success) {
17772 this.streamControllers[streamId].startCall.resolve();
17773 } else {
17774 this.streamControllers[streamId].startCall.reject(wrapReason(data.reason));
17775 }
17776
17777 break;
17778
17779 case StreamKind.PULL_COMPLETE:
17780 if (data.success) {
17781 this.streamControllers[streamId].pullCall.resolve();
17782 } else {
17783 this.streamControllers[streamId].pullCall.reject(wrapReason(data.reason));
17784 }
17785
17786 break;
17787
17788 case StreamKind.PULL:
17789 if (!this.streamSinks[streamId]) {
17790 comObj.postMessage({
17791 sourceName: sourceName,
17792 targetName: targetName,
17793 stream: StreamKind.PULL_COMPLETE,
17794 streamId: streamId,
17795 success: true
17796 });
17797 break;
17798 }
17799
17800 if (this.streamSinks[streamId].desiredSize <= 0 && data.desiredSize > 0) {
17801 this.streamSinks[streamId].sinkCapability.resolve();
17802 }
17803
17804 this.streamSinks[streamId].desiredSize = data.desiredSize;
17805 var onPull = this.streamSinks[data.streamId].onPull;
17806 new Promise(function (resolve) {
17807 resolve(onPull && onPull());
17808 }).then(function () {
17809 comObj.postMessage({
17810 sourceName: sourceName,
17811 targetName: targetName,
17812 stream: StreamKind.PULL_COMPLETE,
17813 streamId: streamId,
17814 success: true
17815 });
17816 }, function (reason) {
17817 comObj.postMessage({
17818 sourceName: sourceName,
17819 targetName: targetName,
17820 stream: StreamKind.PULL_COMPLETE,
17821 streamId: streamId,
17822 reason: wrapReason(reason)
17823 });
17824 });
17825 break;
17826
17827 case StreamKind.ENQUEUE:
17828 (0, _util.assert)(this.streamControllers[streamId], "enqueue should have stream controller");
17829
17830 if (this.streamControllers[streamId].isClosed) {
17831 break;
17832 }
17833
17834 this.streamControllers[streamId].controller.enqueue(data.chunk);
17835 break;
17836
17837 case StreamKind.CLOSE:
17838 (0, _util.assert)(this.streamControllers[streamId], "close should have stream controller");
17839
17840 if (this.streamControllers[streamId].isClosed) {
17841 break;
17842 }
17843
17844 this.streamControllers[streamId].isClosed = true;
17845 this.streamControllers[streamId].controller.close();
17846
17847 this._deleteStreamController(streamId);
17848
17849 break;
17850
17851 case StreamKind.ERROR:
17852 (0, _util.assert)(this.streamControllers[streamId], "error should have stream controller");
17853 this.streamControllers[streamId].controller.error(wrapReason(data.reason));
17854
17855 this._deleteStreamController(streamId);
17856
17857 break;
17858
17859 case StreamKind.CANCEL_COMPLETE:
17860 if (data.success) {
17861 this.streamControllers[streamId].cancelCall.resolve();
17862 } else {
17863 this.streamControllers[streamId].cancelCall.reject(wrapReason(data.reason));
17864 }
17865
17866 this._deleteStreamController(streamId);
17867
17868 break;
17869
17870 case StreamKind.CANCEL:
17871 if (!this.streamSinks[streamId]) {
17872 break;
17873 }
17874
17875 var onCancel = this.streamSinks[data.streamId].onCancel;
17876 new Promise(function (resolve) {
17877 resolve(onCancel && onCancel(wrapReason(data.reason)));
17878 }).then(function () {
17879 comObj.postMessage({
17880 sourceName: sourceName,
17881 targetName: targetName,
17882 stream: StreamKind.CANCEL_COMPLETE,
17883 streamId: streamId,
17884 success: true
17885 });
17886 }, function (reason) {
17887 comObj.postMessage({
17888 sourceName: sourceName,
17889 targetName: targetName,
17890 stream: StreamKind.CANCEL_COMPLETE,
17891 streamId: streamId,
17892 reason: wrapReason(reason)
17893 });
17894 });
17895 this.streamSinks[streamId].sinkCapability.reject(wrapReason(data.reason));
17896 this.streamSinks[streamId].isCancelled = true;
17897 delete this.streamSinks[streamId];
17898 break;
17899
17900 default:
17901 throw new Error("Unexpected stream case");
17902 }
17903 }
17904 }, {
17905 key: "_deleteStreamController",
17906 value: function () {
17907 var _deleteStreamController2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee(streamId) {
17908 return _regenerator["default"].wrap(function _callee$(_context) {
17909 while (1) {
17910 switch (_context.prev = _context.next) {
17911 case 0:
17912 _context.next = 2;
17913 return Promise.allSettled([this.streamControllers[streamId].startCall, this.streamControllers[streamId].pullCall, this.streamControllers[streamId].cancelCall].map(function (capability) {
17914 return capability && capability.promise;
17915 }));
17916
17917 case 2:
17918 delete this.streamControllers[streamId];
17919
17920 case 3:
17921 case "end":
17922 return _context.stop();
17923 }
17924 }
17925 }, _callee, this);
17926 }));
17927
17928 function _deleteStreamController(_x) {
17929 return _deleteStreamController2.apply(this, arguments);
17930 }
17931
17932 return _deleteStreamController;
17933 }()
17934 }, {
17935 key: "_postMessage",
17936 value: function _postMessage(message, transfers) {
17937 if (transfers && this.postMessageTransfers) {
17938 this.comObj.postMessage(message, transfers);
17939 } else {
17940 this.comObj.postMessage(message);
17941 }
17942 }
17943 }, {
17944 key: "destroy",
17945 value: function destroy() {
17946 this.comObj.removeEventListener("message", this._onComObjOnMessage);
17947 }
17948 }]);
17949
17950 return MessageHandler;
17951}();
17952
17953exports.MessageHandler = MessageHandler;
17954
17955/***/ }),
17956/* 201 */
17957/***/ (function(module, exports, __w_pdfjs_require__) {
17958
17959"use strict";
17960
17961
17962Object.defineProperty(exports, "__esModule", {
17963 value: true
17964});
17965exports.Metadata = void 0;
17966
17967var _util = __w_pdfjs_require__(1);
17968
17969var _xml_parser = __w_pdfjs_require__(202);
17970
17971function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
17972
17973function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
17974
17975function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
17976
17977function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17978
17979function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17980
17981function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
17982
17983function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17984
17985var Metadata = /*#__PURE__*/function () {
17986 function Metadata(data) {
17987 _classCallCheck(this, Metadata);
17988
17989 (0, _util.assert)(typeof data === "string", "Metadata: input is not a string");
17990 data = this._repair(data);
17991 var parser = new _xml_parser.SimpleXMLParser();
17992 var xmlDocument = parser.parseFromString(data);
17993 this._metadataMap = new Map();
17994
17995 if (xmlDocument) {
17996 this._parse(xmlDocument);
17997 }
17998 }
17999
18000 _createClass(Metadata, [{
18001 key: "_repair",
18002 value: function _repair(data) {
18003 return data.replace(/^[^<]+/, "").replace(/>\\376\\377([^<]+)/g, function (all, codes) {
18004 var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {
18005 return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);
18006 }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {
18007 switch (name) {
18008 case "amp":
18009 return "&";
18010
18011 case "apos":
18012 return "'";
18013
18014 case "gt":
18015 return ">";
18016
18017 case "lt":
18018 return "<";
18019
18020 case "quot":
18021 return '"';
18022 }
18023
18024 throw new Error("_repair: ".concat(name, " isn't defined."));
18025 });
18026 var chars = "";
18027
18028 for (var i = 0, ii = bytes.length; i < ii; i += 2) {
18029 var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);
18030
18031 if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {
18032 chars += String.fromCharCode(code);
18033 } else {
18034 chars += "&#x" + (0x10000 + code).toString(16).substring(1) + ";";
18035 }
18036 }
18037
18038 return ">" + chars;
18039 });
18040 }
18041 }, {
18042 key: "_parse",
18043 value: function _parse(xmlDocument) {
18044 var rdf = xmlDocument.documentElement;
18045
18046 if (rdf.nodeName.toLowerCase() !== "rdf:rdf") {
18047 rdf = rdf.firstChild;
18048
18049 while (rdf && rdf.nodeName.toLowerCase() !== "rdf:rdf") {
18050 rdf = rdf.nextSibling;
18051 }
18052 }
18053
18054 var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;
18055
18056 if (!rdf || nodeName !== "rdf:rdf" || !rdf.hasChildNodes()) {
18057 return;
18058 }
18059
18060 var children = rdf.childNodes;
18061
18062 for (var i = 0, ii = children.length; i < ii; i++) {
18063 var desc = children[i];
18064
18065 if (desc.nodeName.toLowerCase() !== "rdf:description") {
18066 continue;
18067 }
18068
18069 for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {
18070 if (desc.childNodes[j].nodeName.toLowerCase() !== "#text") {
18071 var entry = desc.childNodes[j];
18072 var name = entry.nodeName.toLowerCase();
18073
18074 this._metadataMap.set(name, entry.textContent.trim());
18075 }
18076 }
18077 }
18078 }
18079 }, {
18080 key: "get",
18081 value: function get(name) {
18082 return this._metadataMap.has(name) ? this._metadataMap.get(name) : null;
18083 }
18084 }, {
18085 key: "getAll",
18086 value: function getAll() {
18087 var obj = Object.create(null);
18088 var _iteratorNormalCompletion = true;
18089 var _didIteratorError = false;
18090 var _iteratorError = undefined;
18091
18092 try {
18093 for (var _iterator = this._metadataMap[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
18094 var _step$value = _slicedToArray(_step.value, 2),
18095 key = _step$value[0],
18096 value = _step$value[1];
18097
18098 obj[key] = value;
18099 }
18100 } catch (err) {
18101 _didIteratorError = true;
18102 _iteratorError = err;
18103 } finally {
18104 try {
18105 if (!_iteratorNormalCompletion && _iterator["return"] != null) {
18106 _iterator["return"]();
18107 }
18108 } finally {
18109 if (_didIteratorError) {
18110 throw _iteratorError;
18111 }
18112 }
18113 }
18114
18115 return obj;
18116 }
18117 }, {
18118 key: "has",
18119 value: function has(name) {
18120 return this._metadataMap.has(name);
18121 }
18122 }]);
18123
18124 return Metadata;
18125}();
18126
18127exports.Metadata = Metadata;
18128
18129/***/ }),
18130/* 202 */
18131/***/ (function(module, exports, __w_pdfjs_require__) {
18132
18133"use strict";
18134
18135
18136Object.defineProperty(exports, "__esModule", {
18137 value: true
18138});
18139exports.SimpleXMLParser = void 0;
18140
18141function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
18142
18143function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
18144
18145function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
18146
18147function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
18148
18149function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
18150
18151function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
18152
18153function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
18154
18155function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
18156
18157function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
18158
18159function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
18160
18161function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
18162
18163function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
18164
18165function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18166
18167function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
18168
18169function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
18170
18171var XMLParserErrorCode = {
18172 NoError: 0,
18173 EndOfDocument: -1,
18174 UnterminatedCdat: -2,
18175 UnterminatedXmlDeclaration: -3,
18176 UnterminatedDoctypeDeclaration: -4,
18177 UnterminatedComment: -5,
18178 MalformedElement: -6,
18179 OutOfMemory: -7,
18180 UnterminatedAttributeValue: -8,
18181 UnterminatedElement: -9,
18182 ElementNeverBegun: -10
18183};
18184
18185function isWhitespace(s, index) {
18186 var ch = s[index];
18187 return ch === " " || ch === "\n" || ch === "\r" || ch === "\t";
18188}
18189
18190function isWhitespaceString(s) {
18191 for (var i = 0, ii = s.length; i < ii; i++) {
18192 if (!isWhitespace(s, i)) {
18193 return false;
18194 }
18195 }
18196
18197 return true;
18198}
18199
18200var XMLParserBase = /*#__PURE__*/function () {
18201 function XMLParserBase() {
18202 _classCallCheck(this, XMLParserBase);
18203 }
18204
18205 _createClass(XMLParserBase, [{
18206 key: "_resolveEntities",
18207 value: function _resolveEntities(s) {
18208 var _this = this;
18209
18210 return s.replace(/&([^;]+);/g, function (all, entity) {
18211 if (entity.substring(0, 2) === "#x") {
18212 return String.fromCharCode(parseInt(entity.substring(2), 16));
18213 } else if (entity.substring(0, 1) === "#") {
18214 return String.fromCharCode(parseInt(entity.substring(1), 10));
18215 }
18216
18217 switch (entity) {
18218 case "lt":
18219 return "<";
18220
18221 case "gt":
18222 return ">";
18223
18224 case "amp":
18225 return "&";
18226
18227 case "quot":
18228 return '"';
18229 }
18230
18231 return _this.onResolveEntity(entity);
18232 });
18233 }
18234 }, {
18235 key: "_parseContent",
18236 value: function _parseContent(s, start) {
18237 var attributes = [];
18238 var pos = start;
18239
18240 function skipWs() {
18241 while (pos < s.length && isWhitespace(s, pos)) {
18242 ++pos;
18243 }
18244 }
18245
18246 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") {
18247 ++pos;
18248 }
18249
18250 var name = s.substring(start, pos);
18251 skipWs();
18252
18253 while (pos < s.length && s[pos] !== ">" && s[pos] !== "/" && s[pos] !== "?") {
18254 skipWs();
18255 var attrName = "",
18256 attrValue = "";
18257
18258 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== "=") {
18259 attrName += s[pos];
18260 ++pos;
18261 }
18262
18263 skipWs();
18264
18265 if (s[pos] !== "=") {
18266 return null;
18267 }
18268
18269 ++pos;
18270 skipWs();
18271 var attrEndChar = s[pos];
18272
18273 if (attrEndChar !== '"' && attrEndChar !== "'") {
18274 return null;
18275 }
18276
18277 var attrEndIndex = s.indexOf(attrEndChar, ++pos);
18278
18279 if (attrEndIndex < 0) {
18280 return null;
18281 }
18282
18283 attrValue = s.substring(pos, attrEndIndex);
18284 attributes.push({
18285 name: attrName,
18286 value: this._resolveEntities(attrValue)
18287 });
18288 pos = attrEndIndex + 1;
18289 skipWs();
18290 }
18291
18292 return {
18293 name: name,
18294 attributes: attributes,
18295 parsed: pos - start
18296 };
18297 }
18298 }, {
18299 key: "_parseProcessingInstruction",
18300 value: function _parseProcessingInstruction(s, start) {
18301 var pos = start;
18302
18303 function skipWs() {
18304 while (pos < s.length && isWhitespace(s, pos)) {
18305 ++pos;
18306 }
18307 }
18308
18309 while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== ">" && s[pos] !== "/") {
18310 ++pos;
18311 }
18312
18313 var name = s.substring(start, pos);
18314 skipWs();
18315 var attrStart = pos;
18316
18317 while (pos < s.length && (s[pos] !== "?" || s[pos + 1] !== ">")) {
18318 ++pos;
18319 }
18320
18321 var value = s.substring(attrStart, pos);
18322 return {
18323 name: name,
18324 value: value,
18325 parsed: pos - start
18326 };
18327 }
18328 }, {
18329 key: "parseXml",
18330 value: function parseXml(s) {
18331 var i = 0;
18332
18333 while (i < s.length) {
18334 var ch = s[i];
18335 var j = i;
18336
18337 if (ch === "<") {
18338 ++j;
18339 var ch2 = s[j];
18340 var q = void 0;
18341
18342 switch (ch2) {
18343 case "/":
18344 ++j;
18345 q = s.indexOf(">", j);
18346
18347 if (q < 0) {
18348 this.onError(XMLParserErrorCode.UnterminatedElement);
18349 return;
18350 }
18351
18352 this.onEndElement(s.substring(j, q));
18353 j = q + 1;
18354 break;
18355
18356 case "?":
18357 ++j;
18358
18359 var pi = this._parseProcessingInstruction(s, j);
18360
18361 if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== "?>") {
18362 this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);
18363 return;
18364 }
18365
18366 this.onPi(pi.name, pi.value);
18367 j += pi.parsed + 2;
18368 break;
18369
18370 case "!":
18371 if (s.substring(j + 1, j + 3) === "--") {
18372 q = s.indexOf("-->", j + 3);
18373
18374 if (q < 0) {
18375 this.onError(XMLParserErrorCode.UnterminatedComment);
18376 return;
18377 }
18378
18379 this.onComment(s.substring(j + 3, q));
18380 j = q + 3;
18381 } else if (s.substring(j + 1, j + 8) === "[CDATA[") {
18382 q = s.indexOf("]]>", j + 8);
18383
18384 if (q < 0) {
18385 this.onError(XMLParserErrorCode.UnterminatedCdat);
18386 return;
18387 }
18388
18389 this.onCdata(s.substring(j + 8, q));
18390 j = q + 3;
18391 } else if (s.substring(j + 1, j + 8) === "DOCTYPE") {
18392 var q2 = s.indexOf("[", j + 8);
18393 var complexDoctype = false;
18394 q = s.indexOf(">", j + 8);
18395
18396 if (q < 0) {
18397 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
18398 return;
18399 }
18400
18401 if (q2 > 0 && q > q2) {
18402 q = s.indexOf("]>", j + 8);
18403
18404 if (q < 0) {
18405 this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
18406 return;
18407 }
18408
18409 complexDoctype = true;
18410 }
18411
18412 var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));
18413 this.onDoctype(doctypeContent);
18414 j = q + (complexDoctype ? 2 : 1);
18415 } else {
18416 this.onError(XMLParserErrorCode.MalformedElement);
18417 return;
18418 }
18419
18420 break;
18421
18422 default:
18423 var content = this._parseContent(s, j);
18424
18425 if (content === null) {
18426 this.onError(XMLParserErrorCode.MalformedElement);
18427 return;
18428 }
18429
18430 var isClosed = false;
18431
18432 if (s.substring(j + content.parsed, j + content.parsed + 2) === "/>") {
18433 isClosed = true;
18434 } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== ">") {
18435 this.onError(XMLParserErrorCode.UnterminatedElement);
18436 return;
18437 }
18438
18439 this.onBeginElement(content.name, content.attributes, isClosed);
18440 j += content.parsed + (isClosed ? 2 : 1);
18441 break;
18442 }
18443 } else {
18444 while (j < s.length && s[j] !== "<") {
18445 j++;
18446 }
18447
18448 var text = s.substring(i, j);
18449 this.onText(this._resolveEntities(text));
18450 }
18451
18452 i = j;
18453 }
18454 }
18455 }, {
18456 key: "onResolveEntity",
18457 value: function onResolveEntity(name) {
18458 return "&".concat(name, ";");
18459 }
18460 }, {
18461 key: "onPi",
18462 value: function onPi(name, value) {}
18463 }, {
18464 key: "onComment",
18465 value: function onComment(text) {}
18466 }, {
18467 key: "onCdata",
18468 value: function onCdata(text) {}
18469 }, {
18470 key: "onDoctype",
18471 value: function onDoctype(doctypeContent) {}
18472 }, {
18473 key: "onText",
18474 value: function onText(text) {}
18475 }, {
18476 key: "onBeginElement",
18477 value: function onBeginElement(name, attributes, isEmpty) {}
18478 }, {
18479 key: "onEndElement",
18480 value: function onEndElement(name) {}
18481 }, {
18482 key: "onError",
18483 value: function onError(code) {}
18484 }]);
18485
18486 return XMLParserBase;
18487}();
18488
18489var SimpleDOMNode = /*#__PURE__*/function () {
18490 function SimpleDOMNode(nodeName, nodeValue) {
18491 _classCallCheck(this, SimpleDOMNode);
18492
18493 this.nodeName = nodeName;
18494 this.nodeValue = nodeValue;
18495 Object.defineProperty(this, "parentNode", {
18496 value: null,
18497 writable: true
18498 });
18499 }
18500
18501 _createClass(SimpleDOMNode, [{
18502 key: "hasChildNodes",
18503 value: function hasChildNodes() {
18504 return this.childNodes && this.childNodes.length > 0;
18505 }
18506 }, {
18507 key: "firstChild",
18508 get: function get() {
18509 return this.childNodes && this.childNodes[0];
18510 }
18511 }, {
18512 key: "nextSibling",
18513 get: function get() {
18514 var childNodes = this.parentNode.childNodes;
18515
18516 if (!childNodes) {
18517 return undefined;
18518 }
18519
18520 var index = childNodes.indexOf(this);
18521
18522 if (index === -1) {
18523 return undefined;
18524 }
18525
18526 return childNodes[index + 1];
18527 }
18528 }, {
18529 key: "textContent",
18530 get: function get() {
18531 if (!this.childNodes) {
18532 return this.nodeValue || "";
18533 }
18534
18535 return this.childNodes.map(function (child) {
18536 return child.textContent;
18537 }).join("");
18538 }
18539 }]);
18540
18541 return SimpleDOMNode;
18542}();
18543
18544var SimpleXMLParser = /*#__PURE__*/function (_XMLParserBase) {
18545 _inherits(SimpleXMLParser, _XMLParserBase);
18546
18547 function SimpleXMLParser() {
18548 var _this2;
18549
18550 _classCallCheck(this, SimpleXMLParser);
18551
18552 _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this));
18553 _this2._currentFragment = null;
18554 _this2._stack = null;
18555 _this2._errorCode = XMLParserErrorCode.NoError;
18556 return _this2;
18557 }
18558
18559 _createClass(SimpleXMLParser, [{
18560 key: "parseFromString",
18561 value: function parseFromString(data) {
18562 this._currentFragment = [];
18563 this._stack = [];
18564 this._errorCode = XMLParserErrorCode.NoError;
18565 this.parseXml(data);
18566
18567 if (this._errorCode !== XMLParserErrorCode.NoError) {
18568 return undefined;
18569 }
18570
18571 var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1),
18572 documentElement = _this$_currentFragmen[0];
18573
18574 if (!documentElement) {
18575 return undefined;
18576 }
18577
18578 return {
18579 documentElement: documentElement
18580 };
18581 }
18582 }, {
18583 key: "onResolveEntity",
18584 value: function onResolveEntity(name) {
18585 switch (name) {
18586 case "apos":
18587 return "'";
18588 }
18589
18590 return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name);
18591 }
18592 }, {
18593 key: "onText",
18594 value: function onText(text) {
18595 if (isWhitespaceString(text)) {
18596 return;
18597 }
18598
18599 var node = new SimpleDOMNode("#text", text);
18600
18601 this._currentFragment.push(node);
18602 }
18603 }, {
18604 key: "onCdata",
18605 value: function onCdata(text) {
18606 var node = new SimpleDOMNode("#text", text);
18607
18608 this._currentFragment.push(node);
18609 }
18610 }, {
18611 key: "onBeginElement",
18612 value: function onBeginElement(name, attributes, isEmpty) {
18613 var node = new SimpleDOMNode(name);
18614 node.childNodes = [];
18615
18616 this._currentFragment.push(node);
18617
18618 if (isEmpty) {
18619 return;
18620 }
18621
18622 this._stack.push(this._currentFragment);
18623
18624 this._currentFragment = node.childNodes;
18625 }
18626 }, {
18627 key: "onEndElement",
18628 value: function onEndElement(name) {
18629 this._currentFragment = this._stack.pop() || [];
18630 var lastElement = this._currentFragment[this._currentFragment.length - 1];
18631
18632 if (!lastElement) {
18633 return;
18634 }
18635
18636 for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {
18637 lastElement.childNodes[i].parentNode = lastElement;
18638 }
18639 }
18640 }, {
18641 key: "onError",
18642 value: function onError(code) {
18643 this._errorCode = code;
18644 }
18645 }]);
18646
18647 return SimpleXMLParser;
18648}(XMLParserBase);
18649
18650exports.SimpleXMLParser = SimpleXMLParser;
18651
18652/***/ }),
18653/* 203 */
18654/***/ (function(module, exports, __w_pdfjs_require__) {
18655
18656"use strict";
18657
18658
18659Object.defineProperty(exports, "__esModule", {
18660 value: true
18661});
18662exports.PDFDataTransportStream = void 0;
18663
18664var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
18665
18666var _util = __w_pdfjs_require__(1);
18667
18668function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18669
18670function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
18671
18672function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
18673
18674function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
18675
18676function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
18677
18678function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
18679
18680var PDFDataTransportStream = /*#__PURE__*/function () {
18681 function PDFDataTransportStream(params, pdfDataRangeTransport) {
18682 var _this = this;
18683
18684 _classCallCheck(this, PDFDataTransportStream);
18685
18686 (0, _util.assert)(pdfDataRangeTransport);
18687 this._queuedChunks = [];
18688 this._progressiveDone = params.progressiveDone || false;
18689 var initialData = params.initialData;
18690
18691 if (initialData && initialData.length > 0) {
18692 var buffer = new Uint8Array(initialData).buffer;
18693
18694 this._queuedChunks.push(buffer);
18695 }
18696
18697 this._pdfDataRangeTransport = pdfDataRangeTransport;
18698 this._isStreamingSupported = !params.disableStream;
18699 this._isRangeSupported = !params.disableRange;
18700 this._contentLength = params.length;
18701 this._fullRequestReader = null;
18702 this._rangeReaders = [];
18703
18704 this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {
18705 _this._onReceiveData({
18706 begin: begin,
18707 chunk: chunk
18708 });
18709 });
18710
18711 this._pdfDataRangeTransport.addProgressListener(function (loaded, total) {
18712 _this._onProgress({
18713 loaded: loaded,
18714 total: total
18715 });
18716 });
18717
18718 this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {
18719 _this._onReceiveData({
18720 chunk: chunk
18721 });
18722 });
18723
18724 this._pdfDataRangeTransport.addProgressiveDoneListener(function () {
18725 _this._onProgressiveDone();
18726 });
18727
18728 this._pdfDataRangeTransport.transportReady();
18729 }
18730
18731 _createClass(PDFDataTransportStream, [{
18732 key: "_onReceiveData",
18733 value: function _onReceiveData(args) {
18734 var buffer = new Uint8Array(args.chunk).buffer;
18735
18736 if (args.begin === undefined) {
18737 if (this._fullRequestReader) {
18738 this._fullRequestReader._enqueue(buffer);
18739 } else {
18740 this._queuedChunks.push(buffer);
18741 }
18742 } else {
18743 var found = this._rangeReaders.some(function (rangeReader) {
18744 if (rangeReader._begin !== args.begin) {
18745 return false;
18746 }
18747
18748 rangeReader._enqueue(buffer);
18749
18750 return true;
18751 });
18752
18753 (0, _util.assert)(found);
18754 }
18755 }
18756 }, {
18757 key: "_onProgress",
18758 value: function _onProgress(evt) {
18759 if (evt.total === undefined) {
18760 var firstReader = this._rangeReaders[0];
18761
18762 if (firstReader && firstReader.onProgress) {
18763 firstReader.onProgress({
18764 loaded: evt.loaded
18765 });
18766 }
18767 } else {
18768 var fullReader = this._fullRequestReader;
18769
18770 if (fullReader && fullReader.onProgress) {
18771 fullReader.onProgress({
18772 loaded: evt.loaded,
18773 total: evt.total
18774 });
18775 }
18776 }
18777 }
18778 }, {
18779 key: "_onProgressiveDone",
18780 value: function _onProgressiveDone() {
18781 if (this._fullRequestReader) {
18782 this._fullRequestReader.progressiveDone();
18783 }
18784
18785 this._progressiveDone = true;
18786 }
18787 }, {
18788 key: "_removeRangeReader",
18789 value: function _removeRangeReader(reader) {
18790 var i = this._rangeReaders.indexOf(reader);
18791
18792 if (i >= 0) {
18793 this._rangeReaders.splice(i, 1);
18794 }
18795 }
18796 }, {
18797 key: "getFullReader",
18798 value: function getFullReader() {
18799 (0, _util.assert)(!this._fullRequestReader);
18800 var queuedChunks = this._queuedChunks;
18801 this._queuedChunks = null;
18802 return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone);
18803 }
18804 }, {
18805 key: "getRangeReader",
18806 value: function getRangeReader(begin, end) {
18807 if (end <= this._progressiveDataLength) {
18808 return null;
18809 }
18810
18811 var reader = new PDFDataTransportStreamRangeReader(this, begin, end);
18812
18813 this._pdfDataRangeTransport.requestDataRange(begin, end);
18814
18815 this._rangeReaders.push(reader);
18816
18817 return reader;
18818 }
18819 }, {
18820 key: "cancelAllRequests",
18821 value: function cancelAllRequests(reason) {
18822 if (this._fullRequestReader) {
18823 this._fullRequestReader.cancel(reason);
18824 }
18825
18826 var readers = this._rangeReaders.slice(0);
18827
18828 readers.forEach(function (rangeReader) {
18829 rangeReader.cancel(reason);
18830 });
18831
18832 this._pdfDataRangeTransport.abort();
18833 }
18834 }, {
18835 key: "_progressiveDataLength",
18836 get: function get() {
18837 return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
18838 }
18839 }]);
18840
18841 return PDFDataTransportStream;
18842}();
18843
18844exports.PDFDataTransportStream = PDFDataTransportStream;
18845
18846var PDFDataTransportStreamReader = /*#__PURE__*/function () {
18847 function PDFDataTransportStreamReader(stream, queuedChunks) {
18848 var progressiveDone = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
18849
18850 _classCallCheck(this, PDFDataTransportStreamReader);
18851
18852 this._stream = stream;
18853 this._done = progressiveDone || false;
18854 this._filename = null;
18855 this._queuedChunks = queuedChunks || [];
18856 this._loaded = 0;
18857 var _iteratorNormalCompletion = true;
18858 var _didIteratorError = false;
18859 var _iteratorError = undefined;
18860
18861 try {
18862 for (var _iterator = this._queuedChunks[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
18863 var chunk = _step.value;
18864 this._loaded += chunk.byteLength;
18865 }
18866 } catch (err) {
18867 _didIteratorError = true;
18868 _iteratorError = err;
18869 } finally {
18870 try {
18871 if (!_iteratorNormalCompletion && _iterator["return"] != null) {
18872 _iterator["return"]();
18873 }
18874 } finally {
18875 if (_didIteratorError) {
18876 throw _iteratorError;
18877 }
18878 }
18879 }
18880
18881 this._requests = [];
18882 this._headersReady = Promise.resolve();
18883 stream._fullRequestReader = this;
18884 this.onProgress = null;
18885 }
18886
18887 _createClass(PDFDataTransportStreamReader, [{
18888 key: "_enqueue",
18889 value: function _enqueue(chunk) {
18890 if (this._done) {
18891 return;
18892 }
18893
18894 if (this._requests.length > 0) {
18895 var requestCapability = this._requests.shift();
18896
18897 requestCapability.resolve({
18898 value: chunk,
18899 done: false
18900 });
18901 } else {
18902 this._queuedChunks.push(chunk);
18903 }
18904
18905 this._loaded += chunk.byteLength;
18906 }
18907 }, {
18908 key: "read",
18909 value: function () {
18910 var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
18911 var chunk, requestCapability;
18912 return _regenerator["default"].wrap(function _callee$(_context) {
18913 while (1) {
18914 switch (_context.prev = _context.next) {
18915 case 0:
18916 if (!(this._queuedChunks.length > 0)) {
18917 _context.next = 3;
18918 break;
18919 }
18920
18921 chunk = this._queuedChunks.shift();
18922 return _context.abrupt("return", {
18923 value: chunk,
18924 done: false
18925 });
18926
18927 case 3:
18928 if (!this._done) {
18929 _context.next = 5;
18930 break;
18931 }
18932
18933 return _context.abrupt("return", {
18934 value: undefined,
18935 done: true
18936 });
18937
18938 case 5:
18939 requestCapability = (0, _util.createPromiseCapability)();
18940
18941 this._requests.push(requestCapability);
18942
18943 return _context.abrupt("return", requestCapability.promise);
18944
18945 case 8:
18946 case "end":
18947 return _context.stop();
18948 }
18949 }
18950 }, _callee, this);
18951 }));
18952
18953 function read() {
18954 return _read.apply(this, arguments);
18955 }
18956
18957 return read;
18958 }()
18959 }, {
18960 key: "cancel",
18961 value: function cancel(reason) {
18962 this._done = true;
18963
18964 this._requests.forEach(function (requestCapability) {
18965 requestCapability.resolve({
18966 value: undefined,
18967 done: true
18968 });
18969 });
18970
18971 this._requests = [];
18972 }
18973 }, {
18974 key: "progressiveDone",
18975 value: function progressiveDone() {
18976 if (this._done) {
18977 return;
18978 }
18979
18980 this._done = true;
18981 }
18982 }, {
18983 key: "headersReady",
18984 get: function get() {
18985 return this._headersReady;
18986 }
18987 }, {
18988 key: "filename",
18989 get: function get() {
18990 return this._filename;
18991 }
18992 }, {
18993 key: "isRangeSupported",
18994 get: function get() {
18995 return this._stream._isRangeSupported;
18996 }
18997 }, {
18998 key: "isStreamingSupported",
18999 get: function get() {
19000 return this._stream._isStreamingSupported;
19001 }
19002 }, {
19003 key: "contentLength",
19004 get: function get() {
19005 return this._stream._contentLength;
19006 }
19007 }]);
19008
19009 return PDFDataTransportStreamReader;
19010}();
19011
19012var PDFDataTransportStreamRangeReader = /*#__PURE__*/function () {
19013 function PDFDataTransportStreamRangeReader(stream, begin, end) {
19014 _classCallCheck(this, PDFDataTransportStreamRangeReader);
19015
19016 this._stream = stream;
19017 this._begin = begin;
19018 this._end = end;
19019 this._queuedChunk = null;
19020 this._requests = [];
19021 this._done = false;
19022 this.onProgress = null;
19023 }
19024
19025 _createClass(PDFDataTransportStreamRangeReader, [{
19026 key: "_enqueue",
19027 value: function _enqueue(chunk) {
19028 if (this._done) {
19029 return;
19030 }
19031
19032 if (this._requests.length === 0) {
19033 this._queuedChunk = chunk;
19034 } else {
19035 var requestsCapability = this._requests.shift();
19036
19037 requestsCapability.resolve({
19038 value: chunk,
19039 done: false
19040 });
19041
19042 this._requests.forEach(function (requestCapability) {
19043 requestCapability.resolve({
19044 value: undefined,
19045 done: true
19046 });
19047 });
19048
19049 this._requests = [];
19050 }
19051
19052 this._done = true;
19053
19054 this._stream._removeRangeReader(this);
19055 }
19056 }, {
19057 key: "read",
19058 value: function () {
19059 var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
19060 var chunk, requestCapability;
19061 return _regenerator["default"].wrap(function _callee2$(_context2) {
19062 while (1) {
19063 switch (_context2.prev = _context2.next) {
19064 case 0:
19065 if (!this._queuedChunk) {
19066 _context2.next = 4;
19067 break;
19068 }
19069
19070 chunk = this._queuedChunk;
19071 this._queuedChunk = null;
19072 return _context2.abrupt("return", {
19073 value: chunk,
19074 done: false
19075 });
19076
19077 case 4:
19078 if (!this._done) {
19079 _context2.next = 6;
19080 break;
19081 }
19082
19083 return _context2.abrupt("return", {
19084 value: undefined,
19085 done: true
19086 });
19087
19088 case 6:
19089 requestCapability = (0, _util.createPromiseCapability)();
19090
19091 this._requests.push(requestCapability);
19092
19093 return _context2.abrupt("return", requestCapability.promise);
19094
19095 case 9:
19096 case "end":
19097 return _context2.stop();
19098 }
19099 }
19100 }, _callee2, this);
19101 }));
19102
19103 function read() {
19104 return _read2.apply(this, arguments);
19105 }
19106
19107 return read;
19108 }()
19109 }, {
19110 key: "cancel",
19111 value: function cancel(reason) {
19112 this._done = true;
19113
19114 this._requests.forEach(function (requestCapability) {
19115 requestCapability.resolve({
19116 value: undefined,
19117 done: true
19118 });
19119 });
19120
19121 this._requests = [];
19122
19123 this._stream._removeRangeReader(this);
19124 }
19125 }, {
19126 key: "isStreamingSupported",
19127 get: function get() {
19128 return false;
19129 }
19130 }]);
19131
19132 return PDFDataTransportStreamRangeReader;
19133}();
19134
19135/***/ }),
19136/* 204 */
19137/***/ (function(module, exports, __w_pdfjs_require__) {
19138
19139"use strict";
19140
19141
19142Object.defineProperty(exports, "__esModule", {
19143 value: true
19144});
19145exports.WebGLContext = void 0;
19146
19147var _util = __w_pdfjs_require__(1);
19148
19149function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19150
19151function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
19152
19153function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
19154
19155var WebGLContext = /*#__PURE__*/function () {
19156 function WebGLContext(_ref) {
19157 var _ref$enable = _ref.enable,
19158 enable = _ref$enable === void 0 ? false : _ref$enable;
19159
19160 _classCallCheck(this, WebGLContext);
19161
19162 this._enabled = enable === true;
19163 }
19164
19165 _createClass(WebGLContext, [{
19166 key: "composeSMask",
19167 value: function composeSMask(_ref2) {
19168 var layer = _ref2.layer,
19169 mask = _ref2.mask,
19170 properties = _ref2.properties;
19171 return WebGLUtils.composeSMask(layer, mask, properties);
19172 }
19173 }, {
19174 key: "drawFigures",
19175 value: function drawFigures(_ref3) {
19176 var width = _ref3.width,
19177 height = _ref3.height,
19178 backgroundColor = _ref3.backgroundColor,
19179 figures = _ref3.figures,
19180 context = _ref3.context;
19181 return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);
19182 }
19183 }, {
19184 key: "clear",
19185 value: function clear() {
19186 WebGLUtils.cleanup();
19187 }
19188 }, {
19189 key: "isEnabled",
19190 get: function get() {
19191 var enabled = this._enabled;
19192
19193 if (enabled) {
19194 enabled = WebGLUtils.tryInitGL();
19195 }
19196
19197 return (0, _util.shadow)(this, "isEnabled", enabled);
19198 }
19199 }]);
19200
19201 return WebGLContext;
19202}();
19203
19204exports.WebGLContext = WebGLContext;
19205
19206var WebGLUtils = function WebGLUtilsClosure() {
19207 function loadShader(gl, code, shaderType) {
19208 var shader = gl.createShader(shaderType);
19209 gl.shaderSource(shader, code);
19210 gl.compileShader(shader);
19211 var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
19212
19213 if (!compiled) {
19214 var errorMsg = gl.getShaderInfoLog(shader);
19215 throw new Error("Error during shader compilation: " + errorMsg);
19216 }
19217
19218 return shader;
19219 }
19220
19221 function createVertexShader(gl, code) {
19222 return loadShader(gl, code, gl.VERTEX_SHADER);
19223 }
19224
19225 function createFragmentShader(gl, code) {
19226 return loadShader(gl, code, gl.FRAGMENT_SHADER);
19227 }
19228
19229 function createProgram(gl, shaders) {
19230 var program = gl.createProgram();
19231
19232 for (var i = 0, ii = shaders.length; i < ii; ++i) {
19233 gl.attachShader(program, shaders[i]);
19234 }
19235
19236 gl.linkProgram(program);
19237 var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
19238
19239 if (!linked) {
19240 var errorMsg = gl.getProgramInfoLog(program);
19241 throw new Error("Error during program linking: " + errorMsg);
19242 }
19243
19244 return program;
19245 }
19246
19247 function createTexture(gl, image, textureId) {
19248 gl.activeTexture(textureId);
19249 var texture = gl.createTexture();
19250 gl.bindTexture(gl.TEXTURE_2D, texture);
19251 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
19252 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
19253 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
19254 gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
19255 gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
19256 return texture;
19257 }
19258
19259 var currentGL, currentCanvas;
19260
19261 function generateGL() {
19262 if (currentGL) {
19263 return;
19264 }
19265
19266 currentCanvas = document.createElement("canvas");
19267 currentGL = currentCanvas.getContext("webgl", {
19268 premultipliedalpha: false
19269 });
19270 }
19271
19272 var smaskVertexShaderCode = "\
19273 attribute vec2 a_position; \
19274 attribute vec2 a_texCoord; \
19275 \
19276 uniform vec2 u_resolution; \
19277 \
19278 varying vec2 v_texCoord; \
19279 \
19280 void main() { \
19281 vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; \
19282 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
19283 \
19284 v_texCoord = a_texCoord; \
19285 } ";
19286 var smaskFragmentShaderCode = "\
19287 precision mediump float; \
19288 \
19289 uniform vec4 u_backdrop; \
19290 uniform int u_subtype; \
19291 uniform sampler2D u_image; \
19292 uniform sampler2D u_mask; \
19293 \
19294 varying vec2 v_texCoord; \
19295 \
19296 void main() { \
19297 vec4 imageColor = texture2D(u_image, v_texCoord); \
19298 vec4 maskColor = texture2D(u_mask, v_texCoord); \
19299 if (u_backdrop.a > 0.0) { \
19300 maskColor.rgb = maskColor.rgb * maskColor.a + \
19301 u_backdrop.rgb * (1.0 - maskColor.a); \
19302 } \
19303 float lum; \
19304 if (u_subtype == 0) { \
19305 lum = maskColor.a; \
19306 } else { \
19307 lum = maskColor.r * 0.3 + maskColor.g * 0.59 + \
19308 maskColor.b * 0.11; \
19309 } \
19310 imageColor.a *= lum; \
19311 imageColor.rgb *= imageColor.a; \
19312 gl_FragColor = imageColor; \
19313 } ";
19314 var smaskCache = null;
19315
19316 function initSmaskGL() {
19317 var canvas, gl;
19318 generateGL();
19319 canvas = currentCanvas;
19320 currentCanvas = null;
19321 gl = currentGL;
19322 currentGL = null;
19323 var vertexShader = createVertexShader(gl, smaskVertexShaderCode);
19324 var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);
19325 var program = createProgram(gl, [vertexShader, fragmentShader]);
19326 gl.useProgram(program);
19327 var cache = {};
19328 cache.gl = gl;
19329 cache.canvas = canvas;
19330 cache.resolutionLocation = gl.getUniformLocation(program, "u_resolution");
19331 cache.positionLocation = gl.getAttribLocation(program, "a_position");
19332 cache.backdropLocation = gl.getUniformLocation(program, "u_backdrop");
19333 cache.subtypeLocation = gl.getUniformLocation(program, "u_subtype");
19334 var texCoordLocation = gl.getAttribLocation(program, "a_texCoord");
19335 var texLayerLocation = gl.getUniformLocation(program, "u_image");
19336 var texMaskLocation = gl.getUniformLocation(program, "u_mask");
19337 var texCoordBuffer = gl.createBuffer();
19338 gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
19339 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 1.0, 1.0, 0.0, 1.0, 1.0]), gl.STATIC_DRAW);
19340 gl.enableVertexAttribArray(texCoordLocation);
19341 gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
19342 gl.uniform1i(texLayerLocation, 0);
19343 gl.uniform1i(texMaskLocation, 1);
19344 smaskCache = cache;
19345 }
19346
19347 function composeSMask(layer, mask, properties) {
19348 var width = layer.width,
19349 height = layer.height;
19350
19351 if (!smaskCache) {
19352 initSmaskGL();
19353 }
19354
19355 var cache = smaskCache,
19356 canvas = cache.canvas,
19357 gl = cache.gl;
19358 canvas.width = width;
19359 canvas.height = height;
19360 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
19361 gl.uniform2f(cache.resolutionLocation, width, height);
19362
19363 if (properties.backdrop) {
19364 gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);
19365 } else {
19366 gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);
19367 }
19368
19369 gl.uniform1i(cache.subtypeLocation, properties.subtype === "Luminosity" ? 1 : 0);
19370 var texture = createTexture(gl, layer, gl.TEXTURE0);
19371 var maskTexture = createTexture(gl, mask, gl.TEXTURE1);
19372 var buffer = gl.createBuffer();
19373 gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
19374 gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);
19375 gl.enableVertexAttribArray(cache.positionLocation);
19376 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
19377 gl.clearColor(0, 0, 0, 0);
19378 gl.enable(gl.BLEND);
19379 gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
19380 gl.clear(gl.COLOR_BUFFER_BIT);
19381 gl.drawArrays(gl.TRIANGLES, 0, 6);
19382 gl.flush();
19383 gl.deleteTexture(texture);
19384 gl.deleteTexture(maskTexture);
19385 gl.deleteBuffer(buffer);
19386 return canvas;
19387 }
19388
19389 var figuresVertexShaderCode = "\
19390 attribute vec2 a_position; \
19391 attribute vec3 a_color; \
19392 \
19393 uniform vec2 u_resolution; \
19394 uniform vec2 u_scale; \
19395 uniform vec2 u_offset; \
19396 \
19397 varying vec4 v_color; \
19398 \
19399 void main() { \
19400 vec2 position = (a_position + u_offset) * u_scale; \
19401 vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; \
19402 gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); \
19403 \
19404 v_color = vec4(a_color / 255.0, 1.0); \
19405 } ";
19406 var figuresFragmentShaderCode = "\
19407 precision mediump float; \
19408 \
19409 varying vec4 v_color; \
19410 \
19411 void main() { \
19412 gl_FragColor = v_color; \
19413 } ";
19414 var figuresCache = null;
19415
19416 function initFiguresGL() {
19417 var canvas, gl;
19418 generateGL();
19419 canvas = currentCanvas;
19420 currentCanvas = null;
19421 gl = currentGL;
19422 currentGL = null;
19423 var vertexShader = createVertexShader(gl, figuresVertexShaderCode);
19424 var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);
19425 var program = createProgram(gl, [vertexShader, fragmentShader]);
19426 gl.useProgram(program);
19427 var cache = {};
19428 cache.gl = gl;
19429 cache.canvas = canvas;
19430 cache.resolutionLocation = gl.getUniformLocation(program, "u_resolution");
19431 cache.scaleLocation = gl.getUniformLocation(program, "u_scale");
19432 cache.offsetLocation = gl.getUniformLocation(program, "u_offset");
19433 cache.positionLocation = gl.getAttribLocation(program, "a_position");
19434 cache.colorLocation = gl.getAttribLocation(program, "a_color");
19435 figuresCache = cache;
19436 }
19437
19438 function drawFigures(width, height, backgroundColor, figures, context) {
19439 if (!figuresCache) {
19440 initFiguresGL();
19441 }
19442
19443 var cache = figuresCache,
19444 canvas = cache.canvas,
19445 gl = cache.gl;
19446 canvas.width = width;
19447 canvas.height = height;
19448 gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
19449 gl.uniform2f(cache.resolutionLocation, width, height);
19450 var count = 0;
19451 var i, ii, rows;
19452
19453 for (i = 0, ii = figures.length; i < ii; i++) {
19454 switch (figures[i].type) {
19455 case "lattice":
19456 rows = figures[i].coords.length / figures[i].verticesPerRow | 0;
19457 count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;
19458 break;
19459
19460 case "triangles":
19461 count += figures[i].coords.length;
19462 break;
19463 }
19464 }
19465
19466 var coords = new Float32Array(count * 2);
19467 var colors = new Uint8Array(count * 3);
19468 var coordsMap = context.coords,
19469 colorsMap = context.colors;
19470 var pIndex = 0,
19471 cIndex = 0;
19472
19473 for (i = 0, ii = figures.length; i < ii; i++) {
19474 var figure = figures[i],
19475 ps = figure.coords,
19476 cs = figure.colors;
19477
19478 switch (figure.type) {
19479 case "lattice":
19480 var cols = figure.verticesPerRow;
19481 rows = ps.length / cols | 0;
19482
19483 for (var row = 1; row < rows; row++) {
19484 var offset = row * cols + 1;
19485
19486 for (var col = 1; col < cols; col++, offset++) {
19487 coords[pIndex] = coordsMap[ps[offset - cols - 1]];
19488 coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];
19489 coords[pIndex + 2] = coordsMap[ps[offset - cols]];
19490 coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];
19491 coords[pIndex + 4] = coordsMap[ps[offset - 1]];
19492 coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];
19493 colors[cIndex] = colorsMap[cs[offset - cols - 1]];
19494 colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];
19495 colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];
19496 colors[cIndex + 3] = colorsMap[cs[offset - cols]];
19497 colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];
19498 colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];
19499 colors[cIndex + 6] = colorsMap[cs[offset - 1]];
19500 colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];
19501 colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];
19502 coords[pIndex + 6] = coords[pIndex + 2];
19503 coords[pIndex + 7] = coords[pIndex + 3];
19504 coords[pIndex + 8] = coords[pIndex + 4];
19505 coords[pIndex + 9] = coords[pIndex + 5];
19506 coords[pIndex + 10] = coordsMap[ps[offset]];
19507 coords[pIndex + 11] = coordsMap[ps[offset] + 1];
19508 colors[cIndex + 9] = colors[cIndex + 3];
19509 colors[cIndex + 10] = colors[cIndex + 4];
19510 colors[cIndex + 11] = colors[cIndex + 5];
19511 colors[cIndex + 12] = colors[cIndex + 6];
19512 colors[cIndex + 13] = colors[cIndex + 7];
19513 colors[cIndex + 14] = colors[cIndex + 8];
19514 colors[cIndex + 15] = colorsMap[cs[offset]];
19515 colors[cIndex + 16] = colorsMap[cs[offset] + 1];
19516 colors[cIndex + 17] = colorsMap[cs[offset] + 2];
19517 pIndex += 12;
19518 cIndex += 18;
19519 }
19520 }
19521
19522 break;
19523
19524 case "triangles":
19525 for (var j = 0, jj = ps.length; j < jj; j++) {
19526 coords[pIndex] = coordsMap[ps[j]];
19527 coords[pIndex + 1] = coordsMap[ps[j] + 1];
19528 colors[cIndex] = colorsMap[cs[j]];
19529 colors[cIndex + 1] = colorsMap[cs[j] + 1];
19530 colors[cIndex + 2] = colorsMap[cs[j] + 2];
19531 pIndex += 2;
19532 cIndex += 3;
19533 }
19534
19535 break;
19536 }
19537 }
19538
19539 if (backgroundColor) {
19540 gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);
19541 } else {
19542 gl.clearColor(0, 0, 0, 0);
19543 }
19544
19545 gl.clear(gl.COLOR_BUFFER_BIT);
19546 var coordsBuffer = gl.createBuffer();
19547 gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
19548 gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);
19549 gl.enableVertexAttribArray(cache.positionLocation);
19550 gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
19551 var colorsBuffer = gl.createBuffer();
19552 gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);
19553 gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
19554 gl.enableVertexAttribArray(cache.colorLocation);
19555 gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);
19556 gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);
19557 gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);
19558 gl.drawArrays(gl.TRIANGLES, 0, count);
19559 gl.flush();
19560 gl.deleteBuffer(coordsBuffer);
19561 gl.deleteBuffer(colorsBuffer);
19562 return canvas;
19563 }
19564
19565 return {
19566 tryInitGL: function tryInitGL() {
19567 try {
19568 generateGL();
19569 return !!currentGL;
19570 } catch (ex) {}
19571
19572 return false;
19573 },
19574 composeSMask: composeSMask,
19575 drawFigures: drawFigures,
19576 cleanup: function cleanup() {
19577 if (smaskCache && smaskCache.canvas) {
19578 smaskCache.canvas.width = 0;
19579 smaskCache.canvas.height = 0;
19580 }
19581
19582 if (figuresCache && figuresCache.canvas) {
19583 figuresCache.canvas.width = 0;
19584 figuresCache.canvas.height = 0;
19585 }
19586
19587 smaskCache = null;
19588 figuresCache = null;
19589 }
19590 };
19591}();
19592
19593/***/ }),
19594/* 205 */
19595/***/ (function(module, exports, __w_pdfjs_require__) {
19596
19597"use strict";
19598
19599
19600Object.defineProperty(exports, "__esModule", {
19601 value: true
19602});
19603exports.renderTextLayer = void 0;
19604
19605var _util = __w_pdfjs_require__(1);
19606
19607var renderTextLayer = function renderTextLayerClosure() {
19608 var MAX_TEXT_DIVS_TO_RENDER = 100000;
19609 var NonWhitespaceRegexp = /\S/;
19610
19611 function isAllWhitespace(str) {
19612 return !NonWhitespaceRegexp.test(str);
19613 }
19614
19615 function appendText(task, geom, styles) {
19616 var textDiv = document.createElement("span");
19617 var textDivProperties = {
19618 angle: 0,
19619 canvasWidth: 0,
19620 isWhitespace: false,
19621 originalTransform: null,
19622 paddingBottom: 0,
19623 paddingLeft: 0,
19624 paddingRight: 0,
19625 paddingTop: 0,
19626 scale: 1
19627 };
19628
19629 task._textDivs.push(textDiv);
19630
19631 if (isAllWhitespace(geom.str)) {
19632 textDivProperties.isWhitespace = true;
19633
19634 task._textDivProperties.set(textDiv, textDivProperties);
19635
19636 return;
19637 }
19638
19639 var tx = _util.Util.transform(task._viewport.transform, geom.transform);
19640
19641 var angle = Math.atan2(tx[1], tx[0]);
19642 var style = styles[geom.fontName];
19643
19644 if (style.vertical) {
19645 angle += Math.PI / 2;
19646 }
19647
19648 var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);
19649 var fontAscent = fontHeight;
19650
19651 if (style.ascent) {
19652 fontAscent = style.ascent * fontAscent;
19653 } else if (style.descent) {
19654 fontAscent = (1 + style.descent) * fontAscent;
19655 }
19656
19657 var left, top;
19658
19659 if (angle === 0) {
19660 left = tx[4];
19661 top = tx[5] - fontAscent;
19662 } else {
19663 left = tx[4] + fontAscent * Math.sin(angle);
19664 top = tx[5] - fontAscent * Math.cos(angle);
19665 }
19666
19667 textDiv.style.left = "".concat(left, "px");
19668 textDiv.style.top = "".concat(top, "px");
19669 textDiv.style.fontSize = "".concat(fontHeight, "px");
19670 textDiv.style.fontFamily = style.fontFamily;
19671 textDiv.textContent = geom.str;
19672
19673 if (task._fontInspectorEnabled) {
19674 textDiv.dataset.fontName = geom.fontName;
19675 }
19676
19677 if (angle !== 0) {
19678 textDivProperties.angle = angle * (180 / Math.PI);
19679 }
19680
19681 if (geom.str.length > 1) {
19682 if (style.vertical) {
19683 textDivProperties.canvasWidth = geom.height * task._viewport.scale;
19684 } else {
19685 textDivProperties.canvasWidth = geom.width * task._viewport.scale;
19686 }
19687 }
19688
19689 task._textDivProperties.set(textDiv, textDivProperties);
19690
19691 if (task._textContentStream) {
19692 task._layoutText(textDiv);
19693 }
19694
19695 if (task._enhanceTextSelection) {
19696 var angleCos = 1,
19697 angleSin = 0;
19698
19699 if (angle !== 0) {
19700 angleCos = Math.cos(angle);
19701 angleSin = Math.sin(angle);
19702 }
19703
19704 var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;
19705 var divHeight = fontHeight;
19706 var m, b;
19707
19708 if (angle !== 0) {
19709 m = [angleCos, angleSin, -angleSin, angleCos, left, top];
19710 b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);
19711 } else {
19712 b = [left, top, left + divWidth, top + divHeight];
19713 }
19714
19715 task._bounds.push({
19716 left: b[0],
19717 top: b[1],
19718 right: b[2],
19719 bottom: b[3],
19720 div: textDiv,
19721 size: [divWidth, divHeight],
19722 m: m
19723 });
19724 }
19725 }
19726
19727 function render(task) {
19728 if (task._canceled) {
19729 return;
19730 }
19731
19732 var textDivs = task._textDivs;
19733 var capability = task._capability;
19734 var textDivsLength = textDivs.length;
19735
19736 if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
19737 task._renderingDone = true;
19738 capability.resolve();
19739 return;
19740 }
19741
19742 if (!task._textContentStream) {
19743 for (var i = 0; i < textDivsLength; i++) {
19744 task._layoutText(textDivs[i]);
19745 }
19746 }
19747
19748 task._renderingDone = true;
19749 capability.resolve();
19750 }
19751
19752 function expand(task) {
19753 var bounds = task._bounds;
19754 var viewport = task._viewport;
19755 var expanded = expandBounds(viewport.width, viewport.height, bounds);
19756
19757 for (var i = 0; i < expanded.length; i++) {
19758 var div = bounds[i].div;
19759
19760 var divProperties = task._textDivProperties.get(div);
19761
19762 if (divProperties.angle === 0) {
19763 divProperties.paddingLeft = bounds[i].left - expanded[i].left;
19764 divProperties.paddingTop = bounds[i].top - expanded[i].top;
19765 divProperties.paddingRight = expanded[i].right - bounds[i].right;
19766 divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;
19767
19768 task._textDivProperties.set(div, divProperties);
19769
19770 continue;
19771 }
19772
19773 var e = expanded[i],
19774 b = bounds[i];
19775 var m = b.m,
19776 c = m[0],
19777 s = m[1];
19778 var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];
19779 var ts = new Float64Array(64);
19780 points.forEach(function (p, i) {
19781 var t = _util.Util.applyTransform(p, m);
19782
19783 ts[i + 0] = c && (e.left - t[0]) / c;
19784 ts[i + 4] = s && (e.top - t[1]) / s;
19785 ts[i + 8] = c && (e.right - t[0]) / c;
19786 ts[i + 12] = s && (e.bottom - t[1]) / s;
19787 ts[i + 16] = s && (e.left - t[0]) / -s;
19788 ts[i + 20] = c && (e.top - t[1]) / c;
19789 ts[i + 24] = s && (e.right - t[0]) / -s;
19790 ts[i + 28] = c && (e.bottom - t[1]) / c;
19791 ts[i + 32] = c && (e.left - t[0]) / -c;
19792 ts[i + 36] = s && (e.top - t[1]) / -s;
19793 ts[i + 40] = c && (e.right - t[0]) / -c;
19794 ts[i + 44] = s && (e.bottom - t[1]) / -s;
19795 ts[i + 48] = s && (e.left - t[0]) / s;
19796 ts[i + 52] = c && (e.top - t[1]) / -c;
19797 ts[i + 56] = s && (e.right - t[0]) / s;
19798 ts[i + 60] = c && (e.bottom - t[1]) / -c;
19799 });
19800
19801 var findPositiveMin = function findPositiveMin(ts, offset, count) {
19802 var result = 0;
19803
19804 for (var i = 0; i < count; i++) {
19805 var t = ts[offset++];
19806
19807 if (t > 0) {
19808 result = result ? Math.min(t, result) : t;
19809 }
19810 }
19811
19812 return result;
19813 };
19814
19815 var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
19816 divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;
19817 divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;
19818 divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;
19819 divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;
19820
19821 task._textDivProperties.set(div, divProperties);
19822 }
19823 }
19824
19825 function expandBounds(width, height, boxes) {
19826 var bounds = boxes.map(function (box, i) {
19827 return {
19828 x1: box.left,
19829 y1: box.top,
19830 x2: box.right,
19831 y2: box.bottom,
19832 index: i,
19833 x1New: undefined,
19834 x2New: undefined
19835 };
19836 });
19837 expandBoundsLTR(width, bounds);
19838 var expanded = new Array(boxes.length);
19839 bounds.forEach(function (b) {
19840 var i = b.index;
19841 expanded[i] = {
19842 left: b.x1New,
19843 top: 0,
19844 right: b.x2New,
19845 bottom: 0
19846 };
19847 });
19848 boxes.map(function (box, i) {
19849 var e = expanded[i],
19850 b = bounds[i];
19851 b.x1 = box.top;
19852 b.y1 = width - e.right;
19853 b.x2 = box.bottom;
19854 b.y2 = width - e.left;
19855 b.index = i;
19856 b.x1New = undefined;
19857 b.x2New = undefined;
19858 });
19859 expandBoundsLTR(height, bounds);
19860 bounds.forEach(function (b) {
19861 var i = b.index;
19862 expanded[i].top = b.x1New;
19863 expanded[i].bottom = b.x2New;
19864 });
19865 return expanded;
19866 }
19867
19868 function expandBoundsLTR(width, bounds) {
19869 bounds.sort(function (a, b) {
19870 return a.x1 - b.x1 || a.index - b.index;
19871 });
19872 var fakeBoundary = {
19873 x1: -Infinity,
19874 y1: -Infinity,
19875 x2: 0,
19876 y2: Infinity,
19877 index: -1,
19878 x1New: 0,
19879 x2New: 0
19880 };
19881 var horizon = [{
19882 start: -Infinity,
19883 end: Infinity,
19884 boundary: fakeBoundary
19885 }];
19886 bounds.forEach(function (boundary) {
19887 var i = 0;
19888
19889 while (i < horizon.length && horizon[i].end <= boundary.y1) {
19890 i++;
19891 }
19892
19893 var j = horizon.length - 1;
19894
19895 while (j >= 0 && horizon[j].start >= boundary.y2) {
19896 j--;
19897 }
19898
19899 var horizonPart, affectedBoundary;
19900 var q,
19901 k,
19902 maxXNew = -Infinity;
19903
19904 for (q = i; q <= j; q++) {
19905 horizonPart = horizon[q];
19906 affectedBoundary = horizonPart.boundary;
19907 var xNew;
19908
19909 if (affectedBoundary.x2 > boundary.x1) {
19910 xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;
19911 } else if (affectedBoundary.x2New === undefined) {
19912 xNew = (affectedBoundary.x2 + boundary.x1) / 2;
19913 } else {
19914 xNew = affectedBoundary.x2New;
19915 }
19916
19917 if (xNew > maxXNew) {
19918 maxXNew = xNew;
19919 }
19920 }
19921
19922 boundary.x1New = maxXNew;
19923
19924 for (q = i; q <= j; q++) {
19925 horizonPart = horizon[q];
19926 affectedBoundary = horizonPart.boundary;
19927
19928 if (affectedBoundary.x2New === undefined) {
19929 if (affectedBoundary.x2 > boundary.x1) {
19930 if (affectedBoundary.index > boundary.index) {
19931 affectedBoundary.x2New = affectedBoundary.x2;
19932 }
19933 } else {
19934 affectedBoundary.x2New = maxXNew;
19935 }
19936 } else if (affectedBoundary.x2New > maxXNew) {
19937 affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);
19938 }
19939 }
19940
19941 var changedHorizon = [],
19942 lastBoundary = null;
19943
19944 for (q = i; q <= j; q++) {
19945 horizonPart = horizon[q];
19946 affectedBoundary = horizonPart.boundary;
19947 var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;
19948
19949 if (lastBoundary === useBoundary) {
19950 changedHorizon[changedHorizon.length - 1].end = horizonPart.end;
19951 } else {
19952 changedHorizon.push({
19953 start: horizonPart.start,
19954 end: horizonPart.end,
19955 boundary: useBoundary
19956 });
19957 lastBoundary = useBoundary;
19958 }
19959 }
19960
19961 if (horizon[i].start < boundary.y1) {
19962 changedHorizon[0].start = boundary.y1;
19963 changedHorizon.unshift({
19964 start: horizon[i].start,
19965 end: boundary.y1,
19966 boundary: horizon[i].boundary
19967 });
19968 }
19969
19970 if (boundary.y2 < horizon[j].end) {
19971 changedHorizon[changedHorizon.length - 1].end = boundary.y2;
19972 changedHorizon.push({
19973 start: boundary.y2,
19974 end: horizon[j].end,
19975 boundary: horizon[j].boundary
19976 });
19977 }
19978
19979 for (q = i; q <= j; q++) {
19980 horizonPart = horizon[q];
19981 affectedBoundary = horizonPart.boundary;
19982
19983 if (affectedBoundary.x2New !== undefined) {
19984 continue;
19985 }
19986
19987 var used = false;
19988
19989 for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {
19990 used = horizon[k].boundary === affectedBoundary;
19991 }
19992
19993 for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {
19994 used = horizon[k].boundary === affectedBoundary;
19995 }
19996
19997 for (k = 0; !used && k < changedHorizon.length; k++) {
19998 used = changedHorizon[k].boundary === affectedBoundary;
19999 }
20000
20001 if (!used) {
20002 affectedBoundary.x2New = maxXNew;
20003 }
20004 }
20005
20006 Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));
20007 });
20008 horizon.forEach(function (horizonPart) {
20009 var affectedBoundary = horizonPart.boundary;
20010
20011 if (affectedBoundary.x2New === undefined) {
20012 affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);
20013 }
20014 });
20015 }
20016
20017 function TextLayerRenderTask(_ref) {
20018 var _this = this;
20019
20020 var textContent = _ref.textContent,
20021 textContentStream = _ref.textContentStream,
20022 container = _ref.container,
20023 viewport = _ref.viewport,
20024 textDivs = _ref.textDivs,
20025 textContentItemsStr = _ref.textContentItemsStr,
20026 enhanceTextSelection = _ref.enhanceTextSelection;
20027 this._textContent = textContent;
20028 this._textContentStream = textContentStream;
20029 this._container = container;
20030 this._viewport = viewport;
20031 this._textDivs = textDivs || [];
20032 this._textContentItemsStr = textContentItemsStr || [];
20033 this._enhanceTextSelection = !!enhanceTextSelection;
20034 this._fontInspectorEnabled = !!(globalThis.FontInspector && globalThis.FontInspector.enabled);
20035 this._reader = null;
20036 this._layoutTextLastFontSize = null;
20037 this._layoutTextLastFontFamily = null;
20038 this._layoutTextCtx = null;
20039 this._textDivProperties = new WeakMap();
20040 this._renderingDone = false;
20041 this._canceled = false;
20042 this._capability = (0, _util.createPromiseCapability)();
20043 this._renderTimer = null;
20044 this._bounds = [];
20045
20046 this._capability.promise["finally"](function () {
20047 if (_this._layoutTextCtx) {
20048 _this._layoutTextCtx.canvas.width = 0;
20049 _this._layoutTextCtx.canvas.height = 0;
20050 _this._layoutTextCtx = null;
20051 }
20052 })["catch"](function () {});
20053 }
20054
20055 TextLayerRenderTask.prototype = {
20056 get promise() {
20057 return this._capability.promise;
20058 },
20059
20060 cancel: function TextLayer_cancel() {
20061 this._canceled = true;
20062
20063 if (this._reader) {
20064 this._reader.cancel(new _util.AbortException("TextLayer task cancelled."));
20065
20066 this._reader = null;
20067 }
20068
20069 if (this._renderTimer !== null) {
20070 clearTimeout(this._renderTimer);
20071 this._renderTimer = null;
20072 }
20073
20074 this._capability.reject(new Error("TextLayer task cancelled."));
20075 },
20076 _processItems: function _processItems(items, styleCache) {
20077 for (var i = 0, len = items.length; i < len; i++) {
20078 this._textContentItemsStr.push(items[i].str);
20079
20080 appendText(this, items[i], styleCache);
20081 }
20082 },
20083 _layoutText: function _layoutText(textDiv) {
20084 var textDivProperties = this._textDivProperties.get(textDiv);
20085
20086 if (textDivProperties.isWhitespace) {
20087 return;
20088 }
20089
20090 var transform = "";
20091
20092 if (textDivProperties.canvasWidth !== 0) {
20093 var _textDiv$style = textDiv.style,
20094 fontSize = _textDiv$style.fontSize,
20095 fontFamily = _textDiv$style.fontFamily;
20096
20097 if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {
20098 this._layoutTextCtx.font = "".concat(fontSize, " ").concat(fontFamily);
20099 this._layoutTextLastFontSize = fontSize;
20100 this._layoutTextLastFontFamily = fontFamily;
20101 }
20102
20103 var _this$_layoutTextCtx$ = this._layoutTextCtx.measureText(textDiv.textContent),
20104 width = _this$_layoutTextCtx$.width;
20105
20106 if (width > 0) {
20107 textDivProperties.scale = textDivProperties.canvasWidth / width;
20108 transform = "scaleX(".concat(textDivProperties.scale, ")");
20109 }
20110 }
20111
20112 if (textDivProperties.angle !== 0) {
20113 transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform);
20114 }
20115
20116 if (transform.length > 0) {
20117 if (this._enhanceTextSelection) {
20118 textDivProperties.originalTransform = transform;
20119 }
20120
20121 textDiv.style.transform = transform;
20122 }
20123
20124 this._textDivProperties.set(textDiv, textDivProperties);
20125
20126 this._container.appendChild(textDiv);
20127 },
20128 _render: function TextLayer_render(timeout) {
20129 var _this2 = this;
20130
20131 var capability = (0, _util.createPromiseCapability)();
20132 var styleCache = Object.create(null);
20133 var canvas = document.createElement("canvas");
20134 canvas.mozOpaque = true;
20135 this._layoutTextCtx = canvas.getContext("2d", {
20136 alpha: false
20137 });
20138
20139 if (this._textContent) {
20140 var textItems = this._textContent.items;
20141 var textStyles = this._textContent.styles;
20142
20143 this._processItems(textItems, textStyles);
20144
20145 capability.resolve();
20146 } else if (this._textContentStream) {
20147 var pump = function pump() {
20148 _this2._reader.read().then(function (_ref2) {
20149 var value = _ref2.value,
20150 done = _ref2.done;
20151
20152 if (done) {
20153 capability.resolve();
20154 return;
20155 }
20156
20157 Object.assign(styleCache, value.styles);
20158
20159 _this2._processItems(value.items, styleCache);
20160
20161 pump();
20162 }, capability.reject);
20163 };
20164
20165 this._reader = this._textContentStream.getReader();
20166 pump();
20167 } else {
20168 throw new Error('Neither "textContent" nor "textContentStream"' + " parameters specified.");
20169 }
20170
20171 capability.promise.then(function () {
20172 styleCache = null;
20173
20174 if (!timeout) {
20175 render(_this2);
20176 } else {
20177 _this2._renderTimer = setTimeout(function () {
20178 render(_this2);
20179 _this2._renderTimer = null;
20180 }, timeout);
20181 }
20182 }, this._capability.reject);
20183 },
20184 expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {
20185 if (!this._enhanceTextSelection || !this._renderingDone) {
20186 return;
20187 }
20188
20189 if (this._bounds !== null) {
20190 expand(this);
20191 this._bounds = null;
20192 }
20193
20194 var transformBuf = [],
20195 paddingBuf = [];
20196
20197 for (var i = 0, ii = this._textDivs.length; i < ii; i++) {
20198 var div = this._textDivs[i];
20199
20200 var divProps = this._textDivProperties.get(div);
20201
20202 if (divProps.isWhitespace) {
20203 continue;
20204 }
20205
20206 if (expandDivs) {
20207 transformBuf.length = 0;
20208 paddingBuf.length = 0;
20209
20210 if (divProps.originalTransform) {
20211 transformBuf.push(divProps.originalTransform);
20212 }
20213
20214 if (divProps.paddingTop > 0) {
20215 paddingBuf.push("".concat(divProps.paddingTop, "px"));
20216 transformBuf.push("translateY(".concat(-divProps.paddingTop, "px)"));
20217 } else {
20218 paddingBuf.push(0);
20219 }
20220
20221 if (divProps.paddingRight > 0) {
20222 paddingBuf.push("".concat(divProps.paddingRight / divProps.scale, "px"));
20223 } else {
20224 paddingBuf.push(0);
20225 }
20226
20227 if (divProps.paddingBottom > 0) {
20228 paddingBuf.push("".concat(divProps.paddingBottom, "px"));
20229 } else {
20230 paddingBuf.push(0);
20231 }
20232
20233 if (divProps.paddingLeft > 0) {
20234 paddingBuf.push("".concat(divProps.paddingLeft / divProps.scale, "px"));
20235 transformBuf.push("translateX(".concat(-divProps.paddingLeft / divProps.scale, "px)"));
20236 } else {
20237 paddingBuf.push(0);
20238 }
20239
20240 div.style.padding = paddingBuf.join(" ");
20241
20242 if (transformBuf.length) {
20243 div.style.transform = transformBuf.join(" ");
20244 }
20245 } else {
20246 div.style.padding = null;
20247 div.style.transform = divProps.originalTransform;
20248 }
20249 }
20250 }
20251 };
20252
20253 function renderTextLayer(renderParameters) {
20254 var task = new TextLayerRenderTask({
20255 textContent: renderParameters.textContent,
20256 textContentStream: renderParameters.textContentStream,
20257 container: renderParameters.container,
20258 viewport: renderParameters.viewport,
20259 textDivs: renderParameters.textDivs,
20260 textContentItemsStr: renderParameters.textContentItemsStr,
20261 enhanceTextSelection: renderParameters.enhanceTextSelection
20262 });
20263
20264 task._render(renderParameters.timeout);
20265
20266 return task;
20267 }
20268
20269 return renderTextLayer;
20270}();
20271
20272exports.renderTextLayer = renderTextLayer;
20273
20274/***/ }),
20275/* 206 */
20276/***/ (function(module, exports, __w_pdfjs_require__) {
20277
20278"use strict";
20279
20280
20281Object.defineProperty(exports, "__esModule", {
20282 value: true
20283});
20284exports.AnnotationLayer = void 0;
20285
20286var _display_utils = __w_pdfjs_require__(194);
20287
20288var _util = __w_pdfjs_require__(1);
20289
20290function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
20291
20292function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
20293
20294function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
20295
20296function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
20297
20298function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
20299
20300function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
20301
20302function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
20303
20304function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
20305
20306function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
20307
20308function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
20309
20310function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
20311
20312var AnnotationElementFactory = /*#__PURE__*/function () {
20313 function AnnotationElementFactory() {
20314 _classCallCheck(this, AnnotationElementFactory);
20315 }
20316
20317 _createClass(AnnotationElementFactory, null, [{
20318 key: "create",
20319 value: function create(parameters) {
20320 var subtype = parameters.data.annotationType;
20321
20322 switch (subtype) {
20323 case _util.AnnotationType.LINK:
20324 return new LinkAnnotationElement(parameters);
20325
20326 case _util.AnnotationType.TEXT:
20327 return new TextAnnotationElement(parameters);
20328
20329 case _util.AnnotationType.WIDGET:
20330 var fieldType = parameters.data.fieldType;
20331
20332 switch (fieldType) {
20333 case "Tx":
20334 return new TextWidgetAnnotationElement(parameters);
20335
20336 case "Btn":
20337 if (parameters.data.radioButton) {
20338 return new RadioButtonWidgetAnnotationElement(parameters);
20339 } else if (parameters.data.checkBox) {
20340 return new CheckboxWidgetAnnotationElement(parameters);
20341 }
20342
20343 return new PushButtonWidgetAnnotationElement(parameters);
20344
20345 case "Ch":
20346 return new ChoiceWidgetAnnotationElement(parameters);
20347 }
20348
20349 return new WidgetAnnotationElement(parameters);
20350
20351 case _util.AnnotationType.POPUP:
20352 return new PopupAnnotationElement(parameters);
20353
20354 case _util.AnnotationType.FREETEXT:
20355 return new FreeTextAnnotationElement(parameters);
20356
20357 case _util.AnnotationType.LINE:
20358 return new LineAnnotationElement(parameters);
20359
20360 case _util.AnnotationType.SQUARE:
20361 return new SquareAnnotationElement(parameters);
20362
20363 case _util.AnnotationType.CIRCLE:
20364 return new CircleAnnotationElement(parameters);
20365
20366 case _util.AnnotationType.POLYLINE:
20367 return new PolylineAnnotationElement(parameters);
20368
20369 case _util.AnnotationType.CARET:
20370 return new CaretAnnotationElement(parameters);
20371
20372 case _util.AnnotationType.INK:
20373 return new InkAnnotationElement(parameters);
20374
20375 case _util.AnnotationType.POLYGON:
20376 return new PolygonAnnotationElement(parameters);
20377
20378 case _util.AnnotationType.HIGHLIGHT:
20379 return new HighlightAnnotationElement(parameters);
20380
20381 case _util.AnnotationType.UNDERLINE:
20382 return new UnderlineAnnotationElement(parameters);
20383
20384 case _util.AnnotationType.SQUIGGLY:
20385 return new SquigglyAnnotationElement(parameters);
20386
20387 case _util.AnnotationType.STRIKEOUT:
20388 return new StrikeOutAnnotationElement(parameters);
20389
20390 case _util.AnnotationType.STAMP:
20391 return new StampAnnotationElement(parameters);
20392
20393 case _util.AnnotationType.FILEATTACHMENT:
20394 return new FileAttachmentAnnotationElement(parameters);
20395
20396 default:
20397 return new AnnotationElement(parameters);
20398 }
20399 }
20400 }]);
20401
20402 return AnnotationElementFactory;
20403}();
20404
20405var AnnotationElement = /*#__PURE__*/function () {
20406 function AnnotationElement(parameters) {
20407 var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
20408 var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
20409
20410 _classCallCheck(this, AnnotationElement);
20411
20412 this.isRenderable = isRenderable;
20413 this.data = parameters.data;
20414 this.layer = parameters.layer;
20415 this.page = parameters.page;
20416 this.viewport = parameters.viewport;
20417 this.linkService = parameters.linkService;
20418 this.downloadManager = parameters.downloadManager;
20419 this.imageResourcesPath = parameters.imageResourcesPath;
20420 this.renderInteractiveForms = parameters.renderInteractiveForms;
20421 this.svgFactory = parameters.svgFactory;
20422
20423 if (isRenderable) {
20424 this.container = this._createContainer(ignoreBorder);
20425 }
20426 }
20427
20428 _createClass(AnnotationElement, [{
20429 key: "_createContainer",
20430 value: function _createContainer() {
20431 var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
20432 var data = this.data,
20433 page = this.page,
20434 viewport = this.viewport;
20435 var container = document.createElement("section");
20436 var width = data.rect[2] - data.rect[0];
20437 var height = data.rect[3] - data.rect[1];
20438 container.setAttribute("data-annotation-id", data.id);
20439
20440 var rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);
20441
20442 container.style.transform = "matrix(".concat(viewport.transform.join(","), ")");
20443 container.style.transformOrigin = "-".concat(rect[0], "px -").concat(rect[1], "px");
20444
20445 if (!ignoreBorder && data.borderStyle.width > 0) {
20446 container.style.borderWidth = "".concat(data.borderStyle.width, "px");
20447
20448 if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {
20449 width = width - 2 * data.borderStyle.width;
20450 height = height - 2 * data.borderStyle.width;
20451 }
20452
20453 var horizontalRadius = data.borderStyle.horizontalCornerRadius;
20454 var verticalRadius = data.borderStyle.verticalCornerRadius;
20455
20456 if (horizontalRadius > 0 || verticalRadius > 0) {
20457 var radius = "".concat(horizontalRadius, "px / ").concat(verticalRadius, "px");
20458 container.style.borderRadius = radius;
20459 }
20460
20461 switch (data.borderStyle.style) {
20462 case _util.AnnotationBorderStyleType.SOLID:
20463 container.style.borderStyle = "solid";
20464 break;
20465
20466 case _util.AnnotationBorderStyleType.DASHED:
20467 container.style.borderStyle = "dashed";
20468 break;
20469
20470 case _util.AnnotationBorderStyleType.BEVELED:
20471 (0, _util.warn)("Unimplemented border style: beveled");
20472 break;
20473
20474 case _util.AnnotationBorderStyleType.INSET:
20475 (0, _util.warn)("Unimplemented border style: inset");
20476 break;
20477
20478 case _util.AnnotationBorderStyleType.UNDERLINE:
20479 container.style.borderBottomStyle = "solid";
20480 break;
20481
20482 default:
20483 break;
20484 }
20485
20486 if (data.color) {
20487 container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);
20488 } else {
20489 container.style.borderWidth = 0;
20490 }
20491 }
20492
20493 container.style.left = "".concat(rect[0], "px");
20494 container.style.top = "".concat(rect[1], "px");
20495 container.style.width = "".concat(width, "px");
20496 container.style.height = "".concat(height, "px");
20497 return container;
20498 }
20499 }, {
20500 key: "_createPopup",
20501 value: function _createPopup(container, trigger, data) {
20502 if (!trigger) {
20503 trigger = document.createElement("div");
20504 trigger.style.height = container.style.height;
20505 trigger.style.width = container.style.width;
20506 container.appendChild(trigger);
20507 }
20508
20509 var popupElement = new PopupElement({
20510 container: container,
20511 trigger: trigger,
20512 color: data.color,
20513 title: data.title,
20514 modificationDate: data.modificationDate,
20515 contents: data.contents,
20516 hideWrapper: true
20517 });
20518 var popup = popupElement.render();
20519 popup.style.left = container.style.width;
20520 container.appendChild(popup);
20521 }
20522 }, {
20523 key: "render",
20524 value: function render() {
20525 (0, _util.unreachable)("Abstract method `AnnotationElement.render` called");
20526 }
20527 }]);
20528
20529 return AnnotationElement;
20530}();
20531
20532var LinkAnnotationElement = /*#__PURE__*/function (_AnnotationElement) {
20533 _inherits(LinkAnnotationElement, _AnnotationElement);
20534
20535 function LinkAnnotationElement(parameters) {
20536 _classCallCheck(this, LinkAnnotationElement);
20537
20538 var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);
20539 return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable));
20540 }
20541
20542 _createClass(LinkAnnotationElement, [{
20543 key: "render",
20544 value: function render() {
20545 this.container.className = "linkAnnotation";
20546 var data = this.data,
20547 linkService = this.linkService;
20548 var link = document.createElement("a");
20549
20550 if (data.url) {
20551 (0, _display_utils.addLinkAttributes)(link, {
20552 url: data.url,
20553 target: data.newWindow ? _display_utils.LinkTarget.BLANK : linkService.externalLinkTarget,
20554 rel: linkService.externalLinkRel,
20555 enabled: linkService.externalLinkEnabled
20556 });
20557 } else if (data.action) {
20558 this._bindNamedAction(link, data.action);
20559 } else {
20560 this._bindLink(link, data.dest);
20561 }
20562
20563 this.container.appendChild(link);
20564 return this.container;
20565 }
20566 }, {
20567 key: "_bindLink",
20568 value: function _bindLink(link, destination) {
20569 var _this = this;
20570
20571 link.href = this.linkService.getDestinationHash(destination);
20572
20573 link.onclick = function () {
20574 if (destination) {
20575 _this.linkService.navigateTo(destination);
20576 }
20577
20578 return false;
20579 };
20580
20581 if (destination) {
20582 link.className = "internalLink";
20583 }
20584 }
20585 }, {
20586 key: "_bindNamedAction",
20587 value: function _bindNamedAction(link, action) {
20588 var _this2 = this;
20589
20590 link.href = this.linkService.getAnchorUrl("");
20591
20592 link.onclick = function () {
20593 _this2.linkService.executeNamedAction(action);
20594
20595 return false;
20596 };
20597
20598 link.className = "internalLink";
20599 }
20600 }]);
20601
20602 return LinkAnnotationElement;
20603}(AnnotationElement);
20604
20605var TextAnnotationElement = /*#__PURE__*/function (_AnnotationElement2) {
20606 _inherits(TextAnnotationElement, _AnnotationElement2);
20607
20608 function TextAnnotationElement(parameters) {
20609 _classCallCheck(this, TextAnnotationElement);
20610
20611 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20612 return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable));
20613 }
20614
20615 _createClass(TextAnnotationElement, [{
20616 key: "render",
20617 value: function render() {
20618 this.container.className = "textAnnotation";
20619 var image = document.createElement("img");
20620 image.style.height = this.container.style.height;
20621 image.style.width = this.container.style.width;
20622 image.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg";
20623 image.alt = "[{{type}} Annotation]";
20624 image.dataset.l10nId = "text_annotation_type";
20625 image.dataset.l10nArgs = JSON.stringify({
20626 type: this.data.name
20627 });
20628
20629 if (!this.data.hasPopup) {
20630 this._createPopup(this.container, image, this.data);
20631 }
20632
20633 this.container.appendChild(image);
20634 return this.container;
20635 }
20636 }]);
20637
20638 return TextAnnotationElement;
20639}(AnnotationElement);
20640
20641var WidgetAnnotationElement = /*#__PURE__*/function (_AnnotationElement3) {
20642 _inherits(WidgetAnnotationElement, _AnnotationElement3);
20643
20644 function WidgetAnnotationElement() {
20645 _classCallCheck(this, WidgetAnnotationElement);
20646
20647 return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments));
20648 }
20649
20650 _createClass(WidgetAnnotationElement, [{
20651 key: "render",
20652 value: function render() {
20653 return this.container;
20654 }
20655 }]);
20656
20657 return WidgetAnnotationElement;
20658}(AnnotationElement);
20659
20660var TextWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem) {
20661 _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);
20662
20663 function TextWidgetAnnotationElement(parameters) {
20664 _classCallCheck(this, TextWidgetAnnotationElement);
20665
20666 var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;
20667 return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable));
20668 }
20669
20670 _createClass(TextWidgetAnnotationElement, [{
20671 key: "render",
20672 value: function render() {
20673 var TEXT_ALIGNMENT = ["left", "center", "right"];
20674 this.container.className = "textWidgetAnnotation";
20675 var element = null;
20676
20677 if (this.renderInteractiveForms) {
20678 if (this.data.multiLine) {
20679 element = document.createElement("textarea");
20680 element.textContent = this.data.fieldValue;
20681 } else {
20682 element = document.createElement("input");
20683 element.type = "text";
20684 element.setAttribute("value", this.data.fieldValue);
20685 }
20686
20687 element.disabled = this.data.readOnly;
20688
20689 if (this.data.maxLen !== null) {
20690 element.maxLength = this.data.maxLen;
20691 }
20692
20693 if (this.data.comb) {
20694 var fieldWidth = this.data.rect[2] - this.data.rect[0];
20695 var combWidth = fieldWidth / this.data.maxLen;
20696 element.classList.add("comb");
20697 element.style.letterSpacing = "calc(".concat(combWidth, "px - 1ch)");
20698 }
20699 } else {
20700 element = document.createElement("div");
20701 element.textContent = this.data.fieldValue;
20702 element.style.verticalAlign = "middle";
20703 element.style.display = "table-cell";
20704 var font = null;
20705
20706 if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {
20707 font = this.page.commonObjs.get(this.data.fontRefName);
20708 }
20709
20710 this._setTextStyle(element, font);
20711 }
20712
20713 if (this.data.textAlignment !== null) {
20714 element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];
20715 }
20716
20717 this.container.appendChild(element);
20718 return this.container;
20719 }
20720 }, {
20721 key: "_setTextStyle",
20722 value: function _setTextStyle(element, font) {
20723 var style = element.style;
20724 style.fontSize = "".concat(this.data.fontSize, "px");
20725 style.direction = this.data.fontDirection < 0 ? "rtl" : "ltr";
20726
20727 if (!font) {
20728 return;
20729 }
20730
20731 var bold = "normal";
20732
20733 if (font.black) {
20734 bold = "900";
20735 } else if (font.bold) {
20736 bold = "bold";
20737 }
20738
20739 style.fontWeight = bold;
20740 style.fontStyle = font.italic ? "italic" : "normal";
20741 var fontFamily = font.loadedName ? "\"".concat(font.loadedName, "\", ") : "";
20742 var fallbackName = font.fallbackName || "Helvetica, sans-serif";
20743 style.fontFamily = fontFamily + fallbackName;
20744 }
20745 }]);
20746
20747 return TextWidgetAnnotationElement;
20748}(WidgetAnnotationElement);
20749
20750var CheckboxWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem2) {
20751 _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);
20752
20753 function CheckboxWidgetAnnotationElement(parameters) {
20754 _classCallCheck(this, CheckboxWidgetAnnotationElement);
20755
20756 return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
20757 }
20758
20759 _createClass(CheckboxWidgetAnnotationElement, [{
20760 key: "render",
20761 value: function render() {
20762 this.container.className = "buttonWidgetAnnotation checkBox";
20763 var element = document.createElement("input");
20764 element.disabled = this.data.readOnly;
20765 element.type = "checkbox";
20766
20767 if (this.data.fieldValue && this.data.fieldValue !== "Off") {
20768 element.setAttribute("checked", true);
20769 }
20770
20771 this.container.appendChild(element);
20772 return this.container;
20773 }
20774 }]);
20775
20776 return CheckboxWidgetAnnotationElement;
20777}(WidgetAnnotationElement);
20778
20779var RadioButtonWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem3) {
20780 _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);
20781
20782 function RadioButtonWidgetAnnotationElement(parameters) {
20783 _classCallCheck(this, RadioButtonWidgetAnnotationElement);
20784
20785 return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
20786 }
20787
20788 _createClass(RadioButtonWidgetAnnotationElement, [{
20789 key: "render",
20790 value: function render() {
20791 this.container.className = "buttonWidgetAnnotation radioButton";
20792 var element = document.createElement("input");
20793 element.disabled = this.data.readOnly;
20794 element.type = "radio";
20795 element.name = this.data.fieldName;
20796
20797 if (this.data.fieldValue === this.data.buttonValue) {
20798 element.setAttribute("checked", true);
20799 }
20800
20801 this.container.appendChild(element);
20802 return this.container;
20803 }
20804 }]);
20805
20806 return RadioButtonWidgetAnnotationElement;
20807}(WidgetAnnotationElement);
20808
20809var PushButtonWidgetAnnotationElement = /*#__PURE__*/function (_LinkAnnotationElemen) {
20810 _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);
20811
20812 function PushButtonWidgetAnnotationElement() {
20813 _classCallCheck(this, PushButtonWidgetAnnotationElement);
20814
20815 return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments));
20816 }
20817
20818 _createClass(PushButtonWidgetAnnotationElement, [{
20819 key: "render",
20820 value: function render() {
20821 var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this);
20822
20823 container.className = "buttonWidgetAnnotation pushButton";
20824 return container;
20825 }
20826 }]);
20827
20828 return PushButtonWidgetAnnotationElement;
20829}(LinkAnnotationElement);
20830
20831var ChoiceWidgetAnnotationElement = /*#__PURE__*/function (_WidgetAnnotationElem4) {
20832 _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);
20833
20834 function ChoiceWidgetAnnotationElement(parameters) {
20835 _classCallCheck(this, ChoiceWidgetAnnotationElement);
20836
20837 return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
20838 }
20839
20840 _createClass(ChoiceWidgetAnnotationElement, [{
20841 key: "render",
20842 value: function render() {
20843 this.container.className = "choiceWidgetAnnotation";
20844 var selectElement = document.createElement("select");
20845 selectElement.disabled = this.data.readOnly;
20846
20847 if (!this.data.combo) {
20848 selectElement.size = this.data.options.length;
20849
20850 if (this.data.multiSelect) {
20851 selectElement.multiple = true;
20852 }
20853 }
20854
20855 var _iteratorNormalCompletion = true;
20856 var _didIteratorError = false;
20857 var _iteratorError = undefined;
20858
20859 try {
20860 for (var _iterator = this.data.options[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
20861 var option = _step.value;
20862 var optionElement = document.createElement("option");
20863 optionElement.textContent = option.displayValue;
20864 optionElement.value = option.exportValue;
20865
20866 if (this.data.fieldValue.includes(option.displayValue)) {
20867 optionElement.setAttribute("selected", true);
20868 }
20869
20870 selectElement.appendChild(optionElement);
20871 }
20872 } catch (err) {
20873 _didIteratorError = true;
20874 _iteratorError = err;
20875 } finally {
20876 try {
20877 if (!_iteratorNormalCompletion && _iterator["return"] != null) {
20878 _iterator["return"]();
20879 }
20880 } finally {
20881 if (_didIteratorError) {
20882 throw _iteratorError;
20883 }
20884 }
20885 }
20886
20887 this.container.appendChild(selectElement);
20888 return this.container;
20889 }
20890 }]);
20891
20892 return ChoiceWidgetAnnotationElement;
20893}(WidgetAnnotationElement);
20894
20895var PopupAnnotationElement = /*#__PURE__*/function (_AnnotationElement4) {
20896 _inherits(PopupAnnotationElement, _AnnotationElement4);
20897
20898 function PopupAnnotationElement(parameters) {
20899 _classCallCheck(this, PopupAnnotationElement);
20900
20901 var isRenderable = !!(parameters.data.title || parameters.data.contents);
20902 return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable));
20903 }
20904
20905 _createClass(PopupAnnotationElement, [{
20906 key: "render",
20907 value: function render() {
20908 var IGNORE_TYPES = ["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"];
20909 this.container.className = "popupAnnotation";
20910
20911 if (IGNORE_TYPES.includes(this.data.parentType)) {
20912 return this.container;
20913 }
20914
20915 var selector = "[data-annotation-id=\"".concat(this.data.parentId, "\"]");
20916 var parentElement = this.layer.querySelector(selector);
20917
20918 if (!parentElement) {
20919 return this.container;
20920 }
20921
20922 var popup = new PopupElement({
20923 container: this.container,
20924 trigger: parentElement,
20925 color: this.data.color,
20926 title: this.data.title,
20927 modificationDate: this.data.modificationDate,
20928 contents: this.data.contents
20929 });
20930 var parentLeft = parseFloat(parentElement.style.left);
20931 var parentWidth = parseFloat(parentElement.style.width);
20932 this.container.style.transformOrigin = "-".concat(parentLeft + parentWidth, "px -").concat(parentElement.style.top);
20933 this.container.style.left = "".concat(parentLeft + parentWidth, "px");
20934 this.container.appendChild(popup.render());
20935 return this.container;
20936 }
20937 }]);
20938
20939 return PopupAnnotationElement;
20940}(AnnotationElement);
20941
20942var PopupElement = /*#__PURE__*/function () {
20943 function PopupElement(parameters) {
20944 _classCallCheck(this, PopupElement);
20945
20946 this.container = parameters.container;
20947 this.trigger = parameters.trigger;
20948 this.color = parameters.color;
20949 this.title = parameters.title;
20950 this.modificationDate = parameters.modificationDate;
20951 this.contents = parameters.contents;
20952 this.hideWrapper = parameters.hideWrapper || false;
20953 this.pinned = false;
20954 }
20955
20956 _createClass(PopupElement, [{
20957 key: "render",
20958 value: function render() {
20959 var BACKGROUND_ENLIGHT = 0.7;
20960 var wrapper = document.createElement("div");
20961 wrapper.className = "popupWrapper";
20962 this.hideElement = this.hideWrapper ? wrapper : this.container;
20963 this.hideElement.setAttribute("hidden", true);
20964 var popup = document.createElement("div");
20965 popup.className = "popup";
20966 var color = this.color;
20967
20968 if (color) {
20969 var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];
20970 var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];
20971 var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];
20972 popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);
20973 }
20974
20975 var title = document.createElement("h1");
20976 title.textContent = this.title;
20977 popup.appendChild(title);
20978
20979 var dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);
20980
20981 if (dateObject) {
20982 var modificationDate = document.createElement("span");
20983 modificationDate.textContent = "{{date}}, {{time}}";
20984 modificationDate.dataset.l10nId = "annotation_date_string";
20985 modificationDate.dataset.l10nArgs = JSON.stringify({
20986 date: dateObject.toLocaleDateString(),
20987 time: dateObject.toLocaleTimeString()
20988 });
20989 popup.appendChild(modificationDate);
20990 }
20991
20992 var contents = this._formatContents(this.contents);
20993
20994 popup.appendChild(contents);
20995 this.trigger.addEventListener("click", this._toggle.bind(this));
20996 this.trigger.addEventListener("mouseover", this._show.bind(this, false));
20997 this.trigger.addEventListener("mouseout", this._hide.bind(this, false));
20998 popup.addEventListener("click", this._hide.bind(this, true));
20999 wrapper.appendChild(popup);
21000 return wrapper;
21001 }
21002 }, {
21003 key: "_formatContents",
21004 value: function _formatContents(contents) {
21005 var p = document.createElement("p");
21006 var lines = contents.split(/(?:\r\n?|\n)/);
21007
21008 for (var i = 0, ii = lines.length; i < ii; ++i) {
21009 var line = lines[i];
21010 p.appendChild(document.createTextNode(line));
21011
21012 if (i < ii - 1) {
21013 p.appendChild(document.createElement("br"));
21014 }
21015 }
21016
21017 return p;
21018 }
21019 }, {
21020 key: "_toggle",
21021 value: function _toggle() {
21022 if (this.pinned) {
21023 this._hide(true);
21024 } else {
21025 this._show(true);
21026 }
21027 }
21028 }, {
21029 key: "_show",
21030 value: function _show() {
21031 var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
21032
21033 if (pin) {
21034 this.pinned = true;
21035 }
21036
21037 if (this.hideElement.hasAttribute("hidden")) {
21038 this.hideElement.removeAttribute("hidden");
21039 this.container.style.zIndex += 1;
21040 }
21041 }
21042 }, {
21043 key: "_hide",
21044 value: function _hide() {
21045 var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
21046
21047 if (unpin) {
21048 this.pinned = false;
21049 }
21050
21051 if (!this.hideElement.hasAttribute("hidden") && !this.pinned) {
21052 this.hideElement.setAttribute("hidden", true);
21053 this.container.style.zIndex -= 1;
21054 }
21055 }
21056 }]);
21057
21058 return PopupElement;
21059}();
21060
21061var FreeTextAnnotationElement = /*#__PURE__*/function (_AnnotationElement5) {
21062 _inherits(FreeTextAnnotationElement, _AnnotationElement5);
21063
21064 function FreeTextAnnotationElement(parameters) {
21065 _classCallCheck(this, FreeTextAnnotationElement);
21066
21067 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21068 return _possibleConstructorReturn(this, _getPrototypeOf(FreeTextAnnotationElement).call(this, parameters, isRenderable, true));
21069 }
21070
21071 _createClass(FreeTextAnnotationElement, [{
21072 key: "render",
21073 value: function render() {
21074 this.container.className = "freeTextAnnotation";
21075
21076 if (!this.data.hasPopup) {
21077 this._createPopup(this.container, null, this.data);
21078 }
21079
21080 return this.container;
21081 }
21082 }]);
21083
21084 return FreeTextAnnotationElement;
21085}(AnnotationElement);
21086
21087var LineAnnotationElement = /*#__PURE__*/function (_AnnotationElement6) {
21088 _inherits(LineAnnotationElement, _AnnotationElement6);
21089
21090 function LineAnnotationElement(parameters) {
21091 _classCallCheck(this, LineAnnotationElement);
21092
21093 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21094 return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true));
21095 }
21096
21097 _createClass(LineAnnotationElement, [{
21098 key: "render",
21099 value: function render() {
21100 this.container.className = "lineAnnotation";
21101 var data = this.data;
21102 var width = data.rect[2] - data.rect[0];
21103 var height = data.rect[3] - data.rect[1];
21104 var svg = this.svgFactory.create(width, height);
21105 var line = this.svgFactory.createElement("svg:line");
21106 line.setAttribute("x1", data.rect[2] - data.lineCoordinates[0]);
21107 line.setAttribute("y1", data.rect[3] - data.lineCoordinates[1]);
21108 line.setAttribute("x2", data.rect[2] - data.lineCoordinates[2]);
21109 line.setAttribute("y2", data.rect[3] - data.lineCoordinates[3]);
21110 line.setAttribute("stroke-width", data.borderStyle.width || 1);
21111 line.setAttribute("stroke", "transparent");
21112 svg.appendChild(line);
21113 this.container.append(svg);
21114
21115 this._createPopup(this.container, line, data);
21116
21117 return this.container;
21118 }
21119 }]);
21120
21121 return LineAnnotationElement;
21122}(AnnotationElement);
21123
21124var SquareAnnotationElement = /*#__PURE__*/function (_AnnotationElement7) {
21125 _inherits(SquareAnnotationElement, _AnnotationElement7);
21126
21127 function SquareAnnotationElement(parameters) {
21128 _classCallCheck(this, SquareAnnotationElement);
21129
21130 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21131 return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true));
21132 }
21133
21134 _createClass(SquareAnnotationElement, [{
21135 key: "render",
21136 value: function render() {
21137 this.container.className = "squareAnnotation";
21138 var data = this.data;
21139 var width = data.rect[2] - data.rect[0];
21140 var height = data.rect[3] - data.rect[1];
21141 var svg = this.svgFactory.create(width, height);
21142 var borderWidth = data.borderStyle.width;
21143 var square = this.svgFactory.createElement("svg:rect");
21144 square.setAttribute("x", borderWidth / 2);
21145 square.setAttribute("y", borderWidth / 2);
21146 square.setAttribute("width", width - borderWidth);
21147 square.setAttribute("height", height - borderWidth);
21148 square.setAttribute("stroke-width", borderWidth || 1);
21149 square.setAttribute("stroke", "transparent");
21150 square.setAttribute("fill", "none");
21151 svg.appendChild(square);
21152 this.container.append(svg);
21153
21154 this._createPopup(this.container, square, data);
21155
21156 return this.container;
21157 }
21158 }]);
21159
21160 return SquareAnnotationElement;
21161}(AnnotationElement);
21162
21163var CircleAnnotationElement = /*#__PURE__*/function (_AnnotationElement8) {
21164 _inherits(CircleAnnotationElement, _AnnotationElement8);
21165
21166 function CircleAnnotationElement(parameters) {
21167 _classCallCheck(this, CircleAnnotationElement);
21168
21169 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21170 return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true));
21171 }
21172
21173 _createClass(CircleAnnotationElement, [{
21174 key: "render",
21175 value: function render() {
21176 this.container.className = "circleAnnotation";
21177 var data = this.data;
21178 var width = data.rect[2] - data.rect[0];
21179 var height = data.rect[3] - data.rect[1];
21180 var svg = this.svgFactory.create(width, height);
21181 var borderWidth = data.borderStyle.width;
21182 var circle = this.svgFactory.createElement("svg:ellipse");
21183 circle.setAttribute("cx", width / 2);
21184 circle.setAttribute("cy", height / 2);
21185 circle.setAttribute("rx", width / 2 - borderWidth / 2);
21186 circle.setAttribute("ry", height / 2 - borderWidth / 2);
21187 circle.setAttribute("stroke-width", borderWidth || 1);
21188 circle.setAttribute("stroke", "transparent");
21189 circle.setAttribute("fill", "none");
21190 svg.appendChild(circle);
21191 this.container.append(svg);
21192
21193 this._createPopup(this.container, circle, data);
21194
21195 return this.container;
21196 }
21197 }]);
21198
21199 return CircleAnnotationElement;
21200}(AnnotationElement);
21201
21202var PolylineAnnotationElement = /*#__PURE__*/function (_AnnotationElement9) {
21203 _inherits(PolylineAnnotationElement, _AnnotationElement9);
21204
21205 function PolylineAnnotationElement(parameters) {
21206 var _this3;
21207
21208 _classCallCheck(this, PolylineAnnotationElement);
21209
21210 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21211 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true));
21212 _this3.containerClassName = "polylineAnnotation";
21213 _this3.svgElementName = "svg:polyline";
21214 return _this3;
21215 }
21216
21217 _createClass(PolylineAnnotationElement, [{
21218 key: "render",
21219 value: function render() {
21220 this.container.className = this.containerClassName;
21221 var data = this.data;
21222 var width = data.rect[2] - data.rect[0];
21223 var height = data.rect[3] - data.rect[1];
21224 var svg = this.svgFactory.create(width, height);
21225 var points = [];
21226 var _iteratorNormalCompletion2 = true;
21227 var _didIteratorError2 = false;
21228 var _iteratorError2 = undefined;
21229
21230 try {
21231 for (var _iterator2 = data.vertices[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
21232 var coordinate = _step2.value;
21233 var x = coordinate.x - data.rect[0];
21234 var y = data.rect[3] - coordinate.y;
21235 points.push(x + "," + y);
21236 }
21237 } catch (err) {
21238 _didIteratorError2 = true;
21239 _iteratorError2 = err;
21240 } finally {
21241 try {
21242 if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
21243 _iterator2["return"]();
21244 }
21245 } finally {
21246 if (_didIteratorError2) {
21247 throw _iteratorError2;
21248 }
21249 }
21250 }
21251
21252 points = points.join(" ");
21253 var polyline = this.svgFactory.createElement(this.svgElementName);
21254 polyline.setAttribute("points", points);
21255 polyline.setAttribute("stroke-width", data.borderStyle.width || 1);
21256 polyline.setAttribute("stroke", "transparent");
21257 polyline.setAttribute("fill", "none");
21258 svg.appendChild(polyline);
21259 this.container.append(svg);
21260
21261 this._createPopup(this.container, polyline, data);
21262
21263 return this.container;
21264 }
21265 }]);
21266
21267 return PolylineAnnotationElement;
21268}(AnnotationElement);
21269
21270var PolygonAnnotationElement = /*#__PURE__*/function (_PolylineAnnotationEl) {
21271 _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);
21272
21273 function PolygonAnnotationElement(parameters) {
21274 var _this4;
21275
21276 _classCallCheck(this, PolygonAnnotationElement);
21277
21278 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters));
21279 _this4.containerClassName = "polygonAnnotation";
21280 _this4.svgElementName = "svg:polygon";
21281 return _this4;
21282 }
21283
21284 return PolygonAnnotationElement;
21285}(PolylineAnnotationElement);
21286
21287var CaretAnnotationElement = /*#__PURE__*/function (_AnnotationElement10) {
21288 _inherits(CaretAnnotationElement, _AnnotationElement10);
21289
21290 function CaretAnnotationElement(parameters) {
21291 _classCallCheck(this, CaretAnnotationElement);
21292
21293 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21294 return _possibleConstructorReturn(this, _getPrototypeOf(CaretAnnotationElement).call(this, parameters, isRenderable, true));
21295 }
21296
21297 _createClass(CaretAnnotationElement, [{
21298 key: "render",
21299 value: function render() {
21300 this.container.className = "caretAnnotation";
21301
21302 if (!this.data.hasPopup) {
21303 this._createPopup(this.container, null, this.data);
21304 }
21305
21306 return this.container;
21307 }
21308 }]);
21309
21310 return CaretAnnotationElement;
21311}(AnnotationElement);
21312
21313var InkAnnotationElement = /*#__PURE__*/function (_AnnotationElement11) {
21314 _inherits(InkAnnotationElement, _AnnotationElement11);
21315
21316 function InkAnnotationElement(parameters) {
21317 var _this5;
21318
21319 _classCallCheck(this, InkAnnotationElement);
21320
21321 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21322 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true));
21323 _this5.containerClassName = "inkAnnotation";
21324 _this5.svgElementName = "svg:polyline";
21325 return _this5;
21326 }
21327
21328 _createClass(InkAnnotationElement, [{
21329 key: "render",
21330 value: function render() {
21331 this.container.className = this.containerClassName;
21332 var data = this.data;
21333 var width = data.rect[2] - data.rect[0];
21334 var height = data.rect[3] - data.rect[1];
21335 var svg = this.svgFactory.create(width, height);
21336 var _iteratorNormalCompletion3 = true;
21337 var _didIteratorError3 = false;
21338 var _iteratorError3 = undefined;
21339
21340 try {
21341 for (var _iterator3 = data.inkLists[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
21342 var inkList = _step3.value;
21343 var points = [];
21344 var _iteratorNormalCompletion4 = true;
21345 var _didIteratorError4 = false;
21346 var _iteratorError4 = undefined;
21347
21348 try {
21349 for (var _iterator4 = inkList[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
21350 var coordinate = _step4.value;
21351 var x = coordinate.x - data.rect[0];
21352 var y = data.rect[3] - coordinate.y;
21353 points.push("".concat(x, ",").concat(y));
21354 }
21355 } catch (err) {
21356 _didIteratorError4 = true;
21357 _iteratorError4 = err;
21358 } finally {
21359 try {
21360 if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
21361 _iterator4["return"]();
21362 }
21363 } finally {
21364 if (_didIteratorError4) {
21365 throw _iteratorError4;
21366 }
21367 }
21368 }
21369
21370 points = points.join(" ");
21371 var polyline = this.svgFactory.createElement(this.svgElementName);
21372 polyline.setAttribute("points", points);
21373 polyline.setAttribute("stroke-width", data.borderStyle.width || 1);
21374 polyline.setAttribute("stroke", "transparent");
21375 polyline.setAttribute("fill", "none");
21376
21377 this._createPopup(this.container, polyline, data);
21378
21379 svg.appendChild(polyline);
21380 }
21381 } catch (err) {
21382 _didIteratorError3 = true;
21383 _iteratorError3 = err;
21384 } finally {
21385 try {
21386 if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
21387 _iterator3["return"]();
21388 }
21389 } finally {
21390 if (_didIteratorError3) {
21391 throw _iteratorError3;
21392 }
21393 }
21394 }
21395
21396 this.container.append(svg);
21397 return this.container;
21398 }
21399 }]);
21400
21401 return InkAnnotationElement;
21402}(AnnotationElement);
21403
21404var HighlightAnnotationElement = /*#__PURE__*/function (_AnnotationElement12) {
21405 _inherits(HighlightAnnotationElement, _AnnotationElement12);
21406
21407 function HighlightAnnotationElement(parameters) {
21408 _classCallCheck(this, HighlightAnnotationElement);
21409
21410 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21411 return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true));
21412 }
21413
21414 _createClass(HighlightAnnotationElement, [{
21415 key: "render",
21416 value: function render() {
21417 this.container.className = "highlightAnnotation";
21418
21419 if (!this.data.hasPopup) {
21420 this._createPopup(this.container, null, this.data);
21421 }
21422
21423 return this.container;
21424 }
21425 }]);
21426
21427 return HighlightAnnotationElement;
21428}(AnnotationElement);
21429
21430var UnderlineAnnotationElement = /*#__PURE__*/function (_AnnotationElement13) {
21431 _inherits(UnderlineAnnotationElement, _AnnotationElement13);
21432
21433 function UnderlineAnnotationElement(parameters) {
21434 _classCallCheck(this, UnderlineAnnotationElement);
21435
21436 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21437 return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true));
21438 }
21439
21440 _createClass(UnderlineAnnotationElement, [{
21441 key: "render",
21442 value: function render() {
21443 this.container.className = "underlineAnnotation";
21444
21445 if (!this.data.hasPopup) {
21446 this._createPopup(this.container, null, this.data);
21447 }
21448
21449 return this.container;
21450 }
21451 }]);
21452
21453 return UnderlineAnnotationElement;
21454}(AnnotationElement);
21455
21456var SquigglyAnnotationElement = /*#__PURE__*/function (_AnnotationElement14) {
21457 _inherits(SquigglyAnnotationElement, _AnnotationElement14);
21458
21459 function SquigglyAnnotationElement(parameters) {
21460 _classCallCheck(this, SquigglyAnnotationElement);
21461
21462 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21463 return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true));
21464 }
21465
21466 _createClass(SquigglyAnnotationElement, [{
21467 key: "render",
21468 value: function render() {
21469 this.container.className = "squigglyAnnotation";
21470
21471 if (!this.data.hasPopup) {
21472 this._createPopup(this.container, null, this.data);
21473 }
21474
21475 return this.container;
21476 }
21477 }]);
21478
21479 return SquigglyAnnotationElement;
21480}(AnnotationElement);
21481
21482var StrikeOutAnnotationElement = /*#__PURE__*/function (_AnnotationElement15) {
21483 _inherits(StrikeOutAnnotationElement, _AnnotationElement15);
21484
21485 function StrikeOutAnnotationElement(parameters) {
21486 _classCallCheck(this, StrikeOutAnnotationElement);
21487
21488 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21489 return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true));
21490 }
21491
21492 _createClass(StrikeOutAnnotationElement, [{
21493 key: "render",
21494 value: function render() {
21495 this.container.className = "strikeoutAnnotation";
21496
21497 if (!this.data.hasPopup) {
21498 this._createPopup(this.container, null, this.data);
21499 }
21500
21501 return this.container;
21502 }
21503 }]);
21504
21505 return StrikeOutAnnotationElement;
21506}(AnnotationElement);
21507
21508var StampAnnotationElement = /*#__PURE__*/function (_AnnotationElement16) {
21509 _inherits(StampAnnotationElement, _AnnotationElement16);
21510
21511 function StampAnnotationElement(parameters) {
21512 _classCallCheck(this, StampAnnotationElement);
21513
21514 var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
21515 return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true));
21516 }
21517
21518 _createClass(StampAnnotationElement, [{
21519 key: "render",
21520 value: function render() {
21521 this.container.className = "stampAnnotation";
21522
21523 if (!this.data.hasPopup) {
21524 this._createPopup(this.container, null, this.data);
21525 }
21526
21527 return this.container;
21528 }
21529 }]);
21530
21531 return StampAnnotationElement;
21532}(AnnotationElement);
21533
21534var FileAttachmentAnnotationElement = /*#__PURE__*/function (_AnnotationElement17) {
21535 _inherits(FileAttachmentAnnotationElement, _AnnotationElement17);
21536
21537 function FileAttachmentAnnotationElement(parameters) {
21538 var _this6;
21539
21540 _classCallCheck(this, FileAttachmentAnnotationElement);
21541
21542 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true));
21543 var _this6$data$file = _this6.data.file,
21544 filename = _this6$data$file.filename,
21545 content = _this6$data$file.content;
21546 _this6.filename = (0, _display_utils.getFilenameFromUrl)(filename);
21547 _this6.content = content;
21548
21549 if (_this6.linkService.eventBus) {
21550 _this6.linkService.eventBus.dispatch("fileattachmentannotation", {
21551 source: _assertThisInitialized(_this6),
21552 id: (0, _util.stringToPDFString)(filename),
21553 filename: filename,
21554 content: content
21555 });
21556 }
21557
21558 return _this6;
21559 }
21560
21561 _createClass(FileAttachmentAnnotationElement, [{
21562 key: "render",
21563 value: function render() {
21564 this.container.className = "fileAttachmentAnnotation";
21565 var trigger = document.createElement("div");
21566 trigger.style.height = this.container.style.height;
21567 trigger.style.width = this.container.style.width;
21568 trigger.addEventListener("dblclick", this._download.bind(this));
21569
21570 if (!this.data.hasPopup && (this.data.title || this.data.contents)) {
21571 this._createPopup(this.container, trigger, this.data);
21572 }
21573
21574 this.container.appendChild(trigger);
21575 return this.container;
21576 }
21577 }, {
21578 key: "_download",
21579 value: function _download() {
21580 if (!this.downloadManager) {
21581 (0, _util.warn)("Download cannot be started due to unavailable download manager");
21582 return;
21583 }
21584
21585 this.downloadManager.downloadData(this.content, this.filename, "");
21586 }
21587 }]);
21588
21589 return FileAttachmentAnnotationElement;
21590}(AnnotationElement);
21591
21592var AnnotationLayer = /*#__PURE__*/function () {
21593 function AnnotationLayer() {
21594 _classCallCheck(this, AnnotationLayer);
21595 }
21596
21597 _createClass(AnnotationLayer, null, [{
21598 key: "render",
21599 value: function render(parameters) {
21600 var sortedAnnotations = [],
21601 popupAnnotations = [];
21602 var _iteratorNormalCompletion5 = true;
21603 var _didIteratorError5 = false;
21604 var _iteratorError5 = undefined;
21605
21606 try {
21607 for (var _iterator5 = parameters.annotations[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
21608 var data = _step5.value;
21609
21610 if (!data) {
21611 continue;
21612 }
21613
21614 if (data.annotationType === _util.AnnotationType.POPUP) {
21615 popupAnnotations.push(data);
21616 continue;
21617 }
21618
21619 sortedAnnotations.push(data);
21620 }
21621 } catch (err) {
21622 _didIteratorError5 = true;
21623 _iteratorError5 = err;
21624 } finally {
21625 try {
21626 if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) {
21627 _iterator5["return"]();
21628 }
21629 } finally {
21630 if (_didIteratorError5) {
21631 throw _iteratorError5;
21632 }
21633 }
21634 }
21635
21636 if (popupAnnotations.length) {
21637 sortedAnnotations.push.apply(sortedAnnotations, popupAnnotations);
21638 }
21639
21640 for (var _i = 0, _sortedAnnotations = sortedAnnotations; _i < _sortedAnnotations.length; _i++) {
21641 var _data = _sortedAnnotations[_i];
21642 var element = AnnotationElementFactory.create({
21643 data: _data,
21644 layer: parameters.div,
21645 page: parameters.page,
21646 viewport: parameters.viewport,
21647 linkService: parameters.linkService,
21648 downloadManager: parameters.downloadManager,
21649 imageResourcesPath: parameters.imageResourcesPath || "",
21650 renderInteractiveForms: parameters.renderInteractiveForms || false,
21651 svgFactory: new _display_utils.DOMSVGFactory()
21652 });
21653
21654 if (element.isRenderable) {
21655 parameters.div.appendChild(element.render());
21656 }
21657 }
21658 }
21659 }, {
21660 key: "update",
21661 value: function update(parameters) {
21662 var _iteratorNormalCompletion6 = true;
21663 var _didIteratorError6 = false;
21664 var _iteratorError6 = undefined;
21665
21666 try {
21667 for (var _iterator6 = parameters.annotations[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
21668 var data = _step6.value;
21669 var element = parameters.div.querySelector("[data-annotation-id=\"".concat(data.id, "\"]"));
21670
21671 if (element) {
21672 element.style.transform = "matrix(".concat(parameters.viewport.transform.join(","), ")");
21673 }
21674 }
21675 } catch (err) {
21676 _didIteratorError6 = true;
21677 _iteratorError6 = err;
21678 } finally {
21679 try {
21680 if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) {
21681 _iterator6["return"]();
21682 }
21683 } finally {
21684 if (_didIteratorError6) {
21685 throw _iteratorError6;
21686 }
21687 }
21688 }
21689
21690 parameters.div.removeAttribute("hidden");
21691 }
21692 }]);
21693
21694 return AnnotationLayer;
21695}();
21696
21697exports.AnnotationLayer = AnnotationLayer;
21698
21699/***/ }),
21700/* 207 */
21701/***/ (function(module, exports, __w_pdfjs_require__) {
21702
21703"use strict";
21704
21705
21706Object.defineProperty(exports, "__esModule", {
21707 value: true
21708});
21709exports.SVGGraphics = void 0;
21710
21711var _util = __w_pdfjs_require__(1);
21712
21713var _display_utils = __w_pdfjs_require__(194);
21714
21715var _is_node = __w_pdfjs_require__(48);
21716
21717function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
21718
21719function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
21720
21721function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
21722
21723function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } }
21724
21725function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
21726
21727function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
21728
21729function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
21730
21731function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
21732
21733function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21734
21735function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
21736
21737function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
21738
21739var SVGGraphics = function SVGGraphics() {
21740 throw new Error("Not implemented: SVGGraphics");
21741};
21742
21743exports.SVGGraphics = SVGGraphics;
21744{
21745 var opListToTree = function opListToTree(opList) {
21746 var opTree = [];
21747 var tmp = [];
21748 var _iteratorNormalCompletion = true;
21749 var _didIteratorError = false;
21750 var _iteratorError = undefined;
21751
21752 try {
21753 for (var _iterator = opList[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
21754 var opListElement = _step.value;
21755
21756 if (opListElement.fn === "save") {
21757 opTree.push({
21758 fnId: 92,
21759 fn: "group",
21760 items: []
21761 });
21762 tmp.push(opTree);
21763 opTree = opTree[opTree.length - 1].items;
21764 continue;
21765 }
21766
21767 if (opListElement.fn === "restore") {
21768 opTree = tmp.pop();
21769 } else {
21770 opTree.push(opListElement);
21771 }
21772 }
21773 } catch (err) {
21774 _didIteratorError = true;
21775 _iteratorError = err;
21776 } finally {
21777 try {
21778 if (!_iteratorNormalCompletion && _iterator["return"] != null) {
21779 _iterator["return"]();
21780 }
21781 } finally {
21782 if (_didIteratorError) {
21783 throw _iteratorError;
21784 }
21785 }
21786 }
21787
21788 return opTree;
21789 };
21790
21791 var pf = function pf(value) {
21792 if (Number.isInteger(value)) {
21793 return value.toString();
21794 }
21795
21796 var s = value.toFixed(10);
21797 var i = s.length - 1;
21798
21799 if (s[i] !== "0") {
21800 return s;
21801 }
21802
21803 do {
21804 i--;
21805 } while (s[i] === "0");
21806
21807 return s.substring(0, s[i] === "." ? i : i + 1);
21808 };
21809
21810 var pm = function pm(m) {
21811 if (m[4] === 0 && m[5] === 0) {
21812 if (m[1] === 0 && m[2] === 0) {
21813 if (m[0] === 1 && m[3] === 1) {
21814 return "";
21815 }
21816
21817 return "scale(".concat(pf(m[0]), " ").concat(pf(m[3]), ")");
21818 }
21819
21820 if (m[0] === m[3] && m[1] === -m[2]) {
21821 var a = Math.acos(m[0]) * 180 / Math.PI;
21822 return "rotate(".concat(pf(a), ")");
21823 }
21824 } else {
21825 if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {
21826 return "translate(".concat(pf(m[4]), " ").concat(pf(m[5]), ")");
21827 }
21828 }
21829
21830 return "matrix(".concat(pf(m[0]), " ").concat(pf(m[1]), " ").concat(pf(m[2]), " ").concat(pf(m[3]), " ").concat(pf(m[4]), " ") + "".concat(pf(m[5]), ")");
21831 };
21832
21833 var SVG_DEFAULTS = {
21834 fontStyle: "normal",
21835 fontWeight: "normal",
21836 fillColor: "#000000"
21837 };
21838 var XML_NS = "http://www.w3.org/XML/1998/namespace";
21839 var XLINK_NS = "http://www.w3.org/1999/xlink";
21840 var LINE_CAP_STYLES = ["butt", "round", "square"];
21841 var LINE_JOIN_STYLES = ["miter", "round", "bevel"];
21842
21843 var convertImgDataToPng = function () {
21844 var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
21845 var CHUNK_WRAPPER_SIZE = 12;
21846 var crcTable = new Int32Array(256);
21847
21848 for (var i = 0; i < 256; i++) {
21849 var c = i;
21850
21851 for (var h = 0; h < 8; h++) {
21852 if (c & 1) {
21853 c = 0xedb88320 ^ c >> 1 & 0x7fffffff;
21854 } else {
21855 c = c >> 1 & 0x7fffffff;
21856 }
21857 }
21858
21859 crcTable[i] = c;
21860 }
21861
21862 function crc32(data, start, end) {
21863 var crc = -1;
21864
21865 for (var _i = start; _i < end; _i++) {
21866 var a = (crc ^ data[_i]) & 0xff;
21867 var b = crcTable[a];
21868 crc = crc >>> 8 ^ b;
21869 }
21870
21871 return crc ^ -1;
21872 }
21873
21874 function writePngChunk(type, body, data, offset) {
21875 var p = offset;
21876 var len = body.length;
21877 data[p] = len >> 24 & 0xff;
21878 data[p + 1] = len >> 16 & 0xff;
21879 data[p + 2] = len >> 8 & 0xff;
21880 data[p + 3] = len & 0xff;
21881 p += 4;
21882 data[p] = type.charCodeAt(0) & 0xff;
21883 data[p + 1] = type.charCodeAt(1) & 0xff;
21884 data[p + 2] = type.charCodeAt(2) & 0xff;
21885 data[p + 3] = type.charCodeAt(3) & 0xff;
21886 p += 4;
21887 data.set(body, p);
21888 p += body.length;
21889 var crc = crc32(data, offset + 4, p);
21890 data[p] = crc >> 24 & 0xff;
21891 data[p + 1] = crc >> 16 & 0xff;
21892 data[p + 2] = crc >> 8 & 0xff;
21893 data[p + 3] = crc & 0xff;
21894 }
21895
21896 function adler32(data, start, end) {
21897 var a = 1;
21898 var b = 0;
21899
21900 for (var _i2 = start; _i2 < end; ++_i2) {
21901 a = (a + (data[_i2] & 0xff)) % 65521;
21902 b = (b + a) % 65521;
21903 }
21904
21905 return b << 16 | a;
21906 }
21907
21908 function deflateSync(literals) {
21909 if (!_is_node.isNodeJS) {
21910 return deflateSyncUncompressed(literals);
21911 }
21912
21913 try {
21914 var input;
21915
21916 if (parseInt(process.versions.node) >= 8) {
21917 input = literals;
21918 } else {
21919 input = Buffer.from(literals);
21920 }
21921
21922 var output = require("zlib").deflateSync(input, {
21923 level: 9
21924 });
21925
21926 return output instanceof Uint8Array ? output : new Uint8Array(output);
21927 } catch (e) {
21928 (0, _util.warn)("Not compressing PNG because zlib.deflateSync is unavailable: " + e);
21929 }
21930
21931 return deflateSyncUncompressed(literals);
21932 }
21933
21934 function deflateSyncUncompressed(literals) {
21935 var len = literals.length;
21936 var maxBlockLength = 0xffff;
21937 var deflateBlocks = Math.ceil(len / maxBlockLength);
21938 var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);
21939 var pi = 0;
21940 idat[pi++] = 0x78;
21941 idat[pi++] = 0x9c;
21942 var pos = 0;
21943
21944 while (len > maxBlockLength) {
21945 idat[pi++] = 0x00;
21946 idat[pi++] = 0xff;
21947 idat[pi++] = 0xff;
21948 idat[pi++] = 0x00;
21949 idat[pi++] = 0x00;
21950 idat.set(literals.subarray(pos, pos + maxBlockLength), pi);
21951 pi += maxBlockLength;
21952 pos += maxBlockLength;
21953 len -= maxBlockLength;
21954 }
21955
21956 idat[pi++] = 0x01;
21957 idat[pi++] = len & 0xff;
21958 idat[pi++] = len >> 8 & 0xff;
21959 idat[pi++] = ~len & 0xffff & 0xff;
21960 idat[pi++] = (~len & 0xffff) >> 8 & 0xff;
21961 idat.set(literals.subarray(pos), pi);
21962 pi += literals.length - pos;
21963 var adler = adler32(literals, 0, literals.length);
21964 idat[pi++] = adler >> 24 & 0xff;
21965 idat[pi++] = adler >> 16 & 0xff;
21966 idat[pi++] = adler >> 8 & 0xff;
21967 idat[pi++] = adler & 0xff;
21968 return idat;
21969 }
21970
21971 function encode(imgData, kind, forceDataSchema, isMask) {
21972 var width = imgData.width;
21973 var height = imgData.height;
21974 var bitDepth, colorType, lineSize;
21975 var bytes = imgData.data;
21976
21977 switch (kind) {
21978 case _util.ImageKind.GRAYSCALE_1BPP:
21979 colorType = 0;
21980 bitDepth = 1;
21981 lineSize = width + 7 >> 3;
21982 break;
21983
21984 case _util.ImageKind.RGB_24BPP:
21985 colorType = 2;
21986 bitDepth = 8;
21987 lineSize = width * 3;
21988 break;
21989
21990 case _util.ImageKind.RGBA_32BPP:
21991 colorType = 6;
21992 bitDepth = 8;
21993 lineSize = width * 4;
21994 break;
21995
21996 default:
21997 throw new Error("invalid format");
21998 }
21999
22000 var literals = new Uint8Array((1 + lineSize) * height);
22001 var offsetLiterals = 0,
22002 offsetBytes = 0;
22003
22004 for (var y = 0; y < height; ++y) {
22005 literals[offsetLiterals++] = 0;
22006 literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);
22007 offsetBytes += lineSize;
22008 offsetLiterals += lineSize;
22009 }
22010
22011 if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {
22012 offsetLiterals = 0;
22013
22014 for (var _y = 0; _y < height; _y++) {
22015 offsetLiterals++;
22016
22017 for (var _i3 = 0; _i3 < lineSize; _i3++) {
22018 literals[offsetLiterals++] ^= 0xff;
22019 }
22020 }
22021 }
22022
22023 var ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);
22024 var idat = deflateSync(literals);
22025 var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;
22026 var data = new Uint8Array(pngLength);
22027 var offset = 0;
22028 data.set(PNG_HEADER, offset);
22029 offset += PNG_HEADER.length;
22030 writePngChunk("IHDR", ihdr, data, offset);
22031 offset += CHUNK_WRAPPER_SIZE + ihdr.length;
22032 writePngChunk("IDATA", idat, data, offset);
22033 offset += CHUNK_WRAPPER_SIZE + idat.length;
22034 writePngChunk("IEND", new Uint8Array(0), data, offset);
22035 return (0, _util.createObjectURL)(data, "image/png", forceDataSchema);
22036 }
22037
22038 return function convertImgDataToPng(imgData, forceDataSchema, isMask) {
22039 var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;
22040 return encode(imgData, kind, forceDataSchema, isMask);
22041 };
22042 }();
22043
22044 var SVGExtraState = /*#__PURE__*/function () {
22045 function SVGExtraState() {
22046 _classCallCheck(this, SVGExtraState);
22047
22048 this.fontSizeScale = 1;
22049 this.fontWeight = SVG_DEFAULTS.fontWeight;
22050 this.fontSize = 0;
22051 this.textMatrix = _util.IDENTITY_MATRIX;
22052 this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
22053 this.leading = 0;
22054 this.textRenderingMode = _util.TextRenderingMode.FILL;
22055 this.textMatrixScale = 1;
22056 this.x = 0;
22057 this.y = 0;
22058 this.lineX = 0;
22059 this.lineY = 0;
22060 this.charSpacing = 0;
22061 this.wordSpacing = 0;
22062 this.textHScale = 1;
22063 this.textRise = 0;
22064 this.fillColor = SVG_DEFAULTS.fillColor;
22065 this.strokeColor = "#000000";
22066 this.fillAlpha = 1;
22067 this.strokeAlpha = 1;
22068 this.lineWidth = 1;
22069 this.lineJoin = "";
22070 this.lineCap = "";
22071 this.miterLimit = 0;
22072 this.dashArray = [];
22073 this.dashPhase = 0;
22074 this.dependencies = [];
22075 this.activeClipUrl = null;
22076 this.clipGroup = null;
22077 this.maskId = "";
22078 }
22079
22080 _createClass(SVGExtraState, [{
22081 key: "clone",
22082 value: function clone() {
22083 return Object.create(this);
22084 }
22085 }, {
22086 key: "setCurrentPoint",
22087 value: function setCurrentPoint(x, y) {
22088 this.x = x;
22089 this.y = y;
22090 }
22091 }]);
22092
22093 return SVGExtraState;
22094 }();
22095
22096 var clipCount = 0;
22097 var maskCount = 0;
22098 var shadingCount = 0;
22099
22100 exports.SVGGraphics = SVGGraphics = /*#__PURE__*/function () {
22101 function SVGGraphics(commonObjs, objs, forceDataSchema) {
22102 _classCallCheck(this, SVGGraphics);
22103
22104 this.svgFactory = new _display_utils.DOMSVGFactory();
22105 this.current = new SVGExtraState();
22106 this.transformMatrix = _util.IDENTITY_MATRIX;
22107 this.transformStack = [];
22108 this.extraStack = [];
22109 this.commonObjs = commonObjs;
22110 this.objs = objs;
22111 this.pendingClip = null;
22112 this.pendingEOFill = false;
22113 this.embedFonts = false;
22114 this.embeddedFonts = Object.create(null);
22115 this.cssStyle = null;
22116 this.forceDataSchema = !!forceDataSchema;
22117 this._operatorIdMapping = [];
22118
22119 for (var op in _util.OPS) {
22120 this._operatorIdMapping[_util.OPS[op]] = op;
22121 }
22122 }
22123
22124 _createClass(SVGGraphics, [{
22125 key: "save",
22126 value: function save() {
22127 this.transformStack.push(this.transformMatrix);
22128 var old = this.current;
22129 this.extraStack.push(old);
22130 this.current = old.clone();
22131 }
22132 }, {
22133 key: "restore",
22134 value: function restore() {
22135 this.transformMatrix = this.transformStack.pop();
22136 this.current = this.extraStack.pop();
22137 this.pendingClip = null;
22138 this.tgrp = null;
22139 }
22140 }, {
22141 key: "group",
22142 value: function group(items) {
22143 this.save();
22144 this.executeOpTree(items);
22145 this.restore();
22146 }
22147 }, {
22148 key: "loadDependencies",
22149 value: function loadDependencies(operatorList) {
22150 var _this = this;
22151
22152 var fnArray = operatorList.fnArray;
22153 var argsArray = operatorList.argsArray;
22154
22155 for (var i = 0, ii = fnArray.length; i < ii; i++) {
22156 if (fnArray[i] !== _util.OPS.dependency) {
22157 continue;
22158 }
22159
22160 var _iteratorNormalCompletion2 = true;
22161 var _didIteratorError2 = false;
22162 var _iteratorError2 = undefined;
22163
22164 try {
22165 var _loop = function _loop() {
22166 var obj = _step2.value;
22167 var objsPool = obj.startsWith("g_") ? _this.commonObjs : _this.objs;
22168 var promise = new Promise(function (resolve) {
22169 objsPool.get(obj, resolve);
22170 });
22171
22172 _this.current.dependencies.push(promise);
22173 };
22174
22175 for (var _iterator2 = argsArray[i][Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
22176 _loop();
22177 }
22178 } catch (err) {
22179 _didIteratorError2 = true;
22180 _iteratorError2 = err;
22181 } finally {
22182 try {
22183 if (!_iteratorNormalCompletion2 && _iterator2["return"] != null) {
22184 _iterator2["return"]();
22185 }
22186 } finally {
22187 if (_didIteratorError2) {
22188 throw _iteratorError2;
22189 }
22190 }
22191 }
22192 }
22193
22194 return Promise.all(this.current.dependencies);
22195 }
22196 }, {
22197 key: "transform",
22198 value: function transform(a, b, c, d, e, f) {
22199 var transformMatrix = [a, b, c, d, e, f];
22200 this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);
22201 this.tgrp = null;
22202 }
22203 }, {
22204 key: "getSVG",
22205 value: function getSVG(operatorList, viewport) {
22206 var _this2 = this;
22207
22208 this.viewport = viewport;
22209
22210 var svgElement = this._initialize(viewport);
22211
22212 return this.loadDependencies(operatorList).then(function () {
22213 _this2.transformMatrix = _util.IDENTITY_MATRIX;
22214
22215 _this2.executeOpTree(_this2.convertOpList(operatorList));
22216
22217 return svgElement;
22218 });
22219 }
22220 }, {
22221 key: "convertOpList",
22222 value: function convertOpList(operatorList) {
22223 var operatorIdMapping = this._operatorIdMapping;
22224 var argsArray = operatorList.argsArray;
22225 var fnArray = operatorList.fnArray;
22226 var opList = [];
22227
22228 for (var i = 0, ii = fnArray.length; i < ii; i++) {
22229 var fnId = fnArray[i];
22230 opList.push({
22231 fnId: fnId,
22232 fn: operatorIdMapping[fnId],
22233 args: argsArray[i]
22234 });
22235 }
22236
22237 return opListToTree(opList);
22238 }
22239 }, {
22240 key: "executeOpTree",
22241 value: function executeOpTree(opTree) {
22242 var _iteratorNormalCompletion3 = true;
22243 var _didIteratorError3 = false;
22244 var _iteratorError3 = undefined;
22245
22246 try {
22247 for (var _iterator3 = opTree[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
22248 var opTreeElement = _step3.value;
22249 var fn = opTreeElement.fn;
22250 var fnId = opTreeElement.fnId;
22251 var args = opTreeElement.args;
22252
22253 switch (fnId | 0) {
22254 case _util.OPS.beginText:
22255 this.beginText();
22256 break;
22257
22258 case _util.OPS.dependency:
22259 break;
22260
22261 case _util.OPS.setLeading:
22262 this.setLeading(args);
22263 break;
22264
22265 case _util.OPS.setLeadingMoveText:
22266 this.setLeadingMoveText(args[0], args[1]);
22267 break;
22268
22269 case _util.OPS.setFont:
22270 this.setFont(args);
22271 break;
22272
22273 case _util.OPS.showText:
22274 this.showText(args[0]);
22275 break;
22276
22277 case _util.OPS.showSpacedText:
22278 this.showText(args[0]);
22279 break;
22280
22281 case _util.OPS.endText:
22282 this.endText();
22283 break;
22284
22285 case _util.OPS.moveText:
22286 this.moveText(args[0], args[1]);
22287 break;
22288
22289 case _util.OPS.setCharSpacing:
22290 this.setCharSpacing(args[0]);
22291 break;
22292
22293 case _util.OPS.setWordSpacing:
22294 this.setWordSpacing(args[0]);
22295 break;
22296
22297 case _util.OPS.setHScale:
22298 this.setHScale(args[0]);
22299 break;
22300
22301 case _util.OPS.setTextMatrix:
22302 this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);
22303 break;
22304
22305 case _util.OPS.setTextRise:
22306 this.setTextRise(args[0]);
22307 break;
22308
22309 case _util.OPS.setTextRenderingMode:
22310 this.setTextRenderingMode(args[0]);
22311 break;
22312
22313 case _util.OPS.setLineWidth:
22314 this.setLineWidth(args[0]);
22315 break;
22316
22317 case _util.OPS.setLineJoin:
22318 this.setLineJoin(args[0]);
22319 break;
22320
22321 case _util.OPS.setLineCap:
22322 this.setLineCap(args[0]);
22323 break;
22324
22325 case _util.OPS.setMiterLimit:
22326 this.setMiterLimit(args[0]);
22327 break;
22328
22329 case _util.OPS.setFillRGBColor:
22330 this.setFillRGBColor(args[0], args[1], args[2]);
22331 break;
22332
22333 case _util.OPS.setStrokeRGBColor:
22334 this.setStrokeRGBColor(args[0], args[1], args[2]);
22335 break;
22336
22337 case _util.OPS.setStrokeColorN:
22338 this.setStrokeColorN(args);
22339 break;
22340
22341 case _util.OPS.setFillColorN:
22342 this.setFillColorN(args);
22343 break;
22344
22345 case _util.OPS.shadingFill:
22346 this.shadingFill(args[0]);
22347 break;
22348
22349 case _util.OPS.setDash:
22350 this.setDash(args[0], args[1]);
22351 break;
22352
22353 case _util.OPS.setRenderingIntent:
22354 this.setRenderingIntent(args[0]);
22355 break;
22356
22357 case _util.OPS.setFlatness:
22358 this.setFlatness(args[0]);
22359 break;
22360
22361 case _util.OPS.setGState:
22362 this.setGState(args[0]);
22363 break;
22364
22365 case _util.OPS.fill:
22366 this.fill();
22367 break;
22368
22369 case _util.OPS.eoFill:
22370 this.eoFill();
22371 break;
22372
22373 case _util.OPS.stroke:
22374 this.stroke();
22375 break;
22376
22377 case _util.OPS.fillStroke:
22378 this.fillStroke();
22379 break;
22380
22381 case _util.OPS.eoFillStroke:
22382 this.eoFillStroke();
22383 break;
22384
22385 case _util.OPS.clip:
22386 this.clip("nonzero");
22387 break;
22388
22389 case _util.OPS.eoClip:
22390 this.clip("evenodd");
22391 break;
22392
22393 case _util.OPS.paintSolidColorImageMask:
22394 this.paintSolidColorImageMask();
22395 break;
22396
22397 case _util.OPS.paintJpegXObject:
22398 this.paintJpegXObject(args[0], args[1], args[2]);
22399 break;
22400
22401 case _util.OPS.paintImageXObject:
22402 this.paintImageXObject(args[0]);
22403 break;
22404
22405 case _util.OPS.paintInlineImageXObject:
22406 this.paintInlineImageXObject(args[0]);
22407 break;
22408
22409 case _util.OPS.paintImageMaskXObject:
22410 this.paintImageMaskXObject(args[0]);
22411 break;
22412
22413 case _util.OPS.paintFormXObjectBegin:
22414 this.paintFormXObjectBegin(args[0], args[1]);
22415 break;
22416
22417 case _util.OPS.paintFormXObjectEnd:
22418 this.paintFormXObjectEnd();
22419 break;
22420
22421 case _util.OPS.closePath:
22422 this.closePath();
22423 break;
22424
22425 case _util.OPS.closeStroke:
22426 this.closeStroke();
22427 break;
22428
22429 case _util.OPS.closeFillStroke:
22430 this.closeFillStroke();
22431 break;
22432
22433 case _util.OPS.closeEOFillStroke:
22434 this.closeEOFillStroke();
22435 break;
22436
22437 case _util.OPS.nextLine:
22438 this.nextLine();
22439 break;
22440
22441 case _util.OPS.transform:
22442 this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);
22443 break;
22444
22445 case _util.OPS.constructPath:
22446 this.constructPath(args[0], args[1]);
22447 break;
22448
22449 case _util.OPS.endPath:
22450 this.endPath();
22451 break;
22452
22453 case 92:
22454 this.group(opTreeElement.items);
22455 break;
22456
22457 default:
22458 (0, _util.warn)("Unimplemented operator ".concat(fn));
22459 break;
22460 }
22461 }
22462 } catch (err) {
22463 _didIteratorError3 = true;
22464 _iteratorError3 = err;
22465 } finally {
22466 try {
22467 if (!_iteratorNormalCompletion3 && _iterator3["return"] != null) {
22468 _iterator3["return"]();
22469 }
22470 } finally {
22471 if (_didIteratorError3) {
22472 throw _iteratorError3;
22473 }
22474 }
22475 }
22476 }
22477 }, {
22478 key: "setWordSpacing",
22479 value: function setWordSpacing(wordSpacing) {
22480 this.current.wordSpacing = wordSpacing;
22481 }
22482 }, {
22483 key: "setCharSpacing",
22484 value: function setCharSpacing(charSpacing) {
22485 this.current.charSpacing = charSpacing;
22486 }
22487 }, {
22488 key: "nextLine",
22489 value: function nextLine() {
22490 this.moveText(0, this.current.leading);
22491 }
22492 }, {
22493 key: "setTextMatrix",
22494 value: function setTextMatrix(a, b, c, d, e, f) {
22495 var current = this.current;
22496 current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];
22497 current.textMatrixScale = Math.sqrt(a * a + b * b);
22498 current.x = current.lineX = 0;
22499 current.y = current.lineY = 0;
22500 current.xcoords = [];
22501 current.tspan = this.svgFactory.createElement("svg:tspan");
22502 current.tspan.setAttributeNS(null, "font-family", current.fontFamily);
22503 current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px"));
22504 current.tspan.setAttributeNS(null, "y", pf(-current.y));
22505 current.txtElement = this.svgFactory.createElement("svg:text");
22506 current.txtElement.appendChild(current.tspan);
22507 }
22508 }, {
22509 key: "beginText",
22510 value: function beginText() {
22511 var current = this.current;
22512 current.x = current.lineX = 0;
22513 current.y = current.lineY = 0;
22514 current.textMatrix = _util.IDENTITY_MATRIX;
22515 current.lineMatrix = _util.IDENTITY_MATRIX;
22516 current.textMatrixScale = 1;
22517 current.tspan = this.svgFactory.createElement("svg:tspan");
22518 current.txtElement = this.svgFactory.createElement("svg:text");
22519 current.txtgrp = this.svgFactory.createElement("svg:g");
22520 current.xcoords = [];
22521 }
22522 }, {
22523 key: "moveText",
22524 value: function moveText(x, y) {
22525 var current = this.current;
22526 current.x = current.lineX += x;
22527 current.y = current.lineY += y;
22528 current.xcoords = [];
22529 current.tspan = this.svgFactory.createElement("svg:tspan");
22530 current.tspan.setAttributeNS(null, "font-family", current.fontFamily);
22531 current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px"));
22532 current.tspan.setAttributeNS(null, "y", pf(-current.y));
22533 }
22534 }, {
22535 key: "showText",
22536 value: function showText(glyphs) {
22537 var current = this.current;
22538 var font = current.font;
22539 var fontSize = current.fontSize;
22540
22541 if (fontSize === 0) {
22542 return;
22543 }
22544
22545 var charSpacing = current.charSpacing;
22546 var wordSpacing = current.wordSpacing;
22547 var fontDirection = current.fontDirection;
22548 var textHScale = current.textHScale * fontDirection;
22549 var vertical = font.vertical;
22550 var widthAdvanceScale = fontSize * current.fontMatrix[0];
22551 var x = 0;
22552 var _iteratorNormalCompletion4 = true;
22553 var _didIteratorError4 = false;
22554 var _iteratorError4 = undefined;
22555
22556 try {
22557 for (var _iterator4 = glyphs[Symbol.iterator](), _step4; !(_iteratorNormalCompletion4 = (_step4 = _iterator4.next()).done); _iteratorNormalCompletion4 = true) {
22558 var glyph = _step4.value;
22559
22560 if (glyph === null) {
22561 x += fontDirection * wordSpacing;
22562 continue;
22563 } else if ((0, _util.isNum)(glyph)) {
22564 x += -glyph * fontSize * 0.001;
22565 continue;
22566 }
22567
22568 var width = glyph.width;
22569 var character = glyph.fontChar;
22570 var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
22571 var charWidth = width * widthAdvanceScale + spacing * fontDirection;
22572
22573 if (!glyph.isInFont && !font.missingFile) {
22574 x += charWidth;
22575 continue;
22576 }
22577
22578 current.xcoords.push(current.x + x);
22579 current.tspan.textContent += character;
22580 x += charWidth;
22581 }
22582 } catch (err) {
22583 _didIteratorError4 = true;
22584 _iteratorError4 = err;
22585 } finally {
22586 try {
22587 if (!_iteratorNormalCompletion4 && _iterator4["return"] != null) {
22588 _iterator4["return"]();
22589 }
22590 } finally {
22591 if (_didIteratorError4) {
22592 throw _iteratorError4;
22593 }
22594 }
22595 }
22596
22597 if (vertical) {
22598 current.y -= x * textHScale;
22599 } else {
22600 current.x += x * textHScale;
22601 }
22602
22603 current.tspan.setAttributeNS(null, "x", current.xcoords.map(pf).join(" "));
22604 current.tspan.setAttributeNS(null, "y", pf(-current.y));
22605 current.tspan.setAttributeNS(null, "font-family", current.fontFamily);
22606 current.tspan.setAttributeNS(null, "font-size", "".concat(pf(current.fontSize), "px"));
22607
22608 if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {
22609 current.tspan.setAttributeNS(null, "font-style", current.fontStyle);
22610 }
22611
22612 if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {
22613 current.tspan.setAttributeNS(null, "font-weight", current.fontWeight);
22614 }
22615
22616 var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
22617
22618 if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
22619 if (current.fillColor !== SVG_DEFAULTS.fillColor) {
22620 current.tspan.setAttributeNS(null, "fill", current.fillColor);
22621 }
22622
22623 if (current.fillAlpha < 1) {
22624 current.tspan.setAttributeNS(null, "fill-opacity", current.fillAlpha);
22625 }
22626 } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {
22627 current.tspan.setAttributeNS(null, "fill", "transparent");
22628 } else {
22629 current.tspan.setAttributeNS(null, "fill", "none");
22630 }
22631
22632 if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
22633 var lineWidthScale = 1 / (current.textMatrixScale || 1);
22634
22635 this._setStrokeAttributes(current.tspan, lineWidthScale);
22636 }
22637
22638 var textMatrix = current.textMatrix;
22639
22640 if (current.textRise !== 0) {
22641 textMatrix = textMatrix.slice();
22642 textMatrix[5] += current.textRise;
22643 }
22644
22645 current.txtElement.setAttributeNS(null, "transform", "".concat(pm(textMatrix), " scale(").concat(pf(textHScale), ", -1)"));
22646 current.txtElement.setAttributeNS(XML_NS, "xml:space", "preserve");
22647 current.txtElement.appendChild(current.tspan);
22648 current.txtgrp.appendChild(current.txtElement);
22649
22650 this._ensureTransformGroup().appendChild(current.txtElement);
22651 }
22652 }, {
22653 key: "setLeadingMoveText",
22654 value: function setLeadingMoveText(x, y) {
22655 this.setLeading(-y);
22656 this.moveText(x, y);
22657 }
22658 }, {
22659 key: "addFontStyle",
22660 value: function addFontStyle(fontObj) {
22661 if (!this.cssStyle) {
22662 this.cssStyle = this.svgFactory.createElement("svg:style");
22663 this.cssStyle.setAttributeNS(null, "type", "text/css");
22664 this.defs.appendChild(this.cssStyle);
22665 }
22666
22667 var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);
22668 this.cssStyle.textContent += "@font-face { font-family: \"".concat(fontObj.loadedName, "\";") + " src: url(".concat(url, "); }\n");
22669 }
22670 }, {
22671 key: "setFont",
22672 value: function setFont(details) {
22673 var current = this.current;
22674 var fontObj = this.commonObjs.get(details[0]);
22675 var size = details[1];
22676 current.font = fontObj;
22677
22678 if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {
22679 this.addFontStyle(fontObj);
22680 this.embeddedFonts[fontObj.loadedName] = fontObj;
22681 }
22682
22683 current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
22684 var bold = "normal";
22685
22686 if (fontObj.black) {
22687 bold = "900";
22688 } else if (fontObj.bold) {
22689 bold = "bold";
22690 }
22691
22692 var italic = fontObj.italic ? "italic" : "normal";
22693
22694 if (size < 0) {
22695 size = -size;
22696 current.fontDirection = -1;
22697 } else {
22698 current.fontDirection = 1;
22699 }
22700
22701 current.fontSize = size;
22702 current.fontFamily = fontObj.loadedName;
22703 current.fontWeight = bold;
22704 current.fontStyle = italic;
22705 current.tspan = this.svgFactory.createElement("svg:tspan");
22706 current.tspan.setAttributeNS(null, "y", pf(-current.y));
22707 current.xcoords = [];
22708 }
22709 }, {
22710 key: "endText",
22711 value: function endText() {
22712 var current = this.current;
22713
22714 if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {
22715 current.element = current.txtElement;
22716 this.clip("nonzero");
22717 this.endPath();
22718 }
22719 }
22720 }, {
22721 key: "setLineWidth",
22722 value: function setLineWidth(width) {
22723 if (width > 0) {
22724 this.current.lineWidth = width;
22725 }
22726 }
22727 }, {
22728 key: "setLineCap",
22729 value: function setLineCap(style) {
22730 this.current.lineCap = LINE_CAP_STYLES[style];
22731 }
22732 }, {
22733 key: "setLineJoin",
22734 value: function setLineJoin(style) {
22735 this.current.lineJoin = LINE_JOIN_STYLES[style];
22736 }
22737 }, {
22738 key: "setMiterLimit",
22739 value: function setMiterLimit(limit) {
22740 this.current.miterLimit = limit;
22741 }
22742 }, {
22743 key: "setStrokeAlpha",
22744 value: function setStrokeAlpha(strokeAlpha) {
22745 this.current.strokeAlpha = strokeAlpha;
22746 }
22747 }, {
22748 key: "setStrokeRGBColor",
22749 value: function setStrokeRGBColor(r, g, b) {
22750 this.current.strokeColor = _util.Util.makeCssRgb(r, g, b);
22751 }
22752 }, {
22753 key: "setFillAlpha",
22754 value: function setFillAlpha(fillAlpha) {
22755 this.current.fillAlpha = fillAlpha;
22756 }
22757 }, {
22758 key: "setFillRGBColor",
22759 value: function setFillRGBColor(r, g, b) {
22760 this.current.fillColor = _util.Util.makeCssRgb(r, g, b);
22761 this.current.tspan = this.svgFactory.createElement("svg:tspan");
22762 this.current.xcoords = [];
22763 }
22764 }, {
22765 key: "setStrokeColorN",
22766 value: function setStrokeColorN(args) {
22767 this.current.strokeColor = this._makeColorN_Pattern(args);
22768 }
22769 }, {
22770 key: "setFillColorN",
22771 value: function setFillColorN(args) {
22772 this.current.fillColor = this._makeColorN_Pattern(args);
22773 }
22774 }, {
22775 key: "shadingFill",
22776 value: function shadingFill(args) {
22777 var width = this.viewport.width;
22778 var height = this.viewport.height;
22779
22780 var inv = _util.Util.inverseTransform(this.transformMatrix);
22781
22782 var bl = _util.Util.applyTransform([0, 0], inv);
22783
22784 var br = _util.Util.applyTransform([0, height], inv);
22785
22786 var ul = _util.Util.applyTransform([width, 0], inv);
22787
22788 var ur = _util.Util.applyTransform([width, height], inv);
22789
22790 var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
22791 var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
22792 var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
22793 var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
22794 var rect = this.svgFactory.createElement("svg:rect");
22795 rect.setAttributeNS(null, "x", x0);
22796 rect.setAttributeNS(null, "y", y0);
22797 rect.setAttributeNS(null, "width", x1 - x0);
22798 rect.setAttributeNS(null, "height", y1 - y0);
22799 rect.setAttributeNS(null, "fill", this._makeShadingPattern(args));
22800
22801 this._ensureTransformGroup().appendChild(rect);
22802 }
22803 }, {
22804 key: "_makeColorN_Pattern",
22805 value: function _makeColorN_Pattern(args) {
22806 if (args[0] === "TilingPattern") {
22807 return this._makeTilingPattern(args);
22808 }
22809
22810 return this._makeShadingPattern(args);
22811 }
22812 }, {
22813 key: "_makeTilingPattern",
22814 value: function _makeTilingPattern(args) {
22815 var color = args[1];
22816 var operatorList = args[2];
22817 var matrix = args[3] || _util.IDENTITY_MATRIX;
22818
22819 var _args$ = _slicedToArray(args[4], 4),
22820 x0 = _args$[0],
22821 y0 = _args$[1],
22822 x1 = _args$[2],
22823 y1 = _args$[3];
22824
22825 var xstep = args[5];
22826 var ystep = args[6];
22827 var paintType = args[7];
22828 var tilingId = "shading".concat(shadingCount++);
22829
22830 var _Util$applyTransform = _util.Util.applyTransform([x0, y0], matrix),
22831 _Util$applyTransform2 = _slicedToArray(_Util$applyTransform, 2),
22832 tx0 = _Util$applyTransform2[0],
22833 ty0 = _Util$applyTransform2[1];
22834
22835 var _Util$applyTransform3 = _util.Util.applyTransform([x1, y1], matrix),
22836 _Util$applyTransform4 = _slicedToArray(_Util$applyTransform3, 2),
22837 tx1 = _Util$applyTransform4[0],
22838 ty1 = _Util$applyTransform4[1];
22839
22840 var _Util$singularValueDe = _util.Util.singularValueDecompose2dScale(matrix),
22841 _Util$singularValueDe2 = _slicedToArray(_Util$singularValueDe, 2),
22842 xscale = _Util$singularValueDe2[0],
22843 yscale = _Util$singularValueDe2[1];
22844
22845 var txstep = xstep * xscale;
22846 var tystep = ystep * yscale;
22847 var tiling = this.svgFactory.createElement("svg:pattern");
22848 tiling.setAttributeNS(null, "id", tilingId);
22849 tiling.setAttributeNS(null, "patternUnits", "userSpaceOnUse");
22850 tiling.setAttributeNS(null, "width", txstep);
22851 tiling.setAttributeNS(null, "height", tystep);
22852 tiling.setAttributeNS(null, "x", "".concat(tx0));
22853 tiling.setAttributeNS(null, "y", "".concat(ty0));
22854 var svg = this.svg;
22855 var transformMatrix = this.transformMatrix;
22856 var fillColor = this.current.fillColor;
22857 var strokeColor = this.current.strokeColor;
22858 var bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);
22859 this.svg = bbox;
22860 this.transformMatrix = matrix;
22861
22862 if (paintType === 2) {
22863 var cssColor = _util.Util.makeCssRgb.apply(_util.Util, _toConsumableArray(color));
22864
22865 this.current.fillColor = cssColor;
22866 this.current.strokeColor = cssColor;
22867 }
22868
22869 this.executeOpTree(this.convertOpList(operatorList));
22870 this.svg = svg;
22871 this.transformMatrix = transformMatrix;
22872 this.current.fillColor = fillColor;
22873 this.current.strokeColor = strokeColor;
22874 tiling.appendChild(bbox.childNodes[0]);
22875 this.defs.appendChild(tiling);
22876 return "url(#".concat(tilingId, ")");
22877 }
22878 }, {
22879 key: "_makeShadingPattern",
22880 value: function _makeShadingPattern(args) {
22881 switch (args[0]) {
22882 case "RadialAxial":
22883 var shadingId = "shading".concat(shadingCount++);
22884 var colorStops = args[3];
22885 var gradient;
22886
22887 switch (args[1]) {
22888 case "axial":
22889 var point0 = args[4];
22890 var point1 = args[5];
22891 gradient = this.svgFactory.createElement("svg:linearGradient");
22892 gradient.setAttributeNS(null, "id", shadingId);
22893 gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse");
22894 gradient.setAttributeNS(null, "x1", point0[0]);
22895 gradient.setAttributeNS(null, "y1", point0[1]);
22896 gradient.setAttributeNS(null, "x2", point1[0]);
22897 gradient.setAttributeNS(null, "y2", point1[1]);
22898 break;
22899
22900 case "radial":
22901 var focalPoint = args[4];
22902 var circlePoint = args[5];
22903 var focalRadius = args[6];
22904 var circleRadius = args[7];
22905 gradient = this.svgFactory.createElement("svg:radialGradient");
22906 gradient.setAttributeNS(null, "id", shadingId);
22907 gradient.setAttributeNS(null, "gradientUnits", "userSpaceOnUse");
22908 gradient.setAttributeNS(null, "cx", circlePoint[0]);
22909 gradient.setAttributeNS(null, "cy", circlePoint[1]);
22910 gradient.setAttributeNS(null, "r", circleRadius);
22911 gradient.setAttributeNS(null, "fx", focalPoint[0]);
22912 gradient.setAttributeNS(null, "fy", focalPoint[1]);
22913 gradient.setAttributeNS(null, "fr", focalRadius);
22914 break;
22915
22916 default:
22917 throw new Error("Unknown RadialAxial type: ".concat(args[1]));
22918 }
22919
22920 var _iteratorNormalCompletion5 = true;
22921 var _didIteratorError5 = false;
22922 var _iteratorError5 = undefined;
22923
22924 try {
22925 for (var _iterator5 = colorStops[Symbol.iterator](), _step5; !(_iteratorNormalCompletion5 = (_step5 = _iterator5.next()).done); _iteratorNormalCompletion5 = true) {
22926 var colorStop = _step5.value;
22927 var stop = this.svgFactory.createElement("svg:stop");
22928 stop.setAttributeNS(null, "offset", colorStop[0]);
22929 stop.setAttributeNS(null, "stop-color", colorStop[1]);
22930 gradient.appendChild(stop);
22931 }
22932 } catch (err) {
22933 _didIteratorError5 = true;
22934 _iteratorError5 = err;
22935 } finally {
22936 try {
22937 if (!_iteratorNormalCompletion5 && _iterator5["return"] != null) {
22938 _iterator5["return"]();
22939 }
22940 } finally {
22941 if (_didIteratorError5) {
22942 throw _iteratorError5;
22943 }
22944 }
22945 }
22946
22947 this.defs.appendChild(gradient);
22948 return "url(#".concat(shadingId, ")");
22949
22950 case "Mesh":
22951 (0, _util.warn)("Unimplemented pattern Mesh");
22952 return null;
22953
22954 case "Dummy":
22955 return "hotpink";
22956
22957 default:
22958 throw new Error("Unknown IR type: ".concat(args[0]));
22959 }
22960 }
22961 }, {
22962 key: "setDash",
22963 value: function setDash(dashArray, dashPhase) {
22964 this.current.dashArray = dashArray;
22965 this.current.dashPhase = dashPhase;
22966 }
22967 }, {
22968 key: "constructPath",
22969 value: function constructPath(ops, args) {
22970 var current = this.current;
22971 var x = current.x,
22972 y = current.y;
22973 var d = [];
22974 var j = 0;
22975 var _iteratorNormalCompletion6 = true;
22976 var _didIteratorError6 = false;
22977 var _iteratorError6 = undefined;
22978
22979 try {
22980 for (var _iterator6 = ops[Symbol.iterator](), _step6; !(_iteratorNormalCompletion6 = (_step6 = _iterator6.next()).done); _iteratorNormalCompletion6 = true) {
22981 var op = _step6.value;
22982
22983 switch (op | 0) {
22984 case _util.OPS.rectangle:
22985 x = args[j++];
22986 y = args[j++];
22987 var width = args[j++];
22988 var height = args[j++];
22989 var xw = x + width;
22990 var yh = y + height;
22991 d.push("M", pf(x), pf(y), "L", pf(xw), pf(y), "L", pf(xw), pf(yh), "L", pf(x), pf(yh), "Z");
22992 break;
22993
22994 case _util.OPS.moveTo:
22995 x = args[j++];
22996 y = args[j++];
22997 d.push("M", pf(x), pf(y));
22998 break;
22999
23000 case _util.OPS.lineTo:
23001 x = args[j++];
23002 y = args[j++];
23003 d.push("L", pf(x), pf(y));
23004 break;
23005
23006 case _util.OPS.curveTo:
23007 x = args[j + 4];
23008 y = args[j + 5];
23009 d.push("C", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));
23010 j += 6;
23011 break;
23012
23013 case _util.OPS.curveTo2:
23014 d.push("C", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));
23015 x = args[j + 2];
23016 y = args[j + 3];
23017 j += 4;
23018 break;
23019
23020 case _util.OPS.curveTo3:
23021 x = args[j + 2];
23022 y = args[j + 3];
23023 d.push("C", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));
23024 j += 4;
23025 break;
23026
23027 case _util.OPS.closePath:
23028 d.push("Z");
23029 break;
23030 }
23031 }
23032 } catch (err) {
23033 _didIteratorError6 = true;
23034 _iteratorError6 = err;
23035 } finally {
23036 try {
23037 if (!_iteratorNormalCompletion6 && _iterator6["return"] != null) {
23038 _iterator6["return"]();
23039 }
23040 } finally {
23041 if (_didIteratorError6) {
23042 throw _iteratorError6;
23043 }
23044 }
23045 }
23046
23047 d = d.join(" ");
23048
23049 if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {
23050 d = current.path.getAttributeNS(null, "d") + d;
23051 } else {
23052 current.path = this.svgFactory.createElement("svg:path");
23053
23054 this._ensureTransformGroup().appendChild(current.path);
23055 }
23056
23057 current.path.setAttributeNS(null, "d", d);
23058 current.path.setAttributeNS(null, "fill", "none");
23059 current.element = current.path;
23060 current.setCurrentPoint(x, y);
23061 }
23062 }, {
23063 key: "endPath",
23064 value: function endPath() {
23065 var current = this.current;
23066 current.path = null;
23067
23068 if (!this.pendingClip) {
23069 return;
23070 }
23071
23072 if (!current.element) {
23073 this.pendingClip = null;
23074 return;
23075 }
23076
23077 var clipId = "clippath".concat(clipCount++);
23078 var clipPath = this.svgFactory.createElement("svg:clipPath");
23079 clipPath.setAttributeNS(null, "id", clipId);
23080 clipPath.setAttributeNS(null, "transform", pm(this.transformMatrix));
23081 var clipElement = current.element.cloneNode(true);
23082
23083 if (this.pendingClip === "evenodd") {
23084 clipElement.setAttributeNS(null, "clip-rule", "evenodd");
23085 } else {
23086 clipElement.setAttributeNS(null, "clip-rule", "nonzero");
23087 }
23088
23089 this.pendingClip = null;
23090 clipPath.appendChild(clipElement);
23091 this.defs.appendChild(clipPath);
23092
23093 if (current.activeClipUrl) {
23094 current.clipGroup = null;
23095 this.extraStack.forEach(function (prev) {
23096 prev.clipGroup = null;
23097 });
23098 clipPath.setAttributeNS(null, "clip-path", current.activeClipUrl);
23099 }
23100
23101 current.activeClipUrl = "url(#".concat(clipId, ")");
23102 this.tgrp = null;
23103 }
23104 }, {
23105 key: "clip",
23106 value: function clip(type) {
23107 this.pendingClip = type;
23108 }
23109 }, {
23110 key: "closePath",
23111 value: function closePath() {
23112 var current = this.current;
23113
23114 if (current.path) {
23115 var d = "".concat(current.path.getAttributeNS(null, "d"), "Z");
23116 current.path.setAttributeNS(null, "d", d);
23117 }
23118 }
23119 }, {
23120 key: "setLeading",
23121 value: function setLeading(leading) {
23122 this.current.leading = -leading;
23123 }
23124 }, {
23125 key: "setTextRise",
23126 value: function setTextRise(textRise) {
23127 this.current.textRise = textRise;
23128 }
23129 }, {
23130 key: "setTextRenderingMode",
23131 value: function setTextRenderingMode(textRenderingMode) {
23132 this.current.textRenderingMode = textRenderingMode;
23133 }
23134 }, {
23135 key: "setHScale",
23136 value: function setHScale(scale) {
23137 this.current.textHScale = scale / 100;
23138 }
23139 }, {
23140 key: "setRenderingIntent",
23141 value: function setRenderingIntent(intent) {}
23142 }, {
23143 key: "setFlatness",
23144 value: function setFlatness(flatness) {}
23145 }, {
23146 key: "setGState",
23147 value: function setGState(states) {
23148 var _iteratorNormalCompletion7 = true;
23149 var _didIteratorError7 = false;
23150 var _iteratorError7 = undefined;
23151
23152 try {
23153 for (var _iterator7 = states[Symbol.iterator](), _step7; !(_iteratorNormalCompletion7 = (_step7 = _iterator7.next()).done); _iteratorNormalCompletion7 = true) {
23154 var _step7$value = _slicedToArray(_step7.value, 2),
23155 key = _step7$value[0],
23156 value = _step7$value[1];
23157
23158 switch (key) {
23159 case "LW":
23160 this.setLineWidth(value);
23161 break;
23162
23163 case "LC":
23164 this.setLineCap(value);
23165 break;
23166
23167 case "LJ":
23168 this.setLineJoin(value);
23169 break;
23170
23171 case "ML":
23172 this.setMiterLimit(value);
23173 break;
23174
23175 case "D":
23176 this.setDash(value[0], value[1]);
23177 break;
23178
23179 case "RI":
23180 this.setRenderingIntent(value);
23181 break;
23182
23183 case "FL":
23184 this.setFlatness(value);
23185 break;
23186
23187 case "Font":
23188 this.setFont(value);
23189 break;
23190
23191 case "CA":
23192 this.setStrokeAlpha(value);
23193 break;
23194
23195 case "ca":
23196 this.setFillAlpha(value);
23197 break;
23198
23199 default:
23200 (0, _util.warn)("Unimplemented graphic state operator ".concat(key));
23201 break;
23202 }
23203 }
23204 } catch (err) {
23205 _didIteratorError7 = true;
23206 _iteratorError7 = err;
23207 } finally {
23208 try {
23209 if (!_iteratorNormalCompletion7 && _iterator7["return"] != null) {
23210 _iterator7["return"]();
23211 }
23212 } finally {
23213 if (_didIteratorError7) {
23214 throw _iteratorError7;
23215 }
23216 }
23217 }
23218 }
23219 }, {
23220 key: "fill",
23221 value: function fill() {
23222 var current = this.current;
23223
23224 if (current.element) {
23225 current.element.setAttributeNS(null, "fill", current.fillColor);
23226 current.element.setAttributeNS(null, "fill-opacity", current.fillAlpha);
23227 this.endPath();
23228 }
23229 }
23230 }, {
23231 key: "stroke",
23232 value: function stroke() {
23233 var current = this.current;
23234
23235 if (current.element) {
23236 this._setStrokeAttributes(current.element);
23237
23238 current.element.setAttributeNS(null, "fill", "none");
23239 this.endPath();
23240 }
23241 }
23242 }, {
23243 key: "_setStrokeAttributes",
23244 value: function _setStrokeAttributes(element) {
23245 var lineWidthScale = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
23246 var current = this.current;
23247 var dashArray = current.dashArray;
23248
23249 if (lineWidthScale !== 1 && dashArray.length > 0) {
23250 dashArray = dashArray.map(function (value) {
23251 return lineWidthScale * value;
23252 });
23253 }
23254
23255 element.setAttributeNS(null, "stroke", current.strokeColor);
23256 element.setAttributeNS(null, "stroke-opacity", current.strokeAlpha);
23257 element.setAttributeNS(null, "stroke-miterlimit", pf(current.miterLimit));
23258 element.setAttributeNS(null, "stroke-linecap", current.lineCap);
23259 element.setAttributeNS(null, "stroke-linejoin", current.lineJoin);
23260 element.setAttributeNS(null, "stroke-width", pf(lineWidthScale * current.lineWidth) + "px");
23261 element.setAttributeNS(null, "stroke-dasharray", dashArray.map(pf).join(" "));
23262 element.setAttributeNS(null, "stroke-dashoffset", pf(lineWidthScale * current.dashPhase) + "px");
23263 }
23264 }, {
23265 key: "eoFill",
23266 value: function eoFill() {
23267 if (this.current.element) {
23268 this.current.element.setAttributeNS(null, "fill-rule", "evenodd");
23269 }
23270
23271 this.fill();
23272 }
23273 }, {
23274 key: "fillStroke",
23275 value: function fillStroke() {
23276 this.stroke();
23277 this.fill();
23278 }
23279 }, {
23280 key: "eoFillStroke",
23281 value: function eoFillStroke() {
23282 if (this.current.element) {
23283 this.current.element.setAttributeNS(null, "fill-rule", "evenodd");
23284 }
23285
23286 this.fillStroke();
23287 }
23288 }, {
23289 key: "closeStroke",
23290 value: function closeStroke() {
23291 this.closePath();
23292 this.stroke();
23293 }
23294 }, {
23295 key: "closeFillStroke",
23296 value: function closeFillStroke() {
23297 this.closePath();
23298 this.fillStroke();
23299 }
23300 }, {
23301 key: "closeEOFillStroke",
23302 value: function closeEOFillStroke() {
23303 this.closePath();
23304 this.eoFillStroke();
23305 }
23306 }, {
23307 key: "paintSolidColorImageMask",
23308 value: function paintSolidColorImageMask() {
23309 var rect = this.svgFactory.createElement("svg:rect");
23310 rect.setAttributeNS(null, "x", "0");
23311 rect.setAttributeNS(null, "y", "0");
23312 rect.setAttributeNS(null, "width", "1px");
23313 rect.setAttributeNS(null, "height", "1px");
23314 rect.setAttributeNS(null, "fill", this.current.fillColor);
23315
23316 this._ensureTransformGroup().appendChild(rect);
23317 }
23318 }, {
23319 key: "paintJpegXObject",
23320 value: function paintJpegXObject(objId, w, h) {
23321 var imgObj = this.objs.get(objId);
23322 var imgEl = this.svgFactory.createElement("svg:image");
23323 imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgObj.src);
23324 imgEl.setAttributeNS(null, "width", pf(w));
23325 imgEl.setAttributeNS(null, "height", pf(h));
23326 imgEl.setAttributeNS(null, "x", "0");
23327 imgEl.setAttributeNS(null, "y", pf(-h));
23328 imgEl.setAttributeNS(null, "transform", "scale(".concat(pf(1 / w), " ").concat(pf(-1 / h), ")"));
23329
23330 this._ensureTransformGroup().appendChild(imgEl);
23331 }
23332 }, {
23333 key: "paintImageXObject",
23334 value: function paintImageXObject(objId) {
23335 var imgData = this.objs.get(objId);
23336
23337 if (!imgData) {
23338 (0, _util.warn)("Dependent image with object ID ".concat(objId, " is not ready yet"));
23339 return;
23340 }
23341
23342 this.paintInlineImageXObject(imgData);
23343 }
23344 }, {
23345 key: "paintInlineImageXObject",
23346 value: function paintInlineImageXObject(imgData, mask) {
23347 var width = imgData.width;
23348 var height = imgData.height;
23349 var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);
23350 var cliprect = this.svgFactory.createElement("svg:rect");
23351 cliprect.setAttributeNS(null, "x", "0");
23352 cliprect.setAttributeNS(null, "y", "0");
23353 cliprect.setAttributeNS(null, "width", pf(width));
23354 cliprect.setAttributeNS(null, "height", pf(height));
23355 this.current.element = cliprect;
23356 this.clip("nonzero");
23357 var imgEl = this.svgFactory.createElement("svg:image");
23358 imgEl.setAttributeNS(XLINK_NS, "xlink:href", imgSrc);
23359 imgEl.setAttributeNS(null, "x", "0");
23360 imgEl.setAttributeNS(null, "y", pf(-height));
23361 imgEl.setAttributeNS(null, "width", pf(width) + "px");
23362 imgEl.setAttributeNS(null, "height", pf(height) + "px");
23363 imgEl.setAttributeNS(null, "transform", "scale(".concat(pf(1 / width), " ").concat(pf(-1 / height), ")"));
23364
23365 if (mask) {
23366 mask.appendChild(imgEl);
23367 } else {
23368 this._ensureTransformGroup().appendChild(imgEl);
23369 }
23370 }
23371 }, {
23372 key: "paintImageMaskXObject",
23373 value: function paintImageMaskXObject(imgData) {
23374 var current = this.current;
23375 var width = imgData.width;
23376 var height = imgData.height;
23377 var fillColor = current.fillColor;
23378 current.maskId = "mask".concat(maskCount++);
23379 var mask = this.svgFactory.createElement("svg:mask");
23380 mask.setAttributeNS(null, "id", current.maskId);
23381 var rect = this.svgFactory.createElement("svg:rect");
23382 rect.setAttributeNS(null, "x", "0");
23383 rect.setAttributeNS(null, "y", "0");
23384 rect.setAttributeNS(null, "width", pf(width));
23385 rect.setAttributeNS(null, "height", pf(height));
23386 rect.setAttributeNS(null, "fill", fillColor);
23387 rect.setAttributeNS(null, "mask", "url(#".concat(current.maskId, ")"));
23388 this.defs.appendChild(mask);
23389
23390 this._ensureTransformGroup().appendChild(rect);
23391
23392 this.paintInlineImageXObject(imgData, mask);
23393 }
23394 }, {
23395 key: "paintFormXObjectBegin",
23396 value: function paintFormXObjectBegin(matrix, bbox) {
23397 if (Array.isArray(matrix) && matrix.length === 6) {
23398 this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
23399 }
23400
23401 if (bbox) {
23402 var width = bbox[2] - bbox[0];
23403 var height = bbox[3] - bbox[1];
23404 var cliprect = this.svgFactory.createElement("svg:rect");
23405 cliprect.setAttributeNS(null, "x", bbox[0]);
23406 cliprect.setAttributeNS(null, "y", bbox[1]);
23407 cliprect.setAttributeNS(null, "width", pf(width));
23408 cliprect.setAttributeNS(null, "height", pf(height));
23409 this.current.element = cliprect;
23410 this.clip("nonzero");
23411 this.endPath();
23412 }
23413 }
23414 }, {
23415 key: "paintFormXObjectEnd",
23416 value: function paintFormXObjectEnd() {}
23417 }, {
23418 key: "_initialize",
23419 value: function _initialize(viewport) {
23420 var svg = this.svgFactory.create(viewport.width, viewport.height);
23421 var definitions = this.svgFactory.createElement("svg:defs");
23422 svg.appendChild(definitions);
23423 this.defs = definitions;
23424 var rootGroup = this.svgFactory.createElement("svg:g");
23425 rootGroup.setAttributeNS(null, "transform", pm(viewport.transform));
23426 svg.appendChild(rootGroup);
23427 this.svg = rootGroup;
23428 return svg;
23429 }
23430 }, {
23431 key: "_ensureClipGroup",
23432 value: function _ensureClipGroup() {
23433 if (!this.current.clipGroup) {
23434 var clipGroup = this.svgFactory.createElement("svg:g");
23435 clipGroup.setAttributeNS(null, "clip-path", this.current.activeClipUrl);
23436 this.svg.appendChild(clipGroup);
23437 this.current.clipGroup = clipGroup;
23438 }
23439
23440 return this.current.clipGroup;
23441 }
23442 }, {
23443 key: "_ensureTransformGroup",
23444 value: function _ensureTransformGroup() {
23445 if (!this.tgrp) {
23446 this.tgrp = this.svgFactory.createElement("svg:g");
23447 this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix));
23448
23449 if (this.current.activeClipUrl) {
23450 this._ensureClipGroup().appendChild(this.tgrp);
23451 } else {
23452 this.svg.appendChild(this.tgrp);
23453 }
23454 }
23455
23456 return this.tgrp;
23457 }
23458 }]);
23459
23460 return SVGGraphics;
23461 }();
23462}
23463
23464/***/ }),
23465/* 208 */
23466/***/ (function(module, exports, __w_pdfjs_require__) {
23467
23468"use strict";
23469
23470
23471Object.defineProperty(exports, "__esModule", {
23472 value: true
23473});
23474exports.PDFNodeStream = void 0;
23475
23476var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
23477
23478var _util = __w_pdfjs_require__(1);
23479
23480var _network_utils = __w_pdfjs_require__(209);
23481
23482function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
23483
23484function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
23485
23486function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
23487
23488function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
23489
23490function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
23491
23492function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
23493
23494function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
23495
23496function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
23497
23498function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
23499
23500function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
23501
23502function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
23503
23504function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
23505
23506var fs = require("fs");
23507
23508var http = require("http");
23509
23510var https = require("https");
23511
23512var url = require("url");
23513
23514var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//;
23515
23516function parseUrl(sourceUrl) {
23517 var parsedUrl = url.parse(sourceUrl);
23518
23519 if (parsedUrl.protocol === "file:" || parsedUrl.host) {
23520 return parsedUrl;
23521 }
23522
23523 if (/^[a-z]:[/\\]/i.test(sourceUrl)) {
23524 return url.parse("file:///".concat(sourceUrl));
23525 }
23526
23527 if (!parsedUrl.host) {
23528 parsedUrl.protocol = "file:";
23529 }
23530
23531 return parsedUrl;
23532}
23533
23534var PDFNodeStream = /*#__PURE__*/function () {
23535 function PDFNodeStream(source) {
23536 _classCallCheck(this, PDFNodeStream);
23537
23538 this.source = source;
23539 this.url = parseUrl(source.url);
23540 this.isHttp = this.url.protocol === "http:" || this.url.protocol === "https:";
23541 this.isFsUrl = this.url.protocol === "file:";
23542 this.httpHeaders = this.isHttp && source.httpHeaders || {};
23543 this._fullRequestReader = null;
23544 this._rangeRequestReaders = [];
23545 }
23546
23547 _createClass(PDFNodeStream, [{
23548 key: "getFullReader",
23549 value: function getFullReader() {
23550 (0, _util.assert)(!this._fullRequestReader);
23551 this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);
23552 return this._fullRequestReader;
23553 }
23554 }, {
23555 key: "getRangeReader",
23556 value: function getRangeReader(start, end) {
23557 if (end <= this._progressiveDataLength) {
23558 return null;
23559 }
23560
23561 var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);
23562
23563 this._rangeRequestReaders.push(rangeReader);
23564
23565 return rangeReader;
23566 }
23567 }, {
23568 key: "cancelAllRequests",
23569 value: function cancelAllRequests(reason) {
23570 if (this._fullRequestReader) {
23571 this._fullRequestReader.cancel(reason);
23572 }
23573
23574 var readers = this._rangeRequestReaders.slice(0);
23575
23576 readers.forEach(function (reader) {
23577 reader.cancel(reason);
23578 });
23579 }
23580 }, {
23581 key: "_progressiveDataLength",
23582 get: function get() {
23583 return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
23584 }
23585 }]);
23586
23587 return PDFNodeStream;
23588}();
23589
23590exports.PDFNodeStream = PDFNodeStream;
23591
23592var BaseFullReader = /*#__PURE__*/function () {
23593 function BaseFullReader(stream) {
23594 _classCallCheck(this, BaseFullReader);
23595
23596 this._url = stream.url;
23597 this._done = false;
23598 this._storedError = null;
23599 this.onProgress = null;
23600 var source = stream.source;
23601 this._contentLength = source.length;
23602 this._loaded = 0;
23603 this._filename = null;
23604 this._disableRange = source.disableRange || false;
23605 this._rangeChunkSize = source.rangeChunkSize;
23606
23607 if (!this._rangeChunkSize && !this._disableRange) {
23608 this._disableRange = true;
23609 }
23610
23611 this._isStreamingSupported = !source.disableStream;
23612 this._isRangeSupported = !source.disableRange;
23613 this._readableStream = null;
23614 this._readCapability = (0, _util.createPromiseCapability)();
23615 this._headersCapability = (0, _util.createPromiseCapability)();
23616 }
23617
23618 _createClass(BaseFullReader, [{
23619 key: "read",
23620 value: function () {
23621 var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
23622 var chunk, buffer;
23623 return _regenerator["default"].wrap(function _callee$(_context) {
23624 while (1) {
23625 switch (_context.prev = _context.next) {
23626 case 0:
23627 _context.next = 2;
23628 return this._readCapability.promise;
23629
23630 case 2:
23631 if (!this._done) {
23632 _context.next = 4;
23633 break;
23634 }
23635
23636 return _context.abrupt("return", {
23637 value: undefined,
23638 done: true
23639 });
23640
23641 case 4:
23642 if (!this._storedError) {
23643 _context.next = 6;
23644 break;
23645 }
23646
23647 throw this._storedError;
23648
23649 case 6:
23650 chunk = this._readableStream.read();
23651
23652 if (!(chunk === null)) {
23653 _context.next = 10;
23654 break;
23655 }
23656
23657 this._readCapability = (0, _util.createPromiseCapability)();
23658 return _context.abrupt("return", this.read());
23659
23660 case 10:
23661 this._loaded += chunk.length;
23662
23663 if (this.onProgress) {
23664 this.onProgress({
23665 loaded: this._loaded,
23666 total: this._contentLength
23667 });
23668 }
23669
23670 buffer = new Uint8Array(chunk).buffer;
23671 return _context.abrupt("return", {
23672 value: buffer,
23673 done: false
23674 });
23675
23676 case 14:
23677 case "end":
23678 return _context.stop();
23679 }
23680 }
23681 }, _callee, this);
23682 }));
23683
23684 function read() {
23685 return _read.apply(this, arguments);
23686 }
23687
23688 return read;
23689 }()
23690 }, {
23691 key: "cancel",
23692 value: function cancel(reason) {
23693 if (!this._readableStream) {
23694 this._error(reason);
23695
23696 return;
23697 }
23698
23699 this._readableStream.destroy(reason);
23700 }
23701 }, {
23702 key: "_error",
23703 value: function _error(reason) {
23704 this._storedError = reason;
23705
23706 this._readCapability.resolve();
23707 }
23708 }, {
23709 key: "_setReadableStream",
23710 value: function _setReadableStream(readableStream) {
23711 var _this = this;
23712
23713 this._readableStream = readableStream;
23714 readableStream.on("readable", function () {
23715 _this._readCapability.resolve();
23716 });
23717 readableStream.on("end", function () {
23718 readableStream.destroy();
23719 _this._done = true;
23720
23721 _this._readCapability.resolve();
23722 });
23723 readableStream.on("error", function (reason) {
23724 _this._error(reason);
23725 });
23726
23727 if (!this._isStreamingSupported && this._isRangeSupported) {
23728 this._error(new _util.AbortException("streaming is disabled"));
23729 }
23730
23731 if (this._storedError) {
23732 this._readableStream.destroy(this._storedError);
23733 }
23734 }
23735 }, {
23736 key: "headersReady",
23737 get: function get() {
23738 return this._headersCapability.promise;
23739 }
23740 }, {
23741 key: "filename",
23742 get: function get() {
23743 return this._filename;
23744 }
23745 }, {
23746 key: "contentLength",
23747 get: function get() {
23748 return this._contentLength;
23749 }
23750 }, {
23751 key: "isRangeSupported",
23752 get: function get() {
23753 return this._isRangeSupported;
23754 }
23755 }, {
23756 key: "isStreamingSupported",
23757 get: function get() {
23758 return this._isStreamingSupported;
23759 }
23760 }]);
23761
23762 return BaseFullReader;
23763}();
23764
23765var BaseRangeReader = /*#__PURE__*/function () {
23766 function BaseRangeReader(stream) {
23767 _classCallCheck(this, BaseRangeReader);
23768
23769 this._url = stream.url;
23770 this._done = false;
23771 this._storedError = null;
23772 this.onProgress = null;
23773 this._loaded = 0;
23774 this._readableStream = null;
23775 this._readCapability = (0, _util.createPromiseCapability)();
23776 var source = stream.source;
23777 this._isStreamingSupported = !source.disableStream;
23778 }
23779
23780 _createClass(BaseRangeReader, [{
23781 key: "read",
23782 value: function () {
23783 var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
23784 var chunk, buffer;
23785 return _regenerator["default"].wrap(function _callee2$(_context2) {
23786 while (1) {
23787 switch (_context2.prev = _context2.next) {
23788 case 0:
23789 _context2.next = 2;
23790 return this._readCapability.promise;
23791
23792 case 2:
23793 if (!this._done) {
23794 _context2.next = 4;
23795 break;
23796 }
23797
23798 return _context2.abrupt("return", {
23799 value: undefined,
23800 done: true
23801 });
23802
23803 case 4:
23804 if (!this._storedError) {
23805 _context2.next = 6;
23806 break;
23807 }
23808
23809 throw this._storedError;
23810
23811 case 6:
23812 chunk = this._readableStream.read();
23813
23814 if (!(chunk === null)) {
23815 _context2.next = 10;
23816 break;
23817 }
23818
23819 this._readCapability = (0, _util.createPromiseCapability)();
23820 return _context2.abrupt("return", this.read());
23821
23822 case 10:
23823 this._loaded += chunk.length;
23824
23825 if (this.onProgress) {
23826 this.onProgress({
23827 loaded: this._loaded
23828 });
23829 }
23830
23831 buffer = new Uint8Array(chunk).buffer;
23832 return _context2.abrupt("return", {
23833 value: buffer,
23834 done: false
23835 });
23836
23837 case 14:
23838 case "end":
23839 return _context2.stop();
23840 }
23841 }
23842 }, _callee2, this);
23843 }));
23844
23845 function read() {
23846 return _read2.apply(this, arguments);
23847 }
23848
23849 return read;
23850 }()
23851 }, {
23852 key: "cancel",
23853 value: function cancel(reason) {
23854 if (!this._readableStream) {
23855 this._error(reason);
23856
23857 return;
23858 }
23859
23860 this._readableStream.destroy(reason);
23861 }
23862 }, {
23863 key: "_error",
23864 value: function _error(reason) {
23865 this._storedError = reason;
23866
23867 this._readCapability.resolve();
23868 }
23869 }, {
23870 key: "_setReadableStream",
23871 value: function _setReadableStream(readableStream) {
23872 var _this2 = this;
23873
23874 this._readableStream = readableStream;
23875 readableStream.on("readable", function () {
23876 _this2._readCapability.resolve();
23877 });
23878 readableStream.on("end", function () {
23879 readableStream.destroy();
23880 _this2._done = true;
23881
23882 _this2._readCapability.resolve();
23883 });
23884 readableStream.on("error", function (reason) {
23885 _this2._error(reason);
23886 });
23887
23888 if (this._storedError) {
23889 this._readableStream.destroy(this._storedError);
23890 }
23891 }
23892 }, {
23893 key: "isStreamingSupported",
23894 get: function get() {
23895 return this._isStreamingSupported;
23896 }
23897 }]);
23898
23899 return BaseRangeReader;
23900}();
23901
23902function createRequestOptions(url, headers) {
23903 return {
23904 protocol: url.protocol,
23905 auth: url.auth,
23906 host: url.hostname,
23907 port: url.port,
23908 path: url.path,
23909 method: "GET",
23910 headers: headers
23911 };
23912}
23913
23914var PDFNodeStreamFullReader = /*#__PURE__*/function (_BaseFullReader) {
23915 _inherits(PDFNodeStreamFullReader, _BaseFullReader);
23916
23917 function PDFNodeStreamFullReader(stream) {
23918 var _this3;
23919
23920 _classCallCheck(this, PDFNodeStreamFullReader);
23921
23922 _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream));
23923
23924 var handleResponse = function handleResponse(response) {
23925 if (response.statusCode === 404) {
23926 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\"."));
23927 _this3._storedError = error;
23928
23929 _this3._headersCapability.reject(error);
23930
23931 return;
23932 }
23933
23934 _this3._headersCapability.resolve();
23935
23936 _this3._setReadableStream(response);
23937
23938 var getResponseHeader = function getResponseHeader(name) {
23939 return _this3._readableStream.headers[name.toLowerCase()];
23940 };
23941
23942 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
23943 getResponseHeader: getResponseHeader,
23944 isHttp: stream.isHttp,
23945 rangeChunkSize: _this3._rangeChunkSize,
23946 disableRange: _this3._disableRange
23947 }),
23948 allowRangeRequests = _validateRangeRequest.allowRangeRequests,
23949 suggestedLength = _validateRangeRequest.suggestedLength;
23950
23951 _this3._isRangeSupported = allowRangeRequests;
23952 _this3._contentLength = suggestedLength || _this3._contentLength;
23953 _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
23954 };
23955
23956 _this3._request = null;
23957
23958 if (_this3._url.protocol === "http:") {
23959 _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
23960 } else {
23961 _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
23962 }
23963
23964 _this3._request.on("error", function (reason) {
23965 _this3._storedError = reason;
23966
23967 _this3._headersCapability.reject(reason);
23968 });
23969
23970 _this3._request.end();
23971
23972 return _this3;
23973 }
23974
23975 return PDFNodeStreamFullReader;
23976}(BaseFullReader);
23977
23978var PDFNodeStreamRangeReader = /*#__PURE__*/function (_BaseRangeReader) {
23979 _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);
23980
23981 function PDFNodeStreamRangeReader(stream, start, end) {
23982 var _this4;
23983
23984 _classCallCheck(this, PDFNodeStreamRangeReader);
23985
23986 _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream));
23987 _this4._httpHeaders = {};
23988
23989 for (var property in stream.httpHeaders) {
23990 var value = stream.httpHeaders[property];
23991
23992 if (typeof value === "undefined") {
23993 continue;
23994 }
23995
23996 _this4._httpHeaders[property] = value;
23997 }
23998
23999 _this4._httpHeaders["Range"] = "bytes=".concat(start, "-").concat(end - 1);
24000
24001 var handleResponse = function handleResponse(response) {
24002 if (response.statusCode === 404) {
24003 var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\"."));
24004 _this4._storedError = error;
24005 return;
24006 }
24007
24008 _this4._setReadableStream(response);
24009 };
24010
24011 _this4._request = null;
24012
24013 if (_this4._url.protocol === "http:") {
24014 _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
24015 } else {
24016 _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
24017 }
24018
24019 _this4._request.on("error", function (reason) {
24020 _this4._storedError = reason;
24021 });
24022
24023 _this4._request.end();
24024
24025 return _this4;
24026 }
24027
24028 return PDFNodeStreamRangeReader;
24029}(BaseRangeReader);
24030
24031var PDFNodeStreamFsFullReader = /*#__PURE__*/function (_BaseFullReader2) {
24032 _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);
24033
24034 function PDFNodeStreamFsFullReader(stream) {
24035 var _this5;
24036
24037 _classCallCheck(this, PDFNodeStreamFsFullReader);
24038
24039 _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream));
24040 var path = decodeURIComponent(_this5._url.path);
24041
24042 if (fileUriRegex.test(_this5._url.href)) {
24043 path = path.replace(/^\//, "");
24044 }
24045
24046 fs.lstat(path, function (error, stat) {
24047 if (error) {
24048 if (error.code === "ENOENT") {
24049 error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\"."));
24050 }
24051
24052 _this5._storedError = error;
24053
24054 _this5._headersCapability.reject(error);
24055
24056 return;
24057 }
24058
24059 _this5._contentLength = stat.size;
24060
24061 _this5._setReadableStream(fs.createReadStream(path));
24062
24063 _this5._headersCapability.resolve();
24064 });
24065 return _this5;
24066 }
24067
24068 return PDFNodeStreamFsFullReader;
24069}(BaseFullReader);
24070
24071var PDFNodeStreamFsRangeReader = /*#__PURE__*/function (_BaseRangeReader2) {
24072 _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);
24073
24074 function PDFNodeStreamFsRangeReader(stream, start, end) {
24075 var _this6;
24076
24077 _classCallCheck(this, PDFNodeStreamFsRangeReader);
24078
24079 _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream));
24080 var path = decodeURIComponent(_this6._url.path);
24081
24082 if (fileUriRegex.test(_this6._url.href)) {
24083 path = path.replace(/^\//, "");
24084 }
24085
24086 _this6._setReadableStream(fs.createReadStream(path, {
24087 start: start,
24088 end: end - 1
24089 }));
24090
24091 return _this6;
24092 }
24093
24094 return PDFNodeStreamFsRangeReader;
24095}(BaseRangeReader);
24096
24097/***/ }),
24098/* 209 */
24099/***/ (function(module, exports, __w_pdfjs_require__) {
24100
24101"use strict";
24102
24103
24104Object.defineProperty(exports, "__esModule", {
24105 value: true
24106});
24107exports.createResponseStatusError = createResponseStatusError;
24108exports.extractFilenameFromHeader = extractFilenameFromHeader;
24109exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;
24110exports.validateResponseStatus = validateResponseStatus;
24111
24112var _util = __w_pdfjs_require__(1);
24113
24114var _content_disposition = __w_pdfjs_require__(210);
24115
24116function validateRangeRequestCapabilities(_ref) {
24117 var getResponseHeader = _ref.getResponseHeader,
24118 isHttp = _ref.isHttp,
24119 rangeChunkSize = _ref.rangeChunkSize,
24120 disableRange = _ref.disableRange;
24121 (0, _util.assert)(rangeChunkSize > 0, "Range chunk size must be larger than zero");
24122 var returnValues = {
24123 allowRangeRequests: false,
24124 suggestedLength: undefined
24125 };
24126 var length = parseInt(getResponseHeader("Content-Length"), 10);
24127
24128 if (!Number.isInteger(length)) {
24129 return returnValues;
24130 }
24131
24132 returnValues.suggestedLength = length;
24133
24134 if (length <= 2 * rangeChunkSize) {
24135 return returnValues;
24136 }
24137
24138 if (disableRange || !isHttp) {
24139 return returnValues;
24140 }
24141
24142 if (getResponseHeader("Accept-Ranges") !== "bytes") {
24143 return returnValues;
24144 }
24145
24146 var contentEncoding = getResponseHeader("Content-Encoding") || "identity";
24147
24148 if (contentEncoding !== "identity") {
24149 return returnValues;
24150 }
24151
24152 returnValues.allowRangeRequests = true;
24153 return returnValues;
24154}
24155
24156function extractFilenameFromHeader(getResponseHeader) {
24157 var contentDisposition = getResponseHeader("Content-Disposition");
24158
24159 if (contentDisposition) {
24160 var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);
24161
24162 if (filename.includes("%")) {
24163 try {
24164 filename = decodeURIComponent(filename);
24165 } catch (ex) {}
24166 }
24167
24168 if (/\.pdf$/i.test(filename)) {
24169 return filename;
24170 }
24171 }
24172
24173 return null;
24174}
24175
24176function createResponseStatusError(status, url) {
24177 if (status === 404 || status === 0 && url.startsWith("file:")) {
24178 return new _util.MissingPDFException('Missing PDF "' + url + '".');
24179 }
24180
24181 return new _util.UnexpectedResponseException("Unexpected server response (" + status + ') while retrieving PDF "' + url + '".', status);
24182}
24183
24184function validateResponseStatus(status) {
24185 return status === 200 || status === 206;
24186}
24187
24188/***/ }),
24189/* 210 */
24190/***/ (function(module, exports, __w_pdfjs_require__) {
24191
24192"use strict";
24193
24194
24195Object.defineProperty(exports, "__esModule", {
24196 value: true
24197});
24198exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
24199
24200function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
24201
24202function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
24203
24204function _iterableToArrayLimit(arr, i) { if (!(Symbol.iterator in Object(arr) || Object.prototype.toString.call(arr) === "[object Arguments]")) { return; } var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
24205
24206function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
24207
24208function getFilenameFromContentDispositionHeader(contentDisposition) {
24209 var needsEncodingFixup = true;
24210 var tmp = toParamRegExp("filename\\*", "i").exec(contentDisposition);
24211
24212 if (tmp) {
24213 tmp = tmp[1];
24214 var filename = rfc2616unquote(tmp);
24215 filename = unescape(filename);
24216 filename = rfc5987decode(filename);
24217 filename = rfc2047decode(filename);
24218 return fixupEncoding(filename);
24219 }
24220
24221 tmp = rfc2231getparam(contentDisposition);
24222
24223 if (tmp) {
24224 var _filename = rfc2047decode(tmp);
24225
24226 return fixupEncoding(_filename);
24227 }
24228
24229 tmp = toParamRegExp("filename", "i").exec(contentDisposition);
24230
24231 if (tmp) {
24232 tmp = tmp[1];
24233
24234 var _filename2 = rfc2616unquote(tmp);
24235
24236 _filename2 = rfc2047decode(_filename2);
24237 return fixupEncoding(_filename2);
24238 }
24239
24240 function toParamRegExp(attributePattern, flags) {
24241 return new RegExp("(?:^|;)\\s*" + attributePattern + "\\s*=\\s*" + "(" + '[^";\\s][^;\\s]*' + "|" + '"(?:[^"\\\\]|\\\\"?)+"?' + ")", flags);
24242 }
24243
24244 function textdecode(encoding, value) {
24245 if (encoding) {
24246 if (!/^[\x00-\xFF]+$/.test(value)) {
24247 return value;
24248 }
24249
24250 try {
24251 var decoder = new TextDecoder(encoding, {
24252 fatal: true
24253 });
24254 var bytes = Array.from(value, function (ch) {
24255 return ch.charCodeAt(0) & 0xff;
24256 });
24257 value = decoder.decode(new Uint8Array(bytes));
24258 needsEncodingFixup = false;
24259 } catch (e) {
24260 if (/^utf-?8$/i.test(encoding)) {
24261 try {
24262 value = decodeURIComponent(escape(value));
24263 needsEncodingFixup = false;
24264 } catch (err) {}
24265 }
24266 }
24267 }
24268
24269 return value;
24270 }
24271
24272 function fixupEncoding(value) {
24273 if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
24274 value = textdecode("utf-8", value);
24275
24276 if (needsEncodingFixup) {
24277 value = textdecode("iso-8859-1", value);
24278 }
24279 }
24280
24281 return value;
24282 }
24283
24284 function rfc2231getparam(contentDisposition) {
24285 var matches = [];
24286 var match;
24287 var iter = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig");
24288
24289 while ((match = iter.exec(contentDisposition)) !== null) {
24290 var _match = match,
24291 _match2 = _slicedToArray(_match, 4),
24292 n = _match2[1],
24293 quot = _match2[2],
24294 part = _match2[3];
24295
24296 n = parseInt(n, 10);
24297
24298 if (n in matches) {
24299 if (n === 0) {
24300 break;
24301 }
24302
24303 continue;
24304 }
24305
24306 matches[n] = [quot, part];
24307 }
24308
24309 var parts = [];
24310
24311 for (var _n2 = 0; _n2 < matches.length; ++_n2) {
24312 if (!(_n2 in matches)) {
24313 break;
24314 }
24315
24316 var _matches$_n = _slicedToArray(matches[_n2], 2),
24317 _quot = _matches$_n[0],
24318 _part = _matches$_n[1];
24319
24320 _part = rfc2616unquote(_part);
24321
24322 if (_quot) {
24323 _part = unescape(_part);
24324
24325 if (_n2 === 0) {
24326 _part = rfc5987decode(_part);
24327 }
24328 }
24329
24330 parts.push(_part);
24331 }
24332
24333 return parts.join("");
24334 }
24335
24336 function rfc2616unquote(value) {
24337 if (value.startsWith('"')) {
24338 var parts = value.slice(1).split('\\"');
24339
24340 for (var i = 0; i < parts.length; ++i) {
24341 var quotindex = parts[i].indexOf('"');
24342
24343 if (quotindex !== -1) {
24344 parts[i] = parts[i].slice(0, quotindex);
24345 parts.length = i + 1;
24346 }
24347
24348 parts[i] = parts[i].replace(/\\(.)/g, "$1");
24349 }
24350
24351 value = parts.join('"');
24352 }
24353
24354 return value;
24355 }
24356
24357 function rfc5987decode(extvalue) {
24358 var encodingend = extvalue.indexOf("'");
24359
24360 if (encodingend === -1) {
24361 return extvalue;
24362 }
24363
24364 var encoding = extvalue.slice(0, encodingend);
24365 var langvalue = extvalue.slice(encodingend + 1);
24366 var value = langvalue.replace(/^[^']*'/, "");
24367 return textdecode(encoding, value);
24368 }
24369
24370 function rfc2047decode(value) {
24371 if (!value.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(value)) {
24372 return value;
24373 }
24374
24375 return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) {
24376 if (encoding === "q" || encoding === "Q") {
24377 text = text.replace(/_/g, " ");
24378 text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {
24379 return String.fromCharCode(parseInt(hex, 16));
24380 });
24381 return textdecode(charset, text);
24382 }
24383
24384 try {
24385 text = atob(text);
24386 } catch (e) {}
24387
24388 return textdecode(charset, text);
24389 });
24390 }
24391
24392 return "";
24393}
24394
24395/***/ }),
24396/* 211 */
24397/***/ (function(module, exports, __w_pdfjs_require__) {
24398
24399"use strict";
24400
24401
24402Object.defineProperty(exports, "__esModule", {
24403 value: true
24404});
24405exports.PDFNetworkStream = void 0;
24406
24407var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
24408
24409var _util = __w_pdfjs_require__(1);
24410
24411var _network_utils = __w_pdfjs_require__(209);
24412
24413function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
24414
24415function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
24416
24417function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
24418
24419function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
24420
24421function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
24422
24423function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
24424
24425;
24426var OK_RESPONSE = 200;
24427var PARTIAL_CONTENT_RESPONSE = 206;
24428
24429function getArrayBuffer(xhr) {
24430 var data = xhr.response;
24431
24432 if (typeof data !== "string") {
24433 return data;
24434 }
24435
24436 var array = (0, _util.stringToBytes)(data);
24437 return array.buffer;
24438}
24439
24440var NetworkManager = /*#__PURE__*/function () {
24441 function NetworkManager(url, args) {
24442 _classCallCheck(this, NetworkManager);
24443
24444 this.url = url;
24445 args = args || {};
24446 this.isHttp = /^https?:/i.test(url);
24447 this.httpHeaders = this.isHttp && args.httpHeaders || {};
24448 this.withCredentials = args.withCredentials || false;
24449
24450 this.getXhr = args.getXhr || function NetworkManager_getXhr() {
24451 return new XMLHttpRequest();
24452 };
24453
24454 this.currXhrId = 0;
24455 this.pendingRequests = Object.create(null);
24456 }
24457
24458 _createClass(NetworkManager, [{
24459 key: "requestRange",
24460 value: function requestRange(begin, end, listeners) {
24461 var args = {
24462 begin: begin,
24463 end: end
24464 };
24465
24466 for (var prop in listeners) {
24467 args[prop] = listeners[prop];
24468 }
24469
24470 return this.request(args);
24471 }
24472 }, {
24473 key: "requestFull",
24474 value: function requestFull(listeners) {
24475 return this.request(listeners);
24476 }
24477 }, {
24478 key: "request",
24479 value: function request(args) {
24480 var xhr = this.getXhr();
24481 var xhrId = this.currXhrId++;
24482 var pendingRequest = this.pendingRequests[xhrId] = {
24483 xhr: xhr
24484 };
24485 xhr.open("GET", this.url);
24486 xhr.withCredentials = this.withCredentials;
24487
24488 for (var property in this.httpHeaders) {
24489 var value = this.httpHeaders[property];
24490
24491 if (typeof value === "undefined") {
24492 continue;
24493 }
24494
24495 xhr.setRequestHeader(property, value);
24496 }
24497
24498 if (this.isHttp && "begin" in args && "end" in args) {
24499 xhr.setRequestHeader("Range", "bytes=".concat(args.begin, "-").concat(args.end - 1));
24500 pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;
24501 } else {
24502 pendingRequest.expectedStatus = OK_RESPONSE;
24503 }
24504
24505 xhr.responseType = "arraybuffer";
24506
24507 if (args.onError) {
24508 xhr.onerror = function (evt) {
24509 args.onError(xhr.status);
24510 };
24511 }
24512
24513 xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);
24514 xhr.onprogress = this.onProgress.bind(this, xhrId);
24515 pendingRequest.onHeadersReceived = args.onHeadersReceived;
24516 pendingRequest.onDone = args.onDone;
24517 pendingRequest.onError = args.onError;
24518 pendingRequest.onProgress = args.onProgress;
24519 xhr.send(null);
24520 return xhrId;
24521 }
24522 }, {
24523 key: "onProgress",
24524 value: function onProgress(xhrId, evt) {
24525 var pendingRequest = this.pendingRequests[xhrId];
24526
24527 if (!pendingRequest) {
24528 return;
24529 }
24530
24531 if (pendingRequest.onProgress) {
24532 pendingRequest.onProgress(evt);
24533 }
24534 }
24535 }, {
24536 key: "onStateChange",
24537 value: function onStateChange(xhrId, evt) {
24538 var pendingRequest = this.pendingRequests[xhrId];
24539
24540 if (!pendingRequest) {
24541 return;
24542 }
24543
24544 var xhr = pendingRequest.xhr;
24545
24546 if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {
24547 pendingRequest.onHeadersReceived();
24548 delete pendingRequest.onHeadersReceived;
24549 }
24550
24551 if (xhr.readyState !== 4) {
24552 return;
24553 }
24554
24555 if (!(xhrId in this.pendingRequests)) {
24556 return;
24557 }
24558
24559 delete this.pendingRequests[xhrId];
24560
24561 if (xhr.status === 0 && this.isHttp) {
24562 if (pendingRequest.onError) {
24563 pendingRequest.onError(xhr.status);
24564 }
24565
24566 return;
24567 }
24568
24569 var xhrStatus = xhr.status || OK_RESPONSE;
24570 var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;
24571
24572 if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {
24573 if (pendingRequest.onError) {
24574 pendingRequest.onError(xhr.status);
24575 }
24576
24577 return;
24578 }
24579
24580 var chunk = getArrayBuffer(xhr);
24581
24582 if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {
24583 var rangeHeader = xhr.getResponseHeader("Content-Range");
24584 var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);
24585 pendingRequest.onDone({
24586 begin: parseInt(matches[1], 10),
24587 chunk: chunk
24588 });
24589 } else if (chunk) {
24590 pendingRequest.onDone({
24591 begin: 0,
24592 chunk: chunk
24593 });
24594 } else if (pendingRequest.onError) {
24595 pendingRequest.onError(xhr.status);
24596 }
24597 }
24598 }, {
24599 key: "hasPendingRequests",
24600 value: function hasPendingRequests() {
24601 for (var xhrId in this.pendingRequests) {
24602 return true;
24603 }
24604
24605 return false;
24606 }
24607 }, {
24608 key: "getRequestXhr",
24609 value: function getRequestXhr(xhrId) {
24610 return this.pendingRequests[xhrId].xhr;
24611 }
24612 }, {
24613 key: "isPendingRequest",
24614 value: function isPendingRequest(xhrId) {
24615 return xhrId in this.pendingRequests;
24616 }
24617 }, {
24618 key: "abortAllRequests",
24619 value: function abortAllRequests() {
24620 for (var xhrId in this.pendingRequests) {
24621 this.abortRequest(xhrId | 0);
24622 }
24623 }
24624 }, {
24625 key: "abortRequest",
24626 value: function abortRequest(xhrId) {
24627 var xhr = this.pendingRequests[xhrId].xhr;
24628 delete this.pendingRequests[xhrId];
24629 xhr.abort();
24630 }
24631 }]);
24632
24633 return NetworkManager;
24634}();
24635
24636var PDFNetworkStream = /*#__PURE__*/function () {
24637 function PDFNetworkStream(source) {
24638 _classCallCheck(this, PDFNetworkStream);
24639
24640 this._source = source;
24641 this._manager = new NetworkManager(source.url, {
24642 httpHeaders: source.httpHeaders,
24643 withCredentials: source.withCredentials
24644 });
24645 this._rangeChunkSize = source.rangeChunkSize;
24646 this._fullRequestReader = null;
24647 this._rangeRequestReaders = [];
24648 }
24649
24650 _createClass(PDFNetworkStream, [{
24651 key: "_onRangeRequestReaderClosed",
24652 value: function _onRangeRequestReaderClosed(reader) {
24653 var i = this._rangeRequestReaders.indexOf(reader);
24654
24655 if (i >= 0) {
24656 this._rangeRequestReaders.splice(i, 1);
24657 }
24658 }
24659 }, {
24660 key: "getFullReader",
24661 value: function getFullReader() {
24662 (0, _util.assert)(!this._fullRequestReader);
24663 this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);
24664 return this._fullRequestReader;
24665 }
24666 }, {
24667 key: "getRangeReader",
24668 value: function getRangeReader(begin, end) {
24669 var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);
24670 reader.onClosed = this._onRangeRequestReaderClosed.bind(this);
24671
24672 this._rangeRequestReaders.push(reader);
24673
24674 return reader;
24675 }
24676 }, {
24677 key: "cancelAllRequests",
24678 value: function cancelAllRequests(reason) {
24679 if (this._fullRequestReader) {
24680 this._fullRequestReader.cancel(reason);
24681 }
24682
24683 var readers = this._rangeRequestReaders.slice(0);
24684
24685 readers.forEach(function (reader) {
24686 reader.cancel(reason);
24687 });
24688 }
24689 }]);
24690
24691 return PDFNetworkStream;
24692}();
24693
24694exports.PDFNetworkStream = PDFNetworkStream;
24695
24696var PDFNetworkStreamFullRequestReader = /*#__PURE__*/function () {
24697 function PDFNetworkStreamFullRequestReader(manager, source) {
24698 _classCallCheck(this, PDFNetworkStreamFullRequestReader);
24699
24700 this._manager = manager;
24701 var args = {
24702 onHeadersReceived: this._onHeadersReceived.bind(this),
24703 onDone: this._onDone.bind(this),
24704 onError: this._onError.bind(this),
24705 onProgress: this._onProgress.bind(this)
24706 };
24707 this._url = source.url;
24708 this._fullRequestId = manager.requestFull(args);
24709 this._headersReceivedCapability = (0, _util.createPromiseCapability)();
24710 this._disableRange = source.disableRange || false;
24711 this._contentLength = source.length;
24712 this._rangeChunkSize = source.rangeChunkSize;
24713
24714 if (!this._rangeChunkSize && !this._disableRange) {
24715 this._disableRange = true;
24716 }
24717
24718 this._isStreamingSupported = false;
24719 this._isRangeSupported = false;
24720 this._cachedChunks = [];
24721 this._requests = [];
24722 this._done = false;
24723 this._storedError = undefined;
24724 this._filename = null;
24725 this.onProgress = null;
24726 }
24727
24728 _createClass(PDFNetworkStreamFullRequestReader, [{
24729 key: "_onHeadersReceived",
24730 value: function _onHeadersReceived() {
24731 var fullRequestXhrId = this._fullRequestId;
24732
24733 var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);
24734
24735 var getResponseHeader = function getResponseHeader(name) {
24736 return fullRequestXhr.getResponseHeader(name);
24737 };
24738
24739 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
24740 getResponseHeader: getResponseHeader,
24741 isHttp: this._manager.isHttp,
24742 rangeChunkSize: this._rangeChunkSize,
24743 disableRange: this._disableRange
24744 }),
24745 allowRangeRequests = _validateRangeRequest.allowRangeRequests,
24746 suggestedLength = _validateRangeRequest.suggestedLength;
24747
24748 if (allowRangeRequests) {
24749 this._isRangeSupported = true;
24750 }
24751
24752 this._contentLength = suggestedLength || this._contentLength;
24753 this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
24754
24755 if (this._isRangeSupported) {
24756 this._manager.abortRequest(fullRequestXhrId);
24757 }
24758
24759 this._headersReceivedCapability.resolve();
24760 }
24761 }, {
24762 key: "_onDone",
24763 value: function _onDone(args) {
24764 if (args) {
24765 if (this._requests.length > 0) {
24766 var requestCapability = this._requests.shift();
24767
24768 requestCapability.resolve({
24769 value: args.chunk,
24770 done: false
24771 });
24772 } else {
24773 this._cachedChunks.push(args.chunk);
24774 }
24775 }
24776
24777 this._done = true;
24778
24779 if (this._cachedChunks.length > 0) {
24780 return;
24781 }
24782
24783 this._requests.forEach(function (requestCapability) {
24784 requestCapability.resolve({
24785 value: undefined,
24786 done: true
24787 });
24788 });
24789
24790 this._requests = [];
24791 }
24792 }, {
24793 key: "_onError",
24794 value: function _onError(status) {
24795 var url = this._url;
24796 var exception = (0, _network_utils.createResponseStatusError)(status, url);
24797 this._storedError = exception;
24798
24799 this._headersReceivedCapability.reject(exception);
24800
24801 this._requests.forEach(function (requestCapability) {
24802 requestCapability.reject(exception);
24803 });
24804
24805 this._requests = [];
24806 this._cachedChunks = [];
24807 }
24808 }, {
24809 key: "_onProgress",
24810 value: function _onProgress(data) {
24811 if (this.onProgress) {
24812 this.onProgress({
24813 loaded: data.loaded,
24814 total: data.lengthComputable ? data.total : this._contentLength
24815 });
24816 }
24817 }
24818 }, {
24819 key: "read",
24820 value: function () {
24821 var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
24822 var chunk, requestCapability;
24823 return _regenerator["default"].wrap(function _callee$(_context) {
24824 while (1) {
24825 switch (_context.prev = _context.next) {
24826 case 0:
24827 if (!this._storedError) {
24828 _context.next = 2;
24829 break;
24830 }
24831
24832 throw this._storedError;
24833
24834 case 2:
24835 if (!(this._cachedChunks.length > 0)) {
24836 _context.next = 5;
24837 break;
24838 }
24839
24840 chunk = this._cachedChunks.shift();
24841 return _context.abrupt("return", {
24842 value: chunk,
24843 done: false
24844 });
24845
24846 case 5:
24847 if (!this._done) {
24848 _context.next = 7;
24849 break;
24850 }
24851
24852 return _context.abrupt("return", {
24853 value: undefined,
24854 done: true
24855 });
24856
24857 case 7:
24858 requestCapability = (0, _util.createPromiseCapability)();
24859
24860 this._requests.push(requestCapability);
24861
24862 return _context.abrupt("return", requestCapability.promise);
24863
24864 case 10:
24865 case "end":
24866 return _context.stop();
24867 }
24868 }
24869 }, _callee, this);
24870 }));
24871
24872 function read() {
24873 return _read.apply(this, arguments);
24874 }
24875
24876 return read;
24877 }()
24878 }, {
24879 key: "cancel",
24880 value: function cancel(reason) {
24881 this._done = true;
24882
24883 this._headersReceivedCapability.reject(reason);
24884
24885 this._requests.forEach(function (requestCapability) {
24886 requestCapability.resolve({
24887 value: undefined,
24888 done: true
24889 });
24890 });
24891
24892 this._requests = [];
24893
24894 if (this._manager.isPendingRequest(this._fullRequestId)) {
24895 this._manager.abortRequest(this._fullRequestId);
24896 }
24897
24898 this._fullRequestReader = null;
24899 }
24900 }, {
24901 key: "filename",
24902 get: function get() {
24903 return this._filename;
24904 }
24905 }, {
24906 key: "isRangeSupported",
24907 get: function get() {
24908 return this._isRangeSupported;
24909 }
24910 }, {
24911 key: "isStreamingSupported",
24912 get: function get() {
24913 return this._isStreamingSupported;
24914 }
24915 }, {
24916 key: "contentLength",
24917 get: function get() {
24918 return this._contentLength;
24919 }
24920 }, {
24921 key: "headersReady",
24922 get: function get() {
24923 return this._headersReceivedCapability.promise;
24924 }
24925 }]);
24926
24927 return PDFNetworkStreamFullRequestReader;
24928}();
24929
24930var PDFNetworkStreamRangeRequestReader = /*#__PURE__*/function () {
24931 function PDFNetworkStreamRangeRequestReader(manager, begin, end) {
24932 _classCallCheck(this, PDFNetworkStreamRangeRequestReader);
24933
24934 this._manager = manager;
24935 var args = {
24936 onDone: this._onDone.bind(this),
24937 onProgress: this._onProgress.bind(this)
24938 };
24939 this._requestId = manager.requestRange(begin, end, args);
24940 this._requests = [];
24941 this._queuedChunk = null;
24942 this._done = false;
24943 this.onProgress = null;
24944 this.onClosed = null;
24945 }
24946
24947 _createClass(PDFNetworkStreamRangeRequestReader, [{
24948 key: "_close",
24949 value: function _close() {
24950 if (this.onClosed) {
24951 this.onClosed(this);
24952 }
24953 }
24954 }, {
24955 key: "_onDone",
24956 value: function _onDone(data) {
24957 var chunk = data.chunk;
24958
24959 if (this._requests.length > 0) {
24960 var requestCapability = this._requests.shift();
24961
24962 requestCapability.resolve({
24963 value: chunk,
24964 done: false
24965 });
24966 } else {
24967 this._queuedChunk = chunk;
24968 }
24969
24970 this._done = true;
24971
24972 this._requests.forEach(function (requestCapability) {
24973 requestCapability.resolve({
24974 value: undefined,
24975 done: true
24976 });
24977 });
24978
24979 this._requests = [];
24980
24981 this._close();
24982 }
24983 }, {
24984 key: "_onProgress",
24985 value: function _onProgress(evt) {
24986 if (!this.isStreamingSupported && this.onProgress) {
24987 this.onProgress({
24988 loaded: evt.loaded
24989 });
24990 }
24991 }
24992 }, {
24993 key: "read",
24994 value: function () {
24995 var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
24996 var chunk, requestCapability;
24997 return _regenerator["default"].wrap(function _callee2$(_context2) {
24998 while (1) {
24999 switch (_context2.prev = _context2.next) {
25000 case 0:
25001 if (!(this._queuedChunk !== null)) {
25002 _context2.next = 4;
25003 break;
25004 }
25005
25006 chunk = this._queuedChunk;
25007 this._queuedChunk = null;
25008 return _context2.abrupt("return", {
25009 value: chunk,
25010 done: false
25011 });
25012
25013 case 4:
25014 if (!this._done) {
25015 _context2.next = 6;
25016 break;
25017 }
25018
25019 return _context2.abrupt("return", {
25020 value: undefined,
25021 done: true
25022 });
25023
25024 case 6:
25025 requestCapability = (0, _util.createPromiseCapability)();
25026
25027 this._requests.push(requestCapability);
25028
25029 return _context2.abrupt("return", requestCapability.promise);
25030
25031 case 9:
25032 case "end":
25033 return _context2.stop();
25034 }
25035 }
25036 }, _callee2, this);
25037 }));
25038
25039 function read() {
25040 return _read2.apply(this, arguments);
25041 }
25042
25043 return read;
25044 }()
25045 }, {
25046 key: "cancel",
25047 value: function cancel(reason) {
25048 this._done = true;
25049
25050 this._requests.forEach(function (requestCapability) {
25051 requestCapability.resolve({
25052 value: undefined,
25053 done: true
25054 });
25055 });
25056
25057 this._requests = [];
25058
25059 if (this._manager.isPendingRequest(this._requestId)) {
25060 this._manager.abortRequest(this._requestId);
25061 }
25062
25063 this._close();
25064 }
25065 }, {
25066 key: "isStreamingSupported",
25067 get: function get() {
25068 return false;
25069 }
25070 }]);
25071
25072 return PDFNetworkStreamRangeRequestReader;
25073}();
25074
25075/***/ }),
25076/* 212 */
25077/***/ (function(module, exports, __w_pdfjs_require__) {
25078
25079"use strict";
25080
25081
25082Object.defineProperty(exports, "__esModule", {
25083 value: true
25084});
25085exports.PDFFetchStream = void 0;
25086
25087var _regenerator = _interopRequireDefault(__w_pdfjs_require__(191));
25088
25089var _util = __w_pdfjs_require__(1);
25090
25091var _network_utils = __w_pdfjs_require__(209);
25092
25093function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25094
25095function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
25096
25097function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
25098
25099function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
25100
25101function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
25102
25103function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
25104
25105function createFetchOptions(headers, withCredentials, abortController) {
25106 return {
25107 method: "GET",
25108 headers: headers,
25109 signal: abortController && abortController.signal,
25110 mode: "cors",
25111 credentials: withCredentials ? "include" : "same-origin",
25112 redirect: "follow"
25113 };
25114}
25115
25116function createHeaders(httpHeaders) {
25117 var headers = new Headers();
25118
25119 for (var property in httpHeaders) {
25120 var value = httpHeaders[property];
25121
25122 if (typeof value === "undefined") {
25123 continue;
25124 }
25125
25126 headers.append(property, value);
25127 }
25128
25129 return headers;
25130}
25131
25132var PDFFetchStream = /*#__PURE__*/function () {
25133 function PDFFetchStream(source) {
25134 _classCallCheck(this, PDFFetchStream);
25135
25136 this.source = source;
25137 this.isHttp = /^https?:/i.test(source.url);
25138 this.httpHeaders = this.isHttp && source.httpHeaders || {};
25139 this._fullRequestReader = null;
25140 this._rangeRequestReaders = [];
25141 }
25142
25143 _createClass(PDFFetchStream, [{
25144 key: "getFullReader",
25145 value: function getFullReader() {
25146 (0, _util.assert)(!this._fullRequestReader);
25147 this._fullRequestReader = new PDFFetchStreamReader(this);
25148 return this._fullRequestReader;
25149 }
25150 }, {
25151 key: "getRangeReader",
25152 value: function getRangeReader(begin, end) {
25153 if (end <= this._progressiveDataLength) {
25154 return null;
25155 }
25156
25157 var reader = new PDFFetchStreamRangeReader(this, begin, end);
25158
25159 this._rangeRequestReaders.push(reader);
25160
25161 return reader;
25162 }
25163 }, {
25164 key: "cancelAllRequests",
25165 value: function cancelAllRequests(reason) {
25166 if (this._fullRequestReader) {
25167 this._fullRequestReader.cancel(reason);
25168 }
25169
25170 var readers = this._rangeRequestReaders.slice(0);
25171
25172 readers.forEach(function (reader) {
25173 reader.cancel(reason);
25174 });
25175 }
25176 }, {
25177 key: "_progressiveDataLength",
25178 get: function get() {
25179 return this._fullRequestReader ? this._fullRequestReader._loaded : 0;
25180 }
25181 }]);
25182
25183 return PDFFetchStream;
25184}();
25185
25186exports.PDFFetchStream = PDFFetchStream;
25187
25188var PDFFetchStreamReader = /*#__PURE__*/function () {
25189 function PDFFetchStreamReader(stream) {
25190 var _this = this;
25191
25192 _classCallCheck(this, PDFFetchStreamReader);
25193
25194 this._stream = stream;
25195 this._reader = null;
25196 this._loaded = 0;
25197 this._filename = null;
25198 var source = stream.source;
25199 this._withCredentials = source.withCredentials || false;
25200 this._contentLength = source.length;
25201 this._headersCapability = (0, _util.createPromiseCapability)();
25202 this._disableRange = source.disableRange || false;
25203 this._rangeChunkSize = source.rangeChunkSize;
25204
25205 if (!this._rangeChunkSize && !this._disableRange) {
25206 this._disableRange = true;
25207 }
25208
25209 if (typeof AbortController !== "undefined") {
25210 this._abortController = new AbortController();
25211 }
25212
25213 this._isStreamingSupported = !source.disableStream;
25214 this._isRangeSupported = !source.disableRange;
25215 this._headers = createHeaders(this._stream.httpHeaders);
25216 var url = source.url;
25217 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
25218 if (!(0, _network_utils.validateResponseStatus)(response.status)) {
25219 throw (0, _network_utils.createResponseStatusError)(response.status, url);
25220 }
25221
25222 _this._reader = response.body.getReader();
25223
25224 _this._headersCapability.resolve();
25225
25226 var getResponseHeader = function getResponseHeader(name) {
25227 return response.headers.get(name);
25228 };
25229
25230 var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
25231 getResponseHeader: getResponseHeader,
25232 isHttp: _this._stream.isHttp,
25233 rangeChunkSize: _this._rangeChunkSize,
25234 disableRange: _this._disableRange
25235 }),
25236 allowRangeRequests = _validateRangeRequest.allowRangeRequests,
25237 suggestedLength = _validateRangeRequest.suggestedLength;
25238
25239 _this._isRangeSupported = allowRangeRequests;
25240 _this._contentLength = suggestedLength || _this._contentLength;
25241 _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
25242
25243 if (!_this._isStreamingSupported && _this._isRangeSupported) {
25244 _this.cancel(new _util.AbortException("Streaming is disabled."));
25245 }
25246 })["catch"](this._headersCapability.reject);
25247 this.onProgress = null;
25248 }
25249
25250 _createClass(PDFFetchStreamReader, [{
25251 key: "read",
25252 value: function () {
25253 var _read = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
25254 var _ref, value, done, buffer;
25255
25256 return _regenerator["default"].wrap(function _callee$(_context) {
25257 while (1) {
25258 switch (_context.prev = _context.next) {
25259 case 0:
25260 _context.next = 2;
25261 return this._headersCapability.promise;
25262
25263 case 2:
25264 _context.next = 4;
25265 return this._reader.read();
25266
25267 case 4:
25268 _ref = _context.sent;
25269 value = _ref.value;
25270 done = _ref.done;
25271
25272 if (!done) {
25273 _context.next = 9;
25274 break;
25275 }
25276
25277 return _context.abrupt("return", {
25278 value: value,
25279 done: done
25280 });
25281
25282 case 9:
25283 this._loaded += value.byteLength;
25284
25285 if (this.onProgress) {
25286 this.onProgress({
25287 loaded: this._loaded,
25288 total: this._contentLength
25289 });
25290 }
25291
25292 buffer = new Uint8Array(value).buffer;
25293 return _context.abrupt("return", {
25294 value: buffer,
25295 done: false
25296 });
25297
25298 case 13:
25299 case "end":
25300 return _context.stop();
25301 }
25302 }
25303 }, _callee, this);
25304 }));
25305
25306 function read() {
25307 return _read.apply(this, arguments);
25308 }
25309
25310 return read;
25311 }()
25312 }, {
25313 key: "cancel",
25314 value: function cancel(reason) {
25315 if (this._reader) {
25316 this._reader.cancel(reason);
25317 }
25318
25319 if (this._abortController) {
25320 this._abortController.abort();
25321 }
25322 }
25323 }, {
25324 key: "headersReady",
25325 get: function get() {
25326 return this._headersCapability.promise;
25327 }
25328 }, {
25329 key: "filename",
25330 get: function get() {
25331 return this._filename;
25332 }
25333 }, {
25334 key: "contentLength",
25335 get: function get() {
25336 return this._contentLength;
25337 }
25338 }, {
25339 key: "isRangeSupported",
25340 get: function get() {
25341 return this._isRangeSupported;
25342 }
25343 }, {
25344 key: "isStreamingSupported",
25345 get: function get() {
25346 return this._isStreamingSupported;
25347 }
25348 }]);
25349
25350 return PDFFetchStreamReader;
25351}();
25352
25353var PDFFetchStreamRangeReader = /*#__PURE__*/function () {
25354 function PDFFetchStreamRangeReader(stream, begin, end) {
25355 var _this2 = this;
25356
25357 _classCallCheck(this, PDFFetchStreamRangeReader);
25358
25359 this._stream = stream;
25360 this._reader = null;
25361 this._loaded = 0;
25362 var source = stream.source;
25363 this._withCredentials = source.withCredentials || false;
25364 this._readCapability = (0, _util.createPromiseCapability)();
25365 this._isStreamingSupported = !source.disableStream;
25366
25367 if (typeof AbortController !== "undefined") {
25368 this._abortController = new AbortController();
25369 }
25370
25371 this._headers = createHeaders(this._stream.httpHeaders);
25372
25373 this._headers.append("Range", "bytes=".concat(begin, "-").concat(end - 1));
25374
25375 var url = source.url;
25376 fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
25377 if (!(0, _network_utils.validateResponseStatus)(response.status)) {
25378 throw (0, _network_utils.createResponseStatusError)(response.status, url);
25379 }
25380
25381 _this2._readCapability.resolve();
25382
25383 _this2._reader = response.body.getReader();
25384 });
25385 this.onProgress = null;
25386 }
25387
25388 _createClass(PDFFetchStreamRangeReader, [{
25389 key: "read",
25390 value: function () {
25391 var _read2 = _asyncToGenerator( /*#__PURE__*/_regenerator["default"].mark(function _callee2() {
25392 var _ref2, value, done, buffer;
25393
25394 return _regenerator["default"].wrap(function _callee2$(_context2) {
25395 while (1) {
25396 switch (_context2.prev = _context2.next) {
25397 case 0:
25398 _context2.next = 2;
25399 return this._readCapability.promise;
25400
25401 case 2:
25402 _context2.next = 4;
25403 return this._reader.read();
25404
25405 case 4:
25406 _ref2 = _context2.sent;
25407 value = _ref2.value;
25408 done = _ref2.done;
25409
25410 if (!done) {
25411 _context2.next = 9;
25412 break;
25413 }
25414
25415 return _context2.abrupt("return", {
25416 value: value,
25417 done: done
25418 });
25419
25420 case 9:
25421 this._loaded += value.byteLength;
25422
25423 if (this.onProgress) {
25424 this.onProgress({
25425 loaded: this._loaded
25426 });
25427 }
25428
25429 buffer = new Uint8Array(value).buffer;
25430 return _context2.abrupt("return", {
25431 value: buffer,
25432 done: false
25433 });
25434
25435 case 13:
25436 case "end":
25437 return _context2.stop();
25438 }
25439 }
25440 }, _callee2, this);
25441 }));
25442
25443 function read() {
25444 return _read2.apply(this, arguments);
25445 }
25446
25447 return read;
25448 }()
25449 }, {
25450 key: "cancel",
25451 value: function cancel(reason) {
25452 if (this._reader) {
25453 this._reader.cancel(reason);
25454 }
25455
25456 if (this._abortController) {
25457 this._abortController.abort();
25458 }
25459 }
25460 }, {
25461 key: "isStreamingSupported",
25462 get: function get() {
25463 return this._isStreamingSupported;
25464 }
25465 }]);
25466
25467 return PDFFetchStreamRangeReader;
25468}();
25469
25470/***/ })
25471/******/ ]);
25472});
25473//# sourceMappingURL=pdf.js.map
\No newline at end of file