PageSourceSearch

https://friesach.gv.at/typo3temp/assets/compressed/pdf-14cf83104d22a7e39ec85a0eb9014472.js?1787664774

js friesach.gv.at collected 2026-10-02 20:22:36 UTC 721,425 bytes, 23,599 lines download raw bytes

vendor: 4,144 bytes, lines 1-100
1/**
2 * @licstart The following is the entire license notice for the
3 * Javascript code in this page
4 *
5 * Copyright 2018 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.1.266';
127var pdfjsBuild = '81f5835c';
128
129var pdfjsSharedUtil = __w_pdfjs_require__(1);
130
131var pdfjsDisplayAPI = __w_pdfjs_require__(146);
132
133var pdfjsDisplayTextLayer = __w_pdfjs_require__(162);
134
135var pdfjsDisplayAnnotationLayer = __w_pdfjs_require__(163);
136
137var pdfjsDisplayDOMUtils = __w_pdfjs_require__(151);
138
139var pdfjsDisplaySVG = __w_pdfjs_require__(164);
140
141var pdfjsDisplayWorkerOptions = __w_pdfjs_require__(156);
142
143var pdfjsDisplayAPICompatibility = __w_pdfjs_require__(153);
144
145{
146  var isNodeJS = __w_pdfjs_require__(4);
147
148  if (isNodeJS()) {
149    var PDFNodeStream = __w_pdfjs_require__(165).PDFNodeStream;
150
151    pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
152      return new PDFNodeStream(params);
153    });
154  } else if (typeof Response !== 'undefined' && 'body' in Response.prototype && typeof ReadableStream !== 'undefined') {
155    var PDFFetchStream = __w_pdfjs_require__(168).PDFFetchStream;
156
157    pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
158      return new PDFFetchStream(params);
159    });
160  } else {
161    var PDFNetworkStream = __w_pdfjs_require__(169).PDFNetworkStream;
162
163    pdfjsDisplayAPI.setPDFNetworkStreamFactory(function (params) {
164      return new PDFNetworkStream(params);
165    });
166  }
167}
168exports.build = pdfjsDisplayAPI.build;
169exports.version = pdfjsDisplayAPI.version;
170exports.getDocument = pdfjsDisplayAPI.getDocument;
171exports.LoopbackPort = pdfjsDisplayAPI.LoopbackPort;
172exports.PDFDataRangeTransport = pdfjsDisplayAPI.PDFDataRangeTransport;
173exports.PDFWorker = pdfjsDisplayAPI.PDFWorker;
174exports.renderTextLayer = pdfjsDisplayTextLayer.renderTextLayer;
175exports.AnnotationLayer = pdfjsDisplayAnnotationLayer.AnnotationLayer;
176exports.createPromiseCapability = pdfjsSharedUtil.createPromiseCapability;
177exports.PasswordResponses = pdfjsSharedUtil.PasswordResponses;
178exports.InvalidPDFException = pdfjsSharedUtil.InvalidPDFException;
179exports.MissingPDFException = pdfjsSharedUtil.MissingPDFException;
180exports.SVGGraphics = pdfjsDisplaySVG.SVGGraphics;
181exports.NativeImageDecoding = pdfjsSharedUtil.NativeImageDecoding;
182exports.CMapCompressionType = pdfjsSharedUtil.CMapCompressionType;
183exports.PermissionFlag = pdfjsSharedUtil.PermissionFlag;
184exports.UnexpectedResponseException = pdfjsSharedUtil.UnexpectedResponseException;
185exports.OPS = pdfjsSharedUtil.OPS;
186exports.VerbosityLevel = pdfjsSharedUtil.VerbosityLevel;
187exports.UNSUPPORTED_FEATURES = pdfjsSharedUtil.UNSUPPORTED_FEATURES;
188exports.createValidAbsoluteUrl = pdfjsSharedUtil.createValidAbsoluteUrl;
189exports.createObjectURL = pdfjsSharedUtil.createObjectURL;
190exports.removeNullCharacters = pdfjsSharedUtil.removeNullCharacters;
191exports.shadow = pdfjsSharedUtil.shadow;
192exports.Util = pdfjsSharedUtil.Util;
193exports.ReadableStream = pdfjsSharedUtil.ReadableStream;
194exports.URL = pdfjsSharedUtil.URL;
195exports.RenderingCancelledException = pdfjsDisplayDOMUtils.RenderingCancelledException;
196exports.getFilenameFromUrl = pdfjsDisplayDOMUtils.getFilenameFromUrl;
197exports.LinkTarget = pdfjsDisplayDOMUtils.LinkTarget;
198exports.addLinkAttributes = pdfjsDisplayDOMUtils.addLinkAttributes;
199exports.loadScript = pdfjsDisplayDOMUtils.loadScript;
200exports.GlobalWorkerOptions = pdfjsDisplayWorkerOptions.GlobalWorkerOptions;
201exports.apiCompatibilityParams = pdfjsDisplayAPICompatibility.apiCompatibilityParams;
202
203/***/ }),
204/* 1 */
205/***/ (function(module, exports, __w_pdfjs_require__) {
206
207"use strict";
208
209
210Object.defineProperty(exports, "__esModule", {
211  value: true
212});
213exports.toRomanNumerals = toRomanNumerals;
214exports.arrayByteLength = arrayByteLength;
215exports.arraysToBytes = arraysToBytes;
216exports.assert = assert;
217exports.bytesToString = bytesToString;
218exports.createPromiseCapability = createPromiseCapability;
219exports.deprecated = deprecated;
220exports.getInheritableProperty = getInheritableProperty;
221exports.getLookupTableFactory = getLookupTableFactory;
222exports.getVerbosityLevel = getVerbosityLevel;
223exports.info = info;
224exports.isArrayBuffer = isArrayBuffer;
225exports.isBool = isBool;
226exports.isEmptyObj = isEmptyObj;
227exports.isNum = isNum;
228exports.isString = isString;
229exports.isSpace = isSpace;
230exports.isSameOrigin = isSameOrigin;
231exports.createValidAbsoluteUrl = createValidAbsoluteUrl;
232exports.isLittleEndian = isLittleEndian;
233exports.isEvalSupported = isEvalSupported;
234exports.log2 = log2;
235exports.readInt8 = readInt8;
236exports.readUint16 = readUint16;
237exports.readUint32 = readUint32;
238exports.removeNullCharacters = removeNullCharacters;
239exports.setVerbosityLevel = setVerbosityLevel;
240exports.shadow = shadow;
241exports.string32 = string32;
242exports.stringToBytes = stringToBytes;
243exports.stringToPDFString = stringToPDFString;
244exports.stringToUTF8String = stringToUTF8String;
245exports.utf8StringToString = utf8StringToString;
246exports.warn = warn;
247exports.unreachable = unreachable;
248Object.defineProperty(exports, "ReadableStream", {
249  enumerable: true,
250  get: function get() {
251    return _streams_polyfill.ReadableStream;
252  }
253});
254Object.defineProperty(exports, "URL", {
255  enumerable: true,
256  get: function get() {
257    return _url_polyfill.URL;
258  }
259});
260exports.createObjectURL = exports.FormatError = exports.XRefParseException = exports.XRefEntryException = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.TextRenderingMode = exports.StreamType = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.NativeImageDecoding = exports.MissingPDFException = exports.MissingDataException = exports.InvalidPDFException = exports.AbortException = exports.CMapCompressionType = exports.ImageKind = exports.FontType = exports.AnnotationType = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationBorderStyleType = exports.UNSUPPORTED_FEATURES = exports.VerbosityLevel = exports.OPS = exports.IDENTITY_MATRIX = exports.FONT_IDENTITY_MATRIX = void 0;
261
262__w_pdfjs_require__(2);
263
264var _streams_polyfill = __w_pdfjs_require__(142);
265
266var _url_polyfill = __w_pdfjs_require__(144);
267
268function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
269
270var IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];
271exports.IDENTITY_MATRIX = IDENTITY_MATRIX;
272var FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];
273exports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;
274var NativeImageDecoding = {
275  NONE: 'none',
276  DECODE: 'decode',
277  DISPLAY: 'display'
278};
279exports.NativeImageDecoding = NativeImageDecoding;
280var PermissionFlag = {
281  PRINT: 0x04,
282  MODIFY_CONTENTS: 0x08,
283  COPY: 0x10,
284  MODIFY_ANNOTATIONS: 0x20,
285  FILL_INTERACTIVE_FORMS: 0x100,
286  COPY_FOR_ACCESSIBILITY: 0x200,
287  ASSEMBLE: 0x400,
288  PRINT_HIGH_QUALITY: 0x800
289};
290exports.PermissionFlag = PermissionFlag;
291var TextRenderingMode = {
292  FILL: 0,
293  STROKE: 1,
294  FILL_STROKE: 2,
295  INVISIBLE: 3,
296  FILL_ADD_TO_PATH: 4,
297  STROKE_ADD_TO_PATH: 5,
298  FILL_STROKE_ADD_TO_PATH: 6,
299  ADD_TO_PATH: 7,
300  FILL_STROKE_MASK: 3,
301  ADD_TO_PATH_FLAG: 4
302};
303exports.TextRenderingMode = TextRenderingMode;
304var ImageKind = {
305  GRAYSCALE_1BPP: 1,
306  RGB_24BPP: 2,
307  RGBA_32BPP: 3
308};
309exports.ImageKind = ImageKind;
310var AnnotationType = {
311  TEXT: 1,
312  LINK: 2,
313  FREETEXT: 3,
314  LINE: 4,
315  SQUARE: 5,
316  CIRCLE: 6,
317  POLYGON: 7,
318  POLYLINE: 8,
319  HIGHLIGHT: 9,
320  UNDERLINE: 10,
321  SQUIGGLY: 11,
322  STRIKEOUT: 12,
323  STAMP: 13,
324  CARET: 14,
325  INK: 15,
326  POPUP: 16,
327  FILEATTACHMENT: 17,
328  SOUND: 18,
329  MOVIE: 19,
330  WIDGET: 20,
331  SCREEN: 21,
332  PRINTERMARK: 22,
333  TRAPNET: 23,
334  WATERMARK: 24,
335  THREED: 25,
336  REDACT: 26
337};
338exports.AnnotationType = AnnotationType;
339var AnnotationFlag = {
340  INVISIBLE: 0x01,
341  HIDDEN: 0x02,
342  PRINT: 0x04,
343  NOZOOM: 0x08,
344  NOROTATE: 0x10,
345  NOVIEW: 0x20,
346  READONLY: 0x40,
347  LOCKED: 0x80,
348  TOGGLENOVIEW: 0x100,
349  LOCKEDCONTENTS: 0x200
350};
351exports.AnnotationFlag = AnnotationFlag;
352var AnnotationFieldFlag = {
353  READONLY: 0x0000001,
354  REQUIRED: 0x0000002,
355  NOEXPORT: 0x0000004,
356  MULTILINE: 0x0001000,
357  PASSWORD: 0x0002000,
358  NOTOGGLETOOFF: 0x0004000,
359  RADIO: 0x0008000,
360  PUSHBUTTON: 0x0010000,
361  COMBO: 0x0020000,
362  EDIT: 0x0040000,
363  SORT: 0x0080000,
364  FILESELECT: 0x0100000,
365  MULTISELECT: 0x0200000,
366  DONOTSPELLCHECK: 0x0400000,
367  DONOTSCROLL: 0x0800000,
368  COMB: 0x1000000,
369  RICHTEXT: 0x2000000,
370  RADIOSINUNISON: 0x2000000,
371  COMMITONSELCHANGE: 0x4000000
372};
373exports.AnnotationFieldFlag = AnnotationFieldFlag;
374var AnnotationBorderStyleType = {
375  SOLID: 1,
376  DASHED: 2,
377  BEVELED: 3,
378  INSET: 4,
379  UNDERLINE: 5
380};
381exports.AnnotationBorderStyleType = AnnotationBorderStyleType;
382var StreamType = {
383  UNKNOWN: 0,
384  FLATE: 1,
385  LZW: 2,
386  DCT: 3,
387  JPX: 4,
388  JBIG: 5,
389  A85: 6,
390  AHX: 7,
391  CCF: 8,
392  RL: 9
393};
394exports.StreamType = StreamType;
395var FontType = {
396  UNKNOWN: 0,
397  TYPE1: 1,
398  TYPE1C: 2,
399  CIDFONTTYPE0: 3,
400  CIDFONTTYPE0C: 4,
401  TRUETYPE: 5,
402  CIDFONTTYPE2: 6,
403  TYPE3: 7,
404  OPENTYPE: 8,
405  TYPE0: 9,
406  MMTYPE1: 10
407};
408exports.FontType = FontType;
409var VerbosityLevel = {
410  ERRORS: 0,
411  WARNINGS: 1,
412  INFOS: 5
413};
414exports.VerbosityLevel = VerbosityLevel;
415var CMapCompressionType = {
416  NONE: 0,
417  BINARY: 1,
418  STREAM: 2
419};
420exports.CMapCompressionType = CMapCompressionType;
421var OPS = {
422  dependency: 1,
423  setLineWidth: 2,
424  setLineCap: 3,
425  setLineJoin: 4,
426  setMiterLimit: 5,
427  setDash: 6,
428  setRenderingIntent: 7,
429  setFlatness: 8,
430  setGState: 9,
431  save: 10,
432  restore: 11,
433  transform: 12,
434  moveTo: 13,
435  lineTo: 14,
436  curveTo: 15,
437  curveTo2: 16,
438  curveTo3: 17,
439  closePath: 18,
440  rectangle: 19,
441  stroke: 20,
442  closeStroke: 21,
443  fill: 22,
444  eoFill: 23,
445  fillStroke: 24,
446  eoFillStroke: 25,
447  closeFillStroke: 26,
448  closeEOFillStroke: 27,
449  endPath: 28,
450  clip: 29,
451  eoClip: 30,
452  beginText: 31,
453  endText: 32,
454  setCharSpacing: 33,
455  setWordSpacing: 34,
456  setHScale: 35,
457  setLeading: 36,
458  setFont: 37,
459  setTextRenderingMode: 38,
460  setTextRise: 39,
461  moveText: 40,
462  setLeadingMoveText: 41,
463  setTextMatrix: 42,
464  nextLine: 43,
465  showText: 44,
466  showSpacedText: 45,
467  nextLineShowText: 46,
468  nextLineSetSpacingShowText: 47,
469  setCharWidth: 48,
470  setCharWidthAndBounds: 49,
471  setStrokeColorSpace: 50,
472  setFillColorSpace: 51,
473  setStrokeColor: 52,
474  setStrokeColorN: 53,
475  setFillColor: 54,
476  setFillColorN: 55,
477  setStrokeGray: 56,
478  setFillGray: 57,
479  setStrokeRGBColor: 58,
480  setFillRGBColor: 59,
481  setStrokeCMYKColor: 60,
482  setFillCMYKColor: 61,
483  shadingFill: 62,
484  beginInlineImage: 63,
485  beginImageData: 64,
486  endInlineImage: 65,
487  paintXObject: 66,
488  markPoint: 67,
489  markPointProps: 68,
490  beginMarkedContent: 69,
491  beginMarkedContentProps: 70,
492  endMarkedContent: 71,
493  beginCompat: 72,
494  endCompat: 73,
495  paintFormXObjectBegin: 74,
496  paintFormXObjectEnd: 75,
497  beginGroup: 76,
498  endGroup: 77,
499  beginAnnotations: 78,
500  endAnnotations: 79,
501  beginAnnotation: 80,
502  endAnnotation: 81,
503  paintJpegXObject: 82,
504  paintImageMaskXObject: 83,
505  paintImageMaskXObjectGroup: 84,
506  paintImageXObject: 85,
507  paintInlineImageXObject: 86,
508  paintInlineImageXObjectGroup: 87,
509  paintImageXObjectRepeat: 88,
510  paintImageMaskXObjectRepeat: 89,
511  paintSolidColorImageMask: 90,
512  constructPath: 91
513};
514exports.OPS = OPS;
515var UNSUPPORTED_FEATURES = {
516  unknown: 'unknown',
517  forms: 'forms',
518  javaScript: 'javaScript',
519  smask: 'smask',
520  shadingPattern: 'shadingPattern',
521  font: 'font'
522};
523exports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;
524var PasswordResponses = {
525  NEED_PASSWORD: 1,
526  INCORRECT_PASSWORD: 2
527};
528exports.PasswordResponses = PasswordResponses;
529var verbosity = VerbosityLevel.WARNINGS;
530
531function setVerbosityLevel(level) {
532  if (Number.isInteger(level)) {
533    verbosity = level;
534  }
535}
536
537function getVerbosityLevel() {
538  return verbosity;
539}
540
541function info(msg) {
542  if (verbosity >= VerbosityLevel.INFOS) {
543    console.log('Info: ' + msg);
544  }
545}
546
547function warn(msg) {
548  if (verbosity >= VerbosityLevel.WARNINGS) {
549    console.log('Warning: ' + msg);
550  }
551}
552
553function deprecated(details) {
554  console.log('Deprecated API usage: ' + details);
555}
556
557function unreachable(msg) {
558  throw new Error(msg);
559}
560
561function assert(cond, msg) {
562  if (!cond) {
563    unreachable(msg);
564  }
565}
566
567function isSameOrigin(baseUrl, otherUrl) {
568  try {
569    var base = new _url_polyfill.URL(baseUrl);
570
571    if (!base.origin || base.origin === 'null') {
572      return false;
573    }
574  } catch (e) {
575    return false;
576  }
577
578  var other = new _url_polyfill.URL(otherUrl, base);
579  return base.origin === other.origin;
580}
581
582function _isValidProtocol(url) {
583  if (!url) {
584    return false;
585  }
586
587  switch (url.protocol) {
588    case 'http:':
589    case 'https:':
590    case 'ftp:':
591    case 'mailto:':
592    case 'tel:':
593      return true;
594
595    default:
596      return false;
597  }
598}
599
600function createValidAbsoluteUrl(url, baseUrl) {
601  if (!url) {
602    return null;
603  }
604
605  try {
606    var absoluteUrl = baseUrl ? new _url_polyfill.URL(url, baseUrl) : new _url_polyfill.URL(url);
607
608    if (_isValidProtocol(absoluteUrl)) {
609      return absoluteUrl;
610    }
611  } catch (ex) {}
612
613  return null;
614}
615
616function shadow(obj, prop, value) {
617  Object.defineProperty(obj, prop, {
618    value: value,
619    enumerable: true,
620    configurable: true,
621    writable: false
622  });
623  return value;
624}
625
626function getLookupTableFactory(initializer) {
627  var lookup;
628  return function () {
629    if (initializer) {
630      lookup = Object.create(null);
631      initializer(lookup);
632      initializer = null;
633    }
634
635    return lookup;
636  };
637}
638
639var PasswordException = function PasswordExceptionClosure() {
640  function PasswordException(msg, code) {
641    this.name = 'PasswordException';
642    this.message = msg;
643    this.code = code;
644  }
645
646  PasswordException.prototype = new Error();
647  PasswordException.constructor = PasswordException;
648  return PasswordException;
649}();
650
651exports.PasswordException = PasswordException;
652
653var UnknownErrorException = function UnknownErrorExceptionClosure() {
654  function UnknownErrorException(msg, details) {
655    this.name = 'UnknownErrorException';
656    this.message = msg;
657    this.details = details;
658  }
659
660  UnknownErrorException.prototype = new Error();
661  UnknownErrorException.constructor = UnknownErrorException;
662  return UnknownErrorException;
663}();
664
665exports.UnknownErrorException = UnknownErrorException;
666
667var InvalidPDFException = function InvalidPDFExceptionClosure() {
668  function InvalidPDFException(msg) {
669    this.name = 'InvalidPDFException';
670    this.message = msg;
671  }
672
673  InvalidPDFException.prototype = new Error();
674  InvalidPDFException.constructor = InvalidPDFException;
675  return InvalidPDFException;
676}();
677
678exports.InvalidPDFException = InvalidPDFException;
679
680var MissingPDFException = function MissingPDFExceptionClosure() {
681  function MissingPDFException(msg) {
682    this.name = 'MissingPDFException';
683    this.message = msg;
684  }
685
686  MissingPDFException.prototype = new Error();
687  MissingPDFException.constructor = MissingPDFException;
688  return MissingPDFException;
689}();
690
691exports.MissingPDFException = MissingPDFException;
692
693var UnexpectedResponseException = function UnexpectedResponseExceptionClosure() {
694  function UnexpectedResponseException(msg, status) {
695    this.name = 'UnexpectedResponseException';
696    this.message = msg;
697    this.status = status;
698  }
699
700  UnexpectedResponseException.prototype = new Error();
701  UnexpectedResponseException.constructor = UnexpectedResponseException;
702  return UnexpectedResponseException;
703}();
704
705exports.UnexpectedResponseException = UnexpectedResponseException;
706
707var MissingDataException = function MissingDataExceptionClosure() {
708  function MissingDataException(begin, end) {
709    this.begin = begin;
710    this.end = end;
711    this.message = 'Missing data [' + begin + ', ' + end + ')';
712  }
713
714  MissingDataException.prototype = new Error();
715  MissingDataException.prototype.name = 'MissingDataException';
716  MissingDataException.constructor = MissingDataException;
717  return MissingDataException;
718}();
719
720exports.MissingDataException = MissingDataException;
721
722var XRefEntryException = function XRefEntryExceptionClosure() {
723  function XRefEntryException(msg) {
724    this.message = msg;
725  }
726
727  XRefEntryException.prototype = new Error();
728  XRefEntryException.prototype.name = 'XRefEntryException';
729  XRefEntryException.constructor = XRefEntryException;
730  return XRefEntryException;
731}();
732
733exports.XRefEntryException = XRefEntryException;
734
735var XRefParseException = function XRefParseExceptionClosure() {
736  function XRefParseException(msg) {
737    this.message = msg;
738  }
739
740  XRefParseException.prototype = new Error();
741  XRefParseException.prototype.name = 'XRefParseException';
742  XRefParseException.constructor = XRefParseException;
743  return XRefParseException;
744}();
745
746exports.XRefParseException = XRefParseException;
747
748var FormatError = function FormatErrorClosure() {
749  function FormatError(msg) {
750    this.message = msg;
751  }
752
753  FormatError.prototype = new Error();
754  FormatError.prototype.name = 'FormatError';
755  FormatError.constructor = FormatError;
756  return FormatError;
757}();
758
759exports.FormatError = FormatError;
760
761var AbortException = function AbortExceptionClosure() {
762  function AbortException(msg) {
763    this.name = 'AbortException';
764    this.message = msg;
765  }
766
767  AbortException.prototype = new Error();
768  AbortException.constructor = AbortException;
769  return AbortException;
770}();
771
772exports.AbortException = AbortException;
773var NullCharactersRegExp = /\x00/g;
774
775function removeNullCharacters(str) {
776  if (typeof str !== 'string') {
777    warn('The argument for removeNullCharacters must be a string.');
778    return str;
779  }
780
781  return str.replace(NullCharactersRegExp, '');
782}
783
784function bytesToString(bytes) {
785  assert(bytes !== null && _typeof(bytes) === 'object' && bytes.length !== undefined, 'Invalid argument for bytesToString');
786  var length = bytes.length;
787  var MAX_ARGUMENT_COUNT = 8192;
788
789  if (length < MAX_ARGUMENT_COUNT) {
790    return String.fromCharCode.apply(null, bytes);
791  }
792
793  var strBuf = [];
794
795  for (var i = 0; i < length; i += MAX_ARGUMENT_COUNT) {
796    var chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);
797    var chunk = bytes.subarray(i, chunkEnd);
798    strBuf.push(String.fromCharCode.apply(null, chunk));
799  }
800
801  return strBuf.join('');
802}
803
804function stringToBytes(str) {
805  assert(typeof str === 'string', 'Invalid argument for stringToBytes');
806  var length = str.length;
807  var bytes = new Uint8Array(length);
808
809  for (var i = 0; i < length; ++i) {
810    bytes[i] = str.charCodeAt(i) & 0xFF;
811  }
812
813  return bytes;
814}
815
816function arrayByteLength(arr) {
817  if (arr.length !== undefined) {
818    return arr.length;
819  }
820
821  assert(arr.byteLength !== undefined);
822  return arr.byteLength;
823}
824
825function arraysToBytes(arr) {
826  if (arr.length === 1 && arr[0] instanceof Uint8Array) {
827    return arr[0];
828  }
829
830  var resultLength = 0;
831  var i,
832      ii = arr.length;
833  var item, itemLength;
834
835  for (i = 0; i < ii; i++) {
836    item = arr[i];
837    itemLength = arrayByteLength(item);
838    resultLength += itemLength;
839  }
840
841  var pos = 0;
842  var data = new Uint8Array(resultLength);
843
844  for (i = 0; i < ii; i++) {
845    item = arr[i];
846
847    if (!(item instanceof Uint8Array)) {
848      if (typeof item === 'string') {
849        item = stringToBytes(item);
850      } else {
851        item = new Uint8Array(item);
852      }
853    }
854
855    itemLength = item.byteLength;
856    data.set(item, pos);
857    pos += itemLength;
858  }
859
860  return data;
861}
862
863function string32(value) {
864  return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);
865}
866
867function log2(x) {
868  if (x <= 0) {
869    return 0;
870  }
871
872  return Math.ceil(Math.log2(x));
873}
874
875function readInt8(data, start) {
876  return data[start] << 24 >> 24;
877}
878
879function readUint16(data, offset) {
880  return data[offset] << 8 | data[offset + 1];
881}
882
883function readUint32(data, offset) {
884  return (data[offset] << 24 | data[offset + 1] << 16 | data[offset + 2] << 8 | data[offset + 3]) >>> 0;
885}
886
887function isLittleEndian() {
888  var buffer8 = new Uint8Array(4);
889  buffer8[0] = 1;
890  var view32 = new Uint32Array(buffer8.buffer, 0, 1);
891  return view32[0] === 1;
892}
893
894function isEvalSupported() {
895  try {
896    new Function('');
897    return true;
898  } catch (e) {
899    return false;
900  }
901}
902
903function getInheritableProperty(_ref) {
904  var dict = _ref.dict,
905      key = _ref.key,
906      _ref$getArray = _ref.getArray,
907      getArray = _ref$getArray === void 0 ? false : _ref$getArray,
908      _ref$stopWhenFound = _ref.stopWhenFound,
909      stopWhenFound = _ref$stopWhenFound === void 0 ? true : _ref$stopWhenFound;
910  var LOOP_LIMIT = 100;
911  var loopCount = 0;
912  var values;
913
914  while (dict) {
915    var value = getArray ? dict.getArray(key) : dict.get(key);
916
917    if (value !== undefined) {
918      if (stopWhenFound) {
919        return value;
920      }
921
922      if (!values) {
923        values = [];
924      }
925
926      values.push(value);
927    }
928
929    if (++loopCount > LOOP_LIMIT) {
930      warn("getInheritableProperty: maximum loop count exceeded for \"".concat(key, "\""));
931      break;
932    }
933
934    dict = dict.get('Parent');
935  }
936
937  return values;
938}
939
940var Util = function UtilClosure() {
941  function Util() {}
942
943  var rgbBuf = ['rgb(', 0, ',', 0, ',', 0, ')'];
944
945  Util.makeCssRgb = function Util_makeCssRgb(r, g, b) {
946    rgbBuf[1] = r;
947    rgbBuf[3] = g;
948    rgbBuf[5] = b;
949    return rgbBuf.join('');
950  };
951
952  Util.transform = function Util_transform(m1, m2) {
953    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]];
954  };
955
956  Util.applyTransform = function Util_applyTransform(p, m) {
957    var xt = p[0] * m[0] + p[1] * m[2] + m[4];
958    var yt = p[0] * m[1] + p[1] * m[3] + m[5];
959    return [xt, yt];
960  };
961
962  Util.applyInverseTransform = function Util_applyInverseTransform(p, m) {
963    var d = m[0] * m[3] - m[1] * m[2];
964    var xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;
965    var yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;
966    return [xt, yt];
967  };
968
969  Util.getAxialAlignedBoundingBox = function Util_getAxialAlignedBoundingBox(r, m) {
970    var p1 = Util.applyTransform(r, m);
971    var p2 = Util.applyTransform(r.slice(2, 4), m);
972    var p3 = Util.applyTransform([r[0], r[3]], m);
973    var p4 = Util.applyTransform([r[2], r[1]], m);
974    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])];
975  };
976
977  Util.inverseTransform = function Util_inverseTransform(m) {
978    var d = m[0] * m[3] - m[1] * m[2];
979    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];
980  };
981
982  Util.apply3dTransform = function Util_apply3dTransform(m, v) {
983    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]];
984  };
985
986  Util.singularValueDecompose2dScale = function Util_singularValueDecompose2dScale(m) {
987    var transpose = [m[0], m[2], m[1], m[3]];
988    var a = m[0] * transpose[0] + m[1] * transpose[2];
989    var b = m[0] * transpose[1] + m[1] * transpose[3];
990    var c = m[2] * transpose[0] + m[3] * transpose[2];
991    var d = m[2] * transpose[1] + m[3] * transpose[3];
992    var first = (a + d) / 2;
993    var second = Math.sqrt((a + d) * (a + d) - 4 * (a * d - c * b)) / 2;
994    var sx = first + second || 1;
995    var sy = first - second || 1;
996    return [Math.sqrt(sx), Math.sqrt(sy)];
997  };
998
999  Util.normalizeRect = function Util_normalizeRect(rect) {
1000    var r = rect.slice(0);
1001
1002    if (rect[0] > rect[2]) {
1003      r[0] = rect[2];
1004      r[2] = rect[0];
1005    }
1006
1007    if (rect[1] > rect[3]) {
1008      r[1] = rect[3];
1009      r[3] = rect[1];
1010    }
1011
1012    return r;
1013  };
1014
1015  Util.intersect = function Util_intersect(rect1, rect2) {
1016    function compare(a, b) {
1017      return a - b;
1018    }
1019
1020    var orderedX = [rect1[0], rect1[2], rect2[0], rect2[2]].sort(compare),
1021        orderedY = [rect1[1], rect1[3], rect2[1], rect2[3]].sort(compare),
1022        result = [];
1023    rect1 = Util.normalizeRect(rect1);
1024    rect2 = Util.normalizeRect(rect2);
1025
1026    if (orderedX[0] === rect1[0] && orderedX[1] === rect2[0] || orderedX[0] === rect2[0] && orderedX[1] === rect1[0]) {
1027      result[0] = orderedX[1];
1028      result[2] = orderedX[2];
1029    } else {
1030      return false;
1031    }
1032
1033    if (orderedY[0] === rect1[1] && orderedY[1] === rect2[1] || orderedY[0] === rect2[1] && orderedY[1] === rect1[1]) {
1034      result[1] = orderedY[1];
1035      result[3] = orderedY[2];
1036    } else {
1037      return false;
1038    }
1039
1040    return result;
1041  };
1042
1043  return Util;
1044}();
1045
1046exports.Util = Util;
1047var ROMAN_NUMBER_MAP = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM', '', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC', '', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'];
1048
1049function toRomanNumerals(number) {
1050  var lowerCase = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
1051  assert(Number.isInteger(number) && number > 0, 'The number should be a positive integer.');
1052  var pos,
1053      romanBuf = [];
1054
1055  while (number >= 1000) {
1056    number -= 1000;
1057    romanBuf.push('M');
1058  }
1059
1060  pos = number / 100 | 0;
1061  number %= 100;
1062  romanBuf.push(ROMAN_NUMBER_MAP[pos]);
1063  pos = number / 10 | 0;
1064  number %= 10;
1065  romanBuf.push(ROMAN_NUMBER_MAP[10 + pos]);
1066  romanBuf.push(ROMAN_NUMBER_MAP[20 + number]);
1067  var romanStr = romanBuf.join('');
1068  return lowerCase ? romanStr.toLowerCase() : romanStr;
1069}
1070
1071var 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];
1072
1073function stringToPDFString(str) {
1074  var i,
1075      n = str.length,
1076      strBuf = [];
1077
1078  if (str[0] === '\xFE' && str[1] === '\xFF') {
1079    for (i = 2; i < n; i += 2) {
1080      strBuf.push(String.fromCharCode(str.charCodeAt(i) << 8 | str.charCodeAt(i + 1)));
1081    }
1082  } else {
1083    for (i = 0; i < n; ++i) {
1084      var code = PDFStringTranslateTable[str.charCodeAt(i)];
1085      strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));
1086    }
1087  }
1088
1089  return strBuf.join('');
1090}
1091
1092function stringToUTF8String(str) {
1093  return decodeURIComponent(escape(str));
1094}
1095
1096function utf8StringToString(str) {
1097  return unescape(encodeURIComponent(str));
1098}
1099
1100function isEmptyObj(obj) {
1101  for (var key in obj) {
1102    return false;
1103  }
1104
1105  return true;
1106}
1107
1108function isBool(v) {
1109  return typeof v === 'boolean';
1110}
1111
1112function isNum(v) {
1113  return typeof v === 'number';
1114}
1115
1116function isString(v) {
1117  return typeof v === 'string';
1118}
1119
1120function isArrayBuffer(v) {
1121  return _typeof(v) === 'object' && v !== null && v.byteLength !== undefined;
1122}
1123
1124function isSpace(ch) {
1125  return ch === 0x20 || ch === 0x09 || ch === 0x0D || ch === 0x0A;
1126}
1127
1128function createPromiseCapability() {
1129  var capability = Object.create(null);
1130  var isSettled = false;
1131  Object.defineProperty(capability, 'settled', {
1132    get: function get() {
1133      return isSettled;
1134    }
1135  });
1136  capability.promise = new Promise(function (resolve, reject) {
1137    capability.resolve = function (data) {
1138      isSettled = true;
1139      resolve(data);
1140    };
1141
1142    capability.reject = function (reason) {
1143      isSettled = true;
1144      reject(reason);
1145    };
1146  });
1147  return capability;
1148}
1149
1150var createObjectURL = function createObjectURLClosure() {
1151  var digits = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
1151+/=';
1152  return function createObjectURL(data, contentType) {
1153    var forceDataSchema = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
1154
1155    if (!forceDataSchema && _url_polyfill.URL.createObjectURL) {
1156      var blob = new Blob([data], {
1157        type: contentType
1158      });
1159      return _url_polyfill.URL.createObjectURL(blob);
1160    }
1161
1162    var buffer = 'data:' + contentType + ';base64,';
1163
1164    for (var i = 0, ii = data.length; i < ii; i += 3) {
1165      var b1 = data[i] & 0xFF;
1166      var b2 = data[i + 1] & 0xFF;
1167      var b3 = data[i + 2] & 0xFF;
1168      var d1 = b1 >> 2,
1169          d2 = (b1 & 3) << 4 | b2 >> 4;
1170      var d3 = i + 1 < ii ? (b2 & 0xF) << 2 | b3 >> 6 : 64;
1171      var d4 = i + 2 < ii ? b3 & 0x3F : 64;
1172      buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];
1173    }
1174
1175    return buffer;
1176  };
1177}();
1178
1179exports.createObjectURL = createObjectURL;
1180
1181/***/ }),
1182/* 2 */
1183/***/ (function(module, exports, __w_pdfjs_require__) {
1184
1185"use strict";
1186
1187
1188function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1189
1190var globalScope = __w_pdfjs_require__(3);
1191
1192if (!globalScope._pdfjsCompatibilityChecked) {
1193  globalScope._pdfjsCompatibilityChecked = true;
1194
1195  var isNodeJS = __w_pdfjs_require__(4);
1196
1197  var hasDOM = (typeof window === "undefined" ? "undefined" : _typeof(window)) === 'object' && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object';
1198
1199  (function checkNodeBtoa() {
1200    if (globalScope.btoa || !isNodeJS()) {
1201      return;
1202    }
1203
1204    globalScope.btoa = function (chars) {
1205      return Buffer.from(chars, 'binary').toString('base64');
1206    };
1207  })();
1208
1209  (function checkNodeAtob() {
1210    if (globalScope.atob || !isNodeJS()) {
1211      return;
1212    }
1213
1214    globalScope.atob = function (input) {
1215      return Buffer.from(input, 'base64').toString('binary');
1216    };
1217  })();
1218
1219  (function checkChildNodeRemove() {
1220    if (!hasDOM) {
1221      return;
1222    }
1223
1224    if (typeof Element.prototype.remove !== 'undefined') {
1225      return;
1226    }
1227
1228    Element.prototype.remove = function () {
1229      if (this.parentNode) {
1230        this.parentNode.removeChild(this);
1231      }
1232    };
1233  })();
1234
1235  (function checkDOMTokenListAddRemove() {
1236    if (!hasDOM || isNodeJS()) {
1237      return;
1238    }
1239
1240    var div = document.createElement('div');
1241    div.classList.add('testOne', 'testTwo');
1242
1243    if (div.classList.contains('testOne') === true && div.classList.contains('testTwo') === true) {
1244      return;
1245    }
1246
1247    var OriginalDOMTokenListAdd = DOMTokenList.prototype.add;
1248    var OriginalDOMTokenListRemove = DOMTokenList.prototype.remove;
1249
1250    DOMTokenList.prototype.add = function () {
1251      for (var _len = arguments.length, tokens = new Array(_len), _key = 0; _key < _len; _key++) {
1252        tokens[_key] = arguments[_key];
1253      }
1254
1255      for (var _i = 0; _i < tokens.length; _i++) {
1256        var token = tokens[_i];
1257        OriginalDOMTokenListAdd.call(this, token);
1258      }
1259    };
1260
1261    DOMTokenList.prototype.remove = function () {
1262      for (var _len2 = arguments.length, tokens = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
1263        tokens[_key2] = arguments[_key2];
1264      }
1265
1266      for (var _i2 = 0; _i2 < tokens.length; _i2++) {
1267        var token = tokens[_i2];
1268        OriginalDOMTokenListRemove.call(this, token);
1269      }
1270    };
1271  })();
1272
1273  (function checkDOMTokenListToggle() {
1274    if (!hasDOM || isNodeJS()) {
1275      return;
1276    }
1277
1278    var div = document.createElement('div');
1279
1280    if (div.classList.toggle('test', 0) === false) {
1281      return;
1282    }
1283
1284    DOMTokenList.prototype.toggle = function (token) {
1285      var force = arguments.length > 1 ? !!arguments[1] : !this.contains(token);
1286      return this[force ? 'add' : 'remove'](token), force;
1287    };
1288  })();
1289
1290  (function checkStringStartsWith() {
1291    if (String.prototype.startsWith) {
1292      return;
1293    }
1294
1295    __w_pdfjs_require__(5);
1296  })();
1297
1298  (function checkStringEndsWith() {
1299    if (String.prototype.endsWith) {
1300      return;
1301    }
1302
1303    __w_pdfjs_require__(35);
1304  })();
1305
1306  (function checkStringIncludes() {
1307    if (String.prototype.includes) {
1308      return;
1309    }
1310
1311    __w_pdfjs_require__(37);
1312  })();
1313
1314  (function checkArrayIncludes() {
1315    if (Array.prototype.includes) {
1316      return;
1317    }
1318
1319    __w_pdfjs_require__(39);
1320  })();
1321
1322  (function checkArrayFrom() {
1323    if (Array.from) {
1324      return;
1325    }
1326
1327    __w_pdfjs_require__(46);
1328  })();
1329
1330  (function checkObjectAssign() {
1331    if (Object.assign) {
1332      return;
1333    }
1334
1335    __w_pdfjs_require__(69);
1336  })();
1337
1338  (function checkMathLog2() {
1339    if (Math.log2) {
1340      return;
1341    }
1342
1343    Math.log2 = __w_pdfjs_require__(74);
1344  })();
1345
1346  (function checkNumberIsNaN() {
1347    if (Number.isNaN) {
1348      return;
1349    }
1350
1351    Number.isNaN = __w_pdfjs_require__(76);
1352  })();
1353
1354  (function checkNumberIsInteger() {
1355    if (Number.isInteger) {
1356      return;
1357    }
1358
1359    Number.isInteger = __w_pdfjs_require__(78);
1360  })();
1361
1362  (function checkPromise() {
1363    if (globalScope.Promise && globalScope.Promise.prototype && globalScope.Promise.prototype.finally) {
1364      return;
1365    }
1366
1367    globalScope.Promise = __w_pdfjs_require__(81);
1368  })();
1369
1370  (function checkWeakMap() {
1371    if (globalScope.WeakMap) {
1372      return;
1373    }
1374
1375    globalScope.WeakMap = __w_pdfjs_require__(101);
1376  })();
1377
1378  (function checkWeakSet() {
1379    if (globalScope.WeakSet) {
1380      return;
1381    }
1382
1383    globalScope.WeakSet = __w_pdfjs_require__(118);
1384  })();
1385
1386  (function checkStringCodePointAt() {
1387    if (String.codePointAt) {
1388      return;
1389    }
1390
1391    String.codePointAt = __w_pdfjs_require__(122);
1392  })();
1393
1394  (function checkStringFromCodePoint() {
1395    if (String.fromCodePoint) {
1396      return;
1397    }
1398
1399    String.fromCodePoint = __w_pdfjs_require__(124);
1400  })();
1401
1402  (function checkSymbol() {
1403    if (globalScope.Symbol) {
1404      return;
1405    }
1406
1407    __w_pdfjs_require__(126);
1408  })();
1409
1410  (function checkStringPadStart() {
1411    if (String.prototype.padStart) {
1412      return;
1413    }
1414
1415    __w_pdfjs_require__(133);
1416  })();
1417
1418  (function checkStringPadEnd() {
1419    if (String.prototype.padEnd) {
1420      return;
1421    }
1422
1423    __w_pdfjs_require__(137);
1424  })();
1425
1426  (function checkObjectValues() {
1427    if (Object.values) {
1428      return;
1429    }
1430
1431    Object.values = __w_pdfjs_require__(139);
1432  })();
1433}
1434
1435/***/ }),
1436/* 3 */
1437/***/ (function(module, exports, __w_pdfjs_require__) {
1438
1439"use strict";
1440
1441
1442module.exports = typeof window !== 'undefined' && window.Math === Math ? window : typeof global !== 'undefined' && global.Math === Math ? global : typeof self !== 'undefined' && self.Math === Math ? self : {};
1443
1444/***/ }),
1445/* 4 */
1446/***/ (function(module, exports, __w_pdfjs_require__) {
1447
1448"use strict";
1449
1450
1451function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1452
1453module.exports = function isNodeJS() {
1454  return (typeof process === "undefined" ? "undefined" : _typeof(process)) === 'object' && process + '' === '[object process]' && !process.versions['nw'];
1455};
1456
1457/***/ }),
1458/* 5 */
1459/***/ (function(module, exports, __w_pdfjs_require__) {
1460
1461"use strict";
1462
1463
1464__w_pdfjs_require__(6);
1465
1466module.exports = __w_pdfjs_require__(9).String.startsWith;
1467
1468/***/ }),
1469/* 6 */
1470/***/ (function(module, exports, __w_pdfjs_require__) {
1471
1472"use strict";
1473
1474
1475var $export = __w_pdfjs_require__(7);
1476
1477var toLength = __w_pdfjs_require__(25);
1478
1479var context = __w_pdfjs_require__(27);
1480
1481var STARTS_WITH = 'startsWith';
1482var $startsWith = ''[STARTS_WITH];
1483$export($export.P + $export.F * __w_pdfjs_require__(34)(STARTS_WITH), 'String', {
1484  startsWith: function startsWith(searchString) {
1485    var that = context(this, searchString, STARTS_WITH);
1486    var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
1487    var search = String(searchString);
1488    return $startsWith ? $startsWith.call(that, search, index) : that.slice(index, index + search.length) === search;
1489  }
1490});
1491
1492/***/ }),
1493/* 7 */
1494/***/ (function(module, exports, __w_pdfjs_require__) {
1495
1496"use strict";
1497
1498
1499var global = __w_pdfjs_require__(8);
1500
1501var core = __w_pdfjs_require__(9);
1502
1503var hide = __w_pdfjs_require__(10);
1504
1505var redefine = __w_pdfjs_require__(20);
1506
1507var ctx = __w_pdfjs_require__(23);
1508
1509var PROTOTYPE = 'prototype';
1510
1511var $export = function $export(type, name, source) {
1512  var IS_FORCED = type & $export.F;
1513  var IS_GLOBAL = type & $export.G;
1514  var IS_STATIC = type & $export.S;
1515  var IS_PROTO = type & $export.P;
1516  var IS_BIND = type & $export.B;
1517  var target = IS_GLOBAL ? global : IS_STATIC ? global[name] || (global[name] = {}) : (global[name] || {})[PROTOTYPE];
1518  var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
1519  var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
1520  var key, own, out, exp;
1521  if (IS_GLOBAL) source = name;
1522
1523  for (key in source) {
1524    own = !IS_FORCED && target && target[key] !== undefined;
1525    out = (own ? target : source)[key];
1526    exp = IS_BIND && own ? ctx(out, global) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
1527    if (target) redefine(target, key, out, type & $export.U);
1528    if (exports[key] != out) hide(exports, key, exp);
1529    if (IS_PROTO && expProto[key] != out) expProto[key] = out;
1530  }
1531};
1532
1533global.core = core;
1534$export.F = 1;
1535$export.G = 2;
1536$export.S = 4;
1537$export.P = 8;
1538$export.B = 16;
1539$export.W = 32;
1540$export.U = 64;
1541$export.R = 128;
1542module.exports = $export;
1543
1544/***/ }),
1545/* 8 */
1546/***/ (function(module, exports, __w_pdfjs_require__) {
1547
1548"use strict";
1549
1550
1551var global = module.exports = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
1552if (typeof __g == 'number') __g = global;
1553
1554/***/ }),
1555/* 9 */
1556/***/ (function(module, exports, __w_pdfjs_require__) {
1557
1558"use strict";
1559
1560
1561var core = module.exports = {
1562  version: '2.6.2'
1563};
1564if (typeof __e == 'number') __e = core;
1565
1566/***/ }),
1567/* 10 */
1568/***/ (function(module, exports, __w_pdfjs_require__) {
1569
1570"use strict";
1571
1572
1573var dP = __w_pdfjs_require__(11);
1574
1575var createDesc = __w_pdfjs_require__(19);
1576
1577module.exports = __w_pdfjs_require__(15) ? function (object, key, value) {
1578  return dP.f(object, key, createDesc(1, value));
1579} : function (object, key, value) {
1580  object[key] = value;
1581  return object;
1582};
1583
1584/***/ }),
1585/* 11 */
1586/***/ (function(module, exports, __w_pdfjs_require__) {
1587
1588"use strict";
1589
1590
1591var anObject = __w_pdfjs_require__(12);
1592
1593var IE8_DOM_DEFINE = __w_pdfjs_require__(14);
1594
1595var toPrimitive = __w_pdfjs_require__(18);
1596
1597var dP = Object.defineProperty;
1598exports.f = __w_pdfjs_require__(15) ? Object.defineProperty : function defineProperty(O, P, Attributes) {
1599  anObject(O);
1600  P = toPrimitive(P, true);
1601  anObject(Attributes);
1602  if (IE8_DOM_DEFINE) try {
1603    return dP(O, P, Attributes);
1604  } catch (e) {}
1605  if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
1606  if ('value' in Attributes) O[P] = Attributes.value;
1607  return O;
1608};
1609
1610/***/ }),
1611/* 12 */
1612/***/ (function(module, exports, __w_pdfjs_require__) {
1613
1614"use strict";
1615
1616
1617var isObject = __w_pdfjs_require__(13);
1618
1619module.exports = function (it) {
1620  if (!isObject(it)) throw TypeError(it + ' is not an object!');
1621  return it;
1622};
1623
1624/***/ }),
1625/* 13 */
1626/***/ (function(module, exports, __w_pdfjs_require__) {
1627
1628"use strict";
1629
1630
1631function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
1632
1633module.exports = function (it) {
1634  return _typeof(it) === 'object' ? it !== null : typeof it === 'function';
1635};
1636
1637/***/ }),
1638/* 14 */
1639/***/ (function(module, exports, __w_pdfjs_require__) {
1640
1641"use strict";
1642
1643
1644module.exports = !__w_pdfjs_require__(15) && !__w_pdfjs_require__(16)(function () {
1645  return Object.defineProperty(__w_pdfjs_require__(17)('div'), 'a', {
1646    get: function get() {
1647      return 7;
1648    }
1649  }).a != 7;
1650});
1651
1652/***/ }),
1653/* 15 */
1654/***/ (function(module, exports, __w_pdfjs_require__) {
1655
1656"use strict";
1657
1658
1659module.exports = !__w_pdfjs_require__(16)(function () {
1660  return Object.defineProperty({}, 'a', {
1661    get: function get() {
1662      return 7;
1663    }
1664  }).a != 7;
1665});
1666
1667/***/ }),
1668/* 16 */
1669/***/ (function(module, exports, __w_pdfjs_require__) {
1670
1671"use strict";
1672
1673
1674module.exports = function (exec) {
1675  try {
1676    return !!exec();
vendor: 5,478 bytes, lines 1677-1940
1677  } catch (e) {
1678    return true;
1679  }
1680};
1681
1682/***/ }),
1683/* 17 */
1684/***/ (function(module, exports, __w_pdfjs_require__) {
1685
1686"use strict";
1687
1688
1689var isObject = __w_pdfjs_require__(13);
1690
1691var document = __w_pdfjs_require__(8).document;
1692
1693var is = isObject(document) && isObject(document.createElement);
1694
1695module.exports = function (it) {
1696  return is ? document.createElement(it) : {};
1697};
1698
1699/***/ }),
1700/* 18 */
1701/***/ (function(module, exports, __w_pdfjs_require__) {
1702
1703"use strict";
1704
1705
1706var isObject = __w_pdfjs_require__(13);
1707
1708module.exports = function (it, S) {
1709  if (!isObject(it)) return it;
1710  var fn, val;
1711  if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
1712  if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
1713  if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
1714  throw TypeError("Can't convert object to primitive value");
1715};
1716
1717/***/ }),
1718/* 19 */
1719/***/ (function(module, exports, __w_pdfjs_require__) {
1720
1721"use strict";
1722
1723
1724module.exports = function (bitmap, value) {
1725  return {
1726    enumerable: !(bitmap & 1),
1727    configurable: !(bitmap & 2),
1728    writable: !(bitmap & 4),
1729    value: value
1730  };
1731};
1732
1733/***/ }),
1734/* 20 */
1735/***/ (function(module, exports, __w_pdfjs_require__) {
1736
1737"use strict";
1738
1739
1740var global = __w_pdfjs_require__(8);
1741
1742var hide = __w_pdfjs_require__(10);
1743
1744var has = __w_pdfjs_require__(21);
1745
1746var SRC = __w_pdfjs_require__(22)('src');
1747
1748var TO_STRING = 'toString';
1749var $toString = Function[TO_STRING];
1750var TPL = ('' + $toString).split(TO_STRING);
1751
1752__w_pdfjs_require__(9).inspectSource = function (it) {
1753  return $toString.call(it);
1754};
1755
1756(module.exports = function (O, key, val, safe) {
1757  var isFunction = typeof val == 'function';
1758  if (isFunction) has(val, 'name') || hide(val, 'name', key);
1759  if (O[key] === val) return;
1760  if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
1761
1762  if (O === global) {
1763    O[key] = val;
1764  } else if (!safe) {
1765    delete O[key];
1766    hide(O, key, val);
1767  } else if (O[key]) {
1768    O[key] = val;
1769  } else {
1770    hide(O, key, val);
1771  }
1772})(Function.prototype, TO_STRING, function toString() {
1773  return typeof this == 'function' && this[SRC] || $toString.call(this);
1774});
1775
1776/***/ }),
1777/* 21 */
1778/***/ (function(module, exports, __w_pdfjs_require__) {
1779
1780"use strict";
1781
1782
1783var hasOwnProperty = {}.hasOwnProperty;
1784
1785module.exports = function (it, key) {
1786  return hasOwnProperty.call(it, key);
1787};
1788
1789/***/ }),
1790/* 22 */
1791/***/ (function(module, exports, __w_pdfjs_require__) {
1792
1793"use strict";
1794
1795
1796var id = 0;
1797var px = Math.random();
1798
1799module.exports = function (key) {
1800  return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
1801};
1802
1803/***/ }),
1804/* 23 */
1805/***/ (function(module, exports, __w_pdfjs_require__) {
1806
1807"use strict";
1808
1809
1810var aFunction = __w_pdfjs_require__(24);
1811
1812module.exports = function (fn, that, length) {
1813  aFunction(fn);
1814  if (that === undefined) return fn;
1815
1816  switch (length) {
1817    case 1:
1818      return function (a) {
1819        return fn.call(that, a);
1820      };
1821
1822    case 2:
1823      return function (a, b) {
1824        return fn.call(that, a, b);
1825      };
1826
1827    case 3:
1828      return function (a, b, c) {
1829        return fn.call(that, a, b, c);
1830      };
1831  }
1832
1833  return function () {
1834    return fn.apply(that, arguments);
1835  };
1836};
1837
1838/***/ }),
1839/* 24 */
1840/***/ (function(module, exports, __w_pdfjs_require__) {
1841
1842"use strict";
1843
1844
1845module.exports = function (it) {
1846  if (typeof it != 'function') throw TypeError(it + ' is not a function!');
1847  return it;
1848};
1849
1850/***/ }),
1851/* 25 */
1852/***/ (function(module, exports, __w_pdfjs_require__) {
1853
1854"use strict";
1855
1856
1857var toInteger = __w_pdfjs_require__(26);
1858
1859var min = Math.min;
1860
1861module.exports = function (it) {
1862  return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0;
1863};
1864
1865/***/ }),
1866/* 26 */
1867/***/ (function(module, exports, __w_pdfjs_require__) {
1868
1869"use strict";
1870
1871
1872var ceil = Math.ceil;
1873var floor = Math.floor;
1874
1875module.exports = function (it) {
1876  return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
1877};
1878
1879/***/ }),
1880/* 27 */
1881/***/ (function(module, exports, __w_pdfjs_require__) {
1882
1883"use strict";
1884
1885
1886var isRegExp = __w_pdfjs_require__(28);
1887
1888var defined = __w_pdfjs_require__(33);
1889
1890module.exports = function (that, searchString, NAME) {
1891  if (isRegExp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
1892  return String(defined(that));
1893};
1894
1895/***/ }),
1896/* 28 */
1897/***/ (function(module, exports, __w_pdfjs_require__) {
1898
1899"use strict";
1900
1901
1902var isObject = __w_pdfjs_require__(13);
1903
1904var cof = __w_pdfjs_require__(29);
1905
1906var MATCH = __w_pdfjs_require__(30)('match');
1907
1908module.exports = function (it) {
1909  var isRegExp;
1910  return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
1911};
1912
1913/***/ }),
1914/* 29 */
1915/***/ (function(module, exports, __w_pdfjs_require__) {
1916
1917"use strict";
1918
1919
1920var toString = {}.toString;
1921
1922module.exports = function (it) {
1923  return toString.call(it).slice(8, -1);
1924};
1925
1926/***/ }),
1927/* 30 */
1928/***/ (function(module, exports, __w_pdfjs_require__) {
1929
1930"use strict";
1931
1932
1933var store = __w_pdfjs_require__(31)('wks');
1934
1935var uid = __w_pdfjs_require__(22);
1936
1937var _Symbol = __w_pdfjs_require__(8).Symbol;
1938
1939var USE_SYMBOL = typeof _Symbol == 'function';
1940
vendor: 4,187 bytes, lines 1941-2127
1941var $exports = module.exports = function (name) {
1942  return store[name] || (store[name] = USE_SYMBOL && _Symbol[name] || (USE_SYMBOL ? _Symbol : uid)('Symbol.' + name));
1943};
1944
1945$exports.store = store;
1946
1947/***/ }),
1948/* 31 */
1949/***/ (function(module, exports, __w_pdfjs_require__) {
1950
1951"use strict";
1952
1953
1954var core = __w_pdfjs_require__(9);
1955
1956var global = __w_pdfjs_require__(8);
1957
1958var SHARED = '__core-js_shared__';
1959var store = global[SHARED] || (global[SHARED] = {});
1960(module.exports = function (key, value) {
1961  return store[key] || (store[key] = value !== undefined ? value : {});
1962})('versions', []).push({
1963  version: core.version,
1964  mode: __w_pdfjs_require__(32) ? 'pure' : 'global',
1965  copyright: '© 2019 Denis Pushkarev (zloirock.ru)'
1966});
1967
1968/***/ }),
1969/* 32 */
1970/***/ (function(module, exports, __w_pdfjs_require__) {
1971
1972"use strict";
1973
1974
1975module.exports = false;
1976
1977/***/ }),
1978/* 33 */
1979/***/ (function(module, exports, __w_pdfjs_require__) {
1980
1981"use strict";
1982
1983
1984module.exports = function (it) {
1985  if (it == undefined) throw TypeError("Can't call method on  " + it);
1986  return it;
1987};
1988
1989/***/ }),
1990/* 34 */
1991/***/ (function(module, exports, __w_pdfjs_require__) {
1992
1993"use strict";
1994
1995
1996var MATCH = __w_pdfjs_require__(30)('match');
1997
1998module.exports = function (KEY) {
1999  var re = /./;
2000
2001  try {
2002    '/./'[KEY](re);
2003  } catch (e) {
2004    try {
2005      re[MATCH] = false;
2006      return !'/./'[KEY](re);
2007    } catch (f) {}
2008  }
2009
2010  return true;
2011};
2012
2013/***/ }),
2014/* 35 */
2015/***/ (function(module, exports, __w_pdfjs_require__) {
2016
2017"use strict";
2018
2019
2020__w_pdfjs_require__(36);
2021
2022module.exports = __w_pdfjs_require__(9).String.endsWith;
2023
2024/***/ }),
2025/* 36 */
2026/***/ (function(module, exports, __w_pdfjs_require__) {
2027
2028"use strict";
2029
2030
2031var $export = __w_pdfjs_require__(7);
2032
2033var toLength = __w_pdfjs_require__(25);
2034
2035var context = __w_pdfjs_require__(27);
2036
2037var ENDS_WITH = 'endsWith';
2038var $endsWith = ''[ENDS_WITH];
2039$export($export.P + $export.F * __w_pdfjs_require__(34)(ENDS_WITH), 'String', {
2040  endsWith: function endsWith(searchString) {
2041    var that = context(this, searchString, ENDS_WITH);
2042    var endPosition = arguments.length > 1 ? arguments[1] : undefined;
2043    var len = toLength(that.length);
2044    var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
2045    var search = String(searchString);
2046    return $endsWith ? $endsWith.call(that, search, end) : that.slice(end - search.length, end) === search;
2047  }
2048});
2049
2050/***/ }),
2051/* 37 */
2052/***/ (function(module, exports, __w_pdfjs_require__) {
2053
2054"use strict";
2055
2056
2057__w_pdfjs_require__(38);
2058
2059module.exports = __w_pdfjs_require__(9).String.includes;
2060
2061/***/ }),
2062/* 38 */
2063/***/ (function(module, exports, __w_pdfjs_require__) {
2064
2065"use strict";
2066
2067
2068var $export = __w_pdfjs_require__(7);
2069
2070var context = __w_pdfjs_require__(27);
2071
2072var INCLUDES = 'includes';
2073$export($export.P + $export.F * __w_pdfjs_require__(34)(INCLUDES), 'String', {
2074  includes: function includes(searchString) {
2075    return !!~context(this, searchString, INCLUDES).indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
2076  }
2077});
2078
2079/***/ }),
2080/* 39 */
2081/***/ (function(module, exports, __w_pdfjs_require__) {
2082
2083"use strict";
2084
2085
2086__w_pdfjs_require__(40);
2087
2088module.exports = __w_pdfjs_require__(9).Array.includes;
2089
2090/***/ }),
2091/* 40 */
2092/***/ (function(module, exports, __w_pdfjs_require__) {
2093
2094"use strict";
2095
2096
2097var $export = __w_pdfjs_require__(7);
2098
2099var $includes = __w_pdfjs_require__(41)(true);
2100
2101$export($export.P, 'Array', {
2102  includes: function includes(el) {
2103    return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
2104  }
2105});
2106
2107__w_pdfjs_require__(45)('includes');
2108
2109/***/ }),
2110/* 41 */
2111/***/ (function(module, exports, __w_pdfjs_require__) {
2112
2113"use strict";
2114
2115
2116var toIObject = __w_pdfjs_require__(42);
2117
2118var toLength = __w_pdfjs_require__(25);
2119
2120var toAbsoluteIndex = __w_pdfjs_require__(44);
2121
2122module.exports = function (IS_INCLUDES) {
2123  return function ($this, el, fromIndex) {
2124    var O = toIObject($this);
2125    var length = toLength(O.length);
2126    var index = toAbsoluteIndex(fromIndex, length);
2127    var value;
vendor: 9,576 bytes, lines 2128-2549
2128    if (IS_INCLUDES && el != el) while (length > index) {
2129      value = O[index++];
2130      if (value != value) return true;
2131    } else for (; length > index; index++) {
2132      if (IS_INCLUDES || index in O) {
2133        if (O[index] === el) return IS_INCLUDES || index || 0;
2134      }
2135    }
2136    return !IS_INCLUDES && -1;
2137  };
2138};
2139
2140/***/ }),
2141/* 42 */
2142/***/ (function(module, exports, __w_pdfjs_require__) {
2143
2144"use strict";
2145
2146
2147var IObject = __w_pdfjs_require__(43);
2148
2149var defined = __w_pdfjs_require__(33);
2150
2151module.exports = function (it) {
2152  return IObject(defined(it));
2153};
2154
2155/***/ }),
2156/* 43 */
2157/***/ (function(module, exports, __w_pdfjs_require__) {
2158
2159"use strict";
2160
2161
2162var cof = __w_pdfjs_require__(29);
2163
2164module.exports = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
2165  return cof(it) == 'String' ? it.split('') : Object(it);
2166};
2167
2168/***/ }),
2169/* 44 */
2170/***/ (function(module, exports, __w_pdfjs_require__) {
2171
2172"use strict";
2173
2174
2175var toInteger = __w_pdfjs_require__(26);
2176
2177var max = Math.max;
2178var min = Math.min;
2179
2180module.exports = function (index, length) {
2181  index = toInteger(index);
2182  return index < 0 ? max(index + length, 0) : min(index, length);
2183};
2184
2185/***/ }),
2186/* 45 */
2187/***/ (function(module, exports, __w_pdfjs_require__) {
2188
2189"use strict";
2190
2191
2192var UNSCOPABLES = __w_pdfjs_require__(30)('unscopables');
2193
2194var ArrayProto = Array.prototype;
2195if (ArrayProto[UNSCOPABLES] == undefined) __w_pdfjs_require__(10)(ArrayProto, UNSCOPABLES, {});
2196
2197module.exports = function (key) {
2198  ArrayProto[UNSCOPABLES][key] = true;
2199};
2200
2201/***/ }),
2202/* 46 */
2203/***/ (function(module, exports, __w_pdfjs_require__) {
2204
2205"use strict";
2206
2207
2208__w_pdfjs_require__(47);
2209
2210__w_pdfjs_require__(62);
2211
2212module.exports = __w_pdfjs_require__(9).Array.from;
2213
2214/***/ }),
2215/* 47 */
2216/***/ (function(module, exports, __w_pdfjs_require__) {
2217
2218"use strict";
2219
2220
2221var $at = __w_pdfjs_require__(48)(true);
2222
2223__w_pdfjs_require__(49)(String, 'String', function (iterated) {
2224  this._t = String(iterated);
2225  this._i = 0;
2226}, function () {
2227  var O = this._t;
2228  var index = this._i;
2229  var point;
2230  if (index >= O.length) return {
2231    value: undefined,
2232    done: true
2233  };
2234  point = $at(O, index);
2235  this._i += point.length;
2236  return {
2237    value: point,
2238    done: false
2239  };
2240});
2241
2242/***/ }),
2243/* 48 */
2244/***/ (function(module, exports, __w_pdfjs_require__) {
2245
2246"use strict";
2247
2248
2249var toInteger = __w_pdfjs_require__(26);
2250
2251var defined = __w_pdfjs_require__(33);
2252
2253module.exports = function (TO_STRING) {
2254  return function (that, pos) {
2255    var s = String(defined(that));
2256    var i = toInteger(pos);
2257    var l = s.length;
2258    var a, b;
2259    if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
2260    a = s.charCodeAt(i);
2261    return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
2262  };
2263};
2264
2265/***/ }),
2266/* 49 */
2267/***/ (function(module, exports, __w_pdfjs_require__) {
2268
2269"use strict";
2270
2271
2272var LIBRARY = __w_pdfjs_require__(32);
2273
2274var $export = __w_pdfjs_require__(7);
2275
2276var redefine = __w_pdfjs_require__(20);
2277
2278var hide = __w_pdfjs_require__(10);
2279
2280var Iterators = __w_pdfjs_require__(50);
2281
2282var $iterCreate = __w_pdfjs_require__(51);
2283
2284var setToStringTag = __w_pdfjs_require__(59);
2285
2286var getPrototypeOf = __w_pdfjs_require__(60);
2287
2288var ITERATOR = __w_pdfjs_require__(30)('iterator');
2289
2290var BUGGY = !([].keys && 'next' in [].keys());
2291var FF_ITERATOR = '@@iterator';
2292var KEYS = 'keys';
2293var VALUES = 'values';
2294
2295var returnThis = function returnThis() {
2296  return this;
2297};
2298
2299module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
2300  $iterCreate(Constructor, NAME, next);
2301
2302  var getMethod = function getMethod(kind) {
2303    if (!BUGGY && kind in proto) return proto[kind];
2304
2305    switch (kind) {
2306      case KEYS:
2307        return function keys() {
2308          return new Constructor(this, kind);
2309        };
2310
2311      case VALUES:
2312        return function values() {
2313          return new Constructor(this, kind);
2314        };
2315    }
2316
2317    return function entries() {
2318      return new Constructor(this, kind);
2319    };
2320  };
2321
2322  var TAG = NAME + ' Iterator';
2323  var DEF_VALUES = DEFAULT == VALUES;
2324  var VALUES_BUG = false;
2325  var proto = Base.prototype;
2326  var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT];
2327  var $default = $native || getMethod(DEFAULT);
2328  var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined;
2329  var $anyNative = NAME == 'Array' ? proto.entries || $native : $native;
2330  var methods, key, IteratorPrototype;
2331
2332  if ($anyNative) {
2333    IteratorPrototype = getPrototypeOf($anyNative.call(new Base()));
2334
2335    if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
2336      setToStringTag(IteratorPrototype, TAG, true);
2337      if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis);
2338    }
2339  }
2340
2341  if (DEF_VALUES && $native && $native.name !== VALUES) {
2342    VALUES_BUG = true;
2343
2344    $default = function values() {
2345      return $native.call(this);
2346    };
2347  }
2348
2349  if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) {
2350    hide(proto, ITERATOR, $default);
2351  }
2352
2353  Iterators[NAME] = $default;
2354  Iterators[TAG] = returnThis;
2355
2356  if (DEFAULT) {
2357    methods = {
2358      values: DEF_VALUES ? $default : getMethod(VALUES),
2359      keys: IS_SET ? $default : getMethod(KEYS),
2360      entries: $entries
2361    };
2362    if (FORCED) for (key in methods) {
2363      if (!(key in proto)) redefine(proto, key, methods[key]);
2364    } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
2365  }
2366
2367  return methods;
2368};
2369
2370/***/ }),
2371/* 50 */
2372/***/ (function(module, exports, __w_pdfjs_require__) {
2373
2374"use strict";
2375
2376
2377module.exports = {};
2378
2379/***/ }),
2380/* 51 */
2381/***/ (function(module, exports, __w_pdfjs_require__) {
2382
2383"use strict";
2384
2385
2386var create = __w_pdfjs_require__(52);
2387
2388var descriptor = __w_pdfjs_require__(19);
2389
2390var setToStringTag = __w_pdfjs_require__(59);
2391
2392var IteratorPrototype = {};
2393
2394__w_pdfjs_require__(10)(IteratorPrototype, __w_pdfjs_require__(30)('iterator'), function () {
2395  return this;
2396});
2397
2398module.exports = function (Constructor, NAME, next) {
2399  Constructor.prototype = create(IteratorPrototype, {
2400    next: descriptor(1, next)
2401  });
2402  setToStringTag(Constructor, NAME + ' Iterator');
2403};
2404
2405/***/ }),
2406/* 52 */
2407/***/ (function(module, exports, __w_pdfjs_require__) {
2408
2409"use strict";
2410
2411
2412var anObject = __w_pdfjs_require__(12);
2413
2414var dPs = __w_pdfjs_require__(53);
2415
2416var enumBugKeys = __w_pdfjs_require__(57);
2417
2418var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO');
2419
2420var Empty = function Empty() {};
2421
2422var PROTOTYPE = 'prototype';
2423
2424var _createDict = function createDict() {
2425  var iframe = __w_pdfjs_require__(17)('iframe');
2426
2427  var i = enumBugKeys.length;
2428  var lt = '<';
2429  var gt = '>';
2430  var iframeDocument;
2431  iframe.style.display = 'none';
2432
2433  __w_pdfjs_require__(58).appendChild(iframe);
2434
2435  iframe.src = 'javascript:';
2436  iframeDocument = iframe.contentWindow.document;
2437  iframeDocument.open();
2438  iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
2439  iframeDocument.close();
2440  _createDict = iframeDocument.F;
2441
2442  while (i--) {
2443    delete _createDict[PROTOTYPE][enumBugKeys[i]];
2444  }
2445
2446  return _createDict();
2447};
2448
2449module.exports = Object.create || function create(O, Properties) {
2450  var result;
2451
2452  if (O !== null) {
2453    Empty[PROTOTYPE] = anObject(O);
2454    result = new Empty();
2455    Empty[PROTOTYPE] = null;
2456    result[IE_PROTO] = O;
2457  } else result = _createDict();
2458
2459  return Properties === undefined ? result : dPs(result, Properties);
2460};
2461
2462/***/ }),
2463/* 53 */
2464/***/ (function(module, exports, __w_pdfjs_require__) {
2465
2466"use strict";
2467
2468
2469var dP = __w_pdfjs_require__(11);
2470
2471var anObject = __w_pdfjs_require__(12);
2472
2473var getKeys = __w_pdfjs_require__(54);
2474
2475module.exports = __w_pdfjs_require__(15) ? Object.defineProperties : function defineProperties(O, Properties) {
2476  anObject(O);
2477  var keys = getKeys(Properties);
2478  var length = keys.length;
2479  var i = 0;
2480  var P;
2481
2482  while (length > i) {
2483    dP.f(O, P = keys[i++], Properties[P]);
2484  }
2485
2486  return O;
2487};
2488
2489/***/ }),
2490/* 54 */
2491/***/ (function(module, exports, __w_pdfjs_require__) {
2492
2493"use strict";
2494
2495
2496var $keys = __w_pdfjs_require__(55);
2497
2498var enumBugKeys = __w_pdfjs_require__(57);
2499
2500module.exports = Object.keys || function keys(O) {
2501  return $keys(O, enumBugKeys);
2502};
2503
2504/***/ }),
2505/* 55 */
2506/***/ (function(module, exports, __w_pdfjs_require__) {
2507
2508"use strict";
2509
2510
2511var has = __w_pdfjs_require__(21);
2512
2513var toIObject = __w_pdfjs_require__(42);
2514
2515var arrayIndexOf = __w_pdfjs_require__(41)(false);
2516
2517var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO');
2518
2519module.exports = function (object, names) {
2520  var O = toIObject(object);
2521  var i = 0;
2522  var result = [];
2523  var key;
2524
2525  for (key in O) {
2526    if (key != IE_PROTO) has(O, key) && result.push(key);
2527  }
2528
2529  while (names.length > i) {
2530    if (has(O, key = names[i++])) {
2531      ~arrayIndexOf(result, key) || result.push(key);
2532    }
2533  }
2534
2535  return result;
2536};
2537
2538/***/ }),
2539/* 56 */
2540/***/ (function(module, exports, __w_pdfjs_require__) {
2541
2542"use strict";
2543
2544
2545var shared = __w_pdfjs_require__(31)('keys');
2546
2547var uid = __w_pdfjs_require__(22);
2548
2549module.exports = function (key) {
vendor: 4,508 bytes, lines 2550-2745
2550  return shared[key] || (shared[key] = uid(key));
2551};
2552
2553/***/ }),
2554/* 57 */
2555/***/ (function(module, exports, __w_pdfjs_require__) {
2556
2557"use strict";
2558
2559
2560module.exports = 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'.split(',');
2561
2562/***/ }),
2563/* 58 */
2564/***/ (function(module, exports, __w_pdfjs_require__) {
2565
2566"use strict";
2567
2568
2569var document = __w_pdfjs_require__(8).document;
2570
2571module.exports = document && document.documentElement;
2572
2573/***/ }),
2574/* 59 */
2575/***/ (function(module, exports, __w_pdfjs_require__) {
2576
2577"use strict";
2578
2579
2580var def = __w_pdfjs_require__(11).f;
2581
2582var has = __w_pdfjs_require__(21);
2583
2584var TAG = __w_pdfjs_require__(30)('toStringTag');
2585
2586module.exports = function (it, tag, stat) {
2587  if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, {
2588    configurable: true,
2589    value: tag
2590  });
2591};
2592
2593/***/ }),
2594/* 60 */
2595/***/ (function(module, exports, __w_pdfjs_require__) {
2596
2597"use strict";
2598
2599
2600var has = __w_pdfjs_require__(21);
2601
2602var toObject = __w_pdfjs_require__(61);
2603
2604var IE_PROTO = __w_pdfjs_require__(56)('IE_PROTO');
2605
2606var ObjectProto = Object.prototype;
2607
2608module.exports = Object.getPrototypeOf || function (O) {
2609  O = toObject(O);
2610  if (has(O, IE_PROTO)) return O[IE_PROTO];
2611
2612  if (typeof O.constructor == 'function' && O instanceof O.constructor) {
2613    return O.constructor.prototype;
2614  }
2615
2616  return O instanceof Object ? ObjectProto : null;
2617};
2618
2619/***/ }),
2620/* 61 */
2621/***/ (function(module, exports, __w_pdfjs_require__) {
2622
2623"use strict";
2624
2625
2626var defined = __w_pdfjs_require__(33);
2627
2628module.exports = function (it) {
2629  return Object(defined(it));
2630};
2631
2632/***/ }),
2633/* 62 */
2634/***/ (function(module, exports, __w_pdfjs_require__) {
2635
2636"use strict";
2637
2638
2639var ctx = __w_pdfjs_require__(23);
2640
2641var $export = __w_pdfjs_require__(7);
2642
2643var toObject = __w_pdfjs_require__(61);
2644
2645var call = __w_pdfjs_require__(63);
2646
2647var isArrayIter = __w_pdfjs_require__(64);
2648
2649var toLength = __w_pdfjs_require__(25);
2650
2651var createProperty = __w_pdfjs_require__(65);
2652
2653var getIterFn = __w_pdfjs_require__(66);
2654
2655$export($export.S + $export.F * !__w_pdfjs_require__(68)(function (iter) {
2656  Array.from(iter);
2657}), 'Array', {
2658  from: function from(arrayLike) {
2659    var O = toObject(arrayLike);
2660    var C = typeof this == 'function' ? this : Array;
2661    var aLen = arguments.length;
2662    var mapfn = aLen > 1 ? arguments[1] : undefined;
2663    var mapping = mapfn !== undefined;
2664    var index = 0;
2665    var iterFn = getIterFn(O);
2666    var length, result, step, iterator;
2667    if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
2668
2669    if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
2670      for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
2671        createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
2672      }
2673    } else {
2674      length = toLength(O.length);
2675
2676      for (result = new C(length); length > index; index++) {
2677        createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
2678      }
2679    }
2680
2681    result.length = index;
2682    return result;
2683  }
2684});
2685
2686/***/ }),
2687/* 63 */
2688/***/ (function(module, exports, __w_pdfjs_require__) {
2689
2690"use strict";
2691
2692
2693var anObject = __w_pdfjs_require__(12);
2694
2695module.exports = function (iterator, fn, value, entries) {
2696  try {
2697    return entries ? fn(anObject(value)[0], value[1]) : fn(value);
2698  } catch (e) {
2699    var ret = iterator['return'];
2700    if (ret !== undefined) anObject(ret.call(iterator));
2701    throw e;
2702  }
2703};
2704
2705/***/ }),
2706/* 64 */
2707/***/ (function(module, exports, __w_pdfjs_require__) {
2708
2709"use strict";
2710
2711
2712var Iterators = __w_pdfjs_require__(50);
2713
2714var ITERATOR = __w_pdfjs_require__(30)('iterator');
2715
2716var ArrayProto = Array.prototype;
2717
2718module.exports = function (it) {
2719  return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
2720};
2721
2722/***/ }),
2723/* 65 */
2724/***/ (function(module, exports, __w_pdfjs_require__) {
2725
2726"use strict";
2727
2728
2729var $defineProperty = __w_pdfjs_require__(11);
2730
2731var createDesc = __w_pdfjs_require__(19);
2732
2733module.exports = function (object, index, value) {
2734  if (index in object) $defineProperty.f(object, index, createDesc(0, value));else object[index] = value;
2735};
2736
2737/***/ }),
2738/* 66 */
2739/***/ (function(module, exports, __w_pdfjs_require__) {
2740
2741"use strict";
2742
2743
2744var classof = __w_pdfjs_require__(67);
2745
vendor: 4,229 bytes, lines 2746-2962
2746var ITERATOR = __w_pdfjs_require__(30)('iterator');
2747
2748var Iterators = __w_pdfjs_require__(50);
2749
2750module.exports = __w_pdfjs_require__(9).getIteratorMethod = function (it) {
2751  if (it != undefined) return it[ITERATOR] || it['@@iterator'] || Iterators[classof(it)];
2752};
2753
2754/***/ }),
2755/* 67 */
2756/***/ (function(module, exports, __w_pdfjs_require__) {
2757
2758"use strict";
2759
2760
2761var cof = __w_pdfjs_require__(29);
2762
2763var TAG = __w_pdfjs_require__(30)('toStringTag');
2764
2765var ARG = cof(function () {
2766  return arguments;
2767}()) == 'Arguments';
2768
2769var tryGet = function tryGet(it, key) {
2770  try {
2771    return it[key];
2772  } catch (e) {}
2773};
2774
2775module.exports = function (it) {
2776  var O, T, B;
2777  return it === undefined ? 'Undefined' : it === null ? 'Null' : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T : ARG ? cof(O) : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
2778};
2779
2780/***/ }),
2781/* 68 */
2782/***/ (function(module, exports, __w_pdfjs_require__) {
2783
2784"use strict";
2785
2786
2787var ITERATOR = __w_pdfjs_require__(30)('iterator');
2788
2789var SAFE_CLOSING = false;
2790
2791try {
2792  var riter = [7][ITERATOR]();
2793
2794  riter['return'] = function () {
2795    SAFE_CLOSING = true;
2796  };
2797
2798  Array.from(riter, function () {
2799    throw 2;
2800  });
2801} catch (e) {}
2802
2803module.exports = function (exec, skipClosing) {
2804  if (!skipClosing && !SAFE_CLOSING) return false;
2805  var safe = false;
2806
2807  try {
2808    var arr = [7];
2809    var iter = arr[ITERATOR]();
2810
2811    iter.next = function () {
2812      return {
2813        done: safe = true
2814      };
2815    };
2816
2817    arr[ITERATOR] = function () {
2818      return iter;
2819    };
2820
2821    exec(arr);
2822  } catch (e) {}
2823
2824  return safe;
2825};
2826
2827/***/ }),
2828/* 69 */
2829/***/ (function(module, exports, __w_pdfjs_require__) {
2830
2831"use strict";
2832
2833
2834__w_pdfjs_require__(70);
2835
2836module.exports = __w_pdfjs_require__(9).Object.assign;
2837
2838/***/ }),
2839/* 70 */
2840/***/ (function(module, exports, __w_pdfjs_require__) {
2841
2842"use strict";
2843
2844
2845var $export = __w_pdfjs_require__(7);
2846
2847$export($export.S + $export.F, 'Object', {
2848  assign: __w_pdfjs_require__(71)
2849});
2850
2851/***/ }),
2852/* 71 */
2853/***/ (function(module, exports, __w_pdfjs_require__) {
2854
2855"use strict";
2856
2857
2858var getKeys = __w_pdfjs_require__(54);
2859
2860var gOPS = __w_pdfjs_require__(72);
2861
2862var pIE = __w_pdfjs_require__(73);
2863
2864var toObject = __w_pdfjs_require__(61);
2865
2866var IObject = __w_pdfjs_require__(43);
2867
2868var $assign = Object.assign;
2869module.exports = !$assign || __w_pdfjs_require__(16)(function () {
2870  var A = {};
2871  var B = {};
2872  var S = Symbol();
2873  var K = 'abcdefghijklmnopqrst';
2874  A[S] = 7;
2875  K.split('').forEach(function (k) {
2876    B[k] = k;
2877  });
2878  return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
2879}) ? function assign(target, source) {
2880  var T = toObject(target);
2881  var aLen = arguments.length;
2882  var index = 1;
2883  var getSymbols = gOPS.f;
2884  var isEnum = pIE.f;
2885
2886  while (aLen > index) {
2887    var S = IObject(arguments[index++]);
2888    var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
2889    var length = keys.length;
2890    var j = 0;
2891    var key;
2892
2893    while (length > j) {
2894      if (isEnum.call(S, key = keys[j++])) T[key] = S[key];
2895    }
2896  }
2897
2898  return T;
2899} : $assign;
2900
2901/***/ }),
2902/* 72 */
2903/***/ (function(module, exports, __w_pdfjs_require__) {
2904
2905"use strict";
2906
2907
2908exports.f = Object.getOwnPropertySymbols;
2909
2910/***/ }),
2911/* 73 */
2912/***/ (function(module, exports, __w_pdfjs_require__) {
2913
2914"use strict";
2915
2916
2917exports.f = {}.propertyIsEnumerable;
2918
2919/***/ }),
2920/* 74 */
2921/***/ (function(module, exports, __w_pdfjs_require__) {
2922
2923"use strict";
2924
2925
2926__w_pdfjs_require__(75);
2927
2928module.exports = __w_pdfjs_require__(9).Math.log2;
2929
2930/***/ }),
2931/* 75 */
2932/***/ (function(module, exports, __w_pdfjs_require__) {
2933
2934"use strict";
2935
2936
2937var $export = __w_pdfjs_require__(7);
2938
2939$export($export.S, 'Math', {
2940  log2: function log2(x) {
2941    return Math.log(x) / Math.LN2;
2942  }
2943});
2944
2945/***/ }),
2946/* 76 */
2947/***/ (function(module, exports, __w_pdfjs_require__) {
2948
2949"use strict";
2950
2951
2952__w_pdfjs_require__(77);
2953
2954module.exports = __w_pdfjs_require__(9).Number.isNaN;
2955
2956/***/ }),
2957/* 77 */
2958/***/ (function(module, exports, __w_pdfjs_require__) {
2959
2960"use strict";
2961
2962
2963var $export = __w_pdfjs_require__(7);
2964
2965$export($export.S, 'Number', {
2966  isNaN: function isNaN(number) {
2967    return number != number;
2968  }
2969});
2970
2971/***/ }),
2972/* 78 */
2973/***/ (function(module, exports, __w_pdfjs_require__) {
2974
2975"use strict";
2976
2977
2978__w_pdfjs_require__(79);
2979
2980module.exports = __w_pdfjs_require__(9).Number.isInteger;
2981
2982/***/ }),
2983/* 79 */
2984/***/ (function(module, exports, __w_pdfjs_require__) {
2985
2986"use strict";
2987
2988
2989var $export = __w_pdfjs_require__(7);
2990
2991$export($export.S, 'Number', {
2992  isInteger: __w_pdfjs_require__(80)
2993});
2994
2995/***/ }),
2996/* 80 */
2997/***/ (function(module, exports, __w_pdfjs_require__) {
2998
2999"use strict";
3000
3001
3002var isObject = __w_pdfjs_require__(13);
3003
3004var floor = Math.floor;
3005
3006module.exports = function isInteger(it) {
3007  return !isObject(it) && isFinite(it) && floor(it) === it;
3008};
3009
3010/***/ }),
3011/* 81 */
3012/***/ (function(module, exports, __w_pdfjs_require__) {
3013
3014"use strict";
3015
3016
3017__w_pdfjs_require__(82);
3018
3019__w_pdfjs_require__(47);
3020
3021__w_pdfjs_require__(83);
3022
3023__w_pdfjs_require__(86);
3024
3025__w_pdfjs_require__(99);
3026
3027__w_pdfjs_require__(100);
3028
3029module.exports = __w_pdfjs_require__(9).Promise;
3030
3031/***/ }),
3032/* 82 */
3033/***/ (function(module, exports, __w_pdfjs_require__) {
3034
3035"use strict";
3036
3037
3038var classof = __w_pdfjs_require__(67);
3039
3040var test = {};
3041test[__w_pdfjs_require__(30)('toStringTag')] = 'z';
3042
3043if (test + '' != '[object z]') {
3044  __w_pdfjs_require__(20)(Object.prototype, 'toString', function toString() {
3045    return '[object ' + classof(this) + ']';
3046  }, true);
3047}
3048
3049/***/ }),
3050/* 83 */
3051/***/ (function(module, exports, __w_pdfjs_require__) {
3052
3053"use strict";
3054
3055
3056var $iterators = __w_pdfjs_require__(84);
3057
3058var getKeys = __w_pdfjs_require__(54);
3059
3060var redefine = __w_pdfjs_require__(20);
3061
3062var global = __w_pdfjs_require__(8);
3063
3064var hide = __w_pdfjs_require__(10);
3065
3066var Iterators = __w_pdfjs_require__(50);
3067
3068var wks = __w_pdfjs_require__(30);
3069
3070var ITERATOR = wks('iterator');
3071var TO_STRING_TAG = wks('toStringTag');
3072var ArrayValues = Iterators.Array;
3073var DOMIterables = {
3074  CSSRuleList: true,
3075  CSSStyleDeclaration: false,
3076  CSSValueList: false,
3077  ClientRectList: false,
3078  DOMRectList: false,
3079  DOMStringList: false,
3080  DOMTokenList: true,
3081  DataTransferItemList: false,
3082  FileList: false,
3083  HTMLAllCollection: false,
3084  HTMLCollection: false,
3085  HTMLFormElement: false,
3086  HTMLSelectElement: false,
3087  MediaList: true,
3088  MimeTypeArray: false,
3089  NamedNodeMap: false,
3090  NodeList: true,
3091  PaintRequestList: false,
3092  Plugin: false,
3093  PluginArray: false,
3094  SVGLengthList: false,
3095  SVGNumberList: false,
3096  SVGPathSegList: false,
3097  SVGPointList: false,
3098  SVGStringList: false,
3099  SVGTransformList: false,
3100  SourceBufferList: false,
3101  StyleSheetList: true,
3102  TextTrackCueList: false,
3103  TextTrackList: false,
3104  TouchList: false
3105};
3106
3107for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
3108  var NAME = collections[i];
3109  var explicit = DOMIterables[NAME];
3110  var Collection = global[NAME];
3111  var proto = Collection && Collection.prototype;
3112  var key;
3113
3114  if (proto) {
3115    if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
3116    if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
3117    Iterators[NAME] = ArrayValues;
3118    if (explicit) for (key in $iterators) {
3119      if (!proto[key]) redefine(proto, key, $iterators[key], true);
3120    }
3121  }
3122}
3123
3124/***/ }),
3125/* 84 */
3126/***/ (function(module, exports, __w_pdfjs_require__) {
3127
3128"use strict";
3129
3130
3131var addToUnscopables = __w_pdfjs_require__(45);
3132
3133var step = __w_pdfjs_require__(85);
3134
3135var Iterators = __w_pdfjs_require__(50);
3136
3137var toIObject = __w_pdfjs_require__(42);
3138
3139module.exports = __w_pdfjs_require__(49)(Array, 'Array', function (iterated, kind) {
3140  this._t = toIObject(iterated);
3141  this._i = 0;
3142  this._k = kind;
3143}, function () {
3144  var O = this._t;
3145  var kind = this._k;
3146  var index = this._i++;
3147
3148  if (!O || index >= O.length) {
3149    this._t = undefined;
3150    return step(1);
3151  }
3152
3153  if (kind == 'keys') return step(0, index);
3154  if (kind == 'values') return step(0, O[index]);
3155  return step(0, [index, O[index]]);
3156}, 'values');
3157Iterators.Arguments = Iterators.Array;
3158addToUnscopables('keys');
3159addToUnscopables('values');
3160addToUnscopables('entries');
3161
3162/***/ }),
3163/* 85 */
3164/***/ (function(module, exports, __w_pdfjs_require__) {
3165
3166"use strict";
3167
3168
3169module.exports = function (done, value) {
3170  return {
3171    value: value,
3172    done: !!done
3173  };
3174};
vendor: 5,100 bytes, lines 3175-3364
3175
3176/***/ }),
3177/* 86 */
3178/***/ (function(module, exports, __w_pdfjs_require__) {
3179
3180"use strict";
3181
3182
3183var LIBRARY = __w_pdfjs_require__(32);
3184
3185var global = __w_pdfjs_require__(8);
3186
3187var ctx = __w_pdfjs_require__(23);
3188
3189var classof = __w_pdfjs_require__(67);
3190
3191var $export = __w_pdfjs_require__(7);
3192
3193var isObject = __w_pdfjs_require__(13);
3194
3195var aFunction = __w_pdfjs_require__(24);
3196
3197var anInstance = __w_pdfjs_require__(87);
3198
3199var forOf = __w_pdfjs_require__(88);
3200
3201var speciesConstructor = __w_pdfjs_require__(89);
3202
3203var task = __w_pdfjs_require__(90).set;
3204
3205var microtask = __w_pdfjs_require__(92)();
3206
3207var newPromiseCapabilityModule = __w_pdfjs_require__(93);
3208
3209var perform = __w_pdfjs_require__(94);
3210
3211var userAgent = __w_pdfjs_require__(95);
3212
3213var promiseResolve = __w_pdfjs_require__(96);
3214
3215var PROMISE = 'Promise';
3216var TypeError = global.TypeError;
3217var process = global.process;
3218var versions = process && process.versions;
3219var v8 = versions && versions.v8 || '';
3220var $Promise = global[PROMISE];
3221var isNode = classof(process) == 'process';
3222
3223var empty = function empty() {};
3224
3225var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
3226var newPromiseCapability = newGenericPromiseCapability = newPromiseCapabilityModule.f;
3227var USE_NATIVE = !!function () {
3228  try {
3229    var promise = $Promise.resolve(1);
3230
3231    var FakePromise = (promise.constructor = {})[__w_pdfjs_require__(30)('species')] = function (exec) {
3232      exec(empty, empty);
3233    };
3234
3235    return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise && v8.indexOf('6.6') !== 0 && userAgent.indexOf('Chrome/66') === -1;
3236  } catch (e) {}
3237}();
3238
3239var isThenable = function isThenable(it) {
3240  var then;
3241  return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
3242};
3243
3244var notify = function notify(promise, isReject) {
3245  if (promise._n) return;
3246  promise._n = true;
3247  var chain = promise._c;
3248  microtask(function () {
3249    var value = promise._v;
3250    var ok = promise._s == 1;
3251    var i = 0;
3252
3253    var run = function run(reaction) {
3254      var handler = ok ? reaction.ok : reaction.fail;
3255      var resolve = reaction.resolve;
3256      var reject = reaction.reject;
3257      var domain = reaction.domain;
3258      var result, then, exited;
3259
3260      try {
3261        if (handler) {
3262          if (!ok) {
3263            if (promise._h == 2) onHandleUnhandled(promise);
3264            promise._h = 1;
3265          }
3266
3267          if (handler === true) result = value;else {
3268            if (domain) domain.enter();
3269            result = handler(value);
3270
3271            if (domain) {
3272              domain.exit();
3273              exited = true;
3274            }
3275          }
3276
3277          if (result === reaction.promise) {
3278            reject(TypeError('Promise-chain cycle'));
3279          } else if (then = isThenable(result)) {
3280            then.call(result, resolve, reject);
3281          } else resolve(result);
3282        } else reject(value);
3283      } catch (e) {
3284        if (domain && !exited) domain.exit();
3285        reject(e);
3286      }
3287    };
3288
3289    while (chain.length > i) {
3290      run(chain[i++]);
3291    }
3292
3293    promise._c = [];
3294    promise._n = false;
3295    if (isReject && !promise._h) onUnhandled(promise);
3296  });
3297};
3298
3299var onUnhandled = function onUnhandled(promise) {
3300  task.call(global, function () {
3301    var value = promise._v;
3302    var unhandled = isUnhandled(promise);
3303    var result, handler, console;
3304
3305    if (unhandled) {
3306      result = perform(function () {
3307        if (isNode) {
3308          process.emit('unhandledRejection', value, promise);
3309        } else if (handler = global.onunhandledrejection) {
3310          handler({
3311            promise: promise,
3312            reason: value
3313          });
3314        } else if ((console = global.console) && console.error) {
3315          console.error('Unhandled promise rejection', value);
3316        }
3317      });
3318      promise._h = isNode || isUnhandled(promise) ? 2 : 1;
3319    }
3320
3321    promise._a = undefined;
3322    if (unhandled && result.e) throw result.v;
3323  });
3324};
3325
3326var isUnhandled = function isUnhandled(promise) {
3327  return promise._h !== 1 && (promise._a || promise._c).length === 0;
3328};
3329
3330var onHandleUnhandled = function onHandleUnhandled(promise) {
3331  task.call(global, function () {
3332    var handler;
3333
3334    if (isNode) {
3335      process.emit('rejectionHandled', promise);
3336    } else if (handler = global.onrejectionhandled) {
3337      handler({
3338        promise: promise,
3339        reason: promise._v
3340      });
3341    }
3342  });
3343};
3344
3345var $reject = function $reject(value) {
3346  var promise = this;
3347  if (promise._d) return;
3348  promise._d = true;
3349  promise = promise._w || promise;
3350  promise._v = value;
3351  promise._s = 2;
3352  if (!promise._a) promise._a = promise._c.slice();
3353  notify(promise, true);
3354};
3355
3356var $resolve = function $resolve(value) {
3357  var promise = this;
3358  var then;
3359  if (promise._d) return;
3360  promise._d = true;
3361  promise = promise._w || promise;
3362
3363  try {
3364    if (promise === value) throw TypeError("Promise can't be resolved 
vendor: 4,778 bytes, lines 3364-3539
3364itself");
3365
3366    if (then = isThenable(value)) {
3367      microtask(function () {
3368        var wrapper = {
3369          _w: promise,
3370          _d: false
3371        };
3372
3373        try {
3374          then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
3375        } catch (e) {
3376          $reject.call(wrapper, e);
3377        }
3378      });
3379    } else {
3380      promise._v = value;
3381      promise._s = 1;
3382      notify(promise, false);
3383    }
3384  } catch (e) {
3385    $reject.call({
3386      _w: promise,
3387      _d: false
3388    }, e);
3389  }
3390};
3391
3392if (!USE_NATIVE) {
3393  $Promise = function Promise(executor) {
3394    anInstance(this, $Promise, PROMISE, '_h');
3395    aFunction(executor);
3396    Internal.call(this);
3397
3398    try {
3399      executor(ctx($resolve, this, 1), ctx($reject, this, 1));
3400    } catch (err) {
3401      $reject.call(this, err);
3402    }
3403  };
3404
3405  Internal = function Promise(executor) {
3406    this._c = [];
3407    this._a = undefined;
3408    this._s = 0;
3409    this._d = false;
3410    this._v = undefined;
3411    this._h = 0;
3412    this._n = false;
3413  };
3414
3415  Internal.prototype = __w_pdfjs_require__(97)($Promise.prototype, {
3416    then: function then(onFulfilled, onRejected) {
3417      var reaction = newPromiseCapability(speciesConstructor(this, $Promise));
3418      reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
3419      reaction.fail = typeof onRejected == 'function' && onRejected;
3420      reaction.domain = isNode ? process.domain : undefined;
3421
3422      this._c.push(reaction);
3423
3424      if (this._a) this._a.push(reaction);
3425      if (this._s) notify(this, false);
3426      return reaction.promise;
3427    },
3428    'catch': function _catch(onRejected) {
3429      return this.then(undefined, onRejected);
3430    }
3431  });
3432
3433  OwnPromiseCapability = function OwnPromiseCapability() {
3434    var promise = new Internal();
3435    this.promise = promise;
3436    this.resolve = ctx($resolve, promise, 1);
3437    this.reject = ctx($reject, promise, 1);
3438  };
3439
3440  newPromiseCapabilityModule.f = newPromiseCapability = function newPromiseCapability(C) {
3441    return C === $Promise || C === Wrapper ? new OwnPromiseCapability(C) : newGenericPromiseCapability(C);
3442  };
3443}
3444
3445$export($export.G + $export.W + $export.F * !USE_NATIVE, {
3446  Promise: $Promise
3447});
3448
3449__w_pdfjs_require__(59)($Promise, PROMISE);
3450
3451__w_pdfjs_require__(98)(PROMISE);
3452
3453Wrapper = __w_pdfjs_require__(9)[PROMISE];
3454$export($export.S + $export.F * !USE_NATIVE, PROMISE, {
3455  reject: function reject(r) {
3456    var capability = newPromiseCapability(this);
3457    var $$reject = capability.reject;
3458    $$reject(r);
3459    return capability.promise;
3460  }
3461});
3462$export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, {
3463  resolve: function resolve(x) {
3464    return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
3465  }
3466});
3467$export($export.S + $export.F * !(USE_NATIVE && __w_pdfjs_require__(68)(function (iter) {
3468  $Promise.all(iter)['catch'](empty);
3469})), PROMISE, {
3470  all: function all(iterable) {
3471    var C = this;
3472    var capability = newPromiseCapability(C);
3473    var resolve = capability.resolve;
3474    var reject = capability.reject;
3475    var result = perform(function () {
3476      var values = [];
3477      var index = 0;
3478      var remaining = 1;
3479      forOf(iterable, false, function (promise) {
3480        var $index = index++;
3481        var alreadyCalled = false;
3482        values.push(undefined);
3483        remaining++;
3484        C.resolve(promise).then(function (value) {
3485          if (alreadyCalled) return;
3486          alreadyCalled = true;
3487          values[$index] = value;
3488          --remaining || resolve(values);
3489        }, reject);
3490      });
3491      --remaining || resolve(values);
3492    });
3493    if (result.e) reject(result.v);
3494    return capability.promise;
3495  },
3496  race: function race(iterable) {
3497    var C = this;
3498    var capability = newPromiseCapability(C);
3499    var reject = capability.reject;
3500    var result = perform(function () {
3501      forOf(iterable, false, function (promise) {
3502        C.resolve(promise).then(capability.resolve, reject);
3503      });
3504    });
3505    if (result.e) reject(result.v);
3506    return capability.promise;
3507  }
3508});
3509
3510/***/ }),
3511/* 87 */
3512/***/ (function(module, exports, __w_pdfjs_require__) {
3513
3514"use strict";
3515
3516
3517module.exports = function (it, Constructor, name, forbiddenField) {
3518  if (!(it instanceof Constructor) || forbiddenField !== undefined && forbiddenField in it) {
3519    throw TypeError(name + ': incorrect invocation!');
3520  }
3521
3522  return it;
3523};
3524
3525/***/ }),
3526/* 88 */
3527/***/ (function(module, exports, __w_pdfjs_require__) {
3528
3529"use strict";
3530
3531
3532var ctx = __w_pdfjs_require__(23);
3533
3534var call = __w_pdfjs_require__(63);
3535
3536var isArrayIter = __w_pdfjs_require__(64);
3537
3538var anObject = __w_pdfjs_require__(12);
3539
vendor: 4,904 bytes, lines 3540-3733
3540var toLength = __w_pdfjs_require__(25);
3541
3542var getIterFn = __w_pdfjs_require__(66);
3543
3544var BREAK = {};
3545var RETURN = {};
3546
3547var _exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
3548  var iterFn = ITERATOR ? function () {
3549    return iterable;
3550  } : getIterFn(iterable);
3551  var f = ctx(fn, that, entries ? 2 : 1);
3552  var index = 0;
3553  var length, step, iterator, result;
3554  if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
3555  if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
3556    result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
3557    if (result === BREAK || result === RETURN) return result;
3558  } else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
3559    result = call(iterator, f, step.value, entries);
3560    if (result === BREAK || result === RETURN) return result;
3561  }
3562};
3563
3564_exports.BREAK = BREAK;
3565_exports.RETURN = RETURN;
3566
3567/***/ }),
3568/* 89 */
3569/***/ (function(module, exports, __w_pdfjs_require__) {
3570
3571"use strict";
3572
3573
3574var anObject = __w_pdfjs_require__(12);
3575
3576var aFunction = __w_pdfjs_require__(24);
3577
3578var SPECIES = __w_pdfjs_require__(30)('species');
3579
3580module.exports = function (O, D) {
3581  var C = anObject(O).constructor;
3582  var S;
3583  return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
3584};
3585
3586/***/ }),
3587/* 90 */
3588/***/ (function(module, exports, __w_pdfjs_require__) {
3589
3590"use strict";
3591
3592
3593var ctx = __w_pdfjs_require__(23);
3594
3595var invoke = __w_pdfjs_require__(91);
3596
3597var html = __w_pdfjs_require__(58);
3598
3599var cel = __w_pdfjs_require__(17);
3600
3601var global = __w_pdfjs_require__(8);
3602
3603var process = global.process;
3604var setTask = global.setImmediate;
3605var clearTask = global.clearImmediate;
3606var MessageChannel = global.MessageChannel;
3607var Dispatch = global.Dispatch;
3608var counter = 0;
3609var queue = {};
3610var ONREADYSTATECHANGE = 'onreadystatechange';
3611var defer, channel, port;
3612
3613var run = function run() {
3614  var id = +this;
3615
3616  if (queue.hasOwnProperty(id)) {
3617    var fn = queue[id];
3618    delete queue[id];
3619    fn();
3620  }
3621};
3622
3623var listener = function listener(event) {
3624  run.call(event.data);
3625};
3626
3627if (!setTask || !clearTask) {
3628  setTask = function setImmediate(fn) {
3629    var args = [];
3630    var i = 1;
3631
3632    while (arguments.length > i) {
3633      args.push(arguments[i++]);
3634    }
3635
3636    queue[++counter] = function () {
3637      invoke(typeof fn == 'function' ? fn : Function(fn), args);
3638    };
3639
3640    defer(counter);
3641    return counter;
3642  };
3643
3644  clearTask = function clearImmediate(id) {
3645    delete queue[id];
3646  };
3647
3648  if (__w_pdfjs_require__(29)(process) == 'process') {
3649    defer = function defer(id) {
3650      process.nextTick(ctx(run, id, 1));
3651    };
3652  } else if (Dispatch && Dispatch.now) {
3653    defer = function defer(id) {
3654      Dispatch.now(ctx(run, id, 1));
3655    };
3656  } else if (MessageChannel) {
3657    channel = new MessageChannel();
3658    port = channel.port2;
3659    channel.port1.onmessage = listener;
3660    defer = ctx(port.postMessage, port, 1);
3661  } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts) {
3662    defer = function defer(id) {
3663      global.postMessage(id + '', '*');
3664    };
3665
3666    global.addEventListener('message', listener, false);
3667  } else if (ONREADYSTATECHANGE in cel('script')) {
3668    defer = function defer(id) {
3669      html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
3670        html.removeChild(this);
3671        run.call(id);
3672      };
3673    };
3674  } else {
3675    defer = function defer(id) {
3676      setTimeout(ctx(run, id, 1), 0);
3677    };
3678  }
3679}
3680
3681module.exports = {
3682  set: setTask,
3683  clear: clearTask
3684};
3685
3686/***/ }),
3687/* 91 */
3688/***/ (function(module, exports, __w_pdfjs_require__) {
3689
3690"use strict";
3691
3692
3693module.exports = function (fn, args, that) {
3694  var un = that === undefined;
3695
3696  switch (args.length) {
3697    case 0:
3698      return un ? fn() : fn.call(that);
3699
3700    case 1:
3701      return un ? fn(args[0]) : fn.call(that, args[0]);
3702
3703    case 2:
3704      return un ? fn(args[0], args[1]) : fn.call(that, args[0], args[1]);
3705
3706    case 3:
3707      return un ? fn(args[0], args[1], args[2]) : fn.call(that, args[0], args[1], args[2]);
3708
3709    case 4:
3710      return un ? fn(args[0], args[1], args[2], args[3]) : fn.call(that, args[0], args[1], args[2], args[3]);
3711  }
3712
3713  return fn.apply(that, args);
3714};
3715
3716/***/ }),
3717/* 92 */
3718/***/ (function(module, exports, __w_pdfjs_require__) {
3719
3720"use strict";
3721
3722
3723var global = __w_pdfjs_require__(8);
3724
3725var macrotask = __w_pdfjs_require__(90).set;
3726
3727var Observer = global.MutationObserver || global.WebKitMutationObserver;
3728var process = global.process;
3729var Promise = global.Promise;
3730var isNode = __w_pdfjs_require__(29)(process) == 'process';
3731
3732module.exports = function () {
3733  var head, last, notify;
vendor: 4,580 bytes, lines 3734-3957
3734
3735  var flush = function flush() {
3736    var parent, fn;
3737    if (isNode && (parent = process.domain)) parent.exit();
3738
3739    while (head) {
3740      fn = head.fn;
3741      head = head.next;
3742
3743      try {
3744        fn();
3745      } catch (e) {
3746        if (head) notify();else last = undefined;
3747        throw e;
3748      }
3749    }
3750
3751    last = undefined;
3752    if (parent) parent.enter();
3753  };
3754
3755  if (isNode) {
3756    notify = function notify() {
3757      process.nextTick(flush);
3758    };
3759  } else if (Observer && !(global.navigator && global.navigator.standalone)) {
3760    var toggle = true;
3761    var node = document.createTextNode('');
3762    new Observer(flush).observe(node, {
3763      characterData: true
3764    });
3765
3766    notify = function notify() {
3767      node.data = toggle = !toggle;
3768    };
3769  } else if (Promise && Promise.resolve) {
3770    var promise = Promise.resolve(undefined);
3771
3772    notify = function notify() {
3773      promise.then(flush);
3774    };
3775  } else {
3776    notify = function notify() {
3777      macrotask.call(global, flush);
3778    };
3779  }
3780
3781  return function (fn) {
3782    var task = {
3783      fn: fn,
3784      next: undefined
3785    };
3786    if (last) last.next = task;
3787
3788    if (!head) {
3789      head = task;
3790      notify();
3791    }
3792
3793    last = task;
3794  };
3795};
3796
3797/***/ }),
3798/* 93 */
3799/***/ (function(module, exports, __w_pdfjs_require__) {
3800
3801"use strict";
3802
3803
3804var aFunction = __w_pdfjs_require__(24);
3805
3806function PromiseCapability(C) {
3807  var resolve, reject;
3808  this.promise = new C(function ($$resolve, $$reject) {
3809    if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');
3810    resolve = $$resolve;
3811    reject = $$reject;
3812  });
3813  this.resolve = aFunction(resolve);
3814  this.reject = aFunction(reject);
3815}
3816
3817module.exports.f = function (C) {
3818  return new PromiseCapability(C);
3819};
3820
3821/***/ }),
3822/* 94 */
3823/***/ (function(module, exports, __w_pdfjs_require__) {
3824
3825"use strict";
3826
3827
3828module.exports = function (exec) {
3829  try {
3830    return {
3831      e: false,
3832      v: exec()
3833    };
3834  } catch (e) {
3835    return {
3836      e: true,
3837      v: e
3838    };
3839  }
3840};
3841
3842/***/ }),
3843/* 95 */
3844/***/ (function(module, exports, __w_pdfjs_require__) {
3845
3846"use strict";
3847
3848
3849var global = __w_pdfjs_require__(8);
3850
3851var navigator = global.navigator;
3852module.exports = navigator && navigator.userAgent || '';
3853
3854/***/ }),
3855/* 96 */
3856/***/ (function(module, exports, __w_pdfjs_require__) {
3857
3858"use strict";
3859
3860
3861var anObject = __w_pdfjs_require__(12);
3862
3863var isObject = __w_pdfjs_require__(13);
3864
3865var newPromiseCapability = __w_pdfjs_require__(93);
3866
3867module.exports = function (C, x) {
3868  anObject(C);
3869  if (isObject(x) && x.constructor === C) return x;
3870  var promiseCapability = newPromiseCapability.f(C);
3871  var resolve = promiseCapability.resolve;
3872  resolve(x);
3873  return promiseCapability.promise;
3874};
3875
3876/***/ }),
3877/* 97 */
3878/***/ (function(module, exports, __w_pdfjs_require__) {
3879
3880"use strict";
3881
3882
3883var redefine = __w_pdfjs_require__(20);
3884
3885module.exports = function (target, src, safe) {
3886  for (var key in src) {
3887    redefine(target, key, src[key], safe);
3888  }
3889
3890  return target;
3891};
3892
3893/***/ }),
3894/* 98 */
3895/***/ (function(module, exports, __w_pdfjs_require__) {
3896
3897"use strict";
3898
3899
3900var global = __w_pdfjs_require__(8);
3901
3902var dP = __w_pdfjs_require__(11);
3903
3904var DESCRIPTORS = __w_pdfjs_require__(15);
3905
3906var SPECIES = __w_pdfjs_require__(30)('species');
3907
3908module.exports = function (KEY) {
3909  var C = global[KEY];
3910  if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
3911    configurable: true,
3912    get: function get() {
3913      return this;
3914    }
3915  });
3916};
3917
3918/***/ }),
3919/* 99 */
3920/***/ (function(module, exports, __w_pdfjs_require__) {
3921
3922"use strict";
3923
3924
3925var $export = __w_pdfjs_require__(7);
3926
3927var core = __w_pdfjs_require__(9);
3928
3929var global = __w_pdfjs_require__(8);
3930
3931var speciesConstructor = __w_pdfjs_require__(89);
3932
3933var promiseResolve = __w_pdfjs_require__(96);
3934
3935$export($export.P + $export.R, 'Promise', {
3936  'finally': function _finally(onFinally) {
3937    var C = speciesConstructor(this, core.Promise || global.Promise);
3938    var isFunction = typeof onFinally == 'function';
3939    return this.then(isFunction ? function (x) {
3940      return promiseResolve(C, onFinally()).then(function () {
3941        return x;
3942      });
3943    } : onFinally, isFunction ? function (e) {
3944      return promiseResolve(C, onFinally()).then(function () {
3945        throw e;
3946      });
3947    } : onFinally);
3948  }
3949});
3950
3951/***/ }),
3952/* 100 */
3953/***/ (function(module, exports, __w_pdfjs_require__) {
3954
3955"use strict";
3956
3957
vendor: 8,415 bytes, lines 3958-4311
3958var $export = __w_pdfjs_require__(7);
3959
3960var newPromiseCapability = __w_pdfjs_require__(93);
3961
3962var perform = __w_pdfjs_require__(94);
3963
3964$export($export.S, 'Promise', {
3965  'try': function _try(callbackfn) {
3966    var promiseCapability = newPromiseCapability.f(this);
3967    var result = perform(callbackfn);
3968    (result.e ? promiseCapability.reject : promiseCapability.resolve)(result.v);
3969    return promiseCapability.promise;
3970  }
3971});
3972
3973/***/ }),
3974/* 101 */
3975/***/ (function(module, exports, __w_pdfjs_require__) {
3976
3977"use strict";
3978
3979
3980__w_pdfjs_require__(82);
3981
3982__w_pdfjs_require__(83);
3983
3984__w_pdfjs_require__(102);
3985
3986__w_pdfjs_require__(114);
3987
3988__w_pdfjs_require__(116);
3989
3990module.exports = __w_pdfjs_require__(9).WeakMap;
3991
3992/***/ }),
3993/* 102 */
3994/***/ (function(module, exports, __w_pdfjs_require__) {
3995
3996"use strict";
3997
3998
3999var each = __w_pdfjs_require__(103)(0);
4000
4001var redefine = __w_pdfjs_require__(20);
4002
4003var meta = __w_pdfjs_require__(107);
4004
4005var assign = __w_pdfjs_require__(71);
4006
4007var weak = __w_pdfjs_require__(108);
4008
4009var isObject = __w_pdfjs_require__(13);
4010
4011var fails = __w_pdfjs_require__(16);
4012
4013var validate = __w_pdfjs_require__(109);
4014
4015var WEAK_MAP = 'WeakMap';
4016var getWeak = meta.getWeak;
4017var isExtensible = Object.isExtensible;
4018var uncaughtFrozenStore = weak.ufstore;
4019var tmp = {};
4020var InternalMap;
4021
4022var wrapper = function wrapper(get) {
4023  return function WeakMap() {
4024    return get(this, arguments.length > 0 ? arguments[0] : undefined);
4025  };
4026};
4027
4028var methods = {
4029  get: function get(key) {
4030    if (isObject(key)) {
4031      var data = getWeak(key);
4032      if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
4033      return data ? data[this._i] : undefined;
4034    }
4035  },
4036  set: function set(key, value) {
4037    return weak.def(validate(this, WEAK_MAP), key, value);
4038  }
4039};
4040
4041var $WeakMap = module.exports = __w_pdfjs_require__(110)(WEAK_MAP, wrapper, methods, weak, true, true);
4042
4043if (fails(function () {
4044  return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7;
4045})) {
4046  InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
4047  assign(InternalMap.prototype, methods);
4048  meta.NEED = true;
4049  each(['delete', 'has', 'get', 'set'], function (key) {
4050    var proto = $WeakMap.prototype;
4051    var method = proto[key];
4052    redefine(proto, key, function (a, b) {
4053      if (isObject(a) && !isExtensible(a)) {
4054        if (!this._f) this._f = new InternalMap();
4055
4056        var result = this._f[key](a, b);
4057
4058        return key == 'set' ? this : result;
4059      }
4060
4061      return method.call(this, a, b);
4062    });
4063  });
4064}
4065
4066/***/ }),
4067/* 103 */
4068/***/ (function(module, exports, __w_pdfjs_require__) {
4069
4070"use strict";
4071
4072
4073var ctx = __w_pdfjs_require__(23);
4074
4075var IObject = __w_pdfjs_require__(43);
4076
4077var toObject = __w_pdfjs_require__(61);
4078
4079var toLength = __w_pdfjs_require__(25);
4080
4081var asc = __w_pdfjs_require__(104);
4082
4083module.exports = function (TYPE, $create) {
4084  var IS_MAP = TYPE == 1;
4085  var IS_FILTER = TYPE == 2;
4086  var IS_SOME = TYPE == 3;
4087  var IS_EVERY = TYPE == 4;
4088  var IS_FIND_INDEX = TYPE == 6;
4089  var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
4090  var create = $create || asc;
4091  return function ($this, callbackfn, that) {
4092    var O = toObject($this);
4093    var self = IObject(O);
4094    var f = ctx(callbackfn, that, 3);
4095    var length = toLength(self.length);
4096    var index = 0;
4097    var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
4098    var val, res;
4099
4100    for (; length > index; index++) {
4101      if (NO_HOLES || index in self) {
4102        val = self[index];
4103        res = f(val, index, O);
4104
4105        if (TYPE) {
4106          if (IS_MAP) result[index] = res;else if (res) switch (TYPE) {
4107            case 3:
4108              return true;
4109
4110            case 5:
4111              return val;
4112
4113            case 6:
4114              return index;
4115
4116            case 2:
4117              result.push(val);
4118          } else if (IS_EVERY) return false;
4119        }
4120      }
4121    }
4122
4123    return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
4124  };
4125};
4126
4127/***/ }),
4128/* 104 */
4129/***/ (function(module, exports, __w_pdfjs_require__) {
4130
4131"use strict";
4132
4133
4134var speciesConstructor = __w_pdfjs_require__(105);
4135
4136module.exports = function (original, length) {
4137  return new (speciesConstructor(original))(length);
4138};
4139
4140/***/ }),
4141/* 105 */
4142/***/ (function(module, exports, __w_pdfjs_require__) {
4143
4144"use strict";
4145
4146
4147var isObject = __w_pdfjs_require__(13);
4148
4149var isArray = __w_pdfjs_require__(106);
4150
4151var SPECIES = __w_pdfjs_require__(30)('species');
4152
4153module.exports = function (original) {
4154  var C;
4155
4156  if (isArray(original)) {
4157    C = original.constructor;
4158    if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
4159
4160    if (isObject(C)) {
4161      C = C[SPECIES];
4162      if (C === null) C = undefined;
4163    }
4164  }
4165
4166  return C === undefined ? Array : C;
4167};
4168
4169/***/ }),
4170/* 106 */
4171/***/ (function(module, exports, __w_pdfjs_require__) {
4172
4173"use strict";
4174
4175
4176var cof = __w_pdfjs_require__(29);
4177
4178module.exports = Array.isArray || function isArray(arg) {
4179  return cof(arg) == 'Array';
4180};
4181
4182/***/ }),
4183/* 107 */
4184/***/ (function(module, exports, __w_pdfjs_require__) {
4185
4186"use strict";
4187
4188
4189function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4190
4191var META = __w_pdfjs_require__(22)('meta');
4192
4193var isObject = __w_pdfjs_require__(13);
4194
4195var has = __w_pdfjs_require__(21);
4196
4197var setDesc = __w_pdfjs_require__(11).f;
4198
4199var id = 0;
4200
4201var isExtensible = Object.isExtensible || function () {
4202  return true;
4203};
4204
4205var FREEZE = !__w_pdfjs_require__(16)(function () {
4206  return isExtensible(Object.preventExtensions({}));
4207});
4208
4209var setMeta = function setMeta(it) {
4210  setDesc(it, META, {
4211    value: {
4212      i: 'O' + ++id,
4213      w: {}
4214    }
4215  });
4216};
4217
4218var fastKey = function fastKey(it, create) {
4219  if (!isObject(it)) return _typeof(it) == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
4220
4221  if (!has(it, META)) {
4222    if (!isExtensible(it)) return 'F';
4223    if (!create) return 'E';
4224    setMeta(it);
4225  }
4226
4227  return it[META].i;
4228};
4229
4230var getWeak = function getWeak(it, create) {
4231  if (!has(it, META)) {
4232    if (!isExtensible(it)) return true;
4233    if (!create) return false;
4234    setMeta(it);
4235  }
4236
4237  return it[META].w;
4238};
4239
4240var onFreeze = function onFreeze(it) {
4241  if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
4242  return it;
4243};
4244
4245var meta = module.exports = {
4246  KEY: META,
4247  NEED: false,
4248  fastKey: fastKey,
4249  getWeak: getWeak,
4250  onFreeze: onFreeze
4251};
4252
4253/***/ }),
4254/* 108 */
4255/***/ (function(module, exports, __w_pdfjs_require__) {
4256
4257"use strict";
4258
4259
4260var redefineAll = __w_pdfjs_require__(97);
4261
4262var getWeak = __w_pdfjs_require__(107).getWeak;
4263
4264var anObject = __w_pdfjs_require__(12);
4265
4266var isObject = __w_pdfjs_require__(13);
4267
4268var anInstance = __w_pdfjs_require__(87);
4269
4270var forOf = __w_pdfjs_require__(88);
4271
4272var createArrayMethod = __w_pdfjs_require__(103);
4273
4274var $has = __w_pdfjs_require__(21);
4275
4276var validate = __w_pdfjs_require__(109);
4277
4278var arrayFind = createArrayMethod(5);
4279var arrayFindIndex = createArrayMethod(6);
4280var id = 0;
4281
4282var uncaughtFrozenStore = function uncaughtFrozenStore(that) {
4283  return that._l || (that._l = new UncaughtFrozenStore());
4284};
4285
4286var UncaughtFrozenStore = function UncaughtFrozenStore() {
4287  this.a = [];
4288};
4289
4290var findUncaughtFrozen = function findUncaughtFrozen(store, key) {
4291  return arrayFind(store.a, function (it) {
4292    return it[0] === key;
4293  });
4294};
4295
4296UncaughtFrozenStore.prototype = {
4297  get: function get(key) {
4298    var entry = findUncaughtFrozen(this, key);
4299    if (entry) return entry[1];
4300  },
4301  has: function has(key) {
4302    return !!findUncaughtFrozen(this, key);
4303  },
4304  set: function set(key, value) {
4305    var entry = findUncaughtFrozen(this, key);
4306    if (entry) entry[1] = value;else this.a.push([key, value]);
4307  },
4308  'delete': function _delete(key) {
4309    var index = arrayFindIndex(this.a, function (it) {
4310      return it[0] === key;
4311    });
vendor: 4,644 bytes, lines 4312-4469
4312    if (~index) this.a.splice(index, 1);
4313    return !!~index;
4314  }
4315};
4316module.exports = {
4317  getConstructor: function getConstructor(wrapper, NAME, IS_MAP, ADDER) {
4318    var C = wrapper(function (that, iterable) {
4319      anInstance(that, C, NAME, '_i');
4320      that._t = NAME;
4321      that._i = id++;
4322      that._l = undefined;
4323      if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
4324    });
4325    redefineAll(C.prototype, {
4326      'delete': function _delete(key) {
4327        if (!isObject(key)) return false;
4328        var data = getWeak(key);
4329        if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
4330        return data && $has(data, this._i) && delete data[this._i];
4331      },
4332      has: function has(key) {
4333        if (!isObject(key)) return false;
4334        var data = getWeak(key);
4335        if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
4336        return data && $has(data, this._i);
4337      }
4338    });
4339    return C;
4340  },
4341  def: function def(that, key, value) {
4342    var data = getWeak(anObject(key), true);
4343    if (data === true) uncaughtFrozenStore(that).set(key, value);else data[that._i] = value;
4344    return that;
4345  },
4346  ufstore: uncaughtFrozenStore
4347};
4348
4349/***/ }),
4350/* 109 */
4351/***/ (function(module, exports, __w_pdfjs_require__) {
4352
4353"use strict";
4354
4355
4356var isObject = __w_pdfjs_require__(13);
4357
4358module.exports = function (it, TYPE) {
4359  if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
4360  return it;
4361};
4362
4363/***/ }),
4364/* 110 */
4365/***/ (function(module, exports, __w_pdfjs_require__) {
4366
4367"use strict";
4368
4369
4370var global = __w_pdfjs_require__(8);
4371
4372var $export = __w_pdfjs_require__(7);
4373
4374var redefine = __w_pdfjs_require__(20);
4375
4376var redefineAll = __w_pdfjs_require__(97);
4377
4378var meta = __w_pdfjs_require__(107);
4379
4380var forOf = __w_pdfjs_require__(88);
4381
4382var anInstance = __w_pdfjs_require__(87);
4383
4384var isObject = __w_pdfjs_require__(13);
4385
4386var fails = __w_pdfjs_require__(16);
4387
4388var $iterDetect = __w_pdfjs_require__(68);
4389
4390var setToStringTag = __w_pdfjs_require__(59);
4391
4392var inheritIfRequired = __w_pdfjs_require__(111);
4393
4394module.exports = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
4395  var Base = global[NAME];
4396  var C = Base;
4397  var ADDER = IS_MAP ? 'set' : 'add';
4398  var proto = C && C.prototype;
4399  var O = {};
4400
4401  var fixMethod = function fixMethod(KEY) {
4402    var fn = proto[KEY];
4403    redefine(proto, KEY, KEY == 'delete' ? function (a) {
4404      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
4405    } : KEY == 'has' ? function has(a) {
4406      return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
4407    } : KEY == 'get' ? function get(a) {
4408      return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
4409    } : KEY == 'add' ? function add(a) {
4410      fn.call(this, a === 0 ? 0 : a);
4411      return this;
4412    } : function set(a, b) {
4413      fn.call(this, a === 0 ? 0 : a, b);
4414      return this;
4415    });
4416  };
4417
4418  if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function () {
4419    new C().entries().next();
4420  }))) {
4421    C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
4422    redefineAll(C.prototype, methods);
4423    meta.NEED = true;
4424  } else {
4425    var instance = new C();
4426    var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
4427    var THROWS_ON_PRIMITIVES = fails(function () {
4428      instance.has(1);
4429    });
4430    var ACCEPT_ITERABLES = $iterDetect(function (iter) {
4431      new C(iter);
4432    });
4433    var BUGGY_ZERO = !IS_WEAK && fails(function () {
4434      var $instance = new C();
4435      var index = 5;
4436
4437      while (index--) {
4438        $instance[ADDER](index, index);
4439      }
4440
4441      return !$instance.has(-0);
4442    });
4443
4444    if (!ACCEPT_ITERABLES) {
4445      C = wrapper(function (target, iterable) {
4446        anInstance(target, C, NAME);
4447        var that = inheritIfRequired(new Base(), target, C);
4448        if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
4449        return that;
4450      });
4451      C.prototype = proto;
4452      proto.constructor = C;
4453    }
4454
4455    if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {
4456      fixMethod('delete');
4457      fixMethod('has');
4458      IS_MAP && fixMethod('get');
4459    }
4460
4461    if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);
4462    if (IS_WEAK && proto.clear) delete proto.clear;
4463  }
4464
4465  setToStringTag(C, NAME);
4466  O[NAME] = C;
4467  $export($export.G + $export.W + $export.F * (C != Base), O);
4468  if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
4469  return C;
vendor: 5,045 bytes, lines 4470-4718
4470};
4471
4472/***/ }),
4473/* 111 */
4474/***/ (function(module, exports, __w_pdfjs_require__) {
4475
4476"use strict";
4477
4478
4479var isObject = __w_pdfjs_require__(13);
4480
4481var setPrototypeOf = __w_pdfjs_require__(112).set;
4482
4483module.exports = function (that, target, C) {
4484  var S = target.constructor;
4485  var P;
4486
4487  if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
4488    setPrototypeOf(that, P);
4489  }
4490
4491  return that;
4492};
4493
4494/***/ }),
4495/* 112 */
4496/***/ (function(module, exports, __w_pdfjs_require__) {
4497
4498"use strict";
4499
4500
4501var isObject = __w_pdfjs_require__(13);
4502
4503var anObject = __w_pdfjs_require__(12);
4504
4505var check = function check(O, proto) {
4506  anObject(O);
4507  if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
4508};
4509
4510module.exports = {
4511  set: Object.setPrototypeOf || ('__proto__' in {} ? function (test, buggy, set) {
4512    try {
4513      set = __w_pdfjs_require__(23)(Function.call, __w_pdfjs_require__(113).f(Object.prototype, '__proto__').set, 2);
4514      set(test, []);
4515      buggy = !(test instanceof Array);
4516    } catch (e) {
4517      buggy = true;
4518    }
4519
4520    return function setPrototypeOf(O, proto) {
4521      check(O, proto);
4522      if (buggy) O.__proto__ = proto;else set(O, proto);
4523      return O;
4524    };
4525  }({}, false) : undefined),
4526  check: check
4527};
4528
4529/***/ }),
4530/* 113 */
4531/***/ (function(module, exports, __w_pdfjs_require__) {
4532
4533"use strict";
4534
4535
4536var pIE = __w_pdfjs_require__(73);
4537
4538var createDesc = __w_pdfjs_require__(19);
4539
4540var toIObject = __w_pdfjs_require__(42);
4541
4542var toPrimitive = __w_pdfjs_require__(18);
4543
4544var has = __w_pdfjs_require__(21);
4545
4546var IE8_DOM_DEFINE = __w_pdfjs_require__(14);
4547
4548var gOPD = Object.getOwnPropertyDescriptor;
4549exports.f = __w_pdfjs_require__(15) ? gOPD : function getOwnPropertyDescriptor(O, P) {
4550  O = toIObject(O);
4551  P = toPrimitive(P, true);
4552  if (IE8_DOM_DEFINE) try {
4553    return gOPD(O, P);
4554  } catch (e) {}
4555  if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]);
4556};
4557
4558/***/ }),
4559/* 114 */
4560/***/ (function(module, exports, __w_pdfjs_require__) {
4561
4562"use strict";
4563
4564
4565__w_pdfjs_require__(115)('WeakMap');
4566
4567/***/ }),
4568/* 115 */
4569/***/ (function(module, exports, __w_pdfjs_require__) {
4570
4571"use strict";
4572
4573
4574var $export = __w_pdfjs_require__(7);
4575
4576module.exports = function (COLLECTION) {
4577  $export($export.S, COLLECTION, {
4578    of: function of() {
4579      var length = arguments.length;
4580      var A = new Array(length);
4581
4582      while (length--) {
4583        A[length] = arguments[length];
4584      }
4585
4586      return new this(A);
4587    }
4588  });
4589};
4590
4591/***/ }),
4592/* 116 */
4593/***/ (function(module, exports, __w_pdfjs_require__) {
4594
4595"use strict";
4596
4597
4598__w_pdfjs_require__(117)('WeakMap');
4599
4600/***/ }),
4601/* 117 */
4602/***/ (function(module, exports, __w_pdfjs_require__) {
4603
4604"use strict";
4605
4606
4607var $export = __w_pdfjs_require__(7);
4608
4609var aFunction = __w_pdfjs_require__(24);
4610
4611var ctx = __w_pdfjs_require__(23);
4612
4613var forOf = __w_pdfjs_require__(88);
4614
4615module.exports = function (COLLECTION) {
4616  $export($export.S, COLLECTION, {
4617    from: function from(source) {
4618      var mapFn = arguments[1];
4619      var mapping, A, n, cb;
4620      aFunction(this);
4621      mapping = mapFn !== undefined;
4622      if (mapping) aFunction(mapFn);
4623      if (source == undefined) return new this();
4624      A = [];
4625
4626      if (mapping) {
4627        n = 0;
4628        cb = ctx(mapFn, arguments[2], 2);
4629        forOf(source, false, function (nextItem) {
4630          A.push(cb(nextItem, n++));
4631        });
4632      } else {
4633        forOf(source, false, A.push, A);
4634      }
4635
4636      return new this(A);
4637    }
4638  });
4639};
4640
4641/***/ }),
4642/* 118 */
4643/***/ (function(module, exports, __w_pdfjs_require__) {
4644
4645"use strict";
4646
4647
4648__w_pdfjs_require__(82);
4649
4650__w_pdfjs_require__(83);
4651
4652__w_pdfjs_require__(119);
4653
4654__w_pdfjs_require__(120);
4655
4656__w_pdfjs_require__(121);
4657
4658module.exports = __w_pdfjs_require__(9).WeakSet;
4659
4660/***/ }),
4661/* 119 */
4662/***/ (function(module, exports, __w_pdfjs_require__) {
4663
4664"use strict";
4665
4666
4667var weak = __w_pdfjs_require__(108);
4668
4669var validate = __w_pdfjs_require__(109);
4670
4671var WEAK_SET = 'WeakSet';
4672
4673__w_pdfjs_require__(110)(WEAK_SET, function (get) {
4674  return function WeakSet() {
4675    return get(this, arguments.length > 0 ? arguments[0] : undefined);
4676  };
4677}, {
4678  add: function add(value) {
4679    return weak.def(validate(this, WEAK_SET), value, true);
4680  }
4681}, weak, false, true);
4682
4683/***/ }),
4684/* 120 */
4685/***/ (function(module, exports, __w_pdfjs_require__) {
4686
4687"use strict";
4688
4689
4690__w_pdfjs_require__(115)('WeakSet');
4691
4692/***/ }),
4693/* 121 */
4694/***/ (function(module, exports, __w_pdfjs_require__) {
4695
4696"use strict";
4697
4698
4699__w_pdfjs_require__(117)('WeakSet');
4700
4701/***/ }),
4702/* 122 */
4703/***/ (function(module, exports, __w_pdfjs_require__) {
4704
4705"use strict";
4706
4707
4708__w_pdfjs_require__(123);
4709
4710module.exports = __w_pdfjs_require__(9).String.codePointAt;
4711
4712/***/ }),
4713/* 123 */
4714/***/ (function(module, exports, __w_pdfjs_require__) {
4715
4716"use strict";
4717
4718
4719var $export = __w_pdfjs_require__(7);
4720
4721var $at = __w_pdfjs_require__(48)(false);
4722
4723$export($export.P, 'String', {
4724  codePointAt: function codePointAt(pos) {
4725    return $at(this, pos);
4726  }
4727});
4728
4729/***/ }),
4730/* 124 */
4731/***/ (function(module, exports, __w_pdfjs_require__) {
4732
4733"use strict";
4734
4735
4736__w_pdfjs_require__(125);
4737
4738module.exports = __w_pdfjs_require__(9).String.fromCodePoint;
4739
4740/***/ }),
4741/* 125 */
4742/***/ (function(module, exports, __w_pdfjs_require__) {
4743
4744"use strict";
4745
4746
4747var $export = __w_pdfjs_require__(7);
4748
4749var toAbsoluteIndex = __w_pdfjs_require__(44);
4750
4751var fromCharCode = String.fromCharCode;
4752var $fromCodePoint = String.fromCodePoint;
4753$export($export.S + $export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
4754  fromCodePoint: function fromCodePoint(x) {
4755    var res = [];
4756    var aLen = arguments.length;
4757    var i = 0;
4758    var code;
4759
4760    while (aLen > i) {
4761      code = +arguments[i++];
4762      if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
4763      res.push(code < 0x10000 ? fromCharCode(code) : fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00));
4764    }
4765
4766    return res.join('');
4767  }
4768});
4769
4770/***/ }),
4771/* 126 */
4772/***/ (function(module, exports, __w_pdfjs_require__) {
4773
4774"use strict";
4775
4776
4777__w_pdfjs_require__(127);
4778
4779__w_pdfjs_require__(82);
4780
4781module.exports = __w_pdfjs_require__(9).Symbol;
4782
4783/***/ }),
4784/* 127 */
4785/***/ (function(module, exports, __w_pdfjs_require__) {
4786
4787"use strict";
4788
4789
4790function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4791
4792var global = __w_pdfjs_require__(8);
4793
4794var has = __w_pdfjs_require__(21);
4795
4796var DESCRIPTORS = __w_pdfjs_require__(15);
4797
4798var $export = __w_pdfjs_require__(7);
4799
4800var redefine = __w_pdfjs_require__(20);
4801
4802var META = __w_pdfjs_require__(107).KEY;
4803
4804var $fails = __w_pdfjs_require__(16);
4805
4806var shared = __w_pdfjs_require__(31);
4807
4808var setToStringTag = __w_pdfjs_require__(59);
4809
4810var uid = __w_pdfjs_require__(22);
4811
4812var wks = __w_pdfjs_require__(30);
4813
4814var wksExt = __w_pdfjs_require__(128);
4815
4816var wksDefine = __w_pdfjs_require__(129);
4817
4818var enumKeys = __w_pdfjs_require__(130);
4819
4820var isArray = __w_pdfjs_require__(106);
4821
4822var anObject = __w_pdfjs_require__(12);
4823
4824var isObject = __w_pdfjs_require__(13);
4825
4826var toIObject = __w_pdfjs_require__(42);
4827
4828var toPrimitive = __w_pdfjs_require__(18);
4829
4830var createDesc = __w_pdfjs_require__(19);
4831
4832var _create = __w_pdfjs_require__(52);
4833
4834var gOPNExt = __w_pdfjs_require__(131);
4835
4836var $GOPD = __w_pdfjs_require__(113);
4837
4838var $DP = __w_pdfjs_require__(11);
4839
4840var $keys = __w_pdfjs_require__(54);
4841
4842var gOPD = $GOPD.f;
4843var dP = $DP.f;
4844var gOPN = gOPNExt.f;
4845var $Symbol = global.Symbol;
4846var $JSON = global.JSON;
4847
4848var _stringify = $JSON && $JSON.stringify;
4849
4850var PROTOTYPE = 'prototype';
4851var HIDDEN = wks('_hidden');
4852var TO_PRIMITIVE = wks('toPrimitive');
4853var isEnum = {}.propertyIsEnumerable;
4854var SymbolRegistry = shared('symbol-registry');
4855var AllSymbols = shared('symbols');
4856var OPSymbols = shared('op-symbols');
4857var ObjectProto = Object[PROTOTYPE];
4858var USE_NATIVE = typeof $Symbol == 'function';
4859var QObject = global.QObject;
4860var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
4861var setSymbolDesc = DESCRIPTORS && $fails(function () {
4862  return _create(dP({}, 'a', {
4863    get: function get() {
4864      return dP(this, 'a', {
4865        value: 7
4866      }).a;
4867    }
4868  })).a != 7;
4869}) ? function (it, key, D) {
4870  var protoDesc = gOPD(ObjectProto, key);
4871  if (protoDesc) delete ObjectProto[key];
4872  dP(it, key, D);
4873  if (protoDesc && it !== ObjectProto) dP(ObjectProto, key, protoDesc);
4874} : dP;
4875
4876var wrap = function wrap(tag) {
4877  var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
4878
4879  sym._k = tag;
4880  return sym;
4881};
4882
4883var isSymbol = USE_NATIVE && _typeof($Symbol.iterator) == 'symbol' ? function (it) {
4884  return _typeof(it) == 'symbol';
4885} : function (it) {
4886  return it instanceof $Symbol;
4887};
4888
4889var $defineProperty = function defineProperty(it, key, D) {
4890  if (it === ObjectProto) $defineProperty(OPSymbols, key, D);
4891  anObject(it);
4892  key = toPrimitive(key, true);
4893  anObject(D);
4894
4895  if (has(AllSymbols, key)) {
4896    if (!D.enumerable) {
4897      if (!has(it, HIDDEN)) dP(it, HIDDEN, createDesc(1, {}));
4898      it[HIDDEN][key] = true;
4899    } else {
4900      if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
4901      D = _create(D, {
4902        enumerable: createDesc(0, false)
4903      });
4904    }
4905
4906    return setSymbolDesc(it, key, D);
4907  }
4908
4909  return dP(it, key, D);
4910};
4911
4912var $defineProperties = function defineProperties(it, P) {
4913  anObject(it);
vendor: 4,221 bytes, lines 4914-5047
4914  var keys = enumKeys(P = toIObject(P));
4915  var i = 0;
4916  var l = keys.length;
4917  var key;
4918
4919  while (l > i) {
4920    $defineProperty(it, key = keys[i++], P[key]);
4921  }
4922
4923  return it;
4924};
4925
4926var $create = function create(it, P) {
4927  return P === undefined ? _create(it) : $defineProperties(_create(it), P);
4928};
4929
4930var $propertyIsEnumerable = function propertyIsEnumerable(key) {
4931  var E = isEnum.call(this, key = toPrimitive(key, true));
4932  if (this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
4933  return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
4934};
4935
4936var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
4937  it = toIObject(it);
4938  key = toPrimitive(key, true);
4939  if (it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key)) return;
4940  var D = gOPD(it, key);
4941  if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
4942  return D;
4943};
4944
4945var $getOwnPropertyNames = function getOwnPropertyNames(it) {
4946  var names = gOPN(toIObject(it));
4947  var result = [];
4948  var i = 0;
4949  var key;
4950
4951  while (names.length > i) {
4952    if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
4953  }
4954
4955  return result;
4956};
4957
4958var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
4959  var IS_OP = it === ObjectProto;
4960  var names = gOPN(IS_OP ? OPSymbols : toIObject(it));
4961  var result = [];
4962  var i = 0;
4963  var key;
4964
4965  while (names.length > i) {
4966    if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true)) result.push(AllSymbols[key]);
4967  }
4968
4969  return result;
4970};
4971
4972if (!USE_NATIVE) {
4973  $Symbol = function _Symbol() {
4974    if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
4975    var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
4976
4977    var $set = function $set(value) {
4978      if (this === ObjectProto) $set.call(OPSymbols, value);
4979      if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
4980      setSymbolDesc(this, tag, createDesc(1, value));
4981    };
4982
4983    if (DESCRIPTORS && setter) setSymbolDesc(ObjectProto, tag, {
4984      configurable: true,
4985      set: $set
4986    });
4987    return wrap(tag);
4988  };
4989
4990  redefine($Symbol[PROTOTYPE], 'toString', function toString() {
4991    return this._k;
4992  });
4993  $GOPD.f = $getOwnPropertyDescriptor;
4994  $DP.f = $defineProperty;
4995  __w_pdfjs_require__(132).f = gOPNExt.f = $getOwnPropertyNames;
4996  __w_pdfjs_require__(73).f = $propertyIsEnumerable;
4997  __w_pdfjs_require__(72).f = $getOwnPropertySymbols;
4998
4999  if (DESCRIPTORS && !__w_pdfjs_require__(32)) {
5000    redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
5001  }
5002
5003  wksExt.f = function (name) {
5004    return wrap(wks(name));
5005  };
5006}
5007
5008$export($export.G + $export.W + $export.F * !USE_NATIVE, {
5009  Symbol: $Symbol
5010});
5011
5012for (var es6Symbols = 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'.split(','), j = 0; es6Symbols.length > j;) {
5013  wks(es6Symbols[j++]);
5014}
5015
5016for (var wellKnownSymbols = $keys(wks.store), k = 0; wellKnownSymbols.length > k;) {
5017  wksDefine(wellKnownSymbols[k++]);
5018}
5019
5020$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
5021  'for': function _for(key) {
5022    return has(SymbolRegistry, key += '') ? SymbolRegistry[key] : SymbolRegistry[key] = $Symbol(key);
5023  },
5024  keyFor: function keyFor(sym) {
5025    if (!isSymbol(sym)) throw TypeError(sym + ' is not a symbol!');
5026
5027    for (var key in SymbolRegistry) {
5028      if (SymbolRegistry[key] === sym) return key;
5029    }
5030  },
5031  useSetter: function useSetter() {
5032    setter = true;
5033  },
5034  useSimple: function useSimple() {
5035    setter = false;
5036  }
5037});
5038$export($export.S + $export.F * !USE_NATIVE, 'Object', {
5039  create: $create,
5040  defineProperty: $defineProperty,
5041  defineProperties: $defineProperties,
5042  getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
5043  getOwnPropertyNames: $getOwnPropertyNames,
5044  getOwnPropertySymbols: $getOwnPropertySymbols
5045});
5046$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function () {
5047  var S = $Symbol();
5048  return _stringify([S]) != '[null]' || _stringify({
5049    a: S
5050  }) != '{}' || _stringify(Object(S)) != '{}';
5051})), 'JSON', {
5052  stringify: function stringify(it) {
5053    var args = [it];
5054    var i = 1;
5055    var replacer, $replacer;
5056
5057    while (arguments.length > i) {
5058      args.push(arguments[i++]);
5059    }
5060
5061    $replacer = replacer = args[1];
5062    if (!isObject(replacer) && it === undefined || isSymbol(it)) return;
5063    if (!isArray(replacer)) replacer = function replacer(key, value) {
5064      if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
5065      if (!isSymbol(value)) return value;
5066    };
5067    args[1] = replacer;
5068    return _stringify.apply($JSON, args);
5069  }
5070});
5071$Symbol[PROTOTYPE][TO_PRIMITIVE] || __w_pdfjs_require__(10)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
5072setToStringTag($Symbol, 'Symbol');
5073setToStringTag(Math, 'Math', true);
5074setToStringTag(global.JSON, 'JSON', true);
5075
5076/***/ }),
5077/* 128 */
5078/***/ (function(module, exports, __w_pdfjs_require__) {
5079
5080"use strict";
5081
5082
5083exports.f = __w_pdfjs_require__(30);
5084
5085/***/ }),
5086/* 129 */
5087/***/ (function(module, exports, __w_pdfjs_require__) {
5088
5089"use strict";
5090
5091
5092var global = __w_pdfjs_require__(8);
5093
5094var core = __w_pdfjs_require__(9);
5095
5096var LIBRARY = __w_pdfjs_require__(32);
5097
5098var wksExt = __w_pdfjs_require__(128);
5099
5100var defineProperty = __w_pdfjs_require__(11).f;
5101
5102module.exports = function (name) {
5103  var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
5104  if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, {
5105    value: wksExt.f(name)
5106  });
5107};
5108
5109/***/ }),
5110/* 130 */
5111/***/ (function(module, exports, __w_pdfjs_require__) {
5112
5113"use strict";
5114
5115
5116var getKeys = __w_pdfjs_require__(54);
5117
5118var gOPS = __w_pdfjs_require__(72);
5119
5120var pIE = __w_pdfjs_require__(73);
5121
5122module.exports = function (it) {
5123  var result = getKeys(it);
5124  var getSymbols = gOPS.f;
5125
5126  if (getSymbols) {
5127    var symbols = getSymbols(it);
5128    var isEnum = pIE.f;
5129    var i = 0;
5130    var key;
5131
5132    while (symbols.length > i) {
5133      if (isEnum.call(it, key = symbols[i++])) result.push(key);
5134    }
5135  }
5136
5137  return result;
5138};
5139
5140/***/ }),
5141/* 131 */
5142/***/ (function(module, exports, __w_pdfjs_require__) {
5143
5144"use strict";
5145
5146
5147function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
5148
5149var toIObject = __w_pdfjs_require__(42);
5150
5151var gOPN = __w_pdfjs_require__(132).f;
5152
5153var toString = {}.toString;
5154var windowNames = (typeof window === "undefined" ? "undefined" : _typeof(window)) == 'object' && window && Object.getOwnPropertyNames ? Object.getOwnPropertyNames(window) : [];
5155
5156var getWindowNames = function getWindowNames(it) {
5157  try {
5158    return gOPN(it);
5159  } catch (e) {
5160    return windowNames.slice();
5161  }
5162};
5163
5164module.exports.f = function getOwnPropertyNames(it) {
5165  return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
5166};
5167
5168/***/ }),
5169/* 132 */
5170/***/ (function(module, exports, __w_pdfjs_require__) {
5171
5172"use strict";
5173
5174
5175var $keys = __w_pdfjs_require__(55);
5176
5177var hiddenKeys = __w_pdfjs_require__(57).concat('length', 'prototype');
5178
5179exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
5180  return $keys(O, hiddenKeys);
5181};
5182
5183/***/ }),
5184/* 133 */
5185/***/ (function(module, exports, __w_pdfjs_require__) {
5186
5187"use strict";
5188
5189
5190__w_pdfjs_require__(134);
5191
5192module.exports = __w_pdfjs_require__(9).String.padStart;
5193
5194/***/ }),
5195/* 134 */
5196/***/ (function(module, exports, __w_pdfjs_require__) {
5197
5198"use strict";
5199
5200
5201var $export = __w_pdfjs_require__(7);
5202
5203var $pad = __w_pdfjs_require__(135);
5204
5205var userAgent = __w_pdfjs_require__(95);
5206
5207$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
5208  padStart: function padStart(maxLength) {
5209    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
5210  }
5211});
5212
5213/***/ }),
5214/* 135 */
5215/***/ (function(module, exports, __w_pdfjs_require__) {
5216
5217"use strict";
5218
5219
5220var toLength = __w_pdfjs_require__(25);
5221
5222var repeat = __w_pdfjs_require__(136);
5223
5224var defined = __w_pdfjs_require__(33);
5225
5226module.exports = function (that, maxLength, fillString, left) {
5227  var S = String(defined(that));
5228  var stringLength = S.length;
5229  var fillStr = fillString === undefined ? ' ' : String(fillString);
5230  var intMaxLength = toLength(maxLength);
5231  if (intMaxLength <= stringLength || fillStr == '') return S;
5232  var fillLen = intMaxLength - stringLength;
5233  var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
5234  if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
5235  return left ? stringFiller + S : S + stringFiller;
5236};
5237
5238/***/ }),
5239/* 136 */
5240/***/ (function(module, exports, __w_pdfjs_require__) {
5241
5242"use strict";
5243
5244
5245var toInteger = __w_pdfjs_require__(26);
5246
5247var defined = __w_pdfjs_require__(33);
5248
5249module.exports = function repeat(count) {
5250  var str = String(defined(this));
5251  var res = '';
5252  var n = toInteger(count);
5253  if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
5254
5255  for (; n > 0; (n >>>= 1) && (str += str)) {
5256    if (n & 1) res += str;
5257  }
5258
5259  return res;
5260};
5261
5262/***/ }),
5263/* 137 */
5264/***/ (function(module, exports, __w_pdfjs_require__) {
5265
5266"use strict";
5267
5268
5269__w_pdfjs_require__(138);
5270
5271module.exports = __w_pdfjs_require__(9).String.padEnd;
5272
5273/***/ }),
5274/* 138 */
5275/***/ (function(module, exports, __w_pdfjs_require__) {
5276
5277"use strict";
5278
5279
5280var $export = __w_pdfjs_require__(7);
5281
5282var $pad = __w_pdfjs_require__(135);
5283
5284var userAgent = __w_pdfjs_require__(95);
5285
5286$export($export.P + $export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
5287  padEnd: function padEnd(maxLength) {
5288    return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
5289  }
5290});
5291
5292/***/ }),
5293/* 139 */
5294/***/ (function(module, exports, __w_pdfjs_require__) {
5295
5296"use strict";
5297
5298
5299__w_pdfjs_require__(140);
5300
5301module.exports = __w_pdfjs_require__(9).Object.values;
5302
5303/***/ }),
5304/* 140 */
5305/***/ (function(module, exports, __w_pdfjs_require__) {
5306
5307"use strict";
5308
5309
5310var $export = __w_pdfjs_require__(7);
5311
5312var $values = __w_pdfjs_require__(141)(false);
5313
5314$export($export.S, 'Object', {
5315  values: function values(it) {
5316    return $values(it);
5317  }
5318});
5319
5320/***/ }),
5321/* 141 */
5322/***/ (function(module, exports, __w_pdfjs_require__) {
5323
5324"use strict";
5325
5326
5327var getKeys = __w_pdfjs_require__(54);
5328
5329var toIObject = __w_pdfjs_require__(42);
5330
5331var isEnum = __w_pdfjs_require__(73).f;
5332
5333module.exports = function (isEntries) {
5334  return function (it) {
5335    var O = toIObject(it);
5336    var keys = getKeys(O);
5337    var length = keys.length;
5338    var i = 0;
5339    var result = [];
5340    var key;
5341
5342    while (length > i) {
5343      if (isEnum.call(O, key = keys[i++])) {
5344        result.push(isEntries ? [key, O[key]] : O[key]);
5345      }
5346    }
5347
5348    return result;
5349  };
5350};
5351
5352/***/ }),
5353/* 142 */
5354/***/ (function(module, exports, __w_pdfjs_require__) {
5355
5356"use strict";
5357
5358
5359{
5360  var isReadableStreamSupported = false;
5361
5362  if (typeof ReadableStream !== 'undefined') {
5363    try {
5364      new ReadableStream({
5365        start: function start(controller) {
5366          controller.close();
5367        }
5368      });
5369      isReadableStreamSupported = true;
5370    } catch (e) {}
5371  }
5372
5373  if (isReadableStreamSupported) {
5374    exports.ReadableStream = ReadableStream;
5375  } else {
5376    exports.ReadableStream = __w_pdfjs_require__(143).ReadableStream;
5377  }
5378}
5379
5380/***/ }),
5381/* 143 */
5382/***/ (function(module, exports, __w_pdfjs_require__) {
5383
5384"use strict";
5385
5386
5387function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); }
5388
5389(function (e, a) {
5390  for (var i in a) {
5391    e[i] = a[i];
5392  }
5393})(exports, function (modules) {
5394  var installedModules = {};
5395
5396  function __w_pdfjs_require__(moduleId) {
5397    if (installedModules[moduleId]) return installedModules[moduleId].exports;
5398    var module = installedModules[moduleId] = {
5399      i: moduleId,
5400      l: false,
5401      exports: {}
5402    };
5403    modules[moduleId].call(module.exports, module, module.exports, __w_pdfjs_require__);
5404    module.l = true;
5405    return module.exports;
5406  }
5407
5408  __w_pdfjs_require__.m = modules;
5409  __w_pdfjs_require__.c = installedModules;
5410
5411  __w_pdfjs_require__.i = function (value) {
5412    return value;
5413  };
5414
5415  __w_pdfjs_require__.d = function (exports, name, getter) {
5416    if (!__w_pdfjs_require__.o(exports, name)) {
5417      Object.defineProperty(exports, name, {
5418        configurable: false,
5419        enumerable: true,
5420        get: getter
5421      });
5422    }
5423  };
5424
5425  __w_pdfjs_require__.n = function (module) {
5426    var getter = module && module.__esModule ? function getDefault() {
5427      return module['default'];
5428    } : function getModuleExports() {
5429      return module;
5430    };
5431
5432    __w_pdfjs_require__.d(getter, 'a', getter);
5433
5434    return getter;
5435  };
5436
5437  __w_pdfjs_require__.o = function (object, property) {
5438    return Object.prototype.hasOwnProperty.call(object, property);
5439  };
5440
5441  __w_pdfjs_require__.p = "";
5442  return __w_pdfjs_require__(__w_pdfjs_require__.s = 7);
5443}([function (module, exports, __w_pdfjs_require__) {
5444  "use strict";
5445
5446  var _typeof = typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol" ? function (obj) {
5447    return _typeof2(obj);
5448  } : function (obj) {
5449    return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj);
5450  };
5451
5452  var _require = __w_pdfjs_require__(1),
5453      assert = _require.assert;
5454
5455  function IsPropertyKey(argument) {
5456    return typeof argument === 'string' || (typeof argument === 'undefined' ? 'undefined' : _typeof(argument)) === 'symbol';
5457  }
5458
5459  exports.typeIsObject = function (x) {
5460    return (typeof x === 'undefined' ? 'undefined' : _typeof(x)) === 'object' && x !== null || typeof x === 'function';
5461  };
5462
5463  exports.createDataProperty = function (o, p, v) {
5464    assert(exports.typeIsObject(o));
5465    Object.defineProperty(o, p, {
5466      value: v,
5467      writable: true,
5468      enumerable: true,
5469      configurable: true
5470    });
5471  };
5472
5473  exports.createArrayFromList = function (elements) {
5474    return elements.slice();
5475  };
5476
5477  exports.ArrayBufferCopy = function (dest, destOffset, src, srcOffset, n) {
5478    new Uint8Array(dest).set(new Uint8Array(src, srcOffset, n), destOffset);
5479  };
5480
5481  exports.CreateIterResultObject = function (value, done) {
5482    assert(typeof done === 'boolean');
5483    var obj = {};
5484    Object.defineProperty(obj, 'value', {
5485      value: value,
5486      enumerable: true,
5487      writable: true,
5488      configurable: true
5489    });
5490    Object.defineProperty(obj, 'done', {
5491      value: done,
5492      enumerable: true,
5493      writable: true,
5494      configurable: true
5495    });
5496    return obj;
5497  };
5498
5499  exports.IsFiniteNonNegativeNumber = function (v) {
5500    if (Number.isNaN(v)) {
5501      return false;
5502    }
5503
5504    if (v === Infinity) {
5505      return false;
5506    }
5507
5508    if (v < 0) {
5509      return false;
5510    }
5511
5512    return true;
5513  };
5514
5515  function Call(F, V, args) {
5516    if (typeof F !== 'function') {
5517      throw new TypeError('Argument is not a function');
5518    }
5519
5520    return Function.prototype.apply.call(F, V, args);
5521  }
5522
5523  exports.InvokeOrNoop = function (O, P, args) {
5524    assert(O !== undefined);
5525    assert(IsPropertyKey(P));
5526    assert(Array.isArray(args));
5527    var method = O[P];
5528
5529    if (method === undefined) {
5530      return undefined;
5531    }
5532
5533    return Call(method, O, args);
5534  };
5535
5536  exports.PromiseInvokeOrNoop = function (O, P, args) {
5537    assert(O !== undefined);
5538    assert(IsPropertyKey(P));
5539    assert(Array.isArray(args));
5540
5541    try {
5542      return Promise.resolve(exports.InvokeOrNoop(O, P, args));
5543    } catch (returnValueE) {
5544      return Promise.reject(returnValueE);
5545    }
5546  };
5547
5548  exports.PromiseInvokeOrPerformFallback = function (O, P, args, F, argsF) {
5549    assert(O !== undefined);
5550    assert(IsPropertyKey(P));
5551    assert(Array.isArray(args));
5552    assert(Array.isArray(argsF));
5553    var method = void 0;
5554
5555    try {
5556      method = O[P];
5557    } catch (methodE) {
5558      return Promise.reject(methodE);
5559    }
5560
5561    if (method === undefined) {
5562      return F.apply(null, argsF);
5563    }
5564
5565    try {
5566      return Promise.resolve(Call(method, O, args));
5567    } catch (e) {
5568      return Promise.reject(e);
5569    }
5570  };
5571
5572  exports.TransferArrayBuffer = function (O) {
5573    return O.slice();
5574  };
5575
5576  exports.ValidateAndNormalizeHighWaterMark = function (highWaterMark) {
5577    highWaterMark = Number(highWaterMark);
5578
5579    if (Number.isNaN(highWaterMark) || highWaterMark < 0) {
5580      throw new RangeError('highWaterMark property of a queuing strategy must be non-negative and non-NaN');
5581    }
5582
5583    return highWaterMark;
5584  };
5585
5586  exports.ValidateAndNormalizeQueuingStrategy = function (size, highWaterMark) {
5587    if (size !== undefined && typeof size !== 'function') {
5588      throw new TypeError('size property of a queuing strategy must be a function');
5589    }
5590
5591    highWaterMark = exports.ValidateAndNormalizeHighWaterMark(highWaterMark);
5592    return {
5593      size: size,
5594      highWaterMark: highWaterMark
5595    };
5596  };
5597}, function (module, exports, __w_pdfjs_require__) {
5598  "use strict";
5599
5600  function rethrowAssertionErrorRejection(e) {
5601    if (e && e.constructor === AssertionError) {
5602      setTimeout(function () {
5603        throw e;
5604      }, 0);
5605    }
5606  }
5607
5608  function AssertionError(message) {
5609    this.name = 'AssertionError';
5610    this.message = message || '';
5611    this.stack = new Error().stack;
5612  }
5613
5614  AssertionError.prototype = Object.create(Error.prototype);
5615  AssertionError.prototype.constructor = AssertionError;
5616
5617  function assert(value, message) {
5618    if (!value) {
5619      throw new AssertionError(message);
5620    }
5621  }
5622
5623  module.exports = {
5624    rethrowAssertionErrorRejection: rethrowAssertionErrorRejection,
5625    AssertionError: AssertionError,
5626    assert: assert
5627  };
5628}, function (module, exports, __w_pdfjs_require__) {
5629  "use strict";
5630
5631  var _createClass = function () {
5632    function defineProperties(target, props) {
5633      for (var i = 0; i < props.length; i++) {
5634        var descriptor = props[i];
5635        descriptor.enumerable = descriptor.enumerable || false;
5636        descriptor.configurable = true;
5637        if ("value" in descriptor) descriptor.writable = true;
5638        Object.defineProperty(target, descriptor.key, descriptor);
5639      }
5640    }
5641
5642    return function (Constructor, protoProps, staticProps) {
5643      if (protoProps) defineProperties(Constructor.prototype, protoProps);
5644      if (staticProps) defineProperties(Constructor, staticProps);
5645      return Constructor;
5646    };
5647  }();
5648
5649  function _classCallCheck(instance, Constructor) {
5650    if (!(instance instanceof Constructor)) {
5651      throw new TypeError("Cannot call a class as a function");
5652    }
5653  }
5654
5655  var _require = __w_pdfjs_require__(0),
5656      InvokeOrNoop = _require.InvokeOrNoop,
5657      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
5658      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
5659      typeIsObject = _require.typeIsObject;
5660
5661  var _require2 = __w_pdfjs_require__(1),
5662      assert = _require2.assert,
5663      rethrowAssertionErrorRejection = _require2.rethrowAssertionErrorRejection;
5664
5665  var _require3 = __w_pdfjs_require__(3),
5666      DequeueValue = _require3.DequeueValue,
5667      EnqueueValueWithSize = _require3.EnqueueValueWithSize,
5668      PeekQueueValue = _require3.PeekQueueValue,
5669      ResetQueue = _require3.ResetQueue;
5670
5671  var WritableStream = function () {
5672    function WritableStream() {
5673      var underlyingSink = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
5674
5675      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
5676          size = _ref.size,
5677          _ref$highWaterMark = _ref.highWaterMark,
5678          highWaterMark = _ref$highWaterMark === undefined ? 1 : _ref$highWaterMark;
5679
5680      _classCallCheck(this, WritableStream);
5681
5682      this._state = 'writable';
5683      this._storedError = undefined;
5684      this._writer = undefined;
5685      this._writableStreamController = undefined;
5686      this._writeRequests = [];
5687      this._inFlightWriteRequest = undefined;
5688      this._closeRequest = undefined;
5689      this._inFlightCloseRequest = undefined;
5690      this._pendingAbortRequest = undefined;
5691      this._backpressure = false;
5692      var type = underlyingSink.type;
5693
5694      if (type !== undefined) {
5695        throw new RangeError('Invalid type is specified');
5696      }
5697
5698      this._writableStreamController = new WritableStreamDefaultController(this, underlyingSink, size, highWaterMark);
5699
5700      this._writableStreamController.__startSteps();
5701    }
5702
5703    _createClass(WritableStream, [{
5704      key: 'abort',
5705      value: function abort(reason) {
5706        if (IsWritableStream(this) === false) {
5707          return Promise.reject(streamBrandCheckException('abort'));
5708        }
5709
5710        if (IsWritableStreamLocked(this) === true) {
5711          return Promise.reject(new TypeError('Cannot abort a stream that already has a writer'));
5712        }
5713
5714        return WritableStreamAbort(this, reason);
5715      }
5716    }, {
5717      key: 'getWriter',
5718      value: function getWriter() {
5719        if (IsWritableStream(this) === false) {
5720          throw streamBrandCheckException('getWriter');
5721        }
5722
5723        return AcquireWritableStreamDefaultWriter(this);
5724      }
5725    }, {
5726      key: 'locked',
5727      get: function get() {
5728        if (IsWritableStream(this) === false) {
5729          throw streamBrandCheckException('locked');
5730        }
5731
5732        return IsWritableStreamLocked(this);
5733      }
5734    }]);
5735
5736    return WritableStream;
5737  }();
5738
5739  module.exports = {
5740    AcquireWritableStreamDefaultWriter: AcquireWritableStreamDefaultWriter,
5741    IsWritableStream: IsWritableStream,
5742    IsWritableStreamLocked: IsWritableStreamLocked,
5743    WritableStream: WritableStream,
5744    WritableStreamAbort: WritableStreamAbort,
5745    WritableStreamDefaultControllerError: WritableStreamDefaultControllerError,
5746    WritableStreamDefaultWriterCloseWithErrorPropagation: WritableStreamDefaultWriterCloseWithErrorPropagation,
5747    WritableStreamDefaultWriterRelease: WritableStreamDefaultWriterRelease,
5748    WritableStreamDefaultWriterWrite: WritableStreamDefaultWriterWrite,
5749    WritableStreamCloseQueuedOrInFlight: WritableStreamCloseQueuedOrInFlight
5750  };
5751
5752  function AcquireWritableStreamDefaultWriter(stream) {
5753    return new WritableStreamDefaultWriter(stream);
5754  }
5755
5756  function IsWritableStream(x) {
5757    if (!typeIsObject(x)) {
5758      return false;
5759    }
5760
5761    if (!Object.prototype.hasOwnProperty.call(x, '_writableStreamController')) {
5762      return false;
5763    }
5764
5765    return true;
5766  }
5767
5768  function IsWritableStreamLocked(stream) {
5769    assert(IsWritableStream(stream) === true, 'IsWritableStreamLocked should only be used on known writable streams');
5770
5771    if (stream._writer === undefined) {
5772      return false;
5773    }
5774
5775    return true;
5776  }
5777
5778  function WritableStreamAbort(stream, reason) {
5779    var state = stream._state;
5780
5781    if (state === 'closed') {
5782      return Promise.resolve(undefined);
5783    }
5784
5785    if (state === 'errored') {
5786      return Promise.reject(stream._storedError);
5787    }
5788
5789    var error = new TypeError('Requested to abort');
5790
5791    if (stream._pendingAbortRequest !== undefined) {
5792      return Promise.reject(error);
5793    }
5794
5795    assert(state === 'writable' || state === 'erroring', 'state must be writable or erroring');
5796    var wasAlreadyErroring = false;
5797
5798    if (state === 'erroring') {
5799      wasAlreadyErroring = true;
5800      reason = undefined;
5801    }
5802
5803    var promise = new Promise(function (resolve, reject) {
5804      stream._pendingAbortRequest = {
5805        _resolve: resolve,
5806        _reject: reject,
5807        _reason: reason,
5808        _wasAlreadyErroring: wasAlreadyErroring
5809      };
5810    });
5811
5812    if (wasAlreadyErroring === false) {
5813      WritableStreamStartErroring(stream, error);
5814    }
5815
5816    return promise;
5817  }
5818
5819  function WritableStreamAddWriteRequest(stream) {
5820    assert(IsWritableStreamLocked(stream) === true);
5821    assert(stream._state === 'writable');
5822    var promise = new Promise(function (resolve, reject) {
5823      var writeRequest = {
5824        _resolve: resolve,
5825        _reject: reject
5826      };
5827
5828      stream._writeRequests.push(writeRequest);
5829    });
5830    return promise;
5831  }
5832
5833  function WritableStreamDealWithRejection(stream, error) {
5834    var state = stream._state;
5835
5836    if (state === 'writable') {
5837      WritableStreamStartErroring(stream, error);
5838      return;
5839    }
5840
5841    assert(state === 'erroring');
5842    WritableStreamFinishErroring(stream);
5843  }
5844
5845  function WritableStreamStartErroring(stream, reason) {
5846    assert(stream._storedError === undefined, 'stream._storedError === undefined');
5847    assert(stream._state === 'writable', 'state must be writable');
5848    var controller = stream._writableStreamController;
5849    assert(controller !== undefined, 'controller must not be undefined');
5850    stream._state = 'erroring';
5851    stream._storedError = reason;
5852    var writer = stream._writer;
5853
5854    if (writer !== undefined) {
5855      WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, reason);
5856    }
5857
5858    if (WritableStreamHasOperationMarkedInFlight(stream) === false && controller._started === true) {
5859      WritableStreamFinishErroring(stream);
5860    }
5861  }
5862
5863  function WritableStreamFinishErroring(stream) {
5864    assert(stream._state === 'erroring', 'stream._state === erroring');
5865    assert(WritableStreamHasOperationMarkedInFlight(stream) === false, 'WritableStreamHasOperationMarkedInFlight(stream) === false');
5866    stream._state = 'errored';
5867
5868    stream._writableStreamController.__errorSteps();
5869
5870    var storedError = stream._storedError;
5871
5872    for (var i = 0; i < stream._writeRequests.length; i++) {
5873      var writeRequest = stream._writeRequests[i];
5874
5875      writeRequest._reject(storedError);
5876    }
5877
5878    stream._writeRequests = [];
5879
5880    if (stream._pendingAbortRequest === undefined) {
5881      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5882      return;
5883    }
5884
5885    var abortRequest = stream._pendingAbortRequest;
5886    stream._pendingAbortRequest = undefined;
5887
5888    if (abortRequest._wasAlreadyErroring === true) {
5889      abortRequest._reject(storedError);
5890
5891      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5892      return;
5893    }
5894
5895    var promise = stream._writableStreamController.__abortSteps(abortRequest._reason);
5896
5897    promise.then(function () {
5898      abortRequest._resolve();
5899
5900      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5901    }, function (reason) {
5902      abortRequest._reject(reason);
5903
5904      WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream);
5905    });
5906  }
5907
5908  function WritableStreamFinishInFlightWrite(stream) {
5909    assert(stream._inFlightWriteRequest !== undefined);
5910
5911    stream._inFlightWriteRequest._resolve(undefined);
5912
5913    stream._inFlightWriteRequest = undefined;
5914  }
5915
5916  function WritableStreamFinishInFlightWriteWithError(stream, error) {
5917    assert(stream._inFlightWriteRequest !== undefined);
5918
5919    stream._inFlightWriteRequest._reject(error);
5920
5921    stream._inFlightWriteRequest = undefined;
5922    assert(stream._state === 'writable' || stream._state === 'erroring');
5923    WritableStreamDealWithRejection(stream, error);
5924  }
5925
5926  function WritableStreamFinishInFlightClose(stream) {
5927    assert(stream._inFlightCloseRequest !== undefined);
5928
5929    stream._inFlightCloseRequest._resolve(undefined);
5930
5931    stream._inFlightCloseRequest = undefined;
5932    var state = stream._state;
5933    assert(state === 'writable' || state === 'erroring');
5934
5935    if (state === 'erroring') {
5936      stream._storedError = undefined;
5937
5938      if (stream._pendingAbortRequest !== undefined) {
5939        stream._pendingAbortRequest._resolve();
5940
5941        stream._pendingAbortRequest = undefined;
5942      }
5943    }
5944
5945    stream._state = 'closed';
5946    var writer = stream._writer;
5947
5948    if (writer !== undefined) {
5949      defaultWriterClosedPromiseResolve(writer);
5950    }
5951
5952    assert(stream._pendingAbortRequest === undefined, 'stream._pendingAbortRequest === undefined');
5953    assert(stream._storedError === undefined, 'stream._storedError === undefined');
5954  }
5955
5956  function WritableStreamFinishInFlightCloseWithError(stream, error) {
5957    assert(stream._inFlightCloseRequest !== undefined);
5958
5959    stream._inFlightCloseRequest._reject(error);
5960
5961    stream._inFlightCloseRequest = undefined;
5962    assert(stream._state === 'writable' || stream._state === 'erroring');
5963
5964    if (stream._pendingAbortRequest !== undefined) {
5965      stream._pendingAbortRequest._reject(error);
5966
5967      stream._pendingAbortRequest = undefined;
5968    }
5969
5970    WritableStreamDealWithRejection(stream, error);
5971  }
5972
5973  function WritableStreamCloseQueuedOrInFlight(stream) {
5974    if (stream._closeRequest === undefined && stream._inFlightCloseRequest === undefined) {
5975      return false;
5976    }
5977
5978    return true;
5979  }
5980
5981  function WritableStreamHasOperationMarkedInFlight(stream) {
5982    if (stream._inFlightWriteRequest === undefined && stream._inFlightCloseRequest === undefined) {
5983      return false;
5984    }
5985
5986    return true;
5987  }
5988
5989  function WritableStreamMarkCloseRequestInFlight(stream) {
5990    assert(stream._inFlightCloseRequest === undefined);
5991    assert(stream._closeRequest !== undefined);
5992    stream._inFlightCloseRequest = stream._closeRequest;
5993    stream._closeRequest = undefined;
5994  }
5995
5996  function WritableStreamMarkFirstWriteRequestInFlight(stream) {
5997    assert(stream._inFlightWriteRequest === undefined, 'there must be no pending write request');
5998    assert(stream._writeRequests.length !== 0, 'writeRequests must not be empty');
5999    stream._inFlightWriteRequest = stream._writeRequests.shift();
6000  }
6001
6002  function WritableStreamRejectCloseAndClosedPromiseIfNeeded(stream) {
6003    assert(stream._state === 'errored', '_stream_.[[state]] is `"errored"`');
6004
6005    if (stream._closeRequest !== undefined) {
6006      assert(stream._inFlightCloseRequest === undefined);
6007
6008      stream._closeRequest._reject(stream._storedError);
6009
6010      stream._closeRequest = undefined;
6011    }
6012
6013    var writer = stream._writer;
6014
6015    if (writer !== undefined) {
6016      defaultWriterClosedPromiseReject(writer, stream._storedError);
6017
6018      writer._closedPromise.catch(function () {});
6019    }
6020  }
6021
6022  function WritableStreamUpdateBackpressure(stream, backpressure) {
6023    assert(stream._state === 'writable');
6024    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
6025    var writer = stream._writer;
6026
6027    if (writer !== undefined && backpressure !== stream._backpressure) {
6028      if (backpressure === true) {
6029        defaultWriterReadyPromiseReset(writer);
6030      } else {
6031        assert(backpressure === false);
6032        defaultWriterReadyPromiseResolve(writer);
6033      }
6034    }
6035
6036    stream._backpressure = backpressure;
6037  }
6038
6039  var WritableStreamDefaultWriter = function () {
6040    function WritableStreamDefaultWriter(stream) {
6041      _classCallCheck(this, WritableStreamDefaultWriter);
6042
6043      if (IsWritableStream(stream) === false) {
6044        throw new TypeError('WritableStreamDefaultWriter can only be constructed with a WritableStream instance');
6045      }
6046
6047      if (IsWritableStreamLocked(stream) === true) {
6048        throw new TypeError('This stream has already been locked for exclusive writing by another writer');
6049      }
6050
6051      this._ownerWritableStream = stream;
6052      stream._writer = this;
6053      var state = stream._state;
6054
6055      if (state === 'writable') {
6056        if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._backpressure === true) {
6057          defaultWriterReadyPromiseInitialize(this);
6058        } else {
6059          defaultWriterReadyPromiseInitializeAsResolved(this);
6060        }
6061
6062        defaultWriterClosedPromiseInitialize(this);
6063      } else if (state === 'erroring') {
6064        defaultWriterReadyPromiseInitializeAsRejected(this, stream._storedError);
6065
6066        this._readyPromise.catch(function () {});
6067
6068        defaultWriterClosedPromiseInitialize(this);
6069      } else if (state === 'closed') {
6070        defaultWriterReadyPromiseInitializeAsResolved(this);
6071        defaultWriterClosedPromiseInitializeAsResolved(this);
6072      } else {
6073        assert(state === 'errored', 'state must be errored');
6074        var storedError = stream._storedError;
6075        defaultWriterReadyPromiseInitializeAsRejected(this, storedError);
6076
6077        this._readyPromise.catch(function () {});
6078
6079        defaultWriterClosedPromiseInitializeAsRejected(this, storedError);
6080
6081        this._closedPromise.catch(function () {});
6082      }
6083    }
6084
6085    _createClass(WritableStreamDefaultWriter, [{
6086      key: 'abort',
6087      value: function abort(reason) {
6088        if (IsWritableStreamDefaultWriter(this) === false) {
6089          return Promise.reject(defaultWriterBrandCheckException('abort'));
6090        }
6091
6092        if (this._ownerWritableStream === undefined) {
6093          return Promise.reject(defaultWriterLockException('abort'));
6094        }
6095
6096        return WritableStreamDefaultWriterAbort(this, reason);
6097      }
6098    }, {
6099      key: 'close',
6100      value: function close() {
6101        if (IsWritableStreamDefaultWriter(this) === false) {
6102          return Promise.reject(defaultWriterBrandCheckException('close'));
6103        }
6104
6105        var stream = this._ownerWritableStream;
6106
6107        if (stream === undefined) {
6108          return Promise.reject(defaultWriterLockException('close'));
6109        }
6110
6111        if (WritableStreamCloseQueuedOrInFlight(stream) === true) {
6112          return Promise.reject(new TypeError('cannot close an already-closing stream'));
6113        }
6114
6115        return WritableStreamDefaultWriterClose(this);
6116      }
6117    }, {
6118      key: 'releaseLock',
6119      value: function releaseLock() {
6120        if (IsWritableStreamDefaultWriter(this) === false) {
6121          throw defaultWriterBrandCheckException('releaseLock');
6122        }
6123
6124        var stream = this._ownerWritableStream;
6125
6126        if (stream === undefined) {
6127          return;
6128        }
6129
6130        assert(stream._writer !== undefined);
6131        WritableStreamDefaultWriterRelease(this);
6132      }
6133    }, {
6134      key: 'write',
6135      value: function write(chunk) {
6136        if (IsWritableStreamDefaultWriter(this) === false) {
6137          return Promise.reject(defaultWriterBrandCheckException('write'));
6138        }
6139
6140        if (this._ownerWritableStream === undefined) {
6141          return Promise.reject(defaultWriterLockException('write to'));
6142        }
6143
6144        return WritableStreamDefaultWriterWrite(this, chunk);
6145      }
6146    }, {
6147      key: 'closed',
6148      get: function get() {
6149        if (IsWritableStreamDefaultWriter(this) === false) {
6150          return Promise.reject(defaultWriterBrandCheckException('closed'));
6151        }
6152
6153        return this._closedPromise;
6154      }
6155    }, {
6156      key: 'desiredSize',
6157      get: function get() {
6158        if (IsWritableStreamDefaultWriter(this) === false) {
6159          throw defaultWriterBrandCheckException('desiredSize');
6160        }
6161
6162        if (this._ownerWritableStream === undefined) {
6163          throw defaultWriterLockException('desiredSize');
6164        }
6165
6166        return WritableStreamDefaultWriterGetDesiredSize(this);
6167      }
6168    }, {
6169      key: 'ready',
6170      get: function get() {
6171        if (IsWritableStreamDefaultWriter(this) === false) {
6172          return Promise.reject(defaultWriterBrandCheckException('ready'));
6173        }
6174
6175        return this._readyPromise;
6176      }
6177    }]);
6178
6179    return WritableStreamDefaultWriter;
6180  }();
6181
6182  function IsWritableStreamDefaultWriter(x) {
6183    if (!typeIsObject(x)) {
6184      return false;
6185    }
6186
6187    if (!Object.prototype.hasOwnProperty.call(x, '_ownerWritableStream')) {
6188      return false;
6189    }
6190
6191    return true;
6192  }
6193
6194  function WritableStreamDefaultWriterAbort(writer, reason) {
6195    var stream = writer._ownerWritableStream;
6196    assert(stream !== undefined);
6197    return WritableStreamAbort(stream, reason);
6198  }
6199
6200  function WritableStreamDefaultWriterClose(writer) {
6201    var stream = writer._ownerWritableStream;
6202    assert(stream !== undefined);
6203    var state = stream._state;
6204
6205    if (state === 'closed' || state === 'errored') {
6206      return Promise.reject(new TypeError('The stream (in ' + state 
6206+ ' state) is not in the writable state and cannot be closed'));
6207    }
6208
6209    assert(state === 'writable' || state === 'erroring');
6210    assert(WritableStreamCloseQueuedOrInFlight(stream) === false);
6211    var promise = new Promise(function (resolve, reject) {
6212      var closeRequest = {
6213        _resolve: resolve,
6214        _reject: reject
6215      };
6216      stream._closeRequest = closeRequest;
6217    });
6218
6219    if (stream._backpressure === true && state === 'writable') {
6220      defaultWriterReadyPromiseResolve(writer);
6221    }
6222
6223    WritableStreamDefaultControllerClose(stream._writableStreamController);
6224    return promise;
6225  }
6226
6227  function WritableStreamDefaultWriterCloseWithErrorPropagation(writer) {
6228    var stream = writer._ownerWritableStream;
6229    assert(stream !== undefined);
6230    var state = stream._state;
6231
6232    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
6233      return Promise.resolve();
6234    }
6235
6236    if (state === 'errored') {
6237      return Promise.reject(stream._storedError);
6238    }
6239
6240    assert(state === 'writable' || state === 'erroring');
6241    return WritableStreamDefaultWriterClose(writer);
6242  }
6243
6244  function WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, error) {
6245    if (writer._closedPromiseState === 'pending') {
6246      defaultWriterClosedPromiseReject(writer, error);
6247    } else {
6248      defaultWriterClosedPromiseResetToRejected(writer, error);
6249    }
6250
6251    writer._closedPromise.catch(function () {});
6252  }
6253
6254  function WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, error) {
6255    if (writer._readyPromiseState === 'pending') {
6256      defaultWriterReadyPromiseReject(writer, error);
6257    } else {
6258      defaultWriterReadyPromiseResetToRejected(writer, error);
6259    }
6260
6261    writer._readyPromise.catch(function () {});
6262  }
6263
6264  function WritableStreamDefaultWriterGetDesiredSize(writer) {
6265    var stream = writer._ownerWritableStream;
6266    var state = stream._state;
6267
6268    if (state === 'errored' || state === 'erroring') {
6269      return null;
6270    }
6271
6272    if (state === 'closed') {
6273      return 0;
6274    }
6275
6276    return WritableStreamDefaultControllerGetDesiredSize(stream._writableStreamController);
6277  }
6278
6279  function WritableStreamDefaultWriterRelease(writer) {
6280    var stream = writer._ownerWritableStream;
6281    assert(stream !== undefined);
6282    assert(stream._writer === writer);
6283    var releasedError = new TypeError('Writer was released and can no longer be used to monitor the stream\'s closedness');
6284    WritableStreamDefaultWriterEnsureReadyPromiseRejected(writer, releasedError);
6285    WritableStreamDefaultWriterEnsureClosedPromiseRejected(writer, releasedError);
6286    stream._writer = undefined;
6287    writer._ownerWritableStream = undefined;
6288  }
6289
6290  function WritableStreamDefaultWriterWrite(writer, chunk) {
6291    var stream = writer._ownerWritableStream;
6292    assert(stream !== undefined);
6293    var controller = stream._writableStreamController;
6294    var chunkSize = WritableStreamDefaultControllerGetChunkSize(controller, chunk);
6295
6296    if (stream !== writer._ownerWritableStream) {
6297      return Promise.reject(defaultWriterLockException('write to'));
6298    }
6299
6300    var state = stream._state;
6301
6302    if (state === 'errored') {
6303      return Promise.reject(stream._storedError);
6304    }
6305
6306    if (WritableStreamCloseQueuedOrInFlight(stream) === true || state === 'closed') {
6307      return Promise.reject(new TypeError('The stream is closing or closed and cannot be written to'));
6308    }
6309
6310    if (state === 'erroring') {
6311      return Promise.reject(stream._storedError);
6312    }
6313
6314    assert(state === 'writable');
6315    var promise = WritableStreamAddWriteRequest(stream);
6316    WritableStreamDefaultControllerWrite(controller, chunk, chunkSize);
6317    return promise;
6318  }
6319
6320  var WritableStreamDefaultController = function () {
6321    function WritableStreamDefaultController(stream, underlyingSink, size, highWaterMark) {
6322      _classCallCheck(this, WritableStreamDefaultController);
6323
6324      if (IsWritableStream(stream) === false) {
6325        throw new TypeError('WritableStreamDefaultController can only be constructed with a WritableStream instance');
6326      }
6327
6328      if (stream._writableStreamController !== undefined) {
6329        throw new TypeError('WritableStreamDefaultController instances can only be created by the WritableStream constructor');
6330      }
6331
6332      this._controlledWritableStream = stream;
6333      this._underlyingSink = underlyingSink;
6334      this._queue = undefined;
6335      this._queueTotalSize = undefined;
6336      ResetQueue(this);
6337      this._started = false;
6338      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
6339      this._strategySize = normalizedStrategy.size;
6340      this._strategyHWM = normalizedStrategy.highWaterMark;
6341      var backpressure = WritableStreamDefaultControllerGetBackpressure(this);
6342      WritableStreamUpdateBackpressure(stream, backpressure);
6343    }
6344
6345    _createClass(WritableStreamDefaultController, [{
6346      key: 'error',
6347      value: function error(e) {
6348        if (IsWritableStreamDefaultController(this) === false) {
6349          throw new TypeError('WritableStreamDefaultController.prototype.error can only be used on a WritableStreamDefaultController');
6350        }
6351
6352        var state = this._controlledWritableStream._state;
6353
6354        if (state !== 'writable') {
6355          return;
6356        }
6357
6358        WritableStreamDefaultControllerError(this, e);
6359      }
6360    }, {
6361      key: '__abortSteps',
6362      value: function __abortSteps(reason) {
6363        return PromiseInvokeOrNoop(this._underlyingSink, 'abort', [reason]);
6364      }
6365    }, {
6366      key: '__errorSteps',
6367      value: function __errorSteps() {
6368        ResetQueue(this);
6369      }
6370    }, {
6371      key: '__startSteps',
6372      value: function __startSteps() {
6373        var _this = this;
6374
6375        var startResult = InvokeOrNoop(this._underlyingSink, 'start', [this]);
6376        var stream = this._controlledWritableStream;
6377        Promise.resolve(startResult).then(function () {
6378          assert(stream._state === 'writable' || stream._state === 'erroring');
6379          _this._started = true;
6380          WritableStreamDefaultControllerAdvanceQueueIfNeeded(_this);
6381        }, function (r) {
6382          assert(stream._state === 'writable' || stream._state === 'erroring');
6383          _this._started = true;
6384          WritableStreamDealWithRejection(stream, r);
6385        }).catch(rethrowAssertionErrorRejection);
6386      }
6387    }]);
6388
6389    return WritableStreamDefaultController;
6390  }();
6391
6392  function WritableStreamDefaultControllerClose(controller) {
6393    EnqueueValueWithSize(controller, 'close', 0);
6394    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6395  }
6396
6397  function WritableStreamDefaultControllerGetChunkSize(controller, chunk) {
6398    var strategySize = controller._strategySize;
6399
6400    if (strategySize === undefined) {
6401      return 1;
6402    }
6403
6404    try {
6405      return strategySize(chunk);
6406    } catch (chunkSizeE) {
6407      WritableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
6408      return 1;
6409    }
6410  }
6411
6412  function WritableStreamDefaultControllerGetDesiredSize(controller) {
6413    return controller._strategyHWM - controller._queueTotalSize;
6414  }
6415
6416  function WritableStreamDefaultControllerWrite(controller, chunk, chunkSize) {
6417    var writeRecord = {
6418      chunk: chunk
6419    };
6420
6421    try {
6422      EnqueueValueWithSize(controller, writeRecord, chunkSize);
6423    } catch (enqueueE) {
6424      WritableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
6425      return;
6426    }
6427
6428    var stream = controller._controlledWritableStream;
6429
6430    if (WritableStreamCloseQueuedOrInFlight(stream) === false && stream._state === 'writable') {
6431      var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
6432      WritableStreamUpdateBackpressure(stream, backpressure);
6433    }
6434
6435    WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6436  }
6437
6438  function IsWritableStreamDefaultController(x) {
6439    if (!typeIsObject(x)) {
6440      return false;
6441    }
6442
6443    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSink')) {
6444      return false;
6445    }
6446
6447    return true;
6448  }
6449
6450  function WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller) {
6451    var stream = controller._controlledWritableStream;
6452
6453    if (controller._started === false) {
6454      return;
6455    }
6456
6457    if (stream._inFlightWriteRequest !== undefined) {
6458      return;
6459    }
6460
6461    var state = stream._state;
6462
6463    if (state === 'closed' || state === 'errored') {
6464      return;
6465    }
6466
6467    if (state === 'erroring') {
6468      WritableStreamFinishErroring(stream);
6469      return;
6470    }
6471
6472    if (controller._queue.length === 0) {
6473      return;
6474    }
6475
6476    var writeRecord = PeekQueueValue(controller);
6477
6478    if (writeRecord === 'close') {
6479      WritableStreamDefaultControllerProcessClose(controller);
6480    } else {
6481      WritableStreamDefaultControllerProcessWrite(controller, writeRecord.chunk);
6482    }
6483  }
6484
6485  function WritableStreamDefaultControllerErrorIfNeeded(controller, error) {
6486    if (controller._controlledWritableStream._state === 'writable') {
6487      WritableStreamDefaultControllerError(controller, error);
6488    }
6489  }
6490
6491  function WritableStreamDefaultControllerProcessClose(controller) {
6492    var stream = controller._controlledWritableStream;
6493    WritableStreamMarkCloseRequestInFlight(stream);
6494    DequeueValue(controller);
6495    assert(controller._queue.length === 0, 'queue must be empty once the final write record is dequeued');
6496    var sinkClosePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'close', []);
6497    sinkClosePromise.then(function () {
6498      WritableStreamFinishInFlightClose(stream);
6499    }, function (reason) {
6500      WritableStreamFinishInFlightCloseWithError(stream, reason);
6501    }).catch(rethrowAssertionErrorRejection);
6502  }
6503
6504  function WritableStreamDefaultControllerProcessWrite(controller, chunk) {
6505    var stream = controller._controlledWritableStream;
6506    WritableStreamMarkFirstWriteRequestInFlight(stream);
6507    var sinkWritePromise = PromiseInvokeOrNoop(controller._underlyingSink, 'write', [chunk, controller]);
6508    sinkWritePromise.then(function () {
6509      WritableStreamFinishInFlightWrite(stream);
6510      var state = stream._state;
6511      assert(state === 'writable' || state === 'erroring');
6512      DequeueValue(controller);
6513
6514      if (WritableStreamCloseQueuedOrInFlight(stream) === false && state === 'writable') {
6515        var backpressure = WritableStreamDefaultControllerGetBackpressure(controller);
6516        WritableStreamUpdateBackpressure(stream, backpressure);
6517      }
6518
6519      WritableStreamDefaultControllerAdvanceQueueIfNeeded(controller);
6520    }, function (reason) {
6521      WritableStreamFinishInFlightWriteWithError(stream, reason);
6522    }).catch(rethrowAssertionErrorRejection);
6523  }
6524
6525  function WritableStreamDefaultControllerGetBackpressure(controller) {
6526    var desiredSize = WritableStreamDefaultControllerGetDesiredSize(controller);
6527    return desiredSize <= 0;
6528  }
6529
6530  function WritableStreamDefaultControllerError(controller, error) {
6531    var stream = controller._controlledWritableStream;
6532    assert(stream._state === 'writable');
6533    WritableStreamStartErroring(stream, error);
6534  }
6535
6536  function streamBrandCheckException(name) {
6537    return new TypeError('WritableStream.prototype.' + name + ' can only be used on a WritableStream');
6538  }
6539
6540  function defaultWriterBrandCheckException(name) {
6541    return new TypeError('WritableStreamDefaultWriter.prototype.' + name + ' can only be used on a WritableStreamDefaultWriter');
6542  }
6543
6544  function defaultWriterLockException(name) {
6545    return new TypeError('Cannot ' + name + ' a stream using a released writer');
6546  }
6547
6548  function defaultWriterClosedPromiseInitialize(writer) {
6549    writer._closedPromise = new Promise(function (resolve, reject) {
6550      writer._closedPromise_resolve = resolve;
6551      writer._closedPromise_reject = reject;
6552      writer._closedPromiseState = 'pending';
6553    });
6554  }
6555
6556  function defaultWriterClosedPromiseInitializeAsRejected(writer, reason) {
6557    writer._closedPromise = Promise.reject(reason);
6558    writer._closedPromise_resolve = undefined;
6559    writer._closedPromise_reject = undefined;
6560    writer._closedPromiseState = 'rejected';
6561  }
6562
6563  function defaultWriterClosedPromiseInitializeAsResolved(writer) {
6564    writer._closedPromise = Promise.resolve(undefined);
6565    writer._closedPromise_resolve = undefined;
6566    writer._closedPromise_reject = undefined;
6567    writer._closedPromiseState = 'resolved';
6568  }
6569
6570  function defaultWriterClosedPromiseReject(writer, reason) {
6571    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
6572    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
6573    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
6574
6575    writer._closedPromise_reject(reason);
6576
6577    writer._closedPromise_resolve = undefined;
6578    writer._closedPromise_reject = undefined;
6579    writer._closedPromiseState = 'rejected';
6580  }
6581
6582  function defaultWriterClosedPromiseResetToRejected(writer, reason) {
6583    assert(writer._closedPromise_resolve === undefined, 'writer._closedPromise_resolve === undefined');
6584    assert(writer._closedPromise_reject === undefined, 'writer._closedPromise_reject === undefined');
6585    assert(writer._closedPromiseState !== 'pending', 'writer._closedPromiseState is not pending');
6586    writer._closedPromise = Promise.reject(reason);
6587    writer._closedPromiseState = 'rejected';
6588  }
6589
6590  function defaultWriterClosedPromiseResolve(writer) {
6591    assert(writer._closedPromise_resolve !== undefined, 'writer._closedPromise_resolve !== undefined');
6592    assert(writer._closedPromise_reject !== undefined, 'writer._closedPromise_reject !== undefined');
6593    assert(writer._closedPromiseState === 'pending', 'writer._closedPromiseState is pending');
6594
6595    writer._closedPromise_resolve(undefined);
6596
6597    writer._closedPromise_resolve = undefined;
6598    writer._closedPromise_reject = undefined;
6599    writer._closedPromiseState = 'resolved';
6600  }
6601
6602  function defaultWriterReadyPromiseInitialize(writer) {
6603    writer._readyPromise = new Promise(function (resolve, reject) {
6604      writer._readyPromise_resolve = resolve;
6605      writer._readyPromise_reject = reject;
6606    });
6607    writer._readyPromiseState = 'pending';
6608  }
6609
6610  function defaultWriterReadyPromiseInitializeAsRejected(writer, reason) {
6611    writer._readyPromise = Promise.reject(reason);
6612    writer._readyPromise_resolve = undefined;
6613    writer._readyPromise_reject = undefined;
6614    writer._readyPromiseState = 'rejected';
6615  }
6616
6617  function defaultWriterReadyPromiseInitializeAsResolved(writer) {
6618    writer._readyPromise = Promise.resolve(undefined);
6619    writer._readyPromise_resolve = undefined;
6620    writer._readyPromise_reject = undefined;
6621    writer._readyPromiseState = 'fulfilled';
6622  }
6623
6624  function defaultWriterReadyPromiseReject(writer, reason) {
6625    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
6626    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
6627
6628    writer._readyPromise_reject(reason);
6629
6630    writer._readyPromise_resolve = undefined;
6631    writer._readyPromise_reject = undefined;
6632    writer._readyPromiseState = 'rejected';
6633  }
6634
6635  function defaultWriterReadyPromiseReset(writer) {
6636    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
6637    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
6638    writer._readyPromise = new Promise(function (resolve, reject) {
6639      writer._readyPromise_resolve = resolve;
6640      writer._readyPromise_reject = reject;
6641    });
6642    writer._readyPromiseState = 'pending';
6643  }
6644
6645  function defaultWriterReadyPromiseResetToRejected(writer, reason) {
6646    assert(writer._readyPromise_resolve === undefined, 'writer._readyPromise_resolve === undefined');
6647    assert(writer._readyPromise_reject === undefined, 'writer._readyPromise_reject === undefined');
6648    writer._readyPromise = Promise.reject(reason);
6649    writer._readyPromiseState = 'rejected';
6650  }
6651
6652  function defaultWriterReadyPromiseResolve(writer) {
6653    assert(writer._readyPromise_resolve !== undefined, 'writer._readyPromise_resolve !== undefined');
6654    assert(writer._readyPromise_reject !== undefined, 'writer._readyPromise_reject !== undefined');
6655
6656    writer._readyPromise_resolve(undefined);
6657
6658    writer._readyPromise_resolve = undefined;
6659    writer._readyPromise_reject = undefined;
6660    writer._readyPromiseState = 'fulfilled';
6661  }
6662}, function (module, exports, __w_pdfjs_require__) {
6663  "use strict";
6664
6665  var _require = __w_pdfjs_require__(0),
6666      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber;
6667
6668  var _require2 = __w_pdfjs_require__(1),
6669      assert = _require2.assert;
6670
6671  exports.DequeueValue = function (container) {
6672    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: DequeueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
6673    assert(container._queue.length > 0, 'Spec-level failure: should never dequeue from an empty queue.');
6674
6675    var pair = container._queue.shift();
6676
6677    container._queueTotalSize -= pair.size;
6678
6679    if (container._queueTotalSize < 0) {
6680      container._queueTotalSize = 0;
6681    }
6682
6683    return pair.value;
6684  };
6685
6686  exports.EnqueueValueWithSize = function (container, value, size) {
6687    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: EnqueueValueWithSize should only be used on containers with [[queue]] and ' + '[[queueTotalSize]].');
6688    size = Number(size);
6689
6690    if (!IsFiniteNonNegativeNumber(size)) {
6691      throw new RangeError('Size must be a finite, non-NaN, non-negative number.');
6692    }
6693
6694    container._queue.push({
6695      value: value,
6696      size: size
6697    });
6698
6699    container._queueTotalSize += size;
6700  };
6701
6702  exports.PeekQueueValue = function (container) {
6703    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: PeekQueueValue should only be used on containers with [[queue]] and [[queueTotalSize]].');
6704    assert(container._queue.length > 0, 'Spec-level failure: should never peek at an empty queue.');
6705    var pair = container._queue[0];
6706    return pair.value;
6707  };
6708
6709  exports.ResetQueue = function (container) {
6710    assert('_queue' in container && '_queueTotalSize' in container, 'Spec-level failure: ResetQueue should only be used on containers with [[queue]] and [[queueTotalSize]].');
6711    container._queue = [];
6712    container._queueTotalSize = 0;
6713  };
6714}, function (module, exports, __w_pdfjs_require__) {
6715  "use strict";
6716
6717  var _createClass = function () {
6718    function defineProperties(target, props) {
6719      for (var i = 0; i < props.length; i++) {
6720        var descriptor = props[i];
6721        descriptor.enumerable = descriptor.enumerable || false;
6722        descriptor.configurable = true;
6723        if ("value" in descriptor) descriptor.writable = true;
6724        Object.defineProperty(target, descriptor.key, descriptor);
6725      }
6726    }
6727
6728    return function (Constructor, protoProps, staticProps) {
6729      if (protoProps) defineProperties(Constructor.prototype, protoProps);
6730      if (staticProps) defineProperties(Constructor, staticProps);
6731      return Constructor;
6732    };
6733  }();
6734
6735  function _classCallCheck(instance, Constructor) {
6736    if (!(instance instanceof Constructor)) {
6737      throw new TypeError("Cannot call a class as a function");
6738    }
6739  }
6740
6741  var _require = __w_pdfjs_require__(0),
6742      ArrayBufferCopy = _require.ArrayBufferCopy,
6743      CreateIterResultObject = _require.CreateIterResultObject,
6744      IsFiniteNonNegativeNumber = _require.IsFiniteNonNegativeNumber,
6745      InvokeOrNoop = _require.InvokeOrNoop,
6746      PromiseInvokeOrNoop = _require.PromiseInvokeOrNoop,
6747      TransferArrayBuffer = _require.TransferArrayBuffer,
6748      ValidateAndNormalizeQueuingStrategy = _require.ValidateAndNormalizeQueuingStrategy,
6749      ValidateAndNormalizeHighWaterMark = _require.ValidateAndNormalizeHighWaterMark;
6750
6751  var _require2 = __w_pdfjs_require__(0),
6752      createArrayFromList = _require2.createArrayFromList,
6753      createDataProperty = _require2.createDataProperty,
6754      typeIsObject = _require2.typeIsObject;
6755
6756  var _require3 = __w_pdfjs_require__(1),
6757      assert = _require3.assert,
6758      rethrowAssertionErrorRejection = _require3.rethrowAssertionErrorRejection;
6759
6760  var _require4 = __w_pdfjs_require__(3),
6761      DequeueValue = _require4.DequeueValue,
6762      EnqueueValueWithSize = _require4.EnqueueValueWithSize,
6763      ResetQueue = _require4.ResetQueue;
6764
6765  var _require5 = __w_pdfjs_require__(2),
6766      AcquireWritableStreamDefaultWriter = _require5.AcquireWritableStreamDefaultWriter,
6767      IsWritableStream = _require5.IsWritableStream,
6768      IsWritableStreamLocked = _require5.IsWritableStreamLocked,
6769      WritableStreamAbort = _require5.WritableStreamAbort,
6770      WritableStreamDefaultWriterCloseWithErrorPropagation = _require5.WritableStreamDefaultWriterCloseWithErrorPropagation,
6771      WritableStreamDefaultWriterRelease = _require5.WritableStreamDefaultWriterRelease,
6772      WritableStreamDefaultWriterWrite = _require5.WritableStreamDefaultWriterWrite,
6773      WritableStreamCloseQueuedOrInFlight = _require5.WritableStreamCloseQueuedOrInFlight;
6774
6775  var ReadableStream = function () {
6776    function ReadableStream() {
6777      var underlyingSource = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
6778
6779      var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
6780          size = _ref.size,
6781          highWaterMark = _ref.highWaterMark;
6782
6783      _classCallCheck(this, ReadableStream);
6784
6785      this._state = 'readable';
6786      this._reader = undefined;
6787      this._storedError = undefined;
6788      this._disturbed = false;
6789      this._readableStreamController = undefined;
6790      var type = underlyingSource.type;
6791      var typeString = String(type);
6792
6793      if (typeString === 'bytes') {
6794        if (highWaterMark === undefined) {
6795          highWaterMark = 0;
6796        }
6797
6798        this._readableStreamController = new ReadableByteStreamController(this, underlyingSource, highWaterMark);
6799      } else if (type === undefined) {
6800        if (highWaterMark === undefined) {
6801          highWaterMark = 1;
6802        }
6803
6804        this._readableStreamController = new ReadableStreamDefaultController(this, underlyingSource, size, highWaterMark);
6805      } else {
6806        throw new RangeError('Invalid type is specified');
6807      }
6808    }
6809
6810    _createClass(ReadableStream, [{
6811      key: 'cancel',
6812      value: function cancel(reason) {
6813        if (IsReadableStream(this) === false) {
6814          return Promise.reject(streamBrandCheckException('cancel'));
6815        }
6816
6817        if (IsReadableStreamLocked(this) === true) {
6818          return Promise.reject(new TypeError('Cannot cancel a stream that already has a reader'));
6819        }
6820
6821        return ReadableStreamCancel(this, reason);
6822      }
6823    }, {
6824      key: 'getReader',
6825      value: function getReader() {
6826        var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
6827            mode = _ref2.mode;
6828
6829        if (IsReadableStream(this) === false) {
6830          throw streamBrandCheckException('getReader');
6831        }
6832
6833        if (mode === undefined) {
6834          return AcquireReadableStreamDefaultReader(this);
6835        }
6836
6837        mode = String(mode);
6838
6839        if (mode === 'byob') {
6840          return AcquireReadableStreamBYOBReader(this);
6841        }
6842
6843        throw new RangeError('Invalid mode is specified');
6844      }
6845    }, {
6846      key: 'pipeThrough',
6847      value: function pipeThrough(_ref3, options) {
6848        var writable = _ref3.writable,
6849            readable = _ref3.readable;
6850        var promise = this.pipeTo(writable, options);
6851        ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise);
6852        return readable;
6853      }
6854    }, {
6855      key: 'pipeTo',
6856      value: function pipeTo(dest) {
6857        var _this = this;
6858
6859        var _ref4 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
6860            preventClose = _ref4.preventClose,
6861            preventAbort = _ref4.preventAbort,
6862            preventCancel = _ref4.preventCancel;
6863
6864        if (IsReadableStream(this) === false) {
6865          return Promise.reject(streamBrandCheckException('pipeTo'));
6866        }
6867
6868        if (IsWritableStream(dest) === false) {
6869          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo\'s first argument must be a WritableStream'));
6870        }
6871
6872        preventClose = Boolean(preventClose);
6873        preventAbort = Boolean(preventAbort);
6874        preventCancel = Boolean(preventCancel);
6875
6876        if (IsReadableStreamLocked(this) === true) {
6877          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked ReadableStream'));
6878        }
6879
6880        if (IsWritableStreamLocked(dest) === true) {
6881          return Promise.reject(new TypeError('ReadableStream.prototype.pipeTo cannot be used on a locked WritableStream'));
6882        }
6883
6884        var reader = AcquireReadableStreamDefaultReader(this);
6885        var writer = AcquireWritableStreamDefaultWriter(dest);
6886        var shuttingDown = false;
6887        var currentWrite = Promise.resolve();
6888        return new Promise(function (resolve, reject) {
6889          function pipeLoop() {
6890            currentWrite = Promise.resolve();
6891
6892            if (shuttingDown === true) {
6893              return Promise.resolve();
6894            }
6895
6896            return writer._readyPromise.then(function () {
6897              return ReadableStreamDefaultReaderRead(reader).then(function (_ref5) {
6898                var value = _ref5.value,
6899                    done = _ref5.done;
6900
6901                if (done === true) {
6902                  return;
6903                }
6904
6905                currentWrite = WritableStreamDefaultWriterWrite(writer, value).cat
6905ch(function () {});
6906              });
6907            }).then(pipeLoop);
6908          }
6909
6910          isOrBecomesErrored(_this, reader._closedPromise, function (storedError) {
6911            if (preventAbort === false) {
6912              shutdownWithAction(function () {
6913                return WritableStreamAbort(dest, storedError);
6914              }, true, storedError);
6915            } else {
6916              shutdown(true, storedError);
6917            }
6918          });
6919          isOrBecomesErrored(dest, writer._closedPromise, function (storedError) {
6920            if (preventCancel === false) {
6921              shutdownWithAction(function () {
6922                return ReadableStreamCancel(_this, storedError);
6923              }, true, storedError);
6924            } else {
6925              shutdown(true, storedError);
6926            }
6927          });
6928          isOrBecomesClosed(_this, reader._closedPromise, function () {
6929            if (preventClose === false) {
6930              shutdownWithAction(function () {
6931                return WritableStreamDefaultWriterCloseWithErrorPropagation(writer);
6932              });
6933            } else {
6934              shutdown();
6935            }
6936          });
6937
6938          if (WritableStreamCloseQueuedOrInFlight(dest) === true || dest._state === 'closed') {
6939            var destClosed = new TypeError('the destination writable stream closed before all data could be piped to it');
6940
6941            if (preventCancel === false) {
6942              shutdownWithAction(function () {
6943                return ReadableStreamCancel(_this, destClosed);
6944              }, true, destClosed);
6945            } else {
6946              shutdown(true, destClosed);
6947            }
6948          }
6949
6950          pipeLoop().catch(function (err) {
6951            currentWrite = Promise.resolve();
6952            rethrowAssertionErrorRejection(err);
6953          });
6954
6955          function waitForWritesToFinish() {
6956            var oldCurrentWrite = currentWrite;
6957            return currentWrite.then(function () {
6958              return oldCurrentWrite !== currentWrite ? waitForWritesToFinish() : undefined;
6959            });
6960          }
6961
6962          function isOrBecomesErrored(stream, promise, action) {
6963            if (stream._state === 'errored') {
6964              action(stream._storedError);
6965            } else {
6966              promise.catch(action).catch(rethrowAssertionErrorRejection);
6967            }
6968          }
6969
6970          function isOrBecomesClosed(stream, promise, action) {
6971            if (stream._state === 'closed') {
6972              action();
6973            } else {
6974              promise.then(action).catch(rethrowAssertionErrorRejection);
6975            }
6976          }
6977
6978          function shutdownWithAction(action, originalIsError, originalError) {
6979            if (shuttingDown === true) {
6980              return;
6981            }
6982
6983            shuttingDown = true;
6984
6985            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
6986              waitForWritesToFinish().then(doTheRest);
6987            } else {
6988              doTheRest();
6989            }
6990
6991            function doTheRest() {
6992              action().then(function () {
6993                return finalize(originalIsError, originalError);
6994              }, function (newError) {
6995                return finalize(true, newError);
6996              }).catch(rethrowAssertionErrorRejection);
6997            }
6998          }
6999
7000          function shutdown(isError, error) {
7001            if (shuttingDown === true) {
7002              return;
7003            }
7004
7005            shuttingDown = true;
7006
7007            if (dest._state === 'writable' && WritableStreamCloseQueuedOrInFlight(dest) === false) {
7008              waitForWritesToFinish().then(function () {
7009                return finalize(isError, error);
7010              }).catch(rethrowAssertionErrorRejection);
7011            } else {
7012              finalize(isError, error);
7013            }
7014          }
7015
7016          function finalize(isError, error) {
7017            WritableStreamDefaultWriterRelease(writer);
7018            ReadableStreamReaderGenericRelease(reader);
7019
7020            if (isError) {
7021              reject(error);
7022            } else {
7023              resolve(undefined);
7024            }
7025          }
7026        });
7027      }
7028    }, {
7029      key: 'tee',
7030      value: function tee() {
7031        if (IsReadableStream(this) === false) {
7032          throw streamBrandCheckException('tee');
7033        }
7034
7035        var branches = ReadableStreamTee(this, false);
7036        return createArrayFromList(branches);
7037      }
7038    }, {
7039      key: 'locked',
7040      get: function get() {
7041        if (IsReadableStream(this) === false) {
7042          throw streamBrandCheckException('locked');
7043        }
7044
7045        return IsReadableStreamLocked(this);
7046      }
7047    }]);
7048
7049    return ReadableStream;
7050  }();
7051
7052  module.exports = {
7053    ReadableStream: ReadableStream,
7054    IsReadableStreamDisturbed: IsReadableStreamDisturbed,
7055    ReadableStreamDefaultControllerClose: ReadableStreamDefaultControllerClose,
7056    ReadableStreamDefaultControllerEnqueue: ReadableStreamDefaultControllerEnqueue,
7057    ReadableStreamDefaultControllerError: ReadableStreamDefaultControllerError,
7058    ReadableStreamDefaultControllerGetDesiredSize: ReadableStreamDefaultControllerGetDesiredSize
7059  };
7060
7061  function AcquireReadableStreamBYOBReader(stream) {
7062    return new ReadableStreamBYOBReader(stream);
7063  }
7064
7065  function AcquireReadableStreamDefaultReader(stream) {
7066    return new ReadableStreamDefaultReader(stream);
7067  }
7068
7069  function IsReadableStream(x) {
7070    if (!typeIsObject(x)) {
7071      return false;
7072    }
7073
7074    if (!Object.prototype.hasOwnProperty.call(x, '_readableStreamController')) {
7075      return false;
7076    }
7077
7078    return true;
7079  }
7080
7081  function IsReadableStreamDisturbed(stream) {
7082    assert(IsReadableStream(stream) === true, 'IsReadableStreamDisturbed should only be used on known readable streams');
7083    return stream._disturbed;
7084  }
7085
7086  function IsReadableStreamLocked(stream) {
7087    assert(IsReadableStream(stream) === true, 'IsReadableStreamLocked should only be used on known readable streams');
7088
7089    if (stream._reader === undefined) {
7090      return false;
7091    }
7092
7093    return true;
7094  }
7095
7096  function ReadableStreamTee(stream, cloneForBranch2) {
7097    assert(IsReadableStream(stream) === true);
7098    assert(typeof cloneForBranch2 === 'boolean');
7099    var reader = AcquireReadableStreamDefaultReader(stream);
7100    var teeState = {
7101      closedOrErrored: false,
7102      canceled1: false,
7103      canceled2: false,
7104      reason1: undefined,
7105      reason2: undefined
7106    };
7107    teeState.promise = new Promise(function (resolve) {
7108      teeState._resolve = resolve;
7109    });
7110    var pull = create_ReadableStreamTeePullFunction();
7111    pull._reader = reader;
7112    pull._teeState = teeState;
7113    pull._cloneForBranch2 = cloneForBranch2;
7114    var cancel1 = create_ReadableStreamTeeBranch1CancelFunction();
7115    cancel1._stream = stream;
7116    cancel1._teeState = teeState;
7117    var cancel2 = create_ReadableStreamTeeBranch2CancelFunction();
7118    cancel2._stream = stream;
7119    cancel2._teeState = teeState;
7120    var underlyingSource1 = Object.create(Object.prototype);
7121    createDataProperty(underlyingSource1, 'pull', pull);
7122    createDataProperty(underlyingSource1, 'cancel', cancel1);
7123    var branch1Stream = new ReadableStream(underlyingSource1);
7124    var underlyingSource2 = Object.create(Object.prototype);
7125    createDataProperty(underlyingSource2, 'pull', pull);
7126    createDataProperty(underlyingSource2, 'cancel', cancel2);
7127    var branch2Stream = new ReadableStream(underlyingSource2);
7128    pull._branch1 = branch1Stream._readableStreamController;
7129    pull._branch2 = branch2Stream._readableStreamController;
7130
7131    reader._closedPromise.catch(function (r) {
7132      if (teeState.closedOrErrored === true) {
7133        return;
7134      }
7135
7136      ReadableStreamDefaultControllerError(pull._branch1, r);
7137      ReadableStreamDefaultControllerError(pull._branch2, r);
7138      teeState.closedOrErrored = true;
7139    });
7140
7141    return [branch1Stream, branch2Stream];
7142  }
7143
7144  function create_ReadableStreamTeePullFunction() {
7145    function f() {
7146      var reader = f._reader,
7147          branch1 = f._branch1,
7148          branch2 = f._branch2,
7149          teeState = f._teeState;
7150      return ReadableStreamDefaultReaderRead(reader).then(function (result) {
7151        assert(typeIsObject(result));
7152        var value = result.value;
7153        var done = result.done;
7154        assert(typeof done === 'boolean');
7155
7156        if (done === true && teeState.closedOrErrored === false) {
7157          if (teeState.canceled1 === false) {
7158            ReadableStreamDefaultControllerClose(branch1);
7159          }
7160
7161          if (teeState.canceled2 === false) {
7162            ReadableStreamDefaultControllerClose(branch2);
7163          }
7164
7165          teeState.closedOrErrored = true;
7166        }
7167
7168        if (teeState.closedOrErrored === true) {
7169          return;
7170        }
7171
7172        var value1 = value;
7173        var value2 = value;
7174
7175        if (teeState.canceled1 === false) {
7176          ReadableStreamDefaultControllerEnqueue(branch1, value1);
7177        }
7178
7179        if (teeState.canceled2 === false) {
7180          ReadableStreamDefaultControllerEnqueue(branch2, value2);
7181        }
7182      });
7183    }
7184
7185    return f;
7186  }
7187
7188  function create_ReadableStreamTeeBranch1CancelFunction() {
7189    function f(reason) {
7190      var stream = f._stream,
7191          teeState = f._teeState;
7192      teeState.canceled1 = true;
7193      teeState.reason1 = reason;
7194
7195      if (teeState.canceled2 === true) {
7196        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
7197        var cancelResult = ReadableStreamCancel(stream, compositeReason);
7198
7199        teeState._resolve(cancelResult);
7200      }
7201
7202      return teeState.promise;
7203    }
7204
7205    return f;
7206  }
7207
7208  function create_ReadableStreamTeeBranch2CancelFunction() {
7209    function f(reason) {
7210      var stream = f._stream,
7211          teeState = f._teeState;
7212      teeState.canceled2 = true;
7213      teeState.reason2 = reason;
7214
7215      if (teeState.canceled1 === true) {
7216        var compositeReason = createArrayFromList([teeState.reason1, teeState.reason2]);
7217        var cancelResult = ReadableStreamCancel(stream, compositeReason);
7218
7219        teeState._resolve(cancelResult);
7220      }
7221
7222      return teeState.promise;
7223    }
7224
7225    return f;
7226  }
7227
7228  function ReadableStreamAddReadIntoRequest(stream) {
7229    assert(IsReadableStreamBYOBReader(stream._reader) === true);
7230    assert(stream._state === 'readable' || stream._state === 'closed');
7231    var promise = new Promise(function (resolve, reject) {
7232      var readIntoRequest = {
7233        _resolve: resolve,
7234        _reject: reject
7235      };
7236
7237      stream._reader._readIntoRequests.push(readIntoRequest);
7238    });
7239    return promise;
7240  }
7241
7242  function ReadableStreamAddReadRequest(stream) {
7243    assert(IsReadableStreamDefaultReader(stream._reader) === true);
7244    assert(stream._state === 'readable');
7245    var promise = new Promise(function (resolve, reject) {
7246      var readRequest = {
7247        _resolve: resolve,
7248        _reject: reject
7249      };
7250
7251      stream._reader._readRequests.push(readRequest);
7252    });
7253    return promise;
7254  }
7255
7256  function ReadableStreamCancel(stream, reason) {
7257    stream._disturbed = true;
7258
7259    if (stream._state === 'closed') {
7260      return Promise.resolve(undefined);
7261    }
7262
7263    if (stream._state === 'errored') {
7264      return Promise.reject(stream._storedError);
7265    }
7266
7267    ReadableStreamClose(stream);
7268
7269    var sourceCancelPromise = stream._readableStreamController.__cancelSteps(reason);
7270
7271    return sourceCancelPromise.then(function () {
7272      return undefined;
7273    });
7274  }
7275
7276  function ReadableStreamClose(stream) {
7277    assert(stream._state === 'readable');
7278    stream._state = 'closed';
7279    var reader = stream._reader;
7280
7281    if (reader === undefined) {
7282      return undefined;
7283    }
7284
7285    if (IsReadableStreamDefaultReader(reader) === true) {
7286      for (var i = 0; i < reader._readRequests.length; i++) {
7287        var _resolve = reader._readRequests[i]._resolve;
7288
7289        _resolve(CreateIterResultObject(undefined, true));
7290      }
7291
7292      reader._readRequests = [];
7293    }
7294
7295    defaultReaderClosedPromiseResolve(reader);
7296    return undefined;
7297  }
7298
7299  function ReadableStreamError(stream, e) {
7300    assert(IsReadableStream(stream) === true, 'stream must be ReadableStream');
7301    assert(stream._state === 'readable', 'state must be readable');
7302    stream._state = 'errored';
7303    stream._storedError = e;
7304    var reader = stream._reader;
7305
7306    if (reader === undefined) {
7307      return undefined;
7308    }
7309
7310    if (IsReadableStreamDefaultReader(reader) === true) {
7311      for (var i = 0; i < reader._readRequests.length; i++) {
7312        var readRequest = reader._readRequests[i];
7313
7314        readRequest._reject(e);
7315      }
7316
7317      reader._readRequests = [];
7318    } else {
7319      assert(IsReadableStreamBYOBReader(reader), 'reader must be ReadableStreamBYOBReader');
7320
7321      for (var _i = 0; _i < reader._readIntoRequests.length; _i++) {
7322        var readIntoRequest = reader._readIntoRequests[_i];
7323
7324        readIntoRequest._reject(e);
7325      }
7326
7327      reader._readIntoRequests = [];
7328    }
7329
7330    defaultReaderClosedPromiseReject(reader, e);
7331
7332    reader._closedPromise.catch(function () {});
7333  }
7334
7335  function ReadableStreamFulfillReadIntoRequest(stream, chunk, done) {
7336    var reader = stream._reader;
7337    assert(reader._readIntoRequests.length > 0);
7338
7339    var readIntoRequest = reader._readIntoRequests.shift();
7340
7341    readIntoRequest._resolve(CreateIterResultObject(chunk, done));
7342  }
7343
7344  function ReadableStreamFulfillReadRequest(stream, chunk, done) {
7345    var reader = stream._reader;
7346    assert(reader._readRequests.length > 0);
7347
7348    var readRequest = reader._readRequests.shift();
7349
7350    readRequest._resolve(CreateIterResultObject(chunk, done));
7351  }
7352
7353  function ReadableStreamGetNumReadIntoRequests(stream) {
7354    return stream._reader._readIntoRequests.length;
7355  }
7356
7357  function ReadableStreamGetNumReadRequests(stream) {
7358    return stream._reader._readRequests.length;
7359  }
7360
7361  function ReadableStreamHasBYOBReader(stream) {
7362    var reader = stream._reader;
7363
7364    if (reader === undefined) {
7365      return false;
7366    }
7367
7368    if (IsReadableStreamBYOBReader(reader) === false) {
7369      return false;
7370    }
7371
7372    return true;
7373  }
7374
7375  function ReadableStreamHasDefaultReader(stream) {
7376    var reader = stream._reader;
7377
7378    if (reader === undefined) {
7379      return false;
7380    }
7381
7382    if (IsReadableStreamDefaultReader(reader) === false) {
7383      return false;
7384    }
7385
7386    return true;
7387  }
7388
7389  var ReadableStreamDefaultReader = function () {
7390    function ReadableStreamDefaultReader(stream) {
7391      _classCallCheck(this, ReadableStreamDefaultReader);
7392
7393      if (IsReadableStream(stream) === false) {
7394        throw new TypeError('ReadableStreamDefaultReader can only be constructed with a ReadableStream instance');
7395      }
7396
7397      if (IsReadableStreamLocked(stream) === true) {
7398        throw new TypeError('This stream has already been locked for exclusive reading by another reader');
7399      }
7400
7401      ReadableStreamReaderGenericInitialize(this, stream);
7402      this._readRequests = [];
7403    }
7404
7405    _createClass(ReadableStreamDefaultReader, [{
7406      key: 'cancel',
7407      value: function cancel(reason) {
7408        if (IsReadableStreamDefaultReader(this) === false) {
7409          return Promise.reject(defaultReaderBrandCheckException('cancel'));
7410        }
7411
7412        if (this._ownerReadableStream === undefined) {
7413          return Promise.reject(readerLockException('cancel'));
7414        }
7415
7416        return ReadableStreamReaderGenericCancel(this, reason);
7417      }
7418    }, {
7419      key: 'read',
7420      value: function read() {
7421        if (IsReadableStreamDefaultReader(this) === false) {
7422          return Promise.reject(defaultReaderBrandCheckException('read'));
7423        }
7424
7425        if (this._ownerReadableStream === undefined) {
7426          return Promise.reject(readerLockException('read from'));
7427        }
7428
7429        return ReadableStreamDefaultReaderRead(this);
7430      }
7431    }, {
7432      key: 'releaseLock',
7433      value: function releaseLock() {
7434        if (IsReadableStreamDefaultReader(this) === false) {
7435          throw defaultReaderBrandCheckException('releaseLock');
7436        }
7437
7438        if (this._ownerReadableStream === undefined) {
7439          return;
7440        }
7441
7442        if (this._readRequests.length > 0) {
7443          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
7444        }
7445
7446        ReadableStreamReaderGenericRelease(this);
7447      }
7448    }, {
7449      key: 'closed',
7450      get: function get() {
7451        if (IsReadableStreamDefaultReader(this) === false) {
7452          return Promise.reject(defaultReaderBrandCheckException('closed'));
7453        }
7454
7455        return this._closedPromise;
7456      }
7457    }]);
7458
7459    return ReadableStreamDefaultReader;
7460  }();
7461
7462  var ReadableStreamBYOBReader = function () {
7463    function ReadableStreamBYOBReader(stream) {
7464      _classCallCheck(this, ReadableStreamBYOBReader);
7465
7466      if (!IsReadableStream(stream)) {
7467        throw new TypeError('ReadableStreamBYOBReader can only be constructed with a ReadableStream instance given a ' + 'byte source');
7468      }
7469
7470      if (IsReadableByteStreamController(stream._readableStreamController) === false) {
7471        throw new TypeError('Cannot construct a ReadableStreamBYOBReader for a stream not constructed with a byte ' + '
7471source');
7472      }
7473
7474      if (IsReadableStreamLocked(stream)) {
7475        throw new TypeError('This stream has already been locked for exclusive reading by another reader');
7476      }
7477
7478      ReadableStreamReaderGenericInitialize(this, stream);
7479      this._readIntoRequests = [];
7480    }
7481
7482    _createClass(ReadableStreamBYOBReader, [{
7483      key: 'cancel',
7484      value: function cancel(reason) {
7485        if (!IsReadableStreamBYOBReader(this)) {
7486          return Promise.reject(byobReaderBrandCheckException('cancel'));
7487        }
7488
7489        if (this._ownerReadableStream === undefined) {
7490          return Promise.reject(readerLockException('cancel'));
7491        }
7492
7493        return ReadableStreamReaderGenericCancel(this, reason);
7494      }
7495    }, {
7496      key: 'read',
7497      value: function read(view) {
7498        if (!IsReadableStreamBYOBReader(this)) {
7499          return Promise.reject(byobReaderBrandCheckException('read'));
7500        }
7501
7502        if (this._ownerReadableStream === undefined) {
7503          return Promise.reject(readerLockException('read from'));
7504        }
7505
7506        if (!ArrayBuffer.isView(view)) {
7507          return Promise.reject(new TypeError('view must be an array buffer view'));
7508        }
7509
7510        if (view.byteLength === 0) {
7511          return Promise.reject(new TypeError('view must have non-zero byteLength'));
7512        }
7513
7514        return ReadableStreamBYOBReaderRead(this, view);
7515      }
7516    }, {
7517      key: 'releaseLock',
7518      value: function releaseLock() {
7519        if (!IsReadableStreamBYOBReader(this)) {
7520          throw byobReaderBrandCheckException('releaseLock');
7521        }
7522
7523        if (this._ownerReadableStream === undefined) {
7524          return;
7525        }
7526
7527        if (this._readIntoRequests.length > 0) {
7528          throw new TypeError('Tried to release a reader lock when that reader has pending read() calls un-settled');
7529        }
7530
7531        ReadableStreamReaderGenericRelease(this);
7532      }
7533    }, {
7534      key: 'closed',
7535      get: function get() {
7536        if (!IsReadableStreamBYOBReader(this)) {
7537          return Promise.reject(byobReaderBrandCheckException('closed'));
7538        }
7539
7540        return this._closedPromise;
7541      }
7542    }]);
7543
7544    return ReadableStreamBYOBReader;
7545  }();
7546
7547  function IsReadableStreamBYOBReader(x) {
7548    if (!typeIsObject(x)) {
7549      return false;
7550    }
7551
7552    if (!Object.prototype.hasOwnProperty.call(x, '_readIntoRequests')) {
7553      return false;
7554    }
7555
7556    return true;
7557  }
7558
7559  function IsReadableStreamDefaultReader(x) {
7560    if (!typeIsObject(x)) {
7561      return false;
7562    }
7563
7564    if (!Object.prototype.hasOwnProperty.call(x, '_readRequests')) {
7565      return false;
7566    }
7567
7568    return true;
7569  }
7570
7571  function ReadableStreamReaderGenericInitialize(reader, stream) {
7572    reader._ownerReadableStream = stream;
7573    stream._reader = reader;
7574
7575    if (stream._state === 'readable') {
7576      defaultReaderClosedPromiseInitialize(reader);
7577    } else if (stream._state === 'closed') {
7578      defaultReaderClosedPromiseInitializeAsResolved(reader);
7579    } else {
7580      assert(stream._state === 'errored', 'state must be errored');
7581      defaultReaderClosedPromiseInitializeAsRejected(reader, stream._storedError);
7582
7583      reader._closedPromise.catch(function () {});
7584    }
7585  }
7586
7587  function ReadableStreamReaderGenericCancel(reader, reason) {
7588    var stream = reader._ownerReadableStream;
7589    assert(stream !== undefined);
7590    return ReadableStreamCancel(stream, reason);
7591  }
7592
7593  function ReadableStreamReaderGenericRelease(reader) {
7594    assert(reader._ownerReadableStream !== undefined);
7595    assert(reader._ownerReadableStream._reader === reader);
7596
7597    if (reader._ownerReadableStream._state === 'readable') {
7598      defaultReaderClosedPromiseReject(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
7599    } else {
7600      defaultReaderClosedPromiseResetToRejected(reader, new TypeError('Reader was released and can no longer be used to monitor the stream\'s closedness'));
7601    }
7602
7603    reader._closedPromise.catch(function () {});
7604
7605    reader._ownerReadableStream._reader = undefined;
7606    reader._ownerReadableStream = undefined;
7607  }
7608
7609  function ReadableStreamBYOBReaderRead(reader, view) {
7610    var stream = reader._ownerReadableStream;
7611    assert(stream !== undefined);
7612    stream._disturbed = true;
7613
7614    if (stream._state === 'errored') {
7615      return Promise.reject(stream._storedError);
7616    }
7617
7618    return ReadableByteStreamControllerPullInto(stream._readableStreamController, view);
7619  }
7620
7621  function ReadableStreamDefaultReaderRead(reader) {
7622    var stream = reader._ownerReadableStream;
7623    assert(stream !== undefined);
7624    stream._disturbed = true;
7625
7626    if (stream._state === 'closed') {
7627      return Promise.resolve(CreateIterResultObject(undefined, true));
7628    }
7629
7630    if (stream._state === 'errored') {
7631      return Promise.reject(stream._storedError);
7632    }
7633
7634    assert(stream._state === 'readable');
7635    return stream._readableStreamController.__pullSteps();
7636  }
7637
7638  var ReadableStreamDefaultController = function () {
7639    function ReadableStreamDefaultController(stream, underlyingSource, size, highWaterMark) {
7640      _classCallCheck(this, ReadableStreamDefaultController);
7641
7642      if (IsReadableStream(stream) === false) {
7643        throw new TypeError('ReadableStreamDefaultController can only be constructed with a ReadableStream instance');
7644      }
7645
7646      if (stream._readableStreamController !== undefined) {
7647        throw new TypeError('ReadableStreamDefaultController instances can only be created by the ReadableStream constructor');
7648      }
7649
7650      this._controlledReadableStream = stream;
7651      this._underlyingSource = underlyingSource;
7652      this._queue = undefined;
7653      this._queueTotalSize = undefined;
7654      ResetQueue(this);
7655      this._started = false;
7656      this._closeRequested = false;
7657      this._pullAgain = false;
7658      this._pulling = false;
7659      var normalizedStrategy = ValidateAndNormalizeQueuingStrategy(size, highWaterMark);
7660      this._strategySize = normalizedStrategy.size;
7661      this._strategyHWM = normalizedStrategy.highWaterMark;
7662      var controller = this;
7663      var startResult = InvokeOrNoop(underlyingSource, 'start', [this]);
7664      Promise.resolve(startResult).then(function () {
7665        controller._started = true;
7666        assert(controller._pulling === false);
7667        assert(controller._pullAgain === false);
7668        ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7669      }, function (r) {
7670        ReadableStreamDefaultControllerErrorIfNeeded(controller, r);
7671      }).catch(rethrowAssertionErrorRejection);
7672    }
7673
7674    _createClass(ReadableStreamDefaultController, [{
7675      key: 'close',
7676      value: function close() {
7677        if (IsReadableStreamDefaultController(this) === false) {
7678          throw defaultControllerBrandCheckException('close');
7679        }
7680
7681        if (this._closeRequested === true) {
7682          throw new TypeError('The stream has already been closed; do not close it again!');
7683        }
7684
7685        var state = this._controlledReadableStream._state;
7686
7687        if (state !== 'readable') {
7688          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
7689        }
7690
7691        ReadableStreamDefaultControllerClose(this);
7692      }
7693    }, {
7694      key: 'enqueue',
7695      value: function enqueue(chunk) {
7696        if (IsReadableStreamDefaultController(this) === false) {
7697          throw defaultControllerBrandCheckException('enqueue');
7698        }
7699
7700        if (this._closeRequested === true) {
7701          throw new TypeError('stream is closed or draining');
7702        }
7703
7704        var state = this._controlledReadableStream._state;
7705
7706        if (state !== 'readable') {
7707          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
7708        }
7709
7710        return ReadableStreamDefaultControllerEnqueue(this, chunk);
7711      }
7712    }, {
7713      key: 'error',
7714      value: function error(e) {
7715        if (IsReadableStreamDefaultController(this) === false) {
7716          throw defaultControllerBrandCheckException('error');
7717        }
7718
7719        var stream = this._controlledReadableStream;
7720
7721        if (stream._state !== 'readable') {
7722          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
7723        }
7724
7725        ReadableStreamDefaultControllerError(this, e);
7726      }
7727    }, {
7728      key: '__cancelSteps',
7729      value: function __cancelSteps(reason) {
7730        ResetQueue(this);
7731        return PromiseInvokeOrNoop(this._underlyingSource, 'cancel', [reason]);
7732      }
7733    }, {
7734      key: '__pullSteps',
7735      value: function __pullSteps() {
7736        var stream = this._controlledReadableStream;
7737
7738        if (this._queue.length > 0) {
7739          var chunk = DequeueValue(this);
7740
7741          if (this._closeRequested === true && this._queue.length === 0) {
7742            ReadableStreamClose(stream);
7743          } else {
7744            ReadableStreamDefaultControllerCallPullIfNeeded(this);
7745          }
7746
7747          return Promise.resolve(CreateIterResultObject(chunk, false));
7748        }
7749
7750        var pendingPromise = ReadableStreamAddReadRequest(stream);
7751        ReadableStreamDefaultControllerCallPullIfNeeded(this);
7752        return pendingPromise;
7753      }
7754    }, {
7755      key: 'desiredSize',
7756      get: function get() {
7757        if (IsReadableStreamDefaultController(this) === false) {
7758          throw defaultControllerBrandCheckException('desiredSize');
7759        }
7760
7761        return ReadableStreamDefaultControllerGetDesiredSize(this);
7762      }
7763    }]);
7764
7765    return ReadableStreamDefaultController;
7766  }();
7767
7768  function IsReadableStreamDefaultController(x) {
7769    if (!typeIsObject(x)) {
7770      return false;
7771    }
7772
7773    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingSource')) {
7774      return false;
7775    }
7776
7777    return true;
7778  }
7779
7780  function ReadableStreamDefaultControllerCallPullIfNeeded(controller) {
7781    var shouldPull = ReadableStreamDefaultControllerShouldCallPull(controller);
7782
7783    if (shouldPull === false) {
7784      return undefined;
7785    }
7786
7787    if (controller._pulling === true) {
7788      controller._pullAgain = true;
7789      return undefined;
7790    }
7791
7792    assert(controller._pullAgain === false);
7793    controller._pulling = true;
7794    var pullPromise = PromiseInvokeOrNoop(controller._underlyingSource, 'pull', [controller]);
7795    pullPromise.then(function () {
7796      controller._pulling = false;
7797
7798      if (controller._pullAgain === true) {
7799        controller._pullAgain = false;
7800        return ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7801      }
7802
7803      return undefined;
7804    }, function (e) {
7805      ReadableStreamDefaultControllerErrorIfNeeded(controller, e);
7806    }).catch(rethrowAssertionErrorRejection);
7807    return undefined;
7808  }
7809
7810  function ReadableStreamDefaultControllerShouldCallPull(controller) {
7811    var stream = controller._controlledReadableStream;
7812
7813    if (stream._state === 'closed' || stream._state === 'errored') {
7814      return false;
7815    }
7816
7817    if (controller._closeRequested === true) {
7818      return false;
7819    }
7820
7821    if (controller._started === false) {
7822      return false;
7823    }
7824
7825    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
7826      return true;
7827    }
7828
7829    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
7830
7831    if (desiredSize > 0) {
7832      return true;
7833    }
7834
7835    return false;
7836  }
7837
7838  function ReadableStreamDefaultControllerClose(controller) {
7839    var stream = controller._controlledReadableStream;
7840    assert(controller._closeRequested === false);
7841    assert(stream._state === 'readable');
7842    controller._closeRequested = true;
7843
7844    if (controller._queue.length === 0) {
7845      ReadableStreamClose(stream);
7846    }
7847  }
7848
7849  function ReadableStreamDefaultControllerEnqueue(controller, chunk) {
7850    var stream = controller._controlledReadableStream;
7851    assert(controller._closeRequested === false);
7852    assert(stream._state === 'readable');
7853
7854    if (IsReadableStreamLocked(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
7855      ReadableStreamFulfillReadRequest(stream, chunk, false);
7856    } else {
7857      var chunkSize = 1;
7858
7859      if (controller._strategySize !== undefined) {
7860        var strategySize = controller._strategySize;
7861
7862        try {
7863          chunkSize = strategySize(chunk);
7864        } catch (chunkSizeE) {
7865          ReadableStreamDefaultControllerErrorIfNeeded(controller, chunkSizeE);
7866          throw chunkSizeE;
7867        }
7868      }
7869
7870      try {
7871        EnqueueValueWithSize(controller, chunk, chunkSize);
7872      } catch (enqueueE) {
7873        ReadableStreamDefaultControllerErrorIfNeeded(controller, enqueueE);
7874        throw enqueueE;
7875      }
7876    }
7877
7878    ReadableStreamDefaultControllerCallPullIfNeeded(controller);
7879    return undefined;
7880  }
7881
7882  function ReadableStreamDefaultControllerError(controller, e) {
7883    var stream = controller._controlledReadableStream;
7884    assert(stream._state === 'readable');
7885    ResetQueue(controller);
7886    ReadableStreamError(stream, e);
7887  }
7888
7889  function ReadableStreamDefaultControllerErrorIfNeeded(controller, e) {
7890    if (controller._controlledReadableStream._state === 'readable') {
7891      ReadableStreamDefaultControllerError(controller, e);
7892    }
7893  }
7894
7895  function ReadableStreamDefaultControllerGetDesiredSize(controller) {
7896    var stream = controller._controlledReadableStream;
7897    var state = stream._state;
7898
7899    if (state === 'errored') {
7900      return null;
7901    }
7902
7903    if (state === 'closed') {
7904      return 0;
7905    }
7906
7907    return controller._strategyHWM - controller._queueTotalSize;
7908  }
7909
7910  var ReadableStreamBYOBRequest = function () {
7911    function ReadableStreamBYOBRequest(controller, view) {
7912      _classCallCheck(this, ReadableStreamBYOBRequest);
7913
7914      this._associatedReadableByteStreamController = controller;
7915      this._view = view;
7916    }
7917
7918    _createClass(ReadableStreamBYOBRequest, [{
7919      key: 'respond',
7920      value: function respond(bytesWritten) {
7921        if (IsReadableStreamBYOBRequest(this) === false) {
7922          throw byobRequestBrandCheckException('respond');
7923        }
7924
7925        if (this._associatedReadableByteStreamController === undefined) {
7926          throw new TypeError('This BYOB request has been invalidated');
7927        }
7928
7929        ReadableByteStreamControllerRespond(this._associatedReadableByteStreamController, bytesWritten);
7930      }
7931    }, {
7932      key: 'respondWithNewView',
7933      value: function respondWithNewView(view) {
7934        if (IsReadableStreamBYOBRequest(this) === false) {
7935          throw byobRequestBrandCheckException('respond');
7936        }
7937
7938        if (this._associatedReadableByteStreamController === undefined) {
7939          throw new TypeError('This BYOB request has been invalidated');
7940        }
7941
7942        if (!ArrayBuffer.isView(view)) {
7943          throw new TypeError('You can only respond with array buffer views');
7944        }
7945
7946        ReadableByteStreamControllerRespondWithNewView(this._associatedReadableByteStreamController, view);
7947      }
7948    }, {
7949      key: 'view',
7950      get: function get() {
7951        return this._view;
7952      }
7953    }]);
7954
7955    return ReadableStreamBYOBRequest;
7956  }();
7957
7958  var ReadableByteStreamController = function () {
7959    function ReadableByteStreamController(stream, underlyingByteSource, highWaterMark) {
7960      _classCallCheck(this, ReadableByteStreamController);
7961
7962      if (IsReadableStream(stream) === false) {
7963        throw new TypeError('ReadableByteStreamController can only be constructed with a ReadableStream instance given ' + 'a byte source');
7964      }
7965
7966      if (stream._readableStreamController !== undefined) {
7967        throw new TypeError('ReadableByteStreamController instances can only be created by the ReadableStream constructor given a byte ' + 'source');
7968      }
7969
7970      this._controlledReadableStream = stream;
7971      this._underlyingByteSource = underlyingByteSource;
7972      this._pullAgain = false;
7973      this._pulling = false;
7974      ReadableByteStreamControllerClearPendingPullIntos(this);
7975      this._queue = this._queueTotalSize = undefined;
7976      ResetQueue(this);
7977      this._closeRequested = false;
7978      this._started = false;
7979      this._strategyHWM = ValidateAndNormalizeHighWaterMark(highWaterMark);
7980      var autoAllocateChunkSize = underlyingByteSource.autoAllocateChunkSize;
7981
7982      if (autoAllocateChunkSize !== undefined) {
7983        if (Number.isInteger(autoAllocateChunkSize) === false || autoAllocateChunkSize <= 0) {
7984          throw new RangeError('autoAllocateChunkSize must be a positive integer');
7985        }
7986      }
7987
7988      this._autoAllocateChunkSize = autoAllocateChunkSize;
7989      this._pendingPullIntos = [];
7990      var controller = this;
7991      var startResult = InvokeOrNoop(underlyingByteSource, 'start', [this]);
7992      Promise.resolve(startResult).then(function () {
7993        controller._started = true;
7994        assert(controller._pulling === false);
7995        assert(controller._pullAgain === false);
7996        ReadableByteStreamControllerCallPullIfNeeded(controller);
7997      }, function (r) {
7998        if (stream._state === 'readable') {
7999          ReadableByteStreamControllerError(controller, r);
8000        }
8001      }).catch(rethrowAssertionErrorRejection);
8002    }
8003
8004    _createClass(ReadableByteStreamController, [{
8005      key: 'close',
8006      value: function close() {
8007        if (IsReadableByteStreamController(this) === false) {
8008          throw byteStreamControllerBrandCheckException('close');
8009        }
8010
8011        if (this._closeRequested === true) {
8012          throw new TypeError('The stream has already been closed; do not close it again!');
8013        }
8014
8015        var state = this._controlledReadableStream._state;
8016
8017        if (state !== 'readable') {
8018          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be closed');
8019        }
8020
8021        ReadableByteStreamControllerClose(this);
8022      }
8023    }, {
8024      key: 'enqueue',
8025      value: function enqueue(chunk) {
8026        if (IsReadableByteStreamController(this) === false) {
8027          throw byteStreamControllerBrandCheckException('enqueue');
8028        }
8029
8030        if (this._closeRequested === true) {
8031          throw new TypeError('stream is closed or draining');
8032        }
8033
8034        var state = this._controlledReadableStream._state;
8035
8036        if (state !== 'readable') {
8037          throw new TypeError('The stream (in ' + state + ' state) is not in the readable state and cannot be enqueued to');
8038        }
8039
8040        if (!ArrayBuffer.isView(chunk)) {
8041          throw new TypeError('You can only enqueue array buffer views when using a ReadableByteStreamController');
8042        }
8043
8044        ReadableByteStreamControllerEnqueue(this, chunk);
8045      }
8046    }, {
8047      key: 'error',
8048      value: function error(e) {
8049        if (IsReadableByteStreamController(this) === false) {
8050          throw byteStreamControllerBrandCheckException('error');
8051        }
8052
8053        var stream = this._controlledReadableStream;
8054
8055        if (stream._state !== 'readable') {
8056          throw new TypeError('The stream is ' + stream._state + ' and so cannot be errored');
8057        }
8058
8059        ReadableByteStreamControllerError(this, e);
8060      }
8061    }, {
8062      key: '__cancelSteps',
8063      value: function __cancelSteps(reason) {
8064        if (this._pendingPullIntos.length > 0) {
8065          var firstDescriptor = this._pendingPullIntos[0];
8066          firstDescriptor.bytesFilled = 0;
8067        }
8068
8069        ResetQueue(this);
8070        return PromiseInvokeOrNoop(this._underlyingByteSource, 'cancel', [reason]);
8071      }
8072    }, {
8073      key: '__pullSteps',
8074      value: function __pullSteps() {
8075        var stream = this._controlledReadableStream;
8076        assert(ReadableStreamHasDefaultReader(stream) === true);
8077
8078        if (this._queueTotalSize > 0) {
8079          assert(ReadableStreamGetNumReadRequests(stream) === 0);
8080
8081          var entry = this._queue.shift();
8082
8083          this._queueTotalSize -= entry.byteLength;
8084          ReadableByteStreamControllerHandleQueueDrain(this);
8085          var view = void 0;
8086
8087          try {
8088            view = new Uint8Array(entry.buffer, entry.byteOffset, entry.byteLength);
8089          } catch (viewE) {
8090            return Promise.reject(viewE);
8091          }
8092
8093          return Promise.resolve(CreateIterResultObject(view, false));
8094        }
8095
8096        var autoAllocateChunkSize = this._autoAllocateChunkSize;
8097
8098        if (autoAllocateChunkSize !== undefined) {
8099          var buffer = void 0;
8100
8101          try {
8102            buffer = new ArrayBuffer(autoAllocateChunkSize);
8103          } catch (bufferE) {
8104            return Promise.reject(bufferE);
8105          }
8106
8107          var pullIntoDescriptor = {
8108            buffer: buffer,
8109            byteOffset: 0,
8110            byteLength: autoAllocateChunkSize,
8111            bytesFilled: 0,
8112            elementSize: 1,
8113            ctor: Uint8Array,
8114            readerType: 'default'
8115          };
8116
8117          this._pendingPullIntos.push(pullIntoDescriptor);
8118        }
8119
8120        var promise = ReadableStreamAddReadRequest(stream);
8121        ReadableByteStreamControllerCallPullIfNeeded(this);
8122        return promise;
8123      }
8124    }, {
8125      key: 'byobRequest',
8126      get: function get() {
8127        if (IsReadableByteStreamController(this) === false) {
8128          throw byteStreamControllerBrandCheckException('byobRequest');
8129        }
8130
8131        if (this._byobRequest === undefined && this._pendingPullIntos.length > 0) {
8132          var firstDescriptor = this._pendingPullIntos[0];
8133          var view = new Uint8Array(firstDescriptor.buffer, firstDescriptor.byteOffset + firstDescriptor.bytesFilled, firstDescriptor.byteLength - firstDescriptor.bytesFilled);
8134          this._byobRequest = new ReadableStreamBYOBRequest(this, view);
8135        }
8136
8137        return this._byobRequest;
8138      }
8139    }, {
8140      key: 'desiredSize',
8141      get: function get() {
8142        if (IsReadableByteStreamController(this) === false) {
8143          throw byteStreamControllerBrandCheckException('desiredSize');
8144        }
8145
8146        return ReadableByteStreamControllerGetDesiredSize(this);
8147      }
8148    }]);
8149
8150    return ReadableByteStreamController;
8151  }();
8152
8153  function IsReadableByteStreamController(x) {
8154    if (!typeIsObject(x)) {
8155      return false;
8156    }
8157
8158    if (!Object.prototype.hasOwnProperty.call(x, '_underlyingByteSource')) {
8159      return false;
8160    }
8161
8162    return true;
8163  }
8164
8165  function IsReadableStreamBYOBRequest(x) {
8166    if (!typeIsObject(x)) {
8167      return false;
8168    }
8169
8170    if (!Object.prototype.hasOwnProperty.call(x, '_associatedReadableByteStreamController')) {
8171      return false;
8172    }
8173
8174    return true;
8175  }
8176
8177  function ReadableByteStreamControllerCallPullIfNeeded(controller) {
8178    var shouldPull = ReadableByteStreamControllerShouldCallPull(controller);
8179
8180    if (shouldPull === false) {
8181      return undefined;
8182    }
8183
8184    if (controller._pulling === true) {
8185      controller._pullAgain = true;
8186      return undefined;
8187    }
8188
8189    assert(controller._pullAgain === false);
8190    controller._pulling = true;
8191    var pullPromise = PromiseInvokeOrNoop(controller._underlyingByteSource, 'pull', [controller]);
8192    pullPromise.then(function () {
8193      controller._pulling = false;
8194
8195      if (controller._pullAgain === true) {
8196        controller._pullAgain = false;
8197        ReadableByteStreamControllerCallPullIfNeeded(controller);
8198      }
8199    }, function (e) {
8200      if (controller._controlledReadableStream._state === 'readable') {
8201        ReadableByteStreamControllerError(controller, e);
8202      }
8203    }).catch(rethrowAssertionErrorRejection);
8204    return undefined;
8205  }
8206
8207  function ReadableByteStreamControllerClearPendingPullIntos(controller) {
8208    ReadableByteStreamControllerInvalidateBYOBRequest(controller);
8209    controller._pendingPullIntos = [];
8210  }
8211
8212  function ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor) {
8213    assert(stream._state !== 'errored', 'state must not be errored');
8214    var done = false;
8215
8216    if (stream._state === 'closed') {
8217      assert(pullIntoDescriptor.bytesFilled === 0);
8218      done = true;
8219    }
8220
8221    var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
8222
8223    if (pullIntoDescriptor.readerType === 'default') {
8224      ReadableStreamFulfillReadRequest(stream, filledView, done);
8225    } else {
8226      assert(pullIntoDescriptor.readerType === 'byob');
8227      ReadableStreamFulfillReadIntoRequest(stream, filledView, done);
8228    }
8229  }
8230
8231  function ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor) {
8232    var bytesFilled = pullIntoDescriptor.bytesFilled;
8233    var elementSize = pullIntoDescriptor.elementSize;
8234    assert(bytesFilled <= pullIntoDescriptor.byteLength);
8235    assert(bytesFilled % elementSize === 0);
8236    return new pullIntoDescriptor.ctor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, bytesFilled / elementSize);
8237  }
8238
8239  function ReadableByteStreamControllerEnqueueChunkToQueue(controller, buffer, byteOffset, byteLength) {
8240    controller._queue.push({
8241      buffer: buffer,
8242      byteOffset: byteOffset,
8243      byteLength: byteLength
8244    });
8245
8246    controller._queueTotalSize += byteLength;
8247  }
8248
8249  function ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) {
8250    var elementSize = pullIntoDescriptor.elementSize;
8251    var currentAlignedBytes = pullIntoDescriptor.bytesFilled - pullIntoDescriptor.bytesFilled % elementSize;
8252    var maxBytesToCopy = Math.min(controller._queueTotalSize, pullIntoDescriptor.byteLength - pullIntoDescriptor.bytesFilled);
8253    var maxBytesFilled = pullIntoDescriptor.bytesFilled + maxBytesToCopy;
8254    var maxAlignedBytes = maxBytesFilled - maxBytesFilled % elementSize;
8255    var totalBytesToCopyRemaining = maxBytesToCopy;
8256    var ready = false;
8257
8258    if (maxAlignedBytes > currentAlignedBytes) {
8259      totalBytesToCopyRemaining = maxAlignedBytes - pullIntoDescriptor.bytesFilled;
8260      ready = true;
8261    }
8262
8263    var queue = controller._queue;
8264
8265    while (totalBytesToCopyRemaining > 0) {
8266      var headOfQueue = queue[0];
8267      var bytesToCopy = Math.min(totalBytesToCopyRemaining, headOfQueue.byteLength);
8268      var destStart = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
8269      ArrayBufferCopy(pullIntoDescriptor.buffer, destStart, headOfQueue.buffer, headOfQueue.byteOffset, bytesToCopy);
8270
8271      if (headOfQueue.byteLength === bytesToCopy) {
8272        queue.shift();
8273      } else {
8274        headOfQueue.byteOffset += bytesToCopy;
8275        headOfQueue.byteLength -= bytesToCopy;
8276      }
8277
8278      controller._queueTotalSize -= bytesToCopy;
8279      ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesToCopy, pullIntoDescriptor);
8280      totalBytesToCopyRemaining -= bytesToCopy;
8281    }
8282
8283    if (ready === false) {
8284      assert(controller._queueTotalSize === 0, 'queue must be empty');
8285      assert(pullIntoDescriptor.bytesFilled > 0);
8286      assert(pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize);
8287    }
8288
8289    return ready;
8290  }
8291
8292  function ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, size, pullIntoDescriptor) {
8293    assert(controller._pendingPullIntos.length === 0 || controller._pendingPullIntos[0] === pullIntoDescriptor);
8294    ReadableByteStreamControllerInvalidateBYOBRequest(controller);
8295    pullIntoDescriptor.bytesFilled += size;
8296  }
8297
8298  function ReadableByteStreamControllerHandleQueueDrain(controller) {
8299    assert(controller._controlledReadableStream._state === 'readable');
8300
8301    if (controller._queueTotalSize === 0 && controller._closeRequested === true) {
8302      ReadableStreamClose(controller._controlledReadableStream);
8303    } else {
8304      ReadableByteStreamControllerCallPullIfNeeded(controller);
8305    }
8306  }
8307
8308  function ReadableByteStreamControllerInvalidateBYOBRequest(controller) {
8309    if (controller._byobRequest === undefined) {
8310      return;
8311    }
8312
8313    controller._byobRequest._associatedReadableByteStreamController = undefined;
8314    controller._byobRequest._view = undefined;
8315    controller._byobRequest = undefined;
8316  }
8317
8318  function ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller) {
8319    assert(controller._closeRequested === false);
8320
8321    while (controller._pendingPullIntos.length > 0) {
8322      if (controller._queueTotalSize === 0) {
8323        return;
8324      }
8325
8326      var pullIntoDescriptor = controller._pendingPullIntos[0];
8327
8328      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
8329        ReadableByteStreamControllerShiftPendingPullInto(controller);
8330        ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
8331      }
8332    }
8333  }
8334
8335  function ReadableByteStreamControllerPullInto(controller, view) {
8336    var stream = controller._controlledReadableStream;
8337    var elementSize = 1;
8338
8339    if (view.constructor !== DataView) {
8340      elementSize = view.constructor.BYTES_PER_ELEMENT;
8341    }
8342
8343    var ctor = view.constructor;
8344    var pullIntoDescriptor = {
8345      buffer: view.buffer,
8346      byteOffset: view.byteOffset,
8347      byteLength: view.byteLength,
8348      bytesFilled: 0,
8349      elementSize: elementSize,
8350      ctor: ctor,
8351      readerType: 'byob'
8352    };
8353
8354    if (controller._pendingPullIntos.length > 0) {
8355      pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
8356
8357      controller._pendingPullIntos.push(pullIntoDescriptor);
8358
8359      return ReadableStreamAddReadIntoRequest(stream);
8360    }
8361
8362    if (stream._state === 'closed') {
8363      var emptyView = new view.constructor(pullIntoDescriptor.buffer, pullIntoDescriptor.byteOffset, 0);
8364      return Promise.resolve(CreateIterResultObject(emptyView, true));
8365    }
8366
8367    if (controller._queueTotalSize > 0) {
8368      if (ReadableByteStreamControllerFillPullIntoDescriptorFromQueue(controller, pullIntoDescriptor) === true) {
8369        var filledView = ReadableByteStreamControllerConvertPullIntoDescriptor(pullIntoDescriptor);
8370        ReadableByteStreamControllerHandleQueueDrain(controller);
8371        return Promise.resolve(CreateIterResultObject(filledView, false));
8372      }
8373
8374      if (controller._closeRequested === true) {
8375        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
8376        ReadableByteStreamControllerError(controller, e);
8377        return Promise.reject(e);
8378      }
8379    }
8380
8381    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
8382
8383    controller._pendingPullIntos.push(pullIntoDescriptor);
8384
8385    var promise = ReadableStreamAddReadIntoRequest(stream);
8386    ReadableByteStreamControllerCallPullIfNeeded(controller);
8387    return promise;
8388  }
8389
8390  function ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor) {
8391    firstDescriptor.buffer = TransferArrayBuffer(firstDescriptor.buffer);
8392    assert(firstDescriptor.bytesFilled === 0, 'bytesFilled must be 0');
8393    var stream = controller._controlledReadableStream;
8394
8395    if (ReadableStreamHasBYOBReader(stream) === true) {
8396      while (ReadableStreamGetNumReadIntoRequests(stream) > 0) {
8397        var pullIntoDescriptor = ReadableByteStreamControllerShiftPendingPullInto(controller);
8398        ReadableByteStreamControllerCommitPullIntoDescriptor(stream, pullIntoDescriptor);
8399      }
8400    }
8401  }
8402
8403  function ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, pullIntoDescriptor) {
8404    if (pullIntoDescriptor.bytesFilled + bytesWritten > pullIntoDescriptor.byteLength) {
8405      throw new RangeError('bytesWritten out of range');
8406    }
8407
8408    ReadableByteStreamControllerFillHeadPullIntoDescriptor(controller, bytesWritten, pullIntoDescriptor);
8409
8410    if (pullIntoDescriptor.bytesFilled < pullIntoDescriptor.elementSize) {
8411      return;
8412    }
8413
8414    ReadableByteStreamControllerShiftPendingPullInto(controller);
8415    var remainderSize = pullIntoDescriptor.bytesFilled % pullIntoDescriptor.elementSize;
8416
8417    if (remainderSize > 0) {
8418      var end = pullIntoDescriptor.byteOffset + pullIntoDescriptor.bytesFilled;
8419      var remainder = pullIntoDescriptor.buffer.slice(end - remainderSize, end);
8420      ReadableByteStreamControllerEnqueueChunkToQueue(controller, remainder, 0, remainder.byteLength);
8421    }
8422
8423    pullIntoDescriptor.buffer = TransferArrayBuffer(pullIntoDescriptor.buffer);
8424    pullIntoDescriptor.bytesFilled -= remainderSize;
8425    ReadableByteStreamControllerCommitPullIntoDescriptor(controller._controlledReadableStream, pullIntoDescriptor);
8426    ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
8427  }
8428
8429  function ReadableByteStreamControllerRespondInternal(controller, bytesWritten) {
8430    var firstDescriptor = controller._pendingPullIntos[0];
8431    var stream = controller._controlledReadableStream;
8432
8433    if (stream._state === 'closed') {
8434      if (bytesWritten !== 0) {
8435        throw new TypeError('bytesWritten must be 0 when calling respond() on a closed stream');
8436      }
8437
8438      ReadableByteStreamControllerRespondInClosedState(controller, firstDescriptor);
8439    } else {
8440      assert(stream._state === 'readable');
8441      ReadableByteStreamControllerRespondInReadableState(controller, bytesWritten, firstDescriptor);
8442    }
8443  }
8444
8445  function ReadableByteStreamControllerShiftPendingPullInto(controller) {
8446    var descriptor = controller._pendingPullIntos.shift();
8447
8448    ReadableByteStreamControllerInvalidateBYOBRequest(controller);
8449    return descriptor;
8450  }
8451
8452  function ReadableByteStreamControllerShouldCallPull(controller) {
8453    var stream = controller._controlledReadableStream;
8454
8455    if (stream._state !== 'readable') {
8456      return false;
8457    }
8458
8459    if (controller._closeRequested === true) {
8460      return false;
8461    }
8462
8463    if (controller._started === false) {
8464      return false;
8465    }
8466
8467    if (ReadableStreamHasDefaultReader(stream) === true && ReadableStreamGetNumReadRequests(stream) > 0) {
8468      return true;
8469    }
8470
8471    if (ReadableStreamHasBYOBReader(stream) === true && ReadableStreamGetNumReadIntoRequests(stream) > 0) {
8472      return true;
8473    }
8474
8475    if (ReadableByteStreamControllerGetDesiredSize(controller) > 0) {
8476      return true;
8477    }
8478
8479    return false;
8480  }
8481
8482  function ReadableByteStreamControllerClose(controller) {
8483    var stream = controller._controlledReadableStream;
8484    assert(controller._closeRequested === false);
8485    assert(stream._state === 'readable');
8486
8487    if (controller._queueTotalSize > 0) {
8488      controller._closeRequested = true;
8489      return;
8490    }
8491
8492    if (controller._pendingPullIntos.length > 0) {
8493      var firstPendingPullInto = controller._pendingPullIntos[0];
8494
8495      if (firstPendingPullInto.bytesFilled > 0) {
8496        var e = new TypeError('Insufficient bytes to fill elements in the given buffer');
8497        ReadableByteStreamControllerError(controller, e);
8498        throw e;
8499      }
8500    }
8501
8502    ReadableStreamClose(stream);
8503  }
8504
8505  function ReadableByteStreamControllerEnqueue(controller, chunk) {
8506    var stream = controller._controlledReadableStream;
8507    assert(controller._closeRequested === false);
8508    assert(stream._state === 'readable');
8509    var buffer = chunk.buffer;
8510    var byteOffset = chunk.byteOffset;
8511    var byteLength = chunk.byteLength;
8512    var transferredBuffer = TransferArrayBuffer(buffer);
8513
8514    if (ReadableStreamHasDefaultReader(stream) === true) {
8515      if (ReadableStreamGetNumReadRequests(stream) === 0) {
8516        ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8517      } else {
8518        assert(controller._queue.length === 0);
8519        var transferredView = new Uint8Array(transferredBuffer, byteOffset, byteLength);
8520        ReadableStreamFulfillReadRequest(stream, transferredView, false);
8521      }
8522    } else if (ReadableStreamHasBYOBReader(stream) === true) {
8523      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8524      ReadableByteStreamControllerProcessPullIntoDescriptorsUsingQueue(controller);
8525    } else {
8526      assert(IsReadableStreamLocked(stream) === false, 'stream must not be locked');
8527      ReadableByteStreamControllerEnqueueChunkToQueue(controller, transferredBuffer, byteOffset, byteLength);
8528    }
8529  }
8530
8531  function ReadableByteStreamControllerError(controller, e) {
8532    var stream = controller._controlledReadableStream;
8533    assert(stream._state === 'readable');
8534    ReadableByteStreamControllerClearPendingPullIntos(controller);
8535    ResetQueue(controller);
8536    ReadableStreamError(stream, e);
8537  }
8538
8539  function ReadableByteStreamControllerGetDesiredSize(controller) {
8540    var stream = controller._controlledReadableStream;
8541    var state = stream._state;
8542
8543    if (state === 'errored') {
8544      return null;
8545    }
8546
8547    if (state === 'closed') {
8548      return 0;
8549    }
8550
8551    return controller._strategyHWM - controller._queueTotalSize;
8552  }
8553
8554  function ReadableByteStreamControllerRespond(controller, bytesWritten) {
8555    bytesWritten = Number(bytesWritten);
8556
8557    if (IsFiniteNonNegativeNumber(bytesWritten) === false) {
8558      throw new RangeError('bytesWritten must be a finite');
8559    }
8560
8561    assert(controller._pendingPullIntos.length > 0);
8562    ReadableByteStreamControllerRespondInternal(controller, bytesWritten);
8563  }
8564
8565  function ReadableByteStreamControllerRespondWithNewView(controller, view) {
8566    assert(controller._pendingPullIntos.length > 0);
8567    var firstDescriptor = controller._pendingPullIntos[0];
8568
8569    if (firstDescriptor.byteOffset + firstDescriptor.bytesFilled !== view.byteOffset) {
8570      throw new RangeError('The region specified by view does not match byobRequest');
8571    }
8572
8573    if (firstDescriptor.byteLength !== view.byteLength) {
8574      throw new RangeError('The buffer of view has different capacity than byobRequest');
8575    }
8576
8577    firstDescriptor.buffer = view.buffer;
8578    ReadableByteStreamControllerRespondInternal(controller, view.byteLength);
8579  }
8580
8581  function streamBrandCheckException(name) {
8582    return new TypeError('ReadableStream.prototype.' + name + ' can only be used on a ReadableStream');
8583  }
8584
8585  function readerLockException(name) {
8586    return new TypeError('Cannot ' + name + ' a stream using a released reader');
8587  }
8588
8589  function defaultReaderBrandCheckException(name) {
8590    return new TypeError('ReadableStreamDefaultReader.prototype.' + name + ' can only be used on a ReadableStreamDefaultReader');
8591  }
8592
8593  function defaultReaderClosedPromiseInitialize(reader) {
8594    reader._closedPromise = new Promise(function (resolve, reject) {
8595      reader._closedPromise_resolve = resolve;
8596      reader._closedPromise_reject = reject;
8597    });
8598  }
8599
8600  function defaultReaderClosedPromiseInitializeAsRejected(reader, reason) {
8601    reader._closedPromise = Promise.reject(reason);
8602    reader._closedPromise_resolve = undefined;
8603    reader._closedPromise_reject = undefined;
8604  }
8605
8606  function defaultReaderClosedPromiseInitializeAsResolved(reader) {
8607    reader._closedPromise = Promise.resolve(undefined);
8608    reader._closedPromise_resolve = undefined;
8609    reader._closedPromise_reject = undefined;
8610  }
8611
8612  function defaultReaderClosedPromiseReject(reader, reason) {
8613    assert(reader._closedPromise_resolve !== undefined);
8614    assert(reader._closedPromise_reject !== undefined);
8615
8616    reader._closedPromise_reject(reason);
8617
8618    reader._closedPromise_resolve = undefined;
8619    reader._closedPromise_reject = undefined;
8620  }
8621
8622  function defaultReaderClosedPromiseResetToRejected(reader, reason) {
8623    assert(reader._closedPromise_resolve === undefined);
8624    assert(reader._closedPromise_reject === undefined);
8625    reader._closedPromise = Promise.reject(reason);
8626  }
8627
8628  function defaultReaderClosedPromiseResolve(reader) {
8629    assert(reader._closedPromise_resolve !== undefined);
8630    assert(reader._closedPromise_reject !== undefined);
8631
8632    reader._closedPromise_resolve(undefined);
8633
8634    reader._closedPromise_resolve = undefined;
8635    reader._closedPromise_reject = undefined;
8636  }
8637
8638  function byobReaderBrandCheckException(name) {
8639    return new TypeError('ReadableStreamBYOBReader.prototype.' + name + ' can only be used on a ReadableStreamBYOBReader');
8640  }
8641
8642  function defaultControllerBrandCheckException(name) {
8643    return new TypeError('ReadableStreamDefaultController.prototype.' + name + ' can only be used on a ReadableStreamDefaultController');
8644  }
8645
8646  function byobRequestBrandCheckException(name) {
8647    return new TypeError('ReadableStreamBYOBRequest.prototype.' + name + ' can only be used on a ReadableStreamBYOBRequest');
8648  }
8649
8650  function byteStreamControllerBrandCheckException(name) {
8651    return new TypeError('ReadableByteStreamController.prototype.' + name + ' can only be used on a ReadableByteStreamController');
8652  }
8653
8654  function ifIsObjectAndHasAPromiseIsHandledInternalSlotSetPromiseIsHandledToTrue(promise) {
8655    try {
8656      Promise.prototype.then.call(promise, undefined, function () {});
8657    } catch (e) {}
8658  }
8659}, function (module, exports, __w_pdfjs_require__) {
8660  "use strict";
8661
8662  var transformStream = __w_pdfjs_require__(6);
8663
8664  var readableStream = __w_pdfjs_require__(4);
8665
8666  var writableStream = __w_pdfjs_require__(2);
8667
8668  exports.TransformStream = transformStream.TransformStream;
8669  exports.ReadableStream = readableStream.ReadableStream;
8670  exports.IsReadableStreamDisturbed = readableStream.IsReadableStreamDisturbed;
8671  exports.ReadableStreamDefaultControllerClose = readableStream.ReadableStreamDefaultControllerClose;
8672  exports.ReadableStreamDefaultControllerEnqueue = readableStream.ReadableStreamDefaultControllerEnqueue;
8673  exports.ReadableStreamDefaultControllerError = readableStream.ReadableStreamDefaultControllerError;
8674  exports.ReadableStreamDefaultControllerGetDesiredSize = readableStream.ReadableStreamDefaultControllerGetDesiredSize;
8675  exports.AcquireWritableStreamDefaultWriter = writableStream.AcquireWritableStreamDefaultWriter;
8676  exports.IsWritableStream = writableStream.IsWritableStream;
8677  exports.IsWritableStreamLocked = writableStream.IsWritableStreamLocked;
8678  exports.WritableStream = writableStream.WritableStream;
8679  exports.WritableStreamAbort = writableStream.WritableStreamAbort;
8680  exports.WritableStreamDefaultControllerError = writableStream.WritableStreamDefaultControllerError;
8681  exports.WritableStreamDefaultWriterCloseWithErrorPropagation = writableStream.WritableStreamDefaultWriterCloseWithErrorPropagation;
8682  exports.WritableStreamDefaultWriterRelease = writableStream.WritableStreamDefaultWriterRelease;
8683  exports.WritableStreamDefaultWriterWrite = writableStream.WritableStreamDefaultWriterWrite;
8684}, function (module, exports, __w_pdfjs_require__) {
8685  "use strict";
8686
8687  var _createClass = function () {
8688    function defineProperties(target, props) {
8689      for (var i = 0; i < props.length; i++) {
8690        var descriptor = props[i];
8691        descriptor.enumerable = descriptor.enumerable || false;
8692        descriptor.configurable = true;
8693        if ("value" in descriptor) descriptor.writable = true;
8694        Object.defineProperty(target, descriptor.key, descriptor);
8695      }
8696    }
8697
8698    return function (Constructor, protoProps, staticProps) {
8699      if (protoProps) defineProperties(Constructor.prototype, protoProps);
8700      if (staticProps) defineProperties(Constructor, staticProps);
8701      return Constructor;
8702    };
8703  }();
8704
8705  function _classCallCheck(instance, Constructor) {
8706    if (!(instance instanceof Constructor)) {
8707      throw new TypeError("Cannot call a class as a function");
8708    }
8709  }
8710
8711  var _require = __w_pdfjs_require__(1),
8712      assert = _require.assert;
8713
8714  var _require2 = __w_pdfjs_require__(0),
8715      InvokeOrNoop = _require2.InvokeOrNoop,
8716      PromiseInvokeOrPerformFallback = _require2.PromiseInvokeOrPerformFallback,
8717      PromiseInvokeOrNoop = _require2.PromiseInvokeOrNoop,
8718      typeIsObject = _require2.typeIsObject;
8719
8720  var _require3 = __w_pdfjs_require__(4),
8721      ReadableStream = _require3.ReadableStream,
8722      ReadableStreamDefaultControllerClose = _require3.ReadableStreamDefaultControllerClose,
8723      ReadableStreamDefaultControllerEnqueue = _require3.ReadableStreamDefaultControllerEnqueue,
8724      ReadableStreamDefaultControllerError = _require3.ReadableStreamDefaultControllerError,
8725      ReadableStreamDefaultControllerGetDesiredSize = _require3.ReadableStreamDefaultControllerGetDesiredSize;
8726
8727  var _require4 = __w_pdfjs_require__(2),
8728      WritableStream = _require4.WritableStream,
8729      WritableStreamDefaultControllerError = _require4.WritableStreamDefaultControllerError;
8730
8731  function TransformStreamCloseReadable(transformStream) {
8732    if (transformStream._errored === true) {
8733      throw new TypeError('TransformStream is already errored');
8734    }
8735
8736    if (transformStream._readableClosed === true) {
8737      throw new TypeError('Readable side is already closed');
8738    }
8739
8740    TransformStreamCloseReadableInternal(transformStream);
8741  }
8742
8743  function TransformStreamEnqueueToReadable(transformStream, chunk) {
8744    if (transformStream._errored === true) {
8745      throw new TypeError('TransformStream is already errored');
8746    }
8747
8748    if (transformStream._readableClosed === true) {
8749      throw new TypeError('Readable side is already closed');
8750    }
8751
8752    var controller = transformStream._readableController;
8753
8754    try {
8755      ReadableStreamDefaultControllerEnqueue(controller, chunk);
8756    } catch (e) {
8757      transformStream._readableClosed = true;
8758      TransformStreamErrorIfNeeded(transformStream, e);
8759      throw transformStream._storedError;
8760    }
8761
8762    var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(controller);
8763    var maybeBackpressure = desiredSize <= 0;
8764
8765    if (maybeBackpressure === true && transformStream._backpressure === false) {
8766      TransformStreamSetBackpressure(transformStream, true);
8767    }
8768  }
8769
8770  function TransformStreamError(transformStream, e) {
8771    if (transformStream._errored === true) {
8772      throw new TypeError('TransformStream is already errored');
8773    }
8774
8775    TransformStreamErrorInternal(transformStream, e);
8776  }
8777
8778  function TransformStreamCloseReadableInternal(transformStream) {
8779    assert(transformStream._errored === false);
8780    assert(transformStream._readableClosed === false);
8781
8782    try {
8783      ReadableStreamDefaultControllerClose(transformStream._readableController);
8784    } catch (e) {
8785      assert(false);
8786    }
8787
8788    transformStream._readableClosed = true;
8789  }
8790
8791  function TransformStreamErrorIfNeeded(transformStream, e) {
8792    if (transformStream._errored === false) {
8793      TransformStreamErrorInternal(transformStream, e);
8794    }
8795  }
8796
8797  function TransformStreamErrorInternal(transformStream, e) {
8798    assert(transformStream._errored === false);
8799    transformStream._errored = true;
8800    transformStream._storedError = e;
8801
8802    if (transformStream._writableDone === false) {
8803      WritableStreamDefaultControllerError(transformStream._writableController, e);
8804    }
8805
8806    if (transformStream._readableClosed === false) {
8807      ReadableStreamDefaultControllerError(transformStream._readableController, e);
8808    }
8809  }
8810
8811  function TransformStreamReadableReadyPromise(transformStream) {
8812    assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
8813
8814    if (transformStream._backpressure === false) {
8815      return Promise.resolve();
8816    }
8817
8818    assert(transformStream._backpressure === true, '_backpressure should have been initialized');
8819    return transformStream._backpressureChangePromise;
8820  }
8821
8822  function TransformStreamSetBackpressure(transformStream, backpressure) {
8823    assert(transformStream._backpressure !== backpressure, 'TransformStreamSetBackpressure() should be called only when backpressure is changed');
8824
8825    if (transformStream._backpressureChangePromise !== undefined) {
8826      transformStream._backpressureChangePromise_resolve(backpressure);
8827    }
8828
8829    transformStream._backpressureChangePromise = new Promise(function (resolve) {
8830      transformStream._backpressureChangePromise_resolve = resolve;
8831    });
8832
8833    transformStream._backpressureChangePromise.then(function (resolution) {
8834      assert(resolution !== backpressure, '_backpressureChangePromise should be fulfilled only when backpressure is changed');
8835    });
8836
8837    transformStream._backpressure = backpressure;
8838  }
8839
8840  function TransformStreamDefaultTransform(chunk, transformStreamController) {
8841    var transformStream = transformStreamController._controlledTransformStream;
8842    TransformStreamEnqueueToReadable(transformStream, chunk);
8843    return Promise.resolve();
8844  }
8845
8846  function TransformStreamTransform(transformStream, chunk) {
8847    assert(transformStream._errored === false);
8848    assert(transformStream._transforming === false);
8849    assert(transformStream._backpressure === false);
8850    transformStream._transforming = true;
8851    var transformer = transformStream._transformer;
8852    var controller = transformStream._transformStreamController;
8853    var transformPromise = PromiseInvokeOrPerformFallback(transformer, 'transform', [chunk, controller], TransformStreamDefaultTransform, [chunk, controller]);
8854    return transformPromise.then(function () {
8855      transformStream._transforming = false;
8856      return TransformStreamReadableReadyPromise(transformStream);
8857    }, function (e) {
8858      TransformStreamErrorIfNeeded(transformStream, e);
8859      return Promise.reject(e);
8860    });
8861  }
8862
8863  function IsTransformStreamDefaultController(x) {
8864    if (!typeIsObject(x)) {
8865      return false;
8866    }
8867
8868    if (!Object.prototype.hasOwnProperty.call(x, '_controlledTransformStream')) {
8869      return false;
8870    }
8871
8872    return true;
8873  }
8874
8875  function IsTransformStream(x) {
8876    if (!typeIsObject(x)) {
8877      return false;
8878    }
8879
8880    if (!Object.prototype.hasOwnProperty.call(x, '_transformStreamController')) {
8881      return false;
8882    }
8883
8884    return true;
8885  }
8886
8887  var TransformStreamSink = function () {
8888    function TransformStreamSink(transformStream, startPromise) {
8889      _classCallCheck(this, TransformStreamSink);
8890
8891      this._transformStream = transformStream;
8892      this._startPromise = startPromise;
8893    }
8894
8895    _createClass(TransformStreamSink, [{
8896      key: 'start',
8897      value: function start(c) {
8898        var transformStream = this._transformStream;
8899        transformStream._writableController = c;
8900        return this._startPromise.then(function () {
8901          return TransformStreamReadableReadyPromise(transformStream);
8902        });
8903      }
8904    }, {
8905      key: 'write',
8906      value: function write(chunk) {
8907        var transformStream = this._transformStream;
8908        return TransformStreamTransform(transformStream, chunk);
8909      }
8910    }, {
8911      key: 'abort',
8912      value: function abort() {
8913        var transformStream = this._transformStream;
8914        transformStream._writableDone = true;
8915        TransformStreamErrorInternal(transformStream, new TypeError('Writable side aborted'));
8916      }
8917    }, {
8918      key: 'close',
8919      value: function close() {
8920        var transformStream = this._transformStream;
8921        assert(transformStream._transforming === false);
8922        transformStream._writableDone = true;
8923        var flushPromise = PromiseInvokeOrNoop(transformStream._transformer, 'flush', [transformStream._transformStreamController]);
8924        return flushPromise.then(function () {
8925          if (transformStream._errored === true) {
8926            return Promise.reject(transformStream._storedError);
8927          }
8928
8929          if (transformStream._readableClosed === false) {
8930            TransformStreamCloseReadableInternal(transformStream);
8931          }
8932
8933          return Promise.resolve();
8934        }).catch(function (r) {
8935          TransformStreamErrorIfNeeded(transformStream, r);
8936          return Promise.reject(transformStream._storedError);
8937        });
8938      }
8939    }]);
8940
8941    return TransformStreamSink;
8942  }();
8943
8944  var TransformStreamSource = function () {
8945    function TransformStreamSource(transformStream, startPromise) {
8946      _classCallCheck(this, TransformStreamSource);
8947
8948      this._transformStream = transformStream;
8949      this._startPromise = startPromise;
8950    }
8951
8952    _createClass(TransformStreamSource, [{
8953      key: 'start',
8954      value: function start(c) {
8955        var transformStream = this._transformStream;
8956        transformStream._readableController = c;
8957        return this._startPromise.then(function () {
8958          assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
8959
8960          if (transformStream._backpressure === true) {
8961            return Promise.resolve();
8962          }
8963
8964          assert(transformStream._backpressure === false, '_backpressure should have been initialized');
8965          return transformStream._backpressureChangePromise;
8966        });
8967      }
8968    }, {
8969      key: 'pull',
8970      value: function pull() {
8971        var transformStream = this._transformStream;
8972        assert(transformStream._backpressure === true, 'pull() should be never called while _backpressure is false');
8973        assert(transformStream._backpressureChangePromise !== undefined, '_backpressureChangePromise should have been initialized');
8974        TransformStreamSetBackpressure(transformStream, false);
8975        return transformStream._backpressureChangePromise;
8976      }
8977    }, {
8978      key: 'cancel',
8979      value: function cancel() {
8980        var transformStream = this._transformStream;
8981        transformStream._readableClosed = true;
8982        TransformStreamErrorInternal(transformStream, new TypeError('Readable side canceled'));
8983      }
8984    }]);
8985
8986    return TransformStreamSource;
8987  }();
8988
8989  var TransformStreamDefaultController = function () {
8990    function TransformStreamDefaultController(transformStream) {
8991      _classCallCheck(this, TransformStreamDefaultController);
8992
8993      if (IsTransformStream(transformStream) === false) {
8994        throw new TypeError('TransformStreamDefaultController can only be ' + 'constructed with a TransformStream instance');
8995      }
8996
8997      if (transformStream._transformStreamController !== undefined) {
8998        throw new TypeError('TransformStreamDefaultController instances can ' + 'only be created by the TransformStream constructor');
8999      }
9000
9001      this._controlledTransformStream = transformStream;
9002    }
9003
9004    _createClass(TransformStreamDefaultController, [{
9005      key: 'enqueue',
9006      value: function enqueue(chunk) {
9007        if (IsTransformStreamDefaultController(this) === false) {
9008          throw defaultControllerBrandCheckException('enqueue');
9009        }
9010
9011        TransformStreamEnqueueToReadable(this._controlledTransformStream, chunk);
9012      }
9013    }, {
9014      key: 'close',
9015      value: function close() {
9016        if (IsTransformStreamDefaultController(this) === false) {
9017          throw defaultControllerBrandCheckException('close');
9018        }
9019
9020        TransformStreamCloseReadable(this._controlledTransformStream);
9021      }
9022    }, {
9023      key: 'error',
9024      value: function error(reason) {
9025        if (IsTransformStreamDefaultController(this) === false) {
9026          throw defaultControllerBrandCheckException('error');
9027        }
9028
9029        TransformStreamError(this._controlledTransformStream, reason);
9030      }
9031    }, {
9032      key: 'desiredSize',
9033      get: function get() {
9034        if (IsTransformStreamDefaultController(this) === false) {
9035          throw defaultControllerBrandCheckException('desiredSize');
9036        }
9037
9038        var transformStream = this._controlledTransformStream;
9039        var readableController = transformStream._readableController;
9040        return ReadableStreamDefaultControllerGetDesiredSize(readableController);
9041      }
9042    }]);
9043
9044    return TransformStreamDefaultController;
9045  }();
9046
9047  var TransformStream = function () {
9048    function TransformStream() {
9049      var transformer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
9050
9051      _classCallCheck(this, TransformStream);
9052
9053      this._transformer = transformer;
9054      var readableStrategy = transformer.readableStrategy,
9055          writableStrategy = transformer.writableStrategy;
9056      this._transforming = false;
9057      this._errored = false;
9058      this._storedError = undefined;
9059      this._writableController = undefined;
9060      this._readableController = undefined;
9061      this._transformStreamController = undefined;
9062      this._writableDone = false;
9063      this._readableClosed = false;
9064      this._backpressure = undefined;
9065      this._backpressureChangePromise = undefined;
9066      this._backpressureChangePromise_resolve = undefined;
9067      this._transformStreamController = new TransformStreamDefaultController(this);
9068      var startPromise_resolve = void 0;
9069      var startPromise = new Promise(function (resolve) {
9070        startPromise_resolve = resolve;
9071      });
9072      var source = new TransformStreamSource(this, startPromise);
9073      this._readable = new ReadableStream(source, readableStrategy);
9074      var sink = new TransformStreamSink(this, startPromise);
9075      this._writable = new WritableStream(sink, writableStrategy);
9076      assert(this._writableController !== undefined);
9077      assert(this._readableController !== undefined);
9078      var desiredSize = ReadableStreamDefaultControllerGetDesiredSize(this._readableController);
9079      TransformStreamSetBackpressure(this, desiredSize <= 0);
9080      var transformStream = this;
9081      var startResult = InvokeOrNoop(transformer, 'start', [transformStream._transformStreamController]);
9082      startPromise_resolve(startResult);
9083      startPromise.catch(function (e) {
9084        if (transformStream._errored === false) {
9085          transformStream._errored = true;
9086          transformStream._storedError = e;
9087        }
9088      });
9089    }
9090
9091    _createClass(TransformStream, [{
9092      key: 'readable',
9093      get: function get() {
9094        if (IsTransformStream(this) === false) {
9095          throw streamBrandCheckException('readable');
9096        }
9097
9098        return this._readable;
9099      }
9100    }, {
9101      key: 'writable',
9102      get: function get() {
9103        if (IsTransformStream(this) === false) {
9104          throw streamBrandCheckException('writable');
9105        }
9106
9107        return this._writable;
9108      }
9109    }]);
9110
9111    return TransformStream;
9112  }();
9113
9114  module.exports = {
9115    TransformStream: TransformStream
9116  };
9117
9118  function defaultControllerBrandCheckException(name) {
9119    return new TypeError('TransformStreamDefaultController.prototype.' + name + ' can only be used on a TransformStreamDefaultController');
9120  }
9121
9122  function streamBrandCheckException(name) {
9123    return new TypeError('TransformStream.prototype.' + name + ' can only be used on a TransformStream');
9124  }
9125}, function (module, exports, __w_pdfjs_require__) {
9126  module.exports = __w_pdfjs_require__(5);
9127}]));
9128
9129/***/ }),
9130/* 144 */
9131/***/ (function(module, exports, __w_pdfjs_require__) {
9132
9133"use strict";
9134
9135
9136function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9137
9138{
9139  var isURLSupported = false;
9140
9141  try {
9142    if (typeof URL === 'function' && _typeof(URL.prototype) === 'object' && 'origin' in URL.prototype) {
9143      var u = new URL('b', 'http://a');
9144      u.pathname = 'c%20d';
9145      isURLSupported = u.href === 'http://a/c%20d';
9146    }
9147  } catch (ex) {}
9148
9149  if (isURLSupported) {
9150    exports.URL = URL;
9151  } else {
9152    var PolyfillURL = __w_pdfjs_require__(145).URL;
9153
9154    var OriginalURL = __w_pdfjs_require__(3).URL;
9155
9156    if (OriginalURL) {
9157      PolyfillURL.createObjectURL = function (blob) {
9158        return OriginalURL.createObjectURL.apply(OriginalURL, arguments);
9159      };
9160
9161      PolyfillURL.revokeObjectURL = function (url) {
9162        OriginalURL.revokeObjectURL(url);
9163      };
9164    }
9165
9166    exports.URL = PolyfillURL;
9167  }
9168}
9169
9170/***/ }),
9171/* 145 */
9172/***/ (function(module, exports, __w_pdfjs_require__) {
9173
9174"use strict";
9175
9176
9177(function URLConstructorClosure() {
9178  'use strict';
9179
9180  var relative = Object.create(null);
9181  relative['ftp'] = 21;
9182  relative['file'] = 0;
9183  relative['gopher'] = 70;
9184  relative['http'] = 80;
9185  relative['https'] = 443;
9186  relative['ws'] = 80;
9187  relative['wss'] = 443;
9188  var relativePathDotMapping = Object.create(null);
9189  relativePathDotMapping['%2e'] = '.';
9190  relativePathDotMapping['.%2e'] = '..';
9191  relativePathDotMapping['%2e.'] = '..';
9192  relativePathDotMapping['%2e%2e'] = '..';
9193
9194  function isRelativeScheme(scheme) {
9195    return relative[scheme] !== undefined;
9196  }
9197
9198  function invalid() {
9199    clear.call(this);
9200    this._isInvalid = true;
9201  }
9202
9203  function IDNAToASCII(h) {
9204    if (h === '') {
9205      invalid.call(this);
9206    }
9207
9208    return h.toLowerCase();
9209  }
9210
9211  function percentEscape(c) {
9212    var unicode = c.charCodeAt(0);
9213
9214    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) === -1) {
9215      return c;
9216    }
9217
9218    return encodeURIComponent(c);
9219  }
9220
9221  function percentEscapeQuery(c) {
9222    var unicode = c.charCodeAt(0);
9223
9224    if (unicode > 0x20 && unicode < 0x7F && [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) === -1) {
9225      return c;
9226    }
9227
9228    return encodeURIComponent(c);
9229  }
9230
9231  var EOF,
9232      ALPHA = /[a-zA-Z]/,
9233      ALPHANUMERIC = /[a-zA-Z0-9\+\-\.]/;
9234
9235  function parse(input, stateOverride, base) {
9236    function err(message) {
9237      errors.push(message);
9238    }
9239
9240    var state = stateOverride || 'scheme start',
9241        cursor = 0,
9242        buffer = '',
9243        seenAt = false,
9244        seenBracket = false,
9245        errors = [];
9246
9247    loop: while ((input[cursor - 1] !== EOF || cursor === 0) && !this._isInvalid) {
9248      var c = input[cursor];
9249
9250      switch (state) {
9251        case 'scheme start':
9252          if (c && ALPHA.test(c)) {
9253            buffer += c.toLowerCase();
9254            state = 'scheme';
9255          } else if (!stateOverride) {
9256            buffer = '';
9257            state = 'no scheme';
9258            continue;
9259          } else {
9260            err('Invalid scheme.');
9261            break loop;
9262          }
9263
9264          break;
9265
9266        case 'scheme':
9267          if (c && ALPHANUMERIC.test(c)) {
9268            buffer += c.toLowerCase();
9269          } else if (c === ':') {
9270            this._scheme = buffer;
9271            buffer = '';
9272
9273            if (stateOverride) {
9274              break loop;
9275            }
9276
9277            if (isRelativeScheme(this._scheme)) {
9278              this._isRelative = true;
9279            }
9280
9281            if (this._scheme === 'file') {
9282              state = 'relative';
9283            } else if (this._isRelative && base && base._scheme === this._scheme) {
9284              state = 'relative or authority';
9285            } else if (this._isRelative) {
9286              state = 'authority first slash';
9287            } else {
9288              state = 'scheme data';
9289            }
9290          } else if (!stateOverride) {
9291            buffer = '';
9292            cursor = 0;
9293            state = 'no scheme';
9294            continue;
9295          } else if (c === EOF) {
9296            break loop;
9297          } else {
9298            err('Code point not allowed in scheme: ' + c);
9299            break loop;
9300          }
9301
9302          break;
9303
9304        case 'scheme data':
9305          if (c === '?') {
9306            this._query = '?';
9307            state = 'query';
9308          } else if (c === '#') {
9309            this._fragment = '#';
9310            state = 'fragment';
9311          } else {
9312            if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
9313              this._schemeData += percentEscape(c);
9314            }
9315          }
9316
9317          break;
9318
9319        case 'no scheme':
9320          if (!base || !isRelativeScheme(base._scheme)) {
9321            err('Missing scheme.');
9322            invalid.call(this);
9323          } else {
9324            state = 'relative';
9325            continue;
9326          }
9327
9328          break;
9329
9330        case 'relative or authority':
9331          if (c === '/' && input[cursor + 1] === '/') {
9332            state = 'authority ignore slashes';
9333          } else {
9334            err('Expected /, got: ' + c);
9335            state = 'relative';
9336            continue;
9337          }
9338
9339          break;
9340
9341        case 'relative':
9342          this._isRelative = true;
9343
9344          if (this._scheme !== 'file') {
9345            this._scheme = base._scheme;
9346          }
9347
9348          if (c === EOF) {
9349            this._host = base._host;
9350            this._port = base._port;
9351            this._path = base._path.slice();
9352            this._query = base._query;
9353            this._username = base._username;
9354            this._password = base._password;
9355            break loop;
9356          } else if (c === '/' || c === '\\') {
9357            if (c === '\\') {
9358              err('\\ is an invalid code point.');
9359            }
9360
9361            state = 'relative slash';
9362          } else if (c === '?') {
9363            this._host = base._host;
9364            this._port = base._port;
9365            this._path = base._path.slice();
9366            this._query = '?';
9367            this._username = base._username;
9368            this._password = base._password;
9369            state = 'query';
9370          } else if (c === '#') {
9371            this._host = base._host;
9372            this._port = base._port;
9373            this._path = base._path.slice();
9374            this._query = base._query;
9375            this._fragment = '#';
9376            this._username = base._username;
9377            this._password = base._password;
9378            state = 'fragment';
9379          } else {
9380            var nextC = input[cursor + 1];
9381            var nextNextC = input[cursor + 2];
9382
9383            if (this._scheme !== 'file' || !ALPHA.test(c) || nextC !== ':' && nextC !== '|' || nextNextC !== EOF && nextNextC !== '/' && nextNextC !== '\\' && nextNextC !== '?' && nextNextC !== '#') {
9384              this._host = base._host;
9385              this._port = base._port;
9386              this._username = base._username;
9387              this._password = base._password;
9388              this._path = base._path.slice();
9389
9390              this._path.pop();
9391            }
9392
9393            state = 'relative path';
9394            continue;
9395          }
9396
9397          break;
9398
9399        case 'relative slash':
9400          if (c === '/' || c === '\\') {
9401            if (c === '\\') {
9402              err('\\ is an invalid code point.');
9403            }
9404
9405            if (this._scheme === 'file') {
9406              state = 'file host';
9407            } else {
9408              state = 'authority ignore slashes';
9409            }
9410          } else {
9411            if (this._scheme !== 'file') {
9412              this._host = base._host;
9413              this._port = base._port;
9414              this._username = base._username;
9415              this._password = base._password;
9416            }
9417
9418            state = 'relative path';
9419            continue;
9420          }
9421
9422          break;
9423
9424        case 'authority first slash':
9425          if (c === '/') {
9426            state = 'authority second slash';
9427          } else {
9428            err('Expected \'/\', got: ' + c);
9429            state = 'authority ignore slashes';
9430            continue;
9431          }
9432
9433          break;
9434
9435        case 'authority second slash':
9436          state = 'authority ignore slashes';
9437
9438          if (c !== '/') {
9439            err('Expected \'/\', got: ' + c);
9440            continue;
9441          }
9442
9443          break;
9444
9445        case 'authority ignore slashes':
9446          if (c !== '/' && c !== '\\') {
9447            state = 'authority';
9448            continue;
9449          } else {
9450            err('Expected authority, got: ' + c);
9451          }
9452
9453          break;
9454
9455        case 'authority':
9456          if (c === '@') {
9457            if (seenAt) {
9458              err('@ already seen.');
9459              buffer += '%40';
9460            }
9461
9462            seenAt = true;
9463
9464            for (var i = 0; i < buffer.length; i++) {
9465              var cp = buffer[i];
9466
9467              if (cp === '\t' || cp === '\n' || cp === '\r') {
9468                err('Invalid whitespace in authority.');
9469                continue;
9470              }
9471
9472              if (cp === ':' && this._password === null) {
9473                this._password = '';
9474                continue;
9475              }
9476
9477              var tempC = percentEscape(cp);
9478
9479              if (this._password !== null) {
9480                this._password += tempC;
9481              } else {
9482                this._username += tempC;
9483              }
9484            }
9485
9486            buffer = '';
9487          } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
9488            cursor -= buffer.length;
9489            buffer = '';
9490            state = 'host';
9491            continue;
9492          } else {
9493            buffer += c;
9494          }
9495
9496          break;
9497
9498        case 'file host':
9499          if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
9500            if (buffer.length === 2 && ALPHA.test(buffer[0]) && (buffer[1] === ':' || buffer[1] === '|')) {
9501              state = 'relative path';
9502            } else if (buffer.length === 0) {
9503              state = 'relative path start';
9504            } else {
9505              this._host = IDNAToASCII.call(this, buffer);
9506              buffer = '';
9507              state = 'relative path start';
9508            }
9509
9510            continue;
9511          } else if (c === '\t' || c === '\n' || c === '\r') {
9512            err('Invalid whitespace in file host.');
9513          } else {
9514            buffer += c;
9515          }
9516
9517          break;
9518
9519        case 'host':
9520        case 'hostname':
9521          if (c === ':' && !seenBracket) {
9522            this._host = IDNAToASCII.call(this, buffer);
9523            buffer = '';
9524            state = 'port';
9525
9526            if (stateOverride === 'hostname') {
9527              break loop;
9528            }
9529          } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#') {
9530            this._host = IDNAToASCII.call(this, buffer);
9531            buffer = '';
9532            state = 'relative path start';
9533
9534            if (stateOverride) {
9535              break loop;
9536            }
9537
9538            continue;
9539          } else if (c !== '\t' && c !== '\n' && c !== '\r') {
9540            if (c === '[') {
9541              seenBracket = true;
9542            } else if (c === ']') {
9543              seenBracket = false;
9544            }
9545
9546            buffer += c;
9547          } else {
9548            err('Invalid code point in host/hostname: ' + c);
9549          }
9550
9551          break;
9552
9553        case 'port':
9554          if (/[0-9]/.test(c)) {
9555            buffer += c;
9556          } else if (c === EOF || c === '/' || c === '\\' || c === '?' || c === '#' || stateOverride) {
9557            if (buffer !== '') {
9558              var temp = parseInt(buffer, 10);
9559
9560              if (temp !== relative[this._scheme]) {
9561                this._port = temp + '';
9562              }
9563
9564              buffer = '';
9565            }
9566
9567            if (stateOverride) {
9568              break loop;
9569            }
9570
9571            state = 'relative path start';
9572            continue;
9573          } else if (c === '\t' || c === '\n' || c === '\r') {
9574            err('Invalid code point in port: ' + c);
9575          } else {
9576            invalid.call(this);
9577          }
9578
9579          break;
9580
9581        case 'relative path start':
9582          if (c === '\\') {
9583            err('\'\\\' not allowed in path.');
9584          }
9585
9586          state = 'relative path';
9587
9588          if (c !== '/' && c !== '\\') {
9589            continue;
9590          }
9591
9592          break;
9593
9594        case 'relative path':
9595          if (c === EOF || c === '/' || c === '\\' || !stateOverride && (c === '?' || c === '#')) {
9596            if (c === '\\') {
9597              err('\\ not allowed in relative path.');
9598            }
9599
9600            var tmp;
9601
9602            if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {
9603              buffer = tmp;
9604            }
9605
9606            if (buffer === '..') {
9607              this._path.pop();
9608
9609              if (c !== '/' && c !== '\\') {
9610                this._path.push('');
9611              }
9612            } else if (buffer === '.' && c !== '/' && c !== '\\') {
9613              this._path.push('');
9614            } else if (buffer !== '.') {
9615              if (this._scheme === 'file' && this._path.length === 0 && buffer.length === 2 && ALPHA.test(buffer[0]) && buffer[1] === '|') {
9616                buffer = buffer[0] + ':';
9617              }
9618
9619              this._path.push(buffer);
9620            }
9621
9622            buffer = '';
9623
9624            if (c === '?') {
9625              this._query = '?';
9626              state = 'query';
9627            } else if (c === '#') {
9628              this._fragment = '#';
9629              state = 'fragment';
9630            }
9631          } else if (c !== '\t' && c !== '\n' && c !== '\r') {
9632            buffer += percentEscape(c);
9633          }
9634
9635          break;
9636
9637        case 'query':
9638          if (!stateOverride && c === '#') {
9639            this._fragment = '#';
9640            state = 'fragment';
9641          } else if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
9642            this._query += percentEscapeQuery(c);
9643          }
9644
9645          break;
9646
9647        case 'fragment':
9648          if (c !== EOF && c !== '\t' && c !== '\n' && c !== '\r') {
9649            this._fragment += c;
9650          }
9651
9652          break;
9653      }
9654
9655      cursor++;
9656    }
9657  }
9658
9659  function clear() {
9660    this._scheme = '';
9661    this._schemeData = '';
9662    this._username = '';
9663    this._password = null;
9664    this._host = '';
9665    this._port = '';
9666    this._path = [];
9667    this._query = '';
9668    this._fragment = '';
9669    this._isInvalid = false;
9670    this._isRelative = false;
9671  }
9672
9673  function JURL(url, base) {
9674    if (base !== undefined && !(base instanceof JURL)) {
9675      base = new JURL(String(base));
9676    }
9677
9678    this._url = url;
9679    clear.call(this);
9680    var input = url.replace(/^[ \t\r\n\f]+|[ \t\r\n\f]+$/g, '');
9681    parse.call(this, input, null, base);
9682  }
9683
9684  JURL.prototype = {
9685    toString: function toString() {
9686      return this.href;
9687    },
9688
9689    get href() {
9690      if (this._isInvalid) {
9691        return this._url;
9692      }
9693
9694      var authority = '';
9695
9696      if (this._username !== '' || this._password !== null) {
9697        authority = this._username + (this._password !== null ? ':' + this._password : '') + '@';
9698      }
9699
9700      return this.protocol + (this._isRelative ? '//' + authority + this.host : '') + this.pathname + this._query + this._fragment;
9701    },
9702
9703    set href(value) {
9704      clear.call(this);
9705      parse.call(this, value);
9706    },
9707
9708    get protocol() {
9709      return this._scheme + ':';
9710    },
9711
9712    set protocol(value) {
9713      if (this._isInvalid) {
9714        return;
9715      }
9716
9717      parse.call(this, value + ':', 'scheme start');
9718    },
9719
9720    get host() {
9721      return this._isInvalid ? '' : this._port ? this._host + ':' + this._port : this._host;
9722    },
9723
9724    set host(value) {
9725      if (this._isInvalid || !this._isRelative) {
9726        return;
9727      }
9728
9729      parse.call(this, value, 'host');
9730    },
9731
9732    get hostname() {
9733      return this._host;
9734    },
9735
9736    set hostname(value) {
9737      if (this._isInvalid || !this._isRelative) {
9738        return;
9739      }
9740
9741      parse.call(this, value, 'hostname');
9742    },
9743
9744    get port() {
9745      return this._port;
9746    },
9747
9748    set port(value) {
9749      if (this._isInvalid || !this._isRelative) {
9750        return;
9751      }
9752
9753      parse.call(this, value, 'port');
9754    },
9755
9756    get pathname() {
9757      return this._isInvalid ? '' : this._isRelative ? '/' + this._path.join('/') : this._schemeData;
9758    },
9759
9760    set pathname(value) {
9761      if (this._isInvalid || !this._isRelative) {
9762        return;
9763      }
9764
9765      this._path = [];
9766      parse.call(this, value, 'relative path start');
9767    },
9768
9769    get search() {
9770      return this._isInvalid || !this._query || this._query === '?' ? '' : this._query;
9771    },
9772
9773    set search(value) {
9774      if (this._isInvalid || !this._isRelative) {
9775        return;
9776      }
9777
9778      this._query = '?';
9779
9780      if (value[0] === '?') {
9781        value = value.slice(1);
9782      }
9783
9784      parse.call(this, value, 'query');
9785    },
9786
9787    get hash() {
9788      return this._isInvalid || !this._fragment || this._fragment === '#' ? '' : this._fragment;
9789    },
9790
9791    set hash(value) {
9792      if (this._isInvalid) {
9793        return;
9794      }
9795
9796      this._fragment = '#';
9797
9798      if (value[0] === '#') {
9799        value = value.slice(1);
9800      }
9801
9802      parse.call(this, value, 'fragment');
9803    },
9804
9805    get origin() {
9806      var host;
9807
9808      if (this._isInvalid || !this._scheme) {
9809        return '';
9810      }
9811
9812      switch (this._scheme) {
9813        case 'data':
9814        case 'file':
9815        case 'javascript':
9816        case 'mailto':
9817          return 'null';
9818
9819        case 'blob':
9820          try {
9821            return new JURL(this._schemeData).origin || 'null';
9822          } catch (_) {}
9823
9824          return 'null';
9825      }
9826
9827      host = this.host;
9828
9829      if (!host) {
9830        return '';
9831      }
9832
9833      return this._scheme + '://' + host;
9834    }
9835
9836  };
9837  exports.URL = JURL;
9838})();
9839
9840/***/ }),
9841/* 146 */
9842/***/ (function(module, exports, __w_pdfjs_require__) {
9843
9844"use strict";
9845
9846
9847Object.defineProperty(exports, "__esModule", {
9848  value: true
9849});
9850exports.getDocument = getDocument;
9851exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;
9852exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0;
9853
9854var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
9855
9856var _util = __w_pdfjs_require__(1);
9857
9858var _dom_utils = __w_pdfjs_require__(151);
9859
9860var _font_loader = __w_pdfjs_require__(152);
9861
9862var _api_compatibility = __w_pdfjs_require__(153);
9863
9864var _canvas = __w_pdfjs_require__(154);
9865
9866var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
9867
9868var _worker_options = __w_pdfjs_require__(156);
9869
9870var _message_handler = __w_pdfjs_require__(157);
9871
9872var _metadata = __w_pdfjs_require__(158);
9873
9874var _transport_stream = __w_pdfjs_require__(160);
9875
9876var _webgl = __w_pdfjs_require__(161);
9877
9878function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9879
9880function 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); } }
9881
9882function _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); }); }; }
9883
9884function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
9885
9886function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
9887
9888function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
9889
9890function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
9891
9892function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread(); }
9893
9894function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); }
9895
9896function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); }
9897
9898function _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; } }
9899
9900function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
9901
9902function _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); } }
9903
9904function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
9905
9906function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
9907
9908var DEFAULT_RANGE_CHUNK_SIZE = 65536;
9909var isWorkerDisabled = false;
9910var fallbackWorkerSrc;
9911var fakeWorkerFilesLoader = null;
9912{
9913  var useRequireEnsure = false;
9914
9915  if (typeof window === 'undefined') {
9916    isWorkerDisabled = true;
9917
9918    if (typeof require.ensure === 'undefined') {
9919      require.ensure = require('node-ensure');
9920    }
9921
9922    useRequireEnsure = true;
9923  } else if (typeof require !== 'undefined' && typeof require.ensure === 'function') {
9924    useRequireEnsure = true;
9925  }
9926
9927  if (typeof requirejs !== 'undefined' && requirejs.toUrl) {
9928    fallbackWorkerSrc = requirejs.toUrl('pdfjs-dist/build/pdf.worker.js');
9929  }
9930
9931  var dynamicLoaderSupported = typeof requirejs !== 'undefined' && requirejs.load;
9932  fakeWorkerFilesLoader = useRequireEnsure ? function () {
9933    return new Promise(function (resolve, reject) {
9934      require.ensure([], function () {
9935        try {
9936          var worker;
9937          worker = require('./pdf.worker.js');
9938          resolve(worker.WorkerMessageHandler);
9939        } catch (ex) {
9940          reject(ex);
9941        }
9942      }, reject, 'pdfjsWorker');
9943    });
9944  } : dynamicLoaderSupported ? function () {
9945    return new Promise(function (resolve, reject) {
9946      requirejs(['pdfjs-dist/build/pdf.worker'], function (worker) {
9947        try {
9948          resolve(worker.WorkerMessageHandler);
9949        } catch (ex) {
9950          reject(ex);
9951        }
9952      }, reject);
9953    });
9954  } : null;
9955
9956  if (!fallbackWorkerSrc && (typeof document === "undefined" ? "undefined" : _typeof(document)) === 'object' && 'currentScript' in document) {
9957    var pdfjsFilePath = document.currentScript && document.currentScript.src;
9958
9959    if (pdfjsFilePath) {
9960      fallbackWorkerSrc = pdfjsFilePath.replace(/(\.(?:min\.)?js)(\?.*)?$/i, '.worker$1$2');
9961    }
9962  }
9963}
9964var createPDFNetworkStream;
9965
9966function setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {
9967  createPDFNetworkStream = pdfNetworkStreamFactory;
9968}
9969
9970function getDocument(src) {
9971  var task = new PDFDocumentLoadingTask();
9972  var source;
9973
9974  if (typeof src === 'string') {
9975    source = {
9976      url: src
9977    };
9978  } else if ((0, _util.isArrayBuffer)(src)) {
9979    source = {
9980      data: src
9981    };
9982  } else if (src instanceof PDFDataRangeTransport) {
9983    source = {
9984      range: src
9985    };
9986  } else {
9987    if (_typeof(src) !== 'object') {
9988      throw new Error('Invalid parameter in getDocument, ' + 'need either Uint8Array, string or a parameter object');
9989    }
9990
9991    if (!src.url && !src.data && !src.range) {
9992      throw new Error('Invalid parameter object: need either .data, .range or .url');
9993    }
9994
9995    source = src;
9996  }
9997
9998  var params = Object.create(null);
9999  var rangeTransport = null,
10000      worker = null;
10001
10002  for (var key in source) {
10003    if (key === 'url' && typeof window !== 'undefined') {
10004      params[key] = new _util.URL(source[key], window.location).href;
10005      continue;
10006    } else if (key === 'range') {
10007      rangeTransport = source[key];
10008      continue;
10009    } else if (key === 'worker') {
10010      worker = source[key];
10011      continue;
10012    } else if (key === 'data' && !(source[key] instanceof Uint8Array)) {
10013      var pdfBytes = source[key];
10014
10015      if (typeof pdfBytes === 'string') {
10016        params[key] = (0, _util.stringToBytes)(pdfBytes);
10017      } else if (_typeof(pdfBytes) === 'object' && pdfBytes !== null && !isNaN(pdfBytes.length)) {
10018        params[key] = new Uint8Array(pdfBytes);
10019      } else if ((0, _util.isArrayBuffer)(pdfBytes)) {
10020        params[key] = new Uint8Array(pdfBytes);
10021      } else {
10022        throw new Error('Invalid PDF binary data: either typed array, ' + 'string or array-like object is expected in the ' + 'data property.');
10023      }
10024
10025      continue;
10026    }
10027
10028    params[key] = source[key];
10029  }
10030
10031  params.rangeChunkSize = params.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE;
10032  params.CMapReaderFactory = params.CMapReaderFactory || _dom_utils.DOMCMapReaderFactory;
10033  params.ignoreErrors = params.stopAtErrors !== true;
10034  params.pdfBug = params.pdfBug === true;
10035  var NativeImageDecoderValues = Object.values(_util.NativeImageDecoding);
10036
10037  if (params.nativeImageDecoderSupport === undefined || !NativeImageDecoderValues.includes(params.nativeImageDecoderSupport)) {
10038    params.nativeImageDecoderSupport = _api_compatibility.apiCompatibilityParams.nativeImageDecoderSupport || _util.NativeImageDecoding.DECODE;
10039  }
10040
10041  if (!Number.isInteger(params.maxImageSize)) {
10042    params.maxImageSize = -1;
10043  }
10044
10045  if (typeof params.isEvalSupported !== 'boolean') {
10046    params.isEvalSupported = true;
10047  }
10048
10049  if (typeof params.disableFontFace !== 'boolean') {
10050    params.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || false;
10051  }
10052
10053  if (typeof params.disableRange !== 'boolean') {
10054    params.disableRange = false;
10055  }
10056
10057  if (typeof params.disableStream !== 'boolean') {
10058    params.disableStream = false;
10059  }
10060
10061  if (typeof params.disableAutoFetch !== 'boolean') {
10062    params.disableAutoFetch = false;
10063  }
10064
10065  if (typeof params.disableCreateObjectURL !== 'boolean') {
10066    params.disableCreateObjectURL = _api_compatibility.apiCompatibilityParams.disableCreateObjectURL || false;
10067  }
10068
10069  (0, _util.setVerbosityLevel)(params.verbosity);
10070
10071  if (!worker) {
10072    var workerParams = {
10073      postMessageTransfers: params.postMessageTransfers,
10074      verbosity: params.verbosity,
10075      port: _worker_options.GlobalWorkerOptions.workerPort
10076    };
10077    worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);
10078    task._worker = worker;
10079  }
10080
10081  var docId = task.docId;
10082  worker.promise.then(function () {
10083    if (task.destroyed) {
10084      throw new Error('Loading aborted');
10085    }
10086
10087    return _fetchDocument(worker, params, rangeTransport, docId).then(function (workerId) {
10088      if (task.destroyed) {
10089        throw new Error('Loading aborted');
10090      }
10091
10092      var networkStream;
10093
10094      if (rangeTransport) {
10095        networkStream = new _transport_stream.PDFDataTransportStream({
10096          length: params.length,
10097          initialData: params.initialData,
10098          disableRange: params.disableRange,
10099          disableStream: params.disableStream
10100        }, rangeTransport);
10101      } else if (!params.data) {
10102        networkStream = createPDFNetworkStream({
10103          url: params.url,
10104          length: params.length,
10105          httpHeaders: params.httpHeaders,
10106          withCredentials: params.withCredentials,
10107          rangeChunkSize: params.rangeChunkSize,
10108          disableRange: params.disableRange,
10109          disableStream: params.disableStream
10110        });
10111      }
10112
10113      var messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);
10114      messageHandler.postMessageTransfers = worker.postMessageTransfers;
10115      var transport = new WorkerTransport(messageHandler, task, networkStream, params);
10116      task._transport = transport;
10117      messageHandler.send('Ready', null);
10118    });
10119  }).catch(task._capability.reject);
10120  return task;
10121}
10122
10123function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {
10124  if (worker.destroyed) {
10125    return Promise.reject(new Error('Worker was destroyed'));
10126  }
10127
10128  if (pdfDataRangeTransport) {
10129    source.length = pdfDataRangeTransport.length;
10130    source.initialData = pdfDataRangeTransport.initialData;
10131  }
10132
10133  return worker.messageHandler.sendWithPromise('GetDocRequest', {
10134    docId: docId,
10135    apiVersion: '2.1.266',
10136    source: {
10137      data: source.data,
10138      url: source.url,
10139      password: source.password,
10140      disableAutoFetch: source.disableAutoFetch,
10141      rangeChunkSize: source.rangeChunkSize,
10142      length: source.length
10143    },
10144    maxImageSize: source.maxImageSize,
10145    disableFontFace: source.disableFontFace,
10146    disableCreateObjectURL: source.disableCreateObjectURL,
10147    postMessageTransfers: worker.postMessageTransfers,
10148    docBaseUrl: source.docBaseUrl,
10149    nativeImageDecoderSupport: source.nativeImageDecoderSupport,
10150    ignoreErrors: source.ignoreErrors,
10151    isEvalSupported: source.isEvalSupported
10152  }).then(function (workerId) {
10153    if (worker.destroyed) {
10154      throw new Error('Worker was destroyed');
10155    }
10156
10157    return workerId;
10158  });
10159}
10160
10161var PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() {
10162  var nextDocumentId = 0;
10163
10164  var PDFDocumentLoadingTask =
10165  /*#__PURE__*/
10166  function () {
10167    function PDFDocumentLoadingTask() {
10168      _classCallCheck(this, PDFDocumentLoadingTask);
10169
10170      this._capability = (0, _util.createPromiseCapability)();
10171      this._transport = null;
10172      this._worker = null;
10173      this.docId = 'd' + nextDocumentId++;
10174      this.destroyed = false;
10175      this.onPassword = null;
10176      this.onProgress = null;
10177      this.onUnsupportedFeature = null;
10178    }
10179
10180    _createClass(PDFDocumentLoadingTask, [{
10181      key: "destroy",
10182      value: function destroy() {
10183        var _this = this;
10184
10185        this.destroyed = true;
10186        var transportDestroyed = !this._transport ? Promise.resolve() : this._transport.destroy();
10187        return transportDestroyed.then(function () {
10188          _this._transport = null;
10189
10190          if (_this._worker) {
10191            _this._worker.destroy();
10192
10193            _this._worker = null;
10194          }
10195        });
10196      }
10197    }, {
10198      key: "then",
10199      value: function then(onFulfilled, onRejected) {
10200        (0, _util.deprecated)('PDFDocumentLoadingTask.then method, ' + 'use the `promise` getter instead.');
10201        return this.promise.then.apply(this.promise, arguments);
10202      }
10203    }, {
10204      key: "promise",
10205      get: function get() {
10206        return this._capability.promise;
10207      }
10208    }]);
10209
10210    return PDFDocumentLoadingTask;
10211  }();
10212
10213  return PDFDocumentLoadingTask;
10214}();
10215
10216var PDFDataRangeTransport =
10217/*#__PURE__*/
10218function () {
10219  function PDFDataRangeTransport(length, initialData) {
10220    _classCallCheck(this, PDFDataRangeTransport);
10221
10222    this.length = length;
10223    this.initialData = initialData;
10224    this._rangeListeners = [];
10225    this._progressListeners = [];
10226    this._progressiveReadListeners = [];
10227    this._readyCapability = (0, _util.createPromiseCapability)();
10228  }
10229
10230  _createClass(PDFDataRangeTransport, [{
10231    key: "addRangeListener",
10232    value: function addRangeListener(listener) {
10233      this._rangeListeners.push(listener);
10234    }
10235  }, {
10236    key: "addProgressListener",
10237    value: function addProgressListener(listener) {
10238      this._progressListeners.push(listener);
10239    }
10240  }, {
10241    key: "addProgressiveReadListener",
10242    value: function addProgressiveReadListener(listener) {
10243      this._progressiveReadListeners.push(listener);
10244    }
10245  }, {
10246    key: "onDataRange",
10247    value: function onDataRange(begin, chunk) {
10248      var _iteratorNormalCompletion = true;
10249      var _didIteratorError = false;
10250      var _iteratorError = undefined;
10251
10252      try {
10253        for (var _iterator = this._rangeListeners[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
10254          var listener = _step.value;
10255          listener(begin, chunk);
10256        }
10257      } catch (err) {
10258        _didIteratorError = true;
10259        _iteratorError = err;
10260      } finally {
10261        try {
10262          if (!_iteratorNormalCompletion && _iterator.return != null) {
10263            _iterator.return();
10264          }
10265        } finally {
10266          if (_didIteratorError) {
10267            throw _iteratorError;
10268          }
10269        }
10270      }
10271    }
10272  }, {
10273    key: "onDataProgress",
10274    value: function onDataProgress(loaded) {
10275      var _this2 = this;
10276
10277      this._readyCapability.promise.then(function () {
10278        var _iteratorNormalCompletion2 = true;
10279        var _didIteratorError2 = false;
10280        var _iteratorError2 = undefined;
10281
10282        try {
10283          for (var _iterator2 = _this2._progressListeners[Symbol.iterator](), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
10284            var listener = _step2.value;
10285            listener(loaded);
10286          }
10287        } catch (err) {
10288          _didIteratorError2 = true;
10289          _iteratorError2 = err;
10290        } finally {
10291          try {
10292            if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
10293              _iterator2.return();
10294            }
10295          } finally {
10296            if (_didIteratorError2) {
10297              throw _iteratorError2;
10298            }
10299          }
10300        }
10301      });
10302    }
10303  }, {
10304    key: "onDataProgressiveRead",
10305    value: function onDataProgressiveRead(chunk) {
10306      var _this3 = this;
10307
10308      this._readyCapability.promise.then(function () {
10309        var _iteratorNormalCompletion3 = true;
10310        var _didIteratorError3 = false;
10311        var _iteratorError3 = undefined;
10312
10313        try {
10314          for (var _iterator3 = _this3._progressiveReadListeners[Symbol.iterator](), _step3; !(_iteratorNormalCompletion3 = (_step3 = _iterator3.next()).done); _iteratorNormalCompletion3 = true) {
10315            var listener = _step3.value;
10316            listener(chunk);
10317          }
10318        } catch (err) {
10319          _didIteratorError3 = true;
10320          _iteratorError3 = err;
10321        } finally {
10322          try {
10323            if (!_iteratorNormalCompletion3 && _iterator3.return != null) {
10324              _iterator3.return();
10325            }
10326          } finally {
10327            if (_didIteratorError3) {
10328              throw _iteratorError3;
10329            }
10330          }
10331        }
10332      });
10333    }
10334  }, {
10335    key: "transportReady",
10336    value: function transportReady() {
10337      this._readyCapability.resolve();
10338    }
10339  }, {
10340    key: "requestDataRange",
10341    value: function requestDataRange(begin, end) {
10342      (0, _util.unreachable)('Abstract method PDFDataRangeTransport.requestDataRange');
10343    }
10344  }, {
10345    key: "abort",
10346    value: function abort() {}
10347  }]);
10348
10349  return PDFDataRangeTransport;
10350}();
10351
10352exports.PDFDataRangeTransport = PDFDataRangeTransport;
10353
10354var PDFDocumentProxy =
10355/*#__PURE__*/
10356function () {
10357  function PDFDocumentProxy(pdfInfo, transport, loadingTask) {
10358    _classCallCheck(this, PDFDocumentProxy);
10359
10360    this.loadingTask = loadingTask;
10361    this._pdfInfo = pdfInfo;
10362    this._transport = transport;
10363  }
10364
10365  _createClass(PDFDocumentProxy, [{
10366    key: "getPage",
10367    value: function getPage(pageNumber) {
10368      return this._transport.getPage(pageNumber);
10369    }
10370  }, {
10371    key: "getPageIndex",
10372    value: function getPageIndex(ref) {
10373      return this._transport.getPageIndex(ref);
10374    }
10375  }, {
10376    key: "getDestinations",
10377    value: function getDestinations() {
10378      return this._transport.getDestinations();
10379    }
10380  }, {
10381    key: "getDestination",
10382    value: function getDestination(id) {
10383      return this._transport.getDestination(id);
10384    }
10385  }, {
10386    key: "getPageLabels",
10387    value: function getPageLabels() {
10388      return this._transport.getPageLabels();
10389    }
10390  }, {
10391    key: "getPageMode",
10392    value: function getPageMode() {
10393      return this._transport.getPageMode();
10394    }
10395  }, {
10396    key: "getOpenActionDestination",
10397    value: function getOpenActionDestination() {
10398      return this._transport.getOpenActionDestination();
10399    }
10400  }, {
10401    key: "getAttachments",
10402    value: function getAttachments() {
10403      return this._transport.getAttachments();
10404    }
10405  }, {
10406    key: "getJavaScript",
10407    value: function getJavaScript() {
10408      return this._transport.getJavaScript();
10409    }
10410  }, {
10411    key: "getOutline",
10412    value: function getOutline() {
10413      return this._transport.getOutline();
10414    }
10415  }, {
10416    key: "getPermissions",
10417    value: function getPermissions() {
10418      return this._transport.getPermissions();
10419    }
10420  }, {
10421    key: "getMetadata",
10422    value: function getMetadata() {
10423      return this._transport.getMetadata();
10424    }
10425  }, {
10426    key: "getData",
10427    value: function getData() {
10428      return this._transport.getData();
10429    }
10430  }, {
10431    key: "getDownloadInfo",
10432    value: function getDownloadInfo() {
10433      return this._transport.downloadInfoCapability.promise;
10434    }
10435  }, {
10436    key: "getStats",
10437    value: function getStats() {
10438      return this._transport.getStats();
10439    }
10440  }, {
10441    key: "cleanup",
10442    value: function cleanup() {
10443      this._transport.startCleanup();
10444    }
10445  }, {
10446    key: "destroy",
10447    value: function destroy() {
10448      return this.loadingTask.destroy();
10449    }
10450  }, {
10451    key: "numPages",
10452    get: function get() {
10453      return this._pdfInfo.numPages;
10454    }
10455  }, {
10456    key: "fingerprint",
10457    get: function get() {
10458      return this._pdfInfo.fingerprint;
10459    }
10460  }, {
10461    key: "loadingParams",
10462    get: function get() {
10463      return this._transport.loadingParams;
10464    }
10465  }]);
10466
10467  return PDFDocumentProxy;
10468}();
10469
10470exports.PDFDocumentProxy = PDFDocumentProxy;
10471
10472var PDFPageProxy =
10473/*#__PURE__*/
10474function () {
10475  function PDFPageProxy(pageIndex, pageInfo, transport) {
10476    var pdfBug = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;
10477
10478    _classCallCheck(this, PDFPageProxy);
10479
10480    this.pageIndex = pageIndex;
10481    this._pageInfo = pageInfo;
10482    this._transport = transport;
10483    this._stats = pdfBug ? new _dom_utils.StatTimer() : _dom_utils.DummyStatTimer;
10484    this._pdfBug = pdfBug;
10485    this.commonObjs = transport.commonObjs;
10486    this.objs = new PDFObjects();
10487    this.cleanupAfterRender = false;
10488    this.pendingCleanup = false;
10489    this.intentStates = Object.create(null);
10490    this.destroyed = false;
10491  }
10492
10493  _createClass(PDFPageProxy, [{
10494    key: "getViewport",
10495    value: function getViewport() {
10496      var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10497          scale = _ref.scale,
10498          _ref$rotation = _ref.rotation,
10499          rotation = _ref$rotation === void 0 ? this.rotate : _ref$rotation,
10500          _ref$dontFlip = _ref.dontFlip,
10501          dontFlip = _ref$dontFlip === void 0 ? false : _ref$dontFlip;
10502
10503      if (arguments.length > 1 || typeof arguments[0] === 'number') {
10504        (0, _util.deprecated)('getViewport is called with obsolete arguments.');
10505        scale = arguments[0];
10506        rotation = typeof arguments[1] === 'number' ? arguments[1] : this.rotate;
10507        dontFlip = typeof arguments[2] === 'boolean' ? arguments[2] : false;
10508      }
10509
10510      return new _dom_utils.PageViewport({
10511        viewBox: this.view,
10512        scale: scale,
10513        rotation: rotation,
10514        dontFlip: dontFlip
10515      });
10516    }
10517  }, {
10518    key: "getAnnotations",
10519    value: function getAnnotations() {
10520      var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10521          _ref2$intent = _ref2.intent,
10522          intent = _ref2$intent === void 0 ? null : _ref2$intent;
10523
10524      if (!this.annotationsPromise || this.annotationsIntent !== intent) {
10525        this.annotationsPromise = this._transport.getAnnotations(this.pageIndex, intent);
10526        this.annotationsIntent = intent;
10527      }
10528
10529      return this.annotationsPromise;
10530    }
10531  }, {
10532    key: "render",
10533    value: function render(_ref3) {
10534      var _this4 = this;
10535
10536      var canvasContext = _ref3.canvasContext,
10537          viewport = _ref3.viewport,
10538          _ref3$intent = _ref3.intent,
10539          intent = _ref3$intent === void 0 ? 'display' : _ref3$intent,
10540          _ref3$enableWebGL = _ref3.enableWebGL,
10541          enableWebGL = _ref3$enableWebGL === void 0 ? false : _ref3$enableWebGL,
10542          _ref3$renderInteracti = _ref3.renderInteractiveForms,
10543          renderInteractiveForms = _ref3$renderInteracti === void 0 ? false : _ref3$renderInteracti,
10544          _ref3$transform = _ref3.transform,
10545          transform = _ref3$transform === void 0 ? null : _ref3$transform,
10546          _ref3$imageLayer = _ref3.imageLayer,
10547          imageLayer = _ref3$imageLayer === void 0 ? null : _ref3$imageLayer,
10548          _ref3$canvasFactory = _ref3.canvasFactory,
10549          canvasFactory = _ref3$canvasFactory === void 0 ? null : _ref3$canvasFactory,
10550          _ref3$background = _ref3.background,
10551          background = _ref3$background === void 0 ? null : _ref3$background;
10552      var stats = this._stats;
10553      stats.time('Overall');
10554      this.pendingCleanup = false;
10555      var renderingIntent = intent === 'print' ? 'print' : 'display';
10556      var canvasFactoryInstance = canvasFactory || new _dom_utils.DOMCanvasFactory();
10557      var webGLContext = new _webgl.WebGLContext({
10558        enable: enableWebGL
10559      });
10560
10561      if (!this.intentStates[renderingIntent]) {
10562        this.intentStates[renderingIntent] = Object.create(null);
10563      }
10564
10565      var intentState = this.intentStates[renderingIntent];
10566
10567      if (!intentState.displayReadyCapability) {
10568        intentState.receivingOperatorList = true;
10569        intentState.displayReadyCapability = (0, _util.createPromiseCapability)();
10570        intentState.operatorList = {
10571          fnArray: [],
10572          argsArray: [],
10573          lastChunk: false
10574        };
10575        stats.time('Page Request');
10576
10577        this._transport.messageHandler.send('RenderPageRequest', {
10578          pageIndex: this.pageNumber - 1,
10579          intent: renderingIntent,
10580          renderInteractiveForms: renderInteractiveForms === true
10581        });
10582      }
10583
10584      var complete = function complete(error) {
10585        var i = intentState.renderTasks.indexOf(internalRenderTask);
10586
10587        if (i >= 0) {
10588          intentState.renderTasks.splice(i, 1);
10589        }
10590
10591        if (_this4.cleanupAfterRender) {
10592          _this4.pendingCleanup = true;
10593        }
10594
10595        _this4._tryCleanup();
10596
10597        if (error) {
10598          internalRenderTask.capability.reject(error);
10599        } else {
10600          internalRenderTask.capability.resolve();
10601        }
10602
10603        stats.timeEnd('Rendering');
10604        stats.timeEnd('Overall');
10605      };
10606
10607      var internalRenderTask = new InternalRenderTask({
10608        callback: complete,
10609        params: {
10610          canvasContext: canvasContext,
10611          viewport: viewport,
10612          transform: transform,
10613          imageLayer: imageLayer,
10614          background: background
10615        },
10616        objs: this.objs,
10617        commonObjs: this.commonObjs,
10618        operatorList: intentState.operatorList,
10619        pageNumber: this.pageNumber,
10620        canvasFactory: canvasFactoryInstance,
10621        webGLContext: webGLContext,
10622        useRequestAnimationFrame: renderingIntent !== 'print',
10623        pdfBug: this._pdfBug
10624      });
10625
10626      if (!intentState.renderTasks) {
10627        intentState.renderTasks = [];
10628      }
10629
10630      intentState.renderTasks.push(internalRenderTask);
10631      var renderTask = internalRenderTask.task;
10632      intentState.displayReadyCapability.promise.then(function (transparency) {
10633        if (_this4.pendingCleanup) {
10634          complete();
10635          return;
10636        }
10637
10638        stats.time('Rendering');
10639        internalRenderTask.initializeGraphics(transparency);
10640        internalRenderTask.operatorListChanged();
10641      }).catch(complete);
10642      return renderTask;
10643    }
10644  }, {
10645    key: "getOperatorList",
10646    value: function getOperatorList() {
10647      function operatorListChanged() {
10648        if (intentState.operatorList.lastChunk) {
10649          intentState.opListReadCapability.resolve(intentState.operatorList);
10650          var i = intentState.renderTasks.indexOf(opListTask);
10651
10652          if (i >= 0) {
10653            intentState.renderTasks.splice(i, 1);
10654          }
10655        }
10656      }
10657
10658      var renderingIntent = 'oplist';
10659
10660      if (!this.intentStates[renderingIntent]) {
10661        this.intentStates[renderingIntent] = Object.create(null);
10662      }
10663
10664      var intentState = this.intentStates[renderingIntent];
10665      var opListTask;
10666
10667      if (!intentState.opListReadCapability) {
10668        opListTask = {};
10669        opListTask.operatorListChanged = operatorListChanged;
10670        intentState.receivingOperatorList = true;
10671        intentState.opListReadCapability = (0, _util.createPromiseCapability)();
10672        intentState.renderTasks = [];
10673        intentState.renderTasks.push(opListTask);
10674        intentState.operatorList = {
10675          fnArray: [],
10676          argsArray: [],
10677          lastChunk: false
10678        };
10679
10680        this._stats.time('Page Request');
10681
10682        this._transport.messageHandler.send('RenderPageRequest', {
10683          pageIndex: this.pageIndex,
10684          intent: renderingIntent
10685        });
10686      }
10687
10688      return intentState.opListReadCapability.promise;
10689    }
10690  }, {
10691    key: "streamTextContent",
10692    value: function streamTextContent() {
10693      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
10694          _ref4$normalizeWhites = _ref4.normalizeWhitespace,
10695          normalizeWhitespace = _ref4$normalizeWhites === void 0 ? false : _ref4$normalizeWhites,
10696          _ref4$disableCombineT = _ref4.disableCombineTextItems,
10697          disableCombineTextItems = _ref4$disableCombineT === void 0 ? false : _ref4$disableCombineT;
10698
10699      var TEXT_CONTENT_CHUNK_SIZE = 100;
10700      return this._transport.messageHandler.sendWithStream('GetTextContent', {
10701        pageIndex: this.pageNumber - 1,
10702        normalizeWhitespace: normalizeWhitespace === true,
10703        combineTextItems: disableCombineTextItems !== true
10704      }, {
10705        highWaterMark: TEXT_CONTENT_CHUNK_SIZE,
10706        size: function size(textContent) {
10707          return textContent.items.length;
10708        }
10709      });
10710    }
10711  }, {
10712    key: "getTextContent",
10713    value: function getTextContent() {
10714      var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
10715      var readableStream = this.streamTextContent(params);
10716      return new Promise(function (resolve, reject) {
10717        function pump() {
10718          reader.read().then(function (_ref5) {
10719            var _textContent$items;
10720
10721            var value = _ref5.value,
10722                done = _ref5.done;
10723
10724            if (done) {
10725              resolve(textContent);
10726              return;
10727            }
10728
10729            Object.assign(textContent.styles, value.styles);
10730
10731            (_textContent$items = textContent.items).push.apply(_textContent$items, _toConsumableArray(value.items));
10732
10733            pump();
10734          }, reject);
10735        }
10736
10737        var reader = readableStream.getReader();
10738        var textContent = {
10739          items: [],
10740          styles: Object.create(null)
10741        };
10742        pump();
10743      });
10744    }
10745  }, {
10746    key: "_destroy",
10747    value: function _destroy() {
10748      this.destroyed = true;
10749      this._transport.pageCache[this.pageIndex] = null;
10750      var waitOn = [];
10751      Object.keys(this.intentStates).forEach(function (intent) {
10752        if (intent === 'oplist') {
10753          return;
10754        }
10755
10756        var intentState = this.intentStates[intent];
10757        intentState.renderTasks.forEach(function (renderTask) {
10758          var renderCompleted = renderTask.capability.promise.catch(function () {});
10759          waitOn.push(renderCompleted);
10760          renderTask.cancel();
10761        });
10762      }, this);
10763      this.objs.clear();
10764      this.annotationsPromise = null;
10765      this.pendingCleanup = false;
10766      return Promise.all(waitOn);
10767    }
10768  }, {
10769    key: "cleanup",
10770    value: function cleanup() {
10771      var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
10772      this.pendingCleanup = true;
10773
10774      this._tryCleanup(resetStats);
10775    }
10776  }, {
10777    key: "_tryCleanup",
10778    value: function _tryCleanup() {
10779      var resetStats = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
10780
10781      if (!this.pendingCleanup || Object.keys(this.intentStates).some(function (intent) {
10782        var intentState = this.intentStates[intent];
10783        return intentState.renderTasks.length !== 0 || intentState.receivingOperatorList;
10784      }, this)) {
10785        return;
10786      }
10787
10788      Object.keys(this.intentStates).forEach(function (intent) {
10789        delete this.intentStates[intent];
10790      }, this);
10791      this.objs.clear();
10792      this.annotationsPromise = null;
10793
10794      if (resetStats && this._stats instanceof _dom_utils.StatTimer) {
10795        this._stats = new _dom_utils.StatTimer();
10796      }
10797
10798      this.pendingCleanup = false;
10799    }
10800  }, {
10801    key: "_startRenderPage",
10802    value: function _startRenderPage(transparency, intent) {
10803      var intentState = this.intentStates[intent];
10804
10805      if (intentState.displayReadyCapability) {
10806        intentState.displayReadyCapability.resolve(transparency);
10807      }
10808    }
10809  }, {
10810    key: "_renderPageChunk",
10811    value: function _renderPageChunk(operatorListChunk, intent) {
10812      var intentState = this.intentStates[intent];
10813
10814      for (var i = 0, ii = operatorListChunk.length; i < ii; i++) {
10815        intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);
10816        intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);
10817      }
10818
10819      intentState.operatorList.lastChunk = operatorListChunk.lastChunk;
10820
10821      for (var _i = 0; _i < intentState.renderTasks.length; _i++) {
10822        intentState.renderTasks[_i].operatorListChanged();
10823      }
10824
10825      if (operatorListChunk.lastChunk) {
10826        intentState.receivingOperatorList = false;
10827
10828        this._tryCleanup();
10829      }
10830    }
10831  }, {
10832    key: "pageNumber",
10833    get: function get() {
10834      return this.pageIndex + 1;
10835    }
10836  }, {
10837    key: "rotate",
10838    get: function get() {
10839      return this._pageInfo.rotate;
10840    }
10841  }, {
10842    key: "ref",
10843    get: function get() {
10844      return this._pageInfo.ref;
10845    }
10846  }, {
10847    key: "userUnit",
10848    get: function get() {
10849      return this._pageInfo.userUnit;
10850    }
10851  }, {
10852    key: "view",
10853    get: function get() {
10854      return this._pageInfo.view;
10855    }
10856  }, {
10857    key: "stats",
10858    get: function get() {
10859      return this._stats instanceof _dom_utils.StatTimer ? this._stats : null;
10860    }
10861  }]);
10862
10863  return PDFPageProxy;
10864}();
10865
10866exports.PDFPageProxy = PDFPageProxy;
10867
10868var LoopbackPort =
10869/*#__PURE__*/
10870function () {
10871  function LoopbackPort() {
10872    var defer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
10873
10874    _classCallCheck(this, LoopbackPort);
10875
10876    this._listeners = [];
10877    this._defer = defer;
10878    this._deferred = Promise.resolve(undefined);
10879  }
10880
10881  _createClass(LoopbackPort, [{
10882    key: "postMessage",
10883    value: function postMessage(obj, transfers) {
10884      var _this5 = this;
10885
10886      function cloneValue(value) {
10887        if (_typeof(value) !== 'object' || value === null) {
10888          return value;
10889        }
10890
10891        if (cloned.has(value)) {
10892          return cloned.get(value);
10893        }
10894
10895        var buffer, result;
10896
10897        if ((buffer = value.buffer) && (0, _util.isArrayBuffer)(buffer)) {
10898          var transferable = transfers && transfers.includes(buffer);
10899
10900          if (value === buffer) {
10901            result = value;
10902          } else if (transferable) {
10903            result = new value.constructor(buffer, value.byteOffset, value.byteLength);
10904          } else {
10905            result = new value.constructor(value);
10906          }
10907
10908          cloned.set(value, result);
10909          return result;
10910        }
10911
10912        result = Array.isArray(value) ? [] : {};
10913        cloned.set(value, result);
10914
10915        for (var i in value) {
10916          var desc = void 0,
10917              p = value;
10918
10919          while (!(desc = Object.getOwnPropertyDescriptor(p, i))) {
10920            p = Object.getPrototypeOf(p);
10921          }
10922
10923          if (typeof desc.value === 'undefined' || typeof desc.value === 'function') {
10924            continue;
10925          }
10926
10927          result[i] = cloneValue(desc.value);
10928        }
10929
10930        return result;
10931      }
10932
10933      if (!this._defer) {
10934        this._listeners.forEach(function (listener) {
10935          listener.call(this, {
10936            data: obj
10937          });
10938        }, this);
10939
10940        return;
10941      }
10942
10943      var cloned = new WeakMap();
10944      var e = {
10945        data: cloneValue(obj)
10946      };
10947
10948      this._deferred.then(function () {
10949        _this5._listeners.forEach(function (listener) {
10950          listener.call(this, e);
10951        }, _this5);
10952      });
10953    }
10954  }, {
10955    key: "addEventListener",
10956    value: function addEventListener(name, listener) {
10957      this._listeners.push(listener);
10958    }
10959  }, {
10960    key: "removeEventListener",
10961    value: function removeEventListener(name, listener) {
10962      var i = this._listeners.indexOf(listener);
10963
10964      this._listeners.splice(i, 1);
10965    }
10966  }, {
10967    key: "terminate",
10968    value: function terminate() {
10969      this._listeners = [];
10970    }
10971  }]);
10972
10973  return LoopbackPort;
10974}();
10975
10976exports.LoopbackPort = LoopbackPort;
10977
10978var PDFWorker = function PDFWorkerClosure() {
10979  var pdfWorkerPorts = new WeakMap();
10980  var nextFakeWorkerId = 0;
10981  var fakeWorkerFilesLoadedCapability;
10982
10983  function _getWorkerSrc() {
10984    if (_worker_options.GlobalWorkerOptions.workerSrc) {
10985      return _worker_options.GlobalWorkerOptions.workerSrc;
10986    }
10987
10988    if (typeof fallbackWorkerSrc !== 'undefined') {
10989      return fallbackWorkerSrc;
10990    }
10991
10992    throw new Error('No "GlobalWorkerOptions.workerSrc" specified.');
10993  }
10994
10995  function getMainThreadWorkerMessageHandler() {
10996    try {
10997      if (typeof window !== 'undefined') {
10998        return window.pdfjsWorker && window.pdfjsWorker.WorkerMessageHandler;
10999      }
11000    } catch (ex) {}
11001
11002    return null;
11003  }
11004
11005  function setupFakeWorkerGlobal() {
11006    if (fakeWorkerFilesLoadedCapability) {
11007      return fakeWorkerFilesLoadedCapability.promise;
11008    }
11009
11010    fakeWorkerFilesLoadedCapability = (0, _util.createPromiseCapability)();
11011    var mainWorkerMessageHandler = getMainThreadWorkerMessageHandler();
11012
11013    if (mainWorkerMessageHandler) {
11014      fakeWorkerFilesLoadedCapability.resolve(mainWorkerMessageHandler);
11015      return fakeWorkerFilesLoadedCapability.promise;
11016    }
11017
11018    var loader = fakeWorkerFilesLoader || function () {
11019      return (0, _dom_utils.loadScript)(_getWorkerSrc()).then(function () {
11020        return window.pdfjsWorker.WorkerMessageHandler;
11021      });
11022    };
11023
11024    loader().then(fakeWorkerFilesLoadedCapability.resolve, fakeWorkerFilesLoadedCapability.reject);
11025    return fakeWorkerFilesLoadedCapability.promise;
11026  }
11027
11028  function createCDNWrapper(url) {
11029    var wrapper = 'importScripts(\'' + url + '\');';
11030    return _util.URL.createObjectURL(new Blob([wrapper]));
11031  }
11032
11033  var PDFWorker =
11034  /*#__PURE__*/
11035  function () {
11036    function PDFWorker() {
11037      var _ref6 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
11038          _ref6$name = _ref6.name,
11039          name = _ref6$name === void 0 ? null : _ref6$name,
11040          _ref6$port = _ref6.port,
11041          port = _ref6$port === void 0 ? null : _ref6$port,
11042          _ref6$postMessageTran = _ref6.postMessageTransfers,
11043          postMessageTransfers = _ref6$postMessageTran === void 0 ? true : _ref6$postMessageTran,
11044          _ref6$verbosity = _ref6.verbosity,
11045          verbosity = _ref6$verbosity === void 0 ? (0, _util.getVerbosityLevel)() : _ref6$verbosity;
11046
11047      _classCallCheck(this, PDFWorker);
11048
11049      if (port && pdfWorkerPorts.has(port)) {
11050        throw new Error('Cannot use more than one PDFWorker per port');
11051      }
11052
11053      this.name = name;
11054      this.destroyed = false;
11055      this.postMessageTransfers = postMessageTransfers !== false;
11056      this.verbosity = verbosity;
11057      this._readyCapability = (0, _util.createPromiseCapability)();
11058      this._port = null;
11059      this._webWorker = null;
11060      this._messageHandler = null;
11061
11062      if (port) {
11063        pdfWorkerPorts.set(port, this);
11064
11065        this._initializeFromPort(port);
11066
11067        return;
11068      }
11069
11070      this._initialize();
11071    }
11072
11073    _createClass(PDFWorker, [{
11074      key: "_initializeFromPort",
11075      value: function _initializeFromPort(port) {
11076        this._port = port;
11077        this._messageHandler = new _message_handler.MessageHandler('main', 'worker', port);
11078
11079        this._messageHandler.on('ready', function () {});
11080
11081        this._readyCapability.resolve();
11082      }
11083    }, {
11084      key: "_initialize",
11085      value: function _initialize() {
11086        var _this6 = this;
11087
11088        if (typeof Worker !== 'undefined' && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) {
11089          var workerSrc = _getWorkerSrc();
11090
11091          try {
11092            if (!(0, _util.isSameOrigin)(window.location.href, workerSrc)) {
11093              workerSrc = createCDNWrapper(new _util.URL(workerSrc, window.location).href);
11094            }
11095
11096            var worker = new Worker(workerSrc);
11097            var messageHandler = new _message_handler.MessageHandler('main', 'worker', worker);
11098
11099            var terminateEarly = function terminateEarly() {
11100              worker.removeEventListener('error', onWorkerError);
11101              messageHandler.destroy();
11102              worker.terminate();
11103
11104              if (_this6.destroyed) {
11105                _this6._readyCapability.reject(new Error('Worker was destroyed'));
11106              } else {
11107                _this6._setupFakeWorker();
11108              }
11109            };
11110
11111            var onWorkerError = function onWorkerError() {
11112              if (!_this6._webWorker) {
11113                terminateEarly();
11114              }
11115            };
11116
11117            worker.addEventListener('error', onWorkerError);
11118            messageHandler.on('test', function (data) {
11119              worker.removeEventListener('error', onWorkerError);
11120
11121              if (_this6.destroyed) {
11122                terminateEarly();
11123                return;
11124              }
11125
11126              if (data && data.supportTypedArray) {
11127                _this6._messageHandler = messageHandler;
11128                _this6._port = worker;
11129                _this6._webWorker = worker;
11130
11131                if (!data.supportTransfers) {
11132                  _this6.postMessageTransfers = false;
11133                }
11134
11135                _this6._readyCapability.resolve();
11136
11137                messageHandler.send('configure', {
11138                  verbosity: _this6.verbosity
11139                });
11140              } else {
11141                _this6._setupFakeWorker();
11142
11143                messageHandler.destroy();
11144                worker.terminate();
11145              }
11146            });
11147            messageHandler.on('ready', function (data) {
11148              worker.removeEventListener('error', onWorkerError);
11149
11150              if (_this6.destroyed) {
11151                terminateEarly();
11152                return;
11153              }
11154
11155              try {
11156                sendTest();
11157              } catch (e) {
11158                _this6._setupFakeWorker();
11159              }
11160            });
11161
11162            var sendTest = function sendTest() {
11163              var testObj = new Uint8Array([_this6.postMessageTransfers ? 255 : 0]);
11164
11165              try {
11166                messageHandler.send('test', testObj, [testObj.buffer]);
11167              } catch (ex) {
11168                (0, _util.info)('Cannot use postMessage transfers');
11169                testObj[0] = 0;
11170                messageHandler.send('test', testObj);
11171              }
11172            };
11173
11174            sendTest();
11175            return;
11176          } catch (e) {
11177            (0, _util.info)('The worker has been disabled.');
11178          }
11179        }
11180
11181        this._setupFakeWorker();
11182      }
11183    }, {
11184      key: "_setupFakeWorker",
11185      value: function _setupFakeWorker() {
11186        var _this7 = this;
11187
11188        if (!isWorkerDisabled) {
11189          (0, _util.warn)('Setting up fake worker.');
11190          isWorkerDisabled = true;
11191        }
11192
11193        setupFakeWorkerGlobal().then(function (WorkerMessageHandler) {
11194          if (_this7.destroyed) {
11195            _this7._readyCapability.reject(new Error('Worker was destroyed'));
11196
11197            return;
11198          }
11199
11200          var port = new LoopbackPort();
11201          _this7._port = port;
11202          var id = 'fake' + nextFakeWorkerId++;
11203          var workerHandler = new _message_handler.MessageHandler(id + '_worker', id, port);
11204          WorkerMessageHandler.setup(workerHandler, port);
11205          var messageHandler = new _message_handler.MessageHandler(id, id + '_worker', port);
11206          _this7._messageHandler = messageHandler;
11207
11208          _this7._readyCapability.resolve();
11209        }).catch(function (reason) {
11210          _this7._readyCapability.reject(new Error("Setting up fake worker failed: \"".concat(reason.message, "\".")));
11211        });
11212      }
11213    }, {
11214      key: "destroy",
11215      value: function destroy() {
11216        this.destroyed = true;
11217
11218        if (this._webWorker) {
11219          this._webWorker.terminate();
11220
11221          this._webWorker = null;
11222        }
11223
11224        pdfWorkerPorts.delete(this._port);
11225        this._port = null;
11226
11227        if (this._messageHandler) {
11228          this._messageHandler.destroy();
11229
11230          this._messageHandler = null;
11231        }
11232      }
11233    }, {
11234      key: "promise",
11235      get: function get() {
11236        return this._readyCapability.promise;
11237      }
11238    }, {
11239      key: "port",
11240      get: function get() {
11241        return this._port;
11242      }
11243    }, {
11244      key: "messageHandler",
11245      get: function get() {
11246        return this._messageHandler;
11247      }
11248    }], [{
11249      key: "fromPort",
11250      value: function fromPort(params) {
11251        if (!params || !params.port) {
11252          throw new Error('PDFWorker.fromPort - invalid method signature.');
11253        }
11254
11255        if (pdfWorkerPorts.has(params.port)) {
11256          return pdfWorkerPorts.get(params.port);
11257        }
11258
11259        return new PDFWorker(params);
11260      }
11261    }, {
11262      key: "getWorkerSrc",
11263      value: function getWorkerSrc() {
11264        return _getWorkerSrc();
11265      }
11266    }]);
11267
11268    return PDFWorker;
11269  }();
11270
11271  return PDFWorker;
11272}();
11273
11274exports.PDFWorker = PDFWorker;
11275
11276var WorkerTransport =
11277/*#__PURE__*/
11278function () {
11279  function WorkerTransport(messageHandler, loadingTask, networkStream, params) {
11280    _classCallCheck(this, WorkerTransport);
11281
11282    this.messageHandler = messageHandler;
11283    this.loadingTask = loadingTask;
11284    this.commonObjs = new PDFObjects();
11285    this.fontLoader = new _font_loader.FontLoader({
11286      docId: loadingTask.docId,
11287      onUnsupportedFeature: this._onUnsupportedFeature.bind(this)
11288    });
11289    this._params = params;
11290    this.CMapReaderFactory = new params.CMapReaderFactory({
11291      baseUrl: params.cMapUrl,
11292      isCompressed: params.cMapPacked
11293    });
11294    this.destroyed = false;
11295    this.destroyCapability = null;
11296    this._passwordCapability = null;
11297    this._networkStream = networkStream;
11298    this._fullReader = null;
11299    this._lastProgress = null;
11300    this.pageCache = [];
11301    this.pagePromises = [];
11302    this.downloadInfoCapability = (0, _util.createPromiseCapability)();
11303    this.setupMessageHandler();
11304  }
11305
11306  _createClass(WorkerTransport, [{
11307    key: "destroy",
11308    value: function destroy() {
11309      var _this8 = this;
11310
11311      if (this.destroyCapability) {
11312        return this.destroyCapability.promise;
11313      }
11314
11315      this.destroyed = true;
11316      this.destroyCapability = (0, _util.createPromiseCapability)();
11317
11318      if (this._passwordCapability) {
11319        this._passwordCapability.reject(new Error('Worker was destroyed during onPassword callback'));
11320      }
11321
11322      var waitOn = [];
11323      this.pageCache.forEach(function (page) {
11324        if (page) {
11325          waitOn.push(page._destroy());
11326        }
11327      });
11328      this.pageCache = [];
11329      this.pagePromises = [];
11330      var terminated = this.messageHandler.sendWithPromise('Terminate', null);
11331      waitOn.push(terminated);
11332      Promise.all(waitOn).then(function () {
11333        _this8.fontLoader.clear();
11334
11335        if (_this8._networkStream) {
11336          _this8._networkStream.cancelAllRequests();
11337        }
11338
11339        if (_this8.messageHandler) {
11340          _this8.messageHandler.destroy();
11341
11342          _this8.messageHandler = null;
11343        }
11344
11345        _this8.destroyCapability.resolve();
11346      }, this.destroyCapability.reject);
11347      return this.destroyCapability.promise;
11348    }
11349  }, {
11350    key: "setupMessageHandler",
11351    value: function setupMessageHandler() {
11352      var messageHandler = this.messageHandler,
11353          loadingTask = this.loadingTask;
11354      messageHandler.on('GetReader', function (data, sink) {
11355        var _this9 = this;
11356
11357        (0, _util.assert)(this._networkStream);
11358        this._fullReader = this._networkStream.getFullReader();
11359
11360        this._fullReader.onProgress = function (evt) {
11361          _this9._lastProgress = {
11362            loaded: evt.loaded,
11363            total: evt.total
11364          };
11365        };
11366
11367        sink.onPull = function () {
11368          _this9._fullReader.read().then(function (_ref7) {
11369            var value = _ref7.value,
11370                done = _ref7.done;
11371
11372            if (done) {
11373              sink.close();
11374              return;
11375            }
11376
11377            (0, _util.assert)((0, _util.isArrayBuffer)(value));
11378            sink.enqueue(new Uint8Array(value), 1, [value]);
11379          }).catch(function (reason) {
11380            sink.error(reason);
11381          });
11382        };
11383
11384        sink.onCancel = function (reason) {
11385          _this9._fullReader.cancel(reason);
11386        };
11387      }, this);
11388      messageHandler.on('ReaderHeadersReady', function (data) {
11389        var _this10 = this;
11390
11391        var headersCapability = (0, _util.createPromiseCapability)();
11392        var fullReader = this._fullReader;
11393        fullReader.headersReady.then(function () {
11394          if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {
11395            if (_this10._lastProgress && loadingTask.onProgress) {
11396              loadingTask.onProgress(_this10._lastProgress);
11397            }
11398
11399            fullReader.onProgress = function (evt) {
11400              if (loadingTask.onProgress) {
11401                loadingTask.onProgress({
11402                  loaded: evt.loaded,
11403                  total: evt.total
11404                });
11405              }
11406            };
11407          }
11408
11409          headersCapability.resolve({
11410            isStreamingSupported: fullReader.isStreamingSupported,
11411            isRangeSupported: fullReader.isRangeSupported,
11412            contentLength: fullReader.contentLength
11413          });
11414        }, headersCapability.reject);
11415        return headersCapability.promise;
11416      }, this);
11417      messageHandler.on('GetRangeReader', function (data, sink) {
11418        (0, _util.assert)(this._networkStream);
11419
11420        var rangeReader = this._networkStream.getRangeReader(data.begin, data.end);
11421
11422        sink.onPull = function () {
11423          rangeReader.read().then(function (_ref8) {
11424            var value = _ref8.value,
11425                done = _ref8.done;
11426
11427            if (done) {
11428              sink.close();
11429              return;
11430            }
11431
11432            (0, _util.assert)((0, _util.isArrayBuffer)(value));
11433            sink.enqueue(new Uint8Array(value), 1, [value]);
11434          }).catch(function (reason) {
11435            sink.error(reason);
11436          });
11437        };
11438
11439        sink.onCancel = function (reason) {
11440          rangeReader.cancel(reason);
11441        };
11442      }, this);
11443      messageHandler.on('GetDoc', function (_ref9) {
11444        var pdfInfo = _ref9.pdfInfo;
11445        this.numPages = pdfInfo.numPages;
11446        this.pdfDocument = new PDFDocumentProxy(pdfInfo, this, loadingTask);
11447
11448        loadingTask._capability.resolve(this.pdfDocument);
11449      }, this);
11450      messageHandler.on('PasswordRequest', function (exception) {
11451        var _this11 = this;
11452
11453        this._passwordCapability = (0, _util.createPromiseCapability)();
11454
11455        if (loadingTask.onPassword) {
11456          var updatePassword = function updatePassword(password) {
11457            _this11._passwordCapability.resolve({
11458              password: password
11459            });
11460          };
11461
11462          try {
11463            loadingTask.onPassword(updatePassword, exception.code);
11464          } catch (ex) {
11465            this._passwordCapability.reject(ex);
11466          }
11467        } else {
11468          this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));
11469        }
11470
11471        return this._passwordCapability.promise;
11472      }, this);
11473      messageHandler.on('PasswordException', function (exception) {
11474        loadingTask._capability.reject(new _util.PasswordException(exception.message, exception.code));
11475      }, this);
11476      messageHandler.on('InvalidPDF', function (exception) {
11477        loadingTask._capability.reject(new _util.InvalidPDFException(exception.message));
11478      }, this);
11479      messageHandler.on('MissingPDF', function (exception) {
11480        loadingTask._capability.reject(new _util.MissingPDFException(exception.message));
11481      }, this);
11482      messageHandler.on('UnexpectedResponse', function (exception) {
11483        loadingTask._capability.reject(new _util.UnexpectedResponseException(exception.message, exception.status));
11484      }, this);
11485      messageHandler.on('UnknownError', function (exception) {
11486        loadingTask._capability.reject(new _util.UnknownErrorException(exception.message, exception.details));
11487      }, this);
11488      messageHandler.on('DataLoaded', function (data) {
11489        if (loadingTask.onProgress) {
11490          loadingTask.onProgress({
11491            loaded: data.length,
11492            total: data.length
11493          });
11494        }
11495
11496        this.downloadInfoCapability.resolve(data);
11497      }, this);
11498      messageHandler.on('StartRenderPage', function (data) {
11499        if (this.destroyed) {
11500          return;
11501        }
11502
11503        var page = this.pageCache[data.pageIndex];
11504
11505        page._stats.timeEnd('Page Request');
11506
11507        page._startRenderPage(data.transparency, data.intent);
11508      }, this);
11509      messageHandler.on('RenderPageChunk', function (data) {
11510        if (this.destroyed) {
11511          return;
11512        }
11513
11514        var page = this.pageCache[data.pageIndex];
11515
11516        page._renderPageChunk(data.operatorList, data.intent);
11517      }, this);
11518      messageHandler.on('commonobj', function (data) {
11519        var _this12 = this;
11520
11521        if (this.destroyed) {
11522          return;
11523        }
11524
11525        var _data = _slicedToArray(data, 3),
11526            id = _data[0],
11527            type = _data[1],
11528            exportedData = _data[2];
11529
11530        if (this.commonObjs.has(id)) {
11531          return;
11532        }
11533
11534        switch (type) {
11535          case 'Font':
11536            var params = this._params;
11537
11538            if ('error' in exportedData) {
11539              var exportedError = exportedData.error;
11540              (0, _util.warn)("Error during font loading: ".concat(exportedError));
11541              this.commonObjs.resolve(id, exportedError);
11542              break;
11543            }
11544
11545            var fontRegistry = null;
11546
11547            if (params.pdfBug && _global_scope.default.FontInspector && _global_scope.default.FontInspector.enabled) {
11548              fontRegistry = {
11549                registerFont: function registerFont(font, url) {
11550                  _global_scope.default['FontInspector'].fontAdded(font, url);
11551                }
11552              };
11553            }
11554
11555            var font = new _font_loader.FontFaceObject(exportedData, {
11556              isEvalSupported: params.isEvalSupported,
11557              disableFontFace: params.disableFontFace,
11558              ignoreErrors: params.ignoreErrors,
11559              onUnsupportedFeature: this._onUnsupportedFeature.bind(this),
11560              fontRegistry: fontRegistry
11561            });
11562            this.fontLoader.bind(font).then(function () {
11563              _this12.commonObjs.resolve(id, font);
11564            }, function (reason) {
11565              messageHandler.sendWithPromise('FontFallback', {
11566                id: id
11567              }).finally(function () {
11568                _this12.commonObjs.resolve(id, font);
11569              });
11570            });
11571            break;
11572
11573          case 'FontPath':
11574            this.commonObjs.resolve(id, exportedData);
11575            break;
11576
11577          default:
11578            throw new Error("Got unknown common object type ".concat(type));
11579        }
11580      }, this);
11581      messageHandler.on('obj', function (data) {
11582        if (this.destroyed) {
11583          return;
11584        }
11585
11586        var _data2 = _slicedToArray(data, 4),
11587            id = _data2[0],
11588            pageIndex = _data2[1],
11589            type = _data2[2],
11590            imageData = _data2[3];
11591
11592        var pageProxy = this.pageCache[pageIndex];
11593
11594        if (pageProxy.objs.has(id)) {
11595          return;
11596        }
11597
11598        switch (type) {
11599          case 'JpegStream':
11600            return new Promise(function (resolve, reject) {
11601              var img = new Image();
11602
11603              img.onload = function () {
11604                resolve(img);
11605              };
11606
11607              img.onerror = function () {
11608                reject(new Error('Error during JPEG image loading'));
11609              };
11610
11611              img.src = imageData;
11612            }).then(function (img) {
11613              pageProxy.objs.resolve(id, img);
11614            });
11615
11616          case 'Image':
11617            pageProxy.objs.resolve(id, imageData);
11618            var MAX_IMAGE_SIZE_TO_STORE = 8000000;
11619
11620            if (imageData && 'data' in imageData && imageData.data.length > MAX_IMAGE_SIZE_TO_STORE) {
11621              pageProxy.cleanupAfterRender = true;
11622            }
11623
11624            break;
11625
11626          default:
11627            throw new Error("Got unknown object type ".concat(type));
11628        }
11629      }, this);
11630      messageHandler.on('DocProgress', function (data) {
11631        if (this.destroyed) {
11632          return;
11633        }
11634
11635        if (loadingTask.onProgress) {
11636          loadingTask.onProgress({
11637            loaded: data.loaded,
11638            total: data.total
11639          });
11640        }
11641      }, this);
11642      messageHandler.on('PageError', function (data) {
11643        if (this.destroyed) {
11644          return;
11645        }
11646
11647        var page = this.pageCache[data.pageNum - 1];
11648        var intentState = page.intentStates[data.intent];
11649
11650        if (intentState.displayReadyCapability) {
11651          intentState.displayReadyCapability.reject(data.error);
11652        } else {
11653          throw new Error(data.error);
11654        }
11655
11656        if (intentState.operatorList) {
11657          intentState.operatorList.lastChunk = true;
11658
11659          for (var i = 0; i < intentState.renderTasks.length; i++) {
11660            intentState.renderTasks[i].operatorListChanged();
11661          }
11662        }
11663      }, this);
11664      messageHandler.on('UnsupportedFeature', this._onUnsupportedFeature, this);
11665      messageHandler.on('JpegDecode', function (data) {
11666        if (this.destroyed) {
11667          return Promise.reject(new Error('Worker was destroyed'));
11668        }
11669
11670        if (typeof document === 'undefined') {
11671          return Promise.reject(new Error('"document" is not defined.'));
11672        }
11673
11674        var _data3 = _slicedToArray(data, 2),
11675            imageUrl = _data3[0],
11676            components = _data3[1];
11677
11678        if (components !== 3 && components !== 1) {
11679          return Promise.reject(new Error('Only 3 components or 1 component can be returned'));
11680        }
11681
11682        return new Promise(function (resolve, reject) {
11683          var img = new Image();
11684
11685          img.onload = function () {
11686            var width = img.width;
11687            var height = img.height;
11688            var size = width * height;
11689            var rgbaLength = size * 4;
11690            var buf = new Uint8ClampedArray(size * components);
11691            var tmpCanvas = document.createElement('canvas');
11692            tmpCanvas.width = width;
11693            tmpCanvas.height = height;
11694            var tmpCtx = tmpCanvas.getContext('2d');
11695            tmpCtx.drawImage(img, 0, 0);
11696            var data = tmpCtx.getImageData(0, 0, width, height).data;
11697
11698            if (components === 3) {
11699              for (var i = 0, j = 0; i < rgbaLength; i += 4, j += 3) {
11700                buf[j] = data[i];
11701                buf[j + 1] = data[i + 1];
11702                buf[j + 2] = data[i + 2];
11703              }
11704            } else if (components === 1) {
11705              for (var _i2 = 0, _j = 0; _i2 < rgbaLength; _i2 += 4, _j++) {
11706                buf[_j] = data[_i2];
11707              }
11708            }
11709
11710            resolve({
11711              data: buf,
11712              width: width,
11713              height: height
11714            });
11715          };
11716
11717          img.onerror = function () {
11718            reject(new Error('JpegDecode failed to load image'));
11719          };
11720
11721          img.src = imageUrl;
11722        });
11723      }, this);
11724      messageHandler.on('FetchBuiltInCMap', function (data) {
11725        if (this.destroyed) {
11726          return Promise.reject(new Error('Worker was destroyed'));
11727        }
11728
11729        return this.CMapReaderFactory.fetch({
11730          name: data.name
11731        });
11732      }, this);
11733    }
11734  }, {
11735    key: "_onUnsupportedFeature",
11736    value: function _onUnsupportedFeature(_ref10) {
11737      var featureId = _ref10.featureId;
11738
11739      if (this.destroyed) {
11740        return;
11741      }
11742
11743      if (this.loadingTask.onUnsupportedFeature) {
11744        this.loadingTask.onUnsupportedFeature(featureId);
11745      }
11746    }
11747  }, {
11748    key: "getData",
11749    value: function getData() {
11750      return this.messageHandler.sendWithPromise('GetData', null);
11751    }
11752  }, {
11753    key: "getPage",
11754    value: function getPage(pageNumber) {
11755      var _this13 = this;
11756
11757      if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this.numPages) {
11758        return Promise.reject(new Error('Invalid page request'));
11759      }
11760
11761      var pageIndex = pageNumber - 1;
11762
11763      if (pageIndex in this.pagePromises) {
11764        return this.pagePromises[pageIndex];
11765      }
11766
11767      var promise = this.messageHandler.sendWithPromise('GetPage', {
11768        pageIndex: pageIndex
11769      }).then(function (pageInfo) {
11770        if (_this13.destroyed) {
11771          throw new Error('Transport destroyed');
11772        }
11773
11774        var page = new PDFPageProxy(pageIndex, pageInfo, _this13, _this13._params.pdfBug);
11775        _this13.pageCache[pageIndex] = page;
11776        return page;
11777      });
11778      this.pagePromises[pageIndex] = promise;
11779      return promise;
11780    }
11781  }, {
11782    key: "getPageIndex",
11783    value: function getPageIndex(ref) {
11784      return this.messageHandler.sendWithPromise('GetPageIndex', {
11785        ref: ref
11786      }).catch(function (reason) {
11787        return Promise.reject(new Error(reason));
11788      });
11789    }
11790  }, {
11791    key: "getAnnotations",
11792    value: function getAnnotations(pageIndex, intent) {
11793      return this.messageHandler.sendWithPromise('GetAnnotations', {
11794        pageIndex: pageIndex,
11795        intent: intent
11796      });
11797    }
11798  }, {
11799    key: "getDestinations",
11800    value: function getDestinations() {
11801      return this.messageHandler.sendWithPromise('GetDestinations', null);
11802    }
11803  }, {
11804    key: "getDestination",
11805    value: function getDestination(id) {
11806      if (typeof id !== 'string') {
11807        return Promise.reject(new Error('Invalid destination request.'));
11808      }
11809
11810      return this.messageHandler.sendWithPromise('GetDestination', {
11811        id: id
11812      });
11813    }
11814  }, {
11815    key: "getPageLabels",
11816    value: function getPageLabels() {
11817      return this.messageHandler.sendWithPromise('GetPageLabels', null);
11818    }
11819  }, {
11820    key: "getPageMode",
11821    value: function getPageMode() {
11822      return this.messageHandler.sendWithPromise('GetPageMode', null);
11823    }
11824  }, {
11825    key: "getOpenActionDestination",
11826    value: function getOpenActionDestination() {
11827      return this.messageHandler.sendWithPromise('getOpenActionDestination', null);
11828    }
11829  }, {
11830    key: "getAttachments",
11831    value: function getAttachments() {
11832      return this.messageHandler.sendWithPromise('GetAttachments', null);
11833    }
11834  }, {
11835    key: "getJavaScript",
11836    value: function getJavaScript() {
11837      return this.messageHandler.sendWithPromise('GetJavaScript', null);
11838    }
11839  }, {
11840    key: "getOutline",
11841    value: function getOutline() {
11842      return this.messageHandler.sendWithPromise('GetOutline', null);
11843    }
11844  }, {
11845    key: "getPermissions",
11846    value: function getPermissions() {
11847      return this.messageHandler.sendWithPromise('GetPermissions', null);
11848    }
11849  }, {
11850    key: "getMetadata",
11851    value: function getMetadata() {
11852      var _this14 = this;
11853
11854      return this.messageHandler.sendWithPromise('GetMetadata', null).then(function (results) {
11855        return {
11856          info: results[0],
11857          metadata: results[1] ? new _metadata.Metadata(results[1]) : null,
11858          contentDispositionFilename: _this14._fullReader ? _this14._fullReader.filename : null
11859        };
11860      });
11861    }
11862  }, {
11863    key: "getStats",
11864    value: function getStats() {
11865      return this.messageHandler.sendWithPromise('GetStats', null);
11866    }
11867  }, {
11868    key: "startCleanup",
11869    value: function startCleanup() {
11870      var _this15 = this;
11871
11872      this.messageHandler.sendWithPromise('Cleanup', null).then(function () {
11873        for (var i = 0, ii = _this15.pageCache.length; i < ii; i++) {
11874          var page = _this15.pageCache[i];
11875
11876          if (page) {
11877            page.cleanup();
11878          }
11879        }
11880
11881        _this15.commonObjs.clear();
11882
11883        _this15.fontLoader.clear();
11884      });
11885    }
11886  }, {
11887    key: "loadingParams",
11888    get: function get() {
11889      var params = this._params;
11890      return (0, _util.shadow)(this, 'loadingParams', {
11891        disableAutoFetch: params.disableAutoFetch,
11892        disableCreateObjectURL: params.disableCreateObjectURL,
11893        disableFontFace: params.disableFontFace,
11894        nativeImageDecoderSupport: params.nativeImageDecoderSupport
11895      });
11896    }
11897  }]);
11898
11899  return WorkerTransport;
11900}();
11901
11902var PDFObjects =
11903/*#__PURE__*/
11904function () {
11905  function PDFObjects() {
11906    _classCallCheck(this, PDFObjects);
11907
11908    this._objs = Object.create(null);
11909  }
11910
11911  _createClass(PDFObjects, [{
11912    key: "_ensureObj",
11913    value: function _ensureObj(objId) {
11914      if (this._objs[objId]) {
11915        return this._objs[objId];
11916      }
11917
11918      return this._objs[objId] = {
11919        capability: (0, _util.createPromiseCapability)(),
11920        data: null,
11921        resolved: false
11922      };
11923    }
11924  }, {
11925    key: "get",
11926    value: function get(objId) {
11927      var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
11928
11929      if (callback) {
11930        this._ensureObj(objId).capability.promise.then(callback);
11931
11932        return null;
11933      }
11934
11935      var obj = this._objs[objId];
11936
11937      if (!obj || !obj.resolved) {
11938        throw new Error("Requesting object that isn't resolved yet ".concat(objId, "."));
11939      }
11940
11941      return obj.data;
11942    }
11943  }, {
11944    key: "has",
11945    value: function has(objId) {
11946      var obj = this._objs[objId];
11947      return obj ? obj.resolved : false;
11948    }
11949  }, {
11950    key: "resolve",
11951    value: function resolve(objId, data) {
11952      var obj = this._ensureObj(objId);
11953
11954      obj.resolved = true;
11955      obj.data = data;
11956      obj.capability.resolve(data);
11957    }
11958  }, {
11959    key: "clear",
11960    value: function clear() {
11961      this._objs = Object.create(null);
11962    }
11963  }]);
11964
11965  return PDFObjects;
11966}();
11967
11968var RenderTask =
11969/*#__PURE__*/
11970function () {
11971  function RenderTask(internalRenderTask) {
11972    _classCallCheck(this, RenderTask);
11973
11974    this._internalRenderTask = internalRenderTask;
11975    this.onContinue = null;
11976  }
11977
11978  _createClass(RenderTask, [{
11979    key: "cancel",
11980    value: function cancel() {
11981      this._internalRenderTask.cancel();
11982    }
11983  }, {
11984    key: "then",
11985    value: function then(onFulfilled, onRejected) {
11986      (0, _util.deprecated)('RenderTask.then method, use the `promise` getter instead.');
11987      return this.promise.then.apply(this.promise, arguments);
11988    }
11989  }, {
11990    key: "promise",
11991    get: function get() {
11992      return this._internalRenderTask.capability.promise;
11993    }
11994  }]);
11995
11996  return RenderTask;
11997}();
11998
11999var InternalRenderTask = function InternalRenderTaskClosure() {
12000  var canvasInRendering = new WeakSet();
12001
12002  var InternalRenderTask =
12003  /*#__PURE__*/
12004  function () {
12005    function InternalRenderTask(_ref11) {
12006      var callback = _ref11.callback,
12007          params = _ref11.params,
12008          objs = _ref11.objs,
12009          commonObjs = _ref11.commonObjs,
12010          operatorList = _ref11.operatorList,
12011          pageNumber = _ref11.pageNumber,
12012          canvasFactory = _ref11.canvasFactory,
12013          webGLContext = _ref11.webGLContext,
12014          _ref11$useRequestAnim = _ref11.useRequestAnimationFrame,
12015          useRequestAnimationFrame = _ref11$useRequestAnim === void 0 ? false : _ref11$useRequestAnim,
12016          _ref11$pdfBug = _ref11.pdfBug,
12017          pdfBug = _ref11$pdfBug === void 0 ? false : _ref11$pdfBug;
12018
12019      _classCallCheck(this, InternalRenderTask);
12020
12021      this.callback = callback;
12022      this.params = params;
12023      this.objs = objs;
12024      this.commonObjs = commonObjs;
12025      this.operatorListIdx = null;
12026      this.operatorList = operatorList;
12027      this.pageNumber = pageNumber;
12028      this.canvasFactory = canvasFactory;
12029      this.webGLContext = webGLContext;
12030      this._pdfBug = pdfBug;
12031      this.running = false;
12032      this.graphicsReadyCallback = null;
12033      this.graphicsReady = false;
12034      this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== 'undefined';
12035      this.cancelled = false;
12036      this.capability = (0, _util.createPromiseCapability)();
12037      this.task = new RenderTask(this);
12038      this._continueBound = this._continue.bind(this);
12039      this._scheduleNextBound = this._scheduleNext.bind(this);
12040      this._nextBound = this._next.bind(this);
12041      this._canvas = params.canvasContext.canvas;
12042    }
12043
12044    _createClass(InternalRenderTask, [{
12045      key: "initializeGraphics",
12046      value: function initializeGraphics() {
12047        var transparency = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
12048
12049        if (this.cancelled) {
12050          return;
12051        }
12052
12053        if (this._canvas) {
12054          if (canvasInRendering.has(this._canvas)) {
12055            throw new Error('Cannot use the same canvas during multiple render() operations. ' + 'Use different canvas or ensure previous operations were ' + 'cancelled or completed.');
12056          }
12057
12058          canvasInRendering.add(this._canvas);
12059        }
12060
12061        if (this._pdfBug && _global_scope.default.StepperManager && _global_scope.default.StepperManager.enabled) {
12062          this.stepper = _global_scope.default.StepperManager.create(this.pageNumber - 1);
12063          this.stepper.init(this.operatorList);
12064          this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();
12065        }
12066
12067        var _this$params = this.params,
12068            canvasContext = _this$params.canvasContext,
12069            viewport = _this$params.viewport,
12070            transform = _this$params.transform,
12071            imageLayer = _this$params.imageLayer,
12072            background = _this$params.background;
12073        this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext, imageLayer);
12074        this.gfx.beginDrawing({
12075          transform: transform,
12076          viewport: viewport,
12077          transparency: transparency,
12078          background: background
12079        });
12080        this.operatorListIdx = 0;
12081        this.graphicsReady = true;
12082
12083        if (this.graphicsReadyCallback) {
12084          this.graphicsReadyCallback();
12085        }
12086      }
12087    }, {
12088      key: "cancel",
12089      value: function cancel() {
12090        var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
12091        this.running = false;
12092        this.cancelled = true;
12093
12094        if (this.gfx) {
12095          this.gfx.endDrawing();
12096        }
12097
12098        if (this._canvas) {
12099          canvasInRendering.delete(this._canvas);
12100        }
12101
12102        this.callback(error || new _dom_utils.RenderingCancelledException("Rendering cancelled, page ".concat(this.pageNumber), 'canvas'));
12103      }
12104    }, {
12105      key: "operatorListChanged",
12106      value: function operatorListChanged() {
12107        if (!this.graphicsReady) {
12108          if (!this.graphicsReadyCallback) {
12109            this.graphicsReadyCallback = this._continueBound;
12110          }
12111
12112          return;
12113        }
12114
12115        if (this.stepper) {
12116          this.stepper.updateOperatorList(this.operatorList);
12117        }
12118
12119        if (this.running) {
12120          return;
12121        }
12122
12123        this._continue();
12124      }
12125    }, {
12126      key: "_continue",
12127      value: function _continue() {
12128        this.running = true;
12129
12130        if (this.cancelled) {
12131          return;
12132        }
12133
12134        if (this.task.onContinue) {
12135          this.task.onContinue(this._scheduleNextBound);
12136        } else {
12137          this._scheduleNext();
12138        }
12139      }
12140    }, {
12141      key: "_scheduleNext",
12142      value: function _scheduleNext() {
12143        var _this16 = this;
12144
12145        if (this._useRequestAnimationFrame) {
12146          window.requestAnimationFrame(function () {
12147            _this16._nextBound().catch(_this16.cancel.bind(_this16));
12148          });
12149        } else {
12150          Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this));
12151        }
12152      }
12153    }, {
12154      key: "_next",
12155      value: function () {
12156        var _next2 = _asyncToGenerator(
12157        /*#__PURE__*/
12158        _regenerator.default.mark(function _callee() {
12159          return _regenerator.default.wrap(function _callee$(_context) {
12160            while (1) {
12161              switch (_context.prev = _context.next) {
12162                case 0:
12163                  if (!this.cancelled) {
12164                    _context.next = 2;
12165                    break;
12166                  }
12167
12168                  return _context.abrupt("return");
12169
12170                case 2:
12171                  this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);
12172
12173                  if (this.operatorListIdx === this.operatorList.argsArray.length) {
12174                    this.running = false;
12175
12176                    if (this.operatorList.lastChunk) {
12177                      this.gfx.endDrawing();
12178
12179                      if (this._canvas) {
12180                        canvasInRendering.delete(this._canvas);
12181                      }
12182
12183                      this.callback();
12184                    }
12185                  }
12186
12187                case 4:
12188                case "end":
12189                  return _context.stop();
12190              }
12191            }
12192          }, _callee, this);
12193        }));
12194
12195        function _next() {
12196          return _next2.apply(this, arguments);
12197        }
12198
12199        return _next;
12200      }()
12201    }]);
12202
12203    return InternalRenderTask;
12204  }();
12205
12206  return InternalRenderTask;
12207}();
12208
12209var version = '2.1.266';
12210exports.version = version;
12211var build = '81f5835c';
12212exports.build = build;
12213
12214/***/ }),
12215/* 147 */
12216/***/ (function(module, exports, __w_pdfjs_require__) {
12217
12218"use strict";
12219
12220
12221module.exports = __w_pdfjs_require__(148);
12222
12223/***/ }),
12224/* 148 */
12225/***/ (function(module, exports, __w_pdfjs_require__) {
12226
12227"use strict";
12228
12229
12230function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
12231
12232var g = function () {
12233  return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self;
12234}() || Function("return this")();
12235
12236var hadRuntime = g.regeneratorRuntime && Object.getOwnPropertyNames(g).indexOf("regeneratorRuntime") >= 0;
12237var oldRuntime = hadRuntime && g.regeneratorRuntime;
12238g.regeneratorRuntime = undefined;
12239module.exports = __w_pdfjs_require__(149);
12240
12241if (hadRuntime) {
12242  g.regeneratorRuntime = oldRuntime;
12243} else {
12244  try {
12245    delete g.regeneratorRuntime;
12246  } catch (e) {
12247    g.regeneratorRuntime = undefined;
12248  }
12249}
12250
12251/***/ }),
12252/* 149 */
12253/***/ (function(module, exports, __w_pdfjs_require__) {
12254
12255"use strict";
12256/* WEBPACK VAR INJECTION */(function(module) {
12257
12258function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
12259
12260!function (global) {
12261  "use strict";
12262
12263  var Op = Object.prototype;
12264  var hasOwn = Op.hasOwnProperty;
12265  var undefined;
12266  var $Symbol = typeof Symbol === "function" ? Symbol : {};
12267  var iteratorSymbol = $Symbol.iterator || "@@iterator";
12268  var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
12269  var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
12270  var inModule = ( false ? undefined : _typeof(module)) === "object";
12271  var runtime = global.regeneratorRuntime;
12272
12273  if (runtime) {
12274    if (inModule) {
12275      module.exports = runtime;
12276    }
12277
12278    return;
12279  }
12280
12281  runtime = global.regeneratorRuntime = inModule ? module.exports : {};
12282
12283  function wrap(innerFn, outerFn, self, tryLocsList) {
12284    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
12285    var generator = Object.create(protoGenerator.prototype);
12286    var context = new Context(tryLocsList || []);
12287    generator._invoke = makeInvokeMethod(innerFn, self, context);
12288    return generator;
12289  }
12290
12291  runtime.wrap = wrap;
12292
12293  function tryCatch(fn, obj, arg) {
12294    try {
12295      return {
12296        type: "normal",
12297        arg: fn.call(obj, arg)
12298      };
12299    } catch (err) {
12300      return {
12301        type: "throw",
12302        arg: err
12303      };
12304    }
12305  }
12306
12307  var GenStateSuspendedStart = "suspendedStart";
12308  var GenStateSuspendedYield = "suspendedYield";
12309  var GenStateExecuting = "executing";
12310  var GenStateCompleted = "completed";
12311  var ContinueSentinel = {};
12312
12313  function Generator() {}
12314
12315  function GeneratorFunction() {}
12316
12317  function GeneratorFunctionPrototype() {}
12318
12319  var IteratorPrototype = {};
12320
12321  IteratorPrototype[iteratorSymbol] = function () {
12322    return this;
12323  };
12324
12325  var getProto = Object.getPrototypeOf;
12326  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
12327
12328  if (NativeIteratorPrototype && NativeIteratorPrototype !== Op && hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
12329    IteratorPrototype = NativeIteratorPrototype;
12330  }
12331
12332  var Gp = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(IteratorPrototype);
12333  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
12334  GeneratorFunctionPrototype.constructor = GeneratorFunction;
12335  GeneratorFunctionPrototype[toStringTagSymbol] = GeneratorFunction.displayName = "GeneratorFunction";
12336
12337  function defineIteratorMethods(prototype) {
12338    ["next", "throw", "return"].forEach(function (method) {
12339      prototype[method] = function (arg) {
12340        return this._invoke(method, arg);
12341      };
12342    });
vendor: 6,147 bytes, lines 12343-12564
12343  }
12344
12345  runtime.isGeneratorFunction = function (genFun) {
12346    var ctor = typeof genFun === "function" && genFun.constructor;
12347    return ctor ? ctor === GeneratorFunction || (ctor.displayName || ctor.name) === "GeneratorFunction" : false;
12348  };
12349
12350  runtime.mark = function (genFun) {
12351    if (Object.setPrototypeOf) {
12352      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
12353    } else {
12354      genFun.__proto__ = GeneratorFunctionPrototype;
12355
12356      if (!(toStringTagSymbol in genFun)) {
12357        genFun[toStringTagSymbol] = "GeneratorFunction";
12358      }
12359    }
12360
12361    genFun.prototype = Object.create(Gp);
12362    return genFun;
12363  };
12364
12365  runtime.awrap = function (arg) {
12366    return {
12367      __await: arg
12368    };
12369  };
12370
12371  function AsyncIterator(generator) {
12372    function invoke(method, arg, resolve, reject) {
12373      var record = tryCatch(generator[method], generator, arg);
12374
12375      if (record.type === "throw") {
12376        reject(record.arg);
12377      } else {
12378        var result = record.arg;
12379        var value = result.value;
12380
12381        if (value && _typeof(value) === "object" && hasOwn.call(value, "__await")) {
12382          return Promise.resolve(value.__await).then(function (value) {
12383            invoke("next", value, resolve, reject);
12384          }, function (err) {
12385            invoke("throw", err, resolve, reject);
12386          });
12387        }
12388
12389        return Promise.resolve(value).then(function (unwrapped) {
12390          result.value = unwrapped;
12391          resolve(result);
12392        }, function (error) {
12393          return invoke("throw", error, resolve, reject);
12394        });
12395      }
12396    }
12397
12398    var previousPromise;
12399
12400    function enqueue(method, arg) {
12401      function callInvokeWithMethodAndArg() {
12402        return new Promise(function (resolve, reject) {
12403          invoke(method, arg, resolve, reject);
12404        });
12405      }
12406
12407      return previousPromise = previousPromise ? previousPromise.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();
12408    }
12409
12410    this._invoke = enqueue;
12411  }
12412
12413  defineIteratorMethods(AsyncIterator.prototype);
12414
12415  AsyncIterator.prototype[asyncIteratorSymbol] = function () {
12416    return this;
12417  };
12418
12419  runtime.AsyncIterator = AsyncIterator;
12420
12421  runtime.async = function (innerFn, outerFn, self, tryLocsList) {
12422    var iter = new AsyncIterator(wrap(innerFn, outerFn, self, tryLocsList));
12423    return runtime.isGeneratorFunction(outerFn) ? iter : iter.next().then(function (result) {
12424      return result.done ? result.value : iter.next();
12425    });
12426  };
12427
12428  function makeInvokeMethod(innerFn, self, context) {
12429    var state = GenStateSuspendedStart;
12430    return function invoke(method, arg) {
12431      if (state === GenStateExecuting) {
12432        throw new Error("Generator is already running");
12433      }
12434
12435      if (state === GenStateCompleted) {
12436        if (method === "throw") {
12437          throw arg;
12438        }
12439
12440        return doneResult();
12441      }
12442
12443      context.method = method;
12444      context.arg = arg;
12445
12446      while (true) {
12447        var delegate = context.delegate;
12448
12449        if (delegate) {
12450          var delegateResult = maybeInvokeDelegate(delegate, context);
12451
12452          if (delegateResult) {
12453            if (delegateResult === ContinueSentinel) continue;
12454            return delegateResult;
12455          }
12456        }
12457
12458        if (context.method === "next") {
12459          context.sent = context._sent = context.arg;
12460        } else if (context.method === "throw") {
12461          if (state === GenStateSuspendedStart) {
12462            state = GenStateCompleted;
12463            throw context.arg;
12464          }
12465
12466          context.dispatchException(context.arg);
12467        } else if (context.method === "return") {
12468          context.abrupt("return", context.arg);
12469        }
12470
12471        state = GenStateExecuting;
12472        var record = tryCatch(innerFn, self, context);
12473
12474        if (record.type === "normal") {
12475          state = context.done ? GenStateCompleted : GenStateSuspendedYield;
12476
12477          if (record.arg === ContinueSentinel) {
12478            continue;
12479          }
12480
12481          return {
12482            value: record.arg,
12483            done: context.done
12484          };
12485        } else if (record.type === "throw") {
12486          state = GenStateCompleted;
12487          context.method = "throw";
12488          context.arg = record.arg;
12489        }
12490      }
12491    };
12492  }
12493
12494  function maybeInvokeDelegate(delegate, context) {
12495    var method = delegate.iterator[context.method];
12496
12497    if (method === undefined) {
12498      context.delegate = null;
12499
12500      if (context.method === "throw") {
12501        if (delegate.iterator.return) {
12502          context.method = "return";
12503          context.arg = undefined;
12504          maybeInvokeDelegate(delegate, context);
12505
12506          if (context.method === "throw") {
12507            return ContinueSentinel;
12508          }
12509        }
12510
12511        context.method = "throw";
12512        context.arg = new TypeError("The iterator does not provide a 'throw' method");
12513      }
12514
12515      return ContinueSentinel;
12516    }
12517
12518    var record = tryCatch(method, delegate.iterator, context.arg);
12519
12520    if (record.type === "throw") {
12521      context.method = "throw";
12522      context.arg = record.arg;
12523      context.delegate = null;
12524      return ContinueSentinel;
12525    }
12526
12527    var info = record.arg;
12528
12529    if (!info) {
12530      context.method = "throw";
12531      context.arg = new TypeError("iterator result is not an object");
12532      context.delegate = null;
12533      return ContinueSentinel;
12534    }
12535
12536    if (info.done) {
12537      context[delegate.resultName] = info.value;
12538      context.next = delegate.nextLoc;
12539
12540      if (context.method !== "return") {
12541        context.method = "next";
12542        context.arg = undefined;
12543      }
12544    } else {
12545      return info;
12546    }
12547
12548    context.delegate = null;
12549    return ContinueSentinel;
12550  }
12551
12552  defineIteratorMethods(Gp);
12553  Gp[toStringTagSymbol] = "Generator";
12554
12555  Gp[iteratorSymbol] = function () {
12556    return this;
12557  };
12558
12559  Gp.toString = function () {
12560    return "[object Generator]";
12561  };
12562
12563  function pushTryEntry(locs) {
12564    var entry = {
vendor: 4,447 bytes, lines 12565-12750
12565      tryLoc: locs[0]
12566    };
12567
12568    if (1 in locs) {
12569      entry.catchLoc = locs[1];
12570    }
12571
12572    if (2 in locs) {
12573      entry.finallyLoc = locs[2];
12574      entry.afterLoc = locs[3];
12575    }
12576
12577    this.tryEntries.push(entry);
12578  }
12579
12580  function resetTryEntry(entry) {
12581    var record = entry.completion || {};
12582    record.type = "normal";
12583    delete record.arg;
12584    entry.completion = record;
12585  }
12586
12587  function Context(tryLocsList) {
12588    this.tryEntries = [{
12589      tryLoc: "root"
12590    }];
12591    tryLocsList.forEach(pushTryEntry, this);
12592    this.reset(true);
12593  }
12594
12595  runtime.keys = function (object) {
12596    var keys = [];
12597
12598    for (var key in object) {
12599      keys.push(key);
12600    }
12601
12602    keys.reverse();
12603    return function next() {
12604      while (keys.length) {
12605        var key = keys.pop();
12606
12607        if (key in object) {
12608          next.value = key;
12609          next.done = false;
12610          return next;
12611        }
12612      }
12613
12614      next.done = true;
12615      return next;
12616    };
12617  };
12618
12619  function values(iterable) {
12620    if (iterable) {
12621      var iteratorMethod = iterable[iteratorSymbol];
12622
12623      if (iteratorMethod) {
12624        return iteratorMethod.call(iterable);
12625      }
12626
12627      if (typeof iterable.next === "function") {
12628        return iterable;
12629      }
12630
12631      if (!isNaN(iterable.length)) {
12632        var i = -1,
12633            next = function next() {
12634          while (++i < iterable.length) {
12635            if (hasOwn.call(iterable, i)) {
12636              next.value = iterable[i];
12637              next.done = false;
12638              return next;
12639            }
12640          }
12641
12642          next.value = undefined;
12643          next.done = true;
12644          return next;
12645        };
12646
12647        return next.next = next;
12648      }
12649    }
12650
12651    return {
12652      next: doneResult
12653    };
12654  }
12655
12656  runtime.values = values;
12657
12658  function doneResult() {
12659    return {
12660      value: undefined,
12661      done: true
12662    };
12663  }
12664
12665  Context.prototype = {
12666    constructor: Context,
12667    reset: function reset(skipTempReset) {
12668      this.prev = 0;
12669      this.next = 0;
12670      this.sent = this._sent = undefined;
12671      this.done = false;
12672      this.delegate = null;
12673      this.method = "next";
12674      this.arg = undefined;
12675      this.tryEntries.forEach(resetTryEntry);
12676
12677      if (!skipTempReset) {
12678        for (var name in this) {
12679          if (name.charAt(0) === "t" && hasOwn.call(this, name) && !isNaN(+name.slice(1))) {
12680            this[name] = undefined;
12681          }
12682        }
12683      }
12684    },
12685    stop: function stop() {
12686      this.done = true;
12687      var rootEntry = this.tryEntries[0];
12688      var rootRecord = rootEntry.completion;
12689
12690      if (rootRecord.type === "throw") {
12691        throw rootRecord.arg;
12692      }
12693
12694      return this.rval;
12695    },
12696    dispatchException: function dispatchException(exception) {
12697      if (this.done) {
12698        throw exception;
12699      }
12700
12701      var context = this;
12702
12703      function handle(loc, caught) {
12704        record.type = "throw";
12705        record.arg = exception;
12706        context.next = loc;
12707
12708        if (caught) {
12709          context.method = "next";
12710          context.arg = undefined;
12711        }
12712
12713        return !!caught;
12714      }
12715
12716      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12717        var entry = this.tryEntries[i];
12718        var record = entry.completion;
12719
12720        if (entry.tryLoc === "root") {
12721          return handle("end");
12722        }
12723
12724        if (entry.tryLoc <= this.prev) {
12725          var hasCatch = hasOwn.call(entry, "catchLoc");
12726          var hasFinally = hasOwn.call(entry, "finallyLoc");
12727
12728          if (hasCatch && hasFinally) {
12729            if (this.prev < entry.catchLoc) {
12730              return handle(entry.catchLoc, true);
12731            } else if (this.prev < entry.finallyLoc) {
12732              return handle(entry.finallyLoc);
12733            }
12734          } else if (hasCatch) {
12735            if (this.prev < entry.catchLoc) {
12736              return handle(entry.catchLoc, true);
12737            }
12738          } else if (hasFinally) {
12739            if (this.prev < entry.finallyLoc) {
12740              return handle(entry.finallyLoc);
12741            }
12742          } else {
12743            throw new Error("try statement without catch or finally");
12744          }
12745        }
12746      }
12747    },
12748    abrupt: function abrupt(type, arg) {
12749      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12750        var entry = this.tryEntries[i];
12751
12752        if (entry.tryLoc <= this.prev && hasOwn.call(entry, "finallyLoc") && this.prev < entry.finallyLoc) {
12753          var finallyEntry = entry;
12754          break;
12755        }
12756      }
12757
12758      if (finallyEntry && (type === "break" || type === "continue") && finallyEntry.tryLoc <= arg && arg <= finallyEntry.finallyLoc) {
12759        finallyEntry = null;
12760      }
12761
12762      var record = finallyEntry ? finallyEntry.completion : {};
12763      record.type = type;
12764      record.arg = arg;
12765
12766      if (finallyEntry) {
12767        this.method = "next";
12768        this.next = finallyEntry.finallyLoc;
12769        return ContinueSentinel;
12770      }
12771
12772      return this.complete(record);
12773    },
12774    complete: function complete(record, afterLoc) {
12775      if (record.type === "throw") {
12776        throw record.arg;
12777      }
12778
12779      if (record.type === "break" || record.type === "continue") {
12780        this.next = record.arg;
12781      } else if (record.type === "return") {
12782        this.rval = this.arg = record.arg;
12783        this.method = "return";
12784        this.next = "end";
12785      } else if (record.type === "normal" && afterLoc) {
12786        this.next = afterLoc;
12787      }
12788
12789      return ContinueSentinel;
12790    },
12791    finish: function finish(finallyLoc) {
12792      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12793        var entry = this.tryEntries[i];
12794
12795        if (entry.finallyLoc === finallyLoc) {
12796          this.complete(entry.completion, entry.afterLoc);
12797          resetTryEntry(entry);
12798          return ContinueSentinel;
12799        }
12800      }
12801    },
12802    "catch": function _catch(tryLoc) {
12803      for (var i = this.tryEntries.length - 1; i >= 0; --i) {
12804        var entry = this.tryEntries[i];
12805
12806        if (entry.tryLoc === tryLoc) {
12807          var record = entry.completion;
12808
12809          if (record.type === "throw") {
12810            var thrown = record.arg;
12811            resetTryEntry(entry);
12812          }
12813
12814          return thrown;
12815        }
12816      }
12817
12818      throw new Error("illegal catch attempt");
12819    },
12820    delegateYield: function delegateYield(iterable, resultName, nextLoc) {
12821      this.delegate = {
12822        iterator: values(iterable),
12823        resultName: resultName,
12824        nextLoc: nextLoc
12825      };
12826
12827      if (this.method === "next") {
12828        this.arg = undefined;
12829      }
12830
12831      return ContinueSentinel;
12832    }
12833  };
12834}(function () {
12835  return this || (typeof self === "undefined" ? "undefined" : _typeof(self)) === "object" && self;
12836}() || Function("return this")());
12837/* WEBPACK VAR INJECTION */}.call(this, __w_pdfjs_require__(150)(module)))
12838
12839/***/ }),
12840/* 150 */
12841/***/ (function(module, exports, __w_pdfjs_require__) {
12842
12843"use strict";
12844
12845
12846module.exports = function (module) {
12847  if (!module.webpackPolyfill) {
12848    module.deprecate = function () {};
12849
12850    module.paths = [];
12851    if (!module.children) module.children = [];
12852    Object.defineProperty(module, "loaded", {
12853      enumerable: true,
12854      get: function get() {
12855        return module.l;
12856      }
12857    });
12858    Object.defineProperty(module, "id", {
12859      enumerable: true,
12860      get: function get() {
12861        return module.i;
12862      }
12863    });
12864    module.webpackPolyfill = 1;
12865  }
12866
12867  return module;
12868};
12869
12870/***/ }),
12871/* 151 */
12872/***/ (function(module, exports, __w_pdfjs_require__) {
12873
12874"use strict";
12875
12876
12877Object.defineProperty(exports, "__esModule", {
12878  value: true
12879});
12880exports.addLinkAttributes = addLinkAttributes;
12881exports.getFilenameFromUrl = getFilenameFromUrl;
12882exports.loadScript = loadScript;
12883exports.DummyStatTimer = exports.StatTimer = exports.DOMSVGFactory = exports.DOMCMapReaderFactory = exports.DOMCanvasFactory = exports.DEFAULT_LINK_REL = exports.LinkTarget = exports.RenderingCancelledException = exports.PageViewport = void 0;
12884
12885var _util = __w_pdfjs_require__(1);
12886
12887function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
12888
12889function _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); } }
12890
12891function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
12892
12893var DEFAULT_LINK_REL = 'noopener noreferrer nofollow';
12894exports.DEFAULT_LINK_REL = DEFAULT_LINK_REL;
12895var SVG_NS = 'http://www.w3.org/2000/svg';
12896
12897var DOMCanvasFactory =
12898/*#__PURE__*/
12899function () {
12900  function DOMCanvasFactory() {
12901    _classCallCheck(this, DOMCanvasFactory);
12902  }
12903
12904  _createClass(DOMCanvasFactory, [{
12905    key: "create",
12906    value: function create(width, height) {
12907      if (width <= 0 || height <= 0) {
12908        throw new Error('invalid canvas size');
12909      }
12910
12911      var canvas = document.createElement('canvas');
12912      var context = canvas.getContext('2d');
12913      canvas.width = width;
12914      canvas.height = height;
12915      return {
12916        canvas: canvas,
12917        context: context
12918      };
12919    }
12920  }, {
12921    key: "reset",
12922    value: function reset(canvasAndContext, width, height) {
12923      if (!canvasAndContext.canvas) {
12924        throw new Error('canvas is not specified');
12925      }
12926
12927      if (width <= 0 || height <= 0) {
12928        throw new Error('invalid canvas size');
12929      }
12930
12931      canvasAndContext.canvas.width = width;
12932      canvasAndContext.canvas.height = height;
12933    }
12934  }, {
12935    key: "destroy",
12936    value: function destroy(canvasAndContext) {
12937      if (!canvasAndContext.canvas) {
12938        throw new Error('canvas is not specified');
12939      }
12940
12941      canvasAndContext.canvas.width = 0;
12942      canvasAndContext.canvas.height = 0;
12943      canvasAndContext.canvas = null;
12944      canvasAndContext.context = null;
12945    }
12946  }]);
12947
12948  return DOMCanvasFactory;
12949}();
12950
12951exports.DOMCanvasFactory = DOMCanvasFactory;
12952
12953var DOMCMapReaderFactory =
12954/*#__PURE__*/
12955function () {
12956  function DOMCMapReaderFactory(_ref) {
12957    var _ref$baseUrl = _ref.baseUrl,
12958        baseUrl = _ref$baseUrl === void 0 ? null : _ref$baseUrl,
12959        _ref$isCompressed = _ref.isCompressed,
12960        isCompressed = _ref$isCompressed === void 0 ? false : _ref$isCompressed;
12961
12962    _classCallCheck(this, DOMCMapReaderFactory);
12963
12964    this.baseUrl = baseUrl;
12965    this.isCompressed = isCompressed;
12966  }
12967
12968  _createClass(DOMCMapReaderFactory, [{
12969    key: "fetch",
12970    value: function fetch(_ref2) {
12971      var _this = this;
12972
12973      var name = _ref2.name;
12974
12975      if (!this.baseUrl) {
12976        return Promise.reject(new Error('The CMap "baseUrl" parameter must be specified, ensure that ' + 'the "cMapUrl" and "cMapPacked" API parameters are provided.'));
12977      }
12978
12979      if (!name) {
12980        return Promise.reject(new Error('CMap name must be specified.'));
12981      }
12982
12983      return new Promise(function (resolve, reject) {
12984        var url = _this.baseUrl + name + (_this.isCompressed ? '.bcmap' : '');
12985        var request = new XMLHttpRequest();
12986        request.open('GET', url, true);
12987
12988        if (_this.isCompressed) {
12989          request.responseType = 'arraybuffer';
12990        }
12991
12992        request.onreadystatechange = function () {
12993          if (request.readyState !== XMLHttpRequest.DONE) {
12994            return;
12995          }
12996
12997          if (request.status === 200 || request.status === 0) {
12998            var data;
12999
13000            if (_this.isCompressed && request.response) {
13001              data = new Uint8Array(request.response);
13002            } else if (!_this.isCompressed && request.responseText) {
13003              data = (0, _util.stringToBytes)(request.responseText);
13004            }
13005
13006            if (data) {
13007              resolve({
13008                cMapData: data,
13009                compressionType: _this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE
13010              });
13011              return;
13012            }
13013          }
13014
13015          reject(new Error('Unable to load ' + (_this.isCompressed ? 'binary ' : '') + 'CMap at: ' + url));
13016        };
13017
13018        request.send(null);
13019      });
13020    }
13021  }]);
13022
13023  return DOMCMapReaderFactory;
13024}();
13025
13026exports.DOMCMapReaderFactory = DOMCMapReaderFactory;
13027
13028var DOMSVGFactory =
13029/*#__PURE__*/
13030function () {
13031  function DOMSVGFactory() {
13032    _classCallCheck(this, DOMSVGFactory);
13033  }
13034
13035  _createClass(DOMSVGFactory, [{
13036    key: "create",
13037    value: function create(width, height) {
13038      (0, _util.assert)(width > 0 && height > 0, 'Invalid SVG dimensions');
13039      var svg = document.createElementNS(SVG_NS, 'svg:svg');
13040      svg.setAttribute('version', '1.1');
13041      svg.setAttribute('width', width + 'px');
13042      svg.setAttribute('height', height + 'px');
13043      svg.setAttribute('preserveAspectRatio', 'none');
13044      svg.setAttribute('viewBox', '0 0 ' + width + ' ' + height);
13045      return svg;
13046    }
13047  }, {
13048    key: "createElement",
13049    value: function createElement(type) {
13050      (0, _util.assert)(typeof type === 'string', 'Invalid SVG element type');
13051      return document.createElementNS(SVG_NS, type);
13052    }
13053  }]);
13054
13055  return DOMSVGFactory;
13056}();
13057
13058exports.DOMSVGFactory = DOMSVGFactory;
13059
13060var PageViewport =
13061/*#__PURE__*/
13062function () {
13063  function PageViewport(_ref3) {
13064    var viewBox = _ref3.viewBox,
13065        scale = _ref3.scale,
13066        rotation = _ref3.rotation,
13067        _ref3$offsetX = _ref3.offsetX,
13068        offsetX = _ref3$offsetX === void 0 ? 0 : _ref3$offsetX,
13069        _ref3$offsetY = _ref3.offsetY,
13070        offsetY = _ref3$offsetY === void 0 ? 0 : _ref3$offsetY,
13071        _ref3$dontFlip = _ref3.dontFlip,
13072        dontFlip = _ref3$dontFlip === void 0 ? false : _ref3$dontFlip;
13073
13074    _classCallCheck(this, PageViewport);
13075
13076    this.viewBox = viewBox;
13077    this.scale = scale;
13078    this.rotation = rotation;
13079    this.offsetX = offsetX;
13080    this.offsetY = offsetY;
13081    var centerX = (viewBox[2] + viewBox[0]) / 2;
13082    var centerY = (viewBox[3] + viewBox[1]) / 2;
13083    var rotateA, rotateB, rotateC, rotateD;
13084    rotation = rotation % 360;
13085    rotation = rotation < 0 ? rotation + 360 : rotation;
13086
13087    switch (rotation) {
13088      case 180:
13089        rotateA = -1;
13090        rotateB = 0;
13091        rotateC = 0;
13092        rotateD = 1;
13093        break;
13094
13095      case 90:
13096        rotateA = 0;
13097        rotateB = 1;
13098        rotateC = 1;
13099        rotateD = 0;
13100        break;
13101
13102      case 270:
13103        rotateA = 0;
13104        rotateB = -1;
13105        rotateC = -1;
13106        rotateD = 0;
13107        break;
13108
13109      default:
13110        rotateA = 1;
13111        rotateB = 0;
13112        rotateC = 0;
13113        rotateD = -1;
13114        break;
13115    }
13116
13117    if (dontFlip) {
13118      rotateC = -rotateC;
13119      rotateD = -rotateD;
13120    }
13121
13122    var offsetCanvasX, offsetCanvasY;
13123    var width, height;
13124
13125    if (rotateA === 0) {
13126      offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;
13127      offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;
13128      width = Math.abs(viewBox[3] - viewBox[1]) * scale;
13129      height = Math.abs(viewBox[2] - viewBox[0]) * scale;
13130    } else {
13131      offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;
13132      offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;
13133      width = Math.abs(viewBox[2] - viewBox[0]) * scale;
13134      height = Math.abs(viewBox[3] - viewBox[1]) * scale;
13135    }
13136
13137    this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];
13138    this.width = width;
13139    this.height = height;
13140  }
13141
13142  _createClass(PageViewport, [{
13143    key: "clone",
13144    value: function clone() {
13145      var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
13146          _ref4$scale = _ref4.scale,
13147          scale = _ref4$scale === void 0 ? this.scale : _ref4$scale,
13148          _ref4$rotation = _ref4.rotation,
13149          rotation = _ref4$rotation === void 0 ? this.rotation : _ref4$rotation,
13150          _ref4$dontFlip = _ref4.dontFlip,
13151          dontFlip = _ref4$dontFlip === void 0 ? false : _ref4$dontFlip;
13152
13153      return new PageViewport({
13154        viewBox: this.viewBox.slice(),
13155        scale: scale,
13156        rotation: rotation,
13157        offsetX: this.offsetX,
13158        offsetY: this.offsetY,
13159        dontFlip: dontFlip
13160      });
13161    }
13162  }, {
13163    key: "convertToViewportPoint",
13164    value: function convertToViewportPoint(x, y) {
13165      return _util.Util.applyTransform([x, y], this.transform);
13166    }
13167  }, {
13168    key: "convertToViewportRectangle",
13169    value: function convertToViewportRectangle(rect) {
13170      var tl = _util.Util.applyTransform([rect[0], rect[1]], this.transform);
13171
13172      var br = _util.Util.applyTransform([rect[2], rect[3]], this.transform);
13173
13174      return [tl[0], tl[1], br[0], br[1]];
13175    }
13176  }, {
13177    key: "convertToPdfPoint",
13178    value: function convertToPdfPoint(x, y) {
13179      return _util.Util.applyInverseTransform([x, y], this.transform);
13180    }
13181  }]);
13182
13183  return PageViewport;
13184}();
13185
13186exports.PageViewport = PageViewport;
13187
13188var RenderingCancelledException = function RenderingCancelledException() {
13189  function RenderingCancelledException(msg, type) {
13190    this.message = msg;
13191    this.type = type;
13192  }
13193
13194  RenderingCancelledException.prototype = new Error();
13195  RenderingCancelledException.prototype.name = 'RenderingCancelledException';
13196  RenderingCancelledException.constructor = RenderingCancelledException;
13197  return RenderingCancelledException;
13198}();
13199
13200exports.RenderingCancelledException = RenderingCancelledException;
13201var LinkTarget = {
13202  NONE: 0,
13203  SELF: 1,
13204  BLANK: 2,
13205  PARENT: 3,
13206  TOP: 4
13207};
13208exports.LinkTarget = LinkTarget;
13209var LinkTargetStringMap = ['', '_self', '_blank', '_parent', '_top'];
13210
13211function addLinkAttributes(link) {
13212  var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},
13213      url = _ref5.url,
13214      target = _ref5.target,
13215      rel = _ref5.rel;
13216
13217  link.href = link.title = url ? (0, _util.removeNullCharacters)(url) : '';
13218
13219  if (url) {
13220    var LinkTargetValues = Object.values(LinkTarget);
13221    var targetIndex = LinkTargetValues.includes(target) ? target : LinkTarget.NONE;
13222    link.target = LinkTargetStringMap[targetIndex];
13223    link.rel = typeof rel === 'string' ? rel : DEFAULT_LINK_REL;
13224  }
13225}
13226
13227function getFilenameFromUrl(url) {
13228  var anchor = url.indexOf('#');
13229  var query = url.indexOf('?');
13230  var end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);
13231  return url.substring(url.lastIndexOf('/', end) + 1, end);
13232}
13233
13234var StatTimer =
13235/*#__PURE__*/
13236function () {
13237  function StatTimer() {
13238    var enable = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
13239
13240    _classCallCheck(this, StatTimer);
13241
13242    this.enabled = !!enable;
13243    this.started = Object.create(null);
13244    this.times = [];
13245  }
13246
13247  _createClass(StatTimer, [{
13248    key: "time",
13249    value: function time(name) {
13250      if (!this.enabled) {
13251        return;
13252      }
13253
13254      if (name in this.started) {
13255        (0, _util.warn)('Timer is already running for ' + name);
13256      }
13257
13258      this.started[name] = Date.now();
13259    }
13260  }, {
13261    key: "timeEnd",
13262    value: function timeEnd(name) {
13263      if (!this.enabled) {
13264        return;
13265      }
13266
13267      if (!(name in this.started)) {
13268        (0, _util.warn)('Timer has not been started for ' + name);
13269      }
13270
13271      this.times.push({
13272        'name': name,
13273        'start': this.started[name],
13274        'end': Date.now()
13275      });
13276      delete this.started[name];
13277    }
13278  }, {
13279    key: "toString",
13280    value: function toString() {
13281      var times = this.times;
13282      var out = '',
13283          longest = 0;
13284
13285      for (var i = 0, ii = times.length; i < ii; ++i) {
13286        var name = times[i]['name'];
13287
13288        if (name.length > longest) {
13289          longest = name.length;
13290        }
13291      }
13292
13293      for (var _i = 0, _ii = times.length; _i < _ii; ++_i) {
13294        var span = times[_i];
13295        var duration = span.end - span.start;
13296        out += "".concat(span['name'].padEnd(longest), " ").concat(duration, "ms\n");
13297      }
13298
13299      return out;
13300    }
13301  }]);
13302
13303  return StatTimer;
13304}();
13305
13306exports.StatTimer = StatTimer;
13307
13308var DummyStatTimer =
13309/*#__PURE__*/
13310function () {
13311  function DummyStatTimer() {
13312    _classCallCheck(this, DummyStatTimer);
13313
13314    (0, _util.unreachable)('Cannot initialize DummyStatTimer.');
13315  }
13316
13317  _createClass(DummyStatTimer, null, [{
13318    key: "time",
13319    value: function time(name) {}
13320  }, {
13321    key: "timeEnd",
13322    value: function timeEnd(name) {}
13323  }, {
13324    key: "toString",
13325    value: function toString() {
13326      return '';
13327    }
13328  }]);
13329
13330  return DummyStatTimer;
13331}();
13332
13333exports.DummyStatTimer = DummyStatTimer;
13334
13335function loadScript(src) {
13336  return new Promise(function (resolve, reject) {
13337    var script = document.createElement('script');
13338    script.src = src;
13339    script.onload = resolve;
13340
13341    script.onerror = function () {
13342      reject(new Error("Cannot load script at: ".concat(script.src)));
13343    };
13344
13345    (document.head || document.documentElement).appendChild(script);
13346  });
13347}
13348
13349/***/ }),
13350/* 152 */
13351/***/ (function(module, exports, __w_pdfjs_require__) {
13352
13353"use strict";
13354
13355
13356Object.defineProperty(exports, "__esModule", {
13357  value: true
13358});
13359exports.FontLoader = exports.FontFaceObject = void 0;
13360
13361var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
13362
13363var _util = __w_pdfjs_require__(1);
13364
13365function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13366
13367function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
13368
13369function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
13370
13371function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
13372
13373function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
13374
13375function _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); }
13376
13377function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
13378
13379function 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); } }
13380
13381function _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); }); }; }
13382
13383function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
13384
13385function _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); } }
13386
13387function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
13388
13389var BaseFontLoader =
13390/*#__PURE__*/
13391function () {
13392  function BaseFontLoader(_ref) {
13393    var docId = _ref.docId,
13394        onUnsupportedFeature = _ref.onUnsupportedFeature;
13395
13396    _classCallCheck(this, BaseFontLoader);
13397
13398    if (this.constructor === BaseFontLoader) {
13399      (0, _util.unreachable)('Cannot initialize BaseFontLoader.');
13400    }
13401
13402    this.docId = docId;
13403    this._onUnsupportedFeature = onUnsupportedFeature;
13404    this.nativeFontFaces = [];
13405    this.styleElement = null;
13406  }
13407
13408  _createClass(BaseFontLoader, [{
13409    key: "addNativeFontFace",
13410    value: function addNativeFontFace(nativeFontFace) {
13411      this.nativeFontFaces.push(nativeFontFace);
13412      document.fonts.add(nativeFontFace);
13413    }
13414  }, {
13415    key: "insertRule",
13416    value: function insertRule(rule) {
13417      var styleElement = this.styleElement;
13418
13419      if (!styleElement) {
13420        styleElement = this.styleElement = document.createElement('style');
13421        styleElement.id = "PDFJS_FONT_STYLE_TAG_".concat(this.docId);
13422        document.documentElement.getElementsByTagName('head')[0].appendChild(styleElement);
13423      }
13424
13425      var styleSheet = styleElement.sheet;
13426      styleSheet.insertRule(rule, styleSheet.cssRules.length);
13427    }
13428  }, {
13429    key: "clear",
13430    value: function clear() {
13431      this.nativeFontFaces.forEach(function (nativeFontFace) {
13432        document.fonts.delete(nativeFontFace);
13433      });
13434      this.nativeFontFaces.length = 0;
13435
13436      if (this.styleElement) {
13437        this.styleElement.remove();
13438        this.styleElement = null;
13439      }
13440    }
13441  }, {
13442    key: "bind",
13443    value: function () {
13444      var _bind = _asyncToGenerator(
13445      /*#__PURE__*/
13446      _regenerator.default.mark(function _callee(font) {
13447        var _this = this;
13448
13449        var nativeFontFace, rule;
13450        return _regenerator.default.wrap(function _callee$(_context) {
13451          while (1) {
13452            switch (_context.prev = _context.next) {
13453              case 0:
13454                if (!(font.attached || font.missingFile)) {
13455                  _context.next = 2;
13456                  break;
13457                }
13458
13459                return _context.abrupt("return");
13460
13461              case 2:
13462                font.attached = true;
13463
13464                if (!this.isFontLoadingAPISupported) {
13465                  _context.next = 19;
13466                  break;
13467                }
13468
13469                nativeFontFace = font.createNativeFontFace();
13470
13471                if (!nativeFontFace) {
13472                  _context.next = 18;
13473                  break;
13474                }
13475
13476                this.addNativeFontFace(nativeFontFace);
13477                _context.prev = 7;
13478                _context.next = 10;
13479                return nativeFontFace.loaded;
13480
13481              case 10:
13482                _context.next = 18;
13483                break;
13484
13485              case 12:
13486                _context.prev = 12;
13487                _context.t0 = _context["catch"](7);
13488
13489                this._onUnsupportedFeature({
13490                  featureId: _util.UNSUPPORTED_FEATURES.font
13491                });
13492
13493                (0, _util.warn)("Failed to load font '".concat(nativeFontFace.family, "': '").concat(_context.t0, "'."));
13494                font.disableFontFace = true;
13495                throw _context.t0;
13496
13497              case 18:
13498                return _context.abrupt("return");
13499
13500              case 19:
13501                rule = font.createFontFaceRule();
13502
13503                if (!rule) {
13504                  _context.next = 25;
13505                  break;
13506                }
13507
13508                this.insertRule(rule);
13509
13510                if (!this.isSyncFontLoadingSupported) {
13511                  _context.next = 24;
13512                  break;
13513                }
13514
13515                return _context.abrupt("return");
13516
13517              case 24:
13518                return _context.abrupt("return", new Promise(function (resolve) {
13519                  var request = _this._queueLoadingCallback(resolve);
13520
13521                  _this._prepareFontLoadEvent([rule], [font], request);
13522                }));
13523
13524              case 25:
13525              case "end":
13526                return _context.stop();
13527            }
13528          }
13529        }, _callee, this, [[7, 12]]);
13530      }));
13531
13532      function bind(_x) {
13533        return _bind.apply(this, arguments);
13534      }
13535
13536      return bind;
13537    }()
13538  }, {
13539    key: "_queueLoadingCallback",
13540    value: function _queueLoadingCallback(callback) {
13541      (0, _util.unreachable)('Abstract method `_queueLoadingCallback`.');
13542    }
13543  }, {
13544    key: "_prepareFontLoadEvent",
13545    value: function _prepareFontLoadEvent(rules, fontsToLoad, request) {
13546      (0, _util.unreachable)('Abstract method `_prepareFontLoadEvent`.');
13547    }
13548  }, {
13549    key: "isFontLoadingAPISupported",
13550    get: function get() {
13551      (0, _util.unreachable)('Abstract method `isFontLoadingAPISupported`.');
13552    }
13553  }, {
13554    key: "isSyncFontLoadingSupported",
13555    get: function get() {
13556      (0, _util.unreachable)('Abstract method `isSyncFontLoadingSupported`.');
13557    }
13558  }, {
13559    key: "_loadTestFont",
13560    get: function get() {
13561      (0, _util.unreachable)('Abstract method `_loadTestFont`.');
13562    }
13563  }]);
13564
13565  return BaseFontLoader;
13566}();
13567
13568var FontLoader;
13569exports.FontLoader = FontLoader;
13570{
13571  exports.FontLoader = FontLoader =
13572  /*#__PURE__*/
13573  function (_BaseFontLoader) {
13574    _inherits(GenericFontLoader, _BaseFontLoader);
13575
13576    function GenericFontLoader(docId) {
13577      var _this2;
13578
13579      _classCallCheck(this, GenericFontLoader);
13580
13581      _this2 = _possibleConstructorReturn(this, _getPrototypeOf(GenericFontLoader).call(this, docId));
13582      _this2.loadingContext = {
13583        requests: [],
13584        nextRequestId: 0
13585      };
13586      _this2.loadTestFontId = 0;
13587      return _this2;
13588    }
13589
13590    _createClass(GenericFontLoader, [{
13591      key: "_queueLoadingCallback",
13592      value: function _queueLoadingCallback(callback) {
13593        function completeRequest() {
13594          (0, _util.assert)(!request.done, 'completeRequest() cannot be called twice.');
13595          request.done = true;
13596
13597          while (context.requests.length > 0 && context.requests[0].done) {
13598            var otherRequest = context.requests.shift();
13599            setTimeout(otherRequest.callback, 0);
13600          }
13601        }
13602
13603        var context = this.loadingContext;
13604        var request = {
13605          id: "pdfjs-font-loading-".concat(context.nextRequestId++),
13606          done: false,
13607          complete: completeRequest,
13608          callback: callback
13609        };
13610        context.requests.push(request);
13611        return request;
13612      }
13613    }, {
13614      key: "_prepareFontLoadEvent",
13615      value: function _prepareFontLoadEvent(rules, fonts, request) {
13616        function int32(data, offset) {
13617          return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;
13618        }
13619
13620        function spliceString(s, offset, remove, insert) {
13621          var chunk1 = s.substring(0, offset);
13622          var chunk2 = s.substring(offset + remove);
13623          return chunk1 + insert + chunk2;
13624        }
13625
13626        var i, ii;
13627        var canvas = document.createElement('canvas');
13628        canvas.width = 1;
13629        canvas.height = 1;
13630        var ctx = canvas.getContext('2d');
13631        var called = 0;
13632
13633        function isFontReady(name, callback) {
13634          called++;
13635
13636          if (called > 30) {
13637            (0, _util.warn)('Load test font never loaded.');
13638            callback();
13639            return;
13640          }
13641
13642          ctx.font = '30px ' + name;
13643          ctx.fillText('.', 0, 20);
13644          var imageData = ctx.getImageData(0, 0, 1, 1);
13645
13646          if (imageData.data[3] > 0) {
13647            callback();
13648            return;
13649          }
13650
13651          setTimeout(isFontReady.bind(null, name, callback));
13652        }
13653
13654        var loadTestFontId = "lt".concat(Date.now()).concat(this.loadTestFontId++);
13655        var data = this._loadTestFont;
13656        var COMMENT_OFFSET = 976;
13657        data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);
13658        var CFF_CHECKSUM_OFFSET = 16;
13659        var XXXX_VALUE = 0x58585858;
13660        var checksum = int32(data, CFF_CHECKSUM_OFFSET);
13661
13662        for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {
13663          checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;
13664        }
13665
13666        if (i < loadTestFontId.length) {
13667          checksum = checksum - XXXX_VALUE + int32(loadTestFontId + 'XXX', i) | 0;
13668        }
13669
13670        data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));
13671        var url = "url(data:font/opentype;base64,".concat(btoa(data), ");");
13672        var rule = "@font-face {font-family:\"".concat(loadTestFontId, "\";src:").concat(url, "}");
13673        this.insertRule(rule);
13674        var names = [];
13675
13676        for (i = 0, ii = fonts.length; i < ii; i++) {
13677          names.push(fonts[i].loadedName);
13678        }
13679
13680        names.push(loadTestFontId);
13681        var div = document.createElement('div');
13682        div.setAttribute('style', 'visibility: hidden;' + 'width: 10px; height: 10px;' + 'position: absolute; top: 0px; left: 0px;');
13683
13684        for (i = 0, ii = names.length; i < ii; ++i) {
13685          var span = document.createElement('span');
13686          span.textContent = 'Hi';
13687          span.style.fontFamily = names[i];
13688          div.appendChild(span);
13689        }
13690
13691        document.body.appendChild(div);
13692        isFontReady(loadTestFontId, function () {
13693          document.body.removeChild(div);
13694          request.complete();
13695        });
13696      }
13697    }, {
13698      key: "isFontLoadingAPISupported",
13699      get: function get() {
13700        var supported = typeof document !== 'undefined' && !!document.fonts;
13701
13702        if (supported && typeof navigator !== 'undefined') {
13703          var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
13704
13705          if (m && m[1] < 63) {
13706            supported = false;
13707          }
13708        }
13709
13710        return (0, _util.shadow)(this, 'isFontLoadingAPISupported', supported);
13711      }
13712    }, {
13713      key: "isSyncFontLoadingSupported",
13714      get: function get() {
13715        var supported = false;
13716
13717        if (typeof navigator === 'undefined') {
13718          supported = true;
13719        } else {
13720          var m = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent);
13721
13722          if (m && m[1] >= 14) {
13723            supported = true;
13724          }
13725        }
13726
13727        return (0, _util.shadow)(this, 'isSyncFontLoadingSupported', supported);
13728      }
13729    }, {
13730      key: "_loadTestFont",
13731      get: function get() {
13732        var getLoadTestFont = function getLoadTestFont() {
13733          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==');
13734        };
13735
13736        return (0, _util.shadow)(this, '_loadTestFont', getLoadTestFont());
13737      }
13738    }]);
13739
13740    return GenericFontLoader;
13741  }(BaseFontLoader);
13742}
13743var IsEvalSupportedCached = {
13744  get value() {
13745    return (0, _util.shadow)(this, 'value', (0, _util.isEvalSupported)());
13746  }
13747
13748};
13749
13750var FontFaceObject =
13751/*#__PURE__*/
13752function () {
13753  function FontFaceObject(translatedData, _ref2) {
13754    var _ref2$isEvalSupported = _ref2.isEvalSupported,
13755        isEvalSupported = _ref2$isEvalSupported === void 0 ? true : _ref2$isEvalSupported,
13756        _ref2$disableFontFace = _ref2.disableFontFace,
13757        disableFontFace = _ref2$disableFontFace === void 0 ? false : _ref2$disableFontFace,
13758        _ref2$ignoreErrors = _ref2.ignoreErrors,
13759        ignoreErrors = _ref2$ignoreErrors === void 0 ? false : _ref2$ignoreErrors,
13760        _ref2$onUnsupportedFe = _ref2.onUnsupportedFeature,
13761        onUnsupportedFeature = _ref2$onUnsupportedFe === void 0 ? null : _ref2$onUnsupportedFe,
13762        _ref2$fontRegistry = _ref2.fontRegistry,
13763        fontRegistry = _ref2$fontRegistry === void 0 ? null : _ref2$fontRegistry;
13764
13765    _classCallCheck(this, FontFaceObject);
13766
13767    this.compiledGlyphs = Object.create(null);
13768
13769    for (var i in translatedData) {
13770      this[i] = translatedData[i];
13771    }
13772
13773    this.isEvalSupported = isEvalSupported !== false;
13774    this.disableFontFace = disableFontFace === true;
13775    this.ignoreErrors = ignoreErrors === true;
13776    this._onUnsupportedFeature = onUnsupportedFeature;
13777    this.fontRegistry = fontRegistry;
13778  }
13779
13780  _createClass(FontFaceObject, [{
13781    key: "createNativeFontFace",
13782    value: function createNativeFontFace() {
13783      if (!this.data || this.disableFontFace) {
13784        return null;
13785      }
13786
13787      var nativeFontFace = new FontFace(this.loadedName, this.data, {});
13788
13789      if (this.fontRegistry) {
13790        this.fontRegistry.registerFont(this);
13791      }
13792
13793      return nativeFontFace;
13794    }
13795  }, {
13796    key: "createFontFaceRule",
13797    value: function createFontFaceRule() {
13798      if (!this.data || this.disableFontFace) {
13799        return null;
13800      }
13801
13802      var data = (0, _util.bytesToString)(new Uint8Array(this.data));
13803      var url = "url(data:".concat(this.mimetype, ";base64,").concat(btoa(data), ");");
13804      var rule = "@font-face {font-family:\"".concat(this.loadedName, "\";src:").concat(url, "}");
13805
13806      if (this.fontRegistry) {
13807        this.fontRegistry.registerFont(this, url);
13808      }
13809
13810      return rule;
13811    }
13812  }, {
13813    key: "getPathGenerator",
13814    value: function getPathGenerator(objs, character) {
13815      if (this.compiledGlyphs[character] !== undefined) {
13816        return this.compiledGlyphs[character];
13817      }
13818
13819      var cmds, current;
13820
13821      try {
13822        cmds = objs.get(this.loadedName + '_path_' + character);
13823      } catch (ex) {
13824        if (!this.ignoreErrors) {
13825          throw ex;
13826        }
13827
13828        if (this._onUnsupportedFeature) {
13829          this._onUnsupportedFeature({
13830            featureId: _util.UNSUPPORTED_FEATURES.font
13831          });
13832        }
13833
13834        (0, _util.warn)("getPathGenerator - ignoring character: \"".concat(ex, "\"."));
13835        return this.compiledGlyphs[character] = function (c, size) {};
13836      }
13837
13838      if (this.isEvalSupported && IsEvalSupportedCached.value) {
13839        var args,
13840            js = '';
13841
13842        for (var i = 0, ii = cmds.length; i < ii; i++) {
13843          current = cmds[i];
13844
13845          if (current.args !== undefined) {
13846            args = current.args.join(',');
13847          } else {
13848            args = '';
13849          }
13850
13851          js += 'c.' + current.cmd + '(' + args + ');\n';
13852        }
13853
13854        return this.compiledGlyphs[character] = new Function('c', 'size', js);
13855      }
13856
13857      return this.compiledGlyphs[character] = function (c, size) {
13858        for (var _i = 0, _ii = cmds.length; _i < _ii; _i++) {
13859          current = cmds[_i];
13860
13861          if (current.cmd === 'scale') {
13862            current.args = [size, -size];
13863          }
13864
13865          c[current.cmd].apply(c, current.args);
13866        }
13867      };
13868    }
13869  }]);
13870
13871  return FontFaceObject;
13872}();
13873
13874exports.FontFaceObject = FontFaceObject;
13875
13876/***/ }),
13877/* 153 */
13878/***/ (function(module, exports, __w_pdfjs_require__) {
13879
13880"use strict";
13881
13882
13883var compatibilityParams = Object.create(null);
13884{
13885  var isNodeJS = __w_pdfjs_require__(4);
13886
13887  var userAgent = typeof navigator !== 'undefined' && navigator.userAgent || '';
13888  var isIE = /Trident/.test(userAgent);
13889  var isIOSChrome = /CriOS/.test(userAgent);
13890
13891  (function checkOnBlobSupport() {
13892    if (isIE || isIOSChrome) {
13893      compatibilityParams.disableCreateObjectURL = true;
13894    }
13895  })();
13896
13897  (function checkFontFaceAndImage() {
13898    if (isNodeJS()) {
13899      compatibilityParams.disableFontFace = true;
13900      compatibilityParams.nativeImageDecoderSupport = 'none';
13901    }
13902  })();
13903}
13904exports.apiCompatibilityParams = Object.freeze(compatibilityParams);
13905
13906/***/ }),
13907/* 154 */
13908/***/ (function(module, exports, __w_pdfjs_require__) {
13909
13910"use strict";
13911
13912
13913Object.defineProperty(exports, "__esModule", {
13914  value: true
13915});
13916exports.CanvasGraphics = void 0;
13917
13918var _util = __w_pdfjs_require__(1);
13919
13920var _pattern_helper = __w_pdfjs_require__(155);
13921
13922var MIN_FONT_SIZE = 16;
13923var MAX_FONT_SIZE = 100;
13924var MAX_GROUP_SIZE = 4096;
13925var MIN_WIDTH_FACTOR = 0.65;
13926var COMPILE_TYPE3_GLYPHS = true;
13927var MAX_SIZE_TO_COMPILE = 1000;
13928var FULL_CHUNK_HEIGHT = 16;
13929var IsLittleEndianCached = {
13930  get value() {
13931    return (0, _util.shadow)(IsLittleEndianCached, 'value', (0, _util.isLittleEndian)());
13932  }
13933
13934};
13935
13936function addContextCurrentTransform(ctx) {
13937  if (!ctx.mozCurrentTransform) {
13938    ctx._originalSave = ctx.save;
13939    ctx._originalRestore = ctx.restore;
13940    ctx._originalRotate = ctx.rotate;
13941    ctx._originalScale = ctx.scale;
13942    ctx._originalTranslate = ctx.translate;
13943    ctx._originalTransform = ctx.transform;
13944    ctx._originalSetTransform = ctx.setTransform;
13945    ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];
13946    ctx._transformStack = [];
13947    Object.defineProperty(ctx, 'mozCurrentTransform', {
13948      get: function getCurrentTransform() {
13949        return this._transformMatrix;
13950      }
13951    });
13952    Object.defineProperty(ctx, 'mozCurrentTransformInverse', {
13953      get: function getCurrentTransformInverse() {
13954        var m = this._transformMatrix;
13955        var a = m[0],
13956            b = m[1],
13957            c = m[2],
13958            d = m[3],
13959            e = m[4],
13960            f = m[5];
13961        var ad_bc = a * d - b * c;
13962        var bc_ad = b * c - a * d;
13963        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];
13964      }
13965    });
13966
13967    ctx.save = function ctxSave() {
13968      var old = this._transformMatrix;
13969
13970      this._transformStack.push(old);
vendor: 5,347 bytes, lines 13971-14197
13971
13972      this._transformMatrix = old.slice(0, 6);
13973
13974      this._originalSave();
13975    };
13976
13977    ctx.restore = function ctxRestore() {
13978      var prev = this._transformStack.pop();
13979
13980      if (prev) {
13981        this._transformMatrix = prev;
13982
13983        this._originalRestore();
13984      }
13985    };
13986
13987    ctx.translate = function ctxTranslate(x, y) {
13988      var m = this._transformMatrix;
13989      m[4] = m[0] * x + m[2] * y + m[4];
13990      m[5] = m[1] * x + m[3] * y + m[5];
13991
13992      this._originalTranslate(x, y);
13993    };
13994
13995    ctx.scale = function ctxScale(x, y) {
13996      var m = this._transformMatrix;
13997      m[0] = m[0] * x;
13998      m[1] = m[1] * x;
13999      m[2] = m[2] * y;
14000      m[3] = m[3] * y;
14001
14002      this._originalScale(x, y);
14003    };
14004
14005    ctx.transform = function ctxTransform(a, b, c, d, e, f) {
14006      var m = this._transformMatrix;
14007      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]];
14008
14009      ctx._originalTransform(a, b, c, d, e, f);
14010    };
14011
14012    ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {
14013      this._transformMatrix = [a, b, c, d, e, f];
14014
14015      ctx._originalSetTransform(a, b, c, d, e, f);
14016    };
14017
14018    ctx.rotate = function ctxRotate(angle) {
14019      var cosValue = Math.cos(angle);
14020      var sinValue = Math.sin(angle);
14021      var m = this._transformMatrix;
14022      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]];
14023
14024      this._originalRotate(angle);
14025    };
14026  }
14027}
14028
14029var CachedCanvases = function CachedCanvasesClosure() {
14030  function CachedCanvases(canvasFactory) {
14031    this.canvasFactory = canvasFactory;
14032    this.cache = Object.create(null);
14033  }
14034
14035  CachedCanvases.prototype = {
14036    getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {
14037      var canvasEntry;
14038
14039      if (this.cache[id] !== undefined) {
14040        canvasEntry = this.cache[id];
14041        this.canvasFactory.reset(canvasEntry, width, height);
14042        canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);
14043      } else {
14044        canvasEntry = this.canvasFactory.create(width, height);
14045        this.cache[id] = canvasEntry;
14046      }
14047
14048      if (trackTransform) {
14049        addContextCurrentTransform(canvasEntry.context);
14050      }
14051
14052      return canvasEntry;
14053    },
14054    clear: function clear() {
14055      for (var id in this.cache) {
14056        var canvasEntry = this.cache[id];
14057        this.canvasFactory.destroy(canvasEntry);
14058        delete this.cache[id];
14059      }
14060    }
14061  };
14062  return CachedCanvases;
14063}();
14064
14065function compileType3Glyph(imgData) {
14066  var POINT_TO_PROCESS_LIMIT = 1000;
14067  var width = imgData.width,
14068      height = imgData.height;
14069  var i,
14070      j,
14071      j0,
14072      width1 = width + 1;
14073  var points = new Uint8Array(width1 * (height + 1));
14074  var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);
14075  var lineSize = width + 7 & ~7,
14076      data0 = imgData.data;
14077  var data = new Uint8Array(lineSize * height),
14078      pos = 0,
14079      ii;
14080
14081  for (i = 0, ii = data0.length; i < ii; i++) {
14082    var mask = 128,
14083        elem = data0[i];
14084
14085    while (mask > 0) {
14086      data[pos++] = elem & mask ? 0 : 255;
14087      mask >>= 1;
14088    }
14089  }
14090
14091  var count = 0;
14092  pos = 0;
14093
14094  if (data[pos] !== 0) {
14095    points[0] = 1;
14096    ++count;
14097  }
14098
14099  for (j = 1; j < width; j++) {
14100    if (data[pos] !== data[pos + 1]) {
14101      points[j] = data[pos] ? 2 : 1;
14102      ++count;
14103    }
14104
14105    pos++;
14106  }
14107
14108  if (data[pos] !== 0) {
14109    points[j] = 2;
14110    ++count;
14111  }
14112
14113  for (i = 1; i < height; i++) {
14114    pos = i * lineSize;
14115    j0 = i * width1;
14116
14117    if (data[pos - lineSize] !== data[pos]) {
14118      points[j0] = data[pos] ? 1 : 8;
14119      ++count;
14120    }
14121
14122    var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);
14123
14124    for (j = 1; j < width; j++) {
14125      sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);
14126
14127      if (POINT_TYPES[sum]) {
14128        points[j0 + j] = POINT_TYPES[sum];
14129        ++count;
14130      }
14131
14132      pos++;
14133    }
14134
14135    if (data[pos - lineSize] !== data[pos]) {
14136      points[j0 + j] = data[pos] ? 2 : 4;
14137      ++count;
14138    }
14139
14140    if (count > POINT_TO_PROCESS_LIMIT) {
14141      return null;
14142    }
14143  }
14144
14145  pos = lineSize * (height - 1);
14146  j0 = i * width1;
14147
14148  if (data[pos] !== 0) {
14149    points[j0] = 8;
14150    ++count;
14151  }
14152
14153  for (j = 1; j < width; j++) {
14154    if (data[pos] !== data[pos + 1]) {
14155      points[j0 + j] = data[pos] ? 4 : 8;
14156      ++count;
14157    }
14158
14159    pos++;
14160  }
14161
14162  if (data[pos] !== 0) {
14163    points[j0 + j] = 4;
14164    ++count;
14165  }
14166
14167  if (count > POINT_TO_PROCESS_LIMIT) {
14168    return null;
14169  }
14170
14171  var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);
14172  var outlines = [];
14173
14174  for (i = 0; count && i <= height; i++) {
14175    var p = i * width1;
14176    var end = p + width;
14177
14178    while (p < end && !points[p]) {
14179      p++;
14180    }
14181
14182    if (p === end) {
14183      continue;
14184    }
14185
14186    var coords = [p % width1, i];
14187    var type = points[p],
14188        p0 = p,
14189        pp;
14190
14191    do {
14192      var step = steps[type];
14193
14194      do {
14195        p += step;
14196      } while (!points[p]);
14197
14198      pp = points[p];
14199
14200      if (pp !== 5 && pp !== 10) {
14201        type = pp;
14202        points[p] = 0;
14203      } else {
14204        type = pp & 0x33 * type >> 4;
14205        points[p] &= type >> 2 | type << 2;
14206      }
14207
14208      coords.push(p % width1);
14209      coords.push(p / width1 | 0);
14210      --count;
14211    } while (p0 !== p);
14212
14213    outlines.push(coords);
14214    --i;
14215  }
14216
14217  var drawOutline = function drawOutline(c) {
14218    c.save();
14219    c.scale(1 / width, -1 / height);
14220    c.translate(0, -height);
14221    c.beginPath();
14222
14223    for (var i = 0, ii = outlines.length; i < ii; i++) {
14224      var o = outlines[i];
14225      c.moveTo(o[0], o[1]);
14226
14227      for (var j = 2, jj = o.length; j < jj; j += 2) {
14228        c.lineTo(o[j], o[j + 1]);
14229      }
14230    }
14231
14232    c.fill();
14233    c.beginPath();
14234    c.restore();
14235  };
14236
14237  return drawOutline;
14238}
14239
14240var CanvasExtraState = function CanvasExtraStateClosure() {
14241  function CanvasExtraState() {
14242    this.alphaIsShape = false;
14243    this.fontSize = 0;
14244    this.fontSizeScale = 1;
14245    this.textMatrix = _util.IDENTITY_MATRIX;
14246    this.textMatrixScale = 1;
14247    this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
14248    this.leading = 0;
14249    this.x = 0;
14250    this.y = 0;
14251    this.lineX = 0;
14252    this.lineY = 0;
14253    this.charSpacing = 0;
14254    this.wordSpacing = 0;
14255    this.textHScale = 1;
14256    this.textRenderingMode = _util.TextRenderingMode.FILL;
14257    this.textRise = 0;
14258    this.fillColor = '#000000';
14259    this.strokeColor = '#000000';
14260    this.patternFill = false;
14261    this.fillAlpha = 1;
14262    this.strokeAlpha = 1;
14263    this.lineWidth = 1;
14264    this.activeSMask = null;
14265    this.resumeSMaskCtx = null;
14266  }
14267
14268  CanvasExtraState.prototype = {
14269    clone: function CanvasExtraState_clone() {
14270      return Object.create(this);
14271    },
14272    setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {
14273      this.x = x;
14274      this.y = y;
14275    }
14276  };
14277  return CanvasExtraState;
14278}();
14279
14280var CanvasGraphics = function CanvasGraphicsClosure() {
14281  var EXECUTION_TIME = 15;
14282  var EXECUTION_STEPS = 10;
14283
14284  function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {
14285    this.ctx = canvasCtx;
14286    this.current = new CanvasExtraState();
14287    this.stateStack = [];
14288    this.pendingClip = null;
14289    this.pendingEOFill = false;
14290    this.res = null;
14291    this.xobjs = null;
14292    this.commonObjs = commonObjs;
14293    this.objs = objs;
14294    this.canvasFactory = canvasFactory;
14295    this.webGLContext = webGLContext;
14296    this.imageLayer = imageLayer;
14297    this.groupStack = [];
14298    this.processingType3 = null;
14299    this.baseTransform = null;
14300    this.baseTransformStack = [];
14301    this.groupLevel = 0;
14302    this.smaskStack = [];
14303    this.smaskCounter = 0;
14304    this.tempSMask = null;
14305    this.cachedCanvases = new CachedCanvases(this.canvasFactory);
14306
14307    if (canvasCtx) {
14308      addContextCurrentTransform(canvasCtx);
14309    }
14310
14311    this._cachedGetSinglePixelWidth = null;
14312  }
14313
14314  function putBinaryImageData(ctx, imgData) {
14315    if (typeof ImageData !== 'undefined' && imgData instanceof ImageData) {
14316      ctx.putImageData(imgData, 0, 0);
14317      return;
14318    }
14319
14320    var height = imgData.height,
14321        width = imgData.width;
14322    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
14323    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
14324    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
14325    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
14326    var srcPos = 0,
14327        destPos;
14328    var src = imgData.data;
14329    var dest = chunkImgData.data;
14330    var i, j, thisChunkHeight, elemsInThisChunk;
14331
14332    if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {
14333      var srcLength = src.byteLength;
14334      var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);
14335      var dest32DataLength = dest32.length;
14336      var fullSrcDiff = width + 7 >> 3;
14337      var white = 0xFFFFFFFF;
14338      var black = IsLittleEndianCached.value ? 0xFF000000 : 0x000000FF;
14339
14340      for (i = 0; i < totalChunks; i++) {
14341        thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
14342        destPos = 0;
14343
14344        for (j = 0; j < thisChunkHeight; j++) {
14345          var srcDiff = srcLength - srcPos;
14346          var k = 0;
14347          var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;
14348          var kEndUnrolled = kEnd & ~7;
14349          var mask = 0;
14350          var srcByte = 0;
14351
14352          for (; k < kEndUnrolled; k += 8) {
14353            srcByte = src[srcPos++];
14354            dest32[destPos++] = srcByte & 128 ? white : black;
14355            dest32[destPos++] = srcByte & 64 ? white : black;
14356            dest32[destPos++] = srcByte & 32 ? white : black;
14357            dest32[destPos++] = srcByte & 16 ? white : black;
14358            dest32[destPos++] = srcByte & 8 ? white : black;
14359            dest32[destPos++] = srcByte & 4 ? white : black;
14360            dest32[destPos++] = srcByte & 2 ? white : black;
14361            dest32[destPos++] = srcByte & 1 ? white : black;
14362          }
14363
14364          for (; k < kEnd; k++) {
14365            if (mask === 0) {
14366              srcByte = src[srcPos++];
14367              mask = 128;
14368            }
14369
14370            dest32[destPos++] = srcByte & mask ? white : black;
14371            mask >>= 1;
14372          }
14373        }
14374
14375        while (destPos < dest32DataLength) {
14376          dest32[destPos++] = 0;
14377        }
14378
14379        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
14380      }
14381    } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {
14382      j = 0;
14383      elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;
14384
14385      for (i = 0; i < fullChunks; i++) {
14386        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
14387        srcPos += elemsInThisChunk;
14388        ctx.putImageData(chunkImgData, 0, j);
14389        j += FULL_CHUNK_HEIGHT;
14390      }
14391
14392      if (i < totalChunks) {
14393        elemsInThisChunk = width * partialChunkHeight * 4;
14394        dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
14395        ctx.putImageData(chunkImgData, 0, j);
14396      }
14397    } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {
14398      thisChunkHeight = FULL_CHUNK_HEIGHT;
14399      elemsInThisChunk = width * thisChunkHeight;
14400
14401      for (i = 0; i < totalChunks; i++) {
14402        if (i >= fullChunks) {
14403          thisChunkHeight = partialChunkHeight;
14404          elemsInThisChunk = width * thisChunkHeight;
14405        }
14406
14407        destPos = 0;
14408
14409        for (j = elemsInThisChunk; j--;) {
14410          dest[destPos++] = src[srcPos++];
14411          dest[destPos++] = src[srcPos++];
14412          dest[destPos++] = src[srcPos++];
14413          dest[destPos++] = 255;
14414        }
14415
14416        ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
14417      }
14418    } else {
14419      throw new Error("bad image kind: ".concat(imgData.kind));
14420    }
14421  }
14422
14423  function putBinaryImageMask(ctx, imgData) {
14424    var height = imgData.height,
14425        width = imgData.width;
14426    var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
14427    var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
14428    var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
14429    var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
14430    var srcPos = 0;
14431    var src = imgData.data;
14432    var dest = chunkImgData.data;
14433
14434    for (var i = 0; i < totalChunks; i++) {
14435      var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
14436      var destPos = 3;
14437
14438      for (var j = 0; j < thisChunkHeight; j++) {
14439        var mask = 0;
14440
14441        for (var k = 0; k < width; k++) {
14442          if (!mask) {
14443            var elem = src[srcPos++];
14444            mask = 128;
14445          }
14446
14447          dest[destPos] = elem & mask ? 0 : 255;
14448          destPos += 4;
14449          mask >>= 1;
14450        }
14451      }
14452
14453      ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
14454    }
14455  }
14456
14457  function copyCtxState(sourceCtx, destCtx) {
14458    var properties = ['strokeStyle', 'fillStyle', 'fillRule', 'globalAlpha', 'lineWidth', 'lineCap', 'lineJoin', 'miterLimit', 'globalCompositeOperation', 'font'];
14459
14460    for (var i = 0, ii = properties.length; i < ii; i++) {
14461      var property = properties[i];
14462
14463      if (sourceCtx[property] !== undefined) {
14464        destCtx[property] = sourceCtx[property];
14465      }
14466    }
14467
14468    if (sourceCtx.setLineDash !== undefined) {
14469      destCtx.setLineDash(sourceCtx.getLineDash());
14470      destCtx.lineDashOffset = sourceCtx.lineDashOffset;
14471    }
14472  }
14473
14474  function resetCtxToDefault(ctx) {
14475    ctx.strokeStyle = '#000000';
14476    ctx.fillStyle = '#000000';
14477    ctx.fillRule = 'nonzero';
14478    ctx.globalAlpha = 1;
14479    ctx.lineWidth = 1;
14480    ctx.lineCap = 'butt';
14481    ctx.lineJoin = 'miter';
14482    ctx.miterLimit = 10;
14483    ctx.globalCompositeOperation = 'source-over';
14484    ctx.font = '10px sans-serif';
14485
14486    if (ctx.setLineDash !== undefined) {
14487      ctx.setLineDash([]);
14488      ctx.lineDashOffset = 0;
14489    }
14490  }
14491
14492  function composeSMaskBackdrop(bytes, r0, g0, b0) {
14493    var length = bytes.length;
14494
14495    for (var i = 3; i < length; i += 4) {
14496      var alpha = bytes[i];
14497
14498      if (alpha === 0) {
14499        bytes[i - 3] = r0;
14500        bytes[i - 2] = g0;
14501        bytes[i - 1] = b0;
14502      } else if (alpha < 255) {
14503        var alpha_ = 255 - alpha;
14504        bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;
14505        bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;
14506        bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;
14507      }
14508    }
14509  }
14510
14511  function composeSMaskAlpha(maskData, layerData, transferMap) {
14512    var length = maskData.length;
14513    var scale = 1 / 255;
14514
14515    for (var i = 3; i < length; i += 4) {
14516      var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];
14517      layerData[i] = layerData[i] * alpha * scale | 0;
14518    }
14519  }
14520
14521  function composeSMaskLuminosity(maskData, layerData, transferMap) {
14522    var length = maskData.length;
14523
14524    for (var i = 3; i < length; i += 4) {
14525      var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;
14526      layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;
14527    }
14528  }
14529
14530  function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {
14531    var hasBackdrop = !!backdrop;
14532    var r0 = hasBackdrop ? backdrop[0] : 0;
14533    var g0 = hasBackdrop ? backdrop[1] : 0;
14534    var b0 = hasBackdrop ? backdrop[2] : 0;
14535    var composeFn;
14536
14537    if (subtype === 'Luminosity') {
14538      composeFn = composeSMaskLuminosity;
14539    } else {
14540      composeFn = composeSMaskAlpha;
14541    }
14542
14543    var PIXELS_TO_PROCESS = 1048576;
14544    var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));
14545
14546    for (var row = 0; row < height; row += chunkSize) {
14547      var chunkHeight = Math.min(chunkSize, height - row);
14548      var maskData = maskCtx.getImageData(0, row, width, chunkHeight);
14549      var layerData = layerCtx.getImageData(0, row, width, chunkHeight);
14550
14551      if (hasBackdrop) {
14552        composeSMaskBackdrop(maskData.data, r0, g0, b0);
14553      }
14554
14555      composeFn(maskData.data, layerData.data, transferMap);
14556      maskCtx.putImageData(layerData, 0, row);
14557    }
14558  }
14559
14560  function composeSMask(ctx, smask, layerCtx, webGLContext) {
14561    var mask = smask.canvas;
14562    var maskCtx = smask.context;
14563    ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);
14564    var backdrop = smask.backdrop || null;
14565
14566    if (!smask.transferMap && webGLContext.isEnabled) {
14567      var composed = webGLContext.composeSMask({
14568        layer: layerCtx.canvas,
14569        mask: mask,
14570        properties: {
14571          subtype: smask.subtype,
14572          backdrop: backdrop
14573        }
14574      });
14575      ctx.setTransform(1, 0, 0, 1, 0, 0);
14576      ctx.drawImage(composed, smask.offsetX, smask.offsetY);
14577      return;
14578    }
14579
14580    genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);
14581    ctx.drawImage(mask, 0, 0);
14582  }
14583
14584  var LINE_CAP_STYLES = ['butt', 'round', 'square'];
14585  var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
14586  var NORMAL_CLIP = {};
14587  var EO_CLIP = {};
14588  CanvasGraphics.prototype = {
14589    beginDrawing: function beginDrawing(_ref) {
14590      var transform = _ref.transform,
14591          viewport = _ref.viewport,
14592          _ref$transparency = _ref.transparency,
14593          transparency = _ref$transparency === void 0 ? false : _ref$transparency,
14594          _ref$background = _ref.background,
14595          background = _ref$background === void 0 ? null : _ref$background;
14596      var width = this.ctx.canvas.width;
14597      var height = this.ctx.canvas.height;
14598      this.ctx.save();
14599      this.ctx.fillStyle = background || 'rgb(255, 255, 255)';
14600      this.ctx.fillRect(0, 0, width, height);
14601      this.ctx.restore();
14602
14603      if (transparency) {
14604        var transparentCanvas = this.cachedCanvases.getCanvas('transparent', width, height, true);
14605        this.compositeCtx = this.ctx;
14606        this.transparentCanvas = transparentCanvas.canvas;
14607        this.ctx = transparentCanvas.context;
14608        this.ctx.save();
14609        this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);
14610      }
14611
14612      this.ctx.save();
14613      resetCtxToDefault(this.ctx);
14614
14615      if (transform) {
14616        this.ctx.transform.apply(this.ctx, transform);
14617      }
14618
14619      this.ctx.transform.apply(this.ctx, viewport.transform);
14620      this.baseTransform = this.ctx.mozCurrentTransform.slice();
14621
14622      if (this.imageLayer) {
14623        this.imageLayer.beginLayout();
14624      }
14625    },
14626    executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {
14627      var argsArray = operatorList.argsArray;
14628      var fnArray = operatorList.fnArray;
14629      var i = executionStartIdx || 0;
14630      var argsArrayLen = argsArray.length;
14631
14632      if (argsArrayLen === i) {
14633        return i;
14634      }
14635
14636      var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === 'function';
14637      var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;
14638      var steps = 0;
14639      var commonObjs = this.commonObjs;
14640      var objs = this.objs;
14641      var fnId;
14642
14643      while (true) {
14644        if (stepper !== undefined && i === stepper.nextBreakPoint) {
14645          stepper.breakIt(i, continueCallback);
14646          return i;
14647        }
14648
14649        fnId = fnArray[i];
14650
14651        if (fnId !== _util.OPS.dependency) {
14652          this[fnId].apply(this, argsArray[i]);
14653        } else {
14654          var deps = argsArray[i];
14655
14656          for (var n = 0, nn = deps.length; n < nn; n++) {
14657            var depObjId = deps[n];
14658            var common = depObjId[0] === 'g' && depObjId[1] === '_';
14659            var objsPool = common ? commonObjs : objs;
14660
14661            if (!objsPool.has(depObjId)) {
14662              objsPool.get(depObjId, continueCallback);
14663              return i;
14664            }
14665          }
14666        }
14667
14668        i++;
14669
14670        if (i === argsArrayLen) {
14671          return i;
14672        }
14673
14674        if (chunkOperations && ++steps > EXECUTION_STEPS) {
14675          if (Date.now() > endTime) {
14676            continueCallback();
14677            return i;
14678          }
14679
14680          steps = 0;
14681        }
14682      }
14683    },
14684    endDrawing: function CanvasGraphics_endDrawing() {
14685      if (this.current.activeSMask !== null) {
14686        this.endSMaskGroup();
14687      }
14688
14689      this.ctx.restore();
14690
14691      if (this.transparentCanvas) {
14692        this.ctx = this.compositeCtx;
14693        this.ctx.save();
14694        this.ctx.setTransform(1, 0, 0, 1, 0, 0);
14695        this.ctx.drawImage(this.transparentCanvas, 0, 0);
14696        this.ctx.restore();
14697        this.transparentCanvas = null;
14698      }
14699
14700      this.cachedCanvases.clear();
14701      this.webGLContext.clear();
14702
14703      if (this.imageLayer) {
14704        this.imageLayer.endLayout();
14705      }
14706    },
14707    setLineWidth: function CanvasGraphics_setLineWidth(width) {
14708      this.current.lineWidth = width;
14709      this.ctx.lineWidth = width;
14710    },
14711    setLineCap: function CanvasGraphics_setLineCap(style) {
14712      this.ctx.lineCap = LINE_CAP_STYLES[style];
14713    },
14714    setLineJoin: function CanvasGraphics_setLineJoin(style) {
14715      this.ctx.lineJoin = LINE_JOIN_STYLES[style];
14716    },
14717    setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {
14718      this.ctx.miterLimit = limit;
14719    },
14720    setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {
14721      var ctx = this.ctx;
14722
14723      if (ctx.setLineDash !== undefined) {
14724        ctx.setLineDash(dashArray);
14725        ctx.lineDashOffset = dashPhase;
14726      }
14727    },
14728    setRenderingIntent: function CanvasGraphics_setRenderingIntent(intent) {},
14729    setFlatness: function CanvasGraphics_setFlatness(flatness) {},
14730    setGState: function CanvasGraphics_setGState(states) {
14731      for (var i = 0, ii = states.length; i < ii; i++) {
14732        var state = states[i];
14733        var key = state[0];
14734        var value = state[1];
14735
14736        switch (key) {
14737          case 'LW':
14738            this.setLineWidth(value);
14739            break;
14740
14741          case 'LC':
14742            this.setLineCap(value);
14743            break;
14744
14745          case 'LJ':
14746            this.setLineJoin(value);
14747            break;
14748
14749          case 'ML':
14750            this.setMiterLimit(value);
14751            break;
14752
14753          case 'D':
14754            this.setDash(value[0], value[1]);
14755            break;
14756
14757          case 'RI':
vendor: 3,883 bytes, lines 14758-14862
14758            this.setRenderingIntent(value);
14759            break;
14760
14761          case 'FL':
14762            this.setFlatness(value);
14763            break;
14764
14765          case 'Font':
14766            this.setFont(value[0], value[1]);
14767            break;
14768
14769          case 'CA':
14770            this.current.strokeAlpha = state[1];
14771            break;
14772
14773          case 'ca':
14774            this.current.fillAlpha = state[1];
14775            this.ctx.globalAlpha = state[1];
14776            break;
14777
14778          case 'BM':
14779            this.ctx.globalCompositeOperation = value;
14780            break;
14781
14782          case 'SMask':
14783            if (this.current.activeSMask) {
14784              if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {
14785                this.suspendSMaskGroup();
14786              } else {
14787                this.endSMaskGroup();
14788              }
14789            }
14790
14791            this.current.activeSMask = value ? this.tempSMask : null;
14792
14793            if (this.current.activeSMask) {
14794              this.beginSMaskGroup();
14795            }
14796
14797            this.tempSMask = null;
14798            break;
14799        }
14800      }
14801    },
14802    beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {
14803      var activeSMask = this.current.activeSMask;
14804      var drawnWidth = activeSMask.canvas.width;
14805      var drawnHeight = activeSMask.canvas.height;
14806      var cacheId = 'smaskGroupAt' + this.groupLevel;
14807      var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
14808      var currentCtx = this.ctx;
14809      var currentTransform = currentCtx.mozCurrentTransform;
14810      this.ctx.save();
14811      var groupCtx = scratchCanvas.context;
14812      groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);
14813      groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);
14814      groupCtx.transform.apply(groupCtx, currentTransform);
14815      activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;
14816      copyCtxState(currentCtx, groupCtx);
14817      this.ctx = groupCtx;
14818      this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);
14819      this.groupStack.push(currentCtx);
14820      this.groupLevel++;
14821    },
14822    suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {
14823      var groupCtx = this.ctx;
14824      this.groupLevel--;
14825      this.ctx = this.groupStack.pop();
14826      composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
14827      this.ctx.restore();
14828      this.ctx.save();
14829      copyCtxState(groupCtx, this.ctx);
14830      this.current.resumeSMaskCtx = groupCtx;
14831
14832      var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
14833
14834      this.ctx.transform.apply(this.ctx, deltaTransform);
14835      groupCtx.save();
14836      groupCtx.setTransform(1, 0, 0, 1, 0, 0);
14837      groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);
14838      groupCtx.restore();
14839    },
14840    resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {
14841      var groupCtx = this.current.resumeSMaskCtx;
14842      var currentCtx = this.ctx;
14843      this.ctx = groupCtx;
14844      this.groupStack.push(currentCtx);
14845      this.groupLevel++;
14846    },
14847    endSMaskGroup: function CanvasGraphics_endSMaskGroup() {
14848      var groupCtx = this.ctx;
14849      this.groupLevel--;
14850      this.ctx = this.groupStack.pop();
14851      composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
14852      this.ctx.restore();
14853      copyCtxState(groupCtx, this.ctx);
14854
14855      var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
14856
14857      this.ctx.transform.apply(this.ctx, deltaTransform);
14858    },
14859    save: function CanvasGraphics_save() {
14860      this.ctx.save();
14861      var old = this.current;
14862      this.stateStack.push(old);
14863      this.current = old.clone();
14864      this.current.resumeSMaskCtx = null;
14865    },
14866    restore: function CanvasGraphics_restore() {
14867      if (this.current.resumeSMaskCtx) {
14868        this.resumeSMaskGroup();
14869      }
14870
14871      if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {
14872        this.endSMaskGroup();
14873      }
14874
14875      if (this.stateStack.length !== 0) {
14876        this.current = this.stateStack.pop();
14877        this.ctx.restore();
14878        this.pendingClip = null;
14879        this._cachedGetSinglePixelWidth = null;
14880      }
14881    },
14882    transform: function CanvasGraphics_transform(a, b, c, d, e, f) {
14883      this.ctx.transform(a, b, c, d, e, f);
14884      this._cachedGetSinglePixelWidth = null;
14885    },
14886    constructPath: function CanvasGraphics_constructPath(ops, args) {
14887      var ctx = this.ctx;
14888      var current = this.current;
14889      var x = current.x,
14890          y = current.y;
14891
14892      for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {
14893        switch (ops[i] | 0) {
14894          case _util.OPS.rectangle:
14895            x = args[j++];
14896            y = args[j++];
14897            var width = args[j++];
14898            var height = args[j++];
14899
14900            if (width === 0) {
14901              width = this.getSinglePixelWidth();
14902            }
14903
14904            if (height === 0) {
14905              height = this.getSinglePixelWidth();
14906            }
14907
14908            var xw = x + width;
14909            var yh = y + height;
14910            this.ctx.moveTo(x, y);
14911            this.ctx.lineTo(xw, y);
14912            this.ctx.lineTo(xw, yh);
14913            this.ctx.lineTo(x, yh);
14914            this.ctx.lineTo(x, y);
14915            this.ctx.closePath();
14916            break;
14917
14918          case _util.OPS.moveTo:
14919            x = args[j++];
14920            y = args[j++];
14921            ctx.moveTo(x, y);
14922            break;
14923
14924          case _util.OPS.lineTo:
14925            x = args[j++];
14926            y = args[j++];
14927            ctx.lineTo(x, y);
14928            break;
14929
14930          case _util.OPS.curveTo:
14931            x = args[j + 4];
14932            y = args[j + 5];
14933            ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);
14934            j += 6;
14935            break;
14936
14937          case _util.OPS.curveTo2:
14938            ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);
14939            x = args[j + 2];
14940            y = args[j + 3];
14941            j += 4;
14942            break;
14943
14944          case _util.OPS.curveTo3:
14945            x = args[j + 2];
14946            y = args[j + 3];
14947            ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);
14948            j += 4;
14949            break;
14950
14951          case _util.OPS.closePath:
14952            ctx.closePath();
14953            break;
14954        }
14955      }
14956
14957      current.setCurrentPoint(x, y);
14958    },
14959    closePath: function CanvasGraphics_closePath() {
14960      this.ctx.closePath();
14961    },
14962    stroke: function CanvasGraphics_stroke(consumePath) {
14963      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
14964      var ctx = this.ctx;
14965      var strokeColor = this.current.strokeColor;
14966      ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);
14967      ctx.globalAlpha = this.current.strokeAlpha;
14968
14969      if (strokeColor && strokeColor.hasOwnProperty('type') && strokeColor.type === 'Pattern') {
14970        ctx.save();
14971        ctx.strokeStyle = strokeColor.getPattern(ctx, this);
14972        ctx.stroke();
14973        ctx.restore();
14974      } else {
14975        ctx.stroke();
14976      }
14977
14978      if (consumePath) {
14979        this.consumePath();
14980      }
14981
14982      ctx.globalAlpha = this.current.fillAlpha;
14983    },
14984    closeStroke: function CanvasGraphics_closeStroke() {
14985      this.closePath();
14986      this.stroke();
14987    },
14988    fill: function CanvasGraphics_fill(consumePath) {
14989      consumePath = typeof consumePath !== 'undefined' ? consumePath : true;
14990      var ctx = this.ctx;
14991      var fillColor = this.current.fillColor;
14992      var isPatternFill = this.current.patternFill;
14993      var needRestore = false;
14994
14995      if (isPatternFill) {
14996        ctx.save();
14997
14998        if (this.baseTransform) {
14999          ctx.setTransform.apply(ctx, this.baseTransform);
15000        }
15001
15002        ctx.fillStyle = fillColor.getPattern(ctx, this);
15003        needRestore = true;
15004      }
15005
15006      if (this.pendingEOFill) {
15007        ctx.fill('evenodd');
15008        this.pendingEOFill = false;
15009      } else {
15010        ctx.fill();
15011      }
15012
15013      if (needRestore) {
15014        ctx.restore();
15015      }
15016
15017      if (consumePath) {
15018        this.consumePath();
15019      }
15020    },
15021    eoFill: function CanvasGraphics_eoFill() {
15022      this.pendingEOFill = true;
15023      this.fill();
15024    },
15025    fillStroke: function CanvasGraphics_fillStroke() {
15026      this.fill(false);
15027      this.stroke(false);
15028      this.consumePath();
15029    },
15030    eoFillStroke: function CanvasGraphics_eoFillStroke() {
15031      this.pendingEOFill = true;
15032      this.fillStroke();
15033    },
15034    closeFillStroke: function CanvasGraphics_closeFillStroke() {
15035      this.closePath();
15036      this.fillStroke();
15037    },
15038    closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {
15039      this.pendingEOFill = true;
15040      this.closePath();
15041      this.fillStroke();
15042    },
15043    endPath: function CanvasGraphics_endPath() {
15044      this.consumePath();
15045    },
15046    clip: function CanvasGraphics_clip() {
15047      this.pendingClip = NORMAL_CLIP;
15048    },
15049    eoClip: function CanvasGraphics_eoClip() {
15050      this.pendingClip = EO_CLIP;
15051    },
15052    beginText: function CanvasGraphics_beginText() {
15053      this.current.textMatrix = _util.IDENTITY_MATRIX;
15054      this.current.textMatrixScale = 1;
15055      this.current.x = this.current.lineX = 0;
15056      this.current.y = this.current.lineY = 0;
15057    },
15058    endText: function CanvasGraphics_endText() {
15059      var paths = this.pendingTextPaths;
15060      var ctx = this.ctx;
15061
15062      if (paths === undefined) {
15063        ctx.beginPath();
15064        return;
15065      }
15066
15067      ctx.save();
15068      ctx.beginPath();
15069
15070      for (var i = 0; i < paths.length; i++) {
15071        var path = paths[i];
15072        ctx.setTransform.apply(ctx, path.transform);
15073        ctx.translate(path.x, path.y);
15074        path.addToPath(ctx, path.fontSize);
15075      }
15076
15077      ctx.restore();
15078      ctx.clip();
15079      ctx.beginPath();
15080      delete this.pendingTextPaths;
15081    },
15082    setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {
15083      this.current.charSpacing = spacing;
15084    },
15085    setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {
15086      this.current.wordSpacing = spacing;
15087    },
15088    setHScale: function CanvasGraphics_setHScale(scale) {
15089      this.current.textHScale = scale / 100;
15090    },
15091    setLeading: function CanvasGraphics_setLeading(leading) {
15092      this.current.leading = -leading;
15093    },
15094    setFont: function CanvasGraphics_setFont(fontRefName, size) {
15095      var fontObj = this.commonObjs.get(fontRefName);
15096      var current = this.current;
15097
15098      if (!fontObj) {
15099        throw new Error("Can't find font for ".concat(fontRefName));
15100      }
15101
15102      current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
15103
15104      if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {
15105        (0, _util.warn)('Invalid font matrix for font ' + fontRefName);
15106      }
15107
15108      if (size < 0) {
15109        size = -size;
15110        current.fontDirection = -1;
15111      } else {
15112        current.fontDirection = 1;
15113      }
15114
15115      this.current.font = fontObj;
15116      this.current.fontSize = size;
15117
15118      if (fontObj.isType3Font) {
15119        return;
15120      }
15121
15122      var name = fontObj.loadedName || 'sans-serif';
15123      var bold = fontObj.black ? '900' : fontObj.bold ? 'bold' : 'normal';
15124      var italic = fontObj.italic ? 'italic' : 'normal';
15125      var typeface = "\"".concat(name, "\", ").concat(fontObj.fallbackName);
15126      var browserFontSize = size < MIN_FONT_SIZE ? MIN_FONT_SIZE : size > MAX_FONT_SIZE ? MAX_FONT_SIZE : size;
15127      this.current.fontSizeScale = size / browserFontSize;
15128      this.ctx.font = "".concat(italic, " ").concat(bold, " ").concat(browserFontSize, "px ").concat(typeface);
15129    },
15130    setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {
15131      this.current.textRenderingMode = mode;
15132    },
15133    setTextRise: function CanvasGraphics_setTextRise(rise) {
15134      this.current.textRise = rise;
15135    },
15136    moveText: function CanvasGraphics_moveText(x, y) {
15137      this.current.x = this.current.lineX += x;
15138      this.current.y = this.current.lineY += y;
15139    },
15140    setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {
15141      this.setLeading(-y);
15142      this.moveText(x, y);
15143    },
15144    setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {
15145      this.current.textMatrix = [a, b, c, d, e, f];
15146      this.current.textMatrixScale = Math.sqrt(a * a + b * b);
15147      this.current.x = this.current.lineX = 0;
15148      this.current.y = this.current.lineY = 0;
15149    },
15150    nextLine: function CanvasGraphics_nextLine() {
15151      this.moveText(0, this.current.leading);
15152    },
15153    paintChar: function paintChar(character, x, y, patternTransform) {
15154      var ctx = this.ctx;
15155      var current = this.current;
15156      var font = current.font;
15157      var textRenderingMode = current.textRenderingMode;
15158      var fontSize = current.fontSize / current.fontSizeScale;
15159      var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
15160      var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);
15161      var patternFill = current.patternFill && font.data;
15162      var addToPath;
15163
15164      if (font.disableFontFace || isAddToPathSet || patternFill) {
15165        addToPath = font.getPathGenerator(this.commonObjs, character);
15166      }
15167
15168      if (font.disableFontFace || patternFill) {
15169        ctx.save();
15170        ctx.translate(x, y);
15171        ctx.beginPath();
15172        addToPath(ctx, fontSize);
15173
15174        if (patternTransform) {
15175          ctx.setTransform.apply(ctx, patternTransform);
15176        }
15177
15178        if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15179          ctx.fill();
15180        }
15181
15182        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15183          ctx.stroke();
15184        }
15185
15186        ctx.restore();
15187      } else {
15188        if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15189          ctx.fillText(character, x, y);
15190        }
15191
15192        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15193          ctx.strokeText(character, x, y);
15194        }
15195      }
15196
15197      if (isAddToPathSet) {
15198        var paths = this.pendingTextPaths || (this.pendingTextPaths = []);
15199        paths.push({
15200          transform: ctx.mozCurrentTransform,
15201          x: x,
15202          y: y,
15203          fontSize: fontSize,
15204          addToPath: addToPath
15205        });
15206      }
15207    },
15208
15209    get isFontSubpixelAAEnabled() {
15210      var ctx = this.canvasFactory.create(10, 10).context;
15211      ctx.scale(1.5, 1);
15212      ctx.fillText('I', 0, 10);
15213      var data = ctx.getImageData(0, 0, 10, 10).data;
15214      var enabled = false;
15215
15216      for (var i = 3; i < data.length; i += 4) {
15217        if (data[i] > 0 && data[i] < 255) {
15218          enabled = true;
15219          break;
15220        }
15221      }
15222
15223      return (0, _util.shadow)(this, 'isFontSubpixelAAEnabled', enabled);
15224    },
15225
15226    showText: function CanvasGraphics_showText(glyphs) {
15227      var current = this.current;
15228      var font = current.font;
15229
15230      if (font.isType3Font) {
15231        return this.showType3Text(glyphs);
15232      }
15233
15234      var fontSize = current.fontSize;
15235
15236      if (fontSize === 0) {
15237        return;
15238      }
15239
15240      var ctx = this.ctx;
15241      var fontSizeScale = current.fontSizeScale;
15242      var charSpacing = current.charSpacing;
15243      var wordSpacing = current.wordSpacing;
15244      var fontDirection = current.fontDirection;
15245      var textHScale = current.textHScale * fontDirection;
15246      var glyphsLength = glyphs.length;
15247      var vertical = font.vertical;
15248      var spacingDir = vertical ? 1 : -1;
15249      var defaultVMetrics = font.defaultVMetrics;
15250      var widthAdvanceScale = fontSize * current.fontMatrix[0];
15251      var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;
15252      ctx.save();
15253      var patternTransform;
15254
15255      if (current.patternFill) {
15256        ctx.save();
15257        var pattern = current.fillColor.getPattern(ctx, this);
15258        patternTransform = ctx.mozCurrentTransform;
15259        ctx.restore();
15260        ctx.fillStyle = pattern;
15261      }
15262
15263      ctx.transform.apply(ctx, current.textMatrix);
15264      ctx.translate(current.x, current.y + current.textRise);
15265
15266      if (fontDirection > 0) {
15267        ctx.scale(textHScale, -1);
15268      } else {
15269        ctx.scale(textHScale, 1);
15270      }
15271
15272      var lineWidth = current.lineWidth;
15273      var scale = current.textMatrixScale;
15274
15275      if (scale === 0 || lineWidth === 0) {
15276        var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
15277
15278        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
15279          this._cachedGetSinglePixelWidth = null;
15280          lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;
15281        }
15282      } else {
15283        lineWidth /= scale;
15284      }
15285
15286      if (fontSizeScale !== 1.0) {
15287        ctx.scale(fontSizeScale, fontSizeScale);
15288        lineWidth /= fontSizeScale;
15289      }
15290
15291      ctx.lineWidth = lineWidth;
15292      var x = 0,
15293          i;
15294
15295      for (i = 0; i < glyphsLength; ++i) {
15296        var glyph = glyphs[i];
15297
15298        if ((0, _util.isNum)(glyph)) {
15299          x += spacingDir * glyph * fontSize / 1000;
15300          continue;
15301        }
15302
15303        var restoreNeeded = false;
15304        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
15305        var character = glyph.fontChar;
15306        var accent = glyph.accent;
15307        var scaledX, scaledY, scaledAccentX, scaledAccentY;
15308        var width = glyph.width;
15309
15310        if (vertical) {
15311          var vmetric, vx, vy;
15312          vmetric = glyph.vmetric || defaultVMetrics;
15313          vx = glyph.vmetric ? vmetric[1] : width * 0.5;
15314          vx = -vx * widthAdvanceScale;
15315          vy = vmetric[2] * widthAdvanceScale;
15316          width = vmetric ? -vmetric[0] : width;
15317          scaledX = vx / fontSizeScale;
15318          scaledY = (x + vy) / fontSizeScale;
15319        } else {
15320          scaledX = x / fontSizeScale;
15321          scaledY = 0;
15322        }
15323
15324        if (font.remeasure && width > 0) {
15325          var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;
15326
15327          if (width < measuredWidth && this.isFontSubpixelAAEnabled) {
15328            var characterScaleX = width / measuredWidth;
15329            restoreNeeded = true;
15330            ctx.save();
15331            ctx.scale(characterScaleX, 1);
15332            scaledX /= characterScaleX;
15333          } else if (width !== measuredWidth) {
15334            scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;
15335          }
15336        }
15337
15338        if (glyph.isInFont || font.missingFile) {
15339          if (simpleFillText && !accent) {
15340            ctx.fillText(character, scaledX, scaledY);
15341          } else {
15342            this.paintChar(character, scaledX, scaledY, patternTransform);
15343
15344            if (accent) {
15345              scaledAccentX = scaledX + accent.offset.x / fontSizeScale;
15346              scaledAccentY = scaledY - accent.offset.y / fontSizeScale;
15347              this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);
15348            }
15349          }
15350        }
15351
15352        var charWidth = width * widthAdvanceScale + spacing * fontDirection;
15353        x += charWidth;
15354
15355        if (restoreNeeded) {
15356          ctx.restore();
15357        }
15358      }
15359
15360      if (vertical) {
15361        current.y -= x * textHScale;
15362      } else {
15363        current.x += x * textHScale;
15364      }
15365
15366      ctx.restore();
15367    },
15368    showType3Text: function CanvasGraphics_showType3Text(glyphs) {
15369      var ctx = this.ctx;
15370      var current = this.current;
15371      var font = current.font;
15372      var fontSize = current.fontSize;
15373      var fontDirection = current.fontDirection;
15374      var spacingDir = font.vertical ? 1 : -1;
15375      var charSpacing = current.charSpacing;
15376      var wordSpacing = current.wordSpacing;
15377      var textHScale = current.textHScale * fontDirection;
15378      var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;
15379      var glyphsLength = glyphs.length;
15380      var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;
15381      var i, glyph, width, spacingLength;
15382
15383      if (isTextInvisible || fontSize === 0) {
15384        return;
15385      }
15386
15387      this._cachedGetSinglePixelWidth = null;
15388      ctx.save();
15389      ctx.transform.apply(ctx, current.textMatrix);
15390      ctx.translate(current.x, current.y);
15391      ctx.scale(textHScale, fontDirection);
15392
15393      for (i = 0; i < glyphsLength; ++i) {
15394        glyph = glyphs[i];
15395
15396        if ((0, _util.isNum)(glyph)) {
15397          spacingLength = spacingDir * glyph * fontSize / 1000;
15398          this.ctx.translate(spacingLength, 0);
15399          current.x += spacingLength * textHScale;
15400          continue;
15401        }
15402
15403        var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
15404        var operatorList = font.charProcOperatorList[glyph.operatorListId];
15405
15406        if (!operatorList) {
15407          (0, _util.warn)("Type3 character \"".concat(glyph.operatorListId, "\" is not available."));
15408          continue;
15409        }
15410
15411        this.processingType3 = glyph;
15412        this.save();
15413        ctx.scale(fontSize, fontSize);
15414        ctx.transform.apply(ctx, fontMatrix);
15415        this.executeOperatorList(operatorList);
15416        this.restore();
15417
15418        var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);
15419
15420        width = transformed[0] * fontSize + spacing;
15421        ctx.translate(width, 0);
15422        current.x += width * textHScale;
15423      }
15424
15425      ctx.restore();
15426      this.processingType3 = null;
15427    },
15428    setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},
15429    setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {
15430      this.ctx.rect(llx, lly, urx - llx, ury - lly);
15431      this.clip();
15432      this.endPath();
15433    },
15434    getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {
15435      var _this = this;
15436
15437      var pattern;
15438
15439      if (IR[0] === 'TilingPattern') {
15440        var color = IR[1];
15441        var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();
15442        var canvasGraphicsFactory = {
15443          createCanvasGraphics: function createCanvasGraphics(ctx) {
15444            return new CanvasGraphics(ctx, _this.commonObjs, _this.objs, _this.canvasFactory, _this.webGLContext);
15445          }
15446        };
15447        pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);
15448      } else {
15449        pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);
15450      }
15451
15452      return pattern;
15453    },
15454    setStrokeColorN: function CanvasGraphics_setStrokeColorN() {
15455      this.current.strokeColor = this.getColorN_Pattern(arguments);
15456    },
15457    setFillColorN: function CanvasGraphics_setFillColorN() {
15458      this.current.fillColor = this.getColorN_Pattern(arguments);
15459      this.current.patternFill = true;
15460    },
15461    setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {
15462      var color = _util.Util.makeCssRgb(r, g, b);
15463
15464      this.ctx.strokeStyle = color;
15465      this.current.strokeColor = color;
15466    },
15467    setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {
15468      var color = _util.Util.makeCssRgb(r, g, b);
15469
15470      this.ctx.fillStyle = color;
15471      this.current.fillColor = color;
15472      this.current.patternFill = false;
15473    },
15474    shadingFill: function CanvasGraphics_shadingFill(patternIR) {
15475      var ctx = this.ctx;
15476      this.save();
15477      var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);
15478      ctx.fillStyle = pattern.getPattern(ctx, this, true);
15479      var inv = ctx.mozCurrentTransformInverse;
15480
15481      if (inv) {
15482        var canvas = ctx.canvas;
15483        var width = canvas.width;
15484        var height = canvas.height;
15485
15486        var bl = _util.Util.applyTransform([0, 0], inv);
15487
15488        var br = _util.Util.applyTransform([0, height], inv);
15489
15490        var ul = _util.Util.applyTransform([width, 0], inv);
15491
15492        var ur = _util.Util.applyTransform([width, height], inv);
15493
15494        var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
15495        var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
15496        var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
15497        var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
15498        this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
15499      } else {
15500        this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
15501      }
15502
15503      this.restore();
15504    },
15505    beginInlineImage: function CanvasGraphics_beginInlineImage() {
15506      (0, _util.unreachable)('Should not call beginInlineImage');
15507    },
15508    beginImageData: function CanvasGraphics_beginImageData() {
15509      (0, _util.unreachable)('Should not call beginImageData');
15510    },
15511    paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {
15512      this.save();
15513      this.baseTransformStack.push(this.baseTransform);
15514
15515      if (Array.isArray(matrix) && matrix.length === 6) {
15516        this.transform.apply(this, matrix);
15517      }
15518
15519      this.baseTransform = this.ctx.mozCurrentTransform;
15520
15521      if (bbox) {
15522        var width = bbox[2] - bbox[0];
15523        var height = bbox[3] - bbox[1];
15524        this.ctx.rect(bbox[0], bbox[1], width, height);
15525        this.clip();
15526        this.endPath();
15527      }
15528    },
15529    paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
15530      this.restore();
15531      this.baseTransform = this.baseTransformStack.pop();
15532    },
15533    beginGroup: function CanvasGraphics_beginGroup(group) {
15534      this.save();
15535      var currentCtx = this.ctx;
15536
15537      if (!group.isolated) {
15538        (0, _util.info)('TODO: Support non-isolated groups.');
15539      }
15540
15541      if (group.knockout) {
15542        (0, _util.warn)('Knockout groups not supported.');
15543      }
15544
15545      var currentTransform = currentCtx.mozCurrentTransform;
15546
15547      if (group.matrix) {
15548        currentCtx.transform.apply(currentCtx, group.matrix);
15549      }
15550
15551      if (!group.bbox) {
15552        throw new Error('Bounding box is required.');
15553      }
15554
15555      var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);
15556
15557      var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];
15558      bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];
15559      var offsetX = Math.floor(bounds[0]);
15560      var offsetY = Math.floor(bounds[1]);
15561      var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);
15562      var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);
15563      var scaleX = 1,
15564          scaleY = 1;
15565
15566      if (drawnWidth > MAX_GROUP_SIZE) {
15567        scaleX = drawnWidth / MAX_GROUP_SIZE;
15568        drawnWidth = MAX_GROUP_SIZE;
15569      }
15570
15571      if (drawnHeight > MAX_GROUP_SIZE) {
15572        scaleY = drawnHeight / MAX_GROUP_SIZE;
15573        drawnHeight = MAX_GROUP_SIZE;
15574      }
15575
15576      var cacheId = 'groupAt' + this.groupLevel;
15577
15578      if (group.smask) {
15579        cacheId += '_smask_' + this.smaskCounter++ % 2;
15580      }
15581
15582      var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
15583      var groupCtx = scratchCanvas.context;
15584      groupCtx.scale(1 / scaleX, 1 / scaleY);
15585      groupCtx.translate(-offsetX, -offsetY);
15586      groupCtx.transform.apply(groupCtx, currentTransform);
15587
15588      if (group.smask) {
15589        this.smaskStack.push({
15590          canvas: scratchCanvas.canvas,
15591          context: groupCtx,
15592          offsetX: offsetX,
15593          offsetY: offsetY,
15594          scaleX: scaleX,
15595          scaleY: scaleY,
15596          subtype: group.smask.subtype,
15597          backdrop: group.smask.backdrop,
15598          transferMap: group.smask.transferMap || null,
15599          startTransformInverse: null
15600        });
15601      } else {
15602        currentCtx.setTransform(1, 0, 0, 1, 0, 0);
15603        currentCtx.translate(offsetX, offsetY);
15604        currentCtx.scale(scaleX, scaleY);
15605      }
15606
15607      copyCtxState(currentCtx, groupCtx);
15608      this.ctx = groupCtx;
15609      this.setGState([['BM', 'source-over'], ['ca', 1], ['CA', 1]]);
15610      this.groupStack.push(currentCtx);
15611      this.groupLevel++;
15612      this.current.activeSMask = null;
15613    },
15614    endGroup: function CanvasGraphics_endGroup(group) {
15615      this.groupLevel--;
15616      var groupCtx = this.ctx;
15617      this.ctx = this.groupStack.pop();
15618
15619      if (this.ctx.imageSmoothingEnabled !== undefined) {
15620        this.ctx.imageSmoothingEnabled = false;
15621      } else {
15622        this.ctx.mozImageSmoothingEnabled = false;
15623      }
15624
15625      if (group.smask) {
15626        this.tempSMask = this.smaskStack.pop();
15627      } else {
15628        this.ctx.drawImage(groupCtx.canvas, 0, 0);
15629      }
15630
15631      this.restore();
15632    },
15633    beginAnnotations: function CanvasGraphics_beginAnnotations() {
15634      this.save();
15635
15636      if (this.baseTransform) {
15637        this.ctx.setTransform.apply(this.ctx, this.baseTransform);
15638      }
15639    },
15640    endAnnotations: function CanvasGraphics_endAnnotations() {
15641      this.restore();
15642    },
15643    beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {
15644      this.save();
15645      resetCtxToDefault(this.ctx);
15646      this.current = new CanvasExtraState();
15647
15648      if (Array.isArray(rect) && rect.length === 4) {
15649        var width = rect[2] - rect[0];
vendor: 4,243 bytes, lines 15650-15762
15650        var height = rect[3] - rect[1];
15651        this.ctx.rect(rect[0], rect[1], width, height);
15652        this.clip();
15653        this.endPath();
15654      }
15655
15656      this.transform.apply(this, transform);
15657      this.transform.apply(this, matrix);
15658    },
15659    endAnnotation: function CanvasGraphics_endAnnotation() {
15660      this.restore();
15661    },
15662    paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
15663      var domImage = this.objs.get(objId);
15664
15665      if (!domImage) {
15666        (0, _util.warn)('Dependent image isn\'t ready yet');
15667        return;
15668      }
15669
15670      this.save();
15671      var ctx = this.ctx;
15672      ctx.scale(1 / w, -1 / h);
15673      ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);
15674
15675      if (this.imageLayer) {
15676        var currentTransform = ctx.mozCurrentTransformInverse;
15677        var position = this.getCanvasPosition(0, 0);
15678        this.imageLayer.appendImage({
15679          objId: objId,
15680          left: position[0],
15681          top: position[1],
15682          width: w / currentTransform[0],
15683          height: h / currentTransform[3]
15684        });
15685      }
15686
15687      this.restore();
15688    },
15689    paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {
15690      var ctx = this.ctx;
15691      var width = img.width,
15692          height = img.height;
15693      var fillColor = this.current.fillColor;
15694      var isPatternFill = this.current.patternFill;
15695      var glyph = this.processingType3;
15696
15697      if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {
15698        if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {
15699          glyph.compiled = compileType3Glyph({
15700            data: img.data,
15701            width: width,
15702            height: height
15703          });
15704        } else {
15705          glyph.compiled = null;
15706        }
15707      }
15708
15709      if (glyph && glyph.compiled) {
15710        glyph.compiled(ctx);
15711        return;
15712      }
15713
15714      var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
15715      var maskCtx = maskCanvas.context;
15716      maskCtx.save();
15717      putBinaryImageMask(maskCtx, img);
15718      maskCtx.globalCompositeOperation = 'source-in';
15719      maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
15720      maskCtx.fillRect(0, 0, width, height);
15721      maskCtx.restore();
15722      this.paintInlineImageXObject(maskCanvas.canvas);
15723    },
15724    paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {
15725      var width = imgData.width;
15726      var height = imgData.height;
15727      var fillColor = this.current.fillColor;
15728      var isPatternFill = this.current.patternFill;
15729      var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
15730      var maskCtx = maskCanvas.context;
15731      maskCtx.save();
15732      putBinaryImageMask(maskCtx, imgData);
15733      maskCtx.globalCompositeOperation = 'source-in';
15734      maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
15735      maskCtx.fillRect(0, 0, width, height);
15736      maskCtx.restore();
15737      var ctx = this.ctx;
15738
15739      for (var i = 0, ii = positions.length; i < ii; i += 2) {
15740        ctx.save();
15741        ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);
15742        ctx.scale(1, -1);
15743        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
15744        ctx.restore();
15745      }
15746    },
15747    paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {
15748      var ctx = this.ctx;
15749      var fillColor = this.current.fillColor;
15750      var isPatternFill = this.current.patternFill;
15751
15752      for (var i = 0, ii = images.length; i < ii; i++) {
15753        var image = images[i];
15754        var width = image.width,
15755            height = image.height;
15756        var maskCanvas = this.cachedCanvases.getCanvas('maskCanvas', width, height);
15757        var maskCtx = maskCanvas.context;
15758        maskCtx.save();
15759        putBinaryImageMask(maskCtx, image);
15760        maskCtx.globalCompositeOperation = 'source-in';
15761        maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
15762        maskCtx.fillRect(0, 0, width, height);
15763        maskCtx.restore();
15764        ctx.save();
15765        ctx.transform.apply(ctx, image.transform);
15766        ctx.scale(1, -1);
15767        ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
15768        ctx.restore();
15769      }
15770    },
15771    paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {
15772      var imgData = this.objs.get(objId);
15773
15774      if (!imgData) {
15775        (0, _util.warn)('Dependent image isn\'t ready yet');
15776        return;
15777      }
15778
15779      this.paintInlineImageXObject(imgData);
15780    },
15781    paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {
15782      var imgData = this.objs.get(objId);
15783
15784      if (!imgData) {
15785        (0, _util.warn)('Dependent image isn\'t ready yet');
15786        return;
15787      }
15788
15789      var width = imgData.width;
15790      var height = imgData.height;
15791      var map = [];
15792
15793      for (var i = 0, ii = positions.length; i < ii; i += 2) {
15794        map.push({
15795          transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],
15796          x: 0,
15797          y: 0,
15798          w: width,
15799          h: height
15800        });
15801      }
15802
15803      this.paintInlineImageXObjectGroup(imgData, map);
15804    },
15805    paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {
15806      var width = imgData.width;
15807      var height = imgData.height;
15808      var ctx = this.ctx;
15809      this.save();
15810      ctx.scale(1 / width, -1 / height);
15811      var currentTransform = ctx.mozCurrentTransformInverse;
15812      var a = currentTransform[0],
15813          b = currentTransform[1];
15814      var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);
15815      var c = currentTransform[2],
15816          d = currentTransform[3];
15817      var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);
15818      var imgToPaint, tmpCanvas;
15819
15820      if (typeof HTMLElement === 'function' && imgData instanceof HTMLElement || !imgData.data) {
15821        imgToPaint = imgData;
15822      } else {
15823        tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', width, height);
15824        var tmpCtx = tmpCanvas.context;
15825        putBinaryImageData(tmpCtx, imgData);
15826        imgToPaint = tmpCanvas.canvas;
15827      }
15828
15829      var paintWidth = width,
15830          paintHeight = height;
15831      var tmpCanvasId = 'prescale1';
15832
15833      while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {
15834        var newWidth = paintWidth,
15835            newHeight = paintHeight;
15836
15837        if (widthScale > 2 && paintWidth > 1) {
15838          newWidth = Math.ceil(paintWidth / 2);
15839          widthScale /= paintWidth / newWidth;
15840        }
15841
15842        if (heightScale > 2 && paintHeight > 1) {
15843          newHeight = Math.ceil(paintHeight / 2);
15844          heightScale /= paintHeight / newHeight;
15845        }
15846
15847        tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);
15848        tmpCtx = tmpCanvas.context;
15849        tmpCtx.clearRect(0, 0, newWidth, newHeight);
15850        tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);
15851        imgToPaint = tmpCanvas.canvas;
15852        paintWidth = newWidth;
15853        paintHeight = newHeight;
15854        tmpCanvasId = tmpCanvasId === 'prescale1' ? 'prescale2' : 'prescale1';
15855      }
15856
15857      ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);
15858
15859      if (this.imageLayer) {
15860        var position = this.getCanvasPosition(0, -height);
15861        this.imageLayer.appendImage({
15862          imgData: imgData,
15863          left: position[0],
15864          top: position[1],
15865          width: width / currentTransform[0],
15866          height: height / currentTransform[3]
15867        });
15868      }
15869
15870      this.restore();
15871    },
15872    paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {
15873      var ctx = this.ctx;
15874      var w = imgData.width;
15875      var h = imgData.height;
15876      var tmpCanvas = this.cachedCanvases.getCanvas('inlineImage', w, h);
15877      var tmpCtx = tmpCanvas.context;
15878      putBinaryImageData(tmpCtx, imgData);
15879
15880      for (var i = 0, ii = map.length; i < ii; i++) {
15881        var entry = map[i];
vendor: 7,770 bytes, lines 15882-16134
15882        ctx.save();
15883        ctx.transform.apply(ctx, entry.transform);
15884        ctx.scale(1, -1);
15885        ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);
15886
15887        if (this.imageLayer) {
15888          var position = this.getCanvasPosition(entry.x, entry.y);
15889          this.imageLayer.appendImage({
15890            imgData: imgData,
15891            left: position[0],
15892            top: position[1],
15893            width: w,
15894            height: h
15895          });
15896        }
15897
15898        ctx.restore();
15899      }
15900    },
15901    paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {
15902      this.ctx.fillRect(0, 0, 1, 1);
15903    },
15904    paintXObject: function CanvasGraphics_paintXObject() {
15905      (0, _util.warn)('Unsupported \'paintXObject\' command.');
15906    },
15907    markPoint: function CanvasGraphics_markPoint(tag) {},
15908    markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},
15909    beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},
15910    beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},
15911    endMarkedContent: function CanvasGraphics_endMarkedContent() {},
15912    beginCompat: function CanvasGraphics_beginCompat() {},
15913    endCompat: function CanvasGraphics_endCompat() {},
15914    consumePath: function CanvasGraphics_consumePath() {
15915      var ctx = this.ctx;
15916
15917      if (this.pendingClip) {
15918        if (this.pendingClip === EO_CLIP) {
15919          ctx.clip('evenodd');
15920        } else {
15921          ctx.clip();
15922        }
15923
15924        this.pendingClip = null;
15925      }
15926
15927      ctx.beginPath();
15928    },
15929    getSinglePixelWidth: function getSinglePixelWidth(scale) {
15930      if (this._cachedGetSinglePixelWidth === null) {
15931        var inverse = this.ctx.mozCurrentTransformInverse;
15932        this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));
15933      }
15934
15935      return this._cachedGetSinglePixelWidth;
15936    },
15937    getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {
15938      var transform = this.ctx.mozCurrentTransform;
15939      return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];
15940    }
15941  };
15942
15943  for (var op in _util.OPS) {
15944    CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];
15945  }
15946
15947  return CanvasGraphics;
15948}();
15949
15950exports.CanvasGraphics = CanvasGraphics;
15951
15952/***/ }),
15953/* 155 */
15954/***/ (function(module, exports, __w_pdfjs_require__) {
15955
15956"use strict";
15957
15958
15959Object.defineProperty(exports, "__esModule", {
15960  value: true
15961});
15962exports.getShadingPatternFromIR = getShadingPatternFromIR;
15963exports.TilingPattern = void 0;
15964
15965var _util = __w_pdfjs_require__(1);
15966
15967var ShadingIRs = {};
15968ShadingIRs.RadialAxial = {
15969  fromIR: function RadialAxial_fromIR(raw) {
15970    var type = raw[1];
15971    var colorStops = raw[2];
15972    var p0 = raw[3];
15973    var p1 = raw[4];
15974    var r0 = raw[5];
15975    var r1 = raw[6];
15976    return {
15977      type: 'Pattern',
15978      getPattern: function RadialAxial_getPattern(ctx) {
15979        var grad;
15980
15981        if (type === 'axial') {
15982          grad = ctx.createLinearGradient(p0[0], p0[1], p1[0], p1[1]);
15983        } else if (type === 'radial') {
15984          grad = ctx.createRadialGradient(p0[0], p0[1], r0, p1[0], p1[1], r1);
15985        }
15986
15987        for (var i = 0, ii = colorStops.length; i < ii; ++i) {
15988          var c = colorStops[i];
15989          grad.addColorStop(c[0], c[1]);
15990        }
15991
15992        return grad;
15993      }
15994    };
15995  }
15996};
15997
15998var createMeshCanvas = function createMeshCanvasClosure() {
15999  function drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {
16000    var coords = context.coords,
16001        colors = context.colors;
16002    var bytes = data.data,
16003        rowSize = data.width * 4;
16004    var tmp;
16005
16006    if (coords[p1 + 1] > coords[p2 + 1]) {
16007      tmp = p1;
16008      p1 = p2;
16009      p2 = tmp;
16010      tmp = c1;
16011      c1 = c2;
16012      c2 = tmp;
16013    }
16014
16015    if (coords[p2 + 1] > coords[p3 + 1]) {
16016      tmp = p2;
16017      p2 = p3;
16018      p3 = tmp;
16019      tmp = c2;
16020      c2 = c3;
16021      c3 = tmp;
16022    }
16023
16024    if (coords[p1 + 1] > coords[p2 + 1]) {
16025      tmp = p1;
16026      p1 = p2;
16027      p2 = tmp;
16028      tmp = c1;
16029      c1 = c2;
16030      c2 = tmp;
16031    }
16032
16033    var x1 = (coords[p1] + context.offsetX) * context.scaleX;
16034    var y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;
16035    var x2 = (coords[p2] + context.offsetX) * context.scaleX;
16036    var y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;
16037    var x3 = (coords[p3] + context.offsetX) * context.scaleX;
16038    var y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;
16039
16040    if (y1 >= y3) {
16041      return;
16042    }
16043
16044    var c1r = colors[c1],
16045        c1g = colors[c1 + 1],
16046        c1b = colors[c1 + 2];
16047    var c2r = colors[c2],
16048        c2g = colors[c2 + 1],
16049        c2b = colors[c2 + 2];
16050    var c3r = colors[c3],
16051        c3g = colors[c3 + 1],
16052        c3b = colors[c3 + 2];
16053    var minY = Math.round(y1),
16054        maxY = Math.round(y3);
16055    var xa, car, cag, cab;
16056    var xb, cbr, cbg, cbb;
16057    var k;
16058
16059    for (var y = minY; y <= maxY; y++) {
16060      if (y < y2) {
16061        k = y < y1 ? 0 : y1 === y2 ? 1 : (y1 - y) / (y1 - y2);
16062        xa = x1 - (x1 - x2) * k;
16063        car = c1r - (c1r - c2r) * k;
16064        cag = c1g - (c1g - c2g) * k;
16065        cab = c1b - (c1b - c2b) * k;
16066      } else {
16067        k = y > y3 ? 1 : y2 === y3 ? 0 : (y2 - y) / (y2 - y3);
16068        xa = x2 - (x2 - x3) * k;
16069        car = c2r - (c2r - c3r) * k;
16070        cag = c2g - (c2g - c3g) * k;
16071        cab = c2b - (c2b - c3b) * k;
16072      }
16073
16074      k = y < y1 ? 0 : y > y3 ? 1 : (y1 - y) / (y1 - y3);
16075      xb = x1 - (x1 - x3) * k;
16076      cbr = c1r - (c1r - c3r) * k;
16077      cbg = c1g - (c1g - c3g) * k;
16078      cbb = c1b - (c1b - c3b) * k;
16079      var x1_ = Math.round(Math.min(xa, xb));
16080      var x2_ = Math.round(Math.max(xa, xb));
16081      var j = rowSize * y + x1_ * 4;
16082
16083      for (var x = x1_; x <= x2_; x++) {
16084        k = (xa - x) / (xa - xb);
16085        k = k < 0 ? 0 : k > 1 ? 1 : k;
16086        bytes[j++] = car - (car - cbr) * k | 0;
16087        bytes[j++] = cag - (cag - cbg) * k | 0;
16088        bytes[j++] = cab - (cab - cbb) * k | 0;
16089        bytes[j++] = 255;
16090      }
16091    }
16092  }
16093
16094  function drawFigure(data, figure, context) {
16095    var ps = figure.coords;
16096    var cs = figure.colors;
16097    var i, ii;
16098
16099    switch (figure.type) {
16100      case 'lattice':
16101        var verticesPerRow = figure.verticesPerRow;
16102        var rows = Math.floor(ps.length / verticesPerRow) - 1;
16103        var cols = verticesPerRow - 1;
16104
16105        for (i = 0; i < rows; i++) {
16106          var q = i * verticesPerRow;
16107
16108          for (var j = 0; j < cols; j++, q++) {
16109            drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);
16110            drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);
16111          }
16112        }
16113
16114        break;
16115
16116      case 'triangles':
16117        for (i = 0, ii = ps.length; i < ii; i += 3) {
16118          drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);
16119        }
16120
16121        break;
16122
16123      default:
16124        throw new Error('illegal figure');
16125    }
16126  }
16127
16128  function createMeshCanvas(bounds, combinesScale, coords, colors, figures, backgroundColor, cachedCanvases, webGLContext) {
16129    var EXPECTED_SCALE = 1.1;
16130    var MAX_PATTERN_SIZE = 3000;
16131    var BORDER_SIZE = 2;
16132    var offsetX = Math.floor(bounds[0]);
16133    var offsetY = Math.floor(bounds[1]);
16134    var boundsWidth = Math.ceil(bounds[2]) - offsetX;
16135    var boundsHeight = Math.ceil(bounds[3]) - offsetY;
16136    var width = Math.min(Math.ceil(Math.abs(boundsWidth * combinesScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
16137    var height = Math.min(Math.ceil(Math.abs(boundsHeight * combinesScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);
16138    var scaleX = boundsWidth / width;
16139    var scaleY = boundsHeight / height;
16140    var context = {
16141      coords: coords,
16142      colors: colors,
16143      offsetX: -offsetX,
16144      offsetY: -offsetY,
16145      scaleX: 1 / scaleX,
16146      scaleY: 1 / scaleY
16147    };
16148    var paddedWidth = width + BORDER_SIZE * 2;
16149    var paddedHeight = height + BORDER_SIZE * 2;
16150    var canvas, tmpCanvas, i, ii;
16151
16152    if (webGLContext.isEnabled) {
16153      canvas = webGLContext.drawFigures({
16154        width: width,
16155        height: height,
16156        backgroundColor: backgroundColor,
16157        figures: figures,
16158        context: context
16159      });
16160      tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
16161      tmpCanvas.context.drawImage(canvas, BORDER_SIZE, BORDER_SIZE);
16162      canvas = tmpCanvas.canvas;
16163    } else {
16164      tmpCanvas = cachedCanvases.getCanvas('mesh', paddedWidth, paddedHeight, false);
16165      var tmpCtx = tmpCanvas.context;
16166      var data = tmpCtx.createImageData(width, height);
16167
16168      if (backgroundColor) {
16169        var bytes = data.data;
16170
16171        for (i = 0, ii = bytes.length; i < ii; i += 4) {
16172          bytes[i] = backgroundColor[0];
16173          bytes[i + 1] = backgroundColor[1];
16174          bytes[i + 2] = backgroundColor[2];
16175          bytes[i + 3] = 255;
16176        }
16177      }
16178
16179      for (i = 0; i < figures.length; i++) {
16180        drawFigure(data, figures[i], context);
16181      }
16182
16183      tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);
16184      canvas = tmpCanvas.canvas;
16185    }
16186
16187    return {
16188      canvas: canvas,
16189      offsetX: offsetX - BORDER_SIZE * scaleX,
16190      offsetY: offsetY - BORDER_SIZE * scaleY,
16191      scaleX: scaleX,
16192      scaleY: scaleY
16193    };
16194  }
16195
16196  return createMeshCanvas;
16197}();
16198
16199ShadingIRs.Mesh = {
16200  fromIR: function Mesh_fromIR(raw) {
16201    var coords = raw[2];
16202    var colors = raw[3];
16203    var figures = raw[4];
16204    var bounds = raw[5];
16205    var matrix = raw[6];
16206    var background = raw[8];
16207    return {
16208      type: 'Pattern',
16209      getPattern: function Mesh_getPattern(ctx, owner, shadingFill) {
16210        var scale;
16211
16212        if (shadingFill) {
16213          scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);
16214        } else {
16215          scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);
16216
16217          if (matrix) {
16218            var matrixScale = _util.Util.singularValueDecompose2dScale(matrix);
16219
16220            scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];
16221          }
16222        }
16223
16224        var temporaryPatternCanvas = createMeshCanvas(bounds, scale, coords, colors, figures, shadingFill ? null : background, owner.cachedCanvases, owner.webGLContext);
16225
16226        if (!shadingFill) {
16227          ctx.setTransform.apply(ctx, owner.baseTransform);
16228
16229          if (matrix) {
16230            ctx.transform.apply(ctx, matrix);
16231          }
16232        }
16233
16234        ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);
16235        ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);
16236        return ctx.createPattern(temporaryPatternCanvas.canvas, 'no-repeat');
16237      }
16238    };
16239  }
16240};
16241ShadingIRs.Dummy = {
16242  fromIR: function Dummy_fromIR() {
16243    return {
16244      type: 'Pattern',
16245      getPattern: function Dummy_fromIR_getPattern() {
16246        return 'hotpink';
16247      }
16248    };
16249  }
16250};
16251
16252function getShadingPatternFromIR(raw) {
16253  var shadingIR = ShadingIRs[raw[0]];
16254
16255  if (!shadingIR) {
16256    throw new Error("Unknown IR type: ".concat(raw[0]));
16257  }
16258
16259  return shadingIR.fromIR(raw);
16260}
16261
16262var TilingPattern = function TilingPatternClosure() {
16263  var PaintType = {
16264    COLORED: 1,
16265    UNCOLORED: 2
16266  };
16267  var MAX_PATTERN_SIZE = 3000;
16268
16269  function TilingPattern(IR, color, ctx, canvasGraphicsFactory, baseTransform) {
16270    this.operatorList = IR[2];
16271    this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];
16272    this.bbox = IR[4];
16273    this.xstep = IR[5];
16274    this.ystep = IR[6];
16275    this.paintType = IR[7];
16276    this.tilingType = IR[8];
16277    this.color = color;
16278    this.canvasGraphicsFactory = canvasGraphicsFactory;
16279    this.baseTransform = baseTransform;
16280    this.type = 'Pattern';
16281    this.ctx = ctx;
16282  }
16283
16284  TilingPattern.prototype = {
16285    createPatternCanvas: function TilinPattern_createPatternCanvas(owner) {
16286      var operatorList = this.operatorList;
16287      var bbox = this.bbox;
16288      var xstep = this.xstep;
16289      var ystep = this.ystep;
16290      var paintType = this.paintType;
16291      var tilingType = this.tilingType;
16292      var color = this.color;
16293      var canvasGraphicsFactory = this.canvasGraphicsFactory;
16294      (0, _util.info)('TilingType: ' + tilingType);
16295      var x0 = bbox[0],
16296          y0 = bbox[1],
16297          x1 = bbox[2],
16298          y1 = bbox[3];
16299      var topLeft = [x0, y0];
16300      var botRight = [x0 + xstep, y0 + ystep];
16301      var width = botRight[0] - topLeft[0];
16302      var height = botRight[1] - topLeft[1];
16303
16304      var matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);
16305
16306      var curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);
16307
16308      var combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];
16309      width = Math.min(Math.ceil(Math.abs(width * combinedScale[0])), MAX_PATTERN_SIZE);
16310      height = Math.min(Math.ceil(Math.abs(height * combinedScale[1])), MAX_PATTERN_SIZE);
16311      var tmpCanvas = owner.cachedCanvases.getCanvas('pattern', width, height, true);
16312      var tmpCtx = tmpCanvas.context;
16313      var graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);
16314      graphics.groupLevel = owner.groupLevel;
16315      this.setFillAndStrokeStyleToContext(graphics, paintType, color);
16316      this.setScale(width, height, xstep, ystep);
16317      this.transformToScale(graphics);
16318      var tmpTranslate = [1, 0, 0, 1, -topLeft[0], -topLeft[1]];
16319      graphics.transform.apply(graphics, tmpTranslate);
16320      this.clipBbox(graphics, bbox, x0, y0, x1, y1);
16321      graphics.executeOperatorList(operatorList);
16322      return tmpCanvas.canvas;
16323    },
16324    setScale: function TilingPattern_setScale(width, height, xstep, ystep) {
16325      this.scale = [width / xstep, height / ystep];
16326    },
16327    transformToScale: function TilingPattern_transformToScale(graphics) {
16328      var scale = this.scale;
16329      var tmpScale = [scale[0], 0, 0, scale[1], 0, 0];
16330      graphics.transform.apply(graphics, tmpScale);
16331    },
16332    scaleToContext: function TilingPattern_scaleToContext() {
16333      var scale = this.scale;
16334      this.ctx.scale(1 / scale[0], 1 / scale[1]);
16335    },
16336    clipBbox: function clipBbox(graphics, bbox, x0, y0, x1, y1) {
16337      if (Array.isArray(bbox) && bbox.length === 4) {
16338        var bboxWidth = x1 - x0;
16339        var bboxHeight = y1 - y0;
16340        graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);
16341        graphics.clip();
16342        graphics.endPath();
16343      }
16344    },
16345    setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(graphics, paintType, color) {
16346      var context = graphics.ctx,
16347          current = graphics.current;
16348
16349      switch (paintType) {
16350        case PaintType.COLORED:
16351          var ctx = this.ctx;
16352          context.fillStyle = ctx.fillStyle;
16353          context.strokeStyle = ctx.strokeStyle;
16354          current.fillColor = ctx.fillStyle;
16355          current.strokeColor = ctx.strokeStyle;
16356          break;
16357
16358        case PaintType.UNCOLORED:
16359          var cssColor = _util.Util.makeCssRgb(color[0], color[1], color[2]);
16360
16361          context.fillStyle = cssColor;
16362          context.strokeStyle = cssColor;
16363          current.fillColor = cssColor;
16364          current.strokeColor = cssColor;
16365          break;
16366
16367        default:
16368          throw new _util.FormatError("Unsupported paint type: ".concat(paintType));
16369      }
16370    },
16371    getPattern: function TilingPattern_getPattern(ctx, owner) {
16372      var temporaryPatternCanvas = this.createPatternCanvas(owner);
16373      ctx = this.ctx;
16374      ctx.setTransform.apply(ctx, this.baseTransform);
16375      ctx.transform.apply(ctx, this.matrix);
16376      this.scaleToContext();
16377      return ctx.createPattern(temporaryPatternCanvas, 'repeat');
16378    }
16379  };
16380  return TilingPattern;
16381}();
16382
16383exports.TilingPattern = TilingPattern;
16384
16385/***/ }),
16386/* 156 */
16387/***/ (function(module, exports, __w_pdfjs_require__) {
16388
16389"use strict";
16390
16391
16392Object.defineProperty(exports, "__esModule", {
16393  value: true
16394});
16395exports.GlobalWorkerOptions = void 0;
16396var GlobalWorkerOptions = Object.create(null);
16397exports.GlobalWorkerOptions = GlobalWorkerOptions;
16398GlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;
16399GlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? '' : GlobalWorkerOptions.workerSrc;
16400
16401/***/ }),
16402/* 157 */
16403/***/ (function(module, exports, __w_pdfjs_require__) {
16404
16405"use strict";
16406
16407
16408Object.defineProperty(exports, "__esModule", {
16409  value: true
16410});
16411exports.MessageHandler = MessageHandler;
16412
16413var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
16414
16415var _util = __w_pdfjs_require__(1);
16416
16417function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
16418
16419function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
16420
16421function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { tr
16421y { 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); } }
16422
16423function _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); }); }; }
16424
16425function resolveCall(_x, _x2) {
16426  return _resolveCall.apply(this, arguments);
16427}
16428
16429function _resolveCall() {
16430  _resolveCall = _asyncToGenerator(
16431  /*#__PURE__*/
16432  _regenerator.default.mark(function _callee(fn, args) {
16433    var thisArg,
16434        _args = arguments;
16435    return _regenerator.default.wrap(function _callee$(_context) {
16436      while (1) {
16437        switch (_context.prev = _context.next) {
16438          case 0:
16439            thisArg = _args.length > 2 && _args[2] !== undefined ? _args[2] : null;
16440
16441            if (fn) {
16442              _context.next = 3;
16443              break;
16444            }
16445
16446            return _context.abrupt("return");
16447
16448          case 3:
16449            return _context.abrupt("return", fn.apply(thisArg, args));
16450
16451          case 4:
16452          case "end":
16453            return _context.stop();
16454        }
16455      }
16456    }, _callee, this);
16457  }));
16458  return _resolveCall.apply(this, arguments);
16459}
16460
16461function wrapReason(reason) {
16462  if (_typeof(reason) !== 'object') {
16463    return reason;
16464  }
16465
16466  switch (reason.name) {
16467    case 'AbortException':
16468      return new _util.AbortException(reason.message);
16469
16470    case 'MissingPDFException':
16471      return new _util.MissingPDFException(reason.message);
16472
16473    case 'UnexpectedResponseException':
16474      return new _util.UnexpectedResponseException(reason.message, reason.status);
16475
16476    default:
16477      return new _util.UnknownErrorException(reason.message, reason.details);
16478  }
16479}
16480
16481function makeReasonSerializable(reason) {
16482  if (!(reason instanceof Error) || reason instanceof _util.AbortException || reason instanceof _util.MissingPDFException || reason instanceof _util.UnexpectedResponseException || reason instanceof _util.UnknownErrorException) {
16483    return reason;
16484  }
16485
16486  return new _util.UnknownErrorException(reason.message, reason.toString());
16487}
16488
16489function resolveOrReject(capability, success, reason) {
16490  if (success) {
16491    capability.resolve();
16492  } else {
16493    capability.reject(reason);
16494  }
16495}
16496
16497function finalize(promise) {
16498  return Promise.resolve(promise).catch(function () {});
16499}
16500
16501function MessageHandler(sourceName, targetName, comObj) {
16502  var _this = this;
16503
16504  this.sourceName = sourceName;
16505  this.targetName = targetName;
16506  this.comObj = comObj;
16507  this.callbackId = 1;
16508  this.streamId = 1;
16509  this.postMessageTransfers = true;
16510  this.streamSinks = Object.create(null);
16511  this.streamControllers = Object.create(null);
16512  var callbacksCapabilities = this.callbacksCapabilities = Object.create(null);
16513  var ah = this.actionHandler = Object.create(null);
16514
16515  this._onComObjOnMessage = function (event) {
16516    var data = event.data;
16517
16518    if (data.targetName !== _this.sourceName) {
16519      return;
16520    }
16521
16522    if (data.stream) {
16523      _this._processStreamMessage(data);
16524    } else if (data.isReply) {
16525      var callbackId = data.callbackId;
16526
16527      if (data.callbackId in callbacksCapabilities) {
16528        var callback = callbacksCapabilities[callbackId];
16529        delete callbacksCapabilities[callbackId];
16530
16531        if ('error' in data) {
16532          callback.reject(wrapReason(data.error));
16533        } else {
16534          callback.resolve(data.data);
16535        }
16536      } else {
16537        throw new Error("Cannot resolve callback ".concat(callbackId));
16538      }
16539    } else if (data.action in ah) {
16540      var action = ah[data.action];
16541
16542      if (data.callbackId) {
16543        var _sourceName = _this.sourceName;
16544        var _targetName = data.sourceName;
16545        Promise.resolve().then(function () {
16546          return action[0].call(action[1], data.data);
16547        }).then(function (result) {
16548          comObj.postMessage({
16549            sourceName: _sourceName,
16550            targetName: _targetName,
16551            isReply: true,
16552            callbackId: data.callbackId,
16553            data: result
16554          });
16555        }, function (reason) {
16556          comObj.postMessage({
16557            sourceName: _sourceName,
16558            targetName: _targetName,
16559            isReply: true,
16560            callbackId: data.callbackId,
16561            error: makeReasonSerializable(reason)
16562          });
16563        });
16564      } else if (data.streamId) {
16565        _this._createStreamSink(data);
16566      } else {
16567        action[0].call(action[1], data.data);
16568      }
16569    } else {
16570      throw new Error("Unknown action from worker: ".concat(data.action));
16571    }
16572  };
16573
16574  comObj.addEventListener('message', this._onComObjOnMessage);
16575}
16576
16577MessageHandler.prototype = {
16578  on: function on(actionName, handler, scope) {
16579    var ah = this.actionHandler;
16580
16581    if (ah[actionName]) {
16582      throw new Error("There is already an actionName called \"".concat(actionName, "\""));
16583    }
16584
16585    ah[actionName] = [handler, scope];
16586  },
16587  send: function send(actionName, data, transfers) {
16588    var message = {
16589      sourceName: this.sourceName,
16590      targetName: this.targetName,
16591      action: actionName,
16592      data: data
16593    };
16594    this.postMessage(message, transfers);
16595  },
16596  sendWithPromise: function sendWithPromise(actionName, data, transfers) {
16597    var callbackId = this.callbackId++;
16598    var message = {
16599      sourceName: this.sourceName,
16600      targetName: this.targetName,
16601      action: actionName,
16602      data: data,
16603      callbackId: callbackId
16604    };
16605    var capability = (0, _util.createPromiseCapability)();
16606    this.callbacksCapabilities[callbackId] = capability;
16607
16608    try {
16609      this.postMessage(message, transfers);
16610    } catch (e) {
16611      capability.reject(e);
16612    }
16613
16614    return capability.promise;
16615  },
16616  sendWithStream: function sendWithStream(actionName, data, queueingStrategy, transfers) {
16617    var _this2 = this;
16618
16619    var streamId = this.streamId++;
16620    var sourceName = this.sourceName;
16621    var targetName = this.targetName;
16622    return new _util.ReadableStream({
16623      start: function start(controller) {
16624        var startCapability = (0, _util.createPromiseCapability)();
16625        _this2.streamControllers[streamId] = {
16626          controller: controller,
16627          startCall: startCapability,
16628          isClosed: false
16629        };
16630
16631        _this2.postMessage({
16632          sourceName: sourceName,
16633          targetName: targetName,
16634          action: actionName,
16635          streamId: streamId,
16636          data: data,
16637          desiredSize: controller.desiredSize
16638        });
16639
16640        return startCapability.promise;
16641      },
16642      pull: function pull(controller) {
16643        var pullCapability = (0, _util.createPromiseCapability)();
16644        _this2.streamControllers[streamId].pullCall = pullCapability;
16645
16646        _this2.postMessage({
16647          sourceName: sourceName,
16648          targetName: targetName,
16649          stream: 'pull',
16650          streamId: streamId,
16651          desiredSize: controller.desiredSize
16652        });
16653
16654        return pullCapability.promise;
16655      },
16656      cancel: function cancel(reason) {
16657        var cancelCapability = (0, _util.createPromiseCapability)();
16658        _this2.streamControllers[streamId].cancelCall = cancelCapability;
16659        _this2.streamControllers[streamId].isClosed = true;
16660
16661        _this2.postMessage({
16662          sourceName: sourceName,
16663          targetName: targetName,
16664          stream: 'cancel',
16665          reason: reason,
16666          streamId: streamId
16667        });
16668
16669        return cancelCapability.promise;
16670      }
16671    }, queueingStrategy);
16672  },
16673  _createStreamSink: function _createStreamSink(data) {
16674    var _this3 = this;
16675
16676    var self = this;
16677    var action = this.actionHandler[data.action];
16678    var streamId = data.streamId;
16679    var desiredSize = data.desiredSize;
16680    var sourceName = this.sourceName;
16681    var targetName = data.sourceName;
16682    var capability = (0, _util.createPromiseCapability)();
16683
16684    var sendStreamRequest = function sendStreamRequest(_ref) {
16685      var stream = _ref.stream,
16686          chunk = _ref.chunk,
16687          transfers = _ref.transfers,
16688          success = _ref.success,
16689          reason = _ref.reason;
16690
16691      _this3.postMessage({
16692        sourceName: sourceName,
16693        targetName: targetName,
16694        stream: stream,
16695        streamId: streamId,
16696        chunk: chunk,
16697        success: success,
16698        reason: reason
16699      }, transfers);
16700    };
16701
16702    var streamSink = {
16703      enqueue: function enqueue(chunk) {
16704        var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;
16705        var transfers = arguments.length > 2 ? arguments[2] : undefined;
16706
16707        if (this.isCancelled) {
16708          return;
16709        }
16710
16711        var lastDesiredSize = this.desiredSize;
16712        this.desiredSize -= size;
16713
16714        if (lastDesiredSize > 0 && this.desiredSize <= 0) {
16715          this.sinkCapability = (0, _util.createPromiseCapability)();
16716          this.ready = this.sinkCapability.promise;
16717        }
16718
16719        sendStreamRequest({
16720          stream: 'enqueue',
16721          chunk: chunk,
16722          transfers: transfers
16723        });
16724      },
16725      close: function close() {
16726        if (this.isCancelled) {
16727          return;
16728        }
16729
16730        this.isCancelled = true;
16731        sendStreamRequest({
16732          stream: 'close'
16733        });
16734        delete self.streamSinks[streamId];
16735      },
16736      error: function error(reason) {
16737        if (this.isCancelled) {
16738          return;
16739        }
16740
16741        this.isCancelled = true;
16742        sendStreamRequest({
16743          stream: 'error',
16744          reason: reason
16745        });
16746      },
16747      sinkCapability: capability,
16748      onPull: null,
16749      onCancel: null,
16750      isCancelled: false,
16751      desiredSize: desiredSize,
16752      ready: null
16753    };
16754    streamSink.sinkCapability.resolve();
16755    streamSink.ready = streamSink.sinkCapability.promise;
16756    this.streamSinks[streamId] = streamSink;
16757    resolveCall(action[0], [data.data, streamSink], action[1]).then(function () {
16758      sendStreamRequest({
16759        stream: 'start_complete',
16760        success: true
16761      });
16762    }, function (reason) {
16763      sendStreamRequest({
16764        stream: 'start_complete',
16765        success: false,
16766        reason: reason
16767      });
16768    });
16769  },
16770  _processStreamMessage: function _processStreamMessage(data) {
16771    var _this4 = this;
16772
16773    var sourceName = this.sourceName;
16774    var targetName = data.sourceName;
16775    var streamId = data.streamId;
16776
16777    var sendStreamResponse = function sendStreamResponse(_ref2) {
16778      var stream = _ref2.stream,
16779          success = _ref2.success,
16780          reason = _ref2.reason;
16781
16782      _this4.comObj.postMessage({
16783        sourceName: sourceName,
16784        targetName: targetName,
16785        stream: stream,
16786        success: success,
16787        streamId: streamId,
16788        reason: reason
16789      });
16790    };
16791
16792    var deleteStreamController = function deleteStreamController() {
16793      Promise.all([_this4.streamControllers[data.streamId].startCall, _this4.streamControllers[data.streamId].pullCall, _this4.streamControllers[data.streamId].cancelCall].map(function (capability) {
16794        return capability && finalize(capability.promise);
16795      })).then(function () {
16796        delete _this4.streamControllers[data.streamId];
16797      });
16798    };
16799
16800    switch (data.stream) {
16801      case 'start_complete':
16802        resolveOrReject(this.streamControllers[data.streamId].startCall, data.success, wrapReason(data.reason));
16803        break;
16804
16805      case 'pull_complete':
16806        resolveOrReject(this.streamControllers[data.streamId].pullCall, data.success, wrapReason(data.reason));
16807        break;
16808
16809      case 'pull':
16810        if (!this.streamSinks[data.streamId]) {
16811          sendStreamResponse({
16812            stream: 'pull_complete',
16813            success: true
16814          });
16815          break;
16816        }
16817
16818        if (this.streamSinks[data.streamId].desiredSize <= 0 && data.desiredSize > 0) {
16819          this.streamSinks[data.streamId].sinkCapability.resolve();
16820        }
16821
16822        this.streamSinks[data.streamId].desiredSize = data.desiredSize;
16823        resolveCall(this.streamSinks[data.streamId].onPull).then(function () {
16824          sendStreamResponse({
16825            stream: 'pull_complete',
16826            success: true
16827          });
16828        }, function (reason) {
16829          sendStreamResponse({
16830            stream: 'pull_complete',
16831            success: false,
16832            reason: reason
16833          });
16834        });
16835        break;
16836
16837      case 'enqueue':
16838        (0, _util.assert)(this.streamControllers[data.streamId], 'enqueue should have stream controller');
16839
16840        if (!this.streamControllers[data.streamId].isClosed) {
16841          this.streamControllers[data.streamId].controller.enqueue(data.chunk);
16842        }
16843
16844        break;
16845
16846      case 'close':
16847        (0, _util.assert)(this.streamControllers[data.streamId], 'close should have stream controller');
16848
16849        if (this.streamControllers[data.streamId].isClosed) {
16850          break;
16851        }
16852
16853        this.streamControllers[data.streamId].isClosed = true;
16854        this.streamControllers[data.streamId].controller.close();
16855        deleteStreamController();
16856        break;
16857
16858      case 'error':
16859        (0, _util.assert)(this.streamControllers[data.streamId], 'error should have stream controller');
16860        this.streamControllers[data.streamId].controller.error(wrapReason(data.reason));
16861        deleteStreamController();
16862        break;
16863
16864      case 'cancel_complete':
16865        resolveOrReject(this.streamControllers[data.streamId].cancelCall, data.success, wrapReason(data.reason));
16866        deleteStreamController();
16867        break;
16868
16869      case 'cancel':
16870        if (!this.streamSinks[data.streamId]) {
16871          break;
16872        }
16873
16874        resolveCall(this.streamSinks[data.streamId].onCancel, [wrapReason(data.reason)]).then(function () {
16875          sendStreamResponse({
16876            stream: 'cancel_complete',
16877            success: true
16878          });
16879        }, function (reason) {
16880          sendStreamResponse({
16881            stream: 'cancel_complete',
16882            success: false,
16883            reason: reason
16884          });
16885        });
16886        this.streamSinks[data.streamId].sinkCapability.reject(wrapReason(data.reason));
16887        this.streamSinks[data.streamId].isCancelled = true;
16888        delete this.streamSinks[data.streamId];
16889        break;
16890
16891      default:
16892        throw new Error('Unexpected stream case');
16893    }
16894  },
16895  postMessage: function postMessage(message, transfers) {
16896    if (transfers && this.postMessageTransfers) {
16897      this.comObj.postMessage(message, transfers);
16898    } else {
16899      this.comObj.postMessage(message);
16900    }
16901  },
16902  destroy: function destroy() {
16903    this.comObj.removeEventListener('message', this._onComObjOnMessage);
16904  }
16905};
16906
16907/***/ }),
16908/* 158 */
16909/***/ (function(module, exports, __w_pdfjs_require__) {
16910
16911"use strict";
16912
16913
16914Object.defineProperty(exports, "__esModule", {
16915  value: true
16916});
16917exports.Metadata = void 0;
16918
16919var _util = __w_pdfjs_require__(1);
16920
16921var _xml_parser = __w_pdfjs_require__(159);
16922
16923function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
16924
16925function _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); } }
16926
16927function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
16928
16929var Metadata =
16930/*#__PURE__*/
16931function () {
16932  function Metadata(data) {
16933    _classCallCheck(this, Metadata);
16934
16935    (0, _util.assert)(typeof data === 'string', 'Metadata: input is not a string');
16936    data = this._repair(data);
16937    var parser = new _xml_parser.SimpleXMLParser();
16938    var xmlDocument = parser.parseFromString(data);
16939    this._metadata = Object.create(null);
16940
16941    if (xmlDocument) {
16942      this._parse(xmlDocument);
16943    }
16944  }
16945
16946  _createClass(Metadata, [{
16947    key: "_repair",
16948    value: function _repair(data) {
16949      return data.replace(/^([^<]+)/, '').replace(/>\\376\\377([^<]+)/g, function (all, codes) {
16950        var bytes = codes.replace(/\\([0-3])([0-7])([0-7])/g, function (code, d1, d2, d3) {
16951          return String.fromCharCode(d1 * 64 + d2 * 8 + d3 * 1);
16952        }).replace(/&(amp|apos|gt|lt|quot);/g, function (str, name) {
16953          switch (name) {
16954            case 'amp':
16955              return '&';
16956
16957            case 'apos':
16958              return '\'';
16959
16960            case 'gt':
16961              return '>';
16962
16963            case 'lt':
16964              return '<';
16965
16966            case 'quot':
16967              return '\"';
16968          }
16969
16970          throw new Error("_repair: ".concat(name, " isn't defined."));
16971        });
16972        var chars = '';
16973
16974        for (var i = 0, ii = bytes.length; i < ii; i += 2) {
16975          var code = bytes.charCodeAt(i) * 256 + bytes.charCodeAt(i + 1);
16976
16977          if (code >= 32 && code < 127 && code !== 60 && code !== 62 && code !== 38) {
16978            chars += String.fromCharCode(code);
16979          } else {
16980            chars += '&#x' + (0x10000 + code).toString(16).substring(1) + ';';
16981          }
16982        }
16983
16984        return '>' + chars;
16985      });
16986    }
16987  }, {
16988    key: "_parse",
16989    value: function _parse(xmlDocument) {
16990      var rdf = xmlDocument.documentElement;
16991
16992      if (rdf.nodeName.toLowerCase() !== 'rdf:rdf') {
16993        rdf = rdf.firstChild;
16994
16995        while (rdf && rdf.nodeName.toLowerCase() !== 'rdf:rdf') {
16996          rdf = rdf.nextSibling;
16997        }
16998      }
16999
17000      var nodeName = rdf ? rdf.nodeName.toLowerCase() : null;
17001
17002      if (!rdf || nodeName !== 'rdf:rdf' || !rdf.hasChildNodes()) {
17003        return;
17004      }
17005
17006      var children = rdf.childNodes;
17007
17008      for (var i = 0, ii = children.length; i < ii; i++) {
17009        var desc = children[i];
17010
17011        if (desc.nodeName.toLowerCase() !== 'rdf:description') {
17012          continue;
17013        }
17014
17015        for (var j = 0, jj = desc.childNodes.length; j < jj; j++) {
17016          if (desc.childNodes[j].nodeName.toLowerCase() !== '#text') {
17017            var entry = desc.childNodes[j];
17018            var name = entry.nodeName.toLowerCase();
17019            this._metadata[name] = entry.textContent.trim();
17020          }
17021        }
17022      }
17023    }
17024  }, {
17025    key: "get",
17026    value: function get(name) {
17027      var data = this._metadata[name];
17028      return typeof data !== 'undefined' ? data : null;
17029    }
17030  }, {
17031    key: "getAll",
17032    value: function getAll() {
17033      return this._metadata;
17034    }
17035  }, {
17036    key: "has",
17037    value: function has(name) {
17038      return typeof this._metadata[name] !== 'undefined';
17039    }
17040  }]);
17041
17042  return Metadata;
17043}();
17044
17045exports.Metadata = Metadata;
17046
17047/***/ }),
17048/* 159 */
17049/***/ (function(module, exports, __w_pdfjs_require__) {
17050
17051"use strict";
17052
17053
17054Object.defineProperty(exports, "__esModule", {
17055  value: true
17056});
17057exports.SimpleXMLParser = void 0;
17058
17059function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
17060
17061function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
17062
17063function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
17064
17065function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
17066
17067function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
17068
17069function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
17070
17071function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
17072
17073function _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); }
17074
17075function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
17076
17077function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
17078
17079function _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); }
17080
17081function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
17082
17083function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17084
17085function _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); } }
17086
17087function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17088
17089var XMLParserErrorCode = {
17090  NoError: 0,
17091  EndOfDocument: -1,
17092  UnterminatedCdat: -2,
17093  UnterminatedXmlDeclaration: -3,
17094  UnterminatedDoctypeDeclaration: -4,
17095  UnterminatedComment: -5,
17096  MalformedElement: -6,
17097  OutOfMemory: -7,
17098  UnterminatedAttributeValue: -8,
17099  UnterminatedElement: -9,
17100  ElementNeverBegun: -10
17101};
17102
17103function isWhitespace(s, index) {
17104  var ch = s[index];
17105  return ch === ' ' || ch === '\n' || ch === '\r' || ch === '\t';
17106}
17107
17108function isWhitespaceString(s) {
17109  for (var i = 0, ii = s.length; i < ii; i++) {
17110    if (!isWhitespace(s, i)) {
17111      return false;
17112    }
17113  }
17114
17115  return true;
17116}
17117
17118var XMLParserBase =
17119/*#__PURE__*/
17120function () {
17121  function XMLParserBase() {
17122    _classCallCheck(this, XMLParserBase);
17123  }
17124
17125  _createClass(XMLParserBase, [{
17126    key: "_resolveEntities",
17127    value: function _resolveEntities(s) {
17128      var _this = this;
17129
17130      return s.replace(/&([^;]+);/g, function (all, entity) {
17131        if (entity.substring(0, 2) === '#x') {
17132          return String.fromCharCode(parseInt(entity.substring(2), 16));
17133        } else if (entity.substring(0, 1) === '#') {
17134          return String.fromCharCode(parseInt(entity.substring(1), 10));
17135        }
17136
17137        switch (entity) {
17138          case 'lt':
17139            return '<';
17140
17141          case 'gt':
17142            return '>';
17143
17144          case 'amp':
17145            return '&';
17146
17147          case 'quot':
17148            return '\"';
17149        }
17150
17151        return _this.onResolveEntity(entity);
17152      });
17153    }
17154  }, {
17155    key: "_parseContent",
17156    value: function _parseContent(s, start) {
17157      var pos = start,
17158          name,
17159          attributes = [];
17160
17161      function skipWs() {
17162        while (pos < s.length && isWhitespace(s, pos)) {
17163          ++pos;
17164        }
17165      }
17166
17167      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {
17168        ++pos;
17169      }
17170
17171      name = s.substring(start, pos);
17172      skipWs();
17173
17174      while (pos < s.length && s[pos] !== '>' && s[pos] !== '/' && s[pos] !== '?') {
17175        skipWs();
17176        var attrName = '',
17177            attrValue = '';
17178
17179        while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '=') {
17180          attrName += s[pos];
17181          ++pos;
17182        }
17183
17184        skipWs();
17185
17186        if (s[pos] !== '=') {
17187          return null;
17188        }
17189
17190        ++pos;
17191        skipWs();
17192        var attrEndChar = s[pos];
17193
17194        if (attrEndChar !== '\"' && attrEndChar !== '\'') {
17195          return null;
17196        }
17197
17198        var attrEndIndex = s.indexOf(attrEndChar, ++pos);
17199
17200        if (attrEndIndex < 0) {
17201          return null;
17202        }
17203
17204        attrValue = s.substring(pos, attrEndIndex);
17205        attributes.push({
17206          name: attrName,
17207          value: this._resolveEntities(attrValue)
17208        });
17209        pos = attrEndIndex + 1;
17210        skipWs();
17211      }
17212
17213      return {
17214        name: name,
17215        attributes: attributes,
17216        parsed: pos - start
17217      };
17218    }
17219  }, {
17220    key: "_parseProcessingInstruction",
17221    value: function _parseProcessingInstruction(s, start) {
17222      var pos = start,
17223          name,
17224          value;
17225
17226      function skipWs() {
17227        while (pos < s.length && isWhitespace(s, pos)) {
17228          ++pos;
17229        }
17230      }
17231
17232      while (pos < s.length && !isWhitespace(s, pos) && s[pos] !== '>' && s[pos] !== '/') {
17233        ++pos;
17234      }
17235
17236      name = s.substring(start, pos);
17237      skipWs();
17238      var attrStart = pos;
17239
17240      while (pos < s.length && (s[pos] !== '?' || s[pos + 1] !== '>')) {
17241        ++pos;
17242      }
17243
17244      value = s.substring(attrStart, pos);
17245      return {
17246        name: name,
17247        value: value,
17248        parsed: pos - start
17249      };
17250    }
17251  }, {
17252    key: "parseXml",
17253    value: function parseXml(s) {
17254      var i = 0;
17255
17256      while (i < s.length) {
17257        var ch = s[i];
17258        var j = i;
17259
17260        if (ch === '<') {
17261          ++j;
17262          var ch2 = s[j];
17263          var q = void 0;
17264
17265          switch (ch2) {
17266            case '/':
17267              ++j;
17268              q = s.indexOf('>', j);
17269
17270              if (q < 0) {
17271                this.onError(XMLParserErrorCode.UnterminatedElement);
17272                return;
17273              }
17274
17275              this.onEndElement(s.substring(j, q));
17276              j = q + 1;
17277              break;
17278
17279            case '?':
17280              ++j;
17281
17282              var pi = this._parseProcessingInstruction(s, j);
17283
17284              if (s.substring(j + pi.parsed, j + pi.parsed + 2) !== '?>') {
17285                this.onError(XMLParserErrorCode.UnterminatedXmlDeclaration);
17286                return;
17287              }
17288
17289              this.onPi(pi.name, pi.value);
17290              j += pi.parsed + 2;
17291              break;
17292
17293            case '!':
17294              if (s.substring(j + 1, j + 3) === '--') {
17295                q = s.indexOf('-->', j + 3);
17296
17297                if (q < 0) {
17298                  this.onError(XMLParserErrorCode.UnterminatedComment);
17299                  return;
17300                }
17301
17302                this.onComment(s.substring(j + 3, q));
17303                j = q + 3;
17304              } else if (s.substring(j + 1, j + 8) === '[CDATA[') {
17305                q = s.indexOf(']]>', j + 8);
17306
17307                if (q < 0) {
17308                  this.onError(XMLParserErrorCode.UnterminatedCdat);
17309                  return;
17310                }
17311
17312                this.onCdata(s.substring(j + 8, q));
17313                j = q + 3;
17314              } else if (s.substring(j + 1, j + 8) === 'DOCTYPE') {
17315                var q2 = s.indexOf('[', j + 8);
17316                var complexDoctype = false;
17317                q = s.indexOf('>', j + 8);
17318
17319                if (q < 0) {
17320                  this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
17321                  return;
17322                }
17323
17324                if (q2 > 0 && q > q2) {
17325                  q = s.indexOf(']>', j + 8);
17326
17327                  if (q < 0) {
17328                    this.onError(XMLParserErrorCode.UnterminatedDoctypeDeclaration);
17329                    return;
17330                  }
17331
17332                  complexDoctype = true;
17333                }
17334
17335                var doctypeContent = s.substring(j + 8, q + (complexDoctype ? 1 : 0));
17336                this.onDoctype(doctypeContent);
17337                j = q + (complexDoctype ? 2 : 1);
17338              } else {
17339                this.onError(XMLParserErrorCode.MalformedElement);
17340                return;
17341              }
17342
17343              break;
17344
17345            default:
17346              var content = this._parseContent(s, j);
17347
17348              if (content === null) {
17349                this.onError(XMLParserErrorCode.MalformedElement);
17350                return;
17351              }
17352
17353              var isClosed = false;
17354
17355              if (s.substring(j + content.parsed, j + content.parsed + 2) === '/>') {
17356                isClosed = true;
17357              } else if (s.substring(j + content.parsed, j + content.parsed + 1) !== '>') {
17358                this.onError(XMLParserErrorCode.UnterminatedElement);
17359                return;
17360              }
17361
17362              this.onBeginElement(content.name, content.attributes, isClosed);
17363              j += content.parsed + (isClosed ? 2 : 1);
17364              break;
17365          }
17366        } else {
17367          while (j < s.length && s[j] !== '<') {
17368            j++;
17369          }
17370
17371          var text = s.substring(i, j);
17372          this.onText(this._resolveEntities(text));
17373        }
17374
17375        i = j;
17376      }
17377    }
17378  }, {
17379    key: "onResolveEntity",
17380    value: function onResolveEntity(name) {
17381      return "&".concat(name, ";");
17382    }
17383  }, {
17384    key: "onPi",
17385    value: function onPi(name, value) {}
17386  }, {
17387    key: "onComment",
17388    value: function onComment(text) {}
17389  }, {
17390    key: "onCdata",
17391    value: function onCdata(text) {}
17392  }, {
17393    key: "onDoctype",
17394    value: function onDoctype(doctypeContent) {}
17395  }, {
17396    key: "onText",
17397    value: function onText(text) {}
17398  }, {
17399    key: "onBeginElement",
17400    value: function onBeginElement(name, attributes, isEmpty) {}
17401  }, {
17402    key: "onEndElement",
17403    value: function onEndElement(name) {}
17404  }, {
17405    key: "onError",
17406    value: function onError(code) {}
17407  }]);
17408
17409  return XMLParserBase;
17410}();
17411
17412var SimpleDOMNode =
17413/*#__PURE__*/
17414function () {
17415  function SimpleDOMNode(nodeName, nodeValue) {
17416    _classCallCheck(this, SimpleDOMNode);
17417
17418    this.nodeName = nodeName;
17419    this.nodeValue = nodeValue;
17420    Object.defineProperty(this, 'parentNode', {
17421      value: null,
17422      writable: true
17423    });
17424  }
17425
17426  _createClass(SimpleDOMNode, [{
17427    key: "hasChildNodes",
17428    value: function hasChildNodes() {
17429      return this.childNodes && this.childNodes.length > 0;
17430    }
17431  }, {
17432    key: "firstChild",
17433    get: function get() {
17434      return this.childNodes && this.childNodes[0];
17435    }
17436  }, {
17437    key: "nextSibling",
17438    get: function get() {
17439      var childNodes = this.parentNode.childNodes;
17440
17441      if (!childNodes) {
17442        return undefined;
17443      }
17444
17445      var index = childNodes.indexOf(this);
17446
17447      if (index === -1) {
17448        return undefined;
17449      }
17450
17451      return childNodes[index + 1];
17452    }
17453  }, {
17454    key: "textContent",
17455    get: function get() {
17456      if (!this.childNodes) {
17457        return this.nodeValue || '';
17458      }
17459
17460      return this.childNodes.map(function (child) {
17461        return child.textContent;
17462      }).join('');
17463    }
17464  }]);
17465
17466  return SimpleDOMNode;
17467}();
17468
17469var SimpleXMLParser =
17470/*#__PURE__*/
17471function (_XMLParserBase) {
17472  _inherits(SimpleXMLParser, _XMLParserBase);
17473
17474  function SimpleXMLParser() {
17475    var _this2;
17476
17477    _classCallCheck(this, SimpleXMLParser);
17478
17479    _this2 = _possibleConstructorReturn(this, _getPrototypeOf(SimpleXMLParser).call(this));
17480    _this2._currentFragment = null;
17481    _this2._stack = null;
17482    _this2._errorCode = XMLParserErrorCode.NoError;
17483    return _this2;
17484  }
17485
17486  _createClass(SimpleXMLParser, [{
17487    key: "parseFromString",
17488    value: function parseFromString(data) {
17489      this._currentFragment = [];
17490      this._stack = [];
17491      this._errorCode = XMLParserErrorCode.NoError;
17492      this.parseXml(data);
17493
17494      if (this._errorCode !== XMLParserErrorCode.NoError) {
17495        return undefined;
17496      }
17497
17498      var _this$_currentFragmen = _slicedToArray(this._currentFragment, 1),
17499          documentElement = _this$_currentFragmen[0];
17500
17501      if (!documentElement) {
17502        return undefined;
17503      }
17504
17505      return {
17506        documentElement: documentElement
17507      };
17508    }
17509  }, {
17510    key: "onResolveEntity",
17511    value: function onResolveEntity(name) {
17512      switch (name) {
17513        case 'apos':
17514          return '\'';
17515      }
17516
17517      return _get(_getPrototypeOf(SimpleXMLParser.prototype), "onResolveEntity", this).call(this, name);
17518    }
17519  }, {
17520    key: "onText",
17521    value: function onText(text) {
17522      if (isWhitespaceString(text)) {
17523        return;
17524      }
17525
17526      var node = new SimpleDOMNode('#text', text);
17527
17528      this._currentFragment.push(node);
17529    }
17530  }, {
17531    key: "onCdata",
17532    value: function onCdata(text) {
17533      var node = new SimpleDOMNode('#text', text);
17534
17535      this._currentFragment.push(node);
17536    }
17537  }, {
17538    key: "onBeginElement",
17539    value: function onBeginElement(name, attributes, isEmpty) {
17540      var node = new SimpleDOMNode(name);
17541      node.childNodes = [];
17542
17543      this._currentFragment.push(node);
17544
17545      if (isEmpty) {
17546        return;
17547      }
17548
17549      this._stack.push(this._currentFragment);
17550
17551      this._currentFragment = node.childNodes;
17552    }
17553  }, {
17554    key: "onEndElement",
17555    value: function onEndElement(name) {
17556      this._currentFragment = this._stack.pop() || [];
17557      var lastElement = this._currentFragment[this._currentFragment.length - 1];
17558
17559      if (!lastElement) {
17560        return;
17561      }
17562
17563      for (var i = 0, ii = lastElement.childNodes.length; i < ii; i++) {
17564        lastElement.childNodes[i].parentNode = lastElement;
17565      }
17566    }
17567  }, {
17568    key: "onError",
17569    value: function onError(code) {
17570      this._errorCode = code;
17571    }
17572  }]);
17573
17574  return SimpleXMLParser;
17575}(XMLParserBase);
17576
17577exports.SimpleXMLParser = SimpleXMLParser;
17578
17579/***/ }),
17580/* 160 */
17581/***/ (function(module, exports, __w_pdfjs_require__) {
17582
17583"use strict";
17584
17585
17586Object.defineProperty(exports, "__esModule", {
17587  value: true
17588});
17589exports.PDFDataTransportStream = void 0;
17590
17591var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
17592
17593var _util = __w_pdfjs_require__(1);
17594
17595function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17596
17597function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { tr
17597y { 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); } }
17598
17599function _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); }); }; }
17600
17601var PDFDataTransportStream = function PDFDataTransportStreamClosure() {
17602  function PDFDataTransportStream(params, pdfDataRangeTransport) {
17603    var _this = this;
17604
17605    (0, _util.assert)(pdfDataRangeTransport);
17606    this._queuedChunks = [];
17607    var initialData = params.initialData;
17608
17609    if (initialData && initialData.length > 0) {
17610      var buffer = new Uint8Array(initialData).buffer;
17611
17612      this._queuedChunks.push(buffer);
17613    }
17614
17615    this._pdfDataRangeTransport = pdfDataRangeTransport;
17616    this._isStreamingSupported = !params.disableStream;
17617    this._isRangeSupported = !params.disableRange;
17618    this._contentLength = params.length;
17619    this._fullRequestReader = null;
17620    this._rangeReaders = [];
17621
17622    this._pdfDataRangeTransport.addRangeListener(function (begin, chunk) {
17623      _this._onReceiveData({
17624        begin: begin,
17625        chunk: chunk
17626      });
17627    });
17628
17629    this._pdfDataRangeTransport.addProgressListener(function (loaded) {
17630      _this._onProgress({
17631        loaded: loaded
17632      });
17633    });
17634
17635    this._pdfDataRangeTransport.addProgressiveReadListener(function (chunk) {
17636      _this._onReceiveData({
17637        chunk: chunk
17638      });
17639    });
17640
17641    this._pdfDataRangeTransport.transportReady();
17642  }
17643
17644  PDFDataTransportStream.prototype = {
17645    _onReceiveData: function PDFDataTransportStream_onReceiveData(args) {
17646      var buffer = new Uint8Array(args.chunk).buffer;
17647
17648      if (args.begin === undefined) {
17649        if (this._fullRequestReader) {
17650          this._fullRequestReader._enqueue(buffer);
17651        } else {
17652          this._queuedChunks.push(buffer);
17653        }
17654      } else {
17655        var found = this._rangeReaders.some(function (rangeReader) {
17656          if (rangeReader._begin !== args.begin) {
17657            return false;
17658          }
17659
17660          rangeReader._enqueue(buffer);
17661
17662          return true;
17663        });
17664
17665        (0, _util.assert)(found);
17666      }
17667    },
17668    _onProgress: function PDFDataTransportStream_onDataProgress(evt) {
17669      if (this._rangeReaders.length > 0) {
17670        var firstReader = this._rangeReaders[0];
17671
17672        if (firstReader.onProgress) {
17673          firstReader.onProgress({
17674            loaded: evt.loaded
17675          });
17676        }
17677      }
17678    },
17679    _removeRangeReader: function PDFDataTransportStream_removeRangeReader(reader) {
17680      var i = this._rangeReaders.indexOf(reader);
17681
17682      if (i >= 0) {
17683        this._rangeReaders.splice(i, 1);
17684      }
17685    },
17686    getFullReader: function PDFDataTransportStream_getFullReader() {
17687      (0, _util.assert)(!this._fullRequestReader);
17688      var queuedChunks = this._queuedChunks;
17689      this._queuedChunks = null;
17690      return new PDFDataTransportStreamReader(this, queuedChunks);
17691    },
17692    getRangeReader: function PDFDataTransportStream_getRangeReader(begin, end) {
17693      var reader = new PDFDataTransportStreamRangeReader(this, begin, end);
17694
17695      this._pdfDataRangeTransport.requestDataRange(begin, end);
17696
17697      this._rangeReaders.push(reader);
17698
17699      return reader;
17700    },
17701    cancelAllRequests: function PDFDataTransportStream_cancelAllRequests(reason) {
17702      if (this._fullRequestReader) {
17703        this._fullRequestReader.cancel(reason);
17704      }
17705
17706      var readers = this._rangeReaders.slice(0);
17707
17708      readers.forEach(function (rangeReader) {
17709        rangeReader.cancel(reason);
17710      });
17711
17712      this._pdfDataRangeTransport.abort();
17713    }
17714  };
17715
17716  function PDFDataTransportStreamReader(stream, queuedChunks) {
17717    this._stream = stream;
17718    this._done = false;
17719    this._filename = null;
17720    this._queuedChunks = queuedChunks || [];
17721    this._requests = [];
17722    this._headersReady = Promise.resolve();
17723    stream._fullRequestReader = this;
17724    this.onProgress = null;
17725  }
17726
17727  PDFDataTransportStreamReader.prototype = {
17728    _enqueue: function PDFDataTransportStreamReader_enqueue(chunk) {
17729      if (this._done) {
17730        return;
17731      }
17732
17733      if (this._requests.length > 0) {
17734        var requestCapability = this._requests.shift();
17735
17736        requestCapability.resolve({
17737          value: chunk,
17738          done: false
17739        });
17740        return;
17741      }
17742
17743      this._queuedChunks.push(chunk);
17744    },
17745
17746    get headersReady() {
17747      return this._headersReady;
17748    },
17749
17750    get filename() {
17751      return this._filename;
17752    },
17753
17754    get isRangeSupported() {
17755      return this._stream._isRangeSupported;
17756    },
17757
17758    get isStreamingSupported() {
17759      return this._stream._isStreamingSupported;
17760    },
17761
17762    get contentLength() {
17763      return this._stream._contentLength;
17764    },
17765
17766    read: function () {
17767      var _read = _asyncToGenerator(
17768      /*#__PURE__*/
17769      _regenerator.default.mark(function _callee() {
17770        var chunk, requestCapability;
17771        return _regenerator.default.wrap(function _callee$(_context) {
17772          while (1) {
17773            switch (_context.prev = _context.next) {
17774              case 0:
17775                if (!(this._queuedChunks.length > 0)) {
17776                  _context.next = 3;
17777                  break;
17778                }
17779
17780                chunk = this._queuedChunks.shift();
17781                return _context.abrupt("return", {
17782                  value: chunk,
17783                  done: false
17784                });
17785
17786              case 3:
17787                if (!this._done) {
17788                  _context.next = 5;
17789                  break;
17790                }
17791
17792                return _context.abrupt("return", {
17793                  value: undefined,
17794                  done: true
17795                });
17796
17797              case 5:
17798                requestCapability = (0, _util.createPromiseCapability)();
17799
17800                this._requests.push(requestCapability);
17801
17802                return _context.abrupt("return", requestCapability.promise);
17803
17804              case 8:
17805              case "end":
17806                return _context.stop();
17807            }
17808          }
17809        }, _callee, this);
17810      }));
17811
17812      function read() {
17813        return _read.apply(this, arguments);
17814      }
17815
17816      return read;
17817    }(),
17818    cancel: function PDFDataTransportStreamReader_cancel(reason) {
17819      this._done = true;
17820
17821      this._requests.forEach(function (requestCapability) {
17822        requestCapability.resolve({
17823          value: undefined,
17824          done: true
17825        });
17826      });
17827
17828      this._requests = [];
17829    }
17830  };
17831
17832  function PDFDataTransportStreamRangeReader(stream, begin, end) {
17833    this._stream = stream;
17834    this._begin = begin;
17835    this._end = end;
17836    this._queuedChunk = null;
17837    this._requests = [];
17838    this._done = false;
17839    this.onProgress = null;
17840  }
17841
17842  PDFDataTransportStreamRangeReader.prototype = {
17843    _enqueue: function PDFDataTransportStreamRangeReader_enqueue(chunk) {
17844      if (this._done) {
17845        return;
17846      }
17847
17848      if (this._requests.length === 0) {
17849        this._queuedChunk = chunk;
17850      } else {
17851        var requestsCapability = this._requests.shift();
17852
17853        requestsCapability.resolve({
17854          value: chunk,
17855          done: false
17856        });
17857
17858        this._requests.forEach(function (requestCapability) {
17859          requestCapability.resolve({
17860            value: undefined,
17861            done: true
17862          });
17863        });
17864
17865        this._requests = [];
17866      }
17867
17868      this._done = true;
17869
17870      this._stream._removeRangeReader(this);
17871    },
17872
17873    get isStreamingSupported() {
17874      return false;
17875    },
17876
17877    read: function () {
17878      var _read2 = _asyncToGenerator(
17879      /*#__PURE__*/
17880      _regenerator.default.mark(function _callee2() {
17881        var chunk, requestCapability;
17882        return _regenerator.default.wrap(function _callee2$(_context2) {
17883          while (1) {
17884            switch (_context2.prev = _context2.next) {
17885              case 0:
17886                if (!this._queuedChunk) {
17887                  _context2.next = 4;
17888                  break;
17889                }
17890
17891                chunk = this._queuedChunk;
17892                this._queuedChunk = null;
17893                return _context2.abrupt("return", {
17894                  value: chunk,
17895                  done: false
17896                });
17897
17898              case 4:
17899                if (!this._done) {
17900                  _context2.next = 6;
17901                  break;
17902                }
17903
17904                return _context2.abrupt("return", {
17905                  value: undefined,
17906                  done: true
17907                });
17908
17909              case 6:
17910                requestCapability = (0, _util.createPromiseCapability)();
17911
17912                this._requests.push(requestCapability);
17913
17914                return _context2.abrupt("return", requestCapability.promise);
17915
17916              case 9:
17917              case "end":
17918                return _context2.stop();
17919            }
17920          }
17921        }, _callee2, this);
17922      }));
17923
17924      function read() {
17925        return _read2.apply(this, arguments);
17926      }
17927
17928      return read;
17929    }(),
17930    cancel: function PDFDataTransportStreamRangeReader_cancel(reason) {
17931      this._done = true;
17932
17933      this._requests.forEach(function (requestCapability) {
17934        requestCapability.resolve({
17935          value: undefined,
17936          done: true
17937        });
17938      });
17939
17940      this._requests = [];
17941
17942      this._stream._removeRangeReader(this);
17943    }
17944  };
17945  return PDFDataTransportStream;
17946}();
17947
17948exports.PDFDataTransportStream = PDFDataTransportStream;
17949
17950/***/ }),
17951/* 161 */
17952/***/ (function(module, exports, __w_pdfjs_require__) {
17953
17954"use strict";
17955
17956
17957Object.defineProperty(exports, "__esModule", {
17958  value: true
17959});
17960exports.WebGLContext = void 0;
17961
17962var _util = __w_pdfjs_require__(1);
17963
17964function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
17965
17966function _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); } }
17967
17968function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
17969
17970var WebGLContext =
17971/*#__PURE__*/
17972function () {
17973  function WebGLContext(_ref) {
17974    var _ref$enable = _ref.enable,
17975        enable = _ref$enable === void 0 ? false : _ref$enable;
17976
17977    _classCallCheck(this, WebGLContext);
17978
17979    this._enabled = enable === true;
17980  }
17981
17982  _createClass(WebGLContext, [{
17983    key: "composeSMask",
17984    value: function composeSMask(_ref2) {
17985      var layer = _ref2.layer,
17986          mask = _ref2.mask,
17987          properties = _ref2.properties;
17988      return WebGLUtils.composeSMask(layer, mask, properties);
17989    }
17990  }, {
17991    key: "drawFigures",
17992    value: function drawFigures(_ref3) {
17993      var width = _ref3.width,
17994          height = _ref3.height,
17995          backgroundColor = _ref3.backgroundColor,
17996          figures = _ref3.figures,
17997          context = _ref3.context;
17998      return WebGLUtils.drawFigures(width, height, backgroundColor, figures, context);
17999    }
18000  }, {
18001    key: "clear",
18002    value: function clear() {
18003      WebGLUtils.cleanup();
18004    }
18005  }, {
18006    key: "isEnabled",
18007    get: function get() {
18008      var enabled = this._enabled;
18009
18010      if (enabled) {
18011        enabled = WebGLUtils.tryInitGL();
18012      }
18013
18014      return (0, _util.shadow)(this, 'isEnabled', enabled);
18015    }
18016  }]);
18017
18018  return WebGLContext;
18019}();
18020
18021exports.WebGLContext = WebGLContext;
18022
18023var WebGLUtils = function WebGLUtilsClosure() {
18024  function loadShader(gl, code, shaderType) {
18025    var shader = gl.createShader(shaderType);
18026    gl.shaderSource(shader, code);
18027    gl.compileShader(shader);
18028    var compiled = gl.getShaderParameter(shader, gl.COMPILE_STATUS);
18029
18030    if (!compiled) {
18031      var errorMsg = gl.getShaderInfoLog(shader);
18032      throw new Error('Error during shader compilation: ' + errorMsg);
18033    }
18034
18035    return shader;
18036  }
18037
18038  function createVertexShader(gl, code) {
18039    return loadShader(gl, code, gl.VERTEX_SHADER);
18040  }
18041
18042  function createFragmentShader(gl, code) {
18043    return loadShader(gl, code, gl.FRAGMENT_SHADER);
18044  }
18045
18046  function createProgram(gl, shaders) {
18047    var program = gl.createProgram();
18048
18049    for (var i = 0, ii = shaders.length; i < ii; ++i) {
18050      gl.attachShader(program, shaders[i]);
18051    }
18052
18053    gl.linkProgram(program);
18054    var linked = gl.getProgramParameter(program, gl.LINK_STATUS);
18055
18056    if (!linked) {
18057      var errorMsg = gl.getProgramInfoLog(program);
18058      throw new Error('Error during program linking: ' + errorMsg);
18059    }
18060
18061    return program;
18062  }
18063
18064  function createTexture(gl, image, textureId) {
18065    gl.activeTexture(textureId);
18066    var texture = gl.createTexture();
18067    gl.bindTexture(gl.TEXTURE_2D, texture);
18068    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);
18069    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);
18070    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);
18071    gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);
18072    gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);
18073    return texture;
18074  }
18075
18076  var currentGL, currentCanvas;
18077
18078  function generateGL() {
18079    if (currentGL) {
18080      return;
18081    }
18082
18083    currentCanvas = document.createElement('canvas');
18084    currentGL = currentCanvas.getContext('webgl', {
18085      premultipliedalpha: false
18086    });
18087  }
18088
18089  var smaskVertexShaderCode = '\
18090  attribute vec2 a_position;                                    \
18091  attribute vec2 a_texCoord;                                    \
18092                                                                \
18093  uniform vec2 u_resolution;                                    \
18094                                                                \
18095  varying vec2 v_texCoord;                                      \
18096                                                                \
18097  void main() {                                                 \
18098    vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0;   \
18099    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \
18100                                                                \
18101    v_texCoord = a_texCoord;                                    \
18102  }                                                             ';
18103  var smaskFragmentShaderCode = '\
18104  precision mediump float;                                      \
18105                                                                \
18106  uniform vec4 u_backdrop;                                      \
18107  uniform int u_subtype;                                        \
18108  uniform sampler2D u_image;                                    \
18109  uniform sampler2D u_mask;                                     \
18110                                                                \
18111  varying vec2 v_texCoord;                                      \
18112                                                                \
18113  void main() {                                                 \
18114    vec4 imageColor = texture2D(u_image, v_texCoord);           \
18115    vec4 maskColor = texture2D(u_mask, v_texCoord);             \
18116    if (u_backdrop.a > 0.0) {                                   \
18117      maskColor.rgb = maskColor.rgb * maskColor.a +             \
18118                      u_backdrop.rgb * (1.0 - maskColor.a);     \
18119    }                                                           \
18120    float lum;                                                  \
18121    if (u_subtype == 0) {                                       \
18122      lum = maskColor.a;                                        \
18123    } else {                                                    \
18124      lum = maskColor.r * 0.3 + maskColor.g * 0.59 +            \
18125            maskColor.b * 0.11;                                 \
18126    }                                                           \
18127    imageColor.a *= lum;                                        \
18128    imageColor.rgb *= imageColor.a;                             \
18129    gl_FragColor = imageColor;                                  \
18130  }                                                             ';
18131  var smaskCache = null;
18132
18133  function initSmaskGL() {
18134    var canvas, gl;
18135    generateGL();
18136    canvas = currentCanvas;
18137    currentCanvas = null;
18138    gl = currentGL;
18139    currentGL = null;
18140    var vertexShader = createVertexShader(gl, smaskVertexShaderCode);
18141    var fragmentShader = createFragmentShader(gl, smaskFragmentShaderCode);
18142    var program = createProgram(gl, [vertexShader, fragmentShader]);
18143    gl.useProgram(program);
18144    var cache = {};
18145    cache.gl = gl;
18146    cache.canvas = canvas;
18147    cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
18148    cache.positionLocation = gl.getAttribLocation(program, 'a_position');
18149    cache.backdropLocation = gl.getUniformLocation(program, 'u_backdrop');
18150    cache.subtypeLocation = gl.getUniformLocation(program, 'u_subtype');
18151    var texCoordLocation = gl.getAttribLocation(program, 'a_texCoord');
18152    var texLayerLocation = gl.getUniformLocation(program, 'u_image');
18153    var texMaskLocation = gl.getUniformLocation(program, 'u_mask');
18154    var texCoordBuffer = gl.createBuffer();
18155    gl.bindBuffer(gl.ARRAY_BUFFER, texCoordBuffer);
18156    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);
18157    gl.enableVertexAttribArray(texCoordLocation);
18158    gl.vertexAttribPointer(texCoordLocation, 2, gl.FLOAT, false, 0, 0);
18159    gl.uniform1i(texLayerLocation, 0);
18160    gl.uniform1i(texMaskLocation, 1);
18161    smaskCache = cache;
18162  }
18163
18164  function composeSMask(layer, mask, properties) {
18165    var width = layer.width,
18166        height = layer.height;
18167
18168    if (!smaskCache) {
18169      initSmaskGL();
18170    }
18171
18172    var cache = smaskCache,
18173        canvas = cache.canvas,
18174        gl = cache.gl;
18175    canvas.width = width;
18176    canvas.height = height;
18177    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
18178    gl.uniform2f(cache.resolutionLocation, width, height);
18179
18180    if (properties.backdrop) {
18181      gl.uniform4f(cache.resolutionLocation, properties.backdrop[0], properties.backdrop[1], properties.backdrop[2], 1);
18182    } else {
18183      gl.uniform4f(cache.resolutionLocation, 0, 0, 0, 0);
18184    }
18185
18186    gl.uniform1i(cache.subtypeLocation, properties.subtype === 'Luminosity' ? 1 : 0);
18187    var texture = createTexture(gl, layer, gl.TEXTURE0);
18188    var maskTexture = createTexture(gl, mask, gl.TEXTURE1);
18189    var buffer = gl.createBuffer();
18190    gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
18191    gl.bufferData(gl.ARRAY_BUFFER, new Float32Array([0, 0, width, 0, 0, height, 0, height, width, 0, width, height]), gl.STATIC_DRAW);
18192    gl.enableVertexAttribArray(cache.positionLocation);
18193    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
18194    gl.clearColor(0, 0, 0, 0);
18195    gl.enable(gl.BLEND);
18196    gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
18197    gl.clear(gl.COLOR_BUFFER_BIT);
18198    gl.drawArrays(gl.TRIANGLES, 0, 6);
18199    gl.flush();
18200    gl.deleteTexture(texture);
18201    gl.deleteTexture(maskTexture);
18202    gl.deleteBuffer(buffer);
18203    return canvas;
18204  }
18205
18206  var figuresVertexShaderCode = '\
18207  attribute vec2 a_position;                                    \
18208  attribute vec3 a_color;                                       \
18209                                                                \
18210  uniform vec2 u_resolution;                                    \
18211  uniform vec2 u_scale;                                         \
18212  uniform vec2 u_offset;                                        \
18213                                                                \
18214  varying vec4 v_color;                                         \
18215                                                                \
18216  void main() {                                                 \
18217    vec2 position = (a_position + u_offset) * u_scale;          \
18218    vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0;     \
18219    gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1);          \
18220                                                                \
18221    v_color = vec4(a_color / 255.0, 1.0);                       \
18222  }                                                             ';
18223  var figuresFragmentShaderCode = '\
18224  precision mediump float;                                      \
18225                                                                \
18226  varying vec4 v_color;                                         \
18227                                                                \
18228  void main() {                                                 \
18229    gl_FragColor = v_color;                                     \
18230  }                                                             ';
18231  var figuresCache = null;
18232
18233  function initFiguresGL() {
18234    var canvas, gl;
18235    generateGL();
18236    canvas = currentCanvas;
18237    currentCanvas = null;
18238    gl = currentGL;
18239    currentGL = null;
18240    var vertexShader = createVertexShader(gl, figuresVertexShaderCode);
18241    var fragmentShader = createFragmentShader(gl, figuresFragmentShaderCode);
18242    var program = createProgram(gl, [vertexShader, fragmentShader]);
18243    gl.useProgram(program);
18244    var cache = {};
18245    cache.gl = gl;
18246    cache.canvas = canvas;
18247    cache.resolutionLocation = gl.getUniformLocation(program, 'u_resolution');
18248    cache.scaleLocation = gl.getUniformLocation(program, 'u_scale');
18249    cache.offsetLocation = gl.getUniformLocation(program, 'u_offset');
18250    cache.positionLocation = gl.getAttribLocation(program, 'a_position');
18251    cache.colorLocation = gl.getAttribLocation(program, 'a_color');
18252    figuresCache = cache;
18253  }
18254
18255  function drawFigures(width, height, backgroundColor, figures, context) {
18256    if (!figuresCache) {
18257      initFiguresGL();
18258    }
18259
18260    var cache = figuresCache,
18261        canvas = cache.canvas,
18262        gl = cache.gl;
18263    canvas.width = width;
18264    canvas.height = height;
18265    gl.viewport(0, 0, gl.drawingBufferWidth, gl.drawingBufferHeight);
18266    gl.uniform2f(cache.resolutionLocation, width, height);
18267    var count = 0;
18268    var i, ii, rows;
18269
18270    for (i = 0, ii = figures.length; i < ii; i++) {
18271      switch (figures[i].type) {
18272        case 'lattice':
18273          rows = figures[i].coords.length / figures[i].verticesPerRow | 0;
18274          count += (rows - 1) * (figures[i].verticesPerRow - 1) * 6;
18275          break;
18276
18277        case 'triangles':
18278          count += figures[i].coords.length;
18279          break;
18280      }
18281    }
18282
18283    var coords = new Float32Array(count * 2);
18284    var colors = new Uint8Array(count * 3);
18285    var coordsMap = context.coords,
18286        colorsMap = context.colors;
18287    var pIndex = 0,
18288        cIndex = 0;
18289
18290    for (i = 0, ii = figures.length; i < ii; i++) {
18291      var figure = figures[i],
18292          ps = figure.coords,
18293          cs = figure.colors;
18294
18295      switch (figure.type) {
18296        case 'lattice':
18297          var cols = figure.verticesPerRow;
18298          rows = ps.length / cols | 0;
18299
18300          for (var row = 1; row < rows; row++) {
18301            var offset = row * cols + 1;
18302
18303            for (var col = 1; col < cols; col++, offset++) {
18304              coords[pIndex] = coordsMap[ps[offset - cols - 1]];
vendor: 4,444 bytes, lines 18305-18424
18305              coords[pIndex + 1] = coordsMap[ps[offset - cols - 1] + 1];
18306              coords[pIndex + 2] = coordsMap[ps[offset - cols]];
18307              coords[pIndex + 3] = coordsMap[ps[offset - cols] + 1];
18308              coords[pIndex + 4] = coordsMap[ps[offset - 1]];
18309              coords[pIndex + 5] = coordsMap[ps[offset - 1] + 1];
18310              colors[cIndex] = colorsMap[cs[offset - cols - 1]];
18311              colors[cIndex + 1] = colorsMap[cs[offset - cols - 1] + 1];
18312              colors[cIndex + 2] = colorsMap[cs[offset - cols - 1] + 2];
18313              colors[cIndex + 3] = colorsMap[cs[offset - cols]];
18314              colors[cIndex + 4] = colorsMap[cs[offset - cols] + 1];
18315              colors[cIndex + 5] = colorsMap[cs[offset - cols] + 2];
18316              colors[cIndex + 6] = colorsMap[cs[offset - 1]];
18317              colors[cIndex + 7] = colorsMap[cs[offset - 1] + 1];
18318              colors[cIndex + 8] = colorsMap[cs[offset - 1] + 2];
18319              coords[pIndex + 6] = coords[pIndex + 2];
18320              coords[pIndex + 7] = coords[pIndex + 3];
18321              coords[pIndex + 8] = coords[pIndex + 4];
18322              coords[pIndex + 9] = coords[pIndex + 5];
18323              coords[pIndex + 10] = coordsMap[ps[offset]];
18324              coords[pIndex + 11] = coordsMap[ps[offset] + 1];
18325              colors[cIndex + 9] = colors[cIndex + 3];
18326              colors[cIndex + 10] = colors[cIndex + 4];
18327              colors[cIndex + 11] = colors[cIndex + 5];
18328              colors[cIndex + 12] = colors[cIndex + 6];
18329              colors[cIndex + 13] = colors[cIndex + 7];
18330              colors[cIndex + 14] = colors[cIndex + 8];
18331              colors[cIndex + 15] = colorsMap[cs[offset]];
18332              colors[cIndex + 16] = colorsMap[cs[offset] + 1];
18333              colors[cIndex + 17] = colorsMap[cs[offset] + 2];
18334              pIndex += 12;
18335              cIndex += 18;
18336            }
18337          }
18338
18339          break;
18340
18341        case 'triangles':
18342          for (var j = 0, jj = ps.length; j < jj; j++) {
18343            coords[pIndex] = coordsMap[ps[j]];
18344            coords[pIndex + 1] = coordsMap[ps[j] + 1];
18345            colors[cIndex] = colorsMap[cs[j]];
18346            colors[cIndex + 1] = colorsMap[cs[j] + 1];
18347            colors[cIndex + 2] = colorsMap[cs[j] + 2];
18348            pIndex += 2;
18349            cIndex += 3;
18350          }
18351
18352          break;
18353      }
18354    }
18355
18356    if (backgroundColor) {
18357      gl.clearColor(backgroundColor[0] / 255, backgroundColor[1] / 255, backgroundColor[2] / 255, 1.0);
18358    } else {
18359      gl.clearColor(0, 0, 0, 0);
18360    }
18361
18362    gl.clear(gl.COLOR_BUFFER_BIT);
18363    var coordsBuffer = gl.createBuffer();
18364    gl.bindBuffer(gl.ARRAY_BUFFER, coordsBuffer);
18365    gl.bufferData(gl.ARRAY_BUFFER, coords, gl.STATIC_DRAW);
18366    gl.enableVertexAttribArray(cache.positionLocation);
18367    gl.vertexAttribPointer(cache.positionLocation, 2, gl.FLOAT, false, 0, 0);
18368    var colorsBuffer = gl.createBuffer();
18369    gl.bindBuffer(gl.ARRAY_BUFFER, colorsBuffer);
18370    gl.bufferData(gl.ARRAY_BUFFER, colors, gl.STATIC_DRAW);
18371    gl.enableVertexAttribArray(cache.colorLocation);
18372    gl.vertexAttribPointer(cache.colorLocation, 3, gl.UNSIGNED_BYTE, false, 0, 0);
18373    gl.uniform2f(cache.scaleLocation, context.scaleX, context.scaleY);
18374    gl.uniform2f(cache.offsetLocation, context.offsetX, context.offsetY);
18375    gl.drawArrays(gl.TRIANGLES, 0, count);
18376    gl.flush();
18377    gl.deleteBuffer(coordsBuffer);
18378    gl.deleteBuffer(colorsBuffer);
18379    return canvas;
18380  }
18381
18382  return {
18383    tryInitGL: function tryInitGL() {
18384      try {
18385        generateGL();
18386        return !!currentGL;
18387      } catch (ex) {}
18388
18389      return false;
18390    },
18391    composeSMask: composeSMask,
18392    drawFigures: drawFigures,
18393    cleanup: function cleanup() {
18394      if (smaskCache && smaskCache.canvas) {
18395        smaskCache.canvas.width = 0;
18396        smaskCache.canvas.height = 0;
18397      }
18398
18399      if (figuresCache && figuresCache.canvas) {
18400        figuresCache.canvas.width = 0;
18401        figuresCache.canvas.height = 0;
18402      }
18403
18404      smaskCache = null;
18405      figuresCache = null;
18406    }
18407  };
18408}();
18409
18410/***/ }),
18411/* 162 */
18412/***/ (function(module, exports, __w_pdfjs_require__) {
18413
18414"use strict";
18415
18416
18417Object.defineProperty(exports, "__esModule", {
18418  value: true
18419});
18420exports.renderTextLayer = void 0;
18421
18422var _util = __w_pdfjs_require__(1);
18423
18424var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
18425
18426function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
18427
18428var renderTextLayer = function renderTextLayerClosure() {
18429  var MAX_TEXT_DIVS_TO_RENDER = 100000;
18430  var NonWhitespaceRegexp = /\S/;
18431
18432  function isAllWhitespace(str) {
18433    return !NonWhitespaceRegexp.test(str);
18434  }
18435
18436  var styleBuf = ['left: ', 0, 'px; top: ', 0, 'px; font-size: ', 0, 'px; font-family: ', '', ';'];
18437
18438  function appendText(task, geom, styles) {
18439    var textDiv = document.createElement('span');
18440    var textDivProperties = {
18441      style: null,
18442      angle: 0,
18443      canvasWidth: 0,
18444      isWhitespace: false,
18445      originalTransform: null,
18446      paddingBottom: 0,
18447      paddingLeft: 0,
18448      paddingRight: 0,
18449      paddingTop: 0,
18450      scale: 1
18451    };
18452
18453    task._textDivs.push(textDiv);
18454
18455    if (isAllWhitespace(geom.str)) {
18456      textDivProperties.isWhitespace = true;
18457
18458      task._textDivProperties.set(textDiv, textDivProperties);
18459
18460      return;
18461    }
18462
18463    var tx = _util.Util.transform(task._viewport.transform, geom.transform);
18464
18465    var angle = Math.atan2(tx[1], tx[0]);
18466    var style = styles[geom.fontName];
18467
18468    if (style.vertical) {
18469      angle += Math.PI / 2;
18470    }
18471
18472    var fontHeight = Math.sqrt(tx[2] * tx[2] + tx[3] * tx[3]);
18473    var fontAscent = fontHeight;
18474
18475    if (style.ascent) {
18476      fontAscent = style.ascent * fontAscent;
18477    } else if (style.descent) {
18478      fontAscent = (1 + style.descent) * fontAscent;
18479    }
18480
18481    var left;
18482    var top;
18483
18484    if (angle === 0) {
18485      left = tx[4];
18486      top = tx[5] - fontAscent;
18487    } else {
18488      left = tx[4] + fontAscent * Math.sin(angle);
18489      top = tx[5] - fontAscent * Math.cos(angle);
18490    }
18491
18492    styleBuf[1] = left;
18493    styleBuf[3] = top;
18494    styleBuf[5] = fontHeight;
18495    styleBuf[7] = style.fontFamily;
18496    textDivProperties.style = styleBuf.join('');
18497    textDiv.setAttribute('style', textDivProperties.style);
18498    textDiv.textContent = geom.str;
18499
18500    if (task._fontInspectorEnabled) {
18501      textDiv.dataset.fontName = geom.fontName;
18502    }
18503
18504    if (angle !== 0) {
18505      textDivProperties.angle = angle * (180 / Math.PI);
18506    }
18507
18508    if (geom.str.length > 1) {
18509      if (style.vertical) {
18510        textDivProperties.canvasWidth = geom.height * task._viewport.scale;
18511      } else {
18512        textDivProperties.canvasWidth = geom.width * task._viewport.scale;
18513      }
18514    }
18515
18516    task._textDivProperties.set(textDiv, textDivProperties);
18517
18518    if (task._textContentStream) {
18519      task._layoutText(textDiv);
18520    }
18521
18522    if (task._enhanceTextSelection) {
18523      var angleCos = 1,
18524          angleSin = 0;
18525
18526      if (angle !== 0) {
18527        angleCos = Math.cos(angle);
18528        angleSin = Math.sin(angle);
18529      }
18530
18531      var divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;
18532      var divHeight = fontHeight;
18533      var m, b;
18534
18535      if (angle !== 0) {
18536        m = [angleCos, angleSin, -angleSin, angleCos, left, top];
18537        b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);
18538      } else {
18539        b = [left, top, left + divWidth, top + divHeight];
18540      }
18541
18542      task._bounds.push({
18543        left: b[0],
18544        top: b[1],
18545        right: b[2],
18546        bottom: b[3],
18547        div: textDiv,
18548        size: [divWidth, divHeight],
18549        m: m
18550      });
18551    }
18552  }
18553
18554  function render(task) {
18555    if (task._canceled) {
18556      return;
18557    }
18558
18559    var textDivs = task._textDivs;
18560    var capability = task._capability;
18561    var textDivsLength = textDivs.length;
18562
18563    if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {
18564      task._renderingDone = true;
18565      capability.resolve();
18566      return;
18567    }
18568
18569    if (!task._textContentStream) {
18570      for (var i = 0; i < textDivsLength; i++) {
18571        task._layoutText(textDivs[i]);
18572      }
18573    }
18574
18575    task._renderingDone = true;
18576    capability.resolve();
18577  }
18578
18579  function expand(task) {
18580    var bounds = task._bounds;
18581    var viewport = task._viewport;
18582    var expanded = expandBounds(viewport.width, viewport.height, bounds);
18583
18584    for (var i = 0; i < expanded.length; i++) {
18585      var div = bounds[i].div;
18586
18587      var divProperties = task._textDivProperties.get(div);
18588
18589      if (divProperties.angle === 0) {
18590        divProperties.paddingLeft = bounds[i].left - expanded[i].left;
18591        divProperties.paddingTop = bounds[i].top - expanded[i].top;
18592        divProperties.paddingRight = expanded[i].right - bounds[i].right;
18593        divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;
18594
18595        task._textDivProperties.set(div, divProperties);
18596
18597        continue;
18598      }
18599
18600      var e = expanded[i],
18601          b = bounds[i];
18602      var m = b.m,
18603          c = m[0],
18604          s = m[1];
18605      var points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];
18606      var ts = new Float64Array(64);
18607      points.forEach(function (p, i) {
18608        var t = _util.Util.applyTransform(p, m);
18609
18610        ts[i + 0] = c && (e.left - t[0]) / c;
18611        ts[i + 4] = s && (e.top - t[1]) / s;
18612        ts[i + 8] = c && (e.right - t[0]) / c;
18613        ts[i + 12] = s && (e.bottom - t[1]) / s;
18614        ts[i + 16] = s && (e.left - t[0]) / -s;
18615        ts[i + 20] = c && (e.top - t[1]) / c;
18616        ts[i + 24] = s && (e.right - t[0]) / -s;
18617        ts[i + 28] = c && (e.bottom - t[1]) / c;
18618        ts[i + 32] = c && (e.left - t[0]) / -c;
18619        ts[i + 36] = s && (e.top - t[1]) / -s;
18620        ts[i + 40] = c && (e.right - t[0]) / -c;
18621        ts[i + 44] = s && (e.bottom - t[1]) / -s;
18622        ts[i + 48] = s && (e.left - t[0]) / s;
18623        ts[i + 52] = c && (e.top - t[1]) / -c;
18624        ts[i + 56] = s && (e.right - t[0]) / s;
18625        ts[i + 60] = c && (e.bottom - t[1]) / -c;
18626      });
18627
18628      var findPositiveMin = function findPositiveMin(ts, offset, count) {
18629        var result = 0;
18630
18631        for (var i = 0; i < count; i++) {
18632          var t = ts[offset++];
18633
18634          if (t > 0) {
18635            result = result ? Math.min(t, result) : t;
18636          }
18637        }
18638
18639        return result;
18640      };
18641
18642      var boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));
18643      divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;
18644      divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;
18645      divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;
18646      divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;
18647
18648      task._textDivProperties.set(div, divProperties);
18649    }
18650  }
18651
18652  function expandBounds(width, height, boxes) {
18653    var bounds = boxes.map(function (box, i) {
18654      return {
18655        x1: box.left,
18656        y1: box.top,
18657        x2: box.right,
18658        y2: box.bottom,
18659        index: i,
18660        x1New: undefined,
18661        x2New: undefined
18662      };
18663    });
18664    expandBoundsLTR(width, bounds);
18665    var expanded = new Array(boxes.length);
18666    bounds.forEach(function (b) {
18667      var i = b.index;
18668      expanded[i] = {
18669        left: b.x1New,
18670        top: 0,
18671        right: b.x2New,
18672        bottom: 0
18673      };
18674    });
18675    boxes.map(function (box, i) {
18676      var e = expanded[i],
18677          b = bounds[i];
18678      b.x1 = box.top;
18679      b.y1 = width - e.right;
18680      b.x2 = box.bottom;
18681      b.y2 = width - e.left;
18682      b.index = i;
18683      b.x1New = undefined;
18684      b.x2New = undefined;
18685    });
18686    expandBoundsLTR(height, bounds);
18687    bounds.forEach(function (b) {
18688      var i = b.index;
18689      expanded[i].top = b.x1New;
18690      expanded[i].bottom = b.x2New;
18691    });
18692    return expanded;
18693  }
18694
18695  function expandBoundsLTR(width, bounds) {
18696    bounds.sort(function (a, b) {
18697      return a.x1 - b.x1 || a.index - b.index;
18698    });
18699    var fakeBoundary = {
18700      x1: -Infinity,
18701      y1: -Infinity,
18702      x2: 0,
18703      y2: Infinity,
18704      index: -1,
18705      x1New: 0,
18706      x2New: 0
18707    };
18708    var horizon = [{
18709      start: -Infinity,
18710      end: Infinity,
18711      boundary: fakeBoundary
18712    }];
18713    bounds.forEach(function (boundary) {
18714      var i = 0;
18715
18716      while (i < horizon.length && horizon[i].end <= boundary.y1) {
18717        i++;
18718      }
18719
18720      var j = horizon.length - 1;
18721
18722      while (j >= 0 && horizon[j].start >= boundary.y2) {
18723        j--;
18724      }
18725
18726      var horizonPart, affectedBoundary;
18727      var q,
18728          k,
18729          maxXNew = -Infinity;
18730
18731      for (q = i; q <= j; q++) {
18732        horizonPart = horizon[q];
18733        affectedBoundary = horizonPart.boundary;
18734        var xNew;
18735
18736        if (affectedBoundary.x2 > boundary.x1) {
18737          xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;
18738        } else if (affectedBoundary.x2New === undefined) {
18739          xNew = (affectedBoundary.x2 + boundary.x1) / 2;
18740        } else {
18741          xNew = affectedBoundary.x2New;
18742        }
18743
18744        if (xNew > maxXNew) {
18745          maxXNew = xNew;
18746        }
18747      }
18748
18749      boundary.x1New = maxXNew;
18750
18751      for (q = i; q <= j; q++) {
18752        horizonPart = horizon[q];
18753        affectedBoundary = horizonPart.boundary;
18754
18755        if (affectedBoundary.x2New === undefined) {
18756          if (affectedBoundary.x2 > boundary.x1) {
18757            if (affectedBoundary.index > boundary.index) {
18758              affectedBoundary.x2New = affectedBoundary.x2;
18759            }
18760          } else {
18761            affectedBoundary.x2New = maxXNew;
18762          }
18763        } else if (affectedBoundary.x2New > maxXNew) {
18764          affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);
18765        }
18766      }
18767
18768      var changedHorizon = [],
18769          lastBoundary = null;
18770
18771      for (q = i; q <= j; q++) {
18772        horizonPart = horizon[q];
18773        affectedBoundary = horizonPart.boundary;
18774        var useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;
18775
18776        if (lastBoundary === useBoundary) {
18777          changedHorizon[changedHorizon.length - 1].end = horizonPart.end;
18778        } else {
18779          changedHorizon.push({
18780            start: horizonPart.start,
18781            end: horizonPart.end,
18782            boundary: useBoundary
18783          });
18784          lastBoundary = useBoundary;
18785        }
18786      }
18787
18788      if (horizon[i].start < boundary.y1) {
18789        changedHorizon[0].start = boundary.y1;
18790        changedHorizon.unshift({
18791          start: horizon[i].start,
18792          end: boundary.y1,
18793          boundary: horizon[i].boundary
18794        });
18795      }
18796
18797      if (boundary.y2 < horizon[j].end) {
18798        changedHorizon[changedHorizon.length - 1].end = boundary.y2;
18799        changedHorizon.push({
18800          start: boundary.y2,
18801          end: horizon[j].end,
18802          boundary: horizon[j].boundary
18803        });
18804      }
18805
18806      for (q = i; q <= j; q++) {
18807        horizonPart = horizon[q];
18808        affectedBoundary = horizonPart.boundary;
18809
18810        if (affectedBoundary.x2New !== undefined) {
18811          continue;
18812        }
18813
18814        var used = false;
18815
18816        for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {
18817          used = horizon[k].boundary === affectedBoundary;
18818        }
18819
18820        for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {
18821          used = horizon[k].boundary === affectedBoundary;
18822        }
18823
18824        for (k = 0; !used && k < changedHorizon.length; k++) {
18825          used = changedHorizon[k].boundary === affectedBoundary;
18826        }
18827
18828        if (!used) {
18829          affectedBoundary.x2New = maxXNew;
18830        }
18831      }
18832
18833      Array.prototype.splice.apply(horizon, [i, j - i + 1].concat(changedHorizon));
18834    });
18835    horizon.forEach(function (horizonPart) {
18836      var affectedBoundary = horizonPart.boundary;
18837
18838      if (affectedBoundary.x2New === undefined) {
18839        affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);
18840      }
18841    });
18842  }
18843
18844  function TextLayerRenderTask(_ref) {
18845    var textContent = _ref.textContent,
18846        textContentStream = _ref.textContentStream,
18847        container = _ref.container,
18848        viewport = _ref.viewport,
18849        textDivs = _ref.textDivs,
18850        textContentItemsStr = _ref.textContentItemsStr,
18851        enhanceTextSelection = _ref.enhanceTextSelection;
18852    this._textContent = textContent;
18853    this._textContentStream = textContentStream;
18854    this._container = container;
18855    this._viewport = viewport;
18856    this._textDivs = textDivs || [];
18857    this._textContentItemsStr = textContentItemsStr || [];
18858    this._enhanceTextSelection = !!enhanceTextSelection;
18859    this._fontInspectorEnabled = !!(_global_scope.default.FontInspector && _global_scope.default.FontInspector.enabled);
18860    this._reader = null;
18861    this._layoutTextLastFontSize = null;
18862    this._layoutTextLastFontFamily = null;
18863    this._layoutTextCtx = null;
18864    this._textDivProperties = new WeakMap();
18865    this._renderingDone = false;
18866    this._canceled = false;
18867    this._capability = (0, _util.createPromiseCapability)();
18868    this._renderTimer = null;
18869    this._bounds = [];
18870  }
18871
18872  TextLayerRenderTask.prototype = {
18873    get promise() {
18874      return this._capability.promise;
18875    },
18876
18877    cancel: function TextLayer_cancel() {
18878      if (this._reader) {
18879        this._reader.cancel(new _util.AbortException('text layer task cancelled'));
18880
18881        this._reader = null;
18882      }
18883
18884      this._canceled = true;
18885
18886      if (this._renderTimer !== null) {
18887        clearTimeout(this._renderTimer);
18888        this._renderTimer = null;
18889      }
18890
18891      this._capability.reject('canceled');
18892    },
18893    _processItems: function _processItems(items, styleCache) {
18894      for (var i = 0, len = items.length; i < len; i++) {
18895        this._textContentItemsStr.push(items[i].str);
18896
18897        appendText(this, items[i], styleCache);
18898      }
18899    },
18900    _layoutText: function _layoutText(textDiv) {
18901      var textLayerFrag = this._container;
18902
18903      var textDivProperties = this._textDivProperties.get(textDiv);
18904
18905      if (textDivProperties.isWhitespace) {
18906        return;
18907      }
18908
18909      var fontSize = textDiv.style.fontSize;
18910      var fontFamily = textDiv.style.fontFamily;
18911
18912      if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {
18913        this._layoutTextCtx.font = fontSize + ' ' + fontFamily;
18914        this._layoutTextLastFontSize = fontSize;
18915        this._layoutTextLastFontFamily = fontFamily;
18916      }
18917
18918      var width = this._layoutTextCtx.measureText(textDiv.textContent).width;
18919
18920      var transform = '';
18921
18922      if (textDivProperties.canvasWidth !== 0 && width > 0) {
18923        textDivProperties.scale = textDivProperties.canvasWidth / width;
18924        transform = "scaleX(".concat(textDivProperties.scale, ")");
18925      }
18926
18927      if (textDivProperties.angle !== 0) {
18928        transform = "rotate(".concat(textDivProperties.angle, "deg) ").concat(transform);
18929      }
18930
18931      if (transform.length > 0) {
18932        textDivProperties.originalTransform = transform;
18933        textDiv.style.transform = transform;
18934      }
18935
18936      this._textDivProperties.set(textDiv, textDivProperties);
18937
18938      textLayerFrag.appendChild(textDiv);
18939    },
18940    _render: function TextLayer_render(timeout) {
18941      var _this = this;
18942
18943      var capability = (0, _util.createPromiseCapability)();
18944      var styleCache = Object.create(null);
18945      var canvas = document.createElement('canvas');
18946      canvas.mozOpaque = true;
18947      this._layoutTextCtx = canvas.getContext('2d', {
18948        alpha: false
18949      });
18950
18951      if (this._textContent) {
18952        var textItems = this._textContent.items;
18953        var textStyles = this._textContent.styles;
18954
18955        this._processItems(textItems, textStyles);
18956
18957        capability.resolve();
18958      } else if (this._textContentStream) {
18959        var pump = function pump() {
18960          _this._reader.read().then(function (_ref2) {
18961            var value = _ref2.value,
18962                done = _ref2.done;
18963
18964            if (done) {
18965              capability.resolve();
18966              return;
18967            }
18968
18969            Object.assign(styleCache, value.styles);
18970
18971            _this._processItems(value.items, styleCache);
18972
18973            pump();
18974          }, capability.reject);
18975        };
18976
18977        this._reader = this._textContentStream.getReader();
18978        pump();
18979      } else {
18980        throw new Error('Neither "textContent" nor "textContentStream"' + ' parameters specified.');
18981      }
18982
18983      capability.promise.then(function () {
18984        styleCache = null;
18985
18986        if (!timeout) {
18987          render(_this);
18988        } else {
18989          _this._renderTimer = setTimeout(function () {
18990            render(_this);
18991            _this._renderTimer = null;
18992          }, timeout);
18993        }
18994      }, this._capability.reject);
18995    },
18996    expandTextDivs: function TextLayer_expandTextDivs(expandDivs) {
18997      if (!this._enhanceTextSelection || !this._renderingDone) {
18998        return;
18999      }
19000
19001      if (this._bounds !== null) {
19002        expand(this);
19003        this._bounds = null;
19004      }
19005
19006      for (var i = 0, ii = this._textDivs.length; i < ii; i++) {
19007        var div = this._textDivs[i];
19008
19009        var divProperties = this._textDivProperties.get(div);
19010
19011        if (divProperties.isWhitespace) {
19012          continue;
19013        }
19014
19015        if (expandDivs) {
19016          var transform = '',
19017              padding = '';
19018
19019          if (divProperties.scale !== 1) {
19020            transform = 'scaleX(' + divProperties.scale + ')';
19021          }
19022
19023          if (divProperties.angle !== 0) {
19024            transform = 'rotate(' + divProperties.angle + 'deg) ' + transform;
19025          }
19026
19027          if (divProperties.paddingLeft !== 0) {
19028            padding += ' padding-left: ' + divProperties.paddingLeft / divProperties.scale + 'px;';
19029            transform += ' translateX(' + -divProperties.paddingLeft / divProperties.scale + 'px)';
19030          }
19031
19032          if (divProperties.paddingTop !== 0) {
19033            padding += ' padding-top: ' + divProperties.paddingTop + 'px;';
19034            transform += ' translateY(' + -divProperties.paddingTop + 'px)';
19035          }
19036
19037          if (divProperties.paddingRight !== 0) {
19038            padding += ' padding-right: ' + divProperties.paddingRight / divProperties.scale + 'px;';
19039          }
19040
19041          if (divProperties.paddingBottom !== 0) {
19042            padding += ' padding-bottom: ' + divProperties.paddingBottom + 'px;';
19043          }
19044
19045          if (padding !== '') {
19046            div.setAttribute('style', divProperties.style + padding);
19047          }
19048
19049          if (transform !== '') {
19050            div.style.transform = transform;
19051          }
19052        } else {
19053          div.style.padding = 0;
19054          div.style.transform = divProperties.originalTransform || '';
19055        }
19056      }
19057    }
19058  };
19059
19060  function renderTextLayer(renderParameters) {
19061    var task = new TextLayerRenderTask({
19062      textContent: renderParameters.textContent,
19063      textContentStream: renderParameters.textContentStream,
19064      container: renderParameters.container,
19065      viewport: renderParameters.viewport,
19066      textDivs: renderParameters.textDivs,
19067      textContentItemsStr: renderParameters.textContentItemsStr,
19068      enhanceTextSelection: renderParameters.enhanceTextSelection
19069    });
19070
19071    task._render(renderParameters.timeout);
19072
19073    return task;
19074  }
19075
19076  return renderTextLayer;
19077}();
19078
19079exports.renderTextLayer = renderTextLayer;
19080
19081/***/ }),
19082/* 163 */
19083/***/ (function(module, exports, __w_pdfjs_require__) {
19084
19085"use strict";
19086
19087
19088Object.defineProperty(exports, "__esModule", {
19089  value: true
19090});
19091exports.AnnotationLayer = void 0;
19092
19093var _dom_utils = __w_pdfjs_require__(151);
19094
19095var _util = __w_pdfjs_require__(1);
19096
19097function _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); }
19098
19099function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
19100
19101function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
19102
19103function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
19104
19105function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
19106
19107function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
19108
19109function _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); }
19110
19111function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
19112
19113function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
19114
19115function _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); } }
19116
19117function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
19118
19119var AnnotationElementFactory =
19120/*#__PURE__*/
19121function () {
19122  function AnnotationElementFactory() {
19123    _classCallCheck(this, AnnotationElementFactory);
19124  }
19125
19126  _createClass(AnnotationElementFactory, null, [{
19127    key: "create",
19128    value: function create(parameters) {
19129      var subtype = parameters.data.annotationType;
19130
19131      switch (subtype) {
19132        case _util.AnnotationType.LINK:
19133          return new LinkAnnotationElement(parameters);
19134
19135        case _util.AnnotationType.TEXT:
19136          return new TextAnnotationElement(parameters);
19137
19138        case _util.AnnotationType.WIDGET:
19139          var fieldType = parameters.data.fieldType;
19140
19141          switch (fieldType) {
19142            case 'Tx':
19143              return new TextWidgetAnnotationElement(parameters);
19144
19145            case 'Btn':
19146              if (parameters.data.radioButton) {
19147                return new RadioButtonWidgetAnnotationElement(parameters);
19148              } else if (parameters.data.checkBox) {
19149                return new CheckboxWidgetAnnotationElement(parameters);
19150              }
19151
19152              return new PushButtonWidgetAnnotationElement(parameters);
19153
19154            case 'Ch':
19155              return new ChoiceWidgetAnnotationElement(parameters);
19156          }
19157
19158          return new WidgetAnnotationElement(parameters);
19159
19160        case _util.AnnotationType.POPUP:
19161          return new PopupAnnotationElement(parameters);
19162
19163        case _util.AnnotationType.LINE:
19164          return new LineAnnotationElement(parameters);
19165
19166        case _util.AnnotationType.SQUARE:
19167          return new SquareAnnotationElement(parameters);
19168
19169        case _util.AnnotationType.CIRCLE:
19170          return new CircleAnnotationElement(parameters);
19171
19172        case _util.AnnotationType.POLYLINE:
19173          return new PolylineAnnotationElement(parameters);
19174
19175        case _util.AnnotationType.INK:
19176          return new InkAnnotationElement(parameters);
19177
19178        case _util.AnnotationType.POLYGON:
19179          return new PolygonAnnotationElement(parameters);
19180
19181        case _util.AnnotationType.HIGHLIGHT:
19182          return new HighlightAnnotationElement(parameters);
19183
19184        case _util.AnnotationType.UNDERLINE:
19185          return new UnderlineAnnotationElement(parameters);
19186
19187        case _util.AnnotationType.SQUIGGLY:
19188          return new SquigglyAnnotationElement(parameters);
19189
19190        case _util.AnnotationType.STRIKEOUT:
19191          return new StrikeOutAnnotationElement(parameters);
19192
19193        case _util.AnnotationType.STAMP:
19194          return new StampAnnotationElement(parameters);
19195
19196        case _util.AnnotationType.FILEATTACHMENT:
19197          return new FileAttachmentAnnotationElement(parameters);
19198
19199        default:
19200          return new AnnotationElement(parameters);
19201      }
19202    }
19203  }]);
19204
19205  return AnnotationElementFactory;
19206}();
19207
19208var AnnotationElement =
19209/*#__PURE__*/
19210function () {
19211  function AnnotationElement(parameters) {
19212    var isRenderable = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
19213    var ignoreBorder = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
19214
19215    _classCallCheck(this, AnnotationElement);
19216
19217    this.isRenderable = isRenderable;
19218    this.data = parameters.data;
19219    this.layer = parameters.layer;
19220    this.page = parameters.page;
19221    this.viewport = parameters.viewport;
19222    this.linkService = parameters.linkService;
19223    this.downloadManager = parameters.downloadManager;
19224    this.imageResourcesPath = parameters.imageResourcesPath;
19225    this.renderInteractiveForms = parameters.renderInteractiveForms;
19226    this.svgFactory = parameters.svgFactory;
19227
19228    if (isRenderable) {
19229      this.container = this._createContainer(ignoreBorder);
19230    }
19231  }
19232
19233  _createClass(AnnotationElement, [{
19234    key: "_createContainer",
19235    value: function _createContainer() {
19236      var ignoreBorder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
19237      var data = this.data,
19238          page = this.page,
19239          viewport = this.viewport;
19240      var container = document.createElement('section');
19241      var width = data.rect[2] - data.rect[0];
19242      var height = data.rect[3] - data.rect[1];
19243      container.setAttribute('data-annotation-id', data.id);
19244
19245      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]]);
19246
19247      container.style.transform = 'matrix(' + viewport.transform.join(',') + ')';
19248      container.style.transformOrigin = -rect[0] + 'px ' + -rect[1] + 'px';
19249
19250      if (!ignoreBorder && data.borderStyle.width > 0) {
19251        container.style.borderWidth = data.borderStyle.width + 'px';
19252
19253        if (data.borderStyle.style !== _util.AnnotationBorderStyleType.UNDERLINE) {
19254          width = width - 2 * data.borderStyle.width;
19255          height = height - 2 * data.borderStyle.width;
19256        }
19257
19258        var horizontalRadius = data.borderStyle.horizontalCornerRadius;
19259        var verticalRadius = data.borderStyle.verticalCornerRadius;
19260
19261        if (horizontalRadius > 0 || verticalRadius > 0) {
19262          var radius = horizontalRadius + 'px / ' + verticalRadius + 'px';
19263          container.style.borderRadius = radius;
19264        }
19265
19266        switch (data.borderStyle.style) {
19267          case _util.AnnotationBorderStyleType.SOLID:
19268            container.style.borderStyle = 'solid';
19269            break;
19270
19271          case _util.AnnotationBorderStyleType.DASHED:
19272            container.style.borderStyle = 'dashed';
19273            break;
19274
19275          case _util.AnnotationBorderStyleType.BEVELED:
19276            (0, _util.warn)('Unimplemented border style: beveled');
19277            break;
19278
19279          case _util.AnnotationBorderStyleType.INSET:
19280            (0, _util.warn)('Unimplemented border style: inset');
19281            break;
19282
19283          case _util.AnnotationBorderStyleType.UNDERLINE:
19284            container.style.borderBottomStyle = 'solid';
19285            break;
19286
19287          default:
19288            break;
19289        }
19290
19291        if (data.color) {
19292          container.style.borderColor = _util.Util.makeCssRgb(data.color[0] | 0, data.color[1] | 0, data.color[2] | 0);
19293        } else {
19294          container.style.borderWidth = 0;
19295        }
19296      }
19297
19298      container.style.left = rect[0] + 'px';
19299      container.style.top = rect[1] + 'px';
19300      container.style.width = width + 'px';
19301      container.style.height = height + 'px';
19302      return container;
19303    }
19304  }, {
19305    key: "_createPopup",
19306    value: function _createPopup(container, trigger, data) {
19307      if (!trigger) {
19308        trigger = document.createElement('div');
19309        trigger.style.height = container.style.height;
19310        trigger.style.width = container.style.width;
19311        container.appendChild(trigger);
19312      }
19313
19314      var popupElement = new PopupElement({
19315        container: container,
19316        trigger: trigger,
19317        color: data.color,
19318        title: data.title,
19319        contents: data.contents,
19320        hideWrapper: true
19321      });
19322      var popup = popupElement.render();
19323      popup.style.left = container.style.width;
19324      container.appendChild(popup);
19325    }
19326  }, {
19327    key: "render",
19328    value: function render() {
19329      (0, _util.unreachable)('Abstract method `AnnotationElement.render` called');
19330    }
19331  }]);
19332
19333  return AnnotationElement;
19334}();
19335
19336var LinkAnnotationElement =
19337/*#__PURE__*/
19338function (_AnnotationElement) {
19339  _inherits(LinkAnnotationElement, _AnnotationElement);
19340
19341  function LinkAnnotationElement(parameters) {
19342    _classCallCheck(this, LinkAnnotationElement);
19343
19344    var isRenderable = !!(parameters.data.url || parameters.data.dest || parameters.data.action);
19345    return _possibleConstructorReturn(this, _getPrototypeOf(LinkAnnotationElement).call(this, parameters, isRenderable));
19346  }
19347
19348  _createClass(LinkAnnotationElement, [{
19349    key: "render",
19350    value: function render() {
19351      this.container.className = 'linkAnnotation';
19352      var data = this.data,
19353          linkService = this.linkService;
19354      var link = document.createElement('a');
19355      (0, _dom_utils.addLinkAttributes)(link, {
19356        url: data.url,
19357        target: data.newWindow ? _dom_utils.LinkTarget.BLANK : linkService.externalLinkTarget,
19358        rel: linkService.externalLinkRel
19359      });
19360
19361      if (!data.url) {
19362        if (data.action) {
19363          this._bindNamedAction(link, data.action);
19364        } else {
19365          this._bindLink(link, data.dest);
19366        }
19367      }
19368
19369      this.container.appendChild(link);
19370      return this.container;
19371    }
19372  }, {
19373    key: "_bindLink",
19374    value: function _bindLink(link, destination) {
19375      var _this = this;
19376
19377      link.href = this.linkService.getDestinationHash(destination);
19378
19379      link.onclick = function () {
19380        if (destination) {
19381          _this.linkService.navigateTo(destination);
19382        }
19383
19384        return false;
19385      };
19386
19387      if (destination) {
19388        link.className = 'internalLink';
19389      }
19390    }
19391  }, {
19392    key: "_bindNamedAction",
19393    value: function _bindNamedAction(link, action) {
19394      var _this2 = this;
19395
19396      link.href = this.linkService.getAnchorUrl('');
19397
19398      link.onclick = function () {
19399        _this2.linkService.executeNamedAction(action);
19400
19401        return false;
19402      };
19403
19404      link.className = 'internalLink';
19405    }
19406  }]);
19407
19408  return LinkAnnotationElement;
19409}(AnnotationElement);
19410
19411var TextAnnotationElement =
19412/*#__PURE__*/
19413function (_AnnotationElement2) {
19414  _inherits(TextAnnotationElement, _AnnotationElement2);
19415
19416  function TextAnnotationElement(parameters) {
19417    _classCallCheck(this, TextAnnotationElement);
19418
19419    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19420    return _possibleConstructorReturn(this, _getPrototypeOf(TextAnnotationElement).call(this, parameters, isRenderable));
19421  }
19422
19423  _createClass(TextAnnotationElement, [{
19424    key: "render",
19425    value: function render() {
19426      this.container.className = 'textAnnotation';
19427      var image = document.createElement('img');
19428      image.style.height = this.container.style.height;
19429      image.style.width = this.container.style.width;
19430      image.src = this.imageResourcesPath + 'annotation-' + this.data.name.toLowerCase() + '.svg';
19431      image.alt = '[{{type}} Annotation]';
19432      image.dataset.l10nId = 'text_annotation_type';
19433      image.dataset.l10nArgs = JSON.stringify({
19434        type: this.data.name
19435      });
19436
19437      if (!this.data.hasPopup) {
19438        this._createPopup(this.container, image, this.data);
19439      }
19440
19441      this.container.appendChild(image);
19442      return this.container;
19443    }
19444  }]);
19445
19446  return TextAnnotationElement;
19447}(AnnotationElement);
19448
19449var WidgetAnnotationElement =
19450/*#__PURE__*/
19451function (_AnnotationElement3) {
19452  _inherits(WidgetAnnotationElement, _AnnotationElement3);
19453
19454  function WidgetAnnotationElement() {
19455    _classCallCheck(this, WidgetAnnotationElement);
19456
19457    return _possibleConstructorReturn(this, _getPrototypeOf(WidgetAnnotationElement).apply(this, arguments));
19458  }
19459
19460  _createClass(WidgetAnnotationElement, [{
19461    key: "render",
19462    value: function render() {
19463      return this.container;
19464    }
19465  }]);
19466
19467  return WidgetAnnotationElement;
19468}(AnnotationElement);
19469
19470var TextWidgetAnnotationElement =
19471/*#__PURE__*/
19472function (_WidgetAnnotationElem) {
19473  _inherits(TextWidgetAnnotationElement, _WidgetAnnotationElem);
19474
19475  function TextWidgetAnnotationElement(parameters) {
19476    _classCallCheck(this, TextWidgetAnnotationElement);
19477
19478    var isRenderable = parameters.renderInteractiveForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;
19479    return _possibleConstructorReturn(this, _getPrototypeOf(TextWidgetAnnotationElement).call(this, parameters, isRenderable));
19480  }
19481
19482  _createClass(TextWidgetAnnotationElement, [{
19483    key: "render",
19484    value: function render() {
19485      var TEXT_ALIGNMENT = ['left', 'center', 'right'];
19486      this.container.className = 'textWidgetAnnotation';
19487      var element = null;
19488
19489      if (this.renderInteractiveForms) {
19490        if (this.data.multiLine) {
19491          element = document.createElement('textarea');
19492          element.textContent = this.data.fieldValue;
19493        } else {
19494          element = document.createElement('input');
19495          element.type = 'text';
19496          element.setAttribute('value', this.data.fieldValue);
19497        }
19498
19499        element.disabled = this.data.readOnly;
19500
19501        if (this.data.maxLen !== null) {
19502          element.maxLength = this.data.maxLen;
19503        }
19504
19505        if (this.data.comb) {
19506          var fieldWidth = this.data.rect[2] - this.data.rect[0];
19507          var combWidth = fieldWidth / this.data.maxLen;
19508          element.classList.add('comb');
19509          element.style.letterSpacing = 'calc(' + combWidth + 'px - 1ch)';
19510        }
19511      } else {
19512        element = document.createElement('div');
19513        element.textContent = this.data.fieldValue;
19514        element.style.verticalAlign = 'middle';
19515        element.style.display = 'table-cell';
19516        var font = null;
19517
19518        if (this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName)) {
19519          font = this.page.commonObjs.get(this.data.fontRefName);
19520        }
19521
19522        this._setTextStyle(element, font);
19523      }
19524
19525      if (this.data.textAlignment !== null) {
19526        element.style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];
19527      }
19528
19529      this.container.appendChild(element);
19530      return this.container;
19531    }
19532  }, {
19533    key: "_setTextStyle",
19534    value: function _setTextStyle(element, font) {
19535      var style = element.style;
19536      style.fontSize = this.data.fontSize + 'px';
19537      style.direction = this.data.fontDirection < 0 ? 'rtl' : 'ltr';
19538
19539      if (!font) {
19540        return;
19541      }
19542
19543      style.fontWeight = font.black ? font.bold ? '900' : 'bold' : font.bold ? 'bold' : 'normal';
19544      style.fontStyle = font.italic ? 'italic' : 'normal';
19545      var fontFamily = font.loadedName ? '"' + font.loadedName + '", ' : '';
19546      var fallbackName = font.fallbackName || 'Helvetica, sans-serif';
19547      style.fontFamily = fontFamily + fallbackName;
19548    }
19549  }]);
19550
19551  return TextWidgetAnnotationElement;
19552}(WidgetAnnotationElement);
19553
19554var CheckboxWidgetAnnotationElement =
19555/*#__PURE__*/
19556function (_WidgetAnnotationElem2) {
19557  _inherits(CheckboxWidgetAnnotationElement, _WidgetAnnotationElem2);
19558
19559  function CheckboxWidgetAnnotationElement(parameters) {
19560    _classCallCheck(this, CheckboxWidgetAnnotationElement);
19561
19562    return _possibleConstructorReturn(this, _getPrototypeOf(CheckboxWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
19563  }
19564
19565  _createClass(CheckboxWidgetAnnotationElement, [{
19566    key: "render",
19567    value: function render() {
19568      this.container.className = 'buttonWidgetAnnotation checkBox';
19569      var element = document.createElement('input');
19570      element.disabled = this.data.readOnly;
19571      element.type = 'checkbox';
19572
19573      if (this.data.fieldValue && this.data.fieldValue !== 'Off') {
19574        element.setAttribute('checked', true);
19575      }
19576
19577      this.container.appendChild(element);
19578      return this.container;
19579    }
19580  }]);
19581
19582  return CheckboxWidgetAnnotationElement;
19583}(WidgetAnnotationElement);
19584
19585var RadioButtonWidgetAnnotationElement =
19586/*#__PURE__*/
19587function (_WidgetAnnotationElem3) {
19588  _inherits(RadioButtonWidgetAnnotationElement, _WidgetAnnotationElem3);
19589
19590  function RadioButtonWidgetAnnotationElement(parameters) {
19591    _classCallCheck(this, RadioButtonWidgetAnnotationElement);
19592
19593    return _possibleConstructorReturn(this, _getPrototypeOf(RadioButtonWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
19594  }
19595
19596  _createClass(RadioButtonWidgetAnnotationElement, [{
19597    key: "render",
19598    value: function render() {
19599      this.container.className = 'buttonWidgetAnnotation radioButton';
19600      var element = document.createElement('input');
19601      element.disabled = this.data.readOnly;
19602      element.type = 'radio';
19603      element.name = this.data.fieldName;
19604
19605      if (this.data.fieldValue === this.data.buttonValue) {
19606        element.setAttribute('checked', true);
19607      }
19608
19609      this.container.appendChild(element);
19610      return this.container;
19611    }
19612  }]);
19613
19614  return RadioButtonWidgetAnnotationElement;
19615}(WidgetAnnotationElement);
19616
19617var PushButtonWidgetAnnotationElement =
19618/*#__PURE__*/
19619function (_LinkAnnotationElemen) {
19620  _inherits(PushButtonWidgetAnnotationElement, _LinkAnnotationElemen);
19621
19622  function PushButtonWidgetAnnotationElement() {
19623    _classCallCheck(this, PushButtonWidgetAnnotationElement);
19624
19625    return _possibleConstructorReturn(this, _getPrototypeOf(PushButtonWidgetAnnotationElement).apply(this, arguments));
19626  }
19627
19628  _createClass(PushButtonWidgetAnnotationElement, [{
19629    key: "render",
19630    value: function render() {
19631      var container = _get(_getPrototypeOf(PushButtonWidgetAnnotationElement.prototype), "render", this).call(this);
19632
19633      container.className = 'buttonWidgetAnnotation pushButton';
19634      return container;
19635    }
19636  }]);
19637
19638  return PushButtonWidgetAnnotationElement;
19639}(LinkAnnotationElement);
19640
19641var ChoiceWidgetAnnotationElement =
19642/*#__PURE__*/
19643function (_WidgetAnnotationElem4) {
19644  _inherits(ChoiceWidgetAnnotationElement, _WidgetAnnotationElem4);
19645
19646  function ChoiceWidgetAnnotationElement(parameters) {
19647    _classCallCheck(this, ChoiceWidgetAnnotationElement);
19648
19649    return _possibleConstructorReturn(this, _getPrototypeOf(ChoiceWidgetAnnotationElement).call(this, parameters, parameters.renderInteractiveForms));
19650  }
19651
19652  _createClass(ChoiceWidgetAnnotationElement, [{
19653    key: "render",
19654    value: function render() {
19655      this.container.className = 'choiceWidgetAnnotation';
19656      var selectElement = document.createElement('select');
19657      selectElement.disabled = this.data.readOnly;
19658
19659      if (!this.data.combo) {
19660        selectElement.size = this.data.options.length;
19661
19662        if (this.data.multiSelect) {
19663          selectElement.multiple = true;
19664        }
19665      }
19666
19667      for (var i = 0, ii = this.data.options.length; i < ii; i++) {
19668        var option = this.data.options[i];
19669        var optionElement = document.createElement('option');
19670        optionElement.textContent = option.displayValue;
19671        optionElement.value = option.exportValue;
19672
19673        if (this.data.fieldValue.includes(option.displayValue)) {
19674          optionElement.setAttribute('selected', true);
19675        }
19676
19677        selectElement.appendChild(optionElement);
19678      }
19679
19680      this.container.appendChild(selectElement);
19681      return this.container;
19682    }
19683  }]);
19684
19685  return ChoiceWidgetAnnotationElement;
19686}(WidgetAnnotationElement);
19687
19688var PopupAnnotationElement =
19689/*#__PURE__*/
19690function (_AnnotationElement4) {
19691  _inherits(PopupAnnotationElement, _AnnotationElement4);
19692
19693  function PopupAnnotationElement(parameters) {
19694    _classCallCheck(this, PopupAnnotationElement);
19695
19696    var isRenderable = !!(parameters.data.title || parameters.data.contents);
19697    return _possibleConstructorReturn(this, _getPrototypeOf(PopupAnnotationElement).call(this, parameters, isRenderable));
19698  }
19699
19700  _createClass(PopupAnnotationElement, [{
19701    key: "render",
19702    value: function render() {
19703      var IGNORE_TYPES = ['Line', 'Square', 'Circle', 'PolyLine', 'Polygon', 'Ink'];
19704      this.container.className = 'popupAnnotation';
19705
19706      if (IGNORE_TYPES.includes(this.data.parentType)) {
19707        return this.container;
19708      }
19709
19710      var selector = '[data-annotation-id="' + this.data.parentId + '"]';
19711      var parentElement = this.layer.querySelector(selector);
19712
19713      if (!parentElement) {
19714        return this.container;
19715      }
19716
19717      var popup = new PopupElement({
19718        container: this.container,
19719        trigger: parentElement,
19720        color: this.data.color,
19721        title: this.data.title,
19722        contents: this.data.contents
19723      });
19724      var parentLeft = parseFloat(parentElement.style.left);
19725      var parentWidth = parseFloat(parentElement.style.width);
19726      this.container.style.transformOrigin = -(parentLeft + parentWidth) + 'px -' + parentElement.style.top;
19727      this.container.style.left = parentLeft + parentWidth + 'px';
19728      this.container.appendChild(popup.render());
19729      return this.container;
19730    }
19731  }]);
19732
19733  return PopupAnnotationElement;
19734}(AnnotationElement);
19735
19736var PopupElement =
19737/*#__PURE__*/
19738function () {
19739  function PopupElement(parameters) {
19740    _classCallCheck(this, PopupElement);
19741
19742    this.container = parameters.container;
19743    this.trigger = parameters.trigger;
19744    this.color = parameters.color;
19745    this.title = parameters.title;
19746    this.contents = parameters.contents;
19747    this.hideWrapper = parameters.hideWrapper || false;
19748    this.pinned = false;
19749  }
19750
19751  _createClass(PopupElement, [{
19752    key: "render",
19753    value: function render() {
19754      var BACKGROUND_ENLIGHT = 0.7;
19755      var wrapper = document.createElement('div');
19756      wrapper.className = 'popupWrapper';
19757      this.hideElement = this.hideWrapper ? wrapper : this.container;
19758      this.hideElement.setAttribute('hidden', true);
19759      var popup = document.createElement('div');
19760      popup.className = 'popup';
19761      var color = this.color;
19762
19763      if (color) {
19764        var r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];
19765        var g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];
19766        var b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];
19767        popup.style.backgroundColor = _util.Util.makeCssRgb(r | 0, g | 0, b | 0);
19768      }
19769
19770      var contents = this._formatContents(this.contents);
19771
19772      var title = document.createElement('h1');
19773      title.textContent = this.title;
19774      this.trigger.addEventListener('click', this._toggle.bind(this));
19775      this.trigger.addEventListener('mouseover', this._show.bind(this, false));
19776      this.trigger.addEventListener('mouseout', this._hide.bind(this, false));
19777      popup.addEventListener('click', this._hide.bind(this, true));
19778      popup.appendChild(title);
19779      popup.appendChild(contents);
19780      wrapper.appendChild(popup);
19781      return wrapper;
19782    }
19783  }, {
19784    key: "_formatContents",
19785    value: function _formatContents(contents) {
19786      var p = document.createElement('p');
19787      var lines = contents.split(/(?:\r\n?|\n)/);
19788
19789      for (var i = 0, ii = lines.length; i < ii; ++i) {
19790        var line = lines[i];
19791        p.appendChild(document.createTextNode(line));
19792
19793        if (i < ii - 1) {
19794          p.appendChild(document.createElement('br'));
19795        }
19796      }
19797
19798      return p;
19799    }
19800  }, {
19801    key: "_toggle",
19802    value: function _toggle() {
19803      if (this.pinned) {
19804        this._hide(true);
19805      } else {
19806        this._show(true);
19807      }
19808    }
19809  }, {
19810    key: "_show",
19811    value: function _show() {
19812      var pin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
19813
19814      if (pin) {
19815        this.pinned = true;
19816      }
19817
19818      if (this.hideElement.hasAttribute('hidden')) {
19819        this.hideElement.removeAttribute('hidden');
19820        this.container.style.zIndex += 1;
19821      }
19822    }
19823  }, {
19824    key: "_hide",
19825    value: function _hide() {
19826      var unpin = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
19827
19828      if (unpin) {
19829        this.pinned = false;
19830      }
19831
19832      if (!this.hideElement.hasAttribute('hidden') && !this.pinned) {
19833        this.hideElement.setAttribute('hidden', true);
19834        this.container.style.zIndex -= 1;
19835      }
19836    }
19837  }]);
19838
19839  return PopupElement;
19840}();
19841
19842var LineAnnotationElement =
19843/*#__PURE__*/
19844function (_AnnotationElement5) {
19845  _inherits(LineAnnotationElement, _AnnotationElement5);
19846
19847  function LineAnnotationElement(parameters) {
19848    _classCallCheck(this, LineAnnotationElement);
19849
19850    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19851    return _possibleConstructorReturn(this, _getPrototypeOf(LineAnnotationElement).call(this, parameters, isRenderable, true));
19852  }
19853
19854  _createClass(LineAnnotationElement, [{
19855    key: "render",
19856    value: function render() {
19857      this.container.className = 'lineAnnotation';
19858      var data = this.data;
19859      var width = data.rect[2] - data.rect[0];
19860      var height = data.rect[3] - data.rect[1];
19861      var svg = this.svgFactory.create(width, height);
19862      var line = this.svgFactory.createElement('svg:line');
19863      line.setAttribute('x1', data.rect[2] - data.lineCoordinates[0]);
19864      line.setAttribute('y1', data.rect[3] - data.lineCoordinates[1]);
19865      line.setAttribute('x2', data.rect[2] - data.lineCoordinates[2]);
19866      line.setAttribute('y2', data.rect[3] - data.lineCoordinates[3]);
19867      line.setAttribute('stroke-width', data.borderStyle.width);
19868      line.setAttribute('stroke', 'transparent');
19869      svg.appendChild(line);
19870      this.container.append(svg);
19871
19872      this._createPopup(this.container, line, data);
19873
19874      return this.container;
19875    }
19876  }]);
19877
19878  return LineAnnotationElement;
19879}(AnnotationElement);
19880
19881var SquareAnnotationElement =
19882/*#__PURE__*/
19883function (_AnnotationElement6) {
19884  _inherits(SquareAnnotationElement, _AnnotationElement6);
19885
19886  function SquareAnnotationElement(parameters) {
19887    _classCallCheck(this, SquareAnnotationElement);
19888
19889    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19890    return _possibleConstructorReturn(this, _getPrototypeOf(SquareAnnotationElement).call(this, parameters, isRenderable, true));
19891  }
19892
19893  _createClass(SquareAnnotationElement, [{
19894    key: "render",
19895    value: function render() {
19896      this.container.className = 'squareAnnotation';
19897      var data = this.data;
19898      var width = data.rect[2] - data.rect[0];
19899      var height = data.rect[3] - data.rect[1];
19900      var svg = this.svgFactory.create(width, height);
19901      var borderWidth = data.borderStyle.width;
19902      var square = this.svgFactory.createElement('svg:rect');
19903      square.setAttribute('x', borderWidth / 2);
19904      square.setAttribute('y', borderWidth / 2);
19905      square.setAttribute('width', width - borderWidth);
19906      square.setAttribute('height', height - borderWidth);
19907      square.setAttribute('stroke-width', borderWidth);
19908      square.setAttribute('stroke', 'transparent');
19909      square.setAttribute('fill', 'none');
19910      svg.appendChild(square);
19911      this.container.append(svg);
19912
19913      this._createPopup(this.container, square, data);
19914
19915      return this.container;
19916    }
19917  }]);
19918
19919  return SquareAnnotationElement;
19920}(AnnotationElement);
19921
19922var CircleAnnotationElement =
19923/*#__PURE__*/
19924function (_AnnotationElement7) {
19925  _inherits(CircleAnnotationElement, _AnnotationElement7);
19926
19927  function CircleAnnotationElement(parameters) {
19928    _classCallCheck(this, CircleAnnotationElement);
19929
19930    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19931    return _possibleConstructorReturn(this, _getPrototypeOf(CircleAnnotationElement).call(this, parameters, isRenderable, true));
19932  }
19933
19934  _createClass(CircleAnnotationElement, [{
19935    key: "render",
19936    value: function render() {
19937      this.container.className = 'circleAnnotation';
19938      var data = this.data;
19939      var width = data.rect[2] - data.rect[0];
19940      var height = data.rect[3] - data.rect[1];
19941      var svg = this.svgFactory.create(width, height);
19942      var borderWidth = data.borderStyle.width;
19943      var circle = this.svgFactory.createElement('svg:ellipse');
19944      circle.setAttribute('cx', width / 2);
19945      circle.setAttribute('cy', height / 2);
19946      circle.setAttribute('rx', width / 2 - borderWidth / 2);
19947      circle.setAttribute('ry', height / 2 - borderWidth / 2);
19948      circle.setAttribute('stroke-width', borderWidth);
19949      circle.setAttribute('stroke', 'transparent');
19950      circle.setAttribute('fill', 'none');
19951      svg.appendChild(circle);
19952      this.container.append(svg);
19953
19954      this._createPopup(this.container, circle, data);
19955
19956      return this.container;
19957    }
19958  }]);
19959
19960  return CircleAnnotationElement;
19961}(AnnotationElement);
19962
19963var PolylineAnnotationElement =
19964/*#__PURE__*/
19965function (_AnnotationElement8) {
19966  _inherits(PolylineAnnotationElement, _AnnotationElement8);
19967
19968  function PolylineAnnotationElement(parameters) {
19969    var _this3;
19970
19971    _classCallCheck(this, PolylineAnnotationElement);
19972
19973    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
19974    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PolylineAnnotationElement).call(this, parameters, isRenderable, true));
19975    _this3.containerClassName = 'polylineAnnotation';
19976    _this3.svgElementName = 'svg:polyline';
19977    return _this3;
19978  }
19979
19980  _createClass(PolylineAnnotationElement, [{
19981    key: "render",
19982    value: function render() {
19983      this.container.className = this.containerClassName;
19984      var data = this.data;
19985      var width = data.rect[2] - data.rect[0];
19986      var height = data.rect[3] - data.rect[1];
19987      var svg = this.svgFactory.create(width, height);
19988      var vertices = data.vertices;
19989      var points = [];
19990
19991      for (var i = 0, ii = vertices.length; i < ii; i++) {
19992        var x = vertices[i].x - data.rect[0];
19993        var y = data.rect[3] - vertices[i].y;
19994        points.push(x + ',' + y);
19995      }
19996
19997      points = points.join(' ');
19998      var borderWidth = data.borderStyle.width;
19999      var polyline = this.svgFactory.createElement(this.svgElementName);
20000      polyline.setAttribute('points', points);
20001      polyline.setAttribute('stroke-width', borderWidth);
20002      polyline.setAttribute('stroke', 'transparent');
20003      polyline.setAttribute('fill', 'none');
20004      svg.appendChild(polyline);
20005      this.container.append(svg);
20006
20007      this._createPopup(this.container, polyline, data);
20008
20009      return this.container;
20010    }
20011  }]);
20012
20013  return PolylineAnnotationElement;
20014}(AnnotationElement);
20015
20016var PolygonAnnotationElement =
20017/*#__PURE__*/
20018function (_PolylineAnnotationEl) {
20019  _inherits(PolygonAnnotationElement, _PolylineAnnotationEl);
20020
20021  function PolygonAnnotationElement(parameters) {
20022    var _this4;
20023
20024    _classCallCheck(this, PolygonAnnotationElement);
20025
20026    _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PolygonAnnotationElement).call(this, parameters));
20027    _this4.containerClassName = 'polygonAnnotation';
20028    _this4.svgElementName = 'svg:polygon';
20029    return _this4;
20030  }
20031
20032  return PolygonAnnotationElement;
20033}(PolylineAnnotationElement);
20034
20035var InkAnnotationElement =
20036/*#__PURE__*/
20037function (_AnnotationElement9) {
20038  _inherits(InkAnnotationElement, _AnnotationElement9);
20039
20040  function InkAnnotationElement(parameters) {
20041    var _this5;
20042
20043    _classCallCheck(this, InkAnnotationElement);
20044
20045    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20046    _this5 = _possibleConstructorReturn(this, _getPrototypeOf(InkAnnotationElement).call(this, parameters, isRenderable, true));
20047    _this5.containerClassName = 'inkAnnotation';
20048    _this5.svgElementName = 'svg:polyline';
20049    return _this5;
20050  }
20051
20052  _createClass(InkAnnotationElement, [{
20053    key: "render",
20054    value: function render() {
20055      this.container.className = this.containerClassName;
20056      var data = this.data;
20057      var width = data.rect[2] - data.rect[0];
20058      var height = data.rect[3] - data.rect[1];
20059      var svg = this.svgFactory.create(width, height);
20060      var inkLists = data.inkLists;
20061
20062      for (var i = 0, ii = inkLists.length; i < ii; i++) {
20063        var inkList = inkLists[i];
20064        var points = [];
20065
20066        for (var j = 0, jj = inkList.length; j < jj; j++) {
20067          var x = inkList[j].x - data.rect[0];
20068          var y = data.rect[3] - inkList[j].y;
20069          points.push(x + ',' + y);
20070        }
20071
20072        points = points.join(' ');
20073        var borderWidth = data.borderStyle.width;
20074        var polyline = this.svgFactory.createElement(this.svgElementName);
20075        polyline.setAttribute('points', points);
20076        polyline.setAttribute('stroke-width', borderWidth);
20077        polyline.setAttribute('stroke', 'transparent');
20078        polyline.setAttribute('fill', 'none');
20079
20080        this._createPopup(this.container, polyline, data);
20081
20082        svg.appendChild(polyline);
20083      }
20084
20085      this.container.append(svg);
20086      return this.container;
20087    }
20088  }]);
20089
20090  return InkAnnotationElement;
20091}(AnnotationElement);
20092
20093var HighlightAnnotationElement =
20094/*#__PURE__*/
20095function (_AnnotationElement10) {
20096  _inherits(HighlightAnnotationElement, _AnnotationElement10);
20097
20098  function HighlightAnnotationElement(parameters) {
20099    _classCallCheck(this, HighlightAnnotationElement);
20100
20101    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20102    return _possibleConstructorReturn(this, _getPrototypeOf(HighlightAnnotationElement).call(this, parameters, isRenderable, true));
20103  }
20104
20105  _createClass(HighlightAnnotationElement, [{
20106    key: "render",
20107    value: function render() {
20108      this.container.className = 'highlightAnnotation';
20109
20110      if (!this.data.hasPopup) {
20111        this._createPopup(this.container, null, this.data);
20112      }
20113
20114      return this.container;
20115    }
20116  }]);
20117
20118  return HighlightAnnotationElement;
20119}(AnnotationElement);
20120
20121var UnderlineAnnotationElement =
20122/*#__PURE__*/
20123function (_AnnotationElement11) {
20124  _inherits(UnderlineAnnotationElement, _AnnotationElement11);
20125
20126  function UnderlineAnnotationElement(parameters) {
20127    _classCallCheck(this, UnderlineAnnotationElement);
20128
20129    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20130    return _possibleConstructorReturn(this, _getPrototypeOf(UnderlineAnnotationElement).call(this, parameters, isRenderable, true));
20131  }
20132
20133  _createClass(UnderlineAnnotationElement, [{
20134    key: "render",
20135    value: function render() {
20136      this.container.className = 'underlineAnnotation';
20137
20138      if (!this.data.hasPopup) {
20139        this._createPopup(this.container, null, this.data);
20140      }
20141
20142      return this.container;
20143    }
20144  }]);
20145
20146  return UnderlineAnnotationElement;
20147}(AnnotationElement);
20148
20149var SquigglyAnnotationElement =
20150/*#__PURE__*/
20151function (_AnnotationElement12) {
20152  _inherits(SquigglyAnnotationElement, _AnnotationElement12);
20153
20154  function SquigglyAnnotationElement(parameters) {
20155    _classCallCheck(this, SquigglyAnnotationElement);
20156
20157    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20158    return _possibleConstructorReturn(this, _getPrototypeOf(SquigglyAnnotationElement).call(this, parameters, isRenderable, true));
20159  }
20160
20161  _createClass(SquigglyAnnotationElement, [{
20162    key: "render",
20163    value: function render() {
20164      this.container.className = 'squigglyAnnotation';
20165
20166      if (!this.data.hasPopup) {
20167        this._createPopup(this.container, null, this.data);
20168      }
20169
20170      return this.container;
20171    }
20172  }]);
20173
20174  return SquigglyAnnotationElement;
20175}(AnnotationElement);
20176
20177var StrikeOutAnnotationElement =
20178/*#__PURE__*/
20179function (_AnnotationElement13) {
20180  _inherits(StrikeOutAnnotationElement, _AnnotationElement13);
20181
20182  function StrikeOutAnnotationElement(parameters) {
20183    _classCallCheck(this, StrikeOutAnnotationElement);
20184
20185    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20186    return _possibleConstructorReturn(this, _getPrototypeOf(StrikeOutAnnotationElement).call(this, parameters, isRenderable, true));
20187  }
20188
20189  _createClass(StrikeOutAnnotationElement, [{
20190    key: "render",
20191    value: function render() {
20192      this.container.className = 'strikeoutAnnotation';
20193
20194      if (!this.data.hasPopup) {
20195        this._createPopup(this.container, null, this.data);
20196      }
20197
20198      return this.container;
20199    }
20200  }]);
20201
20202  return StrikeOutAnnotationElement;
20203}(AnnotationElement);
20204
20205var StampAnnotationElement =
20206/*#__PURE__*/
20207function (_AnnotationElement14) {
20208  _inherits(StampAnnotationElement, _AnnotationElement14);
20209
20210  function StampAnnotationElement(parameters) {
20211    _classCallCheck(this, StampAnnotationElement);
20212
20213    var isRenderable = !!(parameters.data.hasPopup || parameters.data.title || parameters.data.contents);
20214    return _possibleConstructorReturn(this, _getPrototypeOf(StampAnnotationElement).call(this, parameters, isRenderable, true));
20215  }
20216
20217  _createClass(StampAnnotationElement, [{
20218    key: "render",
20219    value: function render() {
20220      this.container.className = 'stampAnnotation';
20221
20222      if (!this.data.hasPopup) {
20223        this._createPopup(this.container, null, this.data);
20224      }
20225
20226      return this.container;
20227    }
20228  }]);
20229
20230  return StampAnnotationElement;
20231}(AnnotationElement);
20232
20233var FileAttachmentAnnotationElement =
20234/*#__PURE__*/
20235function (_AnnotationElement15) {
20236  _inherits(FileAttachmentAnnotationElement, _AnnotationElement15);
20237
20238  function FileAttachmentAnnotationElement(parameters) {
20239    var _this6;
20240
20241    _classCallCheck(this, FileAttachmentAnnotationElement);
20242
20243    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(FileAttachmentAnnotationElement).call(this, parameters, true));
20244    var _this6$data$file = _this6.data.file,
20245        filename = _this6$data$file.filename,
20246        content = _this6$data$file.content;
20247    _this6.filename = (0, _dom_utils.getFilenameFromUrl)(filename);
20248    _this6.content = content;
20249
20250    if (_this6.linkService.eventBus) {
20251      _this6.linkService.eventBus.dispatch('fileattachmentannotation', {
20252        source: _assertThisInitialized(_assertThisInitialized(_this6)),
20253        id: (0, _util.stringToPDFString)(filename),
20254        filename: filename,
20255        content: content
20256      });
20257    }
20258
20259    return _this6;
20260  }
20261
20262  _createClass(FileAttachmentAnnotationElement, [{
20263    key: "render",
20264    value: function render() {
20265      this.container.className = 'fileAttachmentAnnotation';
20266      var trigger = document.createElement('div');
20267      trigger.style.height = this.container.style.height;
20268      trigger.style.width = this.container.style.width;
20269      trigger.addEventListener('dblclick', this._download.bind(this));
20270
20271      if (!this.data.hasPopup && (this.data.title || this.data.contents)) {
20272        this._createPopup(this.container, trigger, this.data);
20273      }
20274
20275      this.container.appendChild(trigger);
20276      return this.container;
20277    }
20278  }, {
20279    key: "_download",
20280    value: function _download() {
20281      if (!this.downloadManager) {
20282        (0, _util.warn)('Download cannot be started due to unavailable download manager');
20283        return;
20284      }
20285
20286      this.downloadManager.downloadData(this.content, this.filename, '');
20287    }
20288  }]);
20289
20290  return FileAttachmentAnnotationElement;
20291}(AnnotationElement);
20292
20293var AnnotationLayer =
20294/*#__PURE__*/
20295function () {
20296  function AnnotationLayer() {
20297    _classCallCheck(this, AnnotationLayer);
20298  }
20299
20300  _createClass(AnnotationLayer, null, [{
20301    key: "render",
20302    value: function render(parameters) {
20303      for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
20304        var data = parameters.annotations[i];
20305
20306        if (!data) {
20307          continue;
20308        }
20309
20310        var element = AnnotationElementFactory.create({
20311          data: data,
20312          layer: parameters.div,
20313          page: parameters.page,
20314          viewport: parameters.viewport,
20315          linkService: parameters.linkService,
20316          downloadManager: parameters.downloadManager,
20317          imageResourcesPath: parameters.imageResourcesPath || '',
20318          renderInteractiveForms: parameters.renderInteractiveForms || false,
20319          svgFactory: new _dom_utils.DOMSVGFactory()
20320        });
20321
20322        if (element.isRenderable) {
20323          parameters.div.appendChild(element.render());
20324        }
20325      }
20326    }
20327  }, {
20328    key: "update",
20329    value: function update(parameters) {
20330      for (var i = 0, ii = parameters.annotations.length; i < ii; i++) {
20331        var data = parameters.annotations[i];
20332        var element = parameters.div.querySelector('[data-annotation-id="' + data.id + '"]');
20333
20334        if (element) {
20335          element.style.transform = 'matrix(' + parameters.viewport.transform.join(',') + ')';
20336        }
20337      }
20338
20339      parameters.div.removeAttribute('hidden');
20340    }
20341  }]);
20342
20343  return AnnotationLayer;
20344}();
20345
20346exports.AnnotationLayer = AnnotationLayer;
20347
20348/***/ }),
20349/* 164 */
20350/***/ (function(module, exports, __w_pdfjs_require__) {
20351
20352"use strict";
20353
20354
20355Object.defineProperty(exports, "__esModule", {
20356  value: true
20357});
20358exports.SVGGraphics = void 0;
20359
20360var _util = __w_pdfjs_require__(1);
20361
20362var _dom_utils = __w_pdfjs_require__(151);
20363
20364var _is_node = _interopRequireDefault(__w_pdfjs_require__(4));
20365
20366function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
20367
20368var SVGGraphics = function SVGGraphics() {
20369  throw new Error('Not implemented: SVGGraphics');
20370};
20371
20372exports.SVGGraphics = SVGGraphics;
20373{
20374  var SVG_DEFAULTS = {
20375    fontStyle: 'normal',
20376    fontWeight: 'normal',
20377    fillColor: '#000000'
20378  };
20379
20380  var convertImgDataToPng = function convertImgDataToPngClosure() {
20381    var PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);
20382    var CHUNK_WRAPPER_SIZE = 12;
20383    var crcTable = new Int32Array(256);
20384
20385    for (var i = 0; i < 256; i++) {
20386      var c = i;
20387
20388      for (var h = 0; h < 8; h++) {
20389        if (c & 1) {
20390          c = 0xedB88320 ^ c >> 1 & 0x7fffffff;
20391        } else {
20392          c = c >> 1 & 0x7fffffff;
20393        }
20394      }
20395
20396      crcTable[i] = c;
20397    }
20398
20399    function crc32(data, start, end) {
20400      var crc = -1;
20401
20402      for (var i = start; i < end; i++) {
20403        var a = (crc ^ data[i]) & 0xff;
20404        var b = crcTable[a];
20405        crc = crc >>> 8 ^ b;
20406      }
20407
20408      return crc ^ -1;
20409    }
20410
20411    function writePngChunk(type, body, data, offset) {
20412      var p = offset;
20413      var len = body.length;
20414      data[p] = len >> 24 & 0xff;
20415      data[p + 1] = len >> 16 & 0xff;
20416      data[p + 2] = len >> 8 & 0xff;
20417      data[p + 3] = len & 0xff;
20418      p += 4;
20419      data[p] = type.charCodeAt(0) & 0xff;
20420      data[p + 1] = type.charCodeAt(1) & 0xff;
20421      data[p + 2] = type.charCodeAt(2) & 0xff;
20422      data[p + 3] = type.charCodeAt(3) & 0xff;
20423      p += 4;
20424      data.set(body, p);
20425      p += body.length;
20426      var crc = crc32(data, offset + 4, p);
20427      data[p] = crc >> 24 & 0xff;
20428      data[p + 1] = crc >> 16 & 0xff;
20429      data[p + 2] = crc >> 8 & 0xff;
20430      data[p + 3] = crc & 0xff;
20431    }
20432
20433    function adler32(data, start, end) {
20434      var a = 1;
20435      var b = 0;
20436
20437      for (var i = start; i < end; ++i) {
20438        a = (a + (data[i] & 0xff)) % 65521;
20439        b = (b + a) % 65521;
20440      }
20441
20442      return b << 16 | a;
20443    }
20444
20445    function deflateSync(literals) {
20446      if (!(0, _is_node.default)()) {
20447        return deflateSyncUncompressed(literals);
20448      }
20449
20450      try {
20451        var input;
20452
20453        if (parseInt(process.versions.node) >= 8) {
20454          input = literals;
20455        } else {
20456          input = new Buffer(literals);
20457        }
20458
20459        var output = require('zlib').deflateSync(input, {
20460          level: 9
20461        });
20462
20463        return output instanceof Uint8Array ? output : new Uint8Array(output);
20464      } catch (e) {
20465        (0, _util.warn)('Not compressing PNG because zlib.deflateSync is unavailable: ' + e);
20466      }
20467
20468      return deflateSyncUncompressed(literals);
20469    }
20470
20471    function deflateSyncUncompressed(literals) {
20472      var len = literals.length;
20473      var maxBlockLength = 0xFFFF;
20474      var deflateBlocks = Math.ceil(len / maxBlockLength);
20475      var idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);
20476      var pi = 0;
20477      idat[pi++] = 0x78;
20478      idat[pi++] = 0x9c;
20479      var pos = 0;
20480
20481      while (len > maxBlockLength) {
20482        idat[pi++] = 0x00;
20483        idat[pi++] = 0xff;
20484        idat[pi++] = 0xff;
20485        idat[pi++] = 0x00;
20486        idat[pi++] = 0x00;
20487        idat.set(literals.subarray(pos, pos + maxBlockLength), pi);
20488        pi += maxBlockLength;
20489        pos += maxBlockLength;
20490        len -= maxBlockLength;
20491      }
20492
20493      idat[pi++] = 0x01;
20494      idat[pi++] = len & 0xff;
20495      idat[pi++] = len >> 8 & 0xff;
20496      idat[pi++] = ~len & 0xffff & 0xff;
20497      idat[pi++] = (~len & 0xffff) >> 8 & 0xff;
20498      idat.set(literals.subarray(pos), pi);
20499      pi += literals.length - pos;
20500      var adler = adler32(literals, 0, literals.length);
20501      idat[pi++] = adler >> 24 & 0xff;
20502      idat[pi++] = adler >> 16 & 0xff;
20503      idat[pi++] = adler >> 8 & 0xff;
20504      idat[pi++] = adler & 0xff;
20505      return idat;
20506    }
20507
20508    function encode(imgData, kind, forceDataSchema, isMask) {
20509      var width = imgData.width;
20510      var height = imgData.height;
20511      var bitDepth, colorType, lineSize;
20512      var bytes = imgData.data;
20513
20514      switch (kind) {
20515        case _util.ImageKind.GRAYSCALE_1BPP:
20516          colorType = 0;
20517          bitDepth = 1;
20518          lineSize = width + 7 >> 3;
20519          break;
20520
20521        case _util.ImageKind.RGB_24BPP:
20522          colorType = 2;
20523          bitDepth = 8;
20524          lineSize = width * 3;
20525          break;
20526
20527        case _util.ImageKind.RGBA_32BPP:
20528          colorType = 6;
20529          bitDepth = 8;
20530          lineSize = width * 4;
20531          break;
20532
20533        default:
20534          throw new Error('invalid format');
20535      }
20536
20537      var literals = new Uint8Array((1 + lineSize) * height);
20538      var offsetLiterals = 0,
20539          offsetBytes = 0;
20540      var y, i;
20541
20542      for (y = 0; y < height; ++y) {
20543        literals[offsetLiterals++] = 0;
20544        literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);
20545        offsetBytes += lineSize;
20546        offsetLiterals += lineSize;
20547      }
20548
20549      if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {
20550        offsetLiterals = 0;
20551
20552        for (y = 0; y < height; y++) {
20553          offsetLiterals++;
20554
20555          for (i = 0; i < lineSize; i++) {
20556            literals[offsetLiterals++] ^= 0xFF;
20557          }
20558        }
20559      }
20560
20561      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]);
20562      var idat = deflateSync(literals);
20563      var pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;
20564      var data = new Uint8Array(pngLength);
20565      var offset = 0;
20566      data.set(PNG_HEADER, offset);
20567      offset += PNG_HEADER.length;
20568      writePngChunk('IHDR', ihdr, data, offset);
20569      offset += CHUNK_WRAPPER_SIZE + ihdr.length;
20570      writePngChunk('IDATA', idat, data, offset);
20571      offset += CHUNK_WRAPPER_SIZE + idat.length;
20572      writePngChunk('IEND', new Uint8Array(0), data, offset);
20573      return (0, _util.createObjectURL)(data, 'image/png', forceDataSchema);
20574    }
20575
20576    return function convertImgDataToPng(imgData, forceDataSchema, isMask) {
20577      var kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;
20578      return encode(imgData, kind, forceDataSchema, isMask);
20579    };
20580  }();
20581
20582  var SVGExtraState = function SVGExtraStateClosure() {
20583    function SVGExtraState() {
20584      this.fontSizeScale = 1;
20585      this.fontWeight = SVG_DEFAULTS.fontWeight;
20586      this.fontSize = 0;
20587      this.textMatrix = _util.IDENTITY_MATRIX;
20588      this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
20589      this.leading = 0;
20590      this.textRenderingMode = _util.TextRenderingMode.FILL;
20591      this.x = 0;
20592      this.y = 0;
20593      this.lineX = 0;
20594      this.lineY = 0;
20595      this.charSpacing = 0;
20596      this.wordSpacing = 0;
20597      this.textHScale = 1;
20598      this.textRise = 0;
20599      this.fillColor = SVG_DEFAULTS.fillColor;
20600      this.strokeColor = '#000000';
20601      this.fillAlpha = 1;
20602      this.strokeAlpha = 1;
20603      this.lineWidth = 1;
20604      this.lineJoin = '';
20605      this.lineCap = '';
20606      this.miterLimit = 0;
20607      this.dashArray = [];
20608      this.dashPhase = 0;
20609      this.dependencies = [];
20610      this.activeClipUrl = null;
20611      this.clipGroup = null;
20612      this.maskId = '';
20613    }
20614
20615    SVGExtraState.prototype = {
20616      clone: function SVGExtraState_clone() {
20617        return Object.create(this);
20618      },
20619      setCurrentPoint: function SVGExtraState_setCurrentPoint(x, y) {
20620        this.x = x;
20621        this.y = y;
20622      }
20623    };
20624    return SVGExtraState;
20625  }();
20626
20627  exports.SVGGraphics = SVGGraphics = function SVGGraphicsClosure() {
20628    function opListToTree(opList) {
20629      var opTree = [];
20630      var tmp = [];
20631      var opListLen = opList.length;
20632
20633      for (var x = 0; x < opListLen; x++) {
20634        if (opList[x].fn === 'save') {
20635          opTree.push({
20636            'fnId': 92,
20637            'fn': 'group',
20638            'items': []
20639          });
20640          tmp.push(opTree);
20641          opTree = opTree[opTree.length - 1].items;
20642          continue;
20643        }
20644
20645        if (opList[x].fn === 'restore') {
20646          opTree = tmp.pop();
20647        } else {
20648          opTree.push(opList[x]);
20649        }
20650      }
20651
20652      return opTree;
20653    }
20654
20655    function pf(value) {
20656      if (Number.isInteger(value)) {
20657        return value.toString();
20658      }
20659
20660      var s = value.toFixed(10);
20661      var i = s.length - 1;
20662
20663      if (s[i] !== '0') {
20664        return s;
20665      }
20666
20667      do {
20668        i--;
20669      } while (s[i] === '0');
20670
20671      return s.substring(0, s[i] === '.' ? i : i + 1);
20672    }
20673
20674    function pm(m) {
20675      if (m[4] === 0 && m[5] === 0) {
20676        if (m[1] === 0 && m[2] === 0) {
20677          if (m[0] === 1 && m[3] === 1) {
20678            return '';
20679          }
20680
20681          return 'scale(' + pf(m[0]) + ' ' + pf(m[3]) + ')';
20682        }
20683
20684        if (m[0] === m[3] && m[1] === -m[2]) {
20685          var a = Math.acos(m[0]) * 180 / Math.PI;
20686          return 'rotate(' + pf(a) + ')';
20687        }
20688      } else {
20689        if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {
20690          return 'translate(' + pf(m[4]) + ' ' + pf(m[5]) + ')';
20691        }
20692      }
20693
20694      return 'matrix(' + pf(m[0]) + ' ' + pf(m[1]) + ' ' + pf(m[2]) + ' ' + pf(m[3]) + ' ' + pf(m[4]) + ' ' + pf(m[5]) + ')';
20695    }
20696
20697    function SVGGraphics(commonObjs, objs, forceDataSchema) {
20698      this.svgFactory = new _dom_utils.DOMSVGFactory();
20699      this.current = new SVGExtraState();
20700      this.transformMatrix = _util.IDENTITY_MATRIX;
20701      this.transformStack = [];
20702      this.extraStack = [];
20703      this.commonObjs = commonObjs;
20704      this.objs = objs;
20705      this.pendingClip = null;
20706      this.pendingEOFill = false;
20707      this.embedFonts = false;
20708      this.embeddedFonts = Object.create(null);
20709      this.cssStyle = null;
20710      this.forceDataSchema = !!forceDataSchema;
20711    }
20712
20713    var XML_NS = 'http://www.w3.org/XML/1998/namespace';
20714    var XLINK_NS = 'http://www.w3.org/1999/xlink';
20715    var LINE_CAP_STYLES = ['butt', 'round', 'square'];
20716    var LINE_JOIN_STYLES = ['miter', 'round', 'bevel'];
20717    var clipCount = 0;
20718    var maskCount = 0;
20719    SVGGraphics.prototype = {
20720      save: function SVGGraphics_save() {
20721        this.transformStack.push(this.transformMatrix);
20722        var old = this.current;
20723        this.extraStack.push(old);
vendor: 11,373 bytes, lines 20724-21079
20724        this.current = old.clone();
20725      },
20726      restore: function SVGGraphics_restore() {
20727        this.transformMatrix = this.transformStack.pop();
20728        this.current = this.extraStack.pop();
20729        this.pendingClip = null;
20730        this.tgrp = null;
20731      },
20732      group: function SVGGraphics_group(items) {
20733        this.save();
20734        this.executeOpTree(items);
20735        this.restore();
20736      },
20737      loadDependencies: function SVGGraphics_loadDependencies(operatorList) {
20738        var _this = this;
20739
20740        var fnArray = operatorList.fnArray;
20741        var fnArrayLen = fnArray.length;
20742        var argsArray = operatorList.argsArray;
20743
20744        for (var i = 0; i < fnArrayLen; i++) {
20745          if (_util.OPS.dependency === fnArray[i]) {
20746            var deps = argsArray[i];
20747
20748            for (var n = 0, nn = deps.length; n < nn; n++) {
20749              var obj = deps[n];
20750              var common = obj.substring(0, 2) === 'g_';
20751              var promise;
20752
20753              if (common) {
20754                promise = new Promise(function (resolve) {
20755                  _this.commonObjs.get(obj, resolve);
20756                });
20757              } else {
20758                promise = new Promise(function (resolve) {
20759                  _this.objs.get(obj, resolve);
20760                });
20761              }
20762
20763              this.current.dependencies.push(promise);
20764            }
20765          }
20766        }
20767
20768        return Promise.all(this.current.dependencies);
20769      },
20770      transform: function SVGGraphics_transform(a, b, c, d, e, f) {
20771        var transformMatrix = [a, b, c, d, e, f];
20772        this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);
20773        this.tgrp = null;
20774      },
20775      getSVG: function SVGGraphics_getSVG(operatorList, viewport) {
20776        var _this2 = this;
20777
20778        this.viewport = viewport;
20779
20780        var svgElement = this._initialize(viewport);
20781
20782        return this.loadDependencies(operatorList).then(function () {
20783          _this2.transformMatrix = _util.IDENTITY_MATRIX;
20784
20785          var opTree = _this2.convertOpList(operatorList);
20786
20787          _this2.executeOpTree(opTree);
20788
20789          return svgElement;
20790        });
20791      },
20792      convertOpList: function SVGGraphics_convertOpList(operatorList) {
20793        var argsArray = operatorList.argsArray;
20794        var fnArray = operatorList.fnArray;
20795        var fnArrayLen = fnArray.length;
20796        var REVOPS = [];
20797        var opList = [];
20798
20799        for (var op in _util.OPS) {
20800          REVOPS[_util.OPS[op]] = op;
20801        }
20802
20803        for (var x = 0; x < fnArrayLen; x++) {
20804          var fnId = fnArray[x];
20805          opList.push({
20806            'fnId': fnId,
20807            'fn': REVOPS[fnId],
20808            'args': argsArray[x]
20809          });
20810        }
20811
20812        return opListToTree(opList);
20813      },
20814      executeOpTree: function SVGGraphics_executeOpTree(opTree) {
20815        var opTreeLen = opTree.length;
20816
20817        for (var x = 0; x < opTreeLen; x++) {
20818          var fn = opTree[x].fn;
20819          var fnId = opTree[x].fnId;
20820          var args = opTree[x].args;
20821
20822          switch (fnId | 0) {
20823            case _util.OPS.beginText:
20824              this.beginText();
20825              break;
20826
20827            case _util.OPS.dependency:
20828              break;
20829
20830            case _util.OPS.setLeading:
20831              this.setLeading(args);
20832              break;
20833
20834            case _util.OPS.setLeadingMoveText:
20835              this.setLeadingMoveText(args[0], args[1]);
20836              break;
20837
20838            case _util.OPS.setFont:
20839              this.setFont(args);
20840              break;
20841
20842            case _util.OPS.showText:
20843              this.showText(args[0]);
20844              break;
20845
20846            case _util.OPS.showSpacedText:
20847              this.showText(args[0]);
20848              break;
20849
20850            case _util.OPS.endText:
20851              this.endText();
20852              break;
20853
20854            case _util.OPS.moveText:
20855              this.moveText(args[0], args[1]);
20856              break;
20857
20858            case _util.OPS.setCharSpacing:
20859              this.setCharSpacing(args[0]);
20860              break;
20861
20862            case _util.OPS.setWordSpacing:
20863              this.setWordSpacing(args[0]);
20864              break;
20865
20866            case _util.OPS.setHScale:
20867              this.setHScale(args[0]);
20868              break;
20869
20870            case _util.OPS.setTextMatrix:
20871              this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);
20872              break;
20873
20874            case _util.OPS.setTextRise:
20875              this.setTextRise(args[0]);
20876              break;
20877
20878            case _util.OPS.setTextRenderingMode:
20879              this.setTextRenderingMode(args[0]);
20880              break;
20881
20882            case _util.OPS.setLineWidth:
20883              this.setLineWidth(args[0]);
20884              break;
20885
20886            case _util.OPS.setLineJoin:
20887              this.setLineJoin(args[0]);
20888              break;
20889
20890            case _util.OPS.setLineCap:
20891              this.setLineCap(args[0]);
20892              break;
20893
20894            case _util.OPS.setMiterLimit:
20895              this.setMiterLimit(args[0]);
20896              break;
20897
20898            case _util.OPS.setFillRGBColor:
20899              this.setFillRGBColor(args[0], args[1], args[2]);
20900              break;
20901
20902            case _util.OPS.setStrokeRGBColor:
20903              this.setStrokeRGBColor(args[0], args[1], args[2]);
20904              break;
20905
20906            case _util.OPS.setDash:
20907              this.setDash(args[0], args[1]);
20908              break;
20909
20910            case _util.OPS.setGState:
20911              this.setGState(args[0]);
20912              break;
20913
20914            case _util.OPS.fill:
20915              this.fill();
20916              break;
20917
20918            case _util.OPS.eoFill:
20919              this.eoFill();
20920              break;
20921
20922            case _util.OPS.stroke:
20923              this.stroke();
20924              break;
20925
20926            case _util.OPS.fillStroke:
20927              this.fillStroke();
20928              break;
20929
20930            case _util.OPS.eoFillStroke:
20931              this.eoFillStroke();
20932              break;
20933
20934            case _util.OPS.clip:
20935              this.clip('nonzero');
20936              break;
20937
20938            case _util.OPS.eoClip:
20939              this.clip('evenodd');
20940              break;
20941
20942            case _util.OPS.paintSolidColorImageMask:
20943              this.paintSolidColorImageMask();
20944              break;
20945
20946            case _util.OPS.paintJpegXObject:
20947              this.paintJpegXObject(args[0], args[1], args[2]);
20948              break;
20949
20950            case _util.OPS.paintImageXObject:
20951              this.paintImageXObject(args[0]);
20952              break;
20953
20954            case _util.OPS.paintInlineImageXObject:
20955              this.paintInlineImageXObject(args[0]);
20956              break;
20957
20958            case _util.OPS.paintImageMaskXObject:
20959              this.paintImageMaskXObject(args[0]);
20960              break;
20961
20962            case _util.OPS.paintFormXObjectBegin:
20963              this.paintFormXObjectBegin(args[0], args[1]);
20964              break;
20965
20966            case _util.OPS.paintFormXObjectEnd:
20967              this.paintFormXObjectEnd();
20968              break;
20969
20970            case _util.OPS.closePath:
20971              this.closePath();
20972              break;
20973
20974            case _util.OPS.closeStroke:
20975              this.closeStroke();
20976              break;
20977
20978            case _util.OPS.closeFillStroke:
20979              this.closeFillStroke();
20980              break;
20981
20982            case _util.OPS.closeEOFillStroke:
20983              this.closeEOFillStroke();
20984              break;
20985
20986            case _util.OPS.nextLine:
20987              this.nextLine();
20988              break;
20989
20990            case _util.OPS.transform:
20991              this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);
20992              break;
20993
20994            case _util.OPS.constructPath:
20995              this.constructPath(args[0], args[1]);
20996              break;
20997
20998            case _util.OPS.endPath:
20999              this.endPath();
21000              break;
21001
21002            case 92:
21003              this.group(opTree[x].items);
21004              break;
21005
21006            default:
21007              (0, _util.warn)('Unimplemented operator ' + fn);
21008              break;
21009          }
21010        }
21011      },
21012      setWordSpacing: function SVGGraphics_setWordSpacing(wordSpacing) {
21013        this.current.wordSpacing = wordSpacing;
21014      },
21015      setCharSpacing: function SVGGraphics_setCharSpacing(charSpacing) {
21016        this.current.charSpacing = charSpacing;
21017      },
21018      nextLine: function SVGGraphics_nextLine() {
21019        this.moveText(0, this.current.leading);
21020      },
21021      setTextMatrix: function SVGGraphics_setTextMatrix(a, b, c, d, e, f) {
21022        var current = this.current;
21023        this.current.textMatrix = this.current.lineMatrix = [a, b, c, d, e, f];
21024        this.current.x = this.current.lineX = 0;
21025        this.current.y = this.current.lineY = 0;
21026        current.xcoords = [];
21027        current.tspan = this.svgFactory.createElement('svg:tspan');
21028        current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
21029        current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');
21030        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21031        current.txtElement = this.svgFactory.createElement('svg:text');
21032        current.txtElement.appendChild(current.tspan);
21033      },
21034      beginText: function SVGGraphics_beginText() {
21035        this.current.x = this.current.lineX = 0;
21036        this.current.y = this.current.lineY = 0;
21037        this.current.textMatrix = _util.IDENTITY_MATRIX;
21038        this.current.lineMatrix = _util.IDENTITY_MATRIX;
21039        this.current.tspan = this.svgFactory.createElement('svg:tspan');
21040        this.current.txtElement = this.svgFactory.createElement('svg:text');
21041        this.current.txtgrp = this.svgFactory.createElement('svg:g');
21042        this.current.xcoords = [];
21043      },
21044      moveText: function SVGGraphics_moveText(x, y) {
21045        var current = this.current;
21046        this.current.x = this.current.lineX += x;
21047        this.current.y = this.current.lineY += y;
21048        current.xcoords = [];
21049        current.tspan = this.svgFactory.createElement('svg:tspan');
21050        current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
21051        current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');
21052        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21053      },
21054      showText: function SVGGraphics_showText(glyphs) {
21055        var current = this.current;
21056        var font = current.font;
21057        var fontSize = current.fontSize;
21058
21059        if (fontSize === 0) {
21060          return;
21061        }
21062
21063        var charSpacing = current.charSpacing;
21064        var wordSpacing = current.wordSpacing;
21065        var fontDirection = current.fontDirection;
21066        var textHScale = current.textHScale * fontDirection;
21067        var glyphsLength = glyphs.length;
21068        var vertical = font.vertical;
21069        var widthAdvanceScale = fontSize * current.fontMatrix[0];
21070        var x = 0,
21071            i;
21072
21073        for (i = 0; i < glyphsLength; ++i) {
21074          var glyph = glyphs[i];
21075
21076          if (glyph === null) {
21077            x += fontDirection * wordSpacing;
21078            continue;
21079          }
21079 else if ((0, _util.isNum)(glyph)) {
21080            x += -glyph * fontSize * 0.001;
21081            continue;
21082          }
21083
21084          var width = glyph.width;
21085          var character = glyph.fontChar;
21086          var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
21087          var charWidth = width * widthAdvanceScale + spacing * fontDirection;
21088
21089          if (!glyph.isInFont && !font.missingFile) {
21090            x += charWidth;
21091            continue;
21092          }
21093
21094          current.xcoords.push(current.x + x * textHScale);
21095          current.tspan.textContent += character;
21096          x += charWidth;
21097        }
21098
21099        if (vertical) {
21100          current.y -= x * textHScale;
21101        } else {
21102          current.x += x * textHScale;
21103        }
21104
21105        current.tspan.setAttributeNS(null, 'x', current.xcoords.map(pf).join(' '));
21106        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21107        current.tspan.setAttributeNS(null, 'font-family', current.fontFamily);
21108        current.tspan.setAttributeNS(null, 'font-size', pf(current.fontSize) + 'px');
21109
21110        if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {
21111          current.tspan.setAttributeNS(null, 'font-style', current.fontStyle);
21112        }
21113
21114        if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {
21115          current.tspan.setAttributeNS(null, 'font-weight', current.fontWeight);
21116        }
21117
21118        var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
21119
21120        if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
21121          if (current.fillColor !== SVG_DEFAULTS.fillColor) {
21122            current.tspan.setAttributeNS(null, 'fill', current.fillColor);
21123          }
21124
21125          if (current.fillAlpha < 1) {
21126            current.tspan.setAttributeNS(null, 'fill-opacity', current.fillAlpha);
21127          }
21128        } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {
21129          current.tspan.setAttributeNS(null, 'fill', 'transparent');
21130        } else {
21131          current.tspan.setAttributeNS(null, 'fill', 'none');
21132        }
21133
21134        if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
21135          this._setStrokeAttributes(current.tspan);
21136        }
21137
21138        var textMatrix = current.textMatrix;
21139
21140        if (current.textRise !== 0) {
21141          textMatrix = textMatrix.slice();
21142          textMatrix[5] += current.textRise;
21143        }
21144
21145        current.txtElement.setAttributeNS(null, 'transform', pm(textMatrix) + ' scale(1, -1)');
21146        current.txtElement.setAttributeNS(XML_NS, 'xml:space', 'preserve');
21147        current.txtElement.appendChild(current.tspan);
21148        current.txtgrp.appendChild(current.txtElement);
21149
21150        this._ensureTransformGroup().appendChild(current.txtElement);
21151      },
21152      setLeadingMoveText: function SVGGraphics_setLeadingMoveText(x, y) {
21153        this.setLeading(-y);
21154        this.moveText(x, y);
21155      },
21156      addFontStyle: function SVGGraphics_addFontStyle(fontObj) {
21157        if (!this.cssStyle) {
21158          this.cssStyle = this.svgFactory.createElement('svg:style');
21159          this.cssStyle.setAttributeNS(null, 'type', 'text/css');
21160          this.defs.appendChild(this.cssStyle);
21161        }
21162
21163        var url = (0, _util.createObjectURL)(fontObj.data, fontObj.mimetype, this.forceDataSchema);
21164        this.cssStyle.textContent += '@font-face { font-family: "' + fontObj.loadedName + '";' + ' src: url(' + url + '); }\n';
21165      },
21166      setFont: function SVGGraphics_setFont(details) {
21167        var current = this.current;
21168        var fontObj = this.commonObjs.get(details[0]);
21169        var size = details[1];
21170        this.current.font = fontObj;
21171
21172        if (this.embedFonts && fontObj.data && !this.embeddedFonts[fontObj.loadedName]) {
21173          this.addFontStyle(fontObj);
21174          this.embeddedFonts[fontObj.loadedName] = fontObj;
21175        }
21176
21177        current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
21178        var bold = fontObj.black ? fontObj.bold ? 'bolder' : 'bold' : fontObj.bold ? 'bold' : 'normal';
21179        var italic = fontObj.italic ? 'italic' : 'normal';
21180
21181        if (size < 0) {
21182          size = -size;
21183          current.fontDirection = -1;
21184        } else {
21185          current.fontDirection = 1;
21186        }
21187
21188        current.fontSize = size;
21189        current.fontFamily = fontObj.loadedName;
21190        current.fontWeight = bold;
21191        current.fontStyle = italic;
21192        current.tspan = this.svgFactory.createElement('svg:tspan');
21193        current.tspan.setAttributeNS(null, 'y', pf(-current.y));
21194        current.xcoords = [];
21195      },
21196      endText: function endText() {
21197        var current = this.current;
21198
21199        if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement && current.txtElement.hasChildNodes()) {
21200          current.element = current.txtElement;
21201          this.clip('nonzero');
21202          this.endPath();
21203        }
21204      },
21205      setLineWidth: function SVGGraphics_setLineWidth(width) {
21206        if (width > 0) {
21207          this.current.lineWidth = width;
21208        }
21209      },
21210      setLineCap: function SVGGraphics_setLineCap(style) {
21211        this.current.lineCap = LINE_CAP_STYLES[style];
21212      },
21213      setLineJoin: function SVGGraphics_setLineJoin(style) {
21214        this.current.lineJoin = LINE_JOIN_STYLES[style];
21215      },
21216      setMiterLimit: function SVGGraphics_setMiterLimit(limit) {
21217        this.current.miterLimit = limit;
21218      },
21219      setStrokeAlpha: function SVGGraphics_setStrokeAlpha(strokeAlpha) {
21220        this.current.strokeAlpha = strokeAlpha;
21221      },
21222      setStrokeRGBColor: function SVGGraphics_setStrokeRGBColor(r, g, b) {
21223        var color = _util.Util.makeCssRgb(r, g, b);
21224
21225        this.current.strokeColor = color;
21226      },
21227      setFillAlpha: function SVGGraphics_setFillAlpha(fillAlpha) {
21228        this.current.fillAlpha = fillAlpha;
21229      },
21230      setFillRGBColor: function SVGGraphics_setFillRGBColor(r, g, b) {
21231        var color = _util.Util.makeCssRgb(r, g, b);
21232
21233        this.current.fillColor = color;
21234        this.current.tspan = this.svgFactory.createElement('svg:tspan');
21235        this.current.xcoords = [];
21236      },
21237      setDash: function SVGGraphics_setDash(dashArray, dashPhase) {
21238        this.current.dashArray = dashArray;
21239        this.current.dashPhase = dashPhase;
21240      },
21241      constructPath: function SVGGraphics_constructPath(ops, args) {
21242        var current = this.current;
21243        var x = current.x,
21244            y = current.y;
21245        current.path = this.svgFactory.createElement('svg:path');
21246        var d = [];
21247        var opLength = ops.length;
21248
21249        for (var i = 0, j = 0; i < opLength; i++) {
21250          switch (ops[i] | 0) {
21251            case _util.OPS.rectangle:
21252              x = args[j++];
21253              y = args[j++];
21254              var width = args[j++];
21255              var height = args[j++];
21256              var xw = x + width;
21257              var yh = y + height;
21258              d.push('M', pf(x), pf(y), 'L', pf(xw), pf(y), 'L', pf(xw), pf(yh), 'L', pf(x), pf(yh), 'Z');
21259              break;
21260
21261            case _util.OPS.moveTo:
21262              x = args[j++];
21263              y = args[j++];
21264              d.push('M', pf(x), pf(y));
21265              break;
21266
21267            case _util.OPS.lineTo:
21268              x = args[j++];
21269              y = args[j++];
21270              d.push('L', pf(x), pf(y));
21271              break;
21272
21273            case _util.OPS.curveTo:
21274              x = args[j + 4];
21275              y = args[j + 5];
21276              d.push('C', pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));
21277              j += 6;
21278              break;
21279
21280            case _util.OPS.curveTo2:
21281              x = args[j + 2];
21282              y = args[j + 3];
21283              d.push('C', pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));
21284              j += 4;
21285              break;
21286
21287            case _util.OPS.curveTo3:
21288              x = args[j + 2];
21289              y = args[j + 3];
21290              d.push('C', pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));
21291              j += 4;
21292              break;
21293
21294            case _util.OPS.closePath:
21295              d.push('Z');
21296              break;
21297          }
21298        }
21299
21300        current.path.setAttributeNS(null, 'd', d.join(' '));
21301        current.path.setAttributeNS(null, 'fill', 'none');
21302
21303        this._ensureTransformGroup().appendChild(current.path);
21304
21305        current.element = current.path;
21306        current.setCurrentPoint(x, y);
21307      },
21308      endPath: function SVGGraphics_endPath() {
21309        if (!this.pendingClip) {
21310          return;
21311        }
21312
21313        var current = this.current;
21314        var clipId = 'clippath' + clipCount;
21315        clipCount++;
21316        var clipPath = this.svgFactory.createElement('svg:clipPath');
21317        clipPath.setAttributeNS(null, 'id', clipId);
21318        clipPath.setAttributeNS(null, 'transform', pm(this.transformMatrix));
21319        var clipElement = current.element.cloneNode(true);
21320
21321        if (this.pendingClip === 'evenodd') {
21322          clipElement.setAttributeNS(null, 'clip-rule', 'evenodd');
21323        } else {
21324          clipElement.setAttributeNS(null, 'clip-rule', 'nonzero');
21325        }
21326
21327        this.pendingClip = null;
21328        clipPath.appendChild(clipElement);
21329        this.defs.appendChild(clipPath);
21330
21331        if (current.activeClipUrl) {
21332          current.clipGroup = null;
21333          this.extraStack.forEach(function (prev) {
21334            prev.clipGroup = null;
21335          });
21336          clipPath.setAttributeNS(null, 'clip-path', current.activeClipUrl);
21337        }
21338
21339        current.activeClipUrl = 'url(#' + clipId + ')';
21340        this.tgrp = null;
21341      },
21342      clip: function SVGGraphics_clip(type) {
21343        this.pendingClip = type;
21344      },
21345      closePath: function SVGGraphics_closePath() {
21346        var current = this.current;
21347
21348        if (current.path) {
21349          var d = current.path.getAttributeNS(null, 'd');
21350          d += 'Z';
21351          current.path.setAttributeNS(null, 'd', d);
21352        }
21353      },
21354      setLeading: function SVGGraphics_setLeading(leading) {
21355        this.current.leading = -leading;
21356      },
21357      setTextRise: function SVGGraphics_setTextRise(textRise) {
21358        this.current.textRise = textRise;
21359      },
21360      setTextRenderingMode: function setTextRenderingMode(textRenderingMode) {
21361        this.current.textRenderingMode = textRenderingMode;
21362      },
21363      setHScale: function SVGGraphics_setHScale(scale) {
21364        this.current.textHScale = scale / 100;
21365      },
21366      setGState: function SVGGraphics_setGState(states) {
21367        for (var i = 0, ii = states.length; i < ii; i++) {
21368          var state = states[i];
21369          var key = state[0];
21370          var value = state[1];
21371
21372          switch (key) {
21373            case 'LW':
21374              this.setLineWidth(value);
21375              break;
21376
21377            case 'LC':
21378              this.setLineCap(value);
21379              break;
21380
21381            case 'LJ':
21382              this.setLineJoin(value);
21383              break;
21384
21385            case 'ML':
21386              this.setMiterLimit(value);
21387              break;
21388
21389            case 'D':
21390              this.setDash(value[0], value[1]);
21391              break;
21392
21393            case 'Font':
21394              this.setFont(value);
21395              break;
21396
21397            case 'CA':
21398              this.setStrokeAlpha(value);
21399              break;
21400
21401            case 'ca':
21402              this.setFillAlpha(value);
21403              break;
21404
21405            default:
21406              (0, _util.warn)('Unimplemented graphic state ' + key);
21407              break;
21408          }
21409        }
21410      },
21411      fill: function SVGGraphics_fill() {
21412        var current = this.current;
21413
21414        if (current.element) {
21415          current.element.setAttributeNS(null, 'fill', current.fillColor);
21416          current.element.setAttributeNS(null, 'fill-opacity', current.fillAlpha);
21417          this.endPath();
21418        }
21419      },
21420      stroke: function SVGGraphics_stroke() {
21421        var current = this.current;
21422
21423        if (current.element) {
21424          this._setStrokeAttributes(current.element);
21425
21426          current.element.setAttributeNS(null, 'fill', 'none');
21427          this.endPath();
21428        }
21429      },
21430      _setStrokeAttributes: function _setStrokeAttributes(element) {
21431        var current = this.current;
21432        element.setAttributeNS(null, 'stroke', current.strokeColor);
21433        element.setAttributeNS(null, 'stroke-opacity', current.strokeAlpha);
21434        element.setAttributeNS(null, 'stroke-miterlimit', pf(current.miterLimit));
21435        element.setAttributeNS(null, 'stroke-linecap', current.lineCap);
21436        element.setAttributeNS(null, 'stroke-linejoin', current.lineJoin);
21437        element.setAttributeNS(null, 'stroke-width', pf(current.lineWidth) + 'px');
21438        element.setAttributeNS(null, 'stroke-dasharray', current.dashArray.map(pf).join(' '));
21439        element.setAttributeNS(null, 'stroke-dashoffset', pf(current.dashPhase) + 'px');
21440      },
21441      eoFill: function SVGGraphics_eoFill() {
21442        if (this.current.element) {
21443          this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
21444        }
21445
21446        this.fill();
21447      },
21448      fillStroke: function SVGGraphics_fillStroke() {
21449        this.stroke();
21450        this.fill();
21451      },
21452      eoFillStroke: function SVGGraphics_eoFillStroke() {
21453        if (this.current.element) {
21454          this.current.element.setAttributeNS(null, 'fill-rule', 'evenodd');
21455        }
21456
21457        this.fillStroke();
21458      },
21459      closeStroke: function SVGGraphics_closeStroke() {
21460        this.closePath();
21461        this.stroke();
21462      },
21463      closeFillStroke: function SVGGraphics_closeFillStroke() {
21464        this.closePath();
21465        this.fillStroke();
21466      },
21467      closeEOFillStroke: function closeEOFillStroke() {
21468        this.closePath();
21469        this.eoFillStroke();
21470      },
21471      paintSolidColorImageMask: function SVGGraphics_paintSolidColorImageMask() {
21472        var current = this.current;
21473        var rect = this.svgFactory.createElement('svg:rect');
21474        rect.setAttributeNS(null, 'x', '0');
21475        rect.setAttributeNS(null, 'y', '0');
21476        rect.setAttributeNS(null, 'width', '1px');
21477        rect.setAttributeNS(null, 'height', '1px');
21478        rect.setAttributeNS(null, 'fill', current.fillColor);
21479
21480        this._ensureTransformGroup().appendChild(rect);
21481      },
21482      paintJpegXObject: function SVGGraphics_paintJpegXObject(objId, w, h) {
21483        var imgObj = this.objs.get(objId);
21484        var imgEl = this.svgFactory.createElement('svg:image');
21485        imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgObj.src);
21486        imgEl.setAttributeNS(null, 'width', pf(w));
21487        imgEl.setAttributeNS(null, 'height', pf(h));
21488        imgEl.setAttributeNS(null, 'x', '0');
21489        imgEl.setAttributeNS(null, 'y', pf(-h));
21490        imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / w) + ' ' + pf(-1 / h) + ')');
21491
21492        this._ensureTransformGroup().appendChild(imgEl);
21493      },
21494      paintImageXObject: function SVGGraphics_paintImageXObject(objId) {
21495        var imgData = this.objs.get(objId);
21496
21497        if (!imgData) {
21498          (0, _util.warn)('Dependent image isn\'t ready yet');
21499          return;
21500        }
21501
21502        this.paintInlineImageXObject(imgData);
21503      },
21504      paintInlineImageXObject: function SVGGraphics_paintInlineImageXObject(imgData, mask) {
21505        var width = imgData.width;
21506        var height = imgData.height;
21507        var imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);
21508        var cliprect = this.svgFactory.createElement('svg:rect');
21509        cliprect.setAttributeNS(null, 'x', '0');
21510        cliprect.setAttributeNS(null, 'y', '0');
21511        cliprect.setAttributeNS(null, 'width', pf(width));
21512        cliprect.setAttributeNS(null, 'height', pf(height));
21513        this.current.element = cliprect;
21514        this.clip('nonzero');
21515        var imgEl = this.svgFactory.createElement('svg:image');
21516        imgEl.setAttributeNS(XLINK_NS, 'xlink:href', imgSrc);
21517        imgEl.setAttributeNS(null, 'x', '0');
21518        imgEl.setAttributeNS(null, 'y', pf(-height));
21519        imgEl.setAttributeNS(null, 'width', pf(width) + 'px');
21520        imgEl.setAttributeNS(null, 'height', pf(height) + 'px');
21521        imgEl.setAttributeNS(null, 'transform', 'scale(' + pf(1 / width) + ' ' + pf(-1 / height) + ')');
21522
21523        if (mask) {
21524          mask.appendChild(imgEl);
21525        } else {
21526          this._ensureTransformGroup().appendChild(imgEl);
21527        }
21528      },
21529      paintImageMaskXObject: function SVGGraphics_paintImageMaskXObject(imgData) {
21530        var current = this.current;
21531        var width = imgData.width;
21532        var height = imgData.height;
21533        var fillColor = current.fillColor;
21534        current.maskId = 'mask' + maskCount++;
21535        var mask = this.svgFactory.createElement('svg:mask');
21536        mask.setAttributeNS(null, 'id', current.maskId);
21537        var rect = this.svgFactory.createElement('svg:rect');
21538        rect.setAttributeNS(null, 'x', '0');
21539        rect.setAttributeNS(null, 'y', '0');
21540        rect.setAttributeNS(null, 'width', pf(width));
21541        rect.setAttributeNS(null, 'height', pf(height));
21542        rect.setAttributeNS(null, 'fill', fillColor);
21543        rect.setAttributeNS(null, 'mask', 'url(#' + current.maskId + ')');
21544        this.defs.appendChild(mask);
21545
21546        this._ensureTransformGroup().appendChild(rect);
21547
21548        this.paintInlineImageXObject(imgData, mask);
21549      },
21550      paintFormXObjectBegin: function SVGGraphics_paintFormXObjectBegin(matrix, bbox) {
21551        if (Array.isArray(matrix) && matrix.length === 6) {
21552          this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);
21553        }
21554
21555        if (bbox) {
21556          var width = bbox[2] - bbox[0];
21557          var height = bbox[3] - bbox[1];
21558          var cliprect = this.svgFactory.createElement('svg:rect');
21559          cliprect.setAttributeNS(null, 'x', bbox[0]);
21560          cliprect.setAttributeNS(null, 'y', bbox[1]);
21561          cliprect.setAttributeNS(null, 'width', pf(width));
21562          cliprect.setAttributeNS(null, 'height', pf(height));
21563          this.current.element = cliprect;
21564          this.clip('nonzero');
21565          this.endPath();
21566        }
21567      },
21568      paintFormXObjectEnd: function SVGGraphics_paintFormXObjectEnd() {},
21569      _initialize: function _initialize(viewport) {
21570        var svg = this.svgFactory.create(viewport.width, viewport.height);
21571        var definitions = this.svgFactory.createElement('svg:defs');
21572        svg.appendChild(definitions);
21573        this.defs = definitions;
21574        var rootGroup = this.svgFactory.createElement('svg:g');
21575        rootGroup.setAttributeNS(null, 'transform', pm(viewport.transform));
21576        svg.appendChild(rootGroup);
21577        this.svg = rootGroup;
21578        return svg;
21579      },
21580      _ensureClipGroup: function SVGGraphics_ensureClipGroup() {
21581        if (!this.current.clipGroup) {
21582          var clipGroup = this.svgFactory.createElement('svg:g');
21583          clipGroup.setAttributeNS(null, 'clip-path', this.current.activeClipUrl);
21584          this.svg.appendChild(clipGroup);
21585          this.current.clipGroup = clipGroup;
21586        }
21587
21588        return this.current.clipGroup;
21589      },
21590      _ensureTransformGroup: function SVGGraphics_ensureTransformGroup() {
21591        if (!this.tgrp) {
21592          this.tgrp = this.svgFactory.createElement('svg:g');
21593          this.tgrp.setAttributeNS(null, 'transform', pm(this.transformMatrix));
21594
21595          if (this.current.activeClipUrl) {
21596            this._ensureClipGroup().appendChild(this.tgrp);
21597          } else {
21598            this.svg.appendChild(this.tgrp);
21599          }
21600        }
21601
21602        return this.tgrp;
21603      }
21604    };
21605    return SVGGraphics;
21606  }();
21607}
21608
21609/***/ }),
21610/* 165 */
21611/***/ (function(module, exports, __w_pdfjs_require__) {
21612
21613"use strict";
21614
21615
21616Object.defineProperty(exports, "__esModule", {
21617  value: true
21618});
21619exports.PDFNodeStream = void 0;
21620
21621var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
21622
21623var _util = __w_pdfjs_require__(1);
21624
21625var _network_utils = __w_pdfjs_require__(166);
21626
21627function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21628
21629function _typeof(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
21630
21631function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
21632
21633function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
21634
21635function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
21636
21637function _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); }
21638
21639function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
21640
21641function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { tr
21641y { 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); } }
21642
21643function _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); }); }; }
21644
21645function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
21646
21647function _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); } }
21648
21649function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
21650
21651var fs = require('fs');
21652
21653var http = require('http');
21654
21655var https = require('https');
21656
21657var url = require('url');
21658
21659var fileUriRegex = /^file:\/\/\/[a-zA-Z]:\//;
21660
21661function parseUrl(sourceUrl) {
21662  var parsedUrl = url.parse(sourceUrl);
21663
21664  if (parsedUrl.protocol === 'file:' || parsedUrl.host) {
21665    return parsedUrl;
21666  }
21667
21668  if (/^[a-z]:[/\\]/i.test(sourceUrl)) {
21669    return url.parse("file:///".concat(sourceUrl));
21670  }
21671
21672  if (!parsedUrl.host) {
21673    parsedUrl.protocol = 'file:';
21674  }
21675
21676  return parsedUrl;
21677}
21678
21679var PDFNodeStream =
21680/*#__PURE__*/
21681function () {
21682  function PDFNodeStream(source) {
21683    _classCallCheck(this, PDFNodeStream);
21684
21685    this.source = source;
21686    this.url = parseUrl(source.url);
21687    this.isHttp = this.url.protocol === 'http:' || this.url.protocol === 'https:';
21688    this.isFsUrl = this.url.protocol === 'file:';
21689    this.httpHeaders = this.isHttp && source.httpHeaders || {};
21690    this._fullRequest = null;
21691    this._rangeRequestReaders = [];
21692  }
21693
21694  _createClass(PDFNodeStream, [{
21695    key: "getFullReader",
21696    value: function getFullReader() {
21697      (0, _util.assert)(!this._fullRequest);
21698      this._fullRequest = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);
21699      return this._fullRequest;
21700    }
21701  }, {
21702    key: "getRangeReader",
21703    value: function getRangeReader(start, end) {
21704      var rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);
21705
21706      this._rangeRequestReaders.push(rangeReader);
21707
21708      return rangeReader;
21709    }
21710  }, {
21711    key: "cancelAllRequests",
21712    value: function cancelAllRequests(reason) {
21713      if (this._fullRequest) {
21714        this._fullRequest.cancel(reason);
21715      }
21716
21717      var readers = this._rangeRequestReaders.slice(0);
21718
21719      readers.forEach(function (reader) {
21720        reader.cancel(reason);
21721      });
21722    }
21723  }]);
21724
21725  return PDFNodeStream;
21726}();
21727
21728exports.PDFNodeStream = PDFNodeStream;
21729
21730var BaseFullReader =
21731/*#__PURE__*/
21732function () {
21733  function BaseFullReader(stream) {
21734    _classCallCheck(this, BaseFullReader);
21735
21736    this._url = stream.url;
21737    this._done = false;
21738    this._storedError = null;
21739    this.onProgress = null;
21740    var source = stream.source;
21741    this._contentLength = source.length;
21742    this._loaded = 0;
21743    this._filename = null;
21744    this._disableRange = source.disableRange || false;
21745    this._rangeChunkSize = source.rangeChunkSize;
21746
21747    if (!this._rangeChunkSize && !this._disableRange) {
21748      this._disableRange = true;
21749    }
21750
21751    this._isStreamingSupported = !source.disableStream;
21752    this._isRangeSupported = !source.disableRange;
21753    this._readableStream = null;
21754    this._readCapability = (0, _util.createPromiseCapability)();
21755    this._headersCapability = (0, _util.createPromiseCapability)();
21756  }
21757
21758  _createClass(BaseFullReader, [{
21759    key: "read",
21760    value: function () {
21761      var _read = _asyncToGenerator(
21762      /*#__PURE__*/
21763      _regenerator.default.mark(function _callee() {
21764        var chunk, buffer;
21765        return _regenerator.default.wrap(function _callee$(_context) {
21766          while (1) {
21767            switch (_context.prev = _context.next) {
21768              case 0:
21769                _context.next = 2;
21770                return this._readCapability.promise;
21771
21772              case 2:
21773                if (!this._done) {
21774                  _context.next = 4;
21775                  break;
21776                }
21777
21778                return _context.abrupt("return", {
21779                  value: undefined,
21780                  done: true
21781                });
21782
21783              case 4:
21784                if (!this._storedError) {
21785                  _context.next = 6;
21786                  break;
21787                }
21788
21789                throw this._storedError;
21790
21791              case 6:
21792                chunk = this._readableStream.read();
21793
21794                if (!(chunk === null)) {
21795                  _context.next = 10;
21796                  break;
21797                }
21798
21799                this._readCapability = (0, _util.createPromiseCapability)();
21800                return _context.abrupt("return", this.read());
21801
21802              case 10:
21803                this._loaded += chunk.length;
21804
21805                if (this.onProgress) {
21806                  this.onProgress({
21807                    loaded: this._loaded,
21808                    total: this._contentLength
21809                  });
21810                }
21811
21812                buffer = new Uint8Array(chunk).buffer;
21813                return _context.abrupt("return", {
21814                  value: buffer,
21815                  done: false
21816                });
21817
21818              case 14:
21819              case "end":
21820                return _context.stop();
21821            }
21822          }
21823        }, _callee, this);
21824      }));
21825
21826      function read() {
21827        return _read.apply(this, arguments);
21828      }
21829
21830      return read;
21831    }()
21832  }, {
21833    key: "cancel",
21834    value: function cancel(reason) {
21835      if (!this._readableStream) {
21836        this._error(reason);
21837
21838        return;
21839      }
21840
21841      this._readableStream.destroy(reason);
21842    }
21843  }, {
21844    key: "_error",
21845    value: function _error(reason) {
21846      this._storedError = reason;
21847
21848      this._readCapability.resolve();
21849    }
21850  }, {
21851    key: "_setReadableStream",
21852    value: function _setReadableStream(readableStream) {
21853      var _this = this;
21854
21855      this._readableStream = readableStream;
21856      readableStream.on('readable', function () {
21857        _this._readCapability.resolve();
21858      });
21859      readableStream.on('end', function () {
21860        readableStream.destroy();
21861        _this._done = true;
21862
21863        _this._readCapability.resolve();
21864      });
21865      readableStream.on('error', function (reason) {
21866        _this._error(reason);
21867      });
21868
21869      if (!this._isStreamingSupported && this._isRangeSupported) {
21870        this._error(new _util.AbortException('streaming is disabled'));
21871      }
21872
21873      if (this._storedError) {
21874        this._readableStream.destroy(this._storedError);
21875      }
21876    }
21877  }, {
21878    key: "headersReady",
21879    get: function get() {
21880      return this._headersCapability.promise;
21881    }
21882  }, {
21883    key: "filename",
21884    get: function get() {
21885      return this._filename;
21886    }
21887  }, {
21888    key: "contentLength",
21889    get: function get() {
21890      return this._contentLength;
21891    }
21892  }, {
21893    key: "isRangeSupported",
21894    get: function get() {
21895      return this._isRangeSupported;
21896    }
21897  }, {
21898    key: "isStreamingSupported",
21899    get: function get() {
21900      return this._isStreamingSupported;
21901    }
21902  }]);
21903
21904  return BaseFullReader;
21905}();
21906
21907var BaseRangeReader =
21908/*#__PURE__*/
21909function () {
21910  function BaseRangeReader(stream) {
21911    _classCallCheck(this, BaseRangeReader);
21912
21913    this._url = stream.url;
21914    this._done = false;
21915    this._storedError = null;
21916    this.onProgress = null;
21917    this._loaded = 0;
21918    this._readableStream = null;
21919    this._readCapability = (0, _util.createPromiseCapability)();
21920    var source = stream.source;
21921    this._isStreamingSupported = !source.disableStream;
21922  }
21923
21924  _createClass(BaseRangeReader, [{
21925    key: "read",
21926    value: function () {
21927      var _read2 = _asyncToGenerator(
21928      /*#__PURE__*/
21929      _regenerator.default.mark(function _callee2() {
21930        var chunk, buffer;
21931        return _regenerator.default.wrap(function _callee2$(_context2) {
21932          while (1) {
21933            switch (_context2.prev = _context2.next) {
21934              case 0:
21935                _context2.next = 2;
21936                return this._readCapability.promise;
21937
21938              case 2:
21939                if (!this._done) {
21940                  _context2.next = 4;
21941                  break;
21942                }
21943
21944                return _context2.abrupt("return", {
21945                  value: undefined,
21946                  done: true
21947                });
21948
21949              case 4:
21950                if (!this._storedError) {
21951                  _context2.next = 6;
21952                  break;
21953                }
21954
21955                throw this._storedError;
21956
21957              case 6:
21958                chunk = this._readableStream.read();
21959
21960                if (!(chunk === null)) {
21961                  _context2.next = 10;
21962                  break;
21963                }
21964
21965                this._readCapability = (0, _util.createPromiseCapability)();
21966                return _context2.abrupt("return", this.read());
21967
21968              case 10:
21969                this._loaded += chunk.length;
21970
21971                if (this.onProgress) {
21972                  this.onProgress({
21973                    loaded: this._loaded
21974                  });
21975                }
21976
21977                buffer = new Uint8Array(chunk).buffer;
21978                return _context2.abrupt("return", {
21979                  value: buffer,
21980                  done: false
21981                });
21982
21983              case 14:
21984              case "end":
21985                return _context2.stop();
21986            }
21987          }
21988        }, _callee2, this);
21989      }));
21990
21991      function read() {
21992        return _read2.apply(this, arguments);
21993      }
21994
21995      return read;
21996    }()
21997  }, {
21998    key: "cancel",
21999    value: function cancel(reason) {
22000      if (!this._readableStream) {
22001        this._error(reason);
22002
22003        return;
22004      }
22005
22006      this._readableStream.destroy(reason);
22007    }
22008  }, {
22009    key: "_error",
22010    value: function _error(reason) {
22011      this._storedError = reason;
22012
22013      this._readCapability.resolve();
22014    }
22015  }, {
22016    key: "_setReadableStream",
22017    value: function _setReadableStream(readableStream) {
22018      var _this2 = this;
22019
22020      this._readableStream = readableStream;
22021      readableStream.on('readable', function () {
22022        _this2._readCapability.resolve();
22023      });
22024      readableStream.on('end', function () {
22025        readableStream.destroy();
22026        _this2._done = true;
22027
22028        _this2._readCapability.resolve();
22029      });
22030      readableStream.on('error', function (reason) {
22031        _this2._error(reason);
22032      });
22033
22034      if (this._storedError) {
22035        this._readableStream.destroy(this._storedError);
22036      }
22037    }
22038  }, {
22039    key: "isStreamingSupported",
22040    get: function get() {
22041      return this._isStreamingSupported;
22042    }
22043  }]);
22044
22045  return BaseRangeReader;
22046}();
22047
22048function createRequestOptions(url, headers) {
22049  return {
22050    protocol: url.protocol,
22051    auth: url.auth,
22052    host: url.hostname,
22053    port: url.port,
22054    path: url.path,
22055    method: 'GET',
22056    headers: headers
22057  };
22058}
22059
22060var PDFNodeStreamFullReader =
22061/*#__PURE__*/
22062function (_BaseFullReader) {
22063  _inherits(PDFNodeStreamFullReader, _BaseFullReader);
22064
22065  function PDFNodeStreamFullReader(stream) {
22066    var _this3;
22067
22068    _classCallCheck(this, PDFNodeStreamFullReader);
22069
22070    _this3 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFullReader).call(this, stream));
22071
22072    var handleResponse = function handleResponse(response) {
22073      if (response.statusCode === 404) {
22074        var error = new _util.MissingPDFException("Missing PDF \"".concat(_this3._url, "\"."));
22075        _this3._storedError = error;
22076
22077        _this3._headersCapability.reject(error);
22078
22079        return;
22080      }
22081
22082      _this3._headersCapability.resolve();
22083
22084      _this3._setReadableStream(response);
22085
22086      var getResponseHeader = function getResponseHeader(name) {
22087        return _this3._readableStream.headers[name.toLowerCase()];
22088      };
22089
22090      var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
22091        getResponseHeader: getResponseHeader,
22092        isHttp: stream.isHttp,
22093        rangeChunkSize: _this3._rangeChunkSize,
22094        disableRange: _this3._disableRange
22095      }),
22096          allowRangeRequests = _validateRangeRequest.allowRangeRequests,
22097          suggestedLength = _validateRangeRequest.suggestedLength;
22098
22099      _this3._isRangeSupported = allowRangeRequests;
22100      _this3._contentLength = suggestedLength || _this3._contentLength;
22101      _this3._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
22102    };
22103
22104    _this3._request = null;
22105
22106    if (_this3._url.protocol === 'http:') {
22107      _this3._request = http.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
22108    } else {
22109      _this3._request = https.request(createRequestOptions(_this3._url, stream.httpHeaders), handleResponse);
22110    }
22111
22112    _this3._request.on('error', function (reason) {
22113      _this3._storedError = reason;
22114
22115      _this3._headersCapability.reject(reason);
22116    });
22117
22118    _this3._request.end();
22119
22120    return _this3;
22121  }
22122
22123  return PDFNodeStreamFullReader;
22124}(BaseFullReader);
22125
22126var PDFNodeStreamRangeReader =
22127/*#__PURE__*/
22128function (_BaseRangeReader) {
22129  _inherits(PDFNodeStreamRangeReader, _BaseRangeReader);
22130
22131  function PDFNodeStreamRangeReader(stream, start, end) {
22132    var _this4;
22133
22134    _classCallCheck(this, PDFNodeStreamRangeReader);
22135
22136    _this4 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamRangeReader).call(this, stream));
22137    _this4._httpHeaders = {};
22138
22139    for (var property in stream.httpHeaders) {
22140      var value = stream.httpHeaders[property];
22141
22142      if (typeof value === 'undefined') {
22143        continue;
22144      }
22145
22146      _this4._httpHeaders[property] = value;
22147    }
22148
22149    _this4._httpHeaders['Range'] = "bytes=".concat(start, "-").concat(end - 1);
22150
22151    var handleResponse = function handleResponse(response) {
22152      if (response.statusCode === 404) {
22153        var error = new _util.MissingPDFException("Missing PDF \"".concat(_this4._url, "\"."));
22154        _this4._storedError = error;
22155        return;
22156      }
22157
22158      _this4._setReadableStream(response);
22159    };
22160
22161    _this4._request = null;
22162
22163    if (_this4._url.protocol === 'http:') {
22164      _this4._request = http.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
22165    } else {
22166      _this4._request = https.request(createRequestOptions(_this4._url, _this4._httpHeaders), handleResponse);
22167    }
22168
22169    _this4._request.on('error', function (reason) {
22170      _this4._storedError = reason;
22171    });
22172
22173    _this4._request.end();
22174
22175    return _this4;
22176  }
22177
22178  return PDFNodeStreamRangeReader;
22179}(BaseRangeReader);
22180
22181var PDFNodeStreamFsFullReader =
22182/*#__PURE__*/
22183function (_BaseFullReader2) {
22184  _inherits(PDFNodeStreamFsFullReader, _BaseFullReader2);
22185
22186  function PDFNodeStreamFsFullReader(stream) {
22187    var _this5;
22188
22189    _classCallCheck(this, PDFNodeStreamFsFullReader);
22190
22191    _this5 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsFullReader).call(this, stream));
22192    var path = decodeURIComponent(_this5._url.path);
22193
22194    if (fileUriRegex.test(_this5._url.href)) {
22195      path = path.replace(/^\//, '');
22196    }
22197
22198    fs.lstat(path, function (error, stat) {
22199      if (error) {
22200        if (error.code === 'ENOENT') {
22201          error = new _util.MissingPDFException("Missing PDF \"".concat(path, "\"."));
22202        }
22203
22204        _this5._storedError = error;
22205
22206        _this5._headersCapability.reject(error);
22207
22208        return;
22209      }
22210
22211      _this5._contentLength = stat.size;
22212
22213      _this5._setReadableStream(fs.createReadStream(path));
22214
22215      _this5._headersCapability.resolve();
22216    });
22217    return _this5;
22218  }
22219
22220  return PDFNodeStreamFsFullReader;
22221}(BaseFullReader);
22222
22223var PDFNodeStreamFsRangeReader =
22224/*#__PURE__*/
22225function (_BaseRangeReader2) {
22226  _inherits(PDFNodeStreamFsRangeReader, _BaseRangeReader2);
22227
22228  function PDFNodeStreamFsRangeReader(stream, start, end) {
22229    var _this6;
22230
22231    _classCallCheck(this, PDFNodeStreamFsRangeReader);
22232
22233    _this6 = _possibleConstructorReturn(this, _getPrototypeOf(PDFNodeStreamFsRangeReader).call(this, stream));
22234    var path = decodeURIComponent(_this6._url.path);
22235
22236    if (fileUriRegex.test(_this6._url.href)) {
22237      path = path.replace(/^\//, '');
22238    }
22239
22240    _this6._setReadableStream(fs.createReadStream(path, {
22241      start: start,
22242      end: end - 1
22243    }));
22244
22245    return _this6;
22246  }
22247
22248  return PDFNodeStreamFsRangeReader;
22249}(BaseRangeReader);
22250
22251/***/ }),
22252/* 166 */
22253/***/ (function(module, exports, __w_pdfjs_require__) {
22254
22255"use strict";
22256
22257
22258Object.defineProperty(exports, "__esModule", {
22259  value: true
22260});
22261exports.createResponseStatusError = createResponseStatusError;
22262exports.extractFilenameFromHeader = extractFilenameFromHeader;
22263exports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;
22264exports.validateResponseStatus = validateResponseStatus;
22265
22266var _util = __w_pdfjs_require__(1);
22267
22268var _content_disposition = __w_pdfjs_require__(167);
22269
22270function validateRangeRequestCapabilities(_ref) {
22271  var getResponseHeader = _ref.getResponseHeader,
22272      isHttp = _ref.isHttp,
22273      rangeChunkSize = _ref.rangeChunkSize,
22274      disableRange = _ref.disableRange;
22275  (0, _util.assert)(rangeChunkSize > 0, 'Range chunk size must be larger than zero');
22276  var returnValues = {
22277    allowRangeRequests: false,
22278    suggestedLength: undefined
22279  };
22280  var length = parseInt(getResponseHeader('Content-Length'), 10);
22281
22282  if (!Number.isInteger(length)) {
22283    return returnValues;
22284  }
22285
22286  returnValues.suggestedLength = length;
22287
22288  if (length <= 2 * rangeChunkSize) {
22289    return returnValues;
22290  }
22291
22292  if (disableRange || !isHttp) {
22293    return returnValues;
22294  }
22295
22296  if (getResponseHeader('Accept-Ranges') !== 'bytes') {
22297    return returnValues;
22298  }
22299
22300  var contentEncoding = getResponseHeader('Content-Encoding') || 'identity';
22301
22302  if (contentEncoding !== 'identity') {
22303    return returnValues;
22304  }
22305
22306  returnValues.allowRangeRequests = true;
22307  return returnValues;
22308}
22309
22310function extractFilenameFromHeader(getResponseHeader) {
22311  var contentDisposition = getResponseHeader('Content-Disposition');
22312
22313  if (contentDisposition) {
22314    var filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);
22315
22316    if (/\.pdf$/i.test(filename)) {
22317      return filename;
22318    }
22319  }
22320
22321  return null;
22322}
22323
22324function createResponseStatusError(status, url) {
22325  if (status === 404 || status === 0 && /^file:/.test(url)) {
22326    return new _util.MissingPDFException('Missing PDF "' + url + '".');
22327  }
22328
22329  return new _util.UnexpectedResponseException('Unexpected server response (' + status + ') while retrieving PDF "' + url + '".', status);
22330}
22331
22332function validateResponseStatus(status) {
22333  return status === 200 || status === 206;
22334}
22335
22336/***/ }),
22337/* 167 */
22338/***/ (function(module, exports, __w_pdfjs_require__) {
22339
22340"use strict";
22341
22342
22343Object.defineProperty(exports, "__esModule", {
22344  value: true
22345});
22346exports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;
22347
22348function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest(); }
22349
22350function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); }
22351
22352function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
22353
22354function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
22355
22356function getFilenameFromContentDispositionHeader(contentDisposition) {
22357  var needsEncodingFixup = true;
22358  var tmp = toParamRegExp('filename\\*', 'i').exec(contentDisposition);
22359
22360  if (tmp) {
22361    tmp = tmp[1];
22362    var filename = rfc2616unquote(tmp);
22363    filename = unescape(filename);
22364    filename = rfc5987decode(filename);
22365    filename = rfc2047decode(filename);
22366    return fixupEncoding(filename);
22367  }
22368
22369  tmp = rfc2231getparam(contentDisposition);
22370
22371  if (tmp) {
22372    var _filename = rfc2047decode(tmp);
22373
22374    return fixupEncoding(_filename);
22375  }
22376
22377  tmp = toParamRegExp('filename', 'i').exec(contentDisposition);
22378
22379  if (tmp) {
22380    tmp = tmp[1];
22381
22382    var _filename2 = rfc2616unquote(tmp);
22383
22384    _filename2 = rfc2047decode(_filename2);
22385    return fixupEncoding(_filename2);
22386  }
22387
22388  function toParamRegExp(attributePattern, flags) {
22389    return new RegExp('(?:^|;)\\s*' + attributePattern + '\\s*=\\s*' + '(' + '[^";\\s][^;\\s]*' + '|' + '"(?:[^"\\\\]|\\\\"?)+"?' + ')', flags);
22390  }
22391
22392  function textdecode(encoding, value) {
22393    if (encoding) {
22394      if (!/^[\x00-\xFF]+$/.test(value)) {
22395        return value;
22396      }
22397
22398      try {
22399        var decoder = new TextDecoder(encoding, {
22400          fatal: true
22401        });
22402        var bytes = Array.from(value, function (ch) {
22403          return ch.charCodeAt(0) & 0xFF;
22404        });
22405        value = decoder.decode(new Uint8Array(bytes));
22406        needsEncodingFixup = false;
22407      } catch (e) {
22408        if (/^utf-?8$/i.test(encoding)) {
22409          try {
22410            value = decodeURIComponent(escape(value));
22411            needsEncodingFixup = false;
22412          } catch (err) {}
22413        }
22414      }
22415    }
22416
22417    return value;
22418  }
22419
22420  function fixupEncoding(value) {
22421    if (needsEncodingFixup && /[\x80-\xff]/.test(value)) {
22422      value = textdecode('utf-8', value);
22423
22424      if (needsEncodingFixup) {
22425        value = textdecode('iso-8859-1', value);
22426      }
22427    }
22428
22429    return value;
22430  }
22431
22432  function rfc2231getparam(contentDisposition) {
22433    var matches = [],
22434        match;
22435    var iter = toParamRegExp('filename\\*((?!0\\d)\\d+)(\\*?)', 'ig');
22436
22437    while ((match = iter.exec(contentDisposition)) !== null) {
22438      var _match = match,
22439          _match2 = _slicedToArray(_match, 4),
22440          n = _match2[1],
22441          quot = _match2[2],
22442          part = _match2[3];
22443
22444      n = parseInt(n, 10);
22445
22446      if (n in matches) {
22447        if (n === 0) {
22448          break;
22449        }
22450
22451        continue;
22452      }
22453
22454      matches[n] = [quot, part];
22455    }
22456
22457    var parts = [];
22458
22459    for (var n = 0; n < matches.length; ++n) {
22460      if (!(n in matches)) {
22461        break;
22462      }
22463
22464      var _matches$n = _slicedToArray(matches[n], 2),
22465          quot = _matches$n[0],
22466          part = _matches$n[1];
22467
22468      part = rfc2616unquote(part);
22469
22470      if (quot) {
22471        part = unescape(part);
22472
22473        if (n === 0) {
22474          part = rfc5987decode(part);
22475        }
22476      }
22477
22478      parts.push(part);
22479    }
22480
22481    return parts.join('');
22482  }
22483
22484  function rfc2616unquote(value) {
22485    if (value.startsWith('"')) {
22486      var parts = value.slice(1).split('\\"');
22487
22488      for (var i = 0; i < parts.length; ++i) {
22489        var quotindex = parts[i].indexOf('"');
22490
22491        if (quotindex !== -1) {
22492          parts[i] = parts[i].slice(0, quotindex);
22493          parts.length = i + 1;
22494        }
22495
22496        parts[i] = parts[i].replace(/\\(.)/g, '$1');
22497      }
22498
22499      value = parts.join('"');
22500    }
22501
22502    return value;
22503  }
22504
22505  function rfc5987decode(extvalue) {
22506    var encodingend = extvalue.indexOf('\'');
22507
22508    if (encodingend === -1) {
22509      return extvalue;
22510    }
22511
22512    var encoding = extvalue.slice(0, encodingend);
22513    var langvalue = extvalue.slice(encodingend + 1);
22514    var value = langvalue.replace(/^[^']*'/, '');
22515    return textdecode(encoding, value);
22516  }
22517
22518  function rfc2047decode(value) {
22519    if (!value.startsWith('=?') || /[\x00-\x19\x80-\xff]/.test(value)) {
22520      return value;
22521    }
22522
22523    return value.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, function (_, charset, encoding, text) {
22524      if (encoding === 'q' || encoding === 'Q') {
22525        text = text.replace(/_/g, ' ');
22526        text = text.replace(/=([0-9a-fA-F]{2})/g, function (_, hex) {
22527          return String.fromCharCode(parseInt(hex, 16));
22528        });
22529        return textdecode(charset, text);
22530      }
22531
22532      try {
22533        text = atob(text);
22534      } catch (e) {}
22535
22536      return textdecode(charset, text);
22537    });
22538  }
22539
22540  return '';
22541}
22542
22543/***/ }),
22544/* 168 */
22545/***/ (function(module, exports, __w_pdfjs_require__) {
22546
22547"use strict";
22548
22549
22550Object.defineProperty(exports, "__esModule", {
22551  value: true
22552});
22553exports.PDFFetchStream = void 0;
22554
22555var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
22556
22557var _util = __w_pdfjs_require__(1);
22558
22559var _network_utils = __w_pdfjs_require__(166);
22560
22561function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22562
22563function 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); } }
22564
22565function _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); }); }; }
22566
22567function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
22568
22569function _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); } }
22570
22571function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
22572
22573function createFetchOptions(headers, withCredentials, abortController) {
22574  return {
22575    method: 'GET',
22576    headers: headers,
22577    signal: abortController && abortController.signal,
22578    mode: 'cors',
22579    credentials: withCredentials ? 'include' : 'same-origin',
22580    redirect: 'follow'
22581  };
22582}
22583
22584var PDFFetchStream =
22585/*#__PURE__*/
22586function () {
22587  function PDFFetchStream(source) {
22588    _classCallCheck(this, PDFFetchStream);
22589
22590    this.source = source;
22591    this.isHttp = /^https?:/i.test(source.url);
22592    this.httpHeaders = this.isHttp && source.httpHeaders || {};
22593    this._fullRequestReader = null;
22594    this._rangeRequestReaders = [];
22595  }
22596
22597  _createClass(PDFFetchStream, [{
22598    key: "getFullReader",
22599    value: function getFullReader() {
22600      (0, _util.assert)(!this._fullRequestReader);
22601      this._fullRequestReader = new PDFFetchStreamReader(this);
22602      return this._fullRequestReader;
22603    }
22604  }, {
22605    key: "getRangeReader",
22606    value: function getRangeReader(begin, end) {
22607      var reader = new PDFFetchStreamRangeReader(this, begin, end);
22608
22609      this._rangeRequestReaders.push(reader);
22610
22611      return reader;
22612    }
22613  }, {
22614    key: "cancelAllRequests",
22615    value: function cancelAllRequests(reason) {
22616      if (this._fullRequestReader) {
22617        this._fullRequestReader.cancel(reason);
22618      }
22619
22620      var readers = this._rangeRequestReaders.slice(0);
22621
22622      readers.forEach(function (reader) {
22623        reader.cancel(reason);
22624      });
22625    }
22626  }]);
22627
22628  return PDFFetchStream;
22629}();
22630
22631exports.PDFFetchStream = PDFFetchStream;
22632
22633var PDFFetchStreamReader =
22634/*#__PURE__*/
22635function () {
22636  function PDFFetchStreamReader(stream) {
22637    var _this = this;
22638
22639    _classCallCheck(this, PDFFetchStreamReader);
22640
22641    this._stream = stream;
22642    this._reader = null;
22643    this._loaded = 0;
22644    this._filename = null;
22645    var source = stream.source;
22646    this._withCredentials = source.withCredentials;
22647    this._contentLength = source.length;
22648    this._headersCapability = (0, _util.createPromiseCapability)();
22649    this._disableRange = source.disableRange || false;
22650    this._rangeChunkSize = source.rangeChunkSize;
22651
22652    if (!this._rangeChunkSize && !this._disableRange) {
22653      this._disableRange = true;
22654    }
22655
22656    if (typeof AbortController !== 'undefined') {
22657      this._abortController = new AbortController();
22658    }
22659
22660    this._isStreamingSupported = !source.disableStream;
22661    this._isRangeSupported = !source.disableRange;
22662    this._headers = new Headers();
22663
22664    for (var property in this._stream.httpHeaders) {
22665      var value = this._stream.httpHeaders[property];
22666
22667      if (typeof value === 'undefined') {
22668        continue;
22669      }
22670
22671      this._headers.append(property, value);
22672    }
22673
22674    var url = source.url;
22675    fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
22676      if (!(0, _network_utils.validateResponseStatus)(response.status)) {
22677        throw (0, _network_utils.createResponseStatusError)(response.status, url);
22678      }
22679
22680      _this._reader = response.body.getReader();
22681
22682      _this._headersCapability.resolve();
22683
22684      var getResponseHeader = function getResponseHeader(name) {
22685        return response.headers.get(name);
22686      };
22687
22688      var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
22689        getResponseHeader: getResponseHeader,
22690        isHttp: _this._stream.isHttp,
22691        rangeChunkSize: _this._rangeChunkSize,
22692        disableRange: _this._disableRange
22693      }),
22694          allowRangeRequests = _validateRangeRequest.allowRangeRequests,
22695          suggestedLength = _validateRangeRequest.suggestedLength;
22696
22697      _this._isRangeSupported = allowRangeRequests;
22698      _this._contentLength = suggestedLength || _this._contentLength;
22699      _this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
22700
22701      if (!_this._isStreamingSupported && _this._isRangeSupported) {
22702        _this.cancel(new _util.AbortException('streaming is disabled'));
22703      }
22704    }).catch(this._headersCapability.reject);
22705    this.onProgress = null;
22706  }
22707
22708  _createClass(PDFFetchStreamReader, [{
22709    key: "read",
22710    value: function () {
22711      var _read = _asyncToGenerator(
22712      /*#__PURE__*/
22713      _regenerator.default.mark(function _callee() {
22714        var _ref, value, done, buffer;
22715
22716        return _regenerator.default.wrap(function _callee$(_context) {
22717          while (1) {
22718            switch (_context.prev = _context.next) {
22719              case 0:
22720                _context.next = 2;
22721                return this._headersCapability.promise;
22722
22723              case 2:
22724                _context.next = 4;
22725                return this._reader.read();
22726
22727              case 4:
22728                _ref = _context.sent;
22729                value = _ref.value;
22730                done = _ref.done;
22731
22732                if (!done) {
22733                  _context.next = 9;
22734                  break;
22735                }
22736
22737                return _context.abrupt("return", {
22738                  value: value,
22739                  done: done
22740                });
22741
22742              case 9:
22743                this._loaded += value.byteLength;
22744
22745                if (this.onProgress) {
22746                  this.onProgress({
22747                    loaded: this._loaded,
22748                    total: this._contentLength
22749                  });
22750                }
22751
22752                buffer = new Uint8Array(value).buffer;
22753                return _context.abrupt("return", {
22754                  value: buffer,
22755                  done: false
22756                });
22757
22758              case 13:
22759              case "end":
22760                return _context.stop();
22761            }
22762          }
22763        }, _callee, this);
22764      }));
22765
22766      function read() {
22767        return _read.apply(this, arguments);
22768      }
22769
22770      return read;
22771    }()
22772  }, {
22773    key: "cancel",
22774    value: function cancel(reason) {
22775      if (this._reader) {
22776        this._reader.cancel(reason);
22777      }
22778
22779      if (this._abortController) {
22780        this._abortController.abort();
22781      }
22782    }
22783  }, {
22784    key: "headersReady",
22785    get: function get() {
22786      return this._headersCapability.promise;
22787    }
22788  }, {
22789    key: "filename",
22790    get: function get() {
22791      return this._filename;
22792    }
22793  }, {
22794    key: "contentLength",
22795    get: function get() {
22796      return this._contentLength;
22797    }
22798  }, {
22799    key: "isRangeSupported",
22800    get: function get() {
22801      return this._isRangeSupported;
22802    }
22803  }, {
22804    key: "isStreamingSupported",
22805    get: function get() {
22806      return this._isStreamingSupported;
22807    }
22808  }]);
22809
22810  return PDFFetchStreamReader;
22811}();
22812
22813var PDFFetchStreamRangeReader =
22814/*#__PURE__*/
22815function () {
22816  function PDFFetchStreamRangeReader(stream, begin, end) {
22817    var _this2 = this;
22818
22819    _classCallCheck(this, PDFFetchStreamRangeReader);
22820
22821    this._stream = stream;
22822    this._reader = null;
22823    this._loaded = 0;
22824    var source = stream.source;
22825    this._withCredentials = source.withCredentials;
22826    this._readCapability = (0, _util.createPromiseCapability)();
22827    this._isStreamingSupported = !source.disableStream;
22828
22829    if (typeof AbortController !== 'undefined') {
22830      this._abortController = new AbortController();
22831    }
22832
22833    this._headers = new Headers();
22834
22835    for (var property in this._stream.httpHeaders) {
22836      var value = this._stream.httpHeaders[property];
22837
22838      if (typeof value === 'undefined') {
22839        continue;
22840      }
22841
22842      this._headers.append(property, value);
22843    }
22844
22845    var rangeStr = begin + '-' + (end - 1);
22846
22847    this._headers.append('Range', 'bytes=' + rangeStr);
22848
22849    var url = source.url;
22850    fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(function (response) {
22851      if (!(0, _network_utils.validateResponseStatus)(response.status)) {
22852        throw (0, _network_utils.createResponseStatusError)(response.status, url);
22853      }
22854
22855      _this2._readCapability.resolve();
22856
22857      _this2._reader = response.body.getReader();
22858    });
22859    this.onProgress = null;
22860  }
22861
22862  _createClass(PDFFetchStreamRangeReader, [{
22863    key: "read",
22864    value: function () {
22865      var _read2 = _asyncToGenerator(
22866      /*#__PURE__*/
22867      _regenerator.default.mark(function _callee2() {
22868        var _ref2, value, done, buffer;
22869
22870        return _regenerator.default.wrap(function _callee2$(_context2) {
22871          while (1) {
22872            switch (_context2.prev = _context2.next) {
22873              case 0:
22874                _context2.next = 2;
22875                return this._readCapability.promise;
22876
22877              case 2:
22878                _context2.next = 4;
22879                return this._reader.read();
22880
22881              case 4:
22882                _ref2 = _context2.sent;
22883                value = _ref2.value;
22884                done = _ref2.done;
22885
22886                if (!done) {
22887                  _context2.next = 9;
22888                  break;
22889                }
22890
22891                return _context2.abrupt("return", {
22892                  value: value,
22893                  done: done
22894                });
22895
22896              case 9:
22897                this._loaded += value.byteLength;
22898
22899                if (this.onProgress) {
22900                  this.onProgress({
22901                    loaded: this._loaded
22902                  });
22903                }
22904
22905                buffer = new Uint8Array(value).buffer;
22906                return _context2.abrupt("return", {
22907                  value: buffer,
22908                  done: false
22909                });
22910
22911              case 13:
22912              case "end":
22913                return _context2.stop();
22914            }
22915          }
22916        }, _callee2, this);
22917      }));
22918
22919      function read() {
22920        return _read2.apply(this, arguments);
22921      }
22922
22923      return read;
22924    }()
22925  }, {
22926    key: "cancel",
22927    value: function cancel(reason) {
22928      if (this._reader) {
22929        this._reader.cancel(reason);
22930      }
22931
22932      if (this._abortController) {
22933        this._abortController.abort();
22934      }
22935    }
22936  }, {
22937    key: "isStreamingSupported",
22938    get: function get() {
22939      return this._isStreamingSupported;
22940    }
22941  }]);
22942
22943  return PDFFetchStreamRangeReader;
22944}();
22945
22946/***/ }),
22947/* 169 */
22948/***/ (function(module, exports, __w_pdfjs_require__) {
22949
22950"use strict";
22951
22952
22953Object.defineProperty(exports, "__esModule", {
22954  value: true
22955});
22956exports.PDFNetworkStream = PDFNetworkStream;
22957exports.NetworkManager = NetworkManager;
22958
22959var _regenerator = _interopRequireDefault(__w_pdfjs_require__(147));
22960
22961var _util = __w_pdfjs_require__(1);
22962
22963var _network_utils = __w_pdfjs_require__(166);
22964
22965var _global_scope = _interopRequireDefault(__w_pdfjs_require__(3));
22966
22967function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
22968
22969function 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); } }
22970
22971function _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); }); }; }
22972
22973;
22974var OK_RESPONSE = 200;
22975var PARTIAL_CONTENT_RESPONSE = 206;
22976
22977function NetworkManager(url, args) {
22978  this.url = url;
22979  args = args || {};
22980  this.isHttp = /^https?:/i.test(url);
22981  this.httpHeaders = this.isHttp && args.httpHeaders || {};
22982  this.withCredentials = args.withCredentials || false;
22983
22984  this.getXhr = args.getXhr || function NetworkManager_getXhr() {
22985    return new XMLHttpRequest();
22986  };
22987
22988  this.currXhrId = 0;
22989  this.pendingRequests = Object.create(null);
22990  this.loadedRequests = Object.create(null);
22991}
22992
22993function getArrayBuffer(xhr) {
22994  var data = xhr.response;
22995
22996  if (typeof data !== 'string') {
22997    return data;
22998  }
22999
23000  var array = (0, _util.stringToBytes)(data);
23001  return array.buffer;
23002}
23003
23004var supportsMozChunked = function supportsMozChunkedClosure() {
23005  try {
23006    var x = new XMLHttpRequest();
23007    x.open('GET', _global_scope.default.location.href);
23008    x.responseType = 'moz-chunked-arraybuffer';
23009    return x.responseType === 'moz-chunked-arraybuffer';
23010  } catch (e) {
23011    return false;
23012  }
23013}();
23014
23015NetworkManager.prototype = {
23016  requestRange: function NetworkManager_requestRange(begin, end, listeners) {
23017    var args = {
23018      begin: begin,
23019      end: end
23020    };
23021
23022    for (var prop in listeners) {
23023      args[prop] = listeners[prop];
23024    }
23025
23026    return this.request(args);
23027  },
23028  requestFull: function NetworkManager_requestFull(listeners) {
23029    return this.request(listeners);
23030  },
23031  request: function NetworkManager_request(args) {
23032    var xhr = this.getXhr();
23033    var xhrId = this.currXhrId++;
23034    var pendingRequest = this.pendingRequests[xhrId] = {
23035      xhr: xhr
23036    };
23037    xhr.open('GET', this.url);
23038    xhr.withCredentials = this.withCredentials;
23039
23040    for (var property in this.httpHeaders) {
23041      var value = this.httpHeaders[property];
23042
23043      if (typeof value === 'undefined') {
23044        continue;
23045      }
23046
23047      xhr.setRequestHeader(property, value);
23048    }
23049
23050    if (this.isHttp && 'begin' in args && 'end' in args) {
23051      var rangeStr = args.begin + '-' + (args.end - 1);
23052      xhr.setRequestHeader('Range', 'bytes=' + rangeStr);
23053      pendingRequest.expectedStatus = 206;
23054    } else {
23055      pendingRequest.expectedStatus = 200;
23056    }
23057
23058    var useMozChunkedLoading = supportsMozChunked && !!args.onProgressiveData;
23059
23060    if (useMozChunkedLoading) {
23061      xhr.responseType = 'moz-chunked-arraybuffer';
23062      pendingRequest.onProgressiveData = args.onProgressiveData;
23063      pendingRequest.mozChunked = true;
23064    } else {
23065      xhr.responseType = 'arraybuffer';
23066    }
23067
23068    if (args.onError) {
23069      xhr.onerror = function (evt) {
23070        args.onError(xhr.status);
23071      };
23072    }
23073
23074    xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);
23075    xhr.onprogress = this.onProgress.bind(this, xhrId);
23076    pendingRequest.onHeadersReceived = args.onHeadersReceived;
23077    pendingRequest.onDone = args.onDone;
23078    pendingRequest.onError = args.onError;
23079    pendingRequest.onProgress = args.onProgress;
23080    xhr.send(null);
23081    return xhrId;
23082  },
23083  onProgress: function NetworkManager_onProgress(xhrId, evt) {
23084    var pendingRequest = this.pendingRequests[xhrId];
23085
23086    if (!pendingRequest) {
23087      return;
23088    }
23089
23090    if (pendingRequest.mozChunked) {
23091      var chunk = getArrayBuffer(pendingRequest.xhr);
23092      pendingRequest.onProgressiveData(chunk);
23093    }
23094
23095    var onProgress = pendingRequest.onProgress;
23096
23097    if (onProgress) {
23098      onProgress(evt);
23099    }
23100  },
23101  onStateChange: function NetworkManager_onStateChange(xhrId, evt) {
23102    var pendingRequest = this.pendingRequests[xhrId];
23103
23104    if (!pendingRequest) {
23105      return;
23106    }
23107
23108    var xhr = pendingRequest.xhr;
23109
23110    if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {
23111      pendingRequest.onHeadersReceived();
23112      delete pendingRequest.onHeadersReceived;
23113    }
23114
23115    if (xhr.readyState !== 4) {
23116      return;
23117    }
23118
23119    if (!(xhrId in this.pendingRequests)) {
23120      return;
23121    }
23122
23123    delete this.pendingRequests[xhrId];
23124
23125    if (xhr.status === 0 && this.isHttp) {
23126      if (pendingRequest.onError) {
23127        pendingRequest.onError(xhr.status);
23128      }
23129
23130      return;
23131    }
23132
23133    var xhrStatus = xhr.status || OK_RESPONSE;
23134    var ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;
23135
23136    if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {
23137      if (pendingRequest.onError) {
23138        pendingRequest.onError(xhr.status);
23139      }
23140
23141      return;
23142    }
23143
23144    this.loadedRequests[xhrId] = true;
23145    var chunk = getArrayBuffer(xhr);
23146
23147    if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {
23148      var rangeHeader = xhr.getResponseHeader('Content-Range');
23149      var matches = /bytes (\d+)-(\d+)\/(\d+)/.exec(rangeHeader);
23150      var begin = parseInt(matches[1], 10);
23151      pendingRequest.onDone({
23152        begin: begin,
23153        chunk: chunk
23154      });
23155    } else if (pendingRequest.onProgressiveData) {
23156      pendingRequest.onDone(null);
23157    } else if (chunk) {
23158      pendingRequest.onDone({
23159        begin: 0,
23160        chunk: chunk
23161      });
23162    } else if (pendingRequest.onError) {
23163      pendingRequest.onError(xhr.status);
23164    }
23165  },
23166  hasPendingRequests: function NetworkManager_hasPendingRequests() {
23167    for (var xhrId in this.pendingRequests) {
23168      return true;
23169    }
23170
23171    return false;
23172  },
23173  getRequestXhr: function NetworkManager_getXhr(xhrId) {
23174    return this.pendingRequests[xhrId].xhr;
23175  },
23176  isStreamingRequest: function NetworkManager_isStreamingRequest(xhrId) {
23177    return !!this.pendingRequests[xhrId].onProgressiveData;
23178  },
23179  isPendingRequest: function NetworkManager_isPendingRequest(xhrId) {
23180    return xhrId in this.pendingRequests;
23181  },
23182  isLoadedRequest: function NetworkManager_isLoadedRequest(xhrId) {
23183    return xhrId in this.loadedRequests;
23184  },
23185  abortAllRequests: function NetworkManager_abortAllRequests() {
23186    for (var xhrId in this.pendingRequests) {
23187      this.abortRequest(xhrId | 0);
23188    }
23189  },
23190  abortRequest: function NetworkManager_abortRequest(xhrId) {
23191    var xhr = this.pendingRequests[xhrId].xhr;
23192    delete this.pendingRequests[xhrId];
23193    xhr.abort();
23194  }
23195};
23196
23197function PDFNetworkStream(source) {
23198  this._source = source;
23199  this._manager = new NetworkManager(source.url, {
23200    httpHeaders: source.httpHeaders,
23201    withCredentials: source.withCredentials
23202  });
23203  this._rangeChunkSize = source.rangeChunkSize;
23204  this._fullRequestReader = null;
23205  this._rangeRequestReaders = [];
23206}
23207
23208PDFNetworkStream.prototype = {
23209  _onRangeRequestReaderClosed: function PDFNetworkStream_onRangeRequestReaderClosed(reader) {
23210    var i = this._rangeRequestReaders.indexOf(reader);
23211
23212    if (i >= 0) {
23213      this._rangeRequestReaders.splice(i, 1);
23214    }
23215  },
23216  getFullReader: function PDFNetworkStream_getFullReader() {
23217    (0, _util.assert)(!this._fullRequestReader);
23218    this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);
23219    return this._fullRequestReader;
23220  },
23221  getRangeReader: function PDFNetworkStream_getRangeReader(begin, end) {
23222    var reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);
23223    reader.onClosed = this._onRangeRequestReaderClosed.bind(this);
23224
23225    this._rangeRequestReaders.push(reader);
23226
23227    return reader;
23228  },
23229  cancelAllRequests: function PDFNetworkStream_cancelAllRequests(reason) {
23230    if (this._fullRequestReader) {
23231      this._fullRequestReader.cancel(reason);
23232    }
23233
23234    var readers = this._rangeRequestReaders.slice(0);
23235
23236    readers.forEach(function (reader) {
23237      reader.cancel(reason);
23238    });
23239  }
23240};
23241
23242function PDFNetworkStreamFullRequestReader(manager, source) {
23243  this._manager = manager;
23244  var args = {
23245    onHeadersReceived: this._onHeadersReceived.bind(this),
23246    onProgressiveData: source.disableStream ? null : this._onProgressiveData.bind(this),
23247    onDone: this._onDone.bind(this),
23248    onError: this._onError.bind(this),
23249    onProgress: this._onProgress.bind(this)
23250  };
23251  this._url = source.url;
23252  this._fullRequestId = manager.requestFull(args);
23253  this._headersReceivedCapability = (0, _util.createPromiseCapability)();
23254  this._disableRange = source.disableRange || false;
23255  this._contentLength = source.length;
23256  this._rangeChunkSize = source.rangeChunkSize;
23257
23258  if (!this._rangeChunkSize && !this._disableRange) {
23259    this._disableRange = true;
23260  }
23261
23262  this._isStreamingSupported = false;
23263  this._isRangeSupported = false;
23264  this._cachedChunks = [];
23265  this._requests = [];
23266  this._done = false;
23267  this._storedError = undefined;
23268  this._filename = null;
23269  this.onProgress = null;
23270}
23271
23272PDFNetworkStreamFullRequestReader.prototype = {
23273  _onHeadersReceived: function PDFNetworkStreamFullRequestReader_onHeadersReceived() {
23274    var fullRequestXhrId = this._fullRequestId;
23275
23276    var fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);
23277
23278    var getResponseHeader = function getResponseHeader(name) {
23279      return fullRequestXhr.getResponseHeader(name);
23280    };
23281
23282    var _validateRangeRequest = (0, _network_utils.validateRangeRequestCapabilities)({
23283      getResponseHeader: getResponseHeader,
23284      isHttp: this._manager.isHttp,
23285      rangeChunkSize: this._rangeChunkSize,
23286      disableRange: this._disableRange
23287    }),
23288        allowRangeRequests = _validateRangeRequest.allowRangeRequests,
23289        suggestedLength = _validateRangeRequest.suggestedLength;
23290
23291    if (allowRangeRequests) {
23292      this._isRangeSupported = true;
23293    }
23294
23295    this._contentLength = suggestedLength || this._contentLength;
23296    this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);
23297    var networkManager = this._manager;
23298
23299    if (networkManager.isStreamingRequest(fullRequestXhrId)) {
23300      this._isStreamingSupported = true;
23301    } else if (this._isRangeSupported) {
23302      networkManager.abortRequest(fullRequestXhrId);
23303    }
23304
23305    this._headersReceivedCapability.resolve();
23306  },
23307  _onProgressiveData: function PDFNetworkStreamFullRequestReader_onProgressiveData(chunk) {
23308    if (this._requests.length > 0) {
23309      var requestCapability = this._requests.shift();
23310
23311      requestCapability.resolve({
23312        value: chunk,
23313        done: false
23314      });
23315    } else {
23316      this._cachedChunks.push(chunk);
23317    }
23318  },
23319  _onDone: function PDFNetworkStreamFullRequestReader_onDone(args) {
23320    if (args) {
23321      this._onProgressiveData(args.chunk);
23322    }
23323
23324    this._done = true;
23325
23326    if (this._cachedChunks.length > 0) {
23327      return;
23328    }
23329
23330    this._requests.forEach(function (requestCapability) {
23331      requestCapability.resolve({
23332        value: undefined,
23333        done: true
23334      });
23335    });
23336
23337    this._requests = [];
23338  },
23339  _onError: function PDFNetworkStreamFullRequestReader_onError(status) {
23340    var url = this._url;
23341    var exception = (0, _network_utils.createResponseStatusError)(status, url);
23342    this._storedError = exception;
23343
23344    this._headersReceivedCapability.reject(exception);
23345
23346    this._requests.forEach(function (requestCapability) {
23347      requestCapability.reject(exception);
23348    });
23349
23350    this._requests = [];
23351    this._cachedChunks = [];
23352  },
23353  _onProgress: function PDFNetworkStreamFullRequestReader_onProgress(data) {
23354    if (this.onProgress) {
23355      this.onProgress({
23356        loaded: data.loaded,
23357        total: data.lengthComputable ? data.total : this._contentLength
23358      });
23359    }
23360  },
23361
23362  get filename() {
23363    return this._filename;
23364  },
23365
23366  get isRangeSupported() {
23367    return this._isRangeSupported;
23368  },
23369
23370  get isStreamingSupported() {
23371    return this._isStreamingSupported;
23372  },
23373
23374  get contentLength() {
23375    return this._contentLength;
23376  },
23377
23378  get headersReady() {
23379    return this._headersReceivedCapability.promise;
23380  },
23381
23382  read: function () {
23383    var _read = _asyncToGenerator(
23384    /*#__PURE__*/
23385    _regenerator.default.mark(function _callee() {
23386      var chunk, requestCapability;
23387      return _regenerator.default.wrap(function _callee$(_context) {
23388        while (1) {
23389          switch (_context.prev = _context.next) {
23390            case 0:
23391              if (!this._storedError) {
23392                _context.next = 2;
23393                break;
23394              }
23395
23396              throw this._storedError;
23397
23398            case 2:
23399              if (!(this._cachedChunks.length > 0)) {
23400                _context.next = 5;
23401                break;
23402              }
23403
23404              chunk = this._cachedChunks.shift();
23405              return _context.abrupt("return", {
23406                value: chunk,
23407                done: false
23408              });
23409
23410            case 5:
23411              if (!this._done) {
23412                _context.next = 7;
23413                break;
23414              }
23415
23416              return _context.abrupt("return", {
23417                value: undefined,
23418                done: true
23419              });
23420
23421            case 7:
23422              requestCapability = (0, _util.createPromiseCapability)();
23423
23424              this._requests.push(requestCapability);
23425
23426              return _context.abrupt("return", requestCapability.promise);
23427
23428            case 10:
23429            case "end":
23430              return _context.stop();
23431          }
23432        }
23433      }, _callee, this);
23434    }));
23435
23436    function read() {
23437      return _read.apply(this, arguments);
23438    }
23439
23440    return read;
23441  }(),
23442  cancel: function PDFNetworkStreamFullRequestReader_cancel(reason) {
23443    this._done = true;
23444
23445    this._headersReceivedCapability.reject(reason);
23446
23447    this._requests.forEach(function (requestCapability) {
23448      requestCapability.resolve({
23449        value: undefined,
23450        done: true
23451      });
23452    });
23453
23454    this._requests = [];
23455
23456    if (this._manager.isPendingRequest(this._fullRequestId)) {
23457      this._manager.abortRequest(this._fullRequestId);
23458    }
23459
23460    this._fullRequestReader = null;
23461  }
23462};
23463
23464function PDFNetworkStreamRangeRequestReader(manager, begin, end) {
23465  this._manager = manager;
23466  var args = {
23467    onDone: this._onDone.bind(this),
23468    onProgress: this._onProgress.bind(this)
23469  };
23470  this._requestId = manager.requestRange(begin, end, args);
23471  this._requests = [];
23472  this._queuedChunk = null;
23473  this._done = false;
23474  this.onProgress = null;
23475  this.onClosed = null;
23476}
23477
23478PDFNetworkStreamRangeRequestReader.prototype = {
23479  _close: function PDFNetworkStreamRangeRequestReader_close() {
23480    if (this.onClosed) {
23481      this.onClosed(this);
23482    }
23483  },
23484  _onDone: function PDFNetworkStreamRangeRequestReader_onDone(data) {
23485    var chunk = data.chunk;
23486
23487    if (this._requests.length > 0) {
23488      var requestCapability = this._requests.shift();
23489
23490      requestCapability.resolve({
23491        value: chunk,
23492        done: false
23493      });
23494    } else {
23495      this._queuedChunk = chunk;
23496    }
23497
23498    this._done = true;
23499
23500    this._requests.forEach(function (requestCapability) {
23501      requestCapability.resolve({
23502        value: undefined,
23503        done: true
23504      });
23505    });
23506
23507    this._requests = [];
23508
23509    this._close();
23510  },
23511  _onProgress: function PDFNetworkStreamRangeRequestReader_onProgress(evt) {
23512    if (!this.isStreamingSupported && this.onProgress) {
23513      this.onProgress({
23514        loaded: evt.loaded
23515      });
23516    }
23517  },
23518
23519  get isStreamingSupported() {
23520    return false;
23521  },
23522
23523  read: function () {
23524    var _read2 = _asyncToGenerator(
23525    /*#__PURE__*/
23526    _regenerator.default.mark(function _callee2() {
23527      var chunk, requestCapability;
23528      return _regenerator.default.wrap(function _callee2$(_context2) {
23529        while (1) {
23530          switch (_context2.prev = _context2.next) {
23531            case 0:
23532              if (!(this._queuedChunk !== null)) {
23533                _context2.next = 4;
23534                break;
23535              }
23536
23537              chunk = this._queuedChunk;
23538              this._queuedChunk = null;
23539              return _context2.abrupt("return", {
23540                value: chunk,
23541                done: false
23542              });
23543
23544            case 4:
23545              if (!this._done) {
23546                _context2.next = 6;
23547                break;
23548              }
23549
23550              return _context2.abrupt("return", {
23551                value: undefined,
23552                done: true
23553              });
23554
23555            case 6:
23556              requestCapability = (0, _util.createPromiseCapability)();
23557
23558              this._requests.push(requestCapability);
23559
23560              return _context2.abrupt("return", requestCapability.promise);
23561
23562            case 9:
23563            case "end":
23564              return _context2.stop();
23565          }
23566        }
23567      }, _callee2, this);
23568    }));
23569
23570    function read() {
23571      return _read2.apply(this, arguments);
23572    }
23573
23574    return read;
23575  }(),
23576  cancel: function PDFNetworkStreamRangeRequestReader_cancel(reason) {
23577    this._done = true;
23578
23579    this._requests.forEach(function (requestCapability) {
23580      requestCapability.resolve({
23581        value: undefined,
23582        done: true
23583      });
23584    });
23585
23586    this._requests = [];
23587
23588    if (this._manager.isPendingRequest(this._requestId)) {
23589      this._manager.abortRequest(this._requestId);
23590    }
23591
23592    this._close();
23593  }
23594};
23595
23596/***/ })
23597/******/ ]);
23598});
23599//# sourceMappingURL=pdf.js.map

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.