diff --git a/client-tauri/vite.config.ts b/client-tauri/vite.config.ts index 78dfb6118..3ba1414f2 100644 --- a/client-tauri/vite.config.ts +++ b/client-tauri/vite.config.ts @@ -49,4 +49,5 @@ export default defineConfig(async () => ({ // 3. to make use of `TAURI_DEBUG` and other env variables // https://tauri.app/v1/api/config#buildconfig.beforedevcommand envPrefix: ["VITE_"], + base: '', })); diff --git a/client-vanilla/index.js b/client-vanilla/index.js deleted file mode 100644 index f6b7988bf..000000000 --- a/client-vanilla/index.js +++ /dev/null @@ -1,13 +0,0 @@ -import express from 'express'; -const app = express(); -const PORT = 80; - -// Server Frontend TODO: Make this typescript compatible -app.use(express.static('./public')); -app.use(express.static('../shared-operations')); - -// serve -app.listen(PORT, function (err) { - if (err) console.log(err); - console.log(`http://localhost:${PORT}`); -}); \ No newline at end of file diff --git a/client-vanilla/public/dep/downloadjs_1.4.7.js b/client-vanilla/public/dep/downloadjs_1.4.7.js deleted file mode 100644 index 33c428e34..000000000 --- a/client-vanilla/public/dep/downloadjs_1.4.7.js +++ /dev/null @@ -1,167 +0,0 @@ -//download.js v4.2, by dandavis; 2008-2016. [MIT] see http://danml.com/download.html for tests/usage -// v1 landed a FF+Chrome compat way of downloading strings to local un-named files, upgraded to use a hidden frame and optional mime -// v2 added named files via a[download], msSaveBlob, IE (10+) support, and window.URL support for larger+faster saves than dataURLs -// v3 added dataURL and Blob Input, bind-toggle arity, and legacy dataURL fallback was improved with force-download mime and base64 support. 3.1 improved safari handling. -// v4 adds AMD/UMD, commonJS, and plain browser support -// v4.1 adds url download capability via solo URL argument (same domain/CORS only) -// v4.2 adds semantic variable names, long (over 2MB) dataURL support, and hidden by default temp anchors -// https://github.com/rndme/download - -(function (root, factory) { - if (typeof define === 'function' && define.amd) { - // AMD. Register as an anonymous module. - define([], factory); - } else if (typeof exports === 'object') { - // Node. Does not work with strict CommonJS, but - // only CommonJS-like environments that support module.exports, - // like Node. - module.exports = factory(); - } else { - // Browser globals (root is window) - root.download = factory(); - } -}(this, function () { - - return function download(data, strFileName, strMimeType) { - - var self = window, // this script is only for browsers anyway... - defaultMime = "application/octet-stream", // this default mime also triggers iframe downloads - mimeType = strMimeType || defaultMime, - payload = data, - url = !strFileName && !strMimeType && payload, - anchor = document.createElement("a"), - toString = function(a){return String(a);}, - myBlob = (self.Blob || self.MozBlob || self.WebKitBlob || toString), - fileName = strFileName || "download", - blob, - reader; - myBlob= myBlob.call ? myBlob.bind(self) : Blob ; - - if(String(this)==="true"){ //reverse arguments, allowing download.bind(true, "text/xml", "export.xml") to act as a callback - payload=[payload, mimeType]; - mimeType=payload[0]; - payload=payload[1]; - } - - - if(url && url.length< 2048){ // if no filename and no mime, assume a url was passed as the only argument - fileName = url.split("/").pop().split("?")[0]; - anchor.href = url; // assign href prop to temp anchor - if(anchor.href.indexOf(url) !== -1){ // if the browser determines that it's a potentially valid url path: - var ajax=new XMLHttpRequest(); - ajax.open( "GET", url, true); - ajax.responseType = 'blob'; - ajax.onload= function(e){ - download(e.target.response, fileName, defaultMime); - }; - setTimeout(function(){ ajax.send();}, 0); // allows setting custom ajax headers using the return: - return ajax; - } // end if valid url? - } // end if url? - - - //go ahead and download dataURLs right away - if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)){ - - if(payload.length > (1024*1024*1.999) && myBlob !== toString ){ - payload=dataUrlToBlob(payload); - mimeType=payload.type || defaultMime; - }else{ - return navigator.msSaveBlob ? // IE10 can't do a[download], only Blobs: - navigator.msSaveBlob(dataUrlToBlob(payload), fileName) : - saver(payload) ; // everyone else can save dataURLs un-processed - } - - }else{//not data url, is it a string with special needs? - if(/([\x80-\xff])/.test(payload)){ - var i=0, tempUiArr= new Uint8Array(payload.length), mx=tempUiArr.length; - for(i;i= this.width || y < 0 || y >= this.height) { - return false; - } - return !!this.data[y * this.width + x]; - }; - BitMatrix.prototype.set = function (x, y, v) { - this.data[y * this.width + x] = v ? 1 : 0; - }; - BitMatrix.prototype.setRegion = function (left, top, width, height, v) { - for (var y = top; y < top + height; y++) { - for (var x = left; x < left + width; x++) { - this.set(x, y, !!v); - } - } - }; - return BitMatrix; -}()); -exports.BitMatrix = BitMatrix; - - -/***/ }), -/* 1 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var GenericGFPoly_1 = __webpack_require__(2); -function addOrSubtractGF(a, b) { - return a ^ b; // tslint:disable-line:no-bitwise -} -exports.addOrSubtractGF = addOrSubtractGF; -var GenericGF = /** @class */ (function () { - function GenericGF(primitive, size, genBase) { - this.primitive = primitive; - this.size = size; - this.generatorBase = genBase; - this.expTable = new Array(this.size); - this.logTable = new Array(this.size); - var x = 1; - for (var i = 0; i < this.size; i++) { - this.expTable[i] = x; - x = x * 2; - if (x >= this.size) { - x = (x ^ this.primitive) & (this.size - 1); // tslint:disable-line:no-bitwise - } - } - for (var i = 0; i < this.size - 1; i++) { - this.logTable[this.expTable[i]] = i; - } - this.zero = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([0])); - this.one = new GenericGFPoly_1.default(this, Uint8ClampedArray.from([1])); - } - GenericGF.prototype.multiply = function (a, b) { - if (a === 0 || b === 0) { - return 0; - } - return this.expTable[(this.logTable[a] + this.logTable[b]) % (this.size - 1)]; - }; - GenericGF.prototype.inverse = function (a) { - if (a === 0) { - throw new Error("Can't invert 0"); - } - return this.expTable[this.size - this.logTable[a] - 1]; - }; - GenericGF.prototype.buildMonomial = function (degree, coefficient) { - if (degree < 0) { - throw new Error("Invalid monomial degree less than 0"); - } - if (coefficient === 0) { - return this.zero; - } - var coefficients = new Uint8ClampedArray(degree + 1); - coefficients[0] = coefficient; - return new GenericGFPoly_1.default(this, coefficients); - }; - GenericGF.prototype.log = function (a) { - if (a === 0) { - throw new Error("Can't take log(0)"); - } - return this.logTable[a]; - }; - GenericGF.prototype.exp = function (a) { - return this.expTable[a]; - }; - return GenericGF; -}()); -exports.default = GenericGF; - - -/***/ }), -/* 2 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var GenericGF_1 = __webpack_require__(1); -var GenericGFPoly = /** @class */ (function () { - function GenericGFPoly(field, coefficients) { - if (coefficients.length === 0) { - throw new Error("No coefficients."); - } - this.field = field; - var coefficientsLength = coefficients.length; - if (coefficientsLength > 1 && coefficients[0] === 0) { - // Leading term must be non-zero for anything except the constant polynomial "0" - var firstNonZero = 1; - while (firstNonZero < coefficientsLength && coefficients[firstNonZero] === 0) { - firstNonZero++; - } - if (firstNonZero === coefficientsLength) { - this.coefficients = field.zero.coefficients; - } - else { - this.coefficients = new Uint8ClampedArray(coefficientsLength - firstNonZero); - for (var i = 0; i < this.coefficients.length; i++) { - this.coefficients[i] = coefficients[firstNonZero + i]; - } - } - } - else { - this.coefficients = coefficients; - } - } - GenericGFPoly.prototype.degree = function () { - return this.coefficients.length - 1; - }; - GenericGFPoly.prototype.isZero = function () { - return this.coefficients[0] === 0; - }; - GenericGFPoly.prototype.getCoefficient = function (degree) { - return this.coefficients[this.coefficients.length - 1 - degree]; - }; - GenericGFPoly.prototype.addOrSubtract = function (other) { - var _a; - if (this.isZero()) { - return other; - } - if (other.isZero()) { - return this; - } - var smallerCoefficients = this.coefficients; - var largerCoefficients = other.coefficients; - if (smallerCoefficients.length > largerCoefficients.length) { - _a = [largerCoefficients, smallerCoefficients], smallerCoefficients = _a[0], largerCoefficients = _a[1]; - } - var sumDiff = new Uint8ClampedArray(largerCoefficients.length); - var lengthDiff = largerCoefficients.length - smallerCoefficients.length; - for (var i = 0; i < lengthDiff; i++) { - sumDiff[i] = largerCoefficients[i]; - } - for (var i = lengthDiff; i < largerCoefficients.length; i++) { - sumDiff[i] = GenericGF_1.addOrSubtractGF(smallerCoefficients[i - lengthDiff], largerCoefficients[i]); - } - return new GenericGFPoly(this.field, sumDiff); - }; - GenericGFPoly.prototype.multiply = function (scalar) { - if (scalar === 0) { - return this.field.zero; - } - if (scalar === 1) { - return this; - } - var size = this.coefficients.length; - var product = new Uint8ClampedArray(size); - for (var i = 0; i < size; i++) { - product[i] = this.field.multiply(this.coefficients[i], scalar); - } - return new GenericGFPoly(this.field, product); - }; - GenericGFPoly.prototype.multiplyPoly = function (other) { - if (this.isZero() || other.isZero()) { - return this.field.zero; - } - var aCoefficients = this.coefficients; - var aLength = aCoefficients.length; - var bCoefficients = other.coefficients; - var bLength = bCoefficients.length; - var product = new Uint8ClampedArray(aLength + bLength - 1); - for (var i = 0; i < aLength; i++) { - var aCoeff = aCoefficients[i]; - for (var j = 0; j < bLength; j++) { - product[i + j] = GenericGF_1.addOrSubtractGF(product[i + j], this.field.multiply(aCoeff, bCoefficients[j])); - } - } - return new GenericGFPoly(this.field, product); - }; - GenericGFPoly.prototype.multiplyByMonomial = function (degree, coefficient) { - if (degree < 0) { - throw new Error("Invalid degree less than 0"); - } - if (coefficient === 0) { - return this.field.zero; - } - var size = this.coefficients.length; - var product = new Uint8ClampedArray(size + degree); - for (var i = 0; i < size; i++) { - product[i] = this.field.multiply(this.coefficients[i], coefficient); - } - return new GenericGFPoly(this.field, product); - }; - GenericGFPoly.prototype.evaluateAt = function (a) { - var result = 0; - if (a === 0) { - // Just return the x^0 coefficient - return this.getCoefficient(0); - } - var size = this.coefficients.length; - if (a === 1) { - // Just the sum of the coefficients - this.coefficients.forEach(function (coefficient) { - result = GenericGF_1.addOrSubtractGF(result, coefficient); - }); - return result; - } - result = this.coefficients[0]; - for (var i = 1; i < size; i++) { - result = GenericGF_1.addOrSubtractGF(this.field.multiply(a, result), this.coefficients[i]); - } - return result; - }; - return GenericGFPoly; -}()); -exports.default = GenericGFPoly; - - -/***/ }), -/* 3 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var binarizer_1 = __webpack_require__(4); -var decoder_1 = __webpack_require__(5); -var extractor_1 = __webpack_require__(11); -var locator_1 = __webpack_require__(12); -function scan(matrix) { - var locations = locator_1.locate(matrix); - if (!locations) { - return null; - } - for (var _i = 0, locations_1 = locations; _i < locations_1.length; _i++) { - var location_1 = locations_1[_i]; - var extracted = extractor_1.extract(matrix, location_1); - var decoded = decoder_1.decode(extracted.matrix); - if (decoded) { - return { - binaryData: decoded.bytes, - data: decoded.text, - chunks: decoded.chunks, - version: decoded.version, - location: { - topRightCorner: extracted.mappingFunction(location_1.dimension, 0), - topLeftCorner: extracted.mappingFunction(0, 0), - bottomRightCorner: extracted.mappingFunction(location_1.dimension, location_1.dimension), - bottomLeftCorner: extracted.mappingFunction(0, location_1.dimension), - topRightFinderPattern: location_1.topRight, - topLeftFinderPattern: location_1.topLeft, - bottomLeftFinderPattern: location_1.bottomLeft, - bottomRightAlignmentPattern: location_1.alignmentPattern, - }, - }; - } - } - return null; -} -var defaultOptions = { - inversionAttempts: "attemptBoth", -}; -function jsQR(data, width, height, providedOptions) { - if (providedOptions === void 0) { providedOptions = {}; } - var options = defaultOptions; - Object.keys(options || {}).forEach(function (opt) { - options[opt] = providedOptions[opt] || options[opt]; - }); - var shouldInvert = options.inversionAttempts === "attemptBoth" || options.inversionAttempts === "invertFirst"; - var tryInvertedFirst = options.inversionAttempts === "onlyInvert" || options.inversionAttempts === "invertFirst"; - var _a = binarizer_1.binarize(data, width, height, shouldInvert), binarized = _a.binarized, inverted = _a.inverted; - var result = scan(tryInvertedFirst ? inverted : binarized); - if (!result && (options.inversionAttempts === "attemptBoth" || options.inversionAttempts === "invertFirst")) { - result = scan(tryInvertedFirst ? binarized : inverted); - } - return result; -} -jsQR.default = jsQR; -exports.default = jsQR; - - -/***/ }), -/* 4 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var BitMatrix_1 = __webpack_require__(0); -var REGION_SIZE = 8; -var MIN_DYNAMIC_RANGE = 24; -function numBetween(value, min, max) { - return value < min ? min : value > max ? max : value; -} -// Like BitMatrix but accepts arbitry Uint8 values -var Matrix = /** @class */ (function () { - function Matrix(width, height) { - this.width = width; - this.data = new Uint8ClampedArray(width * height); - } - Matrix.prototype.get = function (x, y) { - return this.data[y * this.width + x]; - }; - Matrix.prototype.set = function (x, y, value) { - this.data[y * this.width + x] = value; - }; - return Matrix; -}()); -function binarize(data, width, height, returnInverted) { - if (data.length !== width * height * 4) { - throw new Error("Malformed data passed to binarizer."); - } - // Convert image to greyscale - var greyscalePixels = new Matrix(width, height); - for (var x = 0; x < width; x++) { - for (var y = 0; y < height; y++) { - var r = data[((y * width + x) * 4) + 0]; - var g = data[((y * width + x) * 4) + 1]; - var b = data[((y * width + x) * 4) + 2]; - greyscalePixels.set(x, y, 0.2126 * r + 0.7152 * g + 0.0722 * b); - } - } - var horizontalRegionCount = Math.ceil(width / REGION_SIZE); - var verticalRegionCount = Math.ceil(height / REGION_SIZE); - var blackPoints = new Matrix(horizontalRegionCount, verticalRegionCount); - for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) { - for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) { - var sum = 0; - var min = Infinity; - var max = 0; - for (var y = 0; y < REGION_SIZE; y++) { - for (var x = 0; x < REGION_SIZE; x++) { - var pixelLumosity = greyscalePixels.get(hortizontalRegion * REGION_SIZE + x, verticalRegion * REGION_SIZE + y); - sum += pixelLumosity; - min = Math.min(min, pixelLumosity); - max = Math.max(max, pixelLumosity); - } - } - var average = sum / (Math.pow(REGION_SIZE, 2)); - if (max - min <= MIN_DYNAMIC_RANGE) { - // If variation within the block is low, assume this is a block with only light or only - // dark pixels. In that case we do not want to use the average, as it would divide this - // low contrast area into black and white pixels, essentially creating data out of noise. - // - // Default the blackpoint for these blocks to be half the min - effectively white them out - average = min / 2; - if (verticalRegion > 0 && hortizontalRegion > 0) { - // Correct the "white background" assumption for blocks that have neighbors by comparing - // the pixels in this block to the previously calculated black points. This is based on - // the fact that dark barcode symbology is always surrounded by some amount of light - // background for which reasonable black point estimates were made. The bp estimated at - // the boundaries is used for the interior. - // The (min < bp) is arbitrary but works better than other heuristics that were tried. - var averageNeighborBlackPoint = (blackPoints.get(hortizontalRegion, verticalRegion - 1) + - (2 * blackPoints.get(hortizontalRegion - 1, verticalRegion)) + - blackPoints.get(hortizontalRegion - 1, verticalRegion - 1)) / 4; - if (min < averageNeighborBlackPoint) { - average = averageNeighborBlackPoint; - } - } - } - blackPoints.set(hortizontalRegion, verticalRegion, average); - } - } - var binarized = BitMatrix_1.BitMatrix.createEmpty(width, height); - var inverted = null; - if (returnInverted) { - inverted = BitMatrix_1.BitMatrix.createEmpty(width, height); - } - for (var verticalRegion = 0; verticalRegion < verticalRegionCount; verticalRegion++) { - for (var hortizontalRegion = 0; hortizontalRegion < horizontalRegionCount; hortizontalRegion++) { - var left = numBetween(hortizontalRegion, 2, horizontalRegionCount - 3); - var top_1 = numBetween(verticalRegion, 2, verticalRegionCount - 3); - var sum = 0; - for (var xRegion = -2; xRegion <= 2; xRegion++) { - for (var yRegion = -2; yRegion <= 2; yRegion++) { - sum += blackPoints.get(left + xRegion, top_1 + yRegion); - } - } - var threshold = sum / 25; - for (var xRegion = 0; xRegion < REGION_SIZE; xRegion++) { - for (var yRegion = 0; yRegion < REGION_SIZE; yRegion++) { - var x = hortizontalRegion * REGION_SIZE + xRegion; - var y = verticalRegion * REGION_SIZE + yRegion; - var lum = greyscalePixels.get(x, y); - binarized.set(x, y, lum <= threshold); - if (returnInverted) { - inverted.set(x, y, !(lum <= threshold)); - } - } - } - } - } - if (returnInverted) { - return { binarized: binarized, inverted: inverted }; - } - return { binarized: binarized }; -} -exports.binarize = binarize; - - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var BitMatrix_1 = __webpack_require__(0); -var decodeData_1 = __webpack_require__(6); -var reedsolomon_1 = __webpack_require__(9); -var version_1 = __webpack_require__(10); -// tslint:disable:no-bitwise -function numBitsDiffering(x, y) { - var z = x ^ y; - var bitCount = 0; - while (z) { - bitCount++; - z &= z - 1; - } - return bitCount; -} -function pushBit(bit, byte) { - return (byte << 1) | bit; -} -// tslint:enable:no-bitwise -var FORMAT_INFO_TABLE = [ - { bits: 0x5412, formatInfo: { errorCorrectionLevel: 1, dataMask: 0 } }, - { bits: 0x5125, formatInfo: { errorCorrectionLevel: 1, dataMask: 1 } }, - { bits: 0x5E7C, formatInfo: { errorCorrectionLevel: 1, dataMask: 2 } }, - { bits: 0x5B4B, formatInfo: { errorCorrectionLevel: 1, dataMask: 3 } }, - { bits: 0x45F9, formatInfo: { errorCorrectionLevel: 1, dataMask: 4 } }, - { bits: 0x40CE, formatInfo: { errorCorrectionLevel: 1, dataMask: 5 } }, - { bits: 0x4F97, formatInfo: { errorCorrectionLevel: 1, dataMask: 6 } }, - { bits: 0x4AA0, formatInfo: { errorCorrectionLevel: 1, dataMask: 7 } }, - { bits: 0x77C4, formatInfo: { errorCorrectionLevel: 0, dataMask: 0 } }, - { bits: 0x72F3, formatInfo: { errorCorrectionLevel: 0, dataMask: 1 } }, - { bits: 0x7DAA, formatInfo: { errorCorrectionLevel: 0, dataMask: 2 } }, - { bits: 0x789D, formatInfo: { errorCorrectionLevel: 0, dataMask: 3 } }, - { bits: 0x662F, formatInfo: { errorCorrectionLevel: 0, dataMask: 4 } }, - { bits: 0x6318, formatInfo: { errorCorrectionLevel: 0, dataMask: 5 } }, - { bits: 0x6C41, formatInfo: { errorCorrectionLevel: 0, dataMask: 6 } }, - { bits: 0x6976, formatInfo: { errorCorrectionLevel: 0, dataMask: 7 } }, - { bits: 0x1689, formatInfo: { errorCorrectionLevel: 3, dataMask: 0 } }, - { bits: 0x13BE, formatInfo: { errorCorrectionLevel: 3, dataMask: 1 } }, - { bits: 0x1CE7, formatInfo: { errorCorrectionLevel: 3, dataMask: 2 } }, - { bits: 0x19D0, formatInfo: { errorCorrectionLevel: 3, dataMask: 3 } }, - { bits: 0x0762, formatInfo: { errorCorrectionLevel: 3, dataMask: 4 } }, - { bits: 0x0255, formatInfo: { errorCorrectionLevel: 3, dataMask: 5 } }, - { bits: 0x0D0C, formatInfo: { errorCorrectionLevel: 3, dataMask: 6 } }, - { bits: 0x083B, formatInfo: { errorCorrectionLevel: 3, dataMask: 7 } }, - { bits: 0x355F, formatInfo: { errorCorrectionLevel: 2, dataMask: 0 } }, - { bits: 0x3068, formatInfo: { errorCorrectionLevel: 2, dataMask: 1 } }, - { bits: 0x3F31, formatInfo: { errorCorrectionLevel: 2, dataMask: 2 } }, - { bits: 0x3A06, formatInfo: { errorCorrectionLevel: 2, dataMask: 3 } }, - { bits: 0x24B4, formatInfo: { errorCorrectionLevel: 2, dataMask: 4 } }, - { bits: 0x2183, formatInfo: { errorCorrectionLevel: 2, dataMask: 5 } }, - { bits: 0x2EDA, formatInfo: { errorCorrectionLevel: 2, dataMask: 6 } }, - { bits: 0x2BED, formatInfo: { errorCorrectionLevel: 2, dataMask: 7 } }, -]; -var DATA_MASKS = [ - function (p) { return ((p.y + p.x) % 2) === 0; }, - function (p) { return (p.y % 2) === 0; }, - function (p) { return p.x % 3 === 0; }, - function (p) { return (p.y + p.x) % 3 === 0; }, - function (p) { return (Math.floor(p.y / 2) + Math.floor(p.x / 3)) % 2 === 0; }, - function (p) { return ((p.x * p.y) % 2) + ((p.x * p.y) % 3) === 0; }, - function (p) { return ((((p.y * p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; }, - function (p) { return ((((p.y + p.x) % 2) + (p.y * p.x) % 3) % 2) === 0; }, -]; -function buildFunctionPatternMask(version) { - var dimension = 17 + 4 * version.versionNumber; - var matrix = BitMatrix_1.BitMatrix.createEmpty(dimension, dimension); - matrix.setRegion(0, 0, 9, 9, true); // Top left finder pattern + separator + format - matrix.setRegion(dimension - 8, 0, 8, 9, true); // Top right finder pattern + separator + format - matrix.setRegion(0, dimension - 8, 9, 8, true); // Bottom left finder pattern + separator + format - // Alignment patterns - for (var _i = 0, _a = version.alignmentPatternCenters; _i < _a.length; _i++) { - var x = _a[_i]; - for (var _b = 0, _c = version.alignmentPatternCenters; _b < _c.length; _b++) { - var y = _c[_b]; - if (!(x === 6 && y === 6 || x === 6 && y === dimension - 7 || x === dimension - 7 && y === 6)) { - matrix.setRegion(x - 2, y - 2, 5, 5, true); - } - } - } - matrix.setRegion(6, 9, 1, dimension - 17, true); // Vertical timing pattern - matrix.setRegion(9, 6, dimension - 17, 1, true); // Horizontal timing pattern - if (version.versionNumber > 6) { - matrix.setRegion(dimension - 11, 0, 3, 6, true); // Version info, top right - matrix.setRegion(0, dimension - 11, 6, 3, true); // Version info, bottom left - } - return matrix; -} -function readCodewords(matrix, version, formatInfo) { - var dataMask = DATA_MASKS[formatInfo.dataMask]; - var dimension = matrix.height; - var functionPatternMask = buildFunctionPatternMask(version); - var codewords = []; - var currentByte = 0; - var bitsRead = 0; - // Read columns in pairs, from right to left - var readingUp = true; - for (var columnIndex = dimension - 1; columnIndex > 0; columnIndex -= 2) { - if (columnIndex === 6) { // Skip whole column with vertical alignment pattern; - columnIndex--; - } - for (var i = 0; i < dimension; i++) { - var y = readingUp ? dimension - 1 - i : i; - for (var columnOffset = 0; columnOffset < 2; columnOffset++) { - var x = columnIndex - columnOffset; - if (!functionPatternMask.get(x, y)) { - bitsRead++; - var bit = matrix.get(x, y); - if (dataMask({ y: y, x: x })) { - bit = !bit; - } - currentByte = pushBit(bit, currentByte); - if (bitsRead === 8) { // Whole bytes - codewords.push(currentByte); - bitsRead = 0; - currentByte = 0; - } - } - } - } - readingUp = !readingUp; - } - return codewords; -} -function readVersion(matrix) { - var dimension = matrix.height; - var provisionalVersion = Math.floor((dimension - 17) / 4); - if (provisionalVersion <= 6) { // 6 and under dont have version info in the QR code - return version_1.VERSIONS[provisionalVersion - 1]; - } - var topRightVersionBits = 0; - for (var y = 5; y >= 0; y--) { - for (var x = dimension - 9; x >= dimension - 11; x--) { - topRightVersionBits = pushBit(matrix.get(x, y), topRightVersionBits); - } - } - var bottomLeftVersionBits = 0; - for (var x = 5; x >= 0; x--) { - for (var y = dimension - 9; y >= dimension - 11; y--) { - bottomLeftVersionBits = pushBit(matrix.get(x, y), bottomLeftVersionBits); - } - } - var bestDifference = Infinity; - var bestVersion; - for (var _i = 0, VERSIONS_1 = version_1.VERSIONS; _i < VERSIONS_1.length; _i++) { - var version = VERSIONS_1[_i]; - if (version.infoBits === topRightVersionBits || version.infoBits === bottomLeftVersionBits) { - return version; - } - var difference = numBitsDiffering(topRightVersionBits, version.infoBits); - if (difference < bestDifference) { - bestVersion = version; - bestDifference = difference; - } - difference = numBitsDiffering(bottomLeftVersionBits, version.infoBits); - if (difference < bestDifference) { - bestVersion = version; - bestDifference = difference; - } - } - // We can tolerate up to 3 bits of error since no two version info codewords will - // differ in less than 8 bits. - if (bestDifference <= 3) { - return bestVersion; - } -} -function readFormatInformation(matrix) { - var topLeftFormatInfoBits = 0; - for (var x = 0; x <= 8; x++) { - if (x !== 6) { // Skip timing pattern bit - topLeftFormatInfoBits = pushBit(matrix.get(x, 8), topLeftFormatInfoBits); - } - } - for (var y = 7; y >= 0; y--) { - if (y !== 6) { // Skip timing pattern bit - topLeftFormatInfoBits = pushBit(matrix.get(8, y), topLeftFormatInfoBits); - } - } - var dimension = matrix.height; - var topRightBottomRightFormatInfoBits = 0; - for (var y = dimension - 1; y >= dimension - 7; y--) { // bottom left - topRightBottomRightFormatInfoBits = pushBit(matrix.get(8, y), topRightBottomRightFormatInfoBits); - } - for (var x = dimension - 8; x < dimension; x++) { // top right - topRightBottomRightFormatInfoBits = pushBit(matrix.get(x, 8), topRightBottomRightFormatInfoBits); - } - var bestDifference = Infinity; - var bestFormatInfo = null; - for (var _i = 0, FORMAT_INFO_TABLE_1 = FORMAT_INFO_TABLE; _i < FORMAT_INFO_TABLE_1.length; _i++) { - var _a = FORMAT_INFO_TABLE_1[_i], bits = _a.bits, formatInfo = _a.formatInfo; - if (bits === topLeftFormatInfoBits || bits === topRightBottomRightFormatInfoBits) { - return formatInfo; - } - var difference = numBitsDiffering(topLeftFormatInfoBits, bits); - if (difference < bestDifference) { - bestFormatInfo = formatInfo; - bestDifference = difference; - } - if (topLeftFormatInfoBits !== topRightBottomRightFormatInfoBits) { // also try the other option - difference = numBitsDiffering(topRightBottomRightFormatInfoBits, bits); - if (difference < bestDifference) { - bestFormatInfo = formatInfo; - bestDifference = difference; - } - } - } - // Hamming distance of the 32 masked codes is 7, by construction, so <= 3 bits differing means we found a match - if (bestDifference <= 3) { - return bestFormatInfo; - } - return null; -} -function getDataBlocks(codewords, version, ecLevel) { - var ecInfo = version.errorCorrectionLevels[ecLevel]; - var dataBlocks = []; - var totalCodewords = 0; - ecInfo.ecBlocks.forEach(function (block) { - for (var i = 0; i < block.numBlocks; i++) { - dataBlocks.push({ numDataCodewords: block.dataCodewordsPerBlock, codewords: [] }); - totalCodewords += block.dataCodewordsPerBlock + ecInfo.ecCodewordsPerBlock; - } - }); - // In some cases the QR code will be malformed enough that we pull off more or less than we should. - // If we pull off less there's nothing we can do. - // If we pull off more we can safely truncate - if (codewords.length < totalCodewords) { - return null; - } - codewords = codewords.slice(0, totalCodewords); - var shortBlockSize = ecInfo.ecBlocks[0].dataCodewordsPerBlock; - // Pull codewords to fill the blocks up to the minimum size - for (var i = 0; i < shortBlockSize; i++) { - for (var _i = 0, dataBlocks_1 = dataBlocks; _i < dataBlocks_1.length; _i++) { - var dataBlock = dataBlocks_1[_i]; - dataBlock.codewords.push(codewords.shift()); - } - } - // If there are any large blocks, pull codewords to fill the last element of those - if (ecInfo.ecBlocks.length > 1) { - var smallBlockCount = ecInfo.ecBlocks[0].numBlocks; - var largeBlockCount = ecInfo.ecBlocks[1].numBlocks; - for (var i = 0; i < largeBlockCount; i++) { - dataBlocks[smallBlockCount + i].codewords.push(codewords.shift()); - } - } - // Add the rest of the codewords to the blocks. These are the error correction codewords. - while (codewords.length > 0) { - for (var _a = 0, dataBlocks_2 = dataBlocks; _a < dataBlocks_2.length; _a++) { - var dataBlock = dataBlocks_2[_a]; - dataBlock.codewords.push(codewords.shift()); - } - } - return dataBlocks; -} -function decodeMatrix(matrix) { - var version = readVersion(matrix); - if (!version) { - return null; - } - var formatInfo = readFormatInformation(matrix); - if (!formatInfo) { - return null; - } - var codewords = readCodewords(matrix, version, formatInfo); - var dataBlocks = getDataBlocks(codewords, version, formatInfo.errorCorrectionLevel); - if (!dataBlocks) { - return null; - } - // Count total number of data bytes - var totalBytes = dataBlocks.reduce(function (a, b) { return a + b.numDataCodewords; }, 0); - var resultBytes = new Uint8ClampedArray(totalBytes); - var resultIndex = 0; - for (var _i = 0, dataBlocks_3 = dataBlocks; _i < dataBlocks_3.length; _i++) { - var dataBlock = dataBlocks_3[_i]; - var correctedBytes = reedsolomon_1.decode(dataBlock.codewords, dataBlock.codewords.length - dataBlock.numDataCodewords); - if (!correctedBytes) { - return null; - } - for (var i = 0; i < dataBlock.numDataCodewords; i++) { - resultBytes[resultIndex++] = correctedBytes[i]; - } - } - try { - return decodeData_1.decode(resultBytes, version.versionNumber); - } - catch (_a) { - return null; - } -} -function decode(matrix) { - if (matrix == null) { - return null; - } - var result = decodeMatrix(matrix); - if (result) { - return result; - } - // Decoding didn't work, try mirroring the QR across the topLeft -> bottomRight line. - for (var x = 0; x < matrix.width; x++) { - for (var y = x + 1; y < matrix.height; y++) { - if (matrix.get(x, y) !== matrix.get(y, x)) { - matrix.set(x, y, !matrix.get(x, y)); - matrix.set(y, x, !matrix.get(y, x)); - } - } - } - return decodeMatrix(matrix); -} -exports.decode = decode; - - -/***/ }), -/* 6 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -// tslint:disable:no-bitwise -var BitStream_1 = __webpack_require__(7); -var shiftJISTable_1 = __webpack_require__(8); -var Mode; -(function (Mode) { - Mode["Numeric"] = "numeric"; - Mode["Alphanumeric"] = "alphanumeric"; - Mode["Byte"] = "byte"; - Mode["Kanji"] = "kanji"; - Mode["ECI"] = "eci"; -})(Mode = exports.Mode || (exports.Mode = {})); -var ModeByte; -(function (ModeByte) { - ModeByte[ModeByte["Terminator"] = 0] = "Terminator"; - ModeByte[ModeByte["Numeric"] = 1] = "Numeric"; - ModeByte[ModeByte["Alphanumeric"] = 2] = "Alphanumeric"; - ModeByte[ModeByte["Byte"] = 4] = "Byte"; - ModeByte[ModeByte["Kanji"] = 8] = "Kanji"; - ModeByte[ModeByte["ECI"] = 7] = "ECI"; - // StructuredAppend = 0x3, - // FNC1FirstPosition = 0x5, - // FNC1SecondPosition = 0x9, -})(ModeByte || (ModeByte = {})); -function decodeNumeric(stream, size) { - var bytes = []; - var text = ""; - var characterCountSize = [10, 12, 14][size]; - var length = stream.readBits(characterCountSize); - // Read digits in groups of 3 - while (length >= 3) { - var num = stream.readBits(10); - if (num >= 1000) { - throw new Error("Invalid numeric value above 999"); - } - var a = Math.floor(num / 100); - var b = Math.floor(num / 10) % 10; - var c = num % 10; - bytes.push(48 + a, 48 + b, 48 + c); - text += a.toString() + b.toString() + c.toString(); - length -= 3; - } - // If the number of digits aren't a multiple of 3, the remaining digits are special cased. - if (length === 2) { - var num = stream.readBits(7); - if (num >= 100) { - throw new Error("Invalid numeric value above 99"); - } - var a = Math.floor(num / 10); - var b = num % 10; - bytes.push(48 + a, 48 + b); - text += a.toString() + b.toString(); - } - else if (length === 1) { - var num = stream.readBits(4); - if (num >= 10) { - throw new Error("Invalid numeric value above 9"); - } - bytes.push(48 + num); - text += num.toString(); - } - return { bytes: bytes, text: text }; -} -var AlphanumericCharacterCodes = [ - "0", "1", "2", "3", "4", "5", "6", "7", "8", - "9", "A", "B", "C", "D", "E", "F", "G", "H", - "I", "J", "K", "L", "M", "N", "O", "P", "Q", - "R", "S", "T", "U", "V", "W", "X", "Y", "Z", - " ", "$", "%", "*", "+", "-", ".", "/", ":", -]; -function decodeAlphanumeric(stream, size) { - var bytes = []; - var text = ""; - var characterCountSize = [9, 11, 13][size]; - var length = stream.readBits(characterCountSize); - while (length >= 2) { - var v = stream.readBits(11); - var a = Math.floor(v / 45); - var b = v % 45; - bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0), AlphanumericCharacterCodes[b].charCodeAt(0)); - text += AlphanumericCharacterCodes[a] + AlphanumericCharacterCodes[b]; - length -= 2; - } - if (length === 1) { - var a = stream.readBits(6); - bytes.push(AlphanumericCharacterCodes[a].charCodeAt(0)); - text += AlphanumericCharacterCodes[a]; - } - return { bytes: bytes, text: text }; -} -function decodeByte(stream, size) { - var bytes = []; - var text = ""; - var characterCountSize = [8, 16, 16][size]; - var length = stream.readBits(characterCountSize); - for (var i = 0; i < length; i++) { - var b = stream.readBits(8); - bytes.push(b); - } - try { - text += decodeURIComponent(bytes.map(function (b) { return "%" + ("0" + b.toString(16)).substr(-2); }).join("")); - } - catch (_a) { - // failed to decode - } - return { bytes: bytes, text: text }; -} -function decodeKanji(stream, size) { - var bytes = []; - var text = ""; - var characterCountSize = [8, 10, 12][size]; - var length = stream.readBits(characterCountSize); - for (var i = 0; i < length; i++) { - var k = stream.readBits(13); - var c = (Math.floor(k / 0xC0) << 8) | (k % 0xC0); - if (c < 0x1F00) { - c += 0x8140; - } - else { - c += 0xC140; - } - bytes.push(c >> 8, c & 0xFF); - text += String.fromCharCode(shiftJISTable_1.shiftJISTable[c]); - } - return { bytes: bytes, text: text }; -} -function decode(data, version) { - var _a, _b, _c, _d; - var stream = new BitStream_1.BitStream(data); - // There are 3 'sizes' based on the version. 1-9 is small (0), 10-26 is medium (1) and 27-40 is large (2). - var size = version <= 9 ? 0 : version <= 26 ? 1 : 2; - var result = { - text: "", - bytes: [], - chunks: [], - version: version, - }; - while (stream.available() >= 4) { - var mode = stream.readBits(4); - if (mode === ModeByte.Terminator) { - return result; - } - else if (mode === ModeByte.ECI) { - if (stream.readBits(1) === 0) { - result.chunks.push({ - type: Mode.ECI, - assignmentNumber: stream.readBits(7), - }); - } - else if (stream.readBits(1) === 0) { - result.chunks.push({ - type: Mode.ECI, - assignmentNumber: stream.readBits(14), - }); - } - else if (stream.readBits(1) === 0) { - result.chunks.push({ - type: Mode.ECI, - assignmentNumber: stream.readBits(21), - }); - } - else { - // ECI data seems corrupted - result.chunks.push({ - type: Mode.ECI, - assignmentNumber: -1, - }); - } - } - else if (mode === ModeByte.Numeric) { - var numericResult = decodeNumeric(stream, size); - result.text += numericResult.text; - (_a = result.bytes).push.apply(_a, numericResult.bytes); - result.chunks.push({ - type: Mode.Numeric, - text: numericResult.text, - }); - } - else if (mode === ModeByte.Alphanumeric) { - var alphanumericResult = decodeAlphanumeric(stream, size); - result.text += alphanumericResult.text; - (_b = result.bytes).push.apply(_b, alphanumericResult.bytes); - result.chunks.push({ - type: Mode.Alphanumeric, - text: alphanumericResult.text, - }); - } - else if (mode === ModeByte.Byte) { - var byteResult = decodeByte(stream, size); - result.text += byteResult.text; - (_c = result.bytes).push.apply(_c, byteResult.bytes); - result.chunks.push({ - type: Mode.Byte, - bytes: byteResult.bytes, - text: byteResult.text, - }); - } - else if (mode === ModeByte.Kanji) { - var kanjiResult = decodeKanji(stream, size); - result.text += kanjiResult.text; - (_d = result.bytes).push.apply(_d, kanjiResult.bytes); - result.chunks.push({ - type: Mode.Kanji, - bytes: kanjiResult.bytes, - text: kanjiResult.text, - }); - } - } - // If there is no data left, or the remaining bits are all 0, then that counts as a termination marker - if (stream.available() === 0 || stream.readBits(stream.available()) === 0) { - return result; - } -} -exports.decode = decode; - - -/***/ }), -/* 7 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// tslint:disable:no-bitwise -Object.defineProperty(exports, "__esModule", { value: true }); -var BitStream = /** @class */ (function () { - function BitStream(bytes) { - this.byteOffset = 0; - this.bitOffset = 0; - this.bytes = bytes; - } - BitStream.prototype.readBits = function (numBits) { - if (numBits < 1 || numBits > 32 || numBits > this.available()) { - throw new Error("Cannot read " + numBits.toString() + " bits"); - } - var result = 0; - // First, read remainder from current byte - if (this.bitOffset > 0) { - var bitsLeft = 8 - this.bitOffset; - var toRead = numBits < bitsLeft ? numBits : bitsLeft; - var bitsToNotRead = bitsLeft - toRead; - var mask = (0xFF >> (8 - toRead)) << bitsToNotRead; - result = (this.bytes[this.byteOffset] & mask) >> bitsToNotRead; - numBits -= toRead; - this.bitOffset += toRead; - if (this.bitOffset === 8) { - this.bitOffset = 0; - this.byteOffset++; - } - } - // Next read whole bytes - if (numBits > 0) { - while (numBits >= 8) { - result = (result << 8) | (this.bytes[this.byteOffset] & 0xFF); - this.byteOffset++; - numBits -= 8; - } - // Finally read a partial byte - if (numBits > 0) { - var bitsToNotRead = 8 - numBits; - var mask = (0xFF >> bitsToNotRead) << bitsToNotRead; - result = (result << numBits) | ((this.bytes[this.byteOffset] & mask) >> bitsToNotRead); - this.bitOffset += numBits; - } - } - return result; - }; - BitStream.prototype.available = function () { - return 8 * (this.bytes.length - this.byteOffset) - this.bitOffset; - }; - return BitStream; -}()); -exports.BitStream = BitStream; - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.shiftJISTable = { - 0x20: 0x0020, - 0x21: 0x0021, - 0x22: 0x0022, - 0x23: 0x0023, - 0x24: 0x0024, - 0x25: 0x0025, - 0x26: 0x0026, - 0x27: 0x0027, - 0x28: 0x0028, - 0x29: 0x0029, - 0x2A: 0x002A, - 0x2B: 0x002B, - 0x2C: 0x002C, - 0x2D: 0x002D, - 0x2E: 0x002E, - 0x2F: 0x002F, - 0x30: 0x0030, - 0x31: 0x0031, - 0x32: 0x0032, - 0x33: 0x0033, - 0x34: 0x0034, - 0x35: 0x0035, - 0x36: 0x0036, - 0x37: 0x0037, - 0x38: 0x0038, - 0x39: 0x0039, - 0x3A: 0x003A, - 0x3B: 0x003B, - 0x3C: 0x003C, - 0x3D: 0x003D, - 0x3E: 0x003E, - 0x3F: 0x003F, - 0x40: 0x0040, - 0x41: 0x0041, - 0x42: 0x0042, - 0x43: 0x0043, - 0x44: 0x0044, - 0x45: 0x0045, - 0x46: 0x0046, - 0x47: 0x0047, - 0x48: 0x0048, - 0x49: 0x0049, - 0x4A: 0x004A, - 0x4B: 0x004B, - 0x4C: 0x004C, - 0x4D: 0x004D, - 0x4E: 0x004E, - 0x4F: 0x004F, - 0x50: 0x0050, - 0x51: 0x0051, - 0x52: 0x0052, - 0x53: 0x0053, - 0x54: 0x0054, - 0x55: 0x0055, - 0x56: 0x0056, - 0x57: 0x0057, - 0x58: 0x0058, - 0x59: 0x0059, - 0x5A: 0x005A, - 0x5B: 0x005B, - 0x5C: 0x00A5, - 0x5D: 0x005D, - 0x5E: 0x005E, - 0x5F: 0x005F, - 0x60: 0x0060, - 0x61: 0x0061, - 0x62: 0x0062, - 0x63: 0x0063, - 0x64: 0x0064, - 0x65: 0x0065, - 0x66: 0x0066, - 0x67: 0x0067, - 0x68: 0x0068, - 0x69: 0x0069, - 0x6A: 0x006A, - 0x6B: 0x006B, - 0x6C: 0x006C, - 0x6D: 0x006D, - 0x6E: 0x006E, - 0x6F: 0x006F, - 0x70: 0x0070, - 0x71: 0x0071, - 0x72: 0x0072, - 0x73: 0x0073, - 0x74: 0x0074, - 0x75: 0x0075, - 0x76: 0x0076, - 0x77: 0x0077, - 0x78: 0x0078, - 0x79: 0x0079, - 0x7A: 0x007A, - 0x7B: 0x007B, - 0x7C: 0x007C, - 0x7D: 0x007D, - 0x7E: 0x203E, - 0x8140: 0x3000, - 0x8141: 0x3001, - 0x8142: 0x3002, - 0x8143: 0xFF0C, - 0x8144: 0xFF0E, - 0x8145: 0x30FB, - 0x8146: 0xFF1A, - 0x8147: 0xFF1B, - 0x8148: 0xFF1F, - 0x8149: 0xFF01, - 0x814A: 0x309B, - 0x814B: 0x309C, - 0x814C: 0x00B4, - 0x814D: 0xFF40, - 0x814E: 0x00A8, - 0x814F: 0xFF3E, - 0x8150: 0xFFE3, - 0x8151: 0xFF3F, - 0x8152: 0x30FD, - 0x8153: 0x30FE, - 0x8154: 0x309D, - 0x8155: 0x309E, - 0x8156: 0x3003, - 0x8157: 0x4EDD, - 0x8158: 0x3005, - 0x8159: 0x3006, - 0x815A: 0x3007, - 0x815B: 0x30FC, - 0x815C: 0x2015, - 0x815D: 0x2010, - 0x815E: 0xFF0F, - 0x815F: 0x005C, - 0x8160: 0x301C, - 0x8161: 0x2016, - 0x8162: 0xFF5C, - 0x8163: 0x2026, - 0x8164: 0x2025, - 0x8165: 0x2018, - 0x8166: 0x2019, - 0x8167: 0x201C, - 0x8168: 0x201D, - 0x8169: 0xFF08, - 0x816A: 0xFF09, - 0x816B: 0x3014, - 0x816C: 0x3015, - 0x816D: 0xFF3B, - 0x816E: 0xFF3D, - 0x816F: 0xFF5B, - 0x8170: 0xFF5D, - 0x8171: 0x3008, - 0x8172: 0x3009, - 0x8173: 0x300A, - 0x8174: 0x300B, - 0x8175: 0x300C, - 0x8176: 0x300D, - 0x8177: 0x300E, - 0x8178: 0x300F, - 0x8179: 0x3010, - 0x817A: 0x3011, - 0x817B: 0xFF0B, - 0x817C: 0x2212, - 0x817D: 0x00B1, - 0x817E: 0x00D7, - 0x8180: 0x00F7, - 0x8181: 0xFF1D, - 0x8182: 0x2260, - 0x8183: 0xFF1C, - 0x8184: 0xFF1E, - 0x8185: 0x2266, - 0x8186: 0x2267, - 0x8187: 0x221E, - 0x8188: 0x2234, - 0x8189: 0x2642, - 0x818A: 0x2640, - 0x818B: 0x00B0, - 0x818C: 0x2032, - 0x818D: 0x2033, - 0x818E: 0x2103, - 0x818F: 0xFFE5, - 0x8190: 0xFF04, - 0x8191: 0x00A2, - 0x8192: 0x00A3, - 0x8193: 0xFF05, - 0x8194: 0xFF03, - 0x8195: 0xFF06, - 0x8196: 0xFF0A, - 0x8197: 0xFF20, - 0x8198: 0x00A7, - 0x8199: 0x2606, - 0x819A: 0x2605, - 0x819B: 0x25CB, - 0x819C: 0x25CF, - 0x819D: 0x25CE, - 0x819E: 0x25C7, - 0x819F: 0x25C6, - 0x81A0: 0x25A1, - 0x81A1: 0x25A0, - 0x81A2: 0x25B3, - 0x81A3: 0x25B2, - 0x81A4: 0x25BD, - 0x81A5: 0x25BC, - 0x81A6: 0x203B, - 0x81A7: 0x3012, - 0x81A8: 0x2192, - 0x81A9: 0x2190, - 0x81AA: 0x2191, - 0x81AB: 0x2193, - 0x81AC: 0x3013, - 0x81B8: 0x2208, - 0x81B9: 0x220B, - 0x81BA: 0x2286, - 0x81BB: 0x2287, - 0x81BC: 0x2282, - 0x81BD: 0x2283, - 0x81BE: 0x222A, - 0x81BF: 0x2229, - 0x81C8: 0x2227, - 0x81C9: 0x2228, - 0x81CA: 0x00AC, - 0x81CB: 0x21D2, - 0x81CC: 0x21D4, - 0x81CD: 0x2200, - 0x81CE: 0x2203, - 0x81DA: 0x2220, - 0x81DB: 0x22A5, - 0x81DC: 0x2312, - 0x81DD: 0x2202, - 0x81DE: 0x2207, - 0x81DF: 0x2261, - 0x81E0: 0x2252, - 0x81E1: 0x226A, - 0x81E2: 0x226B, - 0x81E3: 0x221A, - 0x81E4: 0x223D, - 0x81E5: 0x221D, - 0x81E6: 0x2235, - 0x81E7: 0x222B, - 0x81E8: 0x222C, - 0x81F0: 0x212B, - 0x81F1: 0x2030, - 0x81F2: 0x266F, - 0x81F3: 0x266D, - 0x81F4: 0x266A, - 0x81F5: 0x2020, - 0x81F6: 0x2021, - 0x81F7: 0x00B6, - 0x81FC: 0x25EF, - 0x824F: 0xFF10, - 0x8250: 0xFF11, - 0x8251: 0xFF12, - 0x8252: 0xFF13, - 0x8253: 0xFF14, - 0x8254: 0xFF15, - 0x8255: 0xFF16, - 0x8256: 0xFF17, - 0x8257: 0xFF18, - 0x8258: 0xFF19, - 0x8260: 0xFF21, - 0x8261: 0xFF22, - 0x8262: 0xFF23, - 0x8263: 0xFF24, - 0x8264: 0xFF25, - 0x8265: 0xFF26, - 0x8266: 0xFF27, - 0x8267: 0xFF28, - 0x8268: 0xFF29, - 0x8269: 0xFF2A, - 0x826A: 0xFF2B, - 0x826B: 0xFF2C, - 0x826C: 0xFF2D, - 0x826D: 0xFF2E, - 0x826E: 0xFF2F, - 0x826F: 0xFF30, - 0x8270: 0xFF31, - 0x8271: 0xFF32, - 0x8272: 0xFF33, - 0x8273: 0xFF34, - 0x8274: 0xFF35, - 0x8275: 0xFF36, - 0x8276: 0xFF37, - 0x8277: 0xFF38, - 0x8278: 0xFF39, - 0x8279: 0xFF3A, - 0x8281: 0xFF41, - 0x8282: 0xFF42, - 0x8283: 0xFF43, - 0x8284: 0xFF44, - 0x8285: 0xFF45, - 0x8286: 0xFF46, - 0x8287: 0xFF47, - 0x8288: 0xFF48, - 0x8289: 0xFF49, - 0x828A: 0xFF4A, - 0x828B: 0xFF4B, - 0x828C: 0xFF4C, - 0x828D: 0xFF4D, - 0x828E: 0xFF4E, - 0x828F: 0xFF4F, - 0x8290: 0xFF50, - 0x8291: 0xFF51, - 0x8292: 0xFF52, - 0x8293: 0xFF53, - 0x8294: 0xFF54, - 0x8295: 0xFF55, - 0x8296: 0xFF56, - 0x8297: 0xFF57, - 0x8298: 0xFF58, - 0x8299: 0xFF59, - 0x829A: 0xFF5A, - 0x829F: 0x3041, - 0x82A0: 0x3042, - 0x82A1: 0x3043, - 0x82A2: 0x3044, - 0x82A3: 0x3045, - 0x82A4: 0x3046, - 0x82A5: 0x3047, - 0x82A6: 0x3048, - 0x82A7: 0x3049, - 0x82A8: 0x304A, - 0x82A9: 0x304B, - 0x82AA: 0x304C, - 0x82AB: 0x304D, - 0x82AC: 0x304E, - 0x82AD: 0x304F, - 0x82AE: 0x3050, - 0x82AF: 0x3051, - 0x82B0: 0x3052, - 0x82B1: 0x3053, - 0x82B2: 0x3054, - 0x82B3: 0x3055, - 0x82B4: 0x3056, - 0x82B5: 0x3057, - 0x82B6: 0x3058, - 0x82B7: 0x3059, - 0x82B8: 0x305A, - 0x82B9: 0x305B, - 0x82BA: 0x305C, - 0x82BB: 0x305D, - 0x82BC: 0x305E, - 0x82BD: 0x305F, - 0x82BE: 0x3060, - 0x82BF: 0x3061, - 0x82C0: 0x3062, - 0x82C1: 0x3063, - 0x82C2: 0x3064, - 0x82C3: 0x3065, - 0x82C4: 0x3066, - 0x82C5: 0x3067, - 0x82C6: 0x3068, - 0x82C7: 0x3069, - 0x82C8: 0x306A, - 0x82C9: 0x306B, - 0x82CA: 0x306C, - 0x82CB: 0x306D, - 0x82CC: 0x306E, - 0x82CD: 0x306F, - 0x82CE: 0x3070, - 0x82CF: 0x3071, - 0x82D0: 0x3072, - 0x82D1: 0x3073, - 0x82D2: 0x3074, - 0x82D3: 0x3075, - 0x82D4: 0x3076, - 0x82D5: 0x3077, - 0x82D6: 0x3078, - 0x82D7: 0x3079, - 0x82D8: 0x307A, - 0x82D9: 0x307B, - 0x82DA: 0x307C, - 0x82DB: 0x307D, - 0x82DC: 0x307E, - 0x82DD: 0x307F, - 0x82DE: 0x3080, - 0x82DF: 0x3081, - 0x82E0: 0x3082, - 0x82E1: 0x3083, - 0x82E2: 0x3084, - 0x82E3: 0x3085, - 0x82E4: 0x3086, - 0x82E5: 0x3087, - 0x82E6: 0x3088, - 0x82E7: 0x3089, - 0x82E8: 0x308A, - 0x82E9: 0x308B, - 0x82EA: 0x308C, - 0x82EB: 0x308D, - 0x82EC: 0x308E, - 0x82ED: 0x308F, - 0x82EE: 0x3090, - 0x82EF: 0x3091, - 0x82F0: 0x3092, - 0x82F1: 0x3093, - 0x8340: 0x30A1, - 0x8341: 0x30A2, - 0x8342: 0x30A3, - 0x8343: 0x30A4, - 0x8344: 0x30A5, - 0x8345: 0x30A6, - 0x8346: 0x30A7, - 0x8347: 0x30A8, - 0x8348: 0x30A9, - 0x8349: 0x30AA, - 0x834A: 0x30AB, - 0x834B: 0x30AC, - 0x834C: 0x30AD, - 0x834D: 0x30AE, - 0x834E: 0x30AF, - 0x834F: 0x30B0, - 0x8350: 0x30B1, - 0x8351: 0x30B2, - 0x8352: 0x30B3, - 0x8353: 0x30B4, - 0x8354: 0x30B5, - 0x8355: 0x30B6, - 0x8356: 0x30B7, - 0x8357: 0x30B8, - 0x8358: 0x30B9, - 0x8359: 0x30BA, - 0x835A: 0x30BB, - 0x835B: 0x30BC, - 0x835C: 0x30BD, - 0x835D: 0x30BE, - 0x835E: 0x30BF, - 0x835F: 0x30C0, - 0x8360: 0x30C1, - 0x8361: 0x30C2, - 0x8362: 0x30C3, - 0x8363: 0x30C4, - 0x8364: 0x30C5, - 0x8365: 0x30C6, - 0x8366: 0x30C7, - 0x8367: 0x30C8, - 0x8368: 0x30C9, - 0x8369: 0x30CA, - 0x836A: 0x30CB, - 0x836B: 0x30CC, - 0x836C: 0x30CD, - 0x836D: 0x30CE, - 0x836E: 0x30CF, - 0x836F: 0x30D0, - 0x8370: 0x30D1, - 0x8371: 0x30D2, - 0x8372: 0x30D3, - 0x8373: 0x30D4, - 0x8374: 0x30D5, - 0x8375: 0x30D6, - 0x8376: 0x30D7, - 0x8377: 0x30D8, - 0x8378: 0x30D9, - 0x8379: 0x30DA, - 0x837A: 0x30DB, - 0x837B: 0x30DC, - 0x837C: 0x30DD, - 0x837D: 0x30DE, - 0x837E: 0x30DF, - 0x8380: 0x30E0, - 0x8381: 0x30E1, - 0x8382: 0x30E2, - 0x8383: 0x30E3, - 0x8384: 0x30E4, - 0x8385: 0x30E5, - 0x8386: 0x30E6, - 0x8387: 0x30E7, - 0x8388: 0x30E8, - 0x8389: 0x30E9, - 0x838A: 0x30EA, - 0x838B: 0x30EB, - 0x838C: 0x30EC, - 0x838D: 0x30ED, - 0x838E: 0x30EE, - 0x838F: 0x30EF, - 0x8390: 0x30F0, - 0x8391: 0x30F1, - 0x8392: 0x30F2, - 0x8393: 0x30F3, - 0x8394: 0x30F4, - 0x8395: 0x30F5, - 0x8396: 0x30F6, - 0x839F: 0x0391, - 0x83A0: 0x0392, - 0x83A1: 0x0393, - 0x83A2: 0x0394, - 0x83A3: 0x0395, - 0x83A4: 0x0396, - 0x83A5: 0x0397, - 0x83A6: 0x0398, - 0x83A7: 0x0399, - 0x83A8: 0x039A, - 0x83A9: 0x039B, - 0x83AA: 0x039C, - 0x83AB: 0x039D, - 0x83AC: 0x039E, - 0x83AD: 0x039F, - 0x83AE: 0x03A0, - 0x83AF: 0x03A1, - 0x83B0: 0x03A3, - 0x83B1: 0x03A4, - 0x83B2: 0x03A5, - 0x83B3: 0x03A6, - 0x83B4: 0x03A7, - 0x83B5: 0x03A8, - 0x83B6: 0x03A9, - 0x83BF: 0x03B1, - 0x83C0: 0x03B2, - 0x83C1: 0x03B3, - 0x83C2: 0x03B4, - 0x83C3: 0x03B5, - 0x83C4: 0x03B6, - 0x83C5: 0x03B7, - 0x83C6: 0x03B8, - 0x83C7: 0x03B9, - 0x83C8: 0x03BA, - 0x83C9: 0x03BB, - 0x83CA: 0x03BC, - 0x83CB: 0x03BD, - 0x83CC: 0x03BE, - 0x83CD: 0x03BF, - 0x83CE: 0x03C0, - 0x83CF: 0x03C1, - 0x83D0: 0x03C3, - 0x83D1: 0x03C4, - 0x83D2: 0x03C5, - 0x83D3: 0x03C6, - 0x83D4: 0x03C7, - 0x83D5: 0x03C8, - 0x83D6: 0x03C9, - 0x8440: 0x0410, - 0x8441: 0x0411, - 0x8442: 0x0412, - 0x8443: 0x0413, - 0x8444: 0x0414, - 0x8445: 0x0415, - 0x8446: 0x0401, - 0x8447: 0x0416, - 0x8448: 0x0417, - 0x8449: 0x0418, - 0x844A: 0x0419, - 0x844B: 0x041A, - 0x844C: 0x041B, - 0x844D: 0x041C, - 0x844E: 0x041D, - 0x844F: 0x041E, - 0x8450: 0x041F, - 0x8451: 0x0420, - 0x8452: 0x0421, - 0x8453: 0x0422, - 0x8454: 0x0423, - 0x8455: 0x0424, - 0x8456: 0x0425, - 0x8457: 0x0426, - 0x8458: 0x0427, - 0x8459: 0x0428, - 0x845A: 0x0429, - 0x845B: 0x042A, - 0x845C: 0x042B, - 0x845D: 0x042C, - 0x845E: 0x042D, - 0x845F: 0x042E, - 0x8460: 0x042F, - 0x8470: 0x0430, - 0x8471: 0x0431, - 0x8472: 0x0432, - 0x8473: 0x0433, - 0x8474: 0x0434, - 0x8475: 0x0435, - 0x8476: 0x0451, - 0x8477: 0x0436, - 0x8478: 0x0437, - 0x8479: 0x0438, - 0x847A: 0x0439, - 0x847B: 0x043A, - 0x847C: 0x043B, - 0x847D: 0x043C, - 0x847E: 0x043D, - 0x8480: 0x043E, - 0x8481: 0x043F, - 0x8482: 0x0440, - 0x8483: 0x0441, - 0x8484: 0x0442, - 0x8485: 0x0443, - 0x8486: 0x0444, - 0x8487: 0x0445, - 0x8488: 0x0446, - 0x8489: 0x0447, - 0x848A: 0x0448, - 0x848B: 0x0449, - 0x848C: 0x044A, - 0x848D: 0x044B, - 0x848E: 0x044C, - 0x848F: 0x044D, - 0x8490: 0x044E, - 0x8491: 0x044F, - 0x849F: 0x2500, - 0x84A0: 0x2502, - 0x84A1: 0x250C, - 0x84A2: 0x2510, - 0x84A3: 0x2518, - 0x84A4: 0x2514, - 0x84A5: 0x251C, - 0x84A6: 0x252C, - 0x84A7: 0x2524, - 0x84A8: 0x2534, - 0x84A9: 0x253C, - 0x84AA: 0x2501, - 0x84AB: 0x2503, - 0x84AC: 0x250F, - 0x84AD: 0x2513, - 0x84AE: 0x251B, - 0x84AF: 0x2517, - 0x84B0: 0x2523, - 0x84B1: 0x2533, - 0x84B2: 0x252B, - 0x84B3: 0x253B, - 0x84B4: 0x254B, - 0x84B5: 0x2520, - 0x84B6: 0x252F, - 0x84B7: 0x2528, - 0x84B8: 0x2537, - 0x84B9: 0x253F, - 0x84BA: 0x251D, - 0x84BB: 0x2530, - 0x84BC: 0x2525, - 0x84BD: 0x2538, - 0x84BE: 0x2542, - 0x889F: 0x4E9C, - 0x88A0: 0x5516, - 0x88A1: 0x5A03, - 0x88A2: 0x963F, - 0x88A3: 0x54C0, - 0x88A4: 0x611B, - 0x88A5: 0x6328, - 0x88A6: 0x59F6, - 0x88A7: 0x9022, - 0x88A8: 0x8475, - 0x88A9: 0x831C, - 0x88AA: 0x7A50, - 0x88AB: 0x60AA, - 0x88AC: 0x63E1, - 0x88AD: 0x6E25, - 0x88AE: 0x65ED, - 0x88AF: 0x8466, - 0x88B0: 0x82A6, - 0x88B1: 0x9BF5, - 0x88B2: 0x6893, - 0x88B3: 0x5727, - 0x88B4: 0x65A1, - 0x88B5: 0x6271, - 0x88B6: 0x5B9B, - 0x88B7: 0x59D0, - 0x88B8: 0x867B, - 0x88B9: 0x98F4, - 0x88BA: 0x7D62, - 0x88BB: 0x7DBE, - 0x88BC: 0x9B8E, - 0x88BD: 0x6216, - 0x88BE: 0x7C9F, - 0x88BF: 0x88B7, - 0x88C0: 0x5B89, - 0x88C1: 0x5EB5, - 0x88C2: 0x6309, - 0x88C3: 0x6697, - 0x88C4: 0x6848, - 0x88C5: 0x95C7, - 0x88C6: 0x978D, - 0x88C7: 0x674F, - 0x88C8: 0x4EE5, - 0x88C9: 0x4F0A, - 0x88CA: 0x4F4D, - 0x88CB: 0x4F9D, - 0x88CC: 0x5049, - 0x88CD: 0x56F2, - 0x88CE: 0x5937, - 0x88CF: 0x59D4, - 0x88D0: 0x5A01, - 0x88D1: 0x5C09, - 0x88D2: 0x60DF, - 0x88D3: 0x610F, - 0x88D4: 0x6170, - 0x88D5: 0x6613, - 0x88D6: 0x6905, - 0x88D7: 0x70BA, - 0x88D8: 0x754F, - 0x88D9: 0x7570, - 0x88DA: 0x79FB, - 0x88DB: 0x7DAD, - 0x88DC: 0x7DEF, - 0x88DD: 0x80C3, - 0x88DE: 0x840E, - 0x88DF: 0x8863, - 0x88E0: 0x8B02, - 0x88E1: 0x9055, - 0x88E2: 0x907A, - 0x88E3: 0x533B, - 0x88E4: 0x4E95, - 0x88E5: 0x4EA5, - 0x88E6: 0x57DF, - 0x88E7: 0x80B2, - 0x88E8: 0x90C1, - 0x88E9: 0x78EF, - 0x88EA: 0x4E00, - 0x88EB: 0x58F1, - 0x88EC: 0x6EA2, - 0x88ED: 0x9038, - 0x88EE: 0x7A32, - 0x88EF: 0x8328, - 0x88F0: 0x828B, - 0x88F1: 0x9C2F, - 0x88F2: 0x5141, - 0x88F3: 0x5370, - 0x88F4: 0x54BD, - 0x88F5: 0x54E1, - 0x88F6: 0x56E0, - 0x88F7: 0x59FB, - 0x88F8: 0x5F15, - 0x88F9: 0x98F2, - 0x88FA: 0x6DEB, - 0x88FB: 0x80E4, - 0x88FC: 0x852D, - 0x8940: 0x9662, - 0x8941: 0x9670, - 0x8942: 0x96A0, - 0x8943: 0x97FB, - 0x8944: 0x540B, - 0x8945: 0x53F3, - 0x8946: 0x5B87, - 0x8947: 0x70CF, - 0x8948: 0x7FBD, - 0x8949: 0x8FC2, - 0x894A: 0x96E8, - 0x894B: 0x536F, - 0x894C: 0x9D5C, - 0x894D: 0x7ABA, - 0x894E: 0x4E11, - 0x894F: 0x7893, - 0x8950: 0x81FC, - 0x8951: 0x6E26, - 0x8952: 0x5618, - 0x8953: 0x5504, - 0x8954: 0x6B1D, - 0x8955: 0x851A, - 0x8956: 0x9C3B, - 0x8957: 0x59E5, - 0x8958: 0x53A9, - 0x8959: 0x6D66, - 0x895A: 0x74DC, - 0x895B: 0x958F, - 0x895C: 0x5642, - 0x895D: 0x4E91, - 0x895E: 0x904B, - 0x895F: 0x96F2, - 0x8960: 0x834F, - 0x8961: 0x990C, - 0x8962: 0x53E1, - 0x8963: 0x55B6, - 0x8964: 0x5B30, - 0x8965: 0x5F71, - 0x8966: 0x6620, - 0x8967: 0x66F3, - 0x8968: 0x6804, - 0x8969: 0x6C38, - 0x896A: 0x6CF3, - 0x896B: 0x6D29, - 0x896C: 0x745B, - 0x896D: 0x76C8, - 0x896E: 0x7A4E, - 0x896F: 0x9834, - 0x8970: 0x82F1, - 0x8971: 0x885B, - 0x8972: 0x8A60, - 0x8973: 0x92ED, - 0x8974: 0x6DB2, - 0x8975: 0x75AB, - 0x8976: 0x76CA, - 0x8977: 0x99C5, - 0x8978: 0x60A6, - 0x8979: 0x8B01, - 0x897A: 0x8D8A, - 0x897B: 0x95B2, - 0x897C: 0x698E, - 0x897D: 0x53AD, - 0x897E: 0x5186, - 0x8980: 0x5712, - 0x8981: 0x5830, - 0x8982: 0x5944, - 0x8983: 0x5BB4, - 0x8984: 0x5EF6, - 0x8985: 0x6028, - 0x8986: 0x63A9, - 0x8987: 0x63F4, - 0x8988: 0x6CBF, - 0x8989: 0x6F14, - 0x898A: 0x708E, - 0x898B: 0x7114, - 0x898C: 0x7159, - 0x898D: 0x71D5, - 0x898E: 0x733F, - 0x898F: 0x7E01, - 0x8990: 0x8276, - 0x8991: 0x82D1, - 0x8992: 0x8597, - 0x8993: 0x9060, - 0x8994: 0x925B, - 0x8995: 0x9D1B, - 0x8996: 0x5869, - 0x8997: 0x65BC, - 0x8998: 0x6C5A, - 0x8999: 0x7525, - 0x899A: 0x51F9, - 0x899B: 0x592E, - 0x899C: 0x5965, - 0x899D: 0x5F80, - 0x899E: 0x5FDC, - 0x899F: 0x62BC, - 0x89A0: 0x65FA, - 0x89A1: 0x6A2A, - 0x89A2: 0x6B27, - 0x89A3: 0x6BB4, - 0x89A4: 0x738B, - 0x89A5: 0x7FC1, - 0x89A6: 0x8956, - 0x89A7: 0x9D2C, - 0x89A8: 0x9D0E, - 0x89A9: 0x9EC4, - 0x89AA: 0x5CA1, - 0x89AB: 0x6C96, - 0x89AC: 0x837B, - 0x89AD: 0x5104, - 0x89AE: 0x5C4B, - 0x89AF: 0x61B6, - 0x89B0: 0x81C6, - 0x89B1: 0x6876, - 0x89B2: 0x7261, - 0x89B3: 0x4E59, - 0x89B4: 0x4FFA, - 0x89B5: 0x5378, - 0x89B6: 0x6069, - 0x89B7: 0x6E29, - 0x89B8: 0x7A4F, - 0x89B9: 0x97F3, - 0x89BA: 0x4E0B, - 0x89BB: 0x5316, - 0x89BC: 0x4EEE, - 0x89BD: 0x4F55, - 0x89BE: 0x4F3D, - 0x89BF: 0x4FA1, - 0x89C0: 0x4F73, - 0x89C1: 0x52A0, - 0x89C2: 0x53EF, - 0x89C3: 0x5609, - 0x89C4: 0x590F, - 0x89C5: 0x5AC1, - 0x89C6: 0x5BB6, - 0x89C7: 0x5BE1, - 0x89C8: 0x79D1, - 0x89C9: 0x6687, - 0x89CA: 0x679C, - 0x89CB: 0x67B6, - 0x89CC: 0x6B4C, - 0x89CD: 0x6CB3, - 0x89CE: 0x706B, - 0x89CF: 0x73C2, - 0x89D0: 0x798D, - 0x89D1: 0x79BE, - 0x89D2: 0x7A3C, - 0x89D3: 0x7B87, - 0x89D4: 0x82B1, - 0x89D5: 0x82DB, - 0x89D6: 0x8304, - 0x89D7: 0x8377, - 0x89D8: 0x83EF, - 0x89D9: 0x83D3, - 0x89DA: 0x8766, - 0x89DB: 0x8AB2, - 0x89DC: 0x5629, - 0x89DD: 0x8CA8, - 0x89DE: 0x8FE6, - 0x89DF: 0x904E, - 0x89E0: 0x971E, - 0x89E1: 0x868A, - 0x89E2: 0x4FC4, - 0x89E3: 0x5CE8, - 0x89E4: 0x6211, - 0x89E5: 0x7259, - 0x89E6: 0x753B, - 0x89E7: 0x81E5, - 0x89E8: 0x82BD, - 0x89E9: 0x86FE, - 0x89EA: 0x8CC0, - 0x89EB: 0x96C5, - 0x89EC: 0x9913, - 0x89ED: 0x99D5, - 0x89EE: 0x4ECB, - 0x89EF: 0x4F1A, - 0x89F0: 0x89E3, - 0x89F1: 0x56DE, - 0x89F2: 0x584A, - 0x89F3: 0x58CA, - 0x89F4: 0x5EFB, - 0x89F5: 0x5FEB, - 0x89F6: 0x602A, - 0x89F7: 0x6094, - 0x89F8: 0x6062, - 0x89F9: 0x61D0, - 0x89FA: 0x6212, - 0x89FB: 0x62D0, - 0x89FC: 0x6539, - 0x8A40: 0x9B41, - 0x8A41: 0x6666, - 0x8A42: 0x68B0, - 0x8A43: 0x6D77, - 0x8A44: 0x7070, - 0x8A45: 0x754C, - 0x8A46: 0x7686, - 0x8A47: 0x7D75, - 0x8A48: 0x82A5, - 0x8A49: 0x87F9, - 0x8A4A: 0x958B, - 0x8A4B: 0x968E, - 0x8A4C: 0x8C9D, - 0x8A4D: 0x51F1, - 0x8A4E: 0x52BE, - 0x8A4F: 0x5916, - 0x8A50: 0x54B3, - 0x8A51: 0x5BB3, - 0x8A52: 0x5D16, - 0x8A53: 0x6168, - 0x8A54: 0x6982, - 0x8A55: 0x6DAF, - 0x8A56: 0x788D, - 0x8A57: 0x84CB, - 0x8A58: 0x8857, - 0x8A59: 0x8A72, - 0x8A5A: 0x93A7, - 0x8A5B: 0x9AB8, - 0x8A5C: 0x6D6C, - 0x8A5D: 0x99A8, - 0x8A5E: 0x86D9, - 0x8A5F: 0x57A3, - 0x8A60: 0x67FF, - 0x8A61: 0x86CE, - 0x8A62: 0x920E, - 0x8A63: 0x5283, - 0x8A64: 0x5687, - 0x8A65: 0x5404, - 0x8A66: 0x5ED3, - 0x8A67: 0x62E1, - 0x8A68: 0x64B9, - 0x8A69: 0x683C, - 0x8A6A: 0x6838, - 0x8A6B: 0x6BBB, - 0x8A6C: 0x7372, - 0x8A6D: 0x78BA, - 0x8A6E: 0x7A6B, - 0x8A6F: 0x899A, - 0x8A70: 0x89D2, - 0x8A71: 0x8D6B, - 0x8A72: 0x8F03, - 0x8A73: 0x90ED, - 0x8A74: 0x95A3, - 0x8A75: 0x9694, - 0x8A76: 0x9769, - 0x8A77: 0x5B66, - 0x8A78: 0x5CB3, - 0x8A79: 0x697D, - 0x8A7A: 0x984D, - 0x8A7B: 0x984E, - 0x8A7C: 0x639B, - 0x8A7D: 0x7B20, - 0x8A7E: 0x6A2B, - 0x8A80: 0x6A7F, - 0x8A81: 0x68B6, - 0x8A82: 0x9C0D, - 0x8A83: 0x6F5F, - 0x8A84: 0x5272, - 0x8A85: 0x559D, - 0x8A86: 0x6070, - 0x8A87: 0x62EC, - 0x8A88: 0x6D3B, - 0x8A89: 0x6E07, - 0x8A8A: 0x6ED1, - 0x8A8B: 0x845B, - 0x8A8C: 0x8910, - 0x8A8D: 0x8F44, - 0x8A8E: 0x4E14, - 0x8A8F: 0x9C39, - 0x8A90: 0x53F6, - 0x8A91: 0x691B, - 0x8A92: 0x6A3A, - 0x8A93: 0x9784, - 0x8A94: 0x682A, - 0x8A95: 0x515C, - 0x8A96: 0x7AC3, - 0x8A97: 0x84B2, - 0x8A98: 0x91DC, - 0x8A99: 0x938C, - 0x8A9A: 0x565B, - 0x8A9B: 0x9D28, - 0x8A9C: 0x6822, - 0x8A9D: 0x8305, - 0x8A9E: 0x8431, - 0x8A9F: 0x7CA5, - 0x8AA0: 0x5208, - 0x8AA1: 0x82C5, - 0x8AA2: 0x74E6, - 0x8AA3: 0x4E7E, - 0x8AA4: 0x4F83, - 0x8AA5: 0x51A0, - 0x8AA6: 0x5BD2, - 0x8AA7: 0x520A, - 0x8AA8: 0x52D8, - 0x8AA9: 0x52E7, - 0x8AAA: 0x5DFB, - 0x8AAB: 0x559A, - 0x8AAC: 0x582A, - 0x8AAD: 0x59E6, - 0x8AAE: 0x5B8C, - 0x8AAF: 0x5B98, - 0x8AB0: 0x5BDB, - 0x8AB1: 0x5E72, - 0x8AB2: 0x5E79, - 0x8AB3: 0x60A3, - 0x8AB4: 0x611F, - 0x8AB5: 0x6163, - 0x8AB6: 0x61BE, - 0x8AB7: 0x63DB, - 0x8AB8: 0x6562, - 0x8AB9: 0x67D1, - 0x8ABA: 0x6853, - 0x8ABB: 0x68FA, - 0x8ABC: 0x6B3E, - 0x8ABD: 0x6B53, - 0x8ABE: 0x6C57, - 0x8ABF: 0x6F22, - 0x8AC0: 0x6F97, - 0x8AC1: 0x6F45, - 0x8AC2: 0x74B0, - 0x8AC3: 0x7518, - 0x8AC4: 0x76E3, - 0x8AC5: 0x770B, - 0x8AC6: 0x7AFF, - 0x8AC7: 0x7BA1, - 0x8AC8: 0x7C21, - 0x8AC9: 0x7DE9, - 0x8ACA: 0x7F36, - 0x8ACB: 0x7FF0, - 0x8ACC: 0x809D, - 0x8ACD: 0x8266, - 0x8ACE: 0x839E, - 0x8ACF: 0x89B3, - 0x8AD0: 0x8ACC, - 0x8AD1: 0x8CAB, - 0x8AD2: 0x9084, - 0x8AD3: 0x9451, - 0x8AD4: 0x9593, - 0x8AD5: 0x9591, - 0x8AD6: 0x95A2, - 0x8AD7: 0x9665, - 0x8AD8: 0x97D3, - 0x8AD9: 0x9928, - 0x8ADA: 0x8218, - 0x8ADB: 0x4E38, - 0x8ADC: 0x542B, - 0x8ADD: 0x5CB8, - 0x8ADE: 0x5DCC, - 0x8ADF: 0x73A9, - 0x8AE0: 0x764C, - 0x8AE1: 0x773C, - 0x8AE2: 0x5CA9, - 0x8AE3: 0x7FEB, - 0x8AE4: 0x8D0B, - 0x8AE5: 0x96C1, - 0x8AE6: 0x9811, - 0x8AE7: 0x9854, - 0x8AE8: 0x9858, - 0x8AE9: 0x4F01, - 0x8AEA: 0x4F0E, - 0x8AEB: 0x5371, - 0x8AEC: 0x559C, - 0x8AED: 0x5668, - 0x8AEE: 0x57FA, - 0x8AEF: 0x5947, - 0x8AF0: 0x5B09, - 0x8AF1: 0x5BC4, - 0x8AF2: 0x5C90, - 0x8AF3: 0x5E0C, - 0x8AF4: 0x5E7E, - 0x8AF5: 0x5FCC, - 0x8AF6: 0x63EE, - 0x8AF7: 0x673A, - 0x8AF8: 0x65D7, - 0x8AF9: 0x65E2, - 0x8AFA: 0x671F, - 0x8AFB: 0x68CB, - 0x8AFC: 0x68C4, - 0x8B40: 0x6A5F, - 0x8B41: 0x5E30, - 0x8B42: 0x6BC5, - 0x8B43: 0x6C17, - 0x8B44: 0x6C7D, - 0x8B45: 0x757F, - 0x8B46: 0x7948, - 0x8B47: 0x5B63, - 0x8B48: 0x7A00, - 0x8B49: 0x7D00, - 0x8B4A: 0x5FBD, - 0x8B4B: 0x898F, - 0x8B4C: 0x8A18, - 0x8B4D: 0x8CB4, - 0x8B4E: 0x8D77, - 0x8B4F: 0x8ECC, - 0x8B50: 0x8F1D, - 0x8B51: 0x98E2, - 0x8B52: 0x9A0E, - 0x8B53: 0x9B3C, - 0x8B54: 0x4E80, - 0x8B55: 0x507D, - 0x8B56: 0x5100, - 0x8B57: 0x5993, - 0x8B58: 0x5B9C, - 0x8B59: 0x622F, - 0x8B5A: 0x6280, - 0x8B5B: 0x64EC, - 0x8B5C: 0x6B3A, - 0x8B5D: 0x72A0, - 0x8B5E: 0x7591, - 0x8B5F: 0x7947, - 0x8B60: 0x7FA9, - 0x8B61: 0x87FB, - 0x8B62: 0x8ABC, - 0x8B63: 0x8B70, - 0x8B64: 0x63AC, - 0x8B65: 0x83CA, - 0x8B66: 0x97A0, - 0x8B67: 0x5409, - 0x8B68: 0x5403, - 0x8B69: 0x55AB, - 0x8B6A: 0x6854, - 0x8B6B: 0x6A58, - 0x8B6C: 0x8A70, - 0x8B6D: 0x7827, - 0x8B6E: 0x6775, - 0x8B6F: 0x9ECD, - 0x8B70: 0x5374, - 0x8B71: 0x5BA2, - 0x8B72: 0x811A, - 0x8B73: 0x8650, - 0x8B74: 0x9006, - 0x8B75: 0x4E18, - 0x8B76: 0x4E45, - 0x8B77: 0x4EC7, - 0x8B78: 0x4F11, - 0x8B79: 0x53CA, - 0x8B7A: 0x5438, - 0x8B7B: 0x5BAE, - 0x8B7C: 0x5F13, - 0x8B7D: 0x6025, - 0x8B7E: 0x6551, - 0x8B80: 0x673D, - 0x8B81: 0x6C42, - 0x8B82: 0x6C72, - 0x8B83: 0x6CE3, - 0x8B84: 0x7078, - 0x8B85: 0x7403, - 0x8B86: 0x7A76, - 0x8B87: 0x7AAE, - 0x8B88: 0x7B08, - 0x8B89: 0x7D1A, - 0x8B8A: 0x7CFE, - 0x8B8B: 0x7D66, - 0x8B8C: 0x65E7, - 0x8B8D: 0x725B, - 0x8B8E: 0x53BB, - 0x8B8F: 0x5C45, - 0x8B90: 0x5DE8, - 0x8B91: 0x62D2, - 0x8B92: 0x62E0, - 0x8B93: 0x6319, - 0x8B94: 0x6E20, - 0x8B95: 0x865A, - 0x8B96: 0x8A31, - 0x8B97: 0x8DDD, - 0x8B98: 0x92F8, - 0x8B99: 0x6F01, - 0x8B9A: 0x79A6, - 0x8B9B: 0x9B5A, - 0x8B9C: 0x4EA8, - 0x8B9D: 0x4EAB, - 0x8B9E: 0x4EAC, - 0x8B9F: 0x4F9B, - 0x8BA0: 0x4FA0, - 0x8BA1: 0x50D1, - 0x8BA2: 0x5147, - 0x8BA3: 0x7AF6, - 0x8BA4: 0x5171, - 0x8BA5: 0x51F6, - 0x8BA6: 0x5354, - 0x8BA7: 0x5321, - 0x8BA8: 0x537F, - 0x8BA9: 0x53EB, - 0x8BAA: 0x55AC, - 0x8BAB: 0x5883, - 0x8BAC: 0x5CE1, - 0x8BAD: 0x5F37, - 0x8BAE: 0x5F4A, - 0x8BAF: 0x602F, - 0x8BB0: 0x6050, - 0x8BB1: 0x606D, - 0x8BB2: 0x631F, - 0x8BB3: 0x6559, - 0x8BB4: 0x6A4B, - 0x8BB5: 0x6CC1, - 0x8BB6: 0x72C2, - 0x8BB7: 0x72ED, - 0x8BB8: 0x77EF, - 0x8BB9: 0x80F8, - 0x8BBA: 0x8105, - 0x8BBB: 0x8208, - 0x8BBC: 0x854E, - 0x8BBD: 0x90F7, - 0x8BBE: 0x93E1, - 0x8BBF: 0x97FF, - 0x8BC0: 0x9957, - 0x8BC1: 0x9A5A, - 0x8BC2: 0x4EF0, - 0x8BC3: 0x51DD, - 0x8BC4: 0x5C2D, - 0x8BC5: 0x6681, - 0x8BC6: 0x696D, - 0x8BC7: 0x5C40, - 0x8BC8: 0x66F2, - 0x8BC9: 0x6975, - 0x8BCA: 0x7389, - 0x8BCB: 0x6850, - 0x8BCC: 0x7C81, - 0x8BCD: 0x50C5, - 0x8BCE: 0x52E4, - 0x8BCF: 0x5747, - 0x8BD0: 0x5DFE, - 0x8BD1: 0x9326, - 0x8BD2: 0x65A4, - 0x8BD3: 0x6B23, - 0x8BD4: 0x6B3D, - 0x8BD5: 0x7434, - 0x8BD6: 0x7981, - 0x8BD7: 0x79BD, - 0x8BD8: 0x7B4B, - 0x8BD9: 0x7DCA, - 0x8BDA: 0x82B9, - 0x8BDB: 0x83CC, - 0x8BDC: 0x887F, - 0x8BDD: 0x895F, - 0x8BDE: 0x8B39, - 0x8BDF: 0x8FD1, - 0x8BE0: 0x91D1, - 0x8BE1: 0x541F, - 0x8BE2: 0x9280, - 0x8BE3: 0x4E5D, - 0x8BE4: 0x5036, - 0x8BE5: 0x53E5, - 0x8BE6: 0x533A, - 0x8BE7: 0x72D7, - 0x8BE8: 0x7396, - 0x8BE9: 0x77E9, - 0x8BEA: 0x82E6, - 0x8BEB: 0x8EAF, - 0x8BEC: 0x99C6, - 0x8BED: 0x99C8, - 0x8BEE: 0x99D2, - 0x8BEF: 0x5177, - 0x8BF0: 0x611A, - 0x8BF1: 0x865E, - 0x8BF2: 0x55B0, - 0x8BF3: 0x7A7A, - 0x8BF4: 0x5076, - 0x8BF5: 0x5BD3, - 0x8BF6: 0x9047, - 0x8BF7: 0x9685, - 0x8BF8: 0x4E32, - 0x8BF9: 0x6ADB, - 0x8BFA: 0x91E7, - 0x8BFB: 0x5C51, - 0x8BFC: 0x5C48, - 0x8C40: 0x6398, - 0x8C41: 0x7A9F, - 0x8C42: 0x6C93, - 0x8C43: 0x9774, - 0x8C44: 0x8F61, - 0x8C45: 0x7AAA, - 0x8C46: 0x718A, - 0x8C47: 0x9688, - 0x8C48: 0x7C82, - 0x8C49: 0x6817, - 0x8C4A: 0x7E70, - 0x8C4B: 0x6851, - 0x8C4C: 0x936C, - 0x8C4D: 0x52F2, - 0x8C4E: 0x541B, - 0x8C4F: 0x85AB, - 0x8C50: 0x8A13, - 0x8C51: 0x7FA4, - 0x8C52: 0x8ECD, - 0x8C53: 0x90E1, - 0x8C54: 0x5366, - 0x8C55: 0x8888, - 0x8C56: 0x7941, - 0x8C57: 0x4FC2, - 0x8C58: 0x50BE, - 0x8C59: 0x5211, - 0x8C5A: 0x5144, - 0x8C5B: 0x5553, - 0x8C5C: 0x572D, - 0x8C5D: 0x73EA, - 0x8C5E: 0x578B, - 0x8C5F: 0x5951, - 0x8C60: 0x5F62, - 0x8C61: 0x5F84, - 0x8C62: 0x6075, - 0x8C63: 0x6176, - 0x8C64: 0x6167, - 0x8C65: 0x61A9, - 0x8C66: 0x63B2, - 0x8C67: 0x643A, - 0x8C68: 0x656C, - 0x8C69: 0x666F, - 0x8C6A: 0x6842, - 0x8C6B: 0x6E13, - 0x8C6C: 0x7566, - 0x8C6D: 0x7A3D, - 0x8C6E: 0x7CFB, - 0x8C6F: 0x7D4C, - 0x8C70: 0x7D99, - 0x8C71: 0x7E4B, - 0x8C72: 0x7F6B, - 0x8C73: 0x830E, - 0x8C74: 0x834A, - 0x8C75: 0x86CD, - 0x8C76: 0x8A08, - 0x8C77: 0x8A63, - 0x8C78: 0x8B66, - 0x8C79: 0x8EFD, - 0x8C7A: 0x981A, - 0x8C7B: 0x9D8F, - 0x8C7C: 0x82B8, - 0x8C7D: 0x8FCE, - 0x8C7E: 0x9BE8, - 0x8C80: 0x5287, - 0x8C81: 0x621F, - 0x8C82: 0x6483, - 0x8C83: 0x6FC0, - 0x8C84: 0x9699, - 0x8C85: 0x6841, - 0x8C86: 0x5091, - 0x8C87: 0x6B20, - 0x8C88: 0x6C7A, - 0x8C89: 0x6F54, - 0x8C8A: 0x7A74, - 0x8C8B: 0x7D50, - 0x8C8C: 0x8840, - 0x8C8D: 0x8A23, - 0x8C8E: 0x6708, - 0x8C8F: 0x4EF6, - 0x8C90: 0x5039, - 0x8C91: 0x5026, - 0x8C92: 0x5065, - 0x8C93: 0x517C, - 0x8C94: 0x5238, - 0x8C95: 0x5263, - 0x8C96: 0x55A7, - 0x8C97: 0x570F, - 0x8C98: 0x5805, - 0x8C99: 0x5ACC, - 0x8C9A: 0x5EFA, - 0x8C9B: 0x61B2, - 0x8C9C: 0x61F8, - 0x8C9D: 0x62F3, - 0x8C9E: 0x6372, - 0x8C9F: 0x691C, - 0x8CA0: 0x6A29, - 0x8CA1: 0x727D, - 0x8CA2: 0x72AC, - 0x8CA3: 0x732E, - 0x8CA4: 0x7814, - 0x8CA5: 0x786F, - 0x8CA6: 0x7D79, - 0x8CA7: 0x770C, - 0x8CA8: 0x80A9, - 0x8CA9: 0x898B, - 0x8CAA: 0x8B19, - 0x8CAB: 0x8CE2, - 0x8CAC: 0x8ED2, - 0x8CAD: 0x9063, - 0x8CAE: 0x9375, - 0x8CAF: 0x967A, - 0x8CB0: 0x9855, - 0x8CB1: 0x9A13, - 0x8CB2: 0x9E78, - 0x8CB3: 0x5143, - 0x8CB4: 0x539F, - 0x8CB5: 0x53B3, - 0x8CB6: 0x5E7B, - 0x8CB7: 0x5F26, - 0x8CB8: 0x6E1B, - 0x8CB9: 0x6E90, - 0x8CBA: 0x7384, - 0x8CBB: 0x73FE, - 0x8CBC: 0x7D43, - 0x8CBD: 0x8237, - 0x8CBE: 0x8A00, - 0x8CBF: 0x8AFA, - 0x8CC0: 0x9650, - 0x8CC1: 0x4E4E, - 0x8CC2: 0x500B, - 0x8CC3: 0x53E4, - 0x8CC4: 0x547C, - 0x8CC5: 0x56FA, - 0x8CC6: 0x59D1, - 0x8CC7: 0x5B64, - 0x8CC8: 0x5DF1, - 0x8CC9: 0x5EAB, - 0x8CCA: 0x5F27, - 0x8CCB: 0x6238, - 0x8CCC: 0x6545, - 0x8CCD: 0x67AF, - 0x8CCE: 0x6E56, - 0x8CCF: 0x72D0, - 0x8CD0: 0x7CCA, - 0x8CD1: 0x88B4, - 0x8CD2: 0x80A1, - 0x8CD3: 0x80E1, - 0x8CD4: 0x83F0, - 0x8CD5: 0x864E, - 0x8CD6: 0x8A87, - 0x8CD7: 0x8DE8, - 0x8CD8: 0x9237, - 0x8CD9: 0x96C7, - 0x8CDA: 0x9867, - 0x8CDB: 0x9F13, - 0x8CDC: 0x4E94, - 0x8CDD: 0x4E92, - 0x8CDE: 0x4F0D, - 0x8CDF: 0x5348, - 0x8CE0: 0x5449, - 0x8CE1: 0x543E, - 0x8CE2: 0x5A2F, - 0x8CE3: 0x5F8C, - 0x8CE4: 0x5FA1, - 0x8CE5: 0x609F, - 0x8CE6: 0x68A7, - 0x8CE7: 0x6A8E, - 0x8CE8: 0x745A, - 0x8CE9: 0x7881, - 0x8CEA: 0x8A9E, - 0x8CEB: 0x8AA4, - 0x8CEC: 0x8B77, - 0x8CED: 0x9190, - 0x8CEE: 0x4E5E, - 0x8CEF: 0x9BC9, - 0x8CF0: 0x4EA4, - 0x8CF1: 0x4F7C, - 0x8CF2: 0x4FAF, - 0x8CF3: 0x5019, - 0x8CF4: 0x5016, - 0x8CF5: 0x5149, - 0x8CF6: 0x516C, - 0x8CF7: 0x529F, - 0x8CF8: 0x52B9, - 0x8CF9: 0x52FE, - 0x8CFA: 0x539A, - 0x8CFB: 0x53E3, - 0x8CFC: 0x5411, - 0x8D40: 0x540E, - 0x8D41: 0x5589, - 0x8D42: 0x5751, - 0x8D43: 0x57A2, - 0x8D44: 0x597D, - 0x8D45: 0x5B54, - 0x8D46: 0x5B5D, - 0x8D47: 0x5B8F, - 0x8D48: 0x5DE5, - 0x8D49: 0x5DE7, - 0x8D4A: 0x5DF7, - 0x8D4B: 0x5E78, - 0x8D4C: 0x5E83, - 0x8D4D: 0x5E9A, - 0x8D4E: 0x5EB7, - 0x8D4F: 0x5F18, - 0x8D50: 0x6052, - 0x8D51: 0x614C, - 0x8D52: 0x6297, - 0x8D53: 0x62D8, - 0x8D54: 0x63A7, - 0x8D55: 0x653B, - 0x8D56: 0x6602, - 0x8D57: 0x6643, - 0x8D58: 0x66F4, - 0x8D59: 0x676D, - 0x8D5A: 0x6821, - 0x8D5B: 0x6897, - 0x8D5C: 0x69CB, - 0x8D5D: 0x6C5F, - 0x8D5E: 0x6D2A, - 0x8D5F: 0x6D69, - 0x8D60: 0x6E2F, - 0x8D61: 0x6E9D, - 0x8D62: 0x7532, - 0x8D63: 0x7687, - 0x8D64: 0x786C, - 0x8D65: 0x7A3F, - 0x8D66: 0x7CE0, - 0x8D67: 0x7D05, - 0x8D68: 0x7D18, - 0x8D69: 0x7D5E, - 0x8D6A: 0x7DB1, - 0x8D6B: 0x8015, - 0x8D6C: 0x8003, - 0x8D6D: 0x80AF, - 0x8D6E: 0x80B1, - 0x8D6F: 0x8154, - 0x8D70: 0x818F, - 0x8D71: 0x822A, - 0x8D72: 0x8352, - 0x8D73: 0x884C, - 0x8D74: 0x8861, - 0x8D75: 0x8B1B, - 0x8D76: 0x8CA2, - 0x8D77: 0x8CFC, - 0x8D78: 0x90CA, - 0x8D79: 0x9175, - 0x8D7A: 0x9271, - 0x8D7B: 0x783F, - 0x8D7C: 0x92FC, - 0x8D7D: 0x95A4, - 0x8D7E: 0x964D, - 0x8D80: 0x9805, - 0x8D81: 0x9999, - 0x8D82: 0x9AD8, - 0x8D83: 0x9D3B, - 0x8D84: 0x525B, - 0x8D85: 0x52AB, - 0x8D86: 0x53F7, - 0x8D87: 0x5408, - 0x8D88: 0x58D5, - 0x8D89: 0x62F7, - 0x8D8A: 0x6FE0, - 0x8D8B: 0x8C6A, - 0x8D8C: 0x8F5F, - 0x8D8D: 0x9EB9, - 0x8D8E: 0x514B, - 0x8D8F: 0x523B, - 0x8D90: 0x544A, - 0x8D91: 0x56FD, - 0x8D92: 0x7A40, - 0x8D93: 0x9177, - 0x8D94: 0x9D60, - 0x8D95: 0x9ED2, - 0x8D96: 0x7344, - 0x8D97: 0x6F09, - 0x8D98: 0x8170, - 0x8D99: 0x7511, - 0x8D9A: 0x5FFD, - 0x8D9B: 0x60DA, - 0x8D9C: 0x9AA8, - 0x8D9D: 0x72DB, - 0x8D9E: 0x8FBC, - 0x8D9F: 0x6B64, - 0x8DA0: 0x9803, - 0x8DA1: 0x4ECA, - 0x8DA2: 0x56F0, - 0x8DA3: 0x5764, - 0x8DA4: 0x58BE, - 0x8DA5: 0x5A5A, - 0x8DA6: 0x6068, - 0x8DA7: 0x61C7, - 0x8DA8: 0x660F, - 0x8DA9: 0x6606, - 0x8DAA: 0x6839, - 0x8DAB: 0x68B1, - 0x8DAC: 0x6DF7, - 0x8DAD: 0x75D5, - 0x8DAE: 0x7D3A, - 0x8DAF: 0x826E, - 0x8DB0: 0x9B42, - 0x8DB1: 0x4E9B, - 0x8DB2: 0x4F50, - 0x8DB3: 0x53C9, - 0x8DB4: 0x5506, - 0x8DB5: 0x5D6F, - 0x8DB6: 0x5DE6, - 0x8DB7: 0x5DEE, - 0x8DB8: 0x67FB, - 0x8DB9: 0x6C99, - 0x8DBA: 0x7473, - 0x8DBB: 0x7802, - 0x8DBC: 0x8A50, - 0x8DBD: 0x9396, - 0x8DBE: 0x88DF, - 0x8DBF: 0x5750, - 0x8DC0: 0x5EA7, - 0x8DC1: 0x632B, - 0x8DC2: 0x50B5, - 0x8DC3: 0x50AC, - 0x8DC4: 0x518D, - 0x8DC5: 0x6700, - 0x8DC6: 0x54C9, - 0x8DC7: 0x585E, - 0x8DC8: 0x59BB, - 0x8DC9: 0x5BB0, - 0x8DCA: 0x5F69, - 0x8DCB: 0x624D, - 0x8DCC: 0x63A1, - 0x8DCD: 0x683D, - 0x8DCE: 0x6B73, - 0x8DCF: 0x6E08, - 0x8DD0: 0x707D, - 0x8DD1: 0x91C7, - 0x8DD2: 0x7280, - 0x8DD3: 0x7815, - 0x8DD4: 0x7826, - 0x8DD5: 0x796D, - 0x8DD6: 0x658E, - 0x8DD7: 0x7D30, - 0x8DD8: 0x83DC, - 0x8DD9: 0x88C1, - 0x8DDA: 0x8F09, - 0x8DDB: 0x969B, - 0x8DDC: 0x5264, - 0x8DDD: 0x5728, - 0x8DDE: 0x6750, - 0x8DDF: 0x7F6A, - 0x8DE0: 0x8CA1, - 0x8DE1: 0x51B4, - 0x8DE2: 0x5742, - 0x8DE3: 0x962A, - 0x8DE4: 0x583A, - 0x8DE5: 0x698A, - 0x8DE6: 0x80B4, - 0x8DE7: 0x54B2, - 0x8DE8: 0x5D0E, - 0x8DE9: 0x57FC, - 0x8DEA: 0x7895, - 0x8DEB: 0x9DFA, - 0x8DEC: 0x4F5C, - 0x8DED: 0x524A, - 0x8DEE: 0x548B, - 0x8DEF: 0x643E, - 0x8DF0: 0x6628, - 0x8DF1: 0x6714, - 0x8DF2: 0x67F5, - 0x8DF3: 0x7A84, - 0x8DF4: 0x7B56, - 0x8DF5: 0x7D22, - 0x8DF6: 0x932F, - 0x8DF7: 0x685C, - 0x8DF8: 0x9BAD, - 0x8DF9: 0x7B39, - 0x8DFA: 0x5319, - 0x8DFB: 0x518A, - 0x8DFC: 0x5237, - 0x8E40: 0x5BDF, - 0x8E41: 0x62F6, - 0x8E42: 0x64AE, - 0x8E43: 0x64E6, - 0x8E44: 0x672D, - 0x8E45: 0x6BBA, - 0x8E46: 0x85A9, - 0x8E47: 0x96D1, - 0x8E48: 0x7690, - 0x8E49: 0x9BD6, - 0x8E4A: 0x634C, - 0x8E4B: 0x9306, - 0x8E4C: 0x9BAB, - 0x8E4D: 0x76BF, - 0x8E4E: 0x6652, - 0x8E4F: 0x4E09, - 0x8E50: 0x5098, - 0x8E51: 0x53C2, - 0x8E52: 0x5C71, - 0x8E53: 0x60E8, - 0x8E54: 0x6492, - 0x8E55: 0x6563, - 0x8E56: 0x685F, - 0x8E57: 0x71E6, - 0x8E58: 0x73CA, - 0x8E59: 0x7523, - 0x8E5A: 0x7B97, - 0x8E5B: 0x7E82, - 0x8E5C: 0x8695, - 0x8E5D: 0x8B83, - 0x8E5E: 0x8CDB, - 0x8E5F: 0x9178, - 0x8E60: 0x9910, - 0x8E61: 0x65AC, - 0x8E62: 0x66AB, - 0x8E63: 0x6B8B, - 0x8E64: 0x4ED5, - 0x8E65: 0x4ED4, - 0x8E66: 0x4F3A, - 0x8E67: 0x4F7F, - 0x8E68: 0x523A, - 0x8E69: 0x53F8, - 0x8E6A: 0x53F2, - 0x8E6B: 0x55E3, - 0x8E6C: 0x56DB, - 0x8E6D: 0x58EB, - 0x8E6E: 0x59CB, - 0x8E6F: 0x59C9, - 0x8E70: 0x59FF, - 0x8E71: 0x5B50, - 0x8E72: 0x5C4D, - 0x8E73: 0x5E02, - 0x8E74: 0x5E2B, - 0x8E75: 0x5FD7, - 0x8E76: 0x601D, - 0x8E77: 0x6307, - 0x8E78: 0x652F, - 0x8E79: 0x5B5C, - 0x8E7A: 0x65AF, - 0x8E7B: 0x65BD, - 0x8E7C: 0x65E8, - 0x8E7D: 0x679D, - 0x8E7E: 0x6B62, - 0x8E80: 0x6B7B, - 0x8E81: 0x6C0F, - 0x8E82: 0x7345, - 0x8E83: 0x7949, - 0x8E84: 0x79C1, - 0x8E85: 0x7CF8, - 0x8E86: 0x7D19, - 0x8E87: 0x7D2B, - 0x8E88: 0x80A2, - 0x8E89: 0x8102, - 0x8E8A: 0x81F3, - 0x8E8B: 0x8996, - 0x8E8C: 0x8A5E, - 0x8E8D: 0x8A69, - 0x8E8E: 0x8A66, - 0x8E8F: 0x8A8C, - 0x8E90: 0x8AEE, - 0x8E91: 0x8CC7, - 0x8E92: 0x8CDC, - 0x8E93: 0x96CC, - 0x8E94: 0x98FC, - 0x8E95: 0x6B6F, - 0x8E96: 0x4E8B, - 0x8E97: 0x4F3C, - 0x8E98: 0x4F8D, - 0x8E99: 0x5150, - 0x8E9A: 0x5B57, - 0x8E9B: 0x5BFA, - 0x8E9C: 0x6148, - 0x8E9D: 0x6301, - 0x8E9E: 0x6642, - 0x8E9F: 0x6B21, - 0x8EA0: 0x6ECB, - 0x8EA1: 0x6CBB, - 0x8EA2: 0x723E, - 0x8EA3: 0x74BD, - 0x8EA4: 0x75D4, - 0x8EA5: 0x78C1, - 0x8EA6: 0x793A, - 0x8EA7: 0x800C, - 0x8EA8: 0x8033, - 0x8EA9: 0x81EA, - 0x8EAA: 0x8494, - 0x8EAB: 0x8F9E, - 0x8EAC: 0x6C50, - 0x8EAD: 0x9E7F, - 0x8EAE: 0x5F0F, - 0x8EAF: 0x8B58, - 0x8EB0: 0x9D2B, - 0x8EB1: 0x7AFA, - 0x8EB2: 0x8EF8, - 0x8EB3: 0x5B8D, - 0x8EB4: 0x96EB, - 0x8EB5: 0x4E03, - 0x8EB6: 0x53F1, - 0x8EB7: 0x57F7, - 0x8EB8: 0x5931, - 0x8EB9: 0x5AC9, - 0x8EBA: 0x5BA4, - 0x8EBB: 0x6089, - 0x8EBC: 0x6E7F, - 0x8EBD: 0x6F06, - 0x8EBE: 0x75BE, - 0x8EBF: 0x8CEA, - 0x8EC0: 0x5B9F, - 0x8EC1: 0x8500, - 0x8EC2: 0x7BE0, - 0x8EC3: 0x5072, - 0x8EC4: 0x67F4, - 0x8EC5: 0x829D, - 0x8EC6: 0x5C61, - 0x8EC7: 0x854A, - 0x8EC8: 0x7E1E, - 0x8EC9: 0x820E, - 0x8ECA: 0x5199, - 0x8ECB: 0x5C04, - 0x8ECC: 0x6368, - 0x8ECD: 0x8D66, - 0x8ECE: 0x659C, - 0x8ECF: 0x716E, - 0x8ED0: 0x793E, - 0x8ED1: 0x7D17, - 0x8ED2: 0x8005, - 0x8ED3: 0x8B1D, - 0x8ED4: 0x8ECA, - 0x8ED5: 0x906E, - 0x8ED6: 0x86C7, - 0x8ED7: 0x90AA, - 0x8ED8: 0x501F, - 0x8ED9: 0x52FA, - 0x8EDA: 0x5C3A, - 0x8EDB: 0x6753, - 0x8EDC: 0x707C, - 0x8EDD: 0x7235, - 0x8EDE: 0x914C, - 0x8EDF: 0x91C8, - 0x8EE0: 0x932B, - 0x8EE1: 0x82E5, - 0x8EE2: 0x5BC2, - 0x8EE3: 0x5F31, - 0x8EE4: 0x60F9, - 0x8EE5: 0x4E3B, - 0x8EE6: 0x53D6, - 0x8EE7: 0x5B88, - 0x8EE8: 0x624B, - 0x8EE9: 0x6731, - 0x8EEA: 0x6B8A, - 0x8EEB: 0x72E9, - 0x8EEC: 0x73E0, - 0x8EED: 0x7A2E, - 0x8EEE: 0x816B, - 0x8EEF: 0x8DA3, - 0x8EF0: 0x9152, - 0x8EF1: 0x9996, - 0x8EF2: 0x5112, - 0x8EF3: 0x53D7, - 0x8EF4: 0x546A, - 0x8EF5: 0x5BFF, - 0x8EF6: 0x6388, - 0x8EF7: 0x6A39, - 0x8EF8: 0x7DAC, - 0x8EF9: 0x9700, - 0x8EFA: 0x56DA, - 0x8EFB: 0x53CE, - 0x8EFC: 0x5468, - 0x8F40: 0x5B97, - 0x8F41: 0x5C31, - 0x8F42: 0x5DDE, - 0x8F43: 0x4FEE, - 0x8F44: 0x6101, - 0x8F45: 0x62FE, - 0x8F46: 0x6D32, - 0x8F47: 0x79C0, - 0x8F48: 0x79CB, - 0x8F49: 0x7D42, - 0x8F4A: 0x7E4D, - 0x8F4B: 0x7FD2, - 0x8F4C: 0x81ED, - 0x8F4D: 0x821F, - 0x8F4E: 0x8490, - 0x8F4F: 0x8846, - 0x8F50: 0x8972, - 0x8F51: 0x8B90, - 0x8F52: 0x8E74, - 0x8F53: 0x8F2F, - 0x8F54: 0x9031, - 0x8F55: 0x914B, - 0x8F56: 0x916C, - 0x8F57: 0x96C6, - 0x8F58: 0x919C, - 0x8F59: 0x4EC0, - 0x8F5A: 0x4F4F, - 0x8F5B: 0x5145, - 0x8F5C: 0x5341, - 0x8F5D: 0x5F93, - 0x8F5E: 0x620E, - 0x8F5F: 0x67D4, - 0x8F60: 0x6C41, - 0x8F61: 0x6E0B, - 0x8F62: 0x7363, - 0x8F63: 0x7E26, - 0x8F64: 0x91CD, - 0x8F65: 0x9283, - 0x8F66: 0x53D4, - 0x8F67: 0x5919, - 0x8F68: 0x5BBF, - 0x8F69: 0x6DD1, - 0x8F6A: 0x795D, - 0x8F6B: 0x7E2E, - 0x8F6C: 0x7C9B, - 0x8F6D: 0x587E, - 0x8F6E: 0x719F, - 0x8F6F: 0x51FA, - 0x8F70: 0x8853, - 0x8F71: 0x8FF0, - 0x8F72: 0x4FCA, - 0x8F73: 0x5CFB, - 0x8F74: 0x6625, - 0x8F75: 0x77AC, - 0x8F76: 0x7AE3, - 0x8F77: 0x821C, - 0x8F78: 0x99FF, - 0x8F79: 0x51C6, - 0x8F7A: 0x5FAA, - 0x8F7B: 0x65EC, - 0x8F7C: 0x696F, - 0x8F7D: 0x6B89, - 0x8F7E: 0x6DF3, - 0x8F80: 0x6E96, - 0x8F81: 0x6F64, - 0x8F82: 0x76FE, - 0x8F83: 0x7D14, - 0x8F84: 0x5DE1, - 0x8F85: 0x9075, - 0x8F86: 0x9187, - 0x8F87: 0x9806, - 0x8F88: 0x51E6, - 0x8F89: 0x521D, - 0x8F8A: 0x6240, - 0x8F8B: 0x6691, - 0x8F8C: 0x66D9, - 0x8F8D: 0x6E1A, - 0x8F8E: 0x5EB6, - 0x8F8F: 0x7DD2, - 0x8F90: 0x7F72, - 0x8F91: 0x66F8, - 0x8F92: 0x85AF, - 0x8F93: 0x85F7, - 0x8F94: 0x8AF8, - 0x8F95: 0x52A9, - 0x8F96: 0x53D9, - 0x8F97: 0x5973, - 0x8F98: 0x5E8F, - 0x8F99: 0x5F90, - 0x8F9A: 0x6055, - 0x8F9B: 0x92E4, - 0x8F9C: 0x9664, - 0x8F9D: 0x50B7, - 0x8F9E: 0x511F, - 0x8F9F: 0x52DD, - 0x8FA0: 0x5320, - 0x8FA1: 0x5347, - 0x8FA2: 0x53EC, - 0x8FA3: 0x54E8, - 0x8FA4: 0x5546, - 0x8FA5: 0x5531, - 0x8FA6: 0x5617, - 0x8FA7: 0x5968, - 0x8FA8: 0x59BE, - 0x8FA9: 0x5A3C, - 0x8FAA: 0x5BB5, - 0x8FAB: 0x5C06, - 0x8FAC: 0x5C0F, - 0x8FAD: 0x5C11, - 0x8FAE: 0x5C1A, - 0x8FAF: 0x5E84, - 0x8FB0: 0x5E8A, - 0x8FB1: 0x5EE0, - 0x8FB2: 0x5F70, - 0x8FB3: 0x627F, - 0x8FB4: 0x6284, - 0x8FB5: 0x62DB, - 0x8FB6: 0x638C, - 0x8FB7: 0x6377, - 0x8FB8: 0x6607, - 0x8FB9: 0x660C, - 0x8FBA: 0x662D, - 0x8FBB: 0x6676, - 0x8FBC: 0x677E, - 0x8FBD: 0x68A2, - 0x8FBE: 0x6A1F, - 0x8FBF: 0x6A35, - 0x8FC0: 0x6CBC, - 0x8FC1: 0x6D88, - 0x8FC2: 0x6E09, - 0x8FC3: 0x6E58, - 0x8FC4: 0x713C, - 0x8FC5: 0x7126, - 0x8FC6: 0x7167, - 0x8FC7: 0x75C7, - 0x8FC8: 0x7701, - 0x8FC9: 0x785D, - 0x8FCA: 0x7901, - 0x8FCB: 0x7965, - 0x8FCC: 0x79F0, - 0x8FCD: 0x7AE0, - 0x8FCE: 0x7B11, - 0x8FCF: 0x7CA7, - 0x8FD0: 0x7D39, - 0x8FD1: 0x8096, - 0x8FD2: 0x83D6, - 0x8FD3: 0x848B, - 0x8FD4: 0x8549, - 0x8FD5: 0x885D, - 0x8FD6: 0x88F3, - 0x8FD7: 0x8A1F, - 0x8FD8: 0x8A3C, - 0x8FD9: 0x8A54, - 0x8FDA: 0x8A73, - 0x8FDB: 0x8C61, - 0x8FDC: 0x8CDE, - 0x8FDD: 0x91A4, - 0x8FDE: 0x9266, - 0x8FDF: 0x937E, - 0x8FE0: 0x9418, - 0x8FE1: 0x969C, - 0x8FE2: 0x9798, - 0x8FE3: 0x4E0A, - 0x8FE4: 0x4E08, - 0x8FE5: 0x4E1E, - 0x8FE6: 0x4E57, - 0x8FE7: 0x5197, - 0x8FE8: 0x5270, - 0x8FE9: 0x57CE, - 0x8FEA: 0x5834, - 0x8FEB: 0x58CC, - 0x8FEC: 0x5B22, - 0x8FED: 0x5E38, - 0x8FEE: 0x60C5, - 0x8FEF: 0x64FE, - 0x8FF0: 0x6761, - 0x8FF1: 0x6756, - 0x8FF2: 0x6D44, - 0x8FF3: 0x72B6, - 0x8FF4: 0x7573, - 0x8FF5: 0x7A63, - 0x8FF6: 0x84B8, - 0x8FF7: 0x8B72, - 0x8FF8: 0x91B8, - 0x8FF9: 0x9320, - 0x8FFA: 0x5631, - 0x8FFB: 0x57F4, - 0x8FFC: 0x98FE, - 0x9040: 0x62ED, - 0x9041: 0x690D, - 0x9042: 0x6B96, - 0x9043: 0x71ED, - 0x9044: 0x7E54, - 0x9045: 0x8077, - 0x9046: 0x8272, - 0x9047: 0x89E6, - 0x9048: 0x98DF, - 0x9049: 0x8755, - 0x904A: 0x8FB1, - 0x904B: 0x5C3B, - 0x904C: 0x4F38, - 0x904D: 0x4FE1, - 0x904E: 0x4FB5, - 0x904F: 0x5507, - 0x9050: 0x5A20, - 0x9051: 0x5BDD, - 0x9052: 0x5BE9, - 0x9053: 0x5FC3, - 0x9054: 0x614E, - 0x9055: 0x632F, - 0x9056: 0x65B0, - 0x9057: 0x664B, - 0x9058: 0x68EE, - 0x9059: 0x699B, - 0x905A: 0x6D78, - 0x905B: 0x6DF1, - 0x905C: 0x7533, - 0x905D: 0x75B9, - 0x905E: 0x771F, - 0x905F: 0x795E, - 0x9060: 0x79E6, - 0x9061: 0x7D33, - 0x9062: 0x81E3, - 0x9063: 0x82AF, - 0x9064: 0x85AA, - 0x9065: 0x89AA, - 0x9066: 0x8A3A, - 0x9067: 0x8EAB, - 0x9068: 0x8F9B, - 0x9069: 0x9032, - 0x906A: 0x91DD, - 0x906B: 0x9707, - 0x906C: 0x4EBA, - 0x906D: 0x4EC1, - 0x906E: 0x5203, - 0x906F: 0x5875, - 0x9070: 0x58EC, - 0x9071: 0x5C0B, - 0x9072: 0x751A, - 0x9073: 0x5C3D, - 0x9074: 0x814E, - 0x9075: 0x8A0A, - 0x9076: 0x8FC5, - 0x9077: 0x9663, - 0x9078: 0x976D, - 0x9079: 0x7B25, - 0x907A: 0x8ACF, - 0x907B: 0x9808, - 0x907C: 0x9162, - 0x907D: 0x56F3, - 0x907E: 0x53A8, - 0x9080: 0x9017, - 0x9081: 0x5439, - 0x9082: 0x5782, - 0x9083: 0x5E25, - 0x9084: 0x63A8, - 0x9085: 0x6C34, - 0x9086: 0x708A, - 0x9087: 0x7761, - 0x9088: 0x7C8B, - 0x9089: 0x7FE0, - 0x908A: 0x8870, - 0x908B: 0x9042, - 0x908C: 0x9154, - 0x908D: 0x9310, - 0x908E: 0x9318, - 0x908F: 0x968F, - 0x9090: 0x745E, - 0x9091: 0x9AC4, - 0x9092: 0x5D07, - 0x9093: 0x5D69, - 0x9094: 0x6570, - 0x9095: 0x67A2, - 0x9096: 0x8DA8, - 0x9097: 0x96DB, - 0x9098: 0x636E, - 0x9099: 0x6749, - 0x909A: 0x6919, - 0x909B: 0x83C5, - 0x909C: 0x9817, - 0x909D: 0x96C0, - 0x909E: 0x88FE, - 0x909F: 0x6F84, - 0x90A0: 0x647A, - 0x90A1: 0x5BF8, - 0x90A2: 0x4E16, - 0x90A3: 0x702C, - 0x90A4: 0x755D, - 0x90A5: 0x662F, - 0x90A6: 0x51C4, - 0x90A7: 0x5236, - 0x90A8: 0x52E2, - 0x90A9: 0x59D3, - 0x90AA: 0x5F81, - 0x90AB: 0x6027, - 0x90AC: 0x6210, - 0x90AD: 0x653F, - 0x90AE: 0x6574, - 0x90AF: 0x661F, - 0x90B0: 0x6674, - 0x90B1: 0x68F2, - 0x90B2: 0x6816, - 0x90B3: 0x6B63, - 0x90B4: 0x6E05, - 0x90B5: 0x7272, - 0x90B6: 0x751F, - 0x90B7: 0x76DB, - 0x90B8: 0x7CBE, - 0x90B9: 0x8056, - 0x90BA: 0x58F0, - 0x90BB: 0x88FD, - 0x90BC: 0x897F, - 0x90BD: 0x8AA0, - 0x90BE: 0x8A93, - 0x90BF: 0x8ACB, - 0x90C0: 0x901D, - 0x90C1: 0x9192, - 0x90C2: 0x9752, - 0x90C3: 0x9759, - 0x90C4: 0x6589, - 0x90C5: 0x7A0E, - 0x90C6: 0x8106, - 0x90C7: 0x96BB, - 0x90C8: 0x5E2D, - 0x90C9: 0x60DC, - 0x90CA: 0x621A, - 0x90CB: 0x65A5, - 0x90CC: 0x6614, - 0x90CD: 0x6790, - 0x90CE: 0x77F3, - 0x90CF: 0x7A4D, - 0x90D0: 0x7C4D, - 0x90D1: 0x7E3E, - 0x90D2: 0x810A, - 0x90D3: 0x8CAC, - 0x90D4: 0x8D64, - 0x90D5: 0x8DE1, - 0x90D6: 0x8E5F, - 0x90D7: 0x78A9, - 0x90D8: 0x5207, - 0x90D9: 0x62D9, - 0x90DA: 0x63A5, - 0x90DB: 0x6442, - 0x90DC: 0x6298, - 0x90DD: 0x8A2D, - 0x90DE: 0x7A83, - 0x90DF: 0x7BC0, - 0x90E0: 0x8AAC, - 0x90E1: 0x96EA, - 0x90E2: 0x7D76, - 0x90E3: 0x820C, - 0x90E4: 0x8749, - 0x90E5: 0x4ED9, - 0x90E6: 0x5148, - 0x90E7: 0x5343, - 0x90E8: 0x5360, - 0x90E9: 0x5BA3, - 0x90EA: 0x5C02, - 0x90EB: 0x5C16, - 0x90EC: 0x5DDD, - 0x90ED: 0x6226, - 0x90EE: 0x6247, - 0x90EF: 0x64B0, - 0x90F0: 0x6813, - 0x90F1: 0x6834, - 0x90F2: 0x6CC9, - 0x90F3: 0x6D45, - 0x90F4: 0x6D17, - 0x90F5: 0x67D3, - 0x90F6: 0x6F5C, - 0x90F7: 0x714E, - 0x90F8: 0x717D, - 0x90F9: 0x65CB, - 0x90FA: 0x7A7F, - 0x90FB: 0x7BAD, - 0x90FC: 0x7DDA, - 0x9140: 0x7E4A, - 0x9141: 0x7FA8, - 0x9142: 0x817A, - 0x9143: 0x821B, - 0x9144: 0x8239, - 0x9145: 0x85A6, - 0x9146: 0x8A6E, - 0x9147: 0x8CCE, - 0x9148: 0x8DF5, - 0x9149: 0x9078, - 0x914A: 0x9077, - 0x914B: 0x92AD, - 0x914C: 0x9291, - 0x914D: 0x9583, - 0x914E: 0x9BAE, - 0x914F: 0x524D, - 0x9150: 0x5584, - 0x9151: 0x6F38, - 0x9152: 0x7136, - 0x9153: 0x5168, - 0x9154: 0x7985, - 0x9155: 0x7E55, - 0x9156: 0x81B3, - 0x9157: 0x7CCE, - 0x9158: 0x564C, - 0x9159: 0x5851, - 0x915A: 0x5CA8, - 0x915B: 0x63AA, - 0x915C: 0x66FE, - 0x915D: 0x66FD, - 0x915E: 0x695A, - 0x915F: 0x72D9, - 0x9160: 0x758F, - 0x9161: 0x758E, - 0x9162: 0x790E, - 0x9163: 0x7956, - 0x9164: 0x79DF, - 0x9165: 0x7C97, - 0x9166: 0x7D20, - 0x9167: 0x7D44, - 0x9168: 0x8607, - 0x9169: 0x8A34, - 0x916A: 0x963B, - 0x916B: 0x9061, - 0x916C: 0x9F20, - 0x916D: 0x50E7, - 0x916E: 0x5275, - 0x916F: 0x53CC, - 0x9170: 0x53E2, - 0x9171: 0x5009, - 0x9172: 0x55AA, - 0x9173: 0x58EE, - 0x9174: 0x594F, - 0x9175: 0x723D, - 0x9176: 0x5B8B, - 0x9177: 0x5C64, - 0x9178: 0x531D, - 0x9179: 0x60E3, - 0x917A: 0x60F3, - 0x917B: 0x635C, - 0x917C: 0x6383, - 0x917D: 0x633F, - 0x917E: 0x63BB, - 0x9180: 0x64CD, - 0x9181: 0x65E9, - 0x9182: 0x66F9, - 0x9183: 0x5DE3, - 0x9184: 0x69CD, - 0x9185: 0x69FD, - 0x9186: 0x6F15, - 0x9187: 0x71E5, - 0x9188: 0x4E89, - 0x9189: 0x75E9, - 0x918A: 0x76F8, - 0x918B: 0x7A93, - 0x918C: 0x7CDF, - 0x918D: 0x7DCF, - 0x918E: 0x7D9C, - 0x918F: 0x8061, - 0x9190: 0x8349, - 0x9191: 0x8358, - 0x9192: 0x846C, - 0x9193: 0x84BC, - 0x9194: 0x85FB, - 0x9195: 0x88C5, - 0x9196: 0x8D70, - 0x9197: 0x9001, - 0x9198: 0x906D, - 0x9199: 0x9397, - 0x919A: 0x971C, - 0x919B: 0x9A12, - 0x919C: 0x50CF, - 0x919D: 0x5897, - 0x919E: 0x618E, - 0x919F: 0x81D3, - 0x91A0: 0x8535, - 0x91A1: 0x8D08, - 0x91A2: 0x9020, - 0x91A3: 0x4FC3, - 0x91A4: 0x5074, - 0x91A5: 0x5247, - 0x91A6: 0x5373, - 0x91A7: 0x606F, - 0x91A8: 0x6349, - 0x91A9: 0x675F, - 0x91AA: 0x6E2C, - 0x91AB: 0x8DB3, - 0x91AC: 0x901F, - 0x91AD: 0x4FD7, - 0x91AE: 0x5C5E, - 0x91AF: 0x8CCA, - 0x91B0: 0x65CF, - 0x91B1: 0x7D9A, - 0x91B2: 0x5352, - 0x91B3: 0x8896, - 0x91B4: 0x5176, - 0x91B5: 0x63C3, - 0x91B6: 0x5B58, - 0x91B7: 0x5B6B, - 0x91B8: 0x5C0A, - 0x91B9: 0x640D, - 0x91BA: 0x6751, - 0x91BB: 0x905C, - 0x91BC: 0x4ED6, - 0x91BD: 0x591A, - 0x91BE: 0x592A, - 0x91BF: 0x6C70, - 0x91C0: 0x8A51, - 0x91C1: 0x553E, - 0x91C2: 0x5815, - 0x91C3: 0x59A5, - 0x91C4: 0x60F0, - 0x91C5: 0x6253, - 0x91C6: 0x67C1, - 0x91C7: 0x8235, - 0x91C8: 0x6955, - 0x91C9: 0x9640, - 0x91CA: 0x99C4, - 0x91CB: 0x9A28, - 0x91CC: 0x4F53, - 0x91CD: 0x5806, - 0x91CE: 0x5BFE, - 0x91CF: 0x8010, - 0x91D0: 0x5CB1, - 0x91D1: 0x5E2F, - 0x91D2: 0x5F85, - 0x91D3: 0x6020, - 0x91D4: 0x614B, - 0x91D5: 0x6234, - 0x91D6: 0x66FF, - 0x91D7: 0x6CF0, - 0x91D8: 0x6EDE, - 0x91D9: 0x80CE, - 0x91DA: 0x817F, - 0x91DB: 0x82D4, - 0x91DC: 0x888B, - 0x91DD: 0x8CB8, - 0x91DE: 0x9000, - 0x91DF: 0x902E, - 0x91E0: 0x968A, - 0x91E1: 0x9EDB, - 0x91E2: 0x9BDB, - 0x91E3: 0x4EE3, - 0x91E4: 0x53F0, - 0x91E5: 0x5927, - 0x91E6: 0x7B2C, - 0x91E7: 0x918D, - 0x91E8: 0x984C, - 0x91E9: 0x9DF9, - 0x91EA: 0x6EDD, - 0x91EB: 0x7027, - 0x91EC: 0x5353, - 0x91ED: 0x5544, - 0x91EE: 0x5B85, - 0x91EF: 0x6258, - 0x91F0: 0x629E, - 0x91F1: 0x62D3, - 0x91F2: 0x6CA2, - 0x91F3: 0x6FEF, - 0x91F4: 0x7422, - 0x91F5: 0x8A17, - 0x91F6: 0x9438, - 0x91F7: 0x6FC1, - 0x91F8: 0x8AFE, - 0x91F9: 0x8338, - 0x91FA: 0x51E7, - 0x91FB: 0x86F8, - 0x91FC: 0x53EA, - 0x9240: 0x53E9, - 0x9241: 0x4F46, - 0x9242: 0x9054, - 0x9243: 0x8FB0, - 0x9244: 0x596A, - 0x9245: 0x8131, - 0x9246: 0x5DFD, - 0x9247: 0x7AEA, - 0x9248: 0x8FBF, - 0x9249: 0x68DA, - 0x924A: 0x8C37, - 0x924B: 0x72F8, - 0x924C: 0x9C48, - 0x924D: 0x6A3D, - 0x924E: 0x8AB0, - 0x924F: 0x4E39, - 0x9250: 0x5358, - 0x9251: 0x5606, - 0x9252: 0x5766, - 0x9253: 0x62C5, - 0x9254: 0x63A2, - 0x9255: 0x65E6, - 0x9256: 0x6B4E, - 0x9257: 0x6DE1, - 0x9258: 0x6E5B, - 0x9259: 0x70AD, - 0x925A: 0x77ED, - 0x925B: 0x7AEF, - 0x925C: 0x7BAA, - 0x925D: 0x7DBB, - 0x925E: 0x803D, - 0x925F: 0x80C6, - 0x9260: 0x86CB, - 0x9261: 0x8A95, - 0x9262: 0x935B, - 0x9263: 0x56E3, - 0x9264: 0x58C7, - 0x9265: 0x5F3E, - 0x9266: 0x65AD, - 0x9267: 0x6696, - 0x9268: 0x6A80, - 0x9269: 0x6BB5, - 0x926A: 0x7537, - 0x926B: 0x8AC7, - 0x926C: 0x5024, - 0x926D: 0x77E5, - 0x926E: 0x5730, - 0x926F: 0x5F1B, - 0x9270: 0x6065, - 0x9271: 0x667A, - 0x9272: 0x6C60, - 0x9273: 0x75F4, - 0x9274: 0x7A1A, - 0x9275: 0x7F6E, - 0x9276: 0x81F4, - 0x9277: 0x8718, - 0x9278: 0x9045, - 0x9279: 0x99B3, - 0x927A: 0x7BC9, - 0x927B: 0x755C, - 0x927C: 0x7AF9, - 0x927D: 0x7B51, - 0x927E: 0x84C4, - 0x9280: 0x9010, - 0x9281: 0x79E9, - 0x9282: 0x7A92, - 0x9283: 0x8336, - 0x9284: 0x5AE1, - 0x9285: 0x7740, - 0x9286: 0x4E2D, - 0x9287: 0x4EF2, - 0x9288: 0x5B99, - 0x9289: 0x5FE0, - 0x928A: 0x62BD, - 0x928B: 0x663C, - 0x928C: 0x67F1, - 0x928D: 0x6CE8, - 0x928E: 0x866B, - 0x928F: 0x8877, - 0x9290: 0x8A3B, - 0x9291: 0x914E, - 0x9292: 0x92F3, - 0x9293: 0x99D0, - 0x9294: 0x6A17, - 0x9295: 0x7026, - 0x9296: 0x732A, - 0x9297: 0x82E7, - 0x9298: 0x8457, - 0x9299: 0x8CAF, - 0x929A: 0x4E01, - 0x929B: 0x5146, - 0x929C: 0x51CB, - 0x929D: 0x558B, - 0x929E: 0x5BF5, - 0x929F: 0x5E16, - 0x92A0: 0x5E33, - 0x92A1: 0x5E81, - 0x92A2: 0x5F14, - 0x92A3: 0x5F35, - 0x92A4: 0x5F6B, - 0x92A5: 0x5FB4, - 0x92A6: 0x61F2, - 0x92A7: 0x6311, - 0x92A8: 0x66A2, - 0x92A9: 0x671D, - 0x92AA: 0x6F6E, - 0x92AB: 0x7252, - 0x92AC: 0x753A, - 0x92AD: 0x773A, - 0x92AE: 0x8074, - 0x92AF: 0x8139, - 0x92B0: 0x8178, - 0x92B1: 0x8776, - 0x92B2: 0x8ABF, - 0x92B3: 0x8ADC, - 0x92B4: 0x8D85, - 0x92B5: 0x8DF3, - 0x92B6: 0x929A, - 0x92B7: 0x9577, - 0x92B8: 0x9802, - 0x92B9: 0x9CE5, - 0x92BA: 0x52C5, - 0x92BB: 0x6357, - 0x92BC: 0x76F4, - 0x92BD: 0x6715, - 0x92BE: 0x6C88, - 0x92BF: 0x73CD, - 0x92C0: 0x8CC3, - 0x92C1: 0x93AE, - 0x92C2: 0x9673, - 0x92C3: 0x6D25, - 0x92C4: 0x589C, - 0x92C5: 0x690E, - 0x92C6: 0x69CC, - 0x92C7: 0x8FFD, - 0x92C8: 0x939A, - 0x92C9: 0x75DB, - 0x92CA: 0x901A, - 0x92CB: 0x585A, - 0x92CC: 0x6802, - 0x92CD: 0x63B4, - 0x92CE: 0x69FB, - 0x92CF: 0x4F43, - 0x92D0: 0x6F2C, - 0x92D1: 0x67D8, - 0x92D2: 0x8FBB, - 0x92D3: 0x8526, - 0x92D4: 0x7DB4, - 0x92D5: 0x9354, - 0x92D6: 0x693F, - 0x92D7: 0x6F70, - 0x92D8: 0x576A, - 0x92D9: 0x58F7, - 0x92DA: 0x5B2C, - 0x92DB: 0x7D2C, - 0x92DC: 0x722A, - 0x92DD: 0x540A, - 0x92DE: 0x91E3, - 0x92DF: 0x9DB4, - 0x92E0: 0x4EAD, - 0x92E1: 0x4F4E, - 0x92E2: 0x505C, - 0x92E3: 0x5075, - 0x92E4: 0x5243, - 0x92E5: 0x8C9E, - 0x92E6: 0x5448, - 0x92E7: 0x5824, - 0x92E8: 0x5B9A, - 0x92E9: 0x5E1D, - 0x92EA: 0x5E95, - 0x92EB: 0x5EAD, - 0x92EC: 0x5EF7, - 0x92ED: 0x5F1F, - 0x92EE: 0x608C, - 0x92EF: 0x62B5, - 0x92F0: 0x633A, - 0x92F1: 0x63D0, - 0x92F2: 0x68AF, - 0x92F3: 0x6C40, - 0x92F4: 0x7887, - 0x92F5: 0x798E, - 0x92F6: 0x7A0B, - 0x92F7: 0x7DE0, - 0x92F8: 0x8247, - 0x92F9: 0x8A02, - 0x92FA: 0x8AE6, - 0x92FB: 0x8E44, - 0x92FC: 0x9013, - 0x9340: 0x90B8, - 0x9341: 0x912D, - 0x9342: 0x91D8, - 0x9343: 0x9F0E, - 0x9344: 0x6CE5, - 0x9345: 0x6458, - 0x9346: 0x64E2, - 0x9347: 0x6575, - 0x9348: 0x6EF4, - 0x9349: 0x7684, - 0x934A: 0x7B1B, - 0x934B: 0x9069, - 0x934C: 0x93D1, - 0x934D: 0x6EBA, - 0x934E: 0x54F2, - 0x934F: 0x5FB9, - 0x9350: 0x64A4, - 0x9351: 0x8F4D, - 0x9352: 0x8FED, - 0x9353: 0x9244, - 0x9354: 0x5178, - 0x9355: 0x586B, - 0x9356: 0x5929, - 0x9357: 0x5C55, - 0x9358: 0x5E97, - 0x9359: 0x6DFB, - 0x935A: 0x7E8F, - 0x935B: 0x751C, - 0x935C: 0x8CBC, - 0x935D: 0x8EE2, - 0x935E: 0x985B, - 0x935F: 0x70B9, - 0x9360: 0x4F1D, - 0x9361: 0x6BBF, - 0x9362: 0x6FB1, - 0x9363: 0x7530, - 0x9364: 0x96FB, - 0x9365: 0x514E, - 0x9366: 0x5410, - 0x9367: 0x5835, - 0x9368: 0x5857, - 0x9369: 0x59AC, - 0x936A: 0x5C60, - 0x936B: 0x5F92, - 0x936C: 0x6597, - 0x936D: 0x675C, - 0x936E: 0x6E21, - 0x936F: 0x767B, - 0x9370: 0x83DF, - 0x9371: 0x8CED, - 0x9372: 0x9014, - 0x9373: 0x90FD, - 0x9374: 0x934D, - 0x9375: 0x7825, - 0x9376: 0x783A, - 0x9377: 0x52AA, - 0x9378: 0x5EA6, - 0x9379: 0x571F, - 0x937A: 0x5974, - 0x937B: 0x6012, - 0x937C: 0x5012, - 0x937D: 0x515A, - 0x937E: 0x51AC, - 0x9380: 0x51CD, - 0x9381: 0x5200, - 0x9382: 0x5510, - 0x9383: 0x5854, - 0x9384: 0x5858, - 0x9385: 0x5957, - 0x9386: 0x5B95, - 0x9387: 0x5CF6, - 0x9388: 0x5D8B, - 0x9389: 0x60BC, - 0x938A: 0x6295, - 0x938B: 0x642D, - 0x938C: 0x6771, - 0x938D: 0x6843, - 0x938E: 0x68BC, - 0x938F: 0x68DF, - 0x9390: 0x76D7, - 0x9391: 0x6DD8, - 0x9392: 0x6E6F, - 0x9393: 0x6D9B, - 0x9394: 0x706F, - 0x9395: 0x71C8, - 0x9396: 0x5F53, - 0x9397: 0x75D8, - 0x9398: 0x7977, - 0x9399: 0x7B49, - 0x939A: 0x7B54, - 0x939B: 0x7B52, - 0x939C: 0x7CD6, - 0x939D: 0x7D71, - 0x939E: 0x5230, - 0x939F: 0x8463, - 0x93A0: 0x8569, - 0x93A1: 0x85E4, - 0x93A2: 0x8A0E, - 0x93A3: 0x8B04, - 0x93A4: 0x8C46, - 0x93A5: 0x8E0F, - 0x93A6: 0x9003, - 0x93A7: 0x900F, - 0x93A8: 0x9419, - 0x93A9: 0x9676, - 0x93AA: 0x982D, - 0x93AB: 0x9A30, - 0x93AC: 0x95D8, - 0x93AD: 0x50CD, - 0x93AE: 0x52D5, - 0x93AF: 0x540C, - 0x93B0: 0x5802, - 0x93B1: 0x5C0E, - 0x93B2: 0x61A7, - 0x93B3: 0x649E, - 0x93B4: 0x6D1E, - 0x93B5: 0x77B3, - 0x93B6: 0x7AE5, - 0x93B7: 0x80F4, - 0x93B8: 0x8404, - 0x93B9: 0x9053, - 0x93BA: 0x9285, - 0x93BB: 0x5CE0, - 0x93BC: 0x9D07, - 0x93BD: 0x533F, - 0x93BE: 0x5F97, - 0x93BF: 0x5FB3, - 0x93C0: 0x6D9C, - 0x93C1: 0x7279, - 0x93C2: 0x7763, - 0x93C3: 0x79BF, - 0x93C4: 0x7BE4, - 0x93C5: 0x6BD2, - 0x93C6: 0x72EC, - 0x93C7: 0x8AAD, - 0x93C8: 0x6803, - 0x93C9: 0x6A61, - 0x93CA: 0x51F8, - 0x93CB: 0x7A81, - 0x93CC: 0x6934, - 0x93CD: 0x5C4A, - 0x93CE: 0x9CF6, - 0x93CF: 0x82EB, - 0x93D0: 0x5BC5, - 0x93D1: 0x9149, - 0x93D2: 0x701E, - 0x93D3: 0x5678, - 0x93D4: 0x5C6F, - 0x93D5: 0x60C7, - 0x93D6: 0x6566, - 0x93D7: 0x6C8C, - 0x93D8: 0x8C5A, - 0x93D9: 0x9041, - 0x93DA: 0x9813, - 0x93DB: 0x5451, - 0x93DC: 0x66C7, - 0x93DD: 0x920D, - 0x93DE: 0x5948, - 0x93DF: 0x90A3, - 0x93E0: 0x5185, - 0x93E1: 0x4E4D, - 0x93E2: 0x51EA, - 0x93E3: 0x8599, - 0x93E4: 0x8B0E, - 0x93E5: 0x7058, - 0x93E6: 0x637A, - 0x93E7: 0x934B, - 0x93E8: 0x6962, - 0x93E9: 0x99B4, - 0x93EA: 0x7E04, - 0x93EB: 0x7577, - 0x93EC: 0x5357, - 0x93ED: 0x6960, - 0x93EE: 0x8EDF, - 0x93EF: 0x96E3, - 0x93F0: 0x6C5D, - 0x93F1: 0x4E8C, - 0x93F2: 0x5C3C, - 0x93F3: 0x5F10, - 0x93F4: 0x8FE9, - 0x93F5: 0x5302, - 0x93F6: 0x8CD1, - 0x93F7: 0x8089, - 0x93F8: 0x8679, - 0x93F9: 0x5EFF, - 0x93FA: 0x65E5, - 0x93FB: 0x4E73, - 0x93FC: 0x5165, - 0x9440: 0x5982, - 0x9441: 0x5C3F, - 0x9442: 0x97EE, - 0x9443: 0x4EFB, - 0x9444: 0x598A, - 0x9445: 0x5FCD, - 0x9446: 0x8A8D, - 0x9447: 0x6FE1, - 0x9448: 0x79B0, - 0x9449: 0x7962, - 0x944A: 0x5BE7, - 0x944B: 0x8471, - 0x944C: 0x732B, - 0x944D: 0x71B1, - 0x944E: 0x5E74, - 0x944F: 0x5FF5, - 0x9450: 0x637B, - 0x9451: 0x649A, - 0x9452: 0x71C3, - 0x9453: 0x7C98, - 0x9454: 0x4E43, - 0x9455: 0x5EFC, - 0x9456: 0x4E4B, - 0x9457: 0x57DC, - 0x9458: 0x56A2, - 0x9459: 0x60A9, - 0x945A: 0x6FC3, - 0x945B: 0x7D0D, - 0x945C: 0x80FD, - 0x945D: 0x8133, - 0x945E: 0x81BF, - 0x945F: 0x8FB2, - 0x9460: 0x8997, - 0x9461: 0x86A4, - 0x9462: 0x5DF4, - 0x9463: 0x628A, - 0x9464: 0x64AD, - 0x9465: 0x8987, - 0x9466: 0x6777, - 0x9467: 0x6CE2, - 0x9468: 0x6D3E, - 0x9469: 0x7436, - 0x946A: 0x7834, - 0x946B: 0x5A46, - 0x946C: 0x7F75, - 0x946D: 0x82AD, - 0x946E: 0x99AC, - 0x946F: 0x4FF3, - 0x9470: 0x5EC3, - 0x9471: 0x62DD, - 0x9472: 0x6392, - 0x9473: 0x6557, - 0x9474: 0x676F, - 0x9475: 0x76C3, - 0x9476: 0x724C, - 0x9477: 0x80CC, - 0x9478: 0x80BA, - 0x9479: 0x8F29, - 0x947A: 0x914D, - 0x947B: 0x500D, - 0x947C: 0x57F9, - 0x947D: 0x5A92, - 0x947E: 0x6885, - 0x9480: 0x6973, - 0x9481: 0x7164, - 0x9482: 0x72FD, - 0x9483: 0x8CB7, - 0x9484: 0x58F2, - 0x9485: 0x8CE0, - 0x9486: 0x966A, - 0x9487: 0x9019, - 0x9488: 0x877F, - 0x9489: 0x79E4, - 0x948A: 0x77E7, - 0x948B: 0x8429, - 0x948C: 0x4F2F, - 0x948D: 0x5265, - 0x948E: 0x535A, - 0x948F: 0x62CD, - 0x9490: 0x67CF, - 0x9491: 0x6CCA, - 0x9492: 0x767D, - 0x9493: 0x7B94, - 0x9494: 0x7C95, - 0x9495: 0x8236, - 0x9496: 0x8584, - 0x9497: 0x8FEB, - 0x9498: 0x66DD, - 0x9499: 0x6F20, - 0x949A: 0x7206, - 0x949B: 0x7E1B, - 0x949C: 0x83AB, - 0x949D: 0x99C1, - 0x949E: 0x9EA6, - 0x949F: 0x51FD, - 0x94A0: 0x7BB1, - 0x94A1: 0x7872, - 0x94A2: 0x7BB8, - 0x94A3: 0x8087, - 0x94A4: 0x7B48, - 0x94A5: 0x6AE8, - 0x94A6: 0x5E61, - 0x94A7: 0x808C, - 0x94A8: 0x7551, - 0x94A9: 0x7560, - 0x94AA: 0x516B, - 0x94AB: 0x9262, - 0x94AC: 0x6E8C, - 0x94AD: 0x767A, - 0x94AE: 0x9197, - 0x94AF: 0x9AEA, - 0x94B0: 0x4F10, - 0x94B1: 0x7F70, - 0x94B2: 0x629C, - 0x94B3: 0x7B4F, - 0x94B4: 0x95A5, - 0x94B5: 0x9CE9, - 0x94B6: 0x567A, - 0x94B7: 0x5859, - 0x94B8: 0x86E4, - 0x94B9: 0x96BC, - 0x94BA: 0x4F34, - 0x94BB: 0x5224, - 0x94BC: 0x534A, - 0x94BD: 0x53CD, - 0x94BE: 0x53DB, - 0x94BF: 0x5E06, - 0x94C0: 0x642C, - 0x94C1: 0x6591, - 0x94C2: 0x677F, - 0x94C3: 0x6C3E, - 0x94C4: 0x6C4E, - 0x94C5: 0x7248, - 0x94C6: 0x72AF, - 0x94C7: 0x73ED, - 0x94C8: 0x7554, - 0x94C9: 0x7E41, - 0x94CA: 0x822C, - 0x94CB: 0x85E9, - 0x94CC: 0x8CA9, - 0x94CD: 0x7BC4, - 0x94CE: 0x91C6, - 0x94CF: 0x7169, - 0x94D0: 0x9812, - 0x94D1: 0x98EF, - 0x94D2: 0x633D, - 0x94D3: 0x6669, - 0x94D4: 0x756A, - 0x94D5: 0x76E4, - 0x94D6: 0x78D0, - 0x94D7: 0x8543, - 0x94D8: 0x86EE, - 0x94D9: 0x532A, - 0x94DA: 0x5351, - 0x94DB: 0x5426, - 0x94DC: 0x5983, - 0x94DD: 0x5E87, - 0x94DE: 0x5F7C, - 0x94DF: 0x60B2, - 0x94E0: 0x6249, - 0x94E1: 0x6279, - 0x94E2: 0x62AB, - 0x94E3: 0x6590, - 0x94E4: 0x6BD4, - 0x94E5: 0x6CCC, - 0x94E6: 0x75B2, - 0x94E7: 0x76AE, - 0x94E8: 0x7891, - 0x94E9: 0x79D8, - 0x94EA: 0x7DCB, - 0x94EB: 0x7F77, - 0x94EC: 0x80A5, - 0x94ED: 0x88AB, - 0x94EE: 0x8AB9, - 0x94EF: 0x8CBB, - 0x94F0: 0x907F, - 0x94F1: 0x975E, - 0x94F2: 0x98DB, - 0x94F3: 0x6A0B, - 0x94F4: 0x7C38, - 0x94F5: 0x5099, - 0x94F6: 0x5C3E, - 0x94F7: 0x5FAE, - 0x94F8: 0x6787, - 0x94F9: 0x6BD8, - 0x94FA: 0x7435, - 0x94FB: 0x7709, - 0x94FC: 0x7F8E, - 0x9540: 0x9F3B, - 0x9541: 0x67CA, - 0x9542: 0x7A17, - 0x9543: 0x5339, - 0x9544: 0x758B, - 0x9545: 0x9AED, - 0x9546: 0x5F66, - 0x9547: 0x819D, - 0x9548: 0x83F1, - 0x9549: 0x8098, - 0x954A: 0x5F3C, - 0x954B: 0x5FC5, - 0x954C: 0x7562, - 0x954D: 0x7B46, - 0x954E: 0x903C, - 0x954F: 0x6867, - 0x9550: 0x59EB, - 0x9551: 0x5A9B, - 0x9552: 0x7D10, - 0x9553: 0x767E, - 0x9554: 0x8B2C, - 0x9555: 0x4FF5, - 0x9556: 0x5F6A, - 0x9557: 0x6A19, - 0x9558: 0x6C37, - 0x9559: 0x6F02, - 0x955A: 0x74E2, - 0x955B: 0x7968, - 0x955C: 0x8868, - 0x955D: 0x8A55, - 0x955E: 0x8C79, - 0x955F: 0x5EDF, - 0x9560: 0x63CF, - 0x9561: 0x75C5, - 0x9562: 0x79D2, - 0x9563: 0x82D7, - 0x9564: 0x9328, - 0x9565: 0x92F2, - 0x9566: 0x849C, - 0x9567: 0x86ED, - 0x9568: 0x9C2D, - 0x9569: 0x54C1, - 0x956A: 0x5F6C, - 0x956B: 0x658C, - 0x956C: 0x6D5C, - 0x956D: 0x7015, - 0x956E: 0x8CA7, - 0x956F: 0x8CD3, - 0x9570: 0x983B, - 0x9571: 0x654F, - 0x9572: 0x74F6, - 0x9573: 0x4E0D, - 0x9574: 0x4ED8, - 0x9575: 0x57E0, - 0x9576: 0x592B, - 0x9577: 0x5A66, - 0x9578: 0x5BCC, - 0x9579: 0x51A8, - 0x957A: 0x5E03, - 0x957B: 0x5E9C, - 0x957C: 0x6016, - 0x957D: 0x6276, - 0x957E: 0x6577, - 0x9580: 0x65A7, - 0x9581: 0x666E, - 0x9582: 0x6D6E, - 0x9583: 0x7236, - 0x9584: 0x7B26, - 0x9585: 0x8150, - 0x9586: 0x819A, - 0x9587: 0x8299, - 0x9588: 0x8B5C, - 0x9589: 0x8CA0, - 0x958A: 0x8CE6, - 0x958B: 0x8D74, - 0x958C: 0x961C, - 0x958D: 0x9644, - 0x958E: 0x4FAE, - 0x958F: 0x64AB, - 0x9590: 0x6B66, - 0x9591: 0x821E, - 0x9592: 0x8461, - 0x9593: 0x856A, - 0x9594: 0x90E8, - 0x9595: 0x5C01, - 0x9596: 0x6953, - 0x9597: 0x98A8, - 0x9598: 0x847A, - 0x9599: 0x8557, - 0x959A: 0x4F0F, - 0x959B: 0x526F, - 0x959C: 0x5FA9, - 0x959D: 0x5E45, - 0x959E: 0x670D, - 0x959F: 0x798F, - 0x95A0: 0x8179, - 0x95A1: 0x8907, - 0x95A2: 0x8986, - 0x95A3: 0x6DF5, - 0x95A4: 0x5F17, - 0x95A5: 0x6255, - 0x95A6: 0x6CB8, - 0x95A7: 0x4ECF, - 0x95A8: 0x7269, - 0x95A9: 0x9B92, - 0x95AA: 0x5206, - 0x95AB: 0x543B, - 0x95AC: 0x5674, - 0x95AD: 0x58B3, - 0x95AE: 0x61A4, - 0x95AF: 0x626E, - 0x95B0: 0x711A, - 0x95B1: 0x596E, - 0x95B2: 0x7C89, - 0x95B3: 0x7CDE, - 0x95B4: 0x7D1B, - 0x95B5: 0x96F0, - 0x95B6: 0x6587, - 0x95B7: 0x805E, - 0x95B8: 0x4E19, - 0x95B9: 0x4F75, - 0x95BA: 0x5175, - 0x95BB: 0x5840, - 0x95BC: 0x5E63, - 0x95BD: 0x5E73, - 0x95BE: 0x5F0A, - 0x95BF: 0x67C4, - 0x95C0: 0x4E26, - 0x95C1: 0x853D, - 0x95C2: 0x9589, - 0x95C3: 0x965B, - 0x95C4: 0x7C73, - 0x95C5: 0x9801, - 0x95C6: 0x50FB, - 0x95C7: 0x58C1, - 0x95C8: 0x7656, - 0x95C9: 0x78A7, - 0x95CA: 0x5225, - 0x95CB: 0x77A5, - 0x95CC: 0x8511, - 0x95CD: 0x7B86, - 0x95CE: 0x504F, - 0x95CF: 0x5909, - 0x95D0: 0x7247, - 0x95D1: 0x7BC7, - 0x95D2: 0x7DE8, - 0x95D3: 0x8FBA, - 0x95D4: 0x8FD4, - 0x95D5: 0x904D, - 0x95D6: 0x4FBF, - 0x95D7: 0x52C9, - 0x95D8: 0x5A29, - 0x95D9: 0x5F01, - 0x95DA: 0x97AD, - 0x95DB: 0x4FDD, - 0x95DC: 0x8217, - 0x95DD: 0x92EA, - 0x95DE: 0x5703, - 0x95DF: 0x6355, - 0x95E0: 0x6B69, - 0x95E1: 0x752B, - 0x95E2: 0x88DC, - 0x95E3: 0x8F14, - 0x95E4: 0x7A42, - 0x95E5: 0x52DF, - 0x95E6: 0x5893, - 0x95E7: 0x6155, - 0x95E8: 0x620A, - 0x95E9: 0x66AE, - 0x95EA: 0x6BCD, - 0x95EB: 0x7C3F, - 0x95EC: 0x83E9, - 0x95ED: 0x5023, - 0x95EE: 0x4FF8, - 0x95EF: 0x5305, - 0x95F0: 0x5446, - 0x95F1: 0x5831, - 0x95F2: 0x5949, - 0x95F3: 0x5B9D, - 0x95F4: 0x5CF0, - 0x95F5: 0x5CEF, - 0x95F6: 0x5D29, - 0x95F7: 0x5E96, - 0x95F8: 0x62B1, - 0x95F9: 0x6367, - 0x95FA: 0x653E, - 0x95FB: 0x65B9, - 0x95FC: 0x670B, - 0x9640: 0x6CD5, - 0x9641: 0x6CE1, - 0x9642: 0x70F9, - 0x9643: 0x7832, - 0x9644: 0x7E2B, - 0x9645: 0x80DE, - 0x9646: 0x82B3, - 0x9647: 0x840C, - 0x9648: 0x84EC, - 0x9649: 0x8702, - 0x964A: 0x8912, - 0x964B: 0x8A2A, - 0x964C: 0x8C4A, - 0x964D: 0x90A6, - 0x964E: 0x92D2, - 0x964F: 0x98FD, - 0x9650: 0x9CF3, - 0x9651: 0x9D6C, - 0x9652: 0x4E4F, - 0x9653: 0x4EA1, - 0x9654: 0x508D, - 0x9655: 0x5256, - 0x9656: 0x574A, - 0x9657: 0x59A8, - 0x9658: 0x5E3D, - 0x9659: 0x5FD8, - 0x965A: 0x5FD9, - 0x965B: 0x623F, - 0x965C: 0x66B4, - 0x965D: 0x671B, - 0x965E: 0x67D0, - 0x965F: 0x68D2, - 0x9660: 0x5192, - 0x9661: 0x7D21, - 0x9662: 0x80AA, - 0x9663: 0x81A8, - 0x9664: 0x8B00, - 0x9665: 0x8C8C, - 0x9666: 0x8CBF, - 0x9667: 0x927E, - 0x9668: 0x9632, - 0x9669: 0x5420, - 0x966A: 0x982C, - 0x966B: 0x5317, - 0x966C: 0x50D5, - 0x966D: 0x535C, - 0x966E: 0x58A8, - 0x966F: 0x64B2, - 0x9670: 0x6734, - 0x9671: 0x7267, - 0x9672: 0x7766, - 0x9673: 0x7A46, - 0x9674: 0x91E6, - 0x9675: 0x52C3, - 0x9676: 0x6CA1, - 0x9677: 0x6B86, - 0x9678: 0x5800, - 0x9679: 0x5E4C, - 0x967A: 0x5954, - 0x967B: 0x672C, - 0x967C: 0x7FFB, - 0x967D: 0x51E1, - 0x967E: 0x76C6, - 0x9680: 0x6469, - 0x9681: 0x78E8, - 0x9682: 0x9B54, - 0x9683: 0x9EBB, - 0x9684: 0x57CB, - 0x9685: 0x59B9, - 0x9686: 0x6627, - 0x9687: 0x679A, - 0x9688: 0x6BCE, - 0x9689: 0x54E9, - 0x968A: 0x69D9, - 0x968B: 0x5E55, - 0x968C: 0x819C, - 0x968D: 0x6795, - 0x968E: 0x9BAA, - 0x968F: 0x67FE, - 0x9690: 0x9C52, - 0x9691: 0x685D, - 0x9692: 0x4EA6, - 0x9693: 0x4FE3, - 0x9694: 0x53C8, - 0x9695: 0x62B9, - 0x9696: 0x672B, - 0x9697: 0x6CAB, - 0x9698: 0x8FC4, - 0x9699: 0x4FAD, - 0x969A: 0x7E6D, - 0x969B: 0x9EBF, - 0x969C: 0x4E07, - 0x969D: 0x6162, - 0x969E: 0x6E80, - 0x969F: 0x6F2B, - 0x96A0: 0x8513, - 0x96A1: 0x5473, - 0x96A2: 0x672A, - 0x96A3: 0x9B45, - 0x96A4: 0x5DF3, - 0x96A5: 0x7B95, - 0x96A6: 0x5CAC, - 0x96A7: 0x5BC6, - 0x96A8: 0x871C, - 0x96A9: 0x6E4A, - 0x96AA: 0x84D1, - 0x96AB: 0x7A14, - 0x96AC: 0x8108, - 0x96AD: 0x5999, - 0x96AE: 0x7C8D, - 0x96AF: 0x6C11, - 0x96B0: 0x7720, - 0x96B1: 0x52D9, - 0x96B2: 0x5922, - 0x96B3: 0x7121, - 0x96B4: 0x725F, - 0x96B5: 0x77DB, - 0x96B6: 0x9727, - 0x96B7: 0x9D61, - 0x96B8: 0x690B, - 0x96B9: 0x5A7F, - 0x96BA: 0x5A18, - 0x96BB: 0x51A5, - 0x96BC: 0x540D, - 0x96BD: 0x547D, - 0x96BE: 0x660E, - 0x96BF: 0x76DF, - 0x96C0: 0x8FF7, - 0x96C1: 0x9298, - 0x96C2: 0x9CF4, - 0x96C3: 0x59EA, - 0x96C4: 0x725D, - 0x96C5: 0x6EC5, - 0x96C6: 0x514D, - 0x96C7: 0x68C9, - 0x96C8: 0x7DBF, - 0x96C9: 0x7DEC, - 0x96CA: 0x9762, - 0x96CB: 0x9EBA, - 0x96CC: 0x6478, - 0x96CD: 0x6A21, - 0x96CE: 0x8302, - 0x96CF: 0x5984, - 0x96D0: 0x5B5F, - 0x96D1: 0x6BDB, - 0x96D2: 0x731B, - 0x96D3: 0x76F2, - 0x96D4: 0x7DB2, - 0x96D5: 0x8017, - 0x96D6: 0x8499, - 0x96D7: 0x5132, - 0x96D8: 0x6728, - 0x96D9: 0x9ED9, - 0x96DA: 0x76EE, - 0x96DB: 0x6762, - 0x96DC: 0x52FF, - 0x96DD: 0x9905, - 0x96DE: 0x5C24, - 0x96DF: 0x623B, - 0x96E0: 0x7C7E, - 0x96E1: 0x8CB0, - 0x96E2: 0x554F, - 0x96E3: 0x60B6, - 0x96E4: 0x7D0B, - 0x96E5: 0x9580, - 0x96E6: 0x5301, - 0x96E7: 0x4E5F, - 0x96E8: 0x51B6, - 0x96E9: 0x591C, - 0x96EA: 0x723A, - 0x96EB: 0x8036, - 0x96EC: 0x91CE, - 0x96ED: 0x5F25, - 0x96EE: 0x77E2, - 0x96EF: 0x5384, - 0x96F0: 0x5F79, - 0x96F1: 0x7D04, - 0x96F2: 0x85AC, - 0x96F3: 0x8A33, - 0x96F4: 0x8E8D, - 0x96F5: 0x9756, - 0x96F6: 0x67F3, - 0x96F7: 0x85AE, - 0x96F8: 0x9453, - 0x96F9: 0x6109, - 0x96FA: 0x6108, - 0x96FB: 0x6CB9, - 0x96FC: 0x7652, - 0x9740: 0x8AED, - 0x9741: 0x8F38, - 0x9742: 0x552F, - 0x9743: 0x4F51, - 0x9744: 0x512A, - 0x9745: 0x52C7, - 0x9746: 0x53CB, - 0x9747: 0x5BA5, - 0x9748: 0x5E7D, - 0x9749: 0x60A0, - 0x974A: 0x6182, - 0x974B: 0x63D6, - 0x974C: 0x6709, - 0x974D: 0x67DA, - 0x974E: 0x6E67, - 0x974F: 0x6D8C, - 0x9750: 0x7336, - 0x9751: 0x7337, - 0x9752: 0x7531, - 0x9753: 0x7950, - 0x9754: 0x88D5, - 0x9755: 0x8A98, - 0x9756: 0x904A, - 0x9757: 0x9091, - 0x9758: 0x90F5, - 0x9759: 0x96C4, - 0x975A: 0x878D, - 0x975B: 0x5915, - 0x975C: 0x4E88, - 0x975D: 0x4F59, - 0x975E: 0x4E0E, - 0x975F: 0x8A89, - 0x9760: 0x8F3F, - 0x9761: 0x9810, - 0x9762: 0x50AD, - 0x9763: 0x5E7C, - 0x9764: 0x5996, - 0x9765: 0x5BB9, - 0x9766: 0x5EB8, - 0x9767: 0x63DA, - 0x9768: 0x63FA, - 0x9769: 0x64C1, - 0x976A: 0x66DC, - 0x976B: 0x694A, - 0x976C: 0x69D8, - 0x976D: 0x6D0B, - 0x976E: 0x6EB6, - 0x976F: 0x7194, - 0x9770: 0x7528, - 0x9771: 0x7AAF, - 0x9772: 0x7F8A, - 0x9773: 0x8000, - 0x9774: 0x8449, - 0x9775: 0x84C9, - 0x9776: 0x8981, - 0x9777: 0x8B21, - 0x9778: 0x8E0A, - 0x9779: 0x9065, - 0x977A: 0x967D, - 0x977B: 0x990A, - 0x977C: 0x617E, - 0x977D: 0x6291, - 0x977E: 0x6B32, - 0x9780: 0x6C83, - 0x9781: 0x6D74, - 0x9782: 0x7FCC, - 0x9783: 0x7FFC, - 0x9784: 0x6DC0, - 0x9785: 0x7F85, - 0x9786: 0x87BA, - 0x9787: 0x88F8, - 0x9788: 0x6765, - 0x9789: 0x83B1, - 0x978A: 0x983C, - 0x978B: 0x96F7, - 0x978C: 0x6D1B, - 0x978D: 0x7D61, - 0x978E: 0x843D, - 0x978F: 0x916A, - 0x9790: 0x4E71, - 0x9791: 0x5375, - 0x9792: 0x5D50, - 0x9793: 0x6B04, - 0x9794: 0x6FEB, - 0x9795: 0x85CD, - 0x9796: 0x862D, - 0x9797: 0x89A7, - 0x9798: 0x5229, - 0x9799: 0x540F, - 0x979A: 0x5C65, - 0x979B: 0x674E, - 0x979C: 0x68A8, - 0x979D: 0x7406, - 0x979E: 0x7483, - 0x979F: 0x75E2, - 0x97A0: 0x88CF, - 0x97A1: 0x88E1, - 0x97A2: 0x91CC, - 0x97A3: 0x96E2, - 0x97A4: 0x9678, - 0x97A5: 0x5F8B, - 0x97A6: 0x7387, - 0x97A7: 0x7ACB, - 0x97A8: 0x844E, - 0x97A9: 0x63A0, - 0x97AA: 0x7565, - 0x97AB: 0x5289, - 0x97AC: 0x6D41, - 0x97AD: 0x6E9C, - 0x97AE: 0x7409, - 0x97AF: 0x7559, - 0x97B0: 0x786B, - 0x97B1: 0x7C92, - 0x97B2: 0x9686, - 0x97B3: 0x7ADC, - 0x97B4: 0x9F8D, - 0x97B5: 0x4FB6, - 0x97B6: 0x616E, - 0x97B7: 0x65C5, - 0x97B8: 0x865C, - 0x97B9: 0x4E86, - 0x97BA: 0x4EAE, - 0x97BB: 0x50DA, - 0x97BC: 0x4E21, - 0x97BD: 0x51CC, - 0x97BE: 0x5BEE, - 0x97BF: 0x6599, - 0x97C0: 0x6881, - 0x97C1: 0x6DBC, - 0x97C2: 0x731F, - 0x97C3: 0x7642, - 0x97C4: 0x77AD, - 0x97C5: 0x7A1C, - 0x97C6: 0x7CE7, - 0x97C7: 0x826F, - 0x97C8: 0x8AD2, - 0x97C9: 0x907C, - 0x97CA: 0x91CF, - 0x97CB: 0x9675, - 0x97CC: 0x9818, - 0x97CD: 0x529B, - 0x97CE: 0x7DD1, - 0x97CF: 0x502B, - 0x97D0: 0x5398, - 0x97D1: 0x6797, - 0x97D2: 0x6DCB, - 0x97D3: 0x71D0, - 0x97D4: 0x7433, - 0x97D5: 0x81E8, - 0x97D6: 0x8F2A, - 0x97D7: 0x96A3, - 0x97D8: 0x9C57, - 0x97D9: 0x9E9F, - 0x97DA: 0x7460, - 0x97DB: 0x5841, - 0x97DC: 0x6D99, - 0x97DD: 0x7D2F, - 0x97DE: 0x985E, - 0x97DF: 0x4EE4, - 0x97E0: 0x4F36, - 0x97E1: 0x4F8B, - 0x97E2: 0x51B7, - 0x97E3: 0x52B1, - 0x97E4: 0x5DBA, - 0x97E5: 0x601C, - 0x97E6: 0x73B2, - 0x97E7: 0x793C, - 0x97E8: 0x82D3, - 0x97E9: 0x9234, - 0x97EA: 0x96B7, - 0x97EB: 0x96F6, - 0x97EC: 0x970A, - 0x97ED: 0x9E97, - 0x97EE: 0x9F62, - 0x97EF: 0x66A6, - 0x97F0: 0x6B74, - 0x97F1: 0x5217, - 0x97F2: 0x52A3, - 0x97F3: 0x70C8, - 0x97F4: 0x88C2, - 0x97F5: 0x5EC9, - 0x97F6: 0x604B, - 0x97F7: 0x6190, - 0x97F8: 0x6F23, - 0x97F9: 0x7149, - 0x97FA: 0x7C3E, - 0x97FB: 0x7DF4, - 0x97FC: 0x806F, - 0x9840: 0x84EE, - 0x9841: 0x9023, - 0x9842: 0x932C, - 0x9843: 0x5442, - 0x9844: 0x9B6F, - 0x9845: 0x6AD3, - 0x9846: 0x7089, - 0x9847: 0x8CC2, - 0x9848: 0x8DEF, - 0x9849: 0x9732, - 0x984A: 0x52B4, - 0x984B: 0x5A41, - 0x984C: 0x5ECA, - 0x984D: 0x5F04, - 0x984E: 0x6717, - 0x984F: 0x697C, - 0x9850: 0x6994, - 0x9851: 0x6D6A, - 0x9852: 0x6F0F, - 0x9853: 0x7262, - 0x9854: 0x72FC, - 0x9855: 0x7BED, - 0x9856: 0x8001, - 0x9857: 0x807E, - 0x9858: 0x874B, - 0x9859: 0x90CE, - 0x985A: 0x516D, - 0x985B: 0x9E93, - 0x985C: 0x7984, - 0x985D: 0x808B, - 0x985E: 0x9332, - 0x985F: 0x8AD6, - 0x9860: 0x502D, - 0x9861: 0x548C, - 0x9862: 0x8A71, - 0x9863: 0x6B6A, - 0x9864: 0x8CC4, - 0x9865: 0x8107, - 0x9866: 0x60D1, - 0x9867: 0x67A0, - 0x9868: 0x9DF2, - 0x9869: 0x4E99, - 0x986A: 0x4E98, - 0x986B: 0x9C10, - 0x986C: 0x8A6B, - 0x986D: 0x85C1, - 0x986E: 0x8568, - 0x986F: 0x6900, - 0x9870: 0x6E7E, - 0x9871: 0x7897, - 0x9872: 0x8155, - 0x989F: 0x5F0C, - 0x98A0: 0x4E10, - 0x98A1: 0x4E15, - 0x98A2: 0x4E2A, - 0x98A3: 0x4E31, - 0x98A4: 0x4E36, - 0x98A5: 0x4E3C, - 0x98A6: 0x4E3F, - 0x98A7: 0x4E42, - 0x98A8: 0x4E56, - 0x98A9: 0x4E58, - 0x98AA: 0x4E82, - 0x98AB: 0x4E85, - 0x98AC: 0x8C6B, - 0x98AD: 0x4E8A, - 0x98AE: 0x8212, - 0x98AF: 0x5F0D, - 0x98B0: 0x4E8E, - 0x98B1: 0x4E9E, - 0x98B2: 0x4E9F, - 0x98B3: 0x4EA0, - 0x98B4: 0x4EA2, - 0x98B5: 0x4EB0, - 0x98B6: 0x4EB3, - 0x98B7: 0x4EB6, - 0x98B8: 0x4ECE, - 0x98B9: 0x4ECD, - 0x98BA: 0x4EC4, - 0x98BB: 0x4EC6, - 0x98BC: 0x4EC2, - 0x98BD: 0x4ED7, - 0x98BE: 0x4EDE, - 0x98BF: 0x4EED, - 0x98C0: 0x4EDF, - 0x98C1: 0x4EF7, - 0x98C2: 0x4F09, - 0x98C3: 0x4F5A, - 0x98C4: 0x4F30, - 0x98C5: 0x4F5B, - 0x98C6: 0x4F5D, - 0x98C7: 0x4F57, - 0x98C8: 0x4F47, - 0x98C9: 0x4F76, - 0x98CA: 0x4F88, - 0x98CB: 0x4F8F, - 0x98CC: 0x4F98, - 0x98CD: 0x4F7B, - 0x98CE: 0x4F69, - 0x98CF: 0x4F70, - 0x98D0: 0x4F91, - 0x98D1: 0x4F6F, - 0x98D2: 0x4F86, - 0x98D3: 0x4F96, - 0x98D4: 0x5118, - 0x98D5: 0x4FD4, - 0x98D6: 0x4FDF, - 0x98D7: 0x4FCE, - 0x98D8: 0x4FD8, - 0x98D9: 0x4FDB, - 0x98DA: 0x4FD1, - 0x98DB: 0x4FDA, - 0x98DC: 0x4FD0, - 0x98DD: 0x4FE4, - 0x98DE: 0x4FE5, - 0x98DF: 0x501A, - 0x98E0: 0x5028, - 0x98E1: 0x5014, - 0x98E2: 0x502A, - 0x98E3: 0x5025, - 0x98E4: 0x5005, - 0x98E5: 0x4F1C, - 0x98E6: 0x4FF6, - 0x98E7: 0x5021, - 0x98E8: 0x5029, - 0x98E9: 0x502C, - 0x98EA: 0x4FFE, - 0x98EB: 0x4FEF, - 0x98EC: 0x5011, - 0x98ED: 0x5006, - 0x98EE: 0x5043, - 0x98EF: 0x5047, - 0x98F0: 0x6703, - 0x98F1: 0x5055, - 0x98F2: 0x5050, - 0x98F3: 0x5048, - 0x98F4: 0x505A, - 0x98F5: 0x5056, - 0x98F6: 0x506C, - 0x98F7: 0x5078, - 0x98F8: 0x5080, - 0x98F9: 0x509A, - 0x98FA: 0x5085, - 0x98FB: 0x50B4, - 0x98FC: 0x50B2, - 0x9940: 0x50C9, - 0x9941: 0x50CA, - 0x9942: 0x50B3, - 0x9943: 0x50C2, - 0x9944: 0x50D6, - 0x9945: 0x50DE, - 0x9946: 0x50E5, - 0x9947: 0x50ED, - 0x9948: 0x50E3, - 0x9949: 0x50EE, - 0x994A: 0x50F9, - 0x994B: 0x50F5, - 0x994C: 0x5109, - 0x994D: 0x5101, - 0x994E: 0x5102, - 0x994F: 0x5116, - 0x9950: 0x5115, - 0x9951: 0x5114, - 0x9952: 0x511A, - 0x9953: 0x5121, - 0x9954: 0x513A, - 0x9955: 0x5137, - 0x9956: 0x513C, - 0x9957: 0x513B, - 0x9958: 0x513F, - 0x9959: 0x5140, - 0x995A: 0x5152, - 0x995B: 0x514C, - 0x995C: 0x5154, - 0x995D: 0x5162, - 0x995E: 0x7AF8, - 0x995F: 0x5169, - 0x9960: 0x516A, - 0x9961: 0x516E, - 0x9962: 0x5180, - 0x9963: 0x5182, - 0x9964: 0x56D8, - 0x9965: 0x518C, - 0x9966: 0x5189, - 0x9967: 0x518F, - 0x9968: 0x5191, - 0x9969: 0x5193, - 0x996A: 0x5195, - 0x996B: 0x5196, - 0x996C: 0x51A4, - 0x996D: 0x51A6, - 0x996E: 0x51A2, - 0x996F: 0x51A9, - 0x9970: 0x51AA, - 0x9971: 0x51AB, - 0x9972: 0x51B3, - 0x9973: 0x51B1, - 0x9974: 0x51B2, - 0x9975: 0x51B0, - 0x9976: 0x51B5, - 0x9977: 0x51BD, - 0x9978: 0x51C5, - 0x9979: 0x51C9, - 0x997A: 0x51DB, - 0x997B: 0x51E0, - 0x997C: 0x8655, - 0x997D: 0x51E9, - 0x997E: 0x51ED, - 0x9980: 0x51F0, - 0x9981: 0x51F5, - 0x9982: 0x51FE, - 0x9983: 0x5204, - 0x9984: 0x520B, - 0x9985: 0x5214, - 0x9986: 0x520E, - 0x9987: 0x5227, - 0x9988: 0x522A, - 0x9989: 0x522E, - 0x998A: 0x5233, - 0x998B: 0x5239, - 0x998C: 0x524F, - 0x998D: 0x5244, - 0x998E: 0x524B, - 0x998F: 0x524C, - 0x9990: 0x525E, - 0x9991: 0x5254, - 0x9992: 0x526A, - 0x9993: 0x5274, - 0x9994: 0x5269, - 0x9995: 0x5273, - 0x9996: 0x527F, - 0x9997: 0x527D, - 0x9998: 0x528D, - 0x9999: 0x5294, - 0x999A: 0x5292, - 0x999B: 0x5271, - 0x999C: 0x5288, - 0x999D: 0x5291, - 0x999E: 0x8FA8, - 0x999F: 0x8FA7, - 0x99A0: 0x52AC, - 0x99A1: 0x52AD, - 0x99A2: 0x52BC, - 0x99A3: 0x52B5, - 0x99A4: 0x52C1, - 0x99A5: 0x52CD, - 0x99A6: 0x52D7, - 0x99A7: 0x52DE, - 0x99A8: 0x52E3, - 0x99A9: 0x52E6, - 0x99AA: 0x98ED, - 0x99AB: 0x52E0, - 0x99AC: 0x52F3, - 0x99AD: 0x52F5, - 0x99AE: 0x52F8, - 0x99AF: 0x52F9, - 0x99B0: 0x5306, - 0x99B1: 0x5308, - 0x99B2: 0x7538, - 0x99B3: 0x530D, - 0x99B4: 0x5310, - 0x99B5: 0x530F, - 0x99B6: 0x5315, - 0x99B7: 0x531A, - 0x99B8: 0x5323, - 0x99B9: 0x532F, - 0x99BA: 0x5331, - 0x99BB: 0x5333, - 0x99BC: 0x5338, - 0x99BD: 0x5340, - 0x99BE: 0x5346, - 0x99BF: 0x5345, - 0x99C0: 0x4E17, - 0x99C1: 0x5349, - 0x99C2: 0x534D, - 0x99C3: 0x51D6, - 0x99C4: 0x535E, - 0x99C5: 0x5369, - 0x99C6: 0x536E, - 0x99C7: 0x5918, - 0x99C8: 0x537B, - 0x99C9: 0x5377, - 0x99CA: 0x5382, - 0x99CB: 0x5396, - 0x99CC: 0x53A0, - 0x99CD: 0x53A6, - 0x99CE: 0x53A5, - 0x99CF: 0x53AE, - 0x99D0: 0x53B0, - 0x99D1: 0x53B6, - 0x99D2: 0x53C3, - 0x99D3: 0x7C12, - 0x99D4: 0x96D9, - 0x99D5: 0x53DF, - 0x99D6: 0x66FC, - 0x99D7: 0x71EE, - 0x99D8: 0x53EE, - 0x99D9: 0x53E8, - 0x99DA: 0x53ED, - 0x99DB: 0x53FA, - 0x99DC: 0x5401, - 0x99DD: 0x543D, - 0x99DE: 0x5440, - 0x99DF: 0x542C, - 0x99E0: 0x542D, - 0x99E1: 0x543C, - 0x99E2: 0x542E, - 0x99E3: 0x5436, - 0x99E4: 0x5429, - 0x99E5: 0x541D, - 0x99E6: 0x544E, - 0x99E7: 0x548F, - 0x99E8: 0x5475, - 0x99E9: 0x548E, - 0x99EA: 0x545F, - 0x99EB: 0x5471, - 0x99EC: 0x5477, - 0x99ED: 0x5470, - 0x99EE: 0x5492, - 0x99EF: 0x547B, - 0x99F0: 0x5480, - 0x99F1: 0x5476, - 0x99F2: 0x5484, - 0x99F3: 0x5490, - 0x99F4: 0x5486, - 0x99F5: 0x54C7, - 0x99F6: 0x54A2, - 0x99F7: 0x54B8, - 0x99F8: 0x54A5, - 0x99F9: 0x54AC, - 0x99FA: 0x54C4, - 0x99FB: 0x54C8, - 0x99FC: 0x54A8, - 0x9A40: 0x54AB, - 0x9A41: 0x54C2, - 0x9A42: 0x54A4, - 0x9A43: 0x54BE, - 0x9A44: 0x54BC, - 0x9A45: 0x54D8, - 0x9A46: 0x54E5, - 0x9A47: 0x54E6, - 0x9A48: 0x550F, - 0x9A49: 0x5514, - 0x9A4A: 0x54FD, - 0x9A4B: 0x54EE, - 0x9A4C: 0x54ED, - 0x9A4D: 0x54FA, - 0x9A4E: 0x54E2, - 0x9A4F: 0x5539, - 0x9A50: 0x5540, - 0x9A51: 0x5563, - 0x9A52: 0x554C, - 0x9A53: 0x552E, - 0x9A54: 0x555C, - 0x9A55: 0x5545, - 0x9A56: 0x5556, - 0x9A57: 0x5557, - 0x9A58: 0x5538, - 0x9A59: 0x5533, - 0x9A5A: 0x555D, - 0x9A5B: 0x5599, - 0x9A5C: 0x5580, - 0x9A5D: 0x54AF, - 0x9A5E: 0x558A, - 0x9A5F: 0x559F, - 0x9A60: 0x557B, - 0x9A61: 0x557E, - 0x9A62: 0x5598, - 0x9A63: 0x559E, - 0x9A64: 0x55AE, - 0x9A65: 0x557C, - 0x9A66: 0x5583, - 0x9A67: 0x55A9, - 0x9A68: 0x5587, - 0x9A69: 0x55A8, - 0x9A6A: 0x55DA, - 0x9A6B: 0x55C5, - 0x9A6C: 0x55DF, - 0x9A6D: 0x55C4, - 0x9A6E: 0x55DC, - 0x9A6F: 0x55E4, - 0x9A70: 0x55D4, - 0x9A71: 0x5614, - 0x9A72: 0x55F7, - 0x9A73: 0x5616, - 0x9A74: 0x55FE, - 0x9A75: 0x55FD, - 0x9A76: 0x561B, - 0x9A77: 0x55F9, - 0x9A78: 0x564E, - 0x9A79: 0x5650, - 0x9A7A: 0x71DF, - 0x9A7B: 0x5634, - 0x9A7C: 0x5636, - 0x9A7D: 0x5632, - 0x9A7E: 0x5638, - 0x9A80: 0x566B, - 0x9A81: 0x5664, - 0x9A82: 0x562F, - 0x9A83: 0x566C, - 0x9A84: 0x566A, - 0x9A85: 0x5686, - 0x9A86: 0x5680, - 0x9A87: 0x568A, - 0x9A88: 0x56A0, - 0x9A89: 0x5694, - 0x9A8A: 0x568F, - 0x9A8B: 0x56A5, - 0x9A8C: 0x56AE, - 0x9A8D: 0x56B6, - 0x9A8E: 0x56B4, - 0x9A8F: 0x56C2, - 0x9A90: 0x56BC, - 0x9A91: 0x56C1, - 0x9A92: 0x56C3, - 0x9A93: 0x56C0, - 0x9A94: 0x56C8, - 0x9A95: 0x56CE, - 0x9A96: 0x56D1, - 0x9A97: 0x56D3, - 0x9A98: 0x56D7, - 0x9A99: 0x56EE, - 0x9A9A: 0x56F9, - 0x9A9B: 0x5700, - 0x9A9C: 0x56FF, - 0x9A9D: 0x5704, - 0x9A9E: 0x5709, - 0x9A9F: 0x5708, - 0x9AA0: 0x570B, - 0x9AA1: 0x570D, - 0x9AA2: 0x5713, - 0x9AA3: 0x5718, - 0x9AA4: 0x5716, - 0x9AA5: 0x55C7, - 0x9AA6: 0x571C, - 0x9AA7: 0x5726, - 0x9AA8: 0x5737, - 0x9AA9: 0x5738, - 0x9AAA: 0x574E, - 0x9AAB: 0x573B, - 0x9AAC: 0x5740, - 0x9AAD: 0x574F, - 0x9AAE: 0x5769, - 0x9AAF: 0x57C0, - 0x9AB0: 0x5788, - 0x9AB1: 0x5761, - 0x9AB2: 0x577F, - 0x9AB3: 0x5789, - 0x9AB4: 0x5793, - 0x9AB5: 0x57A0, - 0x9AB6: 0x57B3, - 0x9AB7: 0x57A4, - 0x9AB8: 0x57AA, - 0x9AB9: 0x57B0, - 0x9ABA: 0x57C3, - 0x9ABB: 0x57C6, - 0x9ABC: 0x57D4, - 0x9ABD: 0x57D2, - 0x9ABE: 0x57D3, - 0x9ABF: 0x580A, - 0x9AC0: 0x57D6, - 0x9AC1: 0x57E3, - 0x9AC2: 0x580B, - 0x9AC3: 0x5819, - 0x9AC4: 0x581D, - 0x9AC5: 0x5872, - 0x9AC6: 0x5821, - 0x9AC7: 0x5862, - 0x9AC8: 0x584B, - 0x9AC9: 0x5870, - 0x9ACA: 0x6BC0, - 0x9ACB: 0x5852, - 0x9ACC: 0x583D, - 0x9ACD: 0x5879, - 0x9ACE: 0x5885, - 0x9ACF: 0x58B9, - 0x9AD0: 0x589F, - 0x9AD1: 0x58AB, - 0x9AD2: 0x58BA, - 0x9AD3: 0x58DE, - 0x9AD4: 0x58BB, - 0x9AD5: 0x58B8, - 0x9AD6: 0x58AE, - 0x9AD7: 0x58C5, - 0x9AD8: 0x58D3, - 0x9AD9: 0x58D1, - 0x9ADA: 0x58D7, - 0x9ADB: 0x58D9, - 0x9ADC: 0x58D8, - 0x9ADD: 0x58E5, - 0x9ADE: 0x58DC, - 0x9ADF: 0x58E4, - 0x9AE0: 0x58DF, - 0x9AE1: 0x58EF, - 0x9AE2: 0x58FA, - 0x9AE3: 0x58F9, - 0x9AE4: 0x58FB, - 0x9AE5: 0x58FC, - 0x9AE6: 0x58FD, - 0x9AE7: 0x5902, - 0x9AE8: 0x590A, - 0x9AE9: 0x5910, - 0x9AEA: 0x591B, - 0x9AEB: 0x68A6, - 0x9AEC: 0x5925, - 0x9AED: 0x592C, - 0x9AEE: 0x592D, - 0x9AEF: 0x5932, - 0x9AF0: 0x5938, - 0x9AF1: 0x593E, - 0x9AF2: 0x7AD2, - 0x9AF3: 0x5955, - 0x9AF4: 0x5950, - 0x9AF5: 0x594E, - 0x9AF6: 0x595A, - 0x9AF7: 0x5958, - 0x9AF8: 0x5962, - 0x9AF9: 0x5960, - 0x9AFA: 0x5967, - 0x9AFB: 0x596C, - 0x9AFC: 0x5969, - 0x9B40: 0x5978, - 0x9B41: 0x5981, - 0x9B42: 0x599D, - 0x9B43: 0x4F5E, - 0x9B44: 0x4FAB, - 0x9B45: 0x59A3, - 0x9B46: 0x59B2, - 0x9B47: 0x59C6, - 0x9B48: 0x59E8, - 0x9B49: 0x59DC, - 0x9B4A: 0x598D, - 0x9B4B: 0x59D9, - 0x9B4C: 0x59DA, - 0x9B4D: 0x5A25, - 0x9B4E: 0x5A1F, - 0x9B4F: 0x5A11, - 0x9B50: 0x5A1C, - 0x9B51: 0x5A09, - 0x9B52: 0x5A1A, - 0x9B53: 0x5A40, - 0x9B54: 0x5A6C, - 0x9B55: 0x5A49, - 0x9B56: 0x5A35, - 0x9B57: 0x5A36, - 0x9B58: 0x5A62, - 0x9B59: 0x5A6A, - 0x9B5A: 0x5A9A, - 0x9B5B: 0x5ABC, - 0x9B5C: 0x5ABE, - 0x9B5D: 0x5ACB, - 0x9B5E: 0x5AC2, - 0x9B5F: 0x5ABD, - 0x9B60: 0x5AE3, - 0x9B61: 0x5AD7, - 0x9B62: 0x5AE6, - 0x9B63: 0x5AE9, - 0x9B64: 0x5AD6, - 0x9B65: 0x5AFA, - 0x9B66: 0x5AFB, - 0x9B67: 0x5B0C, - 0x9B68: 0x5B0B, - 0x9B69: 0x5B16, - 0x9B6A: 0x5B32, - 0x9B6B: 0x5AD0, - 0x9B6C: 0x5B2A, - 0x9B6D: 0x5B36, - 0x9B6E: 0x5B3E, - 0x9B6F: 0x5B43, - 0x9B70: 0x5B45, - 0x9B71: 0x5B40, - 0x9B72: 0x5B51, - 0x9B73: 0x5B55, - 0x9B74: 0x5B5A, - 0x9B75: 0x5B5B, - 0x9B76: 0x5B65, - 0x9B77: 0x5B69, - 0x9B78: 0x5B70, - 0x9B79: 0x5B73, - 0x9B7A: 0x5B75, - 0x9B7B: 0x5B78, - 0x9B7C: 0x6588, - 0x9B7D: 0x5B7A, - 0x9B7E: 0x5B80, - 0x9B80: 0x5B83, - 0x9B81: 0x5BA6, - 0x9B82: 0x5BB8, - 0x9B83: 0x5BC3, - 0x9B84: 0x5BC7, - 0x9B85: 0x5BC9, - 0x9B86: 0x5BD4, - 0x9B87: 0x5BD0, - 0x9B88: 0x5BE4, - 0x9B89: 0x5BE6, - 0x9B8A: 0x5BE2, - 0x9B8B: 0x5BDE, - 0x9B8C: 0x5BE5, - 0x9B8D: 0x5BEB, - 0x9B8E: 0x5BF0, - 0x9B8F: 0x5BF6, - 0x9B90: 0x5BF3, - 0x9B91: 0x5C05, - 0x9B92: 0x5C07, - 0x9B93: 0x5C08, - 0x9B94: 0x5C0D, - 0x9B95: 0x5C13, - 0x9B96: 0x5C20, - 0x9B97: 0x5C22, - 0x9B98: 0x5C28, - 0x9B99: 0x5C38, - 0x9B9A: 0x5C39, - 0x9B9B: 0x5C41, - 0x9B9C: 0x5C46, - 0x9B9D: 0x5C4E, - 0x9B9E: 0x5C53, - 0x9B9F: 0x5C50, - 0x9BA0: 0x5C4F, - 0x9BA1: 0x5B71, - 0x9BA2: 0x5C6C, - 0x9BA3: 0x5C6E, - 0x9BA4: 0x4E62, - 0x9BA5: 0x5C76, - 0x9BA6: 0x5C79, - 0x9BA7: 0x5C8C, - 0x9BA8: 0x5C91, - 0x9BA9: 0x5C94, - 0x9BAA: 0x599B, - 0x9BAB: 0x5CAB, - 0x9BAC: 0x5CBB, - 0x9BAD: 0x5CB6, - 0x9BAE: 0x5CBC, - 0x9BAF: 0x5CB7, - 0x9BB0: 0x5CC5, - 0x9BB1: 0x5CBE, - 0x9BB2: 0x5CC7, - 0x9BB3: 0x5CD9, - 0x9BB4: 0x5CE9, - 0x9BB5: 0x5CFD, - 0x9BB6: 0x5CFA, - 0x9BB7: 0x5CED, - 0x9BB8: 0x5D8C, - 0x9BB9: 0x5CEA, - 0x9BBA: 0x5D0B, - 0x9BBB: 0x5D15, - 0x9BBC: 0x5D17, - 0x9BBD: 0x5D5C, - 0x9BBE: 0x5D1F, - 0x9BBF: 0x5D1B, - 0x9BC0: 0x5D11, - 0x9BC1: 0x5D14, - 0x9BC2: 0x5D22, - 0x9BC3: 0x5D1A, - 0x9BC4: 0x5D19, - 0x9BC5: 0x5D18, - 0x9BC6: 0x5D4C, - 0x9BC7: 0x5D52, - 0x9BC8: 0x5D4E, - 0x9BC9: 0x5D4B, - 0x9BCA: 0x5D6C, - 0x9BCB: 0x5D73, - 0x9BCC: 0x5D76, - 0x9BCD: 0x5D87, - 0x9BCE: 0x5D84, - 0x9BCF: 0x5D82, - 0x9BD0: 0x5DA2, - 0x9BD1: 0x5D9D, - 0x9BD2: 0x5DAC, - 0x9BD3: 0x5DAE, - 0x9BD4: 0x5DBD, - 0x9BD5: 0x5D90, - 0x9BD6: 0x5DB7, - 0x9BD7: 0x5DBC, - 0x9BD8: 0x5DC9, - 0x9BD9: 0x5DCD, - 0x9BDA: 0x5DD3, - 0x9BDB: 0x5DD2, - 0x9BDC: 0x5DD6, - 0x9BDD: 0x5DDB, - 0x9BDE: 0x5DEB, - 0x9BDF: 0x5DF2, - 0x9BE0: 0x5DF5, - 0x9BE1: 0x5E0B, - 0x9BE2: 0x5E1A, - 0x9BE3: 0x5E19, - 0x9BE4: 0x5E11, - 0x9BE5: 0x5E1B, - 0x9BE6: 0x5E36, - 0x9BE7: 0x5E37, - 0x9BE8: 0x5E44, - 0x9BE9: 0x5E43, - 0x9BEA: 0x5E40, - 0x9BEB: 0x5E4E, - 0x9BEC: 0x5E57, - 0x9BED: 0x5E54, - 0x9BEE: 0x5E5F, - 0x9BEF: 0x5E62, - 0x9BF0: 0x5E64, - 0x9BF1: 0x5E47, - 0x9BF2: 0x5E75, - 0x9BF3: 0x5E76, - 0x9BF4: 0x5E7A, - 0x9BF5: 0x9EBC, - 0x9BF6: 0x5E7F, - 0x9BF7: 0x5EA0, - 0x9BF8: 0x5EC1, - 0x9BF9: 0x5EC2, - 0x9BFA: 0x5EC8, - 0x9BFB: 0x5ED0, - 0x9BFC: 0x5ECF, - 0x9C40: 0x5ED6, - 0x9C41: 0x5EE3, - 0x9C42: 0x5EDD, - 0x9C43: 0x5EDA, - 0x9C44: 0x5EDB, - 0x9C45: 0x5EE2, - 0x9C46: 0x5EE1, - 0x9C47: 0x5EE8, - 0x9C48: 0x5EE9, - 0x9C49: 0x5EEC, - 0x9C4A: 0x5EF1, - 0x9C4B: 0x5EF3, - 0x9C4C: 0x5EF0, - 0x9C4D: 0x5EF4, - 0x9C4E: 0x5EF8, - 0x9C4F: 0x5EFE, - 0x9C50: 0x5F03, - 0x9C51: 0x5F09, - 0x9C52: 0x5F5D, - 0x9C53: 0x5F5C, - 0x9C54: 0x5F0B, - 0x9C55: 0x5F11, - 0x9C56: 0x5F16, - 0x9C57: 0x5F29, - 0x9C58: 0x5F2D, - 0x9C59: 0x5F38, - 0x9C5A: 0x5F41, - 0x9C5B: 0x5F48, - 0x9C5C: 0x5F4C, - 0x9C5D: 0x5F4E, - 0x9C5E: 0x5F2F, - 0x9C5F: 0x5F51, - 0x9C60: 0x5F56, - 0x9C61: 0x5F57, - 0x9C62: 0x5F59, - 0x9C63: 0x5F61, - 0x9C64: 0x5F6D, - 0x9C65: 0x5F73, - 0x9C66: 0x5F77, - 0x9C67: 0x5F83, - 0x9C68: 0x5F82, - 0x9C69: 0x5F7F, - 0x9C6A: 0x5F8A, - 0x9C6B: 0x5F88, - 0x9C6C: 0x5F91, - 0x9C6D: 0x5F87, - 0x9C6E: 0x5F9E, - 0x9C6F: 0x5F99, - 0x9C70: 0x5F98, - 0x9C71: 0x5FA0, - 0x9C72: 0x5FA8, - 0x9C73: 0x5FAD, - 0x9C74: 0x5FBC, - 0x9C75: 0x5FD6, - 0x9C76: 0x5FFB, - 0x9C77: 0x5FE4, - 0x9C78: 0x5FF8, - 0x9C79: 0x5FF1, - 0x9C7A: 0x5FDD, - 0x9C7B: 0x60B3, - 0x9C7C: 0x5FFF, - 0x9C7D: 0x6021, - 0x9C7E: 0x6060, - 0x9C80: 0x6019, - 0x9C81: 0x6010, - 0x9C82: 0x6029, - 0x9C83: 0x600E, - 0x9C84: 0x6031, - 0x9C85: 0x601B, - 0x9C86: 0x6015, - 0x9C87: 0x602B, - 0x9C88: 0x6026, - 0x9C89: 0x600F, - 0x9C8A: 0x603A, - 0x9C8B: 0x605A, - 0x9C8C: 0x6041, - 0x9C8D: 0x606A, - 0x9C8E: 0x6077, - 0x9C8F: 0x605F, - 0x9C90: 0x604A, - 0x9C91: 0x6046, - 0x9C92: 0x604D, - 0x9C93: 0x6063, - 0x9C94: 0x6043, - 0x9C95: 0x6064, - 0x9C96: 0x6042, - 0x9C97: 0x606C, - 0x9C98: 0x606B, - 0x9C99: 0x6059, - 0x9C9A: 0x6081, - 0x9C9B: 0x608D, - 0x9C9C: 0x60E7, - 0x9C9D: 0x6083, - 0x9C9E: 0x609A, - 0x9C9F: 0x6084, - 0x9CA0: 0x609B, - 0x9CA1: 0x6096, - 0x9CA2: 0x6097, - 0x9CA3: 0x6092, - 0x9CA4: 0x60A7, - 0x9CA5: 0x608B, - 0x9CA6: 0x60E1, - 0x9CA7: 0x60B8, - 0x9CA8: 0x60E0, - 0x9CA9: 0x60D3, - 0x9CAA: 0x60B4, - 0x9CAB: 0x5FF0, - 0x9CAC: 0x60BD, - 0x9CAD: 0x60C6, - 0x9CAE: 0x60B5, - 0x9CAF: 0x60D8, - 0x9CB0: 0x614D, - 0x9CB1: 0x6115, - 0x9CB2: 0x6106, - 0x9CB3: 0x60F6, - 0x9CB4: 0x60F7, - 0x9CB5: 0x6100, - 0x9CB6: 0x60F4, - 0x9CB7: 0x60FA, - 0x9CB8: 0x6103, - 0x9CB9: 0x6121, - 0x9CBA: 0x60FB, - 0x9CBB: 0x60F1, - 0x9CBC: 0x610D, - 0x9CBD: 0x610E, - 0x9CBE: 0x6147, - 0x9CBF: 0x613E, - 0x9CC0: 0x6128, - 0x9CC1: 0x6127, - 0x9CC2: 0x614A, - 0x9CC3: 0x613F, - 0x9CC4: 0x613C, - 0x9CC5: 0x612C, - 0x9CC6: 0x6134, - 0x9CC7: 0x613D, - 0x9CC8: 0x6142, - 0x9CC9: 0x6144, - 0x9CCA: 0x6173, - 0x9CCB: 0x6177, - 0x9CCC: 0x6158, - 0x9CCD: 0x6159, - 0x9CCE: 0x615A, - 0x9CCF: 0x616B, - 0x9CD0: 0x6174, - 0x9CD1: 0x616F, - 0x9CD2: 0x6165, - 0x9CD3: 0x6171, - 0x9CD4: 0x615F, - 0x9CD5: 0x615D, - 0x9CD6: 0x6153, - 0x9CD7: 0x6175, - 0x9CD8: 0x6199, - 0x9CD9: 0x6196, - 0x9CDA: 0x6187, - 0x9CDB: 0x61AC, - 0x9CDC: 0x6194, - 0x9CDD: 0x619A, - 0x9CDE: 0x618A, - 0x9CDF: 0x6191, - 0x9CE0: 0x61AB, - 0x9CE1: 0x61AE, - 0x9CE2: 0x61CC, - 0x9CE3: 0x61CA, - 0x9CE4: 0x61C9, - 0x9CE5: 0x61F7, - 0x9CE6: 0x61C8, - 0x9CE7: 0x61C3, - 0x9CE8: 0x61C6, - 0x9CE9: 0x61BA, - 0x9CEA: 0x61CB, - 0x9CEB: 0x7F79, - 0x9CEC: 0x61CD, - 0x9CED: 0x61E6, - 0x9CEE: 0x61E3, - 0x9CEF: 0x61F6, - 0x9CF0: 0x61FA, - 0x9CF1: 0x61F4, - 0x9CF2: 0x61FF, - 0x9CF3: 0x61FD, - 0x9CF4: 0x61FC, - 0x9CF5: 0x61FE, - 0x9CF6: 0x6200, - 0x9CF7: 0x6208, - 0x9CF8: 0x6209, - 0x9CF9: 0x620D, - 0x9CFA: 0x620C, - 0x9CFB: 0x6214, - 0x9CFC: 0x621B, - 0x9D40: 0x621E, - 0x9D41: 0x6221, - 0x9D42: 0x622A, - 0x9D43: 0x622E, - 0x9D44: 0x6230, - 0x9D45: 0x6232, - 0x9D46: 0x6233, - 0x9D47: 0x6241, - 0x9D48: 0x624E, - 0x9D49: 0x625E, - 0x9D4A: 0x6263, - 0x9D4B: 0x625B, - 0x9D4C: 0x6260, - 0x9D4D: 0x6268, - 0x9D4E: 0x627C, - 0x9D4F: 0x6282, - 0x9D50: 0x6289, - 0x9D51: 0x627E, - 0x9D52: 0x6292, - 0x9D53: 0x6293, - 0x9D54: 0x6296, - 0x9D55: 0x62D4, - 0x9D56: 0x6283, - 0x9D57: 0x6294, - 0x9D58: 0x62D7, - 0x9D59: 0x62D1, - 0x9D5A: 0x62BB, - 0x9D5B: 0x62CF, - 0x9D5C: 0x62FF, - 0x9D5D: 0x62C6, - 0x9D5E: 0x64D4, - 0x9D5F: 0x62C8, - 0x9D60: 0x62DC, - 0x9D61: 0x62CC, - 0x9D62: 0x62CA, - 0x9D63: 0x62C2, - 0x9D64: 0x62C7, - 0x9D65: 0x629B, - 0x9D66: 0x62C9, - 0x9D67: 0x630C, - 0x9D68: 0x62EE, - 0x9D69: 0x62F1, - 0x9D6A: 0x6327, - 0x9D6B: 0x6302, - 0x9D6C: 0x6308, - 0x9D6D: 0x62EF, - 0x9D6E: 0x62F5, - 0x9D6F: 0x6350, - 0x9D70: 0x633E, - 0x9D71: 0x634D, - 0x9D72: 0x641C, - 0x9D73: 0x634F, - 0x9D74: 0x6396, - 0x9D75: 0x638E, - 0x9D76: 0x6380, - 0x9D77: 0x63AB, - 0x9D78: 0x6376, - 0x9D79: 0x63A3, - 0x9D7A: 0x638F, - 0x9D7B: 0x6389, - 0x9D7C: 0x639F, - 0x9D7D: 0x63B5, - 0x9D7E: 0x636B, - 0x9D80: 0x6369, - 0x9D81: 0x63BE, - 0x9D82: 0x63E9, - 0x9D83: 0x63C0, - 0x9D84: 0x63C6, - 0x9D85: 0x63E3, - 0x9D86: 0x63C9, - 0x9D87: 0x63D2, - 0x9D88: 0x63F6, - 0x9D89: 0x63C4, - 0x9D8A: 0x6416, - 0x9D8B: 0x6434, - 0x9D8C: 0x6406, - 0x9D8D: 0x6413, - 0x9D8E: 0x6426, - 0x9D8F: 0x6436, - 0x9D90: 0x651D, - 0x9D91: 0x6417, - 0x9D92: 0x6428, - 0x9D93: 0x640F, - 0x9D94: 0x6467, - 0x9D95: 0x646F, - 0x9D96: 0x6476, - 0x9D97: 0x644E, - 0x9D98: 0x652A, - 0x9D99: 0x6495, - 0x9D9A: 0x6493, - 0x9D9B: 0x64A5, - 0x9D9C: 0x64A9, - 0x9D9D: 0x6488, - 0x9D9E: 0x64BC, - 0x9D9F: 0x64DA, - 0x9DA0: 0x64D2, - 0x9DA1: 0x64C5, - 0x9DA2: 0x64C7, - 0x9DA3: 0x64BB, - 0x9DA4: 0x64D8, - 0x9DA5: 0x64C2, - 0x9DA6: 0x64F1, - 0x9DA7: 0x64E7, - 0x9DA8: 0x8209, - 0x9DA9: 0x64E0, - 0x9DAA: 0x64E1, - 0x9DAB: 0x62AC, - 0x9DAC: 0x64E3, - 0x9DAD: 0x64EF, - 0x9DAE: 0x652C, - 0x9DAF: 0x64F6, - 0x9DB0: 0x64F4, - 0x9DB1: 0x64F2, - 0x9DB2: 0x64FA, - 0x9DB3: 0x6500, - 0x9DB4: 0x64FD, - 0x9DB5: 0x6518, - 0x9DB6: 0x651C, - 0x9DB7: 0x6505, - 0x9DB8: 0x6524, - 0x9DB9: 0x6523, - 0x9DBA: 0x652B, - 0x9DBB: 0x6534, - 0x9DBC: 0x6535, - 0x9DBD: 0x6537, - 0x9DBE: 0x6536, - 0x9DBF: 0x6538, - 0x9DC0: 0x754B, - 0x9DC1: 0x6548, - 0x9DC2: 0x6556, - 0x9DC3: 0x6555, - 0x9DC4: 0x654D, - 0x9DC5: 0x6558, - 0x9DC6: 0x655E, - 0x9DC7: 0x655D, - 0x9DC8: 0x6572, - 0x9DC9: 0x6578, - 0x9DCA: 0x6582, - 0x9DCB: 0x6583, - 0x9DCC: 0x8B8A, - 0x9DCD: 0x659B, - 0x9DCE: 0x659F, - 0x9DCF: 0x65AB, - 0x9DD0: 0x65B7, - 0x9DD1: 0x65C3, - 0x9DD2: 0x65C6, - 0x9DD3: 0x65C1, - 0x9DD4: 0x65C4, - 0x9DD5: 0x65CC, - 0x9DD6: 0x65D2, - 0x9DD7: 0x65DB, - 0x9DD8: 0x65D9, - 0x9DD9: 0x65E0, - 0x9DDA: 0x65E1, - 0x9DDB: 0x65F1, - 0x9DDC: 0x6772, - 0x9DDD: 0x660A, - 0x9DDE: 0x6603, - 0x9DDF: 0x65FB, - 0x9DE0: 0x6773, - 0x9DE1: 0x6635, - 0x9DE2: 0x6636, - 0x9DE3: 0x6634, - 0x9DE4: 0x661C, - 0x9DE5: 0x664F, - 0x9DE6: 0x6644, - 0x9DE7: 0x6649, - 0x9DE8: 0x6641, - 0x9DE9: 0x665E, - 0x9DEA: 0x665D, - 0x9DEB: 0x6664, - 0x9DEC: 0x6667, - 0x9DED: 0x6668, - 0x9DEE: 0x665F, - 0x9DEF: 0x6662, - 0x9DF0: 0x6670, - 0x9DF1: 0x6683, - 0x9DF2: 0x6688, - 0x9DF3: 0x668E, - 0x9DF4: 0x6689, - 0x9DF5: 0x6684, - 0x9DF6: 0x6698, - 0x9DF7: 0x669D, - 0x9DF8: 0x66C1, - 0x9DF9: 0x66B9, - 0x9DFA: 0x66C9, - 0x9DFB: 0x66BE, - 0x9DFC: 0x66BC, - 0x9E40: 0x66C4, - 0x9E41: 0x66B8, - 0x9E42: 0x66D6, - 0x9E43: 0x66DA, - 0x9E44: 0x66E0, - 0x9E45: 0x663F, - 0x9E46: 0x66E6, - 0x9E47: 0x66E9, - 0x9E48: 0x66F0, - 0x9E49: 0x66F5, - 0x9E4A: 0x66F7, - 0x9E4B: 0x670F, - 0x9E4C: 0x6716, - 0x9E4D: 0x671E, - 0x9E4E: 0x6726, - 0x9E4F: 0x6727, - 0x9E50: 0x9738, - 0x9E51: 0x672E, - 0x9E52: 0x673F, - 0x9E53: 0x6736, - 0x9E54: 0x6741, - 0x9E55: 0x6738, - 0x9E56: 0x6737, - 0x9E57: 0x6746, - 0x9E58: 0x675E, - 0x9E59: 0x6760, - 0x9E5A: 0x6759, - 0x9E5B: 0x6763, - 0x9E5C: 0x6764, - 0x9E5D: 0x6789, - 0x9E5E: 0x6770, - 0x9E5F: 0x67A9, - 0x9E60: 0x677C, - 0x9E61: 0x676A, - 0x9E62: 0x678C, - 0x9E63: 0x678B, - 0x9E64: 0x67A6, - 0x9E65: 0x67A1, - 0x9E66: 0x6785, - 0x9E67: 0x67B7, - 0x9E68: 0x67EF, - 0x9E69: 0x67B4, - 0x9E6A: 0x67EC, - 0x9E6B: 0x67B3, - 0x9E6C: 0x67E9, - 0x9E6D: 0x67B8, - 0x9E6E: 0x67E4, - 0x9E6F: 0x67DE, - 0x9E70: 0x67DD, - 0x9E71: 0x67E2, - 0x9E72: 0x67EE, - 0x9E73: 0x67B9, - 0x9E74: 0x67CE, - 0x9E75: 0x67C6, - 0x9E76: 0x67E7, - 0x9E77: 0x6A9C, - 0x9E78: 0x681E, - 0x9E79: 0x6846, - 0x9E7A: 0x6829, - 0x9E7B: 0x6840, - 0x9E7C: 0x684D, - 0x9E7D: 0x6832, - 0x9E7E: 0x684E, - 0x9E80: 0x68B3, - 0x9E81: 0x682B, - 0x9E82: 0x6859, - 0x9E83: 0x6863, - 0x9E84: 0x6877, - 0x9E85: 0x687F, - 0x9E86: 0x689F, - 0x9E87: 0x688F, - 0x9E88: 0x68AD, - 0x9E89: 0x6894, - 0x9E8A: 0x689D, - 0x9E8B: 0x689B, - 0x9E8C: 0x6883, - 0x9E8D: 0x6AAE, - 0x9E8E: 0x68B9, - 0x9E8F: 0x6874, - 0x9E90: 0x68B5, - 0x9E91: 0x68A0, - 0x9E92: 0x68BA, - 0x9E93: 0x690F, - 0x9E94: 0x688D, - 0x9E95: 0x687E, - 0x9E96: 0x6901, - 0x9E97: 0x68CA, - 0x9E98: 0x6908, - 0x9E99: 0x68D8, - 0x9E9A: 0x6922, - 0x9E9B: 0x6926, - 0x9E9C: 0x68E1, - 0x9E9D: 0x690C, - 0x9E9E: 0x68CD, - 0x9E9F: 0x68D4, - 0x9EA0: 0x68E7, - 0x9EA1: 0x68D5, - 0x9EA2: 0x6936, - 0x9EA3: 0x6912, - 0x9EA4: 0x6904, - 0x9EA5: 0x68D7, - 0x9EA6: 0x68E3, - 0x9EA7: 0x6925, - 0x9EA8: 0x68F9, - 0x9EA9: 0x68E0, - 0x9EAA: 0x68EF, - 0x9EAB: 0x6928, - 0x9EAC: 0x692A, - 0x9EAD: 0x691A, - 0x9EAE: 0x6923, - 0x9EAF: 0x6921, - 0x9EB0: 0x68C6, - 0x9EB1: 0x6979, - 0x9EB2: 0x6977, - 0x9EB3: 0x695C, - 0x9EB4: 0x6978, - 0x9EB5: 0x696B, - 0x9EB6: 0x6954, - 0x9EB7: 0x697E, - 0x9EB8: 0x696E, - 0x9EB9: 0x6939, - 0x9EBA: 0x6974, - 0x9EBB: 0x693D, - 0x9EBC: 0x6959, - 0x9EBD: 0x6930, - 0x9EBE: 0x6961, - 0x9EBF: 0x695E, - 0x9EC0: 0x695D, - 0x9EC1: 0x6981, - 0x9EC2: 0x696A, - 0x9EC3: 0x69B2, - 0x9EC4: 0x69AE, - 0x9EC5: 0x69D0, - 0x9EC6: 0x69BF, - 0x9EC7: 0x69C1, - 0x9EC8: 0x69D3, - 0x9EC9: 0x69BE, - 0x9ECA: 0x69CE, - 0x9ECB: 0x5BE8, - 0x9ECC: 0x69CA, - 0x9ECD: 0x69DD, - 0x9ECE: 0x69BB, - 0x9ECF: 0x69C3, - 0x9ED0: 0x69A7, - 0x9ED1: 0x6A2E, - 0x9ED2: 0x6991, - 0x9ED3: 0x69A0, - 0x9ED4: 0x699C, - 0x9ED5: 0x6995, - 0x9ED6: 0x69B4, - 0x9ED7: 0x69DE, - 0x9ED8: 0x69E8, - 0x9ED9: 0x6A02, - 0x9EDA: 0x6A1B, - 0x9EDB: 0x69FF, - 0x9EDC: 0x6B0A, - 0x9EDD: 0x69F9, - 0x9EDE: 0x69F2, - 0x9EDF: 0x69E7, - 0x9EE0: 0x6A05, - 0x9EE1: 0x69B1, - 0x9EE2: 0x6A1E, - 0x9EE3: 0x69ED, - 0x9EE4: 0x6A14, - 0x9EE5: 0x69EB, - 0x9EE6: 0x6A0A, - 0x9EE7: 0x6A12, - 0x9EE8: 0x6AC1, - 0x9EE9: 0x6A23, - 0x9EEA: 0x6A13, - 0x9EEB: 0x6A44, - 0x9EEC: 0x6A0C, - 0x9EED: 0x6A72, - 0x9EEE: 0x6A36, - 0x9EEF: 0x6A78, - 0x9EF0: 0x6A47, - 0x9EF1: 0x6A62, - 0x9EF2: 0x6A59, - 0x9EF3: 0x6A66, - 0x9EF4: 0x6A48, - 0x9EF5: 0x6A38, - 0x9EF6: 0x6A22, - 0x9EF7: 0x6A90, - 0x9EF8: 0x6A8D, - 0x9EF9: 0x6AA0, - 0x9EFA: 0x6A84, - 0x9EFB: 0x6AA2, - 0x9EFC: 0x6AA3, - 0x9F40: 0x6A97, - 0x9F41: 0x8617, - 0x9F42: 0x6ABB, - 0x9F43: 0x6AC3, - 0x9F44: 0x6AC2, - 0x9F45: 0x6AB8, - 0x9F46: 0x6AB3, - 0x9F47: 0x6AAC, - 0x9F48: 0x6ADE, - 0x9F49: 0x6AD1, - 0x9F4A: 0x6ADF, - 0x9F4B: 0x6AAA, - 0x9F4C: 0x6ADA, - 0x9F4D: 0x6AEA, - 0x9F4E: 0x6AFB, - 0x9F4F: 0x6B05, - 0x9F50: 0x8616, - 0x9F51: 0x6AFA, - 0x9F52: 0x6B12, - 0x9F53: 0x6B16, - 0x9F54: 0x9B31, - 0x9F55: 0x6B1F, - 0x9F56: 0x6B38, - 0x9F57: 0x6B37, - 0x9F58: 0x76DC, - 0x9F59: 0x6B39, - 0x9F5A: 0x98EE, - 0x9F5B: 0x6B47, - 0x9F5C: 0x6B43, - 0x9F5D: 0x6B49, - 0x9F5E: 0x6B50, - 0x9F5F: 0x6B59, - 0x9F60: 0x6B54, - 0x9F61: 0x6B5B, - 0x9F62: 0x6B5F, - 0x9F63: 0x6B61, - 0x9F64: 0x6B78, - 0x9F65: 0x6B79, - 0x9F66: 0x6B7F, - 0x9F67: 0x6B80, - 0x9F68: 0x6B84, - 0x9F69: 0x6B83, - 0x9F6A: 0x6B8D, - 0x9F6B: 0x6B98, - 0x9F6C: 0x6B95, - 0x9F6D: 0x6B9E, - 0x9F6E: 0x6BA4, - 0x9F6F: 0x6BAA, - 0x9F70: 0x6BAB, - 0x9F71: 0x6BAF, - 0x9F72: 0x6BB2, - 0x9F73: 0x6BB1, - 0x9F74: 0x6BB3, - 0x9F75: 0x6BB7, - 0x9F76: 0x6BBC, - 0x9F77: 0x6BC6, - 0x9F78: 0x6BCB, - 0x9F79: 0x6BD3, - 0x9F7A: 0x6BDF, - 0x9F7B: 0x6BEC, - 0x9F7C: 0x6BEB, - 0x9F7D: 0x6BF3, - 0x9F7E: 0x6BEF, - 0x9F80: 0x9EBE, - 0x9F81: 0x6C08, - 0x9F82: 0x6C13, - 0x9F83: 0x6C14, - 0x9F84: 0x6C1B, - 0x9F85: 0x6C24, - 0x9F86: 0x6C23, - 0x9F87: 0x6C5E, - 0x9F88: 0x6C55, - 0x9F89: 0x6C62, - 0x9F8A: 0x6C6A, - 0x9F8B: 0x6C82, - 0x9F8C: 0x6C8D, - 0x9F8D: 0x6C9A, - 0x9F8E: 0x6C81, - 0x9F8F: 0x6C9B, - 0x9F90: 0x6C7E, - 0x9F91: 0x6C68, - 0x9F92: 0x6C73, - 0x9F93: 0x6C92, - 0x9F94: 0x6C90, - 0x9F95: 0x6CC4, - 0x9F96: 0x6CF1, - 0x9F97: 0x6CD3, - 0x9F98: 0x6CBD, - 0x9F99: 0x6CD7, - 0x9F9A: 0x6CC5, - 0x9F9B: 0x6CDD, - 0x9F9C: 0x6CAE, - 0x9F9D: 0x6CB1, - 0x9F9E: 0x6CBE, - 0x9F9F: 0x6CBA, - 0x9FA0: 0x6CDB, - 0x9FA1: 0x6CEF, - 0x9FA2: 0x6CD9, - 0x9FA3: 0x6CEA, - 0x9FA4: 0x6D1F, - 0x9FA5: 0x884D, - 0x9FA6: 0x6D36, - 0x9FA7: 0x6D2B, - 0x9FA8: 0x6D3D, - 0x9FA9: 0x6D38, - 0x9FAA: 0x6D19, - 0x9FAB: 0x6D35, - 0x9FAC: 0x6D33, - 0x9FAD: 0x6D12, - 0x9FAE: 0x6D0C, - 0x9FAF: 0x6D63, - 0x9FB0: 0x6D93, - 0x9FB1: 0x6D64, - 0x9FB2: 0x6D5A, - 0x9FB3: 0x6D79, - 0x9FB4: 0x6D59, - 0x9FB5: 0x6D8E, - 0x9FB6: 0x6D95, - 0x9FB7: 0x6FE4, - 0x9FB8: 0x6D85, - 0x9FB9: 0x6DF9, - 0x9FBA: 0x6E15, - 0x9FBB: 0x6E0A, - 0x9FBC: 0x6DB5, - 0x9FBD: 0x6DC7, - 0x9FBE: 0x6DE6, - 0x9FBF: 0x6DB8, - 0x9FC0: 0x6DC6, - 0x9FC1: 0x6DEC, - 0x9FC2: 0x6DDE, - 0x9FC3: 0x6DCC, - 0x9FC4: 0x6DE8, - 0x9FC5: 0x6DD2, - 0x9FC6: 0x6DC5, - 0x9FC7: 0x6DFA, - 0x9FC8: 0x6DD9, - 0x9FC9: 0x6DE4, - 0x9FCA: 0x6DD5, - 0x9FCB: 0x6DEA, - 0x9FCC: 0x6DEE, - 0x9FCD: 0x6E2D, - 0x9FCE: 0x6E6E, - 0x9FCF: 0x6E2E, - 0x9FD0: 0x6E19, - 0x9FD1: 0x6E72, - 0x9FD2: 0x6E5F, - 0x9FD3: 0x6E3E, - 0x9FD4: 0x6E23, - 0x9FD5: 0x6E6B, - 0x9FD6: 0x6E2B, - 0x9FD7: 0x6E76, - 0x9FD8: 0x6E4D, - 0x9FD9: 0x6E1F, - 0x9FDA: 0x6E43, - 0x9FDB: 0x6E3A, - 0x9FDC: 0x6E4E, - 0x9FDD: 0x6E24, - 0x9FDE: 0x6EFF, - 0x9FDF: 0x6E1D, - 0x9FE0: 0x6E38, - 0x9FE1: 0x6E82, - 0x9FE2: 0x6EAA, - 0x9FE3: 0x6E98, - 0x9FE4: 0x6EC9, - 0x9FE5: 0x6EB7, - 0x9FE6: 0x6ED3, - 0x9FE7: 0x6EBD, - 0x9FE8: 0x6EAF, - 0x9FE9: 0x6EC4, - 0x9FEA: 0x6EB2, - 0x9FEB: 0x6ED4, - 0x9FEC: 0x6ED5, - 0x9FED: 0x6E8F, - 0x9FEE: 0x6EA5, - 0x9FEF: 0x6EC2, - 0x9FF0: 0x6E9F, - 0x9FF1: 0x6F41, - 0x9FF2: 0x6F11, - 0x9FF3: 0x704C, - 0x9FF4: 0x6EEC, - 0x9FF5: 0x6EF8, - 0x9FF6: 0x6EFE, - 0x9FF7: 0x6F3F, - 0x9FF8: 0x6EF2, - 0x9FF9: 0x6F31, - 0x9FFA: 0x6EEF, - 0x9FFB: 0x6F32, - 0x9FFC: 0x6ECC, - 0xA1: 0xFF61, - 0xA2: 0xFF62, - 0xA3: 0xFF63, - 0xA4: 0xFF64, - 0xA5: 0xFF65, - 0xA6: 0xFF66, - 0xA7: 0xFF67, - 0xA8: 0xFF68, - 0xA9: 0xFF69, - 0xAA: 0xFF6A, - 0xAB: 0xFF6B, - 0xAC: 0xFF6C, - 0xAD: 0xFF6D, - 0xAE: 0xFF6E, - 0xAF: 0xFF6F, - 0xB0: 0xFF70, - 0xB1: 0xFF71, - 0xB2: 0xFF72, - 0xB3: 0xFF73, - 0xB4: 0xFF74, - 0xB5: 0xFF75, - 0xB6: 0xFF76, - 0xB7: 0xFF77, - 0xB8: 0xFF78, - 0xB9: 0xFF79, - 0xBA: 0xFF7A, - 0xBB: 0xFF7B, - 0xBC: 0xFF7C, - 0xBD: 0xFF7D, - 0xBE: 0xFF7E, - 0xBF: 0xFF7F, - 0xC0: 0xFF80, - 0xC1: 0xFF81, - 0xC2: 0xFF82, - 0xC3: 0xFF83, - 0xC4: 0xFF84, - 0xC5: 0xFF85, - 0xC6: 0xFF86, - 0xC7: 0xFF87, - 0xC8: 0xFF88, - 0xC9: 0xFF89, - 0xCA: 0xFF8A, - 0xCB: 0xFF8B, - 0xCC: 0xFF8C, - 0xCD: 0xFF8D, - 0xCE: 0xFF8E, - 0xCF: 0xFF8F, - 0xD0: 0xFF90, - 0xD1: 0xFF91, - 0xD2: 0xFF92, - 0xD3: 0xFF93, - 0xD4: 0xFF94, - 0xD5: 0xFF95, - 0xD6: 0xFF96, - 0xD7: 0xFF97, - 0xD8: 0xFF98, - 0xD9: 0xFF99, - 0xDA: 0xFF9A, - 0xDB: 0xFF9B, - 0xDC: 0xFF9C, - 0xDD: 0xFF9D, - 0xDE: 0xFF9E, - 0xDF: 0xFF9F, - 0xE040: 0x6F3E, - 0xE041: 0x6F13, - 0xE042: 0x6EF7, - 0xE043: 0x6F86, - 0xE044: 0x6F7A, - 0xE045: 0x6F78, - 0xE046: 0x6F81, - 0xE047: 0x6F80, - 0xE048: 0x6F6F, - 0xE049: 0x6F5B, - 0xE04A: 0x6FF3, - 0xE04B: 0x6F6D, - 0xE04C: 0x6F82, - 0xE04D: 0x6F7C, - 0xE04E: 0x6F58, - 0xE04F: 0x6F8E, - 0xE050: 0x6F91, - 0xE051: 0x6FC2, - 0xE052: 0x6F66, - 0xE053: 0x6FB3, - 0xE054: 0x6FA3, - 0xE055: 0x6FA1, - 0xE056: 0x6FA4, - 0xE057: 0x6FB9, - 0xE058: 0x6FC6, - 0xE059: 0x6FAA, - 0xE05A: 0x6FDF, - 0xE05B: 0x6FD5, - 0xE05C: 0x6FEC, - 0xE05D: 0x6FD4, - 0xE05E: 0x6FD8, - 0xE05F: 0x6FF1, - 0xE060: 0x6FEE, - 0xE061: 0x6FDB, - 0xE062: 0x7009, - 0xE063: 0x700B, - 0xE064: 0x6FFA, - 0xE065: 0x7011, - 0xE066: 0x7001, - 0xE067: 0x700F, - 0xE068: 0x6FFE, - 0xE069: 0x701B, - 0xE06A: 0x701A, - 0xE06B: 0x6F74, - 0xE06C: 0x701D, - 0xE06D: 0x7018, - 0xE06E: 0x701F, - 0xE06F: 0x7030, - 0xE070: 0x703E, - 0xE071: 0x7032, - 0xE072: 0x7051, - 0xE073: 0x7063, - 0xE074: 0x7099, - 0xE075: 0x7092, - 0xE076: 0x70AF, - 0xE077: 0x70F1, - 0xE078: 0x70AC, - 0xE079: 0x70B8, - 0xE07A: 0x70B3, - 0xE07B: 0x70AE, - 0xE07C: 0x70DF, - 0xE07D: 0x70CB, - 0xE07E: 0x70DD, - 0xE080: 0x70D9, - 0xE081: 0x7109, - 0xE082: 0x70FD, - 0xE083: 0x711C, - 0xE084: 0x7119, - 0xE085: 0x7165, - 0xE086: 0x7155, - 0xE087: 0x7188, - 0xE088: 0x7166, - 0xE089: 0x7162, - 0xE08A: 0x714C, - 0xE08B: 0x7156, - 0xE08C: 0x716C, - 0xE08D: 0x718F, - 0xE08E: 0x71FB, - 0xE08F: 0x7184, - 0xE090: 0x7195, - 0xE091: 0x71A8, - 0xE092: 0x71AC, - 0xE093: 0x71D7, - 0xE094: 0x71B9, - 0xE095: 0x71BE, - 0xE096: 0x71D2, - 0xE097: 0x71C9, - 0xE098: 0x71D4, - 0xE099: 0x71CE, - 0xE09A: 0x71E0, - 0xE09B: 0x71EC, - 0xE09C: 0x71E7, - 0xE09D: 0x71F5, - 0xE09E: 0x71FC, - 0xE09F: 0x71F9, - 0xE0A0: 0x71FF, - 0xE0A1: 0x720D, - 0xE0A2: 0x7210, - 0xE0A3: 0x721B, - 0xE0A4: 0x7228, - 0xE0A5: 0x722D, - 0xE0A6: 0x722C, - 0xE0A7: 0x7230, - 0xE0A8: 0x7232, - 0xE0A9: 0x723B, - 0xE0AA: 0x723C, - 0xE0AB: 0x723F, - 0xE0AC: 0x7240, - 0xE0AD: 0x7246, - 0xE0AE: 0x724B, - 0xE0AF: 0x7258, - 0xE0B0: 0x7274, - 0xE0B1: 0x727E, - 0xE0B2: 0x7282, - 0xE0B3: 0x7281, - 0xE0B4: 0x7287, - 0xE0B5: 0x7292, - 0xE0B6: 0x7296, - 0xE0B7: 0x72A2, - 0xE0B8: 0x72A7, - 0xE0B9: 0x72B9, - 0xE0BA: 0x72B2, - 0xE0BB: 0x72C3, - 0xE0BC: 0x72C6, - 0xE0BD: 0x72C4, - 0xE0BE: 0x72CE, - 0xE0BF: 0x72D2, - 0xE0C0: 0x72E2, - 0xE0C1: 0x72E0, - 0xE0C2: 0x72E1, - 0xE0C3: 0x72F9, - 0xE0C4: 0x72F7, - 0xE0C5: 0x500F, - 0xE0C6: 0x7317, - 0xE0C7: 0x730A, - 0xE0C8: 0x731C, - 0xE0C9: 0x7316, - 0xE0CA: 0x731D, - 0xE0CB: 0x7334, - 0xE0CC: 0x732F, - 0xE0CD: 0x7329, - 0xE0CE: 0x7325, - 0xE0CF: 0x733E, - 0xE0D0: 0x734E, - 0xE0D1: 0x734F, - 0xE0D2: 0x9ED8, - 0xE0D3: 0x7357, - 0xE0D4: 0x736A, - 0xE0D5: 0x7368, - 0xE0D6: 0x7370, - 0xE0D7: 0x7378, - 0xE0D8: 0x7375, - 0xE0D9: 0x737B, - 0xE0DA: 0x737A, - 0xE0DB: 0x73C8, - 0xE0DC: 0x73B3, - 0xE0DD: 0x73CE, - 0xE0DE: 0x73BB, - 0xE0DF: 0x73C0, - 0xE0E0: 0x73E5, - 0xE0E1: 0x73EE, - 0xE0E2: 0x73DE, - 0xE0E3: 0x74A2, - 0xE0E4: 0x7405, - 0xE0E5: 0x746F, - 0xE0E6: 0x7425, - 0xE0E7: 0x73F8, - 0xE0E8: 0x7432, - 0xE0E9: 0x743A, - 0xE0EA: 0x7455, - 0xE0EB: 0x743F, - 0xE0EC: 0x745F, - 0xE0ED: 0x7459, - 0xE0EE: 0x7441, - 0xE0EF: 0x745C, - 0xE0F0: 0x7469, - 0xE0F1: 0x7470, - 0xE0F2: 0x7463, - 0xE0F3: 0x746A, - 0xE0F4: 0x7476, - 0xE0F5: 0x747E, - 0xE0F6: 0x748B, - 0xE0F7: 0x749E, - 0xE0F8: 0x74A7, - 0xE0F9: 0x74CA, - 0xE0FA: 0x74CF, - 0xE0FB: 0x74D4, - 0xE0FC: 0x73F1, - 0xE140: 0x74E0, - 0xE141: 0x74E3, - 0xE142: 0x74E7, - 0xE143: 0x74E9, - 0xE144: 0x74EE, - 0xE145: 0x74F2, - 0xE146: 0x74F0, - 0xE147: 0x74F1, - 0xE148: 0x74F8, - 0xE149: 0x74F7, - 0xE14A: 0x7504, - 0xE14B: 0x7503, - 0xE14C: 0x7505, - 0xE14D: 0x750C, - 0xE14E: 0x750E, - 0xE14F: 0x750D, - 0xE150: 0x7515, - 0xE151: 0x7513, - 0xE152: 0x751E, - 0xE153: 0x7526, - 0xE154: 0x752C, - 0xE155: 0x753C, - 0xE156: 0x7544, - 0xE157: 0x754D, - 0xE158: 0x754A, - 0xE159: 0x7549, - 0xE15A: 0x755B, - 0xE15B: 0x7546, - 0xE15C: 0x755A, - 0xE15D: 0x7569, - 0xE15E: 0x7564, - 0xE15F: 0x7567, - 0xE160: 0x756B, - 0xE161: 0x756D, - 0xE162: 0x7578, - 0xE163: 0x7576, - 0xE164: 0x7586, - 0xE165: 0x7587, - 0xE166: 0x7574, - 0xE167: 0x758A, - 0xE168: 0x7589, - 0xE169: 0x7582, - 0xE16A: 0x7594, - 0xE16B: 0x759A, - 0xE16C: 0x759D, - 0xE16D: 0x75A5, - 0xE16E: 0x75A3, - 0xE16F: 0x75C2, - 0xE170: 0x75B3, - 0xE171: 0x75C3, - 0xE172: 0x75B5, - 0xE173: 0x75BD, - 0xE174: 0x75B8, - 0xE175: 0x75BC, - 0xE176: 0x75B1, - 0xE177: 0x75CD, - 0xE178: 0x75CA, - 0xE179: 0x75D2, - 0xE17A: 0x75D9, - 0xE17B: 0x75E3, - 0xE17C: 0x75DE, - 0xE17D: 0x75FE, - 0xE17E: 0x75FF, - 0xE180: 0x75FC, - 0xE181: 0x7601, - 0xE182: 0x75F0, - 0xE183: 0x75FA, - 0xE184: 0x75F2, - 0xE185: 0x75F3, - 0xE186: 0x760B, - 0xE187: 0x760D, - 0xE188: 0x7609, - 0xE189: 0x761F, - 0xE18A: 0x7627, - 0xE18B: 0x7620, - 0xE18C: 0x7621, - 0xE18D: 0x7622, - 0xE18E: 0x7624, - 0xE18F: 0x7634, - 0xE190: 0x7630, - 0xE191: 0x763B, - 0xE192: 0x7647, - 0xE193: 0x7648, - 0xE194: 0x7646, - 0xE195: 0x765C, - 0xE196: 0x7658, - 0xE197: 0x7661, - 0xE198: 0x7662, - 0xE199: 0x7668, - 0xE19A: 0x7669, - 0xE19B: 0x766A, - 0xE19C: 0x7667, - 0xE19D: 0x766C, - 0xE19E: 0x7670, - 0xE19F: 0x7672, - 0xE1A0: 0x7676, - 0xE1A1: 0x7678, - 0xE1A2: 0x767C, - 0xE1A3: 0x7680, - 0xE1A4: 0x7683, - 0xE1A5: 0x7688, - 0xE1A6: 0x768B, - 0xE1A7: 0x768E, - 0xE1A8: 0x7696, - 0xE1A9: 0x7693, - 0xE1AA: 0x7699, - 0xE1AB: 0x769A, - 0xE1AC: 0x76B0, - 0xE1AD: 0x76B4, - 0xE1AE: 0x76B8, - 0xE1AF: 0x76B9, - 0xE1B0: 0x76BA, - 0xE1B1: 0x76C2, - 0xE1B2: 0x76CD, - 0xE1B3: 0x76D6, - 0xE1B4: 0x76D2, - 0xE1B5: 0x76DE, - 0xE1B6: 0x76E1, - 0xE1B7: 0x76E5, - 0xE1B8: 0x76E7, - 0xE1B9: 0x76EA, - 0xE1BA: 0x862F, - 0xE1BB: 0x76FB, - 0xE1BC: 0x7708, - 0xE1BD: 0x7707, - 0xE1BE: 0x7704, - 0xE1BF: 0x7729, - 0xE1C0: 0x7724, - 0xE1C1: 0x771E, - 0xE1C2: 0x7725, - 0xE1C3: 0x7726, - 0xE1C4: 0x771B, - 0xE1C5: 0x7737, - 0xE1C6: 0x7738, - 0xE1C7: 0x7747, - 0xE1C8: 0x775A, - 0xE1C9: 0x7768, - 0xE1CA: 0x776B, - 0xE1CB: 0x775B, - 0xE1CC: 0x7765, - 0xE1CD: 0x777F, - 0xE1CE: 0x777E, - 0xE1CF: 0x7779, - 0xE1D0: 0x778E, - 0xE1D1: 0x778B, - 0xE1D2: 0x7791, - 0xE1D3: 0x77A0, - 0xE1D4: 0x779E, - 0xE1D5: 0x77B0, - 0xE1D6: 0x77B6, - 0xE1D7: 0x77B9, - 0xE1D8: 0x77BF, - 0xE1D9: 0x77BC, - 0xE1DA: 0x77BD, - 0xE1DB: 0x77BB, - 0xE1DC: 0x77C7, - 0xE1DD: 0x77CD, - 0xE1DE: 0x77D7, - 0xE1DF: 0x77DA, - 0xE1E0: 0x77DC, - 0xE1E1: 0x77E3, - 0xE1E2: 0x77EE, - 0xE1E3: 0x77FC, - 0xE1E4: 0x780C, - 0xE1E5: 0x7812, - 0xE1E6: 0x7926, - 0xE1E7: 0x7820, - 0xE1E8: 0x792A, - 0xE1E9: 0x7845, - 0xE1EA: 0x788E, - 0xE1EB: 0x7874, - 0xE1EC: 0x7886, - 0xE1ED: 0x787C, - 0xE1EE: 0x789A, - 0xE1EF: 0x788C, - 0xE1F0: 0x78A3, - 0xE1F1: 0x78B5, - 0xE1F2: 0x78AA, - 0xE1F3: 0x78AF, - 0xE1F4: 0x78D1, - 0xE1F5: 0x78C6, - 0xE1F6: 0x78CB, - 0xE1F7: 0x78D4, - 0xE1F8: 0x78BE, - 0xE1F9: 0x78BC, - 0xE1FA: 0x78C5, - 0xE1FB: 0x78CA, - 0xE1FC: 0x78EC, - 0xE240: 0x78E7, - 0xE241: 0x78DA, - 0xE242: 0x78FD, - 0xE243: 0x78F4, - 0xE244: 0x7907, - 0xE245: 0x7912, - 0xE246: 0x7911, - 0xE247: 0x7919, - 0xE248: 0x792C, - 0xE249: 0x792B, - 0xE24A: 0x7940, - 0xE24B: 0x7960, - 0xE24C: 0x7957, - 0xE24D: 0x795F, - 0xE24E: 0x795A, - 0xE24F: 0x7955, - 0xE250: 0x7953, - 0xE251: 0x797A, - 0xE252: 0x797F, - 0xE253: 0x798A, - 0xE254: 0x799D, - 0xE255: 0x79A7, - 0xE256: 0x9F4B, - 0xE257: 0x79AA, - 0xE258: 0x79AE, - 0xE259: 0x79B3, - 0xE25A: 0x79B9, - 0xE25B: 0x79BA, - 0xE25C: 0x79C9, - 0xE25D: 0x79D5, - 0xE25E: 0x79E7, - 0xE25F: 0x79EC, - 0xE260: 0x79E1, - 0xE261: 0x79E3, - 0xE262: 0x7A08, - 0xE263: 0x7A0D, - 0xE264: 0x7A18, - 0xE265: 0x7A19, - 0xE266: 0x7A20, - 0xE267: 0x7A1F, - 0xE268: 0x7980, - 0xE269: 0x7A31, - 0xE26A: 0x7A3B, - 0xE26B: 0x7A3E, - 0xE26C: 0x7A37, - 0xE26D: 0x7A43, - 0xE26E: 0x7A57, - 0xE26F: 0x7A49, - 0xE270: 0x7A61, - 0xE271: 0x7A62, - 0xE272: 0x7A69, - 0xE273: 0x9F9D, - 0xE274: 0x7A70, - 0xE275: 0x7A79, - 0xE276: 0x7A7D, - 0xE277: 0x7A88, - 0xE278: 0x7A97, - 0xE279: 0x7A95, - 0xE27A: 0x7A98, - 0xE27B: 0x7A96, - 0xE27C: 0x7AA9, - 0xE27D: 0x7AC8, - 0xE27E: 0x7AB0, - 0xE280: 0x7AB6, - 0xE281: 0x7AC5, - 0xE282: 0x7AC4, - 0xE283: 0x7ABF, - 0xE284: 0x9083, - 0xE285: 0x7AC7, - 0xE286: 0x7ACA, - 0xE287: 0x7ACD, - 0xE288: 0x7ACF, - 0xE289: 0x7AD5, - 0xE28A: 0x7AD3, - 0xE28B: 0x7AD9, - 0xE28C: 0x7ADA, - 0xE28D: 0x7ADD, - 0xE28E: 0x7AE1, - 0xE28F: 0x7AE2, - 0xE290: 0x7AE6, - 0xE291: 0x7AED, - 0xE292: 0x7AF0, - 0xE293: 0x7B02, - 0xE294: 0x7B0F, - 0xE295: 0x7B0A, - 0xE296: 0x7B06, - 0xE297: 0x7B33, - 0xE298: 0x7B18, - 0xE299: 0x7B19, - 0xE29A: 0x7B1E, - 0xE29B: 0x7B35, - 0xE29C: 0x7B28, - 0xE29D: 0x7B36, - 0xE29E: 0x7B50, - 0xE29F: 0x7B7A, - 0xE2A0: 0x7B04, - 0xE2A1: 0x7B4D, - 0xE2A2: 0x7B0B, - 0xE2A3: 0x7B4C, - 0xE2A4: 0x7B45, - 0xE2A5: 0x7B75, - 0xE2A6: 0x7B65, - 0xE2A7: 0x7B74, - 0xE2A8: 0x7B67, - 0xE2A9: 0x7B70, - 0xE2AA: 0x7B71, - 0xE2AB: 0x7B6C, - 0xE2AC: 0x7B6E, - 0xE2AD: 0x7B9D, - 0xE2AE: 0x7B98, - 0xE2AF: 0x7B9F, - 0xE2B0: 0x7B8D, - 0xE2B1: 0x7B9C, - 0xE2B2: 0x7B9A, - 0xE2B3: 0x7B8B, - 0xE2B4: 0x7B92, - 0xE2B5: 0x7B8F, - 0xE2B6: 0x7B5D, - 0xE2B7: 0x7B99, - 0xE2B8: 0x7BCB, - 0xE2B9: 0x7BC1, - 0xE2BA: 0x7BCC, - 0xE2BB: 0x7BCF, - 0xE2BC: 0x7BB4, - 0xE2BD: 0x7BC6, - 0xE2BE: 0x7BDD, - 0xE2BF: 0x7BE9, - 0xE2C0: 0x7C11, - 0xE2C1: 0x7C14, - 0xE2C2: 0x7BE6, - 0xE2C3: 0x7BE5, - 0xE2C4: 0x7C60, - 0xE2C5: 0x7C00, - 0xE2C6: 0x7C07, - 0xE2C7: 0x7C13, - 0xE2C8: 0x7BF3, - 0xE2C9: 0x7BF7, - 0xE2CA: 0x7C17, - 0xE2CB: 0x7C0D, - 0xE2CC: 0x7BF6, - 0xE2CD: 0x7C23, - 0xE2CE: 0x7C27, - 0xE2CF: 0x7C2A, - 0xE2D0: 0x7C1F, - 0xE2D1: 0x7C37, - 0xE2D2: 0x7C2B, - 0xE2D3: 0x7C3D, - 0xE2D4: 0x7C4C, - 0xE2D5: 0x7C43, - 0xE2D6: 0x7C54, - 0xE2D7: 0x7C4F, - 0xE2D8: 0x7C40, - 0xE2D9: 0x7C50, - 0xE2DA: 0x7C58, - 0xE2DB: 0x7C5F, - 0xE2DC: 0x7C64, - 0xE2DD: 0x7C56, - 0xE2DE: 0x7C65, - 0xE2DF: 0x7C6C, - 0xE2E0: 0x7C75, - 0xE2E1: 0x7C83, - 0xE2E2: 0x7C90, - 0xE2E3: 0x7CA4, - 0xE2E4: 0x7CAD, - 0xE2E5: 0x7CA2, - 0xE2E6: 0x7CAB, - 0xE2E7: 0x7CA1, - 0xE2E8: 0x7CA8, - 0xE2E9: 0x7CB3, - 0xE2EA: 0x7CB2, - 0xE2EB: 0x7CB1, - 0xE2EC: 0x7CAE, - 0xE2ED: 0x7CB9, - 0xE2EE: 0x7CBD, - 0xE2EF: 0x7CC0, - 0xE2F0: 0x7CC5, - 0xE2F1: 0x7CC2, - 0xE2F2: 0x7CD8, - 0xE2F3: 0x7CD2, - 0xE2F4: 0x7CDC, - 0xE2F5: 0x7CE2, - 0xE2F6: 0x9B3B, - 0xE2F7: 0x7CEF, - 0xE2F8: 0x7CF2, - 0xE2F9: 0x7CF4, - 0xE2FA: 0x7CF6, - 0xE2FB: 0x7CFA, - 0xE2FC: 0x7D06, - 0xE340: 0x7D02, - 0xE341: 0x7D1C, - 0xE342: 0x7D15, - 0xE343: 0x7D0A, - 0xE344: 0x7D45, - 0xE345: 0x7D4B, - 0xE346: 0x7D2E, - 0xE347: 0x7D32, - 0xE348: 0x7D3F, - 0xE349: 0x7D35, - 0xE34A: 0x7D46, - 0xE34B: 0x7D73, - 0xE34C: 0x7D56, - 0xE34D: 0x7D4E, - 0xE34E: 0x7D72, - 0xE34F: 0x7D68, - 0xE350: 0x7D6E, - 0xE351: 0x7D4F, - 0xE352: 0x7D63, - 0xE353: 0x7D93, - 0xE354: 0x7D89, - 0xE355: 0x7D5B, - 0xE356: 0x7D8F, - 0xE357: 0x7D7D, - 0xE358: 0x7D9B, - 0xE359: 0x7DBA, - 0xE35A: 0x7DAE, - 0xE35B: 0x7DA3, - 0xE35C: 0x7DB5, - 0xE35D: 0x7DC7, - 0xE35E: 0x7DBD, - 0xE35F: 0x7DAB, - 0xE360: 0x7E3D, - 0xE361: 0x7DA2, - 0xE362: 0x7DAF, - 0xE363: 0x7DDC, - 0xE364: 0x7DB8, - 0xE365: 0x7D9F, - 0xE366: 0x7DB0, - 0xE367: 0x7DD8, - 0xE368: 0x7DDD, - 0xE369: 0x7DE4, - 0xE36A: 0x7DDE, - 0xE36B: 0x7DFB, - 0xE36C: 0x7DF2, - 0xE36D: 0x7DE1, - 0xE36E: 0x7E05, - 0xE36F: 0x7E0A, - 0xE370: 0x7E23, - 0xE371: 0x7E21, - 0xE372: 0x7E12, - 0xE373: 0x7E31, - 0xE374: 0x7E1F, - 0xE375: 0x7E09, - 0xE376: 0x7E0B, - 0xE377: 0x7E22, - 0xE378: 0x7E46, - 0xE379: 0x7E66, - 0xE37A: 0x7E3B, - 0xE37B: 0x7E35, - 0xE37C: 0x7E39, - 0xE37D: 0x7E43, - 0xE37E: 0x7E37, - 0xE380: 0x7E32, - 0xE381: 0x7E3A, - 0xE382: 0x7E67, - 0xE383: 0x7E5D, - 0xE384: 0x7E56, - 0xE385: 0x7E5E, - 0xE386: 0x7E59, - 0xE387: 0x7E5A, - 0xE388: 0x7E79, - 0xE389: 0x7E6A, - 0xE38A: 0x7E69, - 0xE38B: 0x7E7C, - 0xE38C: 0x7E7B, - 0xE38D: 0x7E83, - 0xE38E: 0x7DD5, - 0xE38F: 0x7E7D, - 0xE390: 0x8FAE, - 0xE391: 0x7E7F, - 0xE392: 0x7E88, - 0xE393: 0x7E89, - 0xE394: 0x7E8C, - 0xE395: 0x7E92, - 0xE396: 0x7E90, - 0xE397: 0x7E93, - 0xE398: 0x7E94, - 0xE399: 0x7E96, - 0xE39A: 0x7E8E, - 0xE39B: 0x7E9B, - 0xE39C: 0x7E9C, - 0xE39D: 0x7F38, - 0xE39E: 0x7F3A, - 0xE39F: 0x7F45, - 0xE3A0: 0x7F4C, - 0xE3A1: 0x7F4D, - 0xE3A2: 0x7F4E, - 0xE3A3: 0x7F50, - 0xE3A4: 0x7F51, - 0xE3A5: 0x7F55, - 0xE3A6: 0x7F54, - 0xE3A7: 0x7F58, - 0xE3A8: 0x7F5F, - 0xE3A9: 0x7F60, - 0xE3AA: 0x7F68, - 0xE3AB: 0x7F69, - 0xE3AC: 0x7F67, - 0xE3AD: 0x7F78, - 0xE3AE: 0x7F82, - 0xE3AF: 0x7F86, - 0xE3B0: 0x7F83, - 0xE3B1: 0x7F88, - 0xE3B2: 0x7F87, - 0xE3B3: 0x7F8C, - 0xE3B4: 0x7F94, - 0xE3B5: 0x7F9E, - 0xE3B6: 0x7F9D, - 0xE3B7: 0x7F9A, - 0xE3B8: 0x7FA3, - 0xE3B9: 0x7FAF, - 0xE3BA: 0x7FB2, - 0xE3BB: 0x7FB9, - 0xE3BC: 0x7FAE, - 0xE3BD: 0x7FB6, - 0xE3BE: 0x7FB8, - 0xE3BF: 0x8B71, - 0xE3C0: 0x7FC5, - 0xE3C1: 0x7FC6, - 0xE3C2: 0x7FCA, - 0xE3C3: 0x7FD5, - 0xE3C4: 0x7FD4, - 0xE3C5: 0x7FE1, - 0xE3C6: 0x7FE6, - 0xE3C7: 0x7FE9, - 0xE3C8: 0x7FF3, - 0xE3C9: 0x7FF9, - 0xE3CA: 0x98DC, - 0xE3CB: 0x8006, - 0xE3CC: 0x8004, - 0xE3CD: 0x800B, - 0xE3CE: 0x8012, - 0xE3CF: 0x8018, - 0xE3D0: 0x8019, - 0xE3D1: 0x801C, - 0xE3D2: 0x8021, - 0xE3D3: 0x8028, - 0xE3D4: 0x803F, - 0xE3D5: 0x803B, - 0xE3D6: 0x804A, - 0xE3D7: 0x8046, - 0xE3D8: 0x8052, - 0xE3D9: 0x8058, - 0xE3DA: 0x805A, - 0xE3DB: 0x805F, - 0xE3DC: 0x8062, - 0xE3DD: 0x8068, - 0xE3DE: 0x8073, - 0xE3DF: 0x8072, - 0xE3E0: 0x8070, - 0xE3E1: 0x8076, - 0xE3E2: 0x8079, - 0xE3E3: 0x807D, - 0xE3E4: 0x807F, - 0xE3E5: 0x8084, - 0xE3E6: 0x8086, - 0xE3E7: 0x8085, - 0xE3E8: 0x809B, - 0xE3E9: 0x8093, - 0xE3EA: 0x809A, - 0xE3EB: 0x80AD, - 0xE3EC: 0x5190, - 0xE3ED: 0x80AC, - 0xE3EE: 0x80DB, - 0xE3EF: 0x80E5, - 0xE3F0: 0x80D9, - 0xE3F1: 0x80DD, - 0xE3F2: 0x80C4, - 0xE3F3: 0x80DA, - 0xE3F4: 0x80D6, - 0xE3F5: 0x8109, - 0xE3F6: 0x80EF, - 0xE3F7: 0x80F1, - 0xE3F8: 0x811B, - 0xE3F9: 0x8129, - 0xE3FA: 0x8123, - 0xE3FB: 0x812F, - 0xE3FC: 0x814B, - 0xE440: 0x968B, - 0xE441: 0x8146, - 0xE442: 0x813E, - 0xE443: 0x8153, - 0xE444: 0x8151, - 0xE445: 0x80FC, - 0xE446: 0x8171, - 0xE447: 0x816E, - 0xE448: 0x8165, - 0xE449: 0x8166, - 0xE44A: 0x8174, - 0xE44B: 0x8183, - 0xE44C: 0x8188, - 0xE44D: 0x818A, - 0xE44E: 0x8180, - 0xE44F: 0x8182, - 0xE450: 0x81A0, - 0xE451: 0x8195, - 0xE452: 0x81A4, - 0xE453: 0x81A3, - 0xE454: 0x815F, - 0xE455: 0x8193, - 0xE456: 0x81A9, - 0xE457: 0x81B0, - 0xE458: 0x81B5, - 0xE459: 0x81BE, - 0xE45A: 0x81B8, - 0xE45B: 0x81BD, - 0xE45C: 0x81C0, - 0xE45D: 0x81C2, - 0xE45E: 0x81BA, - 0xE45F: 0x81C9, - 0xE460: 0x81CD, - 0xE461: 0x81D1, - 0xE462: 0x81D9, - 0xE463: 0x81D8, - 0xE464: 0x81C8, - 0xE465: 0x81DA, - 0xE466: 0x81DF, - 0xE467: 0x81E0, - 0xE468: 0x81E7, - 0xE469: 0x81FA, - 0xE46A: 0x81FB, - 0xE46B: 0x81FE, - 0xE46C: 0x8201, - 0xE46D: 0x8202, - 0xE46E: 0x8205, - 0xE46F: 0x8207, - 0xE470: 0x820A, - 0xE471: 0x820D, - 0xE472: 0x8210, - 0xE473: 0x8216, - 0xE474: 0x8229, - 0xE475: 0x822B, - 0xE476: 0x8238, - 0xE477: 0x8233, - 0xE478: 0x8240, - 0xE479: 0x8259, - 0xE47A: 0x8258, - 0xE47B: 0x825D, - 0xE47C: 0x825A, - 0xE47D: 0x825F, - 0xE47E: 0x8264, - 0xE480: 0x8262, - 0xE481: 0x8268, - 0xE482: 0x826A, - 0xE483: 0x826B, - 0xE484: 0x822E, - 0xE485: 0x8271, - 0xE486: 0x8277, - 0xE487: 0x8278, - 0xE488: 0x827E, - 0xE489: 0x828D, - 0xE48A: 0x8292, - 0xE48B: 0x82AB, - 0xE48C: 0x829F, - 0xE48D: 0x82BB, - 0xE48E: 0x82AC, - 0xE48F: 0x82E1, - 0xE490: 0x82E3, - 0xE491: 0x82DF, - 0xE492: 0x82D2, - 0xE493: 0x82F4, - 0xE494: 0x82F3, - 0xE495: 0x82FA, - 0xE496: 0x8393, - 0xE497: 0x8303, - 0xE498: 0x82FB, - 0xE499: 0x82F9, - 0xE49A: 0x82DE, - 0xE49B: 0x8306, - 0xE49C: 0x82DC, - 0xE49D: 0x8309, - 0xE49E: 0x82D9, - 0xE49F: 0x8335, - 0xE4A0: 0x8334, - 0xE4A1: 0x8316, - 0xE4A2: 0x8332, - 0xE4A3: 0x8331, - 0xE4A4: 0x8340, - 0xE4A5: 0x8339, - 0xE4A6: 0x8350, - 0xE4A7: 0x8345, - 0xE4A8: 0x832F, - 0xE4A9: 0x832B, - 0xE4AA: 0x8317, - 0xE4AB: 0x8318, - 0xE4AC: 0x8385, - 0xE4AD: 0x839A, - 0xE4AE: 0x83AA, - 0xE4AF: 0x839F, - 0xE4B0: 0x83A2, - 0xE4B1: 0x8396, - 0xE4B2: 0x8323, - 0xE4B3: 0x838E, - 0xE4B4: 0x8387, - 0xE4B5: 0x838A, - 0xE4B6: 0x837C, - 0xE4B7: 0x83B5, - 0xE4B8: 0x8373, - 0xE4B9: 0x8375, - 0xE4BA: 0x83A0, - 0xE4BB: 0x8389, - 0xE4BC: 0x83A8, - 0xE4BD: 0x83F4, - 0xE4BE: 0x8413, - 0xE4BF: 0x83EB, - 0xE4C0: 0x83CE, - 0xE4C1: 0x83FD, - 0xE4C2: 0x8403, - 0xE4C3: 0x83D8, - 0xE4C4: 0x840B, - 0xE4C5: 0x83C1, - 0xE4C6: 0x83F7, - 0xE4C7: 0x8407, - 0xE4C8: 0x83E0, - 0xE4C9: 0x83F2, - 0xE4CA: 0x840D, - 0xE4CB: 0x8422, - 0xE4CC: 0x8420, - 0xE4CD: 0x83BD, - 0xE4CE: 0x8438, - 0xE4CF: 0x8506, - 0xE4D0: 0x83FB, - 0xE4D1: 0x846D, - 0xE4D2: 0x842A, - 0xE4D3: 0x843C, - 0xE4D4: 0x855A, - 0xE4D5: 0x8484, - 0xE4D6: 0x8477, - 0xE4D7: 0x846B, - 0xE4D8: 0x84AD, - 0xE4D9: 0x846E, - 0xE4DA: 0x8482, - 0xE4DB: 0x8469, - 0xE4DC: 0x8446, - 0xE4DD: 0x842C, - 0xE4DE: 0x846F, - 0xE4DF: 0x8479, - 0xE4E0: 0x8435, - 0xE4E1: 0x84CA, - 0xE4E2: 0x8462, - 0xE4E3: 0x84B9, - 0xE4E4: 0x84BF, - 0xE4E5: 0x849F, - 0xE4E6: 0x84D9, - 0xE4E7: 0x84CD, - 0xE4E8: 0x84BB, - 0xE4E9: 0x84DA, - 0xE4EA: 0x84D0, - 0xE4EB: 0x84C1, - 0xE4EC: 0x84C6, - 0xE4ED: 0x84D6, - 0xE4EE: 0x84A1, - 0xE4EF: 0x8521, - 0xE4F0: 0x84FF, - 0xE4F1: 0x84F4, - 0xE4F2: 0x8517, - 0xE4F3: 0x8518, - 0xE4F4: 0x852C, - 0xE4F5: 0x851F, - 0xE4F6: 0x8515, - 0xE4F7: 0x8514, - 0xE4F8: 0x84FC, - 0xE4F9: 0x8540, - 0xE4FA: 0x8563, - 0xE4FB: 0x8558, - 0xE4FC: 0x8548, - 0xE540: 0x8541, - 0xE541: 0x8602, - 0xE542: 0x854B, - 0xE543: 0x8555, - 0xE544: 0x8580, - 0xE545: 0x85A4, - 0xE546: 0x8588, - 0xE547: 0x8591, - 0xE548: 0x858A, - 0xE549: 0x85A8, - 0xE54A: 0x856D, - 0xE54B: 0x8594, - 0xE54C: 0x859B, - 0xE54D: 0x85EA, - 0xE54E: 0x8587, - 0xE54F: 0x859C, - 0xE550: 0x8577, - 0xE551: 0x857E, - 0xE552: 0x8590, - 0xE553: 0x85C9, - 0xE554: 0x85BA, - 0xE555: 0x85CF, - 0xE556: 0x85B9, - 0xE557: 0x85D0, - 0xE558: 0x85D5, - 0xE559: 0x85DD, - 0xE55A: 0x85E5, - 0xE55B: 0x85DC, - 0xE55C: 0x85F9, - 0xE55D: 0x860A, - 0xE55E: 0x8613, - 0xE55F: 0x860B, - 0xE560: 0x85FE, - 0xE561: 0x85FA, - 0xE562: 0x8606, - 0xE563: 0x8622, - 0xE564: 0x861A, - 0xE565: 0x8630, - 0xE566: 0x863F, - 0xE567: 0x864D, - 0xE568: 0x4E55, - 0xE569: 0x8654, - 0xE56A: 0x865F, - 0xE56B: 0x8667, - 0xE56C: 0x8671, - 0xE56D: 0x8693, - 0xE56E: 0x86A3, - 0xE56F: 0x86A9, - 0xE570: 0x86AA, - 0xE571: 0x868B, - 0xE572: 0x868C, - 0xE573: 0x86B6, - 0xE574: 0x86AF, - 0xE575: 0x86C4, - 0xE576: 0x86C6, - 0xE577: 0x86B0, - 0xE578: 0x86C9, - 0xE579: 0x8823, - 0xE57A: 0x86AB, - 0xE57B: 0x86D4, - 0xE57C: 0x86DE, - 0xE57D: 0x86E9, - 0xE57E: 0x86EC, - 0xE580: 0x86DF, - 0xE581: 0x86DB, - 0xE582: 0x86EF, - 0xE583: 0x8712, - 0xE584: 0x8706, - 0xE585: 0x8708, - 0xE586: 0x8700, - 0xE587: 0x8703, - 0xE588: 0x86FB, - 0xE589: 0x8711, - 0xE58A: 0x8709, - 0xE58B: 0x870D, - 0xE58C: 0x86F9, - 0xE58D: 0x870A, - 0xE58E: 0x8734, - 0xE58F: 0x873F, - 0xE590: 0x8737, - 0xE591: 0x873B, - 0xE592: 0x8725, - 0xE593: 0x8729, - 0xE594: 0x871A, - 0xE595: 0x8760, - 0xE596: 0x875F, - 0xE597: 0x8778, - 0xE598: 0x874C, - 0xE599: 0x874E, - 0xE59A: 0x8774, - 0xE59B: 0x8757, - 0xE59C: 0x8768, - 0xE59D: 0x876E, - 0xE59E: 0x8759, - 0xE59F: 0x8753, - 0xE5A0: 0x8763, - 0xE5A1: 0x876A, - 0xE5A2: 0x8805, - 0xE5A3: 0x87A2, - 0xE5A4: 0x879F, - 0xE5A5: 0x8782, - 0xE5A6: 0x87AF, - 0xE5A7: 0x87CB, - 0xE5A8: 0x87BD, - 0xE5A9: 0x87C0, - 0xE5AA: 0x87D0, - 0xE5AB: 0x96D6, - 0xE5AC: 0x87AB, - 0xE5AD: 0x87C4, - 0xE5AE: 0x87B3, - 0xE5AF: 0x87C7, - 0xE5B0: 0x87C6, - 0xE5B1: 0x87BB, - 0xE5B2: 0x87EF, - 0xE5B3: 0x87F2, - 0xE5B4: 0x87E0, - 0xE5B5: 0x880F, - 0xE5B6: 0x880D, - 0xE5B7: 0x87FE, - 0xE5B8: 0x87F6, - 0xE5B9: 0x87F7, - 0xE5BA: 0x880E, - 0xE5BB: 0x87D2, - 0xE5BC: 0x8811, - 0xE5BD: 0x8816, - 0xE5BE: 0x8815, - 0xE5BF: 0x8822, - 0xE5C0: 0x8821, - 0xE5C1: 0x8831, - 0xE5C2: 0x8836, - 0xE5C3: 0x8839, - 0xE5C4: 0x8827, - 0xE5C5: 0x883B, - 0xE5C6: 0x8844, - 0xE5C7: 0x8842, - 0xE5C8: 0x8852, - 0xE5C9: 0x8859, - 0xE5CA: 0x885E, - 0xE5CB: 0x8862, - 0xE5CC: 0x886B, - 0xE5CD: 0x8881, - 0xE5CE: 0x887E, - 0xE5CF: 0x889E, - 0xE5D0: 0x8875, - 0xE5D1: 0x887D, - 0xE5D2: 0x88B5, - 0xE5D3: 0x8872, - 0xE5D4: 0x8882, - 0xE5D5: 0x8897, - 0xE5D6: 0x8892, - 0xE5D7: 0x88AE, - 0xE5D8: 0x8899, - 0xE5D9: 0x88A2, - 0xE5DA: 0x888D, - 0xE5DB: 0x88A4, - 0xE5DC: 0x88B0, - 0xE5DD: 0x88BF, - 0xE5DE: 0x88B1, - 0xE5DF: 0x88C3, - 0xE5E0: 0x88C4, - 0xE5E1: 0x88D4, - 0xE5E2: 0x88D8, - 0xE5E3: 0x88D9, - 0xE5E4: 0x88DD, - 0xE5E5: 0x88F9, - 0xE5E6: 0x8902, - 0xE5E7: 0x88FC, - 0xE5E8: 0x88F4, - 0xE5E9: 0x88E8, - 0xE5EA: 0x88F2, - 0xE5EB: 0x8904, - 0xE5EC: 0x890C, - 0xE5ED: 0x890A, - 0xE5EE: 0x8913, - 0xE5EF: 0x8943, - 0xE5F0: 0x891E, - 0xE5F1: 0x8925, - 0xE5F2: 0x892A, - 0xE5F3: 0x892B, - 0xE5F4: 0x8941, - 0xE5F5: 0x8944, - 0xE5F6: 0x893B, - 0xE5F7: 0x8936, - 0xE5F8: 0x8938, - 0xE5F9: 0x894C, - 0xE5FA: 0x891D, - 0xE5FB: 0x8960, - 0xE5FC: 0x895E, - 0xE640: 0x8966, - 0xE641: 0x8964, - 0xE642: 0x896D, - 0xE643: 0x896A, - 0xE644: 0x896F, - 0xE645: 0x8974, - 0xE646: 0x8977, - 0xE647: 0x897E, - 0xE648: 0x8983, - 0xE649: 0x8988, - 0xE64A: 0x898A, - 0xE64B: 0x8993, - 0xE64C: 0x8998, - 0xE64D: 0x89A1, - 0xE64E: 0x89A9, - 0xE64F: 0x89A6, - 0xE650: 0x89AC, - 0xE651: 0x89AF, - 0xE652: 0x89B2, - 0xE653: 0x89BA, - 0xE654: 0x89BD, - 0xE655: 0x89BF, - 0xE656: 0x89C0, - 0xE657: 0x89DA, - 0xE658: 0x89DC, - 0xE659: 0x89DD, - 0xE65A: 0x89E7, - 0xE65B: 0x89F4, - 0xE65C: 0x89F8, - 0xE65D: 0x8A03, - 0xE65E: 0x8A16, - 0xE65F: 0x8A10, - 0xE660: 0x8A0C, - 0xE661: 0x8A1B, - 0xE662: 0x8A1D, - 0xE663: 0x8A25, - 0xE664: 0x8A36, - 0xE665: 0x8A41, - 0xE666: 0x8A5B, - 0xE667: 0x8A52, - 0xE668: 0x8A46, - 0xE669: 0x8A48, - 0xE66A: 0x8A7C, - 0xE66B: 0x8A6D, - 0xE66C: 0x8A6C, - 0xE66D: 0x8A62, - 0xE66E: 0x8A85, - 0xE66F: 0x8A82, - 0xE670: 0x8A84, - 0xE671: 0x8AA8, - 0xE672: 0x8AA1, - 0xE673: 0x8A91, - 0xE674: 0x8AA5, - 0xE675: 0x8AA6, - 0xE676: 0x8A9A, - 0xE677: 0x8AA3, - 0xE678: 0x8AC4, - 0xE679: 0x8ACD, - 0xE67A: 0x8AC2, - 0xE67B: 0x8ADA, - 0xE67C: 0x8AEB, - 0xE67D: 0x8AF3, - 0xE67E: 0x8AE7, - 0xE680: 0x8AE4, - 0xE681: 0x8AF1, - 0xE682: 0x8B14, - 0xE683: 0x8AE0, - 0xE684: 0x8AE2, - 0xE685: 0x8AF7, - 0xE686: 0x8ADE, - 0xE687: 0x8ADB, - 0xE688: 0x8B0C, - 0xE689: 0x8B07, - 0xE68A: 0x8B1A, - 0xE68B: 0x8AE1, - 0xE68C: 0x8B16, - 0xE68D: 0x8B10, - 0xE68E: 0x8B17, - 0xE68F: 0x8B20, - 0xE690: 0x8B33, - 0xE691: 0x97AB, - 0xE692: 0x8B26, - 0xE693: 0x8B2B, - 0xE694: 0x8B3E, - 0xE695: 0x8B28, - 0xE696: 0x8B41, - 0xE697: 0x8B4C, - 0xE698: 0x8B4F, - 0xE699: 0x8B4E, - 0xE69A: 0x8B49, - 0xE69B: 0x8B56, - 0xE69C: 0x8B5B, - 0xE69D: 0x8B5A, - 0xE69E: 0x8B6B, - 0xE69F: 0x8B5F, - 0xE6A0: 0x8B6C, - 0xE6A1: 0x8B6F, - 0xE6A2: 0x8B74, - 0xE6A3: 0x8B7D, - 0xE6A4: 0x8B80, - 0xE6A5: 0x8B8C, - 0xE6A6: 0x8B8E, - 0xE6A7: 0x8B92, - 0xE6A8: 0x8B93, - 0xE6A9: 0x8B96, - 0xE6AA: 0x8B99, - 0xE6AB: 0x8B9A, - 0xE6AC: 0x8C3A, - 0xE6AD: 0x8C41, - 0xE6AE: 0x8C3F, - 0xE6AF: 0x8C48, - 0xE6B0: 0x8C4C, - 0xE6B1: 0x8C4E, - 0xE6B2: 0x8C50, - 0xE6B3: 0x8C55, - 0xE6B4: 0x8C62, - 0xE6B5: 0x8C6C, - 0xE6B6: 0x8C78, - 0xE6B7: 0x8C7A, - 0xE6B8: 0x8C82, - 0xE6B9: 0x8C89, - 0xE6BA: 0x8C85, - 0xE6BB: 0x8C8A, - 0xE6BC: 0x8C8D, - 0xE6BD: 0x8C8E, - 0xE6BE: 0x8C94, - 0xE6BF: 0x8C7C, - 0xE6C0: 0x8C98, - 0xE6C1: 0x621D, - 0xE6C2: 0x8CAD, - 0xE6C3: 0x8CAA, - 0xE6C4: 0x8CBD, - 0xE6C5: 0x8CB2, - 0xE6C6: 0x8CB3, - 0xE6C7: 0x8CAE, - 0xE6C8: 0x8CB6, - 0xE6C9: 0x8CC8, - 0xE6CA: 0x8CC1, - 0xE6CB: 0x8CE4, - 0xE6CC: 0x8CE3, - 0xE6CD: 0x8CDA, - 0xE6CE: 0x8CFD, - 0xE6CF: 0x8CFA, - 0xE6D0: 0x8CFB, - 0xE6D1: 0x8D04, - 0xE6D2: 0x8D05, - 0xE6D3: 0x8D0A, - 0xE6D4: 0x8D07, - 0xE6D5: 0x8D0F, - 0xE6D6: 0x8D0D, - 0xE6D7: 0x8D10, - 0xE6D8: 0x9F4E, - 0xE6D9: 0x8D13, - 0xE6DA: 0x8CCD, - 0xE6DB: 0x8D14, - 0xE6DC: 0x8D16, - 0xE6DD: 0x8D67, - 0xE6DE: 0x8D6D, - 0xE6DF: 0x8D71, - 0xE6E0: 0x8D73, - 0xE6E1: 0x8D81, - 0xE6E2: 0x8D99, - 0xE6E3: 0x8DC2, - 0xE6E4: 0x8DBE, - 0xE6E5: 0x8DBA, - 0xE6E6: 0x8DCF, - 0xE6E7: 0x8DDA, - 0xE6E8: 0x8DD6, - 0xE6E9: 0x8DCC, - 0xE6EA: 0x8DDB, - 0xE6EB: 0x8DCB, - 0xE6EC: 0x8DEA, - 0xE6ED: 0x8DEB, - 0xE6EE: 0x8DDF, - 0xE6EF: 0x8DE3, - 0xE6F0: 0x8DFC, - 0xE6F1: 0x8E08, - 0xE6F2: 0x8E09, - 0xE6F3: 0x8DFF, - 0xE6F4: 0x8E1D, - 0xE6F5: 0x8E1E, - 0xE6F6: 0x8E10, - 0xE6F7: 0x8E1F, - 0xE6F8: 0x8E42, - 0xE6F9: 0x8E35, - 0xE6FA: 0x8E30, - 0xE6FB: 0x8E34, - 0xE6FC: 0x8E4A, - 0xE740: 0x8E47, - 0xE741: 0x8E49, - 0xE742: 0x8E4C, - 0xE743: 0x8E50, - 0xE744: 0x8E48, - 0xE745: 0x8E59, - 0xE746: 0x8E64, - 0xE747: 0x8E60, - 0xE748: 0x8E2A, - 0xE749: 0x8E63, - 0xE74A: 0x8E55, - 0xE74B: 0x8E76, - 0xE74C: 0x8E72, - 0xE74D: 0x8E7C, - 0xE74E: 0x8E81, - 0xE74F: 0x8E87, - 0xE750: 0x8E85, - 0xE751: 0x8E84, - 0xE752: 0x8E8B, - 0xE753: 0x8E8A, - 0xE754: 0x8E93, - 0xE755: 0x8E91, - 0xE756: 0x8E94, - 0xE757: 0x8E99, - 0xE758: 0x8EAA, - 0xE759: 0x8EA1, - 0xE75A: 0x8EAC, - 0xE75B: 0x8EB0, - 0xE75C: 0x8EC6, - 0xE75D: 0x8EB1, - 0xE75E: 0x8EBE, - 0xE75F: 0x8EC5, - 0xE760: 0x8EC8, - 0xE761: 0x8ECB, - 0xE762: 0x8EDB, - 0xE763: 0x8EE3, - 0xE764: 0x8EFC, - 0xE765: 0x8EFB, - 0xE766: 0x8EEB, - 0xE767: 0x8EFE, - 0xE768: 0x8F0A, - 0xE769: 0x8F05, - 0xE76A: 0x8F15, - 0xE76B: 0x8F12, - 0xE76C: 0x8F19, - 0xE76D: 0x8F13, - 0xE76E: 0x8F1C, - 0xE76F: 0x8F1F, - 0xE770: 0x8F1B, - 0xE771: 0x8F0C, - 0xE772: 0x8F26, - 0xE773: 0x8F33, - 0xE774: 0x8F3B, - 0xE775: 0x8F39, - 0xE776: 0x8F45, - 0xE777: 0x8F42, - 0xE778: 0x8F3E, - 0xE779: 0x8F4C, - 0xE77A: 0x8F49, - 0xE77B: 0x8F46, - 0xE77C: 0x8F4E, - 0xE77D: 0x8F57, - 0xE77E: 0x8F5C, - 0xE780: 0x8F62, - 0xE781: 0x8F63, - 0xE782: 0x8F64, - 0xE783: 0x8F9C, - 0xE784: 0x8F9F, - 0xE785: 0x8FA3, - 0xE786: 0x8FAD, - 0xE787: 0x8FAF, - 0xE788: 0x8FB7, - 0xE789: 0x8FDA, - 0xE78A: 0x8FE5, - 0xE78B: 0x8FE2, - 0xE78C: 0x8FEA, - 0xE78D: 0x8FEF, - 0xE78E: 0x9087, - 0xE78F: 0x8FF4, - 0xE790: 0x9005, - 0xE791: 0x8FF9, - 0xE792: 0x8FFA, - 0xE793: 0x9011, - 0xE794: 0x9015, - 0xE795: 0x9021, - 0xE796: 0x900D, - 0xE797: 0x901E, - 0xE798: 0x9016, - 0xE799: 0x900B, - 0xE79A: 0x9027, - 0xE79B: 0x9036, - 0xE79C: 0x9035, - 0xE79D: 0x9039, - 0xE79E: 0x8FF8, - 0xE79F: 0x904F, - 0xE7A0: 0x9050, - 0xE7A1: 0x9051, - 0xE7A2: 0x9052, - 0xE7A3: 0x900E, - 0xE7A4: 0x9049, - 0xE7A5: 0x903E, - 0xE7A6: 0x9056, - 0xE7A7: 0x9058, - 0xE7A8: 0x905E, - 0xE7A9: 0x9068, - 0xE7AA: 0x906F, - 0xE7AB: 0x9076, - 0xE7AC: 0x96A8, - 0xE7AD: 0x9072, - 0xE7AE: 0x9082, - 0xE7AF: 0x907D, - 0xE7B0: 0x9081, - 0xE7B1: 0x9080, - 0xE7B2: 0x908A, - 0xE7B3: 0x9089, - 0xE7B4: 0x908F, - 0xE7B5: 0x90A8, - 0xE7B6: 0x90AF, - 0xE7B7: 0x90B1, - 0xE7B8: 0x90B5, - 0xE7B9: 0x90E2, - 0xE7BA: 0x90E4, - 0xE7BB: 0x6248, - 0xE7BC: 0x90DB, - 0xE7BD: 0x9102, - 0xE7BE: 0x9112, - 0xE7BF: 0x9119, - 0xE7C0: 0x9132, - 0xE7C1: 0x9130, - 0xE7C2: 0x914A, - 0xE7C3: 0x9156, - 0xE7C4: 0x9158, - 0xE7C5: 0x9163, - 0xE7C6: 0x9165, - 0xE7C7: 0x9169, - 0xE7C8: 0x9173, - 0xE7C9: 0x9172, - 0xE7CA: 0x918B, - 0xE7CB: 0x9189, - 0xE7CC: 0x9182, - 0xE7CD: 0x91A2, - 0xE7CE: 0x91AB, - 0xE7CF: 0x91AF, - 0xE7D0: 0x91AA, - 0xE7D1: 0x91B5, - 0xE7D2: 0x91B4, - 0xE7D3: 0x91BA, - 0xE7D4: 0x91C0, - 0xE7D5: 0x91C1, - 0xE7D6: 0x91C9, - 0xE7D7: 0x91CB, - 0xE7D8: 0x91D0, - 0xE7D9: 0x91D6, - 0xE7DA: 0x91DF, - 0xE7DB: 0x91E1, - 0xE7DC: 0x91DB, - 0xE7DD: 0x91FC, - 0xE7DE: 0x91F5, - 0xE7DF: 0x91F6, - 0xE7E0: 0x921E, - 0xE7E1: 0x91FF, - 0xE7E2: 0x9214, - 0xE7E3: 0x922C, - 0xE7E4: 0x9215, - 0xE7E5: 0x9211, - 0xE7E6: 0x925E, - 0xE7E7: 0x9257, - 0xE7E8: 0x9245, - 0xE7E9: 0x9249, - 0xE7EA: 0x9264, - 0xE7EB: 0x9248, - 0xE7EC: 0x9295, - 0xE7ED: 0x923F, - 0xE7EE: 0x924B, - 0xE7EF: 0x9250, - 0xE7F0: 0x929C, - 0xE7F1: 0x9296, - 0xE7F2: 0x9293, - 0xE7F3: 0x929B, - 0xE7F4: 0x925A, - 0xE7F5: 0x92CF, - 0xE7F6: 0x92B9, - 0xE7F7: 0x92B7, - 0xE7F8: 0x92E9, - 0xE7F9: 0x930F, - 0xE7FA: 0x92FA, - 0xE7FB: 0x9344, - 0xE7FC: 0x932E, - 0xE840: 0x9319, - 0xE841: 0x9322, - 0xE842: 0x931A, - 0xE843: 0x9323, - 0xE844: 0x933A, - 0xE845: 0x9335, - 0xE846: 0x933B, - 0xE847: 0x935C, - 0xE848: 0x9360, - 0xE849: 0x937C, - 0xE84A: 0x936E, - 0xE84B: 0x9356, - 0xE84C: 0x93B0, - 0xE84D: 0x93AC, - 0xE84E: 0x93AD, - 0xE84F: 0x9394, - 0xE850: 0x93B9, - 0xE851: 0x93D6, - 0xE852: 0x93D7, - 0xE853: 0x93E8, - 0xE854: 0x93E5, - 0xE855: 0x93D8, - 0xE856: 0x93C3, - 0xE857: 0x93DD, - 0xE858: 0x93D0, - 0xE859: 0x93C8, - 0xE85A: 0x93E4, - 0xE85B: 0x941A, - 0xE85C: 0x9414, - 0xE85D: 0x9413, - 0xE85E: 0x9403, - 0xE85F: 0x9407, - 0xE860: 0x9410, - 0xE861: 0x9436, - 0xE862: 0x942B, - 0xE863: 0x9435, - 0xE864: 0x9421, - 0xE865: 0x943A, - 0xE866: 0x9441, - 0xE867: 0x9452, - 0xE868: 0x9444, - 0xE869: 0x945B, - 0xE86A: 0x9460, - 0xE86B: 0x9462, - 0xE86C: 0x945E, - 0xE86D: 0x946A, - 0xE86E: 0x9229, - 0xE86F: 0x9470, - 0xE870: 0x9475, - 0xE871: 0x9477, - 0xE872: 0x947D, - 0xE873: 0x945A, - 0xE874: 0x947C, - 0xE875: 0x947E, - 0xE876: 0x9481, - 0xE877: 0x947F, - 0xE878: 0x9582, - 0xE879: 0x9587, - 0xE87A: 0x958A, - 0xE87B: 0x9594, - 0xE87C: 0x9596, - 0xE87D: 0x9598, - 0xE87E: 0x9599, - 0xE880: 0x95A0, - 0xE881: 0x95A8, - 0xE882: 0x95A7, - 0xE883: 0x95AD, - 0xE884: 0x95BC, - 0xE885: 0x95BB, - 0xE886: 0x95B9, - 0xE887: 0x95BE, - 0xE888: 0x95CA, - 0xE889: 0x6FF6, - 0xE88A: 0x95C3, - 0xE88B: 0x95CD, - 0xE88C: 0x95CC, - 0xE88D: 0x95D5, - 0xE88E: 0x95D4, - 0xE88F: 0x95D6, - 0xE890: 0x95DC, - 0xE891: 0x95E1, - 0xE892: 0x95E5, - 0xE893: 0x95E2, - 0xE894: 0x9621, - 0xE895: 0x9628, - 0xE896: 0x962E, - 0xE897: 0x962F, - 0xE898: 0x9642, - 0xE899: 0x964C, - 0xE89A: 0x964F, - 0xE89B: 0x964B, - 0xE89C: 0x9677, - 0xE89D: 0x965C, - 0xE89E: 0x965E, - 0xE89F: 0x965D, - 0xE8A0: 0x965F, - 0xE8A1: 0x9666, - 0xE8A2: 0x9672, - 0xE8A3: 0x966C, - 0xE8A4: 0x968D, - 0xE8A5: 0x9698, - 0xE8A6: 0x9695, - 0xE8A7: 0x9697, - 0xE8A8: 0x96AA, - 0xE8A9: 0x96A7, - 0xE8AA: 0x96B1, - 0xE8AB: 0x96B2, - 0xE8AC: 0x96B0, - 0xE8AD: 0x96B4, - 0xE8AE: 0x96B6, - 0xE8AF: 0x96B8, - 0xE8B0: 0x96B9, - 0xE8B1: 0x96CE, - 0xE8B2: 0x96CB, - 0xE8B3: 0x96C9, - 0xE8B4: 0x96CD, - 0xE8B5: 0x894D, - 0xE8B6: 0x96DC, - 0xE8B7: 0x970D, - 0xE8B8: 0x96D5, - 0xE8B9: 0x96F9, - 0xE8BA: 0x9704, - 0xE8BB: 0x9706, - 0xE8BC: 0x9708, - 0xE8BD: 0x9713, - 0xE8BE: 0x970E, - 0xE8BF: 0x9711, - 0xE8C0: 0x970F, - 0xE8C1: 0x9716, - 0xE8C2: 0x9719, - 0xE8C3: 0x9724, - 0xE8C4: 0x972A, - 0xE8C5: 0x9730, - 0xE8C6: 0x9739, - 0xE8C7: 0x973D, - 0xE8C8: 0x973E, - 0xE8C9: 0x9744, - 0xE8CA: 0x9746, - 0xE8CB: 0x9748, - 0xE8CC: 0x9742, - 0xE8CD: 0x9749, - 0xE8CE: 0x975C, - 0xE8CF: 0x9760, - 0xE8D0: 0x9764, - 0xE8D1: 0x9766, - 0xE8D2: 0x9768, - 0xE8D3: 0x52D2, - 0xE8D4: 0x976B, - 0xE8D5: 0x9771, - 0xE8D6: 0x9779, - 0xE8D7: 0x9785, - 0xE8D8: 0x977C, - 0xE8D9: 0x9781, - 0xE8DA: 0x977A, - 0xE8DB: 0x9786, - 0xE8DC: 0x978B, - 0xE8DD: 0x978F, - 0xE8DE: 0x9790, - 0xE8DF: 0x979C, - 0xE8E0: 0x97A8, - 0xE8E1: 0x97A6, - 0xE8E2: 0x97A3, - 0xE8E3: 0x97B3, - 0xE8E4: 0x97B4, - 0xE8E5: 0x97C3, - 0xE8E6: 0x97C6, - 0xE8E7: 0x97C8, - 0xE8E8: 0x97CB, - 0xE8E9: 0x97DC, - 0xE8EA: 0x97ED, - 0xE8EB: 0x9F4F, - 0xE8EC: 0x97F2, - 0xE8ED: 0x7ADF, - 0xE8EE: 0x97F6, - 0xE8EF: 0x97F5, - 0xE8F0: 0x980F, - 0xE8F1: 0x980C, - 0xE8F2: 0x9838, - 0xE8F3: 0x9824, - 0xE8F4: 0x9821, - 0xE8F5: 0x9837, - 0xE8F6: 0x983D, - 0xE8F7: 0x9846, - 0xE8F8: 0x984F, - 0xE8F9: 0x984B, - 0xE8FA: 0x986B, - 0xE8FB: 0x986F, - 0xE8FC: 0x9870, - 0xE940: 0x9871, - 0xE941: 0x9874, - 0xE942: 0x9873, - 0xE943: 0x98AA, - 0xE944: 0x98AF, - 0xE945: 0x98B1, - 0xE946: 0x98B6, - 0xE947: 0x98C4, - 0xE948: 0x98C3, - 0xE949: 0x98C6, - 0xE94A: 0x98E9, - 0xE94B: 0x98EB, - 0xE94C: 0x9903, - 0xE94D: 0x9909, - 0xE94E: 0x9912, - 0xE94F: 0x9914, - 0xE950: 0x9918, - 0xE951: 0x9921, - 0xE952: 0x991D, - 0xE953: 0x991E, - 0xE954: 0x9924, - 0xE955: 0x9920, - 0xE956: 0x992C, - 0xE957: 0x992E, - 0xE958: 0x993D, - 0xE959: 0x993E, - 0xE95A: 0x9942, - 0xE95B: 0x9949, - 0xE95C: 0x9945, - 0xE95D: 0x9950, - 0xE95E: 0x994B, - 0xE95F: 0x9951, - 0xE960: 0x9952, - 0xE961: 0x994C, - 0xE962: 0x9955, - 0xE963: 0x9997, - 0xE964: 0x9998, - 0xE965: 0x99A5, - 0xE966: 0x99AD, - 0xE967: 0x99AE, - 0xE968: 0x99BC, - 0xE969: 0x99DF, - 0xE96A: 0x99DB, - 0xE96B: 0x99DD, - 0xE96C: 0x99D8, - 0xE96D: 0x99D1, - 0xE96E: 0x99ED, - 0xE96F: 0x99EE, - 0xE970: 0x99F1, - 0xE971: 0x99F2, - 0xE972: 0x99FB, - 0xE973: 0x99F8, - 0xE974: 0x9A01, - 0xE975: 0x9A0F, - 0xE976: 0x9A05, - 0xE977: 0x99E2, - 0xE978: 0x9A19, - 0xE979: 0x9A2B, - 0xE97A: 0x9A37, - 0xE97B: 0x9A45, - 0xE97C: 0x9A42, - 0xE97D: 0x9A40, - 0xE97E: 0x9A43, - 0xE980: 0x9A3E, - 0xE981: 0x9A55, - 0xE982: 0x9A4D, - 0xE983: 0x9A5B, - 0xE984: 0x9A57, - 0xE985: 0x9A5F, - 0xE986: 0x9A62, - 0xE987: 0x9A65, - 0xE988: 0x9A64, - 0xE989: 0x9A69, - 0xE98A: 0x9A6B, - 0xE98B: 0x9A6A, - 0xE98C: 0x9AAD, - 0xE98D: 0x9AB0, - 0xE98E: 0x9ABC, - 0xE98F: 0x9AC0, - 0xE990: 0x9ACF, - 0xE991: 0x9AD1, - 0xE992: 0x9AD3, - 0xE993: 0x9AD4, - 0xE994: 0x9ADE, - 0xE995: 0x9ADF, - 0xE996: 0x9AE2, - 0xE997: 0x9AE3, - 0xE998: 0x9AE6, - 0xE999: 0x9AEF, - 0xE99A: 0x9AEB, - 0xE99B: 0x9AEE, - 0xE99C: 0x9AF4, - 0xE99D: 0x9AF1, - 0xE99E: 0x9AF7, - 0xE99F: 0x9AFB, - 0xE9A0: 0x9B06, - 0xE9A1: 0x9B18, - 0xE9A2: 0x9B1A, - 0xE9A3: 0x9B1F, - 0xE9A4: 0x9B22, - 0xE9A5: 0x9B23, - 0xE9A6: 0x9B25, - 0xE9A7: 0x9B27, - 0xE9A8: 0x9B28, - 0xE9A9: 0x9B29, - 0xE9AA: 0x9B2A, - 0xE9AB: 0x9B2E, - 0xE9AC: 0x9B2F, - 0xE9AD: 0x9B32, - 0xE9AE: 0x9B44, - 0xE9AF: 0x9B43, - 0xE9B0: 0x9B4F, - 0xE9B1: 0x9B4D, - 0xE9B2: 0x9B4E, - 0xE9B3: 0x9B51, - 0xE9B4: 0x9B58, - 0xE9B5: 0x9B74, - 0xE9B6: 0x9B93, - 0xE9B7: 0x9B83, - 0xE9B8: 0x9B91, - 0xE9B9: 0x9B96, - 0xE9BA: 0x9B97, - 0xE9BB: 0x9B9F, - 0xE9BC: 0x9BA0, - 0xE9BD: 0x9BA8, - 0xE9BE: 0x9BB4, - 0xE9BF: 0x9BC0, - 0xE9C0: 0x9BCA, - 0xE9C1: 0x9BB9, - 0xE9C2: 0x9BC6, - 0xE9C3: 0x9BCF, - 0xE9C4: 0x9BD1, - 0xE9C5: 0x9BD2, - 0xE9C6: 0x9BE3, - 0xE9C7: 0x9BE2, - 0xE9C8: 0x9BE4, - 0xE9C9: 0x9BD4, - 0xE9CA: 0x9BE1, - 0xE9CB: 0x9C3A, - 0xE9CC: 0x9BF2, - 0xE9CD: 0x9BF1, - 0xE9CE: 0x9BF0, - 0xE9CF: 0x9C15, - 0xE9D0: 0x9C14, - 0xE9D1: 0x9C09, - 0xE9D2: 0x9C13, - 0xE9D3: 0x9C0C, - 0xE9D4: 0x9C06, - 0xE9D5: 0x9C08, - 0xE9D6: 0x9C12, - 0xE9D7: 0x9C0A, - 0xE9D8: 0x9C04, - 0xE9D9: 0x9C2E, - 0xE9DA: 0x9C1B, - 0xE9DB: 0x9C25, - 0xE9DC: 0x9C24, - 0xE9DD: 0x9C21, - 0xE9DE: 0x9C30, - 0xE9DF: 0x9C47, - 0xE9E0: 0x9C32, - 0xE9E1: 0x9C46, - 0xE9E2: 0x9C3E, - 0xE9E3: 0x9C5A, - 0xE9E4: 0x9C60, - 0xE9E5: 0x9C67, - 0xE9E6: 0x9C76, - 0xE9E7: 0x9C78, - 0xE9E8: 0x9CE7, - 0xE9E9: 0x9CEC, - 0xE9EA: 0x9CF0, - 0xE9EB: 0x9D09, - 0xE9EC: 0x9D08, - 0xE9ED: 0x9CEB, - 0xE9EE: 0x9D03, - 0xE9EF: 0x9D06, - 0xE9F0: 0x9D2A, - 0xE9F1: 0x9D26, - 0xE9F2: 0x9DAF, - 0xE9F3: 0x9D23, - 0xE9F4: 0x9D1F, - 0xE9F5: 0x9D44, - 0xE9F6: 0x9D15, - 0xE9F7: 0x9D12, - 0xE9F8: 0x9D41, - 0xE9F9: 0x9D3F, - 0xE9FA: 0x9D3E, - 0xE9FB: 0x9D46, - 0xE9FC: 0x9D48, - 0xEA40: 0x9D5D, - 0xEA41: 0x9D5E, - 0xEA42: 0x9D64, - 0xEA43: 0x9D51, - 0xEA44: 0x9D50, - 0xEA45: 0x9D59, - 0xEA46: 0x9D72, - 0xEA47: 0x9D89, - 0xEA48: 0x9D87, - 0xEA49: 0x9DAB, - 0xEA4A: 0x9D6F, - 0xEA4B: 0x9D7A, - 0xEA4C: 0x9D9A, - 0xEA4D: 0x9DA4, - 0xEA4E: 0x9DA9, - 0xEA4F: 0x9DB2, - 0xEA50: 0x9DC4, - 0xEA51: 0x9DC1, - 0xEA52: 0x9DBB, - 0xEA53: 0x9DB8, - 0xEA54: 0x9DBA, - 0xEA55: 0x9DC6, - 0xEA56: 0x9DCF, - 0xEA57: 0x9DC2, - 0xEA58: 0x9DD9, - 0xEA59: 0x9DD3, - 0xEA5A: 0x9DF8, - 0xEA5B: 0x9DE6, - 0xEA5C: 0x9DED, - 0xEA5D: 0x9DEF, - 0xEA5E: 0x9DFD, - 0xEA5F: 0x9E1A, - 0xEA60: 0x9E1B, - 0xEA61: 0x9E1E, - 0xEA62: 0x9E75, - 0xEA63: 0x9E79, - 0xEA64: 0x9E7D, - 0xEA65: 0x9E81, - 0xEA66: 0x9E88, - 0xEA67: 0x9E8B, - 0xEA68: 0x9E8C, - 0xEA69: 0x9E92, - 0xEA6A: 0x9E95, - 0xEA6B: 0x9E91, - 0xEA6C: 0x9E9D, - 0xEA6D: 0x9EA5, - 0xEA6E: 0x9EA9, - 0xEA6F: 0x9EB8, - 0xEA70: 0x9EAA, - 0xEA71: 0x9EAD, - 0xEA72: 0x9761, - 0xEA73: 0x9ECC, - 0xEA74: 0x9ECE, - 0xEA75: 0x9ECF, - 0xEA76: 0x9ED0, - 0xEA77: 0x9ED4, - 0xEA78: 0x9EDC, - 0xEA79: 0x9EDE, - 0xEA7A: 0x9EDD, - 0xEA7B: 0x9EE0, - 0xEA7C: 0x9EE5, - 0xEA7D: 0x9EE8, - 0xEA7E: 0x9EEF, - 0xEA80: 0x9EF4, - 0xEA81: 0x9EF6, - 0xEA82: 0x9EF7, - 0xEA83: 0x9EF9, - 0xEA84: 0x9EFB, - 0xEA85: 0x9EFC, - 0xEA86: 0x9EFD, - 0xEA87: 0x9F07, - 0xEA88: 0x9F08, - 0xEA89: 0x76B7, - 0xEA8A: 0x9F15, - 0xEA8B: 0x9F21, - 0xEA8C: 0x9F2C, - 0xEA8D: 0x9F3E, - 0xEA8E: 0x9F4A, - 0xEA8F: 0x9F52, - 0xEA90: 0x9F54, - 0xEA91: 0x9F63, - 0xEA92: 0x9F5F, - 0xEA93: 0x9F60, - 0xEA94: 0x9F61, - 0xEA95: 0x9F66, - 0xEA96: 0x9F67, - 0xEA97: 0x9F6C, - 0xEA98: 0x9F6A, - 0xEA99: 0x9F77, - 0xEA9A: 0x9F72, - 0xEA9B: 0x9F76, - 0xEA9C: 0x9F95, - 0xEA9D: 0x9F9C, - 0xEA9E: 0x9FA0, - 0xEA9F: 0x582F, - 0xEAA0: 0x69C7, - 0xEAA1: 0x9059, - 0xEAA2: 0x7464, - 0xEAA3: 0x51DC, - 0xEAA4: 0x7199, -}; - - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var GenericGF_1 = __webpack_require__(1); -var GenericGFPoly_1 = __webpack_require__(2); -function runEuclideanAlgorithm(field, a, b, R) { - var _a; - // Assume a's degree is >= b's - if (a.degree() < b.degree()) { - _a = [b, a], a = _a[0], b = _a[1]; - } - var rLast = a; - var r = b; - var tLast = field.zero; - var t = field.one; - // Run Euclidean algorithm until r's degree is less than R/2 - while (r.degree() >= R / 2) { - var rLastLast = rLast; - var tLastLast = tLast; - rLast = r; - tLast = t; - // Divide rLastLast by rLast, with quotient in q and remainder in r - if (rLast.isZero()) { - // Euclidean algorithm already terminated? - return null; - } - r = rLastLast; - var q = field.zero; - var denominatorLeadingTerm = rLast.getCoefficient(rLast.degree()); - var dltInverse = field.inverse(denominatorLeadingTerm); - while (r.degree() >= rLast.degree() && !r.isZero()) { - var degreeDiff = r.degree() - rLast.degree(); - var scale = field.multiply(r.getCoefficient(r.degree()), dltInverse); - q = q.addOrSubtract(field.buildMonomial(degreeDiff, scale)); - r = r.addOrSubtract(rLast.multiplyByMonomial(degreeDiff, scale)); - } - t = q.multiplyPoly(tLast).addOrSubtract(tLastLast); - if (r.degree() >= rLast.degree()) { - return null; - } - } - var sigmaTildeAtZero = t.getCoefficient(0); - if (sigmaTildeAtZero === 0) { - return null; - } - var inverse = field.inverse(sigmaTildeAtZero); - return [t.multiply(inverse), r.multiply(inverse)]; -} -function findErrorLocations(field, errorLocator) { - // This is a direct application of Chien's search - var numErrors = errorLocator.degree(); - if (numErrors === 1) { - return [errorLocator.getCoefficient(1)]; - } - var result = new Array(numErrors); - var errorCount = 0; - for (var i = 1; i < field.size && errorCount < numErrors; i++) { - if (errorLocator.evaluateAt(i) === 0) { - result[errorCount] = field.inverse(i); - errorCount++; - } - } - if (errorCount !== numErrors) { - return null; - } - return result; -} -function findErrorMagnitudes(field, errorEvaluator, errorLocations) { - // This is directly applying Forney's Formula - var s = errorLocations.length; - var result = new Array(s); - for (var i = 0; i < s; i++) { - var xiInverse = field.inverse(errorLocations[i]); - var denominator = 1; - for (var j = 0; j < s; j++) { - if (i !== j) { - denominator = field.multiply(denominator, GenericGF_1.addOrSubtractGF(1, field.multiply(errorLocations[j], xiInverse))); - } - } - result[i] = field.multiply(errorEvaluator.evaluateAt(xiInverse), field.inverse(denominator)); - if (field.generatorBase !== 0) { - result[i] = field.multiply(result[i], xiInverse); - } - } - return result; -} -function decode(bytes, twoS) { - var outputBytes = new Uint8ClampedArray(bytes.length); - outputBytes.set(bytes); - var field = new GenericGF_1.default(0x011D, 256, 0); // x^8 + x^4 + x^3 + x^2 + 1 - var poly = new GenericGFPoly_1.default(field, outputBytes); - var syndromeCoefficients = new Uint8ClampedArray(twoS); - var error = false; - for (var s = 0; s < twoS; s++) { - var evaluation = poly.evaluateAt(field.exp(s + field.generatorBase)); - syndromeCoefficients[syndromeCoefficients.length - 1 - s] = evaluation; - if (evaluation !== 0) { - error = true; - } - } - if (!error) { - return outputBytes; - } - var syndrome = new GenericGFPoly_1.default(field, syndromeCoefficients); - var sigmaOmega = runEuclideanAlgorithm(field, field.buildMonomial(twoS, 1), syndrome, twoS); - if (sigmaOmega === null) { - return null; - } - var errorLocations = findErrorLocations(field, sigmaOmega[0]); - if (errorLocations == null) { - return null; - } - var errorMagnitudes = findErrorMagnitudes(field, sigmaOmega[1], errorLocations); - for (var i = 0; i < errorLocations.length; i++) { - var position = outputBytes.length - 1 - field.log(errorLocations[i]); - if (position < 0) { - return null; - } - outputBytes[position] = GenericGF_1.addOrSubtractGF(outputBytes[position], errorMagnitudes[i]); - } - return outputBytes; -} -exports.decode = decode; - - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -exports.VERSIONS = [ - { - infoBits: null, - versionNumber: 1, - alignmentPatternCenters: [], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 7, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 19 }], - }, - { - ecCodewordsPerBlock: 10, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }], - }, - { - ecCodewordsPerBlock: 13, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 13 }], - }, - { - ecCodewordsPerBlock: 17, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 9 }], - }, - ], - }, - { - infoBits: null, - versionNumber: 2, - alignmentPatternCenters: [6, 18], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 10, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 34 }], - }, - { - ecCodewordsPerBlock: 16, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 28 }], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 22 }], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 16 }], - }, - ], - }, - { - infoBits: null, - versionNumber: 3, - alignmentPatternCenters: [6, 22], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 15, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 55 }], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 44 }], - }, - { - ecCodewordsPerBlock: 18, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 17 }], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 13 }], - }, - ], - }, - { - infoBits: null, - versionNumber: 4, - alignmentPatternCenters: [6, 26], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 20, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 80 }], - }, - { - ecCodewordsPerBlock: 18, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 32 }], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 24 }], - }, - { - ecCodewordsPerBlock: 16, - ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 9 }], - }, - ], - }, - { - infoBits: null, - versionNumber: 5, - alignmentPatternCenters: [6, 30], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 26, - ecBlocks: [{ numBlocks: 1, dataCodewordsPerBlock: 108 }], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 43 }], - }, - { - ecCodewordsPerBlock: 18, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 15 }, - { numBlocks: 2, dataCodewordsPerBlock: 16 }, - ], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 11 }, - { numBlocks: 2, dataCodewordsPerBlock: 12 }, - ], - }, - ], - }, - { - infoBits: null, - versionNumber: 6, - alignmentPatternCenters: [6, 34], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 18, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 68 }], - }, - { - ecCodewordsPerBlock: 16, - ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 27 }], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 19 }], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 15 }], - }, - ], - }, - { - infoBits: 0x07C94, - versionNumber: 7, - alignmentPatternCenters: [6, 22, 38], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 20, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 78 }], - }, - { - ecCodewordsPerBlock: 18, - ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 31 }], - }, - { - ecCodewordsPerBlock: 18, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 14 }, - { numBlocks: 4, dataCodewordsPerBlock: 15 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 13 }, - { numBlocks: 1, dataCodewordsPerBlock: 14 }, - ], - }, - ], - }, - { - infoBits: 0x085BC, - versionNumber: 8, - alignmentPatternCenters: [6, 24, 42], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 24, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 97 }], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 38 }, - { numBlocks: 2, dataCodewordsPerBlock: 39 }, - ], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 18 }, - { numBlocks: 2, dataCodewordsPerBlock: 19 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 14 }, - { numBlocks: 2, dataCodewordsPerBlock: 15 }, - ], - }, - ], - }, - { - infoBits: 0x09A99, - versionNumber: 9, - alignmentPatternCenters: [6, 26, 46], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [{ numBlocks: 2, dataCodewordsPerBlock: 116 }], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 36 }, - { numBlocks: 2, dataCodewordsPerBlock: 37 }, - ], - }, - { - ecCodewordsPerBlock: 20, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 16 }, - { numBlocks: 4, dataCodewordsPerBlock: 17 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 12 }, - { numBlocks: 4, dataCodewordsPerBlock: 13 }, - ], - }, - ], - }, - { - infoBits: 0x0A4D3, - versionNumber: 10, - alignmentPatternCenters: [6, 28, 50], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 18, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 68 }, - { numBlocks: 2, dataCodewordsPerBlock: 69 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 43 }, - { numBlocks: 1, dataCodewordsPerBlock: 44 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 6, dataCodewordsPerBlock: 19 }, - { numBlocks: 2, dataCodewordsPerBlock: 20 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 6, dataCodewordsPerBlock: 15 }, - { numBlocks: 2, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x0BBF6, - versionNumber: 11, - alignmentPatternCenters: [6, 30, 54], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 20, - ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 81 }], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 1, dataCodewordsPerBlock: 50 }, - { numBlocks: 4, dataCodewordsPerBlock: 51 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 22 }, - { numBlocks: 4, dataCodewordsPerBlock: 23 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 12 }, - { numBlocks: 8, dataCodewordsPerBlock: 13 }, - ], - }, - ], - }, - { - infoBits: 0x0C762, - versionNumber: 12, - alignmentPatternCenters: [6, 32, 58], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 92 }, - { numBlocks: 2, dataCodewordsPerBlock: 93 }, - ], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 6, dataCodewordsPerBlock: 36 }, - { numBlocks: 2, dataCodewordsPerBlock: 37 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 20 }, - { numBlocks: 6, dataCodewordsPerBlock: 21 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 7, dataCodewordsPerBlock: 14 }, - { numBlocks: 4, dataCodewordsPerBlock: 15 }, - ], - }, - ], - }, - { - infoBits: 0x0D847, - versionNumber: 13, - alignmentPatternCenters: [6, 34, 62], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 26, - ecBlocks: [{ numBlocks: 4, dataCodewordsPerBlock: 107 }], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 8, dataCodewordsPerBlock: 37 }, - { numBlocks: 1, dataCodewordsPerBlock: 38 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 8, dataCodewordsPerBlock: 20 }, - { numBlocks: 4, dataCodewordsPerBlock: 21 }, - ], - }, - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 12, dataCodewordsPerBlock: 11 }, - { numBlocks: 4, dataCodewordsPerBlock: 12 }, - ], - }, - ], - }, - { - infoBits: 0x0E60D, - versionNumber: 14, - alignmentPatternCenters: [6, 26, 46, 66], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 115 }, - { numBlocks: 1, dataCodewordsPerBlock: 116 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 40 }, - { numBlocks: 5, dataCodewordsPerBlock: 41 }, - ], - }, - { - ecCodewordsPerBlock: 20, - ecBlocks: [ - { numBlocks: 11, dataCodewordsPerBlock: 16 }, - { numBlocks: 5, dataCodewordsPerBlock: 17 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 11, dataCodewordsPerBlock: 12 }, - { numBlocks: 5, dataCodewordsPerBlock: 13 }, - ], - }, - ], - }, - { - infoBits: 0x0F928, - versionNumber: 15, - alignmentPatternCenters: [6, 26, 48, 70], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 22, - ecBlocks: [ - { numBlocks: 5, dataCodewordsPerBlock: 87 }, - { numBlocks: 1, dataCodewordsPerBlock: 88 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 5, dataCodewordsPerBlock: 41 }, - { numBlocks: 5, dataCodewordsPerBlock: 42 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 5, dataCodewordsPerBlock: 24 }, - { numBlocks: 7, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 11, dataCodewordsPerBlock: 12 }, - { numBlocks: 7, dataCodewordsPerBlock: 13 }, - ], - }, - ], - }, - { - infoBits: 0x10B78, - versionNumber: 16, - alignmentPatternCenters: [6, 26, 50, 74], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 5, dataCodewordsPerBlock: 98 }, - { numBlocks: 1, dataCodewordsPerBlock: 99 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 7, dataCodewordsPerBlock: 45 }, - { numBlocks: 3, dataCodewordsPerBlock: 46 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [ - { numBlocks: 15, dataCodewordsPerBlock: 19 }, - { numBlocks: 2, dataCodewordsPerBlock: 20 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 15 }, - { numBlocks: 13, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x1145D, - versionNumber: 17, - alignmentPatternCenters: [6, 30, 54, 78], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 1, dataCodewordsPerBlock: 107 }, - { numBlocks: 5, dataCodewordsPerBlock: 108 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 10, dataCodewordsPerBlock: 46 }, - { numBlocks: 1, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 1, dataCodewordsPerBlock: 22 }, - { numBlocks: 15, dataCodewordsPerBlock: 23 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 14 }, - { numBlocks: 17, dataCodewordsPerBlock: 15 }, - ], - }, - ], - }, - { - infoBits: 0x12A17, - versionNumber: 18, - alignmentPatternCenters: [6, 30, 56, 82], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 5, dataCodewordsPerBlock: 120 }, - { numBlocks: 1, dataCodewordsPerBlock: 121 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 9, dataCodewordsPerBlock: 43 }, - { numBlocks: 4, dataCodewordsPerBlock: 44 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 17, dataCodewordsPerBlock: 22 }, - { numBlocks: 1, dataCodewordsPerBlock: 23 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 14 }, - { numBlocks: 19, dataCodewordsPerBlock: 15 }, - ], - }, - ], - }, - { - infoBits: 0x13532, - versionNumber: 19, - alignmentPatternCenters: [6, 30, 58, 86], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 113 }, - { numBlocks: 4, dataCodewordsPerBlock: 114 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 44 }, - { numBlocks: 11, dataCodewordsPerBlock: 45 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 17, dataCodewordsPerBlock: 21 }, - { numBlocks: 4, dataCodewordsPerBlock: 22 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 9, dataCodewordsPerBlock: 13 }, - { numBlocks: 16, dataCodewordsPerBlock: 14 }, - ], - }, - ], - }, - { - infoBits: 0x149A6, - versionNumber: 20, - alignmentPatternCenters: [6, 34, 62, 90], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 107 }, - { numBlocks: 5, dataCodewordsPerBlock: 108 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 41 }, - { numBlocks: 13, dataCodewordsPerBlock: 42 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 15, dataCodewordsPerBlock: 24 }, - { numBlocks: 5, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 15, dataCodewordsPerBlock: 15 }, - { numBlocks: 10, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x15683, - versionNumber: 21, - alignmentPatternCenters: [6, 28, 50, 72, 94], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 116 }, - { numBlocks: 4, dataCodewordsPerBlock: 117 }, - ], - }, - { - ecCodewordsPerBlock: 26, - ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 42 }], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 17, dataCodewordsPerBlock: 22 }, - { numBlocks: 6, dataCodewordsPerBlock: 23 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 19, dataCodewordsPerBlock: 16 }, - { numBlocks: 6, dataCodewordsPerBlock: 17 }, - ], - }, - ], - }, - { - infoBits: 0x168C9, - versionNumber: 22, - alignmentPatternCenters: [6, 26, 50, 74, 98], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 111 }, - { numBlocks: 7, dataCodewordsPerBlock: 112 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 46 }], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 7, dataCodewordsPerBlock: 24 }, - { numBlocks: 16, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 24, - ecBlocks: [{ numBlocks: 34, dataCodewordsPerBlock: 13 }], - }, - ], - }, - { - infoBits: 0x177EC, - versionNumber: 23, - alignmentPatternCenters: [6, 30, 54, 74, 102], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 121 }, - { numBlocks: 5, dataCodewordsPerBlock: 122 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 47 }, - { numBlocks: 14, dataCodewordsPerBlock: 48 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 11, dataCodewordsPerBlock: 24 }, - { numBlocks: 14, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 16, dataCodewordsPerBlock: 15 }, - { numBlocks: 14, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x18EC4, - versionNumber: 24, - alignmentPatternCenters: [6, 28, 54, 80, 106], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 6, dataCodewordsPerBlock: 117 }, - { numBlocks: 4, dataCodewordsPerBlock: 118 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 6, dataCodewordsPerBlock: 45 }, - { numBlocks: 14, dataCodewordsPerBlock: 46 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 11, dataCodewordsPerBlock: 24 }, - { numBlocks: 16, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 30, dataCodewordsPerBlock: 16 }, - { numBlocks: 2, dataCodewordsPerBlock: 17 }, - ], - }, - ], - }, - { - infoBits: 0x191E1, - versionNumber: 25, - alignmentPatternCenters: [6, 32, 58, 84, 110], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 26, - ecBlocks: [ - { numBlocks: 8, dataCodewordsPerBlock: 106 }, - { numBlocks: 4, dataCodewordsPerBlock: 107 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 8, dataCodewordsPerBlock: 47 }, - { numBlocks: 13, dataCodewordsPerBlock: 48 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 7, dataCodewordsPerBlock: 24 }, - { numBlocks: 22, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 22, dataCodewordsPerBlock: 15 }, - { numBlocks: 13, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x1AFAB, - versionNumber: 26, - alignmentPatternCenters: [6, 30, 58, 86, 114], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 10, dataCodewordsPerBlock: 114 }, - { numBlocks: 2, dataCodewordsPerBlock: 115 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 19, dataCodewordsPerBlock: 46 }, - { numBlocks: 4, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 28, dataCodewordsPerBlock: 22 }, - { numBlocks: 6, dataCodewordsPerBlock: 23 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 33, dataCodewordsPerBlock: 16 }, - { numBlocks: 4, dataCodewordsPerBlock: 17 }, - ], - }, - ], - }, - { - infoBits: 0x1B08E, - versionNumber: 27, - alignmentPatternCenters: [6, 34, 62, 90, 118], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 8, dataCodewordsPerBlock: 122 }, - { numBlocks: 4, dataCodewordsPerBlock: 123 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 22, dataCodewordsPerBlock: 45 }, - { numBlocks: 3, dataCodewordsPerBlock: 46 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 8, dataCodewordsPerBlock: 23 }, - { numBlocks: 26, dataCodewordsPerBlock: 24 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 12, dataCodewordsPerBlock: 15 }, - { numBlocks: 28, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x1CC1A, - versionNumber: 28, - alignmentPatternCenters: [6, 26, 50, 74, 98, 122], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 117 }, - { numBlocks: 10, dataCodewordsPerBlock: 118 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 3, dataCodewordsPerBlock: 45 }, - { numBlocks: 23, dataCodewordsPerBlock: 46 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 24 }, - { numBlocks: 31, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 11, dataCodewordsPerBlock: 15 }, - { numBlocks: 31, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x1D33F, - versionNumber: 29, - alignmentPatternCenters: [6, 30, 54, 78, 102, 126], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 7, dataCodewordsPerBlock: 116 }, - { numBlocks: 7, dataCodewordsPerBlock: 117 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 21, dataCodewordsPerBlock: 45 }, - { numBlocks: 7, dataCodewordsPerBlock: 46 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 1, dataCodewordsPerBlock: 23 }, - { numBlocks: 37, dataCodewordsPerBlock: 24 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 19, dataCodewordsPerBlock: 15 }, - { numBlocks: 26, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x1ED75, - versionNumber: 30, - alignmentPatternCenters: [6, 26, 52, 78, 104, 130], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 5, dataCodewordsPerBlock: 115 }, - { numBlocks: 10, dataCodewordsPerBlock: 116 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 19, dataCodewordsPerBlock: 47 }, - { numBlocks: 10, dataCodewordsPerBlock: 48 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 15, dataCodewordsPerBlock: 24 }, - { numBlocks: 25, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 23, dataCodewordsPerBlock: 15 }, - { numBlocks: 25, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x1F250, - versionNumber: 31, - alignmentPatternCenters: [6, 30, 56, 82, 108, 134], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 13, dataCodewordsPerBlock: 115 }, - { numBlocks: 3, dataCodewordsPerBlock: 116 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 46 }, - { numBlocks: 29, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 42, dataCodewordsPerBlock: 24 }, - { numBlocks: 1, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 23, dataCodewordsPerBlock: 15 }, - { numBlocks: 28, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x209D5, - versionNumber: 32, - alignmentPatternCenters: [6, 34, 60, 86, 112, 138], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [{ numBlocks: 17, dataCodewordsPerBlock: 115 }], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 10, dataCodewordsPerBlock: 46 }, - { numBlocks: 23, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 10, dataCodewordsPerBlock: 24 }, - { numBlocks: 35, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 19, dataCodewordsPerBlock: 15 }, - { numBlocks: 35, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x216F0, - versionNumber: 33, - alignmentPatternCenters: [6, 30, 58, 86, 114, 142], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 17, dataCodewordsPerBlock: 115 }, - { numBlocks: 1, dataCodewordsPerBlock: 116 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 14, dataCodewordsPerBlock: 46 }, - { numBlocks: 21, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 29, dataCodewordsPerBlock: 24 }, - { numBlocks: 19, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 11, dataCodewordsPerBlock: 15 }, - { numBlocks: 46, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x228BA, - versionNumber: 34, - alignmentPatternCenters: [6, 34, 62, 90, 118, 146], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 13, dataCodewordsPerBlock: 115 }, - { numBlocks: 6, dataCodewordsPerBlock: 116 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 14, dataCodewordsPerBlock: 46 }, - { numBlocks: 23, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 44, dataCodewordsPerBlock: 24 }, - { numBlocks: 7, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 59, dataCodewordsPerBlock: 16 }, - { numBlocks: 1, dataCodewordsPerBlock: 17 }, - ], - }, - ], - }, - { - infoBits: 0x2379F, - versionNumber: 35, - alignmentPatternCenters: [6, 30, 54, 78, 102, 126, 150], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 12, dataCodewordsPerBlock: 121 }, - { numBlocks: 7, dataCodewordsPerBlock: 122 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 12, dataCodewordsPerBlock: 47 }, - { numBlocks: 26, dataCodewordsPerBlock: 48 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 39, dataCodewordsPerBlock: 24 }, - { numBlocks: 14, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 22, dataCodewordsPerBlock: 15 }, - { numBlocks: 41, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x24B0B, - versionNumber: 36, - alignmentPatternCenters: [6, 24, 50, 76, 102, 128, 154], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 6, dataCodewordsPerBlock: 121 }, - { numBlocks: 14, dataCodewordsPerBlock: 122 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 6, dataCodewordsPerBlock: 47 }, - { numBlocks: 34, dataCodewordsPerBlock: 48 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 46, dataCodewordsPerBlock: 24 }, - { numBlocks: 10, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 2, dataCodewordsPerBlock: 15 }, - { numBlocks: 64, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x2542E, - versionNumber: 37, - alignmentPatternCenters: [6, 28, 54, 80, 106, 132, 158], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 17, dataCodewordsPerBlock: 122 }, - { numBlocks: 4, dataCodewordsPerBlock: 123 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 29, dataCodewordsPerBlock: 46 }, - { numBlocks: 14, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 49, dataCodewordsPerBlock: 24 }, - { numBlocks: 10, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 24, dataCodewordsPerBlock: 15 }, - { numBlocks: 46, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x26A64, - versionNumber: 38, - alignmentPatternCenters: [6, 32, 58, 84, 110, 136, 162], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 4, dataCodewordsPerBlock: 122 }, - { numBlocks: 18, dataCodewordsPerBlock: 123 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 13, dataCodewordsPerBlock: 46 }, - { numBlocks: 32, dataCodewordsPerBlock: 47 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 48, dataCodewordsPerBlock: 24 }, - { numBlocks: 14, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 42, dataCodewordsPerBlock: 15 }, - { numBlocks: 32, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x27541, - versionNumber: 39, - alignmentPatternCenters: [6, 26, 54, 82, 110, 138, 166], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 20, dataCodewordsPerBlock: 117 }, - { numBlocks: 4, dataCodewordsPerBlock: 118 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 40, dataCodewordsPerBlock: 47 }, - { numBlocks: 7, dataCodewordsPerBlock: 48 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 43, dataCodewordsPerBlock: 24 }, - { numBlocks: 22, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 10, dataCodewordsPerBlock: 15 }, - { numBlocks: 67, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, - { - infoBits: 0x28C69, - versionNumber: 40, - alignmentPatternCenters: [6, 30, 58, 86, 114, 142, 170], - errorCorrectionLevels: [ - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 19, dataCodewordsPerBlock: 118 }, - { numBlocks: 6, dataCodewordsPerBlock: 119 }, - ], - }, - { - ecCodewordsPerBlock: 28, - ecBlocks: [ - { numBlocks: 18, dataCodewordsPerBlock: 47 }, - { numBlocks: 31, dataCodewordsPerBlock: 48 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 34, dataCodewordsPerBlock: 24 }, - { numBlocks: 34, dataCodewordsPerBlock: 25 }, - ], - }, - { - ecCodewordsPerBlock: 30, - ecBlocks: [ - { numBlocks: 20, dataCodewordsPerBlock: 15 }, - { numBlocks: 61, dataCodewordsPerBlock: 16 }, - ], - }, - ], - }, -]; - - -/***/ }), -/* 11 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var BitMatrix_1 = __webpack_require__(0); -function squareToQuadrilateral(p1, p2, p3, p4) { - var dx3 = p1.x - p2.x + p3.x - p4.x; - var dy3 = p1.y - p2.y + p3.y - p4.y; - if (dx3 === 0 && dy3 === 0) { // Affine - return { - a11: p2.x - p1.x, - a12: p2.y - p1.y, - a13: 0, - a21: p3.x - p2.x, - a22: p3.y - p2.y, - a23: 0, - a31: p1.x, - a32: p1.y, - a33: 1, - }; - } - else { - var dx1 = p2.x - p3.x; - var dx2 = p4.x - p3.x; - var dy1 = p2.y - p3.y; - var dy2 = p4.y - p3.y; - var denominator = dx1 * dy2 - dx2 * dy1; - var a13 = (dx3 * dy2 - dx2 * dy3) / denominator; - var a23 = (dx1 * dy3 - dx3 * dy1) / denominator; - return { - a11: p2.x - p1.x + a13 * p2.x, - a12: p2.y - p1.y + a13 * p2.y, - a13: a13, - a21: p4.x - p1.x + a23 * p4.x, - a22: p4.y - p1.y + a23 * p4.y, - a23: a23, - a31: p1.x, - a32: p1.y, - a33: 1, - }; - } -} -function quadrilateralToSquare(p1, p2, p3, p4) { - // Here, the adjoint serves as the inverse: - var sToQ = squareToQuadrilateral(p1, p2, p3, p4); - return { - a11: sToQ.a22 * sToQ.a33 - sToQ.a23 * sToQ.a32, - a12: sToQ.a13 * sToQ.a32 - sToQ.a12 * sToQ.a33, - a13: sToQ.a12 * sToQ.a23 - sToQ.a13 * sToQ.a22, - a21: sToQ.a23 * sToQ.a31 - sToQ.a21 * sToQ.a33, - a22: sToQ.a11 * sToQ.a33 - sToQ.a13 * sToQ.a31, - a23: sToQ.a13 * sToQ.a21 - sToQ.a11 * sToQ.a23, - a31: sToQ.a21 * sToQ.a32 - sToQ.a22 * sToQ.a31, - a32: sToQ.a12 * sToQ.a31 - sToQ.a11 * sToQ.a32, - a33: sToQ.a11 * sToQ.a22 - sToQ.a12 * sToQ.a21, - }; -} -function times(a, b) { - return { - a11: a.a11 * b.a11 + a.a21 * b.a12 + a.a31 * b.a13, - a12: a.a12 * b.a11 + a.a22 * b.a12 + a.a32 * b.a13, - a13: a.a13 * b.a11 + a.a23 * b.a12 + a.a33 * b.a13, - a21: a.a11 * b.a21 + a.a21 * b.a22 + a.a31 * b.a23, - a22: a.a12 * b.a21 + a.a22 * b.a22 + a.a32 * b.a23, - a23: a.a13 * b.a21 + a.a23 * b.a22 + a.a33 * b.a23, - a31: a.a11 * b.a31 + a.a21 * b.a32 + a.a31 * b.a33, - a32: a.a12 * b.a31 + a.a22 * b.a32 + a.a32 * b.a33, - a33: a.a13 * b.a31 + a.a23 * b.a32 + a.a33 * b.a33, - }; -} -function extract(image, location) { - var qToS = quadrilateralToSquare({ x: 3.5, y: 3.5 }, { x: location.dimension - 3.5, y: 3.5 }, { x: location.dimension - 6.5, y: location.dimension - 6.5 }, { x: 3.5, y: location.dimension - 3.5 }); - var sToQ = squareToQuadrilateral(location.topLeft, location.topRight, location.alignmentPattern, location.bottomLeft); - var transform = times(sToQ, qToS); - var matrix = BitMatrix_1.BitMatrix.createEmpty(location.dimension, location.dimension); - var mappingFunction = function (x, y) { - var denominator = transform.a13 * x + transform.a23 * y + transform.a33; - return { - x: (transform.a11 * x + transform.a21 * y + transform.a31) / denominator, - y: (transform.a12 * x + transform.a22 * y + transform.a32) / denominator, - }; - }; - for (var y = 0; y < location.dimension; y++) { - for (var x = 0; x < location.dimension; x++) { - var xValue = x + 0.5; - var yValue = y + 0.5; - var sourcePixel = mappingFunction(xValue, yValue); - matrix.set(x, y, image.get(Math.floor(sourcePixel.x), Math.floor(sourcePixel.y))); - } - } - return { - matrix: matrix, - mappingFunction: mappingFunction, - }; -} -exports.extract = extract; - - -/***/ }), -/* 12 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -Object.defineProperty(exports, "__esModule", { value: true }); -var MAX_FINDERPATTERNS_TO_SEARCH = 4; -var MIN_QUAD_RATIO = 0.5; -var MAX_QUAD_RATIO = 1.5; -var distance = function (a, b) { return Math.sqrt(Math.pow((b.x - a.x), 2) + Math.pow((b.y - a.y), 2)); }; -function sum(values) { - return values.reduce(function (a, b) { return a + b; }); -} -// Takes three finder patterns and organizes them into topLeft, topRight, etc -function reorderFinderPatterns(pattern1, pattern2, pattern3) { - var _a, _b, _c, _d; - // Find distances between pattern centers - var oneTwoDistance = distance(pattern1, pattern2); - var twoThreeDistance = distance(pattern2, pattern3); - var oneThreeDistance = distance(pattern1, pattern3); - var bottomLeft; - var topLeft; - var topRight; - // Assume one closest to other two is B; A and C will just be guesses at first - if (twoThreeDistance >= oneTwoDistance && twoThreeDistance >= oneThreeDistance) { - _a = [pattern2, pattern1, pattern3], bottomLeft = _a[0], topLeft = _a[1], topRight = _a[2]; - } - else if (oneThreeDistance >= twoThreeDistance && oneThreeDistance >= oneTwoDistance) { - _b = [pattern1, pattern2, pattern3], bottomLeft = _b[0], topLeft = _b[1], topRight = _b[2]; - } - else { - _c = [pattern1, pattern3, pattern2], bottomLeft = _c[0], topLeft = _c[1], topRight = _c[2]; - } - // Use cross product to figure out whether bottomLeft (A) and topRight (C) are correct or flipped in relation to topLeft (B) - // This asks whether BC x BA has a positive z component, which is the arrangement we want. If it's negative, then - // we've got it flipped around and should swap topRight and bottomLeft. - if (((topRight.x - topLeft.x) * (bottomLeft.y - topLeft.y)) - ((topRight.y - topLeft.y) * (bottomLeft.x - topLeft.x)) < 0) { - _d = [topRight, bottomLeft], bottomLeft = _d[0], topRight = _d[1]; - } - return { bottomLeft: bottomLeft, topLeft: topLeft, topRight: topRight }; -} -// Computes the dimension (number of modules on a side) of the QR Code based on the position of the finder patterns -function computeDimension(topLeft, topRight, bottomLeft, matrix) { - var moduleSize = (sum(countBlackWhiteRun(topLeft, bottomLeft, matrix, 5)) / 7 + // Divide by 7 since the ratio is 1:1:3:1:1 - sum(countBlackWhiteRun(topLeft, topRight, matrix, 5)) / 7 + - sum(countBlackWhiteRun(bottomLeft, topLeft, matrix, 5)) / 7 + - sum(countBlackWhiteRun(topRight, topLeft, matrix, 5)) / 7) / 4; - if (moduleSize < 1) { - throw new Error("Invalid module size"); - } - var topDimension = Math.round(distance(topLeft, topRight) / moduleSize); - var sideDimension = Math.round(distance(topLeft, bottomLeft) / moduleSize); - var dimension = Math.floor((topDimension + sideDimension) / 2) + 7; - switch (dimension % 4) { - case 0: - dimension++; - break; - case 2: - dimension--; - break; - } - return { dimension: dimension, moduleSize: moduleSize }; -} -// Takes an origin point and an end point and counts the sizes of the black white run from the origin towards the end point. -// Returns an array of elements, representing the pixel size of the black white run. -// Uses a variant of http://en.wikipedia.org/wiki/Bresenham's_line_algorithm -function countBlackWhiteRunTowardsPoint(origin, end, matrix, length) { - var switchPoints = [{ x: Math.floor(origin.x), y: Math.floor(origin.y) }]; - var steep = Math.abs(end.y - origin.y) > Math.abs(end.x - origin.x); - var fromX; - var fromY; - var toX; - var toY; - if (steep) { - fromX = Math.floor(origin.y); - fromY = Math.floor(origin.x); - toX = Math.floor(end.y); - toY = Math.floor(end.x); - } - else { - fromX = Math.floor(origin.x); - fromY = Math.floor(origin.y); - toX = Math.floor(end.x); - toY = Math.floor(end.y); - } - var dx = Math.abs(toX - fromX); - var dy = Math.abs(toY - fromY); - var error = Math.floor(-dx / 2); - var xStep = fromX < toX ? 1 : -1; - var yStep = fromY < toY ? 1 : -1; - var currentPixel = true; - // Loop up until x == toX, but not beyond - for (var x = fromX, y = fromY; x !== toX + xStep; x += xStep) { - // Does current pixel mean we have moved white to black or vice versa? - // Scanning black in state 0,2 and white in state 1, so if we find the wrong - // color, advance to next state or end if we are in state 2 already - var realX = steep ? y : x; - var realY = steep ? x : y; - if (matrix.get(realX, realY) !== currentPixel) { - currentPixel = !currentPixel; - switchPoints.push({ x: realX, y: realY }); - if (switchPoints.length === length + 1) { - break; - } - } - error += dy; - if (error > 0) { - if (y === toY) { - break; - } - y += yStep; - error -= dx; - } - } - var distances = []; - for (var i = 0; i < length; i++) { - if (switchPoints[i] && switchPoints[i + 1]) { - distances.push(distance(switchPoints[i], switchPoints[i + 1])); - } - else { - distances.push(0); - } - } - return distances; -} -// Takes an origin point and an end point and counts the sizes of the black white run in the origin point -// along the line that intersects with the end point. Returns an array of elements, representing the pixel sizes -// of the black white run. Takes a length which represents the number of switches from black to white to look for. -function countBlackWhiteRun(origin, end, matrix, length) { - var _a; - var rise = end.y - origin.y; - var run = end.x - origin.x; - var towardsEnd = countBlackWhiteRunTowardsPoint(origin, end, matrix, Math.ceil(length / 2)); - var awayFromEnd = countBlackWhiteRunTowardsPoint(origin, { x: origin.x - run, y: origin.y - rise }, matrix, Math.ceil(length / 2)); - var middleValue = towardsEnd.shift() + awayFromEnd.shift() - 1; // Substract one so we don't double count a pixel - return (_a = awayFromEnd.concat(middleValue)).concat.apply(_a, towardsEnd); -} -// Takes in a black white run and an array of expected ratios. Returns the average size of the run as well as the "error" - -// that is the amount the run diverges from the expected ratio -function scoreBlackWhiteRun(sequence, ratios) { - var averageSize = sum(sequence) / sum(ratios); - var error = 0; - ratios.forEach(function (ratio, i) { - error += Math.pow((sequence[i] - ratio * averageSize), 2); - }); - return { averageSize: averageSize, error: error }; -} -// Takes an X,Y point and an array of sizes and scores the point against those ratios. -// For example for a finder pattern takes the ratio list of 1:1:3:1:1 and checks horizontal, vertical and diagonal ratios -// against that. -function scorePattern(point, ratios, matrix) { - try { - var horizontalRun = countBlackWhiteRun(point, { x: -1, y: point.y }, matrix, ratios.length); - var verticalRun = countBlackWhiteRun(point, { x: point.x, y: -1 }, matrix, ratios.length); - var topLeftPoint = { - x: Math.max(0, point.x - point.y) - 1, - y: Math.max(0, point.y - point.x) - 1, - }; - var topLeftBottomRightRun = countBlackWhiteRun(point, topLeftPoint, matrix, ratios.length); - var bottomLeftPoint = { - x: Math.min(matrix.width, point.x + point.y) + 1, - y: Math.min(matrix.height, point.y + point.x) + 1, - }; - var bottomLeftTopRightRun = countBlackWhiteRun(point, bottomLeftPoint, matrix, ratios.length); - var horzError = scoreBlackWhiteRun(horizontalRun, ratios); - var vertError = scoreBlackWhiteRun(verticalRun, ratios); - var diagDownError = scoreBlackWhiteRun(topLeftBottomRightRun, ratios); - var diagUpError = scoreBlackWhiteRun(bottomLeftTopRightRun, ratios); - var ratioError = Math.sqrt(horzError.error * horzError.error + - vertError.error * vertError.error + - diagDownError.error * diagDownError.error + - diagUpError.error * diagUpError.error); - var avgSize = (horzError.averageSize + vertError.averageSize + diagDownError.averageSize + diagUpError.averageSize) / 4; - var sizeError = (Math.pow((horzError.averageSize - avgSize), 2) + - Math.pow((vertError.averageSize - avgSize), 2) + - Math.pow((diagDownError.averageSize - avgSize), 2) + - Math.pow((diagUpError.averageSize - avgSize), 2)) / avgSize; - return ratioError + sizeError; - } - catch (_a) { - return Infinity; - } -} -function recenterLocation(matrix, p) { - var leftX = Math.round(p.x); - while (matrix.get(leftX, Math.round(p.y))) { - leftX--; - } - var rightX = Math.round(p.x); - while (matrix.get(rightX, Math.round(p.y))) { - rightX++; - } - var x = (leftX + rightX) / 2; - var topY = Math.round(p.y); - while (matrix.get(Math.round(x), topY)) { - topY--; - } - var bottomY = Math.round(p.y); - while (matrix.get(Math.round(x), bottomY)) { - bottomY++; - } - var y = (topY + bottomY) / 2; - return { x: x, y: y }; -} -function locate(matrix) { - var finderPatternQuads = []; - var activeFinderPatternQuads = []; - var alignmentPatternQuads = []; - var activeAlignmentPatternQuads = []; - var _loop_1 = function (y) { - var length_1 = 0; - var lastBit = false; - var scans = [0, 0, 0, 0, 0]; - var _loop_2 = function (x) { - var v = matrix.get(x, y); - if (v === lastBit) { - length_1++; - } - else { - scans = [scans[1], scans[2], scans[3], scans[4], length_1]; - length_1 = 1; - lastBit = v; - // Do the last 5 color changes ~ match the expected ratio for a finder pattern? 1:1:3:1:1 of b:w:b:w:b - var averageFinderPatternBlocksize = sum(scans) / 7; - var validFinderPattern = Math.abs(scans[0] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize && - Math.abs(scans[1] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize && - Math.abs(scans[2] - 3 * averageFinderPatternBlocksize) < 3 * averageFinderPatternBlocksize && - Math.abs(scans[3] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize && - Math.abs(scans[4] - averageFinderPatternBlocksize) < averageFinderPatternBlocksize && - !v; // And make sure the current pixel is white since finder patterns are bordered in white - // Do the last 3 color changes ~ match the expected ratio for an alignment pattern? 1:1:1 of w:b:w - var averageAlignmentPatternBlocksize = sum(scans.slice(-3)) / 3; - var validAlignmentPattern = Math.abs(scans[2] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize && - Math.abs(scans[3] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize && - Math.abs(scans[4] - averageAlignmentPatternBlocksize) < averageAlignmentPatternBlocksize && - v; // Is the current pixel black since alignment patterns are bordered in black - if (validFinderPattern) { - // Compute the start and end x values of the large center black square - var endX_1 = x - scans[3] - scans[4]; - var startX_1 = endX_1 - scans[2]; - var line = { startX: startX_1, endX: endX_1, y: y }; - // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with - // that line as the starting point. - var matchingQuads = activeFinderPatternQuads.filter(function (q) { - return (startX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) || - (endX_1 >= q.bottom.startX && startX_1 <= q.bottom.endX) || - (startX_1 <= q.bottom.startX && endX_1 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO && - (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO)); - }); - if (matchingQuads.length > 0) { - matchingQuads[0].bottom = line; - } - else { - activeFinderPatternQuads.push({ top: line, bottom: line }); - } - } - if (validAlignmentPattern) { - // Compute the start and end x values of the center black square - var endX_2 = x - scans[4]; - var startX_2 = endX_2 - scans[3]; - var line = { startX: startX_2, y: y, endX: endX_2 }; - // Is there a quad directly above the current spot? If so, extend it with the new line. Otherwise, create a new quad with - // that line as the starting point. - var matchingQuads = activeAlignmentPatternQuads.filter(function (q) { - return (startX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) || - (endX_2 >= q.bottom.startX && startX_2 <= q.bottom.endX) || - (startX_2 <= q.bottom.startX && endX_2 >= q.bottom.endX && ((scans[2] / (q.bottom.endX - q.bottom.startX)) < MAX_QUAD_RATIO && - (scans[2] / (q.bottom.endX - q.bottom.startX)) > MIN_QUAD_RATIO)); - }); - if (matchingQuads.length > 0) { - matchingQuads[0].bottom = line; - } - else { - activeAlignmentPatternQuads.push({ top: line, bottom: line }); - } - } - } - }; - for (var x = -1; x <= matrix.width; x++) { - _loop_2(x); - } - finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y !== y && q.bottom.y - q.top.y >= 2; })); - activeFinderPatternQuads = activeFinderPatternQuads.filter(function (q) { return q.bottom.y === y; }); - alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y !== y; })); - activeAlignmentPatternQuads = activeAlignmentPatternQuads.filter(function (q) { return q.bottom.y === y; }); - }; - for (var y = 0; y <= matrix.height; y++) { - _loop_1(y); - } - finderPatternQuads.push.apply(finderPatternQuads, activeFinderPatternQuads.filter(function (q) { return q.bottom.y - q.top.y >= 2; })); - alignmentPatternQuads.push.apply(alignmentPatternQuads, activeAlignmentPatternQuads); - var finderPatternGroups = finderPatternQuads - .filter(function (q) { return q.bottom.y - q.top.y >= 2; }) // All quads must be at least 2px tall since the center square is larger than a block - .map(function (q) { - var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4; - var y = (q.top.y + q.bottom.y + 1) / 2; - if (!matrix.get(Math.round(x), Math.round(y))) { - return; - } - var lengths = [q.top.endX - q.top.startX, q.bottom.endX - q.bottom.startX, q.bottom.y - q.top.y + 1]; - var size = sum(lengths) / lengths.length; - var score = scorePattern({ x: Math.round(x), y: Math.round(y) }, [1, 1, 3, 1, 1], matrix); - return { score: score, x: x, y: y, size: size }; - }) - .filter(function (q) { return !!q; }) // Filter out any rejected quads from above - .sort(function (a, b) { return a.score - b.score; }) - // Now take the top finder pattern options and try to find 2 other options with a similar size. - .map(function (point, i, finderPatterns) { - if (i > MAX_FINDERPATTERNS_TO_SEARCH) { - return null; - } - var otherPoints = finderPatterns - .filter(function (p, ii) { return i !== ii; }) - .map(function (p) { return ({ x: p.x, y: p.y, score: p.score + (Math.pow((p.size - point.size), 2)) / point.size, size: p.size }); }) - .sort(function (a, b) { return a.score - b.score; }); - if (otherPoints.length < 2) { - return null; - } - var score = point.score + otherPoints[0].score + otherPoints[1].score; - return { points: [point].concat(otherPoints.slice(0, 2)), score: score }; - }) - .filter(function (q) { return !!q; }) // Filter out any rejected finder patterns from above - .sort(function (a, b) { return a.score - b.score; }); - if (finderPatternGroups.length === 0) { - return null; - } - var _a = reorderFinderPatterns(finderPatternGroups[0].points[0], finderPatternGroups[0].points[1], finderPatternGroups[0].points[2]), topRight = _a.topRight, topLeft = _a.topLeft, bottomLeft = _a.bottomLeft; - var alignment = findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft); - var result = []; - if (alignment) { - result.push({ - alignmentPattern: { x: alignment.alignmentPattern.x, y: alignment.alignmentPattern.y }, - bottomLeft: { x: bottomLeft.x, y: bottomLeft.y }, - dimension: alignment.dimension, - topLeft: { x: topLeft.x, y: topLeft.y }, - topRight: { x: topRight.x, y: topRight.y }, - }); - } - // We normally use the center of the quads as the location of the tracking points, which is optimal for most cases and will account - // for a skew in the image. However, In some cases, a slight skew might not be real and instead be caused by image compression - // errors and/or low resolution. For those cases, we'd be better off centering the point exactly in the middle of the black area. We - // compute and return the location data for the naively centered points as it is little additional work and allows for multiple - // attempts at decoding harder images. - var midTopRight = recenterLocation(matrix, topRight); - var midTopLeft = recenterLocation(matrix, topLeft); - var midBottomLeft = recenterLocation(matrix, bottomLeft); - var centeredAlignment = findAlignmentPattern(matrix, alignmentPatternQuads, midTopRight, midTopLeft, midBottomLeft); - if (centeredAlignment) { - result.push({ - alignmentPattern: { x: centeredAlignment.alignmentPattern.x, y: centeredAlignment.alignmentPattern.y }, - bottomLeft: { x: midBottomLeft.x, y: midBottomLeft.y }, - topLeft: { x: midTopLeft.x, y: midTopLeft.y }, - topRight: { x: midTopRight.x, y: midTopRight.y }, - dimension: centeredAlignment.dimension, - }); - } - if (result.length === 0) { - return null; - } - return result; -} -exports.locate = locate; -function findAlignmentPattern(matrix, alignmentPatternQuads, topRight, topLeft, bottomLeft) { - var _a; - // Now that we've found the three finder patterns we can determine the blockSize and the size of the QR code. - // We'll use these to help find the alignment pattern but also later when we do the extraction. - var dimension; - var moduleSize; - try { - (_a = computeDimension(topLeft, topRight, bottomLeft, matrix), dimension = _a.dimension, moduleSize = _a.moduleSize); - } - catch (e) { - return null; - } - // Now find the alignment pattern - var bottomRightFinderPattern = { - x: topRight.x - topLeft.x + bottomLeft.x, - y: topRight.y - topLeft.y + bottomLeft.y, - }; - var modulesBetweenFinderPatterns = ((distance(topLeft, bottomLeft) + distance(topLeft, topRight)) / 2 / moduleSize); - var correctionToTopLeft = 1 - (3 / modulesBetweenFinderPatterns); - var expectedAlignmentPattern = { - x: topLeft.x + correctionToTopLeft * (bottomRightFinderPattern.x - topLeft.x), - y: topLeft.y + correctionToTopLeft * (bottomRightFinderPattern.y - topLeft.y), - }; - var alignmentPatterns = alignmentPatternQuads - .map(function (q) { - var x = (q.top.startX + q.top.endX + q.bottom.startX + q.bottom.endX) / 4; - var y = (q.top.y + q.bottom.y + 1) / 2; - if (!matrix.get(Math.floor(x), Math.floor(y))) { - return; - } - var sizeScore = scorePattern({ x: Math.floor(x), y: Math.floor(y) }, [1, 1, 1], matrix); - var score = sizeScore + distance({ x: x, y: y }, expectedAlignmentPattern); - return { x: x, y: y, score: score }; - }) - .filter(function (v) { return !!v; }) - .sort(function (a, b) { return a.score - b.score; }); - // If there are less than 15 modules between finder patterns it's a version 1 QR code and as such has no alignmemnt pattern - // so we can only use our best guess. - var alignmentPattern = modulesBetweenFinderPatterns >= 15 && alignmentPatterns.length ? alignmentPatterns[0] : expectedAlignmentPattern; - return { alignmentPattern: alignmentPattern, dimension: dimension }; -} - - -/***/ }) -/******/ ])["default"]; -}); \ No newline at end of file diff --git a/client-vanilla/public/dep/pdf-lib.min.js b/client-vanilla/public/dep/pdf-lib.min.js deleted file mode 100644 index 9d050fb70..000000000 --- a/client-vanilla/public/dep/pdf-lib.min.js +++ /dev/null @@ -1,16 +0,0 @@ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports):"function"==typeof define&&define.amd?define(["exports"],e):e((t=t||self).PDFLib={})}(this,(function(t){"use strict"; -/*! ***************************************************************************** - Copyright (c) Microsoft Corporation. All rights reserved. - Licensed under the Apache License, Version 2.0 (the "License"); you may not use - this file except in compliance with the License. You may obtain a copy of the - License at http://www.apache.org/licenses/LICENSE-2.0 - - THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED - WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE, - MERCHANTABLITY OR NON-INFRINGEMENT. - - See the Apache Version 2.0 License for specific language governing permissions - and limitations under the License. - ***************************************************************************** */var e=function(t,n){return(e=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])})(t,n)};function n(t,n){function r(){this.constructor=t}e(t,n),t.prototype=null===n?Object.create(n):(r.prototype=n.prototype,new r)}var r=function(){return(r=Object.assign||function(t){for(var e,n=1,r=arguments.length;n0&&i[i.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!i||o[1]>i[0]&&o[1]>2],e+=s[(3&t[r])<<4|t[r+1]>>4],e+=s[(15&t[r+1])<<2|t[r+2]>>6],e+=s[63&t[r+2]];return n%3==2?e=e.substring(0,e.length-1)+"=":n%3==1&&(e=e.substring(0,e.length-2)+"=="),e},d=function(t){var e,n,r,i,o,a=.75*t.length,s=t.length,h=0;"="===t[t.length-1]&&(a--,"="===t[t.length-2]&&a--);var u=new Uint8Array(a);for(e=0;e>4,u[h++]=(15&r)<<4|i>>2,u[h++]=(3&i)<<6|63&o;return u},f=/^(data)?:?([\w\/\+]+)?;?(charset=[\w-]+|base64)?.*,/i,p=function(t){var e=t.trim(),n=e.substring(0,100).match(f);if(!n)return d(e);var r=n[0],i=e.substring(r.length);return d(i)},g=function(t){return t.charCodeAt(0)},v=function(t){return t.codePointAt(0)},y=function(t,e){return x(t.toString(16),e,"0").toUpperCase()},m=function(t){return y(t,2)},b=function(t){return String.fromCharCode(t)},w=function(t){return b(parseInt(t,16))},x=function(t,e,n){for(var r="",i=0,o=e-t.length;i=55296&&r<=56319&&t.length>i&&(n=t.charCodeAt(i))>=56320&&n<=57343&&(o=2),[t.slice(e,e+o),o]},R=function(t){for(var e=[],n=0,r=t.length;nn&&h(),a+=d,s+=f}}return h(),l},D=/^D:(\d\d\d\d)(\d\d)?(\d\d)?(\d\d)?(\d\d)?(\d\d)?([+\-Z])?(\d\d)?'?(\d\d)?'?$/,B=function(t){var e=t.match(D);if(e){var n=e[1],r=e[2],i=void 0===r?"01":r,o=e[3],a=void 0===o?"01":o,s=e[4],l=void 0===s?"00":s,h=e[5],u=void 0===h?"00":h,c=e[6],d=void 0===c?"00":c,f=e[7],p=void 0===f?"Z":f,g=e[8],v=void 0===g?"00":g,y=e[9];return new Date(n+"-"+i+"-"+a+"T"+l+":"+u+":"+d+("Z"===p?"Z":""+p+v+":"+(void 0===y?"00":y)))}},N=function(t,e){for(var n,r,i=0;i=0&&t<=65535},J=function(t){return t>=65536&&t<=1114111},Q=function(t){return Math.floor((t-65536)/1024)+55296},$=function(t){return(t-65536)%1024+56320};!function(t){t.BigEndian="BigEndian",t.LittleEndian="LittleEndian"}(u||(u={}));var tt="�".codePointAt(0),et=function(t,e){if(void 0===e&&(e=!0),t.length<=1)return String.fromCodePoint(tt);for(var n=e?ot(t):u.BigEndian,r=e?2:0,i=[];t.length-r>=2;){var o=it(t[r++],t[r++],n);if(nt(o))if(t.length-r<2)i.push(tt);else{var a=it(t[r++],t[r++],n);rt(a)?i.push(o,a):i.push(tt)}else rt(o)?(r+=2,i.push(tt)):i.push(o)}return r=55296&&t<=56319},rt=function(t){return t>=56320&&t<=57343},it=function(t,e,n){if(n===u.LittleEndian)return e<<8|t;if(n===u.BigEndian)return t<<8|e;throw new Error("Invalid byteOrder: "+n)},ot=function(t){return at(t)?u.BigEndian:st(t)?u.LittleEndian:u.BigEndian},at=function(t){return 254===t[0]&&255===t[1]},st=function(t){return 255===t[0]&&254===t[1]},lt=function(t){return at(t)||st(t)},ht=function(t){var e,n=String(t);if(Math.abs(t)<1){if(e=parseInt(t.toString().split("e-")[1])){var r=t<0;r&&(t*=-1),t*=Math.pow(10,e-1),n="0."+new Array(e).join("0")+t.toString().substring(2),r&&(n="-"+n)}}else(e=parseInt(t.toString().split("+")[1]))>20&&(e-=20,n=(t/=Math.pow(10,e)).toString()+new Array(e+1).join("0"));return n},ut=function(t){return Math.ceil(t.toString(2).length/8)},ct=function(t){for(var e=new Uint8Array(ut(t)),n=1;n<=e.length;n++)e[n-1]=t>>8*(e.length-n);return e},dt=function(t){throw new Error(t)};function ft(t,e,n){return t(n={path:e,exports:{},require:function(t,e){return function(){throw new Error("Dynamic requires are not currently supported by @rollup/plugin-commonjs")}(null==e&&n.path)}},n.exports),n.exports}var pt=ft((function(t,e){var n="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;function r(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.assign=function(t){for(var e=Array.prototype.slice.call(arguments,1);e.length;){var n=e.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var i in n)r(n,i)&&(t[i]=n[i])}}return t},e.shrinkBuf=function(t,e){return t.length===e?t:t.subarray?t.subarray(0,e):(t.length=e,t)};var i={arraySet:function(t,e,n,r,i){if(e.subarray&&t.subarray)t.set(e.subarray(n,n+r),i);else for(var o=0;o=0;)t[e]=0}var vt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],yt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],mt=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],bt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],wt=new Array(576);gt(wt);var xt=new Array(60);gt(xt);var kt=new Array(512);gt(kt);var Ft=new Array(256);gt(Ft);var St=new Array(29);gt(St);var Ct,At,Tt,Pt=new Array(30);function zt(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}function Rt(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Ot(t){return t<256?kt[t]:kt[256+(t>>>7)]}function Dt(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function Bt(t,e,n){t.bi_valid>16-n?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=n-16):(t.bi_buf|=e<>>=1,n<<=1}while(--e>0);return n>>>1}function jt(t,e,n){var r,i,o=new Array(16),a=0;for(r=1;r<=15;r++)o[r]=a=a+n[r-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=Et(o[s]++,s))}}function Mt(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function It(t){t.bi_valid>8?Dt(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function Ut(t,e,n,r){var i=2*e,o=2*n;return t[i]>1;n>=1;n--)Vt(t,o,n);i=l;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Vt(t,o,1),r=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=r,o[2*i]=o[2*n]+o[2*r],t.depth[i]=(t.depth[n]>=t.depth[r]?t.depth[n]:t.depth[r])+1,o[2*n+1]=o[2*r+1]=i,t.heap[1]=i++,Vt(t,o,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var n,r,i,o,a,s,l=e.dyn_tree,h=e.max_code,u=e.stat_desc.static_tree,c=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,f=e.stat_desc.extra_base,p=e.stat_desc.max_length,g=0;for(o=0;o<=15;o++)t.bl_count[o]=0;for(l[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;n<573;n++)(o=l[2*l[2*(r=t.heap[n])+1]+1]+1)>p&&(o=p,g++),l[2*r+1]=o,r>h||(t.bl_count[o]++,a=0,r>=f&&(a=d[r-f]),s=l[2*r],t.opt_len+=s*(o+a),c&&(t.static_len+=s*(u[2*r+1]+a)));if(0!==g){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,g-=2}while(g>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)(i=t.heap[--n])>h||(l[2*i+1]!==o&&(t.opt_len+=(o-l[2*i+1])*l[2*i],l[2*i+1]=o),r--)}}(t,e),jt(o,h,t.bl_count)}function Lt(t,e,n){var r,i,o=-1,a=e[1],s=0,l=7,h=4;for(0===a&&(l=138,h=3),e[2*(n+1)+1]=65535,r=0;r<=n;r++)i=a,a=e[2*(r+1)+1],++s>=7;r<30;r++)for(Pt[r]=i<<7,t=0;t<1<0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),qt(t,t.l_desc),qt(t,t.d_desc),a=function(t){var e;for(Lt(t,t.dyn_ltree,t.l_desc.max_code),Lt(t,t.dyn_dtree,t.d_desc.max_code),qt(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*bt[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(o=t.static_len+3+7>>>3)<=i&&(i=o)):i=o=n+5,n+4<=i&&-1!==e?Ht(t,e,n,r):4===t.strategy||o===i?(Bt(t,2+(r?1:0),3),Wt(t,wt,xt)):(Bt(t,4+(r?1:0),3),function(t,e,n,r){var i;for(Bt(t,e-257,5),Bt(t,n-1,5),Bt(t,r-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(Ft[n]+256+1)]++,t.dyn_dtree[2*Ot(e)]++),t.last_lit===t.lit_bufsize-1},_tr_align:function(t){Bt(t,2,3),Nt(t,256,wt),function(t){16===t.bi_valid?(Dt(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}};var Xt=function(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==n;){n-=a=n>2e3?2e3:n;do{o=o+(i=i+e[r++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0};var Zt=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}();var Yt,Jt=function(t,e,n,r){var i=Zt,o=r+n;t^=-1;for(var a=r;a>>8^i[255&(t^e[a])];return-1^t},Qt={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function $t(t,e){return t.msg=Qt[e],e}function te(t){return(t<<1)-(t>4?9:0)}function ee(t){for(var e=t.length;--e>=0;)t[e]=0}function ne(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(pt.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function re(t,e){_t._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,ne(t.strm)}function ie(t,e){t.pending_buf[t.pending++]=e}function oe(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function ae(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),0===i?0:(t.avail_in-=i,pt.arraySet(e,t.input,t.next_in,i,n),1===t.state.wrap?t.adler=Xt(t.adler,e,i,n):2===t.state.wrap&&(t.adler=Jt(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function se(t,e){var n,r,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,l=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,h=t.window,u=t.w_mask,c=t.prev,d=t.strstart+258,f=h[o+a-1],p=h[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(h[(n=e)+a]===p&&h[n+a-1]===f&&h[n]===h[o]&&h[++n]===h[o+1]){o+=2,n++;do{}while(h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&oa){if(t.match_start=e,a=r,r>=s)break;f=h[o+a-1],p=h[o+a]}}}while((e=c[e&u])>l&&0!=--i);return a<=t.lookahead?a:t.lookahead}function le(t){var e,n,r,i,o,a=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-262)){pt.arraySet(t.window,t.window,a,a,0),t.match_start-=a,t.strstart-=a,t.block_start-=a,e=n=t.hash_size;do{r=t.head[--e],t.head[e]=r>=a?r-a:0}while(--n);e=n=a;do{r=t.prev[--e],t.prev[e]=r>=a?r-a:0}while(--n);i+=a}if(0===t.strm.avail_in)break;if(n=ae(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=n,t.lookahead+t.insert>=3)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(r=_t._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,r=_t._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<15&&(a=2,r-=16),i<1||i>9||8!==n||r<8||r>15||e<0||e>9||o<0||o>4)return $t(t,-2);8===r&&(r=9);var s=new de;return t.state=s,s.strm=t,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(le(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,re(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-262&&(re(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(re(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(re(t,!1),t.strm.avail_out),1)})),new ce(4,4,8,4,he),new ce(4,5,16,8,he),new ce(4,6,32,32,he),new ce(4,4,16,16,ue),new ce(8,16,32,32,ue),new ce(8,16,128,128,ue),new ce(8,32,128,256,ue),new ce(32,128,258,1024,ue),new ce(32,258,258,4096,ue)];var ve={deflateInit:function(t,e){return ge(t,e,8,15,8,0)},deflateInit2:ge,deflateReset:pe,deflateResetKeep:fe,deflateSetHeader:function(t,e){return t&&t.state?2!==t.state.wrap?-2:(t.state.gzhead=e,0):-2},deflate:function(t,e){var n,r,i,o;if(!t||!t.state||e>5||e<0)return t?$t(t,-2):-2;if(r=t.state,!t.output||!t.input&&0!==t.avail_in||666===r.status&&4!==e)return $t(t,0===t.avail_out?-5:-2);if(r.strm=t,n=r.last_flush,r.last_flush=e,42===r.status)if(2===r.wrap)t.adler=0,ie(r,31),ie(r,139),ie(r,8),r.gzhead?(ie(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),ie(r,255&r.gzhead.time),ie(r,r.gzhead.time>>8&255),ie(r,r.gzhead.time>>16&255),ie(r,r.gzhead.time>>24&255),ie(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),ie(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(ie(r,255&r.gzhead.extra.length),ie(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=Jt(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(ie(r,0),ie(r,0),ie(r,0),ie(r,0),ie(r,0),ie(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),ie(r,3),r.status=113);else{var a=8+(r.w_bits-8<<4)<<8;a|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(a|=32),a+=31-a%31,r.status=113,oe(r,a),0!==r.strstart&&(oe(r,t.adler>>>16),oe(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(t.adler=Jt(t.adler,r.pending_buf,r.pending-i,i)),ne(t),i=r.pending,r.pending!==r.pending_buf_size));)ie(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=Jt(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=Jt(t.adler,r.pending_buf,r.pending-i,i)),ne(t),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexi&&(t.adler=Jt(t.adler,r.pending_buf,r.pending-i,i)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=Jt(t.adler,r.pending_buf,r.pending-i,i)),ne(t),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexi&&(t.adler=Jt(t.adler,r.pending_buf,r.pending-i,i)),0===o&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&ne(t),r.pending+2<=r.pending_buf_size&&(ie(r,255&t.adler),ie(r,t.adler>>8&255),t.adler=0,r.status=113)):r.status=113),0!==r.pending){if(ne(t),0===t.avail_out)return r.last_flush=-1,0}else if(0===t.avail_in&&te(e)<=te(n)&&4!==e)return $t(t,-5);if(666===r.status&&0!==t.avail_in)return $t(t,-5);if(0!==t.avail_in||0!==r.lookahead||0!==e&&666!==r.status){var s=2===r.strategy?function(t,e){for(var n;;){if(0===t.lookahead&&(le(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,n=_t._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(re(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(re(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(re(t,!1),0===t.strm.avail_out)?1:2}(r,e):3===r.strategy?function(t,e){for(var n,r,i,o,a=t.window;;){if(t.lookahead<=258){if(le(t),t.lookahead<=258&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=a[i=t.strstart-1])===a[++i]&&r===a[++i]&&r===a[++i]){o=t.strstart+258;do{}while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(n=_t._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=_t._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(re(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(re(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(re(t,!1),0===t.strm.avail_out)?1:2}(r,e):Yt[r.level].func(r,e);if(3!==s&&4!==s||(r.status=666),1===s||3===s)return 0===t.avail_out&&(r.last_flush=-1),0;if(2===s&&(1===e?_t._tr_align(r):5!==e&&(_t._tr_stored_block(r,0,0,!1),3===e&&(ee(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),ne(t),0===t.avail_out))return r.last_flush=-1,0}return 4!==e?0:r.wrap<=0?1:(2===r.wrap?(ie(r,255&t.adler),ie(r,t.adler>>8&255),ie(r,t.adler>>16&255),ie(r,t.adler>>24&255),ie(r,255&t.total_in),ie(r,t.total_in>>8&255),ie(r,t.total_in>>16&255),ie(r,t.total_in>>24&255)):(oe(r,t.adler>>>16),oe(r,65535&t.adler)),ne(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},deflateEnd:function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&103!==e&&113!==e&&666!==e?$t(t,-2):(t.state=null,113===e?$t(t,-3):0):-2},deflateSetDictionary:function(t,e){var n,r,i,o,a,s,l,h,u=e.length;if(!t||!t.state)return-2;if(2===(o=(n=t.state).wrap)||1===o&&42!==n.status||n.lookahead)return-2;for(1===o&&(t.adler=Xt(t.adler,e,u,0)),n.wrap=0,u>=n.w_size&&(0===o&&(ee(n.head),n.strstart=0,n.block_start=0,n.insert=0),h=new pt.Buf8(n.w_size),pt.arraySet(h,e,u-n.w_size,n.w_size,0),e=h,u=n.w_size),a=t.avail_in,s=t.next_in,l=t.input,t.avail_in=u,t.next_in=0,t.input=e,le(n);n.lookahead>=3;){r=n.strstart,i=n.lookahead-2;do{n.ins_h=(n.ins_h<=252?6:we>=248?5:we>=240?4:we>=224?3:we>=192?2:1;be[254]=be[254]=1;function xe(t,e){if(e<65534&&(t.subarray&&me||!t.subarray&&ye))return String.fromCharCode.apply(null,pt.shrinkBuf(t,e));for(var n="",r=0;r>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e},Fe=function(t){return xe(t,t.length)},Se=function(t){for(var e=new pt.Buf8(t.length),n=0,r=e.length;n4)s[r++]=65533,n+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&n1?s[r++]=65533:i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|1023&i)}return xe(s,r)},Ae=function(t,e){var n;for((e=e||t.length)>t.length&&(e=t.length),n=e-1;n>=0&&128==(192&t[n]);)n--;return n<0||0===n?e:n+be[t[n]]>e?n:e};var Te=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Pe=Object.prototype.toString;function ze(t){if(!(this instanceof ze))return new ze(t);this.options=pt.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Te,this.strm.avail_out=0;var n=ve.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==n)throw new Error(Qt[n]);if(e.header&&ve.deflateSetHeader(this.strm,e.header),e.dictionary){var r;if(r="string"==typeof e.dictionary?ke(e.dictionary):"[object ArrayBuffer]"===Pe.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(n=ve.deflateSetDictionary(this.strm,r)))throw new Error(Qt[n]);this._dict_set=!0}}function Re(t,e){var n=new ze(e);if(n.push(t,!0),n.err)throw n.msg||Qt[n.err];return n.result}ze.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=ke(t):"[object ArrayBuffer]"===Pe.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new pt.Buf8(o),i.next_out=0,i.avail_out=o),1!==(n=ve.deflate(i,r))&&0!==n)return this.onEnd(n),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==r&&2!==r)||("string"===this.options.to?this.onData(Fe(pt.shrinkBuf(i.output,i.next_out))):this.onData(pt.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==n);return 4===r?(n=ve.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n):2!==r||(this.onEnd(0),i.avail_out=0,!0)},ze.prototype.onData=function(t){this.chunks.push(t)},ze.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=pt.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Oe={Deflate:ze,deflate:Re,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Re(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Re(t,e)}},De=function(t,e){var n,r,i,o,a,s,l,h,u,c,d,f,p,g,v,y,m,b,w,x,k,F,S,C,A;n=t.state,r=t.next_in,C=t.input,i=r+(t.avail_in-5),o=t.next_out,A=t.output,a=o-(e-t.avail_out),s=o+(t.avail_out-257),l=n.dmax,h=n.wsize,u=n.whave,c=n.wnext,d=n.window,f=n.hold,p=n.bits,g=n.lencode,v=n.distcode,y=(1<>>=w=b>>>24,p-=w,0===(w=b>>>16&255))A[o++]=65535&b;else{if(!(16&w)){if(0==(64&w)){b=g[(65535&b)+(f&(1<>>=w,p-=w),p<15&&(f+=C[r++]<>>=w=b>>>24,p-=w,!(16&(w=b>>>16&255))){if(0==(64&w)){b=v[(65535&b)+(f&(1<l){t.msg="invalid distance too far back",n.mode=30;break t}if(f>>>=w,p-=w,k>(w=o-a)){if((w=k-w)>u&&n.sane){t.msg="invalid distance too far back",n.mode=30;break t}if(F=0,S=d,0===c){if(F+=h-w,w2;)A[o++]=S[F++],A[o++]=S[F++],A[o++]=S[F++],x-=3;x&&(A[o++]=S[F++],x>1&&(A[o++]=S[F++]))}else{F=o-k;do{A[o++]=A[F++],A[o++]=A[F++],A[o++]=A[F++],x-=3}while(x>2);x&&(A[o++]=A[F++],x>1&&(A[o++]=A[F++]))}break}}break}}while(r>3,f&=(1<<(p-=x<<3))-1,t.next_in=r,t.next_out=o,t.avail_in=r=1&&0===R[x];x--);if(k>x&&(k=x),0===x)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(w=1;w0&&(0===t||1!==x))return-1;for(O[1]=0,m=1;m<15;m++)O[m+1]=O[m]+R[m];for(b=0;b852||2===t&&A>592)return 1;for(;;){p=m-S,a[b]f?(g=D[B+a[b]],v=P[z+a[b]]):(g=96,v=0),l=1<>S)+(h-=l)]=p<<24|g<<16|v|0}while(0!==h);for(l=1<>=1;if(0!==l?(T&=l-1,T+=l):T=0,b++,0==--R[m]){if(m===x)break;m=e[n+a[b]]}if(m>k&&(T&c)!==u){for(0===S&&(S=k),d+=w,C=1<<(F=m-S);F+S852||2===t&&A>592)return 1;i[u=T&c]=k<<24|F<<16|d-o|0}}return 0!==T&&(i[d+T]=m-S<<24|64<<16|0),s.bits=k,0};function Ie(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function Ue(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new pt.Buf16(320),this.work=new pt.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Ve(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new pt.Buf32(852),e.distcode=e.distdyn=new pt.Buf32(592),e.sane=1,e.back=-1,0):-2}function We(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,Ve(t)):-2}function qe(t,e){var n,r;return t&&t.state?(r=t.state,e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,We(t))):-2}function Le(t,e){var n,r;return t?(r=new Ue,t.state=r,r.window=null,0!==(n=qe(t,e))&&(t.state=null),n):-2}var Ke,Ge,He=!0;function _e(t){if(He){var e;for(Ke=new pt.Buf32(512),Ge=new pt.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Me(1,t.lens,0,288,Ke,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Me(2,t.lens,0,32,Ge,0,t.work,{bits:5}),He=!1}t.lencode=Ke,t.lenbits=9,t.distcode=Ge,t.distbits=5}function Xe(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(pt.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((i=o.wsize-o.wnext)>r&&(i=r),pt.arraySet(o.window,e,n-r,i,o.wnext),(r-=i)?(pt.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,n.check=Jt(n.check,T,2,0),h=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=30;break}if(8!=(15&h)){t.msg="unknown compression method",n.mode=30;break}if(u-=4,k=8+(15&(h>>>=4)),0===n.wbits)n.wbits=k;else if(k>n.wbits){t.msg="invalid window size",n.mode=30;break}n.dmax=1<>8&1),512&n.flags&&(T[0]=255&h,T[1]=h>>>8&255,n.check=Jt(n.check,T,2,0)),h=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break t;s--,h+=r[o++]<>>8&255,T[2]=h>>>16&255,T[3]=h>>>24&255,n.check=Jt(n.check,T,4,0)),h=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break t;s--,h+=r[o++]<>8),512&n.flags&&(T[0]=255&h,T[1]=h>>>8&255,n.check=Jt(n.check,T,2,0)),h=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break t;s--,h+=r[o++]<>>8&255,n.check=Jt(n.check,T,2,0)),h=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((f=n.length)>s&&(f=s),f&&(n.head&&(k=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),pt.arraySet(n.head.extra,r,o,f,k)),512&n.flags&&(n.check=Jt(n.check,r,f,o)),s-=f,o+=f,n.length-=f),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break t;f=0;do{k=r[o+f++],n.head&&k&&n.length<65536&&(n.head.name+=String.fromCharCode(k))}while(k&&f>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=12;break;case 10:for(;u<32;){if(0===s)break t;s--,h+=r[o++]<>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break t;s--,h+=r[o++]<>>=1)){case 0:n.mode=14;break;case 1:if(_e(n),n.mode=20,6===e){h>>>=2,u-=2;break t}break;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=30}h>>>=2,u-=2;break;case 14:for(h>>>=7&u,u-=7&u;u<32;){if(0===s)break t;s--,h+=r[o++]<>>16^65535)){t.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&h,h=0,u=0,n.mode=15,6===e)break t;case 15:n.mode=16;case 16:if(f=n.length){if(f>s&&(f=s),f>l&&(f=l),0===f)break t;pt.arraySet(i,r,o,f,a),s-=f,o+=f,l-=f,a+=f,n.length-=f;break}n.mode=12;break;case 17:for(;u<14;){if(0===s)break t;s--,h+=r[o++]<>>=5,u-=5,n.ndist=1+(31&h),h>>>=5,u-=5,n.ncode=4+(15&h),h>>>=4,u-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,u-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S={bits:n.lenbits},F=Me(0,n.lens,0,19,n.lencode,0,n.work,S),n.lenbits=S.bits,F){t.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=v,u-=v,n.lens[n.have++]=m;else{if(16===m){for(C=v+2;u>>=v,u-=v,0===n.have){t.msg="invalid bit length repeat",n.mode=30;break}k=n.lens[n.have-1],f=3+(3&h),h>>>=2,u-=2}else if(17===m){for(C=v+3;u>>=v)),h>>>=3,u-=3}else{for(C=v+7;u>>=v)),h>>>=7,u-=7}if(n.have+f>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=30;break}for(;f--;)n.lens[n.have++]=k}}if(30===n.mode)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,S={bits:n.lenbits},F=Me(1,n.lens,0,n.nlen,n.lencode,0,n.work,S),n.lenbits=S.bits,F){t.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,S={bits:n.distbits},F=Me(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,S),n.distbits=S.bits,F){t.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===e)break t;case 20:n.mode=21;case 21:if(s>=6&&l>=258){t.next_out=a,t.avail_out=l,t.next_in=o,t.avail_in=s,n.hold=h,n.bits=u,De(t,d),a=t.next_out,i=t.output,l=t.avail_out,o=t.next_in,r=t.input,s=t.avail_in,h=n.hold,u=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;y=(A=n.lencode[h&(1<>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>b)])>>>16&255,m=65535&A,!(b+(v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=b,u-=b,n.back+=b}if(h>>>=v,u-=v,n.back+=v,n.length=m,0===y){n.mode=26;break}if(32&y){n.back=-1,n.mode=12;break}if(64&y){t.msg="invalid literal/length code",n.mode=30;break}n.extra=15&y,n.mode=22;case 22:if(n.extra){for(C=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;y=(A=n.distcode[h&(1<>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>b)])>>>16&255,m=65535&A,!(b+(v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=b,u-=b,n.back+=b}if(h>>>=v,u-=v,n.back+=v,64&y){t.msg="invalid distance code",n.mode=30;break}n.offset=m,n.extra=15&y,n.mode=24;case 24:if(n.extra){for(C=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===l)break t;if(f=d-l,n.offset>f){if((f=n.offset-f)>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=30;break}f>n.wnext?(f-=n.wnext,p=n.wsize-f):p=n.wnext-f,f>n.length&&(f=n.length),g=n.window}else g=i,p=a-n.offset,f=n.length;f>l&&(f=l),l-=f,n.length-=f;do{i[a++]=g[p++]}while(--f);0===n.length&&(n.mode=21);break;case 26:if(0===l)break t;i[a++]=n.length,l--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break t;s--,h|=r[o++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Te,this.strm.avail_out=0;var n=Ze.inflateInit2(this.strm,e.windowBits);if(n!==Ye.Z_OK)throw new Error(Qt[n]);if(this.header=new Je,Ze.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=ke(e.dictionary):"[object ArrayBuffer]"===Qe.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=Ze.inflateSetDictionary(this.strm,e.dictionary))!==Ye.Z_OK))throw new Error(Qt[n])}function tn(t,e){var n=new $e(e);if(n.push(t,!0),n.err)throw n.msg||Qt[n.err];return n.result}$e.prototype.push=function(t,e){var n,r,i,o,a,s=this.strm,l=this.options.chunkSize,h=this.options.dictionary,u=!1;if(this.ended)return!1;r=e===~~e?e:!0===e?Ye.Z_FINISH:Ye.Z_NO_FLUSH,"string"==typeof t?s.input=Se(t):"[object ArrayBuffer]"===Qe.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new pt.Buf8(l),s.next_out=0,s.avail_out=l),(n=Ze.inflate(s,Ye.Z_NO_FLUSH))===Ye.Z_NEED_DICT&&h&&(n=Ze.inflateSetDictionary(this.strm,h)),n===Ye.Z_BUF_ERROR&&!0===u&&(n=Ye.Z_OK,u=!1),n!==Ye.Z_STREAM_END&&n!==Ye.Z_OK)return this.onEnd(n),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&n!==Ye.Z_STREAM_END&&(0!==s.avail_in||r!==Ye.Z_FINISH&&r!==Ye.Z_SYNC_FLUSH)||("string"===this.options.to?(i=Ae(s.output,s.next_out),o=s.next_out-i,a=Ce(s.output,i),s.next_out=o,s.avail_out=l-o,o&&pt.arraySet(s.output,s.output,i,o,0),this.onData(a)):this.onData(pt.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(u=!0)}while((s.avail_in>0||0===s.avail_out)&&n!==Ye.Z_STREAM_END);return n===Ye.Z_STREAM_END&&(r=Ye.Z_FINISH),r===Ye.Z_FINISH?(n=Ze.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Ye.Z_OK):r!==Ye.Z_SYNC_FLUSH||(this.onEnd(Ye.Z_OK),s.avail_out=0,!0)},$e.prototype.onData=function(t){this.chunks.push(t)},$e.prototype.onEnd=function(t){t===Ye.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=pt.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var en={Inflate:$e,inflate:tn,inflateRaw:function(t,e){return(e=e||{}).raw=!0,tn(t,e)},ungzip:tn},nn={};(0,pt.assign)(nn,Oe,en,Ye);for(var rn=nn,on="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",an=new Uint8Array(256),sn=0;sn>4,h[l++]=(15&r)<<4|i>>2,h[l++]=(3&i)<<6|63&o;return h}(t)))},un={Courier:"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","Courier-Bold":"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","Courier-Oblique":"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","Courier-BoldOblique":"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",Helvetica:"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","Helvetica-Bold":"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","Helvetica-Oblique":"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","Helvetica-BoldOblique":"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","Times-Roman":"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","Times-Bold":"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","Times-Italic":"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","Times-BoldItalic":"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",Symbol:"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",ZapfDingbats:"eJxtmNtu20YQhl+F4FULyMGeD7pz3AY1ChtG7NpFA18w1NomIlECSRcxgrx7SVk7+wOdG8H5OJydf2Z2d5gf9cV+t0v9VK/r+6vXsXlOlbHe28paq229qj/t++m62aXZ4J/m8PRb1z9/baZxefK63Z6eXN5dVMvTCh83u277xr/6kLrnl2XNq7TpXnczuZyabdee98/b2VzM/x4/dd/T5qab2pd6PQ2vaVVfvDRD005puE3Lu7eH1HbN9hTjx4/77/X6y5lcnUmjVzHIVVDicVX/1W/SsO36dLMfu6nb9/X6TAoBD+5euvZbn8axXtuZ36dhPJrVQqgPQoh5hev91LWLkIv94W1Ygq9+aX+tZAx2tfz64284/sblN/rqfLP/mqrbt3FKu7G67Nv9cNgPzZQ2H6rz7bb6vLgZq89pTMO/M/xfEqturJpqSM/d7GJIm2oamk3aNcO3av80O5xh3yyKmm1193ZIT02bqovTKjP+MAf++7zsZvZ3276kYyWWXB0z99S18/PbafPHQ71W4fjn/fxnFO+ZvkrT0LVzTr78qB/+nk38bHM9exgP8zr1z9U7jt6840YW5uSJKcZOCaBBnKgm5mU8MVNYyMwWFvO7Ukagkmgg6sDWQ5yFFqjzUrLEaQ3BEmiwNsMSaZS0vgWfOkPHWQowNeTUc0kumnxZvsgPxlGai6VTGUqAVCTQ6QkWnc77DKEiLktSUBJKqHIQZ86d8gCpHYoiEzMsb1ubYy8vW50DChB5ZhGqrijD0EqUIeiaEHIfCg5Kpuu0ApiToaGPSY0uaQsyr65L2oKi1yFt1PLaQ3lzfXTgXodGoJYzglndSLDMPg1sTPJpQJHJigw0QrGERqD9YhyTOgONQDUyuF1zaxuokc/BW2ztXCMrGZ9WMW1oQZHIXWNBkSCfRZEL5BMUiZw6CzVSFCfUSGZFNjIldoKDkonTKQiJIGzWmFd3BizJJ9SINoLDriOfUCOZS+zg+KGD1qGiLNMLxtJD1/ns00ON6EzyUCM6vbxhoBKaqbG3DFQCNiL1iHccBPV0DHhQH/JW8EW90dkyFKGywCJU0WkVSvSGeiSUODWFFD0HYdPQVoiRgfPMA+/nnRgiAyNYSjpWNQcNSMrtFCUH4ZIRpSCWocFCSuhCEY6hoUClc0WC52BJlCYYLQdhN+hygRRRlo5BKRRLS6oihSqh+ZzzRGG1Mo4Iz1LoP0qsxDGFzk0JE42ji0jCPejomJKCuwil4m5CiRMEUMVSzVLDUstSx1Juc0oVWMpqY295qVltmtWmWW2a1aZZbZrVplltmtWmWW2G1WZYbYbVZlhthtVmWG2G1WZYbYbVZlhtltVmWW2W1WZZbZbVZlltltVmWW2W1QYjQCh7E2aAQHeGhCFgPoNoy8KNb2wxBhmGKBxoUZXlLGsLI6AsftEDHV0wIURVbANLcTKlGGBIKPOAxCmhePCKUwFzAmpDFRQvjA9R06Hq8TONvshgKDCuRAZTXigUxjxNFfKRo3CLhnIJBMFRvMZpqpNBMlQJzGT5WFQMVQI/AikPMIhEU1aDjqJvQwmjSHB05cC9jbYwc5UtAHNLhDw41ha+lEqF4JaH3gmB61SYcqInxTDmQK8v08vjqv4zDf1N0w3Lf4A8/vwPpfK11w=="};!function(t){t.Courier="Courier",t.CourierBold="Courier-Bold",t.CourierOblique="Courier-Oblique",t.CourierBoldOblique="Courier-BoldOblique",t.Helvetica="Helvetica",t.HelveticaBold="Helvetica-Bold",t.HelveticaOblique="Helvetica-Oblique",t.HelveticaBoldOblique="Helvetica-BoldOblique",t.TimesRoman="Times-Roman",t.TimesRomanBold="Times-Bold",t.TimesRomanItalic="Times-Italic",t.TimesRomanBoldItalic="Times-BoldItalic",t.Symbol="Symbol",t.ZapfDingbats="ZapfDingbats"}(ln||(ln={}));for(var cn={},dn=function(){function t(){var t=this;this.getWidthOfGlyph=function(e){return t.CharWidths[e]},this.getXAxisKerningForPair=function(e,n){return(t.KernPairXAmounts[e]||{})[n]}}return t.load=function(e){var n=cn[e];if(n)return n;var r=hn(un[e]),i=Object.assign(new t,JSON.parse(r));return i.CharWidths=i.CharMetrics.reduce((function(t,e){return t[e.N]=e.WX,t}),{}),i.KernPairXAmounts=i.KernPairs.reduce((function(t,e){var n=e[0],r=e[1],i=e[2];return t[n]||(t[n]={}),t[n][r]=i,t}),{}),cn[e]=i,i},t}(),fn=hn("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"),pn=JSON.parse(fn),gn=function(t,e){var n=this;this.canEncodeUnicodeCodePoint=function(t){return t in n.unicodeMappings},this.encodeUnicodeCodePoint=function(t){var e=n.unicodeMappings[t];if(!e){var r=String.fromCharCode(t),i="0x"+function(t,e,n){for(var r="",i=0,o=e-t.length;ir)throw new Error(xn(e)+" must be at least "+n+" and at most "+r+", but was actually "+t)},En=function(t,e,n,r){On(t,e,["number","undefined"]),"number"==typeof t&&Nn(t,e,n,r)},jn=function(t,e,n){if(On(t,e,["number"]),t%n!=0)throw new Error(xn(e)+" must be a multiple of "+n+", but was actually "+t)},Mn=function(t,e){if(!Number.isInteger(t))throw new Error(xn(e)+" must be an integer, but was actually "+t)},In=function(t,e){if(![1,0].includes(Math.sign(t)))throw new Error(xn(e)+" must be a positive number or 0, but was actually "+t)},Un=new Uint16Array(256),Vn=0;Vn<256;Vn++)Un[Vn]=Vn;Un[22]=g(""),Un[24]=g("˘"),Un[25]=g("ˇ"),Un[26]=g("ˆ"),Un[27]=g("˙"),Un[28]=g("˝"),Un[29]=g("˛"),Un[30]=g("˚"),Un[31]=g("˜"),Un[127]=g("�"),Un[128]=g("•"),Un[129]=g("†"),Un[130]=g("‡"),Un[131]=g("…"),Un[132]=g("—"),Un[133]=g("–"),Un[134]=g("ƒ"),Un[135]=g("⁄"),Un[136]=g("‹"),Un[137]=g("›"),Un[138]=g("−"),Un[139]=g("‰"),Un[140]=g("„"),Un[141]=g("“"),Un[142]=g("”"),Un[143]=g("‘"),Un[144]=g("’"),Un[145]=g("‚"),Un[146]=g("™"),Un[147]=g("fi"),Un[148]=g("fl"),Un[149]=g("Ł"),Un[150]=g("Œ"),Un[151]=g("Š"),Un[152]=g("Ÿ"),Un[153]=g("Ž"),Un[154]=g("ı"),Un[155]=g("ł"),Un[156]=g("œ"),Un[157]=g("š"),Un[158]=g("ž"),Un[159]=g("�"),Un[160]=g("€"),Un[173]=g("�");var Wn,qn=function(t){for(var e=new Array(t.length),n=0,r=t.length;n=0;)t[e]=0}var xr=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],kr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Fr=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],Sr=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],Cr=new Array(576);wr(Cr);var Ar=new Array(60);wr(Ar);var Tr=new Array(512);wr(Tr);var Pr=new Array(256);wr(Pr);var zr=new Array(29);wr(zr);var Rr,Or,Dr,Br=new Array(30);function Nr(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}function Er(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function jr(t){return t<256?Tr[t]:Tr[256+(t>>>7)]}function Mr(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function Ir(t,e,n){t.bi_valid>16-n?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=n-16):(t.bi_buf|=e<>>=1,n<<=1}while(--e>0);return n>>>1}function Wr(t,e,n){var r,i,o=new Array(16),a=0;for(r=1;r<=15;r++)o[r]=a=a+n[r-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=Vr(o[s]++,s))}}function qr(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function Lr(t){t.bi_valid>8?Mr(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function Kr(t,e,n,r){var i=2*e,o=2*n;return t[i]>1;n>=1;n--)Gr(t,o,n);i=l;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],Gr(t,o,1),r=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=r,o[2*i]=o[2*n]+o[2*r],t.depth[i]=(t.depth[n]>=t.depth[r]?t.depth[n]:t.depth[r])+1,o[2*n+1]=o[2*r+1]=i,t.heap[1]=i++,Gr(t,o,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var n,r,i,o,a,s,l=e.dyn_tree,h=e.max_code,u=e.stat_desc.static_tree,c=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,f=e.stat_desc.extra_base,p=e.stat_desc.max_length,g=0;for(o=0;o<=15;o++)t.bl_count[o]=0;for(l[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;n<573;n++)(o=l[2*l[2*(r=t.heap[n])+1]+1]+1)>p&&(o=p,g++),l[2*r+1]=o,r>h||(t.bl_count[o]++,a=0,r>=f&&(a=d[r-f]),s=l[2*r],t.opt_len+=s*(o+a),c&&(t.static_len+=s*(u[2*r+1]+a)));if(0!==g){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,g-=2}while(g>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)(i=t.heap[--n])>h||(l[2*i+1]!==o&&(t.opt_len+=(o-l[2*i+1])*l[2*i],l[2*i+1]=o),r--)}}(t,e),Wr(o,h,t.bl_count)}function Xr(t,e,n){var r,i,o=-1,a=e[1],s=0,l=7,h=4;for(0===a&&(l=138,h=3),e[2*(n+1)+1]=65535,r=0;r<=n;r++)i=a,a=e[2*(r+1)+1],++s>=7;r<30;r++)for(Br[r]=i<<7,t=0;t<1<0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),_r(t,t.l_desc),_r(t,t.d_desc),a=function(t){var e;for(Xr(t,t.dyn_ltree,t.l_desc.max_code),Xr(t,t.dyn_dtree,t.d_desc.max_code),_r(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*Sr[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(o=t.static_len+3+7>>>3)<=i&&(i=o)):i=o=n+5,n+4<=i&&-1!==e?Jr(t,e,n,r):4===t.strategy||o===i?(Ir(t,2+(r?1:0),3),Hr(t,Cr,Ar)):(Ir(t,4+(r?1:0),3),function(t,e,n,r){var i;for(Ir(t,e-257,5),Ir(t,n-1,5),Ir(t,r-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(Pr[n]+256+1)]++,t.dyn_dtree[2*jr(e)]++),t.last_lit===t.lit_bufsize-1},_tr_align:function(t){Ir(t,2,3),Ur(t,256,Cr),function(t){16===t.bi_valid?(Mr(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}};var $r=function(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==n;){n-=a=n>2e3?2e3:n;do{o=o+(i=i+e[r++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0};var ti=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}();var ei,ni=function(t,e,n,r){var i=ti,o=r+n;t^=-1;for(var a=r;a>>8^i[255&(t^e[a])];return-1^t},ri={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function ii(t,e){return t.msg=ri[e],e}function oi(t){return(t<<1)-(t>4?9:0)}function ai(t){for(var e=t.length;--e>=0;)t[e]=0}function si(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(br.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function li(t,e){Qr._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,si(t.strm)}function hi(t,e){t.pending_buf[t.pending++]=e}function ui(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function ci(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),0===i?0:(t.avail_in-=i,br.arraySet(e,t.input,t.next_in,i,n),1===t.state.wrap?t.adler=$r(t.adler,e,i,n):2===t.state.wrap&&(t.adler=ni(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function di(t,e){var n,r,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,l=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,h=t.window,u=t.w_mask,c=t.prev,d=t.strstart+258,f=h[o+a-1],p=h[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(h[(n=e)+a]===p&&h[n+a-1]===f&&h[n]===h[o]&&h[++n]===h[o+1]){o+=2,n++;do{}while(h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&oa){if(t.match_start=e,a=r,r>=s)break;f=h[o+a-1],p=h[o+a]}}}while((e=c[e&u])>l&&0!=--i);return a<=t.lookahead?a:t.lookahead}function fi(t){var e,n,r,i,o,a=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-262)){br.arraySet(t.window,t.window,a,a,0),t.match_start-=a,t.strstart-=a,t.block_start-=a,e=n=t.hash_size;do{r=t.head[--e],t.head[e]=r>=a?r-a:0}while(--n);e=n=a;do{r=t.prev[--e],t.prev[e]=r>=a?r-a:0}while(--n);i+=a}if(0===t.strm.avail_in)break;if(n=ci(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=n,t.lookahead+t.insert>=3)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(r=Qr._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,r=Qr._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<15&&(a=2,r-=16),i<1||i>9||8!==n||r<8||r>15||e<0||e>9||o<0||o>4)return ii(t,-2);8===r&&(r=9);var s=new yi;return t.state=s,s.strm=t,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(fi(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,li(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-262&&(li(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(li(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&(li(t,!1),t.strm.avail_out),1)})),new vi(4,4,8,4,pi),new vi(4,5,16,8,pi),new vi(4,6,32,32,pi),new vi(4,4,16,16,gi),new vi(8,16,32,32,gi),new vi(8,16,128,128,gi),new vi(8,32,128,256,gi),new vi(32,128,258,1024,gi),new vi(32,258,258,4096,gi)];var xi={deflateInit:function(t,e){return wi(t,e,8,15,8,0)},deflateInit2:wi,deflateReset:bi,deflateResetKeep:mi,deflateSetHeader:function(t,e){return t&&t.state?2!==t.state.wrap?-2:(t.state.gzhead=e,0):-2},deflate:function(t,e){var n,r,i,o;if(!t||!t.state||e>5||e<0)return t?ii(t,-2):-2;if(r=t.state,!t.output||!t.input&&0!==t.avail_in||666===r.status&&4!==e)return ii(t,0===t.avail_out?-5:-2);if(r.strm=t,n=r.last_flush,r.last_flush=e,42===r.status)if(2===r.wrap)t.adler=0,hi(r,31),hi(r,139),hi(r,8),r.gzhead?(hi(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),hi(r,255&r.gzhead.time),hi(r,r.gzhead.time>>8&255),hi(r,r.gzhead.time>>16&255),hi(r,r.gzhead.time>>24&255),hi(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),hi(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(hi(r,255&r.gzhead.extra.length),hi(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=ni(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(hi(r,0),hi(r,0),hi(r,0),hi(r,0),hi(r,0),hi(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),hi(r,3),r.status=113);else{var a=8+(r.w_bits-8<<4)<<8;a|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(a|=32),a+=31-a%31,r.status=113,ui(r,a),0!==r.strstart&&(ui(r,t.adler>>>16),ui(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(t.adler=ni(t.adler,r.pending_buf,r.pending-i,i)),si(t),i=r.pending,r.pending!==r.pending_buf_size));)hi(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=ni(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=ni(t.adler,r.pending_buf,r.pending-i,i)),si(t),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexi&&(t.adler=ni(t.adler,r.pending_buf,r.pending-i,i)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=ni(t.adler,r.pending_buf,r.pending-i,i)),si(t),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexi&&(t.adler=ni(t.adler,r.pending_buf,r.pending-i,i)),0===o&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&si(t),r.pending+2<=r.pending_buf_size&&(hi(r,255&t.adler),hi(r,t.adler>>8&255),t.adler=0,r.status=113)):r.status=113),0!==r.pending){if(si(t),0===t.avail_out)return r.last_flush=-1,0}else if(0===t.avail_in&&oi(e)<=oi(n)&&4!==e)return ii(t,-5);if(666===r.status&&0!==t.avail_in)return ii(t,-5);if(0!==t.avail_in||0!==r.lookahead||0!==e&&666!==r.status){var s=2===r.strategy?function(t,e){for(var n;;){if(0===t.lookahead&&(fi(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,n=Qr._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&(li(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(li(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(li(t,!1),0===t.strm.avail_out)?1:2}(r,e):3===r.strategy?function(t,e){for(var n,r,i,o,a=t.window;;){if(t.lookahead<=258){if(fi(t),t.lookahead<=258&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=a[i=t.strstart-1])===a[++i]&&r===a[++i]&&r===a[++i]){o=t.strstart+258;do{}while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(n=Qr._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=Qr._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&(li(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?(li(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&(li(t,!1),0===t.strm.avail_out)?1:2}(r,e):ei[r.level].func(r,e);if(3!==s&&4!==s||(r.status=666),1===s||3===s)return 0===t.avail_out&&(r.last_flush=-1),0;if(2===s&&(1===e?Qr._tr_align(r):5!==e&&(Qr._tr_stored_block(r,0,0,!1),3===e&&(ai(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),si(t),0===t.avail_out))return r.last_flush=-1,0}return 4!==e?0:r.wrap<=0?1:(2===r.wrap?(hi(r,255&t.adler),hi(r,t.adler>>8&255),hi(r,t.adler>>16&255),hi(r,t.adler>>24&255),hi(r,255&t.total_in),hi(r,t.total_in>>8&255),hi(r,t.total_in>>16&255),hi(r,t.total_in>>24&255)):(ui(r,t.adler>>>16),ui(r,65535&t.adler)),si(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},deflateEnd:function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&103!==e&&113!==e&&666!==e?ii(t,-2):(t.state=null,113===e?ii(t,-3):0):-2},deflateSetDictionary:function(t,e){var n,r,i,o,a,s,l,h,u=e.length;if(!t||!t.state)return-2;if(2===(o=(n=t.state).wrap)||1===o&&42!==n.status||n.lookahead)return-2;for(1===o&&(t.adler=$r(t.adler,e,u,0)),n.wrap=0,u>=n.w_size&&(0===o&&(ai(n.head),n.strstart=0,n.block_start=0,n.insert=0),h=new br.Buf8(n.w_size),br.arraySet(h,e,u-n.w_size,n.w_size,0),e=h,u=n.w_size),a=t.avail_in,s=t.next_in,l=t.input,t.avail_in=u,t.next_in=0,t.input=e,fi(n);n.lookahead>=3;){r=n.strstart,i=n.lookahead-2;do{n.ins_h=(n.ins_h<=252?6:Ci>=248?5:Ci>=240?4:Ci>=224?3:Ci>=192?2:1;Si[254]=Si[254]=1;function Ai(t,e){if(e<65534&&(t.subarray&&Fi||!t.subarray&&ki))return String.fromCharCode.apply(null,br.shrinkBuf(t,e));for(var n="",r=0;r>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e},Pi=function(t){return Ai(t,t.length)},zi=function(t){for(var e=new br.Buf8(t.length),n=0,r=e.length;n4)s[r++]=65533,n+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&n1?s[r++]=65533:i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|1023&i)}return Ai(s,r)},Oi=function(t,e){var n;for((e=e||t.length)>t.length&&(e=t.length),n=e-1;n>=0&&128==(192&t[n]);)n--;return n<0||0===n?e:n+Si[t[n]]>e?n:e};var Di=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Bi=Object.prototype.toString;function Ni(t){if(!(this instanceof Ni))return new Ni(t);this.options=br.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Di,this.strm.avail_out=0;var n=xi.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==n)throw new Error(ri[n]);if(e.header&&xi.deflateSetHeader(this.strm,e.header),e.dictionary){var r;if(r="string"==typeof e.dictionary?Ti(e.dictionary):"[object ArrayBuffer]"===Bi.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(n=xi.deflateSetDictionary(this.strm,r)))throw new Error(ri[n]);this._dict_set=!0}}function Ei(t,e){var n=new Ni(e);if(n.push(t,!0),n.err)throw n.msg||ri[n.err];return n.result}Ni.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=Ti(t):"[object ArrayBuffer]"===Bi.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new br.Buf8(o),i.next_out=0,i.avail_out=o),1!==(n=xi.deflate(i,r))&&0!==n)return this.onEnd(n),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==r&&2!==r)||("string"===this.options.to?this.onData(Pi(br.shrinkBuf(i.output,i.next_out))):this.onData(br.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==n);return 4===r?(n=xi.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n):2!==r||(this.onEnd(0),i.avail_out=0,!0)},Ni.prototype.onData=function(t){this.chunks.push(t)},Ni.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=br.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ji={Deflate:Ni,deflate:Ei,deflateRaw:function(t,e){return(e=e||{}).raw=!0,Ei(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,Ei(t,e)}},Mi=function(t,e){var n,r,i,o,a,s,l,h,u,c,d,f,p,g,v,y,m,b,w,x,k,F,S,C,A;n=t.state,r=t.next_in,C=t.input,i=r+(t.avail_in-5),o=t.next_out,A=t.output,a=o-(e-t.avail_out),s=o+(t.avail_out-257),l=n.dmax,h=n.wsize,u=n.whave,c=n.wnext,d=n.window,f=n.hold,p=n.bits,g=n.lencode,v=n.distcode,y=(1<>>=w=b>>>24,p-=w,0===(w=b>>>16&255))A[o++]=65535&b;else{if(!(16&w)){if(0==(64&w)){b=g[(65535&b)+(f&(1<>>=w,p-=w),p<15&&(f+=C[r++]<>>=w=b>>>24,p-=w,!(16&(w=b>>>16&255))){if(0==(64&w)){b=v[(65535&b)+(f&(1<l){t.msg="invalid distance too far back",n.mode=30;break t}if(f>>>=w,p-=w,k>(w=o-a)){if((w=k-w)>u&&n.sane){t.msg="invalid distance too far back",n.mode=30;break t}if(F=0,S=d,0===c){if(F+=h-w,w2;)A[o++]=S[F++],A[o++]=S[F++],A[o++]=S[F++],x-=3;x&&(A[o++]=S[F++],x>1&&(A[o++]=S[F++]))}else{F=o-k;do{A[o++]=A[F++],A[o++]=A[F++],A[o++]=A[F++],x-=3}while(x>2);x&&(A[o++]=A[F++],x>1&&(A[o++]=A[F++]))}break}}break}}while(r>3,f&=(1<<(p-=x<<3))-1,t.next_in=r,t.next_out=o,t.avail_in=r=1&&0===R[x];x--);if(k>x&&(k=x),0===x)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(w=1;w0&&(0===t||1!==x))return-1;for(O[1]=0,m=1;m<15;m++)O[m+1]=O[m]+R[m];for(b=0;b852||2===t&&A>592)return 1;for(;;){p=m-S,a[b]f?(g=D[B+a[b]],v=P[z+a[b]]):(g=96,v=0),l=1<>S)+(h-=l)]=p<<24|g<<16|v|0}while(0!==h);for(l=1<>=1;if(0!==l?(T&=l-1,T+=l):T=0,b++,0==--R[m]){if(m===x)break;m=e[n+a[b]]}if(m>k&&(T&c)!==u){for(0===S&&(S=k),d+=w,C=1<<(F=m-S);F+S852||2===t&&A>592)return 1;i[u=T&c]=k<<24|F<<16|d-o|0}}return 0!==T&&(i[d+T]=m-S<<24|64<<16|0),s.bits=k,0};function Li(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function Ki(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new br.Buf16(320),this.work=new br.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function Gi(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new br.Buf32(852),e.distcode=e.distdyn=new br.Buf32(592),e.sane=1,e.back=-1,0):-2}function Hi(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,Gi(t)):-2}function _i(t,e){var n,r;return t&&t.state?(r=t.state,e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,Hi(t))):-2}function Xi(t,e){var n,r;return t?(r=new Ki,t.state=r,r.window=null,0!==(n=_i(t,e))&&(t.state=null),n):-2}var Zi,Yi,Ji=!0;function Qi(t){if(Ji){var e;for(Zi=new br.Buf32(512),Yi=new br.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(qi(1,t.lens,0,288,Zi,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;qi(2,t.lens,0,32,Yi,0,t.work,{bits:5}),Ji=!1}t.lencode=Zi,t.lenbits=9,t.distcode=Yi,t.distbits=5}function $i(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(br.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((i=o.wsize-o.wnext)>r&&(i=r),br.arraySet(o.window,e,n-r,i,o.wnext),(r-=i)?(br.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,n.check=ni(n.check,T,2,0),h=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=30;break}if(8!=(15&h)){t.msg="unknown compression method",n.mode=30;break}if(u-=4,k=8+(15&(h>>>=4)),0===n.wbits)n.wbits=k;else if(k>n.wbits){t.msg="invalid window size",n.mode=30;break}n.dmax=1<>8&1),512&n.flags&&(T[0]=255&h,T[1]=h>>>8&255,n.check=ni(n.check,T,2,0)),h=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break t;s--,h+=r[o++]<>>8&255,T[2]=h>>>16&255,T[3]=h>>>24&255,n.check=ni(n.check,T,4,0)),h=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break t;s--,h+=r[o++]<>8),512&n.flags&&(T[0]=255&h,T[1]=h>>>8&255,n.check=ni(n.check,T,2,0)),h=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break t;s--,h+=r[o++]<>>8&255,n.check=ni(n.check,T,2,0)),h=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((f=n.length)>s&&(f=s),f&&(n.head&&(k=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),br.arraySet(n.head.extra,r,o,f,k)),512&n.flags&&(n.check=ni(n.check,r,f,o)),s-=f,o+=f,n.length-=f),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break t;f=0;do{k=r[o+f++],n.head&&k&&n.length<65536&&(n.head.name+=String.fromCharCode(k))}while(k&&f>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=12;break;case 10:for(;u<32;){if(0===s)break t;s--,h+=r[o++]<>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break t;s--,h+=r[o++]<>>=1)){case 0:n.mode=14;break;case 1:if(Qi(n),n.mode=20,6===e){h>>>=2,u-=2;break t}break;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=30}h>>>=2,u-=2;break;case 14:for(h>>>=7&u,u-=7&u;u<32;){if(0===s)break t;s--,h+=r[o++]<>>16^65535)){t.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&h,h=0,u=0,n.mode=15,6===e)break t;case 15:n.mode=16;case 16:if(f=n.length){if(f>s&&(f=s),f>l&&(f=l),0===f)break t;br.arraySet(i,r,o,f,a),s-=f,o+=f,l-=f,a+=f,n.length-=f;break}n.mode=12;break;case 17:for(;u<14;){if(0===s)break t;s--,h+=r[o++]<>>=5,u-=5,n.ndist=1+(31&h),h>>>=5,u-=5,n.ncode=4+(15&h),h>>>=4,u-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,u-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S={bits:n.lenbits},F=qi(0,n.lens,0,19,n.lencode,0,n.work,S),n.lenbits=S.bits,F){t.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=v,u-=v,n.lens[n.have++]=m;else{if(16===m){for(C=v+2;u>>=v,u-=v,0===n.have){t.msg="invalid bit length repeat",n.mode=30;break}k=n.lens[n.have-1],f=3+(3&h),h>>>=2,u-=2}else if(17===m){for(C=v+3;u>>=v)),h>>>=3,u-=3}else{for(C=v+7;u>>=v)),h>>>=7,u-=7}if(n.have+f>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=30;break}for(;f--;)n.lens[n.have++]=k}}if(30===n.mode)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,S={bits:n.lenbits},F=qi(1,n.lens,0,n.nlen,n.lencode,0,n.work,S),n.lenbits=S.bits,F){t.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,S={bits:n.distbits},F=qi(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,S),n.distbits=S.bits,F){t.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===e)break t;case 20:n.mode=21;case 21:if(s>=6&&l>=258){t.next_out=a,t.avail_out=l,t.next_in=o,t.avail_in=s,n.hold=h,n.bits=u,Mi(t,d),a=t.next_out,i=t.output,l=t.avail_out,o=t.next_in,r=t.input,s=t.avail_in,h=n.hold,u=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;y=(A=n.lencode[h&(1<>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>b)])>>>16&255,m=65535&A,!(b+(v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=b,u-=b,n.back+=b}if(h>>>=v,u-=v,n.back+=v,n.length=m,0===y){n.mode=26;break}if(32&y){n.back=-1,n.mode=12;break}if(64&y){t.msg="invalid literal/length code",n.mode=30;break}n.extra=15&y,n.mode=22;case 22:if(n.extra){for(C=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;y=(A=n.distcode[h&(1<>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>b)])>>>16&255,m=65535&A,!(b+(v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=b,u-=b,n.back+=b}if(h>>>=v,u-=v,n.back+=v,64&y){t.msg="invalid distance code",n.mode=30;break}n.offset=m,n.extra=15&y,n.mode=24;case 24:if(n.extra){for(C=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===l)break t;if(f=d-l,n.offset>f){if((f=n.offset-f)>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=30;break}f>n.wnext?(f-=n.wnext,p=n.wsize-f):p=n.wnext-f,f>n.length&&(f=n.length),g=n.window}else g=i,p=a-n.offset,f=n.length;f>l&&(f=l),l-=f,n.length-=f;do{i[a++]=g[p++]}while(--f);0===n.length&&(n.mode=21);break;case 26:if(0===l)break t;i[a++]=n.length,l--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break t;s--,h|=r[o++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Di,this.strm.avail_out=0;var n=to.inflateInit2(this.strm,e.windowBits);if(n!==eo.Z_OK)throw new Error(ri[n]);if(this.header=new no,to.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=Ti(e.dictionary):"[object ArrayBuffer]"===ro.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=to.inflateSetDictionary(this.strm,e.dictionary))!==eo.Z_OK))throw new Error(ri[n])}function oo(t,e){var n=new io(e);if(n.push(t,!0),n.err)throw n.msg||ri[n.err];return n.result}io.prototype.push=function(t,e){var n,r,i,o,a,s=this.strm,l=this.options.chunkSize,h=this.options.dictionary,u=!1;if(this.ended)return!1;r=e===~~e?e:!0===e?eo.Z_FINISH:eo.Z_NO_FLUSH,"string"==typeof t?s.input=zi(t):"[object ArrayBuffer]"===ro.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new br.Buf8(l),s.next_out=0,s.avail_out=l),(n=to.inflate(s,eo.Z_NO_FLUSH))===eo.Z_NEED_DICT&&h&&(n=to.inflateSetDictionary(this.strm,h)),n===eo.Z_BUF_ERROR&&!0===u&&(n=eo.Z_OK,u=!1),n!==eo.Z_STREAM_END&&n!==eo.Z_OK)return this.onEnd(n),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&n!==eo.Z_STREAM_END&&(0!==s.avail_in||r!==eo.Z_FINISH&&r!==eo.Z_SYNC_FLUSH)||("string"===this.options.to?(i=Oi(s.output,s.next_out),o=s.next_out-i,a=Ri(s.output,i),s.next_out=o,s.avail_out=l-o,o&&br.arraySet(s.output,s.output,i,o,0),this.onData(a)):this.onData(br.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(u=!0)}while((s.avail_in>0||0===s.avail_out)&&n!==eo.Z_STREAM_END);return n===eo.Z_STREAM_END&&(r=eo.Z_FINISH),r===eo.Z_FINISH?(n=to.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===eo.Z_OK):r!==eo.Z_SYNC_FLUSH||(this.onEnd(eo.Z_OK),s.avail_out=0,!0)},io.prototype.onData=function(t){this.chunks.push(t)},io.prototype.onEnd=function(t){t===eo.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=br.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var ao={Inflate:io,inflate:oo,inflateRaw:function(t,e){return(e=e||{}).raw=!0,oo(t,e)},ungzip:oo},so={};(0,br.assign)(so,ji,ao,eo);var lo=so,ho=function(){function t(t,e){this.major=String(t),this.minor=String(e)}return t.prototype.toString=function(){var t=b(129);return"%PDF-"+this.major+"."+this.minor+"\n%"+t+t+t+t},t.prototype.sizeInBytes=function(){return 12+this.major.length+this.minor.length},t.prototype.copyBytesInto=function(t,e){var n=e;return t[e++]=mr.Percent,t[e++]=mr.P,t[e++]=mr.D,t[e++]=mr.F,t[e++]=mr.Dash,e+=k(this.major,t,e),t[e++]=mr.Period,e+=k(this.minor,t,e),t[e++]=mr.Newline,t[e++]=mr.Percent,t[e++]=129,t[e++]=129,t[e++]=129,t[e++]=129,e-n},t.forVersion=function(e,n){return new t(e,n)},t}(),uo=function(){function t(){}return t.prototype.clone=function(t){throw new Kn(this.constructor.name,"clone")},t.prototype.toString=function(){throw new Kn(this.constructor.name,"toString")},t.prototype.sizeInBytes=function(){throw new Kn(this.constructor.name,"sizeInBytes")},t.prototype.copyBytesInto=function(t,e){throw new Kn(this.constructor.name,"copyBytesInto")},t}(),co=function(t){function e(e){var n=t.call(this)||this;return n.numberValue=e,n.stringValue=ht(e),n}return n(e,t),e.prototype.asNumber=function(){return this.numberValue},e.prototype.value=function(){return this.numberValue},e.prototype.clone=function(){return e.of(this.numberValue)},e.prototype.toString=function(){return this.stringValue},e.prototype.sizeInBytes=function(){return this.stringValue.length},e.prototype.copyBytesInto=function(t,e){return e+=k(this.stringValue,t,e),this.stringValue.length},e.of=function(t){return new e(t)},e}(uo),fo=function(t){function e(e){var n=t.call(this)||this;return n.array=[],n.context=e,n}return n(e,t),e.prototype.size=function(){return this.array.length},e.prototype.push=function(t){this.array.push(t)},e.prototype.insert=function(t,e){this.array.splice(t,0,e)},e.prototype.indexOf=function(t){var e=this.array.indexOf(t);return-1===e?void 0:e},e.prototype.remove=function(t){this.array.splice(t,1)},e.prototype.set=function(t,e){this.array[t]=e},e.prototype.get=function(t){return this.array[t]},e.prototype.lookupMaybe=function(t){for(var e,n=[],r=1;r=mr.ExclamationPoint&&i<=mr.Tilde&&!mo[i]?l:"#"+m(h)}return r.encodedName=o,r}return n(e,t),e.prototype.asBytes=function(){for(var t=[],e="",n=!1,r=function(e){void 0!==e&&t.push(e),n=!1},i=1,o=this.encodedName.length;i=mr.Zero&&s<=mr.Nine||s>=mr.a&&s<=mr.f||s>=mr.A&&s<=mr.F?2!==(e+=a).length&&(l>="0"&&l<="9"||l>="a"&&l<="f"||l>="A"&&l<="F")||(r(parseInt(e,16)),e=""):r(s):s===mr.Hash?n=!0:r(s)}return new Uint8Array(t)},e.prototype.decodeText=function(){var t=this.asBytes();return String.fromCharCode.apply(String,Array.from(t))},e.prototype.asString=function(){return this.encodedName},e.prototype.value=function(){return this.encodedName},e.prototype.clone=function(){return this},e.prototype.toString=function(){return this.encodedName},e.prototype.sizeInBytes=function(){return this.encodedName.length},e.prototype.copyBytesInto=function(t,e){return e+=k(this.encodedName,t,e),this.encodedName.length},e.of=function(t){var n=function(t){return t.replace(/#([\dABCDEF]{2})/g,(function(t,e){return w(e)}))}(t),r=ko.get(n);return r||(r=new e(xo,n),ko.set(n,r)),r},e.Length=e.of("Length"),e.FlateDecode=e.of("FlateDecode"),e.Resources=e.of("Resources"),e.Font=e.of("Font"),e.XObject=e.of("XObject"),e.ExtGState=e.of("ExtGState"),e.Contents=e.of("Contents"),e.Type=e.of("Type"),e.Parent=e.of("Parent"),e.MediaBox=e.of("MediaBox"),e.Page=e.of("Page"),e.Annots=e.of("Annots"),e.TrimBox=e.of("TrimBox"),e.ArtBox=e.of("ArtBox"),e.BleedBox=e.of("BleedBox"),e.CropBox=e.of("CropBox"),e.Rotate=e.of("Rotate"),e.Title=e.of("Title"),e.Author=e.of("Author"),e.Subject=e.of("Subject"),e.Creator=e.of("Creator"),e.Keywords=e.of("Keywords"),e.Producer=e.of("Producer"),e.CreationDate=e.of("CreationDate"),e.ModDate=e.of("ModDate"),e}(uo),So=new(function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.asNull=function(){return null},e.prototype.clone=function(){return this},e.prototype.toString=function(){return"null"},e.prototype.sizeInBytes=function(){return 4},e.prototype.copyBytesInto=function(t,e){return t[e++]=mr.n,t[e++]=mr.u,t[e++]=mr.l,t[e++]=mr.l,4},e}(uo)),Co=function(t){function e(e,n){var r=t.call(this)||this;return r.dict=e,r.context=n,r}return n(e,t),e.prototype.keys=function(){return Array.from(this.dict.keys())},e.prototype.values=function(){return Array.from(this.dict.values())},e.prototype.entries=function(){return Array.from(this.dict.entries())},e.prototype.set=function(t,e){this.dict.set(t,e)},e.prototype.get=function(t,e){void 0===e&&(e=!1);var n=this.dict.get(t);if(n!==So||e)return n},e.prototype.has=function(t){var e=this.dict.get(t);return void 0!==e&&e!==So},e.prototype.lookupMaybe=function(t){for(var e,n=[],r=1;rthis.largestObjectNumber&&(this.largestObjectNumber=t.objectNumber)},t.prototype.nextRef=function(){return this.largestObjectNumber+=1,Ro.of(this.largestObjectNumber)},t.prototype.register=function(t){var e=this.nextRef();return this.assign(e,t),e},t.prototype.delete=function(t){return this.indirectObjects.delete(t)},t.prototype.lookupMaybe=function(t){for(var e=[],n=1;n1?(this.subsections.push([t]),this.chunkIdx+=1,this.chunkLength=1):(e.push(t),this.chunkLength+=1)},t.create=function(){return new t({ref:Ro.of(0,65535),offset:0,deleted:!0})},t.createEmpty=function(){return new t},t}(),qo=function(){function t(t){this.lastXRefOffset=String(t)}return t.prototype.toString=function(){return"startxref\n"+this.lastXRefOffset+"\n%%EOF"},t.prototype.sizeInBytes=function(){return 16+this.lastXRefOffset.length},t.prototype.copyBytesInto=function(t,e){var n=e;return t[e++]=mr.s,t[e++]=mr.t,t[e++]=mr.a,t[e++]=mr.r,t[e++]=mr.t,t[e++]=mr.x,t[e++]=mr.r,t[e++]=mr.e,t[e++]=mr.f,t[e++]=mr.Newline,e+=k(this.lastXRefOffset,t,e),t[e++]=mr.Newline,t[e++]=mr.Percent,t[e++]=mr.Percent,t[e++]=mr.E,t[e++]=mr.O,t[e++]=mr.F,e-n},t.forLastCrossRefSectionOffset=function(e){return new t(e)},t}(),Lo=function(){function t(t){this.dict=t}return t.prototype.toString=function(){return"trailer\n"+this.dict.toString()},t.prototype.sizeInBytes=function(){return 8+this.dict.sizeInBytes()},t.prototype.copyBytesInto=function(t,e){var n=e;return t[e++]=mr.t,t[e++]=mr.r,t[e++]=mr.a,t[e++]=mr.i,t[e++]=mr.l,t[e++]=mr.e,t[e++]=mr.r,t[e++]=mr.Newline,(e+=this.dict.copyBytesInto(t,e))-n},t.of=function(e){return new t(e)},t}(),Ko=function(t){function e(e,n,r){void 0===r&&(r=!0);var i=t.call(this,e.obj({}),r)||this;return i.objects=n,i.offsets=i.computeObjectOffsets(),i.offsetsString=i.computeOffsetsString(),i.dict.set(Fo.of("Type"),Fo.of("ObjStm")),i.dict.set(Fo.of("N"),co.of(i.objects.length)),i.dict.set(Fo.of("First"),co.of(i.offsetsString.length)),i}return n(e,t),e.prototype.getObjectsCount=function(){return this.objects.length},e.prototype.clone=function(t){return e.withContextAndObjects(t||this.dict.context,this.objects.slice(),this.encode)},e.prototype.getContentsString=function(){for(var t=this.offsetsString,e=0,n=this.objects.length;e1&&(t.push(e),t.push(o.ref.objectNumber),e=0),e+=1}return t.push(e),t},i.computeEntryTuples=function(){for(var t=new Array(i.entries.length),e=0,n=i.entries.length;ee[0]&&(e[0]=h),u>e[1]&&(e[1]=u),c>e[2]&&(e[2]=c)}return e},i.entries=n||[],i.entryTuplesCache=Ln.populatedBy(i.computeEntryTuples),i.maxByteWidthsCache=Ln.populatedBy(i.computeMaxEntryByteWidths),i.indexCache=Ln.populatedBy(i.computeIndex),e.set(Fo.of("Type"),Fo.of("XRef")),i}return n(e,t),e.prototype.addDeletedEntry=function(t,e){var n=Do.Deleted;this.entries.push({type:n,ref:t,nextFreeObjectNumber:e}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()},e.prototype.addUncompressedEntry=function(t,e){var n=Do.Uncompressed;this.entries.push({type:n,ref:t,offset:e}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()},e.prototype.addCompressedEntry=function(t,e,n){var r=Do.Compressed;this.entries.push({type:r,ref:t,objectStreamRef:e,index:n}),this.entryTuplesCache.invalidate(),this.maxByteWidthsCache.invalidate(),this.indexCache.invalidate(),this.contentsCache.invalidate()},e.prototype.clone=function(t){var n=this.dict,r=this.entries,i=this.encode;return e.of(n.clone(t),r.slice(),i)},e.prototype.getContentsString=function(){for(var t=this.entryTuplesCache.access(),e=this.maxByteWidthsCache.access(),n="",r=0,i=t.length;r=0;d--)n+=(h[d]||0).toString(2);for(d=e[1]-1;d>=0;d--)n+=(u[d]||0).toString(2);for(d=e[2]-1;d>=0;d--)n+=(c[d]||0).toString(2)}return n},e.prototype.getUnencodedContents=function(){for(var t=this.entryTuplesCache.access(),e=this.maxByteWidthsCache.access(),n=new Uint8Array(this.getUnencodedContentsSize()),r=0,i=0,o=t.length;i=0;f--)n[r++]=u[f]||0;for(f=e[1]-1;f>=0;f--)n[r++]=c[f]||0;for(f=e[2]-1;f>=0;f--)n[r++]=d[f]||0}return n},e.prototype.getUnencodedContentsSize=function(){var t=this.maxByteWidthsCache.access();return L(t)*this.entries.length},e.prototype.updateDict=function(){t.prototype.updateDict.call(this);var e=this.maxByteWidthsCache.access(),n=this.indexCache.access(),r=this.dict.context;this.dict.set(Fo.of("W"),r.obj(e)),this.dict.set(Fo.of("Index"),r.obj(n))},e.create=function(t,n){void 0===n&&(n=!0);var r=new e(t,[],n);return r.addDeletedEntry(Ro.of(0,65535),0),r},e.of=function(t,n,r){return void 0===r&&(r=!0),new e(t,n,r)},e}(No),Zo=function(t){function e(e,n,r,i){var o=t.call(this,e,n)||this;return o.encodeStreams=r,o.objectsPerStream=i,o}return n(e,t),e.prototype.computeBufferSize=function(){return i(this,void 0,void 0,(function(){var t,e,n,r,i,a,s,l,h,u,c,d,f,p,g,v,y,m,b;return o(this,(function(o){switch(o.label){case 0:t=this.context.largestObjectNumber+1,e=ho.forVersion(1,7),n=e.sizeInBytes()+2,r=Xo.create(this.createTrailerDict(),this.encodeStreams),i=[],a=[],s=[],l=this.context.enumerateIndirectObjects(),d=0,f=l.length,o.label=1;case 1:return d"},e.prototype.sizeInBytes=function(){return this.value.length+2},e.prototype.copyBytesInto=function(t,e){return t[e++]=mr.LessThan,e+=k(this.value,t,e),t[e++]=mr.GreaterThan,this.value.length+2},e.of=function(t){return new e(t)},e.fromText=function(t){for(var n=Z(t),r="",i=0,o=n.length;i> def\n/CMapName /Adobe-Identity-UCS def\n/CMapType 2 def\n1 begincodespacerange\n<0000>\nendcodespacerange\n"+t.length+" beginbfchar\n"+t.map((function(t){return t[0]+" "+t[1]})).join("\n")+"\nendbfchar\nendcmap\nCMapName currentdict /CMap defineresource pop\nend\nend"},$o=function(){for(var t=[],e=0;e"},ta=function(t){return y(t,4)},ea=function(t){if(Y(t))return ta(t);if(J(t)){var e=Q(t),n=$(t);return""+ta(e)+ta(n)}var r=m(t);throw new Error("0x"+r+" is not a valid UTF-8 or UTF-16 codepoint.")},na=function(t){function e(e){var n=t.call(this)||this;return n.value=e,n}return n(e,t),e.prototype.asBytes=function(){for(var t=[],e="",n=!1,r=function(e){void 0!==e&&t.push(e),n=!1},i=0,o=this.value.length;i=mr.Zero&&s<=mr.Seven?3!==(e+=a).length&&l>="0"&&l<="7"||(r(parseInt(e,8)),e=""):r(s):s===mr.BackSlash?n=!0:r(s)}return new Uint8Array(t)},e.prototype.decodeText=function(){var t=this.asBytes();return lt(t)?et(t):qn(t)},e.prototype.decodeDate=function(){var t=this.decodeText(),e=B(t);if(!e)throw new tr(t);return e},e.prototype.asString=function(){return this.value},e.prototype.clone=function(){return e.of(this.value)},e.prototype.toString=function(){return"("+this.value+")"},e.prototype.sizeInBytes=function(){return this.value.length+2},e.prototype.copyBytesInto=function(t,e){return t[e++]=mr.LeftParen,e+=k(this.value,t,e),t[e++]=mr.RightParen,this.value.length+2},e.of=function(t){return new e(t)},e.fromDate=function(t){return new e("D:"+x(String(t.getUTCFullYear()),4,"0")+x(String(t.getUTCMonth()+1),2,"0")+x(String(t.getUTCDate()),2,"0")+x(String(t.getUTCHours()),2,"0")+x(String(t.getUTCMinutes()),2,"0")+x(String(t.getUTCSeconds()),2,"0")+"Z")},e}(uo),ra=function(){function t(t,e,n,r){var i=this;this.allGlyphsInFontSortedById=function(){for(var t=new Array(i.font.characterSet.length),e=0,n=t.length;e=0;)t[e]=0}var da=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],fa=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],pa=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ga=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],va=new Array(576);ca(va);var ya=new Array(60);ca(ya);var ma=new Array(512);ca(ma);var ba=new Array(256);ca(ba);var wa=new Array(29);ca(wa);var xa,ka,Fa,Sa=new Array(30);function Ca(t,e,n,r,i){this.static_tree=t,this.extra_bits=e,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=t&&t.length}function Aa(t,e){this.dyn_tree=t,this.max_code=0,this.stat_desc=e}function Ta(t){return t<256?ma[t]:ma[256+(t>>>7)]}function Pa(t,e){t.pending_buf[t.pending++]=255&e,t.pending_buf[t.pending++]=e>>>8&255}function za(t,e,n){t.bi_valid>16-n?(t.bi_buf|=e<>16-t.bi_valid,t.bi_valid+=n-16):(t.bi_buf|=e<>>=1,n<<=1}while(--e>0);return n>>>1}function Da(t,e,n){var r,i,o=new Array(16),a=0;for(r=1;r<=15;r++)o[r]=a=a+n[r-1]<<1;for(i=0;i<=e;i++){var s=t[2*i+1];0!==s&&(t[2*i]=Oa(o[s]++,s))}}function Ba(t){var e;for(e=0;e<286;e++)t.dyn_ltree[2*e]=0;for(e=0;e<30;e++)t.dyn_dtree[2*e]=0;for(e=0;e<19;e++)t.bl_tree[2*e]=0;t.dyn_ltree[512]=1,t.opt_len=t.static_len=0,t.last_lit=t.matches=0}function Na(t){t.bi_valid>8?Pa(t,t.bi_buf):t.bi_valid>0&&(t.pending_buf[t.pending++]=t.bi_buf),t.bi_buf=0,t.bi_valid=0}function Ea(t,e,n,r){var i=2*e,o=2*n;return t[i]>1;n>=1;n--)ja(t,o,n);i=l;do{n=t.heap[1],t.heap[1]=t.heap[t.heap_len--],ja(t,o,1),r=t.heap[1],t.heap[--t.heap_max]=n,t.heap[--t.heap_max]=r,o[2*i]=o[2*n]+o[2*r],t.depth[i]=(t.depth[n]>=t.depth[r]?t.depth[n]:t.depth[r])+1,o[2*n+1]=o[2*r+1]=i,t.heap[1]=i++,ja(t,o,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],function(t,e){var n,r,i,o,a,s,l=e.dyn_tree,h=e.max_code,u=e.stat_desc.static_tree,c=e.stat_desc.has_stree,d=e.stat_desc.extra_bits,f=e.stat_desc.extra_base,p=e.stat_desc.max_length,g=0;for(o=0;o<=15;o++)t.bl_count[o]=0;for(l[2*t.heap[t.heap_max]+1]=0,n=t.heap_max+1;n<573;n++)(o=l[2*l[2*(r=t.heap[n])+1]+1]+1)>p&&(o=p,g++),l[2*r+1]=o,r>h||(t.bl_count[o]++,a=0,r>=f&&(a=d[r-f]),s=l[2*r],t.opt_len+=s*(o+a),c&&(t.static_len+=s*(u[2*r+1]+a)));if(0!==g){do{for(o=p-1;0===t.bl_count[o];)o--;t.bl_count[o]--,t.bl_count[o+1]+=2,t.bl_count[p]--,g-=2}while(g>0);for(o=p;0!==o;o--)for(r=t.bl_count[o];0!==r;)(i=t.heap[--n])>h||(l[2*i+1]!==o&&(t.opt_len+=(o-l[2*i+1])*l[2*i],l[2*i+1]=o),r--)}}(t,e),Da(o,h,t.bl_count)}function Ua(t,e,n){var r,i,o=-1,a=e[1],s=0,l=7,h=4;for(0===a&&(l=138,h=3),e[2*(n+1)+1]=65535,r=0;r<=n;r++)i=a,a=e[2*(r+1)+1],++s>=7;r<30;r++)for(Sa[r]=i<<7,t=0;t<1<0?(2===t.strm.data_type&&(t.strm.data_type=function(t){var e,n=4093624447;for(e=0;e<=31;e++,n>>>=1)if(1&n&&0!==t.dyn_ltree[2*e])return 0;if(0!==t.dyn_ltree[18]||0!==t.dyn_ltree[20]||0!==t.dyn_ltree[26])return 1;for(e=32;e<256;e++)if(0!==t.dyn_ltree[2*e])return 1;return 0}(t)),Ia(t,t.l_desc),Ia(t,t.d_desc),a=function(t){var e;for(Ua(t,t.dyn_ltree,t.l_desc.max_code),Ua(t,t.dyn_dtree,t.d_desc.max_code),Ia(t,t.bl_desc),e=18;e>=3&&0===t.bl_tree[2*ga[e]+1];e--);return t.opt_len+=3*(e+1)+5+5+4,e}(t),i=t.opt_len+3+7>>>3,(o=t.static_len+3+7>>>3)<=i&&(i=o)):i=o=n+5,n+4<=i&&-1!==e?qa(t,e,n,r):4===t.strategy||o===i?(za(t,2+(r?1:0),3),Ma(t,va,ya)):(za(t,4+(r?1:0),3),function(t,e,n,r){var i;for(za(t,e-257,5),za(t,n-1,5),za(t,r-4,4),i=0;i>>8&255,t.pending_buf[t.d_buf+2*t.last_lit+1]=255&e,t.pending_buf[t.l_buf+t.last_lit]=255&n,t.last_lit++,0===e?t.dyn_ltree[2*n]++:(t.matches++,e--,t.dyn_ltree[2*(ba[n]+256+1)]++,t.dyn_dtree[2*Ta(e)]++),t.last_lit===t.lit_bufsize-1},_tr_align:function(t){za(t,2,3),Ra(t,256,va),function(t){16===t.bi_valid?(Pa(t,t.bi_buf),t.bi_buf=0,t.bi_valid=0):t.bi_valid>=8&&(t.pending_buf[t.pending++]=255&t.bi_buf,t.bi_buf>>=8,t.bi_valid-=8)}(t)}};var Ka=function(t,e,n,r){for(var i=65535&t|0,o=t>>>16&65535|0,a=0;0!==n;){n-=a=n>2e3?2e3:n;do{o=o+(i=i+e[r++]|0)|0}while(--a);i%=65521,o%=65521}return i|o<<16|0};var Ga=function(){for(var t,e=[],n=0;n<256;n++){t=n;for(var r=0;r<8;r++)t=1&t?3988292384^t>>>1:t>>>1;e[n]=t}return e}();var Ha,_a=function(t,e,n,r){var i=Ga,o=r+n;t^=-1;for(var a=r;a>>8^i[255&(t^e[a])];return-1^t},Xa={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};function Za(t,e){return t.msg=Xa[e],e}function Ya(t){return(t<<1)-(t>4?9:0)}function Ja(t){for(var e=t.length;--e>=0;)t[e]=0}function Qa(t){var e=t.state,n=e.pending;n>t.avail_out&&(n=t.avail_out),0!==n&&(ua.arraySet(t.output,e.pending_buf,e.pending_out,n,t.next_out),t.next_out+=n,e.pending_out+=n,t.total_out+=n,t.avail_out-=n,e.pending-=n,0===e.pending&&(e.pending_out=0))}function $a(t,e){La._tr_flush_block(t,t.block_start>=0?t.block_start:-1,t.strstart-t.block_start,e),t.block_start=t.strstart,Qa(t.strm)}function ts(t,e){t.pending_buf[t.pending++]=e}function es(t,e){t.pending_buf[t.pending++]=e>>>8&255,t.pending_buf[t.pending++]=255&e}function ns(t,e,n,r){var i=t.avail_in;return i>r&&(i=r),0===i?0:(t.avail_in-=i,ua.arraySet(e,t.input,t.next_in,i,n),1===t.state.wrap?t.adler=Ka(t.adler,e,i,n):2===t.state.wrap&&(t.adler=_a(t.adler,e,i,n)),t.next_in+=i,t.total_in+=i,i)}function rs(t,e){var n,r,i=t.max_chain_length,o=t.strstart,a=t.prev_length,s=t.nice_match,l=t.strstart>t.w_size-262?t.strstart-(t.w_size-262):0,h=t.window,u=t.w_mask,c=t.prev,d=t.strstart+258,f=h[o+a-1],p=h[o+a];t.prev_length>=t.good_match&&(i>>=2),s>t.lookahead&&(s=t.lookahead);do{if(h[(n=e)+a]===p&&h[n+a-1]===f&&h[n]===h[o]&&h[++n]===h[o+1]){o+=2,n++;do{}while(h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&h[++o]===h[++n]&&oa){if(t.match_start=e,a=r,r>=s)break;f=h[o+a-1],p=h[o+a]}}}while((e=c[e&u])>l&&0!=--i);return a<=t.lookahead?a:t.lookahead}function is(t){var e,n,r,i,o,a=t.w_size;do{if(i=t.window_size-t.lookahead-t.strstart,t.strstart>=a+(a-262)){ua.arraySet(t.window,t.window,a,a,0),t.match_start-=a,t.strstart-=a,t.block_start-=a,e=n=t.hash_size;do{r=t.head[--e],t.head[e]=r>=a?r-a:0}while(--n);e=n=a;do{r=t.prev[--e],t.prev[e]=r>=a?r-a:0}while(--n);i+=a}if(0===t.strm.avail_in)break;if(n=ns(t.strm,t.window,t.strstart+t.lookahead,i),t.lookahead+=n,t.lookahead+t.insert>=3)for(o=t.strstart-t.insert,t.ins_h=t.window[o],t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<=3)if(r=La._tr_tally(t,t.strstart-t.match_start,t.match_length-3),t.lookahead-=t.match_length,t.match_length<=t.max_lazy_match&&t.lookahead>=3){t.match_length--;do{t.strstart++,t.ins_h=(t.ins_h<=3&&(t.ins_h=(t.ins_h<4096)&&(t.match_length=2)),t.prev_length>=3&&t.match_length<=t.prev_length){i=t.strstart+t.lookahead-3,r=La._tr_tally(t,t.strstart-1-t.prev_match,t.prev_length-3),t.lookahead-=t.prev_length-1,t.prev_length-=2;do{++t.strstart<=i&&(t.ins_h=(t.ins_h<15&&(a=2,r-=16),i<1||i>9||8!==n||r<8||r>15||e<0||e>9||o<0||o>4)return Za(t,-2);8===r&&(r=9);var s=new ls;return t.state=s,s.strm=t,s.wrap=a,s.gzhead=null,s.w_bits=r,s.w_size=1<t.pending_buf_size-5&&(n=t.pending_buf_size-5);;){if(t.lookahead<=1){if(is(t),0===t.lookahead&&0===e)return 1;if(0===t.lookahead)break}t.strstart+=t.lookahead,t.lookahead=0;var r=t.block_start+n;if((0===t.strstart||t.strstart>=r)&&(t.lookahead=t.strstart-r,t.strstart=r,$a(t,!1),0===t.strm.avail_out))return 1;if(t.strstart-t.block_start>=t.w_size-262&&($a(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?($a(t,!0),0===t.strm.avail_out?3:4):(t.strstart>t.block_start&&($a(t,!1),t.strm.avail_out),1)})),new ss(4,4,8,4,os),new ss(4,5,16,8,os),new ss(4,6,32,32,os),new ss(4,4,16,16,as),new ss(8,16,32,32,as),new ss(8,16,128,128,as),new ss(8,32,128,256,as),new ss(32,128,258,1024,as),new ss(32,258,258,4096,as)];var ds={deflateInit:function(t,e){return cs(t,e,8,15,8,0)},deflateInit2:cs,deflateReset:us,deflateResetKeep:hs,deflateSetHeader:function(t,e){return t&&t.state?2!==t.state.wrap?-2:(t.state.gzhead=e,0):-2},deflate:function(t,e){var n,r,i,o;if(!t||!t.state||e>5||e<0)return t?Za(t,-2):-2;if(r=t.state,!t.output||!t.input&&0!==t.avail_in||666===r.status&&4!==e)return Za(t,0===t.avail_out?-5:-2);if(r.strm=t,n=r.last_flush,r.last_flush=e,42===r.status)if(2===r.wrap)t.adler=0,ts(r,31),ts(r,139),ts(r,8),r.gzhead?(ts(r,(r.gzhead.text?1:0)+(r.gzhead.hcrc?2:0)+(r.gzhead.extra?4:0)+(r.gzhead.name?8:0)+(r.gzhead.comment?16:0)),ts(r,255&r.gzhead.time),ts(r,r.gzhead.time>>8&255),ts(r,r.gzhead.time>>16&255),ts(r,r.gzhead.time>>24&255),ts(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),ts(r,255&r.gzhead.os),r.gzhead.extra&&r.gzhead.extra.length&&(ts(r,255&r.gzhead.extra.length),ts(r,r.gzhead.extra.length>>8&255)),r.gzhead.hcrc&&(t.adler=_a(t.adler,r.pending_buf,r.pending,0)),r.gzindex=0,r.status=69):(ts(r,0),ts(r,0),ts(r,0),ts(r,0),ts(r,0),ts(r,9===r.level?2:r.strategy>=2||r.level<2?4:0),ts(r,3),r.status=113);else{var a=8+(r.w_bits-8<<4)<<8;a|=(r.strategy>=2||r.level<2?0:r.level<6?1:6===r.level?2:3)<<6,0!==r.strstart&&(a|=32),a+=31-a%31,r.status=113,es(r,a),0!==r.strstart&&(es(r,t.adler>>>16),es(r,65535&t.adler)),t.adler=1}if(69===r.status)if(r.gzhead.extra){for(i=r.pending;r.gzindex<(65535&r.gzhead.extra.length)&&(r.pending!==r.pending_buf_size||(r.gzhead.hcrc&&r.pending>i&&(t.adler=_a(t.adler,r.pending_buf,r.pending-i,i)),Qa(t),i=r.pending,r.pending!==r.pending_buf_size));)ts(r,255&r.gzhead.extra[r.gzindex]),r.gzindex++;r.gzhead.hcrc&&r.pending>i&&(t.adler=_a(t.adler,r.pending_buf,r.pending-i,i)),r.gzindex===r.gzhead.extra.length&&(r.gzindex=0,r.status=73)}else r.status=73;if(73===r.status)if(r.gzhead.name){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=_a(t.adler,r.pending_buf,r.pending-i,i)),Qa(t),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexi&&(t.adler=_a(t.adler,r.pending_buf,r.pending-i,i)),0===o&&(r.gzindex=0,r.status=91)}else r.status=91;if(91===r.status)if(r.gzhead.comment){i=r.pending;do{if(r.pending===r.pending_buf_size&&(r.gzhead.hcrc&&r.pending>i&&(t.adler=_a(t.adler,r.pending_buf,r.pending-i,i)),Qa(t),i=r.pending,r.pending===r.pending_buf_size)){o=1;break}o=r.gzindexi&&(t.adler=_a(t.adler,r.pending_buf,r.pending-i,i)),0===o&&(r.status=103)}else r.status=103;if(103===r.status&&(r.gzhead.hcrc?(r.pending+2>r.pending_buf_size&&Qa(t),r.pending+2<=r.pending_buf_size&&(ts(r,255&t.adler),ts(r,t.adler>>8&255),t.adler=0,r.status=113)):r.status=113),0!==r.pending){if(Qa(t),0===t.avail_out)return r.last_flush=-1,0}else if(0===t.avail_in&&Ya(e)<=Ya(n)&&4!==e)return Za(t,-5);if(666===r.status&&0!==t.avail_in)return Za(t,-5);if(0!==t.avail_in||0!==r.lookahead||0!==e&&666!==r.status){var s=2===r.strategy?function(t,e){for(var n;;){if(0===t.lookahead&&(is(t),0===t.lookahead)){if(0===e)return 1;break}if(t.match_length=0,n=La._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++,n&&($a(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?($a(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&($a(t,!1),0===t.strm.avail_out)?1:2}(r,e):3===r.strategy?function(t,e){for(var n,r,i,o,a=t.window;;){if(t.lookahead<=258){if(is(t),t.lookahead<=258&&0===e)return 1;if(0===t.lookahead)break}if(t.match_length=0,t.lookahead>=3&&t.strstart>0&&(r=a[i=t.strstart-1])===a[++i]&&r===a[++i]&&r===a[++i]){o=t.strstart+258;do{}while(r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&r===a[++i]&&it.lookahead&&(t.match_length=t.lookahead)}if(t.match_length>=3?(n=La._tr_tally(t,1,t.match_length-3),t.lookahead-=t.match_length,t.strstart+=t.match_length,t.match_length=0):(n=La._tr_tally(t,0,t.window[t.strstart]),t.lookahead--,t.strstart++),n&&($a(t,!1),0===t.strm.avail_out))return 1}return t.insert=0,4===e?($a(t,!0),0===t.strm.avail_out?3:4):t.last_lit&&($a(t,!1),0===t.strm.avail_out)?1:2}(r,e):Ha[r.level].func(r,e);if(3!==s&&4!==s||(r.status=666),1===s||3===s)return 0===t.avail_out&&(r.last_flush=-1),0;if(2===s&&(1===e?La._tr_align(r):5!==e&&(La._tr_stored_block(r,0,0,!1),3===e&&(Ja(r.head),0===r.lookahead&&(r.strstart=0,r.block_start=0,r.insert=0))),Qa(t),0===t.avail_out))return r.last_flush=-1,0}return 4!==e?0:r.wrap<=0?1:(2===r.wrap?(ts(r,255&t.adler),ts(r,t.adler>>8&255),ts(r,t.adler>>16&255),ts(r,t.adler>>24&255),ts(r,255&t.total_in),ts(r,t.total_in>>8&255),ts(r,t.total_in>>16&255),ts(r,t.total_in>>24&255)):(es(r,t.adler>>>16),es(r,65535&t.adler)),Qa(t),r.wrap>0&&(r.wrap=-r.wrap),0!==r.pending?0:1)},deflateEnd:function(t){var e;return t&&t.state?42!==(e=t.state.status)&&69!==e&&73!==e&&91!==e&&103!==e&&113!==e&&666!==e?Za(t,-2):(t.state=null,113===e?Za(t,-3):0):-2},deflateSetDictionary:function(t,e){var n,r,i,o,a,s,l,h,u=e.length;if(!t||!t.state)return-2;if(2===(o=(n=t.state).wrap)||1===o&&42!==n.status||n.lookahead)return-2;for(1===o&&(t.adler=Ka(t.adler,e,u,0)),n.wrap=0,u>=n.w_size&&(0===o&&(Ja(n.head),n.strstart=0,n.block_start=0,n.insert=0),h=new ua.Buf8(n.w_size),ua.arraySet(h,e,u-n.w_size,n.w_size,0),e=h,u=n.w_size),a=t.avail_in,s=t.next_in,l=t.input,t.avail_in=u,t.next_in=0,t.input=e,is(n);n.lookahead>=3;){r=n.strstart,i=n.lookahead-2;do{n.ins_h=(n.ins_h<=252?6:vs>=248?5:vs>=240?4:vs>=224?3:vs>=192?2:1;gs[254]=gs[254]=1;function ys(t,e){if(e<65534&&(t.subarray&&ps||!t.subarray&&fs))return String.fromCharCode.apply(null,ua.shrinkBuf(t,e));for(var n="",r=0;r>>6,e[o++]=128|63&n):n<65536?(e[o++]=224|n>>>12,e[o++]=128|n>>>6&63,e[o++]=128|63&n):(e[o++]=240|n>>>18,e[o++]=128|n>>>12&63,e[o++]=128|n>>>6&63,e[o++]=128|63&n);return e},bs=function(t){return ys(t,t.length)},ws=function(t){for(var e=new ua.Buf8(t.length),n=0,r=e.length;n4)s[r++]=65533,n+=o-1;else{for(i&=2===o?31:3===o?15:7;o>1&&n1?s[r++]=65533:i<65536?s[r++]=i:(i-=65536,s[r++]=55296|i>>10&1023,s[r++]=56320|1023&i)}return ys(s,r)},ks=function(t,e){var n;for((e=e||t.length)>t.length&&(e=t.length),n=e-1;n>=0&&128==(192&t[n]);)n--;return n<0||0===n?e:n+gs[t[n]]>e?n:e};var Fs=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Ss=Object.prototype.toString;function Cs(t){if(!(this instanceof Cs))return new Cs(t);this.options=ua.assign({level:-1,method:8,chunkSize:16384,windowBits:15,memLevel:8,strategy:0,to:""},t||{});var e=this.options;e.raw&&e.windowBits>0?e.windowBits=-e.windowBits:e.gzip&&e.windowBits>0&&e.windowBits<16&&(e.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Fs,this.strm.avail_out=0;var n=ds.deflateInit2(this.strm,e.level,e.method,e.windowBits,e.memLevel,e.strategy);if(0!==n)throw new Error(Xa[n]);if(e.header&&ds.deflateSetHeader(this.strm,e.header),e.dictionary){var r;if(r="string"==typeof e.dictionary?ms(e.dictionary):"[object ArrayBuffer]"===Ss.call(e.dictionary)?new Uint8Array(e.dictionary):e.dictionary,0!==(n=ds.deflateSetDictionary(this.strm,r)))throw new Error(Xa[n]);this._dict_set=!0}}function As(t,e){var n=new Cs(e);if(n.push(t,!0),n.err)throw n.msg||Xa[n.err];return n.result}Cs.prototype.push=function(t,e){var n,r,i=this.strm,o=this.options.chunkSize;if(this.ended)return!1;r=e===~~e?e:!0===e?4:0,"string"==typeof t?i.input=ms(t):"[object ArrayBuffer]"===Ss.call(t)?i.input=new Uint8Array(t):i.input=t,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new ua.Buf8(o),i.next_out=0,i.avail_out=o),1!==(n=ds.deflate(i,r))&&0!==n)return this.onEnd(n),this.ended=!0,!1;0!==i.avail_out&&(0!==i.avail_in||4!==r&&2!==r)||("string"===this.options.to?this.onData(bs(ua.shrinkBuf(i.output,i.next_out))):this.onData(ua.shrinkBuf(i.output,i.next_out)))}while((i.avail_in>0||0===i.avail_out)&&1!==n);return 4===r?(n=ds.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,0===n):2!==r||(this.onEnd(0),i.avail_out=0,!0)},Cs.prototype.onData=function(t){this.chunks.push(t)},Cs.prototype.onEnd=function(t){0===t&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=ua.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Ts={Deflate:Cs,deflate:As,deflateRaw:function(t,e){return(e=e||{}).raw=!0,As(t,e)},gzip:function(t,e){return(e=e||{}).gzip=!0,As(t,e)}},Ps=function(t,e){var n,r,i,o,a,s,l,h,u,c,d,f,p,g,v,y,m,b,w,x,k,F,S,C,A;n=t.state,r=t.next_in,C=t.input,i=r+(t.avail_in-5),o=t.next_out,A=t.output,a=o-(e-t.avail_out),s=o+(t.avail_out-257),l=n.dmax,h=n.wsize,u=n.whave,c=n.wnext,d=n.window,f=n.hold,p=n.bits,g=n.lencode,v=n.distcode,y=(1<>>=w=b>>>24,p-=w,0===(w=b>>>16&255))A[o++]=65535&b;else{if(!(16&w)){if(0==(64&w)){b=g[(65535&b)+(f&(1<>>=w,p-=w),p<15&&(f+=C[r++]<>>=w=b>>>24,p-=w,!(16&(w=b>>>16&255))){if(0==(64&w)){b=v[(65535&b)+(f&(1<l){t.msg="invalid distance too far back",n.mode=30;break t}if(f>>>=w,p-=w,k>(w=o-a)){if((w=k-w)>u&&n.sane){t.msg="invalid distance too far back",n.mode=30;break t}if(F=0,S=d,0===c){if(F+=h-w,w2;)A[o++]=S[F++],A[o++]=S[F++],A[o++]=S[F++],x-=3;x&&(A[o++]=S[F++],x>1&&(A[o++]=S[F++]))}else{F=o-k;do{A[o++]=A[F++],A[o++]=A[F++],A[o++]=A[F++],x-=3}while(x>2);x&&(A[o++]=A[F++],x>1&&(A[o++]=A[F++]))}break}}break}}while(r>3,f&=(1<<(p-=x<<3))-1,t.next_in=r,t.next_out=o,t.avail_in=r=1&&0===R[x];x--);if(k>x&&(k=x),0===x)return i[o++]=20971520,i[o++]=20971520,s.bits=1,0;for(w=1;w0&&(0===t||1!==x))return-1;for(O[1]=0,m=1;m<15;m++)O[m+1]=O[m]+R[m];for(b=0;b852||2===t&&A>592)return 1;for(;;){p=m-S,a[b]f?(g=D[B+a[b]],v=P[z+a[b]]):(g=96,v=0),l=1<>S)+(h-=l)]=p<<24|g<<16|v|0}while(0!==h);for(l=1<>=1;if(0!==l?(T&=l-1,T+=l):T=0,b++,0==--R[m]){if(m===x)break;m=e[n+a[b]]}if(m>k&&(T&c)!==u){for(0===S&&(S=k),d+=w,C=1<<(F=m-S);F+S852||2===t&&A>592)return 1;i[u=T&c]=k<<24|F<<16|d-o|0}}return 0!==T&&(i[d+T]=m-S<<24|64<<16|0),s.bits=k,0};function Ns(t){return(t>>>24&255)+(t>>>8&65280)+((65280&t)<<8)+((255&t)<<24)}function Es(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new ua.Buf16(320),this.work=new ua.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function js(t){var e;return t&&t.state?(e=t.state,t.total_in=t.total_out=e.total=0,t.msg="",e.wrap&&(t.adler=1&e.wrap),e.mode=1,e.last=0,e.havedict=0,e.dmax=32768,e.head=null,e.hold=0,e.bits=0,e.lencode=e.lendyn=new ua.Buf32(852),e.distcode=e.distdyn=new ua.Buf32(592),e.sane=1,e.back=-1,0):-2}function Ms(t){var e;return t&&t.state?((e=t.state).wsize=0,e.whave=0,e.wnext=0,js(t)):-2}function Is(t,e){var n,r;return t&&t.state?(r=t.state,e<0?(n=0,e=-e):(n=1+(e>>4),e<48&&(e&=15)),e&&(e<8||e>15)?-2:(null!==r.window&&r.wbits!==e&&(r.window=null),r.wrap=n,r.wbits=e,Ms(t))):-2}function Us(t,e){var n,r;return t?(r=new Es,t.state=r,r.window=null,0!==(n=Is(t,e))&&(t.state=null),n):-2}var Vs,Ws,qs=!0;function Ls(t){if(qs){var e;for(Vs=new ua.Buf32(512),Ws=new ua.Buf32(32),e=0;e<144;)t.lens[e++]=8;for(;e<256;)t.lens[e++]=9;for(;e<280;)t.lens[e++]=7;for(;e<288;)t.lens[e++]=8;for(Bs(1,t.lens,0,288,Vs,0,t.work,{bits:9}),e=0;e<32;)t.lens[e++]=5;Bs(2,t.lens,0,32,Ws,0,t.work,{bits:5}),qs=!1}t.lencode=Vs,t.lenbits=9,t.distcode=Ws,t.distbits=5}function Ks(t,e,n,r){var i,o=t.state;return null===o.window&&(o.wsize=1<=o.wsize?(ua.arraySet(o.window,e,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):((i=o.wsize-o.wnext)>r&&(i=r),ua.arraySet(o.window,e,n-r,i,o.wnext),(r-=i)?(ua.arraySet(o.window,e,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave>>8&255,n.check=_a(n.check,T,2,0),h=0,u=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){t.msg="incorrect header check",n.mode=30;break}if(8!=(15&h)){t.msg="unknown compression method",n.mode=30;break}if(u-=4,k=8+(15&(h>>>=4)),0===n.wbits)n.wbits=k;else if(k>n.wbits){t.msg="invalid window size",n.mode=30;break}n.dmax=1<>8&1),512&n.flags&&(T[0]=255&h,T[1]=h>>>8&255,n.check=_a(n.check,T,2,0)),h=0,u=0,n.mode=3;case 3:for(;u<32;){if(0===s)break t;s--,h+=r[o++]<>>8&255,T[2]=h>>>16&255,T[3]=h>>>24&255,n.check=_a(n.check,T,4,0)),h=0,u=0,n.mode=4;case 4:for(;u<16;){if(0===s)break t;s--,h+=r[o++]<>8),512&n.flags&&(T[0]=255&h,T[1]=h>>>8&255,n.check=_a(n.check,T,2,0)),h=0,u=0,n.mode=5;case 5:if(1024&n.flags){for(;u<16;){if(0===s)break t;s--,h+=r[o++]<>>8&255,n.check=_a(n.check,T,2,0)),h=0,u=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&((f=n.length)>s&&(f=s),f&&(n.head&&(k=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),ua.arraySet(n.head.extra,r,o,f,k)),512&n.flags&&(n.check=_a(n.check,r,f,o)),s-=f,o+=f,n.length-=f),n.length))break t;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===s)break t;f=0;do{k=r[o+f++],n.head&&k&&n.length<65536&&(n.head.name+=String.fromCharCode(k))}while(k&&f>9&1,n.head.done=!0),t.adler=n.check=0,n.mode=12;break;case 10:for(;u<32;){if(0===s)break t;s--,h+=r[o++]<>>=7&u,u-=7&u,n.mode=27;break}for(;u<3;){if(0===s)break t;s--,h+=r[o++]<>>=1)){case 0:n.mode=14;break;case 1:if(Ls(n),n.mode=20,6===e){h>>>=2,u-=2;break t}break;case 2:n.mode=17;break;case 3:t.msg="invalid block type",n.mode=30}h>>>=2,u-=2;break;case 14:for(h>>>=7&u,u-=7&u;u<32;){if(0===s)break t;s--,h+=r[o++]<>>16^65535)){t.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&h,h=0,u=0,n.mode=15,6===e)break t;case 15:n.mode=16;case 16:if(f=n.length){if(f>s&&(f=s),f>l&&(f=l),0===f)break t;ua.arraySet(i,r,o,f,a),s-=f,o+=f,l-=f,a+=f,n.length-=f;break}n.mode=12;break;case 17:for(;u<14;){if(0===s)break t;s--,h+=r[o++]<>>=5,u-=5,n.ndist=1+(31&h),h>>>=5,u-=5,n.ncode=4+(15&h),h>>>=4,u-=4,n.nlen>286||n.ndist>30){t.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have>>=3,u-=3}for(;n.have<19;)n.lens[P[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,S={bits:n.lenbits},F=Bs(0,n.lens,0,19,n.lencode,0,n.work,S),n.lenbits=S.bits,F){t.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=v,u-=v,n.lens[n.have++]=m;else{if(16===m){for(C=v+2;u>>=v,u-=v,0===n.have){t.msg="invalid bit length repeat",n.mode=30;break}k=n.lens[n.have-1],f=3+(3&h),h>>>=2,u-=2}else if(17===m){for(C=v+3;u>>=v)),h>>>=3,u-=3}else{for(C=v+7;u>>=v)),h>>>=7,u-=7}if(n.have+f>n.nlen+n.ndist){t.msg="invalid bit length repeat",n.mode=30;break}for(;f--;)n.lens[n.have++]=k}}if(30===n.mode)break;if(0===n.lens[256]){t.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,S={bits:n.lenbits},F=Bs(1,n.lens,0,n.nlen,n.lencode,0,n.work,S),n.lenbits=S.bits,F){t.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,S={bits:n.distbits},F=Bs(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,S),n.distbits=S.bits,F){t.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===e)break t;case 20:n.mode=21;case 21:if(s>=6&&l>=258){t.next_out=a,t.avail_out=l,t.next_in=o,t.avail_in=s,n.hold=h,n.bits=u,Ps(t,d),a=t.next_out,i=t.output,l=t.avail_out,o=t.next_in,r=t.input,s=t.avail_in,h=n.hold,u=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;y=(A=n.lencode[h&(1<>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>b)])>>>16&255,m=65535&A,!(b+(v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=b,u-=b,n.back+=b}if(h>>>=v,u-=v,n.back+=v,n.length=m,0===y){n.mode=26;break}if(32&y){n.back=-1,n.mode=12;break}if(64&y){t.msg="invalid literal/length code",n.mode=30;break}n.extra=15&y,n.mode=22;case 22:if(n.extra){for(C=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;y=(A=n.distcode[h&(1<>>16&255,m=65535&A,!((v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>b)])>>>16&255,m=65535&A,!(b+(v=A>>>24)<=u);){if(0===s)break t;s--,h+=r[o++]<>>=b,u-=b,n.back+=b}if(h>>>=v,u-=v,n.back+=v,64&y){t.msg="invalid distance code",n.mode=30;break}n.offset=m,n.extra=15&y,n.mode=24;case 24:if(n.extra){for(C=n.extra;u>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){t.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===l)break t;if(f=d-l,n.offset>f){if((f=n.offset-f)>n.whave&&n.sane){t.msg="invalid distance too far back",n.mode=30;break}f>n.wnext?(f-=n.wnext,p=n.wsize-f):p=n.wnext-f,f>n.length&&(f=n.length),g=n.window}else g=i,p=a-n.offset,f=n.length;f>l&&(f=l),l-=f,n.length-=f;do{i[a++]=g[p++]}while(--f);0===n.length&&(n.mode=21);break;case 26:if(0===l)break t;i[a++]=n.length,l--,n.mode=21;break;case 27:if(n.wrap){for(;u<32;){if(0===s)break t;s--,h|=r[o++]<=0&&e.windowBits<16&&(e.windowBits=-e.windowBits,0===e.windowBits&&(e.windowBits=-15)),!(e.windowBits>=0&&e.windowBits<16)||t&&t.windowBits||(e.windowBits+=32),e.windowBits>15&&e.windowBits<48&&0==(15&e.windowBits)&&(e.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Fs,this.strm.avail_out=0;var n=Gs.inflateInit2(this.strm,e.windowBits);if(n!==Hs.Z_OK)throw new Error(Xa[n]);if(this.header=new _s,Gs.inflateGetHeader(this.strm,this.header),e.dictionary&&("string"==typeof e.dictionary?e.dictionary=ms(e.dictionary):"[object ArrayBuffer]"===Xs.call(e.dictionary)&&(e.dictionary=new Uint8Array(e.dictionary)),e.raw&&(n=Gs.inflateSetDictionary(this.strm,e.dictionary))!==Hs.Z_OK))throw new Error(Xa[n])}function Ys(t,e){var n=new Zs(e);if(n.push(t,!0),n.err)throw n.msg||Xa[n.err];return n.result}Zs.prototype.push=function(t,e){var n,r,i,o,a,s=this.strm,l=this.options.chunkSize,h=this.options.dictionary,u=!1;if(this.ended)return!1;r=e===~~e?e:!0===e?Hs.Z_FINISH:Hs.Z_NO_FLUSH,"string"==typeof t?s.input=ws(t):"[object ArrayBuffer]"===Xs.call(t)?s.input=new Uint8Array(t):s.input=t,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new ua.Buf8(l),s.next_out=0,s.avail_out=l),(n=Gs.inflate(s,Hs.Z_NO_FLUSH))===Hs.Z_NEED_DICT&&h&&(n=Gs.inflateSetDictionary(this.strm,h)),n===Hs.Z_BUF_ERROR&&!0===u&&(n=Hs.Z_OK,u=!1),n!==Hs.Z_STREAM_END&&n!==Hs.Z_OK)return this.onEnd(n),this.ended=!0,!1;s.next_out&&(0!==s.avail_out&&n!==Hs.Z_STREAM_END&&(0!==s.avail_in||r!==Hs.Z_FINISH&&r!==Hs.Z_SYNC_FLUSH)||("string"===this.options.to?(i=ks(s.output,s.next_out),o=s.next_out-i,a=xs(s.output,i),s.next_out=o,s.avail_out=l-o,o&&ua.arraySet(s.output,s.output,i,o,0),this.onData(a)):this.onData(ua.shrinkBuf(s.output,s.next_out)))),0===s.avail_in&&0===s.avail_out&&(u=!0)}while((s.avail_in>0||0===s.avail_out)&&n!==Hs.Z_STREAM_END);return n===Hs.Z_STREAM_END&&(r=Hs.Z_FINISH),r===Hs.Z_FINISH?(n=Gs.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===Hs.Z_OK):r!==Hs.Z_SYNC_FLUSH||(this.onEnd(Hs.Z_OK),s.avail_out=0,!0)},Zs.prototype.onData=function(t){this.chunks.push(t)},Zs.prototype.onEnd=function(t){t===Hs.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=ua.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};var Js={Inflate:Zs,inflate:Ys,inflateRaw:function(t,e){return(e=e||{}).raw=!0,Ys(t,e)},ungzip:Ys},Qs={};(0,ua.assign)(Qs,Ts,Js,Hs);var $s,tl,el,nl=Qs,rl={};rl.toRGBA8=function(t){var e=t.width,n=t.height;if(null==t.tabs.acTL)return[rl.toRGBA8.decodeImage(t.data,e,n,t).buffer];var r=[];null==t.frames[0].data&&(t.frames[0].data=t.data);for(var i=e*n*4,o=new Uint8Array(i),a=new Uint8Array(i),s=new Uint8Array(i),l=0;l>3)]>>7-((7&f)<<0)&1);s[b]=w[A],s[b+1]=w[A+1],s[b+2]=w[A+2],s[b+3]=T>2)]>>6-((3&f)<<1)&3);s[b]=w[A],s[b+1]=w[A+1],s[b+2]=w[A+2],s[b+3]=T>1)]>>4-((1&f)<<2)&15);s[b]=w[A],s[b+1]=w[A+1],s[b+2]=w[A+2],s[b+3]=T>>3)]>>>7-(7&D)&1))==255*v?0:255;l[O+D]=B<<24|P<<16|P<<8|P}else if(2==u)for(D=0;D>>2)]>>>6-((3&D)<<1)&3))==85*v?0:255;l[O+D]=B<<24|P<<16|P<<8|P}else if(4==u)for(D=0;D>>1)]>>>4-((1&D)<<2)&15))==17*v?0:255;l[O+D]=B<<24|P<<16|P<<8|P}else if(8==u)for(D=0;D>>2<<3));0==o;)if(o=g(t,f,1),a=g(t,f+1,2),f+=3,0!=a){if(k&&(e=el.H.W(e,d+(1<<17))),1==a&&(n=x.J,r=x.h,u=511,c=31),2==a){s=v(t,f,5)+257,l=v(t,f+5,5)+1,h=v(t,f+10,4)+4,f+=14;for(var F=1,S=0;S<38;S+=2)x.Q[S]=0,x.Q[S+1]=0;for(S=0;SF&&(F=C)}f+=3*h,m(x.Q,F),b(x.Q,F,x.u),n=x.w,r=x.d,f=y(x.u,(1<>>4;if(z>>>8==0)e[d++]=z;else{if(256==z)break;var R=d+z-254;if(z>264){var O=x.q[z-257];R=d+(O>>>3)+v(t,f,7&O),f+=7&O}var D=r[w(t,f)&c];f+=15&D;var B=D>>>4,N=x.c[B],E=(N>>>4)+g(t,f,15&N);for(f+=15&N;d>>3),M=t[j-4]|t[j-3]<<8;k&&(e=el.H.W(e,d+M)),e.set(new i(t.buffer,t.byteOffset+j,M),d),f=j+M<<3,d+=M}return e.length==d?e:e.slice(0,d)},el.H.W=function(t,e){var n=t.length;if(e<=n)return t;var r=new Uint8Array(n<<1);return r.set(t,0),r},el.H.R=function(t,e,n,r,i,o){for(var a=el.H.e,s=el.H.Z,l=0;l>>4;if(u<=15)o[l]=u,l++;else{var c=0,d=0;16==u?(d=3+a(r,i,2),i+=2,c=o[l-1]):17==u?(d=3+a(r,i,3),i+=3):18==u&&(d=11+a(r,i,7),i+=7);for(var f=l+d;l>>1;oi&&(i=s),o++}for(;o>1,s=t[o+1],l=a<<4|s,h=e-s,u=t[o]<>>15-e]=l,u++},el.H.l=function(t,e){for(var n=el.H.m.r,r=15-e,i=0;i>>r}},el.H.M=function(t,e,n){n<<=7&e;var r=e>>>3;t[r]|=n,t[r+1]|=n>>>8},el.H.I=function(t,e,n){n<<=7&e;var r=e>>>3;t[r]|=n,t[r+1]|=n>>>8,t[r+2]|=n>>>16},el.H.e=function(t,e,n){return(t[e>>>3]|t[1+(e>>>3)]<<8)>>>(7&e)&(1<>>3]|t[1+(e>>>3)]<<8|t[2+(e>>>3)]<<16)>>>(7&e)&(1<>>3]|t[1+(e>>>3)]<<8|t[2+(e>>>3)]<<16)>>>(7&e)},el.H.i=function(t,e){return(t[e>>>3]|t[1+(e>>>3)]<<8|t[2+(e>>>3)]<<16|t[3+(e>>>3)]<<24)>>>(7&e)},el.H.m=($s=Uint16Array,tl=Uint32Array,{K:new $s(16),j:new $s(16),X:[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],S:[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,999,999,999],T:[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0],q:new $s(32),p:[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,65535,65535],z:[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0],c:new tl(32),J:new $s(512),_:[],h:new $s(32),$:[],w:new $s(32768),C:[],v:[],d:new $s(32768),D:[],u:new $s(512),Q:[],r:new $s(32768),s:new tl(286),Y:new tl(30),a:new tl(19),t:new tl(15e3),k:new $s(65536),g:new $s(32768)}),function(){for(var t=el.H.m,e=0;e<32768;e++){var n=e;n=(4278255360&(n=(4042322160&(n=(3435973836&(n=(2863311530&n)>>>1|(1431655765&n)<<1))>>>2|(858993459&n)<<2))>>>4|(252645135&n)<<4))>>>8|(16711935&n)<<8,t.r[e]=(n>>>16|n<<16)>>>17}function r(t,e,n){for(;0!=e--;)t.push(0,n)}for(e=0;e<32;e++)t.q[e]=t.S[e]<<3|t.T[e],t.c[e]=t.p[e]<<4|t.z[e];r(t._,144,8),r(t._,112,9),r(t._,24,7),r(t._,8,8),el.H.n(t._,9),el.H.A(t._,9,t.J),el.H.l(t._,9),r(t.$,32,5),el.H.n(t.$,5),el.H.A(t.$,5,t.h),el.H.l(t.$,5),r(t.Q,19,0),r(t.C,286,0),r(t.D,30,0),r(t.v,320,0)}(),el.H.N),rl.decode._readInterlace=function(t,e){for(var n=e.width,r=e.height,i=rl.decode._getBPP(e),o=i>>3,a=Math.ceil(n*i/8),s=new Uint8Array(r*a),l=0,h=[0,0,4,0,2,0,1],u=[0,4,0,2,0,1,0],c=[8,8,8,4,4,2,2],d=[8,8,4,4,2,2,1],f=0;f<7;){for(var p=c[f],g=d[f],v=0,y=0,m=h[f];m>3])>>7-(7&S)&1,s[k*a+(F>>3)]|=C<<7-((7&F)<<0);if(2==i)C=(C=t[S>>3])>>6-(7&S)&3,s[k*a+(F>>2)]|=C<<6-((3&F)<<1);if(4==i)C=(C=t[S>>3])>>4-(7&S)&15,s[k*a+(F>>1)]|=C<<4-((1&F)<<2);if(i>=8)for(var A=k*a+F*o,T=0;T>3)+T];S+=i,F+=g}x++,k+=p}v*y!=0&&(l+=y*(1+w)),f+=1}return s},rl.decode._getBPP=function(t){return[1,null,3,1,2,null,4][t.ctype]*t.depth},rl.decode._filterZero=function(t,e,n,r,i){var o=rl.decode._getBPP(e),a=Math.ceil(r*o/8),s=rl.decode._paeth;o=Math.ceil(o/8);var l=0,h=1,u=t[n],c=0;if(u>1&&(t[n]=[0,0,1][u-2]),3==u)for(c=o;c>>1)&255;for(var d=0;d>>1);for(;c>>1)}else{for(;c>8&255,t[e+1]=255&n},readUint:function(t,e){return 16777216*t[e]+(t[e+1]<<16|t[e+2]<<8|t[e+3])},writeUint:function(t,e,n){t[e]=n>>24&255,t[e+1]=n>>16&255,t[e+2]=n>>8&255,t[e+3]=255&n},readASCII:function(t,e,n){for(var r="",i=0;i=0&&s>=0?(c=f*e+p<<2,d=(s+f)*i+a+p<<2):(c=(-s+f)*e-a+p<<2,d=f*i+p<<2),0==l)r[d]=t[c],r[d+1]=t[c+1],r[d+2]=t[c+2],r[d+3]=t[c+3];else if(1==l){var g=t[c+3]*(1/255),v=t[c]*g,y=t[c+1]*g,m=t[c+2]*g,b=r[d+3]*(1/255),w=r[d]*b,x=r[d+1]*b,k=r[d+2]*b,F=1-g,S=g+b*F,C=0==S?0:1/S;r[d+3]=255*S,r[d+0]=(v+w*F)*C,r[d+1]=(y+x*F)*C,r[d+2]=(m+k*F)*C}else if(2==l){g=t[c+3],v=t[c],y=t[c+1],m=t[c+2],b=r[d+3],w=r[d],x=r[d+1],k=r[d+2];g==b&&v==w&&y==x&&m==k?(r[d]=0,r[d+1]=0,r[d+2]=0,r[d+3]=0):(r[d]=v,r[d+1]=y,r[d+2]=m,r[d+3]=g)}else if(3==l){g=t[c+3],v=t[c],y=t[c+1],m=t[c+2],b=r[d+3],w=r[d],x=r[d+1],k=r[d+2];if(g==b&&v==w&&y==x&&m==k)continue;if(g<220&&b>20)return!1}return!0},rl.encode=function(t,e,n,r,i,o,a){null==r&&(r=0),null==a&&(a=!1);var s=rl.encode.compress(t,e,n,r,[!1,!1,!1,0,a]);return rl.encode.compressPNG(s,-1),rl.encode._main(s,e,n,i,o)},rl.encodeLL=function(t,e,n,r,i,o,a,s){for(var l={ctype:0+(1==r?0:2)+(0==i?0:4),depth:o,frames:[]},h=(r+i)*o,u=h*e,c=0;c1,c=!1,d=33+(u?20:0);if(null!=i.sRGB&&(d+=13),null!=i.pHYs&&(d+=21),3==t.ctype){for(var f=t.plte.length,p=0;p>>24!=255&&(c=!0);d+=8+3*f+4+(c?8+1*f+4:0)}for(var g=0;g>>8&255,k=b>>>16&255;v[h+m+0]=w,v[h+m+1]=x,v[h+m+2]=k}if(a(v,h+=3*f,o(v,h-3*f-4,3*f+4)),h+=4,c){a(v,h,f),l(v,h+=4,"tRNS"),h+=4;for(p=0;p>>24&255;a(v,h+=f,o(v,h-f-4,f+4)),h+=4}}var F=0;for(g=0;g>2,T>>2));for(f=0;fR&&D==z[v-R])O[v]=O[v-R];else{var B=b[D];if(null==B&&(b[D]=B=w.length,w.push(D),w.length>=300))break;O[v]=B}}}var N=w.length;N<=256&&0==h&&(c=N<=2?1:N<=4?2:N<=16?4:8,c=Math.max(c,l));for(f=0;f>1)]|=V[q+L]<<4-4*(1&L);else if(2==c)for(L=0;L>2)]|=V[q+L]<<6-2*(3&L);else if(1==c)for(L=0;L>3)]|=V[q+L]<<7-1*(7&L)}j=U,u=3,I=1}else if(0==y&&1==m.length){U=new Uint8Array(R*E*3);var K=R*E;for(v=0;vS&&(S=T),AC&&(C=A))}-1==S&&(k=F=S=C=0),i&&(1==(1&k)&&k--,1==(1&F)&&F--);var P=(S-k+1)*(C-F+1);Pv&&(v=w),xy&&(y=x))}-1==v&&(p=g=v=y=0),a&&(1==(1&p)&&p--,1==(1&g)&&g--),o={x:p,y:g,width:v-p+1,height:y-g+1};var S=r[i];S.rect=o,S.blend=1,S.img=new Uint8Array(o.width*o.height*4),0==r[i-1].dispose?(rl._copyTile(h,e,n,S.img,o.width,o.height,-o.x,-o.y,0),rl.encode._prepareDiff(d,e,n,S.img,o)):rl._copyTile(d,e,n,S.img,o.width,o.height,-o.x,-o.y,0)},rl.encode._prepareDiff=function(t,e,n,r,i){rl._copyTile(t,e,n,r,i.width,i.height,-i.x,-i.y,2)},rl.encode._filterZero=function(t,e,n,r,i,o,a){var s,l=[],h=[0,1,2,3,4];-1!=o?h=[o]:(e*r>5e5||1==n)&&(h=[0]),a&&(s={level:0});for(var u=a&&null!=UZIP?UZIP:nl,c=0;c>1)+256&255;if(4==o)for(h=i;h>1)&255;for(h=i;h>1)&255}if(4==o){for(h=0;h>>1:n>>>=1;t[e]=n}return t}(),update:function(t,e,n,r){for(var i=0;i>>8;return t},crc:function(t,e,n){return 4294967295^rl.crc.update(4294967295,t,e,n)}},rl.quantize=function(t,e){for(var n=new Uint8Array(t),r=n.slice(0),i=new Uint32Array(r.buffer),o=rl.quantize.getKDtree(r,e),a=o[0],s=o[1],l=(rl.quantize.planeDst,n),h=i,u=l.length,c=new Uint8Array(n.length>>2),d=0;d>2]=y.ind,h[d>>2]=y.est.rgba}return{abuf:r.buffer,inds:c,plte:s}},rl.quantize.getKDtree=function(t,e,n){null==n&&(n=1e-4);var r=new Uint32Array(t.buffer),i={i0:0,i1:t.length,bst:null,est:null,tdst:0,left:null,right:null};i.bst=rl.quantize.stats(t,i.i0,i.i1),i.est=rl.quantize.estats(i.bst);for(var o=[i];o.lengtha&&(a=o[l].est.L,s=l);if(a=u||h.i1<=u)h.est.L=0;else{var c={i0:h.i0,i1:u,bst:null,est:null,tdst:0,left:null,right:null};c.bst=rl.quantize.stats(t,c.i0,c.i1),c.est=rl.quantize.estats(c.bst);var d={i0:u,i1:h.i1,bst:null,est:null,tdst:0,left:null,right:null};d.bst={R:[],m:[],N:h.bst.N-c.bst.N};for(l=0;l<16;l++)d.bst.R[l]=h.bst.R[l]-c.bst.R[l];for(l=0;l<4;l++)d.bst.m[l]=h.bst.m[l]-c.bst.m[l];d.est=rl.quantize.estats(d.bst),h.left=c,h.right=d,o[s]=c,o.push(d)}}o.sort((function(t,e){return e.bst.N-t.bst.N}));for(l=0;l0&&(a=t.right,s=t.left);var l=rl.quantize.getNearest(a,e,n,r,i);if(l.tdst<=o*o)return l;var h=rl.quantize.getNearest(s,e,n,r,i);return h.tdsto;)r-=4;if(n>=r)break;var s=e[n>>2];e[n>>2]=e[r>>2],e[r>>2]=s,n+=4,r-=4}for(;a(t,n,i)>o;)n-=4;return n+4},rl.quantize.vecDot=function(t,e,n){return t[e]*n[0]+t[e+1]*n[1]+t[e+2]*n[2]+t[e+3]*n[3]},rl.quantize.stats=function(t,e,n){for(var r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i=[0,0,0,0],o=n-e>>2,a=e;a>>0}},rl.M4={multVec:function(t,e){return[t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3],t[4]*e[0]+t[5]*e[1]+t[6]*e[2]+t[7]*e[3],t[8]*e[0]+t[9]*e[1]+t[10]*e[2]+t[11]*e[3],t[12]*e[0]+t[13]*e[1]+t[14]*e[2]+t[15]*e[3]]},dot:function(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]},sml:function(t,e){return[t*e[0],t*e[1],t*e[2],t*e[3]]}},rl.encode.concatRGBA=function(t){for(var e=0,n=0;n1)throw new Error("Animated PNGs are not supported");var r=function(t){for(var e=Math.floor(t.length/4),n=new Uint8Array(3*e),r=new Uint8Array(1*e),i=0,o=0,a=0;i=this.end?-1:this.bytes[this.pos++]},t.prototype.getUint16=function(){var t=this.getByte(),e=this.getByte();return-1===t||-1===e?-1:(t<<8)+e},t.prototype.getInt32=function(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()},t.prototype.getBytes=function(t,e){void 0===e&&(e=!1);var n=this.bytes,r=this.pos,i=this.end;if(t){var o=r+t;o>i&&(o=i),this.pos=o;a=n.subarray(r,o);return e?new Uint8ClampedArray(a):a}var a=n.subarray(r,i);return e?new Uint8ClampedArray(a):a},t.prototype.peekByte=function(){var t=this.getByte();return this.pos--,t},t.prototype.peekBytes=function(t,e){void 0===e&&(e=!1);var n=this.getBytes(t,e);return this.pos-=n.length,n},t.prototype.skip=function(t){t||(t=1),this.pos+=t},t.prototype.reset=function(){this.pos=this.start},t.prototype.moveStart=function(){this.start=this.pos},t.prototype.makeSubStream=function(e,n){return new t(this.bytes,e,n)},t.prototype.decode=function(){return this.bytes},t}(),dl=new Uint8Array(0),fl=function(){function t(t){if(this.pos=0,this.bufferLength=0,this.eof=!1,this.buffer=dl,this.minBufferLength=512,t)for(;this.minBufferLengthi&&(n=i)}else{for(;!this.eof;)this.readBlock();n=this.bufferLength}this.pos=n;var o=this.buffer.subarray(r,n);return!e||o instanceof Uint8ClampedArray?o:new Uint8ClampedArray(o)},t.prototype.peekByte=function(){var t=this.getByte();return this.pos--,t},t.prototype.peekBytes=function(t,e){void 0===e&&(e=!1);var n=this.getBytes(t,e);return this.pos-=n.length,n},t.prototype.skip=function(t){t||(t=1),this.pos+=t},t.prototype.reset=function(){this.pos=0},t.prototype.makeSubStream=function(t,e){for(var n=t+e;this.bufferLength<=n&&!this.eof;)this.readBlock();return new cl(this.buffer,t,e)},t.prototype.decode=function(){for(;!this.eof;)this.readBlock();return this.buffer.subarray(0,this.bufferLength)},t.prototype.readBlock=function(){throw new Kn(this.constructor.name,"readBlock")},t.prototype.ensureBuffer=function(t){var e=this.buffer;if(t<=e.byteLength)return e;for(var n=this.minBufferLength;n=0;--r)n[i+r]=255&a,a>>=8}}else this.eof=!0},e}(fl),vl=function(t){function e(e,n){var r=t.call(this,n)||this;return r.stream=e,r.firstDigit=-1,n&&(n*=.5),r}return n(e,t),e.prototype.readBlock=function(){var t=this.stream.getBytes(8e3);if(t.length){for(var e=t.length+1>>1,n=this.ensureBuffer(this.bufferLength+e),r=this.bufferLength,i=this.firstDigit,o=0,a=t.length;o=48&&s<=57)l=15&s;else{if(!(s>=65&&s<=70||s>=97&&s<=102)){if(62===s){this.eof=!0;break}continue}l=9+(15&s)}i<0?i=l:(n[r++]=i<<4|l,i=-1)}i>=0&&this.eof&&(n[r++]=i<<4,i=-1),this.firstDigit=i,this.bufferLength=r}else this.eof=!0},e}(fl),yl=new Int32Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),ml=new Int32Array([3,4,5,6,7,8,9,10,65547,65549,65551,65553,131091,131095,131099,131103,196643,196651,196659,196667,262211,262227,262243,262259,327811,327843,327875,327907,258,258,258]),bl=new Int32Array([1,2,3,4,65541,65543,131081,131085,196625,196633,262177,262193,327745,327777,393345,393409,459009,459137,524801,525057,590849,591361,657409,658433,724993,727041,794625,798721,868353,876545]),wl=[new Int32Array([459008,524368,524304,524568,459024,524400,524336,590016,459016,524384,524320,589984,524288,524416,524352,590048,459012,524376,524312,589968,459028,524408,524344,590032,459020,524392,524328,59e4,524296,524424,524360,590064,459010,524372,524308,524572,459026,524404,524340,590024,459018,524388,524324,589992,524292,524420,524356,590056,459014,524380,524316,589976,459030,524412,524348,590040,459022,524396,524332,590008,524300,524428,524364,590072,459009,524370,524306,524570,459025,524402,524338,590020,459017,524386,524322,589988,524290,524418,524354,590052,459013,524378,524314,589972,459029,524410,524346,590036,459021,524394,524330,590004,524298,524426,524362,590068,459011,524374,524310,524574,459027,524406,524342,590028,459019,524390,524326,589996,524294,524422,524358,590060,459015,524382,524318,589980,459031,524414,524350,590044,459023,524398,524334,590012,524302,524430,524366,590076,459008,524369,524305,524569,459024,524401,524337,590018,459016,524385,524321,589986,524289,524417,524353,590050,459012,524377,524313,589970,459028,524409,524345,590034,459020,524393,524329,590002,524297,524425,524361,590066,459010,524373,524309,524573,459026,524405,524341,590026,459018,524389,524325,589994,524293,524421,524357,590058,459014,524381,524317,589978,459030,524413,524349,590042,459022,524397,524333,590010,524301,524429,524365,590074,459009,524371,524307,524571,459025,524403,524339,590022,459017,524387,524323,589990,524291,524419,524355,590054,459013,524379,524315,589974,459029,524411,524347,590038,459021,524395,524331,590006,524299,524427,524363,590070,459011,524375,524311,524575,459027,524407,524343,590030,459019,524391,524327,589998,524295,524423,524359,590062,459015,524383,524319,589982,459031,524415,524351,590046,459023,524399,524335,590014,524303,524431,524367,590078,459008,524368,524304,524568,459024,524400,524336,590017,459016,524384,524320,589985,524288,524416,524352,590049,459012,524376,524312,589969,459028,524408,524344,590033,459020,524392,524328,590001,524296,524424,524360,590065,459010,524372,524308,524572,459026,524404,524340,590025,459018,524388,524324,589993,524292,524420,524356,590057,459014,524380,524316,589977,459030,524412,524348,590041,459022,524396,524332,590009,524300,524428,524364,590073,459009,524370,524306,524570,459025,524402,524338,590021,459017,524386,524322,589989,524290,524418,524354,590053,459013,524378,524314,589973,459029,524410,524346,590037,459021,524394,524330,590005,524298,524426,524362,590069,459011,524374,524310,524574,459027,524406,524342,590029,459019,524390,524326,589997,524294,524422,524358,590061,459015,524382,524318,589981,459031,524414,524350,590045,459023,524398,524334,590013,524302,524430,524366,590077,459008,524369,524305,524569,459024,524401,524337,590019,459016,524385,524321,589987,524289,524417,524353,590051,459012,524377,524313,589971,459028,524409,524345,590035,459020,524393,524329,590003,524297,524425,524361,590067,459010,524373,524309,524573,459026,524405,524341,590027,459018,524389,524325,589995,524293,524421,524357,590059,459014,524381,524317,589979,459030,524413,524349,590043,459022,524397,524333,590011,524301,524429,524365,590075,459009,524371,524307,524571,459025,524403,524339,590023,459017,524387,524323,589991,524291,524419,524355,590055,459013,524379,524315,589975,459029,524411,524347,590039,459021,524395,524331,590007,524299,524427,524363,590071,459011,524375,524311,524575,459027,524407,524343,590031,459019,524391,524327,589999,524295,524423,524359,590063,459015,524383,524319,589983,459031,524415,524351,590047,459023,524399,524335,590015,524303,524431,524367,590079]),9],xl=[new Int32Array([327680,327696,327688,327704,327684,327700,327692,327708,327682,327698,327690,327706,327686,327702,327694,0,327681,327697,327689,327705,327685,327701,327693,327709,327683,327699,327691,327707,327687,327703,327695,0]),5],kl=function(t){function e(e,n){var r=t.call(this,n)||this;r.stream=e;var i=e.getByte(),o=e.getByte();if(-1===i||-1===o)throw new Error("Invalid header in flate stream: "+i+", "+o);if(8!=(15&i))throw new Error("Unknown compression method in flate stream: "+i+", "+o);if(((i<<8)+o)%31!=0)throw new Error("Bad FCHECK in flate stream: "+i+", "+o);if(32&o)throw new Error("FDICT bit set in flate stream: "+i+", "+o);return r.codeSize=0,r.codeBuf=0,r}return n(e,t),e.prototype.readBlock=function(){var t,e,n=this.stream,r=this.getBits(3);if(1&r&&(this.eof=!0),0!==(r>>=1)){var i,o;if(1===r)i=wl,o=xl;else{if(2!==r)throw new Error("Unknown block type in flate stream");var a=this.getBits(5)+257,s=this.getBits(5)+1,l=this.getBits(4)+4,h=new Uint8Array(yl.length),u=void 0;for(u=0;u0;)f[u++]=v}i=this.generateHuffmanTable(f.subarray(0,a)),o=this.generateHuffmanTable(f.subarray(a,d))}for(var b=(t=this.buffer)?t.length:0,w=this.bufferLength;;){var x=this.getCode(i);if(x<256)w+1>=b&&(b=(t=this.ensureBuffer(w+1)).length),t[w++]=x;else{if(256===x)return void(this.bufferLength=w);var k=(x=ml[x-=257])>>16;k>0&&(k=this.getBits(k)),e=(65535&x)+k,x=this.getCode(o),(k=(x=bl[x])>>16)>0&&(k=this.getBits(k));var F=(65535&x)+k;w+e>=b&&(b=(t=this.ensureBuffer(w+e)).length);for(var S=0;S>t,this.codeSize=r-=t,e},e.prototype.getCode=function(t){for(var e,n=this.stream,r=t[0],i=t[1],o=this.codeSize,a=this.codeBuf;o>16,h=65535&s;if(l<1||o>l,this.codeSize=o-l,h},e.prototype.generateHuffmanTable=function(t){var e,n=t.length,r=0;for(e=0;er&&(r=t[e]);for(var i=1<>=1;for(e=u;e0;if(!y||y<256)d[0]=y,f=1;else{if(!(y>=258)){if(256===y){u=9,a=258,f=0;continue}this.eof=!0,delete this.lzwState;break}if(y=0;e--)d[e]=s[n],n=h[n];else d[f++]=d[0]}if(m&&(h[a]=c,l[a]=l[c]+1,s[a]=d[0],u=++a+o&a+o-1?u:0|Math.min(Math.log(a+o)/.6931471805599453+1,12)),c=y,r<(p+=f)){do{r+=512}while(r>>e&(1<0){var i=this.stream.getBytes(r);e.set(i,n),n+=r}}else{r=257-r;var o=t[1];e=this.ensureBuffer(n+r+1);for(var a=0;ae.size())throw new rr(t,0,e.size());e.remove(t)}else{if(0!==t)throw new rr(t,0,0);this.setKids([])}},e.prototype.normalizedEntries=function(){var t=this.Kids();return t||(t=this.dict.context.obj([this.ref]),this.dict.set(Fo.of("Kids"),t)),{Kids:t}},e.fromDict=function(t,n){return new e(t,n)},e}(El),Wl=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.Opt=function(){return this.dict.lookupMaybe(Fo.of("Opt"),na,Yo,fo)},e.prototype.setOpt=function(t){this.dict.set(Fo.of("Opt"),this.dict.context.obj(t))},e.prototype.getExportValues=function(){var t=this.Opt();if(t){if(t instanceof na||t instanceof Yo)return[t];for(var e=[],n=0,r=t.size();ne.size())throw new rr(t,0,e.size());e.remove(t)}},e.prototype.normalizeExportValues=function(){for(var t,e,n,r,i=null!==(t=this.getExportValues())&&void 0!==t?t:[],o=[],a=this.getWidgets(),s=0,l=a.length;s1){if(!this.hasFlag(t.AcroChoiceFlags.MultiSelect))throw new or;this.dict.set(Fo.of("V"),this.dict.context.obj(e))}this.updateSelectedIndices(e)},r.prototype.valuesAreValid=function(t){for(var e=this.getOptions(),n=function(n,r){var i=t[n].decodeText();if(!e.find((function(t){return i===(t.display||t.value).decodeText()})))return{value:!1}},r=0,i=t.length;r1){for(var e=new Array(t.length),n=this.getOptions(),r=function(r,i){var o=t[r].decodeText();e[r]=n.findIndex((function(t){return o===(t.display||t.value).decodeText()}))},i=0,o=t.length;i0){var o=i.lookup(0,na,Yo),a=i.lookupMaybe(1,na,Yo);e.push({value:o,display:a||o})}}return e}return[]},r}(Vl),Gl=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.fromDict=function(t,e){return new r(t,e)},r.create=function(e){var n=e.obj({FT:"Ch",Ff:t.AcroChoiceFlags.Combo,Kids:[]});return new r(n,e.register(n))},r}(Kl),Hl=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.addField=function(t){var e=this.normalizedEntries().Kids;null==e||e.push(t)},e.prototype.normalizedEntries=function(){var t=this.Kids();return t||(t=this.dict.context.obj([]),this.dict.set(Fo.of("Kids"),t)),{Kids:t}},e.fromDict=function(t,n){return new e(t,n)},e.create=function(t){var n=t.obj({});return new e(n,t.register(n))},e}(El),_l=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.fromDict=function(t,n){return new e(t,n)},e}(Vl),Xl=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return n(e,t),e.prototype.MaxLen=function(){var t=this.dict.lookup(Fo.of("MaxLen"));if(t instanceof co)return t},e.prototype.Q=function(){var t=this.dict.lookup(Fo.of("Q"));if(t instanceof co)return t},e.prototype.setMaxLength=function(t){this.dict.set(Fo.of("MaxLen"),co.of(t))},e.prototype.removeMaxLength=function(){this.dict.delete(Fo.of("MaxLen"))},e.prototype.getMaxLength=function(){var t;return null===(t=this.MaxLen())||void 0===t?void 0:t.asNumber()},e.prototype.setQuadding=function(t){this.dict.set(Fo.of("Q"),co.of(t))},e.prototype.getQuadding=function(){var t;return null===(t=this.Q())||void 0===t?void 0:t.asNumber()},e.prototype.setValue=function(t){this.dict.set(Fo.of("V"),t)},e.prototype.removeValue=function(){this.dict.delete(Fo.of("V"))},e.prototype.getValue=function(){var t=this.V();if(t instanceof na||t instanceof Yo)return t},e.fromDict=function(t,n){return new e(t,n)},e.create=function(t){var n=t.obj({FT:"Tx",Kids:[]});return new e(n,t.register(n))},e}(Vl),Zl=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.fromDict=function(t,e){return new r(t,e)},r.create=function(e){var n=e.obj({FT:"Btn",Ff:t.AcroButtonFlags.PushButton,Kids:[]});return new r(n,e.register(n))},r}(Wl),Yl=function(e){function r(){return null!==e&&e.apply(this,arguments)||this}return n(r,e),r.prototype.setValue=function(t){if(!this.getOnValues().includes(t)&&t!==Fo.of("Off"))throw new ir;this.dict.set(Fo.of("V"),t);for(var e=this.getWidgets(),n=0,r=e.length;ni)throw new er(n,i);for(var o=n,a=0,s=r.size();ao)return h.insertLeafNode(t,o)||l;o-=h.Count().asNumber()}h instanceof Uo&&(o-=1)}if(0!==o)throw new nr(n,"insertLeafNode");this.insertLeafKid(r.size(),t)},e.prototype.removeLeafNode=function(t,n){void 0===n&&(n=!0);var r=this.Kids(),i=this.Count().asNumber();if(t>=i)throw new er(t,i);for(var o=t,a=0,s=r.size();ao)return h.removeLeafNode(o,n),void(n&&0===h.Kids().size()&&r.remove(a));o-=h.Count().asNumber()}if(h instanceof Uo){if(0===o)return void this.removeKid(a);o-=1}}throw new nr(t,"removeLeafNode")},e.prototype.ascend=function(t){t(this);var e=this.Parent();e&&e.ascend(t)},e.prototype.traverse=function(t){for(var n=this.Kids(),r=0,i=n.size();rNumber.MAX_SAFE_INTEGER){if(this.capNumbers){var r="Parsed number that is too large for some PDF readers: "+t+", using Number.MAX_SAFE_INTEGER instead.";return console.warn(r),Number.MAX_SAFE_INTEGER}r="Parsed number that is too large for some PDF readers: "+t+", not capping.";console.warn(r)}return n},t.prototype.skipWhitespace=function(){for(;!this.bytes.done()&&yo[this.bytes.peek()];)this.bytes.next()},t.prototype.skipLine=function(){for(;!this.bytes.done();){var t=this.bytes.peek();if(t===gh||t===vh)return;this.bytes.next()}},t.prototype.skipComment=function(){if(this.bytes.peek()!==mr.Percent)return!1;for(;!this.bytes.done();){var t=this.bytes.peek();if(t===gh||t===vh)return!0;this.bytes.next()}return!0},t.prototype.skipWhitespaceAndComments=function(){for(this.skipWhitespace();this.skipComment();)this.skipWhitespace()},t.prototype.matchKeyword=function(t){for(var e=this.bytes.offset(),n=0,r=t.length;n=this.length},t.prototype.offset=function(){return this.idx},t.prototype.slice=function(t,e){return this.bytes.slice(t,e)},t.prototype.position=function(){return{line:this.line,column:this.column,offset:this.idx}},t.of=function(e){return new t(e)},t.fromPDFRawStream=function(e){return t.of(Al(e).decode())},t}(),bh=mr.Space,wh=mr.CarriageReturn,xh=mr.Newline,kh=[mr.s,mr.t,mr.r,mr.e,mr.a,mr.m],Fh=[mr.e,mr.n,mr.d,mr.s,mr.t,mr.r,mr.e,mr.a,mr.m],Sh={header:[mr.Percent,mr.P,mr.D,mr.F,mr.Dash],eof:[mr.Percent,mr.Percent,mr.E,mr.O,mr.F],obj:[mr.o,mr.b,mr.j],endobj:[mr.e,mr.n,mr.d,mr.o,mr.b,mr.j],xref:[mr.x,mr.r,mr.e,mr.f],trailer:[mr.t,mr.r,mr.a,mr.i,mr.l,mr.e,mr.r],startxref:[mr.s,mr.t,mr.a,mr.r,mr.t,mr.x,mr.r,mr.e,mr.f],true:[mr.t,mr.r,mr.u,mr.e],false:[mr.f,mr.a,mr.l,mr.s,mr.e],null:[mr.n,mr.u,mr.l,mr.l],stream:kh,streamEOF1:a(kh,[bh,wh,xh]),streamEOF2:a(kh,[wh,xh]),streamEOF3:a(kh,[wh]),streamEOF4:a(kh,[xh]),endstream:Fh,EOF1endstream:a([wh,xh],Fh),EOF2endstream:a([wh],Fh),EOF3endstream:a([xh],Fh)},Ch=function(t){function e(e,n,r){void 0===r&&(r=!1);var i=t.call(this,e,r)||this;return i.context=n,i}return n(e,t),e.prototype.parseObject=function(){if(this.skipWhitespaceAndComments(),this.matchKeyword(Sh.true))return go.True;if(this.matchKeyword(Sh.false))return go.False;if(this.matchKeyword(Sh.null))return So;var t=this.bytes.peek();if(t===mr.LessThan&&this.bytes.peekAhead(1)===mr.LessThan)return this.parseDictOrStream();if(t===mr.LessThan)return this.parseHexString();if(t===mr.LeftParen)return this.parseString();if(t===mr.ForwardSlash)return this.parseName();if(t===mr.LeftSquareBracket)return this.parseArray();if(dh[t])return this.parseNumberOrRef();throw new cr(this.bytes.position(),t)},e.prototype.parseNumberOrRef=function(){var t=this.parseRawNumber();this.skipWhitespaceAndComments();var e=this.bytes.offset();if(uh[this.bytes.peek()]){var n=this.parseRawNumber();if(this.skipWhitespaceAndComments(),this.bytes.peek()===mr.R)return this.bytes.assertNext(mr.R),Ro.of(t,n)}return this.bytes.moveTo(e),co.of(t)},e.prototype.parseHexString=function(){var t="";for(this.bytes.assertNext(mr.LessThan);!this.bytes.done()&&this.bytes.peek()!==mr.GreaterThan;)t+=b(this.bytes.next());return this.bytes.assertNext(mr.GreaterThan),Yo.of(t)},e.prototype.parseString=function(){for(var t=0,e=!1,n="";!this.bytes.done();){var r=this.bytes.next();if(n+=b(r),e||(r===mr.LeftParen&&(t+=1),r===mr.RightParen&&(t-=1)),r===mr.BackSlash?e=!e:e&&(e=!1),0===t)return na.of(n.substring(1,n.length-1))}throw new pr(this.bytes.position())},e.prototype.parseName=function(){this.bytes.assertNext(mr.ForwardSlash);for(var t="";!this.bytes.done();){var e=this.bytes.peek();if(yo[e]||vo[e])break;t+=b(e),this.bytes.next()}return Fo.of(t)},e.prototype.parseArray=function(){this.bytes.assertNext(mr.LeftSquareBracket),this.skipWhitespaceAndComments();for(var t=fo.withContext(this.context);this.bytes.peek()!==mr.RightSquareBracket;){var e=this.parseObject();t.push(e),this.skipWhitespaceAndComments()}return this.bytes.assertNext(mr.RightSquareBracket),t},e.prototype.parseDict=function(){this.bytes.assertNext(mr.LessThan),this.bytes.assertNext(mr.LessThan),this.skipWhitespaceAndComments();for(var t=new Map;!this.bytes.done()&&this.bytes.peek()!==mr.GreaterThan&&this.bytes.peekAhead(1)!==mr.GreaterThan;){var e=this.parseName(),n=this.parseObject();t.set(e,n),this.skipWhitespaceAndComments()}this.skipWhitespaceAndComments(),this.bytes.assertNext(mr.GreaterThan),this.bytes.assertNext(mr.GreaterThan);var r=t.get(Fo.of("Type"));return r===Fo.of("Catalog")?lh.fromMapWithContext(t,this.context):r===Fo.of("Pages")?hh.fromMapWithContext(t,this.context):r===Fo.of("Page")?Uo.fromMapWithContext(t,this.context):Co.fromMapWithContext(t,this.context)},e.prototype.parseDictOrStream=function(){var t=this.bytes.position(),e=this.parseDict();if(this.skipWhitespaceAndComments(),!(this.matchKeyword(Sh.streamEOF1)||this.matchKeyword(Sh.streamEOF2)||this.matchKeyword(Sh.streamEOF3)||this.matchKeyword(Sh.streamEOF4)||this.matchKeyword(Sh.stream)))return e;var n,r=this.bytes.offset(),i=e.get(Fo.of("Length"));i instanceof co?(n=r+i.asNumber(),this.bytes.moveTo(n),this.skipWhitespaceAndComments(),this.matchKeyword(Sh.endstream)||(this.bytes.moveTo(r),n=this.findEndOfStreamFallback(t))):n=this.findEndOfStreamFallback(t);var o=this.bytes.slice(r,n);return To.of(e,o)},e.prototype.findEndOfStreamFallback=function(t){for(var e=1,n=this.bytes.offset();!this.bytes.done()&&(n=this.bytes.offset(),this.matchKeyword(Sh.stream)?e+=1:this.matchKeyword(Sh.EOF1endstream)||this.matchKeyword(Sh.EOF2endstream)||this.matchKeyword(Sh.EOF3endstream)||this.matchKeyword(Sh.endstream)?e-=1:this.bytes.next(),0!==e););if(0!==e)throw new fr(t);return n},e.forBytes=function(t,n,r){return new e(mh.of(t),n,r)},e.forByteStream=function(t,n,r){return void 0===r&&(r=!1),new e(t,n,r)},e}(yh),Ah=function(t){function e(e,n){var r=t.call(this,mh.fromPDFRawStream(e),e.dict.context)||this,i=e.dict;return r.alreadyParsed=!1,r.shouldWaitForTick=n||function(){return!1},r.firstOffset=i.lookup(Fo.of("First"),co).asNumber(),r.objectCount=i.lookup(Fo.of("N"),co).asNumber(),r}return n(e,t),e.prototype.parseIntoContext=function(){return i(this,void 0,void 0,(function(){var t,e,n,r,i,a,s,l;return o(this,(function(o){switch(o.label){case 0:if(this.alreadyParsed)throw new Xn("PDFObjectStreamParser","parseIntoContext");this.alreadyParsed=!0,t=this.parseOffsetsAndObjectNumbers(),e=0,n=t.length,o.label=1;case 1:return e=mr.Space&&e<=mr.Tilde&&(this.matchKeyword(Sh.xref)||this.matchKeyword(Sh.trailer)||this.matchKeyword(Sh.startxref)||this.matchIndirectObjectHeader())){this.bytes.moveTo(t);break}this.bytes.next()}},e.prototype.skipBinaryHeaderComment=function(){this.skipWhitespaceAndComments();try{var t=this.bytes.offset();this.parseIndirectObjectHeader(),this.bytes.moveTo(t)}catch(t){this.bytes.next(),this.skipWhitespaceAndComments()}},e.forBytesWithOptions=function(t,n,r,i){return new e(t,n,r,i)},e}(Ch),zh=function(t){return 1<1&&(n*=d=Math.sqrt(d),r*=d);var f=c/n,p=u/n,g=-u/r,v=c/r,y=f*s+p*l,m=g*s+v*l,b=f*t+p*e,w=g*t+v*e,x=1/((b-y)*(b-y)+(w-m)*(w-m))-.25;x<0&&(x=0);var k=Math.sqrt(x);o===i&&(k=-k);var F=.5*(y+b)-k*(w-m),S=.5*(m+w)+k*(b-y),C=Math.atan2(m-S,y-F),A=Math.atan2(w-S,b-F)-C;A<0&&1===o?A+=2*Math.PI:A>0&&0===o&&(A-=2*Math.PI);for(var T=Math.ceil(Math.abs(A/(.5*Math.PI+.001))),P=[],z=0;z0&&(r[r.length]=+i),n[n.length]={cmd:e,args:r},r=[],i="",o=!1),e=h;else if([" ",","].includes(h)||"-"===h&&i.length>0&&"e"!==i[i.length-1]||"."===h&&o){if(0===i.length)continue;r.length===a?(n[n.length]={cmd:e,args:r},r=[+i],"M"===e&&(e="L"),"m"===e&&(e="l")):r[r.length]=+i,o="."===h,i=["-","."].includes(h)?h:""}else i+=h,"."===h&&(o=!0)}return i.length>0&&(r.length===a?(n[n.length]={cmd:e,args:r},r=[+i],"M"===e&&(e="L"),"m"===e&&(e="l")):r[r.length]=+i),n[n.length]={cmd:e,args:r},n}(t))},ac=function(t,e){for(var n=[au(),e.graphicsState&&ou(e.graphicsState),xu(),Ku(e.color),Fu(e.font,e.size),Su(e.lineHeight),Tu(Vh(e.rotate),Vh(e.xSkew),Vh(e.ySkew),e.x,e.y)].filter(Boolean),r=0,i=t.length;rt.length)return i-1;var p=e.heightAtSize(i);if((p+.2*p)*o>Math.abs(n.height))return i-1;i+=1}return i},Uc=function(t){for(var e=t.length;e>0;e--)if(/\s/.test(t[e]))return e},Vc=function(t,e,n,r){for(var i,o=t.length;o>0;){var a=t.substring(0,o),s=n.encodeText(a),l=n.widthOfTextAtSize(a,r);if(lf&&(f=C+k),g+l>p&&(p=g+l),u.push({text:w,encoded:x,width:k,height:l,x:C,y:g}),m=null==F?void 0:F.trim()}return{fontSize:i,lineHeight:h,lines:u,bounds:{x:c,y:d,width:f-c,height:p-d}}},qc=function(t,e){var n=e.fontSize,r=e.font,i=e.bounds,o=e.cellCount,a=P(S(t));if(a.length>o)throw new Nc(a.length,o);void 0!==n&&0!==n||(n=function(t,e,n,r){for(var i=n.width/r,o=n.height,a=4,s=R(t);a<500;){for(var l=0,h=s.length;l.75*i)return a-1}if(e.heightAtSize(a,{descender:!1})>o)return a-1;a+=1}return a}(a,r,i,o));for(var s=i.width/o,l=r.heightAtSize(n,{descender:!1}),h=i.y+(i.height/2-l/2),u=[],c=i.x,d=i.y,f=i.x+i.width,p=i.y+i.height,g=0,v=0;gf&&(f=k+x),h+l>p&&(p=h+l),u.push({text:a,encoded:w,width:x,height:l,x:k,y:h}),g+=1,v+=b}return{fontSize:n,cells:u,bounds:{x:c,y:d,width:f-c,height:p-d}}},Lc=function(e,n){var r=n.alignment,i=n.fontSize,o=n.font,a=n.bounds,s=P(S(e));void 0!==i&&0!==i||(i=Ic([s],o,a));var l=o.encodeText(s),h=o.widthOfTextAtSize(s,i),u=o.heightAtSize(i,{descender:!1}),c=r===t.TextAlignment.Left?a.x:r===t.TextAlignment.Center?a.x+a.width/2-h/2:r===t.TextAlignment.Right?a.x+a.width-h:a.x,d=a.y+(a.height/2-u/2);return{fontSize:i,line:{text:s,encoded:l,width:h,height:u,x:c,y:d},bounds:{x:c,y:d,width:h,height:u}}},Kc=function(t){return"normal"in t?t:{normal:t}},Gc=/\/([^\0\t\n\f\r\ ]+)[\0\t\n\f\r\ ]+(\d*\.\d+|\d+)[\0\t\n\f\r\ ]+Tf/,Hc=function(t){var e,n,r=null!==(e=t.getDefaultAppearance())&&void 0!==e?e:"",i=null!==(n=N(r,Gc).match)&&void 0!==n?n:[],o=Number(i[2]);return isFinite(o)?o:void 0},_c=/(\d*\.\d+|\d+)[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]*(\d*\.\d+|\d+)?[\0\t\n\f\r\ ]+(g|rg|k)/,Xc=function(t){var e,n=null!==(e=t.getDefaultAppearance())&&void 0!==e?e:"",r=N(n,_c).match,i=null!=r?r:[],o=i[1],a=i[2],s=i[3],l=i[4],h=i[5];return"g"===h&&o?Iu(Number(o)):"rg"===h&&o&&a&&s?Uu(Number(o),Number(a),Number(s)):"k"===h&&o&&a&&s&&l?Vu(Number(o),Number(a),Number(s),Number(l)):void 0},Zc=function(t,e,n,r){var i;void 0===r&&(r=0);var o=[Ku(e).toString(),Fu(null!==(i=null==n?void 0:n.name)&&void 0!==i?i:"dummy__noop",r).toString()].join("\n");t.setDefaultAppearance(o)},Yc=function(t,e){var n,i,o,s=Xc(e),l=Xc(t.acroField),h=e.getRectangle(),u=e.getAppearanceCharacteristics(),c=e.getBorderStyle(),d=null!==(n=null==c?void 0:c.getWidth())&&void 0!==n?n:0,f=qh(null==u?void 0:u.getRotation()),p=Lh(h,f),g=p.width,v=p.height,y=vc(r(r({},h),{rotation:f})),m=Uu(0,0,0),b=null!==(i=Hu(null==u?void 0:u.getBorderColor()))&&void 0!==i?i:m,w=Hu(null==u?void 0:u.getBackgroundColor()),x=Hu(null==u?void 0:u.getBackgroundColor(),.8),k=null!==(o=null!=s?s:l)&&void 0!==o?o:m;Zc(s?e:t.acroField,k);var F={x:0+d/2,y:0+d/2,width:g-d,height:v-d,thickness:1.5,borderWidth:d,borderColor:b,markColor:k};return{normal:{on:a(y,yc(r(r({},F),{color:w,filled:!0}))),off:a(y,yc(r(r({},F),{color:w,filled:!1})))},down:{on:a(y,yc(r(r({},F),{color:x,filled:!0}))),off:a(y,yc(r(r({},F),{color:x,filled:!1})))}}},Jc=function(t,e){var n,i,o,s=Xc(e),l=Xc(t.acroField),h=e.getRectangle(),u=e.getAppearanceCharacteristics(),c=e.getBorderStyle(),d=null!==(n=null==c?void 0:c.getWidth())&&void 0!==n?n:0,f=qh(null==u?void 0:u.getRotation()),p=Lh(h,f),g=p.width,v=p.height,y=vc(r(r({},h),{rotation:f})),m=Uu(0,0,0),b=null!==(i=Hu(null==u?void 0:u.getBorderColor()))&&void 0!==i?i:m,w=Hu(null==u?void 0:u.getBackgroundColor()),x=Hu(null==u?void 0:u.getBackgroundColor(),.8),k=null!==(o=null!=s?s:l)&&void 0!==o?o:m;Zc(s?e:t.acroField,k);var F={x:g/2,y:v/2,width:g-d,height:v-d,borderWidth:d,borderColor:b,dotColor:k};return{normal:{on:a(y,mc(r(r({},F),{color:w,filled:!0}))),off:a(y,mc(r(r({},F),{color:w,filled:!1})))},down:{on:a(y,mc(r(r({},F),{color:x,filled:!0}))),off:a(y,mc(r(r({},F),{color:x,filled:!1})))}}},Qc=function(e,n,i){var o,s,l,h,u,c=Xc(n),d=Xc(e.acroField),f=Hc(n),p=Hc(e.acroField),g=n.getRectangle(),v=n.getAppearanceCharacteristics(),y=n.getBorderStyle(),m=null==v?void 0:v.getCaptions(),b=null!==(o=null==m?void 0:m.normal)&&void 0!==o?o:"",w=null!==(l=null!==(s=null==m?void 0:m.down)&&void 0!==s?s:b)&&void 0!==l?l:"",x=null!==(h=null==y?void 0:y.getWidth())&&void 0!==h?h:0,k=qh(null==v?void 0:v.getRotation()),F=Lh(g,k),S=F.width,C=F.height,A=vc(r(r({},g),{rotation:k})),T=Uu(0,0,0),P=Hu(null==v?void 0:v.getBorderColor()),z=Hu(null==v?void 0:v.getBackgroundColor()),R=Hu(null==v?void 0:v.getBackgroundColor(),.8),O={x:x,y:x,width:S-2*x,height:C-2*x},D=Lc(b,{alignment:t.TextAlignment.Center,fontSize:null!=f?f:p,font:i,bounds:O}),B=Lc(w,{alignment:t.TextAlignment.Center,fontSize:null!=f?f:p,font:i,bounds:O}),N=Math.min(D.fontSize,B.fontSize),E=null!==(u=null!=c?c:d)&&void 0!==u?u:T;Zc(c||void 0!==f?n:e.acroField,E,i,N);var j={x:0+x/2,y:0+x/2,width:S-x,height:C-x,borderWidth:x,borderColor:P,textColor:E,font:i.name,fontSize:N};return{normal:a(A,bc(r(r({},j),{color:z,textLines:[D.line]}))),down:a(A,bc(r(r({},j),{color:R,textLines:[B.line]})))}},$c=function(t,e,n){var i,o,s,l,h,u,c=Xc(e),d=Xc(t.acroField),f=Hc(e),p=Hc(t.acroField),g=e.getRectangle(),v=e.getAppearanceCharacteristics(),y=e.getBorderStyle(),m=null!==(i=t.getText())&&void 0!==i?i:"",b=null!==(o=null==y?void 0:y.getWidth())&&void 0!==o?o:0,w=qh(null==v?void 0:v.getRotation()),x=Lh(g,w),k=x.width,F=x.height,S=vc(r(r({},g),{rotation:w})),C=Uu(0,0,0),A=Hu(null==v?void 0:v.getBorderColor()),T=Hu(null==v?void 0:v.getBackgroundColor()),P=t.isCombed()?0:1,z={x:b+P,y:b+P,width:k-2*(b+P),height:F-2*(b+P)};if(t.isMultiline())h=(R=Wc(m,{alignment:t.getAlignment(),fontSize:null!=f?f:p,font:n,bounds:z})).lines,u=R.fontSize;else if(t.isCombed()){h=(R=qc(m,{fontSize:null!=f?f:p,font:n,bounds:z,cellCount:null!==(s=t.getMaxLength())&&void 0!==s?s:0})).cells,u=R.fontSize}else{var R;h=[(R=Lc(m,{alignment:t.getAlignment(),fontSize:null!=f?f:p,font:n,bounds:z})).line],u=R.fontSize}var O=null!==(l=null!=c?c:d)&&void 0!==l?l:C;Zc(c||void 0!==f?e:t.acroField,O,n,u);var D={x:0+b/2,y:0+b/2,width:k-b,height:F-b,borderWidth:null!=b?b:0,borderColor:A,textColor:O,font:n.name,fontSize:u,color:T,textLines:h,padding:P};return a(S,xc(D))},td=function(e,n,i){var o,s,l,h=Xc(n),u=Xc(e.acroField),c=Hc(n),d=Hc(e.acroField),f=n.getRectangle(),p=n.getAppearanceCharacteristics(),g=n.getBorderStyle(),v=null!==(o=e.getSelected()[0])&&void 0!==o?o:"",y=null!==(s=null==g?void 0:g.getWidth())&&void 0!==s?s:0,m=qh(null==p?void 0:p.getRotation()),b=Lh(f,m),w=b.width,x=b.height,k=vc(r(r({},f),{rotation:m})),F=Uu(0,0,0),S=Hu(null==p?void 0:p.getBorderColor()),C=Hu(null==p?void 0:p.getBackgroundColor()),A={x:y+1,y:y+1,width:w-2*(y+1),height:x-2*(y+1)},T=Lc(v,{alignment:t.TextAlignment.Left,fontSize:null!=c?c:d,font:i,bounds:A}),P=T.line,z=T.fontSize,R=null!==(l=null!=h?h:u)&&void 0!==l?l:F;Zc(h||void 0!==c?n:e.acroField,R,i,z);var O={x:0+y/2,y:0+y/2,width:w-y,height:x-y,borderWidth:null!=y?y:0,borderColor:S,textColor:R,font:i.name,fontSize:z,color:C,textLines:[P],padding:1};return a(k,xc(O))},ed=function(e,n,i){var o,s,l=Xc(n),h=Xc(e.acroField),u=Hc(n),c=Hc(e.acroField),d=n.getRectangle(),f=n.getAppearanceCharacteristics(),p=n.getBorderStyle(),g=null!==(o=null==p?void 0:p.getWidth())&&void 0!==o?o:0,v=qh(null==f?void 0:f.getRotation()),y=Lh(d,v),m=y.width,b=y.height,w=vc(r(r({},d),{rotation:v})),x=Uu(0,0,0),k=Hu(null==f?void 0:f.getBorderColor()),F=Hu(null==f?void 0:f.getBackgroundColor()),S=e.getOptions(),C=e.getSelected();e.isSorted()&&S.sort();for(var A="",T=0,P=S.length;T1||1===n.length&&e)&&this.enableMultiselect();for(var i=new Array(n.length),o=0,a=n.length;o1||1===n.length&&e)&&this.enableMultiselect();for(var i=new Array(n.length),o=0,a=n.length;oe)throw new Ec(t.length,e,this.getName());this.markAsDirty(),this.disableRichFormatting(),t?this.acroField.setValue(Yo.fromText(t)):this.acroField.removeValue()},r.prototype.getAlignment=function(){var e=this.acroField.getQuadding();return 0===e?t.TextAlignment.Left:1===e?t.TextAlignment.Center:2===e?t.TextAlignment.Right:t.TextAlignment.Left},r.prototype.setAlignment=function(e){Cn(e,"alignment",t.TextAlignment),this.markAsDirty(),this.acroField.setQuadding(e)},r.prototype.getMaxLength=function(){return this.acroField.getMaxLength()},r.prototype.setMaxLength=function(t){if(En(t,"maxLength",0,Number.MAX_SAFE_INTEGER),this.markAsDirty(),void 0===t)this.acroField.removeMaxLength();else{var e=this.getText();if(e&&e.length>t)throw new jc(e.length,t,this.getName());this.acroField.setMaxLength(t)}},r.prototype.removeMaxLength=function(){this.markAsDirty(),this.acroField.removeMaxLength()},r.prototype.setImage=function(e){for(var n=this.getAlignment(),r=n===t.TextAlignment.Center?t.ImageAlignment.Center:n===t.TextAlignment.Right?t.ImageAlignment.Right:t.ImageAlignment.Left,i=this.acroField.getWidgets(),o=0,a=i.length;o>6&31|192;var s=63&o|128;n.push(a,s),r+=1}else if(o<65536){a=o>>12&15|224,s=o>>6&63|128;var l=63&o|128;n.push(a,s,l),r+=1}else{if(!(o<1114112))throw new Error("Invalid code point: 0x"+m(o));a=o>>18&7|240,s=o>>12&63|128,l=o>>6&63|128;var h=o>>0&63|128;n.push(a,s,l,h),r+=2}}return new Uint8Array(n)},t.values=yn,t.waitForTick=X,Object.defineProperty(t,"__esModule",{value:!0})})); -//# sourceMappingURL=pdf-lib.min.js.map \ No newline at end of file diff --git a/client-vanilla/public/dep/pdf.min.js b/client-vanilla/public/dep/pdf.min.js deleted file mode 100644 index f762b9748..000000000 --- a/client-vanilla/public/dep/pdf.min.js +++ /dev/null @@ -1,9995 +0,0 @@ -/** - * @licstart The following is the entire license notice for the - * Javascript code in this page - * - * Copyright 2020 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @licend The above is the entire license notice for the - * Javascript code in this page - */ -!function webpackUniversalModuleDefinition(e, t) { - "object" == typeof exports && "object" == typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define("pdfjs-dist/build/pdf", [], t) : "object" == typeof exports ? exports["pdfjs-dist/build/pdf"] = t() : e["pdfjs-dist/build/pdf"] = e.pdfjsLib = t() -}(this, (function() { - return function(e) { - var t = {}; - function __w_pdfjs_require__(r) { - if (t[r]) - return t[r].exports; - var n = t[r] = { - i: r, - l: !1, - exports: {} - }; - e[r].call(n.exports, n, n.exports, __w_pdfjs_require__); - n.l = !0; - return n.exports - } - __w_pdfjs_require__.m = e; - __w_pdfjs_require__.c = t; - __w_pdfjs_require__.d = function(e, t, r) { - __w_pdfjs_require__.o(e, t) || Object.defineProperty(e, t, { - enumerable: !0, - get: r - }) - } - ; - __w_pdfjs_require__.r = function(e) { - "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, { - value: "Module" - }); - Object.defineProperty(e, "__esModule", { - value: !0 - }) - } - ; - __w_pdfjs_require__.t = function(e, t) { - 1 & t && (e = __w_pdfjs_require__(e)); - if (8 & t) - return e; - if (4 & t && "object" == typeof e && e && e.__esModule) - return e; - var r = Object.create(null); - __w_pdfjs_require__.r(r); - Object.defineProperty(r, "default", { - enumerable: !0, - value: e - }); - if (2 & t && "string" != typeof e) - for (var n in e) - __w_pdfjs_require__.d(r, n, function(t) { - return e[t] - } - .bind(null, n)); - return r - } - ; - __w_pdfjs_require__.n = function(e) { - var t = e && e.__esModule ? function getDefault() { - return e.default - } - : function getModuleExports() { - return e - } - ; - __w_pdfjs_require__.d(t, "a", t); - return t - } - ; - __w_pdfjs_require__.o = function(e, t) { - return Object.prototype.hasOwnProperty.call(e, t) - } - ; - __w_pdfjs_require__.p = ""; - return __w_pdfjs_require__(__w_pdfjs_require__.s = 0) - }([function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - Object.defineProperty(t, "addLinkAttributes", { - enumerable: !0, - get: function() { - return n.addLinkAttributes - } - }); - Object.defineProperty(t, "getFilenameFromUrl", { - enumerable: !0, - get: function() { - return n.getFilenameFromUrl - } - }); - Object.defineProperty(t, "LinkTarget", { - enumerable: !0, - get: function() { - return n.LinkTarget - } - }); - Object.defineProperty(t, "loadScript", { - enumerable: !0, - get: function() { - return n.loadScript - } - }); - Object.defineProperty(t, "PDFDateString", { - enumerable: !0, - get: function() { - return n.PDFDateString - } - }); - Object.defineProperty(t, "RenderingCancelledException", { - enumerable: !0, - get: function() { - return n.RenderingCancelledException - } - }); - Object.defineProperty(t, "build", { - enumerable: !0, - get: function() { - return s.build - } - }); - Object.defineProperty(t, "getDocument", { - enumerable: !0, - get: function() { - return s.getDocument - } - }); - Object.defineProperty(t, "LoopbackPort", { - enumerable: !0, - get: function() { - return s.LoopbackPort - } - }); - Object.defineProperty(t, "PDFDataRangeTransport", { - enumerable: !0, - get: function() { - return s.PDFDataRangeTransport - } - }); - Object.defineProperty(t, "PDFWorker", { - enumerable: !0, - get: function() { - return s.PDFWorker - } - }); - Object.defineProperty(t, "version", { - enumerable: !0, - get: function() { - return s.version - } - }); - Object.defineProperty(t, "CMapCompressionType", { - enumerable: !0, - get: function() { - return a.CMapCompressionType - } - }); - Object.defineProperty(t, "createObjectURL", { - enumerable: !0, - get: function() { - return a.createObjectURL - } - }); - Object.defineProperty(t, "createPromiseCapability", { - enumerable: !0, - get: function() { - return a.createPromiseCapability - } - }); - Object.defineProperty(t, "createValidAbsoluteUrl", { - enumerable: !0, - get: function() { - return a.createValidAbsoluteUrl - } - }); - Object.defineProperty(t, "InvalidPDFException", { - enumerable: !0, - get: function() { - return a.InvalidPDFException - } - }); - Object.defineProperty(t, "MissingPDFException", { - enumerable: !0, - get: function() { - return a.MissingPDFException - } - }); - Object.defineProperty(t, "OPS", { - enumerable: !0, - get: function() { - return a.OPS - } - }); - Object.defineProperty(t, "PasswordResponses", { - enumerable: !0, - get: function() { - return a.PasswordResponses - } - }); - Object.defineProperty(t, "PermissionFlag", { - enumerable: !0, - get: function() { - return a.PermissionFlag - } - }); - Object.defineProperty(t, "removeNullCharacters", { - enumerable: !0, - get: function() { - return a.removeNullCharacters - } - }); - Object.defineProperty(t, "shadow", { - enumerable: !0, - get: function() { - return a.shadow - } - }); - Object.defineProperty(t, "UnexpectedResponseException", { - enumerable: !0, - get: function() { - return a.UnexpectedResponseException - } - }); - Object.defineProperty(t, "UNSUPPORTED_FEATURES", { - enumerable: !0, - get: function() { - return a.UNSUPPORTED_FEATURES - } - }); - Object.defineProperty(t, "Util", { - enumerable: !0, - get: function() { - return a.Util - } - }); - Object.defineProperty(t, "VerbosityLevel", { - enumerable: !0, - get: function() { - return a.VerbosityLevel - } - }); - Object.defineProperty(t, "AnnotationLayer", { - enumerable: !0, - get: function() { - return i.AnnotationLayer - } - }); - Object.defineProperty(t, "apiCompatibilityParams", { - enumerable: !0, - get: function() { - return o.apiCompatibilityParams - } - }); - Object.defineProperty(t, "GlobalWorkerOptions", { - enumerable: !0, - get: function() { - return l.GlobalWorkerOptions - } - }); - Object.defineProperty(t, "renderTextLayer", { - enumerable: !0, - get: function() { - return c.renderTextLayer - } - }); - Object.defineProperty(t, "SVGGraphics", { - enumerable: !0, - get: function() { - return h.SVGGraphics - } - }); - var n = r(1) - , s = r(5) - , a = r(2) - , i = r(19) - , o = r(9) - , l = r(12) - , c = r(20) - , h = r(21); - { - const {isNodeJS: e} = r(4); - if (e) { - const e = r(22).PDFNodeStream; - (0, - s.setPDFNetworkStreamFactory)(t=>new e(t)) - } else { - const e = r(25).PDFNetworkStream; - let t; - (0, - n.isFetchSupported)() && (t = r(26).PDFFetchStream); - (0, - s.setPDFNetworkStreamFactory)(r=>t && (0, - n.isValidFetchUrl)(r.url) ? new t(r) : new e(r)) - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.addLinkAttributes = function addLinkAttributes(e, {url: t, target: r, rel: s, enabled: i=!0}={}) { - (0, - n.assert)(t && "string" == typeof t, 'addLinkAttributes: A valid "url" parameter must provided.'); - const o = (0, - n.removeNullCharacters)(t); - if (i) - e.href = e.title = o; - else { - e.href = ""; - e.title = "Disabled: " + o; - e.onclick = ()=>!1 - } - let l = ""; - switch (r) { - case a.NONE: - break; - case a.SELF: - l = "_self"; - break; - case a.BLANK: - l = "_blank"; - break; - case a.PARENT: - l = "_parent"; - break; - case a.TOP: - l = "_top" - } - e.target = l; - e.rel = "string" == typeof s ? s : "noopener noreferrer nofollow" - } - ; - t.getFilenameFromUrl = function getFilenameFromUrl(e) { - const t = e.indexOf("#") - , r = e.indexOf("?") - , n = Math.min(t > 0 ? t : e.length, r > 0 ? r : e.length); - return e.substring(e.lastIndexOf("/", n) + 1, n) - } - ; - t.isFetchSupported = isFetchSupported; - t.isValidFetchUrl = isValidFetchUrl; - t.loadScript = function loadScript(e) { - return new Promise((t,r)=>{ - const n = document.createElement("script"); - n.src = e; - n.onload = t; - n.onerror = function() { - r(new Error("Cannot load script at: " + n.src)) - } - ; - (document.head || document.documentElement).appendChild(n) - } - ) - } - ; - t.deprecated = function deprecated(e) { - console.log("Deprecated API usage: " + e) - } - ; - t.PDFDateString = t.StatTimer = t.DOMSVGFactory = t.DOMCMapReaderFactory = t.BaseCMapReaderFactory = t.DOMCanvasFactory = t.BaseCanvasFactory = t.DEFAULT_LINK_REL = t.LinkTarget = t.RenderingCancelledException = t.PageViewport = void 0; - var n = r(2); - t.DEFAULT_LINK_REL = "noopener noreferrer nofollow"; - const s = "http://www.w3.org/2000/svg"; - class BaseCanvasFactory { - constructor() { - this.constructor === BaseCanvasFactory && (0, - n.unreachable)("Cannot initialize BaseCanvasFactory.") - } - create(e, t) { - (0, - n.unreachable)("Abstract method `create` called.") - } - reset(e, t, r) { - if (!e.canvas) - throw new Error("Canvas is not specified"); - if (t <= 0 || r <= 0) - throw new Error("Invalid canvas size"); - e.canvas.width = t; - e.canvas.height = r - } - destroy(e) { - if (!e.canvas) - throw new Error("Canvas is not specified"); - e.canvas.width = 0; - e.canvas.height = 0; - e.canvas = null; - e.context = null - } - } - t.BaseCanvasFactory = BaseCanvasFactory; - t.DOMCanvasFactory = class DOMCanvasFactory extends BaseCanvasFactory { - constructor({ownerDocument: e=globalThis.document}={}) { - super(); - this._document = e - } - create(e, t) { - if (e <= 0 || t <= 0) - throw new Error("Invalid canvas size"); - const r = this._document.createElement("canvas") - , n = r.getContext("2d"); - r.width = e; - r.height = t; - return { - canvas: r, - context: n - } - } - } - ; - class BaseCMapReaderFactory { - constructor({baseUrl: e=null, isCompressed: t=!1}) { - this.constructor === BaseCMapReaderFactory && (0, - n.unreachable)("Cannot initialize BaseCMapReaderFactory."); - this.baseUrl = e; - this.isCompressed = t - } - async fetch({name: e}) { - if (!this.baseUrl) - throw new Error('The CMap "baseUrl" parameter must be specified, ensure that the "cMapUrl" and "cMapPacked" API parameters are provided.'); - if (!e) - throw new Error("CMap name must be specified."); - const t = this.baseUrl + e + (this.isCompressed ? ".bcmap" : "") - , r = this.isCompressed ? n.CMapCompressionType.BINARY : n.CMapCompressionType.NONE; - return this._fetchData(t, r).catch(e=>{ - throw new Error(`Unable to load ${this.isCompressed ? "binary " : ""}CMap at: ${t}`) - } - ) - } - _fetchData(e, t) { - (0, - n.unreachable)("Abstract method `_fetchData` called.") - } - } - t.BaseCMapReaderFactory = BaseCMapReaderFactory; - t.DOMCMapReaderFactory = class DOMCMapReaderFactory extends BaseCMapReaderFactory { - _fetchData(e, t) { - return isFetchSupported() && isValidFetchUrl(e, document.baseURI) ? fetch(e).then(async e=>{ - if (!e.ok) - throw new Error(e.statusText); - let r; - r = this.isCompressed ? new Uint8Array(await e.arrayBuffer()) : (0, - n.stringToBytes)(await e.text()); - return { - cMapData: r, - compressionType: t - } - } - ) : new Promise((r,s)=>{ - const a = new XMLHttpRequest; - a.open("GET", e, !0); - this.isCompressed && (a.responseType = "arraybuffer"); - a.onreadystatechange = ()=>{ - if (a.readyState === XMLHttpRequest.DONE) { - if (200 === a.status || 0 === a.status) { - let e; - this.isCompressed && a.response ? e = new Uint8Array(a.response) : !this.isCompressed && a.responseText && (e = (0, - n.stringToBytes)(a.responseText)); - if (e) { - r({ - cMapData: e, - compressionType: t - }); - return - } - } - s(new Error(a.statusText)) - } - } - ; - a.send(null) - } - ) - } - } - ; - t.DOMSVGFactory = class DOMSVGFactory { - create(e, t) { - (0, - n.assert)(e > 0 && t > 0, "Invalid SVG dimensions"); - const r = document.createElementNS(s, "svg:svg"); - r.setAttribute("version", "1.1"); - r.setAttribute("width", e + "px"); - r.setAttribute("height", t + "px"); - r.setAttribute("preserveAspectRatio", "none"); - r.setAttribute("viewBox", "0 0 " + e + " " + t); - return r - } - createElement(e) { - (0, - n.assert)("string" == typeof e, "Invalid SVG element type"); - return document.createElementNS(s, e) - } - } - ; - class PageViewport { - constructor({viewBox: e, scale: t, rotation: r, offsetX: n=0, offsetY: s=0, dontFlip: a=!1}) { - this.viewBox = e; - this.scale = t; - this.rotation = r; - this.offsetX = n; - this.offsetY = s; - const i = (e[2] + e[0]) / 2 - , o = (e[3] + e[1]) / 2; - let l, c, h, d, u, p, f, g; - switch (r = (r %= 360) < 0 ? r + 360 : r) { - case 180: - l = -1; - c = 0; - h = 0; - d = 1; - break; - case 90: - l = 0; - c = 1; - h = 1; - d = 0; - break; - case 270: - l = 0; - c = -1; - h = -1; - d = 0; - break; - case 0: - l = 1; - c = 0; - h = 0; - d = -1; - break; - default: - throw new Error("PageViewport: Invalid rotation, must be a multiple of 90 degrees.") - } - if (a) { - h = -h; - d = -d - } - if (0 === l) { - u = Math.abs(o - e[1]) * t + n; - p = Math.abs(i - e[0]) * t + s; - f = Math.abs(e[3] - e[1]) * t; - g = Math.abs(e[2] - e[0]) * t - } else { - u = Math.abs(i - e[0]) * t + n; - p = Math.abs(o - e[1]) * t + s; - f = Math.abs(e[2] - e[0]) * t; - g = Math.abs(e[3] - e[1]) * t - } - this.transform = [l * t, c * t, h * t, d * t, u - l * t * i - h * t * o, p - c * t * i - d * t * o]; - this.width = f; - this.height = g - } - clone({scale: e=this.scale, rotation: t=this.rotation, offsetX: r=this.offsetX, offsetY: n=this.offsetY, dontFlip: s=!1}={}) { - return new PageViewport({ - viewBox: this.viewBox.slice(), - scale: e, - rotation: t, - offsetX: r, - offsetY: n, - dontFlip: s - }) - } - convertToViewportPoint(e, t) { - return n.Util.applyTransform([e, t], this.transform) - } - convertToViewportRectangle(e) { - const t = n.Util.applyTransform([e[0], e[1]], this.transform) - , r = n.Util.applyTransform([e[2], e[3]], this.transform); - return [t[0], t[1], r[0], r[1]] - } - convertToPdfPoint(e, t) { - return n.Util.applyInverseTransform([e, t], this.transform) - } - } - t.PageViewport = PageViewport; - class RenderingCancelledException extends n.BaseException { - constructor(e, t) { - super(e); - this.type = t - } - } - t.RenderingCancelledException = RenderingCancelledException; - const a = { - NONE: 0, - SELF: 1, - BLANK: 2, - PARENT: 3, - TOP: 4 - }; - t.LinkTarget = a; - t.StatTimer = class StatTimer { - constructor() { - this.started = Object.create(null); - this.times = [] - } - time(e) { - e in this.started && (0, - n.warn)("Timer is already running for " + e); - this.started[e] = Date.now() - } - timeEnd(e) { - e in this.started || (0, - n.warn)("Timer has not been started for " + e); - this.times.push({ - name: e, - start: this.started[e], - end: Date.now() - }); - delete this.started[e] - } - toString() { - const e = []; - let t = 0; - for (const e of this.times) { - const r = e.name; - r.length > t && (t = r.length) - } - for (const r of this.times) { - const n = r.end - r.start; - e.push(`${r.name.padEnd(t)} ${n}ms\n`) - } - return e.join("") - } - } - ; - function isFetchSupported() { - return "undefined" != typeof fetch && "undefined" != typeof Response && "body"in Response.prototype && "undefined" != typeof ReadableStream - } - function isValidFetchUrl(e, t) { - try { - const {protocol: r} = t ? new URL(e,t) : new URL(e); - return "http:" === r || "https:" === r - } catch (e) { - return !1 - } - } - let i; - t.PDFDateString = class PDFDateString { - static toDateObject(e) { - if (!e || !(0, - n.isString)(e)) - return null; - i || (i = new RegExp("^D:(\\d{4})(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?(\\d{2})?([Z|+|-])?(\\d{2})?'?(\\d{2})?'?")); - const t = i.exec(e); - if (!t) - return null; - const r = parseInt(t[1], 10); - let s = parseInt(t[2], 10); - s = s >= 1 && s <= 12 ? s - 1 : 0; - let a = parseInt(t[3], 10); - a = a >= 1 && a <= 31 ? a : 1; - let o = parseInt(t[4], 10); - o = o >= 0 && o <= 23 ? o : 0; - let l = parseInt(t[5], 10); - l = l >= 0 && l <= 59 ? l : 0; - let c = parseInt(t[6], 10); - c = c >= 0 && c <= 59 ? c : 0; - const h = t[7] || "Z"; - let d = parseInt(t[8], 10); - d = d >= 0 && d <= 23 ? d : 0; - let u = parseInt(t[9], 10) || 0; - u = u >= 0 && u <= 59 ? u : 0; - if ("-" === h) { - o += d; - l += u - } else if ("+" === h) { - o -= d; - l -= u - } - return new Date(Date.UTC(r, s, a, o, l, c)) - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.arrayByteLength = arrayByteLength; - t.arraysToBytes = function arraysToBytes(e) { - const t = e.length; - if (1 === t && e[0]instanceof Uint8Array) - return e[0]; - let r = 0; - for (let n = 0; n < t; n++) - r += arrayByteLength(e[n]); - let n = 0; - const s = new Uint8Array(r); - for (let r = 0; r < t; r++) { - let t = e[r]; - t instanceof Uint8Array || (t = "string" == typeof t ? stringToBytes(t) : new Uint8Array(t)); - const a = t.byteLength; - s.set(t, n); - n += a - } - return s - } - ; - t.assert = assert; - t.bytesToString = function bytesToString(e) { - assert(null !== e && "object" == typeof e && void 0 !== e.length, "Invalid argument for bytesToString"); - const t = e.length; - if (t < 8192) - return String.fromCharCode.apply(null, e); - const r = []; - for (let n = 0; n < t; n += 8192) { - const s = Math.min(n + 8192, t) - , a = e.subarray(n, s); - r.push(String.fromCharCode.apply(null, a)) - } - return r.join("") - } - ; - t.createPromiseCapability = function createPromiseCapability() { - const e = Object.create(null); - let t = !1; - Object.defineProperty(e, "settled", { - get: ()=>t - }); - e.promise = new Promise((function(r, n) { - e.resolve = function(e) { - t = !0; - r(e) - } - ; - e.reject = function(e) { - t = !0; - n(e) - } - } - )); - return e - } - ; - t.escapeString = function escapeString(e) { - return e.replace(/([\(\)\\])/g, "\\$1") - } - ; - t.getModificationDate = function getModificationDate(e=new Date(Date.now())) { - return [e.getUTCFullYear().toString(), (e.getUTCMonth() + 1).toString().padStart(2, "0"), (e.getUTCDate() + 1).toString().padStart(2, "0"), e.getUTCHours().toString().padStart(2, "0"), e.getUTCMinutes().toString().padStart(2, "0"), e.getUTCSeconds().toString().padStart(2, "0")].join("") - } - ; - t.getVerbosityLevel = function getVerbosityLevel() { - return s - } - ; - t.info = function info(e) { - s >= n.INFOS && console.log("Info: " + e) - } - ; - t.isArrayBuffer = function isArrayBuffer(e) { - return "object" == typeof e && null !== e && void 0 !== e.byteLength - } - ; - t.isArrayEqual = function isArrayEqual(e, t) { - if (e.length !== t.length) - return !1; - return e.every((function(e, r) { - return e === t[r] - } - )) - } - ; - t.isBool = function isBool(e) { - return "boolean" == typeof e - } - ; - t.isNum = function isNum(e) { - return "number" == typeof e - } - ; - t.isString = function isString(e) { - return "string" == typeof e - } - ; - t.isSameOrigin = function isSameOrigin(e, t) { - let r; - try { - r = new URL(e); - if (!r.origin || "null" === r.origin) - return !1 - } catch (e) { - return !1 - } - const n = new URL(t,r); - return r.origin === n.origin - } - ; - t.createValidAbsoluteUrl = function createValidAbsoluteUrl(e, t) { - if (!e) - return null; - try { - const r = t ? new URL(e,t) : new URL(e); - if (function _isValidProtocol(e) { - if (!e) - return !1; - switch (e.protocol) { - case "http:": - case "https:": - case "ftp:": - case "mailto:": - case "tel:": - return !0; - default: - return !1 - } - }(r)) - return r - } catch (e) {} - return null - } - ; - t.removeNullCharacters = function removeNullCharacters(e) { - if ("string" != typeof e) { - warn("The argument for removeNullCharacters must be a string."); - return e - } - return e.replace(i, "") - } - ; - t.setVerbosityLevel = function setVerbosityLevel(e) { - Number.isInteger(e) && (s = e) - } - ; - t.shadow = shadow; - t.string32 = function string32(e) { - return String.fromCharCode(e >> 24 & 255, e >> 16 & 255, e >> 8 & 255, 255 & e) - } - ; - t.stringToBytes = stringToBytes; - t.stringToPDFString = function stringToPDFString(e) { - const t = e.length - , r = []; - if ("þ" === e[0] && "ÿ" === e[1]) - for (let n = 2; n < t; n += 2) - r.push(String.fromCharCode(e.charCodeAt(n) << 8 | e.charCodeAt(n + 1))); - else if ("ÿ" === e[0] && "þ" === e[1]) - for (let n = 2; n < t; n += 2) - r.push(String.fromCharCode(e.charCodeAt(n + 1) << 8 | e.charCodeAt(n))); - else - for (let n = 0; n < t; ++n) { - const t = h[e.charCodeAt(n)]; - r.push(t ? String.fromCharCode(t) : e.charAt(n)) - } - return r.join("") - } - ; - t.stringToUTF8String = function stringToUTF8String(e) { - return decodeURIComponent(escape(e)) - } - ; - t.utf8StringToString = function utf8StringToString(e) { - return unescape(encodeURIComponent(e)) - } - ; - t.warn = warn; - t.unreachable = unreachable; - t.IsEvalSupportedCached = t.IsLittleEndianCached = t.createObjectURL = t.FormatError = t.Util = t.UnknownErrorException = t.UnexpectedResponseException = t.TextRenderingMode = t.StreamType = t.PermissionFlag = t.PasswordResponses = t.PasswordException = t.MissingPDFException = t.InvalidPDFException = t.AbortException = t.CMapCompressionType = t.ImageKind = t.FontType = t.AnnotationType = t.AnnotationStateModelType = t.AnnotationReviewState = t.AnnotationReplyType = t.AnnotationMarkedState = t.AnnotationFlag = t.AnnotationFieldFlag = t.AnnotationBorderStyleType = t.UNSUPPORTED_FEATURES = t.VerbosityLevel = t.OPS = t.IDENTITY_MATRIX = t.FONT_IDENTITY_MATRIX = t.BaseException = void 0; - r(3); - t.IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0]; - t.FONT_IDENTITY_MATRIX = [.001, 0, 0, .001, 0, 0]; - t.PermissionFlag = { - PRINT: 4, - MODIFY_CONTENTS: 8, - COPY: 16, - MODIFY_ANNOTATIONS: 32, - FILL_INTERACTIVE_FORMS: 256, - COPY_FOR_ACCESSIBILITY: 512, - ASSEMBLE: 1024, - PRINT_HIGH_QUALITY: 2048 - }; - t.TextRenderingMode = { - FILL: 0, - STROKE: 1, - FILL_STROKE: 2, - INVISIBLE: 3, - FILL_ADD_TO_PATH: 4, - STROKE_ADD_TO_PATH: 5, - FILL_STROKE_ADD_TO_PATH: 6, - ADD_TO_PATH: 7, - FILL_STROKE_MASK: 3, - ADD_TO_PATH_FLAG: 4 - }; - t.ImageKind = { - GRAYSCALE_1BPP: 1, - RGB_24BPP: 2, - RGBA_32BPP: 3 - }; - t.AnnotationType = { - TEXT: 1, - LINK: 2, - FREETEXT: 3, - LINE: 4, - SQUARE: 5, - CIRCLE: 6, - POLYGON: 7, - POLYLINE: 8, - HIGHLIGHT: 9, - UNDERLINE: 10, - SQUIGGLY: 11, - STRIKEOUT: 12, - STAMP: 13, - CARET: 14, - INK: 15, - POPUP: 16, - FILEATTACHMENT: 17, - SOUND: 18, - MOVIE: 19, - WIDGET: 20, - SCREEN: 21, - PRINTERMARK: 22, - TRAPNET: 23, - WATERMARK: 24, - THREED: 25, - REDACT: 26 - }; - t.AnnotationStateModelType = { - MARKED: "Marked", - REVIEW: "Review" - }; - t.AnnotationMarkedState = { - MARKED: "Marked", - UNMARKED: "Unmarked" - }; - t.AnnotationReviewState = { - ACCEPTED: "Accepted", - REJECTED: "Rejected", - CANCELLED: "Cancelled", - COMPLETED: "Completed", - NONE: "None" - }; - t.AnnotationReplyType = { - GROUP: "Group", - REPLY: "R" - }; - t.AnnotationFlag = { - INVISIBLE: 1, - HIDDEN: 2, - PRINT: 4, - NOZOOM: 8, - NOROTATE: 16, - NOVIEW: 32, - READONLY: 64, - LOCKED: 128, - TOGGLENOVIEW: 256, - LOCKEDCONTENTS: 512 - }; - t.AnnotationFieldFlag = { - READONLY: 1, - REQUIRED: 2, - NOEXPORT: 4, - MULTILINE: 4096, - PASSWORD: 8192, - NOTOGGLETOOFF: 16384, - RADIO: 32768, - PUSHBUTTON: 65536, - COMBO: 131072, - EDIT: 262144, - SORT: 524288, - FILESELECT: 1048576, - MULTISELECT: 2097152, - DONOTSPELLCHECK: 4194304, - DONOTSCROLL: 8388608, - COMB: 16777216, - RICHTEXT: 33554432, - RADIOSINUNISON: 33554432, - COMMITONSELCHANGE: 67108864 - }; - t.AnnotationBorderStyleType = { - SOLID: 1, - DASHED: 2, - BEVELED: 3, - INSET: 4, - UNDERLINE: 5 - }; - t.StreamType = { - UNKNOWN: "UNKNOWN", - FLATE: "FLATE", - LZW: "LZW", - DCT: "DCT", - JPX: "JPX", - JBIG: "JBIG", - A85: "A85", - AHX: "AHX", - CCF: "CCF", - RLX: "RLX" - }; - t.FontType = { - UNKNOWN: "UNKNOWN", - TYPE1: "TYPE1", - TYPE1C: "TYPE1C", - CIDFONTTYPE0: "CIDFONTTYPE0", - CIDFONTTYPE0C: "CIDFONTTYPE0C", - TRUETYPE: "TRUETYPE", - CIDFONTTYPE2: "CIDFONTTYPE2", - TYPE3: "TYPE3", - OPENTYPE: "OPENTYPE", - TYPE0: "TYPE0", - MMTYPE1: "MMTYPE1" - }; - const n = { - ERRORS: 0, - WARNINGS: 1, - INFOS: 5 - }; - t.VerbosityLevel = n; - t.CMapCompressionType = { - NONE: 0, - BINARY: 1, - STREAM: 2 - }; - t.OPS = { - dependency: 1, - setLineWidth: 2, - setLineCap: 3, - setLineJoin: 4, - setMiterLimit: 5, - setDash: 6, - setRenderingIntent: 7, - setFlatness: 8, - setGState: 9, - save: 10, - restore: 11, - transform: 12, - moveTo: 13, - lineTo: 14, - curveTo: 15, - curveTo2: 16, - curveTo3: 17, - closePath: 18, - rectangle: 19, - stroke: 20, - closeStroke: 21, - fill: 22, - eoFill: 23, - fillStroke: 24, - eoFillStroke: 25, - closeFillStroke: 26, - closeEOFillStroke: 27, - endPath: 28, - clip: 29, - eoClip: 30, - beginText: 31, - endText: 32, - setCharSpacing: 33, - setWordSpacing: 34, - setHScale: 35, - setLeading: 36, - setFont: 37, - setTextRenderingMode: 38, - setTextRise: 39, - moveText: 40, - setLeadingMoveText: 41, - setTextMatrix: 42, - nextLine: 43, - showText: 44, - showSpacedText: 45, - nextLineShowText: 46, - nextLineSetSpacingShowText: 47, - setCharWidth: 48, - setCharWidthAndBounds: 49, - setStrokeColorSpace: 50, - setFillColorSpace: 51, - setStrokeColor: 52, - setStrokeColorN: 53, - setFillColor: 54, - setFillColorN: 55, - setStrokeGray: 56, - setFillGray: 57, - setStrokeRGBColor: 58, - setFillRGBColor: 59, - setStrokeCMYKColor: 60, - setFillCMYKColor: 61, - shadingFill: 62, - beginInlineImage: 63, - beginImageData: 64, - endInlineImage: 65, - paintXObject: 66, - markPoint: 67, - markPointProps: 68, - beginMarkedContent: 69, - beginMarkedContentProps: 70, - endMarkedContent: 71, - beginCompat: 72, - endCompat: 73, - paintFormXObjectBegin: 74, - paintFormXObjectEnd: 75, - beginGroup: 76, - endGroup: 77, - beginAnnotations: 78, - endAnnotations: 79, - beginAnnotation: 80, - endAnnotation: 81, - paintJpegXObject: 82, - paintImageMaskXObject: 83, - paintImageMaskXObjectGroup: 84, - paintImageXObject: 85, - paintInlineImageXObject: 86, - paintInlineImageXObjectGroup: 87, - paintImageXObjectRepeat: 88, - paintImageMaskXObjectRepeat: 89, - paintSolidColorImageMask: 90, - constructPath: 91 - }; - t.UNSUPPORTED_FEATURES = { - unknown: "unknown", - forms: "forms", - javaScript: "javaScript", - smask: "smask", - shadingPattern: "shadingPattern", - font: "font", - errorTilingPattern: "errorTilingPattern", - errorExtGState: "errorExtGState", - errorXObject: "errorXObject", - errorFontLoadType3: "errorFontLoadType3", - errorFontState: "errorFontState", - errorFontMissing: "errorFontMissing", - errorFontTranslate: "errorFontTranslate", - errorColorSpace: "errorColorSpace", - errorOperatorList: "errorOperatorList", - errorFontToUnicode: "errorFontToUnicode", - errorFontLoadNative: "errorFontLoadNative", - errorFontGetPath: "errorFontGetPath", - errorMarkedContent: "errorMarkedContent" - }; - t.PasswordResponses = { - NEED_PASSWORD: 1, - INCORRECT_PASSWORD: 2 - }; - let s = n.WARNINGS; - function warn(e) { - s >= n.WARNINGS && console.log("Warning: " + e) - } - function unreachable(e) { - throw new Error(e) - } - function assert(e, t) { - e || unreachable(t) - } - function shadow(e, t, r) { - Object.defineProperty(e, t, { - value: r, - enumerable: !0, - configurable: !0, - writable: !1 - }); - return r - } - const a = function BaseExceptionClosure() { - function BaseException(e) { - this.constructor === BaseException && unreachable("Cannot initialize BaseException."); - this.message = e; - this.name = this.constructor.name - } - BaseException.prototype = new Error; - BaseException.constructor = BaseException; - return BaseException - }(); - t.BaseException = a; - t.PasswordException = class PasswordException extends a { - constructor(e, t) { - super(e); - this.code = t - } - } - ; - t.UnknownErrorException = class UnknownErrorException extends a { - constructor(e, t) { - super(e); - this.details = t - } - } - ; - t.InvalidPDFException = class InvalidPDFException extends a { - } - ; - t.MissingPDFException = class MissingPDFException extends a { - } - ; - t.UnexpectedResponseException = class UnexpectedResponseException extends a { - constructor(e, t) { - super(e); - this.status = t - } - } - ; - t.FormatError = class FormatError extends a { - } - ; - t.AbortException = class AbortException extends a { - } - ; - const i = /\x00/g; - function stringToBytes(e) { - assert("string" == typeof e, "Invalid argument for stringToBytes"); - const t = e.length - , r = new Uint8Array(t); - for (let n = 0; n < t; ++n) - r[n] = 255 & e.charCodeAt(n); - return r - } - function arrayByteLength(e) { - if (void 0 !== e.length) - return e.length; - assert(void 0 !== e.byteLength, "arrayByteLength - invalid argument."); - return e.byteLength - } - const o = { - get value() { - return shadow(this, "value", function isLittleEndian() { - const e = new Uint8Array(4); - e[0] = 1; - return 1 === new Uint32Array(e.buffer,0,1)[0] - }()) - } - }; - t.IsLittleEndianCached = o; - const l = { - get value() { - return shadow(this, "value", function isEvalSupported() { - try { - new Function(""); - return !0 - } catch (e) { - return !1 - } - }()) - } - }; - t.IsEvalSupportedCached = l; - const c = ["rgb(", 0, ",", 0, ",", 0, ")"]; - class Util { - static makeCssRgb(e, t, r) { - c[1] = e; - c[3] = t; - c[5] = r; - return c.join("") - } - static transform(e, t) { - return [e[0] * t[0] + e[2] * t[1], e[1] * t[0] + e[3] * t[1], e[0] * t[2] + e[2] * t[3], e[1] * t[2] + e[3] * t[3], e[0] * t[4] + e[2] * t[5] + e[4], e[1] * t[4] + e[3] * t[5] + e[5]] - } - static applyTransform(e, t) { - return [e[0] * t[0] + e[1] * t[2] + t[4], e[0] * t[1] + e[1] * t[3] + t[5]] - } - static applyInverseTransform(e, t) { - const r = t[0] * t[3] - t[1] * t[2]; - return [(e[0] * t[3] - e[1] * t[2] + t[2] * t[5] - t[4] * t[3]) / r, (-e[0] * t[1] + e[1] * t[0] + t[4] * t[1] - t[5] * t[0]) / r] - } - static getAxialAlignedBoundingBox(e, t) { - const r = Util.applyTransform(e, t) - , n = Util.applyTransform(e.slice(2, 4), t) - , s = Util.applyTransform([e[0], e[3]], t) - , a = Util.applyTransform([e[2], e[1]], t); - return [Math.min(r[0], n[0], s[0], a[0]), Math.min(r[1], n[1], s[1], a[1]), Math.max(r[0], n[0], s[0], a[0]), Math.max(r[1], n[1], s[1], a[1])] - } - static inverseTransform(e) { - const t = e[0] * e[3] - e[1] * e[2]; - return [e[3] / t, -e[1] / t, -e[2] / t, e[0] / t, (e[2] * e[5] - e[4] * e[3]) / t, (e[4] * e[1] - e[5] * e[0]) / t] - } - static apply3dTransform(e, t) { - return [e[0] * t[0] + e[1] * t[1] + e[2] * t[2], e[3] * t[0] + e[4] * t[1] + e[5] * t[2], e[6] * t[0] + e[7] * t[1] + e[8] * t[2]] - } - static singularValueDecompose2dScale(e) { - const t = [e[0], e[2], e[1], e[3]] - , r = e[0] * t[0] + e[1] * t[2] - , n = e[0] * t[1] + e[1] * t[3] - , s = e[2] * t[0] + e[3] * t[2] - , a = e[2] * t[1] + e[3] * t[3] - , i = (r + a) / 2 - , o = Math.sqrt((r + a) * (r + a) - 4 * (r * a - s * n)) / 2 - , l = i + o || 1 - , c = i - o || 1; - return [Math.sqrt(l), Math.sqrt(c)] - } - static normalizeRect(e) { - const t = e.slice(0); - if (e[0] > e[2]) { - t[0] = e[2]; - t[2] = e[0] - } - if (e[1] > e[3]) { - t[1] = e[3]; - t[3] = e[1] - } - return t - } - static intersect(e, t) { - function compare(e, t) { - return e - t - } - const r = [e[0], e[2], t[0], t[2]].sort(compare) - , n = [e[1], e[3], t[1], t[3]].sort(compare) - , s = []; - e = Util.normalizeRect(e); - t = Util.normalizeRect(t); - if (!(r[0] === e[0] && r[1] === t[0] || r[0] === t[0] && r[1] === e[0])) - return null; - s[0] = r[1]; - s[2] = r[2]; - if (!(n[0] === e[1] && n[1] === t[1] || n[0] === t[1] && n[1] === e[1])) - return null; - s[1] = n[1]; - s[3] = n[2]; - return s - } - } - t.Util = Util; - const h = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 728, 711, 710, 729, 733, 731, 730, 732, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8226, 8224, 8225, 8230, 8212, 8211, 402, 8260, 8249, 8250, 8722, 8240, 8222, 8220, 8221, 8216, 8217, 8218, 8482, 64257, 64258, 321, 338, 352, 376, 381, 305, 322, 339, 353, 382, 0, 8364]; - const d = function createObjectURLClosure() { - const e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; - return function createObjectURL(t, r, n=!1) { - if (!n && URL.createObjectURL) { - const e = new Blob([t],{ - type: r - }); - return URL.createObjectURL(e) - } - let s = `data:${r};base64,`; - for (let r = 0, n = t.length; r < n; r += 3) { - const a = 255 & t[r] - , i = 255 & t[r + 1] - , o = 255 & t[r + 2]; - s += e[a >> 2] + e[(3 & a) << 4 | i >> 4] + e[r + 1 < n ? (15 & i) << 2 | o >> 6 : 64] + e[r + 2 < n ? 63 & o : 64] - } - return s - } - }(); - t.createObjectURL = d - } - , function(e, t, r) { - "use strict"; - r(4) - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.isNodeJS = void 0; - const n = !("object" != typeof process || process + "" != "[object process]" || process.versions.nw || process.versions.electron && process.type && "browser" !== process.type); - t.isNodeJS = n - } - , function(module, exports, __w_pdfjs_require__) { - "use strict"; - Object.defineProperty(exports, "__esModule", { - value: !0 - }); - exports.getDocument = getDocument; - exports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory; - exports.build = exports.version = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFWorker = exports.PDFDataRangeTransport = exports.LoopbackPort = void 0; - var _util = __w_pdfjs_require__(2) - , _display_utils = __w_pdfjs_require__(1) - , _font_loader = __w_pdfjs_require__(6) - , _node_utils = __w_pdfjs_require__(7) - , _annotation_storage = __w_pdfjs_require__(8) - , _api_compatibility = __w_pdfjs_require__(9) - , _canvas = __w_pdfjs_require__(10) - , _worker_options = __w_pdfjs_require__(12) - , _is_node = __w_pdfjs_require__(4) - , _message_handler = __w_pdfjs_require__(13) - , _metadata = __w_pdfjs_require__(14) - , _optional_content_config = __w_pdfjs_require__(16) - , _transport_stream = __w_pdfjs_require__(17) - , _webgl = __w_pdfjs_require__(18); - const DEFAULT_RANGE_CHUNK_SIZE = 65536 - , RENDERING_CANCELLED_TIMEOUT = 100 - , DefaultCanvasFactory = _is_node.isNodeJS ? _node_utils.NodeCanvasFactory : _display_utils.DOMCanvasFactory - , DefaultCMapReaderFactory = _is_node.isNodeJS ? _node_utils.NodeCMapReaderFactory : _display_utils.DOMCMapReaderFactory; - let createPDFNetworkStream; - function setPDFNetworkStreamFactory(e) { - createPDFNetworkStream = e - } - function getDocument(e) { - const t = new PDFDocumentLoadingTask; - let r; - if ("string" == typeof e) - r = { - url: e - }; - else if ((0, - _util.isArrayBuffer)(e)) - r = { - data: e - }; - else if (e instanceof PDFDataRangeTransport) - r = { - range: e - }; - else { - if ("object" != typeof e) - throw new Error("Invalid parameter in getDocument, need either Uint8Array, string or a parameter object"); - if (!e.url && !e.data && !e.range) - throw new Error("Invalid parameter object: need either .data, .range or .url"); - r = e - } - const n = Object.create(null); - let s = null - , a = null; - for (const e in r) - if ("url" !== e || "undefined" == typeof window) - if ("range" !== e) - if ("worker" !== e) - if ("data" !== e || r[e]instanceof Uint8Array) - n[e] = r[e]; - else { - const t = r[e]; - if ("string" == typeof t) - n[e] = (0, - _util.stringToBytes)(t); - else if ("object" != typeof t || null === t || isNaN(t.length)) { - if (!(0, - _util.isArrayBuffer)(t)) - throw new Error("Invalid PDF binary data: either typed array, string or array-like object is expected in the data property."); - n[e] = new Uint8Array(t) - } else - n[e] = new Uint8Array(t) - } - else - a = r[e]; - else - s = r[e]; - else - n[e] = new URL(r[e],window.location).href; - n.rangeChunkSize = n.rangeChunkSize || DEFAULT_RANGE_CHUNK_SIZE; - n.CMapReaderFactory = n.CMapReaderFactory || DefaultCMapReaderFactory; - n.ignoreErrors = !0 !== n.stopAtErrors; - n.fontExtraProperties = !0 === n.fontExtraProperties; - n.pdfBug = !0 === n.pdfBug; - Number.isInteger(n.maxImageSize) || (n.maxImageSize = -1); - "boolean" != typeof n.isEvalSupported && (n.isEvalSupported = !0); - "boolean" != typeof n.disableFontFace && (n.disableFontFace = _api_compatibility.apiCompatibilityParams.disableFontFace || !1); - void 0 === n.ownerDocument && (n.ownerDocument = globalThis.document); - "boolean" != typeof n.disableRange && (n.disableRange = !1); - "boolean" != typeof n.disableStream && (n.disableStream = !1); - "boolean" != typeof n.disableAutoFetch && (n.disableAutoFetch = !1); - (0, - _util.setVerbosityLevel)(n.verbosity); - if (!a) { - const e = { - verbosity: n.verbosity, - port: _worker_options.GlobalWorkerOptions.workerPort - }; - a = e.port ? PDFWorker.fromPort(e) : new PDFWorker(e); - t._worker = a - } - const i = t.docId; - a.promise.then((function() { - if (t.destroyed) - throw new Error("Loading aborted"); - const e = _fetchDocument(a, n, s, i) - , r = new Promise((function(e) { - let t; - s ? t = new _transport_stream.PDFDataTransportStream({ - length: n.length, - initialData: n.initialData, - progressiveDone: n.progressiveDone, - disableRange: n.disableRange, - disableStream: n.disableStream - },s) : n.data || (t = createPDFNetworkStream({ - url: n.url, - length: n.length, - httpHeaders: n.httpHeaders, - withCredentials: n.withCredentials, - rangeChunkSize: n.rangeChunkSize, - disableRange: n.disableRange, - disableStream: n.disableStream - })); - e(t) - } - )); - return Promise.all([e, r]).then((function([e,r]) { - if (t.destroyed) - throw new Error("Loading aborted"); - const s = new _message_handler.MessageHandler(i,e,a.port); - s.postMessageTransfers = a.postMessageTransfers; - const o = new WorkerTransport(s,t,r,n); - t._transport = o; - s.send("Ready", null) - } - )) - } - )).catch(t._capability.reject); - return t - } - function _fetchDocument(e, t, r, n) { - if (e.destroyed) - return Promise.reject(new Error("Worker was destroyed")); - if (r) { - t.length = r.length; - t.initialData = r.initialData; - t.progressiveDone = r.progressiveDone - } - return e.messageHandler.sendWithPromise("GetDocRequest", { - docId: n, - apiVersion: "2.6.347", - source: { - data: t.data, - url: t.url, - password: t.password, - disableAutoFetch: t.disableAutoFetch, - rangeChunkSize: t.rangeChunkSize, - length: t.length - }, - maxImageSize: t.maxImageSize, - disableFontFace: t.disableFontFace, - postMessageTransfers: e.postMessageTransfers, - docBaseUrl: t.docBaseUrl, - ignoreErrors: t.ignoreErrors, - isEvalSupported: t.isEvalSupported, - fontExtraProperties: t.fontExtraProperties - }).then((function(t) { - if (e.destroyed) - throw new Error("Worker was destroyed"); - return t - } - )) - } - const PDFDocumentLoadingTask = function PDFDocumentLoadingTaskClosure() { - let e = 0; - return class PDFDocumentLoadingTask { - constructor() { - this._capability = (0, - _util.createPromiseCapability)(); - this._transport = null; - this._worker = null; - this.docId = "d" + e++; - this.destroyed = !1; - this.onPassword = null; - this.onProgress = null; - this.onUnsupportedFeature = null - } - get promise() { - return this._capability.promise - } - destroy() { - this.destroyed = !0; - return (this._transport ? this._transport.destroy() : Promise.resolve()).then(()=>{ - this._transport = null; - if (this._worker) { - this._worker.destroy(); - this._worker = null - } - } - ) - } - } - }(); - class PDFDataRangeTransport { - constructor(e, t, r=!1) { - this.length = e; - this.initialData = t; - this.progressiveDone = r; - this._rangeListeners = []; - this._progressListeners = []; - this._progressiveReadListeners = []; - this._progressiveDoneListeners = []; - this._readyCapability = (0, - _util.createPromiseCapability)() - } - addRangeListener(e) { - this._rangeListeners.push(e) - } - addProgressListener(e) { - this._progressListeners.push(e) - } - addProgressiveReadListener(e) { - this._progressiveReadListeners.push(e) - } - addProgressiveDoneListener(e) { - this._progressiveDoneListeners.push(e) - } - onDataRange(e, t) { - for (const r of this._rangeListeners) - r(e, t) - } - onDataProgress(e, t) { - this._readyCapability.promise.then(()=>{ - for (const r of this._progressListeners) - r(e, t) - } - ) - } - onDataProgressiveRead(e) { - this._readyCapability.promise.then(()=>{ - for (const t of this._progressiveReadListeners) - t(e) - } - ) - } - onDataProgressiveDone() { - this._readyCapability.promise.then(()=>{ - for (const e of this._progressiveDoneListeners) - e() - } - ) - } - transportReady() { - this._readyCapability.resolve() - } - requestDataRange(e, t) { - (0, - _util.unreachable)("Abstract method PDFDataRangeTransport.requestDataRange") - } - abort() {} - } - exports.PDFDataRangeTransport = PDFDataRangeTransport; - class PDFDocumentProxy { - constructor(e, t) { - this._pdfInfo = e; - this._transport = t - } - get annotationStorage() { - return (0, - _util.shadow)(this, "annotationStorage", new _annotation_storage.AnnotationStorage) - } - get numPages() { - return this._pdfInfo.numPages - } - get fingerprint() { - return this._pdfInfo.fingerprint - } - getPage(e) { - return this._transport.getPage(e) - } - getPageIndex(e) { - return this._transport.getPageIndex(e) - } - getDestinations() { - return this._transport.getDestinations() - } - getDestination(e) { - return this._transport.getDestination(e) - } - getPageLabels() { - return this._transport.getPageLabels() - } - getPageLayout() { - return this._transport.getPageLayout() - } - getPageMode() { - return this._transport.getPageMode() - } - getViewerPreferences() { - return this._transport.getViewerPreferences() - } - getOpenAction() { - return this._transport.getOpenAction() - } - getAttachments() { - return this._transport.getAttachments() - } - getJavaScript() { - return this._transport.getJavaScript() - } - getOutline() { - return this._transport.getOutline() - } - getOptionalContentConfig() { - return this._transport.getOptionalContentConfig() - } - getPermissions() { - return this._transport.getPermissions() - } - getMetadata() { - return this._transport.getMetadata() - } - getData() { - return this._transport.getData() - } - getDownloadInfo() { - return this._transport.downloadInfoCapability.promise - } - getStats() { - return this._transport.getStats() - } - cleanup() { - return this._transport.startCleanup() - } - destroy() { - return this.loadingTask.destroy() - } - get loadingParams() { - return this._transport.loadingParams - } - get loadingTask() { - return this._transport.loadingTask - } - saveDocument(e) { - return this._transport.saveDocument(e) - } - } - exports.PDFDocumentProxy = PDFDocumentProxy; - class PDFPageProxy { - constructor(e, t, r, n, s=!1) { - this._pageIndex = e; - this._pageInfo = t; - this._ownerDocument = n; - this._transport = r; - this._stats = s ? new _display_utils.StatTimer : null; - this._pdfBug = s; - this.commonObjs = r.commonObjs; - this.objs = new PDFObjects; - this.cleanupAfterRender = !1; - this.pendingCleanup = !1; - this._intentStates = new Map; - this.destroyed = !1 - } - get pageNumber() { - return this._pageIndex + 1 - } - get rotate() { - return this._pageInfo.rotate - } - get ref() { - return this._pageInfo.ref - } - get userUnit() { - return this._pageInfo.userUnit - } - get view() { - return this._pageInfo.view - } - getViewport({scale: e, rotation: t=this.rotate, offsetX: r=0, offsetY: n=0, dontFlip: s=!1}={}) { - return new _display_utils.PageViewport({ - viewBox: this.view, - scale: e, - rotation: t, - offsetX: r, - offsetY: n, - dontFlip: s - }) - } - getAnnotations({intent: e=null}={}) { - if (!this.annotationsPromise || this.annotationsIntent !== e) { - this.annotationsPromise = this._transport.getAnnotations(this._pageIndex, e); - this.annotationsIntent = e - } - return this.annotationsPromise - } - render({canvasContext: e, viewport: t, intent: r="display", enableWebGL: n=!1, renderInteractiveForms: s=!1, transform: a=null, imageLayer: i=null, canvasFactory: o=null, background: l=null, annotationStorage: c=null, optionalContentConfigPromise: h=null}) { - this._stats && this._stats.time("Overall"); - const d = "print" === r ? "print" : "display"; - this.pendingCleanup = !1; - h || (h = this._transport.getOptionalContentConfig()); - let u = this._intentStates.get(d); - if (!u) { - u = Object.create(null); - this._intentStates.set(d, u) - } - if (u.streamReaderCancelTimeout) { - clearTimeout(u.streamReaderCancelTimeout); - u.streamReaderCancelTimeout = null - } - const p = o || new DefaultCanvasFactory({ - ownerDocument: this._ownerDocument - }) - , f = new _webgl.WebGLContext({ - enable: n - }); - if (!u.displayReadyCapability) { - u.displayReadyCapability = (0, - _util.createPromiseCapability)(); - u.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: !1 - }; - this._stats && this._stats.time("Page Request"); - this._pumpOperatorList({ - pageIndex: this._pageIndex, - intent: d, - renderInteractiveForms: !0 === s, - annotationStorage: c && c.getAll() || null - }) - } - const complete = e=>{ - const t = u.renderTasks.indexOf(g); - t >= 0 && u.renderTasks.splice(t, 1); - (this.cleanupAfterRender || "print" === d) && (this.pendingCleanup = !0); - this._tryCleanup(); - if (e) { - g.capability.reject(e); - this._abortOperatorList({ - intentState: u, - reason: e - }) - } else - g.capability.resolve(); - if (this._stats) { - this._stats.timeEnd("Rendering"); - this._stats.timeEnd("Overall") - } - } - , g = new InternalRenderTask({ - callback: complete, - params: { - canvasContext: e, - viewport: t, - transform: a, - imageLayer: i, - background: l - }, - objs: this.objs, - commonObjs: this.commonObjs, - operatorList: u.operatorList, - pageIndex: this._pageIndex, - canvasFactory: p, - webGLContext: f, - useRequestAnimationFrame: "print" !== d, - pdfBug: this._pdfBug - }); - u.renderTasks || (u.renderTasks = []); - u.renderTasks.push(g); - const m = g.task; - Promise.all([u.displayReadyCapability.promise, h]).then(([e,t])=>{ - if (this.pendingCleanup) - complete(); - else { - this._stats && this._stats.time("Rendering"); - g.initializeGraphics({ - transparency: e, - optionalContentConfig: t - }); - g.operatorListChanged() - } - } - ).catch(complete); - return m - } - getOperatorList() { - let e, t = this._intentStates.get("oplist"); - if (!t) { - t = Object.create(null); - this._intentStates.set("oplist", t) - } - if (!t.opListReadCapability) { - e = Object.create(null); - e.operatorListChanged = function operatorListChanged() { - if (t.operatorList.lastChunk) { - t.opListReadCapability.resolve(t.operatorList); - const r = t.renderTasks.indexOf(e); - r >= 0 && t.renderTasks.splice(r, 1) - } - } - ; - t.opListReadCapability = (0, - _util.createPromiseCapability)(); - t.renderTasks = []; - t.renderTasks.push(e); - t.operatorList = { - fnArray: [], - argsArray: [], - lastChunk: !1 - }; - this._stats && this._stats.time("Page Request"); - this._pumpOperatorList({ - pageIndex: this._pageIndex, - intent: "oplist" - }) - } - return t.opListReadCapability.promise - } - streamTextContent({normalizeWhitespace: e=!1, disableCombineTextItems: t=!1}={}) { - return this._transport.messageHandler.sendWithStream("GetTextContent", { - pageIndex: this._pageIndex, - normalizeWhitespace: !0 === e, - combineTextItems: !0 !== t - }, { - highWaterMark: 100, - size: e=>e.items.length - }) - } - getTextContent(e={}) { - const t = this.streamTextContent(e); - return new Promise((function(e, r) { - const n = t.getReader() - , s = { - items: [], - styles: Object.create(null) - }; - !function pump() { - n.read().then((function({value: t, done: r}) { - if (r) - e(s); - else { - Object.assign(s.styles, t.styles); - s.items.push(...t.items); - pump() - } - } - ), r) - }() - } - )) - } - _destroy() { - this.destroyed = !0; - this._transport.pageCache[this._pageIndex] = null; - const e = []; - for (const [t,r] of this._intentStates) { - this._abortOperatorList({ - intentState: r, - reason: new Error("Page was destroyed."), - force: !0 - }); - if ("oplist" !== t) - for (const t of r.renderTasks) { - e.push(t.completed); - t.cancel() - } - } - this.objs.clear(); - this.annotationsPromise = null; - this.pendingCleanup = !1; - return Promise.all(e) - } - cleanup(e=!1) { - this.pendingCleanup = !0; - return this._tryCleanup(e) - } - _tryCleanup(e=!1) { - if (!this.pendingCleanup) - return !1; - for (const {renderTasks: e, operatorList: t} of this._intentStates.values()) - if (0 !== e.length || !t.lastChunk) - return !1; - this._intentStates.clear(); - this.objs.clear(); - this.annotationsPromise = null; - e && this._stats && (this._stats = new _display_utils.StatTimer); - this.pendingCleanup = !1; - return !0 - } - _startRenderPage(e, t) { - const r = this._intentStates.get(t); - if (r) { - this._stats && this._stats.timeEnd("Page Request"); - r.displayReadyCapability && r.displayReadyCapability.resolve(e) - } - } - _renderPageChunk(e, t) { - for (let r = 0, n = e.length; r < n; r++) { - t.operatorList.fnArray.push(e.fnArray[r]); - t.operatorList.argsArray.push(e.argsArray[r]) - } - t.operatorList.lastChunk = e.lastChunk; - for (let e = 0; e < t.renderTasks.length; e++) - t.renderTasks[e].operatorListChanged(); - e.lastChunk && this._tryCleanup() - } - _pumpOperatorList(e) { - (0, - _util.assert)(e.intent, 'PDFPageProxy._pumpOperatorList: Expected "intent" argument.'); - const t = this._transport.messageHandler.sendWithStream("GetOperatorList", e).getReader() - , r = this._intentStates.get(e.intent); - r.streamReader = t; - const pump = ()=>{ - t.read().then(({value: e, done: t})=>{ - if (t) - r.streamReader = null; - else if (!this._transport.destroyed) { - this._renderPageChunk(e, r); - pump() - } - } - , e=>{ - r.streamReader = null; - if (!this._transport.destroyed) { - if (r.operatorList) { - r.operatorList.lastChunk = !0; - for (let e = 0; e < r.renderTasks.length; e++) - r.renderTasks[e].operatorListChanged(); - this._tryCleanup() - } - if (r.displayReadyCapability) - r.displayReadyCapability.reject(e); - else { - if (!r.opListReadCapability) - throw e; - r.opListReadCapability.reject(e) - } - } - } - ) - } - ; - pump() - } - _abortOperatorList({intentState: e, reason: t, force: r=!1}) { - (0, - _util.assert)(t instanceof Error || "object" == typeof t && null !== t, 'PDFPageProxy._abortOperatorList: Expected "reason" argument.'); - if (e.streamReader) { - if (!r) { - if (0 !== e.renderTasks.length) - return; - if (t instanceof _display_utils.RenderingCancelledException) { - e.streamReaderCancelTimeout = setTimeout(()=>{ - this._abortOperatorList({ - intentState: e, - reason: t, - force: !0 - }); - e.streamReaderCancelTimeout = null - } - , RENDERING_CANCELLED_TIMEOUT); - return - } - } - e.streamReader.cancel(new _util.AbortException(t && t.message)); - e.streamReader = null; - if (!this._transport.destroyed) { - for (const [t,r] of this._intentStates) - if (r === e) { - this._intentStates.delete(t); - break - } - this.cleanup() - } - } - } - get stats() { - return this._stats - } - } - exports.PDFPageProxy = PDFPageProxy; - class LoopbackPort { - constructor(e=!0) { - this._listeners = []; - this._defer = e; - this._deferred = Promise.resolve(void 0) - } - postMessage(e, t) { - if (!this._defer) { - this._listeners.forEach(t=>{ - t.call(this, { - data: e - }) - } - ); - return - } - const r = new WeakMap - , n = { - data: function cloneValue(e) { - if ("object" != typeof e || null === e) - return e; - if (r.has(e)) - return r.get(e); - let n, s; - if ((n = e.buffer) && (0, - _util.isArrayBuffer)(n)) { - s = t && t.includes(n) ? new e.constructor(n,e.byteOffset,e.byteLength) : new e.constructor(e); - r.set(e, s); - return s - } - s = Array.isArray(e) ? [] : {}; - r.set(e, s); - for (const t in e) { - let r, n = e; - for (; !(r = Object.getOwnPropertyDescriptor(n, t)); ) - n = Object.getPrototypeOf(n); - if (void 0 !== r.value) - if ("function" != typeof r.value) - s[t] = cloneValue(r.value); - else if (e.hasOwnProperty && e.hasOwnProperty(t)) - throw new Error("LoopbackPort.postMessage - cannot clone: " + e[t]) - } - return s - }(e) - }; - this._deferred.then(()=>{ - this._listeners.forEach(e=>{ - e.call(this, n) - } - ) - } - ) - } - addEventListener(e, t) { - this._listeners.push(t) - } - removeEventListener(e, t) { - const r = this._listeners.indexOf(t); - this._listeners.splice(r, 1) - } - terminate() { - this._listeners.length = 0 - } - } - exports.LoopbackPort = LoopbackPort; - const PDFWorker = function PDFWorkerClosure() { - const pdfWorkerPorts = new WeakMap; - let isWorkerDisabled = !1, fallbackWorkerSrc, nextFakeWorkerId = 0, fakeWorkerCapability; - if (_is_node.isNodeJS && "function" == typeof require) { - isWorkerDisabled = !0; - fallbackWorkerSrc = "./pdf.worker.js" - } else if ("object" == typeof document && "currentScript"in document) { - const e = document.currentScript && document.currentScript.src; - e && (fallbackWorkerSrc = e.replace(/(\.(?:min\.)?js)(\?.*)?$/i, ".worker$1$2")) - } - function getWorkerSrc() { - if (_worker_options.GlobalWorkerOptions.workerSrc) - return _worker_options.GlobalWorkerOptions.workerSrc; - if (void 0 !== fallbackWorkerSrc) { - _is_node.isNodeJS || (0, - _display_utils.deprecated)('No "GlobalWorkerOptions.workerSrc" specified.'); - return fallbackWorkerSrc - } - throw new Error('No "GlobalWorkerOptions.workerSrc" specified.') - } - function getMainThreadWorkerMessageHandler() { - let e; - try { - e = globalThis.pdfjsWorker && globalThis.pdfjsWorker.WorkerMessageHandler - } catch (e) {} - return e || null - } - function setupFakeWorkerGlobal() { - if (fakeWorkerCapability) - return fakeWorkerCapability.promise; - fakeWorkerCapability = (0, - _util.createPromiseCapability)(); - const loader = async function() { - const mainWorkerMessageHandler = getMainThreadWorkerMessageHandler(); - if (mainWorkerMessageHandler) - return mainWorkerMessageHandler; - if (_is_node.isNodeJS && "function" == typeof require) { - const worker = eval("require")(getWorkerSrc()); - return worker.WorkerMessageHandler - } - await (0, - _display_utils.loadScript)(getWorkerSrc()); - return window.pdfjsWorker.WorkerMessageHandler - }; - loader().then(fakeWorkerCapability.resolve, fakeWorkerCapability.reject); - return fakeWorkerCapability.promise - } - function createCDNWrapper(e) { - const t = "importScripts('" + e + "');"; - return URL.createObjectURL(new Blob([t])) - } - class PDFWorker { - constructor({name: e=null, port: t=null, verbosity: r=(0, - _util.getVerbosityLevel)()}={}) { - if (t && pdfWorkerPorts.has(t)) - throw new Error("Cannot use more than one PDFWorker per port"); - this.name = e; - this.destroyed = !1; - this.postMessageTransfers = !0; - this.verbosity = r; - this._readyCapability = (0, - _util.createPromiseCapability)(); - this._port = null; - this._webWorker = null; - this._messageHandler = null; - if (t) { - pdfWorkerPorts.set(t, this); - this._initializeFromPort(t) - } else - this._initialize() - } - get promise() { - return this._readyCapability.promise - } - get port() { - return this._port - } - get messageHandler() { - return this._messageHandler - } - _initializeFromPort(e) { - this._port = e; - this._messageHandler = new _message_handler.MessageHandler("main","worker",e); - this._messageHandler.on("ready", (function() {} - )); - this._readyCapability.resolve() - } - _initialize() { - if ("undefined" != typeof Worker && !isWorkerDisabled && !getMainThreadWorkerMessageHandler()) { - let e = getWorkerSrc(); - try { - (0, - _util.isSameOrigin)(window.location.href, e) || (e = createCDNWrapper(new URL(e,window.location).href)); - const t = new Worker(e) - , r = new _message_handler.MessageHandler("main","worker",t) - , terminateEarly = ()=>{ - t.removeEventListener("error", onWorkerError); - r.destroy(); - t.terminate(); - this.destroyed ? this._readyCapability.reject(new Error("Worker was destroyed")) : this._setupFakeWorker() - } - , onWorkerError = ()=>{ - this._webWorker || terminateEarly() - } - ; - t.addEventListener("error", onWorkerError); - r.on("test", e=>{ - t.removeEventListener("error", onWorkerError); - if (this.destroyed) - terminateEarly(); - else if (e) { - this._messageHandler = r; - this._port = t; - this._webWorker = t; - e.supportTransfers || (this.postMessageTransfers = !1); - this._readyCapability.resolve(); - r.send("configure", { - verbosity: this.verbosity - }) - } else { - this._setupFakeWorker(); - r.destroy(); - t.terminate() - } - } - ); - r.on("ready", e=>{ - t.removeEventListener("error", onWorkerError); - if (this.destroyed) - terminateEarly(); - else - try { - sendTest() - } catch (e) { - this._setupFakeWorker() - } - } - ); - const sendTest = ()=>{ - const e = new Uint8Array([this.postMessageTransfers ? 255 : 0]); - try { - r.send("test", e, [e.buffer]) - } catch (t) { - (0, - _util.warn)("Cannot use postMessage transfers."); - e[0] = 0; - r.send("test", e) - } - } - ; - sendTest(); - return - } catch (e) { - (0, - _util.info)("The worker has been disabled.") - } - } - this._setupFakeWorker() - } - _setupFakeWorker() { - if (!isWorkerDisabled) { - (0, - _util.warn)("Setting up fake worker."); - isWorkerDisabled = !0 - } - setupFakeWorkerGlobal().then(e=>{ - if (this.destroyed) { - this._readyCapability.reject(new Error("Worker was destroyed")); - return - } - const t = new LoopbackPort; - this._port = t; - const r = "fake" + nextFakeWorkerId++ - , n = new _message_handler.MessageHandler(r + "_worker",r,t); - e.setup(n, t); - const s = new _message_handler.MessageHandler(r,r + "_worker",t); - this._messageHandler = s; - this._readyCapability.resolve(); - s.send("configure", { - verbosity: this.verbosity - }) - } - ).catch(e=>{ - this._readyCapability.reject(new Error(`Setting up fake worker failed: "${e.message}".`)) - } - ) - } - destroy() { - this.destroyed = !0; - if (this._webWorker) { - this._webWorker.terminate(); - this._webWorker = null - } - pdfWorkerPorts.delete(this._port); - this._port = null; - if (this._messageHandler) { - this._messageHandler.destroy(); - this._messageHandler = null - } - } - static fromPort(e) { - if (!e || !e.port) - throw new Error("PDFWorker.fromPort - invalid method signature."); - return pdfWorkerPorts.has(e.port) ? pdfWorkerPorts.get(e.port) : new PDFWorker(e) - } - static getWorkerSrc() { - return getWorkerSrc() - } - } - return PDFWorker - }(); - exports.PDFWorker = PDFWorker; - class WorkerTransport { - constructor(e, t, r, n) { - this.messageHandler = e; - this.loadingTask = t; - this.commonObjs = new PDFObjects; - this.fontLoader = new _font_loader.FontLoader({ - docId: t.docId, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this), - ownerDocument: n.ownerDocument - }); - this._params = n; - this.CMapReaderFactory = new n.CMapReaderFactory({ - baseUrl: n.cMapUrl, - isCompressed: n.cMapPacked - }); - this.destroyed = !1; - this.destroyCapability = null; - this._passwordCapability = null; - this._networkStream = r; - this._fullReader = null; - this._lastProgress = null; - this.pageCache = []; - this.pagePromises = []; - this.downloadInfoCapability = (0, - _util.createPromiseCapability)(); - this.setupMessageHandler() - } - destroy() { - if (this.destroyCapability) - return this.destroyCapability.promise; - this.destroyed = !0; - this.destroyCapability = (0, - _util.createPromiseCapability)(); - this._passwordCapability && this._passwordCapability.reject(new Error("Worker was destroyed during onPassword callback")); - const e = []; - this.pageCache.forEach((function(t) { - t && e.push(t._destroy()) - } - )); - this.pageCache.length = 0; - this.pagePromises.length = 0; - const t = this.messageHandler.sendWithPromise("Terminate", null); - e.push(t); - Promise.all(e).then(()=>{ - this.fontLoader.clear(); - this._networkStream && this._networkStream.cancelAllRequests(new _util.AbortException("Worker was terminated.")); - if (this.messageHandler) { - this.messageHandler.destroy(); - this.messageHandler = null - } - this.destroyCapability.resolve() - } - , this.destroyCapability.reject); - return this.destroyCapability.promise - } - setupMessageHandler() { - const {messageHandler: e, loadingTask: t} = this; - e.on("GetReader", (e,t)=>{ - (0, - _util.assert)(this._networkStream, "GetReader - no `IPDFStream` instance available."); - this._fullReader = this._networkStream.getFullReader(); - this._fullReader.onProgress = e=>{ - this._lastProgress = { - loaded: e.loaded, - total: e.total - } - } - ; - t.onPull = ()=>{ - this._fullReader.read().then((function({value: e, done: r}) { - if (r) - t.close(); - else { - (0, - _util.assert)((0, - _util.isArrayBuffer)(e), "GetReader - expected an ArrayBuffer."); - t.enqueue(new Uint8Array(e), 1, [e]) - } - } - )).catch(e=>{ - t.error(e) - } - ) - } - ; - t.onCancel = e=>{ - this._fullReader.cancel(e); - t.ready.catch(e=>{ - if (!this.destroyed) - throw e - } - ) - } - } - ); - e.on("ReaderHeadersReady", e=>{ - const r = (0, - _util.createPromiseCapability)() - , n = this._fullReader; - n.headersReady.then(()=>{ - if (!n.isStreamingSupported || !n.isRangeSupported) { - this._lastProgress && t.onProgress && t.onProgress(this._lastProgress); - n.onProgress = e=>{ - t.onProgress && t.onProgress({ - loaded: e.loaded, - total: e.total - }) - } - } - r.resolve({ - isStreamingSupported: n.isStreamingSupported, - isRangeSupported: n.isRangeSupported, - contentLength: n.contentLength - }) - } - , r.reject); - return r.promise - } - ); - e.on("GetRangeReader", (e,t)=>{ - (0, - _util.assert)(this._networkStream, "GetRangeReader - no `IPDFStream` instance available."); - const r = this._networkStream.getRangeReader(e.begin, e.end); - if (r) { - t.onPull = ()=>{ - r.read().then((function({value: e, done: r}) { - if (r) - t.close(); - else { - (0, - _util.assert)((0, - _util.isArrayBuffer)(e), "GetRangeReader - expected an ArrayBuffer."); - t.enqueue(new Uint8Array(e), 1, [e]) - } - } - )).catch(e=>{ - t.error(e) - } - ) - } - ; - t.onCancel = e=>{ - r.cancel(e); - t.ready.catch(e=>{ - if (!this.destroyed) - throw e - } - ) - } - } else - t.close() - } - ); - e.on("GetDoc", ({pdfInfo: e})=>{ - this._numPages = e.numPages; - t._capability.resolve(new PDFDocumentProxy(e,this)) - } - ); - e.on("DocException", (function(e) { - let r; - switch (e.name) { - case "PasswordException": - r = new _util.PasswordException(e.message,e.code); - break; - case "InvalidPDFException": - r = new _util.InvalidPDFException(e.message); - break; - case "MissingPDFException": - r = new _util.MissingPDFException(e.message); - break; - case "UnexpectedResponseException": - r = new _util.UnexpectedResponseException(e.message,e.status); - break; - case "UnknownErrorException": - r = new _util.UnknownErrorException(e.message,e.details) - } - if (!(r instanceof Error)) { - const e = "DocException - expected a valid Error."; - (0, - _util.warn)(e) - } - t._capability.reject(r) - } - )); - e.on("PasswordRequest", e=>{ - this._passwordCapability = (0, - _util.createPromiseCapability)(); - if (t.onPassword) { - const updatePassword = e=>{ - this._passwordCapability.resolve({ - password: e - }) - } - ; - try { - t.onPassword(updatePassword, e.code) - } catch (e) { - this._passwordCapability.reject(e) - } - } else - this._passwordCapability.reject(new _util.PasswordException(e.message,e.code)); - return this._passwordCapability.promise - } - ); - e.on("DataLoaded", e=>{ - t.onProgress && t.onProgress({ - loaded: e.length, - total: e.length - }); - this.downloadInfoCapability.resolve(e) - } - ); - e.on("StartRenderPage", e=>{ - if (this.destroyed) - return; - this.pageCache[e.pageIndex]._startRenderPage(e.transparency, e.intent) - } - ); - e.on("commonobj", t=>{ - if (this.destroyed) - return; - const [r,n,s] = t; - if (!this.commonObjs.has(r)) - switch (n) { - case "Font": - const t = this._params; - if ("error"in s) { - const e = s.error; - (0, - _util.warn)("Error during font loading: " + e); - this.commonObjs.resolve(r, e); - break - } - let a = null; - t.pdfBug && globalThis.FontInspector && globalThis.FontInspector.enabled && (a = { - registerFont(e, t) { - globalThis.FontInspector.fontAdded(e, t) - } - }); - const i = new _font_loader.FontFaceObject(s,{ - isEvalSupported: t.isEvalSupported, - disableFontFace: t.disableFontFace, - ignoreErrors: t.ignoreErrors, - onUnsupportedFeature: this._onUnsupportedFeature.bind(this), - fontRegistry: a - }); - this.fontLoader.bind(i).catch(t=>e.sendWithPromise("FontFallback", { - id: r - })).finally(()=>{ - !t.fontExtraProperties && i.data && (i.data = null); - this.commonObjs.resolve(r, i) - } - ); - break; - case "FontPath": - case "Image": - this.commonObjs.resolve(r, s); - break; - default: - throw new Error("Got unknown common object type " + n) - } - } - ); - e.on("obj", e=>{ - if (this.destroyed) - return; - const [t,r,n,s] = e - , a = this.pageCache[r]; - if (!a.objs.has(t)) - switch (n) { - case "Image": - a.objs.resolve(t, s); - const e = 8e6; - s && "data"in s && s.data.length > e && (a.cleanupAfterRender = !0); - break; - default: - throw new Error("Got unknown object type " + n) - } - } - ); - e.on("DocProgress", e=>{ - this.destroyed || t.onProgress && t.onProgress({ - loaded: e.loaded, - total: e.total - }) - } - ); - e.on("UnsupportedFeature", this._onUnsupportedFeature.bind(this)); - e.on("FetchBuiltInCMap", (e,t)=>{ - if (this.destroyed) { - t.error(new Error("Worker was destroyed")); - return - } - let r = !1; - t.onPull = ()=>{ - if (r) - t.close(); - else { - r = !0; - this.CMapReaderFactory.fetch(e).then((function(e) { - t.enqueue(e, 1, [e.cMapData.buffer]) - } - )).catch((function(e) { - t.error(e) - } - )) - } - } - } - ) - } - _onUnsupportedFeature({featureId: e}) { - this.destroyed || this.loadingTask.onUnsupportedFeature && this.loadingTask.onUnsupportedFeature(e) - } - getData() { - return this.messageHandler.sendWithPromise("GetData", null) - } - getPage(e) { - if (!Number.isInteger(e) || e <= 0 || e > this._numPages) - return Promise.reject(new Error("Invalid page request")); - const t = e - 1; - if (t in this.pagePromises) - return this.pagePromises[t]; - const r = this.messageHandler.sendWithPromise("GetPage", { - pageIndex: t - }).then(e=>{ - if (this.destroyed) - throw new Error("Transport destroyed"); - const r = new PDFPageProxy(t,e,this,this._params.ownerDocument,this._params.pdfBug); - this.pageCache[t] = r; - return r - } - ); - this.pagePromises[t] = r; - return r - } - getPageIndex(e) { - return this.messageHandler.sendWithPromise("GetPageIndex", { - ref: e - }).catch((function(e) { - return Promise.reject(new Error(e)) - } - )) - } - getAnnotations(e, t) { - return this.messageHandler.sendWithPromise("GetAnnotations", { - pageIndex: e, - intent: t - }) - } - saveDocument(e) { - return this.messageHandler.sendWithPromise("SaveDocument", { - numPages: this._numPages, - annotationStorage: e && e.getAll() || null, - filename: this._fullReader ? this._fullReader.filename : null - }).finally(()=>{ - e && e.resetModified() - } - ) - } - getDestinations() { - return this.messageHandler.sendWithPromise("GetDestinations", null) - } - getDestination(e) { - return "string" != typeof e ? Promise.reject(new Error("Invalid destination request.")) : this.messageHandler.sendWithPromise("GetDestination", { - id: e - }) - } - getPageLabels() { - return this.messageHandler.sendWithPromise("GetPageLabels", null) - } - getPageLayout() { - return this.messageHandler.sendWithPromise("GetPageLayout", null) - } - getPageMode() { - return this.messageHandler.sendWithPromise("GetPageMode", null) - } - getViewerPreferences() { - return this.messageHandler.sendWithPromise("GetViewerPreferences", null) - } - getOpenAction() { - return this.messageHandler.sendWithPromise("GetOpenAction", null) - } - getAttachments() { - return this.messageHandler.sendWithPromise("GetAttachments", null) - } - getJavaScript() { - return this.messageHandler.sendWithPromise("GetJavaScript", null) - } - getOutline() { - return this.messageHandler.sendWithPromise("GetOutline", null) - } - getOptionalContentConfig() { - return this.messageHandler.sendWithPromise("GetOptionalContentConfig", null).then(e=>new _optional_content_config.OptionalContentConfig(e)) - } - getPermissions() { - return this.messageHandler.sendWithPromise("GetPermissions", null) - } - getMetadata() { - return this.messageHandler.sendWithPromise("GetMetadata", null).then(e=>({ - info: e[0], - metadata: e[1] ? new _metadata.Metadata(e[1]) : null, - contentDispositionFilename: this._fullReader ? this._fullReader.filename : null - })) - } - getStats() { - return this.messageHandler.sendWithPromise("GetStats", null) - } - startCleanup() { - return this.messageHandler.sendWithPromise("Cleanup", null).then(()=>{ - for (let e = 0, t = this.pageCache.length; e < t; e++) { - const t = this.pageCache[e]; - if (t) { - if (!t.cleanup()) - throw new Error(`startCleanup: Page ${e + 1} is currently rendering.`) - } - } - this.commonObjs.clear(); - this.fontLoader.clear() - } - ) - } - get loadingParams() { - const e = this._params; - return (0, - _util.shadow)(this, "loadingParams", { - disableAutoFetch: e.disableAutoFetch, - disableFontFace: e.disableFontFace - }) - } - } - class PDFObjects { - constructor() { - this._objs = Object.create(null) - } - _ensureObj(e) { - return this._objs[e] ? this._objs[e] : this._objs[e] = { - capability: (0, - _util.createPromiseCapability)(), - data: null, - resolved: !1 - } - } - get(e, t=null) { - if (t) { - this._ensureObj(e).capability.promise.then(t); - return null - } - const r = this._objs[e]; - if (!r || !r.resolved) - throw new Error(`Requesting object that isn't resolved yet ${e}.`); - return r.data - } - has(e) { - const t = this._objs[e]; - return !!t && t.resolved - } - resolve(e, t) { - const r = this._ensureObj(e); - r.resolved = !0; - r.data = t; - r.capability.resolve(t) - } - clear() { - this._objs = Object.create(null) - } - } - class RenderTask { - constructor(e) { - this._internalRenderTask = e; - this.onContinue = null - } - get promise() { - return this._internalRenderTask.capability.promise - } - cancel() { - this._internalRenderTask.cancel() - } - } - const InternalRenderTask = function InternalRenderTaskClosure() { - const e = new WeakSet; - return class InternalRenderTask { - constructor({callback: e, params: t, objs: r, commonObjs: n, operatorList: s, pageIndex: a, canvasFactory: i, webGLContext: o, useRequestAnimationFrame: l=!1, pdfBug: c=!1}) { - this.callback = e; - this.params = t; - this.objs = r; - this.commonObjs = n; - this.operatorListIdx = null; - this.operatorList = s; - this._pageIndex = a; - this.canvasFactory = i; - this.webGLContext = o; - this._pdfBug = c; - this.running = !1; - this.graphicsReadyCallback = null; - this.graphicsReady = !1; - this._useRequestAnimationFrame = !0 === l && "undefined" != typeof window; - this.cancelled = !1; - this.capability = (0, - _util.createPromiseCapability)(); - this.task = new RenderTask(this); - this._continueBound = this._continue.bind(this); - this._scheduleNextBound = this._scheduleNext.bind(this); - this._nextBound = this._next.bind(this); - this._canvas = t.canvasContext.canvas - } - get completed() { - return this.capability.promise.catch((function() {} - )) - } - initializeGraphics({transparency: t=!1, optionalContentConfig: r}) { - if (this.cancelled) - return; - if (this._canvas) { - if (e.has(this._canvas)) - throw new Error("Cannot use the same canvas during multiple render() operations. Use different canvas or ensure previous operations were cancelled or completed."); - e.add(this._canvas) - } - if (this._pdfBug && globalThis.StepperManager && globalThis.StepperManager.enabled) { - this.stepper = globalThis.StepperManager.create(this._pageIndex); - this.stepper.init(this.operatorList); - this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint() - } - const {canvasContext: n, viewport: s, transform: a, imageLayer: i, background: o} = this.params; - this.gfx = new _canvas.CanvasGraphics(n,this.commonObjs,this.objs,this.canvasFactory,this.webGLContext,i,r); - this.gfx.beginDrawing({ - transform: a, - viewport: s, - transparency: t, - background: o - }); - this.operatorListIdx = 0; - this.graphicsReady = !0; - this.graphicsReadyCallback && this.graphicsReadyCallback() - } - cancel(t=null) { - this.running = !1; - this.cancelled = !0; - this.gfx && this.gfx.endDrawing(); - this._canvas && e.delete(this._canvas); - this.callback(t || new _display_utils.RenderingCancelledException("Rendering cancelled, page " + (this._pageIndex + 1),"canvas")) - } - operatorListChanged() { - if (this.graphicsReady) { - this.stepper && this.stepper.updateOperatorList(this.operatorList); - this.running || this._continue() - } else - this.graphicsReadyCallback || (this.graphicsReadyCallback = this._continueBound) - } - _continue() { - this.running = !0; - this.cancelled || (this.task.onContinue ? this.task.onContinue(this._scheduleNextBound) : this._scheduleNext()) - } - _scheduleNext() { - this._useRequestAnimationFrame ? window.requestAnimationFrame(()=>{ - this._nextBound().catch(this.cancel.bind(this)) - } - ) : Promise.resolve().then(this._nextBound).catch(this.cancel.bind(this)) - } - async _next() { - if (!this.cancelled) { - this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper); - if (this.operatorListIdx === this.operatorList.argsArray.length) { - this.running = !1; - if (this.operatorList.lastChunk) { - this.gfx.endDrawing(); - this._canvas && e.delete(this._canvas); - this.callback() - } - } - } - } - } - }() - , version = "2.6.347"; - exports.version = version; - const build = "3be9c65f"; - exports.build = build - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.FontLoader = t.FontFaceObject = void 0; - var n = r(2); - class BaseFontLoader { - constructor({docId: e, onUnsupportedFeature: t, ownerDocument: r=globalThis.document}) { - this.constructor === BaseFontLoader && (0, - n.unreachable)("Cannot initialize BaseFontLoader."); - this.docId = e; - this._onUnsupportedFeature = t; - this._document = r; - this.nativeFontFaces = []; - this.styleElement = null - } - addNativeFontFace(e) { - this.nativeFontFaces.push(e); - this._document.fonts.add(e) - } - insertRule(e) { - let t = this.styleElement; - if (!t) { - t = this.styleElement = this._document.createElement("style"); - t.id = "PDFJS_FONT_STYLE_TAG_" + this.docId; - this._document.documentElement.getElementsByTagName("head")[0].appendChild(t) - } - const r = t.sheet; - r.insertRule(e, r.cssRules.length) - } - clear() { - this.nativeFontFaces.forEach(e=>{ - this._document.fonts.delete(e) - } - ); - this.nativeFontFaces.length = 0; - if (this.styleElement) { - this.styleElement.remove(); - this.styleElement = null - } - } - async bind(e) { - if (e.attached || e.missingFile) - return; - e.attached = !0; - if (this.isFontLoadingAPISupported) { - const t = e.createNativeFontFace(); - if (t) { - this.addNativeFontFace(t); - try { - await t.loaded - } catch (r) { - this._onUnsupportedFeature({ - featureId: n.UNSUPPORTED_FEATURES.errorFontLoadNative - }); - (0, - n.warn)(`Failed to load font '${t.family}': '${r}'.`); - e.disableFontFace = !0; - throw r - } - } - return - } - const t = e.createFontFaceRule(); - if (t) { - this.insertRule(t); - if (this.isSyncFontLoadingSupported) - return; - await new Promise(r=>{ - const n = this._queueLoadingCallback(r); - this._prepareFontLoadEvent([t], [e], n) - } - ) - } - } - _queueLoadingCallback(e) { - (0, - n.unreachable)("Abstract method `_queueLoadingCallback`.") - } - get isFontLoadingAPISupported() { - const e = void 0 !== this._document && !!this._document.fonts; - return (0, - n.shadow)(this, "isFontLoadingAPISupported", e) - } - get isSyncFontLoadingSupported() { - (0, - n.unreachable)("Abstract method `isSyncFontLoadingSupported`.") - } - get _loadTestFont() { - (0, - n.unreachable)("Abstract method `_loadTestFont`.") - } - _prepareFontLoadEvent(e, t, r) { - (0, - n.unreachable)("Abstract method `_prepareFontLoadEvent`.") - } - } - let s; - t.FontLoader = s; - t.FontLoader = s = class GenericFontLoader extends BaseFontLoader { - constructor(e) { - super(e); - this.loadingContext = { - requests: [], - nextRequestId: 0 - }; - this.loadTestFontId = 0 - } - get isSyncFontLoadingSupported() { - let e = !1; - if ("undefined" == typeof navigator) - e = !0; - else { - const t = /Mozilla\/5.0.*?rv:(\d+).*? Gecko/.exec(navigator.userAgent); - t && t[1] >= 14 && (e = !0) - } - return (0, - n.shadow)(this, "isSyncFontLoadingSupported", e) - } - _queueLoadingCallback(e) { - const t = this.loadingContext - , r = { - id: "pdfjs-font-loading-" + t.nextRequestId++, - done: !1, - complete: function completeRequest() { - (0, - n.assert)(!r.done, "completeRequest() cannot be called twice."); - r.done = !0; - for (; t.requests.length > 0 && t.requests[0].done; ) { - const e = t.requests.shift(); - setTimeout(e.callback, 0) - } - }, - callback: e - }; - t.requests.push(r); - return r - } - get _loadTestFont() { - return (0, - n.shadow)(this, "_loadTestFont", atob("T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQAFQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAAALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgAAAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACMAooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4DIP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAAAAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUAAQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgABAAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABYAAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAAAC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAAAAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQACAQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTjFQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==")) - } - _prepareFontLoadEvent(e, t, r) { - function int32(e, t) { - return e.charCodeAt(t) << 24 | e.charCodeAt(t + 1) << 16 | e.charCodeAt(t + 2) << 8 | 255 & e.charCodeAt(t + 3) - } - function spliceString(e, t, r, n) { - return e.substring(0, t) + n + e.substring(t + r) - } - let s, a; - const i = this._document.createElement("canvas"); - i.width = 1; - i.height = 1; - const o = i.getContext("2d"); - let l = 0; - const c = `lt ${Date.now()}${this.loadTestFontId++}`; - let h = this._loadTestFont; - h = spliceString(h, 976, c.length, c); - let d = int32(h, 16); - for (s = 0, - a = c.length - 3; s < a; s += 4) - d = d - 1482184792 + int32(c, s) | 0; - s < c.length && (d = d - 1482184792 + int32(c + "XXX", s) | 0); - h = spliceString(h, 16, 4, (0, - n.string32)(d)); - const u = `@font-face {font-family:"${c}";src:${`url(data:font/opentype;base64,${btoa(h)});`}}`; - this.insertRule(u); - const p = []; - for (s = 0, - a = t.length; s < a; s++) - p.push(t[s].loadedName); - p.push(c); - const f = this._document.createElement("div"); - f.style.visibility = "hidden"; - f.style.width = f.style.height = "10px"; - f.style.position = "absolute"; - f.style.top = f.style.left = "0px"; - for (s = 0, - a = p.length; s < a; ++s) { - const e = this._document.createElement("span"); - e.textContent = "Hi"; - e.style.fontFamily = p[s]; - f.appendChild(e) - } - this._document.body.appendChild(f); - !function isFontReady(e, t) { - l++; - if (l > 30) { - (0, - n.warn)("Load test font never loaded."); - t(); - return - } - o.font = "30px " + e; - o.fillText(".", 0, 20); - o.getImageData(0, 0, 1, 1).data[3] > 0 ? t() : setTimeout(isFontReady.bind(null, e, t)) - }(c, ()=>{ - this._document.body.removeChild(f); - r.complete() - } - ) - } - } - ; - t.FontFaceObject = class FontFaceObject { - constructor(e, {isEvalSupported: t=!0, disableFontFace: r=!1, ignoreErrors: n=!1, onUnsupportedFeature: s=null, fontRegistry: a=null}) { - this.compiledGlyphs = Object.create(null); - for (const t in e) - this[t] = e[t]; - this.isEvalSupported = !1 !== t; - this.disableFontFace = !0 === r; - this.ignoreErrors = !0 === n; - this._onUnsupportedFeature = s; - this.fontRegistry = a - } - createNativeFontFace() { - if (!this.data || this.disableFontFace) - return null; - const e = new FontFace(this.loadedName,this.data,{}); - this.fontRegistry && this.fontRegistry.registerFont(this); - return e - } - createFontFaceRule() { - if (!this.data || this.disableFontFace) - return null; - const e = (0, - n.bytesToString)(new Uint8Array(this.data)) - , t = `url(data:${this.mimetype};base64,${btoa(e)});` - , r = `@font-face {font-family:"${this.loadedName}";src:${t}}`; - this.fontRegistry && this.fontRegistry.registerFont(this, t); - return r - } - getPathGenerator(e, t) { - if (void 0 !== this.compiledGlyphs[t]) - return this.compiledGlyphs[t]; - let r, s; - try { - r = e.get(this.loadedName + "_path_" + t) - } catch (e) { - if (!this.ignoreErrors) - throw e; - this._onUnsupportedFeature && this._onUnsupportedFeature({ - featureId: n.UNSUPPORTED_FEATURES.errorFontGetPath - }); - (0, - n.warn)(`getPathGenerator - ignoring character: "${e}".`); - return this.compiledGlyphs[t] = function(e, t) {} - } - if (this.isEvalSupported && n.IsEvalSupportedCached.value) { - let e, n = ""; - for (let t = 0, a = r.length; t < a; t++) { - s = r[t]; - e = void 0 !== s.args ? s.args.join(",") : ""; - n += "c." + s.cmd + "(" + e + ");\n" - } - return this.compiledGlyphs[t] = new Function("c","size",n) - } - return this.compiledGlyphs[t] = function(e, t) { - for (let n = 0, a = r.length; n < a; n++) { - s = r[n]; - "scale" === s.cmd && (s.args = [t, -t]); - e[s.cmd].apply(e, s.args) - } - } - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.NodeCMapReaderFactory = t.NodeCanvasFactory = void 0; - var n = r(1) - , s = r(4) - , a = r(2); - let i = class { - constructor() { - (0, - a.unreachable)("Not implemented: NodeCanvasFactory") - } - } - ; - t.NodeCanvasFactory = i; - let o = class { - constructor() { - (0, - a.unreachable)("Not implemented: NodeCMapReaderFactory") - } - } - ; - t.NodeCMapReaderFactory = o; - if (s.isNodeJS) { - t.NodeCanvasFactory = i = class extends n.BaseCanvasFactory { - create(e, t) { - if (e <= 0 || t <= 0) - throw new Error("Invalid canvas size"); - const r = require("canvas").createCanvas(e, t); - return { - canvas: r, - context: r.getContext("2d") - } - } - } - ; - t.NodeCMapReaderFactory = o = class extends n.BaseCMapReaderFactory { - _fetchData(e, t) { - return new Promise((r,n)=>{ - require("fs").readFile(e, (e,s)=>{ - !e && s ? r({ - cMapData: new Uint8Array(s), - compressionType: t - }) : n(new Error(e)) - } - ) - } - ) - } - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.AnnotationStorage = void 0; - t.AnnotationStorage = class AnnotationStorage { - constructor() { - this._storage = new Map; - this._modified = !1; - this.onSetModified = null; - this.onResetModified = null - } - getOrCreateValue(e, t) { - if (this._storage.has(e)) - return this._storage.get(e); - this._storage.set(e, t); - return t - } - setValue(e, t) { - this._storage.get(e) !== t && this._setModified(); - this._storage.set(e, t) - } - getAll() { - return 0 === this._storage.size ? null : Object.fromEntries(this._storage) - } - get size() { - return this._storage.size - } - _setModified() { - if (!this._modified) { - this._modified = !0; - "function" == typeof this.onSetModified && this.onSetModified() - } - } - resetModified() { - if (this._modified) { - this._modified = !1; - "function" == typeof this.onResetModified && this.onResetModified() - } - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.apiCompatibilityParams = void 0; - var n = r(4); - const s = Object.create(null); - !function checkFontFace() { - n.isNodeJS && (s.disableFontFace = !0) - }(); - const a = Object.freeze(s); - t.apiCompatibilityParams = a - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.CanvasGraphics = void 0; - var n = r(2) - , s = r(11); - function addContextCurrentTransform(e) { - if (!e.mozCurrentTransform) { - e._originalSave = e.save; - e._originalRestore = e.restore; - e._originalRotate = e.rotate; - e._originalScale = e.scale; - e._originalTranslate = e.translate; - e._originalTransform = e.transform; - e._originalSetTransform = e.setTransform; - e._transformMatrix = e._transformMatrix || [1, 0, 0, 1, 0, 0]; - e._transformStack = []; - Object.defineProperty(e, "mozCurrentTransform", { - get: function getCurrentTransform() { - return this._transformMatrix - } - }); - Object.defineProperty(e, "mozCurrentTransformInverse", { - get: function getCurrentTransformInverse() { - var e = this._transformMatrix - , t = e[0] - , r = e[1] - , n = e[2] - , s = e[3] - , a = e[4] - , i = e[5] - , o = t * s - r * n - , l = r * n - t * s; - return [s / o, r / l, n / l, t / o, (s * a - n * i) / l, (r * a - t * i) / o] - } - }); - e.save = function ctxSave() { - var e = this._transformMatrix; - this._transformStack.push(e); - this._transformMatrix = e.slice(0, 6); - this._originalSave() - } - ; - e.restore = function ctxRestore() { - var e = this._transformStack.pop(); - if (e) { - this._transformMatrix = e; - this._originalRestore() - } - } - ; - e.translate = function ctxTranslate(e, t) { - var r = this._transformMatrix; - r[4] = r[0] * e + r[2] * t + r[4]; - r[5] = r[1] * e + r[3] * t + r[5]; - this._originalTranslate(e, t) - } - ; - e.scale = function ctxScale(e, t) { - var r = this._transformMatrix; - r[0] = r[0] * e; - r[1] = r[1] * e; - r[2] = r[2] * t; - r[3] = r[3] * t; - this._originalScale(e, t) - } - ; - e.transform = function ctxTransform(t, r, n, s, a, i) { - var o = this._transformMatrix; - this._transformMatrix = [o[0] * t + o[2] * r, o[1] * t + o[3] * r, o[0] * n + o[2] * s, o[1] * n + o[3] * s, o[0] * a + o[2] * i + o[4], o[1] * a + o[3] * i + o[5]]; - e._originalTransform(t, r, n, s, a, i) - } - ; - e.setTransform = function ctxSetTransform(t, r, n, s, a, i) { - this._transformMatrix = [t, r, n, s, a, i]; - e._originalSetTransform(t, r, n, s, a, i) - } - ; - e.rotate = function ctxRotate(e) { - var t = Math.cos(e) - , r = Math.sin(e) - , n = this._transformMatrix; - this._transformMatrix = [n[0] * t + n[2] * r, n[1] * t + n[3] * r, n[0] * -r + n[2] * t, n[1] * -r + n[3] * t, n[4], n[5]]; - this._originalRotate(e) - } - } - } - var a = function CachedCanvasesClosure() { - function CachedCanvases(e) { - this.canvasFactory = e; - this.cache = Object.create(null) - } - CachedCanvases.prototype = { - getCanvas: function CachedCanvases_getCanvas(e, t, r, n) { - var s; - if (void 0 !== this.cache[e]) { - s = this.cache[e]; - this.canvasFactory.reset(s, t, r); - s.context.setTransform(1, 0, 0, 1, 0, 0) - } else { - s = this.canvasFactory.create(t, r); - this.cache[e] = s - } - n && addContextCurrentTransform(s.context); - return s - }, - clear() { - for (var e in this.cache) { - var t = this.cache[e]; - this.canvasFactory.destroy(t); - delete this.cache[e] - } - } - }; - return CachedCanvases - }(); - var i = function CanvasExtraStateClosure() { - function CanvasExtraState() { - this.alphaIsShape = !1; - this.fontSize = 0; - this.fontSizeScale = 1; - this.textMatrix = n.IDENTITY_MATRIX; - this.textMatrixScale = 1; - this.fontMatrix = n.FONT_IDENTITY_MATRIX; - this.leading = 0; - this.x = 0; - this.y = 0; - this.lineX = 0; - this.lineY = 0; - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRenderingMode = n.TextRenderingMode.FILL; - this.textRise = 0; - this.fillColor = "#000000"; - this.strokeColor = "#000000"; - this.patternFill = !1; - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.activeSMask = null; - this.resumeSMaskCtx = null; - this.transferMaps = null - } - CanvasExtraState.prototype = { - clone: function CanvasExtraState_clone() { - return Object.create(this) - }, - setCurrentPoint: function CanvasExtraState_setCurrentPoint(e, t) { - this.x = e; - this.y = t - } - }; - return CanvasExtraState - }() - , o = function CanvasGraphicsClosure() { - function CanvasGraphics(e, t, r, n, s, o, l) { - this.ctx = e; - this.current = new i; - this.stateStack = []; - this.pendingClip = null; - this.pendingEOFill = !1; - this.res = null; - this.xobjs = null; - this.commonObjs = t; - this.objs = r; - this.canvasFactory = n; - this.webGLContext = s; - this.imageLayer = o; - this.groupStack = []; - this.processingType3 = null; - this.baseTransform = null; - this.baseTransformStack = []; - this.groupLevel = 0; - this.smaskStack = []; - this.smaskCounter = 0; - this.tempSMask = null; - this.contentVisible = !0; - this.markedContentStack = []; - this.optionalContentConfig = l; - this.cachedCanvases = new a(this.canvasFactory); - e && addContextCurrentTransform(e); - this._cachedGetSinglePixelWidth = null - } - function putBinaryImageData(e, t, r=null) { - if ("undefined" != typeof ImageData && t instanceof ImageData) { - e.putImageData(t, 0, 0); - return - } - var s, a, i, o, l, c = t.height, h = t.width, d = c % 16, u = (c - d) / 16, p = 0 === d ? u : u + 1, f = e.createImageData(h, 16), g = 0, m = t.data, _ = f.data; - let A, b, y, v; - if (r) - switch (r.length) { - case 1: - A = r[0]; - b = r[0]; - y = r[0]; - v = r[0]; - break; - case 4: - A = r[0]; - b = r[1]; - y = r[2]; - v = r[3] - } - if (t.kind === n.ImageKind.GRAYSCALE_1BPP) { - var C = m.byteLength - , S = new Uint32Array(_.buffer,0,_.byteLength >> 2) - , x = S.length - , P = h + 7 >> 3 - , k = 4294967295 - , R = n.IsLittleEndianCached.value ? 4278190080 : 255; - v && 255 === v[0] && 0 === v[255] && ([k,R] = [R, k]); - for (a = 0; a < p; a++) { - o = a < u ? 16 : d; - s = 0; - for (i = 0; i < o; i++) { - var w = C - g; - let e = 0; - for (var T = w > P ? h : 8 * w - 7, E = -8 & T, F = 0, L = 0; e < E; e += 8) { - L = m[g++]; - S[s++] = 128 & L ? k : R; - S[s++] = 64 & L ? k : R; - S[s++] = 32 & L ? k : R; - S[s++] = 16 & L ? k : R; - S[s++] = 8 & L ? k : R; - S[s++] = 4 & L ? k : R; - S[s++] = 2 & L ? k : R; - S[s++] = 1 & L ? k : R - } - for (; e < T; e++) { - if (0 === F) { - L = m[g++]; - F = 128 - } - S[s++] = L & F ? k : R; - F >>= 1 - } - } - for (; s < x; ) - S[s++] = 0; - e.putImageData(f, 0, 16 * a) - } - } else if (t.kind === n.ImageKind.RGBA_32BPP) { - const t = !!(A || b || y); - i = 0; - l = 16 * h * 4; - for (a = 0; a < u; a++) { - _.set(m.subarray(g, g + l)); - g += l; - if (t) - for (let e = 0; e < l; e += 4) { - A && (_[e + 0] = A[_[e + 0]]); - b && (_[e + 1] = b[_[e + 1]]); - y && (_[e + 2] = y[_[e + 2]]) - } - e.putImageData(f, 0, i); - i += 16 - } - if (a < p) { - l = h * d * 4; - _.set(m.subarray(g, g + l)); - if (t) - for (let e = 0; e < l; e += 4) { - A && (_[e + 0] = A[_[e + 0]]); - b && (_[e + 1] = b[_[e + 1]]); - y && (_[e + 2] = y[_[e + 2]]) - } - e.putImageData(f, 0, i) - } - } else { - if (t.kind !== n.ImageKind.RGB_24BPP) - throw new Error("bad image kind: " + t.kind); - { - const t = !!(A || b || y); - l = h * (o = 16); - for (a = 0; a < p; a++) { - a >= u && (l = h * (o = d)); - s = 0; - for (i = l; i--; ) { - _[s++] = m[g++]; - _[s++] = m[g++]; - _[s++] = m[g++]; - _[s++] = 255 - } - if (t) - for (let e = 0; e < s; e += 4) { - A && (_[e + 0] = A[_[e + 0]]); - b && (_[e + 1] = b[_[e + 1]]); - y && (_[e + 2] = y[_[e + 2]]) - } - e.putImageData(f, 0, 16 * a) - } - } - } - } - function putBinaryImageMask(e, t) { - for (var r = t.height, n = t.width, s = r % 16, a = (r - s) / 16, i = 0 === s ? a : a + 1, o = e.createImageData(n, 16), l = 0, c = t.data, h = o.data, d = 0; d < i; d++) { - for (var u = d < a ? 16 : s, p = 3, f = 0; f < u; f++) - for (var g = 0, m = 0; m < n; m++) { - if (!g) { - var _ = c[l++]; - g = 128 - } - h[p] = _ & g ? 0 : 255; - p += 4; - g >>= 1 - } - e.putImageData(o, 0, 16 * d) - } - } - function copyCtxState(e, t) { - for (var r = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"], n = 0, s = r.length; n < s; n++) { - var a = r[n]; - void 0 !== e[a] && (t[a] = e[a]) - } - if (void 0 !== e.setLineDash) { - t.setLineDash(e.getLineDash()); - t.lineDashOffset = e.lineDashOffset - } - } - function resetCtxToDefault(e) { - e.strokeStyle = "#000000"; - e.fillStyle = "#000000"; - e.fillRule = "nonzero"; - e.globalAlpha = 1; - e.lineWidth = 1; - e.lineCap = "butt"; - e.lineJoin = "miter"; - e.miterLimit = 10; - e.globalCompositeOperation = "source-over"; - e.font = "10px sans-serif"; - if (void 0 !== e.setLineDash) { - e.setLineDash([]); - e.lineDashOffset = 0 - } - } - function composeSMaskBackdrop(e, t, r, n) { - for (var s = e.length, a = 3; a < s; a += 4) { - var i = e[a]; - if (0 === i) { - e[a - 3] = t; - e[a - 2] = r; - e[a - 1] = n - } else if (i < 255) { - var o = 255 - i; - e[a - 3] = e[a - 3] * i + t * o >> 8; - e[a - 2] = e[a - 2] * i + r * o >> 8; - e[a - 1] = e[a - 1] * i + n * o >> 8 - } - } - } - function composeSMaskAlpha(e, t, r) { - for (var n = e.length, s = 3; s < n; s += 4) { - var a = r ? r[e[s]] : e[s]; - t[s] = t[s] * a * (1 / 255) | 0 - } - } - function composeSMaskLuminosity(e, t, r) { - for (var n = e.length, s = 3; s < n; s += 4) { - var a = 77 * e[s - 3] + 152 * e[s - 2] + 28 * e[s - 1]; - t[s] = r ? t[s] * r[a >> 8] >> 8 : t[s] * a >> 16 - } - } - function composeSMask(e, t, r, n) { - var s = t.canvas - , a = t.context; - e.setTransform(t.scaleX, 0, 0, t.scaleY, t.offsetX, t.offsetY); - var i = t.backdrop || null; - if (t.transferMap || !n.isEnabled) { - !function genericComposeSMask(e, t, r, n, s, a, i) { - var o, l = !!a, c = l ? a[0] : 0, h = l ? a[1] : 0, d = l ? a[2] : 0; - o = "Luminosity" === s ? composeSMaskLuminosity : composeSMaskAlpha; - for (var u = Math.min(n, Math.ceil(1048576 / r)), p = 0; p < n; p += u) { - var f = Math.min(u, n - p) - , g = e.getImageData(0, p, r, f) - , m = t.getImageData(0, p, r, f); - l && composeSMaskBackdrop(g.data, c, h, d); - o(g.data, m.data, i); - e.putImageData(m, 0, p) - } - }(a, r, s.width, s.height, t.subtype, i, t.transferMap); - e.drawImage(s, 0, 0) - } else { - const a = n.composeSMask({ - layer: r.canvas, - mask: s, - properties: { - subtype: t.subtype, - backdrop: i - } - }); - e.setTransform(1, 0, 0, 1, 0, 0); - e.drawImage(a, t.offsetX, t.offsetY) - } - } - var e = ["butt", "round", "square"] - , t = ["miter", "round", "bevel"] - , r = {} - , o = {}; - CanvasGraphics.prototype = { - beginDrawing({transform: e, viewport: t, transparency: r=!1, background: n=null}) { - var s = this.ctx.canvas.width - , a = this.ctx.canvas.height; - this.ctx.save(); - this.ctx.fillStyle = n || "rgb(255, 255, 255)"; - this.ctx.fillRect(0, 0, s, a); - this.ctx.restore(); - if (r) { - var i = this.cachedCanvases.getCanvas("transparent", s, a, !0); - this.compositeCtx = this.ctx; - this.transparentCanvas = i.canvas; - this.ctx = i.context; - this.ctx.save(); - this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform) - } - this.ctx.save(); - resetCtxToDefault(this.ctx); - e && this.ctx.transform.apply(this.ctx, e); - this.ctx.transform.apply(this.ctx, t.transform); - this.baseTransform = this.ctx.mozCurrentTransform.slice(); - this.imageLayer && this.imageLayer.beginLayout() - }, - executeOperatorList: function CanvasGraphics_executeOperatorList(e, t, r, s) { - var a = e.argsArray - , i = e.fnArray - , o = t || 0 - , l = a.length; - if (l === o) - return o; - for (var c, h = l - o > 10 && "function" == typeof r, d = h ? Date.now() + 15 : 0, u = 0, p = this.commonObjs, f = this.objs; ; ) { - if (void 0 !== s && o === s.nextBreakPoint) { - s.breakIt(o, r); - return o - } - if ((c = i[o]) !== n.OPS.dependency) - this[c].apply(this, a[o]); - else - for (const e of a[o]) { - const t = e.startsWith("g_") ? p : f; - if (!t.has(e)) { - t.get(e, r); - return o - } - } - if (++o === l) - return o; - if (h && ++u > 10) { - if (Date.now() > d) { - r(); - return o - } - u = 0 - } - } - }, - endDrawing: function CanvasGraphics_endDrawing() { - null !== this.current.activeSMask && this.endSMaskGroup(); - this.ctx.restore(); - if (this.transparentCanvas) { - this.ctx = this.compositeCtx; - this.ctx.save(); - this.ctx.setTransform(1, 0, 0, 1, 0, 0); - this.ctx.drawImage(this.transparentCanvas, 0, 0); - this.ctx.restore(); - this.transparentCanvas = null - } - this.cachedCanvases.clear(); - this.webGLContext.clear(); - this.imageLayer && this.imageLayer.endLayout() - }, - setLineWidth: function CanvasGraphics_setLineWidth(e) { - this.current.lineWidth = e; - this.ctx.lineWidth = e - }, - setLineCap: function CanvasGraphics_setLineCap(t) { - this.ctx.lineCap = e[t] - }, - setLineJoin: function CanvasGraphics_setLineJoin(e) { - this.ctx.lineJoin = t[e] - }, - setMiterLimit: function CanvasGraphics_setMiterLimit(e) { - this.ctx.miterLimit = e - }, - setDash: function CanvasGraphics_setDash(e, t) { - var r = this.ctx; - if (void 0 !== r.setLineDash) { - r.setLineDash(e); - r.lineDashOffset = t - } - }, - setRenderingIntent(e) {}, - setFlatness(e) {}, - setGState: function CanvasGraphics_setGState(e) { - for (var t = 0, r = e.length; t < r; t++) { - var n = e[t] - , s = n[0] - , a = n[1]; - switch (s) { - case "LW": - this.setLineWidth(a); - break; - case "LC": - this.setLineCap(a); - break; - case "LJ": - this.setLineJoin(a); - break; - case "ML": - this.setMiterLimit(a); - break; - case "D": - this.setDash(a[0], a[1]); - break; - case "RI": - this.setRenderingIntent(a); - break; - case "FL": - this.setFlatness(a); - break; - case "Font": - this.setFont(a[0], a[1]); - break; - case "CA": - this.current.strokeAlpha = n[1]; - break; - case "ca": - this.current.fillAlpha = n[1]; - this.ctx.globalAlpha = n[1]; - break; - case "BM": - this.ctx.globalCompositeOperation = a; - break; - case "SMask": - this.current.activeSMask && (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask ? this.suspendSMaskGroup() : this.endSMaskGroup()); - this.current.activeSMask = a ? this.tempSMask : null; - this.current.activeSMask && this.beginSMaskGroup(); - this.tempSMask = null; - break; - case "TR": - this.current.transferMaps = a - } - } - }, - beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() { - var e = this.current.activeSMask - , t = e.canvas.width - , r = e.canvas.height - , n = "smaskGroupAt" + this.groupLevel - , s = this.cachedCanvases.getCanvas(n, t, r, !0) - , a = this.ctx - , i = a.mozCurrentTransform; - this.ctx.save(); - var o = s.context; - o.scale(1 / e.scaleX, 1 / e.scaleY); - o.translate(-e.offsetX, -e.offsetY); - o.transform.apply(o, i); - e.startTransformInverse = o.mozCurrentTransformInverse; - copyCtxState(a, o); - this.ctx = o; - this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); - this.groupStack.push(a); - this.groupLevel++ - }, - suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var e = this.ctx; - this.groupLevel--; - this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, e, this.webGLContext); - this.ctx.restore(); - this.ctx.save(); - copyCtxState(e, this.ctx); - this.current.resumeSMaskCtx = e; - var t = n.Util.transform(this.current.activeSMask.startTransformInverse, e.mozCurrentTransform); - this.ctx.transform.apply(this.ctx, t); - e.save(); - e.setTransform(1, 0, 0, 1, 0, 0); - e.clearRect(0, 0, e.canvas.width, e.canvas.height); - e.restore() - }, - resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var e = this.current.resumeSMaskCtx - , t = this.ctx; - this.ctx = e; - this.groupStack.push(t); - this.groupLevel++ - }, - endSMaskGroup: function CanvasGraphics_endSMaskGroup() { - var e = this.ctx; - this.groupLevel--; - this.ctx = this.groupStack.pop(); - composeSMask(this.ctx, this.current.activeSMask, e, this.webGLContext); - this.ctx.restore(); - copyCtxState(e, this.ctx); - var t = n.Util.transform(this.current.activeSMask.startTransformInverse, e.mozCurrentTransform); - this.ctx.transform.apply(this.ctx, t) - }, - save: function CanvasGraphics_save() { - this.ctx.save(); - var e = this.current; - this.stateStack.push(e); - this.current = e.clone(); - this.current.resumeSMaskCtx = null - }, - restore: function CanvasGraphics_restore() { - this.current.resumeSMaskCtx && this.resumeSMaskGroup(); - null === this.current.activeSMask || 0 !== this.stateStack.length && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask || this.endSMaskGroup(); - if (0 !== this.stateStack.length) { - this.current = this.stateStack.pop(); - this.ctx.restore(); - this.pendingClip = null; - this._cachedGetSinglePixelWidth = null - } - }, - transform: function CanvasGraphics_transform(e, t, r, n, s, a) { - this.ctx.transform(e, t, r, n, s, a); - this._cachedGetSinglePixelWidth = null - }, - constructPath: function CanvasGraphics_constructPath(e, t) { - for (var r = this.ctx, s = this.current, a = s.x, i = s.y, o = 0, l = 0, c = e.length; o < c; o++) - switch (0 | e[o]) { - case n.OPS.rectangle: - a = t[l++]; - i = t[l++]; - var h = t[l++] - , d = t[l++]; - 0 === h && r.lineWidth < this.getSinglePixelWidth() && (h = this.getSinglePixelWidth()); - 0 === d && r.lineWidth < this.getSinglePixelWidth() && (d = this.getSinglePixelWidth()); - var u = a + h - , p = i + d; - r.moveTo(a, i); - r.lineTo(u, i); - r.lineTo(u, p); - r.lineTo(a, p); - r.lineTo(a, i); - r.closePath(); - break; - case n.OPS.moveTo: - a = t[l++]; - i = t[l++]; - r.moveTo(a, i); - break; - case n.OPS.lineTo: - a = t[l++]; - i = t[l++]; - r.lineTo(a, i); - break; - case n.OPS.curveTo: - a = t[l + 4]; - i = t[l + 5]; - r.bezierCurveTo(t[l], t[l + 1], t[l + 2], t[l + 3], a, i); - l += 6; - break; - case n.OPS.curveTo2: - r.bezierCurveTo(a, i, t[l], t[l + 1], t[l + 2], t[l + 3]); - a = t[l + 2]; - i = t[l + 3]; - l += 4; - break; - case n.OPS.curveTo3: - a = t[l + 2]; - i = t[l + 3]; - r.bezierCurveTo(t[l], t[l + 1], a, i, a, i); - l += 4; - break; - case n.OPS.closePath: - r.closePath() - } - s.setCurrentPoint(a, i) - }, - closePath: function CanvasGraphics_closePath() { - this.ctx.closePath() - }, - stroke: function CanvasGraphics_stroke(e) { - e = void 0 === e || e; - var t = this.ctx - , r = this.current.strokeColor; - t.globalAlpha = this.current.strokeAlpha; - if (this.contentVisible) - if (r && r.hasOwnProperty("type") && "Pattern" === r.type) { - t.save(); - const e = t.mozCurrentTransform - , s = n.Util.singularValueDecompose2dScale(e)[0]; - t.strokeStyle = r.getPattern(t, this); - t.lineWidth = Math.max(.65 * this.getSinglePixelWidth(), this.current.lineWidth * s); - t.stroke(); - t.restore() - } else { - t.lineWidth = Math.max(.65 * this.getSinglePixelWidth(), this.current.lineWidth); - t.stroke() - } - e && this.consumePath(); - t.globalAlpha = this.current.fillAlpha - }, - closeStroke: function CanvasGraphics_closeStroke() { - this.closePath(); - this.stroke() - }, - fill: function CanvasGraphics_fill(e) { - e = void 0 === e || e; - var t = this.ctx - , r = this.current.fillColor - , n = !1; - if (this.current.patternFill) { - t.save(); - this.baseTransform && t.setTransform.apply(t, this.baseTransform); - t.fillStyle = r.getPattern(t, this); - n = !0 - } - if (this.contentVisible) - if (this.pendingEOFill) { - t.fill("evenodd"); - this.pendingEOFill = !1 - } else - t.fill(); - n && t.restore(); - e && this.consumePath() - }, - eoFill: function CanvasGraphics_eoFill() { - this.pendingEOFill = !0; - this.fill() - }, - fillStroke: function CanvasGraphics_fillStroke() { - this.fill(!1); - this.stroke(!1); - this.consumePath() - }, - eoFillStroke: function CanvasGraphics_eoFillStroke() { - this.pendingEOFill = !0; - this.fillStroke() - }, - closeFillStroke: function CanvasGraphics_closeFillStroke() { - this.closePath(); - this.fillStroke() - }, - closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() { - this.pendingEOFill = !0; - this.closePath(); - this.fillStroke() - }, - endPath: function CanvasGraphics_endPath() { - this.consumePath() - }, - clip: function CanvasGraphics_clip() { - this.pendingClip = r - }, - eoClip: function CanvasGraphics_eoClip() { - this.pendingClip = o - }, - beginText: function CanvasGraphics_beginText() { - this.current.textMatrix = n.IDENTITY_MATRIX; - this.current.textMatrixScale = 1; - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0 - }, - endText: function CanvasGraphics_endText() { - var e = this.pendingTextPaths - , t = this.ctx; - if (void 0 !== e) { - t.save(); - t.beginPath(); - for (var r = 0; r < e.length; r++) { - var n = e[r]; - t.setTransform.apply(t, n.transform); - t.translate(n.x, n.y); - n.addToPath(t, n.fontSize) - } - t.restore(); - t.clip(); - t.beginPath(); - delete this.pendingTextPaths - } else - t.beginPath() - }, - setCharSpacing: function CanvasGraphics_setCharSpacing(e) { - this.current.charSpacing = e - }, - setWordSpacing: function CanvasGraphics_setWordSpacing(e) { - this.current.wordSpacing = e - }, - setHScale: function CanvasGraphics_setHScale(e) { - this.current.textHScale = e / 100 - }, - setLeading: function CanvasGraphics_setLeading(e) { - this.current.leading = -e - }, - setFont: function CanvasGraphics_setFont(e, t) { - var r = this.commonObjs.get(e) - , s = this.current; - if (!r) - throw new Error("Can't find font for " + e); - s.fontMatrix = r.fontMatrix ? r.fontMatrix : n.FONT_IDENTITY_MATRIX; - 0 !== s.fontMatrix[0] && 0 !== s.fontMatrix[3] || (0, - n.warn)("Invalid font matrix for font " + e); - if (t < 0) { - t = -t; - s.fontDirection = -1 - } else - s.fontDirection = 1; - this.current.font = r; - this.current.fontSize = t; - if (r.isType3Font) - return; - var a = r.loadedName || "sans-serif"; - let i = "normal"; - r.black ? i = "900" : r.bold && (i = "bold"); - var o = r.italic ? "italic" : "normal" - , l = `"${a}", ${r.fallbackName}`; - let c = t; - t < 16 ? c = 16 : t > 100 && (c = 100); - this.current.fontSizeScale = t / c; - this.ctx.font = `${o} ${i} ${c}px ${l}` - }, - setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(e) { - this.current.textRenderingMode = e - }, - setTextRise: function CanvasGraphics_setTextRise(e) { - this.current.textRise = e - }, - moveText: function CanvasGraphics_moveText(e, t) { - this.current.x = this.current.lineX += e; - this.current.y = this.current.lineY += t - }, - setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(e, t) { - this.setLeading(-t); - this.moveText(e, t) - }, - setTextMatrix: function CanvasGraphics_setTextMatrix(e, t, r, n, s, a) { - this.current.textMatrix = [e, t, r, n, s, a]; - this.current.textMatrixScale = Math.sqrt(e * e + t * t); - this.current.x = this.current.lineX = 0; - this.current.y = this.current.lineY = 0 - }, - nextLine: function CanvasGraphics_nextLine() { - this.moveText(0, this.current.leading) - }, - paintChar(e, t, r, s) { - var a = this.ctx - , i = this.current - , o = i.font - , l = i.textRenderingMode - , c = i.fontSize / i.fontSizeScale - , h = l & n.TextRenderingMode.FILL_STROKE_MASK - , d = !!(l & n.TextRenderingMode.ADD_TO_PATH_FLAG); - const u = i.patternFill && !o.missingFile; - var p; - (o.disableFontFace || d || u) && (p = o.getPathGenerator(this.commonObjs, e)); - if (o.disableFontFace || u) { - a.save(); - a.translate(t, r); - a.beginPath(); - p(a, c); - s && a.setTransform.apply(a, s); - h !== n.TextRenderingMode.FILL && h !== n.TextRenderingMode.FILL_STROKE || a.fill(); - h !== n.TextRenderingMode.STROKE && h !== n.TextRenderingMode.FILL_STROKE || a.stroke(); - a.restore() - } else { - h !== n.TextRenderingMode.FILL && h !== n.TextRenderingMode.FILL_STROKE || a.fillText(e, t, r); - h !== n.TextRenderingMode.STROKE && h !== n.TextRenderingMode.FILL_STROKE || a.strokeText(e, t, r) - } - if (d) { - (this.pendingTextPaths || (this.pendingTextPaths = [])).push({ - transform: a.mozCurrentTransform, - x: t, - y: r, - fontSize: c, - addToPath: p - }) - } - }, - get isFontSubpixelAAEnabled() { - const {context: e} = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10); - e.scale(1.5, 1); - e.fillText("I", 0, 10); - for (var t = e.getImageData(0, 0, 10, 10).data, r = !1, s = 3; s < t.length; s += 4) - if (t[s] > 0 && t[s] < 255) { - r = !0; - break - } - return (0, - n.shadow)(this, "isFontSubpixelAAEnabled", r) - }, - showText: function CanvasGraphics_showText(e) { - var t = this.current - , r = t.font; - if (r.isType3Font) - return this.showType3Text(e); - var s = t.fontSize; - if (0 === s) - return; - var a = this.ctx - , i = t.fontSizeScale - , o = t.charSpacing - , l = t.wordSpacing - , c = t.fontDirection - , h = t.textHScale * c - , d = e.length - , u = r.vertical - , p = u ? 1 : -1 - , f = r.defaultVMetrics - , g = s * t.fontMatrix[0] - , m = t.textRenderingMode === n.TextRenderingMode.FILL && !r.disableFontFace && !t.patternFill; - a.save(); - let _; - if (t.patternFill) { - a.save(); - const e = t.fillColor.getPattern(a, this); - _ = a.mozCurrentTransform; - a.restore(); - a.fillStyle = e - } - a.transform.apply(a, t.textMatrix); - a.translate(t.x, t.y + t.textRise); - c > 0 ? a.scale(h, -1) : a.scale(h, 1); - var A = t.lineWidth - , b = t.textMatrixScale; - if (0 === b || 0 === A) { - var y = t.textRenderingMode & n.TextRenderingMode.FILL_STROKE_MASK; - if (y === n.TextRenderingMode.STROKE || y === n.TextRenderingMode.FILL_STROKE) { - this._cachedGetSinglePixelWidth = null; - A = .65 * this.getSinglePixelWidth() - } - } else - A /= b; - if (1 !== i) { - a.scale(i, i); - A /= i - } - a.lineWidth = A; - var v, C = 0; - for (v = 0; v < d; ++v) { - var S = e[v]; - if ((0, - n.isNum)(S)) - C += p * S * s / 1e3; - else { - var x, P, k, R, w = !1, T = (S.isSpace ? l : 0) + o, E = S.fontChar, F = S.accent, L = S.width; - if (u) { - var M, D, O; - M = S.vmetric || f; - D = -(D = S.vmetric ? M[1] : .5 * L) * g; - O = M[2] * g; - L = M ? -M[0] : L; - x = D / i; - P = (C + O) / i - } else { - x = C / i; - P = 0 - } - if (r.remeasure && L > 0) { - var I = 1e3 * a.measureText(E).width / s * i; - if (L < I && this.isFontSubpixelAAEnabled) { - var N = L / I; - w = !0; - a.save(); - a.scale(N, 1); - x /= N - } else - L !== I && (x += (L - I) / 2e3 * s / i) - } - if (this.contentVisible && (S.isInFont || r.missingFile)) - if (m && !F) - a.fillText(E, x, P); - else { - this.paintChar(E, x, P, _); - if (F) { - k = x + s * F.offset.x / i; - R = P - s * F.offset.y / i; - this.paintChar(F.fontChar, k, R, _) - } - } - C += u ? L * g - T * c : L * g + T * c; - w && a.restore() - } - } - u ? t.y -= C : t.x += C * h; - a.restore() - }, - showType3Text: function CanvasGraphics_showType3Text(e) { - var t, r, s, a, i = this.ctx, o = this.current, l = o.font, c = o.fontSize, h = o.fontDirection, d = l.vertical ? 1 : -1, u = o.charSpacing, p = o.wordSpacing, f = o.textHScale * h, g = o.fontMatrix || n.FONT_IDENTITY_MATRIX, m = e.length; - if (!(o.textRenderingMode === n.TextRenderingMode.INVISIBLE) && 0 !== c) { - this._cachedGetSinglePixelWidth = null; - i.save(); - i.transform.apply(i, o.textMatrix); - i.translate(o.x, o.y); - i.scale(f, h); - for (t = 0; t < m; ++t) { - r = e[t]; - if ((0, - n.isNum)(r)) { - a = d * r * c / 1e3; - this.ctx.translate(a, 0); - o.x += a * f - } else { - var _ = (r.isSpace ? p : 0) + u - , A = l.charProcOperatorList[r.operatorListId]; - if (A) { - if (this.contentVisible) { - this.processingType3 = r; - this.save(); - i.scale(c, c); - i.transform.apply(i, g); - this.executeOperatorList(A); - this.restore() - } - s = n.Util.applyTransform([r.width, 0], g)[0] * c + _; - i.translate(s, 0); - o.x += s * f - } else - (0, - n.warn)(`Type3 character "${r.operatorListId}" is not available.`) - } - } - i.restore(); - this.processingType3 = null - } - }, - setCharWidth: function CanvasGraphics_setCharWidth(e, t) {}, - setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(e, t, r, n, s, a) { - this.ctx.rect(r, n, s - r, a - n); - this.clip(); - this.endPath() - }, - getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(e) { - var t; - if ("TilingPattern" === e[0]) { - var r = e[1] - , n = this.baseTransform || this.ctx.mozCurrentTransform.slice() - , a = { - createCanvasGraphics: e=>new CanvasGraphics(e,this.commonObjs,this.objs,this.canvasFactory,this.webGLContext) - }; - t = new s.TilingPattern(e,r,this.ctx,a,n) - } else - t = (0, - s.getShadingPatternFromIR)(e); - return t - }, - setStrokeColorN: function CanvasGraphics_setStrokeColorN() { - this.current.strokeColor = this.getColorN_Pattern(arguments) - }, - setFillColorN: function CanvasGraphics_setFillColorN() { - this.current.fillColor = this.getColorN_Pattern(arguments); - this.current.patternFill = !0 - }, - setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(e, t, r) { - var s = n.Util.makeCssRgb(e, t, r); - this.ctx.strokeStyle = s; - this.current.strokeColor = s - }, - setFillRGBColor: function CanvasGraphics_setFillRGBColor(e, t, r) { - var s = n.Util.makeCssRgb(e, t, r); - this.ctx.fillStyle = s; - this.current.fillColor = s; - this.current.patternFill = !1 - }, - shadingFill: function CanvasGraphics_shadingFill(e) { - if (this.contentVisible) { - var t = this.ctx; - this.save(); - var r = (0, - s.getShadingPatternFromIR)(e); - t.fillStyle = r.getPattern(t, this, !0); - var a = t.mozCurrentTransformInverse; - if (a) { - var i = t.canvas - , o = i.width - , l = i.height - , c = n.Util.applyTransform([0, 0], a) - , h = n.Util.applyTransform([0, l], a) - , d = n.Util.applyTransform([o, 0], a) - , u = n.Util.applyTransform([o, l], a) - , p = Math.min(c[0], h[0], d[0], u[0]) - , f = Math.min(c[1], h[1], d[1], u[1]) - , g = Math.max(c[0], h[0], d[0], u[0]) - , m = Math.max(c[1], h[1], d[1], u[1]); - this.ctx.fillRect(p, f, g - p, m - f) - } else - this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10); - this.restore() - } - }, - beginInlineImage: function CanvasGraphics_beginInlineImage() { - (0, - n.unreachable)("Should not call beginInlineImage") - }, - beginImageData: function CanvasGraphics_beginImageData() { - (0, - n.unreachable)("Should not call beginImageData") - }, - paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(e, t) { - if (this.contentVisible) { - this.save(); - this.baseTransformStack.push(this.baseTransform); - Array.isArray(e) && 6 === e.length && this.transform.apply(this, e); - this.baseTransform = this.ctx.mozCurrentTransform; - if (t) { - var r = t[2] - t[0] - , n = t[3] - t[1]; - this.ctx.rect(t[0], t[1], r, n); - this.clip(); - this.endPath() - } - } - }, - paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() { - if (this.contentVisible) { - this.restore(); - this.baseTransform = this.baseTransformStack.pop() - } - }, - beginGroup: function CanvasGraphics_beginGroup(e) { - if (this.contentVisible) { - this.save(); - var t = this.ctx; - e.isolated || (0, - n.info)("TODO: Support non-isolated groups."); - e.knockout && (0, - n.warn)("Knockout groups not supported."); - var r = t.mozCurrentTransform; - e.matrix && t.transform.apply(t, e.matrix); - if (!e.bbox) - throw new Error("Bounding box is required."); - var s = n.Util.getAxialAlignedBoundingBox(e.bbox, t.mozCurrentTransform) - , a = [0, 0, t.canvas.width, t.canvas.height]; - s = n.Util.intersect(s, a) || [0, 0, 0, 0]; - var i = Math.floor(s[0]) - , o = Math.floor(s[1]) - , l = Math.max(Math.ceil(s[2]) - i, 1) - , c = Math.max(Math.ceil(s[3]) - o, 1) - , h = 1 - , d = 1; - if (l > 4096) { - h = l / 4096; - l = 4096 - } - if (c > 4096) { - d = c / 4096; - c = 4096 - } - var u = "groupAt" + this.groupLevel; - e.smask && (u += "_smask_" + this.smaskCounter++ % 2); - var p = this.cachedCanvases.getCanvas(u, l, c, !0) - , f = p.context; - f.scale(1 / h, 1 / d); - f.translate(-i, -o); - f.transform.apply(f, r); - if (e.smask) - this.smaskStack.push({ - canvas: p.canvas, - context: f, - offsetX: i, - offsetY: o, - scaleX: h, - scaleY: d, - subtype: e.smask.subtype, - backdrop: e.smask.backdrop, - transferMap: e.smask.transferMap || null, - startTransformInverse: null - }); - else { - t.setTransform(1, 0, 0, 1, 0, 0); - t.translate(i, o); - t.scale(h, d) - } - copyCtxState(t, f); - this.ctx = f; - this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]); - this.groupStack.push(t); - this.groupLevel++; - this.current.activeSMask = null - } - }, - endGroup: function CanvasGraphics_endGroup(e) { - if (this.contentVisible) { - this.groupLevel--; - var t = this.ctx; - this.ctx = this.groupStack.pop(); - void 0 !== this.ctx.imageSmoothingEnabled ? this.ctx.imageSmoothingEnabled = !1 : this.ctx.mozImageSmoothingEnabled = !1; - e.smask ? this.tempSMask = this.smaskStack.pop() : this.ctx.drawImage(t.canvas, 0, 0); - this.restore() - } - }, - beginAnnotations: function CanvasGraphics_beginAnnotations() { - this.save(); - this.baseTransform && this.ctx.setTransform.apply(this.ctx, this.baseTransform) - }, - endAnnotations: function CanvasGraphics_endAnnotations() { - this.restore() - }, - beginAnnotation: function CanvasGraphics_beginAnnotation(e, t, r) { - this.save(); - resetCtxToDefault(this.ctx); - this.current = new i; - if (Array.isArray(e) && 4 === e.length) { - var n = e[2] - e[0] - , s = e[3] - e[1]; - this.ctx.rect(e[0], e[1], n, s); - this.clip(); - this.endPath() - } - this.transform.apply(this, t); - this.transform.apply(this, r) - }, - endAnnotation: function CanvasGraphics_endAnnotation() { - this.restore() - }, - paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(e) { - if (this.contentVisible) { - var t = this.ctx - , r = e.width - , n = e.height - , s = this.current.fillColor - , a = this.current.patternFill - , i = this.processingType3; - i && void 0 === i.compiled && (i.compiled = r <= 1e3 && n <= 1e3 ? function compileType3Glyph(e) { - var t, r, n, s, a = e.width, i = e.height, o = a + 1, l = new Uint8Array(o * (i + 1)), c = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]), h = a + 7 & -8, d = e.data, u = new Uint8Array(h * i), p = 0; - for (t = 0, - s = d.length; t < s; t++) - for (var f = 128, g = d[t]; f > 0; ) { - u[p++] = g & f ? 0 : 255; - f >>= 1 - } - var m = 0; - if (0 !== u[p = 0]) { - l[0] = 1; - ++m - } - for (r = 1; r < a; r++) { - if (u[p] !== u[p + 1]) { - l[r] = u[p] ? 2 : 1; - ++m - } - p++ - } - if (0 !== u[p]) { - l[r] = 2; - ++m - } - for (t = 1; t < i; t++) { - n = t * o; - if (u[(p = t * h) - h] !== u[p]) { - l[n] = u[p] ? 1 : 8; - ++m - } - var _ = (u[p] ? 4 : 0) + (u[p - h] ? 8 : 0); - for (r = 1; r < a; r++) { - if (c[_ = (_ >> 2) + (u[p + 1] ? 4 : 0) + (u[p - h + 1] ? 8 : 0)]) { - l[n + r] = c[_]; - ++m - } - p++ - } - if (u[p - h] !== u[p]) { - l[n + r] = u[p] ? 2 : 4; - ++m - } - if (m > 1e3) - return null - } - n = t * o; - if (0 !== u[p = h * (i - 1)]) { - l[n] = 8; - ++m - } - for (r = 1; r < a; r++) { - if (u[p] !== u[p + 1]) { - l[n + r] = u[p] ? 4 : 8; - ++m - } - p++ - } - if (0 !== u[p]) { - l[n + r] = 4; - ++m - } - if (m > 1e3) - return null; - var A = new Int32Array([0, o, -1, 0, -o, 0, 0, 0, 1]) - , b = []; - for (t = 0; m && t <= i; t++) { - for (var y = t * o, v = y + a; y < v && !l[y]; ) - y++; - if (y !== v) { - var C, S = [y % o, t], x = l[y], P = y; - do { - var k = A[x]; - do { - y += k - } while (!l[y]); - if (5 !== (C = l[y]) && 10 !== C) { - x = C; - l[y] = 0 - } else { - x = C & 51 * x >> 4; - l[y] &= x >> 2 | x << 2 - } - S.push(y % o); - S.push(y / o | 0); - l[y] || --m - } while (P !== y); - b.push(S); - --t - } - } - return function(e) { - e.save(); - e.scale(1 / a, -1 / i); - e.translate(0, -i); - e.beginPath(); - for (let r = 0, n = b.length; r < n; r++) { - var t = b[r]; - e.moveTo(t[0], t[1]); - for (let r = 2, n = t.length; r < n; r += 2) - e.lineTo(t[r], t[r + 1]) - } - e.fill(); - e.beginPath(); - e.restore() - } - }({ - data: e.data, - width: r, - height: n - }) : null); - if (i && i.compiled) - i.compiled(t); - else { - var o = this.cachedCanvases.getCanvas("maskCanvas", r, n) - , l = o.context; - l.save(); - putBinaryImageMask(l, e); - l.globalCompositeOperation = "source-in"; - l.fillStyle = a ? s.getPattern(l, this) : s; - l.fillRect(0, 0, r, n); - l.restore(); - this.paintInlineImageXObject(o.canvas) - } - } - }, - paintImageMaskXObjectRepeat(e, t, r=0, n=0, s, a) { - if (this.contentVisible) { - var i = e.width - , o = e.height - , l = this.current.fillColor - , c = this.current.patternFill - , h = this.cachedCanvases.getCanvas("maskCanvas", i, o) - , d = h.context; - d.save(); - putBinaryImageMask(d, e); - d.globalCompositeOperation = "source-in"; - d.fillStyle = c ? l.getPattern(d, this) : l; - d.fillRect(0, 0, i, o); - d.restore(); - for (var u = this.ctx, p = 0, f = a.length; p < f; p += 2) { - u.save(); - u.transform(t, r, n, s, a[p], a[p + 1]); - u.scale(1, -1); - u.drawImage(h.canvas, 0, 0, i, o, 0, -1, 1, 1); - u.restore() - } - } - }, - paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(e) { - if (this.contentVisible) - for (var t = this.ctx, r = this.current.fillColor, n = this.current.patternFill, s = 0, a = e.length; s < a; s++) { - var i = e[s] - , o = i.width - , l = i.height - , c = this.cachedCanvases.getCanvas("maskCanvas", o, l) - , h = c.context; - h.save(); - putBinaryImageMask(h, i); - h.globalCompositeOperation = "source-in"; - h.fillStyle = n ? r.getPattern(h, this) : r; - h.fillRect(0, 0, o, l); - h.restore(); - t.save(); - t.transform.apply(t, i.transform); - t.scale(1, -1); - t.drawImage(c.canvas, 0, 0, o, l, 0, -1, 1, 1); - t.restore() - } - }, - paintImageXObject: function CanvasGraphics_paintImageXObject(e) { - if (!this.contentVisible) - return; - const t = e.startsWith("g_") ? this.commonObjs.get(e) : this.objs.get(e); - t ? this.paintInlineImageXObject(t) : (0, - n.warn)("Dependent image isn't ready yet") - }, - paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(e, t, r, s) { - if (!this.contentVisible) - return; - const a = e.startsWith("g_") ? this.commonObjs.get(e) : this.objs.get(e); - if (a) { - for (var i = a.width, o = a.height, l = [], c = 0, h = s.length; c < h; c += 2) - l.push({ - transform: [t, 0, 0, r, s[c], s[c + 1]], - x: 0, - y: 0, - w: i, - h: o - }); - this.paintInlineImageXObjectGroup(a, l) - } else - (0, - n.warn)("Dependent image isn't ready yet") - }, - paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(e) { - if (this.contentVisible) { - var t = e.width - , r = e.height - , n = this.ctx; - this.save(); - n.scale(1 / t, -1 / r); - var s, a, i = n.mozCurrentTransformInverse, o = i[0], l = i[1], c = Math.max(Math.sqrt(o * o + l * l), 1), h = i[2], d = i[3], u = Math.max(Math.sqrt(h * h + d * d), 1); - if ("function" == typeof HTMLElement && e instanceof HTMLElement || !e.data) - s = e; - else { - var p = (a = this.cachedCanvases.getCanvas("inlineImage", t, r)).context; - putBinaryImageData(p, e, this.current.transferMaps); - s = a.canvas - } - for (var f = t, g = r, m = "prescale1"; c > 2 && f > 1 || u > 2 && g > 1; ) { - var _ = f - , A = g; - c > 2 && f > 1 && (c /= f / (_ = Math.ceil(f / 2))); - u > 2 && g > 1 && (u /= g / (A = Math.ceil(g / 2))); - (p = (a = this.cachedCanvases.getCanvas(m, _, A)).context).clearRect(0, 0, _, A); - p.drawImage(s, 0, 0, f, g, 0, 0, _, A); - s = a.canvas; - f = _; - g = A; - m = "prescale1" === m ? "prescale2" : "prescale1" - } - n.drawImage(s, 0, 0, f, g, 0, -r, t, r); - if (this.imageLayer) { - var b = this.getCanvasPosition(0, -r); - this.imageLayer.appendImage({ - imgData: e, - left: b[0], - top: b[1], - width: t / i[0], - height: r / i[3] - }) - } - this.restore() - } - }, - paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(e, t) { - if (this.contentVisible) { - var r = this.ctx - , n = e.width - , s = e.height - , a = this.cachedCanvases.getCanvas("inlineImage", n, s); - putBinaryImageData(a.context, e, this.current.transferMaps); - for (var i = 0, o = t.length; i < o; i++) { - var l = t[i]; - r.save(); - r.transform.apply(r, l.transform); - r.scale(1, -1); - r.drawImage(a.canvas, l.x, l.y, l.w, l.h, 0, -1, 1, 1); - if (this.imageLayer) { - var c = this.getCanvasPosition(l.x, l.y); - this.imageLayer.appendImage({ - imgData: e, - left: c[0], - top: c[1], - width: n, - height: s - }) - } - r.restore() - } - } - }, - paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() { - this.contentVisible && this.ctx.fillRect(0, 0, 1, 1) - }, - markPoint: function CanvasGraphics_markPoint(e) {}, - markPointProps: function CanvasGraphics_markPointProps(e, t) {}, - beginMarkedContent: function CanvasGraphics_beginMarkedContent(e) { - this.markedContentStack.push({ - visible: !0 - }) - }, - beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(e, t) { - "OC" === e ? this.markedContentStack.push({ - visible: this.optionalContentConfig.isVisible(t) - }) : this.markedContentStack.push({ - visible: !0 - }); - this.contentVisible = this.isContentVisible() - }, - endMarkedContent: function CanvasGraphics_endMarkedContent() { - this.markedContentStack.pop(); - this.contentVisible = this.isContentVisible() - }, - beginCompat: function CanvasGraphics_beginCompat() {}, - endCompat: function CanvasGraphics_endCompat() {}, - consumePath: function CanvasGraphics_consumePath() { - var e = this.ctx; - if (this.pendingClip) { - this.pendingClip === o ? e.clip("evenodd") : e.clip(); - this.pendingClip = null - } - e.beginPath() - }, - getSinglePixelWidth(e) { - if (null === this._cachedGetSinglePixelWidth) { - const e = this.ctx.mozCurrentTransformInverse; - this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(e[0] * e[0] + e[1] * e[1], e[2] * e[2] + e[3] * e[3])) - } - return this._cachedGetSinglePixelWidth - }, - getCanvasPosition: function CanvasGraphics_getCanvasPosition(e, t) { - var r = this.ctx.mozCurrentTransform; - return [r[0] * e + r[2] * t + r[4], r[1] * e + r[3] * t + r[5]] - }, - isContentVisible: function CanvasGraphics_isContentVisible() { - for (let e = this.markedContentStack.length - 1; e >= 0; e--) - if (!this.markedContentStack[e].visible) - return !1; - return !0 - } - }; - for (var l in n.OPS) - CanvasGraphics.prototype[n.OPS[l]] = CanvasGraphics.prototype[l]; - return CanvasGraphics - }(); - t.CanvasGraphics = o - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.getShadingPatternFromIR = function getShadingPatternFromIR(e) { - var t = s[e[0]]; - if (!t) - throw new Error("Unknown IR type: " + e[0]); - return t.fromIR(e) - } - ; - t.TilingPattern = void 0; - var n = r(2) - , s = {}; - function applyBoundingBox(e, t) { - if (!t || "undefined" == typeof Path2D) - return; - const r = t[2] - t[0] - , n = t[3] - t[1] - , s = new Path2D; - s.rect(t[0], t[1], r, n); - e.clip(s) - } - s.RadialAxial = { - fromIR: function RadialAxial_fromIR(e) { - var t = e[1] - , r = e[2] - , n = e[3] - , s = e[4] - , a = e[5] - , i = e[6] - , o = e[7]; - return { - type: "Pattern", - getPattern: function RadialAxial_getPattern(e) { - applyBoundingBox(e, r); - var l; - "axial" === t ? l = e.createLinearGradient(s[0], s[1], a[0], a[1]) : "radial" === t && (l = e.createRadialGradient(s[0], s[1], i, a[0], a[1], o)); - for (var c = 0, h = n.length; c < h; ++c) { - var d = n[c]; - l.addColorStop(d[0], d[1]) - } - return l - } - } - } - }; - var a = function createMeshCanvasClosure() { - function drawTriangle(e, t, r, n, s, a, i, o) { - var l, c = t.coords, h = t.colors, d = e.data, u = 4 * e.width; - if (c[r + 1] > c[n + 1]) { - l = r; - r = n; - n = l; - l = a; - a = i; - i = l - } - if (c[n + 1] > c[s + 1]) { - l = n; - n = s; - s = l; - l = i; - i = o; - o = l - } - if (c[r + 1] > c[n + 1]) { - l = r; - r = n; - n = l; - l = a; - a = i; - i = l - } - var p = (c[r] + t.offsetX) * t.scaleX - , f = (c[r + 1] + t.offsetY) * t.scaleY - , g = (c[n] + t.offsetX) * t.scaleX - , m = (c[n + 1] + t.offsetY) * t.scaleY - , _ = (c[s] + t.offsetX) * t.scaleX - , A = (c[s + 1] + t.offsetY) * t.scaleY; - if (!(f >= A)) - for (var b, y, v, C, S, x, P, k, R = h[a], w = h[a + 1], T = h[a + 2], E = h[i], F = h[i + 1], L = h[i + 2], M = h[o], D = h[o + 1], O = h[o + 2], I = Math.round(f), N = Math.round(A), j = I; j <= N; j++) { - if (j < m) { - let e; - e = j < f ? 0 : f === m ? 1 : (f - j) / (f - m); - b = p - (p - g) * e; - y = R - (R - E) * e; - v = w - (w - F) * e; - C = T - (T - L) * e - } else { - let e; - e = j > A ? 1 : m === A ? 0 : (m - j) / (m - A); - b = g - (g - _) * e; - y = E - (E - M) * e; - v = F - (F - D) * e; - C = L - (L - O) * e - } - let e; - e = j < f ? 0 : j > A ? 1 : (f - j) / (f - A); - S = p - (p - _) * e; - x = R - (R - M) * e; - P = w - (w - D) * e; - k = T - (T - O) * e; - for (var G = Math.round(Math.min(b, S)), U = Math.round(Math.max(b, S)), W = u * j + 4 * G, q = G; q <= U; q++) { - e = (b - q) / (b - S); - e < 0 ? e = 0 : e > 1 && (e = 1); - d[W++] = y - (y - x) * e | 0; - d[W++] = v - (v - P) * e | 0; - d[W++] = C - (C - k) * e | 0; - d[W++] = 255 - } - } - } - function drawFigure(e, t, r) { - var n, s, a = t.coords, i = t.colors; - switch (t.type) { - case "lattice": - var o = t.verticesPerRow - , l = Math.floor(a.length / o) - 1 - , c = o - 1; - for (n = 0; n < l; n++) - for (var h = n * o, d = 0; d < c; d++, - h++) { - drawTriangle(e, r, a[h], a[h + 1], a[h + o], i[h], i[h + 1], i[h + o]); - drawTriangle(e, r, a[h + o + 1], a[h + 1], a[h + o], i[h + o + 1], i[h + 1], i[h + o]) - } - break; - case "triangles": - for (n = 0, - s = a.length; n < s; n += 3) - drawTriangle(e, r, a[n], a[n + 1], a[n + 2], i[n], i[n + 1], i[n + 2]); - break; - default: - throw new Error("illegal figure") - } - } - return function createMeshCanvas(e, t, r, n, s, a, i, o) { - var l, c, h, d, u = Math.floor(e[0]), p = Math.floor(e[1]), f = Math.ceil(e[2]) - u, g = Math.ceil(e[3]) - p, m = Math.min(Math.ceil(Math.abs(f * t[0] * 1.1)), 3e3), _ = Math.min(Math.ceil(Math.abs(g * t[1] * 1.1)), 3e3), A = f / m, b = g / _, y = { - coords: r, - colors: n, - offsetX: -u, - offsetY: -p, - scaleX: 1 / A, - scaleY: 1 / b - }, v = m + 4, C = _ + 4; - if (o.isEnabled) { - l = o.drawFigures({ - width: m, - height: _, - backgroundColor: a, - figures: s, - context: y - }); - (c = i.getCanvas("mesh", v, C, !1)).context.drawImage(l, 2, 2); - l = c.canvas - } else { - var S = (c = i.getCanvas("mesh", v, C, !1)).context - , x = S.createImageData(m, _); - if (a) { - var P = x.data; - for (h = 0, - d = P.length; h < d; h += 4) { - P[h] = a[0]; - P[h + 1] = a[1]; - P[h + 2] = a[2]; - P[h + 3] = 255 - } - } - for (h = 0; h < s.length; h++) - drawFigure(x, s[h], y); - S.putImageData(x, 2, 2); - l = c.canvas - } - return { - canvas: l, - offsetX: u - 2 * A, - offsetY: p - 2 * b, - scaleX: A, - scaleY: b - } - } - }(); - s.Mesh = { - fromIR: function Mesh_fromIR(e) { - var t = e[2] - , r = e[3] - , s = e[4] - , i = e[5] - , o = e[6] - , l = e[7] - , c = e[8]; - return { - type: "Pattern", - getPattern: function Mesh_getPattern(e, h, d) { - applyBoundingBox(e, l); - var u; - if (d) - u = n.Util.singularValueDecompose2dScale(e.mozCurrentTransform); - else { - u = n.Util.singularValueDecompose2dScale(h.baseTransform); - if (o) { - var p = n.Util.singularValueDecompose2dScale(o); - u = [u[0] * p[0], u[1] * p[1]] - } - } - var f = a(i, u, t, r, s, d ? null : c, h.cachedCanvases, h.webGLContext); - if (!d) { - e.setTransform.apply(e, h.baseTransform); - o && e.transform.apply(e, o) - } - e.translate(f.offsetX, f.offsetY); - e.scale(f.scaleX, f.scaleY); - return e.createPattern(f.canvas, "no-repeat") - } - } - } - }; - s.Dummy = { - fromIR: function Dummy_fromIR() { - return { - type: "Pattern", - getPattern: function Dummy_fromIR_getPattern() { - return "hotpink" - } - } - } - }; - var i = function TilingPatternClosure() { - var e = 1 - , t = 2; - function TilingPattern(e, t, r, n, s) { - this.operatorList = e[2]; - this.matrix = e[3] || [1, 0, 0, 1, 0, 0]; - this.bbox = e[4]; - this.xstep = e[5]; - this.ystep = e[6]; - this.paintType = e[7]; - this.tilingType = e[8]; - this.color = t; - this.canvasGraphicsFactory = n; - this.baseTransform = s; - this.type = "Pattern"; - this.ctx = r - } - TilingPattern.prototype = { - createPatternCanvas: function TilinPattern_createPatternCanvas(e) { - var t = this.operatorList - , r = this.bbox - , s = this.xstep - , a = this.ystep - , i = this.paintType - , o = this.tilingType - , l = this.color - , c = this.canvasGraphicsFactory; - (0, - n.info)("TilingType: " + o); - var h = r[0] - , d = r[1] - , u = r[2] - , p = r[3] - , f = n.Util.singularValueDecompose2dScale(this.matrix) - , g = n.Util.singularValueDecompose2dScale(this.baseTransform) - , m = [f[0] * g[0], f[1] * g[1]] - , _ = this.getSizeAndScale(s, this.ctx.canvas.width, m[0]) - , A = this.getSizeAndScale(a, this.ctx.canvas.height, m[1]) - , b = e.cachedCanvases.getCanvas("pattern", _.size, A.size, !0) - , y = b.context - , v = c.createCanvasGraphics(y); - v.groupLevel = e.groupLevel; - this.setFillAndStrokeStyleToContext(v, i, l); - v.transform(_.scale, 0, 0, A.scale, 0, 0); - v.transform(1, 0, 0, 1, -h, -d); - this.clipBbox(v, r, h, d, u, p); - v.executeOperatorList(t); - this.ctx.transform(1, 0, 0, 1, h, d); - this.ctx.scale(1 / _.scale, 1 / A.scale); - return b.canvas - }, - getSizeAndScale: function TilingPattern_getSizeAndScale(e, t, r) { - e = Math.abs(e); - var n = Math.max(3e3, t) - , s = Math.ceil(e * r); - s >= n ? s = n : r = s / e; - return { - scale: r, - size: s - } - }, - clipBbox: function clipBbox(e, t, r, n, s, a) { - if (Array.isArray(t) && 4 === t.length) { - var i = s - r - , o = a - n; - e.ctx.rect(r, n, i, o); - e.clip(); - e.endPath() - } - }, - setFillAndStrokeStyleToContext: function setFillAndStrokeStyleToContext(r, s, a) { - const i = r.ctx - , o = r.current; - switch (s) { - case e: - var l = this.ctx; - i.fillStyle = l.fillStyle; - i.strokeStyle = l.strokeStyle; - o.fillColor = l.fillStyle; - o.strokeColor = l.strokeStyle; - break; - case t: - var c = n.Util.makeCssRgb(a[0], a[1], a[2]); - i.fillStyle = c; - i.strokeStyle = c; - o.fillColor = c; - o.strokeColor = c; - break; - default: - throw new n.FormatError("Unsupported paint type: " + s) - } - }, - getPattern: function TilingPattern_getPattern(e, t) { - (e = this.ctx).setTransform.apply(e, this.baseTransform); - e.transform.apply(e, this.matrix); - var r = this.createPatternCanvas(t); - return e.createPattern(r, "repeat") - } - }; - return TilingPattern - }(); - t.TilingPattern = i - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.GlobalWorkerOptions = void 0; - const n = Object.create(null); - t.GlobalWorkerOptions = n; - n.workerPort = void 0 === n.workerPort ? null : n.workerPort; - n.workerSrc = void 0 === n.workerSrc ? "" : n.workerSrc - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.MessageHandler = void 0; - var n = r(2); - const s = 1 - , a = 2 - , i = 1 - , o = 2 - , l = 3 - , c = 4 - , h = 5 - , d = 6 - , u = 7 - , p = 8; - function wrapReason(e) { - if ("object" != typeof e || null === e) - return e; - switch (e.name) { - case "AbortException": - return new n.AbortException(e.message); - case "MissingPDFException": - return new n.MissingPDFException(e.message); - case "UnexpectedResponseException": - return new n.UnexpectedResponseException(e.message,e.status); - case "UnknownErrorException": - return new n.UnknownErrorException(e.message,e.details); - default: - return new n.UnknownErrorException(e.message,e.toString()) - } - } - t.MessageHandler = class MessageHandler { - constructor(e, t, r) { - this.sourceName = e; - this.targetName = t; - this.comObj = r; - this.callbackId = 1; - this.streamId = 1; - this.postMessageTransfers = !0; - this.streamSinks = Object.create(null); - this.streamControllers = Object.create(null); - this.callbackCapabilities = Object.create(null); - this.actionHandler = Object.create(null); - this._onComObjOnMessage = e=>{ - const t = e.data; - if (t.targetName !== this.sourceName) - return; - if (t.stream) { - this._processStreamMessage(t); - return - } - if (t.callback) { - const e = t.callbackId - , r = this.callbackCapabilities[e]; - if (!r) - throw new Error("Cannot resolve callback " + e); - delete this.callbackCapabilities[e]; - if (t.callback === s) - r.resolve(t.data); - else { - if (t.callback !== a) - throw new Error("Unexpected callback case"); - r.reject(wrapReason(t.reason)) - } - return - } - const n = this.actionHandler[t.action]; - if (!n) - throw new Error("Unknown action from worker: " + t.action); - if (t.callbackId) { - const e = this.sourceName - , i = t.sourceName; - new Promise((function(e) { - e(n(t.data)) - } - )).then((function(n) { - r.postMessage({ - sourceName: e, - targetName: i, - callback: s, - callbackId: t.callbackId, - data: n - }) - } - ), (function(n) { - r.postMessage({ - sourceName: e, - targetName: i, - callback: a, - callbackId: t.callbackId, - reason: wrapReason(n) - }) - } - )) - } else - t.streamId ? this._createStreamSink(t) : n(t.data) - } - ; - r.addEventListener("message", this._onComObjOnMessage) - } - on(e, t) { - const r = this.actionHandler; - if (r[e]) - throw new Error(`There is already an actionName called "${e}"`); - r[e] = t - } - send(e, t, r) { - this._postMessage({ - sourceName: this.sourceName, - targetName: this.targetName, - action: e, - data: t - }, r) - } - sendWithPromise(e, t, r) { - const s = this.callbackId++ - , a = (0, - n.createPromiseCapability)(); - this.callbackCapabilities[s] = a; - try { - this._postMessage({ - sourceName: this.sourceName, - targetName: this.targetName, - action: e, - callbackId: s, - data: t - }, r) - } catch (e) { - a.reject(e) - } - return a.promise - } - sendWithStream(e, t, r, s) { - const a = this.streamId++ - , o = this.sourceName - , l = this.targetName - , c = this.comObj; - return new ReadableStream({ - start: r=>{ - const i = (0, - n.createPromiseCapability)(); - this.streamControllers[a] = { - controller: r, - startCall: i, - pullCall: null, - cancelCall: null, - isClosed: !1 - }; - this._postMessage({ - sourceName: o, - targetName: l, - action: e, - streamId: a, - data: t, - desiredSize: r.desiredSize - }, s); - return i.promise - } - , - pull: e=>{ - const t = (0, - n.createPromiseCapability)(); - this.streamControllers[a].pullCall = t; - c.postMessage({ - sourceName: o, - targetName: l, - stream: d, - streamId: a, - desiredSize: e.desiredSize - }); - return t.promise - } - , - cancel: e=>{ - (0, - n.assert)(e instanceof Error, "cancel must have a valid reason"); - const t = (0, - n.createPromiseCapability)(); - this.streamControllers[a].cancelCall = t; - this.streamControllers[a].isClosed = !0; - c.postMessage({ - sourceName: o, - targetName: l, - stream: i, - streamId: a, - reason: wrapReason(e) - }); - return t.promise - } - },r) - } - _createStreamSink(e) { - const t = this - , r = this.actionHandler[e.action] - , s = e.streamId - , a = this.sourceName - , i = e.sourceName - , o = this.comObj - , d = { - enqueue(e, r=1, o) { - if (this.isCancelled) - return; - const l = this.desiredSize; - this.desiredSize -= r; - if (l > 0 && this.desiredSize <= 0) { - this.sinkCapability = (0, - n.createPromiseCapability)(); - this.ready = this.sinkCapability.promise - } - t._postMessage({ - sourceName: a, - targetName: i, - stream: c, - streamId: s, - chunk: e - }, o) - }, - close() { - if (!this.isCancelled) { - this.isCancelled = !0; - o.postMessage({ - sourceName: a, - targetName: i, - stream: l, - streamId: s - }); - delete t.streamSinks[s] - } - }, - error(e) { - (0, - n.assert)(e instanceof Error, "error must have a valid reason"); - if (!this.isCancelled) { - this.isCancelled = !0; - o.postMessage({ - sourceName: a, - targetName: i, - stream: h, - streamId: s, - reason: wrapReason(e) - }) - } - }, - sinkCapability: (0, - n.createPromiseCapability)(), - onPull: null, - onCancel: null, - isCancelled: !1, - desiredSize: e.desiredSize, - ready: null - }; - d.sinkCapability.resolve(); - d.ready = d.sinkCapability.promise; - this.streamSinks[s] = d; - new Promise((function(t) { - t(r(e.data, d)) - } - )).then((function() { - o.postMessage({ - sourceName: a, - targetName: i, - stream: p, - streamId: s, - success: !0 - }) - } - ), (function(e) { - o.postMessage({ - sourceName: a, - targetName: i, - stream: p, - streamId: s, - reason: wrapReason(e) - }) - } - )) - } - _processStreamMessage(e) { - const t = e.streamId - , r = this.sourceName - , s = e.sourceName - , a = this.comObj; - switch (e.stream) { - case p: - e.success ? this.streamControllers[t].startCall.resolve() : this.streamControllers[t].startCall.reject(wrapReason(e.reason)); - break; - case u: - e.success ? this.streamControllers[t].pullCall.resolve() : this.streamControllers[t].pullCall.reject(wrapReason(e.reason)); - break; - case d: - if (!this.streamSinks[t]) { - a.postMessage({ - sourceName: r, - targetName: s, - stream: u, - streamId: t, - success: !0 - }); - break - } - this.streamSinks[t].desiredSize <= 0 && e.desiredSize > 0 && this.streamSinks[t].sinkCapability.resolve(); - this.streamSinks[t].desiredSize = e.desiredSize; - const {onPull: f} = this.streamSinks[e.streamId]; - new Promise((function(e) { - e(f && f()) - } - )).then((function() { - a.postMessage({ - sourceName: r, - targetName: s, - stream: u, - streamId: t, - success: !0 - }) - } - ), (function(e) { - a.postMessage({ - sourceName: r, - targetName: s, - stream: u, - streamId: t, - reason: wrapReason(e) - }) - } - )); - break; - case c: - (0, - n.assert)(this.streamControllers[t], "enqueue should have stream controller"); - if (this.streamControllers[t].isClosed) - break; - this.streamControllers[t].controller.enqueue(e.chunk); - break; - case l: - (0, - n.assert)(this.streamControllers[t], "close should have stream controller"); - if (this.streamControllers[t].isClosed) - break; - this.streamControllers[t].isClosed = !0; - this.streamControllers[t].controller.close(); - this._deleteStreamController(t); - break; - case h: - (0, - n.assert)(this.streamControllers[t], "error should have stream controller"); - this.streamControllers[t].controller.error(wrapReason(e.reason)); - this._deleteStreamController(t); - break; - case o: - e.success ? this.streamControllers[t].cancelCall.resolve() : this.streamControllers[t].cancelCall.reject(wrapReason(e.reason)); - this._deleteStreamController(t); - break; - case i: - if (!this.streamSinks[t]) - break; - const {onCancel: g} = this.streamSinks[e.streamId]; - new Promise((function(t) { - t(g && g(wrapReason(e.reason))) - } - )).then((function() { - a.postMessage({ - sourceName: r, - targetName: s, - stream: o, - streamId: t, - success: !0 - }) - } - ), (function(e) { - a.postMessage({ - sourceName: r, - targetName: s, - stream: o, - streamId: t, - reason: wrapReason(e) - }) - } - )); - this.streamSinks[t].sinkCapability.reject(wrapReason(e.reason)); - this.streamSinks[t].isCancelled = !0; - delete this.streamSinks[t]; - break; - default: - throw new Error("Unexpected stream case") - } - } - async _deleteStreamController(e) { - await Promise.allSettled([this.streamControllers[e].startCall, this.streamControllers[e].pullCall, this.streamControllers[e].cancelCall].map((function(e) { - return e && e.promise - } - ))); - delete this.streamControllers[e] - } - _postMessage(e, t) { - t && this.postMessageTransfers ? this.comObj.postMessage(e, t) : this.comObj.postMessage(e) - } - destroy() { - this.comObj.removeEventListener("message", this._onComObjOnMessage) - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.Metadata = void 0; - var n = r(2) - , s = r(15); - t.Metadata = class Metadata { - constructor(e) { - (0, - n.assert)("string" == typeof e, "Metadata: input is not a string"); - e = this._repair(e); - const t = (new s.SimpleXMLParser).parseFromString(e); - this._metadataMap = new Map; - t && this._parse(t) - } - _repair(e) { - return e.replace(/^[^<]+/, "").replace(/>\\376\\377([^<]+)/g, (function(e, t) { - const r = t.replace(/\\([0-3])([0-7])([0-7])/g, (function(e, t, r, n) { - return String.fromCharCode(64 * t + 8 * r + 1 * n) - } - )).replace(/&(amp|apos|gt|lt|quot);/g, (function(e, t) { - switch (t) { - case "amp": - return "&"; - case "apos": - return "'"; - case "gt": - return ">"; - case "lt": - return "<"; - case "quot": - return '"' - } - throw new Error(`_repair: ${t} isn't defined.`) - } - )); - let n = ""; - for (let e = 0, t = r.length; e < t; e += 2) { - const t = 256 * r.charCodeAt(e) + r.charCodeAt(e + 1); - n += t >= 32 && t < 127 && 60 !== t && 62 !== t && 38 !== t ? String.fromCharCode(t) : "&#x" + (65536 + t).toString(16).substring(1) + ";" - } - return ">" + n - } - )) - } - _parse(e) { - let t = e.documentElement; - if ("rdf:rdf" !== t.nodeName.toLowerCase()) { - t = t.firstChild; - for (; t && "rdf:rdf" !== t.nodeName.toLowerCase(); ) - t = t.nextSibling - } - const r = t ? t.nodeName.toLowerCase() : null; - if (!t || "rdf:rdf" !== r || !t.hasChildNodes()) - return; - const n = t.childNodes; - for (let e = 0, t = n.length; e < t; e++) { - const t = n[e]; - if ("rdf:description" === t.nodeName.toLowerCase()) - for (let e = 0, r = t.childNodes.length; e < r; e++) - if ("#text" !== t.childNodes[e].nodeName.toLowerCase()) { - const r = t.childNodes[e] - , n = r.nodeName.toLowerCase(); - this._metadataMap.set(n, r.textContent.trim()) - } - } - } - get(e) { - return this._metadataMap.has(e) ? this._metadataMap.get(e) : null - } - getAll() { - return Object.fromEntries(this._metadataMap) - } - has(e) { - return this._metadataMap.has(e) - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.SimpleXMLParser = void 0; - const n = 0 - , s = -2 - , a = -3 - , i = -4 - , o = -5 - , l = -6 - , c = -9; - function isWhitespace(e, t) { - const r = e[t]; - return " " === r || "\n" === r || "\r" === r || "\t" === r - } - class SimpleDOMNode { - constructor(e, t) { - this.nodeName = e; - this.nodeValue = t; - Object.defineProperty(this, "parentNode", { - value: null, - writable: !0 - }) - } - get firstChild() { - return this.childNodes && this.childNodes[0] - } - get nextSibling() { - const e = this.parentNode.childNodes; - if (!e) - return; - const t = e.indexOf(this); - return -1 !== t ? e[t + 1] : void 0 - } - get textContent() { - return this.childNodes ? this.childNodes.map((function(e) { - return e.textContent - } - )).join("") : this.nodeValue || "" - } - hasChildNodes() { - return this.childNodes && this.childNodes.length > 0 - } - } - t.SimpleXMLParser = class SimpleXMLParser extends class XMLParserBase { - _resolveEntities(e) { - return e.replace(/&([^;]+);/g, (e,t)=>{ - if ("#x" === t.substring(0, 2)) - return String.fromCharCode(parseInt(t.substring(2), 16)); - if ("#" === t.substring(0, 1)) - return String.fromCharCode(parseInt(t.substring(1), 10)); - switch (t) { - case "lt": - return "<"; - case "gt": - return ">"; - case "amp": - return "&"; - case "quot": - return '"' - } - return this.onResolveEntity(t) - } - ) - } - _parseContent(e, t) { - const r = []; - let n = t; - function skipWs() { - for (; n < e.length && isWhitespace(e, n); ) - ++n - } - for (; n < e.length && !isWhitespace(e, n) && ">" !== e[n] && "/" !== e[n]; ) - ++n; - const s = e.substring(t, n); - skipWs(); - for (; n < e.length && ">" !== e[n] && "/" !== e[n] && "?" !== e[n]; ) { - skipWs(); - let t = "" - , s = ""; - for (; n < e.length && !isWhitespace(e, n) && "=" !== e[n]; ) { - t += e[n]; - ++n - } - skipWs(); - if ("=" !== e[n]) - return null; - ++n; - skipWs(); - const a = e[n]; - if ('"' !== a && "'" !== a) - return null; - const i = e.indexOf(a, ++n); - if (i < 0) - return null; - s = e.substring(n, i); - r.push({ - name: t, - value: this._resolveEntities(s) - }); - n = i + 1; - skipWs() - } - return { - name: s, - attributes: r, - parsed: n - t - } - } - _parseProcessingInstruction(e, t) { - let r = t; - for (; r < e.length && !isWhitespace(e, r) && ">" !== e[r] && "/" !== e[r]; ) - ++r; - const n = e.substring(t, r); - !function skipWs() { - for (; r < e.length && isWhitespace(e, r); ) - ++r - }(); - const s = r; - for (; r < e.length && ("?" !== e[r] || ">" !== e[r + 1]); ) - ++r; - return { - name: n, - value: e.substring(s, r), - parsed: r - t - } - } - parseXml(e) { - let t = 0; - for (; t < e.length; ) { - let r = t; - if ("<" === e[t]) { - ++r; - let t; - switch (e[r]) { - case "/": - ++r; - t = e.indexOf(">", r); - if (t < 0) { - this.onError(c); - return - } - this.onEndElement(e.substring(r, t)); - r = t + 1; - break; - case "?": - ++r; - const n = this._parseProcessingInstruction(e, r); - if ("?>" !== e.substring(r + n.parsed, r + n.parsed + 2)) { - this.onError(a); - return - } - this.onPi(n.name, n.value); - r += n.parsed + 2; - break; - case "!": - if ("--" === e.substring(r + 1, r + 3)) { - t = e.indexOf("--\x3e", r + 3); - if (t < 0) { - this.onError(o); - return - } - this.onComment(e.substring(r + 3, t)); - r = t + 3 - } else if ("[CDATA[" === e.substring(r + 1, r + 8)) { - t = e.indexOf("]]>", r + 8); - if (t < 0) { - this.onError(s); - return - } - this.onCdata(e.substring(r + 8, t)); - r = t + 3 - } else { - if ("DOCTYPE" !== e.substring(r + 1, r + 8)) { - this.onError(l); - return - } - { - const n = e.indexOf("[", r + 8); - let s = !1; - t = e.indexOf(">", r + 8); - if (t < 0) { - this.onError(i); - return - } - if (n > 0 && t > n) { - t = e.indexOf("]>", r + 8); - if (t < 0) { - this.onError(i); - return - } - s = !0 - } - const a = e.substring(r + 8, t + (s ? 1 : 0)); - this.onDoctype(a); - r = t + (s ? 2 : 1) - } - } - break; - default: - const h = this._parseContent(e, r); - if (null === h) { - this.onError(l); - return - } - let d = !1; - if ("/>" === e.substring(r + h.parsed, r + h.parsed + 2)) - d = !0; - else if (">" !== e.substring(r + h.parsed, r + h.parsed + 1)) { - this.onError(c); - return - } - this.onBeginElement(h.name, h.attributes, d); - r += h.parsed + (d ? 2 : 1) - } - } else { - for (; r < e.length && "<" !== e[r]; ) - r++; - const n = e.substring(t, r); - this.onText(this._resolveEntities(n)) - } - t = r - } - } - onResolveEntity(e) { - return `&${e};` - } - onPi(e, t) {} - onComment(e) {} - onCdata(e) {} - onDoctype(e) {} - onText(e) {} - onBeginElement(e, t, r) {} - onEndElement(e) {} - onError(e) {} - } - { - constructor() { - super(); - this._currentFragment = null; - this._stack = null; - this._errorCode = n - } - parseFromString(e) { - this._currentFragment = []; - this._stack = []; - this._errorCode = n; - this.parseXml(e); - if (this._errorCode !== n) - return; - const [t] = this._currentFragment; - return t ? { - documentElement: t - } : void 0 - } - onResolveEntity(e) { - switch (e) { - case "apos": - return "'" - } - return super.onResolveEntity(e) - } - onText(e) { - if (function isWhitespaceString(e) { - for (let t = 0, r = e.length; t < r; t++) - if (!isWhitespace(e, t)) - return !1; - return !0 - }(e)) - return; - const t = new SimpleDOMNode("#text",e); - this._currentFragment.push(t) - } - onCdata(e) { - const t = new SimpleDOMNode("#text",e); - this._currentFragment.push(t) - } - onBeginElement(e, t, r) { - const n = new SimpleDOMNode(e); - n.childNodes = []; - this._currentFragment.push(n); - if (!r) { - this._stack.push(this._currentFragment); - this._currentFragment = n.childNodes - } - } - onEndElement(e) { - this._currentFragment = this._stack.pop() || []; - const t = this._currentFragment[this._currentFragment.length - 1]; - if (t) - for (let e = 0, r = t.childNodes.length; e < r; e++) - t.childNodes[e].parentNode = t - } - onError(e) { - this._errorCode = e - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.OptionalContentConfig = void 0; - var n = r(2); - class OptionalContentGroup { - constructor(e, t) { - this.visible = !0; - this.name = e; - this.intent = t - } - } - t.OptionalContentConfig = class OptionalContentConfig { - constructor(e) { - this.name = null; - this.creator = null; - this._order = null; - this._groups = new Map; - if (null !== e) { - this.name = e.name; - this.creator = e.creator; - this._order = e.order; - for (const t of e.groups) - this._groups.set(t.id, new OptionalContentGroup(t.name,t.intent)); - if ("OFF" === e.baseState) - for (const e of this._groups) - e.visible = !1; - for (const t of e.on) - this._groups.get(t).visible = !0; - for (const t of e.off) - this._groups.get(t).visible = !1 - } - } - isVisible(e) { - if ("OCG" === e.type) { - if (!this._groups.has(e.id)) { - (0, - n.warn)("Optional content group not found: " + e.id); - return !0 - } - return this._groups.get(e.id).visible - } - if ("OCMD" === e.type) { - e.expression && (0, - n.warn)("Visibility expression not supported yet."); - if (!e.policy || "AnyOn" === e.policy) { - for (const t of e.ids) { - if (!this._groups.has(t)) { - (0, - n.warn)("Optional content group not found: " + t); - return !0 - } - if (this._groups.get(t).visible) - return !0 - } - return !1 - } - if ("AllOn" === e.policy) { - for (const t of e.ids) { - if (!this._groups.has(t)) { - (0, - n.warn)("Optional content group not found: " + t); - return !0 - } - if (!this._groups.get(t).visible) - return !1 - } - return !0 - } - if ("AnyOff" === e.policy) { - for (const t of e.ids) { - if (!this._groups.has(t)) { - (0, - n.warn)("Optional content group not found: " + t); - return !0 - } - if (!this._groups.get(t).visible) - return !0 - } - return !1 - } - if ("AllOff" === e.policy) { - for (const t of e.ids) { - if (!this._groups.has(t)) { - (0, - n.warn)("Optional content group not found: " + t); - return !0 - } - if (this._groups.get(t).visible) - return !1 - } - return !0 - } - (0, - n.warn)(`Unknown optional content policy ${e.policy}.`); - return !0 - } - (0, - n.warn)(`Unknown group type ${e.type}.`); - return !0 - } - setVisibility(e, t=!0) { - this._groups.has(e) ? this._groups.get(e).visible = !!t : (0, - n.warn)("Optional content group not found: " + e) - } - getOrder() { - return this._groups.size ? this._order ? this._order.slice() : Array.from(this._groups.keys()) : null - } - getGroups() { - return this._groups.size ? Object.fromEntries(this._groups) : null - } - getGroup(e) { - return this._groups.get(e) || null - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.PDFDataTransportStream = void 0; - var n = r(2); - t.PDFDataTransportStream = class PDFDataTransportStream { - constructor(e, t) { - (0, - n.assert)(t, 'PDFDataTransportStream - missing required "pdfDataRangeTransport" argument.'); - this._queuedChunks = []; - this._progressiveDone = e.progressiveDone || !1; - const r = e.initialData; - if (r && r.length > 0) { - const e = new Uint8Array(r).buffer; - this._queuedChunks.push(e) - } - this._pdfDataRangeTransport = t; - this._isStreamingSupported = !e.disableStream; - this._isRangeSupported = !e.disableRange; - this._contentLength = e.length; - this._fullRequestReader = null; - this._rangeReaders = []; - this._pdfDataRangeTransport.addRangeListener((e,t)=>{ - this._onReceiveData({ - begin: e, - chunk: t - }) - } - ); - this._pdfDataRangeTransport.addProgressListener((e,t)=>{ - this._onProgress({ - loaded: e, - total: t - }) - } - ); - this._pdfDataRangeTransport.addProgressiveReadListener(e=>{ - this._onReceiveData({ - chunk: e - }) - } - ); - this._pdfDataRangeTransport.addProgressiveDoneListener(()=>{ - this._onProgressiveDone() - } - ); - this._pdfDataRangeTransport.transportReady() - } - _onReceiveData(e) { - const t = new Uint8Array(e.chunk).buffer; - if (void 0 === e.begin) - this._fullRequestReader ? this._fullRequestReader._enqueue(t) : this._queuedChunks.push(t); - else { - const r = this._rangeReaders.some((function(r) { - if (r._begin !== e.begin) - return !1; - r._enqueue(t); - return !0 - } - )); - (0, - n.assert)(r, "_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.") - } - } - get _progressiveDataLength() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0 - } - _onProgress(e) { - if (void 0 === e.total) { - const t = this._rangeReaders[0]; - t && t.onProgress && t.onProgress({ - loaded: e.loaded - }) - } else { - const t = this._fullRequestReader; - t && t.onProgress && t.onProgress({ - loaded: e.loaded, - total: e.total - }) - } - } - _onProgressiveDone() { - this._fullRequestReader && this._fullRequestReader.progressiveDone(); - this._progressiveDone = !0 - } - _removeRangeReader(e) { - const t = this._rangeReaders.indexOf(e); - t >= 0 && this._rangeReaders.splice(t, 1) - } - getFullReader() { - (0, - n.assert)(!this._fullRequestReader, "PDFDataTransportStream.getFullReader can only be called once."); - const e = this._queuedChunks; - this._queuedChunks = null; - return new PDFDataTransportStreamReader(this,e,this._progressiveDone) - } - getRangeReader(e, t) { - if (t <= this._progressiveDataLength) - return null; - const r = new PDFDataTransportStreamRangeReader(this,e,t); - this._pdfDataRangeTransport.requestDataRange(e, t); - this._rangeReaders.push(r); - return r - } - cancelAllRequests(e) { - this._fullRequestReader && this._fullRequestReader.cancel(e); - this._rangeReaders.slice(0).forEach((function(t) { - t.cancel(e) - } - )); - this._pdfDataRangeTransport.abort() - } - } - ; - class PDFDataTransportStreamReader { - constructor(e, t, r=!1) { - this._stream = e; - this._done = r || !1; - this._filename = null; - this._queuedChunks = t || []; - this._loaded = 0; - for (const e of this._queuedChunks) - this._loaded += e.byteLength; - this._requests = []; - this._headersReady = Promise.resolve(); - e._fullRequestReader = this; - this.onProgress = null - } - _enqueue(e) { - if (!this._done) { - if (this._requests.length > 0) { - this._requests.shift().resolve({ - value: e, - done: !1 - }) - } else - this._queuedChunks.push(e); - this._loaded += e.byteLength - } - } - get headersReady() { - return this._headersReady - } - get filename() { - return this._filename - } - get isRangeSupported() { - return this._stream._isRangeSupported - } - get isStreamingSupported() { - return this._stream._isStreamingSupported - } - get contentLength() { - return this._stream._contentLength - } - async read() { - if (this._queuedChunks.length > 0) { - return { - value: this._queuedChunks.shift(), - done: !1 - } - } - if (this._done) - return { - value: void 0, - done: !0 - }; - const e = (0, - n.createPromiseCapability)(); - this._requests.push(e); - return e.promise - } - cancel(e) { - this._done = !0; - this._requests.forEach((function(e) { - e.resolve({ - value: void 0, - done: !0 - }) - } - )); - this._requests = [] - } - progressiveDone() { - this._done || (this._done = !0) - } - } - class PDFDataTransportStreamRangeReader { - constructor(e, t, r) { - this._stream = e; - this._begin = t; - this._end = r; - this._queuedChunk = null; - this._requests = []; - this._done = !1; - this.onProgress = null - } - _enqueue(e) { - if (!this._done) { - if (0 === this._requests.length) - this._queuedChunk = e; - else { - this._requests.shift().resolve({ - value: e, - done: !1 - }); - this._requests.forEach((function(e) { - e.resolve({ - value: void 0, - done: !0 - }) - } - )); - this._requests = [] - } - this._done = !0; - this._stream._removeRangeReader(this) - } - } - get isStreamingSupported() { - return !1 - } - async read() { - if (this._queuedChunk) { - const e = this._queuedChunk; - this._queuedChunk = null; - return { - value: e, - done: !1 - } - } - if (this._done) - return { - value: void 0, - done: !0 - }; - const e = (0, - n.createPromiseCapability)(); - this._requests.push(e); - return e.promise - } - cancel(e) { - this._done = !0; - this._requests.forEach((function(e) { - e.resolve({ - value: void 0, - done: !0 - }) - } - )); - this._requests = []; - this._stream._removeRangeReader(this) - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.WebGLContext = void 0; - var n = r(2); - t.WebGLContext = class WebGLContext { - constructor({enable: e=!1}) { - this._enabled = !0 === e - } - get isEnabled() { - let e = this._enabled; - e && (e = s.tryInitGL()); - return (0, - n.shadow)(this, "isEnabled", e) - } - composeSMask({layer: e, mask: t, properties: r}) { - return s.composeSMask(e, t, r) - } - drawFigures({width: e, height: t, backgroundColor: r, figures: n, context: a}) { - return s.drawFigures(e, t, r, n, a) - } - clear() { - s.cleanup() - } - } - ; - var s = function WebGLUtilsClosure() { - function loadShader(e, t, r) { - var n = e.createShader(r); - e.shaderSource(n, t); - e.compileShader(n); - if (!e.getShaderParameter(n, e.COMPILE_STATUS)) { - var s = e.getShaderInfoLog(n); - throw new Error("Error during shader compilation: " + s) - } - return n - } - function createVertexShader(e, t) { - return loadShader(e, t, e.VERTEX_SHADER) - } - function createFragmentShader(e, t) { - return loadShader(e, t, e.FRAGMENT_SHADER) - } - function createProgram(e, t) { - for (var r = e.createProgram(), n = 0, s = t.length; n < s; ++n) - e.attachShader(r, t[n]); - e.linkProgram(r); - if (!e.getProgramParameter(r, e.LINK_STATUS)) { - var a = e.getProgramInfoLog(r); - throw new Error("Error during program linking: " + a) - } - return r - } - function createTexture(e, t, r) { - e.activeTexture(r); - var n = e.createTexture(); - e.bindTexture(e.TEXTURE_2D, n); - e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_S, e.CLAMP_TO_EDGE); - e.texParameteri(e.TEXTURE_2D, e.TEXTURE_WRAP_T, e.CLAMP_TO_EDGE); - e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MIN_FILTER, e.NEAREST); - e.texParameteri(e.TEXTURE_2D, e.TEXTURE_MAG_FILTER, e.NEAREST); - e.texImage2D(e.TEXTURE_2D, 0, e.RGBA, e.RGBA, e.UNSIGNED_BYTE, t); - return n - } - var e, t; - function generateGL() { - if (!e) { - t = document.createElement("canvas"); - e = t.getContext("webgl", { - premultipliedalpha: !1 - }) - } - } - var r = null; - var n = null; - return { - tryInitGL() { - try { - generateGL(); - return !!e - } catch (e) {} - return !1 - }, - composeSMask: function composeSMask(n, s, a) { - var i = n.width - , o = n.height; - r || function initSmaskGL() { - var n, s; - generateGL(); - n = t; - t = null; - s = e; - e = null; - var a = createProgram(s, [createVertexShader(s, " attribute vec2 a_position; attribute vec2 a_texCoord; uniform vec2 u_resolution; varying vec2 v_texCoord; void main() { vec2 clipSpace = (a_position / u_resolution) * 2.0 - 1.0; gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); v_texCoord = a_texCoord; } "), createFragmentShader(s, " precision mediump float; uniform vec4 u_backdrop; uniform int u_subtype; uniform sampler2D u_image; uniform sampler2D u_mask; varying vec2 v_texCoord; void main() { vec4 imageColor = texture2D(u_image, v_texCoord); vec4 maskColor = texture2D(u_mask, v_texCoord); if (u_backdrop.a > 0.0) { maskColor.rgb = maskColor.rgb * maskColor.a + u_backdrop.rgb * (1.0 - maskColor.a); } float lum; if (u_subtype == 0) { lum = maskColor.a; } else { lum = maskColor.r * 0.3 + maskColor.g * 0.59 + maskColor.b * 0.11; } imageColor.a *= lum; imageColor.rgb *= imageColor.a; gl_FragColor = imageColor; } ")]); - s.useProgram(a); - var i = {}; - i.gl = s; - i.canvas = n; - i.resolutionLocation = s.getUniformLocation(a, "u_resolution"); - i.positionLocation = s.getAttribLocation(a, "a_position"); - i.backdropLocation = s.getUniformLocation(a, "u_backdrop"); - i.subtypeLocation = s.getUniformLocation(a, "u_subtype"); - var o = s.getAttribLocation(a, "a_texCoord") - , l = s.getUniformLocation(a, "u_image") - , c = s.getUniformLocation(a, "u_mask") - , h = s.createBuffer(); - s.bindBuffer(s.ARRAY_BUFFER, h); - s.bufferData(s.ARRAY_BUFFER, new Float32Array([0, 0, 1, 0, 0, 1, 0, 1, 1, 0, 1, 1]), s.STATIC_DRAW); - s.enableVertexAttribArray(o); - s.vertexAttribPointer(o, 2, s.FLOAT, !1, 0, 0); - s.uniform1i(l, 0); - s.uniform1i(c, 1); - r = i - }(); - var l = r - , c = l.canvas - , h = l.gl; - c.width = i; - c.height = o; - h.viewport(0, 0, h.drawingBufferWidth, h.drawingBufferHeight); - h.uniform2f(l.resolutionLocation, i, o); - a.backdrop ? h.uniform4f(l.resolutionLocation, a.backdrop[0], a.backdrop[1], a.backdrop[2], 1) : h.uniform4f(l.resolutionLocation, 0, 0, 0, 0); - h.uniform1i(l.subtypeLocation, "Luminosity" === a.subtype ? 1 : 0); - var d = createTexture(h, n, h.TEXTURE0) - , u = createTexture(h, s, h.TEXTURE1) - , p = h.createBuffer(); - h.bindBuffer(h.ARRAY_BUFFER, p); - h.bufferData(h.ARRAY_BUFFER, new Float32Array([0, 0, i, 0, 0, o, 0, o, i, 0, i, o]), h.STATIC_DRAW); - h.enableVertexAttribArray(l.positionLocation); - h.vertexAttribPointer(l.positionLocation, 2, h.FLOAT, !1, 0, 0); - h.clearColor(0, 0, 0, 0); - h.enable(h.BLEND); - h.blendFunc(h.ONE, h.ONE_MINUS_SRC_ALPHA); - h.clear(h.COLOR_BUFFER_BIT); - h.drawArrays(h.TRIANGLES, 0, 6); - h.flush(); - h.deleteTexture(d); - h.deleteTexture(u); - h.deleteBuffer(p); - return c - }, - drawFigures: function drawFigures(r, s, a, i, o) { - n || function initFiguresGL() { - var r, s; - generateGL(); - r = t; - t = null; - s = e; - e = null; - var a = createProgram(s, [createVertexShader(s, " attribute vec2 a_position; attribute vec3 a_color; uniform vec2 u_resolution; uniform vec2 u_scale; uniform vec2 u_offset; varying vec4 v_color; void main() { vec2 position = (a_position + u_offset) * u_scale; vec2 clipSpace = (position / u_resolution) * 2.0 - 1.0; gl_Position = vec4(clipSpace * vec2(1, -1), 0, 1); v_color = vec4(a_color / 255.0, 1.0); } "), createFragmentShader(s, " precision mediump float; varying vec4 v_color; void main() { gl_FragColor = v_color; } ")]); - s.useProgram(a); - var i = {}; - i.gl = s; - i.canvas = r; - i.resolutionLocation = s.getUniformLocation(a, "u_resolution"); - i.scaleLocation = s.getUniformLocation(a, "u_scale"); - i.offsetLocation = s.getUniformLocation(a, "u_offset"); - i.positionLocation = s.getAttribLocation(a, "a_position"); - i.colorLocation = s.getAttribLocation(a, "a_color"); - n = i - }(); - var l = n - , c = l.canvas - , h = l.gl; - c.width = r; - c.height = s; - h.viewport(0, 0, h.drawingBufferWidth, h.drawingBufferHeight); - h.uniform2f(l.resolutionLocation, r, s); - var d, u, p, f = 0; - for (d = 0, - u = i.length; d < u; d++) - switch (i[d].type) { - case "lattice": - f += ((p = i[d].coords.length / i[d].verticesPerRow | 0) - 1) * (i[d].verticesPerRow - 1) * 6; - break; - case "triangles": - f += i[d].coords.length - } - var g = new Float32Array(2 * f) - , m = new Uint8Array(3 * f) - , _ = o.coords - , A = o.colors - , b = 0 - , y = 0; - for (d = 0, - u = i.length; d < u; d++) { - var v = i[d] - , C = v.coords - , S = v.colors; - switch (v.type) { - case "lattice": - var x = v.verticesPerRow; - p = C.length / x | 0; - for (var P = 1; P < p; P++) - for (var k = P * x + 1, R = 1; R < x; R++, - k++) { - g[b] = _[C[k - x - 1]]; - g[b + 1] = _[C[k - x - 1] + 1]; - g[b + 2] = _[C[k - x]]; - g[b + 3] = _[C[k - x] + 1]; - g[b + 4] = _[C[k - 1]]; - g[b + 5] = _[C[k - 1] + 1]; - m[y] = A[S[k - x - 1]]; - m[y + 1] = A[S[k - x - 1] + 1]; - m[y + 2] = A[S[k - x - 1] + 2]; - m[y + 3] = A[S[k - x]]; - m[y + 4] = A[S[k - x] + 1]; - m[y + 5] = A[S[k - x] + 2]; - m[y + 6] = A[S[k - 1]]; - m[y + 7] = A[S[k - 1] + 1]; - m[y + 8] = A[S[k - 1] + 2]; - g[b + 6] = g[b + 2]; - g[b + 7] = g[b + 3]; - g[b + 8] = g[b + 4]; - g[b + 9] = g[b + 5]; - g[b + 10] = _[C[k]]; - g[b + 11] = _[C[k] + 1]; - m[y + 9] = m[y + 3]; - m[y + 10] = m[y + 4]; - m[y + 11] = m[y + 5]; - m[y + 12] = m[y + 6]; - m[y + 13] = m[y + 7]; - m[y + 14] = m[y + 8]; - m[y + 15] = A[S[k]]; - m[y + 16] = A[S[k] + 1]; - m[y + 17] = A[S[k] + 2]; - b += 12; - y += 18 - } - break; - case "triangles": - for (var w = 0, T = C.length; w < T; w++) { - g[b] = _[C[w]]; - g[b + 1] = _[C[w] + 1]; - m[y] = A[S[w]]; - m[y + 1] = A[S[w] + 1]; - m[y + 2] = A[S[w] + 2]; - b += 2; - y += 3 - } - } - } - a ? h.clearColor(a[0] / 255, a[1] / 255, a[2] / 255, 1) : h.clearColor(0, 0, 0, 0); - h.clear(h.COLOR_BUFFER_BIT); - var E = h.createBuffer(); - h.bindBuffer(h.ARRAY_BUFFER, E); - h.bufferData(h.ARRAY_BUFFER, g, h.STATIC_DRAW); - h.enableVertexAttribArray(l.positionLocation); - h.vertexAttribPointer(l.positionLocation, 2, h.FLOAT, !1, 0, 0); - var F = h.createBuffer(); - h.bindBuffer(h.ARRAY_BUFFER, F); - h.bufferData(h.ARRAY_BUFFER, m, h.STATIC_DRAW); - h.enableVertexAttribArray(l.colorLocation); - h.vertexAttribPointer(l.colorLocation, 3, h.UNSIGNED_BYTE, !1, 0, 0); - h.uniform2f(l.scaleLocation, o.scaleX, o.scaleY); - h.uniform2f(l.offsetLocation, o.offsetX, o.offsetY); - h.drawArrays(h.TRIANGLES, 0, f); - h.flush(); - h.deleteBuffer(E); - h.deleteBuffer(F); - return c - }, - cleanup() { - if (r && r.canvas) { - r.canvas.width = 0; - r.canvas.height = 0 - } - if (n && n.canvas) { - n.canvas.width = 0; - n.canvas.height = 0 - } - r = null; - n = null - } - } - }() - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.AnnotationLayer = void 0; - var n = r(1) - , s = r(2) - , a = r(8); - class AnnotationElementFactory { - static create(e) { - switch (e.data.annotationType) { - case s.AnnotationType.LINK: - return new LinkAnnotationElement(e); - case s.AnnotationType.TEXT: - return new TextAnnotationElement(e); - case s.AnnotationType.WIDGET: - switch (e.data.fieldType) { - case "Tx": - return new TextWidgetAnnotationElement(e); - case "Btn": - return e.data.radioButton ? new RadioButtonWidgetAnnotationElement(e) : e.data.checkBox ? new CheckboxWidgetAnnotationElement(e) : new PushButtonWidgetAnnotationElement(e); - case "Ch": - return new ChoiceWidgetAnnotationElement(e) - } - return new WidgetAnnotationElement(e); - case s.AnnotationType.POPUP: - return new PopupAnnotationElement(e); - case s.AnnotationType.FREETEXT: - return new FreeTextAnnotationElement(e); - case s.AnnotationType.LINE: - return new LineAnnotationElement(e); - case s.AnnotationType.SQUARE: - return new SquareAnnotationElement(e); - case s.AnnotationType.CIRCLE: - return new CircleAnnotationElement(e); - case s.AnnotationType.POLYLINE: - return new PolylineAnnotationElement(e); - case s.AnnotationType.CARET: - return new CaretAnnotationElement(e); - case s.AnnotationType.INK: - return new InkAnnotationElement(e); - case s.AnnotationType.POLYGON: - return new PolygonAnnotationElement(e); - case s.AnnotationType.HIGHLIGHT: - return new HighlightAnnotationElement(e); - case s.AnnotationType.UNDERLINE: - return new UnderlineAnnotationElement(e); - case s.AnnotationType.SQUIGGLY: - return new SquigglyAnnotationElement(e); - case s.AnnotationType.STRIKEOUT: - return new StrikeOutAnnotationElement(e); - case s.AnnotationType.STAMP: - return new StampAnnotationElement(e); - case s.AnnotationType.FILEATTACHMENT: - return new FileAttachmentAnnotationElement(e); - default: - return new AnnotationElement(e) - } - } - } - class AnnotationElement { - constructor(e, t=!1, r=!1) { - this.isRenderable = t; - this.data = e.data; - this.layer = e.layer; - this.page = e.page; - this.viewport = e.viewport; - this.linkService = e.linkService; - this.downloadManager = e.downloadManager; - this.imageResourcesPath = e.imageResourcesPath; - this.renderInteractiveForms = e.renderInteractiveForms; - this.svgFactory = e.svgFactory; - this.annotationStorage = e.annotationStorage; - t && (this.container = this._createContainer(r)) - } - _createContainer(e=!1) { - const t = this.data - , r = this.page - , n = this.viewport - , a = document.createElement("section"); - let i = t.rect[2] - t.rect[0] - , o = t.rect[3] - t.rect[1]; - a.setAttribute("data-annotation-id", t.id); - const l = s.Util.normalizeRect([t.rect[0], r.view[3] - t.rect[1] + r.view[1], t.rect[2], r.view[3] - t.rect[3] + r.view[1]]); - a.style.transform = `matrix(${n.transform.join(",")})`; - a.style.transformOrigin = `-${l[0]}px -${l[1]}px`; - if (!e && t.borderStyle.width > 0) { - a.style.borderWidth = t.borderStyle.width + "px"; - if (t.borderStyle.style !== s.AnnotationBorderStyleType.UNDERLINE) { - i -= 2 * t.borderStyle.width; - o -= 2 * t.borderStyle.width - } - const e = t.borderStyle.horizontalCornerRadius - , r = t.borderStyle.verticalCornerRadius; - if (e > 0 || r > 0) { - const t = `${e}px / ${r}px`; - a.style.borderRadius = t - } - switch (t.borderStyle.style) { - case s.AnnotationBorderStyleType.SOLID: - a.style.borderStyle = "solid"; - break; - case s.AnnotationBorderStyleType.DASHED: - a.style.borderStyle = "dashed"; - break; - case s.AnnotationBorderStyleType.BEVELED: - (0, - s.warn)("Unimplemented border style: beveled"); - break; - case s.AnnotationBorderStyleType.INSET: - (0, - s.warn)("Unimplemented border style: inset"); - break; - case s.AnnotationBorderStyleType.UNDERLINE: - a.style.borderBottomStyle = "solid" - } - t.color ? a.style.borderColor = s.Util.makeCssRgb(0 | t.color[0], 0 | t.color[1], 0 | t.color[2]) : a.style.borderWidth = 0 - } - a.style.left = l[0] + "px"; - a.style.top = l[1] + "px"; - a.style.width = i + "px"; - a.style.height = o + "px"; - return a - } - _createPopup(e, t, r) { - if (!t) { - (t = document.createElement("div")).style.height = e.style.height; - t.style.width = e.style.width; - e.appendChild(t) - } - const n = new PopupElement({ - container: e, - trigger: t, - color: r.color, - title: r.title, - modificationDate: r.modificationDate, - contents: r.contents, - hideWrapper: !0 - }).render(); - n.style.left = e.style.width; - e.appendChild(n) - } - render() { - (0, - s.unreachable)("Abstract method `AnnotationElement.render` called") - } - } - class LinkAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.url || e.data.dest || e.data.action)) - } - render() { - this.container.className = "linkAnnotation"; - const {data: e, linkService: t} = this - , r = document.createElement("a"); - e.url ? (0, - n.addLinkAttributes)(r, { - url: e.url, - target: e.newWindow ? n.LinkTarget.BLANK : t.externalLinkTarget, - rel: t.externalLinkRel, - enabled: t.externalLinkEnabled - }) : e.action ? this._bindNamedAction(r, e.action) : this._bindLink(r, e.dest); - this.container.appendChild(r); - return this.container - } - _bindLink(e, t) { - e.href = this.linkService.getDestinationHash(t); - e.onclick = ()=>{ - t && this.linkService.navigateTo(t); - return !1 - } - ; - t && (e.className = "internalLink") - } - _bindNamedAction(e, t) { - e.href = this.linkService.getAnchorUrl(""); - e.onclick = ()=>{ - this.linkService.executeNamedAction(t); - return !1 - } - ; - e.className = "internalLink" - } - } - class TextAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents)) - } - render() { - this.container.className = "textAnnotation"; - const e = document.createElement("img"); - e.style.height = this.container.style.height; - e.style.width = this.container.style.width; - e.src = this.imageResourcesPath + "annotation-" + this.data.name.toLowerCase() + ".svg"; - e.alt = "[{{type}} Annotation]"; - e.dataset.l10nId = "text_annotation_type"; - e.dataset.l10nArgs = JSON.stringify({ - type: this.data.name - }); - this.data.hasPopup || this._createPopup(this.container, e, this.data); - this.container.appendChild(e); - return this.container - } - } - class WidgetAnnotationElement extends AnnotationElement { - render() { - return this.container - } - } - class TextWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(e) { - super(e, e.renderInteractiveForms || !e.data.hasAppearance && !!e.data.fieldValue) - } - render() { - const e = ["left", "center", "right"] - , t = this.annotationStorage - , r = this.data.id; - this.container.className = "textWidgetAnnotation"; - let n = null; - if (this.renderInteractiveForms) { - const e = t.getOrCreateValue(r, this.data.fieldValue); - if (this.data.multiLine) { - n = document.createElement("textarea"); - n.textContent = e - } else { - n = document.createElement("input"); - n.type = "text"; - n.setAttribute("value", e) - } - n.addEventListener("input", (function(e) { - t.setValue(r, e.target.value) - } - )); - n.disabled = this.data.readOnly; - n.name = this.data.fieldName; - null !== this.data.maxLen && (n.maxLength = this.data.maxLen); - if (this.data.comb) { - const e = (this.data.rect[2] - this.data.rect[0]) / this.data.maxLen; - n.classList.add("comb"); - n.style.letterSpacing = `calc(${e}px - 1ch)` - } - } else { - n = document.createElement("div"); - n.textContent = this.data.fieldValue; - n.style.verticalAlign = "middle"; - n.style.display = "table-cell"; - let e = null; - this.data.fontRefName && this.page.commonObjs.has(this.data.fontRefName) && (e = this.page.commonObjs.get(this.data.fontRefName)); - this._setTextStyle(n, e) - } - null !== this.data.textAlignment && (n.style.textAlign = e[this.data.textAlignment]); - this.container.appendChild(n); - return this.container - } - _setTextStyle(e, t) { - const r = e.style; - r.fontSize = this.data.fontSize + "px"; - r.direction = this.data.fontDirection < 0 ? "rtl" : "ltr"; - if (!t) - return; - let n = "normal"; - t.black ? n = "900" : t.bold && (n = "bold"); - r.fontWeight = n; - r.fontStyle = t.italic ? "italic" : "normal"; - const s = t.loadedName ? `"${t.loadedName}", ` : "" - , a = t.fallbackName || "Helvetica, sans-serif"; - r.fontFamily = s + a - } - } - class CheckboxWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(e) { - super(e, e.renderInteractiveForms) - } - render() { - const e = this.annotationStorage - , t = this.data - , r = t.id - , n = e.getOrCreateValue(r, t.fieldValue && "Off" !== t.fieldValue); - this.container.className = "buttonWidgetAnnotation checkBox"; - const s = document.createElement("input"); - s.disabled = t.readOnly; - s.type = "checkbox"; - s.name = this.data.fieldName; - n && s.setAttribute("checked", !0); - s.addEventListener("change", (function(t) { - e.setValue(r, t.target.checked) - } - )); - this.container.appendChild(s); - return this.container - } - } - class RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(e) { - super(e, e.renderInteractiveForms) - } - render() { - this.container.className = "buttonWidgetAnnotation radioButton"; - const e = this.annotationStorage - , t = this.data - , r = t.id - , n = e.getOrCreateValue(r, t.fieldValue === t.buttonValue) - , s = document.createElement("input"); - s.disabled = t.readOnly; - s.type = "radio"; - s.name = t.fieldName; - n && s.setAttribute("checked", !0); - s.addEventListener("change", (function(t) { - const n = t.target.name; - for (const r of document.getElementsByName(n)) - r !== t.target && e.setValue(r.parentNode.getAttribute("data-annotation-id"), !1); - e.setValue(r, t.target.checked) - } - )); - this.container.appendChild(s); - return this.container - } - } - class PushButtonWidgetAnnotationElement extends LinkAnnotationElement { - render() { - const e = super.render(); - e.className = "buttonWidgetAnnotation pushButton"; - return e - } - } - class ChoiceWidgetAnnotationElement extends WidgetAnnotationElement { - constructor(e) { - super(e, e.renderInteractiveForms) - } - render() { - this.container.className = "choiceWidgetAnnotation"; - const e = this.annotationStorage - , t = this.data.id; - e.getOrCreateValue(t, this.data.fieldValue.length > 0 ? this.data.fieldValue[0] : null); - const r = document.createElement("select"); - r.disabled = this.data.readOnly; - r.name = this.data.fieldName; - if (!this.data.combo) { - r.size = this.data.options.length; - this.data.multiSelect && (r.multiple = !0) - } - for (const e of this.data.options) { - const t = document.createElement("option"); - t.textContent = e.displayValue; - t.value = e.exportValue; - this.data.fieldValue.includes(e.exportValue) && t.setAttribute("selected", !0); - r.appendChild(t) - } - r.addEventListener("input", (function(r) { - const n = r.target.options - , s = n[n.selectedIndex].value; - e.setValue(t, s) - } - )); - this.container.appendChild(r); - return this.container - } - } - class PopupAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !(!e.data.title && !e.data.contents)) - } - render() { - this.container.className = "popupAnnotation"; - if (["Line", "Square", "Circle", "PolyLine", "Polygon", "Ink"].includes(this.data.parentType)) - return this.container; - const e = `[data-annotation-id="${this.data.parentId}"]` - , t = this.layer.querySelector(e); - if (!t) - return this.container; - const r = new PopupElement({ - container: this.container, - trigger: t, - color: this.data.color, - title: this.data.title, - modificationDate: this.data.modificationDate, - contents: this.data.contents - }) - , n = parseFloat(t.style.left) - , s = parseFloat(t.style.width); - this.container.style.transformOrigin = `-${n + s}px -${t.style.top}`; - this.container.style.left = n + s + "px"; - this.container.appendChild(r.render()); - return this.container - } - } - class PopupElement { - constructor(e) { - this.container = e.container; - this.trigger = e.trigger; - this.color = e.color; - this.title = e.title; - this.modificationDate = e.modificationDate; - this.contents = e.contents; - this.hideWrapper = e.hideWrapper || !1; - this.pinned = !1 - } - render() { - const e = document.createElement("div"); - e.className = "popupWrapper"; - this.hideElement = this.hideWrapper ? e : this.container; - this.hideElement.setAttribute("hidden", !0); - const t = document.createElement("div"); - t.className = "popup"; - const r = this.color; - if (r) { - const e = .7 * (255 - r[0]) + r[0] - , n = .7 * (255 - r[1]) + r[1] - , a = .7 * (255 - r[2]) + r[2]; - t.style.backgroundColor = s.Util.makeCssRgb(0 | e, 0 | n, 0 | a) - } - const a = document.createElement("h1"); - a.textContent = this.title; - t.appendChild(a); - const i = n.PDFDateString.toDateObject(this.modificationDate); - if (i) { - const e = document.createElement("span"); - e.textContent = "{{date}}, {{time}}"; - e.dataset.l10nId = "annotation_date_string"; - e.dataset.l10nArgs = JSON.stringify({ - date: i.toLocaleDateString(), - time: i.toLocaleTimeString() - }); - t.appendChild(e) - } - const o = this._formatContents(this.contents); - t.appendChild(o); - this.trigger.addEventListener("click", this._toggle.bind(this)); - this.trigger.addEventListener("mouseover", this._show.bind(this, !1)); - this.trigger.addEventListener("mouseout", this._hide.bind(this, !1)); - t.addEventListener("click", this._hide.bind(this, !0)); - e.appendChild(t); - return e - } - _formatContents(e) { - const t = document.createElement("p") - , r = e.split(/(?:\r\n?|\n)/); - for (let e = 0, n = r.length; e < n; ++e) { - const s = r[e]; - t.appendChild(document.createTextNode(s)); - e < n - 1 && t.appendChild(document.createElement("br")) - } - return t - } - _toggle() { - this.pinned ? this._hide(!0) : this._show(!0) - } - _show(e=!1) { - e && (this.pinned = !0); - if (this.hideElement.hasAttribute("hidden")) { - this.hideElement.removeAttribute("hidden"); - this.container.style.zIndex += 1 - } - } - _hide(e=!0) { - e && (this.pinned = !1); - if (!this.hideElement.hasAttribute("hidden") && !this.pinned) { - this.hideElement.setAttribute("hidden", !0); - this.container.style.zIndex -= 1 - } - } - } - class FreeTextAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "freeTextAnnotation"; - this.data.hasPopup || this._createPopup(this.container, null, this.data); - return this.container - } - } - class LineAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "lineAnnotation"; - const e = this.data - , t = e.rect[2] - e.rect[0] - , r = e.rect[3] - e.rect[1] - , n = this.svgFactory.create(t, r) - , s = this.svgFactory.createElement("svg:line"); - s.setAttribute("x1", e.rect[2] - e.lineCoordinates[0]); - s.setAttribute("y1", e.rect[3] - e.lineCoordinates[1]); - s.setAttribute("x2", e.rect[2] - e.lineCoordinates[2]); - s.setAttribute("y2", e.rect[3] - e.lineCoordinates[3]); - s.setAttribute("stroke-width", e.borderStyle.width || 1); - s.setAttribute("stroke", "transparent"); - n.appendChild(s); - this.container.append(n); - this._createPopup(this.container, s, e); - return this.container - } - } - class SquareAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "squareAnnotation"; - const e = this.data - , t = e.rect[2] - e.rect[0] - , r = e.rect[3] - e.rect[1] - , n = this.svgFactory.create(t, r) - , s = e.borderStyle.width - , a = this.svgFactory.createElement("svg:rect"); - a.setAttribute("x", s / 2); - a.setAttribute("y", s / 2); - a.setAttribute("width", t - s); - a.setAttribute("height", r - s); - a.setAttribute("stroke-width", s || 1); - a.setAttribute("stroke", "transparent"); - a.setAttribute("fill", "none"); - n.appendChild(a); - this.container.append(n); - this._createPopup(this.container, a, e); - return this.container - } - } - class CircleAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "circleAnnotation"; - const e = this.data - , t = e.rect[2] - e.rect[0] - , r = e.rect[3] - e.rect[1] - , n = this.svgFactory.create(t, r) - , s = e.borderStyle.width - , a = this.svgFactory.createElement("svg:ellipse"); - a.setAttribute("cx", t / 2); - a.setAttribute("cy", r / 2); - a.setAttribute("rx", t / 2 - s / 2); - a.setAttribute("ry", r / 2 - s / 2); - a.setAttribute("stroke-width", s || 1); - a.setAttribute("stroke", "transparent"); - a.setAttribute("fill", "none"); - n.appendChild(a); - this.container.append(n); - this._createPopup(this.container, a, e); - return this.container - } - } - class PolylineAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0); - this.containerClassName = "polylineAnnotation"; - this.svgElementName = "svg:polyline" - } - render() { - this.container.className = this.containerClassName; - const e = this.data - , t = e.rect[2] - e.rect[0] - , r = e.rect[3] - e.rect[1] - , n = this.svgFactory.create(t, r); - let s = []; - for (const t of e.vertices) { - const r = t.x - e.rect[0] - , n = e.rect[3] - t.y; - s.push(r + "," + n) - } - s = s.join(" "); - const a = this.svgFactory.createElement(this.svgElementName); - a.setAttribute("points", s); - a.setAttribute("stroke-width", e.borderStyle.width || 1); - a.setAttribute("stroke", "transparent"); - a.setAttribute("fill", "none"); - n.appendChild(a); - this.container.append(n); - this._createPopup(this.container, a, e); - return this.container - } - } - class PolygonAnnotationElement extends PolylineAnnotationElement { - constructor(e) { - super(e); - this.containerClassName = "polygonAnnotation"; - this.svgElementName = "svg:polygon" - } - } - class CaretAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "caretAnnotation"; - this.data.hasPopup || this._createPopup(this.container, null, this.data); - return this.container - } - } - class InkAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0); - this.containerClassName = "inkAnnotation"; - this.svgElementName = "svg:polyline" - } - render() { - this.container.className = this.containerClassName; - const e = this.data - , t = e.rect[2] - e.rect[0] - , r = e.rect[3] - e.rect[1] - , n = this.svgFactory.create(t, r); - for (const t of e.inkLists) { - let r = []; - for (const n of t) { - const t = n.x - e.rect[0] - , s = e.rect[3] - n.y; - r.push(`${t},${s}`) - } - r = r.join(" "); - const s = this.svgFactory.createElement(this.svgElementName); - s.setAttribute("points", r); - s.setAttribute("stroke-width", e.borderStyle.width || 1); - s.setAttribute("stroke", "transparent"); - s.setAttribute("fill", "none"); - this._createPopup(this.container, s, e); - n.appendChild(s) - } - this.container.append(n); - return this.container - } - } - class HighlightAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "highlightAnnotation"; - this.data.hasPopup || this._createPopup(this.container, null, this.data); - return this.container - } - } - class UnderlineAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "underlineAnnotation"; - this.data.hasPopup || this._createPopup(this.container, null, this.data); - return this.container - } - } - class SquigglyAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "squigglyAnnotation"; - this.data.hasPopup || this._createPopup(this.container, null, this.data); - return this.container - } - } - class StrikeOutAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "strikeoutAnnotation"; - this.data.hasPopup || this._createPopup(this.container, null, this.data); - return this.container - } - } - class StampAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !!(e.data.hasPopup || e.data.title || e.data.contents), !0) - } - render() { - this.container.className = "stampAnnotation"; - this.data.hasPopup || this._createPopup(this.container, null, this.data); - return this.container - } - } - class FileAttachmentAnnotationElement extends AnnotationElement { - constructor(e) { - super(e, !0); - const {filename: t, content: r} = this.data.file; - this.filename = (0, - n.getFilenameFromUrl)(t); - this.content = r; - this.linkService.eventBus && this.linkService.eventBus.dispatch("fileattachmentannotation", { - source: this, - id: (0, - s.stringToPDFString)(t), - filename: t, - content: r - }) - } - render() { - this.container.className = "fileAttachmentAnnotation"; - const e = document.createElement("div"); - e.style.height = this.container.style.height; - e.style.width = this.container.style.width; - e.addEventListener("dblclick", this._download.bind(this)); - this.data.hasPopup || !this.data.title && !this.data.contents || this._createPopup(this.container, e, this.data); - this.container.appendChild(e); - return this.container - } - _download() { - this.downloadManager ? this.downloadManager.downloadData(this.content, this.filename, "") : (0, - s.warn)("Download cannot be started due to unavailable download manager") - } - } - t.AnnotationLayer = class AnnotationLayer { - static render(e) { - const t = [] - , r = []; - for (const n of e.annotations) - n && (n.annotationType !== s.AnnotationType.POPUP ? t.push(n) : r.push(n)); - r.length && t.push(...r); - for (const r of t) { - const t = AnnotationElementFactory.create({ - data: r, - layer: e.div, - page: e.page, - viewport: e.viewport, - linkService: e.linkService, - downloadManager: e.downloadManager, - imageResourcesPath: e.imageResourcesPath || "", - renderInteractiveForms: "boolean" != typeof e.renderInteractiveForms || e.renderInteractiveForms, - svgFactory: new n.DOMSVGFactory, - annotationStorage: e.annotationStorage || new a.AnnotationStorage - }); - t.isRenderable && e.div.appendChild(t.render()) - } - } - static update(e) { - for (const t of e.annotations) { - const r = e.div.querySelector(`[data-annotation-id="${t.id}"]`); - r && (r.style.transform = `matrix(${e.viewport.transform.join(",")})`) - } - e.div.removeAttribute("hidden") - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.renderTextLayer = void 0; - var n = r(2) - , s = function renderTextLayerClosure() { - var e = /\S/; - function appendText(t, r, s) { - var a = document.createElement("span") - , i = { - angle: 0, - canvasWidth: 0, - isWhitespace: !1, - originalTransform: null, - paddingBottom: 0, - paddingLeft: 0, - paddingRight: 0, - paddingTop: 0, - scale: 1 - }; - t._textDivs.push(a); - if (function isAllWhitespace(t) { - return !e.test(t) - }(r.str)) { - i.isWhitespace = !0; - t._textDivProperties.set(a, i); - return - } - var o = n.Util.transform(t._viewport.transform, r.transform) - , l = Math.atan2(o[1], o[0]) - , c = s[r.fontName]; - c.vertical && (l += Math.PI / 2); - var h = Math.sqrt(o[2] * o[2] + o[3] * o[3]) - , d = h; - c.ascent ? d = c.ascent * d : c.descent && (d = (1 + c.descent) * d); - let u, p; - if (0 === l) { - u = o[4]; - p = o[5] - d - } else { - u = o[4] + d * Math.sin(l); - p = o[5] - d * Math.cos(l) - } - a.style.left = u + "px"; - a.style.top = p + "px"; - a.style.fontSize = h + "px"; - a.style.fontFamily = c.fontFamily; - a.textContent = r.str; - t._fontInspectorEnabled && (a.dataset.fontName = r.fontName); - 0 !== l && (i.angle = l * (180 / Math.PI)); - let f = !1; - if (r.str.length > 1) - f = !0; - else if (r.transform[0] !== r.transform[3]) { - const e = Math.abs(r.transform[0]) - , t = Math.abs(r.transform[3]); - e !== t && Math.max(e, t) / Math.min(e, t) > 1.5 && (f = !0) - } - f && (c.vertical ? i.canvasWidth = r.height * t._viewport.scale : i.canvasWidth = r.width * t._viewport.scale); - t._textDivProperties.set(a, i); - t._textContentStream && t._layoutText(a); - if (t._enhanceTextSelection) { - var g = 1 - , m = 0; - if (0 !== l) { - g = Math.cos(l); - m = Math.sin(l) - } - var _, A, b = (c.vertical ? r.height : r.width) * t._viewport.scale, y = h; - if (0 !== l) { - _ = [g, m, -m, g, u, p]; - A = n.Util.getAxialAlignedBoundingBox([0, 0, b, y], _) - } else - A = [u, p, u + b, p + y]; - t._bounds.push({ - left: A[0], - top: A[1], - right: A[2], - bottom: A[3], - div: a, - size: [b, y], - m: _ - }) - } - } - function render(e) { - if (!e._canceled) { - var t = e._textDivs - , r = e._capability - , n = t.length; - if (n > 1e5) { - e._renderingDone = !0; - r.resolve() - } else { - if (!e._textContentStream) - for (var s = 0; s < n; s++) - e._layoutText(t[s]); - e._renderingDone = !0; - r.resolve() - } - } - } - function findPositiveMin(e, t, r) { - let n = 0; - for (let s = 0; s < r; s++) { - const r = e[t++]; - r > 0 && (n = n ? Math.min(r, n) : r) - } - return n - } - function expand(e) { - for (var t = e._bounds, r = e._viewport, s = function expandBounds(e, t, r) { - var n = r.map((function(e, t) { - return { - x1: e.left, - y1: e.top, - x2: e.right, - y2: e.bottom, - index: t, - x1New: void 0, - x2New: void 0 - } - } - )); - expandBoundsLTR(e, n); - var s = new Array(r.length); - n.forEach((function(e) { - var t = e.index; - s[t] = { - left: e.x1New, - top: 0, - right: e.x2New, - bottom: 0 - } - } - )); - r.map((function(t, r) { - var a = s[r] - , i = n[r]; - i.x1 = t.top; - i.y1 = e - a.right; - i.x2 = t.bottom; - i.y2 = e - a.left; - i.index = r; - i.x1New = void 0; - i.x2New = void 0 - } - )); - expandBoundsLTR(t, n); - n.forEach((function(e) { - var t = e.index; - s[t].top = e.x1New; - s[t].bottom = e.x2New - } - )); - return s - }(r.width, r.height, t), a = 0; a < s.length; a++) { - var i = t[a].div - , o = e._textDivProperties.get(i); - if (0 !== o.angle) { - var l = s[a] - , c = t[a] - , h = c.m - , d = h[0] - , u = h[1] - , p = [[0, 0], [0, c.size[1]], [c.size[0], 0], c.size] - , f = new Float64Array(64); - p.forEach((function(e, t) { - var r = n.Util.applyTransform(e, h); - f[t + 0] = d && (l.left - r[0]) / d; - f[t + 4] = u && (l.top - r[1]) / u; - f[t + 8] = d && (l.right - r[0]) / d; - f[t + 12] = u && (l.bottom - r[1]) / u; - f[t + 16] = u && (l.left - r[0]) / -u; - f[t + 20] = d && (l.top - r[1]) / d; - f[t + 24] = u && (l.right - r[0]) / -u; - f[t + 28] = d && (l.bottom - r[1]) / d; - f[t + 32] = d && (l.left - r[0]) / -d; - f[t + 36] = u && (l.top - r[1]) / -u; - f[t + 40] = d && (l.right - r[0]) / -d; - f[t + 44] = u && (l.bottom - r[1]) / -u; - f[t + 48] = u && (l.left - r[0]) / u; - f[t + 52] = d && (l.top - r[1]) / -d; - f[t + 56] = u && (l.right - r[0]) / u; - f[t + 60] = d && (l.bottom - r[1]) / -d - } - )); - var g = 1 + Math.min(Math.abs(d), Math.abs(u)); - o.paddingLeft = findPositiveMin(f, 32, 16) / g; - o.paddingTop = findPositiveMin(f, 48, 16) / g; - o.paddingRight = findPositiveMin(f, 0, 16) / g; - o.paddingBottom = findPositiveMin(f, 16, 16) / g; - e._textDivProperties.set(i, o) - } else { - o.paddingLeft = t[a].left - s[a].left; - o.paddingTop = t[a].top - s[a].top; - o.paddingRight = s[a].right - t[a].right; - o.paddingBottom = s[a].bottom - t[a].bottom; - e._textDivProperties.set(i, o) - } - } - } - function expandBoundsLTR(e, t) { - t.sort((function(e, t) { - return e.x1 - t.x1 || e.index - t.index - } - )); - var r = [{ - start: -1 / 0, - end: 1 / 0, - boundary: { - x1: -1 / 0, - y1: -1 / 0, - x2: 0, - y2: 1 / 0, - index: -1, - x1New: 0, - x2New: 0 - } - }]; - t.forEach((function(e) { - for (var t = 0; t < r.length && r[t].end <= e.y1; ) - t++; - for (var n, s, a = r.length - 1; a >= 0 && r[a].start >= e.y2; ) - a--; - var i, o, l = -1 / 0; - for (i = t; i <= a; i++) { - var c; - (c = (s = (n = r[i]).boundary).x2 > e.x1 ? s.index > e.index ? s.x1New : e.x1 : void 0 === s.x2New ? (s.x2 + e.x1) / 2 : s.x2New) > l && (l = c) - } - e.x1New = l; - for (i = t; i <= a; i++) - void 0 === (s = (n = r[i]).boundary).x2New ? s.x2 > e.x1 ? s.index > e.index && (s.x2New = s.x2) : s.x2New = l : s.x2New > l && (s.x2New = Math.max(l, s.x2)); - var h = [] - , d = null; - for (i = t; i <= a; i++) { - var u = (s = (n = r[i]).boundary).x2 > e.x2 ? s : e; - if (d === u) - h[h.length - 1].end = n.end; - else { - h.push({ - start: n.start, - end: n.end, - boundary: u - }); - d = u - } - } - if (r[t].start < e.y1) { - h[0].start = e.y1; - h.unshift({ - start: r[t].start, - end: e.y1, - boundary: r[t].boundary - }) - } - if (e.y2 < r[a].end) { - h[h.length - 1].end = e.y2; - h.push({ - start: e.y2, - end: r[a].end, - boundary: r[a].boundary - }) - } - for (i = t; i <= a; i++) - if (void 0 === (s = (n = r[i]).boundary).x2New) { - var p = !1; - for (o = t - 1; !p && o >= 0 && r[o].start >= s.y1; o--) - p = r[o].boundary === s; - for (o = a + 1; !p && o < r.length && r[o].end <= s.y2; o++) - p = r[o].boundary === s; - for (o = 0; !p && o < h.length; o++) - p = h[o].boundary === s; - p || (s.x2New = l) - } - Array.prototype.splice.apply(r, [t, a - t + 1].concat(h)) - } - )); - r.forEach((function(t) { - var r = t.boundary; - void 0 === r.x2New && (r.x2New = Math.max(e, r.x2)) - } - )) - } - function TextLayerRenderTask({textContent: e, textContentStream: t, container: r, viewport: s, textDivs: a, textContentItemsStr: i, enhanceTextSelection: o}) { - this._textContent = e; - this._textContentStream = t; - this._container = r; - this._document = r.ownerDocument; - this._viewport = s; - this._textDivs = a || []; - this._textContentItemsStr = i || []; - this._enhanceTextSelection = !!o; - this._fontInspectorEnabled = !(!globalThis.FontInspector || !globalThis.FontInspector.enabled); - this._reader = null; - this._layoutTextLastFontSize = null; - this._layoutTextLastFontFamily = null; - this._layoutTextCtx = null; - this._textDivProperties = new WeakMap; - this._renderingDone = !1; - this._canceled = !1; - this._capability = (0, - n.createPromiseCapability)(); - this._renderTimer = null; - this._bounds = []; - this._capability.promise.finally(()=>{ - if (this._layoutTextCtx) { - this._layoutTextCtx.canvas.width = 0; - this._layoutTextCtx.canvas.height = 0; - this._layoutTextCtx = null - } - } - ).catch(()=>{} - ) - } - TextLayerRenderTask.prototype = { - get promise() { - return this._capability.promise - }, - cancel: function TextLayer_cancel() { - this._canceled = !0; - if (this._reader) { - this._reader.cancel(new n.AbortException("TextLayer task cancelled.")); - this._reader = null - } - if (null !== this._renderTimer) { - clearTimeout(this._renderTimer); - this._renderTimer = null - } - this._capability.reject(new Error("TextLayer task cancelled.")) - }, - _processItems(e, t) { - for (let r = 0, n = e.length; r < n; r++) { - this._textContentItemsStr.push(e[r].str); - appendText(this, e[r], t) - } - }, - _layoutText(e) { - const t = this._textDivProperties.get(e); - if (t.isWhitespace) - return; - let r = ""; - if (0 !== t.canvasWidth) { - const {fontSize: n, fontFamily: s} = e.style; - if (n !== this._layoutTextLastFontSize || s !== this._layoutTextLastFontFamily) { - this._layoutTextCtx.font = `${n} ${s}`; - this._layoutTextLastFontSize = n; - this._layoutTextLastFontFamily = s - } - const {width: a} = this._layoutTextCtx.measureText(e.textContent); - if (a > 0) { - t.scale = t.canvasWidth / a; - r = `scaleX(${t.scale})` - } - } - 0 !== t.angle && (r = `rotate(${t.angle}deg) ${r}`); - if (r.length > 0) { - this._enhanceTextSelection && (t.originalTransform = r); - e.style.transform = r - } - this._textDivProperties.set(e, t); - this._container.appendChild(e) - }, - _render: function TextLayer_render(e) { - const t = (0, - n.createPromiseCapability)(); - let r = Object.create(null); - const s = this._document.createElement("canvas"); - s.mozOpaque = !0; - this._layoutTextCtx = s.getContext("2d", { - alpha: !1 - }); - if (this._textContent) { - const e = this._textContent.items - , r = this._textContent.styles; - this._processItems(e, r); - t.resolve() - } else { - if (!this._textContentStream) - throw new Error('Neither "textContent" nor "textContentStream" parameters specified.'); - { - const pump = ()=>{ - this._reader.read().then(({value: e, done: n})=>{ - if (n) - t.resolve(); - else { - Object.assign(r, e.styles); - this._processItems(e.items, r); - pump() - } - } - , t.reject) - } - ; - this._reader = this._textContentStream.getReader(); - pump() - } - } - t.promise.then(()=>{ - r = null; - e ? this._renderTimer = setTimeout(()=>{ - render(this); - this._renderTimer = null - } - , e) : render(this) - } - , this._capability.reject) - }, - expandTextDivs: function TextLayer_expandTextDivs(e) { - if (!this._enhanceTextSelection || !this._renderingDone) - return; - if (null !== this._bounds) { - expand(this); - this._bounds = null - } - const t = [] - , r = []; - for (var n = 0, s = this._textDivs.length; n < s; n++) { - const s = this._textDivs[n] - , a = this._textDivProperties.get(s); - if (!a.isWhitespace) - if (e) { - t.length = 0; - r.length = 0; - a.originalTransform && t.push(a.originalTransform); - if (a.paddingTop > 0) { - r.push(a.paddingTop + "px"); - t.push(`translateY(${-a.paddingTop}px)`) - } else - r.push(0); - a.paddingRight > 0 ? r.push(a.paddingRight / a.scale + "px") : r.push(0); - a.paddingBottom > 0 ? r.push(a.paddingBottom + "px") : r.push(0); - if (a.paddingLeft > 0) { - r.push(a.paddingLeft / a.scale + "px"); - t.push(`translateX(${-a.paddingLeft / a.scale}px)`) - } else - r.push(0); - s.style.padding = r.join(" "); - t.length && (s.style.transform = t.join(" ")) - } else { - s.style.padding = null; - s.style.transform = a.originalTransform - } - } - } - }; - return function renderTextLayer(e) { - var t = new TextLayerRenderTask({ - textContent: e.textContent, - textContentStream: e.textContentStream, - container: e.container, - viewport: e.viewport, - textDivs: e.textDivs, - textContentItemsStr: e.textContentItemsStr, - enhanceTextSelection: e.enhanceTextSelection - }); - t._render(e.timeout); - return t - } - }(); - t.renderTextLayer = s - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.SVGGraphics = void 0; - var n = r(2) - , s = r(1) - , a = r(4); - let SVGGraphics = function() { - throw new Error("Not implemented: SVGGraphics") - }; - t.SVGGraphics = SVGGraphics; - { - const e = { - fontStyle: "normal", - fontWeight: "normal", - fillColor: "#000000" - } - , r = "http://www.w3.org/XML/1998/namespace" - , i = "http://www.w3.org/1999/xlink" - , o = ["butt", "round", "square"] - , l = ["miter", "round", "bevel"] - , c = function() { - const e = new Uint8Array([137, 80, 78, 71, 13, 10, 26, 10]) - , t = new Int32Array(256); - for (let e = 0; e < 256; e++) { - let r = e; - for (let e = 0; e < 8; e++) - r = 1 & r ? 3988292384 ^ r >> 1 & 2147483647 : r >> 1 & 2147483647; - t[e] = r - } - function writePngChunk(e, r, n, s) { - let a = s; - const i = r.length; - n[a] = i >> 24 & 255; - n[a + 1] = i >> 16 & 255; - n[a + 2] = i >> 8 & 255; - n[a + 3] = 255 & i; - a += 4; - n[a] = 255 & e.charCodeAt(0); - n[a + 1] = 255 & e.charCodeAt(1); - n[a + 2] = 255 & e.charCodeAt(2); - n[a + 3] = 255 & e.charCodeAt(3); - a += 4; - n.set(r, a); - a += r.length; - const o = function crc32(e, r, n) { - let s = -1; - for (let a = r; a < n; a++) { - const r = 255 & (s ^ e[a]); - s = s >>> 8 ^ t[r] - } - return -1 ^ s - }(n, s + 4, a); - n[a] = o >> 24 & 255; - n[a + 1] = o >> 16 & 255; - n[a + 2] = o >> 8 & 255; - n[a + 3] = 255 & o - } - function deflateSyncUncompressed(e) { - let t = e.length; - const r = Math.ceil(t / 65535) - , n = new Uint8Array(2 + t + 5 * r + 4); - let s = 0; - n[s++] = 120; - n[s++] = 156; - let a = 0; - for (; t > 65535; ) { - n[s++] = 0; - n[s++] = 255; - n[s++] = 255; - n[s++] = 0; - n[s++] = 0; - n.set(e.subarray(a, a + 65535), s); - s += 65535; - a += 65535; - t -= 65535 - } - n[s++] = 1; - n[s++] = 255 & t; - n[s++] = t >> 8 & 255; - n[s++] = 255 & ~t; - n[s++] = (65535 & ~t) >> 8 & 255; - n.set(e.subarray(a), s); - s += e.length - a; - const i = function adler32(e, t, r) { - let n = 1 - , s = 0; - for (let a = t; a < r; ++a) { - n = (n + (255 & e[a])) % 65521; - s = (s + n) % 65521 - } - return s << 16 | n - }(e, 0, e.length); - n[s++] = i >> 24 & 255; - n[s++] = i >> 16 & 255; - n[s++] = i >> 8 & 255; - n[s++] = 255 & i; - return n - } - function encode(t, r, s, i) { - const o = t.width - , l = t.height; - let c, h, d; - const u = t.data; - switch (r) { - case n.ImageKind.GRAYSCALE_1BPP: - h = 0; - c = 1; - d = o + 7 >> 3; - break; - case n.ImageKind.RGB_24BPP: - h = 2; - c = 8; - d = 3 * o; - break; - case n.ImageKind.RGBA_32BPP: - h = 6; - c = 8; - d = 4 * o; - break; - default: - throw new Error("invalid format") - } - const p = new Uint8Array((1 + d) * l); - let f = 0 - , g = 0; - for (let e = 0; e < l; ++e) { - p[f++] = 0; - p.set(u.subarray(g, g + d), f); - g += d; - f += d - } - if (r === n.ImageKind.GRAYSCALE_1BPP && i) { - f = 0; - for (let e = 0; e < l; e++) { - f++; - for (let e = 0; e < d; e++) - p[f++] ^= 255 - } - } - const m = new Uint8Array([o >> 24 & 255, o >> 16 & 255, o >> 8 & 255, 255 & o, l >> 24 & 255, l >> 16 & 255, l >> 8 & 255, 255 & l, c, h, 0, 0, 0]) - , _ = function deflateSync(e) { - if (!a.isNodeJS) - return deflateSyncUncompressed(e); - try { - let t; - t = parseInt(process.versions.node) >= 8 ? e : Buffer.from(e); - const r = require("zlib").deflateSync(t, { - level: 9 - }); - return r instanceof Uint8Array ? r : new Uint8Array(r) - } catch (e) { - (0, - n.warn)("Not compressing PNG because zlib.deflateSync is unavailable: " + e) - } - return deflateSyncUncompressed(e) - }(p) - , A = e.length + 36 + m.length + _.length - , b = new Uint8Array(A); - let y = 0; - b.set(e, y); - y += e.length; - writePngChunk("IHDR", m, b, y); - y += 12 + m.length; - writePngChunk("IDATA", _, b, y); - y += 12 + _.length; - writePngChunk("IEND", new Uint8Array(0), b, y); - return (0, - n.createObjectURL)(b, "image/png", s) - } - return function convertImgDataToPng(e, t, r) { - return encode(e, void 0 === e.kind ? n.ImageKind.GRAYSCALE_1BPP : e.kind, t, r) - } - }(); - class SVGExtraState { - constructor() { - this.fontSizeScale = 1; - this.fontWeight = e.fontWeight; - this.fontSize = 0; - this.textMatrix = n.IDENTITY_MATRIX; - this.fontMatrix = n.FONT_IDENTITY_MATRIX; - this.leading = 0; - this.textRenderingMode = n.TextRenderingMode.FILL; - this.textMatrixScale = 1; - this.x = 0; - this.y = 0; - this.lineX = 0; - this.lineY = 0; - this.charSpacing = 0; - this.wordSpacing = 0; - this.textHScale = 1; - this.textRise = 0; - this.fillColor = e.fillColor; - this.strokeColor = "#000000"; - this.fillAlpha = 1; - this.strokeAlpha = 1; - this.lineWidth = 1; - this.lineJoin = ""; - this.lineCap = ""; - this.miterLimit = 0; - this.dashArray = []; - this.dashPhase = 0; - this.dependencies = []; - this.activeClipUrl = null; - this.clipGroup = null; - this.maskId = "" - } - clone() { - return Object.create(this) - } - setCurrentPoint(e, t) { - this.x = e; - this.y = t - } - } - function pf(e) { - if (Number.isInteger(e)) - return e.toString(); - const t = e.toFixed(10); - let r = t.length - 1; - if ("0" !== t[r]) - return t; - do { - r-- - } while ("0" === t[r]); - return t.substring(0, "." === t[r] ? r : r + 1) - } - function pm(e) { - if (0 === e[4] && 0 === e[5]) { - if (0 === e[1] && 0 === e[2]) - return 1 === e[0] && 1 === e[3] ? "" : `scale(${pf(e[0])} ${pf(e[3])})`; - if (e[0] === e[3] && e[1] === -e[2]) { - return `rotate(${pf(180 * Math.acos(e[0]) / Math.PI)})` - } - } else if (1 === e[0] && 0 === e[1] && 0 === e[2] && 1 === e[3]) - return `translate(${pf(e[4])} ${pf(e[5])})`; - return `matrix(${pf(e[0])} ${pf(e[1])} ${pf(e[2])} ${pf(e[3])} ${pf(e[4])} ` + pf(e[5]) + ")" - } - let h = 0 - , d = 0 - , u = 0; - t.SVGGraphics = SVGGraphics = class SVGGraphics { - constructor(e, t, r=!1) { - this.svgFactory = new s.DOMSVGFactory; - this.current = new SVGExtraState; - this.transformMatrix = n.IDENTITY_MATRIX; - this.transformStack = []; - this.extraStack = []; - this.commonObjs = e; - this.objs = t; - this.pendingClip = null; - this.pendingEOFill = !1; - this.embedFonts = !1; - this.embeddedFonts = Object.create(null); - this.cssStyle = null; - this.forceDataSchema = !!r; - this._operatorIdMapping = []; - for (const e in n.OPS) - this._operatorIdMapping[n.OPS[e]] = e - } - save() { - this.transformStack.push(this.transformMatrix); - const e = this.current; - this.extraStack.push(e); - this.current = e.clone() - } - restore() { - this.transformMatrix = this.transformStack.pop(); - this.current = this.extraStack.pop(); - this.pendingClip = null; - this.tgrp = null - } - group(e) { - this.save(); - this.executeOpTree(e); - this.restore() - } - loadDependencies(e) { - const t = e.fnArray - , r = e.argsArray; - for (let e = 0, s = t.length; e < s; e++) - if (t[e] === n.OPS.dependency) - for (const t of r[e]) { - const e = t.startsWith("g_") ? this.commonObjs : this.objs - , r = new Promise(r=>{ - e.get(t, r) - } - ); - this.current.dependencies.push(r) - } - return Promise.all(this.current.dependencies) - } - transform(e, t, r, s, a, i) { - const o = [e, t, r, s, a, i]; - this.transformMatrix = n.Util.transform(this.transformMatrix, o); - this.tgrp = null - } - getSVG(e, t) { - this.viewport = t; - const r = this._initialize(t); - return this.loadDependencies(e).then(()=>{ - this.transformMatrix = n.IDENTITY_MATRIX; - this.executeOpTree(this.convertOpList(e)); - return r - } - ) - } - convertOpList(e) { - const t = this._operatorIdMapping - , r = e.argsArray - , n = e.fnArray - , s = []; - for (let e = 0, a = n.length; e < a; e++) { - const a = n[e]; - s.push({ - fnId: a, - fn: t[a], - args: r[e] - }) - } - return function opListToTree(e) { - let t = []; - const r = []; - for (const n of e) - if ("save" !== n.fn) - "restore" === n.fn ? t = r.pop() : t.push(n); - else { - t.push({ - fnId: 92, - fn: "group", - items: [] - }); - r.push(t); - t = t[t.length - 1].items - } - return t - }(s) - } - executeOpTree(e) { - for (const t of e) { - const e = t.fn - , r = t.fnId - , s = t.args; - switch (0 | r) { - case n.OPS.beginText: - this.beginText(); - break; - case n.OPS.dependency: - break; - case n.OPS.setLeading: - this.setLeading(s); - break; - case n.OPS.setLeadingMoveText: - this.setLeadingMoveText(s[0], s[1]); - break; - case n.OPS.setFont: - this.setFont(s); - break; - case n.OPS.showText: - case n.OPS.showSpacedText: - this.showText(s[0]); - break; - case n.OPS.endText: - this.endText(); - break; - case n.OPS.moveText: - this.moveText(s[0], s[1]); - break; - case n.OPS.setCharSpacing: - this.setCharSpacing(s[0]); - break; - case n.OPS.setWordSpacing: - this.setWordSpacing(s[0]); - break; - case n.OPS.setHScale: - this.setHScale(s[0]); - break; - case n.OPS.setTextMatrix: - this.setTextMatrix(s[0], s[1], s[2], s[3], s[4], s[5]); - break; - case n.OPS.setTextRise: - this.setTextRise(s[0]); - break; - case n.OPS.setTextRenderingMode: - this.setTextRenderingMode(s[0]); - break; - case n.OPS.setLineWidth: - this.setLineWidth(s[0]); - break; - case n.OPS.setLineJoin: - this.setLineJoin(s[0]); - break; - case n.OPS.setLineCap: - this.setLineCap(s[0]); - break; - case n.OPS.setMiterLimit: - this.setMiterLimit(s[0]); - break; - case n.OPS.setFillRGBColor: - this.setFillRGBColor(s[0], s[1], s[2]); - break; - case n.OPS.setStrokeRGBColor: - this.setStrokeRGBColor(s[0], s[1], s[2]); - break; - case n.OPS.setStrokeColorN: - this.setStrokeColorN(s); - break; - case n.OPS.setFillColorN: - this.setFillColorN(s); - break; - case n.OPS.shadingFill: - this.shadingFill(s[0]); - break; - case n.OPS.setDash: - this.setDash(s[0], s[1]); - break; - case n.OPS.setRenderingIntent: - this.setRenderingIntent(s[0]); - break; - case n.OPS.setFlatness: - this.setFlatness(s[0]); - break; - case n.OPS.setGState: - this.setGState(s[0]); - break; - case n.OPS.fill: - this.fill(); - break; - case n.OPS.eoFill: - this.eoFill(); - break; - case n.OPS.stroke: - this.stroke(); - break; - case n.OPS.fillStroke: - this.fillStroke(); - break; - case n.OPS.eoFillStroke: - this.eoFillStroke(); - break; - case n.OPS.clip: - this.clip("nonzero"); - break; - case n.OPS.eoClip: - this.clip("evenodd"); - break; - case n.OPS.paintSolidColorImageMask: - this.paintSolidColorImageMask(); - break; - case n.OPS.paintImageXObject: - this.paintImageXObject(s[0]); - break; - case n.OPS.paintInlineImageXObject: - this.paintInlineImageXObject(s[0]); - break; - case n.OPS.paintImageMaskXObject: - this.paintImageMaskXObject(s[0]); - break; - case n.OPS.paintFormXObjectBegin: - this.paintFormXObjectBegin(s[0], s[1]); - break; - case n.OPS.paintFormXObjectEnd: - this.paintFormXObjectEnd(); - break; - case n.OPS.closePath: - this.closePath(); - break; - case n.OPS.closeStroke: - this.closeStroke(); - break; - case n.OPS.closeFillStroke: - this.closeFillStroke(); - break; - case n.OPS.closeEOFillStroke: - this.closeEOFillStroke(); - break; - case n.OPS.nextLine: - this.nextLine(); - break; - case n.OPS.transform: - this.transform(s[0], s[1], s[2], s[3], s[4], s[5]); - break; - case n.OPS.constructPath: - this.constructPath(s[0], s[1]); - break; - case n.OPS.endPath: - this.endPath(); - break; - case 92: - this.group(t.items); - break; - default: - (0, - n.warn)("Unimplemented operator " + e) - } - } - } - setWordSpacing(e) { - this.current.wordSpacing = e - } - setCharSpacing(e) { - this.current.charSpacing = e - } - nextLine() { - this.moveText(0, this.current.leading) - } - setTextMatrix(e, t, r, n, s, a) { - const i = this.current; - i.textMatrix = i.lineMatrix = [e, t, r, n, s, a]; - i.textMatrixScale = Math.sqrt(e * e + t * t); - i.x = i.lineX = 0; - i.y = i.lineY = 0; - i.xcoords = []; - i.ycoords = []; - i.tspan = this.svgFactory.createElement("svg:tspan"); - i.tspan.setAttributeNS(null, "font-family", i.fontFamily); - i.tspan.setAttributeNS(null, "font-size", pf(i.fontSize) + "px"); - i.tspan.setAttributeNS(null, "y", pf(-i.y)); - i.txtElement = this.svgFactory.createElement("svg:text"); - i.txtElement.appendChild(i.tspan) - } - beginText() { - const e = this.current; - e.x = e.lineX = 0; - e.y = e.lineY = 0; - e.textMatrix = n.IDENTITY_MATRIX; - e.lineMatrix = n.IDENTITY_MATRIX; - e.textMatrixScale = 1; - e.tspan = this.svgFactory.createElement("svg:tspan"); - e.txtElement = this.svgFactory.createElement("svg:text"); - e.txtgrp = this.svgFactory.createElement("svg:g"); - e.xcoords = []; - e.ycoords = [] - } - moveText(e, t) { - const r = this.current; - r.x = r.lineX += e; - r.y = r.lineY += t; - r.xcoords = []; - r.ycoords = []; - r.tspan = this.svgFactory.createElement("svg:tspan"); - r.tspan.setAttributeNS(null, "font-family", r.fontFamily); - r.tspan.setAttributeNS(null, "font-size", pf(r.fontSize) + "px"); - r.tspan.setAttributeNS(null, "y", pf(-r.y)) - } - showText(t) { - const s = this.current - , a = s.font - , i = s.fontSize; - if (0 === i) - return; - const o = s.fontSizeScale - , l = s.charSpacing - , c = s.wordSpacing - , h = s.fontDirection - , d = s.textHScale * h - , u = a.vertical - , p = u ? 1 : -1 - , f = a.defaultVMetrics - , g = i * s.fontMatrix[0]; - let m = 0; - for (const e of t) { - if (null === e) { - m += h * c; - continue - } - if ((0, - n.isNum)(e)) { - m += p * e * i / 1e3; - continue - } - const t = (e.isSpace ? c : 0) + l - , r = e.fontChar; - let d, _, A, b = e.width; - if (u) { - let t; - const r = e.vmetric || f; - t = e.vmetric ? r[1] : .5 * b; - t = -t * g; - const n = r[2] * g; - b = r ? -r[0] : b; - d = t / o; - _ = (m + n) / o - } else { - d = m / o; - _ = 0 - } - if (e.isInFont || a.missingFile) { - s.xcoords.push(s.x + d); - u && s.ycoords.push(-s.y + _); - s.tspan.textContent += r - } - A = u ? b * g - t * h : b * g + t * h; - m += A - } - s.tspan.setAttributeNS(null, "x", s.xcoords.map(pf).join(" ")); - u ? s.tspan.setAttributeNS(null, "y", s.ycoords.map(pf).join(" ")) : s.tspan.setAttributeNS(null, "y", pf(-s.y)); - u ? s.y -= m : s.x += m * d; - s.tspan.setAttributeNS(null, "font-family", s.fontFamily); - s.tspan.setAttributeNS(null, "font-size", pf(s.fontSize) + "px"); - s.fontStyle !== e.fontStyle && s.tspan.setAttributeNS(null, "font-style", s.fontStyle); - s.fontWeight !== e.fontWeight && s.tspan.setAttributeNS(null, "font-weight", s.fontWeight); - const _ = s.textRenderingMode & n.TextRenderingMode.FILL_STROKE_MASK; - if (_ === n.TextRenderingMode.FILL || _ === n.TextRenderingMode.FILL_STROKE) { - s.fillColor !== e.fillColor && s.tspan.setAttributeNS(null, "fill", s.fillColor); - s.fillAlpha < 1 && s.tspan.setAttributeNS(null, "fill-opacity", s.fillAlpha) - } else - s.textRenderingMode === n.TextRenderingMode.ADD_TO_PATH ? s.tspan.setAttributeNS(null, "fill", "transparent") : s.tspan.setAttributeNS(null, "fill", "none"); - if (_ === n.TextRenderingMode.STROKE || _ === n.TextRenderingMode.FILL_STROKE) { - const e = 1 / (s.textMatrixScale || 1); - this._setStrokeAttributes(s.tspan, e) - } - let A = s.textMatrix; - if (0 !== s.textRise) { - A = A.slice(); - A[5] += s.textRise - } - s.txtElement.setAttributeNS(null, "transform", `${pm(A)} scale(${pf(d)}, -1)`); - s.txtElement.setAttributeNS(r, "xml:space", "preserve"); - s.txtElement.appendChild(s.tspan); - s.txtgrp.appendChild(s.txtElement); - this._ensureTransformGroup().appendChild(s.txtElement) - } - setLeadingMoveText(e, t) { - this.setLeading(-t); - this.moveText(e, t) - } - addFontStyle(e) { - if (!e.data) - throw new Error('addFontStyle: No font data available, ensure that the "fontExtraProperties" API parameter is set.'); - if (!this.cssStyle) { - this.cssStyle = this.svgFactory.createElement("svg:style"); - this.cssStyle.setAttributeNS(null, "type", "text/css"); - this.defs.appendChild(this.cssStyle) - } - const t = (0, - n.createObjectURL)(e.data, e.mimetype, this.forceDataSchema); - this.cssStyle.textContent += `@font-face { font-family: "${e.loadedName}"; src: url(${t}); }\n` - } - setFont(e) { - const t = this.current - , r = this.commonObjs.get(e[0]); - let s = e[1]; - t.font = r; - if (this.embedFonts && !r.missingFile && !this.embeddedFonts[r.loadedName]) { - this.addFontStyle(r); - this.embeddedFonts[r.loadedName] = r - } - t.fontMatrix = r.fontMatrix ? r.fontMatrix : n.FONT_IDENTITY_MATRIX; - let a = "normal"; - r.black ? a = "900" : r.bold && (a = "bold"); - const i = r.italic ? "italic" : "normal"; - if (s < 0) { - s = -s; - t.fontDirection = -1 - } else - t.fontDirection = 1; - t.fontSize = s; - t.fontFamily = r.loadedName; - t.fontWeight = a; - t.fontStyle = i; - t.tspan = this.svgFactory.createElement("svg:tspan"); - t.tspan.setAttributeNS(null, "y", pf(-t.y)); - t.xcoords = []; - t.ycoords = [] - } - endText() { - const e = this.current; - if (e.textRenderingMode & n.TextRenderingMode.ADD_TO_PATH_FLAG && e.txtElement && e.txtElement.hasChildNodes()) { - e.element = e.txtElement; - this.clip("nonzero"); - this.endPath() - } - } - setLineWidth(e) { - e > 0 && (this.current.lineWidth = e) - } - setLineCap(e) { - this.current.lineCap = o[e] - } - setLineJoin(e) { - this.current.lineJoin = l[e] - } - setMiterLimit(e) { - this.current.miterLimit = e - } - setStrokeAlpha(e) { - this.current.strokeAlpha = e - } - setStrokeRGBColor(e, t, r) { - this.current.strokeColor = n.Util.makeCssRgb(e, t, r) - } - setFillAlpha(e) { - this.current.fillAlpha = e - } - setFillRGBColor(e, t, r) { - this.current.fillColor = n.Util.makeCssRgb(e, t, r); - this.current.tspan = this.svgFactory.createElement("svg:tspan"); - this.current.xcoords = []; - this.current.ycoords = [] - } - setStrokeColorN(e) { - this.current.strokeColor = this._makeColorN_Pattern(e) - } - setFillColorN(e) { - this.current.fillColor = this._makeColorN_Pattern(e) - } - shadingFill(e) { - const t = this.viewport.width - , r = this.viewport.height - , s = n.Util.inverseTransform(this.transformMatrix) - , a = n.Util.applyTransform([0, 0], s) - , i = n.Util.applyTransform([0, r], s) - , o = n.Util.applyTransform([t, 0], s) - , l = n.Util.applyTransform([t, r], s) - , c = Math.min(a[0], i[0], o[0], l[0]) - , h = Math.min(a[1], i[1], o[1], l[1]) - , d = Math.max(a[0], i[0], o[0], l[0]) - , u = Math.max(a[1], i[1], o[1], l[1]) - , p = this.svgFactory.createElement("svg:rect"); - p.setAttributeNS(null, "x", c); - p.setAttributeNS(null, "y", h); - p.setAttributeNS(null, "width", d - c); - p.setAttributeNS(null, "height", u - h); - p.setAttributeNS(null, "fill", this._makeShadingPattern(e)); - this.current.fillAlpha < 1 && p.setAttributeNS(null, "fill-opacity", this.current.fillAlpha); - this._ensureTransformGroup().appendChild(p) - } - _makeColorN_Pattern(e) { - return "TilingPattern" === e[0] ? this._makeTilingPattern(e) : this._makeShadingPattern(e) - } - _makeTilingPattern(e) { - const t = e[1] - , r = e[2] - , s = e[3] || n.IDENTITY_MATRIX - , [a,i,o,l] = e[4] - , c = e[5] - , h = e[6] - , d = e[7] - , p = "shading" + u++ - , [f,g] = n.Util.applyTransform([a, i], s) - , [m,_] = n.Util.applyTransform([o, l], s) - , [A,b] = n.Util.singularValueDecompose2dScale(s) - , y = c * A - , v = h * b - , C = this.svgFactory.createElement("svg:pattern"); - C.setAttributeNS(null, "id", p); - C.setAttributeNS(null, "patternUnits", "userSpaceOnUse"); - C.setAttributeNS(null, "width", y); - C.setAttributeNS(null, "height", v); - C.setAttributeNS(null, "x", "" + f); - C.setAttributeNS(null, "y", "" + g); - const S = this.svg - , x = this.transformMatrix - , P = this.current.fillColor - , k = this.current.strokeColor - , R = this.svgFactory.create(m - f, _ - g); - this.svg = R; - this.transformMatrix = s; - if (2 === d) { - const e = n.Util.makeCssRgb(...t); - this.current.fillColor = e; - this.current.strokeColor = e - } - this.executeOpTree(this.convertOpList(r)); - this.svg = S; - this.transformMatrix = x; - this.current.fillColor = P; - this.current.strokeColor = k; - C.appendChild(R.childNodes[0]); - this.defs.appendChild(C); - return `url(#${p})` - } - _makeShadingPattern(e) { - switch (e[0]) { - case "RadialAxial": - const t = "shading" + u++ - , r = e[3]; - let s; - switch (e[1]) { - case "axial": - const r = e[4] - , n = e[5]; - s = this.svgFactory.createElement("svg:linearGradient"); - s.setAttributeNS(null, "id", t); - s.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); - s.setAttributeNS(null, "x1", r[0]); - s.setAttributeNS(null, "y1", r[1]); - s.setAttributeNS(null, "x2", n[0]); - s.setAttributeNS(null, "y2", n[1]); - break; - case "radial": - const a = e[4] - , i = e[5] - , o = e[6] - , l = e[7]; - s = this.svgFactory.createElement("svg:radialGradient"); - s.setAttributeNS(null, "id", t); - s.setAttributeNS(null, "gradientUnits", "userSpaceOnUse"); - s.setAttributeNS(null, "cx", i[0]); - s.setAttributeNS(null, "cy", i[1]); - s.setAttributeNS(null, "r", l); - s.setAttributeNS(null, "fx", a[0]); - s.setAttributeNS(null, "fy", a[1]); - s.setAttributeNS(null, "fr", o); - break; - default: - throw new Error("Unknown RadialAxial type: " + e[1]) - } - for (const e of r) { - const t = this.svgFactory.createElement("svg:stop"); - t.setAttributeNS(null, "offset", e[0]); - t.setAttributeNS(null, "stop-color", e[1]); - s.appendChild(t) - } - this.defs.appendChild(s); - return `url(#${t})`; - case "Mesh": - (0, - n.warn)("Unimplemented pattern Mesh"); - return null; - case "Dummy": - return "hotpink"; - default: - throw new Error("Unknown IR type: " + e[0]) - } - } - setDash(e, t) { - this.current.dashArray = e; - this.current.dashPhase = t - } - constructPath(e, t) { - const r = this.current; - let s = r.x - , a = r.y - , i = [] - , o = 0; - for (const r of e) - switch (0 | r) { - case n.OPS.rectangle: - s = t[o++]; - a = t[o++]; - const e = s + t[o++] - , r = a + t[o++]; - i.push("M", pf(s), pf(a), "L", pf(e), pf(a), "L", pf(e), pf(r), "L", pf(s), pf(r), "Z"); - break; - case n.OPS.moveTo: - s = t[o++]; - a = t[o++]; - i.push("M", pf(s), pf(a)); - break; - case n.OPS.lineTo: - s = t[o++]; - a = t[o++]; - i.push("L", pf(s), pf(a)); - break; - case n.OPS.curveTo: - s = t[o + 4]; - a = t[o + 5]; - i.push("C", pf(t[o]), pf(t[o + 1]), pf(t[o + 2]), pf(t[o + 3]), pf(s), pf(a)); - o += 6; - break; - case n.OPS.curveTo2: - i.push("C", pf(s), pf(a), pf(t[o]), pf(t[o + 1]), pf(t[o + 2]), pf(t[o + 3])); - s = t[o + 2]; - a = t[o + 3]; - o += 4; - break; - case n.OPS.curveTo3: - s = t[o + 2]; - a = t[o + 3]; - i.push("C", pf(t[o]), pf(t[o + 1]), pf(s), pf(a), pf(s), pf(a)); - o += 4; - break; - case n.OPS.closePath: - i.push("Z") - } - i = i.join(" "); - if (r.path && e.length > 0 && e[0] !== n.OPS.rectangle && e[0] !== n.OPS.moveTo) - i = r.path.getAttributeNS(null, "d") + i; - else { - r.path = this.svgFactory.createElement("svg:path"); - this._ensureTransformGroup().appendChild(r.path) - } - r.path.setAttributeNS(null, "d", i); - r.path.setAttributeNS(null, "fill", "none"); - r.element = r.path; - r.setCurrentPoint(s, a) - } - endPath() { - const e = this.current; - e.path = null; - if (!this.pendingClip) - return; - if (!e.element) { - this.pendingClip = null; - return - } - const t = "clippath" + h++ - , r = this.svgFactory.createElement("svg:clipPath"); - r.setAttributeNS(null, "id", t); - r.setAttributeNS(null, "transform", pm(this.transformMatrix)); - const n = e.element.cloneNode(!0); - "evenodd" === this.pendingClip ? n.setAttributeNS(null, "clip-rule", "evenodd") : n.setAttributeNS(null, "clip-rule", "nonzero"); - this.pendingClip = null; - r.appendChild(n); - this.defs.appendChild(r); - if (e.activeClipUrl) { - e.clipGroup = null; - this.extraStack.forEach((function(e) { - e.clipGroup = null - } - )); - r.setAttributeNS(null, "clip-path", e.activeClipUrl) - } - e.activeClipUrl = `url(#${t})`; - this.tgrp = null - } - clip(e) { - this.pendingClip = e - } - closePath() { - const e = this.current; - if (e.path) { - const t = e.path.getAttributeNS(null, "d") + "Z"; - e.path.setAttributeNS(null, "d", t) - } - } - setLeading(e) { - this.current.leading = -e - } - setTextRise(e) { - this.current.textRise = e - } - setTextRenderingMode(e) { - this.current.textRenderingMode = e - } - setHScale(e) { - this.current.textHScale = e / 100 - } - setRenderingIntent(e) {} - setFlatness(e) {} - setGState(e) { - for (const [t,r] of e) - switch (t) { - case "LW": - this.setLineWidth(r); - break; - case "LC": - this.setLineCap(r); - break; - case "LJ": - this.setLineJoin(r); - break; - case "ML": - this.setMiterLimit(r); - break; - case "D": - this.setDash(r[0], r[1]); - break; - case "RI": - this.setRenderingIntent(r); - break; - case "FL": - this.setFlatness(r); - break; - case "Font": - this.setFont(r); - break; - case "CA": - this.setStrokeAlpha(r); - break; - case "ca": - this.setFillAlpha(r); - break; - default: - (0, - n.warn)("Unimplemented graphic state operator " + t) - } - } - fill() { - const e = this.current; - if (e.element) { - e.element.setAttributeNS(null, "fill", e.fillColor); - e.element.setAttributeNS(null, "fill-opacity", e.fillAlpha); - this.endPath() - } - } - stroke() { - const e = this.current; - if (e.element) { - this._setStrokeAttributes(e.element); - e.element.setAttributeNS(null, "fill", "none"); - this.endPath() - } - } - _setStrokeAttributes(e, t=1) { - const r = this.current; - let n = r.dashArray; - 1 !== t && n.length > 0 && (n = n.map((function(e) { - return t * e - } - ))); - e.setAttributeNS(null, "stroke", r.strokeColor); - e.setAttributeNS(null, "stroke-opacity", r.strokeAlpha); - e.setAttributeNS(null, "stroke-miterlimit", pf(r.miterLimit)); - e.setAttributeNS(null, "stroke-linecap", r.lineCap); - e.setAttributeNS(null, "stroke-linejoin", r.lineJoin); - e.setAttributeNS(null, "stroke-width", pf(t * r.lineWidth) + "px"); - e.setAttributeNS(null, "stroke-dasharray", n.map(pf).join(" ")); - e.setAttributeNS(null, "stroke-dashoffset", pf(t * r.dashPhase) + "px") - } - eoFill() { - this.current.element && this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); - this.fill() - } - fillStroke() { - this.stroke(); - this.fill() - } - eoFillStroke() { - this.current.element && this.current.element.setAttributeNS(null, "fill-rule", "evenodd"); - this.fillStroke() - } - closeStroke() { - this.closePath(); - this.stroke() - } - closeFillStroke() { - this.closePath(); - this.fillStroke() - } - closeEOFillStroke() { - this.closePath(); - this.eoFillStroke() - } - paintSolidColorImageMask() { - const e = this.svgFactory.createElement("svg:rect"); - e.setAttributeNS(null, "x", "0"); - e.setAttributeNS(null, "y", "0"); - e.setAttributeNS(null, "width", "1px"); - e.setAttributeNS(null, "height", "1px"); - e.setAttributeNS(null, "fill", this.current.fillColor); - this._ensureTransformGroup().appendChild(e) - } - paintImageXObject(e) { - const t = e.startsWith("g_") ? this.commonObjs.get(e) : this.objs.get(e); - t ? this.paintInlineImageXObject(t) : (0, - n.warn)(`Dependent image with object ID ${e} is not ready yet`) - } - paintInlineImageXObject(e, t) { - const r = e.width - , n = e.height - , s = c(e, this.forceDataSchema, !!t) - , a = this.svgFactory.createElement("svg:rect"); - a.setAttributeNS(null, "x", "0"); - a.setAttributeNS(null, "y", "0"); - a.setAttributeNS(null, "width", pf(r)); - a.setAttributeNS(null, "height", pf(n)); - this.current.element = a; - this.clip("nonzero"); - const o = this.svgFactory.createElement("svg:image"); - o.setAttributeNS(i, "xlink:href", s); - o.setAttributeNS(null, "x", "0"); - o.setAttributeNS(null, "y", pf(-n)); - o.setAttributeNS(null, "width", pf(r) + "px"); - o.setAttributeNS(null, "height", pf(n) + "px"); - o.setAttributeNS(null, "transform", `scale(${pf(1 / r)} ${pf(-1 / n)})`); - t ? t.appendChild(o) : this._ensureTransformGroup().appendChild(o) - } - paintImageMaskXObject(e) { - const t = this.current - , r = e.width - , n = e.height - , s = t.fillColor; - t.maskId = "mask" + d++; - const a = this.svgFactory.createElement("svg:mask"); - a.setAttributeNS(null, "id", t.maskId); - const i = this.svgFactory.createElement("svg:rect"); - i.setAttributeNS(null, "x", "0"); - i.setAttributeNS(null, "y", "0"); - i.setAttributeNS(null, "width", pf(r)); - i.setAttributeNS(null, "height", pf(n)); - i.setAttributeNS(null, "fill", s); - i.setAttributeNS(null, "mask", `url(#${t.maskId})`); - this.defs.appendChild(a); - this._ensureTransformGroup().appendChild(i); - this.paintInlineImageXObject(e, a) - } - paintFormXObjectBegin(e, t) { - Array.isArray(e) && 6 === e.length && this.transform(e[0], e[1], e[2], e[3], e[4], e[5]); - if (t) { - const e = t[2] - t[0] - , r = t[3] - t[1] - , n = this.svgFactory.createElement("svg:rect"); - n.setAttributeNS(null, "x", t[0]); - n.setAttributeNS(null, "y", t[1]); - n.setAttributeNS(null, "width", pf(e)); - n.setAttributeNS(null, "height", pf(r)); - this.current.element = n; - this.clip("nonzero"); - this.endPath() - } - } - paintFormXObjectEnd() {} - _initialize(e) { - const t = this.svgFactory.create(e.width, e.height) - , r = this.svgFactory.createElement("svg:defs"); - t.appendChild(r); - this.defs = r; - const n = this.svgFactory.createElement("svg:g"); - n.setAttributeNS(null, "transform", pm(e.transform)); - t.appendChild(n); - this.svg = n; - return t - } - _ensureClipGroup() { - if (!this.current.clipGroup) { - const e = this.svgFactory.createElement("svg:g"); - e.setAttributeNS(null, "clip-path", this.current.activeClipUrl); - this.svg.appendChild(e); - this.current.clipGroup = e - } - return this.current.clipGroup - } - _ensureTransformGroup() { - if (!this.tgrp) { - this.tgrp = this.svgFactory.createElement("svg:g"); - this.tgrp.setAttributeNS(null, "transform", pm(this.transformMatrix)); - this.current.activeClipUrl ? this._ensureClipGroup().appendChild(this.tgrp) : this.svg.appendChild(this.tgrp) - } - return this.tgrp - } - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.PDFNodeStream = void 0; - var n = r(2) - , s = r(23); - const a = require("fs") - , i = require("http") - , o = require("https") - , l = require("url") - , c = /^file:\/\/\/[a-zA-Z]:\//; - t.PDFNodeStream = class PDFNodeStream { - constructor(e) { - this.source = e; - this.url = function parseUrl(e) { - const t = l.parse(e); - if ("file:" === t.protocol || t.host) - return t; - if (/^[a-z]:[/\\]/i.test(e)) - return l.parse("file:///" + e); - t.host || (t.protocol = "file:"); - return t - }(e.url); - this.isHttp = "http:" === this.url.protocol || "https:" === this.url.protocol; - this.isFsUrl = "file:" === this.url.protocol; - this.httpHeaders = this.isHttp && e.httpHeaders || {}; - this._fullRequestReader = null; - this._rangeRequestReaders = [] - } - get _progressiveDataLength() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0 - } - getFullReader() { - (0, - n.assert)(!this._fullRequestReader, "PDFNodeStream.getFullReader can only be called once."); - this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this); - return this._fullRequestReader - } - getRangeReader(e, t) { - if (t <= this._progressiveDataLength) - return null; - const r = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this,e,t) : new PDFNodeStreamRangeReader(this,e,t); - this._rangeRequestReaders.push(r); - return r - } - cancelAllRequests(e) { - this._fullRequestReader && this._fullRequestReader.cancel(e); - this._rangeRequestReaders.slice(0).forEach((function(t) { - t.cancel(e) - } - )) - } - } - ; - class BaseFullReader { - constructor(e) { - this._url = e.url; - this._done = !1; - this._storedError = null; - this.onProgress = null; - const t = e.source; - this._contentLength = t.length; - this._loaded = 0; - this._filename = null; - this._disableRange = t.disableRange || !1; - this._rangeChunkSize = t.rangeChunkSize; - this._rangeChunkSize || this._disableRange || (this._disableRange = !0); - this._isStreamingSupported = !t.disableStream; - this._isRangeSupported = !t.disableRange; - this._readableStream = null; - this._readCapability = (0, - n.createPromiseCapability)(); - this._headersCapability = (0, - n.createPromiseCapability)() - } - get headersReady() { - return this._headersCapability.promise - } - get filename() { - return this._filename - } - get contentLength() { - return this._contentLength - } - get isRangeSupported() { - return this._isRangeSupported - } - get isStreamingSupported() { - return this._isStreamingSupported - } - async read() { - await this._readCapability.promise; - if (this._done) - return { - value: void 0, - done: !0 - }; - if (this._storedError) - throw this._storedError; - const e = this._readableStream.read(); - if (null === e) { - this._readCapability = (0, - n.createPromiseCapability)(); - return this.read() - } - this._loaded += e.length; - this.onProgress && this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - return { - value: new Uint8Array(e).buffer, - done: !1 - } - } - cancel(e) { - this._readableStream ? this._readableStream.destroy(e) : this._error(e) - } - _error(e) { - this._storedError = e; - this._readCapability.resolve() - } - _setReadableStream(e) { - this._readableStream = e; - e.on("readable", ()=>{ - this._readCapability.resolve() - } - ); - e.on("end", ()=>{ - e.destroy(); - this._done = !0; - this._readCapability.resolve() - } - ); - e.on("error", e=>{ - this._error(e) - } - ); - !this._isStreamingSupported && this._isRangeSupported && this._error(new n.AbortException("streaming is disabled")); - this._storedError && this._readableStream.destroy(this._storedError) - } - } - class BaseRangeReader { - constructor(e) { - this._url = e.url; - this._done = !1; - this._storedError = null; - this.onProgress = null; - this._loaded = 0; - this._readableStream = null; - this._readCapability = (0, - n.createPromiseCapability)(); - const t = e.source; - this._isStreamingSupported = !t.disableStream - } - get isStreamingSupported() { - return this._isStreamingSupported - } - async read() { - await this._readCapability.promise; - if (this._done) - return { - value: void 0, - done: !0 - }; - if (this._storedError) - throw this._storedError; - const e = this._readableStream.read(); - if (null === e) { - this._readCapability = (0, - n.createPromiseCapability)(); - return this.read() - } - this._loaded += e.length; - this.onProgress && this.onProgress({ - loaded: this._loaded - }); - return { - value: new Uint8Array(e).buffer, - done: !1 - } - } - cancel(e) { - this._readableStream ? this._readableStream.destroy(e) : this._error(e) - } - _error(e) { - this._storedError = e; - this._readCapability.resolve() - } - _setReadableStream(e) { - this._readableStream = e; - e.on("readable", ()=>{ - this._readCapability.resolve() - } - ); - e.on("end", ()=>{ - e.destroy(); - this._done = !0; - this._readCapability.resolve() - } - ); - e.on("error", e=>{ - this._error(e) - } - ); - this._storedError && this._readableStream.destroy(this._storedError) - } - } - function createRequestOptions(e, t) { - return { - protocol: e.protocol, - auth: e.auth, - host: e.hostname, - port: e.port, - path: e.path, - method: "GET", - headers: t - } - } - class PDFNodeStreamFullReader extends BaseFullReader { - constructor(e) { - super(e); - const handleResponse = t=>{ - if (404 === t.statusCode) { - const e = new n.MissingPDFException(`Missing PDF "${this._url}".`); - this._storedError = e; - this._headersCapability.reject(e); - return - } - this._headersCapability.resolve(); - this._setReadableStream(t); - const getResponseHeader = e=>this._readableStream.headers[e.toLowerCase()] - , {allowRangeRequests: r, suggestedLength: a} = (0, - s.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: e.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }); - this._isRangeSupported = r; - this._contentLength = a || this._contentLength; - this._filename = (0, - s.extractFilenameFromHeader)(getResponseHeader) - } - ; - this._request = null; - "http:" === this._url.protocol ? this._request = i.request(createRequestOptions(this._url, e.httpHeaders), handleResponse) : this._request = o.request(createRequestOptions(this._url, e.httpHeaders), handleResponse); - this._request.on("error", e=>{ - this._storedError = e; - this._headersCapability.reject(e) - } - ); - this._request.end() - } - } - class PDFNodeStreamRangeReader extends BaseRangeReader { - constructor(e, t, r) { - super(e); - this._httpHeaders = {}; - for (const t in e.httpHeaders) { - const r = e.httpHeaders[t]; - void 0 !== r && (this._httpHeaders[t] = r) - } - this._httpHeaders.Range = `bytes=${t}-${r - 1}`; - const handleResponse = e=>{ - if (404 !== e.statusCode) - this._setReadableStream(e); - else { - const e = new n.MissingPDFException(`Missing PDF "${this._url}".`); - this._storedError = e - } - } - ; - this._request = null; - "http:" === this._url.protocol ? this._request = i.request(createRequestOptions(this._url, this._httpHeaders), handleResponse) : this._request = o.request(createRequestOptions(this._url, this._httpHeaders), handleResponse); - this._request.on("error", e=>{ - this._storedError = e - } - ); - this._request.end() - } - } - class PDFNodeStreamFsFullReader extends BaseFullReader { - constructor(e) { - super(e); - let t = decodeURIComponent(this._url.path); - c.test(this._url.href) && (t = t.replace(/^\//, "")); - a.lstat(t, (e,r)=>{ - if (e) { - "ENOENT" === e.code && (e = new n.MissingPDFException(`Missing PDF "${t}".`)); - this._storedError = e; - this._headersCapability.reject(e) - } else { - this._contentLength = r.size; - this._setReadableStream(a.createReadStream(t)); - this._headersCapability.resolve() - } - } - ) - } - } - class PDFNodeStreamFsRangeReader extends BaseRangeReader { - constructor(e, t, r) { - super(e); - let n = decodeURIComponent(this._url.path); - c.test(this._url.href) && (n = n.replace(/^\//, "")); - this._setReadableStream(a.createReadStream(n, { - start: t, - end: r - 1 - })) - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.createResponseStatusError = function createResponseStatusError(e, t) { - if (404 === e || 0 === e && t.startsWith("file:")) - return new n.MissingPDFException('Missing PDF "' + t + '".'); - return new n.UnexpectedResponseException("Unexpected server response (" + e + ') while retrieving PDF "' + t + '".',e) - } - ; - t.extractFilenameFromHeader = function extractFilenameFromHeader(e) { - const t = e("Content-Disposition"); - if (t) { - let e = (0, - s.getFilenameFromContentDispositionHeader)(t); - if (e.includes("%")) - try { - e = decodeURIComponent(e) - } catch (e) {} - if (/\.pdf$/i.test(e)) - return e - } - return null - } - ; - t.validateRangeRequestCapabilities = function validateRangeRequestCapabilities({getResponseHeader: e, isHttp: t, rangeChunkSize: r, disableRange: s}) { - (0, - n.assert)(r > 0, "Range chunk size must be larger than zero"); - const a = { - allowRangeRequests: !1, - suggestedLength: void 0 - } - , i = parseInt(e("Content-Length"), 10); - if (!Number.isInteger(i)) - return a; - a.suggestedLength = i; - if (i <= 2 * r) - return a; - if (s || !t) - return a; - if ("bytes" !== e("Accept-Ranges")) - return a; - if ("identity" !== (e("Content-Encoding") || "identity")) - return a; - a.allowRangeRequests = !0; - return a - } - ; - t.validateResponseStatus = function validateResponseStatus(e) { - return 200 === e || 206 === e - } - ; - var n = r(2) - , s = r(24) - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.getFilenameFromContentDispositionHeader = function getFilenameFromContentDispositionHeader(e) { - let t = !0 - , r = toParamRegExp("filename\\*", "i").exec(e); - if (r) { - r = r[1]; - let e = rfc2616unquote(r); - e = unescape(e); - e = rfc5987decode(e); - e = rfc2047decode(e); - return fixupEncoding(e) - } - r = function rfc2231getparam(e) { - const t = []; - let r; - const n = toParamRegExp("filename\\*((?!0\\d)\\d+)(\\*?)", "ig"); - for (; null !== (r = n.exec(e)); ) { - let[,e,n,s] = r; - e = parseInt(e, 10); - if (e in t) { - if (0 === e) - break - } else - t[e] = [n, s] - } - const s = []; - for (let e = 0; e < t.length && e in t; ++e) { - let[r,n] = t[e]; - n = rfc2616unquote(n); - if (r) { - n = unescape(n); - 0 === e && (n = rfc5987decode(n)) - } - s.push(n) - } - return s.join("") - }(e); - if (r) { - return fixupEncoding(rfc2047decode(r)) - } - r = toParamRegExp("filename", "i").exec(e); - if (r) { - r = r[1]; - let e = rfc2616unquote(r); - e = rfc2047decode(e); - return fixupEncoding(e) - } - function toParamRegExp(e, t) { - return new RegExp("(?:^|;)\\s*" + e + '\\s*=\\s*([^";\\s][^;\\s]*|"(?:[^"\\\\]|\\\\"?)+"?)',t) - } - function textdecode(e, r) { - if (e) { - if (!/^[\x00-\xFF]+$/.test(r)) - return r; - try { - const n = new TextDecoder(e,{ - fatal: !0 - }) - , s = Array.from(r, (function(e) { - return 255 & e.charCodeAt(0) - } - )); - r = n.decode(new Uint8Array(s)); - t = !1 - } catch (n) { - if (/^utf-?8$/i.test(e)) - try { - r = decodeURIComponent(escape(r)); - t = !1 - } catch (e) {} - } - } - return r - } - function fixupEncoding(e) { - if (t && /[\x80-\xff]/.test(e)) { - e = textdecode("utf-8", e); - t && (e = textdecode("iso-8859-1", e)) - } - return e - } - function rfc2616unquote(e) { - if (e.startsWith('"')) { - const t = e.slice(1).split('\\"'); - for (let e = 0; e < t.length; ++e) { - const r = t[e].indexOf('"'); - if (-1 !== r) { - t[e] = t[e].slice(0, r); - t.length = e + 1 - } - t[e] = t[e].replace(/\\(.)/g, "$1") - } - e = t.join('"') - } - return e - } - function rfc5987decode(e) { - const t = e.indexOf("'"); - if (-1 === t) - return e; - return textdecode(e.slice(0, t), e.slice(t + 1).replace(/^[^']*'/, "")) - } - function rfc2047decode(e) { - return !e.startsWith("=?") || /[\x00-\x19\x80-\xff]/.test(e) ? e : e.replace(/=\?([\w-]*)\?([QqBb])\?((?:[^?]|\?(?!=))*)\?=/g, (function(e, t, r, n) { - if ("q" === r || "Q" === r) - return textdecode(t, n = (n = n.replace(/_/g, " ")).replace(/=([0-9a-fA-F]{2})/g, (function(e, t) { - return String.fromCharCode(parseInt(t, 16)) - } - ))); - try { - n = atob(n) - } catch (e) {} - return textdecode(t, n) - } - )) - } - return "" - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.PDFNetworkStream = void 0; - var n = r(2) - , s = r(23); - class NetworkManager { - constructor(e, t) { - this.url = e; - t = t || {}; - this.isHttp = /^https?:/i.test(e); - this.httpHeaders = this.isHttp && t.httpHeaders || {}; - this.withCredentials = t.withCredentials || !1; - this.getXhr = t.getXhr || function NetworkManager_getXhr() { - return new XMLHttpRequest - } - ; - this.currXhrId = 0; - this.pendingRequests = Object.create(null) - } - requestRange(e, t, r) { - const n = { - begin: e, - end: t - }; - for (const e in r) - n[e] = r[e]; - return this.request(n) - } - requestFull(e) { - return this.request(e) - } - request(e) { - const t = this.getXhr() - , r = this.currXhrId++ - , n = this.pendingRequests[r] = { - xhr: t - }; - t.open("GET", this.url); - t.withCredentials = this.withCredentials; - for (const e in this.httpHeaders) { - const r = this.httpHeaders[e]; - void 0 !== r && t.setRequestHeader(e, r) - } - if (this.isHttp && "begin"in e && "end"in e) { - t.setRequestHeader("Range", `bytes=${e.begin}-${e.end - 1}`); - n.expectedStatus = 206 - } else - n.expectedStatus = 200; - t.responseType = "arraybuffer"; - e.onError && (t.onerror = function(r) { - e.onError(t.status) - } - ); - t.onreadystatechange = this.onStateChange.bind(this, r); - t.onprogress = this.onProgress.bind(this, r); - n.onHeadersReceived = e.onHeadersReceived; - n.onDone = e.onDone; - n.onError = e.onError; - n.onProgress = e.onProgress; - t.send(null); - return r - } - onProgress(e, t) { - const r = this.pendingRequests[e]; - r && r.onProgress && r.onProgress(t) - } - onStateChange(e, t) { - const r = this.pendingRequests[e]; - if (!r) - return; - const s = r.xhr; - if (s.readyState >= 2 && r.onHeadersReceived) { - r.onHeadersReceived(); - delete r.onHeadersReceived - } - if (4 !== s.readyState) - return; - if (!(e in this.pendingRequests)) - return; - delete this.pendingRequests[e]; - if (0 === s.status && this.isHttp) { - r.onError && r.onError(s.status); - return - } - const a = s.status || 200; - if (!(200 === a && 206 === r.expectedStatus) && a !== r.expectedStatus) { - r.onError && r.onError(s.status); - return - } - const i = function getArrayBuffer(e) { - const t = e.response; - return "string" != typeof t ? t : (0, - n.stringToBytes)(t).buffer - }(s); - if (206 === a) { - const e = s.getResponseHeader("Content-Range") - , t = /bytes (\d+)-(\d+)\/(\d+)/.exec(e); - r.onDone({ - begin: parseInt(t[1], 10), - chunk: i - }) - } else - i ? r.onDone({ - begin: 0, - chunk: i - }) : r.onError && r.onError(s.status) - } - getRequestXhr(e) { - return this.pendingRequests[e].xhr - } - isPendingRequest(e) { - return e in this.pendingRequests - } - abortRequest(e) { - const t = this.pendingRequests[e].xhr; - delete this.pendingRequests[e]; - t.abort() - } - } - t.PDFNetworkStream = class PDFNetworkStream { - constructor(e) { - this._source = e; - this._manager = new NetworkManager(e.url,{ - httpHeaders: e.httpHeaders, - withCredentials: e.withCredentials - }); - this._rangeChunkSize = e.rangeChunkSize; - this._fullRequestReader = null; - this._rangeRequestReaders = [] - } - _onRangeRequestReaderClosed(e) { - const t = this._rangeRequestReaders.indexOf(e); - t >= 0 && this._rangeRequestReaders.splice(t, 1) - } - getFullReader() { - (0, - n.assert)(!this._fullRequestReader, "PDFNetworkStream.getFullReader can only be called once."); - this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager,this._source); - return this._fullRequestReader - } - getRangeReader(e, t) { - const r = new PDFNetworkStreamRangeRequestReader(this._manager,e,t); - r.onClosed = this._onRangeRequestReaderClosed.bind(this); - this._rangeRequestReaders.push(r); - return r - } - cancelAllRequests(e) { - this._fullRequestReader && this._fullRequestReader.cancel(e); - this._rangeRequestReaders.slice(0).forEach((function(t) { - t.cancel(e) - } - )) - } - } - ; - class PDFNetworkStreamFullRequestReader { - constructor(e, t) { - this._manager = e; - const r = { - onHeadersReceived: this._onHeadersReceived.bind(this), - onDone: this._onDone.bind(this), - onError: this._onError.bind(this), - onProgress: this._onProgress.bind(this) - }; - this._url = t.url; - this._fullRequestId = e.requestFull(r); - this._headersReceivedCapability = (0, - n.createPromiseCapability)(); - this._disableRange = t.disableRange || !1; - this._contentLength = t.length; - this._rangeChunkSize = t.rangeChunkSize; - this._rangeChunkSize || this._disableRange || (this._disableRange = !0); - this._isStreamingSupported = !1; - this._isRangeSupported = !1; - this._cachedChunks = []; - this._requests = []; - this._done = !1; - this._storedError = void 0; - this._filename = null; - this.onProgress = null - } - _onHeadersReceived() { - const e = this._fullRequestId - , t = this._manager.getRequestXhr(e) - , getResponseHeader = e=>t.getResponseHeader(e) - , {allowRangeRequests: r, suggestedLength: n} = (0, - s.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: this._manager.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }); - r && (this._isRangeSupported = !0); - this._contentLength = n || this._contentLength; - this._filename = (0, - s.extractFilenameFromHeader)(getResponseHeader); - this._isRangeSupported && this._manager.abortRequest(e); - this._headersReceivedCapability.resolve() - } - _onDone(e) { - if (e) - if (this._requests.length > 0) { - this._requests.shift().resolve({ - value: e.chunk, - done: !1 - }) - } else - this._cachedChunks.push(e.chunk); - this._done = !0; - if (!(this._cachedChunks.length > 0)) { - this._requests.forEach((function(e) { - e.resolve({ - value: void 0, - done: !0 - }) - } - )); - this._requests = [] - } - } - _onError(e) { - const t = this._url - , r = (0, - s.createResponseStatusError)(e, t); - this._storedError = r; - this._headersReceivedCapability.reject(r); - this._requests.forEach((function(e) { - e.reject(r) - } - )); - this._requests = []; - this._cachedChunks = [] - } - _onProgress(e) { - this.onProgress && this.onProgress({ - loaded: e.loaded, - total: e.lengthComputable ? e.total : this._contentLength - }) - } - get filename() { - return this._filename - } - get isRangeSupported() { - return this._isRangeSupported - } - get isStreamingSupported() { - return this._isStreamingSupported - } - get contentLength() { - return this._contentLength - } - get headersReady() { - return this._headersReceivedCapability.promise - } - async read() { - if (this._storedError) - throw this._storedError; - if (this._cachedChunks.length > 0) { - return { - value: this._cachedChunks.shift(), - done: !1 - } - } - if (this._done) - return { - value: void 0, - done: !0 - }; - const e = (0, - n.createPromiseCapability)(); - this._requests.push(e); - return e.promise - } - cancel(e) { - this._done = !0; - this._headersReceivedCapability.reject(e); - this._requests.forEach((function(e) { - e.resolve({ - value: void 0, - done: !0 - }) - } - )); - this._requests = []; - this._manager.isPendingRequest(this._fullRequestId) && this._manager.abortRequest(this._fullRequestId); - this._fullRequestReader = null - } - } - class PDFNetworkStreamRangeRequestReader { - constructor(e, t, r) { - this._manager = e; - const n = { - onDone: this._onDone.bind(this), - onProgress: this._onProgress.bind(this) - }; - this._requestId = e.requestRange(t, r, n); - this._requests = []; - this._queuedChunk = null; - this._done = !1; - this.onProgress = null; - this.onClosed = null - } - _close() { - this.onClosed && this.onClosed(this) - } - _onDone(e) { - const t = e.chunk; - if (this._requests.length > 0) { - this._requests.shift().resolve({ - value: t, - done: !1 - }) - } else - this._queuedChunk = t; - this._done = !0; - this._requests.forEach((function(e) { - e.resolve({ - value: void 0, - done: !0 - }) - } - )); - this._requests = []; - this._close() - } - _onProgress(e) { - !this.isStreamingSupported && this.onProgress && this.onProgress({ - loaded: e.loaded - }) - } - get isStreamingSupported() { - return !1 - } - async read() { - if (null !== this._queuedChunk) { - const e = this._queuedChunk; - this._queuedChunk = null; - return { - value: e, - done: !1 - } - } - if (this._done) - return { - value: void 0, - done: !0 - }; - const e = (0, - n.createPromiseCapability)(); - this._requests.push(e); - return e.promise - } - cancel(e) { - this._done = !0; - this._requests.forEach((function(e) { - e.resolve({ - value: void 0, - done: !0 - }) - } - )); - this._requests = []; - this._manager.isPendingRequest(this._requestId) && this._manager.abortRequest(this._requestId); - this._close() - } - } - } - , function(e, t, r) { - "use strict"; - Object.defineProperty(t, "__esModule", { - value: !0 - }); - t.PDFFetchStream = void 0; - var n = r(2) - , s = r(23); - function createFetchOptions(e, t, r) { - return { - method: "GET", - headers: e, - signal: r && r.signal, - mode: "cors", - credentials: t ? "include" : "same-origin", - redirect: "follow" - } - } - function createHeaders(e) { - const t = new Headers; - for (const r in e) { - const n = e[r]; - void 0 !== n && t.append(r, n) - } - return t - } - t.PDFFetchStream = class PDFFetchStream { - constructor(e) { - this.source = e; - this.isHttp = /^https?:/i.test(e.url); - this.httpHeaders = this.isHttp && e.httpHeaders || {}; - this._fullRequestReader = null; - this._rangeRequestReaders = [] - } - get _progressiveDataLength() { - return this._fullRequestReader ? this._fullRequestReader._loaded : 0 - } - getFullReader() { - (0, - n.assert)(!this._fullRequestReader, "PDFFetchStream.getFullReader can only be called once."); - this._fullRequestReader = new PDFFetchStreamReader(this); - return this._fullRequestReader - } - getRangeReader(e, t) { - if (t <= this._progressiveDataLength) - return null; - const r = new PDFFetchStreamRangeReader(this,e,t); - this._rangeRequestReaders.push(r); - return r - } - cancelAllRequests(e) { - this._fullRequestReader && this._fullRequestReader.cancel(e); - this._rangeRequestReaders.slice(0).forEach((function(t) { - t.cancel(e) - } - )) - } - } - ; - class PDFFetchStreamReader { - constructor(e) { - this._stream = e; - this._reader = null; - this._loaded = 0; - this._filename = null; - const t = e.source; - this._withCredentials = t.withCredentials || !1; - this._contentLength = t.length; - this._headersCapability = (0, - n.createPromiseCapability)(); - this._disableRange = t.disableRange || !1; - this._rangeChunkSize = t.rangeChunkSize; - this._rangeChunkSize || this._disableRange || (this._disableRange = !0); - "undefined" != typeof AbortController && (this._abortController = new AbortController); - this._isStreamingSupported = !t.disableStream; - this._isRangeSupported = !t.disableRange; - this._headers = createHeaders(this._stream.httpHeaders); - const r = t.url; - fetch(r, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(e=>{ - if (!(0, - s.validateResponseStatus)(e.status)) - throw (0, - s.createResponseStatusError)(e.status, r); - this._reader = e.body.getReader(); - this._headersCapability.resolve(); - const getResponseHeader = t=>e.headers.get(t) - , {allowRangeRequests: t, suggestedLength: a} = (0, - s.validateRangeRequestCapabilities)({ - getResponseHeader: getResponseHeader, - isHttp: this._stream.isHttp, - rangeChunkSize: this._rangeChunkSize, - disableRange: this._disableRange - }); - this._isRangeSupported = t; - this._contentLength = a || this._contentLength; - this._filename = (0, - s.extractFilenameFromHeader)(getResponseHeader); - !this._isStreamingSupported && this._isRangeSupported && this.cancel(new n.AbortException("Streaming is disabled.")) - } - ).catch(this._headersCapability.reject); - this.onProgress = null - } - get headersReady() { - return this._headersCapability.promise - } - get filename() { - return this._filename - } - get contentLength() { - return this._contentLength - } - get isRangeSupported() { - return this._isRangeSupported - } - get isStreamingSupported() { - return this._isStreamingSupported - } - async read() { - await this._headersCapability.promise; - const {value: e, done: t} = await this._reader.read(); - if (t) - return { - value: e, - done: t - }; - this._loaded += e.byteLength; - this.onProgress && this.onProgress({ - loaded: this._loaded, - total: this._contentLength - }); - return { - value: new Uint8Array(e).buffer, - done: !1 - } - } - cancel(e) { - this._reader && this._reader.cancel(e); - this._abortController && this._abortController.abort() - } - } - class PDFFetchStreamRangeReader { - constructor(e, t, r) { - this._stream = e; - this._reader = null; - this._loaded = 0; - const a = e.source; - this._withCredentials = a.withCredentials || !1; - this._readCapability = (0, - n.createPromiseCapability)(); - this._isStreamingSupported = !a.disableStream; - "undefined" != typeof AbortController && (this._abortController = new AbortController); - this._headers = createHeaders(this._stream.httpHeaders); - this._headers.append("Range", `bytes=${t}-${r - 1}`); - const i = a.url; - fetch(i, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(e=>{ - if (!(0, - s.validateResponseStatus)(e.status)) - throw (0, - s.createResponseStatusError)(e.status, i); - this._readCapability.resolve(); - this._reader = e.body.getReader() - } - ).catch(e=>{ - if (!e || "AbortError" !== e.name) - throw e - } - ); - this.onProgress = null - } - get isStreamingSupported() { - return this._isStreamingSupported - } - async read() { - await this._readCapability.promise; - const {value: e, done: t} = await this._reader.read(); - if (t) - return { - value: e, - done: t - }; - this._loaded += e.byteLength; - this.onProgress && this.onProgress({ - loaded: this._loaded - }); - return { - value: new Uint8Array(e).buffer, - done: !1 - } - } - cancel(e) { - this._reader && this._reader.cancel(e); - this._abortController && this._abortController.abort() - } - } - } - ]) -} -)); diff --git a/client-vanilla/public/dep/pdf.worker.min.js b/client-vanilla/public/dep/pdf.worker.min.js deleted file mode 100644 index ba03f4776..000000000 --- a/client-vanilla/public/dep/pdf.worker.min.js +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @licstart The following is the entire license notice for the - * Javascript code in this page - * - * Copyright 2020 Mozilla Foundation - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * @licend The above is the entire license notice for the - * Javascript code in this page - */ -!function webpackUniversalModuleDefinition(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define("pdfjs-dist/build/pdf.worker",[],t):"object"==typeof exports?exports["pdfjs-dist/build/pdf.worker"]=t():e["pdfjs-dist/build/pdf.worker"]=e.pdfjsWorker=t()}(this,(function(){return function(e){var t={};function __w_pdfjs_require__(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};e[r].call(a.exports,a,a.exports,__w_pdfjs_require__);a.l=!0;return a.exports}__w_pdfjs_require__.m=e;__w_pdfjs_require__.c=t;__w_pdfjs_require__.d=function(e,t,r){__w_pdfjs_require__.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})};__w_pdfjs_require__.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"});Object.defineProperty(e,"__esModule",{value:!0})};__w_pdfjs_require__.t=function(e,t){1&t&&(e=__w_pdfjs_require__(e));if(8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);__w_pdfjs_require__.r(r);Object.defineProperty(r,"default",{enumerable:!0,value:e});if(2&t&&"string"!=typeof e)for(var a in e)__w_pdfjs_require__.d(r,a,function(t){return e[t]}.bind(null,a));return r};__w_pdfjs_require__.n=function(e){var t=e&&e.__esModule?function getDefault(){return e.default}:function getModuleExports(){return e};__w_pdfjs_require__.d(t,"a",t);return t};__w_pdfjs_require__.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)};__w_pdfjs_require__.p="";return __w_pdfjs_require__(__w_pdfjs_require__.s=0)}([function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});Object.defineProperty(t,"WorkerMessageHandler",{enumerable:!0,get:function(){return a.WorkerMessageHandler}});var a=r(1)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.WorkerMessageHandler=t.WorkerTask=void 0;var a=r(2),i=r(5),n=r(6),s=r(27),o=r(4),c=r(46),l=r(47),h=r(8);class WorkerTask{constructor(e){this.name=e;this.terminated=!1;this._capability=(0,a.createPromiseCapability)()}get finished(){return this._capability.promise}finish(){this._capability.resolve()}terminate(){this.terminated=!0}ensureNotTerminated(){if(this.terminated)throw new Error("Worker task was terminated")}}t.WorkerTask=WorkerTask;class WorkerMessageHandler{static setup(e,t){var r=!1;e.on("test",(function wphSetupTest(t){if(r)return;r=!0;if(!(t instanceof Uint8Array)){e.send("test",null);return}const a=255===t[0];e.postMessageTransfers=a;e.send("test",{supportTransfers:a})}));e.on("configure",(function wphConfigure(e){(0,a.setVerbosityLevel)(e.verbosity)}));e.on("GetDocRequest",(function wphSetupDoc(e){return WorkerMessageHandler.createDocumentHandler(e,t)}))}static createDocumentHandler(e,t){var r,o=!1,u=null,d=[];const f=(0,a.getVerbosityLevel)(),g=e.apiVersion;if("2.6.347"!==g)throw new Error(`The API version "${g}" does not match the Worker version "2.6.347".`);const m=[];for(const e in[])m.push(e);if(m.length)throw new Error("The `Array.prototype` contains unexpected enumerable properties: "+m.join(", ")+"; thus breaking e.g. `for...in` iteration of `Array`s.");if("undefined"==typeof ReadableStream||void 0===Promise.allSettled)throw new Error("The browser/environment lacks native support for critical functionality used by the PDF.js library (e.g. `ReadableStream` and/or `Promise.allSettled`); please use an ES5-compatible build instead.");var p=e.docId,b=e.docBaseUrl,y=e.docId+"_worker",v=new c.MessageHandler(y,p,t);v.postMessageTransfers=e.postMessageTransfers;function ensureNotTerminated(){if(o)throw new Error("Worker was terminated")}function startWorkerTask(e){d.push(e)}function finishWorkerTask(e){e.finish();var t=d.indexOf(e);d.splice(t,1)}async function loadDocument(e){await r.ensureDoc("checkHeader");await r.ensureDoc("parseStartXRef");await r.ensureDoc("parse",[e]);e||await r.ensureDoc("checkFirstPage");const[t,a]=await Promise.all([r.ensureDoc("numPages"),r.ensureDoc("fingerprint")]);return{numPages:t,fingerprint:a}}function getPdfManager(e,t){var r=(0,a.createPromiseCapability)();let i;var s=e.source;if(s.data){try{i=new n.LocalPdfManager(p,s.data,s.password,t,b);r.resolve(i)}catch(e){r.reject(e)}return r.promise}var o,c=[];try{o=new l.PDFWorkerStream(v)}catch(e){r.reject(e);return r.promise}var h=o.getFullReader();h.headersReady.then((function(){if(h.isRangeSupported){var e=s.disableAutoFetch||h.isStreamingSupported;i=new n.NetworkPdfManager(p,o,{msgHandler:v,password:s.password,length:h.contentLength,disableAutoFetch:e,rangeChunkSize:s.rangeChunkSize},t,b);for(let e=0;e{let r=[];for(const e of t)r=e.filter(e=>null!==e).reduce((e,t)=>e.concat(t),r);if(0===r.length)return e.bytes;const n=o.xref;let c=Object.create(null);if(n.trailer){const e=Object.create(null),t=n.trailer.get("Info")||null;t&&t.forEach((t,r)=>{(0,a.isString)(t)&&(0,a.isString)(r)&&(e[t]=(0,a.stringToPDFString)(r))});c={rootRef:n.trailer.getRaw("Root")||null,encrypt:n.trailer.getRaw("Encrypt")||null,newRef:n.getNewRef(),infoRef:n.trailer.getRaw("Info")||null,info:e,fileIds:n.trailer.getRaw("ID")||null,startXRef:o.startXRef,filename:i}}n.resetNewRef();return(0,s.incrementalUpdate)(e.bytes,c,r)})}));v.on("GetOperatorList",(function wphSetupRenderPage(e,t){var i=e.pageIndex;r.getPage(i).then((function(r){var n=new WorkerTask("GetOperatorList: page "+i);startWorkerTask(n);const s=f>=a.VerbosityLevel.INFOS?Date.now():0;r.getOperatorList({handler:v,sink:t,task:n,intent:e.intent,renderInteractiveForms:e.renderInteractiveForms,annotationStorage:e.annotationStorage}).then((function(e){finishWorkerTask(n);s&&(0,a.info)(`page=${i+1} - getOperatorList: time=${Date.now()-s}ms, len=${e.length}`);t.close()}),(function(e){finishWorkerTask(n);if(!n.terminated){v.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorOperatorList});t.error(e)}}))}))}),this);v.on("GetTextContent",(function wphExtractText(e,t){var i=e.pageIndex;t.onPull=function(e){};t.onCancel=function(e){};r.getPage(i).then((function(r){var n=new WorkerTask("GetTextContent: page "+i);startWorkerTask(n);const s=f>=a.VerbosityLevel.INFOS?Date.now():0;r.extractTextContent({handler:v,task:n,sink:t,normalizeWhitespace:e.normalizeWhitespace,combineTextItems:e.combineTextItems}).then((function(){finishWorkerTask(n);s&&(0,a.info)(`page=${i+1} - getTextContent: time=`+(Date.now()-s)+"ms");t.close()}),(function(e){finishWorkerTask(n);n.terminated||t.error(e)}))}))}));v.on("FontFallback",(function(e){return r.fontFallback(e.id,v)}));v.on("Cleanup",(function wphCleanup(e){return r.cleanup(!0)}));v.on("Terminate",(function wphTerminate(e){o=!0;const t=[];if(r){r.terminate(new a.AbortException("Worker was terminated."));const e=r.cleanup();t.push(e);r=null}else(0,i.clearPrimitiveCaches)();u&&u(new a.AbortException("Worker was terminated."));d.forEach((function(e){t.push(e.finished);e.terminate()}));return Promise.all(t).then((function(){v.destroy();v=null}))}));v.on("Ready",(function wphReady(t){!function setupDoc(e){function onSuccess(e){ensureNotTerminated();v.send("GetDoc",{pdfInfo:e})}function onFailure(e){ensureNotTerminated();if(e instanceof a.PasswordException){var t=new WorkerTask("PasswordException: response "+e.code);startWorkerTask(t);v.sendWithPromise("PasswordRequest",e).then((function({password:e}){finishWorkerTask(t);r.updatePassword(e);pdfManagerReady()})).catch((function(){finishWorkerTask(t);v.send("DocException",e)}))}else e instanceof a.InvalidPDFException||e instanceof a.MissingPDFException||e instanceof a.UnexpectedResponseException||e instanceof a.UnknownErrorException?v.send("DocException",e):v.send("DocException",new a.UnknownErrorException(e.message,e.toString()))}function pdfManagerReady(){ensureNotTerminated();loadDocument(!1).then(onSuccess,(function(e){ensureNotTerminated();if(e instanceof h.XRefParseException){r.requestLoadedStream();r.onLoadedStream().then((function(){ensureNotTerminated();loadDocument(!0).then(onSuccess,onFailure)}))}else onFailure(e)}))}ensureNotTerminated();getPdfManager(e,{maxImageSize:e.maxImageSize,disableFontFace:e.disableFontFace,ignoreErrors:e.ignoreErrors,isEvalSupported:e.isEvalSupported,fontExtraProperties:e.fontExtraProperties}).then((function(e){if(o){e.terminate(new a.AbortException("Worker was terminated."));throw new Error("Worker was terminated")}(r=e).onLoadedStream().then((function(e){v.send("DataLoaded",{length:e.bytes.byteLength})}))})).then(pdfManagerReady,onFailure)}(e);e=null}));return y}static initializeFromPort(e){var t=new c.MessageHandler("worker","main",e);WorkerMessageHandler.setup(t,e);t.send("ready",null)}}t.WorkerMessageHandler=WorkerMessageHandler;"undefined"==typeof window&&!o.isNodeJS&&"undefined"!=typeof self&&function isMessagePort(e){return"function"==typeof e.postMessage&&"onmessage"in e}(self)&&WorkerMessageHandler.initializeFromPort(self)},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.arrayByteLength=arrayByteLength;t.arraysToBytes=function arraysToBytes(e){const t=e.length;if(1===t&&e[0]instanceof Uint8Array)return e[0];let r=0;for(let a=0;at});e.promise=new Promise((function(r,a){e.resolve=function(e){t=!0;r(e)};e.reject=function(e){t=!0;a(e)}}));return e};t.escapeString=function escapeString(e){return e.replace(/([\(\)\\])/g,"\\$1")};t.getModificationDate=function getModificationDate(e=new Date(Date.now())){return[e.getUTCFullYear().toString(),(e.getUTCMonth()+1).toString().padStart(2,"0"),(e.getUTCDate()+1).toString().padStart(2,"0"),e.getUTCHours().toString().padStart(2,"0"),e.getUTCMinutes().toString().padStart(2,"0"),e.getUTCSeconds().toString().padStart(2,"0")].join("")};t.getVerbosityLevel=function getVerbosityLevel(){return i};t.info=function info(e){i>=a.INFOS&&console.log("Info: "+e)};t.isArrayBuffer=function isArrayBuffer(e){return"object"==typeof e&&null!==e&&void 0!==e.byteLength};t.isArrayEqual=function isArrayEqual(e,t){if(e.length!==t.length)return!1;return e.every((function(e,r){return e===t[r]}))};t.isBool=function isBool(e){return"boolean"==typeof e};t.isNum=function isNum(e){return"number"==typeof e};t.isString=function isString(e){return"string"==typeof e};t.isSameOrigin=function isSameOrigin(e,t){let r;try{r=new URL(e);if(!r.origin||"null"===r.origin)return!1}catch(e){return!1}const a=new URL(t,r);return r.origin===a.origin};t.createValidAbsoluteUrl=function createValidAbsoluteUrl(e,t){if(!e)return null;try{const r=t?new URL(e,t):new URL(e);if(function _isValidProtocol(e){if(!e)return!1;switch(e.protocol){case"http:":case"https:":case"ftp:":case"mailto:":case"tel:":return!0;default:return!1}}(r))return r}catch(e){}return null};t.removeNullCharacters=function removeNullCharacters(e){if("string"!=typeof e){warn("The argument for removeNullCharacters must be a string.");return e}return e.replace(s,"")};t.setVerbosityLevel=function setVerbosityLevel(e){Number.isInteger(e)&&(i=e)};t.shadow=shadow;t.string32=function string32(e){return String.fromCharCode(e>>24&255,e>>16&255,e>>8&255,255&e)};t.stringToBytes=stringToBytes;t.stringToPDFString=function stringToPDFString(e){const t=e.length,r=[];if("þ"===e[0]&&"ÿ"===e[1])for(let a=2;a=a.WARNINGS&&console.log("Warning: "+e)}function unreachable(e){throw new Error(e)}function assert(e,t){e||unreachable(t)}function shadow(e,t,r){Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!1});return r}const n=function BaseExceptionClosure(){function BaseException(e){this.constructor===BaseException&&unreachable("Cannot initialize BaseException.");this.message=e;this.name=this.constructor.name}BaseException.prototype=new Error;BaseException.constructor=BaseException;return BaseException}();t.BaseException=n;t.PasswordException=class PasswordException extends n{constructor(e,t){super(e);this.code=t}};t.UnknownErrorException=class UnknownErrorException extends n{constructor(e,t){super(e);this.details=t}};t.InvalidPDFException=class InvalidPDFException extends n{};t.MissingPDFException=class MissingPDFException extends n{};t.UnexpectedResponseException=class UnexpectedResponseException extends n{constructor(e,t){super(e);this.status=t}};t.FormatError=class FormatError extends n{};t.AbortException=class AbortException extends n{};const s=/\x00/g;function stringToBytes(e){assert("string"==typeof e,"Invalid argument for stringToBytes");const t=e.length,r=new Uint8Array(t);for(let a=0;ae[2]){t[0]=e[2];t[2]=e[0]}if(e[1]>e[3]){t[1]=e[3];t[3]=e[1]}return t}static intersect(e,t){function compare(e,t){return e-t}const r=[e[0],e[2],t[0],t[2]].sort(compare),a=[e[1],e[3],t[1],t[3]].sort(compare),i=[];e=Util.normalizeRect(e);t=Util.normalizeRect(t);if(!(r[0]===e[0]&&r[1]===t[0]||r[0]===t[0]&&r[1]===e[0]))return null;i[0]=r[1];i[2]=r[2];if(!(a[0]===e[1]&&a[1]===t[1]||a[0]===t[1]&&a[1]===e[1]))return null;i[1]=a[1];i[3]=a[2];return i}}t.Util=Util;const h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,728,711,710,729,733,731,730,732,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8226,8224,8225,8230,8212,8211,402,8260,8249,8250,8722,8240,8222,8220,8221,8216,8217,8218,8482,64257,64258,321,338,352,376,381,305,322,339,353,382,0,8364];const u=function createObjectURLClosure(){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return function createObjectURL(t,r,a=!1){if(!a&&URL.createObjectURL){const e=new Blob([t],{type:r});return URL.createObjectURL(e)}let i=`data:${r};base64,`;for(let r=0,a=t.length;r>2]+e[(3&n)<<4|s>>4]+e[r+1>6:64]+e[r+20?a:Dict.empty}const i=new Map;for(const e of t)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map)){let e=i.get(t);if(void 0===e){e=[];i.set(t,e)}e.push(r)}for(const[t,r]of i){if(1===r.length||!(r[0]instanceof Dict)){a._map[t]=r[0];continue}const i=new Dict(e);for(const e of r)if(e instanceof Dict)for(const[t,r]of Object.entries(e._map))void 0===i._map[t]&&(i._map[t]=r);i.size>0&&(a._map[t]=i)}i.clear();return a.size>0?a:Dict.empty};return Dict}();t.Dict=s;var o=function RefClosure(){let e=Object.create(null);function Ref(e,t){this.num=e;this.gen=t}Ref.prototype={toString:function Ref_toString(){return 0===this.gen?this.num+"R":`${this.num}R${this.gen}`}};Ref.get=function(t,r){const a=0===r?t+"R":`${t}R${r}`,i=e[a];return i||(e[a]=new Ref(t,r))};Ref._clearCache=function(){e=Object.create(null)};return Ref}();t.Ref=o;t.RefSet=class RefSet{constructor(){this._set=new Set}has(e){return this._set.has(e.toString())}put(e){this._set.add(e.toString())}remove(e){this._set.delete(e.toString())}};t.RefSetCache=class RefSetCache{constructor(){this._map=new Map}get size(){return this._map.size}get(e){return this._map.get(e.toString())}has(e){return this._map.has(e.toString())}put(e,t){this._map.set(e.toString(),t)}putAlias(e,t){this._map.set(e.toString(),this.get(t))}forEach(e){for(const t of this._map.values())e(t)}clear(){this._map.clear()}};function isName(e,t){return e instanceof i&&(void 0===t||e.name===t)}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.NetworkPdfManager=t.LocalPdfManager=void 0;var a=r(2),i=r(7),n=r(8),s=r(9),o=r(12);class BasePdfManager{constructor(){this.constructor===BasePdfManager&&(0,a.unreachable)("Cannot initialize BasePdfManager.")}get docId(){return this._docId}get password(){return this._password}get docBaseUrl(){let e=null;if(this._docBaseUrl){const t=(0,a.createValidAbsoluteUrl)(this._docBaseUrl);t?e=t.href:(0,a.warn)(`Invalid absolute docBaseUrl: "${this._docBaseUrl}".`)}return(0,a.shadow)(this,"docBaseUrl",e)}onLoadedStream(){(0,a.unreachable)("Abstract method `onLoadedStream` called")}ensureDoc(e,t){return this.ensure(this.pdfDocument,e,t)}ensureXRef(e,t){return this.ensure(this.pdfDocument.xref,e,t)}ensureCatalog(e,t){return this.ensure(this.pdfDocument.catalog,e,t)}getPage(e){return this.pdfDocument.getPage(e)}fontFallback(e,t){return this.pdfDocument.fontFallback(e,t)}cleanup(e=!1){return this.pdfDocument.cleanup(e)}async ensure(e,t,r){(0,a.unreachable)("Abstract method `ensure` called")}requestRange(e,t){(0,a.unreachable)("Abstract method `requestRange` called")}requestLoadedStream(){(0,a.unreachable)("Abstract method `requestLoadedStream` called")}sendProgressiveData(e){(0,a.unreachable)("Abstract method `sendProgressiveData` called")}updatePassword(e){this._password=e}terminate(e){(0,a.unreachable)("Abstract method `terminate` called")}}t.LocalPdfManager=class LocalPdfManager extends BasePdfManager{constructor(e,t,r,a,i){super();this._docId=e;this._password=r;this._docBaseUrl=i;this.evaluatorOptions=a;const n=new o.Stream(t);this.pdfDocument=new s.PDFDocument(this,n);this._loadedStreamPromise=Promise.resolve(n)}async ensure(e,t,r){const a=e[t];return"function"==typeof a?a.apply(e,r):a}requestRange(e,t){return Promise.resolve()}requestLoadedStream(){}onLoadedStream(){return this._loadedStreamPromise}terminate(e){}};t.NetworkPdfManager=class NetworkPdfManager extends BasePdfManager{constructor(e,t,r,a,n){super();this._docId=e;this._password=r.password;this._docBaseUrl=n;this.msgHandler=r.msgHandler;this.evaluatorOptions=a;this.streamManager=new i.ChunkedStreamManager(t,{msgHandler:r.msgHandler,length:r.length,disableAutoFetch:r.disableAutoFetch,rangeChunkSize:r.rangeChunkSize});this.pdfDocument=new s.PDFDocument(this,this.streamManager.getStream())}async ensure(e,t,r){try{const a=e[t];return"function"==typeof a?a.apply(e,r):a}catch(a){if(!(a instanceof n.MissingDataException))throw a;await this.requestRange(a.begin,a.end);return this.ensure(e,t,r)}}requestRange(e,t){return this.streamManager.requestRange(e,t)}requestLoadedStream(){this.streamManager.requestAllChunks()}sendProgressiveData(e){this.streamManager.onReceiveData({chunk:e})}onLoadedStream(){return this.streamManager.onLoadedStream()}terminate(e){this.streamManager.abort(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ChunkedStreamManager=t.ChunkedStream=void 0;var a=r(2),i=r(8);class ChunkedStream{constructor(e,t,r){this.bytes=new Uint8Array(e);this.start=0;this.pos=0;this.end=e;this.chunkSize=t;this._loadedChunks=new Set;this.numChunks=Math.ceil(e/t);this.manager=r;this.progressiveDataLength=0;this.lastSuccessfulEnsureByteChunk=-1}getMissingChunks(){const e=[];for(let t=0,r=this.numChunks;t=this.end?this.numChunks:Math.floor(t/this.chunkSize);for(let e=r;e=t)return;if(t<=this.progressiveDataLength)return;const r=this.chunkSize,a=Math.floor(e/r),n=Math.floor((t-1)/r)+1;for(let r=a;r=this.end)return-1;e>=this.progressiveDataLength&&this.ensureByte(e);return this.bytes[this.pos++]}getUint16(){const e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t}getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()}getBytes(e,t=!1){const r=this.bytes,a=this.pos,i=this.end;if(!e){i>this.progressiveDataLength&&this.ensureRange(a,i);const e=r.subarray(a,i);return t?new Uint8ClampedArray(e):e}let n=a+e;n>i&&(n=i);n>this.progressiveDataLength&&this.ensureRange(a,n);this.pos=n;const s=r.subarray(a,n);return t?new Uint8ClampedArray(s):s}peekByte(){const e=this.getByte();-1!==e&&this.pos--;return e}peekBytes(e,t=!1){const r=this.getBytes(e,t);this.pos-=r.length;return r}getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);t>this.progressiveDataLength&&this.ensureRange(e,t);return this.bytes.subarray(e,t)}skip(e){e||(e=1);this.pos+=e}reset(){this.pos=this.start}moveStart(){this.start=this.pos}makeSubStream(e,t,r){t?e+t>this.progressiveDataLength&&this.ensureRange(e,e+t):e>=this.progressiveDataLength&&this.ensureByte(e);function ChunkedStreamSubstream(){}ChunkedStreamSubstream.prototype=Object.create(this);ChunkedStreamSubstream.prototype.getMissingChunks=function(){const e=this.chunkSize,t=Math.floor(this.start/e),r=Math.floor((this.end-1)/e)+1,a=[];for(let e=t;e{const readChunk=s=>{try{if(!s.done){const e=s.value;i.push(e);n+=(0,a.arrayByteLength)(e);r.isStreamingSupported&&this.onProgress({loaded:n});r.read().then(readChunk,t);return}const o=(0,a.arraysToBytes)(i);i=null;e(o)}catch(e){t(e)}};r.read().then(readChunk,t)}).then(t=>{this.aborted||this.onReceiveData({chunk:t,begin:e})})}requestAllChunks(){const e=this.stream.getMissingChunks();this._requestChunks(e);return this._loadedStreamCapability.promise}_requestChunks(e){const t=this.currRequestId++,r=new Set;this._chunksNeededByRequest.set(t,r);for(const t of e)this.stream.hasChunk(t)||r.add(t);if(0===r.size)return Promise.resolve();const i=(0,a.createPromiseCapability)();this._promisesByRequest.set(t,i);const n=[];for(const e of r){let r=this._requestsByChunk.get(e);if(!r){r=[];this._requestsByChunk.set(e,r);n.push(e)}r.push(t)}if(n.length>0){const e=this.groupChunks(n);for(const t of e){const e=t.beginChunk*this.chunkSize,r=Math.min(t.endChunk*this.chunkSize,this.length);this.sendRequest(e,r)}}return i.promise.catch(e=>{if(!this.aborted)throw e})}getStream(){return this.stream}requestRange(e,t){t=Math.min(t,this.length);const r=this.getBeginChunk(e),a=this.getEndChunk(t),i=[];for(let e=r;e=0&&a+1!==n){t.push({beginChunk:r,endChunk:a+1});r=n}i+1===e.length&&t.push({beginChunk:r,endChunk:n+1});a=n}return t}onProgress(e){this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize+e.loaded,total:this.length})}onReceiveData(e){const t=e.chunk,r=void 0===e.begin,a=r?this.progressiveDataLength:e.begin,i=a+t.byteLength,n=Math.floor(a/this.chunkSize),s=i0||o.push(r)}}}if(!this.disableAutoFetch&&0===this._requestsByChunk.size){let e;if(1===this.stream.numChunksLoaded){const t=this.stream.numChunks-1;this.stream.hasChunk(t)||(e=t)}else e=this.stream.nextEmptyChunk(s);Number.isInteger(e)&&this._requestChunks([e])}for(const e of o){const t=this._promisesByRequest.get(e);this._promisesByRequest.delete(e);t.resolve()}this.msgHandler.send("DocProgress",{loaded:this.stream.numChunksLoaded*this.chunkSize,total:this.length})}onError(e){this._loadedStreamCapability.reject(e)}getBeginChunk(e){return Math.floor(e/this.chunkSize)}getEndChunk(e){return Math.floor((e-1)/this.chunkSize)+1}abort(e){this.aborted=!0;this.pdfNetworkStream&&this.pdfNetworkStream.cancelAllRequests(e);for(const t of this._promisesByRequest.values())t.reject(e)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getLookupTableFactory=function getLookupTableFactory(e){let t;return function(){if(e){t=Object.create(null);e(t);e=null}return t}};t.getInheritableProperty=function getInheritableProperty({dict:e,key:t,getArray:r=!1,stopWhenFound:i=!0}){let n,s=0;for(;e;){const o=r?e.getArray(t):e.get(t);if(void 0!==o){if(i)return o;n||(n=[]);n.push(o)}if(++s>100){(0,a.warn)(`getInheritableProperty: maximum loop count exceeded for "${t}"`);break}e=e.get("Parent")}return n};t.toRomanNumerals=function toRomanNumerals(e,t=!1){(0,a.assert)(Number.isInteger(e)&&e>0,"The number should be a positive integer.");const r=[];let n;for(;e>=1e3;){e-=1e3;r.push("M")}n=e/100|0;e%=100;r.push(i[n]);n=e/10|0;e%=10;r.push(i[10+n]);r.push(i[20+e]);const s=r.join("");return t?s.toLowerCase():s};t.log2=function log2(e){if(e<=0)return 0;return Math.ceil(Math.log2(e))};t.readInt8=function readInt8(e,t){return e[t]<<24>>24};t.readUint16=function readUint16(e,t){return e[t]<<8|e[t+1]};t.readUint32=function readUint32(e,t){return(e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3])>>>0};t.isWhiteSpace=function isWhiteSpace(e){return 32===e||9===e||13===e||10===e};t.XRefParseException=t.XRefEntryException=t.MissingDataException=void 0;var a=r(2);class MissingDataException extends a.BaseException{constructor(e,t){super(`Missing data [${e}, ${t})`);this.begin=e;this.end=t}}t.MissingDataException=MissingDataException;class XRefEntryException extends a.BaseException{}t.XRefEntryException=XRefEntryException;class XRefParseException extends a.BaseException{}t.XRefParseException=XRefParseException;const i=["","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"]},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFDocument=t.Page=void 0;var a=r(2),i=r(10),n=r(5),s=r(8),o=r(12),c=r(25),l=r(22),h=r(11),u=r(26),d=r(28);const f=[0,0,612,792];function isAnnotationRenderable(e,t){return"display"===t&&e.viewable||"print"===t&&e.printable}class Page{constructor({pdfManager:e,xref:t,pageIndex:r,pageDict:a,ref:i,globalIdFactory:n,fontCache:s,builtInCMapCache:o,globalImageCache:c}){this.pdfManager=e;this.pageIndex=r;this.pageDict=a;this.xref=t;this.ref=i;this.fontCache=s;this.builtInCMapCache=o;this.globalImageCache=c;this.evaluatorOptions=e.evaluatorOptions;this.resourcesPromise=null;const l={obj:0};this._localIdFactory=class extends n{static createObjId(){return`p${r}_${++l.obj}`}}}_getInheritableProperty(e,t=!1){const r=(0,s.getInheritableProperty)({dict:this.pageDict,key:e,getArray:t,stopWhenFound:!1});return Array.isArray(r)?1!==r.length&&(0,n.isDict)(r[0])?n.Dict.merge({xref:this.xref,dictArray:r}):r[0]:r}get content(){return this.pageDict.get("Contents")}get resources(){return(0,a.shadow)(this,"resources",this._getInheritableProperty("Resources")||n.Dict.empty)}_getBoundingBox(e){const t=this._getInheritableProperty(e,!0);if(Array.isArray(t)&&4===t.length){if(t[2]-t[0]!=0&&t[3]-t[1]!=0)return t;(0,a.warn)(`Empty /${e} entry.`)}return null}get mediaBox(){return(0,a.shadow)(this,"mediaBox",this._getBoundingBox("MediaBox")||f)}get cropBox(){return(0,a.shadow)(this,"cropBox",this._getBoundingBox("CropBox")||this.mediaBox)}get userUnit(){let e=this.pageDict.get("UserUnit");(!(0,a.isNum)(e)||e<=0)&&(e=1);return(0,a.shadow)(this,"userUnit",e)}get view(){const{cropBox:e,mediaBox:t}=this;let r;if(e===t||(0,a.isArrayEqual)(e,t))r=t;else{const i=a.Util.intersect(e,t);i&&i[2]-i[0]!=0&&i[3]-i[1]!=0?r=i:(0,a.warn)("Empty /CropBox and /MediaBox intersection.")}return(0,a.shadow)(this,"view",r||t)}get rotate(){let e=this._getInheritableProperty("Rotate")||0;e%90!=0?e=0:e>=360?e%=360:e<0&&(e=(e%360+360)%360);return(0,a.shadow)(this,"rotate",e)}getContentStream(){const e=this.content;let t;if(Array.isArray(e)){const r=this.xref,a=[];for(const t of e)a.push(r.fetchIfRef(t));t=new o.StreamsSequenceStream(a)}else t=(0,n.isStream)(e)?e:new o.NullStream;return t}save(e,t,r){const i=new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions});return this._parsedAnnotations.then((function(e){const n=[];for(const s of e)isAnnotationRenderable(s,"print")&&n.push(s.save(i,t,r).catch((function(e){(0,a.warn)(`save - ignoring annotation data during "${t.name}" task: "${e}".`);return null})));return Promise.all(n)}))}loadResources(e){this.resourcesPromise||(this.resourcesPromise=this.pdfManager.ensure(this,"resources"));return this.resourcesPromise.then(()=>new i.ObjectLoader(this.resources,e,this.xref).load())}getOperatorList({handler:e,sink:t,task:r,intent:i,renderInteractiveForms:n,annotationStorage:s}){const o=this.pdfManager.ensure(this,"getContentStream"),c=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),l=new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}),h=Promise.all([o,c]).then(([a])=>{const n=new u.OperatorList(i,t);e.send("StartRenderPage",{transparency:l.hasBlendModes(this.resources),pageIndex:this.pageIndex,intent:i});return l.getOperatorList({stream:a,task:r,resources:this.resources,operatorList:n}).then((function(){return n}))});return Promise.all([h,this._parsedAnnotations]).then((function([e,t]){if(0===t.length){e.flush(!0);return{length:e.totalLength}}const o=[];for(const e of t)isAnnotationRenderable(e,i)&&o.push(e.getOperatorList(l,r,n,s).catch((function(e){(0,a.warn)(`getOperatorList - ignoring annotation data during "${r.name}" task: "${e}".`);return null})));return Promise.all(o).then((function(t){e.addOp(a.OPS.beginAnnotations,[]);for(const r of t)e.addOpList(r);e.addOp(a.OPS.endAnnotations,[]);e.flush(!0);return{length:e.totalLength}}))}))}extractTextContent({handler:e,task:t,normalizeWhitespace:r,sink:a,combineTextItems:i}){const n=this.pdfManager.ensure(this,"getContentStream"),s=this.loadResources(["ExtGState","XObject","Font"]);return Promise.all([n,s]).then(([n])=>new d.PartialEvaluator({xref:this.xref,handler:e,pageIndex:this.pageIndex,idFactory:this._localIdFactory,fontCache:this.fontCache,builtInCMapCache:this.builtInCMapCache,globalImageCache:this.globalImageCache,options:this.evaluatorOptions}).getTextContent({stream:n,task:t,resources:this.resources,normalizeWhitespace:r,combineTextItems:i,sink:a}))}getAnnotationsData(e){return this._parsedAnnotations.then((function(t){const r=[];for(let a=0,i=t.length;a{const e=[];for(const t of this.annotations)e.push(c.AnnotationFactory.create(this.xref,t,this.pdfManager,this._localIdFactory).catch((function(e){(0,a.warn)(`_parsedAnnotations: "${e}".`);return null})));return Promise.all(e).then((function(e){return e.filter(e=>!!e)}))});return(0,a.shadow)(this,"_parsedAnnotations",e)}}t.Page=Page;const g=new Uint8Array([37,80,68,70,45]),m=new Uint8Array([115,116,97,114,116,120,114,101,102]),p=new Uint8Array([101,110,100,111,98,106]),b=/^[1-9]\.[0-9]$/;function find(e,t,r=1024,a=!1){const i=t.length,n=e.peekBytes(r),s=n.length-i;if(s<=0)return!1;if(a){const r=i-1;let a=n.length-1;for(;a>=r;){let s=0;for(;s=i){e.pos+=a-r;return!0}a--}}else{let r=0;for(;r<=s;){let a=0;for(;a=i){e.pos+=r;return!0}r++}}return!1}t.PDFDocument=class PDFDocument{constructor(e,t){let r;if((0,n.isStream)(t))r=t;else{if(!(0,a.isArrayBuffer)(t))throw new Error("PDFDocument: Unknown argument type");r=new o.Stream(t)}if(r.length<=0)throw new a.InvalidPDFException("The PDF file is empty, i.e. its size is zero bytes.");this.pdfManager=e;this.stream=r;this.xref=new i.XRef(r,e);this._pagePromises=[];this._version=null;const s={font:0};this._globalIdFactory=class{static getDocId(){return"g_"+e.docId}static createFontId(){return"f"+ ++s.font}static createObjId(){(0,a.unreachable)("Abstract method `createObjId` called.")}}}parse(e){this.xref.parse(e);this.catalog=new i.Catalog(this.pdfManager,this.xref);this.catalog.version&&(this._version=this.catalog.version)}get linearization(){let e=null;try{e=h.Linearization.create(this.stream)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)(e)}return(0,a.shadow)(this,"linearization",e)}get startXRef(){const e=this.stream;let t=0;if(this.linearization){e.reset();find(e,p)&&(t=e.pos+6-e.start)}else{const r=1024,a=m.length;let i=!1,n=e.end;for(;!i&&n>0;){n-=r-a;n<0&&(n=0);e.pos=n;i=find(e,m,r,!0)}if(i){e.skip(9);let r;do{r=e.getByte()}while((0,s.isWhiteSpace)(r));let a="";for(;r>=32&&r<=57;){a+=String.fromCharCode(r);r=e.getByte()}t=parseInt(a,10);isNaN(t)&&(t=0)}}return(0,a.shadow)(this,"startXRef",t)}checkHeader(){const e=this.stream;e.reset();if(!find(e,g))return;e.moveStart();let t,r="";for(;(t=e.getByte())>32&&!(r.length>=12);)r+=String.fromCharCode(t);this._version||(this._version=r.substring(5))}parseStartXRef(){this.xref.setStartXRef(this.startXRef)}get numPages(){const e=this.linearization,t=e?e.numPages:this.catalog.numPages;return(0,a.shadow)(this,"numPages",t)}_hasOnlyDocumentSignatures(e,t=0){return e.every(e=>{if((e=this.xref.fetchIfRef(e)).has("Kids")){if(++t>10){(0,a.warn)("_hasOnlyDocumentSignatures: maximum recursion depth reached");return!1}return this._hasOnlyDocumentSignatures(e.get("Kids"),t)}const r=(0,n.isName)(e.get("FT"),"Sig"),i=e.get("Rect"),s=Array.isArray(i)&&i.every(e=>0===e);return r&&s})}get formInfo(){const e={hasAcroForm:!1,hasXfa:!1},t=this.catalog.acroForm;if(!t)return(0,a.shadow)(this,"formInfo",e);try{const r=t.get("XFA"),a=Array.isArray(r)&&r.length>0||(0,n.isStream)(r)&&!r.isEmpty;e.hasXfa=a;const i=t.get("Fields"),s=Array.isArray(i)&&i.length>0,o=!!(1&t.get("SigFlags"))&&this._hasOnlyDocumentSignatures(i);e.hasAcroForm=s&&!o}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch form information.")}return(0,a.shadow)(this,"formInfo",e)}get documentInfo(){const e={Title:a.isString,Author:a.isString,Subject:a.isString,Keywords:a.isString,Creator:a.isString,Producer:a.isString,CreationDate:a.isString,ModDate:a.isString,Trapped:n.isName};let t=this._version;if("string"!=typeof t||!b.test(t)){(0,a.warn)("Invalid PDF header version number: "+t);t=null}const r={PDFFormatVersion:t,IsLinearized:!!this.linearization,IsAcroFormPresent:this.formInfo.hasAcroForm,IsXFAPresent:this.formInfo.hasXfa,IsCollectionPresent:!!this.catalog.collection};let i;try{i=this.xref.trailer.get("Info")}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("The document information dictionary is invalid.")}if((0,n.isDict)(i))for(const t of i.getKeys()){const s=i.get(t);if(e[t])e[t](s)?r[t]="string"!=typeof s?s:(0,a.stringToPDFString)(s):(0,a.info)(`Bad value in document info for "${t}".`);else if("string"==typeof t){let e;if((0,a.isString)(s))e=(0,a.stringToPDFString)(s);else{if(!((0,n.isName)(s)||(0,a.isNum)(s)||(0,a.isBool)(s))){(0,a.info)(`Unsupported value in document info for (custom) "${t}".`);continue}e=s}r.Custom||(r.Custom=Object.create(null));r.Custom[t]=e}}return(0,a.shadow)(this,"documentInfo",r)}get fingerprint(){let e;const t=this.xref.trailer.get("ID");e=Array.isArray(t)&&t[0]&&(0,a.isString)(t[0])&&"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"!==t[0]?(0,a.stringToBytes)(t[0]):(0,l.calculateMD5)(this.stream.getByteRange(0,1024),0,1024);const r=[];for(let t=0,a=e.length;t{if((0,n.isDict)(e,"Page")||(0,n.isDict)(e)&&!e.has("Type")&&e.has("Contents")){i&&!t.pageKidsCountCache.has(i)&&t.pageKidsCountCache.put(i,1);return[e,i]}throw new a.FormatError("The Linearization dictionary doesn't point to a valid Page dictionary.")}).catch(r=>{(0,a.info)(r);return t.getPageDict(e)})}getPage(e){if(void 0!==this._pagePromises[e])return this._pagePromises[e];const{catalog:t,linearization:r}=this,a=r&&r.pageFirst===e?this._getLinearizationPage(e):t.getPageDict(e);return this._pagePromises[e]=a.then(([r,a])=>new Page({pdfManager:this.pdfManager,xref:this.xref,pageIndex:e,pageDict:r,ref:a,globalIdFactory:this._globalIdFactory,fontCache:t.fontCache,builtInCMapCache:t.builtInCMapCache,globalImageCache:t.globalImageCache}))}checkFirstPage(){return this.getPage(0).catch(async e=>{if(e instanceof s.XRefEntryException){this._pagePromises.length=0;await this.cleanup();throw new s.XRefParseException}})}fontFallback(e,t){return this.catalog.fontFallback(e,t)}async cleanup(e=!1){return this.catalog?this.catalog.cleanup(e):(0,n.clearPrimitiveCaches)()}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.FileSpec=t.XRef=t.ObjectLoader=t.Catalog=void 0;var a=r(2),i=r(5),n=r(11),s=r(8),o=r(22),c=r(23),l=r(24);function fetchDestination(e){return(0,i.isDict)(e)?e.get("D"):e}class Catalog{constructor(e,t){this.pdfManager=e;this.xref=t;this._catDict=t.getCatalogObj();if(!(0,i.isDict)(this._catDict))throw new a.FormatError("Catalog object is not a dictionary.");this.fontCache=new i.RefSetCache;this.builtInCMapCache=new Map;this.globalImageCache=new l.GlobalImageCache;this.pageKidsCountCache=new i.RefSetCache}get version(){const e=this._catDict.get("Version");return(0,i.isName)(e)?(0,a.shadow)(this,"version",e.name):(0,a.shadow)(this,"version",null)}get collection(){let e=null;try{const t=this._catDict.get("Collection");(0,i.isDict)(t)&&t.size>0&&(e=t)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch Collection entry; assuming no collection is present.")}return(0,a.shadow)(this,"collection",e)}get acroForm(){let e=null;try{const t=this._catDict.get("AcroForm");(0,i.isDict)(t)&&t.size>0&&(e=t)}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Cannot fetch AcroForm entry; assuming no forms are present.")}return(0,a.shadow)(this,"acroForm",e)}get metadata(){const e=this._catDict.getRaw("Metadata");if(!(0,i.isRef)(e))return(0,a.shadow)(this,"metadata",null);const t=!(this.xref.encrypt&&this.xref.encrypt.encryptMetadata),r=this.xref.fetch(e,t);let n;if(r&&(0,i.isDict)(r.dict)){const e=r.dict.get("Type"),t=r.dict.get("Subtype");if((0,i.isName)(e,"Metadata")&&(0,i.isName)(t,"XML"))try{n=(0,a.stringToUTF8String)((0,a.bytesToString)(r.getBytes()))}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.info)("Skipping invalid metadata.")}}return(0,a.shadow)(this,"metadata",n)}get toplevelPagesDict(){const e=this._catDict.get("Pages");if(!(0,i.isDict)(e))throw new a.FormatError("Invalid top-level pages dictionary.");return(0,a.shadow)(this,"toplevelPagesDict",e)}get documentOutline(){let e=null;try{e=this._readDocumentOutline()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read document outline.")}return(0,a.shadow)(this,"documentOutline",e)}_readDocumentOutline(){let e=this._catDict.get("Outlines");if(!(0,i.isDict)(e))return null;e=e.getRaw("First");if(!(0,i.isRef)(e))return null;const t={items:[]},r=[{obj:e,parent:t}],n=new i.RefSet;n.put(e);const s=this.xref,o=new Uint8ClampedArray(3);for(;r.length>0;){const t=r.shift(),l=s.fetchIfRef(t.obj);if(null===l)continue;if(!l.has("Title"))throw new a.FormatError("Invalid outline item encountered.");const h={url:null,dest:null};Catalog.parseDestDictionary({destDict:l,resultObj:h,docBaseUrl:this.pdfManager.docBaseUrl});const u=l.get("Title"),d=l.get("F")||0,f=l.getArray("C"),g=l.get("Count");let m=o;!Array.isArray(f)||3!==f.length||0===f[0]&&0===f[1]&&0===f[2]||(m=c.ColorSpace.singletons.rgb.getRgb(f,0));const p={dest:h.dest,url:h.url,unsafeUrl:h.unsafeUrl,newWindow:h.newWindow,title:(0,a.stringToPDFString)(u),color:m,count:Number.isInteger(g)?g:void 0,bold:!!(2&d),italic:!!(1&d),items:[]};t.parent.items.push(p);e=l.getRaw("First");if((0,i.isRef)(e)&&!n.has(e)){r.push({obj:e,parent:p});n.put(e)}e=l.getRaw("Next");if((0,i.isRef)(e)&&!n.has(e)){r.push({obj:e,parent:t.parent});n.put(e)}}return t.items.length>0?t.items:null}get permissions(){let e=null;try{e=this._readPermissions()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read permissions.")}return(0,a.shadow)(this,"permissions",e)}_readPermissions(){const e=this.xref.trailer.get("Encrypt");if(!(0,i.isDict)(e))return null;let t=e.get("P");if(!(0,a.isNum)(t))return null;t+=2**32;const r=[];for(const e in a.PermissionFlag){const i=a.PermissionFlag[e];t&i&&r.push(i)}return r}get optionalContentConfig(){let e=null;try{const t=this._catDict.get("OCProperties");if(!t)return(0,a.shadow)(this,"optionalContentConfig",null);const r=t.get("D");if(!r)return(0,a.shadow)(this,"optionalContentConfig",null);const n=t.get("OCGs");if(!Array.isArray(n))return(0,a.shadow)(this,"optionalContentConfig",null);const s=[],o=[];for(const e of n){if(!(0,i.isRef)(e))continue;o.push(e);const t=this.xref.fetchIfRef(e);s.push({id:e.toString(),name:(0,a.isString)(t.get("Name"))?(0,a.stringToPDFString)(t.get("Name")):null,intent:(0,a.isString)(t.get("Intent"))?(0,a.stringToPDFString)(t.get("Intent")):null})}e=this._readOptionalContentConfig(r,o);e.groups=s}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read optional content config: "+e)}return(0,a.shadow)(this,"optionalContentConfig",e)}_readOptionalContentConfig(e,t){function parseOnOff(e){const r=[];if(Array.isArray(e))for(const a of e)(0,i.isRef)(a)&&t.includes(a)&&r.push(a.toString());return r}function parseOrder(e,r=0){if(!Array.isArray(e))return null;const a=[];for(const s of e){if((0,i.isRef)(s)&&t.includes(s)){n.put(s);a.push(s.toString());continue}const e=parseNestedOrder(s,r);e&&a.push(e)}if(r>0)return a;const s=[];for(const e of t)n.has(e)||s.push(e.toString());s.length&&a.push({name:null,order:s});return a}function parseNestedOrder(e,t){if(++t>s){(0,a.warn)("parseNestedOrder - reached MAX_NESTED_LEVELS.");return null}const i=r.fetchIfRef(e);if(!Array.isArray(i))return null;const n=r.fetchIfRef(i[0]);if("string"!=typeof n)return null;const o=parseOrder(i.slice(1),t);return o&&o.length?{name:(0,a.stringToPDFString)(n),order:o}:null}const r=this.xref,n=new i.RefSet,s=10;return{name:(0,a.isString)(e.get("Name"))?(0,a.stringToPDFString)(e.get("Name")):null,creator:(0,a.isString)(e.get("Creator"))?(0,a.stringToPDFString)(e.get("Creator")):null,baseState:(0,i.isName)(e.get("BaseState"))?e.get("BaseState").name:null,on:parseOnOff(e.get("ON")),off:parseOnOff(e.get("OFF")),order:parseOrder(e.get("Order")),groups:null}}get numPages(){const e=this.toplevelPagesDict.get("Count");if(!Number.isInteger(e))throw new a.FormatError("Page count in top-level pages dictionary is not an integer.");return(0,a.shadow)(this,"numPages",e)}get destinations(){const e=this._readDests(),t=Object.create(null);if(e instanceof NameTree){const r=e.getAll();for(const e in r)t[e]=fetchDestination(r[e])}else e instanceof i.Dict&&e.forEach((function(e,r){r&&(t[e]=fetchDestination(r))}));return(0,a.shadow)(this,"destinations",t)}getDestination(e){const t=this._readDests();return t instanceof NameTree||t instanceof i.Dict?fetchDestination(t.get(e)||null):null}_readDests(){const e=this._catDict.get("Names");return e&&e.has("Dests")?new NameTree(e.getRaw("Dests"),this.xref):this._catDict.has("Dests")?this._catDict.get("Dests"):void 0}get pageLabels(){let e=null;try{e=this._readPageLabels()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Unable to read page labels.")}return(0,a.shadow)(this,"pageLabels",e)}_readPageLabels(){const e=this._catDict.getRaw("PageLabels");if(!e)return null;const t=new Array(this.numPages);let r=null,n="";const o=new NumberTree(e,this.xref).getAll();let c="",l=1;for(let e=0,h=this.numPages;e=1))throw new a.FormatError("Invalid start in PageLabel dictionary.");l=e}else l=1}switch(r){case"D":c=l;break;case"R":case"r":c=(0,s.toRomanNumerals)(l,"r"===r);break;case"A":case"a":const e=26,t=65,i=97,n="a"===r?i:t,o=l-1,h=String.fromCharCode(n+o%e),u=[];for(let t=0,r=o/e|0;t<=r;t++)u.push(h);c=u.join("");break;default:if(r)throw new a.FormatError(`Invalid style "${r}" in PageLabel dictionary.`);c=""}t[e]=n+c;l++}return t}get pageLayout(){const e=this._catDict.get("PageLayout");let t="";if((0,i.isName)(e))switch(e.name){case"SinglePage":case"OneColumn":case"TwoColumnLeft":case"TwoColumnRight":case"TwoPageLeft":case"TwoPageRight":t=e.name}return(0,a.shadow)(this,"pageLayout",t)}get pageMode(){const e=this._catDict.get("PageMode");let t="UseNone";if((0,i.isName)(e))switch(e.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"FullScreen":case"UseOC":case"UseAttachments":t=e.name}return(0,a.shadow)(this,"pageMode",t)}get viewerPreferences(){const e={HideToolbar:a.isBool,HideMenubar:a.isBool,HideWindowUI:a.isBool,FitWindow:a.isBool,CenterWindow:a.isBool,DisplayDocTitle:a.isBool,NonFullScreenPageMode:i.isName,Direction:i.isName,ViewArea:i.isName,ViewClip:i.isName,PrintArea:i.isName,PrintClip:i.isName,PrintScaling:i.isName,Duplex:i.isName,PickTrayByPDFSize:a.isBool,PrintPageRange:Array.isArray,NumCopies:Number.isInteger},t=this._catDict.get("ViewerPreferences");let r=null;if((0,i.isDict)(t))for(const i in e){if(!t.has(i))continue;const n=t.get(i);if(!e[i](n)){(0,a.info)(`Bad value in ViewerPreferences for "${i}".`);continue}let s;switch(i){case"NonFullScreenPageMode":switch(n.name){case"UseNone":case"UseOutlines":case"UseThumbs":case"UseOC":s=n.name;break;default:s="UseNone"}break;case"Direction":switch(n.name){case"L2R":case"R2L":s=n.name;break;default:s="L2R"}break;case"ViewArea":case"ViewClip":case"PrintArea":case"PrintClip":switch(n.name){case"MediaBox":case"CropBox":case"BleedBox":case"TrimBox":case"ArtBox":s=n.name;break;default:s="CropBox"}break;case"PrintScaling":switch(n.name){case"None":case"AppDefault":s=n.name;break;default:s="AppDefault"}break;case"Duplex":switch(n.name){case"Simplex":case"DuplexFlipShortEdge":case"DuplexFlipLongEdge":s=n.name;break;default:s="None"}break;case"PrintPageRange":if(n.length%2!=0)break;n.every((e,t,r)=>Number.isInteger(e)&&e>0&&(0===t||e>=r[t-1])&&e<=this.numPages)&&(s=n);break;case"NumCopies":n>0&&(s=n);break;default:if("boolean"!=typeof n)throw new a.FormatError("viewerPreferences - expected a boolean value for: "+i);s=n}if(void 0!==s){r||(r=Object.create(null));r[i]=s}else(0,a.info)(`Bad value in ViewerPreferences for "${i}".`)}return(0,a.shadow)(this,"viewerPreferences",r)}get openAction(){const e=this._catDict.get("OpenAction");let t=null;if((0,i.isDict)(e)){const r=new i.Dict(this.xref);r.set("A",e);const a={url:null,dest:null,action:null};Catalog.parseDestDictionary({destDict:r,resultObj:a});if(Array.isArray(a.dest)){t||(t=Object.create(null));t.dest=a.dest}else if(a.action){t||(t=Object.create(null));t.action=a.action}}else if(Array.isArray(e)){t||(t=Object.create(null));t.dest=e}return(0,a.shadow)(this,"openAction",t)}get attachments(){const e=this._catDict.get("Names");let t=null;if(e&&e.has("EmbeddedFiles")){const r=new NameTree(e.getRaw("EmbeddedFiles"),this.xref).getAll();for(const e in r){const i=new u(r[e],this.xref);t||(t=Object.create(null));t[(0,a.stringToPDFString)(e)]=i.serializable}}return(0,a.shadow)(this,"attachments",t)}get javaScript(){const e=this._catDict.get("Names");let t=null;function appendIfJavaScriptDict(e){const r=e.get("S");if(!(0,i.isName)(r,"JavaScript"))return;let n=e.get("JS");if((0,i.isStream)(n))n=(0,a.bytesToString)(n.getBytes());else if(!(0,a.isString)(n))return;t||(t=[]);t.push((0,a.stringToPDFString)(n))}if(e&&e.has("JavaScript")){const t=new NameTree(e.getRaw("JavaScript"),this.xref).getAll();for(const e in t){const r=t[e];(0,i.isDict)(r)&&appendIfJavaScriptDict(r)}}const r=this._catDict.get("OpenAction");(0,i.isDict)(r)&&(0,i.isName)(r.get("S"),"JavaScript")&&appendIfJavaScriptDict(r);return(0,a.shadow)(this,"javaScript",t)}fontFallback(e,t){const r=[];this.fontCache.forEach((function(e){r.push(e)}));return Promise.all(r).then(r=>{for(const a of r)if(a.loadedName===e){a.fallback(t);return}})}cleanup(e=!1){(0,i.clearPrimitiveCaches)();this.globalImageCache.clear(e);this.pageKidsCountCache.clear();const t=[];this.fontCache.forEach((function(e){t.push(e)}));return Promise.all(t).then(e=>{for(const{dict:t}of e)delete t.translated;this.fontCache.clear();this.builtInCMapCache.clear()})}getPageDict(e){const t=(0,a.createPromiseCapability)(),r=[this._catDict.getRaw("Pages")],n=new i.RefSet,s=this.xref,o=this.pageKidsCountCache;let c,l=0;!function next(){for(;r.length;){const h=r.pop();if((0,i.isRef)(h)){c=o.get(h);if(c>0&&l+c=0){const t=h.objId;t&&!o.has(t)&&o.put(t,c);if(l+c<=e){l+=c;continue}}const u=h.get("Kids");if(!Array.isArray(u)){if((0,i.isName)(h.get("Type"),"Page")||!h.has("Type")&&h.has("Contents")){if(l===e){t.resolve([h,null]);return}l++;continue}t.reject(new a.FormatError("Page dictionary kids object is not an array."));return}for(let e=u.length-1;e>=0;e--)r.push(u[e])}t.reject(new Error(`Page index ${e} not found.`))}();return t.promise}getPageIndex(e){const t=this.xref;let r=0;return function next(n){return function pagesBeforeRef(r){let n,s=0;return t.fetchAsync(r).then((function(t){if((0,i.isRefsEqual)(r,e)&&!(0,i.isDict)(t,"Page")&&(!(0,i.isDict)(t)||t.has("Type")||!t.has("Contents")))throw new a.FormatError("The reference does not point to a /Page dictionary.");if(!t)return null;if(!(0,i.isDict)(t))throw new a.FormatError("Node must be a dictionary.");n=t.getRaw("Parent");return t.getAsync("Parent")})).then((function(e){if(!e)return null;if(!(0,i.isDict)(e))throw new a.FormatError("Parent must be a dictionary.");return e.getAsync("Kids")})).then((function(e){if(!e)return null;const o=[];let c=!1;for(let n=0,l=e.length;n0;){var h=l[0],u=l[1];if(!Number.isInteger(h)||!Number.isInteger(u))throw new a.FormatError(`Invalid XRef range fields: ${h}, ${u}`);if(!Number.isInteger(s)||!Number.isInteger(o)||!Number.isInteger(c))throw new a.FormatError(`Invalid XRef entry fields length: ${h}, ${u}`);for(t=i.entryNum;t=e.length);){r+=String.fromCharCode(a);a=e[t]}return r}function skipUntil(e,t,r){for(var a=r.length,i=e.length,n=0;t=a)break;t++;n++}return n}var e=/^(\d+)\s+(\d+)\s+obj\b/;const t=/\bendobj[\b\s]$/,r=/\s+(\d+\s+\d+\s+obj[\b\s<])$/;var o=new Uint8Array([116,114,97,105,108,101,114]),c=new Uint8Array([115,116,97,114,116,120,114,101,102]);const l=new Uint8Array([111,98,106]);var h=new Uint8Array([47,88,82,101,102]);this.entries.length=0;var u=this.stream;u.pos=0;for(var d,f,g=u.getBytes(),m=u.start,p=g.length,b=[],y=[];m=p)break;v=g[m]}while(10!==v&&13!==v);else++m}for(d=0,f=y.length;d0;){const s=t.fetchIfRef(n.shift());if(!(0,i.isDict)(s))continue;if(s.has("Kids")){const e=s.get("Kids");for(let t=0,i=e.length;t10){(0,a.warn)(`Search depth limit reached for "${this._type}" tree.`);return null}const n=r.get("Kids");if(!Array.isArray(n))return null;let s=0,o=n.length-1;for(;s<=o;){const a=s+o>>1,i=t.fetchIfRef(n[a]).get("Limits");if(et.fetchIfRef(i[1]))){r=t.fetchIfRef(n[a]);break}s=a+1}}if(s>o)return null}const n=r.get(this._type);if(Array.isArray(n)){let r=0,i=n.length-2;for(;r<=i;){const a=r+i>>1,s=a+(1&a),o=t.fetchIfRef(n[s]);if(eo))return t.fetchIfRef(n[s+1]);r=s+2}}(0,a.info)(`Falling back to an exhaustive search, for key "${e}", in "${this._type}" tree.`);for(let r=0,i=n.length;r>")&&!(0,n.isEOF)(this.buf1);){if(!(0,n.isName)(this.buf1)){(0,i.info)("Malformed dictionary: key must be a name object");this.shift();continue}const t=this.buf1.name;this.shift();if((0,n.isEOF)(this.buf1))break;a.set(t,this.getObj(e))}if((0,n.isEOF)(this.buf1)){if(!this.recoveryMode)throw new i.FormatError("End of file inside dictionary");return a}if((0,n.isCmd)(this.buf2,"stream"))return this.allowStreams?this.makeStream(a,e):a;this.shift();return a;default:return t}if(Number.isInteger(t)){if(Number.isInteger(this.buf1)&&(0,n.isCmd)(this.buf2,"R")){const e=n.Ref.get(t,this.buf1);this.shift();this.shift();return e}return t}return"string"==typeof t&&e?e.decryptString(t):t}findDefaultInlineStreamEnd(e){const t=this.lexer,r=e.pos;let a,o,c=0;for(;-1!==(a=e.getByte());)if(0===c)c=69===a?1:0;else if(1===c)c=73===a?2:0;else{(0,i.assert)(2===c,"findDefaultInlineStreamEnd - invalid state.");if(32===a||10===a||13===a){o=e.pos;const r=e.peekBytes(10);for(let e=0,t=r.length;e127))){c=0;break}}if(2!==c)continue;if(t.knownCommands){const e=t.peekObj();e instanceof n.Cmd&&!t.knownCommands[e.cmd]&&(c=0)}else(0,i.warn)("findDefaultInlineStreamEnd - `lexer.knownCommands` is undefined.");if(2===c)break}else c=0}if(-1===a){(0,i.warn)("findDefaultInlineStreamEnd: Reached the end of the stream without finding a valid EI marker");if(o){(0,i.warn)('... trying to recover by using the last "EI" occurrence.');e.skip(-(e.pos-o))}}let l=4;e.skip(-l);a=e.peekByte();e.skip(l);(0,s.isWhiteSpace)(a)||l--;return e.pos-l-r}findDCTDecodeInlineStreamEnd(e){const t=e.pos;let r,a,n=!1;for(;-1!==(r=e.getByte());)if(255===r){switch(e.getByte()){case 0:break;case 255:e.skip(-1);break;case 217:n=!0;break;case 192:case 193:case 194:case 195:case 197:case 198:case 199:case 201:case 202:case 203:case 205:case 206:case 207:case 196:case 204:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 254:a=e.getUint16();a>2?e.skip(a-2):e.skip(-2)}if(n)break}const s=e.pos-t;if(-1===r){(0,i.warn)("Inline DCTDecode image stream: EOI marker not found, searching for /EI/ instead.");e.skip(-s);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return s}findASCII85DecodeInlineStreamEnd(e){const t=e.pos;let r;for(;-1!==(r=e.getByte());)if(126===r){const t=e.pos;r=e.peekByte();for(;(0,s.isWhiteSpace)(r);){e.skip();r=e.peekByte()}if(62===r){e.skip();break}if(e.pos>t){const t=e.peekBytes(2);if(69===t[0]&&73===t[1])break}}const a=e.pos-t;if(-1===r){(0,i.warn)("Inline ASCII85Decode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}findASCIIHexDecodeInlineStreamEnd(e){const t=e.pos;let r;for(;-1!==(r=e.getByte())&&62!==r;);const a=e.pos-t;if(-1===r){(0,i.warn)("Inline ASCIIHexDecode image stream: EOD marker not found, searching for /EI/ instead.");e.skip(-a);return this.findDefaultInlineStreamEnd(e)}this.inlineStreamSkipEI(e);return a}inlineStreamSkipEI(e){let t,r=0;for(;-1!==(t=e.getByte());)if(0===r)r=69===t?1:0;else if(1===r)r=73===t?2:0;else if(2===r)break}makeInlineImage(e){const t=this.lexer,r=t.stream,a=new n.Dict(this.xref);let s;for(;!(0,n.isCmd)(this.buf1,"ID")&&!(0,n.isEOF)(this.buf1);){if(!(0,n.isName)(this.buf1))throw new i.FormatError("Dictionary key must be a name object");const t=this.buf1.name;this.shift();if((0,n.isEOF)(this.buf1))break;a.set(t,this.getObj(e))}-1!==t.beginInlineImagePos&&(s=r.pos-t.beginInlineImagePos);const o=a.get("Filter","F");let c;if((0,n.isName)(o))c=o.name;else if(Array.isArray(o)){const e=this.xref.fetchIfRef(o[0]);(0,n.isName)(e)&&(c=e.name)}const l=r.pos;let h;h="DCTDecode"===c||"DCT"===c?this.findDCTDecodeInlineStreamEnd(r):"ASCII85Decode"===c||"A85"===c?this.findASCII85DecodeInlineStreamEnd(r):"ASCIIHexDecode"===c||"AHx"===c?this.findASCIIHexDecodeInlineStreamEnd(r):this.findDefaultInlineStreamEnd(r);let u,d=r.makeSubStream(l,h,a);if(h<1e3&&s<5552){const e=d.getBytes();d.reset();const a=r.pos;r.pos=t.beginInlineImagePos;const i=r.getBytes(s);r.pos=a;u=computeAdler32(e)+"_"+computeAdler32(i);const o=this.imageCache[u];if(void 0!==o){this.buf2=n.Cmd.get("EI");this.shift();o.reset();return o}}e&&(d=e.createStream(d,h));d=this.filter(d,a,h);d.dict=a;if(void 0!==u){d.cacheKey=`inline_${h}_${u}`;this.imageCache[u]=d}this.buf2=n.Cmd.get("EI");this.shift();return d}_findStreamLength(e,t){const{stream:r}=this.lexer;r.pos=e;const a=t.length;for(;r.pos=a){r.pos+=s;return r.pos-e}s++}r.pos+=n}return-1}makeStream(e,t){const r=this.lexer;let a=r.stream;r.skipToNextLine();const o=a.pos-1;let c=e.get("Length");if(!Number.isInteger(c)){(0,i.info)(`Bad length "${c}" in stream`);c=0}a.pos=o+c;r.nextChar();if(this.tryShift()&&(0,n.isCmd)(this.buf2,"endstream"))this.shift();else{const e=new Uint8Array([101,110,100,115,116,114,101,97,109]);let t=this._findStreamLength(o,e);if(t<0){const r=1;for(let n=1;n<=r;n++){const r=e.length-n,c=e.slice(0,r),l=this._findStreamLength(o,c);if(l>=0){const e=a.peekBytes(r+1)[r];if(!(0,s.isWhiteSpace)(e))break;(0,i.info)(`Found "${(0,i.bytesToString)(c)}" when searching for endstream command.`);t=l;break}}if(t<0)throw new i.FormatError("Missing endstream command.")}c=t;r.nextChar();this.shift();this.shift()}this.shift();a=a.makeSubStream(o,c,e);t&&(a=t.createStream(a,c));a=this.filter(a,e,c);a.dict=e;return a}filter(e,t,r){let a=t.get("Filter","F"),s=t.get("DecodeParms","DP");if((0,n.isName)(a)){Array.isArray(s)&&(0,i.warn)("/DecodeParms should not contain an Array, when /Filter contains a Name.");return this.makeFilter(e,a.name,r,s)}let o=r;if(Array.isArray(a)){const t=a,r=s;for(let c=0,l=t.length;c=48&&e<=57?15&e:e>=65&&e<=70||e>=97&&e<=102?9+(15&e):-1}class Lexer{constructor(e,t=null){this.stream=e;this.nextChar();this.strBuf=[];this.knownCommands=t;this._hexStringNumWarn=0;this.beginInlineImagePos=-1}nextChar(){return this.currentChar=this.stream.getByte()}peekChar(){return this.stream.peekByte()}getNumber(){let e=this.currentChar,t=!1,r=0,a=0;if(45===e){a=-1;e=this.nextChar();45===e&&(e=this.nextChar())}else if(43===e){a=1;e=this.nextChar()}if(10===e||13===e)do{e=this.nextChar()}while(10===e||13===e);if(46===e){r=10;e=this.nextChar()}if(e<48||e>57){if(10===r&&0===a&&((0,s.isWhiteSpace)(e)||-1===e)){(0,i.warn)("Lexer.getNumber - treating a single decimal point as zero.");return 0}throw new i.FormatError(`Invalid number: ${String.fromCharCode(e)} (charCode ${e})`)}a=a||1;let n=e-48,o=0,c=1;for(;(e=this.nextChar())>=0;)if(e>=48&&e<=57){const a=e-48;if(t)o=10*o+a;else{0!==r&&(r*=10);n=10*n+a}}else if(46===e){if(0!==r)break;r=1}else if(45===e)(0,i.warn)("Badly formatted number: minus sign in the middle");else{if(69!==e&&101!==e)break;e=this.peekChar();if(43===e||45===e){c=45===e?-1:1;this.nextChar()}else if(e<48||e>57)break;t=!0}0!==r&&(n/=r);t&&(n*=10**(c*o));return a*n}getString(){let e=1,t=!1;const r=this.strBuf;r.length=0;let a=this.nextChar();for(;;){let n=!1;switch(0|a){case-1:(0,i.warn)("Unterminated string");t=!0;break;case 40:++e;r.push("(");break;case 41:if(0==--e){this.nextChar();t=!0}else r.push(")");break;case 92:a=this.nextChar();switch(a){case-1:(0,i.warn)("Unterminated string");t=!0;break;case 110:r.push("\n");break;case 114:r.push("\r");break;case 116:r.push("\t");break;case 98:r.push("\b");break;case 102:r.push("\f");break;case 92:case 40:case 41:r.push(String.fromCharCode(a));break;case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:let e=15&a;a=this.nextChar();n=!0;if(a>=48&&a<=55){e=(e<<3)+(15&a);a=this.nextChar();if(a>=48&&a<=55){n=!1;e=(e<<3)+(15&a)}}r.push(String.fromCharCode(e));break;case 13:10===this.peekChar()&&this.nextChar();break;case 10:break;default:r.push(String.fromCharCode(a))}break;default:r.push(String.fromCharCode(a))}if(t)break;n||(a=this.nextChar())}return r.join("")}getName(){let e,t;const r=this.strBuf;r.length=0;for(;(e=this.nextChar())>=0&&!u[e];)if(35===e){e=this.nextChar();if(u[e]){(0,i.warn)("Lexer_getName: NUMBER SIGN (#) should be followed by a hexadecimal number.");r.push("#");break}const a=toHexDigit(e);if(-1!==a){t=e;e=this.nextChar();const n=toHexDigit(e);if(-1===n){(0,i.warn)(`Lexer_getName: Illegal digit (${String.fromCharCode(e)}) in hexadecimal number.`);r.push("#",String.fromCharCode(t));if(u[e])break;r.push(String.fromCharCode(e));continue}r.push(String.fromCharCode(a<<4|n))}else r.push("#",String.fromCharCode(e))}else r.push(String.fromCharCode(e));r.length>127&&(0,i.warn)("Name token is longer than allowed by the spec: "+r.length);return n.Name.get(r.join(""))}_hexStringWarn(e){5!=this._hexStringNumWarn++?this._hexStringNumWarn>5||(0,i.warn)("getHexString - ignoring invalid character: "+e):(0,i.warn)("getHexString - ignoring additional invalid characters.")}getHexString(){const e=this.strBuf;e.length=0;let t,r,a=this.currentChar,n=!0;this._hexStringNumWarn=0;for(;;){if(a<0){(0,i.warn)("Unterminated hex string");break}if(62===a){this.nextChar();break}if(1!==u[a]){if(n){t=toHexDigit(a);if(-1===t){this._hexStringWarn(a);a=this.nextChar();continue}}else{r=toHexDigit(a);if(-1===r){this._hexStringWarn(a);a=this.nextChar();continue}e.push(String.fromCharCode(t<<4|r))}n=!n;a=this.nextChar()}else a=this.nextChar()}return e.join("")}getObj(){let e=!1,t=this.currentChar;for(;;){if(t<0)return n.EOF;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(1!==u[t])break;t=this.nextChar()}switch(0|t){case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 43:case 45:case 46:return this.getNumber();case 40:return this.getString();case 47:return this.getName();case 91:this.nextChar();return n.Cmd.get("[");case 93:this.nextChar();return n.Cmd.get("]");case 60:t=this.nextChar();if(60===t){this.nextChar();return n.Cmd.get("<<")}return this.getHexString();case 62:t=this.nextChar();if(62===t){this.nextChar();return n.Cmd.get(">>")}return n.Cmd.get(">");case 123:this.nextChar();return n.Cmd.get("{");case 125:this.nextChar();return n.Cmd.get("}");case 41:this.nextChar();throw new i.FormatError("Illegal character: "+t)}let r=String.fromCharCode(t);const a=this.knownCommands;let s=a&&void 0!==a[r];for(;(t=this.nextChar())>=0&&!u[t];){const e=r+String.fromCharCode(t);if(s&&void 0===a[e])break;if(128===r.length)throw new i.FormatError("Command token too long: "+r.length);r=e;s=a&&void 0!==a[r]}if("true"===r)return!0;if("false"===r)return!1;if("null"===r)return null;"BI"===r&&(this.beginInlineImagePos=this.stream.pos);return n.Cmd.get(r)}peekObj(){const e=this.stream.pos,t=this.currentChar,r=this.beginInlineImagePos;let a;try{a=this.getObj()}catch(e){if(e instanceof s.MissingDataException)throw e;(0,i.warn)("peekObj: "+e)}this.stream.pos=e;this.currentChar=t;this.beginInlineImagePos=r;return a}skipToNextLine(){let e=this.currentChar;for(;e>=0;){if(13===e){e=this.nextChar();10===e&&this.nextChar();break}if(10===e){this.nextChar();break}e=this.nextChar()}}}t.Lexer=Lexer;t.Linearization=class Linearization{static create(e){function getInt(e,t,r=!1){const a=e.get(t);if(Number.isInteger(a)&&(r?a>=0:a>0))return a;throw new Error(`The "${t}" parameter in the linearization dictionary is invalid.`)}const t=new Parser({lexer:new Lexer(e),xref:null}),r=t.getObj(),a=t.getObj(),s=t.getObj(),o=t.getObj();let c,l;if(!(Number.isInteger(r)&&Number.isInteger(a)&&(0,n.isCmd)(s,"obj")&&(0,n.isDict)(o)&&(0,i.isNum)(c=o.get("Linearized"))&&c>0))return null;if((l=getInt(o,"L"))!==e.length)throw new Error('The "L" parameter in the linearization dictionary does not equal the stream length.');return{length:l,hints:function getHints(e){const t=e.get("H");let r;if(Array.isArray(t)&&(2===(r=t.length)||4===r)){for(let e=0;e0))throw new Error(`Hint (${e}) in the linearization dictionary is invalid.`)}return t}throw new Error("Hint array in the linearization dictionary is invalid.")}(o),objectNumberFirst:getInt(o,"O"),endFirst:getInt(o,"E"),numPages:getInt(o,"N"),mainXRefEntriesOffset:getInt(o,"T"),pageFirst:o.has("P")?getInt(o,"P",!0):0}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.LZWStream=t.StringStream=t.StreamsSequenceStream=t.Stream=t.RunLengthStream=t.PredictorStream=t.NullStream=t.FlateStream=t.DecodeStream=t.DecryptStream=t.AsciiHexStream=t.Ascii85Stream=void 0;var a=r(2),i=r(5),n=r(8),s=function StreamClosure(){function Stream(e,t,r,a){this.bytes=e instanceof Uint8Array?e:new Uint8Array(e);this.start=t||0;this.pos=this.start;this.end=t+r||this.bytes.length;this.dict=a}Stream.prototype={get length(){return this.end-this.start},get isEmpty(){return 0===this.length},getByte:function Stream_getByte(){return this.pos>=this.end?-1:this.bytes[this.pos++]},getUint16:function Stream_getUint16(){var e=this.getByte(),t=this.getByte();return-1===e||-1===t?-1:(e<<8)+t},getInt32:function Stream_getInt32(){return(this.getByte()<<24)+(this.getByte()<<16)+(this.getByte()<<8)+this.getByte()},getBytes(e,t=!1){var r=this.bytes,a=this.pos,i=this.end;if(!e){const e=r.subarray(a,i);return t?new Uint8ClampedArray(e):e}var n=a+e;n>i&&(n=i);this.pos=n;const s=r.subarray(a,n);return t?new Uint8ClampedArray(s):s},peekByte:function Stream_peekByte(){var e=this.getByte();-1!==e&&this.pos--;return e},peekBytes(e,t=!1){var r=this.getBytes(e,t);this.pos-=r.length;return r},getByteRange(e,t){e<0&&(e=0);t>this.end&&(t=this.end);return this.bytes.subarray(e,t)},skip:function Stream_skip(e){e||(e=1);this.pos+=e},reset:function Stream_reset(){this.pos=this.start},moveStart:function Stream_moveStart(){this.start=this.pos},makeSubStream:function Stream_makeSubStream(e,t,r){return new Stream(this.bytes.buffer,e,t,r)}};return Stream}();t.Stream=s;var o=function StringStreamClosure(){function StringStream(e){const t=(0,a.stringToBytes)(e);s.call(this,t)}StringStream.prototype=s.prototype;return StringStream}();t.StringStream=o;var c=function DecodeStreamClosure(){var e=new Uint8Array(0);function DecodeStream(t){this._rawMinBufferLength=t||0;this.pos=0;this.bufferLength=0;this.eof=!1;this.buffer=e;this.minBufferLength=512;if(t)for(;this.minBufferLengthi&&(r=i)}else{for(;!this.eof;)this.readBlock();r=this.bufferLength}this.pos=r;const n=this.buffer.subarray(a,r);return!t||n instanceof Uint8ClampedArray?n:new Uint8ClampedArray(n)},peekByte:function DecodeStream_peekByte(){var e=this.getByte();-1!==e&&this.pos--;return e},peekBytes(e,t=!1){var r=this.getBytes(e,t);this.pos-=r.length;return r},makeSubStream:function DecodeStream_makeSubStream(e,t,r){for(var a=e+t;this.bufferLength<=a&&!this.eof;)this.readBlock();return new s(this.buffer,e,t,r)},getByteRange(e,t){(0,a.unreachable)("Should not call DecodeStream.getByteRange")},skip:function DecodeStream_skip(e){e||(e=1);this.pos+=e},reset:function DecodeStream_reset(){this.pos=0},getBaseStreams:function DecodeStream_getBaseStreams(){return this.str&&this.str.getBaseStreams?this.str.getBaseStreams():[]}};return DecodeStream}();t.DecodeStream=c;var l=function StreamsSequenceStreamClosure(){function StreamsSequenceStream(e){this.streams=e;let t=0;for(let r=0,a=e.length;r>e;this.codeSize=i-=e;return t};FlateStream.prototype.getCode=function FlateStream_getCode(e){for(var t,r=this.str,i=e[0],n=e[1],s=this.codeSize,o=this.codeBuf;s>16,h=65535&c;if(l<1||s>l;this.codeSize=s-l;return h};FlateStream.prototype.generateHuffmanTable=function flateStreamGenerateHuffmanTable(e){var t,r=e.length,a=0;for(t=0;ta&&(a=e[t]);for(var i=1<>=1}for(t=h;t>=1)){var h,u;if(1===l){h=i;u=n}else{if(2!==l)throw new a.FormatError("Unknown block type in flate stream");var d,f=this.getBits(5)+257,g=this.getBits(5)+1,m=this.getBits(4)+4,p=new Uint8Array(e.length);for(d=0;d0;)S[d++]=w}h=this.generateHuffmanTable(S.subarray(0,f));u=this.generateHuffmanTable(S.subarray(f,k))}for(var A=(s=this.buffer)?s.length:0,T=this.bufferLength;;){var I=this.getCode(h);if(I<256){T+1>=A&&(A=(s=this.ensureBuffer(T+1)).length);s[T++]=I}else{if(256===I){this.bufferLength=T;return}var F=(I=t[I-=257])>>16;F>0&&(F=this.getBits(F));o=(65535&I)+F;I=this.getCode(u);(F=(I=r[I])>>16)>0&&(F=this.getBits(F));var P=(65535&I)+F;T+o>=A&&(A=(s=this.ensureBuffer(T+o)).length);for(var E=0;E15))throw new a.FormatError("Unsupported predictor: "+n);this.readBlock=2===n?this.readBlockTiff:this.readBlockPng;this.str=e;this.dict=e.dict;var s=this.colors=r.get("Colors")||1,o=this.bits=r.get("BitsPerComponent")||8,l=this.columns=r.get("Columns")||1;this.pixBytes=s*o+7>>3;this.rowBytes=l*s*o+7>>3;c.call(this,t);return this}PredictorStream.prototype=Object.create(c.prototype);PredictorStream.prototype.readBlockTiff=function predictorStreamReadBlockTiff(){var e=this.rowBytes,t=this.bufferLength,r=this.ensureBuffer(t+e),a=this.bits,i=this.colors,n=this.str.getBytes(e);this.eof=!n.length;if(!this.eof){var s,o=0,c=0,l=0,h=0,u=t;if(1===a&&1===i)for(s=0;s>1;d^=d>>2;o=(1&(d^=d>>4))<<7;r[u++]=d}else if(8===a){for(s=0;s>8&255;r[u++]=255&g}}else{var m=new Uint8Array(i+1),p=(1<>l-a)&p;l-=a;c=c<=8){r[y++]=c>>h-8&255;h-=8}}h>0&&(r[y++]=(c<<8-h)+(o&(1<<8-h)-1))}this.bufferLength+=e}};PredictorStream.prototype.readBlockPng=function predictorStreamReadBlockPng(){var e=this.rowBytes,t=this.pixBytes,r=this.str.getByte(),i=this.str.getBytes(e);this.eof=!i.length;if(!this.eof){var n=this.bufferLength,s=this.ensureBuffer(n+e),o=s.subarray(n-e,n);0===o.length&&(o=new Uint8Array(e));var c,l,h,u=n;switch(r){case 0:for(c=0;c>1)+i[c];for(;c>1)+i[c]&255;u++}break;case 4:for(c=0;c0;e=(0,this.decrypt)(e,!t);var r,a=this.bufferLength,i=e.length,n=this.ensureBuffer(a+i);for(r=0;r=0;--a){r[i+a]=255&o;o>>=8}}}else this.eof=!0};return Ascii85Stream}();t.Ascii85Stream=f;var g=function AsciiHexStreamClosure(){function AsciiHexStream(e,t){this.str=e;this.dict=e.dict;this.firstDigit=-1;t&&(t*=.5);c.call(this,t)}AsciiHexStream.prototype=Object.create(c.prototype);AsciiHexStream.prototype.readBlock=function AsciiHexStream_readBlock(){var e=this.str.getBytes(8e3);if(e.length){for(var t=e.length+1>>1,r=this.ensureBuffer(this.bufferLength+t),a=this.bufferLength,i=this.firstDigit,n=0,s=e.length;n=48&&c<=57)o=15&c;else{if(!(c>=65&&c<=70||c>=97&&c<=102)){if(62===c){this.eof=!0;break}continue}o=9+(15&c)}if(i<0)i=o;else{r[a++]=i<<4|o;i=-1}}if(i>=0&&this.eof){r[a++]=i<<4;i=-1}this.firstDigit=i;this.bufferLength=a}else this.eof=!0};return AsciiHexStream}();t.AsciiHexStream=g;var m=function RunLengthStreamClosure(){function RunLengthStream(e,t){this.str=e;this.dict=e.dict;c.call(this,t)}RunLengthStream.prototype=Object.create(c.prototype);RunLengthStream.prototype.readBlock=function RunLengthStream_readBlock(){var e=this.str.getBytes(2);if(!e||e.length<2||128===e[0])this.eof=!0;else{var t,r=this.bufferLength,a=e[0];if(a<128){(t=this.ensureBuffer(r+a+1))[r++]=e[1];if(a>0){var i=this.str.getBytes(a);t.set(i,r);r+=a}}else{a=257-a;var n=e[1];t=this.ensureBuffer(r+a+1);for(var s=0;s>>t&(1<0;if(b<256){d[0]=b;f=1}else{if(!(b>=258)){if(256===b){h=9;s=258;f=0;continue}this.eof=!0;delete this.lzwState;break}if(b=0;t--){d[t]=o[r];r=l[r]}else d[f++]=d[0]}if(y){l[s]=u;c[s]=c[u]+1;o[s]=d[0];h=++s+n&s+n-1?h:0|Math.min(Math.log(s+n)/.6931471805599453+1,12)}u=b;if(a<(g+=f)){do{a+=512}while(ae.getByte()};this.ccittFaxDecoder=new i.CCITTFaxDecoder(s,{K:r.get("K"),EndOfLine:r.get("EndOfLine"),EncodedByteAlign:r.get("EncodedByteAlign"),Columns:r.get("Columns"),Rows:r.get("Rows"),EndOfBlock:r.get("EndOfBlock"),BlackIs1:r.get("BlackIs1")});n.DecodeStream.call(this,t)}CCITTFaxStream.prototype=Object.create(n.DecodeStream.prototype);CCITTFaxStream.prototype.readBlock=function(){for(;!this.eof;){const e=this.ccittFaxDecoder.readNextChar();if(-1===e){this.eof=!0;return}this.ensureBuffer(this.bufferLength+1);this.buffer[this.bufferLength++]=e}};return CCITTFaxStream}();t.CCITTFaxStream=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CCITTFaxDecoder=void 0;var a=r(2);const i=function CCITTFaxDecoder(){const e=[[-1,-1],[-1,-1],[7,8],[7,7],[6,6],[6,6],[6,5],[6,5],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[4,0],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[3,3],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2],[1,2]],t=[[-1,-1],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[12,1984],[12,2048],[12,2112],[12,2176],[12,2240],[12,2304],[11,1856],[11,1856],[11,1920],[11,1920],[12,2368],[12,2432],[12,2496],[12,2560]],r=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[8,29],[8,29],[8,30],[8,30],[8,45],[8,45],[8,46],[8,46],[7,22],[7,22],[7,22],[7,22],[7,23],[7,23],[7,23],[7,23],[8,47],[8,47],[8,48],[8,48],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[6,13],[7,20],[7,20],[7,20],[7,20],[8,33],[8,33],[8,34],[8,34],[8,35],[8,35],[8,36],[8,36],[8,37],[8,37],[8,38],[8,38],[7,19],[7,19],[7,19],[7,19],[8,31],[8,31],[8,32],[8,32],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,1],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[6,12],[8,53],[8,53],[8,54],[8,54],[7,26],[7,26],[7,26],[7,26],[8,39],[8,39],[8,40],[8,40],[8,41],[8,41],[8,42],[8,42],[8,43],[8,43],[8,44],[8,44],[7,21],[7,21],[7,21],[7,21],[7,28],[7,28],[7,28],[7,28],[8,61],[8,61],[8,62],[8,62],[8,63],[8,63],[8,0],[8,0],[8,320],[8,320],[8,384],[8,384],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,10],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[5,11],[7,27],[7,27],[7,27],[7,27],[8,59],[8,59],[8,60],[8,60],[9,1472],[9,1536],[9,1600],[9,1728],[7,18],[7,18],[7,18],[7,18],[7,24],[7,24],[7,24],[7,24],[8,49],[8,49],[8,50],[8,50],[8,51],[8,51],[8,52],[8,52],[7,25],[7,25],[7,25],[7,25],[8,55],[8,55],[8,56],[8,56],[8,57],[8,57],[8,58],[8,58],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,192],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[6,1664],[8,448],[8,448],[8,512],[8,512],[9,704],[9,768],[8,640],[8,640],[8,576],[8,576],[9,832],[9,896],[9,960],[9,1024],[9,1088],[9,1152],[9,1216],[9,1280],[9,1344],[9,1408],[7,256],[7,256],[7,256],[7,256],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,2],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[4,3],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,128],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,8],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[5,9],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,16],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[6,17],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,4],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[4,5],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,14],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[6,15],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[5,64],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,6],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7],[4,7]],i=[[-1,-1],[-1,-1],[12,-2],[12,-2],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[-1,-1],[11,1792],[11,1792],[11,1792],[11,1792],[12,1984],[12,1984],[12,2048],[12,2048],[12,2112],[12,2112],[12,2176],[12,2176],[12,2240],[12,2240],[12,2304],[12,2304],[11,1856],[11,1856],[11,1856],[11,1856],[11,1920],[11,1920],[11,1920],[11,1920],[12,2368],[12,2368],[12,2432],[12,2432],[12,2496],[12,2496],[12,2560],[12,2560],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[10,18],[12,52],[12,52],[13,640],[13,704],[13,768],[13,832],[12,55],[12,55],[12,56],[12,56],[13,1280],[13,1344],[13,1408],[13,1472],[12,59],[12,59],[12,60],[12,60],[13,1536],[13,1600],[11,24],[11,24],[11,24],[11,24],[11,25],[11,25],[11,25],[11,25],[13,1664],[13,1728],[12,320],[12,320],[12,384],[12,384],[12,448],[12,448],[13,512],[13,576],[12,53],[12,53],[12,54],[12,54],[13,896],[13,960],[13,1024],[13,1088],[13,1152],[13,1216],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64],[10,64]],n=[[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[8,13],[11,23],[11,23],[12,50],[12,51],[12,44],[12,45],[12,46],[12,47],[12,57],[12,58],[12,61],[12,256],[10,16],[10,16],[10,16],[10,16],[10,17],[10,17],[10,17],[10,17],[12,48],[12,49],[12,62],[12,63],[12,30],[12,31],[12,32],[12,33],[12,40],[12,41],[11,22],[11,22],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[8,14],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,10],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[7,11],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[9,15],[12,128],[12,192],[12,26],[12,27],[12,28],[12,29],[11,19],[11,19],[11,20],[11,20],[12,34],[12,35],[12,36],[12,37],[12,38],[12,39],[11,21],[11,21],[12,42],[12,43],[10,0],[10,0],[10,0],[10,0],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12],[7,12]],s=[[-1,-1],[-1,-1],[-1,-1],[-1,-1],[6,9],[6,8],[5,7],[5,7],[4,6],[4,6],[4,6],[4,6],[4,5],[4,5],[4,5],[4,5],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,1],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[3,4],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,3],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2],[2,2]];function CCITTFaxDecoder(e,t={}){if(!e||"function"!=typeof e.next)throw new Error('CCITTFaxDecoder - invalid "source" parameter.');this.source=e;this.eof=!1;this.encoding=t.K||0;this.eoline=t.EndOfLine||!1;this.byteAlign=t.EncodedByteAlign||!1;this.columns=t.Columns||1728;this.rows=t.Rows||0;let r,a=t.EndOfBlock;null==a&&(a=!0);this.eoblock=a;this.black=t.BlackIs1||!1;this.codingLine=new Uint32Array(this.columns+1);this.refLine=new Uint32Array(this.columns+2);this.codingLine[0]=this.columns;this.codingPos=0;this.row=0;this.nextLine2D=this.encoding<0;this.inputBits=0;this.inputBuf=0;this.outputBits=0;this.rowsDone=!1;for(;0===(r=this._lookBits(12));)this._eatBits(1);1===r&&this._eatBits(12);if(this.encoding>0){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}}CCITTFaxDecoder.prototype={readNextChar(){if(this.eof)return-1;const e=this.refLine,t=this.codingLine,r=this.columns;let i,n,s,o,c;if(0===this.outputBits){this.rowsDone&&(this.eof=!0);if(this.eof)return-1;this.err=!1;let s,c,l;if(this.nextLine2D){for(o=0;t[o]=64);do{c+=l=this._getWhiteCode()}while(l>=64)}else{do{s+=l=this._getWhiteCode()}while(l>=64);do{c+=l=this._getBlackCode()}while(l>=64)}this._addPixels(t[this.codingPos]+s,n);t[this.codingPos]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]0?--i:++i;for(;e[i]<=t[this.codingPos]&&e[i]=64);else do{s+=l=this._getWhiteCode()}while(l>=64);this._addPixels(t[this.codingPos]+s,n);n^=1}}let h=!1;this.byteAlign&&(this.inputBits&=-8);if(this.eoblock||this.row!==this.rows-1){s=this._lookBits(12);if(this.eoline)for(;-1!==s&&1!==s;){this._eatBits(1);s=this._lookBits(12)}else for(;0===s;){this._eatBits(1);s=this._lookBits(12)}if(1===s){this._eatBits(12);h=!0}else-1===s&&(this.eof=!0)}else this.rowsDone=!0;if(!this.eof&&this.encoding>0&&!this.rowsDone){this.nextLine2D=!this._lookBits(1);this._eatBits(1)}if(this.eoblock&&h&&this.byteAlign){s=this._lookBits(12);if(1===s){this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}if(this.encoding>=0)for(o=0;o<4;++o){s=this._lookBits(12);1!==s&&(0,a.info)("bad rtc code: "+s);this._eatBits(12);if(this.encoding>0){this._lookBits(1);this._eatBits(1)}}this.eof=!0}}else if(this.err&&this.eoline){for(;;){s=this._lookBits(13);if(-1===s){this.eof=!0;return-1}if(s>>1==1)break;this._eatBits(1)}this._eatBits(12);if(this.encoding>0){this._eatBits(1);this.nextLine2D=!(1&s)}}t[0]>0?this.outputBits=t[this.codingPos=0]:this.outputBits=t[this.codingPos=1];this.row++}if(this.outputBits>=8){c=1&this.codingPos?0:255;this.outputBits-=8;if(0===this.outputBits&&t[this.codingPos]s){c<<=s;1&this.codingPos||(c|=255>>8-s);this.outputBits-=s;s=0}else{c<<=this.outputBits;1&this.codingPos||(c|=255>>8-this.outputBits);s-=this.outputBits;this.outputBits=0;if(t[this.codingPos]0){c<<=s;s=0}}}while(s)}this.black&&(c^=255);return c},_addPixels(e,t){const r=this.codingLine;let i=this.codingPos;if(e>r[i]){if(e>this.columns){(0,a.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;r[i]=e}this.codingPos=i},_addPixelsNeg(e,t){const r=this.codingLine;let i=this.codingPos;if(e>r[i]){if(e>this.columns){(0,a.info)("row is wrong length");this.err=!0;e=this.columns}1&i^t&&++i;r[i]=e}else if(e0&&e=i){const t=r[e-i];if(t[0]===a){this._eatBits(a);return[!0,t[1],!0]}}}return[!1,0,!1]},_getTwoDimCode(){let t,r=0;if(this.eoblock){r=this._lookBits(7);t=e[r];if(t&&t[0]>0){this._eatBits(t[0]);return t[1]}}else{const t=this._findTableCode(1,7,e);if(t[0]&&t[2])return t[1]}(0,a.info)("Bad two dim code");return-1},_getWhiteCode(){let e,i=0;if(this.eoblock){i=this._lookBits(12);if(-1===i)return 1;e=i>>5==0?t[i]:r[i>>3];if(e[0]>0){this._eatBits(e[0]);return e[1]}}else{let e=this._findTableCode(1,9,r);if(e[0])return e[1];e=this._findTableCode(11,12,t);if(e[0])return e[1]}(0,a.info)("bad white code");this._eatBits(1);return 1},_getBlackCode(){let e,t;if(this.eoblock){e=this._lookBits(13);if(-1===e)return 1;t=e>>7==0?i[e]:e>>9==0&&e>>7!=0?n[(e>>1)-64]:s[e>>7];if(t[0]>0){this._eatBits(t[0]);return t[1]}}else{let e=this._findTableCode(2,6,s);if(e[0])return e[1];e=this._findTableCode(7,12,n,64);if(e[0])return e[1];e=this._findTableCode(10,13,i);if(e[0])return e[1]}(0,a.info)("bad black code");this._eatBits(1);return 1},_lookBits(e){let t;for(;this.inputBits>16-e;this.inputBuf=this.inputBuf<<8|t;this.inputBits+=8}return this.inputBuf>>this.inputBits-e&65535>>16-e},_eatBits(e){(this.inputBits-=e)<0&&(this.inputBits=0)}};return CCITTFaxDecoder}();t.CCITTFaxDecoder=i},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.Jbig2Stream=void 0;var a=r(5),i=r(12),n=r(16),s=r(2);const o=function Jbig2StreamClosure(){function Jbig2Stream(e,t,r,a){this.stream=e;this.maybeLength=t;this.dict=r;this.params=a;i.DecodeStream.call(this,t)}Jbig2Stream.prototype=Object.create(i.DecodeStream.prototype);Object.defineProperty(Jbig2Stream.prototype,"bytes",{get(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0});Jbig2Stream.prototype.ensureBuffer=function(e){};Jbig2Stream.prototype.readBlock=function(){if(this.eof)return;const e=new n.Jbig2Image,t=[];if((0,a.isDict)(this.params)){const e=this.params.get("JBIG2Globals");if((0,a.isStream)(e)){const r=e.getBytes();t.push({data:r,start:0,end:r.length})}}t.push({data:this.bytes,start:0,end:this.bytes.length});const r=e.parseChunks(t),i=r.length;for(let e=0;e>>0}var n=readBits(1),s=readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(1)?readBits(32)+4436:readBits(12)+340:readBits(8)+84:readBits(6)+20:readBits(4)+4:readBits(2);return 0===n?s:s>0?-s:null}function decodeIAID(e,t,r){for(var a=e.getContexts("IAID"),i=1,n=0;n=B&&T=O){q=q<<1&y;for(f=0;f=0&&F=0&&(P=N[I][F])&&(q|=P<=e?O<<=1:O=O<<1|C[E][B]}for(d=0;d=k||B<0||B>=w?O<<=1:O=O<<1|i[E][B]}var M=x.readBit(A,O);F[P]=M}}return C}function decodeTextRegion(e,t,r,a,i,n,s,o,c,l,h,u,d,f,g,m,p,b,y){if(e&&t)throw new Jbig2Error("refinement with Huffman is not supported");var v,w,k=[];for(v=0;v1&&(a=e?y.readBits(b):decodeInteger(x,"IAIT",C));var F=s*A+a,P=e?f.symbolIDTable.decode(y):decodeIAID(x,C,c),E=t&&(e?y.readBit():decodeInteger(x,"IARI",C)),B=o[P],O=B[0].length,M=B.length;if(E){var D=decodeInteger(x,"IARDW",C),R=decodeInteger(x,"IARDH",C);B=decodeRefinement(O+=D,M+=R,g,B,(D>>1)+decodeInteger(x,"IARDX",C),(R>>1)+decodeInteger(x,"IARDY",C),!1,m,p)}var N,L,_,U=F-(1&u?0:M-1),q=I-(2&u?O-1:0);if(l){for(N=0;N>5&7,u=[31&c],d=r+6;if(7===c){h=536870911&(0,i.readUint32)(t,d-1);d+=3;var f=h+7>>3;u[0]=t[d++];for(;--f>0;)u.push(t[d++])}else if(5===c||6===c)throw new Jbig2Error("invalid referred-to flags");a.retainBits=u;let g=4;a.number<=256?g=1:a.number<=65536&&(g=2);var m,p,b=[];for(m=0;m>>24&255;w[3]=y.height>>16&255;w[4]=y.height>>8&255;w[5]=255&y.height;for(m=d,p=t.length;m>2&3;d.huffmanDWSelector=f>>4&3;d.bitmapSizeSelector=f>>6&1;d.aggregationInstancesSelector=f>>7&1;d.bitmapCodingContextUsed=!!(256&f);d.bitmapCodingContextRetained=!!(512&f);d.template=f>>10&3;d.refinementTemplate=f>>12&1;h+=2;if(!d.huffman){s=0===d.template?4:1;a=[];for(n=0;n>2&3;g.stripSize=1<>4&3;g.transposed=!!(64&m);g.combinationOperator=m>>7&3;g.defaultPixelValue=m>>9&1;g.dsOffset=m<<17>>27;g.refinementTemplate=m>>15&1;if(g.huffman){var p=(0,i.readUint16)(c,h);h+=2;g.huffmanFS=3&p;g.huffmanDS=p>>2&3;g.huffmanDT=p>>4&3;g.huffmanRefinementDW=p>>6&3;g.huffmanRefinementDH=p>>8&3;g.huffmanRefinementDX=p>>10&3;g.huffmanRefinementDY=p>>12&3;g.huffmanRefinementSizeSelector=!!(16384&p)}if(g.refinement&&!g.refinementTemplate){a=[];for(n=0;n<2;n++){a.push({x:(0,i.readInt8)(c,h),y:(0,i.readInt8)(c,h+1)});h+=2}g.refinementAt=a}g.numberOfSymbolInstances=(0,i.readUint32)(c,h);h+=4;r=[g,o.referredTo,c,h,u];break;case 16:const e={},t=c[h++];e.mmr=!!(1&t);e.template=t>>1&3;e.patternWidth=c[h++];e.patternHeight=c[h++];e.maxPatternIndex=(0,i.readUint32)(c,h);h+=4;r=[e,o.number,c,h,u];break;case 22:case 23:const k={};k.info=readRegionSegmentInformation(c,h);h+=l;const S=c[h++];k.mmr=!!(1&S);k.template=S>>1&3;k.enableSkip=!!(8&S);k.combinationOperator=S>>4&7;k.defaultPixelValue=S>>7&1;k.gridWidth=(0,i.readUint32)(c,h);h+=4;k.gridHeight=(0,i.readUint32)(c,h);h+=4;k.gridOffsetX=4294967295&(0,i.readUint32)(c,h);h+=4;k.gridOffsetY=4294967295&(0,i.readUint32)(c,h);h+=4;k.gridVectorX=(0,i.readUint16)(c,h);h+=2;k.gridVectorY=(0,i.readUint16)(c,h);h+=2;r=[k,o.referredTo,c,h,u];break;case 38:case 39:var b={};b.info=readRegionSegmentInformation(c,h);h+=l;var y=c[h++];b.mmr=!!(1&y);b.template=y>>1&3;b.prediction=!!(8&y);if(!b.mmr){s=0===b.template?4:1;a=[];for(n=0;n>2&1;v.combinationOperator=w>>3&3;v.requiresBuffer=!!(32&w);v.combinationOperatorOverride=!!(64&w);r=[v];break;case 49:case 50:case 51:break;case 53:r=[o.number,c,h,u];break;case 62:break;default:throw new Jbig2Error(`segment type ${o.typeName}(${o.type}) is not implemented`)}var k="on"+o.typeName;k in t&&t[k].apply(t,r)}function processSegments(e,t){for(var r=0,a=e.length;r>3,r=new Uint8ClampedArray(t*e.height);if(e.defaultPixelValue)for(var a=0,i=r.length;a>3,h=s.combinationOperatorOverride?e.combinationOperator:s.combinationOperator,u=this.buffer,d=128>>(7&e.x),f=e.y*l+(e.x>>3);switch(h){case 0:for(r=0;r>=1)){i=128;n++}}f+=l}break;case 2:for(r=0;r>=1)){i=128;n++}}f+=l}break;default:throw new Jbig2Error(`operator ${h} is not supported`)}},onImmediateGenericRegion:function SimpleSegmentVisitor_onImmediateGenericRegion(e,t,r,a){var i=e.info,n=new DecodingContext(t,r,a),s=decodeBitmap(e.mmr,i.width,i.height,e.template,e.prediction,null,e.at,n);this.drawBitmap(i,s)},onImmediateLosslessGenericRegion:function SimpleSegmentVisitor_onImmediateLosslessGenericRegion(){this.onImmediateGenericRegion.apply(this,arguments)},onSymbolDictionary:function SimpleSegmentVisitor_onSymbolDictionary(e,t,r,a,n,s){let o,c;if(e.huffman){o=function getSymbolDictionaryHuffmanTables(e,t,r){let a,i,n,s,o=0;switch(e.huffmanDHSelector){case 0:case 1:a=getStandardTable(e.huffmanDHSelector+4);break;case 3:a=getCustomHuffmanTable(o,t,r);o++;break;default:throw new Jbig2Error("invalid Huffman DH selector")}switch(e.huffmanDWSelector){case 0:case 1:i=getStandardTable(e.huffmanDWSelector+2);break;case 3:i=getCustomHuffmanTable(o,t,r);o++;break;default:throw new Jbig2Error("invalid Huffman DW selector")}if(e.bitmapSizeSelector){n=getCustomHuffmanTable(o,t,r);o++}else n=getStandardTable(1);s=e.aggregationInstancesSelector?getCustomHuffmanTable(o,t,r):getStandardTable(1);return{tableDeltaHeight:a,tableDeltaWidth:i,tableBitmapSize:n,tableAggregateInstances:s}}(e,r,this.customTables);c=new Reader(a,n,s)}var l=this.symbols;l||(this.symbols=l={});for(var h=[],u=0,d=r.length;u1)w=decodeTextRegion(e,t,a,g,0,S,1,r.concat(f),m,0,0,1,0,s,l,h,u,0,d);else{var C=decodeIAID(b,p,m),x=decodeInteger(b,"IARDX",p),A=decodeInteger(b,"IARDY",p);w=decodeRefinement(a,g,l,C=32){let r,a,s;switch(t){case 32:if(0===e)throw new Jbig2Error("no previous value in symbol ID table");a=i.readBits(2)+3;r=n[e-1].prefixLength;break;case 33:a=i.readBits(3)+3;r=0;break;case 34:a=i.readBits(7)+11;r=0;break;default:throw new Jbig2Error("invalid code length in symbol ID table")}for(s=0;s=0;b--){F=e?decodeMMRBitmap(I,l,h,!0):decodeBitmap(!1,l,h,r,!1,null,A,m);T[b]=F}for(P=0;P=0;y--){B=T[y][P][E]^B;O|=B<>8;R=d+P*f-E*g>>8;if(D>=0&&D+S<=a&&R>=0&&R+C<=n)for(b=0;b=n)){L=p[t];N=M[b];for(y=0;y=0&&e>1&7),l=1+(a>>4&7),h=[];let u,d,f=n;do{u=o.readBits(c);d=o.readBits(l);h.push(new HuffmanLine([f,u,d,0]));f+=1<>t&1;if(t<=0)this.children[r]=new HuffmanTreeNode(e);else{let a=this.children[r];a||(this.children[r]=a=new HuffmanTreeNode(null));a.buildTree(e,t-1)}},decodeNode(e){if(this.isLeaf){if(this.isOOB)return null;const t=e.readBits(this.rangeLength);return this.rangeLow+(this.isLowerRange?-t:t)}const t=this.children[e.readBit()];if(!t)throw new Jbig2Error("invalid Huffman data");return t.decodeNode(e)}};function HuffmanTable(e,t){t||this.assignPrefixCodes(e);this.rootNode=new HuffmanTreeNode(null);for(let t=0,r=e.length;t0&&this.rootNode.buildTree(r,r.prefixLength-1)}}HuffmanTable.prototype={decode(e){return this.rootNode.decodeNode(e)},assignPrefixCodes(e){const t=e.length;let r=0;for(let a=0;a=this.end)throw new Jbig2Error("end of data while reading bit");this.currentByte=this.data[this.position++];this.shift=7}const e=this.currentByte>>this.shift&1;this.shift--;return e},readBits(e){let t,r=0;for(t=e-1;t>=0;t--)r|=this.readBit()<=this.end?-1:this.data[this.position++]}};function getCustomHuffmanTable(e,t,r){let a=0;for(let i=0,n=t.length;i>r&1;r--}}if(a&&!l){const e=5;for(let t=0;tfunction parseJbig2Chunks(e){for(var t=new SimpleSegmentVisitor,r=0,a=e.length;r>=1}}return{imgData:u,width:c,height:l}}(e);this.width=r;this.height=a;return t}};return Jbig2Image}();t.Jbig2Image=o},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ArithmeticDecoder=void 0;const a=[{qe:22017,nmps:1,nlps:1,switchFlag:1},{qe:13313,nmps:2,nlps:6,switchFlag:0},{qe:6145,nmps:3,nlps:9,switchFlag:0},{qe:2753,nmps:4,nlps:12,switchFlag:0},{qe:1313,nmps:5,nlps:29,switchFlag:0},{qe:545,nmps:38,nlps:33,switchFlag:0},{qe:22017,nmps:7,nlps:6,switchFlag:1},{qe:21505,nmps:8,nlps:14,switchFlag:0},{qe:18433,nmps:9,nlps:14,switchFlag:0},{qe:14337,nmps:10,nlps:14,switchFlag:0},{qe:12289,nmps:11,nlps:17,switchFlag:0},{qe:9217,nmps:12,nlps:18,switchFlag:0},{qe:7169,nmps:13,nlps:20,switchFlag:0},{qe:5633,nmps:29,nlps:21,switchFlag:0},{qe:22017,nmps:15,nlps:14,switchFlag:1},{qe:21505,nmps:16,nlps:14,switchFlag:0},{qe:20737,nmps:17,nlps:15,switchFlag:0},{qe:18433,nmps:18,nlps:16,switchFlag:0},{qe:14337,nmps:19,nlps:17,switchFlag:0},{qe:13313,nmps:20,nlps:18,switchFlag:0},{qe:12289,nmps:21,nlps:19,switchFlag:0},{qe:10241,nmps:22,nlps:19,switchFlag:0},{qe:9217,nmps:23,nlps:20,switchFlag:0},{qe:8705,nmps:24,nlps:21,switchFlag:0},{qe:7169,nmps:25,nlps:22,switchFlag:0},{qe:6145,nmps:26,nlps:23,switchFlag:0},{qe:5633,nmps:27,nlps:24,switchFlag:0},{qe:5121,nmps:28,nlps:25,switchFlag:0},{qe:4609,nmps:29,nlps:26,switchFlag:0},{qe:4353,nmps:30,nlps:27,switchFlag:0},{qe:2753,nmps:31,nlps:28,switchFlag:0},{qe:2497,nmps:32,nlps:29,switchFlag:0},{qe:2209,nmps:33,nlps:30,switchFlag:0},{qe:1313,nmps:34,nlps:31,switchFlag:0},{qe:1089,nmps:35,nlps:32,switchFlag:0},{qe:673,nmps:36,nlps:33,switchFlag:0},{qe:545,nmps:37,nlps:34,switchFlag:0},{qe:321,nmps:38,nlps:35,switchFlag:0},{qe:273,nmps:39,nlps:36,switchFlag:0},{qe:133,nmps:40,nlps:37,switchFlag:0},{qe:73,nmps:41,nlps:38,switchFlag:0},{qe:37,nmps:42,nlps:39,switchFlag:0},{qe:21,nmps:43,nlps:40,switchFlag:0},{qe:9,nmps:44,nlps:41,switchFlag:0},{qe:5,nmps:45,nlps:42,switchFlag:0},{qe:1,nmps:45,nlps:43,switchFlag:0},{qe:22017,nmps:46,nlps:46,switchFlag:0}];t.ArithmeticDecoder=class ArithmeticDecoder{constructor(e,t,r){this.data=e;this.bp=t;this.dataEnd=r;this.chigh=e[t];this.clow=0;this.byteIn();this.chigh=this.chigh<<7&65535|this.clow>>9&127;this.clow=this.clow<<7&65535;this.ct-=7;this.a=32768}byteIn(){const e=this.data;let t=this.bp;if(255===e[t])if(e[t+1]>143){this.clow+=65280;this.ct=8}else{t++;this.clow+=e[t]<<9;this.ct=7;this.bp=t}else{t++;this.clow+=t65535){this.chigh+=this.clow>>16;this.clow&=65535}}readBit(e,t){let r=e[t]>>1,i=1&e[t];const n=a[r],s=n.qe;let o,c=this.a-s;if(this.chigh>15&1;this.clow=this.clow<<1&65535;this.ct--}while(0==(32768&c));this.a=c;e[t]=r<<1|i;return o}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.JpegStream=void 0;var a=r(12),i=r(5),n=r(19),s=r(2);const o=function JpegStreamClosure(){function JpegStream(e,t,r,i){let n;for(;-1!==(n=e.getByte());)if(255===n){e.skip(-1);break}this.stream=e;this.maybeLength=t;this.dict=r;this.params=i;a.DecodeStream.call(this,t)}JpegStream.prototype=Object.create(a.DecodeStream.prototype);Object.defineProperty(JpegStream.prototype,"bytes",{get:function JpegStream_bytes(){return(0,s.shadow)(this,"bytes",this.stream.getBytes(this.maybeLength))},configurable:!0});JpegStream.prototype.ensureBuffer=function(e){};JpegStream.prototype.readBlock=function(){if(this.eof)return;const e={decodeTransform:void 0,colorTransform:void 0},t=this.dict.getArray("Decode","D");if(this.forceRGB&&Array.isArray(t)){const r=this.dict.get("BitsPerComponent")||8,a=t.length,i=new Int32Array(a);let n=!1;const s=(1<0&&!e[s-1];)s--;n.push({children:[],index:0});var o,c=n[0];for(r=0;r0;)c=n.pop();c.index++;n.push(c);for(;n.length<=r;){n.push(o={children:[],index:0});c.children[c.index]=o.children;c=o}i++}if(r+10){b--;return p>>b&1}p=t[r++];if(255===p){var e=t[r++];if(e){if(220===e&&d){r+=2;const e=(0,i.readUint16)(t,r);r+=2;if(e>0&&e!==n.scanLines)throw new DNLMarkerError("Found DNL marker (0xFFDC) while parsing scan data",e)}else if(217===e){if(d){const e=k*(8===n.precision?8:0);if(e>0&&Math.round(n.scanLines/e)>=10)throw new DNLMarkerError("Found EOI marker (0xFFD9) while parsing scan data, possibly caused by incorrect `scanLines` parameter",e)}throw new EOIMarkerError("Found EOI marker (0xFFD9) while parsing scan data")}throw new JpegError("unexpected marker "+(p<<8|e).toString(16))}}b=7;return p>>>7}function decodeHuffman(e){for(var t=e;;){switch(typeof(t=t[readBit()])){case"number":return t;case"object":continue}throw new JpegError("invalid huffman sequence")}}function receive(e){for(var t=0;e>0;){t=t<<1|readBit();e--}return t}function receiveAndExtend(e){if(1===e)return 1===readBit()?1:-1;var t=receive(e);return t>=1<0)y--;else for(var a=c,i=l;a<=i;){var n=decodeHuffman(t.huffmanTableAC),s=15&n,o=n>>4;if(0!==s){var h=e[a+=o];t.blockData[r+h]=receiveAndExtend(s)*(1<>4;if(0===(a=15&i))if(o<15){y=receive(o)+(1<>4;if(0!==o){var l=e[n+=c];t.blockData[r+l]=receiveAndExtend(o);n++}else{if(c<15)break;n+=16}}};var P,E,B,O,M=0;E=1===F?s[0].blocksPerLine*s[0].blocksPerColumn:f*n.mcusPerColumn;for(;M<=E;){var D=o?Math.min(E-M,o):E;if(D>0){for(C=0;C0?"unexpected":"excessive";(0,a.warn)(`decodeScan - ${e} MCU data, current marker is: ${P.invalid}`);r=P.offset}if(!(P.marker>=65488&&P.marker<=65495))break;r+=2}return r-m}function quantizeAndInverse(e,t,r){var a,i,n,s,o,c,l,h,u,d,f,g,m,p,b,y,v,w=e.quantizationTable,k=e.blockData;if(!w)throw new JpegError("missing required Quantization Table.");for(var S=0;S<64;S+=8){u=k[t+S];d=k[t+S+1];f=k[t+S+2];g=k[t+S+3];m=k[t+S+4];p=k[t+S+5];b=k[t+S+6];y=k[t+S+7];u*=w[S];if(0!=(d|f|g|m|p|b|y)){d*=w[S+1];f*=w[S+2];g*=w[S+3];m*=w[S+4];p*=w[S+5];i=(a=(a=5793*u+128>>8)+(i=5793*m+128>>8)+1>>1)-i;v=3784*(n=f)+1567*(s=b*=w[S+6])+128>>8;n=1567*n-3784*s+128>>8;l=(o=(o=2896*(d-(y*=w[S+7]))+128>>8)+(l=p<<4)+1>>1)-l;c=(h=(h=2896*(d+y)+128>>8)+(c=g<<4)+1>>1)-c;s=(a=a+(s=v)+1>>1)-s;n=(i=i+n+1>>1)-n;v=2276*o+3406*h+2048>>12;o=3406*o-2276*h+2048>>12;h=v;v=799*c+4017*l+2048>>12;c=4017*c-799*l+2048>>12;l=v;r[S]=a+h;r[S+7]=a-h;r[S+1]=i+l;r[S+6]=i-l;r[S+2]=n+c;r[S+5]=n-c;r[S+3]=s+o;r[S+4]=s-o}else{v=5793*u+512>>10;r[S]=v;r[S+1]=v;r[S+2]=v;r[S+3]=v;r[S+4]=v;r[S+5]=v;r[S+6]=v;r[S+7]=v}}for(var C=0;C<8;++C){u=r[C];if(0!=((d=r[C+8])|(f=r[C+16])|(g=r[C+24])|(m=r[C+32])|(p=r[C+40])|(b=r[C+48])|(y=r[C+56]))){i=(a=4112+((a=5793*u+2048>>12)+(i=5793*m+2048>>12)+1>>1))-i;v=3784*(n=f)+1567*(s=b)+2048>>12;n=1567*n-3784*s+2048>>12;s=v;l=(o=(o=2896*(d-y)+2048>>12)+(l=p)+1>>1)-l;c=(h=(h=2896*(d+y)+2048>>12)+(c=g)+1>>1)-c;v=2276*o+3406*h+2048>>12;o=3406*o-2276*h+2048>>12;h=v;v=799*c+4017*l+2048>>12;c=4017*c-799*l+2048>>12;(u=(a=a+s+1>>1)+h)<16?u=0:u>=4080?u=255:u>>=4;(d=(i=i+n+1>>1)+(l=v))<16?d=0:d>=4080?d=255:d>>=4;(f=(n=i-n)+c)<16?f=0:f>=4080?f=255:f>>=4;(g=(s=a-s)+o)<16?g=0:g>=4080?g=255:g>>=4;(m=s-o)<16?m=0:m>=4080?m=255:m>>=4;(p=n-c)<16?p=0:p>=4080?p=255:p>>=4;(b=i-l)<16?b=0:b>=4080?b=255:b>>=4;(y=a-h)<16?y=0:y>=4080?y=255:y>>=4;k[t+C]=u;k[t+C+8]=d;k[t+C+16]=f;k[t+C+24]=g;k[t+C+32]=m;k[t+C+40]=p;k[t+C+48]=b;k[t+C+56]=y}else{v=(v=5793*u+8192>>14)<-2040?0:v>=2024?255:v+2056>>4;k[t+C]=v;k[t+C+8]=v;k[t+C+16]=v;k[t+C+24]=v;k[t+C+32]=v;k[t+C+40]=v;k[t+C+48]=v;k[t+C+56]=v}}}function buildComponentData(e,t){for(var r=t.blocksPerLine,a=t.blocksPerColumn,i=new Int16Array(64),n=0;n=a)return null;var s=(0,i.readUint16)(e,t);if(s>=65472&&s<=65534)return{invalid:null,marker:s,offset:t};for(var o=(0,i.readUint16)(e,n);!(o>=65472&&o<=65534);){if(++n>=a)return null;o=(0,i.readUint16)(e,n)}return{invalid:s.toString(16),marker:o,offset:n}}JpegImage.prototype={parse(t,{dnlScanLines:r=null}={}){function readDataBlock(){const e=(0,i.readUint16)(t,o);let r=(o+=2)+e-2;var n=findNextFileMarker(t,r,o);if(n&&n.invalid){(0,a.warn)("readDataBlock - incorrect length, current marker is: "+n.invalid);r=n.offset}var s=t.subarray(o,r);o+=s.length;return s}function prepareComponents(e){for(var t=Math.ceil(e.samplesPerLine/8/e.maxH),r=Math.ceil(e.scanLines/8/e.maxV),a=0;a>4==0)for(p=0;p<64;p++)k[e[p]]=t[o++];else{if(w>>4!=1)throw new JpegError("DQT - invalid table spec");for(p=0;p<64;p++){k[e[p]]=(0,i.readUint16)(t,o);o+=2}}u[15&w]=k}break;case 65472:case 65473:case 65474:if(n)throw new JpegError("Only single frame JPEGs supported");o+=2;(n={}).extended=65473===g;n.progressive=65474===g;n.precision=t[o++];const H=(0,i.readUint16)(t,o);o+=2;n.scanLines=r||H;n.samplesPerLine=(0,i.readUint16)(t,o);o+=2;n.components=[];n.componentIds={};var S,C=t[o++],x=0,A=0;for(m=0;m>4,I=15&t[o+1];x>4==0?f:d)[15&P]=buildHuffmanTable(E,O)}break;case 65501:o+=2;s=(0,i.readUint16)(t,o);o+=2;break;case 65498:const G=1==++h&&!r;o+=2;var M,D=t[o++],R=[];for(m=0;m>4];M.huffmanTableAC=d[15&L];R.push(M)}var _=t[o++],U=t[o++],q=t[o++];try{var j=decodeScan(t,o,n,R,s,_,U,q>>4,15&q,G);o+=j}catch(e){if(e instanceof DNLMarkerError){(0,a.warn)(e.message+" -- attempting to re-parse the JPEG image.");return this.parse(t,{dnlScanLines:e.scanLines})}if(e instanceof EOIMarkerError){(0,a.warn)(e.message+" -- ignoring the rest of the image data.");break e}throw e}break;case 65500:o+=4;break;case 65535:255!==t[o]&&o--;break;default:const W=findNextFileMarker(t,o-2,o-3);if(W&&W.invalid){(0,a.warn)("JpegImage.parse - unexpected data, current marker is: "+W.invalid);o=W.offset;break}if(o>=t.length-1){(0,a.warn)("JpegImage.parse - reached the end of the image data without finding an EOI marker (0xFFD9).");break e}throw new JpegError("JpegImage.parse - unknown marker: "+g.toString(16))}g=(0,i.readUint16)(t,o);o+=2}this.width=n.samplesPerLine;this.height=n.scanLines;this.jfif=c;this.adobe=l;this.components=[];for(m=0;m>8)+S[u+1];return v},get _isColorConversionNeeded(){return this.adobe?!!this.adobe.transformCode:3===this.numComponents?0!==this._colorTransform&&(82!==this.components[0].index||71!==this.components[1].index||66!==this.components[2].index):1===this._colorTransform},_convertYccToRgb:function convertYccToRgb(e){for(var t,r,a,i=0,n=e.length;i4)throw new JpegError("Unsupported color mode");var i=this._getLinearizedBlockData(e,t,a);if(1===this.numComponents&&r){for(var n=i.length,s=new Uint8ClampedArray(3*n),o=0,c=0;c>24&255,o>>16&255,o>>8&255,255&o);(0,a.warn)("Unsupported header type "+o+" ("+d+")")}l&&(t+=c)}else this.parseCodestream(e,0,e.length)},parseImageProperties:function JpxImage_parseImageProperties(e){for(var t=e.getByte();t>=0;){if(65361===(t<<8|(t=e.getByte()))){e.skip(4);var r=e.getInt32()>>>0,a=e.getInt32()>>>0,i=e.getInt32()>>>0,n=e.getInt32()>>>0;e.skip(16);var s=e.getUint16();this.width=r-i;this.height=a-n;this.componentsCount=s;this.bitsPerComponent=8;return}}throw new JpxError("No size marker found in JPX stream")},parseCodestream:function JpxImage_parseCodestream(e,t,r){var n={},s=!1;try{for(var o=t;o+1>5;u=[];for(;l>3;S.mu=0}else{S.epsilon=e[l]>>3;S.mu=(7&e[l])<<8|e[l+1];l+=2}u.push(S)}k.SPqcds=u;if(n.mainHeader)n.QCD=k;else{n.currentTile.QCD=k;n.currentTile.QCC=[]}break;case 65373:m=(0,i.readUint16)(e,o);var C,x={};l=o+2;if(n.SIZ.Csiz<257)C=e[l++];else{C=(0,i.readUint16)(e,l);l+=2}switch(31&(h=e[l++])){case 0:d=8;f=!0;break;case 1:d=16;f=!1;break;case 2:d=16;f=!0;break;default:throw new Error("Invalid SQcd value "+h)}x.noQuantization=8===d;x.scalarExpounded=f;x.guardBits=h>>5;u=[];for(;l>3;S.mu=0}else{S.epsilon=e[l]>>3;S.mu=(7&e[l])<<8|e[l+1];l+=2}u.push(S)}x.SPqcds=u;n.mainHeader?n.QCC[C]=x:n.currentTile.QCC[C]=x;break;case 65362:m=(0,i.readUint16)(e,o);var A={};l=o+2;var T=e[l++];A.entropyCoderWithCustomPrecincts=!!(1&T);A.sopMarkerUsed=!!(2&T);A.ephMarkerUsed=!!(4&T);A.progressionOrder=e[l++];A.layersCount=(0,i.readUint16)(e,l);l+=2;A.multipleComponentTransform=e[l++];A.decompositionLevelsCount=e[l++];A.xcb=2+(15&e[l++]);A.ycb=2+(15&e[l++]);var I=e[l++];A.selectiveArithmeticCodingBypass=!!(1&I);A.resetContextProbabilities=!!(2&I);A.terminationOnEachCodingPass=!!(4&I);A.verticallyStripe=!!(8&I);A.predictableTermination=!!(16&I);A.segmentationSymbolUsed=!!(32&I);A.reversibleTransformation=e[l++];if(A.entropyCoderWithCustomPrecincts){for(var F=[];l>4})}A.precinctsSizes=F}var E=[];A.selectiveArithmeticCodingBypass&&E.push("selectiveArithmeticCodingBypass");A.resetContextProbabilities&&E.push("resetContextProbabilities");A.terminationOnEachCodingPass&&E.push("terminationOnEachCodingPass");A.verticallyStripe&&E.push("verticallyStripe");A.predictableTermination&&E.push("predictableTermination");if(E.length>0){s=!0;throw new Error("Unsupported COD options ("+E.join(", ")+")")}if(n.mainHeader)n.COD=A;else{n.currentTile.COD=A;n.currentTile.COC=[]}break;case 65424:m=(0,i.readUint16)(e,o);(g={}).index=(0,i.readUint16)(e,o+2);g.length=(0,i.readUint32)(e,o+4);g.dataEnd=g.length+o-2;g.partIndex=e[o+8];g.partsCount=e[o+9];n.mainHeader=!1;if(0===g.partIndex){g.COD=n.COD;g.COC=n.COC.slice(0);g.QCD=n.QCD;g.QCC=n.QCC.slice(0)}n.currentTile=g;break;case 65427:if(0===(g=n.currentTile).partIndex){initializeTile(n,g.index);buildPackets(n)}parseTilePackets(n,e,o,m=g.dataEnd-o);break;case 65365:case 65367:case 65368:case 65380:m=(0,i.readUint16)(e,o);break;case 65363:throw new Error("Codestream code 0xFF53 (COC) is not implemented");default:throw new Error("Unknown codestream code: "+c.toString(16))}o+=m}}catch(e){if(s||this.failOnCorruptedImage)throw new JpxError(e.message);(0,a.warn)("JPX: Trying to recover from: "+e.message)}this.tiles=function transformComponents(e){for(var t=e.SIZ,r=e.components,a=t.Csiz,i=[],n=0,s=e.tiles.length;n>2);y[w++]=e+p>>h;y[w++]=e>>h;y[w++]=e+m>>h}else for(d=0;d>h;y[w++]=g-.34413*m-.71414*p>>h;y[w++]=g+1.772*m>>h}if(k)for(d=0,w=3;d>h}else for(o=0;o>h;w+=a}}i.push(v)}return i}(n);this.width=n.SIZ.Xsiz-n.SIZ.XOsiz;this.height=n.SIZ.Ysiz-n.SIZ.YOsiz;this.componentsCount=n.SIZ.Csiz}};function calculateComponentDimensions(e,t){e.x0=Math.ceil(t.XOsiz/e.XRsiz);e.x1=Math.ceil(t.Xsiz/e.XRsiz);e.y0=Math.ceil(t.YOsiz/e.YRsiz);e.y1=Math.ceil(t.Ysiz/e.YRsiz);e.width=e.x1-e.x0;e.height=e.y1-e.y0}function calculateTileGrids(e,t){for(var r,a=e.SIZ,i=[],n=Math.ceil((a.Xsiz-a.XTOsiz)/a.XTsiz),s=Math.ceil((a.Ysiz-a.YTOsiz)/a.YTsiz),o=0;o0?Math.min(a.xcb,i.PPx-1):Math.min(a.xcb,i.PPx);i.ycb_=r>0?Math.min(a.ycb,i.PPy-1):Math.min(a.ycb,i.PPy);return i}function buildPrecincts(e,t,r){var a=1<t.trx0?Math.ceil(t.trx1/a)-Math.floor(t.trx0/a):0,l=t.try1>t.try0?Math.ceil(t.try1/i)-Math.floor(t.try0/i):0,h=c*l;t.precinctParameters={precinctWidth:a,precinctHeight:i,numprecinctswide:c,numprecinctshigh:l,numprecincts:h,precinctWidthInSubband:s,precinctHeightInSubband:o}}function buildCodeblocks(e,t,r){var a,i,n,s,o=r.xcb_,c=r.ycb_,l=1<>o,d=t.tby0>>c,f=t.tbx1+l-1>>o,g=t.tby1+h-1>>c,m=t.resolution.precinctParameters,p=[],b=[];for(i=d;iy.cbxMax&&(y.cbxMax=a);iy.cbyMax&&(y.cbyMax=i)}else b[s]=y={cbxMin:a,cbyMin:i,cbxMax:a,cbyMax:i};n.precinct=y}}t.codeblockParameters={codeblockWidth:o,codeblockHeight:c,numcodeblockwide:f-u+1,numcodeblockhigh:g-d+1};t.codeblocks=p;t.precincts=b}function createPacket(e,t,r){for(var a=[],i=e.subbands,n=0,s=i.length;ne.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[l],r=t.precinctParameters.numprecincts;ue.codingStyleParameters.decompositionLevelsCount)){for(var t=e.resolutions[c],r=t.precinctParameters.numprecincts;ul.codingStyleParameters.decompositionLevelsCount)){var e=l.resolutions[r],n=e.precinctParameters.numprecincts;if(!(i>=n)){for(;t=0;--p){var b=c.resolutions[p],y=m*b.precinctParameters.precinctWidth,v=m*b.precinctParameters.precinctHeight;u=Math.min(u,y);d=Math.min(d,v);f=Math.max(f,b.precinctParameters.numprecinctswide);g=Math.max(g,b.precinctParameters.numprecinctshigh);h[p]={width:y,height:v};m<<=1}r=Math.min(r,u);a=Math.min(a,d);i=Math.max(i,f);n=Math.max(n,g);s[o]={resolutions:h,minWidth:u,minHeight:d,maxNumWide:f,maxNumHigh:g}}return{components:s,minWidth:r,minHeight:a,maxNumWide:i,maxNumHigh:n}}function buildPackets(e){for(var t=e.SIZ,r=e.currentTile.index,a=e.tiles[r],i=t.Csiz,n=0;n>>(l-=e)&(1<0;){var D=v.shift();void 0===(b=D.codeblock).data&&(b.data=[]);b.data.push({data:a,start:n+c,end:n+c+D.dataLength,codingpasses:D.codingpasses});c+=D.dataLength}}}return c}function copyCoefficients(e,t,r,a,i,o,c,l){for(var h=a.tbx0,u=a.tby0,d=a.tbx1-a.tbx0,f=a.codeblocks,g="H"===a.type.charAt(0)?1:0,m="H"===a.type.charAt(1)?t:0,p=0,b=f.length;p=o?D:D*(1<0?1-v:0)}var F=w.subbands[x],P=e[F.type];copyCoefficients(C,k,0,F,m?1:2**(g+P-I)*(1+T/2048),d+I-1,m,f)}b.push({width:k,height:S,items:C})}var E=p.calculate(b,i.tcx0,i.tcy0);return{left:i.tcx0,top:i.tcy0,width:E.width,height:E.height,items:E.items}}function initializeTile(e,t){for(var r=e.SIZ.Csiz,a=e.tiles[t],i=0;i>=1;t>>=1;a++}a--;(r=this.levels[a]).items[r.index]=i;this.currentLevel=a;delete this.value},incrementValue:function TagTree_incrementValue(){var e=this.levels[this.currentLevel];e.items[e.index]++},nextLevel:function TagTree_nextLevel(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];if(--e<0){this.value=r;return!1}this.currentLevel=e;(t=this.levels[e]).items[t.index]=r;return!0}};return TagTree}(),r=function InclusionTreeClosure(){function InclusionTree(e,t,r){var a=(0,i.log2)(Math.max(e,t))+1;this.levels=[];for(var n=0;nr){this.currentLevel=a;this.propagateValues();return!1}e>>=1;t>>=1;a++}this.currentLevel=a-1;return!0},incrementValue:function InclusionTree_incrementValue(e){var t=this.levels[this.currentLevel];t.items[t.index]=e+1;this.propagateValues()},propagateValues:function InclusionTree_propagateValues(){for(var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];--e>=0;)(t=this.levels[e]).items[t.index]=r},nextLevel:function InclusionTree_nextLevel(){var e=this.currentLevel,t=this.levels[e],r=t.items[t.index];t.items[t.index]=255;if(--e<0)return!1;this.currentLevel=e;(t=this.levels[e]).items[t.index]=r;return!0}};return InclusionTree}(),s=function BitModelClosure(){var e=new Uint8Array([0,5,8,0,3,7,8,0,4,7,8,0,0,0,0,0,1,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8,0,0,0,0,0,2,6,8,0,3,7,8,0,4,7,8]),t=new Uint8Array([0,3,4,0,5,7,7,0,8,8,8,0,0,0,0,0,1,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8,0,0,0,0,0,2,3,4,0,6,7,7,0,8,8,8]),r=new Uint8Array([0,1,2,0,1,2,2,0,2,2,2,0,0,0,0,0,3,4,5,0,4,5,5,0,5,5,5,0,0,0,0,0,6,7,7,0,7,7,7,0,7,7,7,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8,0,0,0,0,0,8,8,8,0,8,8,8,0,8,8,8]);function BitModel(a,i,n,s,o){this.width=a;this.height=i;let c;c="HH"===n?r:"HL"===n?t:e;this.contextLabelTable=c;var l=a*i;this.neighborsSignificance=new Uint8Array(l);this.coefficentsSign=new Uint8Array(l);let h;h=o>14?new Uint32Array(l):o>6?new Uint16Array(l):new Uint8Array(l);this.coefficentsMagnitude=h;this.processingFlags=new Uint8Array(l);var u=new Uint8Array(l);if(0!==s)for(var d=0;d0,c=t+10){a=r-n;o&&(i[a-1]+=16);c&&(i[a+1]+=16);i[a]+=4}if(e+1=r)break;s[d]&=-2;if(!a[d]&&n[d]){var m=c[n[d]];if(e.readBit(o,m)){var p=this.decodeSignBit(g,u,d);i[d]=p;a[d]=1;this.setNeighborsSignificance(g,u,d);s[d]|=2}l[d]++;s[d]|=1}}},decodeSignBit:function BitModel_decodeSignBit(e,t,r){var a,i,n,s,o,c,l=this.width,h=this.height,u=this.coefficentsMagnitude,d=this.coefficentsSign;s=t>0&&0!==u[r-1];if(t+10&&0!==u[r-l];if(e+1=0){o=9+a;c=this.decoder.readBit(this.contexts,o)}else{o=9-a;c=1^this.decoder.readBit(this.contexts,o)}return c},runMagnitudeRefinementPass:function BitModel_runMagnitudeRefinementPass(){for(var e,t=this.decoder,r=this.width,a=this.height,i=this.coefficentsMagnitude,n=this.neighborsSignificance,s=this.contexts,o=this.bitsDecoded,c=this.processingFlags,l=r*a,h=4*r,u=0;u>1,c=-1.586134342059924,l=-.052980118572961,h=.882911075530934,u=.443506852043971,d=1.230174104914001;a=(t|=0)-3;for(i=o+4;i--;a+=2)e[a]*=.8128930661159609;n=u*e[(a=t-2)-1];for(i=o+3;i--;a+=2){s=u*e[a+1];e[a]=d*e[a]-n-s;if(!i--)break;n=u*e[(a+=2)+1];e[a]=d*e[a]-n-s}n=h*e[(a=t-1)-1];for(i=o+2;i--;a+=2){s=h*e[a+1];e[a]-=n+s;if(!i--)break;n=h*e[(a+=2)+1];e[a]-=n+s}n=l*e[(a=t)-1];for(i=o+1;i--;a+=2){s=l*e[a+1];e[a]-=n+s;if(!i--)break;n=l*e[(a+=2)+1];e[a]-=n+s}if(0!==o){n=c*e[(a=t+1)-1];for(i=o;i--;a+=2){s=c*e[a+1];e[a]-=n+s;if(!i--)break;n=c*e[(a+=2)+1];e[a]-=n+s}}};return IrreversibleTransform}(),l=function ReversibleTransformClosure(){function ReversibleTransform(){o.call(this)}ReversibleTransform.prototype=Object.create(o.prototype);ReversibleTransform.prototype.filter=function reversibleTransformFilter(e,t,r){var a,i,n=r>>1;for(a=t|=0,i=n+1;i--;a+=2)e[a]-=e[a-1]+e[a+1]+2>>2;for(a=t+1,i=n;i--;a+=2)e[a]+=e[a-1]+e[a+1]>>1};return ReversibleTransform}();return JpxImage}();t.JpxImage=s},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.calculateSHA512=t.calculateSHA384=t.calculateSHA256=t.calculateMD5=t.PDF20=t.PDF17=t.CipherTransformFactory=t.ARCFourCipher=t.AES256Cipher=t.AES128Cipher=void 0;var a=r(2),i=r(5),n=r(12),s=function ARCFourCipherClosure(){function ARCFourCipher(e){this.a=0;this.b=0;var t,r,a=new Uint8Array(256),i=0,n=e.length;for(t=0;t<256;++t)a[t]=t;for(t=0;t<256;++t){i=i+(r=a[t])+e[t%n]&255;a[t]=a[i];a[i]=r}this.s=a}ARCFourCipher.prototype={encryptBlock:function ARCFourCipher_encryptBlock(e){var t,r,a,i=e.length,n=this.a,s=this.b,o=this.s,c=new Uint8Array(i);for(t=0;t>5&255;f[n++]=i>>13&255;f[n++]=i>>21&255;f[n++]=i>>>29&255;f[n++]=0;f[n++]=0;f[n++]=0;var g=new Int32Array(16);for(n=0;n>>32-C)|0;b=k}c=c+b|0;l=l+y|0;h=h+v|0;u=u+w|0}return new Uint8Array([255&c,c>>8&255,c>>16&255,c>>>24&255,255&l,l>>8&255,l>>16&255,l>>>24&255,255&h,h>>8&255,h>>16&255,h>>>24&255,255&u,u>>8&255,u>>16&255,u>>>24&255])}}();t.calculateMD5=o;var c=function Word64Closure(){function Word64(e,t){this.high=0|e;this.low=0|t}Word64.prototype={and:function Word64_and(e){this.high&=e.high;this.low&=e.low},xor:function Word64_xor(e){this.high^=e.high;this.low^=e.low},or:function Word64_or(e){this.high|=e.high;this.low|=e.low},shiftRight:function Word64_shiftRight(e){if(e>=32){this.low=this.high>>>e-32|0;this.high=0}else{this.low=this.low>>>e|this.high<<32-e;this.high=this.high>>>e|0}},shiftLeft:function Word64_shiftLeft(e){if(e>=32){this.high=this.low<>>32-e;this.low=this.low<>>e|r<<32-e;this.high=r>>>e|t<<32-e},not:function Word64_not(){this.high=~this.high;this.low=~this.low},add:function Word64_add(e){var t=(this.low>>>0)+(e.low>>>0),r=(this.high>>>0)+(e.high>>>0);t>4294967295&&(r+=1);this.low=0|t;this.high=0|r},copyTo:function Word64_copyTo(e,t){e[t]=this.high>>>24&255;e[t+1]=this.high>>16&255;e[t+2]=this.high>>8&255;e[t+3]=255&this.high;e[t+4]=this.low>>>24&255;e[t+5]=this.low>>16&255;e[t+6]=this.low>>8&255;e[t+7]=255&this.low},assign:function Word64_assign(e){this.high=e.high;this.low=e.low}};return Word64}(),l=function calculateSHA256Closure(){function rotr(e,t){return e>>>t|e<<32-t}function ch(e,t,r){return e&t^~e&r}function maj(e,t,r){return e&t^e&r^t&r}function sigma(e){return rotr(e,2)^rotr(e,13)^rotr(e,22)}function sigmaPrime(e){return rotr(e,6)^rotr(e,11)^rotr(e,25)}function littleSigma(e){return rotr(e,7)^rotr(e,18)^e>>>3}var e=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];return function hash(t,r,a){var i,n,s,o=1779033703,c=3144134277,l=1013904242,h=2773480762,u=1359893119,d=2600822924,f=528734635,g=1541459225,m=64*Math.ceil((a+9)/64),p=new Uint8Array(m);for(i=0;i>>29&255;p[i++]=a>>21&255;p[i++]=a>>13&255;p[i++]=a>>5&255;p[i++]=a<<3&255;var b,y=new Uint32Array(64);for(i=0;i>>10)+y[n-7]+littleSigma(y[n-15])+y[n-16]|0;var v,w,k=o,S=c,C=l,x=h,A=u,T=d,I=f,F=g;for(n=0;n<64;++n){v=F+sigmaPrime(A)+ch(A,T,I)+e[n]+y[n];w=sigma(k)+maj(k,S,C);F=I;I=T;T=A;A=x+v|0;x=C;C=S;S=k;k=v+w|0}o=o+k|0;c=c+S|0;l=l+C|0;h=h+x|0;u=u+A|0;d=d+T|0;f=f+I|0;g=g+F|0}return new Uint8Array([o>>24&255,o>>16&255,o>>8&255,255&o,c>>24&255,c>>16&255,c>>8&255,255&c,l>>24&255,l>>16&255,l>>8&255,255&l,h>>24&255,h>>16&255,h>>8&255,255&h,u>>24&255,u>>16&255,u>>8&255,255&u,d>>24&255,d>>16&255,d>>8&255,255&d,f>>24&255,f>>16&255,f>>8&255,255&f,g>>24&255,g>>16&255,g>>8&255,255&g])}}();t.calculateSHA256=l;var h=function calculateSHA512Closure(){function ch(e,t,r,a,i){e.assign(t);e.and(r);i.assign(t);i.not();i.and(a);e.xor(i)}function maj(e,t,r,a,i){e.assign(t);e.and(r);i.assign(t);i.and(a);e.xor(i);i.assign(r);i.and(a);e.xor(i)}function sigma(e,t,r){e.assign(t);e.rotateRight(28);r.assign(t);r.rotateRight(34);e.xor(r);r.assign(t);r.rotateRight(39);e.xor(r)}function sigmaPrime(e,t,r){e.assign(t);e.rotateRight(14);r.assign(t);r.rotateRight(18);e.xor(r);r.assign(t);r.rotateRight(41);e.xor(r)}function littleSigma(e,t,r){e.assign(t);e.rotateRight(1);r.assign(t);r.rotateRight(8);e.xor(r);r.assign(t);r.shiftRight(7);e.xor(r)}function littleSigmaPrime(e,t,r){e.assign(t);e.rotateRight(19);r.assign(t);r.rotateRight(61);e.xor(r);r.assign(t);r.shiftRight(6);e.xor(r)}var e=[new c(1116352408,3609767458),new c(1899447441,602891725),new c(3049323471,3964484399),new c(3921009573,2173295548),new c(961987163,4081628472),new c(1508970993,3053834265),new c(2453635748,2937671579),new c(2870763221,3664609560),new c(3624381080,2734883394),new c(310598401,1164996542),new c(607225278,1323610764),new c(1426881987,3590304994),new c(1925078388,4068182383),new c(2162078206,991336113),new c(2614888103,633803317),new c(3248222580,3479774868),new c(3835390401,2666613458),new c(4022224774,944711139),new c(264347078,2341262773),new c(604807628,2007800933),new c(770255983,1495990901),new c(1249150122,1856431235),new c(1555081692,3175218132),new c(1996064986,2198950837),new c(2554220882,3999719339),new c(2821834349,766784016),new c(2952996808,2566594879),new c(3210313671,3203337956),new c(3336571891,1034457026),new c(3584528711,2466948901),new c(113926993,3758326383),new c(338241895,168717936),new c(666307205,1188179964),new c(773529912,1546045734),new c(1294757372,1522805485),new c(1396182291,2643833823),new c(1695183700,2343527390),new c(1986661051,1014477480),new c(2177026350,1206759142),new c(2456956037,344077627),new c(2730485921,1290863460),new c(2820302411,3158454273),new c(3259730800,3505952657),new c(3345764771,106217008),new c(3516065817,3606008344),new c(3600352804,1432725776),new c(4094571909,1467031594),new c(275423344,851169720),new c(430227734,3100823752),new c(506948616,1363258195),new c(659060556,3750685593),new c(883997877,3785050280),new c(958139571,3318307427),new c(1322822218,3812723403),new c(1537002063,2003034995),new c(1747873779,3602036899),new c(1955562222,1575990012),new c(2024104815,1125592928),new c(2227730452,2716904306),new c(2361852424,442776044),new c(2428436474,593698344),new c(2756734187,3733110249),new c(3204031479,2999351573),new c(3329325298,3815920427),new c(3391569614,3928383900),new c(3515267271,566280711),new c(3940187606,3454069534),new c(4118630271,4000239992),new c(116418474,1914138554),new c(174292421,2731055270),new c(289380356,3203993006),new c(460393269,320620315),new c(685471733,587496836),new c(852142971,1086792851),new c(1017036298,365543100),new c(1126000580,2618297676),new c(1288033470,3409855158),new c(1501505948,4234509866),new c(1607167915,987167468),new c(1816402316,1246189591)];return function hash(t,r,a,i){var n,s,o,l,h,u,d,f;if(i=!!i){n=new c(3418070365,3238371032);s=new c(1654270250,914150663);o=new c(2438529370,812702999);l=new c(355462360,4144912697);h=new c(1731405415,4290775857);u=new c(2394180231,1750603025);d=new c(3675008525,1694076839);f=new c(1203062813,3204075428)}else{n=new c(1779033703,4089235720);s=new c(3144134277,2227873595);o=new c(1013904242,4271175723);l=new c(2773480762,1595750129);h=new c(1359893119,2917565137);u=new c(2600822924,725511199);d=new c(528734635,4215389547);f=new c(1541459225,327033209)}var g,m,p,b=128*Math.ceil((a+17)/128),y=new Uint8Array(b);for(g=0;g>>29&255;y[g++]=a>>21&255;y[g++]=a>>13&255;y[g++]=a>>5&255;y[g++]=a<<3&255;var v=new Array(80);for(g=0;g<80;g++)v[g]=new c(0,0);var w,k,S=new c(0,0),C=new c(0,0),x=new c(0,0),A=new c(0,0),T=new c(0,0),I=new c(0,0),F=new c(0,0),P=new c(0,0),E=new c(0,0),B=new c(0,0),O=new c(0,0),M=new c(0,0);for(g=0;g=1;--e){r=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=r;r=n[14];a=n[10];n[14]=n[6];n[10]=n[2];n[6]=r;n[2]=a;r=n[15];a=n[11];i=n[7];n[15]=n[3];n[11]=r;n[7]=a;n[3]=i;for(let e=0;e<16;++e)n[e]=this._inv_s[n[e]];for(let r=0,a=16*e;r<16;++r,++a)n[r]^=t[a];for(let e=0;e<16;e+=4){const t=this._mix[n[e]],a=this._mix[n[e+1]],i=this._mix[n[e+2]],s=this._mix[n[e+3]];r=t^a>>>8^a<<24^i>>>16^i<<16^s>>>24^s<<8;n[e]=r>>>24&255;n[e+1]=r>>16&255;n[e+2]=r>>8&255;n[e+3]=255&r}}r=n[13];n[13]=n[9];n[9]=n[5];n[5]=n[1];n[1]=r;r=n[14];a=n[10];n[14]=n[6];n[10]=n[2];n[6]=r;n[2]=a;r=n[15];a=n[11];i=n[7];n[15]=n[3];n[11]=r;n[7]=a;n[3]=i;for(let e=0;e<16;++e){n[e]=this._inv_s[n[e]];n[e]^=t[e]}return n}_encrypt(e,t){const r=this._s;let a,i,n;const s=new Uint8Array(16);s.set(e);for(let e=0;e<16;++e)s[e]^=t[e];for(let e=1;e=a;--r)if(e[r]!==t){t=0;break}o-=t;n[n.length-1]=e.subarray(0,16-t)}}const c=new Uint8Array(o);for(let e=0,t=0,r=n.length;e=256&&(o=255&(27^o))}for(let t=0;t<4;++t){r[e]=a^=r[e-32];e++;r[e]=i^=r[e-32];e++;r[e]=n^=r[e-32];e++;r[e]=s^=r[e-32];e++}}return r}}t.AES256Cipher=AES256Cipher;var f=function PDF17Closure(){function compareByteArrays(e,t){if(e.length!==t.length)return!1;for(var r=0;rn-32;){var s=e.length+a.length+r.length,o=new Uint8Array(64*s),c=concatArrays(e,a);c=concatArrays(c,r);for(var d=0,f=0;d<64;d++,f+=s)o.set(c,f);i=new AES128Cipher(a.subarray(0,16)).encrypt(o,a.subarray(16,32));for(var g=0,m=0;m<16;m++){g*=1;g%=3;g+=(i[m]>>>0)%3;g%=3}0===g?a=l(i,0,i.length):1===g?a=u(i,0,i.length):2===g&&(a=h(i,0,i.length));n++}return a.subarray(0,32)}function PDF20(){}function compareByteArrays(e,t){if(e.length!==t.length)return!1;for(var r=0;r>8&255;g[m++]=n>>16&255;g[m++]=n>>>24&255;for(u=0,d=t.length;u=4&&!h){g[m++]=255;g[m++]=255;g[m++]=255;g[m++]=255}var p=o(g,0,m),b=l>>3;if(c>=3)for(u=0;u<50;++u)p=o(p,0,b);var y,v=p.subarray(0,b);if(c>=3){for(m=0;m<32;++m)g[m]=e[m];for(u=0,d=t.length;u>3;if(a>=3)for(n=0;n<50;++n)d=o(d,0,d.length);if(a>=3){u=r;var g,m=new Uint8Array(f);for(n=19;n>=0;n--){for(g=0;g=4){var O=r.get("CF");(0,i.isDict)(O)&&(O.suppressEncryption=!0);this.cf=O;this.stmf=r.get("StmF")||t;this.strf=r.get("StrF")||t;this.eff=r.get("EFF")||this.stmf}}function buildObjectKey(e,t,r,a){var i,n,s=new Uint8Array(r.length+9);for(i=0,n=r.length;i>8&255;s[i++]=e>>16&255;s[i++]=255&t;s[i++]=t>>8&255;if(a){s[i++]=115;s[i++]=65;s[i++]=108;s[i++]=84}return o(s,0,i).subarray(0,Math.min(r.length+5,16))}function buildCipherConstructor(e,t,r,n,o){if(!(0,i.isName)(t))throw new a.FormatError("Invalid crypt filter name.");var c,l=e.get(t.name);null!=l&&(c=l.get("CFM"));if(!c||"None"===c.name)return function cipherTransformFactoryBuildCipherConstructorNone(){return new d};if("V2"===c.name)return function cipherTransformFactoryBuildCipherConstructorV2(){return new s(buildObjectKey(r,n,o,!1))};if("AESV2"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV2(){return new AES128Cipher(buildObjectKey(r,n,o,!0))};if("AESV3"===c.name)return function cipherTransformFactoryBuildCipherConstructorAESV3(){return new AES256Cipher(o)};throw new a.FormatError("Unknown crypto method")}CipherTransformFactory.prototype={createCipherTransform:function CipherTransformFactory_createCipherTransform(e,t){if(4===this.algorithm||5===this.algorithm)return new m(buildCipherConstructor(this.cf,this.stmf,e,t,this.encryptionKey),buildCipherConstructor(this.cf,this.strf,e,t,this.encryptionKey));var r=buildObjectKey(e,t,this.encryptionKey,!1),a=function buildCipherCipherConstructor(){return new s(r)};return new m(a,a)}};return CipherTransformFactory}();t.CipherTransformFactory=p},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.ColorSpace=void 0;var a=r(2),i=r(5),n=r(8);class ColorSpace{constructor(e,t){this.constructor===ColorSpace&&(0,a.unreachable)("Cannot initialize ColorSpace.");this.name=e;this.numComps=t}getRgb(e,t){const r=new Uint8ClampedArray(3);this.getRgbItem(e,t,r,0);return r}getRgbItem(e,t,r,i){(0,a.unreachable)("Should not call ColorSpace.getRgbItem")}getRgbBuffer(e,t,r,i,n,s,o){(0,a.unreachable)("Should not call ColorSpace.getRgbBuffer")}getOutputLength(e,t){(0,a.unreachable)("Should not call ColorSpace.getOutputLength")}isPassthrough(e){return!1}isDefaultDecode(e,t){return ColorSpace.isDefaultDecode(e,this.numComps)}fillRgb(e,t,r,a,i,n,s,o,c){const l=t*r;let h=null;const u=1<u&&"DeviceGray"!==this.name&&"DeviceRGB"!==this.name){const t=s<=8?new Uint8Array(u):new Uint16Array(u);for(let e=0;e=.99554525?1:adjustToRange(0,1,1.055*e**(1/2.4)-.055)}function adjustToRange(e,t,r){return Math.max(e,Math.min(t,r))}function decodeL(e){return e<0?-decodeL(-e):e>8?((e+16)/116)**3:e*((24/116)**3/8)}function convertToRgb(a,c,l,h,u,d){const f=adjustToRange(0,1,c[l]*d),g=adjustToRange(0,1,c[l+1]*d),m=adjustToRange(0,1,c[l+2]*d),p=1===f?1:f**a.GR,b=1===g?1:g**a.GG,y=1===m?1:m**a.GB,v=a.MXA*p+a.MXB*b+a.MXC*y,w=a.MYA*p+a.MYB*b+a.MYC*y,k=a.MZA*p+a.MZB*b+a.MZC*y,S=s;S[0]=v;S[1]=w;S[2]=k;const C=o;!function normalizeWhitePointToFlat(r,a,i){if(1===r[0]&&1===r[2]){i[0]=a[0];i[1]=a[1];i[2]=a[2];return}const s=i;matrixProduct(e,a,s);const o=n;!function convertToFlat(e,t,r){r[0]=1*t[0]/e[0];r[1]=1*t[1]/e[1];r[2]=1*t[2]/e[2]}(r,s,o);matrixProduct(t,o,i)}(a.whitePoint,S,C);const x=s;!function compensateBlackPoint(e,t,r){if(0===e[0]&&0===e[1]&&0===e[2]){r[0]=t[0];r[1]=t[1];r[2]=t[2];return}const a=decodeL(0),i=(1-a)/(1-decodeL(e[0])),n=1-i,s=(1-a)/(1-decodeL(e[1])),o=1-s,c=(1-a)/(1-decodeL(e[2])),l=1-c;r[0]=t[0]*i+n;r[1]=t[1]*s+o;r[2]=t[2]*c+l}(a.blackPoint,C,x);const A=o;!function normalizeWhitePointToD65(r,a,i){const s=i;matrixProduct(e,a,s);const o=n;!function convertToD65(e,t,r){r[0]=.95047*t[0]/e[0];r[1]=1*t[1]/e[1];r[2]=1.08883*t[2]/e[2]}(r,s,o);matrixProduct(t,o,i)}(i,x,A);const T=s;matrixProduct(r,A,T);h[u]=255*sRGBTransferFunction(T[0]);h[u+1]=255*sRGBTransferFunction(T[1]);h[u+2]=255*sRGBTransferFunction(T[2])}return class CalRGBCS extends ColorSpace{constructor(e,t,r,i){super("CalRGB",3);if(!e)throw new a.FormatError("WhitePoint missing - required for color space CalRGB");t=t||new Float32Array(3);r=r||new Float32Array([1,1,1]);i=i||new Float32Array([1,0,0,0,1,0,0,0,1]);const n=e[0],s=e[1],o=e[2];this.whitePoint=e;const c=t[0],l=t[1],h=t[2];this.blackPoint=t;this.GR=r[0];this.GG=r[1];this.GB=r[2];this.MXA=i[0];this.MYA=i[1];this.MZA=i[2];this.MXB=i[3];this.MYB=i[4];this.MZB=i[5];this.MXC=i[6];this.MYC=i[7];this.MZC=i[8];if(n<0||o<0||1!==s)throw new a.FormatError("Invalid WhitePoint components for "+this.name+", no fallback available");if(c<0||l<0||h<0){(0,a.info)(`Invalid BlackPoint for ${this.name} [${c}, ${l}, ${h}], falling back to default.`);this.blackPoint=new Float32Array(3)}if(this.GR<0||this.GG<0||this.GB<0){(0,a.info)(`Invalid Gamma [${this.GR}, ${this.GG}, ${this.GB}] for `+this.name+", falling back to default.");this.GR=this.GG=this.GB=1}}getRgbItem(e,t,r,a){convertToRgb(this,e,t,r,a,1)}getRgbBuffer(e,t,r,a,i,n,s){const o=1/((1<=6/29?e*e*e:108/841*(e-4/29);return t}function decode(e,t,r,a){return r+e*(a-r)/t}function convertToRgb(e,t,r,a,i,n){let s=t[r],o=t[r+1],c=t[r+2];if(!1!==a){s=decode(s,a,0,100);o=decode(o,a,e.amin,e.amax);c=decode(c,a,e.bmin,e.bmax)}o>e.amax?o=e.amax:oe.bmax?c=e.bmax:cthis.amax||this.bmin>this.bmax){(0,a.info)("Invalid Range, falling back to defaults");this.amin=-100;this.amax=100;this.bmin=-100;this.bmax=100}}getRgbItem(e,t,r,a){convertToRgb(this,e,t,!1,r,a)}getRgbBuffer(e,t,r,a,i,n,s){const o=(1<=GlobalImageCache.MAX_IMAGES_TO_CACHE)}addPageIndex(e,t){let r=this._refCache.get(e);if(!r){r=new Set;this._refCache.put(e,r)}r.add(t)}getData(e,t){const r=this._refCache.get(e);if(!r)return null;if(r.size=GlobalImageCache.MAX_IMAGES_TO_CACHE?(0,a.info)("GlobalImageCache.setData - ignoring image above MAX_IMAGES_TO_CACHE."):this._imageCache.put(e,t))}clear(e=!1){e||this._refCache.clear();this._imageCache.clear()}}t.GlobalImageCache=GlobalImageCache},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.getQuadPoints=getQuadPoints;t.MarkupAnnotation=t.AnnotationFactory=t.AnnotationBorderStyle=t.Annotation=void 0;var a=r(2),i=r(10),n=r(5),s=r(23),o=r(8),c=r(26),l=r(12),h=r(27);t.AnnotationFactory=class AnnotationFactory{static create(e,t,r,a){return r.ensureCatalog("acroForm").then(i=>r.ensure(this,"_create",[e,t,r,a,i]))}static _create(e,t,r,i,s){const c=e.fetchIfRef(t);if(!(0,n.isDict)(c))return;const l=(0,n.isRef)(t)?t.toString():"annot_"+i.createObjId();let h=c.get("Subtype");h=(0,n.isName)(h)?h.name:null;const u={xref:e,ref:t,dict:c,subtype:h,id:l,pdfManager:r,acroForm:s instanceof n.Dict?s:n.Dict.empty};switch(h){case"Link":return new LinkAnnotation(u);case"Text":return new TextAnnotation(u);case"Widget":let e=(0,o.getInheritableProperty)({dict:c,key:"FT"});e=(0,n.isName)(e)?e.name:null;switch(e){case"Tx":return new TextWidgetAnnotation(u);case"Btn":return new ButtonWidgetAnnotation(u);case"Ch":return new ChoiceWidgetAnnotation(u)}(0,a.warn)('Unimplemented widget field type "'+e+'", falling back to base field type.');return new WidgetAnnotation(u);case"Popup":return new PopupAnnotation(u);case"FreeText":return new FreeTextAnnotation(u);case"Line":return new LineAnnotation(u);case"Square":return new SquareAnnotation(u);case"Circle":return new CircleAnnotation(u);case"PolyLine":return new PolylineAnnotation(u);case"Polygon":return new PolygonAnnotation(u);case"Caret":return new CaretAnnotation(u);case"Ink":return new InkAnnotation(u);case"Highlight":return new HighlightAnnotation(u);case"Underline":return new UnderlineAnnotation(u);case"Squiggly":return new SquigglyAnnotation(u);case"StrikeOut":return new StrikeOutAnnotation(u);case"Stamp":return new StampAnnotation(u);case"FileAttachment":return new FileAttachmentAnnotation(u);default:h?(0,a.warn)('Unimplemented annotation type "'+h+'", falling back to base annotation.'):(0,a.warn)("Annotation is missing the required /Subtype.");return new Annotation(u)}}};function getQuadPoints(e,t){if(!e.has("QuadPoints"))return null;const r=e.getArray("QuadPoints");if(!Array.isArray(r)||r.length%8>0)return null;const a=[];for(let e=0,i=r.length/8;et[2]||st[3])return null;a[e].push({x:n,y:s})}}return a}function getTransformMatrix(e,t,r){const[i,n,s,o]=a.Util.getAxialAlignedBoundingBox(t,r);if(i===s||n===o)return[1,0,0,1,e[0],e[1]];const c=(e[2]-e[0])/(s-i),l=(e[3]-e[1])/(o-n);return[c,0,0,l,e[0]-i*c,e[1]-n*l]}class Annotation{constructor(e){const t=e.dict;this.setContents(t.get("Contents"));this.setModificationDate(t.get("M"));this.setFlags(t.get("F"));this.setRectangle(t.getArray("Rect"));this.setColor(t.getArray("C"));this.setBorderStyle(t);this.setAppearance(t);this.data={annotationFlags:this.flags,borderStyle:this.borderStyle,color:this.color,contents:this.contents,hasAppearance:!!this.appearance,id:e.id,modificationDate:this.modificationDate,rect:this.rectangle,subtype:e.subtype}}_hasFlag(e,t){return!!(e&t)}_isViewable(e){return!this._hasFlag(e,a.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,a.AnnotationFlag.HIDDEN)&&!this._hasFlag(e,a.AnnotationFlag.NOVIEW)}_isPrintable(e){return this._hasFlag(e,a.AnnotationFlag.PRINT)&&!this._hasFlag(e,a.AnnotationFlag.INVISIBLE)&&!this._hasFlag(e,a.AnnotationFlag.HIDDEN)}get viewable(){return 0===this.flags||this._isViewable(this.flags)}get printable(){return 0!==this.flags&&this._isPrintable(this.flags)}setContents(e){this.contents=(0,a.stringToPDFString)(e||"")}setModificationDate(e){this.modificationDate=(0,a.isString)(e)?e:null}setFlags(e){this.flags=Number.isInteger(e)&&e>0?e:0}hasFlag(e){return this._hasFlag(this.flags,e)}setRectangle(e){Array.isArray(e)&&4===e.length?this.rectangle=a.Util.normalizeRect(e):this.rectangle=[0,0,0,0]}setColor(e){const t=new Uint8ClampedArray(3);if(Array.isArray(e))switch(e.length){case 0:this.color=null;break;case 1:s.ColorSpace.singletons.gray.getRgbItem(e,0,t,0);this.color=t;break;case 3:s.ColorSpace.singletons.rgb.getRgbItem(e,0,t,0);this.color=t;break;case 4:s.ColorSpace.singletons.cmyk.getRgbItem(e,0,t,0);this.color=t;break;default:this.color=t}else this.color=t}setBorderStyle(e){this.borderStyle=new AnnotationBorderStyle;if((0,n.isDict)(e))if(e.has("BS")){const t=e.get("BS"),r=t.get("Type");if(!r||(0,n.isName)(r,"Border")){this.borderStyle.setWidth(t.get("W"),this.rectangle);this.borderStyle.setStyle(t.get("S"));this.borderStyle.setDashArray(t.getArray("D"))}}else if(e.has("Border")){const t=e.getArray("Border");if(Array.isArray(t)&&t.length>=3){this.borderStyle.setHorizontalCornerRadius(t[0]);this.borderStyle.setVerticalCornerRadius(t[1]);this.borderStyle.setWidth(t[2],this.rectangle);4===t.length&&this.borderStyle.setDashArray(t[3])}}else this.borderStyle.setWidth(0)}setAppearance(e){this.appearance=null;const t=e.get("AP");if(!(0,n.isDict)(t))return;const r=t.get("N");if((0,n.isStream)(r)){this.appearance=r;return}if(!(0,n.isDict)(r))return;const a=e.get("AS");(0,n.isName)(a)&&r.has(a.name)&&(this.appearance=r.get(a.name))}loadResources(e){return this.appearance.dict.getAsync("Resources").then(t=>{if(!t)return;return new i.ObjectLoader(t,e,t.xref).load().then((function(){return t}))})}getOperatorList(e,t,r,i){if(!this.appearance)return Promise.resolve(new c.OperatorList);const n=this.appearance,s=this.data,o=n.dict,l=this.loadResources(["ExtGState","ColorSpace","Pattern","Shading","XObject","Font"]),h=o.getArray("BBox")||[0,0,1,1],u=o.getArray("Matrix")||[1,0,0,1,0,0],d=getTransformMatrix(s.rect,h,u);return l.then(r=>{const i=new c.OperatorList;i.addOp(a.OPS.beginAnnotation,[s.rect,d,u]);return e.getOperatorList({stream:n,task:t,resources:r,operatorList:i}).then(()=>{i.addOp(a.OPS.endAnnotation,[]);n.reset();return i})})}async save(e,t,r){return null}}t.Annotation=Annotation;class AnnotationBorderStyle{constructor(){this.width=1;this.style=a.AnnotationBorderStyleType.SOLID;this.dashArray=[3];this.horizontalCornerRadius=0;this.verticalCornerRadius=0}setWidth(e,t=[0,0,0,0]){if((0,n.isName)(e))this.width=0;else if(Number.isInteger(e)){if(e>0){const r=(t[2]-t[0])/2,i=(t[3]-t[1])/2;if(r>0&&i>0&&(e>r||e>i)){(0,a.warn)("AnnotationBorderStyle.setWidth - ignoring width: "+e);e=1}}this.width=e}}setStyle(e){if((0,n.isName)(e))switch(e.name){case"S":this.style=a.AnnotationBorderStyleType.SOLID;break;case"D":this.style=a.AnnotationBorderStyleType.DASHED;break;case"B":this.style=a.AnnotationBorderStyleType.BEVELED;break;case"I":this.style=a.AnnotationBorderStyleType.INSET;break;case"U":this.style=a.AnnotationBorderStyleType.UNDERLINE}}setDashArray(e){if(Array.isArray(e)&&e.length>0){let t=!0,r=!0;for(const a of e){if(!(+a>=0)){t=!1;break}a>0&&(r=!1)}t&&!r?this.dashArray=e:this.width=0}else e&&(this.width=0)}setHorizontalCornerRadius(e){Number.isInteger(e)&&(this.horizontalCornerRadius=e)}setVerticalCornerRadius(e){Number.isInteger(e)&&(this.verticalCornerRadius=e)}}t.AnnotationBorderStyle=AnnotationBorderStyle;class MarkupAnnotation extends Annotation{constructor(e){super(e);const t=e.dict;if(t.has("IRT")){const e=t.getRaw("IRT");this.data.inReplyTo=(0,n.isRef)(e)?e.toString():null;const r=t.get("RT");this.data.replyType=(0,n.isName)(r)?r.name:a.AnnotationReplyType.REPLY}if(this.data.replyType===a.AnnotationReplyType.GROUP){const e=t.get("IRT");this.data.title=(0,a.stringToPDFString)(e.get("T")||"");this.setContents(e.get("Contents"));this.data.contents=this.contents;if(e.has("CreationDate")){this.setCreationDate(e.get("CreationDate"));this.data.creationDate=this.creationDate}else this.data.creationDate=null;if(e.has("M")){this.setModificationDate(e.get("M"));this.data.modificationDate=this.modificationDate}else this.data.modificationDate=null;this.data.hasPopup=e.has("Popup");if(e.has("C")){this.setColor(e.getArray("C"));this.data.color=this.color}else this.data.color=null}else{this.data.title=(0,a.stringToPDFString)(t.get("T")||"");this.setCreationDate(t.get("CreationDate"));this.data.creationDate=this.creationDate;this.data.hasPopup=t.has("Popup");t.has("C")||(this.data.color=null)}}setCreationDate(e){this.creationDate=(0,a.isString)(e)?e:null}}t.MarkupAnnotation=MarkupAnnotation;class WidgetAnnotation extends Annotation{constructor(e){super(e);const t=e.dict,r=this.data;this.ref=e.ref;r.annotationType=a.AnnotationType.WIDGET;r.fieldName=this._constructFieldName(t);const i=(0,o.getInheritableProperty)({dict:t,key:"V",getArray:!0});r.fieldValue=this._decodeFormValue(i);r.alternativeText=(0,a.stringToPDFString)(t.get("TU")||"");r.defaultAppearance=(0,o.getInheritableProperty)({dict:t,key:"DA"})||e.acroForm.get("DA")||"";const s=(0,o.getInheritableProperty)({dict:t,key:"FT"});r.fieldType=(0,n.isName)(s)?s.name:null;this.fieldResources=(0,o.getInheritableProperty)({dict:t,key:"DR"})||e.acroForm.get("DR")||n.Dict.empty;r.fieldFlags=(0,o.getInheritableProperty)({dict:t,key:"Ff"});(!Number.isInteger(r.fieldFlags)||r.fieldFlags<0)&&(r.fieldFlags=0);r.readOnly=this.hasFieldFlag(a.AnnotationFieldFlag.READONLY);if("Sig"===r.fieldType){r.fieldValue=null;this.setFlags(a.AnnotationFlag.HIDDEN)}}_constructFieldName(e){if(!e.has("T")&&!e.has("Parent")){(0,a.warn)("Unknown field name, falling back to empty field name.");return""}if(!e.has("Parent"))return(0,a.stringToPDFString)(e.get("T"));const t=[];e.has("T")&&t.unshift((0,a.stringToPDFString)(e.get("T")));let r=e;for(;r.has("Parent");){r=r.get("Parent");if(!(0,n.isDict)(r))break;r.has("T")&&t.unshift((0,a.stringToPDFString)(r.get("T")))}return t.join(".")}_decodeFormValue(e){return Array.isArray(e)?e.filter(e=>(0,a.isString)(e)).map(e=>(0,a.stringToPDFString)(e)):(0,n.isName)(e)?(0,a.stringToPDFString)(e.name):(0,a.isString)(e)?(0,a.stringToPDFString)(e):null}hasFieldFlag(e){return!!(this.data.fieldFlags&e)}getOperatorList(e,t,r,i){return r?Promise.resolve(new c.OperatorList):this._hasText?this._getAppearance(e,t,i).then(n=>{if(this.appearance&&null===n)return super.getOperatorList(e,t,r,i);const s=new c.OperatorList;if(!this.data.defaultAppearance||null===n)return s;const o=[1,0,0,1,0,0],h=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],u=getTransformMatrix(this.data.rect,h,o);s.addOp(a.OPS.beginAnnotation,[this.data.rect,u,o]);const d=new l.StringStream(n);return e.getOperatorList({stream:d,task:t,resources:this.fieldResources,operatorList:s}).then((function(){s.addOp(a.OPS.endAnnotation,[]);return s}))}):super.getOperatorList(e,t,r,i)}async save(e,t,r){if(this.data.fieldValue===r[this.data.id])return null;let i=await this._getAppearance(e,t,r);if(null===i)return null;const s=e.xref.fetchIfRef(this.ref);if(!(0,n.isDict)(s))return null;const o=[0,0,this.data.rect[2]-this.data.rect[0],this.data.rect[3]-this.data.rect[1]],c=e.xref.getNewRef(),l=new n.Dict(e.xref);l.set("N",c);const u=r[this.data.id],d=e.xref.encrypt;let f=null,g=null;if(d){f=d.createCipherTransform(this.ref.num,this.ref.gen);g=d.createCipherTransform(c.num,c.gen);i=g.encryptString(i)}s.set("V",u);s.set("AP",l);s.set("M","D:"+(0,a.getModificationDate)());const m=new n.Dict(e.xref);m.set("Length",i.length);m.set("Subtype",n.Name.get("Form"));m.set("Resources",this.fieldResources);m.set("BBox",o);const p=[`${this.ref.num} ${this.ref.gen} obj\n`];(0,h.writeDict)(s,p,f);p.push("\nendobj\n");const b=[`${c.num} ${c.gen} obj\n`];(0,h.writeDict)(m,b,g);b.push(" stream\n");b.push(i);b.push("\nendstream\nendobj\n");return[{ref:this.ref,data:p.join("")},{ref:c,data:b.join("")}]}async _getAppearance(e,t,r){const i=this.hasFieldFlag(a.AnnotationFieldFlag.PASSWORD);if(!r||i)return null;const n=r[this.data.id];if(""===n)return"";const s=this.data.rect[3]-this.data.rect[1],o=this.data.rect[2]-this.data.rect[0],c=await this._getFontData(e,t),[l,h]=c;let u=c[2];u=this._computeFontSize(l,h,u,s);let d=l.descent;isNaN(d)&&(d=0);const f=2+Math.abs(d)*u,g=this.data.defaultAppearance,m=this.data.textAlignment;if(this.data.comb)return this._getCombAppearance(g,n,o,2,f);if(this.data.multiLine)return this._getMultilineAppearance(g,n,l,u,o,s,m,2,f);if(0===m||m>2)return"/Tx BMC q BT "+g+` 1 0 0 1 2 ${f} Tm (${(0,a.escapeString)(n)}) Tj ET Q EMC`;return"/Tx BMC q BT "+g+" 1 0 0 1 0 0 Tm "+this._renderText(n,l,u,o,m,2,f)+" ET Q EMC"}async _getFontData(e,t){const r=new c.OperatorList,a={fontSize:0,font:null,fontName:null,clone(){return this}};await e.getOperatorList({stream:new l.StringStream(this.data.defaultAppearance),task:t,resources:this.fieldResources,operatorList:r,initialState:a});return[a.font,a.fontName,a.fontSize]}_computeFontSize(e,t,r,a){if(null===r||0===r){const i=.7*(e.charsToGlyphs("M",!0)[0].width/1e3);r=Math.max(1,Math.floor(a/(1.5*i)));let n=new RegExp(`/${t}\\s+[0-9.]+\\s+Tf`);-1===this.data.defaultAppearance.search(n)&&(n=new RegExp(`/${t}\\s+Tf`));this.data.defaultAppearance=this.data.defaultAppearance.replace(n,`/${t} ${r} Tf`)}return r}_renderText(e,t,r,i,n,s,o){const c=t.charsToGlyphs(e),l=r/1e3;let h,u=0;for(const e of c)u+=e.width*l;h=1===n?(i-u)/2:2===n?i-u-s:s;h=h.toFixed(2);return`${h} ${o=o.toFixed(2)} Td (${(0,a.escapeString)(e)}) Tj`}}class TextWidgetAnnotation extends WidgetAnnotation{constructor(e){super(e);this._hasText=!0;const t=e.dict;(0,a.isString)(this.data.fieldValue)||(this.data.fieldValue="");let r=(0,o.getInheritableProperty)({dict:t,key:"Q"});(!Number.isInteger(r)||r<0||r>2)&&(r=null);this.data.textAlignment=r;let i=(0,o.getInheritableProperty)({dict:t,key:"MaxLen"});(!Number.isInteger(i)||i<0)&&(i=null);this.data.maxLen=i;this.data.multiLine=this.hasFieldFlag(a.AnnotationFieldFlag.MULTILINE);this.data.comb=this.hasFieldFlag(a.AnnotationFieldFlag.COMB)&&!this.hasFieldFlag(a.AnnotationFieldFlag.MULTILINE)&&!this.hasFieldFlag(a.AnnotationFieldFlag.PASSWORD)&&!this.hasFieldFlag(a.AnnotationFieldFlag.FILESELECT)&&null!==this.data.maxLen}_getCombAppearance(e,t,r,i,n){const s=(r/this.data.maxLen).toFixed(2),o=[];for(const e of t)o.push(`(${(0,a.escapeString)(e)}) Tj`);return"/Tx BMC q BT "+e+` 1 0 0 1 ${i} ${n} Tm ${o.join(` ${s} 0 Td `)} ET Q EMC`}_getMultilineAppearance(e,t,r,a,i,n,s,o,c){const l=t.split(/\r\n|\r|\n/),h=[],u=i-2*o;for(const e of l){const t=this._splitLine(e,r,a,u);for(const e of t){const t=0===h.length?o:0;h.push(this._renderText(e,r,a,i,s,t,-a))}}return"/Tx BMC q BT "+e+` 1 0 0 1 0 ${n} Tm ${h.join("\n")} ET Q EMC`}_splitLine(e,t,r,a){if(e.length<=1)return[e];const i=r/1e3,n=t.charsToGlyphs(" ",!0)[0].width*i,s=[];let o=-1,c=0,l=0;for(let r=0,h=e.length;ra){s.push(e.substring(c,r));c=r;l=n;o=-1}else{l+=n;o=r}else{const n=t.charsToGlyphs(h,!1)[0].width*i;if(l+n>a)if(-1!==o){s.push(e.substring(c,o+1));c=r=o+1;o=-1;l=0}else{s.push(e.substring(c,r));c=r;l=n}else l+=n}}c1e3){u=Math.max(u,g);m+=f+2;g=0;f=0}d.push({transform:p,x:g,y:m,w:b.width,h:b.height});g+=b.width+2;f=Math.max(f,b.height)}var y=Math.max(u,g)+1,v=m+f+1,w=new Uint8ClampedArray(y*v*4),k=y<<2;for(h=0;h=0;){S[A-4]=S[A];S[A-3]=S[A+1];S[A-2]=S[A+2];S[A-1]=S[A+3];S[A+C]=S[A+C-4];S[A+C+1]=S[A+C-3];S[A+C+2]=S[A+C-2];S[A+C+3]=S[A+C-1];A-=k}}r.splice(s,4*l,a.OPS.paintInlineImageXObjectGroup);i.splice(s,4*l,[{width:y,height:v,kind:a.ImageKind.RGBA_32BPP,data:w},d]);return s+1}));addState(e,[a.OPS.save,a.OPS.transform,a.OPS.paintImageMaskXObject,a.OPS.restore],null,(function iterateImageMaskGroup(e,t){var r=e.fnArray,i=(t-(e.iCurr-3))%4;switch(i){case 0:return r[t]===a.OPS.save;case 1:return r[t]===a.OPS.transform;case 2:return r[t]===a.OPS.paintImageMaskXObject;case 3:return r[t]===a.OPS.restore}throw new Error("iterateImageMaskGroup - invalid pos: "+i)}),(function foundImageMaskGroup(e,t){var r,i=e.fnArray,n=e.argsArray,s=e.iCurr,o=s-3,c=s-2,l=s-1,h=Math.floor((t-o)/4);if((h=function handlePaintSolidColorImageMask(e,t,r,i){for(var n=e+2,s=0;s=4&&r[n-4]===r[s]&&r[n-3]===r[o]&&r[n-2]===r[c]&&r[n-1]===r[l]&&a[n-4][0]===h&&a[n-4][1]===u){d++;f-=5}for(var g=f+4,m=1;m=a)break}i=(i||e)[t[r]];if(i&&!Array.isArray(i)){s.iCurr=r;r++;if(!i.checkFn||(0,i.checkFn)(s)){n=i;i=null}else i=null}else r++}this.state=i;this.match=n;this.lastProcessed=r},push(e,t){this.queue.fnArray.push(e);this.queue.argsArray.push(t);this._optimize()},flush(){for(;this.match;){const e=this.queue.fnArray.length;this.lastProcessed=(0,this.match.processFn)(this.context,e);this.match=null;this.state=null;this._optimize()}},reset(){this.state=null;this.match=null;this.lastProcessed=0}};return QueueOptimizer}(),n=function NullOptimizerClosure(){function NullOptimizer(e){this.queue=e}NullOptimizer.prototype={push(e,t){this.queue.fnArray.push(e);this.queue.argsArray.push(t)},flush(){},reset(){}};return NullOptimizer}(),s=function OperatorListClosure(){function OperatorList(e,t){this._streamSink=t;this.fnArray=[];this.argsArray=[];this.optimizer=t&&"oplist"!==e?new i(this):new n(this);this.dependencies=new Set;this._totalLength=0;this.weight=0;this._resolved=t?null:Promise.resolve()}OperatorList.prototype={get length(){return this.argsArray.length},get ready(){return this._resolved||this._streamSink.ready},get totalLength(){return this._totalLength+this.length},addOp(e,t){this.optimizer.push(e,t);this.weight++;this._streamSink&&(this.weight>=1e3||this.weight>=995&&(e===a.OPS.restore||e===a.OPS.endText))&&this.flush()},addDependency(e){if(!this.dependencies.has(e)){this.dependencies.add(e);this.addOp(a.OPS.dependency,[e])}},addDependencies(e){for(const t of e)this.addDependency(t)},addOpList(e){if(e instanceof OperatorList){for(const t of e.dependencies)this.dependencies.add(t);for(var t=0,r=e.length;te.ref.num-t.ref.num);const u=[[0,1,65535]],d=[0,1];let f=0;for(const{ref:e,data:t}of r){f=Math.max(f,l);u.push([1,l,Math.min(e.gen,65535)]);l+=t.length;d.push(e.num);d.push(1);c.push(t)}s.set("Index",d);if(0!==t.fileIds.length){const e=function computeMD5(e,t){const r=Math.floor(Date.now()/1e3),i=t.filename||"",s=[r.toString(),i,e.toString()];let o=s.reduce((e,t)=>e+t.length,0);for(const e of Object.values(t.info)){s.push(e);o+=e.length}const c=new Uint8Array(o);let l=0;for(const e of s){writeString(e,l,c);l+=e.length}return(0,a.bytesToString)((0,n.calculateMD5)(c))}(l,t);s.set("ID",[t.fileIds[0],e])}const g=[1,Math.ceil(Math.log2(f)/8),2],m=(g[0]+g[1]+g[2])*u.length;s.set("W",g);s.set("Length",m);c.push(`${o.num} ${o.gen} obj\n`);writeDict(s,c,null);c.push(" stream\n");const p=c.reduce((e,t)=>e+t.length,0),b=`\nendstream\nendobj\nstartxref\n${l}\n%%EOF\n`,y=new Uint8Array(e.length+p+m+b.length);y.set(e);let v=e.length;for(const e of c){writeString(e,v,y);v+=e.length}for(const[e,t,r]of u){v=writeInt(e,g[0],v,y);v=writeInt(t,g[1],v,y);v=writeInt(r,g[2],v,y)}writeString(b,v,y);return y};var a=r(2),i=r(5),n=r(22);function writeDict(e,t,r){t.push("<<");for(const a of e.getKeys()){t.push(` /${a} `);writeValue(e.getRaw(a),t,r)}t.push(">>")}function writeValue(e,t,r){if((0,i.isName)(e))t.push("/"+e.name);else if((0,i.isRef)(e))t.push(`${e.num} ${e.gen} R`);else if(Array.isArray(e))!function writeArray(e,t,r){t.push("[");let a=!0;for(const i of e){a?a=!1:t.push(" ");writeValue(i,t,r)}t.push("]")}(e,t,r);else if("string"==typeof e){null!==r&&(e=r.encryptString(e));t.push(`(${(0,a.escapeString)(e)})`)}else"number"==typeof e?t.push(function numberToString(e){if(Number.isInteger(e))return e.toString();const t=Math.round(100*e);return t%100==0?(t/100).toString():t%10==0?e.toFixed(1):e.toFixed(2)}(e)):(0,i.isDict)(e)?writeDict(e,t,r):(0,i.isStream)(e)&&function writeStream(e,t,r){writeDict(e.dict,t,r);t.push(" stream\n");let i=(0,a.bytesToString)(e.getBytes());null!==r&&(i=r.encryptString(i));t.push(i);t.push("\nendstream\n")}(e,t,r)}function writeInt(e,t,r,a){for(let i=t+r-1;i>r-1;i--){a[i]=255&e;e>>=8}return r+t}function writeString(e,t,r){for(let a=0,i=e.length;ag){(0,a.warn)("Image exceeded maximum allowed size and was removed.");return}if(c.get("ImageMask","IM")||!1){var m=c.get("Width","W"),p=c.get("Height","H"),y=m+7>>3,v=t.getBytes(y*p,!0),w=c.getArray("Decode","D");(d=S.PDFImage.createMask({imgArray:v,width:m,height:p,imageIsFromDecodeStream:t instanceof b.DecodeStream,inverseDecode:!!w&&w[0]>0})).cached=!!n;f=[d];i.addOp(a.OPS.paintImageMaskXObject,f);n&&s.set(n,l,{fn:a.OPS.paintImageMaskXObject,args:f});return}var k=c.get("SMask","SM")||!1,C=c.get("Mask")||!1;if(r&&!k&&!C&&h+u<200){const n=new S.PDFImage({xref:this.xref,res:e,image:t,isInline:r,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o});d=n.createImageData(!0);i.addOp(a.OPS.paintInlineImageXObject,[d]);return}let x="img_"+this.idFactory.createObjId(),A=!1;if(this.parsingType3Font)x=`${this.idFactory.getDocId()}_type3_${x}`;else if(l){A=this.globalImageCache.shouldCache(l,this.pageIndex);A&&(x=`${this.idFactory.getDocId()}_${x}`)}i.addDependency(x);f=[x,h,u];S.PDFImage.buildImage({xref:this.xref,res:e,image:t,isInline:r,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:o}).then(e=>{d=e.createImageData(!1);return this._sendImgData(x,d,A)}).catch(e=>{(0,a.warn)(`Unable to decode image "${x}": "${e}".`);return this._sendImgData(x,null,A)});i.addOp(a.OPS.paintImageXObject,f);if(n){s.set(n,l,{fn:a.OPS.paintImageXObject,args:f});if(l){(0,a.assert)(!r,"Cannot cache an inline image globally.");this.globalImageCache.addPageIndex(l,this.pageIndex);A&&this.globalImageCache.setData(l,{objId:x,fn:a.OPS.paintImageXObject,args:f})}}}handleSMask(e,t,r,a,i,n){var s=e.get("G"),o={subtype:e.get("S").name,backdrop:e.get("BC")},c=e.get("TR");if((0,d.isPDFFunction)(c)){const e=this._pdfFunctionFactory.create(c);for(var l=new Uint8Array(256),h=new Float32Array(1),u=0;u<256;u++){h[0]=u/255;e(h,0,h,0);l[u]=255*h[0]|0}o.transferMap=l}return this.buildFormXObject(t,s,o,r,a,i.state.clone(),n)}handleTransferFunction(e){let t;if(Array.isArray(e))t=e;else{if(!(0,d.isPDFFunction)(e))return null;t=[e]}const r=[];let a=0,i=0;for(const e of t){const t=this.xref.fetchIfRef(e);a++;if((0,n.isName)(t,"Identity")){r.push(null);continue}if(!(0,d.isPDFFunction)(t))return null;const s=this._pdfFunctionFactory.create(t),o=new Uint8Array(256),c=new Float32Array(1);for(let e=0;e<256;e++){c[0]=e/255;s(c,0,c,0);o[e]=255*c[0]|0}r.push(o);i++}return 1!==a&&4!==a||0===i?null:r}handleTilingType(e,t,r,i,s,o,c){const l=new k.OperatorList,h=n.Dict.merge({xref:this.xref,dictArray:[s.get("Resources"),r]});return this.getOperatorList({stream:i,task:c,resources:h,operatorList:l}).then((function(){return(0,u.getTilingPatternIR)({fnArray:l.fnArray,argsArray:l.argsArray},s,t)})).then((function(t){o.addDependencies(l.dependencies);o.addOp(e,t)}),e=>{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorTilingPattern});(0,a.warn)(`handleTilingType - ignoring pattern: "${e}".`)}})}handleSetFont(e,t,r,i,n,o){var c,l=0;if(t){t=t.slice();c=t[0].name;l=t[1]}return this.loadFont(c,r,e).then(t=>t.font.isType3Font?t.loadType3Data(this,e,n).then((function(){i.addDependencies(t.type3Dependencies);return t})).catch(e=>{this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontLoadType3});return new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont("Type3 font load error: "+e),dict:t.font,extraProperties:this.options.fontExtraProperties})}):t).then(e=>{o.font=e.font;o.fontSize=l;o.fontName=c;e.send(this.handler);return e.loadedName})}handleText(e,t){const r=t.font,i=r.charsToGlyphs(e);if(r.data){(!!(t.textRenderingMode&a.TextRenderingMode.ADD_TO_PATH_FLAG)||"Pattern"===t.fillColorSpace.name||r.disableFontFace||this.options.disableFontFace)&&PartialEvaluator.buildFontPaths(r,i,this.handler)}return i}ensureStateFont(e){if(e.font)return;const t=new a.FormatError("Missing setFont (Tf) operator before text rendering operator.");if(!this.options.ignoreErrors)throw t;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontState});(0,a.warn)(`ensureStateFont: "${t}".`)}async setGState({resources:e,gState:t,operatorList:r,cacheKey:i,task:s,stateManager:o,localGStateCache:c,localColorSpaceCache:l}){const h=t.objId;let u=!0;for(var d=[],f=t.getKeys(),g=Promise.resolve(),m=0,p=f.length;mthis.handleSetFont(e,null,c[0],r,s,o.state).then((function(e){r.addDependency(e);d.push([i,[e,c[1]]])})));break;case"BM":d.push([i,normalizeBlendMode(c)]);break;case"SMask":if((0,n.isName)(c,"None")){d.push([i,!1]);break}if((0,n.isDict)(c)){u=!1;g=g.then(()=>this.handleSMask(c,e,r,s,o,l));d.push([i,!0])}else(0,a.warn)("Unsupported SMask type");break;case"TR":const t=this.handleTransferFunction(c);d.push([i,t]);break;case"OP":case"op":case"OPM":case"BG":case"BG2":case"UCR":case"UCR2":case"TR2":case"HT":case"SM":case"SA":case"AIS":case"TK":(0,a.info)("graphic state operator "+i);break;default:(0,a.info)("Unknown graphic state operator "+i)}}return g.then((function(){d.length>0&&r.addOp(a.OPS.setGState,[d]);u&&c.set(i,h,d)}))}loadFont(e,t,r){const errorFont=()=>Promise.resolve(new TranslatedFont({loadedName:"g_font_error",font:new s.ErrorFont(`Font "${e}" is not available.`),dict:t,extraProperties:this.options.fontExtraProperties}));var i,o=this.xref;if(t){if(!(0,n.isRef)(t))throw new a.FormatError('The "font" object should be a reference.');i=t}else{var c=r.get("Font");c&&(i=c.getRaw(e))}if(!i){const r=`Font "${e||t&&t.toString()}" is not available`;if(!this.options.ignoreErrors&&!this.parsingType3Font){(0,a.warn)(r+".");return errorFont()}this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontMissing});(0,a.warn)(r+" -- attempting to fallback to a default font.");i=PartialEvaluator.fallbackFontDict}if(this.fontCache.has(i))return this.fontCache.get(i);t=o.fetchIfRef(i);if(!(0,n.isDict)(t))return errorFont();if(t.translated)return t.translated;var l=(0,a.createPromiseCapability)(),h=this.preEvaluateFont(t);const{descriptor:u,hash:d}=h;var f,g,m=(0,n.isRef)(i);m&&(f="f"+i.toString());if(d&&(0,n.isDict)(u)){u.fontAliases||(u.fontAliases=Object.create(null));var p=u.fontAliases;if(p[d]){var b=p[d].aliasRef;if(m&&b&&this.fontCache.has(b)){this.fontCache.putAlias(i,b);return this.fontCache.get(i)}}else p[d]={fontID:this.idFactory.createFontId()};m&&(p[d].aliasRef=i);f=p[d].fontID}if(m)this.fontCache.put(i,l.promise);else{f||(f=this.idFactory.createFontId());this.fontCache.put("id_"+f,l.promise)}(0,a.assert)(f&&f.startsWith("f"),'The "fontID" must be (correctly) defined.');t.loadedName=`${this.idFactory.getDocId()}_${f}`;t.translated=l.promise;try{g=this.translateFont(h)}catch(e){g=Promise.reject(e)}g.then(e=>{if(void 0!==e.fontType){o.stats.fontTypes[e.fontType]=!0}l.resolve(new TranslatedFont({loadedName:t.loadedName,font:e,dict:t,extraProperties:this.options.fontExtraProperties}))}).catch(e=>{this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontTranslate});try{var r=u&&u.get("FontFile3"),i=r&&r.get("Subtype"),n=(0,s.getFontType)(h.type,i&&i.name);o.stats.fontTypes[n]=!0}catch(e){}l.resolve(new TranslatedFont({loadedName:t.loadedName,font:new s.ErrorFont(e instanceof Error?e.message:e),dict:t,extraProperties:this.options.fontExtraProperties}))});return l.promise}buildPath(e,t,r,i=!1){var n=e.length-1;r||(r=[]);if(n<0||e.fnArray[n]!==a.OPS.constructPath){if(i){(0,a.warn)(`Encountered path operator "${t}" inside of a text object.`);e.addOp(a.OPS.save,null)}e.addOp(a.OPS.constructPath,[[t],r]);i&&e.addOp(a.OPS.restore,null)}else{var s=e.argsArray[n];s[0].push(t);Array.prototype.push.apply(s[1],r)}}parseColorSpace({cs:e,resources:t,localColorSpaceCache:r}){return p.ColorSpace.parseAsync({cs:e,xref:this.xref,resources:t,pdfFunctionFactory:this._pdfFunctionFactory,localColorSpaceCache:r}).catch(e=>{if(e instanceof a.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorColorSpace});(0,a.warn)(`parseColorSpace - ignoring ColorSpace: "${e}".`);return null}throw e})}async handleColorN(e,t,r,i,s,o,c,l){var h,d=r[r.length-1];if((0,n.isName)(d)&&(h=s.get(d.name))){var f=(0,n.isStream)(h)?h.dict:h,g=f.get("PatternType");if(g===x){var m=i.base?i.base.getRgb(r,0):null;return this.handleTilingType(t,m,o,h,f,e,c)}if(g===A){var p=f.get("Shading"),b=f.getArray("Matrix");h=u.Pattern.parseShading(p,b,this.xref,o,this.handler,this._pdfFunctionFactory,l);e.addOp(t,h.getIR());return}throw new a.FormatError("Unknown PatternType: "+g)}throw new a.FormatError("Unknown PatternName: "+d)}async parseMarkedContentProps(e,t){let r;if((0,n.isName)(e)){r=t.get("Properties").get(e.name)}else{if(!(0,n.isDict)(e))throw new a.FormatError("Optional content properties malformed.");r=e}const i=r.get("Type").name;if("OCG"===i)return{type:i,id:r.objId};if("OCMD"===i){const e=r.get("OCGs");if(Array.isArray(e)||(0,n.isDict)(e)){const t=[];Array.isArray(e)?r.get("OCGs").forEach(e=>{t.push(e.toString())}):t.push(e.objId);let a=null;r.get("VE")&&(a=!0);return{type:i,ids:t,policy:(0,n.isName)(r.get("P"))?r.get("P").name:null,expression:a}}if((0,n.isRef)(e))return{type:i,id:e.toString()}}return null}getOperatorList({stream:e,task:t,resources:r,operatorList:i,initialState:s=null}){r=r||n.Dict.empty;s=s||new EvalState;if(!i)throw new Error('getOperatorList: missing "operatorList" parameter');var o=this,c=this.xref;let l=!1;const h=new g.LocalImageCache,d=new g.LocalColorSpaceCache,f=new g.LocalGStateCache;var m=r.get("XObject")||n.Dict.empty,b=r.get("Pattern")||n.Dict.empty,y=new StateManager(s),v=new EvaluatorPreprocessor(e,c,y),w=new TimeSlotManager;function closePendingRestoreOPS(e){for(var t=0,r=v.savedStatesDepth;t0&&i.addOp(a.OPS.setGState,[e]);I=null;continue}}next(new Promise((function(e,s){if(!x)throw new a.FormatError("GState must be referred to by name.");const c=r.get("ExtGState");if(!(c instanceof n.Dict))throw new a.FormatError("ExtGState should be a dictionary.");const l=c.get(x);if(!(l instanceof n.Dict))throw new a.FormatError("GState should be a dictionary.");o.setGState({resources:r,gState:l,operatorList:i,cacheKey:x,task:t,stateManager:y,localGStateCache:f,localColorSpaceCache:d}).then(e,s)})).catch((function(e){if(!(e instanceof a.AbortException)){if(!o.options.ignoreErrors)throw e;o.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorExtGState});(0,a.warn)(`getOperatorList - ignoring ExtGState: "${e}".`)}})));return;case a.OPS.moveTo:case a.OPS.lineTo:case a.OPS.curveTo:case a.OPS.curveTo2:case a.OPS.curveTo3:case a.OPS.closePath:case a.OPS.rectangle:o.buildPath(i,F,I,l);continue;case a.OPS.markPoint:case a.OPS.markPointProps:case a.OPS.beginCompat:case a.OPS.endCompat:continue;case a.OPS.beginMarkedContentProps:if(!(0,n.isName)(I[0])){(0,a.warn)("Expected name for beginMarkedContentProps arg0="+I[0]);continue}if("OC"===I[0].name){next(o.parseMarkedContentProps(I[1],r).then(e=>{i.addOp(a.OPS.beginMarkedContentProps,["OC",e])}).catch(e=>{if(!(e instanceof a.AbortException)){if(!o.options.ignoreErrors)throw e;o.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorMarkedContent});(0,a.warn)(`getOperatorList - ignoring beginMarkedContentProps: "${e}".`)}}));return}I=[I[0].name];break;case a.OPS.beginMarkedContent:case a.OPS.endMarkedContent:default:if(null!==I){for(k=0,S=I.length;k{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorOperatorList});(0,a.warn)(`getOperatorList - ignoring errors during "${t.name}" task: "${e}".`);closePendingRestoreOPS()}})}getTextContent({stream:e,task:t,resources:r,stateManager:i=null,normalizeWhitespace:s=!1,combineTextItems:o=!1,sink:c,seenStyles:h=Object.create(null)}){r=r||n.Dict.empty;i=i||new StateManager(new TextState);var u=/\s/g,d={items:[],styles:Object.create(null)},f={initialized:!1,str:[],width:0,height:0,vertical:!1,lastAdvanceWidth:0,lastAdvanceHeight:0,textAdvanceScale:0,spaceWidth:0,fakeSpaceMin:1/0,fakeMultiSpaceMin:1/0,fakeMultiSpaceMax:-0,textRunBreakAllowed:!1,transform:null,fontName:null},p=this,b=this.xref,y=null;const v=new g.LocalImageCache,w=new g.LocalGStateCache;var k,S=new EvaluatorPreprocessor(e,b,i);function ensureTextContentItem(){if(f.initialized)return f;var e=k.font;if(!(e.loadedName in h)){h[e.loadedName]=!0;d.styles[e.loadedName]={fontFamily:e.fallbackName,ascent:e.ascent,descent:e.descent,vertical:e.vertical}}f.fontName=e.loadedName;var t=[k.fontSize*k.textHScale,0,0,k.fontSize,0,k.textRise];if(e.isType3Font&&k.fontSize<=1&&!(0,a.isArrayEqual)(k.fontMatrix,a.FONT_IDENTITY_MATRIX)){const r=e.bbox[3]-e.bbox[1];r>0&&(t[3]*=r*k.fontMatrix[3])}var r=a.Util.transform(k.ctm,a.Util.transform(k.textMatrix,t));f.transform=r;if(e.vertical){f.width=Math.sqrt(r[0]*r[0]+r[1]*r[1]);f.height=0;f.vertical=!0}else{f.width=0;f.height=Math.sqrt(r[2]*r[2]+r[3]*r[3]);f.vertical=!1}var i=k.textLineMatrix[0],n=k.textLineMatrix[1],s=Math.sqrt(i*i+n*n);i=k.ctm[0];n=k.ctm[1];var o=Math.sqrt(i*i+n*n);f.textAdvanceScale=o*s;f.lastAdvanceWidth=0;f.lastAdvanceHeight=0;var c=e.spaceWidth/1e3*k.fontSize;if(c){f.spaceWidth=c;f.fakeSpaceMin=.3*c;f.fakeMultiSpaceMin=1.5*c;f.fakeMultiSpaceMax=4*c;f.textRunBreakAllowed=!e.isMonospace}else{f.spaceWidth=0;f.fakeSpaceMin=1/0;f.fakeMultiSpaceMin=1/0;f.fakeMultiSpaceMax=0;f.textRunBreakAllowed=!1}f.initialized=!0;return f}function replaceWhitespace(e){for(var t,r=0,a=e.length;r=32&&t<=127;)r++;return r0&&addFakeSpaces(f,r.str)}var g=0,m=0;if(t.vertical){i+=m=c*k.fontMatrix[0]*k.fontSize+d}else{a+=g=(c*k.fontMatrix[0]*k.fontSize+d)*k.textHScale}k.translateTextMatrix(g,m);r.str.push(h)}if(t.vertical){r.lastAdvanceHeight=i;r.height+=Math.abs(i)}else{r.lastAdvanceWidth=a;r.width+=a}return r}function addFakeSpaces(e,t){if(!(e0;)t.push(" ")}function flushTextContentItem(){if(f.initialized){f.vertical?f.height*=f.textAdvanceScale:f.width*=f.textAdvanceScale;d.items.push(function runBidiTransform(e){var t=e.str.join(""),r=(0,m.bidi)(t,-1,e.vertical);return{str:s?replaceWhitespace(r.str):r.str,dir:r.dir,width:e.width,height:e.height,transform:e.transform,fontName:e.fontName}}(f));f.initialized=!1;f.str.length=0}}function enqueueChunk(){const e=d.items.length;if(e>0){c.enqueue(d,e);d.items=[];d.styles=Object.create(null)}}var C=new TimeSlotManager;return new Promise((function promiseBody(e,l){const next=function(t){enqueueChunk();Promise.all([t,c.ready]).then((function(){try{promiseBody(e,l)}catch(e){l(e)}}),l)};t.ensureNotTerminated();C.reset();for(var u,g={},m=[];!(u=C.check());){m.length=0;g.args=m;if(!S.read(g))break;k=i.state;var x,A=g.fn;m=g.args;switch(0|A){case a.OPS.setFont:var I=m[0].name,F=m[1];if(k.font&&I===k.fontName&&F===k.fontSize)break;flushTextContentItem();k.fontName=I;k.fontSize=F;next(handleSetFont(I,null));return;case a.OPS.setTextRise:flushTextContentItem();k.textRise=m[0];break;case a.OPS.setHScale:flushTextContentItem();k.textHScale=m[0]/100;break;case a.OPS.setLeading:flushTextContentItem();k.leading=m[0];break;case a.OPS.moveText:var P=!!k.font&&0===(k.font.vertical?m[0]:m[1]);x=m[0]-m[1];if(o&&P&&f.initialized&&x>0&&x<=f.fakeMultiSpaceMax){k.translateTextLineMatrix(m[0],m[1]);f.width+=m[0]-f.lastAdvanceWidth;f.height+=m[1]-f.lastAdvanceHeight;addFakeSpaces(m[0]-f.lastAdvanceWidth-(m[1]-f.lastAdvanceHeight),f.str);break}flushTextContentItem();k.translateTextLineMatrix(m[0],m[1]);k.textMatrix=k.textLineMatrix.slice();break;case a.OPS.setLeadingMoveText:flushTextContentItem();k.leading=-m[1];k.translateTextLineMatrix(m[0],m[1]);k.textMatrix=k.textLineMatrix.slice();break;case a.OPS.nextLine:flushTextContentItem();k.carriageReturn();break;case a.OPS.setTextMatrix:x=k.calcTextLineMatrixAdvance(m[0],m[1],m[2],m[3],m[4],m[5]);if(o&&null!==x&&f.initialized&&x.value>0&&x.value<=f.fakeMultiSpaceMax){k.translateTextLineMatrix(x.width,x.height);f.width+=x.width-f.lastAdvanceWidth;f.height+=x.height-f.lastAdvanceHeight;addFakeSpaces(x.width-f.lastAdvanceWidth-(x.height-f.lastAdvanceHeight),f.str);break}flushTextContentItem();k.setTextMatrix(m[0],m[1],m[2],m[3],m[4],m[5]);k.setTextLineMatrix(m[0],m[1],m[2],m[3],m[4],m[5]);break;case a.OPS.setCharSpacing:k.charSpacing=m[0];break;case a.OPS.setWordSpacing:k.wordSpacing=m[0];break;case a.OPS.beginText:flushTextContentItem();k.textMatrix=a.IDENTITY_MATRIX.slice();k.textLineMatrix=a.IDENTITY_MATRIX.slice();break;case a.OPS.showSpacedText:if(!i.state.font){p.ensureStateFont(i.state);continue}for(var E,B=m[0],O=0,M=B.length;Of.fakeMultiSpaceMax)||(f.height+=E)}else{E=(x=-x)*k.textHScale;k.translateTextMatrix(E,0);(D=f.textRunBreakAllowed&&x>f.fakeMultiSpaceMax)||(f.width+=E)}D?flushTextContentItem():x>0&&addFakeSpaces(x,f.str)}break;case a.OPS.showText:if(!i.state.font){p.ensureStateFont(i.state);continue}buildTextContentItem(m[0]);break;case a.OPS.nextLineShowText:if(!i.state.font){p.ensureStateFont(i.state);continue}flushTextContentItem();k.carriageReturn();buildTextContentItem(m[0]);break;case a.OPS.nextLineSetSpacingShowText:if(!i.state.font){p.ensureStateFont(i.state);continue}flushTextContentItem();k.wordSpacing=m[0];k.charSpacing=m[1];k.carriageReturn();buildTextContentItem(m[2]);break;case a.OPS.paintXObject:flushTextContentItem();y||(y=r.get("XObject")||n.Dict.empty);var R=m[0].name;if(R&&v.getByName(R))break;next(new Promise((function(e,l){if(!R)throw new a.FormatError("XObject must be referred to by name.");let u=y.getRaw(R);if(u instanceof n.Ref){if(v.getByRef(u)){e();return}u=b.fetch(u)}if(!(0,n.isStream)(u))throw new a.FormatError("XObject should be a stream");const d=u.dict.get("Subtype");if(!(0,n.isName)(d))throw new a.FormatError("XObject should have a Name subtype");if("Form"!==d.name){v.set(R,u.dict.objId,!0);e();return}const f=i.state.clone(),g=new StateManager(f),m=u.dict.getArray("Matrix");Array.isArray(m)&&6===m.length&&g.transform(m);enqueueChunk();const w={enqueueInvoked:!1,enqueue(e,t){this.enqueueInvoked=!0;c.enqueue(e,t)},get desiredSize(){return c.desiredSize},get ready(){return c.ready}};p.getTextContent({stream:u,task:t,resources:u.dict.get("Resources")||r,stateManager:g,normalizeWhitespace:s,combineTextItems:o,sink:w,seenStyles:h}).then((function(){w.enqueueInvoked||v.set(R,u.dict.objId,!0);e()}),l)})).catch((function(e){if(!(e instanceof a.AbortException)){if(!p.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring XObject: "${e}".`)}})));return;case a.OPS.setGState:if((R=m[0].name)&&w.getByName(R))break;next(new Promise((function(e,t){if(!R)throw new a.FormatError("GState must be referred to by name.");const i=r.get("ExtGState");if(!(i instanceof n.Dict))throw new a.FormatError("ExtGState should be a dictionary.");const s=i.get(R);if(!(s instanceof n.Dict))throw new a.FormatError("GState should be a dictionary.");const o=s.get("Font");if(o){flushTextContentItem();k.fontName=null;k.fontSize=o[1];handleSetFont(null,o[0]).then(e,t)}else{w.set(R,s.objId,!0);e()}})).catch((function(e){if(!(e instanceof a.AbortException)){if(!p.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring ExtGState: "${e}".`)}})));return}if(d.items.length>=c.desiredSize){u=!0;break}}if(u)next(T);else{flushTextContentItem();enqueueChunk();e()}})).catch(e=>{if(!(e instanceof a.AbortException)){if(!this.options.ignoreErrors)throw e;(0,a.warn)(`getTextContent - ignoring errors during "${t.name}" task: "${e}".`);flushTextContentItem();enqueueChunk()}})}extractDataStructures(e,t,r){const i=this.xref;let c;var l=e.get("ToUnicode")||t.get("ToUnicode"),h=l?this.readToUnicode(l):Promise.resolve(void 0);if(r.composite){var u=e.get("CIDSystemInfo");(0,n.isDict)(u)&&(r.cidSystemInfo={registry:(0,a.stringToPDFString)(u.get("Registry")),ordering:(0,a.stringToPDFString)(u.get("Ordering")),supplement:u.get("Supplement")});var d=e.get("CIDToGIDMap");(0,n.isStream)(d)&&(c=d.getBytes())}var f,g=[],m=null;if(e.has("Encoding")){f=e.get("Encoding");if((0,n.isDict)(f)){m=f.get("BaseEncoding");m=(0,n.isName)(m)?m.name:null;if(f.has("Differences"))for(var p=f.get("Differences"),b=0,y=0,v=p.length;y0;r.dict=e;return h.then(e=>{r.toUnicode=e;return this.buildToUnicode(r)}).then(e=>{r.toUnicode=e;c&&(r.cidToGidMap=this.readCidToGidMap(c,e));return r})}_buildSimpleFontToUnicode(e,t=!1){(0,a.assert)(!e.composite,"Must be a simple font.");const r=[],i=e.defaultEncoding.slice(),n=e.baseEncodingName,c=e.differences;for(const e in c){const t=c[e];".notdef"!==t&&(i[e]=t)}const h=(0,y.getGlyphsUnicode)();for(const a in i){let s=i[a];if(""!==s)if(void 0!==h[s])r[a]=String.fromCharCode(h[s]);else{let i=0;switch(s[0]){case"G":3===s.length&&(i=parseInt(s.substring(1),16));break;case"g":5===s.length&&(i=parseInt(s.substring(1),16));break;case"C":case"c":if(s.length>=3&&s.length<=4){const r=s.substring(1);if(t){i=parseInt(r,16);break}i=+r;if(Number.isNaN(i)&&Number.isInteger(parseInt(r,16)))return this._buildSimpleFontToUnicode(e,!0)}break;default:const r=(0,l.getUnicodeForGlyph)(s,h);-1!==r&&(i=r)}if(i>0&&i<=1114111&&Number.isInteger(i)){if(n&&i===+a){const e=(0,o.getEncoding)(n);if(e&&(s=e[a])){r[a]=String.fromCharCode(h[s]);continue}}r[a]=String.fromCodePoint(i)}}}return new s.ToUnicodeMap(r)}buildToUnicode(e){e.hasIncludedToUnicodeMap=!!e.toUnicode&&e.toUnicode.length>0;if(e.hasIncludedToUnicodeMap){!e.composite&&e.hasEncoding&&(e.fallbackToUnicode=this._buildSimpleFontToUnicode(e));return Promise.resolve(e.toUnicode)}if(!e.composite)return Promise.resolve(this._buildSimpleFontToUnicode(e));if(e.composite&&(e.cMap.builtInCMap&&!(e.cMap instanceof i.IdentityCMap)||"Adobe"===e.cidSystemInfo.registry&&("GB1"===e.cidSystemInfo.ordering||"CNS1"===e.cidSystemInfo.ordering||"Japan1"===e.cidSystemInfo.ordering||"Korea1"===e.cidSystemInfo.ordering))){const t=e.cidSystemInfo.registry,r=e.cidSystemInfo.ordering,o=n.Name.get(t+"-"+r+"-UCS2");return i.CMapFactory.create({encoding:o,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(t){const r=e.cMap,i=[];r.forEach((function(e,r){if(r>65535)throw new a.FormatError("Max size of CID is 65,535");const n=t.lookup(r);n&&(i[e]=String.fromCharCode((n.charCodeAt(0)<<8)+n.charCodeAt(1)))}));return new s.ToUnicodeMap(i)}))}return Promise.resolve(new s.IdentityToUnicodeMap(e.firstChar,e.lastChar))}readToUnicode(e){var t=e;return(0,n.isName)(t)?i.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){return e instanceof i.IdentityCMap?new s.IdentityToUnicodeMap(0,65535):new s.ToUnicodeMap(e.getMap())})):(0,n.isStream)(t)?i.CMapFactory.create({encoding:t,fetchBuiltInCMap:this._fetchBuiltInCMapBound,useCMap:null}).then((function(e){if(e instanceof i.IdentityCMap)return new s.IdentityToUnicodeMap(0,65535);var t=new Array(e.length);e.forEach((function(e,r){for(var a=[],i=0;i{if(e instanceof a.AbortException)return null;if(this.options.ignoreErrors){this.handler.send("UnsupportedFeature",{featureId:a.UNSUPPORTED_FEATURES.errorFontToUnicode});(0,a.warn)(`readToUnicode - ignoring ToUnicode data: "${e}".`);return null}throw e}):Promise.resolve(null)}readCidToGidMap(e,t){for(var r=[],a=0,i=e.length;a>1;(0!==n||t.has(i))&&(r[i]=n)}return r}extractWidths(e,t,r){var a,i,o,c,l,h,u,d,f=this.xref,g=[],m=0,p=[];if(r.composite){m=e.has("DW")?e.get("DW"):1e3;if(d=e.get("W"))for(i=0,o=d.length;i{if(e){const r=[];let a=f;for(let t=0,i=e.length;tthis.extractDataStructures(o,r,t)).then(e=>{this.extractWidths(o,l,e);"Type3"===u&&(e.isType3Font=!0);return new s.Font(v.name,x,e)})}static buildFontPaths(e,t,r){function buildPath(t){e.renderer.hasBuiltPath(t)||r.send("commonobj",[`${e.loadedName}_path_${t}`,"FontPath",e.renderer.getPathJs(t)])}for(const e of t){buildPath(e.fontChar);const t=e.accent;t&&t.fontChar&&buildPath(t.fontChar)}}static get fallbackFontDict(){const e=new n.Dict;e.set("BaseFont",n.Name.get("PDFJS-FallbackFont"));e.set("Type",n.Name.get("FallbackType"));e.set("Subtype",n.Name.get("FallbackType"));e.set("Encoding",n.Name.get("WinAnsiEncoding"));return(0,a.shadow)(this,"fallbackFontDict",e)}}t.PartialEvaluator=PartialEvaluator;class TranslatedFont{constructor({loadedName:e,font:t,dict:r,extraProperties:a=!1}){this.loadedName=e;this.font=t;this.dict=r;this._extraProperties=a;this.type3Loaded=null;this.type3Dependencies=t.isType3Font?new Set:null;this.sent=!1}send(e){if(!this.sent){this.sent=!0;e.send("commonobj",[this.loadedName,"Font",this.font.exportData(this._extraProperties)])}}fallback(e){if(!this.font.data)return;this.font.disableFontFace=!0;const t=this.font.glyphCacheValues;PartialEvaluator.buildFontPaths(this.font,t,e)}loadType3Data(e,t,r){if(this.type3Loaded)return this.type3Loaded;if(!this.font.isType3Font)throw new Error("Must be a Type3 font.");var i=Object.create(e.options);i.ignoreErrors=!1;var n=e.clone(i);n.parsingType3Font=!0;const s=this.font,o=this.type3Dependencies;var c=Promise.resolve(),l=this.dict.get("CharProcs"),h=this.dict.get("Resources")||t,u=Object.create(null);for(const e of l.getKeys())c=c.then((function(){var t=l.get(e),i=new k.OperatorList;return n.getOperatorList({stream:t,task:r,resources:h,operatorList:i}).then((function(){u[e]=i.getIR();for(const e of i.dependencies)o.add(e)})).catch((function(t){(0,a.warn)(`Type3 font resource "${e}" is not available.`);const r=new k.OperatorList;u[e]=r.getIR()}))}));this.type3Loaded=c.then((function(){s.charProcOperatorList=u}));return this.type3Loaded}}class StateManager{constructor(e){this.state=e;this.stateStack=[]}save(){var e=this.state;this.stateStack.push(this.state);this.state=e.clone()}restore(){var e=this.stateStack.pop();e&&(this.state=e)}transform(e){this.state.ctm=a.Util.transform(this.state.ctm,e)}}class TextState{constructor(){this.ctm=new Float32Array(a.IDENTITY_MATRIX);this.fontName=null;this.fontSize=0;this.font=null;this.fontMatrix=a.FONT_IDENTITY_MATRIX;this.textMatrix=a.IDENTITY_MATRIX.slice();this.textLineMatrix=a.IDENTITY_MATRIX.slice();this.charSpacing=0;this.wordSpacing=0;this.leading=0;this.textHScale=1;this.textRise=0}setTextMatrix(e,t,r,a,i,n){var s=this.textMatrix;s[0]=e;s[1]=t;s[2]=r;s[3]=a;s[4]=i;s[5]=n}setTextLineMatrix(e,t,r,a,i,n){var s=this.textLineMatrix;s[0]=e;s[1]=t;s[2]=r;s[3]=a;s[4]=i;s[5]=n}translateTextMatrix(e,t){var r=this.textMatrix;r[4]=r[0]*e+r[2]*t+r[4];r[5]=r[1]*e+r[3]*t+r[5]}translateTextLineMatrix(e,t){var r=this.textLineMatrix;r[4]=r[0]*e+r[2]*t+r[4];r[5]=r[1]*e+r[3]*t+r[5]}calcTextLineMatrixAdvance(e,t,r,a,i,n){var s=this.font;if(!s)return null;var o=this.textLineMatrix;if(e!==o[0]||t!==o[1]||r!==o[2]||a!==o[3])return null;var c=i-o[4],l=n-o[5];if(s.vertical&&0!==c||!s.vertical&&0!==l)return null;var h,u,d=e*a-t*r;if(s.vertical){h=-l*r/d;u=l*e/d}else{h=c*a/d;u=-c*t/d}return{width:h,height:u,value:s.vertical?u:h}}calcRenderMatrix(e){var t=[this.fontSize*this.textHScale,0,0,this.fontSize,0,this.textRise];return a.Util.transform(e,a.Util.transform(this.textMatrix,t))}carriageReturn(){this.translateTextLineMatrix(0,-this.leading);this.textMatrix=this.textLineMatrix.slice()}clone(){var e=Object.create(this);e.textMatrix=this.textMatrix.slice();e.textLineMatrix=this.textLineMatrix.slice();e.fontMatrix=this.fontMatrix.slice();return e}}class EvalState{constructor(){this.ctm=new Float32Array(a.IDENTITY_MATRIX);this.font=null;this.textRenderingMode=a.TextRenderingMode.FILL;this.fillColorSpace=p.ColorSpace.singletons.gray;this.strokeColorSpace=p.ColorSpace.singletons.gray}clone(){return Object.create(this)}}class EvaluatorPreprocessor{static get opMap(){const e=(0,c.getLookupTableFactory)((function(e){e.w={id:a.OPS.setLineWidth,numArgs:1,variableArgs:!1};e.J={id:a.OPS.setLineCap,numArgs:1,variableArgs:!1};e.j={id:a.OPS.setLineJoin,numArgs:1,variableArgs:!1};e.M={id:a.OPS.setMiterLimit,numArgs:1,variableArgs:!1};e.d={id:a.OPS.setDash,numArgs:2,variableArgs:!1};e.ri={id:a.OPS.setRenderingIntent,numArgs:1,variableArgs:!1};e.i={id:a.OPS.setFlatness,numArgs:1,variableArgs:!1};e.gs={id:a.OPS.setGState,numArgs:1,variableArgs:!1};e.q={id:a.OPS.save,numArgs:0,variableArgs:!1};e.Q={id:a.OPS.restore,numArgs:0,variableArgs:!1};e.cm={id:a.OPS.transform,numArgs:6,variableArgs:!1};e.m={id:a.OPS.moveTo,numArgs:2,variableArgs:!1};e.l={id:a.OPS.lineTo,numArgs:2,variableArgs:!1};e.c={id:a.OPS.curveTo,numArgs:6,variableArgs:!1};e.v={id:a.OPS.curveTo2,numArgs:4,variableArgs:!1};e.y={id:a.OPS.curveTo3,numArgs:4,variableArgs:!1};e.h={id:a.OPS.closePath,numArgs:0,variableArgs:!1};e.re={id:a.OPS.rectangle,numArgs:4,variableArgs:!1};e.S={id:a.OPS.stroke,numArgs:0,variableArgs:!1};e.s={id:a.OPS.closeStroke,numArgs:0,variableArgs:!1};e.f={id:a.OPS.fill,numArgs:0,variableArgs:!1};e.F={id:a.OPS.fill,numArgs:0,variableArgs:!1};e["f*"]={id:a.OPS.eoFill,numArgs:0,variableArgs:!1};e.B={id:a.OPS.fillStroke,numArgs:0,variableArgs:!1};e["B*"]={id:a.OPS.eoFillStroke,numArgs:0,variableArgs:!1};e.b={id:a.OPS.closeFillStroke,numArgs:0,variableArgs:!1};e["b*"]={id:a.OPS.closeEOFillStroke,numArgs:0,variableArgs:!1};e.n={id:a.OPS.endPath,numArgs:0,variableArgs:!1};e.W={id:a.OPS.clip,numArgs:0,variableArgs:!1};e["W*"]={id:a.OPS.eoClip,numArgs:0,variableArgs:!1};e.BT={id:a.OPS.beginText,numArgs:0,variableArgs:!1};e.ET={id:a.OPS.endText,numArgs:0,variableArgs:!1};e.Tc={id:a.OPS.setCharSpacing,numArgs:1,variableArgs:!1};e.Tw={id:a.OPS.setWordSpacing,numArgs:1,variableArgs:!1};e.Tz={id:a.OPS.setHScale,numArgs:1,variableArgs:!1};e.TL={id:a.OPS.setLeading,numArgs:1,variableArgs:!1};e.Tf={id:a.OPS.setFont,numArgs:2,variableArgs:!1};e.Tr={id:a.OPS.setTextRenderingMode,numArgs:1,variableArgs:!1};e.Ts={id:a.OPS.setTextRise,numArgs:1,variableArgs:!1};e.Td={id:a.OPS.moveText,numArgs:2,variableArgs:!1};e.TD={id:a.OPS.setLeadingMoveText,numArgs:2,variableArgs:!1};e.Tm={id:a.OPS.setTextMatrix,numArgs:6,variableArgs:!1};e["T*"]={id:a.OPS.nextLine,numArgs:0,variableArgs:!1};e.Tj={id:a.OPS.showText,numArgs:1,variableArgs:!1};e.TJ={id:a.OPS.showSpacedText,numArgs:1,variableArgs:!1};e["'"]={id:a.OPS.nextLineShowText,numArgs:1,variableArgs:!1};e['"']={id:a.OPS.nextLineSetSpacingShowText,numArgs:3,variableArgs:!1};e.d0={id:a.OPS.setCharWidth,numArgs:2,variableArgs:!1};e.d1={id:a.OPS.setCharWidthAndBounds,numArgs:6,variableArgs:!1};e.CS={id:a.OPS.setStrokeColorSpace,numArgs:1,variableArgs:!1};e.cs={id:a.OPS.setFillColorSpace,numArgs:1,variableArgs:!1};e.SC={id:a.OPS.setStrokeColor,numArgs:4,variableArgs:!0};e.SCN={id:a.OPS.setStrokeColorN,numArgs:33,variableArgs:!0};e.sc={id:a.OPS.setFillColor,numArgs:4,variableArgs:!0};e.scn={id:a.OPS.setFillColorN,numArgs:33,variableArgs:!0};e.G={id:a.OPS.setStrokeGray,numArgs:1,variableArgs:!1};e.g={id:a.OPS.setFillGray,numArgs:1,variableArgs:!1};e.RG={id:a.OPS.setStrokeRGBColor,numArgs:3,variableArgs:!1};e.rg={id:a.OPS.setFillRGBColor,numArgs:3,variableArgs:!1};e.K={id:a.OPS.setStrokeCMYKColor,numArgs:4,variableArgs:!1};e.k={id:a.OPS.setFillCMYKColor,numArgs:4,variableArgs:!1};e.sh={id:a.OPS.shadingFill,numArgs:1,variableArgs:!1};e.BI={id:a.OPS.beginInlineImage,numArgs:0,variableArgs:!1};e.ID={id:a.OPS.beginImageData,numArgs:0,variableArgs:!1};e.EI={id:a.OPS.endInlineImage,numArgs:1,variableArgs:!1};e.Do={id:a.OPS.paintXObject,numArgs:1,variableArgs:!1};e.MP={id:a.OPS.markPoint,numArgs:1,variableArgs:!1};e.DP={id:a.OPS.markPointProps,numArgs:2,variableArgs:!1};e.BMC={id:a.OPS.beginMarkedContent,numArgs:1,variableArgs:!1};e.BDC={id:a.OPS.beginMarkedContentProps,numArgs:2,variableArgs:!1};e.EMC={id:a.OPS.endMarkedContent,numArgs:0,variableArgs:!1};e.BX={id:a.OPS.beginCompat,numArgs:0,variableArgs:!1};e.EX={id:a.OPS.endCompat,numArgs:0,variableArgs:!1};e.BM=null;e.BD=null;e.true=null;e.fa=null;e.fal=null;e.fals=null;e.false=null;e.nu=null;e.nul=null;e.null=null}));return(0,a.shadow)(this,"opMap",e())}static get MAX_INVALID_PATH_OPS(){return(0,a.shadow)(this,"MAX_INVALID_PATH_OPS",20)}constructor(e,t,r){this.parser=new f.Parser({lexer:new f.Lexer(e,EvaluatorPreprocessor.opMap),xref:t});this.stateManager=r;this.nonProcessedArgs=[];this._numInvalidPathOPS=0}get savedStatesDepth(){return this.stateManager.stateStack.length}read(e){for(var t=e.args;;){var r=this.parser.getObj();if(r instanceof n.Cmd){var i=r.cmd,s=EvaluatorPreprocessor.opMap[i];if(!s){(0,a.warn)(`Unknown command "${i}".`);continue}var o=s.id,c=s.numArgs,l=null!==t?t.length:0;if(s.variableArgs)l>c&&(0,a.info)(`Command ${i}: expected [0, ${c}] args, but received ${l} args.`);else{if(l!==c){for(var h=this.nonProcessedArgs;l>c;){h.push(t.shift());l--}for(;l=a.OPS.moveTo&&o<=a.OPS.endPath&&++this._numInvalidPathOPS>EvaluatorPreprocessor.MAX_INVALID_PATH_OPS)throw new a.FormatError("Invalid "+e);(0,a.warn)("Skipping "+e);null!==t&&(t.length=0);continue}}this.preprocessCommand(o,t);e.fn=o;e.args=t;return!0}if(r===n.EOF)return!1;if(null!==r){null===t&&(t=[]);t.push(r);if(t.length>33)throw new a.FormatError("Too many arguments")}}}preprocessCommand(e,t){switch(0|e){case a.OPS.save:this.stateManager.save();break;case a.OPS.restore:this.stateManager.restore();break;case a.OPS.transform:this.stateManager.transform(t)}}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.CMapFactory=t.IdentityCMap=t.CMap=void 0;var a=r(2),i=r(5),n=r(11),s=r(8),o=r(12),c=["Adobe-GB1-UCS2","Adobe-CNS1-UCS2","Adobe-Japan1-UCS2","Adobe-Korea1-UCS2","78-EUC-H","78-EUC-V","78-H","78-RKSJ-H","78-RKSJ-V","78-V","78ms-RKSJ-H","78ms-RKSJ-V","83pv-RKSJ-H","90ms-RKSJ-H","90ms-RKSJ-V","90msp-RKSJ-H","90msp-RKSJ-V","90pv-RKSJ-H","90pv-RKSJ-V","Add-H","Add-RKSJ-H","Add-RKSJ-V","Add-V","Adobe-CNS1-0","Adobe-CNS1-1","Adobe-CNS1-2","Adobe-CNS1-3","Adobe-CNS1-4","Adobe-CNS1-5","Adobe-CNS1-6","Adobe-GB1-0","Adobe-GB1-1","Adobe-GB1-2","Adobe-GB1-3","Adobe-GB1-4","Adobe-GB1-5","Adobe-Japan1-0","Adobe-Japan1-1","Adobe-Japan1-2","Adobe-Japan1-3","Adobe-Japan1-4","Adobe-Japan1-5","Adobe-Japan1-6","Adobe-Korea1-0","Adobe-Korea1-1","Adobe-Korea1-2","B5-H","B5-V","B5pc-H","B5pc-V","CNS-EUC-H","CNS-EUC-V","CNS1-H","CNS1-V","CNS2-H","CNS2-V","ETHK-B5-H","ETHK-B5-V","ETen-B5-H","ETen-B5-V","ETenms-B5-H","ETenms-B5-V","EUC-H","EUC-V","Ext-H","Ext-RKSJ-H","Ext-RKSJ-V","Ext-V","GB-EUC-H","GB-EUC-V","GB-H","GB-V","GBK-EUC-H","GBK-EUC-V","GBK2K-H","GBK2K-V","GBKp-EUC-H","GBKp-EUC-V","GBT-EUC-H","GBT-EUC-V","GBT-H","GBT-V","GBTpc-EUC-H","GBTpc-EUC-V","GBpc-EUC-H","GBpc-EUC-V","H","HKdla-B5-H","HKdla-B5-V","HKdlb-B5-H","HKdlb-B5-V","HKgccs-B5-H","HKgccs-B5-V","HKm314-B5-H","HKm314-B5-V","HKm471-B5-H","HKm471-B5-V","HKscs-B5-H","HKscs-B5-V","Hankaku","Hiragana","KSC-EUC-H","KSC-EUC-V","KSC-H","KSC-Johab-H","KSC-Johab-V","KSC-V","KSCms-UHC-H","KSCms-UHC-HW-H","KSCms-UHC-HW-V","KSCms-UHC-V","KSCpc-EUC-H","KSCpc-EUC-V","Katakana","NWP-H","NWP-V","RKSJ-H","RKSJ-V","Roman","UniCNS-UCS2-H","UniCNS-UCS2-V","UniCNS-UTF16-H","UniCNS-UTF16-V","UniCNS-UTF32-H","UniCNS-UTF32-V","UniCNS-UTF8-H","UniCNS-UTF8-V","UniGB-UCS2-H","UniGB-UCS2-V","UniGB-UTF16-H","UniGB-UTF16-V","UniGB-UTF32-H","UniGB-UTF32-V","UniGB-UTF8-H","UniGB-UTF8-V","UniJIS-UCS2-H","UniJIS-UCS2-HW-H","UniJIS-UCS2-HW-V","UniJIS-UCS2-V","UniJIS-UTF16-H","UniJIS-UTF16-V","UniJIS-UTF32-H","UniJIS-UTF32-V","UniJIS-UTF8-H","UniJIS-UTF8-V","UniJIS2004-UTF16-H","UniJIS2004-UTF16-V","UniJIS2004-UTF32-H","UniJIS2004-UTF32-V","UniJIS2004-UTF8-H","UniJIS2004-UTF8-V","UniJISPro-UCS2-HW-V","UniJISPro-UCS2-V","UniJISPro-UTF8-V","UniJISX0213-UTF32-H","UniJISX0213-UTF32-V","UniJISX02132004-UTF32-H","UniJISX02132004-UTF32-V","UniKS-UCS2-H","UniKS-UCS2-V","UniKS-UTF16-H","UniKS-UTF16-V","UniKS-UTF32-H","UniKS-UTF32-V","UniKS-UTF8-H","UniKS-UTF8-V","V","WP-Symbol"];class CMap{constructor(e=!1){this.codespaceRanges=[[],[],[],[]];this.numCodespaceRanges=0;this._map=[];this.name="";this.vertical=!1;this.useCMap=null;this.builtInCMap=e}addCodespaceRange(e,t,r){this.codespaceRanges[e-1].push(t,r);this.numCodespaceRanges++}mapCidRange(e,t,r){if(t-e>2**24-1)throw new Error("mapCidRange - ignoring data above MAX_MAP_RANGE.");for(;e<=t;)this._map[e++]=r++}mapBfRange(e,t,r){if(t-e>2**24-1)throw new Error("mapBfRange - ignoring data above MAX_MAP_RANGE.");for(var a=r.length-1;e<=t;){this._map[e++]=r;r=r.substring(0,a)+String.fromCharCode(r.charCodeAt(a)+1)}}mapBfRangeToArray(e,t,r){if(t-e>2**24-1)throw new Error("mapBfRangeToArray - ignoring data above MAX_MAP_RANGE.");const a=r.length;let i=0;for(;e<=t&&i>>0;const s=i[n];for(let e=0,t=s.length;e=t&&a<=i){r.charcode=a;r.length=n+1;return}}}r.charcode=0;r.length=1}get length(){return this._map.length}get isIdentityCMap(){if("Identity-H"!==this.name&&"Identity-V"!==this.name)return!1;if(65536!==this._map.length)return!1;for(let e=0;e<65536;e++)if(this._map[e]!==e)return!1;return!0}}t.CMap=CMap;class IdentityCMap extends CMap{constructor(e,t){super();this.vertical=e;this.addCodespaceRange(t,0,65535)}mapCidRange(e,t,r){(0,a.unreachable)("should not call mapCidRange")}mapBfRange(e,t,r){(0,a.unreachable)("should not call mapBfRange")}mapBfRangeToArray(e,t,r){(0,a.unreachable)("should not call mapBfRangeToArray")}mapOne(e,t){(0,a.unreachable)("should not call mapCidOne")}lookup(e){return Number.isInteger(e)&&e<=65535?e:void 0}contains(e){return Number.isInteger(e)&&e<=65535}forEach(e){for(let t=0;t<=65535;t++)e(t,t)}charCodeOf(e){return Number.isInteger(e)&&e<=65535?e:-1}getMap(){const e=new Array(65536);for(let t=0;t<=65535;t++)e[t]=t;return e}get length(){return 65536}get isIdentityCMap(){(0,a.unreachable)("should not access .isIdentityCMap")}}t.IdentityCMap=IdentityCMap;var l=function BinaryCMapReaderClosure(){function hexToInt(e,t){for(var r=0,a=0;a<=t;a++)r=r<<8|e[a];return r>>>0}function hexToStr(e,t){return 1===t?String.fromCharCode(e[0],e[1]):3===t?String.fromCharCode(e[0],e[1],e[2],e[3]):String.fromCharCode.apply(null,e.subarray(0,t+1))}function addHex(e,t,r){for(var a=0,i=r;i>=0;i--){a+=e[i]+t[i];e[i]=255&a;a>>=8}}function incHex(e,t){for(var r=1,a=t;a>=0&&r>0;a--){r+=e[a];e[a]=255&r;r>>=8}}function BinaryCMapStream(e){this.buffer=e;this.pos=0;this.end=e.length;this.tmpBuf=new Uint8Array(19)}BinaryCMapStream.prototype={readByte(){return this.pos>=this.end?-1:this.buffer[this.pos++]},readNumber(){var e,t=0;do{var r=this.readByte();if(r<0)throw new a.FormatError("unexpected EOF in bcmap");e=!(128&r);t=t<<7|127&r}while(!e);return t},readSigned(){var e=this.readNumber();return 1&e?~(e>>>1):e>>>1},readHex(e,t){e.set(this.buffer.subarray(this.pos,this.pos+t+1));this.pos+=t+1},readHexNumber(e,t){var r,i=this.tmpBuf,n=0;do{var s=this.readByte();if(s<0)throw new a.FormatError("unexpected EOF in bcmap");r=!(128&s);i[n++]=127&s}while(!r);for(var o=t,c=0,l=0;o>=0;){for(;l<8&&i.length>0;){c=i[--n]<>=8;l-=8}},readHexSigned(e,t){this.readHexNumber(e,t);for(var r=1&e[t]?255:0,a=0,i=0;i<=t;i++){a=(1&a)<<8|e[i];e[i]=a>>1^r}},readString(){for(var e=this.readNumber(),t="",r=0;r=0;){var m=c>>5;if(7!==m){var p=!!(16&c),b=15&c;if(b+1>16)throw new Error("processBinaryCMap: Invalid dataSize.");var y,v=n.readNumber();switch(m){case 0:n.readHex(h,b);n.readHexNumber(u,b);addHex(u,h,b);t.addCodespaceRange(b+1,hexToInt(h,b),hexToInt(u,b));for(y=1;y>>0}function expectString(e){if(!(0,a.isString)(e))throw new a.FormatError("Malformed CMap: expected string.")}function expectInt(e){if(!Number.isInteger(e))throw new a.FormatError("Malformed CMap: expected int.")}function parseBfChar(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endbfchar"))return;expectString(r);var a=strToInt(r);expectString(r=t.getObj());var n=r;e.mapOne(a,n)}}function parseBfRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endbfrange"))return;expectString(r);var n=strToInt(r);expectString(r=t.getObj());var s=strToInt(r);r=t.getObj();if(Number.isInteger(r)||(0,a.isString)(r)){var o=Number.isInteger(r)?String.fromCharCode(r):r;e.mapBfRange(n,s,o)}else{if(!(0,i.isCmd)(r,"["))break;r=t.getObj();for(var c=[];!(0,i.isCmd)(r,"]")&&!(0,i.isEOF)(r);){c.push(r);r=t.getObj()}e.mapBfRangeToArray(n,s,c)}}throw new a.FormatError("Invalid bf range.")}function parseCidChar(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcidchar"))return;expectString(r);var a=strToInt(r);expectInt(r=t.getObj());var n=r;e.mapOne(a,n)}}function parseCidRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcidrange"))return;expectString(r);var a=strToInt(r);expectString(r=t.getObj());var n=strToInt(r);expectInt(r=t.getObj());var s=r;e.mapCidRange(a,n,s)}}function parseCodespaceRange(e,t){for(;;){var r=t.getObj();if((0,i.isEOF)(r))break;if((0,i.isCmd)(r,"endcodespacerange"))return;if(!(0,a.isString)(r))break;var n=strToInt(r);r=t.getObj();if(!(0,a.isString)(r))break;var s=strToInt(r);e.addCodespaceRange(r.length,n,s)}throw new a.FormatError("Invalid codespace range.")}function parseWMode(e,t){var r=t.getObj();Number.isInteger(r)&&(e.vertical=!!r)}function parseCMapName(e,t){var r=t.getObj();(0,i.isName)(r)&&(0,a.isString)(r.name)&&(e.name=r.name)}function parseCMap(e,t,r,n){var o,c;e:for(;;)try{var l=t.getObj();if((0,i.isEOF)(l))break;if((0,i.isName)(l)){"WMode"===l.name?parseWMode(e,t):"CMapName"===l.name&&parseCMapName(e,t);o=l}else if((0,i.isCmd)(l))switch(l.cmd){case"endcmap":break e;case"usecmap":(0,i.isName)(o)&&(c=o.name);break;case"begincodespacerange":parseCodespaceRange(e,t);break;case"beginbfchar":parseBfChar(e,t);break;case"begincidchar":parseCidChar(e,t);break;case"beginbfrange":parseBfRange(e,t);break;case"begincidrange":parseCidRange(e,t)}}catch(e){if(e instanceof s.MissingDataException)throw e;(0,a.warn)("Invalid cMap data: "+e);continue}!n&&c&&(n=c);return n?extendCMap(e,r,n):Promise.resolve(e)}function extendCMap(e,t,r){return createBuiltInCMap(r,t).then((function(t){e.useCMap=t;if(0===e.numCodespaceRanges){for(var r=e.useCMap.codespaceRanges,a=0;a=this.firstChar&&e<=this.lastChar?e:-1},amend(e){(0,a.unreachable)("Should not call amend()")}};return IdentityToUnicodeMap}();t.IdentityToUnicodeMap=k;var S=function OpenTypeFileBuilderClosure(){function writeInt16(e,t,r){e[t]=r>>8&255;e[t+1]=255&r}function writeInt32(e,t,r){e[t]=r>>24&255;e[t+1]=r>>16&255;e[t+2]=r>>8&255;e[t+3]=255&r}function writeData(e,t,r){var a,i;if(r instanceof Uint8Array)e.set(r,t);else if("string"==typeof r)for(a=0,i=r.length;ar;){r<<=1;a++}var i=r*t;return{range:i,entry:a,rangeShift:t*e-i}};OpenTypeFileBuilder.prototype={toArray:function OpenTypeFileBuilder_toArray(){var e=this.sfnt,t=this.tables,r=Object.keys(t);r.sort();var i,n,s,o,c,h=r.length,u=12+16*h,d=[u];for(i=0;i>>0;d.push(u)}var f=new Uint8Array(u);for(i=0;i>>0}writeInt32(f,u+4,m);writeInt32(f,u+8,d[i]);writeInt32(f,u+12,t[c].length);u+=16}return f},addTable:function OpenTypeFileBuilder_addTable(e,t){if(e in this.tables)throw new Error("Table "+e+" already exists");this.tables[e]=t}};return OpenTypeFileBuilder}(),C=function FontClosure(){function Font(e,t,r){var i;this.name=e;this.loadedName=r.loadedName;this.isType3Font=r.isType3Font;this.missingFile=!1;this.glyphCache=Object.create(null);this.isSerifFont=!!(r.flags&b.Serif);this.isSymbolicFont=!!(r.flags&b.Symbolic);this.isMonospace=!!(r.flags&b.FixedPitch);var n=r.type,s=r.subtype;this.type=n;this.subtype=s;let o="sans-serif";this.isMonospace?o="monospace":this.isSerifFont&&(o="serif");this.fallbackName=o;this.differences=r.differences;this.widths=r.widths;this.defaultWidth=r.defaultWidth;this.composite=r.composite;this.cMap=r.cMap;this.ascent=r.ascent/1e3;this.descent=r.descent/1e3;this.fontMatrix=r.fontMatrix;this.bbox=r.bbox;this.defaultEncoding=r.defaultEncoding;this.toUnicode=r.toUnicode;this.fallbackToUnicode=r.fallbackToUnicode||new w;this.toFontChar=[];if("Type3"!==r.type){this.cidEncoding=r.cidEncoding;this.vertical=!!r.vertical;if(this.vertical){this.vmetrics=r.vmetrics;this.defaultVMetrics=r.defaultVMetrics}if(t&&!t.isEmpty){[n,s]=function getFontFileType(e,{type:t,subtype:r,composite:i}){let n,s;if(function isTrueTypeFile(e){var t=e.peekBytes(4);return 65536===(0,l.readUint32)(t,0)||"true"===(0,a.bytesToString)(t)}(e)||isTrueTypeCollectionFile(e))n=i?"CIDFontType2":"TrueType";else if(function isOpenTypeFile(e){var t=e.peekBytes(4);return"OTTO"===(0,a.bytesToString)(t)}(e))n=i?"CIDFontType2":"OpenType";else if(function isType1File(e){var t=e.peekBytes(2);if(37===t[0]&&33===t[1])return!0;if(128===t[0]&&1===t[1])return!0;return!1}(e))n=i?"CIDFontType0":"MMType1"===t?"MMType1":"Type1";else if(function isCFFFile(e){const t=e.peekBytes(4);if(t[0]>=1&&t[3]>=1&&t[3]<=4)return!0;return!1}(e))if(i){n="CIDFontType0";s="CIDFontType0C"}else{n="MMType1"===t?"MMType1":"Type1";s="Type1C"}else{(0,a.warn)("getFontFileType: Unable to detect correct font file Type/Subtype.");n=t;s=r}return[n,s]}(t,r);n===this.type&&s===this.subtype||(0,a.info)(`Inconsistent font file Type/SubType, expected: ${this.type}/${this.subtype} but found: ${n}/${s}.`);try{var c;switch(n){case"MMType1":(0,a.info)("MMType1 font ("+e+"), falling back to Type1.");case"Type1":case"CIDFontType0":this.mimetype="font/opentype";var h="Type1C"===s||"CIDFontType0C"===s?new T(t,r):new A(e,t,r);adjustWidths(r);c=this.convert(e,h,r);break;case"OpenType":case"TrueType":case"CIDFontType2":this.mimetype="font/opentype";c=this.checkAndRepair(e,t,r);if(this.isOpenType){adjustWidths(r);n="OpenType"}break;default:throw new a.FormatError(`Font ${n} is not supported`)}}catch(e){(0,a.warn)(e);this.fallbackToSystemFont();return}this.data=c;this.fontType=getFontType(n,s);this.fontMatrix=r.fontMatrix;this.widths=r.widths;this.defaultWidth=r.defaultWidth;this.toUnicode=r.toUnicode;this.seacMap=r.seacMap}else{t&&(0,a.warn)('Font file is empty in "'+e+'" ('+this.loadedName+")");this.fallbackToSystemFont()}}else{for(i=0;i<256;i++)this.toFontChar[i]=this.differences[i]||r.defaultEncoding[i];this.fontType=a.FontType.TYPE3}}function int16(e,t){return(e<<8)+t}function signedInt16(e,t){var r=(e<<8)+t;return 32768&r?r-65536:r}function string16(e){return String.fromCharCode(e>>8&255,255&e)}function safeString16(e){e>32767?e=32767:e<-32768&&(e=-32768);return String.fromCharCode(e>>8&255,255&e)}function isTrueTypeCollectionFile(e){const t=e.peekBytes(4);return"ttcf"===(0,a.bytesToString)(t)}function buildToFontChar(e,t,r){for(var a,i=[],n=0,s=e.length;nc){if(++s>=g.length){(0,a.warn)("Ran out of space in font private use area.");break}o=g[s][0];c=g[s][1]}var u=o++;0===h&&(h=r);i[u]=h;n[l]=u}}return{toFontChar:n,charCodeToGlyphId:i,nextAvailableFontCharCode:o}}function createCmapTable(e,t){var r,i,n,s,o=function getRanges(e,t){var r=[];for(var a in e)e[a]>=t||r.push({fontCharCode:0|a,glyphId:e[a]});0===r.length&&r.push({fontCharCode:0,glyphId:0});r.sort((function fontGetRangesSort(e,t){return e.fontCharCode-t.fontCharCode}));for(var i=[],n=r.length,s=0;s65535?2:1,l="\0\0"+string16(c)+"\0\0"+(0,a.string32)(4+8*c);for(r=o.length-1;r>=0&&!(o[r][0]<=65535);--r);var h=r+1;o[r][0]<65535&&65535===o[r][1]&&(o[r][1]=65534);var u,d,f,g,m=o[r][1]<65535?1:0,p=h+m,b=S.getSearchParams(p,2),y="",v="",w="",k="",C="",x=0;for(r=0,i=h;r0){v+="ÿÿ";y+="ÿÿ";w+="\0";k+="\0\0"}var I="\0\0"+string16(2*p)+string16(b.range)+string16(b.entry)+string16(b.rangeShift)+v+"\0\0"+y+w+k+C,F="",P="";if(c>1){l+="\0\0\n"+(0,a.string32)(4+8*c+4+I.length);F="";for(r=0,i=o.length;r(u|=0)||!l)&&(l=u);h 123 are reserved for internal usage");o|=1<65535&&(h=65535)}else{l=0;h=255}var f=e.bbox||[0,0,0,0],g=r.unitsPerEm||1/(e.fontMatrix||a.FONT_IDENTITY_MATRIX)[0],m=e.ascentScaled?1:g/1e3,p=r.ascent||Math.round(m*(e.ascent||f[3])),b=r.descent||Math.round(m*(e.descent||f[1]));b>0&&e.descent>0&&f[1]<0&&(b=-b);var y=r.yMax||p,v=-r.yMin||-b;return"\0$ô\0\0\0Š»\0\0\0ŒŠ»\0\0ß\x001\0\0\0\0"+String.fromCharCode(e.fixedPitch?9:0)+"\0\0\0\0\0\0"+(0,a.string32)(i)+(0,a.string32)(n)+(0,a.string32)(s)+(0,a.string32)(o)+"*21*"+string16(e.italicAngle?1:0)+string16(l||e.firstChar)+string16(h||e.lastChar)+string16(p)+string16(b)+"\0d"+string16(y)+string16(v)+"\0\0\0\0\0\0\0\0"+string16(e.xHeight)+string16(e.capHeight)+string16(0)+string16(l||e.firstChar)+"\0"}function createPostTable(e){var t=Math.floor(65536*e.italicAngle);return"\0\0\0"+(0,a.string32)(t)+"\0\0\0\0"+(0,a.string32)(e.fixedPitch)+"\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"}function createNameTable(e,t){t||(t=[[],[]]);var r,a,i,n,s,o=[t[0][0]||"Original licence",t[0][1]||e,t[0][2]||"Unknown",t[0][3]||"uniqueID",t[0][4]||e,t[0][5]||"Version 0.11",t[0][6]||"",t[0][7]||"Unknown",t[0][8]||"Unknown",t[0][9]||"Unknown"],c=[];for(r=0,a=o.length;r0;if(u&&"CIDFontType2"===t&&this.cidEncoding.startsWith("Identity-")){const t=(0,o.getGlyphMapForStandardFonts)(),r=[];for(const e in t)r[+e]=t[e];if(/Arial-?Black/i.test(e)){var d=(0,o.getSupplementalGlyphMapForArialBlack)();for(const e in d)r[+e]=d[e]}else if(/Calibri/i.test(e)){const e=(0,o.getSupplementalGlyphMapForCalibri)();for(const t in e)r[+t]=e[t]}this.toUnicode instanceof k||this.toUnicode.forEach((function(e,t){r[+e]=t}));this.toFontChar=r;this.toUnicode=new w(r)}else if(/Symbol/i.test(i))this.toFontChar=buildToFontChar(s.SymbolSetEncoding,(0,n.getGlyphsUnicode)(),this.differences);else if(/Dingbats/i.test(i)){/Wingdings/i.test(e)&&(0,a.warn)("Non-embedded Wingdings font, falling back to ZapfDingbats.");this.toFontChar=buildToFontChar(s.ZapfDingbatsEncoding,(0,n.getDingbatsGlyphsUnicode)(),this.differences)}else if(u)this.toFontChar=buildToFontChar(this.defaultEncoding,(0,n.getGlyphsUnicode)(),this.differences);else{const t=(0,n.getGlyphsUnicode)(),r=[];this.toUnicode.forEach((e,a)=>{if(!this.composite){var i=this.differences[e]||this.defaultEncoding[e];const r=(0,c.getUnicodeForGlyph)(i,t);-1!==r&&(a=r)}r[+e]=a});if(this.composite&&this.toUnicode instanceof k&&/Verdana/i.test(e)){const e=(0,o.getGlyphMapForStandardFonts)();for(const t in e)r[+t]=e[t]}this.toFontChar=r}this.loadedName=i.split("-")[0];this.fontType=getFontType(t,r)},checkAndRepair:function Font_checkAndRepair(e,t,r){const o=["OS/2","cmap","head","hhea","hmtx","maxp","name","post","loca","glyf","fpgm","prep","cvt ","CFF "];function readTables(e,t){const r=Object.create(null);r["OS/2"]=null;r.cmap=null;r.head=null;r.hhea=null;r.hmtx=null;r.maxp=null;r.name=null;r.post=null;for(let a=0;a>>0,i=e.getInt32()>>>0,n=e.getInt32()>>>0,s=e.pos;e.pos=e.start?e.start:0;e.skip(i);var o=e.getBytes(n);e.pos=s;if("head"===t){o[8]=o[9]=o[10]=o[11]=0;o[17]|=32}return{tag:t,checksum:r,length:n,offset:i,data:o}}function readOpenTypeHeader(e){return{version:(0,a.bytesToString)(e.getBytes(4)),numTables:e.getUint16(),searchRange:e.getUint16(),entrySelector:e.getUint16(),rangeShift:e.getUint16()}}function sanitizeGlyph(e,t,r,a,i,n){var s={length:0,sizeOfInstructions:0};if(r-t<=12)return s;var o=e.subarray(t,r),c=signedInt16(o[0],o[1]);if(c<0){!function writeSignedInt16(e,t,r){e[t+1]=r;e[t]=r>>>8}(o,0,c=-1);a.set(o,i);s.length=o.length;return s}var l,h=10,u=0;for(l=0;lo.length)return s;if(!n&&f>0){a.set(o.subarray(0,d),i);a.set([0,0],i+d);a.set(o.subarray(g,y),i+d+2);y-=f;o.length-y>3&&(y=y+3&-4);s.length=y;return s}if(o.length-y>3){y=y+3&-4;a.set(o.subarray(0,y),i);s.length=y;return s}a.set(o,i);s.length=o.length;return s}function readNameTable(e){var r=(t.start?t.start:0)+e.offset;t.pos=r;var i=[[],[]],n=e.length,s=r+n;if(0!==t.getUint16()||n<6)return i;var o,c,l=t.getUint16(),h=t.getUint16(),u=[];for(o=0;os)){t.pos=g;var m=f.name;if(f.encoding){for(var p="",b=0,y=f.length;b0&&(h+=S-1)}}else{if(b||v){(0,a.warn)("TT: nested FDEFs not allowed");p=!0}b=!0;d=h;s=f.pop();t.functionsDefined[s]={data:l,i:h}}else if(!b&&!v){s=f[f.length-1];if(isNaN(s))(0,a.info)("TT: CALL empty stack (or invalid entry).");else{t.functionsUsed[s]=!0;if(s in t.functionsStackDeltas){const e=f.length+t.functionsStackDeltas[s];if(e<0){(0,a.warn)("TT: CALL invalid functions stack delta.");t.hintsValid=!1;return}f.length=e}else if(s in t.functionsDefined&&!m.includes(s)){g.push({data:l,i:h,stackTop:f.length-1});m.push(s);if(!(o=t.functionsDefined[s])){(0,a.warn)("TT: CALL non-existent function");t.hintsValid=!1;return}l=o.data;h=o.i}}}if(!b&&!v){let e=0;k<=142?e=c[k]:k>=192&&k<=223?e=-1:k>=224&&(e=-2);if(k>=113&&k<=117){i=f.pop();isNaN(i)||(e=2*-i)}for(;e<0&&f.length>0;){f.pop();e++}for(;e>0;){f.push(NaN);e--}}}t.tooComplexToFollowFunctions=p;var C=[l];h>l.length&&C.push(new Uint8Array(h-l.length));if(d>u){(0,a.warn)("TT: complementing a missing function tail");C.push(new Uint8Array([34,45]))}!function foldTTTable(e,t){if(t.length>1){var r,a,i=0;for(r=0,a=t.length;r>>0,s=[];for(let t=0;t>>0);const o={ttcTag:t,majorVersion:r,minorVersion:i,numFonts:n,offsetTable:s};switch(r){case 1:return o;case 2:o.dsigTag=e.getInt32()>>>0;o.dsigLength=e.getInt32()>>>0;o.dsigOffset=e.getInt32()>>>0;return o}throw new a.FormatError(`Invalid TrueType Collection majorVersion: ${r}.`)}(e);for(let n=0;n0||!(r.cMap instanceof u.IdentityCMap));if("OTTO"===l.version&&!t||!h.head||!h.hhea||!h.maxp||!h.post){g=new d.Stream(h["CFF "].data);f=new T(g,r);adjustWidths(r);return this.convert(e,f,r)}delete h.glyf;delete h.loca;delete h.fpgm;delete h.prep;delete h["cvt "];this.isOpenType=!0}if(!h.maxp)throw new a.FormatError('Required "maxp" table is not found');t.pos=(t.start||0)+h.maxp.offset;var p=t.getInt32();const b=t.getUint16();let v=b+1,w=!0;if(v>65535){w=!1;v=b;(0,a.warn)("Not enough space in glyfs to duplicate first glyph.")}var k=0,C=0;if(p>=65536&&h.maxp.length>=22){t.pos+=8;if(t.getUint16()>2){h.maxp.data[14]=0;h.maxp.data[15]=2}t.pos+=4;k=t.getUint16();t.pos+=4;C=t.getUint16()}h.maxp.data[4]=v>>8;h.maxp.data[5]=255&v;var x=function sanitizeTTPrograms(e,t,r,i){var n={functionsDefined:[],functionsUsed:[],functionsStackDeltas:[],tooComplexToFollowFunctions:!1,hintsValid:!0};e&&sanitizeTTProgram(e,n);t&&sanitizeTTProgram(t,n);e&&function checkInvalidFunctions(e,t){if(!e.tooComplexToFollowFunctions)if(e.functionsDefined.length>t){(0,a.warn)("TT: more functions defined than expected");e.hintsValid=!1}else for(var r=0,i=e.functionsUsed.length;rt){(0,a.warn)("TT: invalid function id: "+r);e.hintsValid=!1;return}if(e.functionsUsed[r]&&!e.functionsDefined[r]){(0,a.warn)("TT: undefined function: "+r);e.hintsValid=!1;return}}}(n,i);if(r&&1&r.length){var s=new Uint8Array(r.length+1);s.set(r.data);r.data=s}return n.hintsValid}(h.fpgm,h.prep,h["cvt "],k);if(!x){delete h.fpgm;delete h.prep;delete h["cvt "]}!function sanitizeMetrics(e,t,r,i,n){if(t){e.pos=(e.start?e.start:0)+t.offset;e.pos+=4;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=2;e.pos+=8;e.pos+=2;var s=e.getUint16();if(s>i){(0,a.info)("The numOfMetrics ("+s+") should not be greater than the numGlyphs ("+i+")");s=i;t.data[34]=(65280&s)>>8;t.data[35]=255&s}var o=i-s-(r.length-4*s>>1);if(o>0){var c=new Uint8Array(r.length+2*o);c.set(r.data);if(n){c[r.length]=r.data[2];c[r.length+1]=r.data[3]}r.data=c}}else r&&(r.data=null)}(t,h.hhea,h.hmtx,v,w);if(!h.head)throw new a.FormatError('Required "head" table is not found');!function sanitizeHead(e,t,r){var i=e.data,n=function int32(e,t,r,a){return(e<<24)+(t<<16)+(r<<8)+a}(i[0],i[1],i[2],i[3]);if(n>>16!=1){(0,a.info)("Attempting to fix invalid version in head table: "+n);i[0]=0;i[1]=1;i[2]=0;i[3]=0}var s=int16(i[50],i[51]);if(s<0||s>1){(0,a.info)("Attempting to fix invalid indexToLocFormat in head table: "+s);var o=t+1;if(r===o<<1){i[50]=0;i[51]=0}else{if(r!==o<<2)throw new a.FormatError("Could not fix indexToLocFormat: "+s);i[50]=0;i[51]=1}}}(h.head,b,m?h.loca.length:0);var A=Object.create(null);if(m){var I=int16(h.head.data[50],h.head.data[51]),F=function sanitizeGlyphLocations(e,t,r,a,i,n,s){var o,c,l;if(a){o=4;c=function fontItemDecodeLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]};l=function fontItemEncodeLong(e,t,r){e[t]=r>>>24&255;e[t+1]=r>>16&255;e[t+2]=r>>8&255;e[t+3]=255&r}}else{o=2;c=function fontItemDecode(e,t){return e[t]<<9|e[t+1]<<1};l=function fontItemEncode(e,t,r){e[t]=r>>9&255;e[t+1]=r>>1&255}}var h=n?r+1:r,u=o*(1+h),d=new Uint8Array(u);d.set(e.data.subarray(0,u));e.data=d;var f,g,m=t.data,p=m.length,b=new Uint8Array(p);const y=[];for(f=0,g=0;fp&&(e=p);y.push({index:f,offset:e,endOffset:0})}y.sort((e,t)=>e.offset-t.offset);for(f=0;fe.index-t.index);var v=Object.create(null),w=0;l(d,0,w);for(f=0,g=o;fs&&(s=k.sizeOfInstructions);l(d,g,w+=S)}if(0===w){var C=new Uint8Array([0,1,0,0,0,0,0,0,0,0,0,0,0,0,49,0]);for(f=0,g=o;fx+w)t.data=b.subarray(0,x+w);else{t.data=new Uint8Array(x+w);t.data.set(b.subarray(0,w))}t.data.set(b.subarray(0,x),w);l(e.data,d.length-o,w+x)}else t.data=b.subarray(0,w);return{missingGlyphs:v,maxSizeOfInstructions:s}}(h.loca,h.glyf,b,I,x,w,C);A=F.missingGlyphs;if(p>=65536&&h.maxp.length>=22){h.maxp.data[26]=F.maxSizeOfInstructions>>8;h.maxp.data[27]=255&F.maxSizeOfInstructions}}if(!h.hhea)throw new a.FormatError('Required "hhea" table is not found');if(0===h.hhea.data[10]&&0===h.hhea.data[11]){h.hhea.data[10]=255;h.hhea.data[11]=255}var P={unitsPerEm:int16(h.head.data[18],h.head.data[19]),yMax:int16(h.head.data[42],h.head.data[43]),yMin:signedInt16(h.head.data[38],h.head.data[39]),ascent:int16(h.hhea.data[4],h.hhea.data[5]),descent:signedInt16(h.hhea.data[6],h.hhea.data[7])};this.ascent=P.ascent/P.unitsPerEm;this.descent=P.descent/P.unitsPerEm;h.post&&function readPostScriptTable(e,r,i){var n=(t.start?t.start:0)+e.offset;t.pos=n;var s,o=n+e.length,c=t.getInt32();t.skip(28);var l,h=!0;switch(c){case 65536:s=y;break;case 131072:var u=t.getUint16();if(u!==i){h=!1;break}var d=[];for(l=0;l=32768){h=!1;break}d.push(f)}if(!h)break;for(var g=[],m=[];t.pos65535)throw new a.FormatError("Max size of CID is 65,535");var r=-1;O?r=t:void 0!==B[t]&&(r=B[t]);r>=0&&r>>0,g=!1;if(!o||o.platformId!==u||o.encodingId!==d){if(0!==u||0!==d&&1!==d&&3!==d)if(1===u&&0===d)g=!0;else if(3!==u||1!==d||!i&&o){if(r&&3===u&&0===d){g=!0;l=!0}}else{g=!0;r||(l=!0)}else g=!0;g&&(o={platformId:u,encodingId:d,offset:f});if(l)break}}o&&(t.pos=s+o.offset);if(!o||-1===t.peekByte()){(0,a.warn)("Could not find a preferred cmap table.");return{platformId:-1,encodingId:-1,mappings:[],hasShortCmap:!1}}var m=t.getUint16();t.skip(4);var p,b,y=!1,v=[];if(0===m){for(p=0;p<256;p++){var w=t.getByte();w&&v.push({charCode:p,glyphId:w})}y=!0}else if(4===m){var k=t.getUint16()>>1;t.skip(6);var S,C=[];for(S=0;S>1)-(k-S);n.offsetIndex=T;x=Math.max(x,T+n.end-n.start+1)}else n.offsetIndex=-1}var I=[];for(p=0;p=61440&&t<=61695&&(t&=255);E[t]=N[e].glyphId}if(r.glyphNames&&e.length)for(let t=0;t<256;++t)if(void 0===E[t]&&e[t]){U=e[t];const a=r.glyphNames.indexOf(U);a>0&&hasGlyph(a)&&(E[t]=a)}}0===E.length&&(E[0]=0);let H=v-1;w||(H=0);var z=adjustMapping(E,hasGlyph,H);this.toFontChar=z.toFontChar;h.cmap={tag:"cmap",data:createCmapTable(z.charCodeToGlyphId,v)};h["OS/2"]&&function validateOS2Table(e,t){t.pos=(t.start||0)+e.offset;var r=t.getUint16();t.skip(60);var a=t.getUint16();if(r<4&&768&a)return!1;if(t.getUint16()>t.getUint16())return!1;t.skip(6);if(0===t.getUint16())return!1;e.data[8]=e.data[9]=0;return!0}(h["OS/2"],t)||(h["OS/2"]={tag:"OS/2",data:createOS2Table(r,z.charCodeToGlyphId,P)});if(!m)try{g=new d.Stream(h["CFF "].data);f=new i.CFFParser(g,r,!0).parse();f.duplicateFirstGlyph();var G=new i.CFFCompiler(f);h["CFF "].data=G.compile()}catch(e){(0,a.warn)("Failed to compile font "+r.loadedName)}if(h.name){var W=readNameTable(h.name);h.name.data=createNameTable(e,W)}else h.name={tag:"name",data:createNameTable(this.name)};var X=new S(l.version);for(var V in h)X.addTable(V,h[V].data);return X.toArray()},convert:function Font_convert(e,t,r){r.fixedPitch=!1;r.builtInEncoding&&function adjustToUnicode(e,t){if(!e.hasIncludedToUnicodeMap&&!(e.hasEncoding||t===e.defaultEncoding||e.toUnicode instanceof k)){var r=[],a=(0,n.getGlyphsUnicode)();for(var i in t){var s=t[i],o=(0,c.getUnicodeForGlyph)(s,a);-1!==o&&(r[i]=String.fromCharCode(o))}e.toUnicode.amend(r)}}(r,r.builtInEncoding);let i=1;t instanceof T&&(i=t.numGlyphs-1);var o=t.getGlyphMapping(r),l=adjustMapping(o,t.hasGlyphId.bind(t),i);this.toFontChar=l.toFontChar;var h=t.numGlyphs;function getCharCodes(e,t){var r=null;for(var a in e)if(t===e[a]){r||(r=[]);r.push(0|a)}return r}function createCharCode(e,t){for(var r in e)if(t===e[r])return 0|r;l.charCodeToGlyphId[l.nextAvailableFontCharCode]=t;return l.nextAvailableFontCharCode++}var u=t.seacs;if(u&&u.length){var d=r.fontMatrix||a.FONT_IDENTITY_MATRIX,f=t.getCharset(),g=Object.create(null);for(var m in u){var p=u[m|=0],b=s.StandardEncoding[p[2]],y=s.StandardEncoding[p[3]],v=f.indexOf(b),w=f.indexOf(y);if(!(v<0||w<0)){var C={x:p[0]*d[0]+p[1]*d[2]+d[4],y:p[0]*d[1]+p[1]*d[3]+d[5]},x=getCharCodes(o,m);if(x)for(let e=0,t=x.length;e=0?a:0}}else if(l)for(i in t)c[i]=t[i];else{o=s.StandardEncoding;for(i=0;i=0?a:0}}var h,u=e.differences;if(u)for(i in u){var d=u[i];if(-1===(a=r.indexOf(d))){h||(h=(0,n.getGlyphsUnicode)());var f=recoverGlyphName(d,h);f!==d&&(a=r.indexOf(f))}c[i]=a>=0?a:0}return c}var A=function Type1FontClosure(){function findBlock(e,t,r){for(var a,i=e.length,n=t.length,s=i-n,o=r,c=!1;o=n){o+=a;for(;o=0&&(n[s]=r)}return type1FontGlyphMapping(e,n,a)},hasGlyphId:function Type1Font_hasGlyphID(e){return!(e<0||e>=this.numGlyphs)&&(0===e||this.charstrings[e-1].charstring.length>0)},getSeacs:function Type1Font_getSeacs(e){var t,r,a=[];for(t=0,r=e.length;t0;y--)b[y]-=b[y-1];g.setByName(p,b)}}s.topDict.privateDict=g;var v=new i.CFFIndex;for(l=0,h=a.length;l=t)throw new a.FormatError("Invalid CFF header");if(0!==r){(0,a.info)("cff data is shifted");e=e.subarray(r);this.bytes=e}var i=e[0],n=e[1],s=e[2],o=e[3];return{obj:new CFFHeader(i,n,s,o),endPos:s}}parseDict(e){var t=0;function parseOperand(){var r=e[t++];if(30===r)return function parseFloatOperand(){var r="";const a=["0","1","2","3","4","5","6","7","8","9",".","E","E-",null,"-"];var i=e.length;for(;t>4,o=15&n;if(15===s)break;r+=a[s];if(15===o)break;r+=a[o]}return parseFloat(r)}();if(28===r)return r=((r=e[t++])<<24|e[t++]<<16)>>16;if(29===r)return r=(r=(r=(r=e[t++])<<8|e[t++])<<8|e[t++])<<8|e[t++];if(r>=32&&r<=246)return r-139;if(r>=247&&r<=250)return 256*(r-247)+e[t++]+108;if(r>=251&&r<=254)return-256*(r-251)-e[t++]-108;(0,a.warn)('CFFParser_parseDict: "'+r+'" is a reserved command.');return NaN}var r=[],i=[];t=0;for(var n=e.length;t10)return!1;for(var o=r.stackSize,c=r.stack,l=i.length,h=0;h>16;h+=2;o++}else if(14===u){if(o>=4){o-=4;if(this.seacAnalysisEnabled){r.seac=c.slice(o,o+4);return!1}}d=e[u]}else if(u>=32&&u<=246){c[o]=u-139;o++}else if(u>=247&&u<=254){c[o]=u<251?(u-247<<8)+i[h]+108:-(u-251<<8)-i[h]-108;h++;o++}else if(255===u){c[o]=(i[h]<<24|i[h+1]<<16|i[h+2]<<8|i[h+3])/65536;h+=4;o++}else if(19===u||20===u){r.hints+=o>>1;h+=r.hints+7>>3;o%=2;d=e[u]}else{if(10===u||29===u){var g;if(!(g=10===u?n:s)){d=e[u];(0,a.warn)("Missing subrsIndex for "+d.id);return!1}var m=32768;g.count<1240?m=107:g.count<33900&&(m=1131);var p=c[--o]+m;if(p<0||p>=g.count||isNaN(p)){d=e[u];(0,a.warn)("Out of bounds subrIndex for "+d.id);return!1}r.stackSize=o;r.callDepth++;if(!this.parseCharString(r,g.get(p),n,s))return!1;r.callDepth--;o=r.stackSize;continue}if(11===u){r.stackSize=o;return!0}d=e[u]}if(d){if(d.stem){r.hints+=o>>1;if(3===u||23===u)r.hasVStems=!0;else if(r.hasVStems&&(1===u||18===u)){(0,a.warn)("CFF stem hints are in wrong order");i[h-1]=1===u?3:23}}if("min"in d&&!r.undefStack&&o=2&&d.stem?o%=2:o>1&&(0,a.warn)("Found too many parameters for stack-clearing command");o>0&&c[o-1]>=0&&(r.width=c[o-1])}if("stackDelta"in d){"stackFn"in d&&d.stackFn(c,o);o+=d.stackDelta}else if(d.stackClearing)o=0;else if(d.resetStack){o=0;r.undefStack=!1}else if(d.undefStack){o=0;r.undefStack=!0;r.firstStackClearing=!1}}}r.stackSize=o;return!0}parseCharStrings({charStrings:e,localSubrIndex:t,globalSubrIndex:r,fdSelect:i,fdArray:n,privateDict:s}){for(var o=[],c=[],l=e.count,h=0;h=n.length){(0,a.warn)("Invalid fd index for glyph index.");f=!1}f&&(g=(m=n[p].privateDict).subrsIndex)}else t&&(g=t);f&&(f=this.parseCharString(d,u,g,r));if(null!==d.width){const e=m.getByName("nominalWidthX");c[h]=e+d.width}else{const e=m.getByName("defaultWidthX");c[h]=e}null!==d.seac&&(o[h]=d.seac);f||e.set(h,new Uint8Array([14]))}return{charStrings:e,seacs:o,widths:c}}emptyPrivateDictionary(e){var t=this.createDict(l,[],e.strings);e.setByKey(18,[0,0]);e.privateDict=t}parsePrivateDict(e){if(e.hasName("Private")){var t=e.getByName("Private");if(Array.isArray(t)&&2===t.length){var r=t[0],a=t[1];if(0===r||a>=this.bytes.length)this.emptyPrivateDictionary(e);else{var i=a+r,n=this.bytes.subarray(a,i),s=this.parseDict(n),o=this.createDict(l,s,e.strings);e.privateDict=o;if(o.getByName("Subrs")){var c=o.getByName("Subrs"),h=a+c;if(0===c||h>=this.bytes.length)this.emptyPrivateDictionary(e);else{var u=this.parseIndex(h);o.subrsIndex=u.obj}}}}else e.removeByName("Private")}else this.emptyPrivateDictionary(e)}parseCharsets(e,t,r,n){if(0===e)return new CFFCharset(!0,h.ISO_ADOBE,i.ISOAdobeCharset);if(1===e)return new CFFCharset(!0,h.EXPERT,i.ExpertCharset);if(2===e)return new CFFCharset(!0,h.EXPERT_SUBSET,i.ExpertSubsetCharset);var s=this.bytes,o=e,c=s[e++];const l=[n?0:".notdef"];var u,d,f;t-=1;switch(c){case 0:for(f=0;f=65535)(0,a.warn)("Not enough space in charstrings to duplicate first glyph.");else{var e=this.charStrings.get(0);this.charStrings.add(e);this.isCIDFont&&this.fdSelect.fdSelect.push(this.fdSelect.fdSelect[0])}}hasGlyphId(e){return!(e<0||e>=this.charStrings.count)&&this.charStrings.get(e).length>0}}t.CFF=CFF;class CFFHeader{constructor(e,t,r,a){this.major=e;this.minor=t;this.hdrSize=r;this.offSize=a}}t.CFFHeader=CFFHeader;class CFFStrings{constructor(){this.strings=[]}get(e){return e>=0&&e<=390?s[e]:e-391<=this.strings.length?this.strings[e-391]:s[0]}getSID(e){let t=s.indexOf(e);if(-1!==t)return t;t=this.strings.indexOf(e);return-1!==t?t+391:-1}add(e){this.strings.push(e)}get count(){return this.strings.length}}t.CFFStrings=CFFStrings;class CFFIndex{constructor(){this.objects=[];this.length=0}add(e){this.length+=e.length;this.objects.push(e)}set(e,t){this.length+=t.length-this.objects[e].length;this.objects[e]=t}get(e){return this.objects[e]}get count(){return this.objects.length}}t.CFFIndex=CFFIndex;class CFFDict{constructor(e,t){this.keyToNameMap=e.keyToNameMap;this.nameToKeyMap=e.nameToKeyMap;this.defaults=e.defaults;this.types=e.types;this.opcodes=e.opcodes;this.order=e.order;this.strings=t;this.values=Object.create(null)}setByKey(e,t){if(!(e in this.keyToNameMap))return!1;var r=t.length;if(0===r)return!0;for(var i=0;i=this.fdSelect.length?-1:this.fdSelect[e]}}t.CFFFDSelect=CFFFDSelect;class CFFOffsetTracker{constructor(){this.offsets=Object.create(null)}isTracking(e){return e in this.offsets}track(e,t){if(e in this.offsets)throw new a.FormatError("Already tracking location of "+e);this.offsets[e]=t}offset(e){for(var t in this.offsets)this.offsets[t]+=e}setEntryLocation(e,t,r){if(!(e in this.offsets))throw new a.FormatError("Not tracking location of "+e);for(var i=r.data,n=this.offsets[e],s=0,o=t.length;s>24&255;i[h]=f>>16&255;i[u]=f>>8&255;i[d]=255&f}}}class CFFCompiler{constructor(e){this.cff=e}compile(){var e=this.cff,t={data:[],length:0,add:function CFFCompiler_add(e){this.data=this.data.concat(e);this.length=this.data.length}},r=this.compileHeader(e.header);t.add(r);var i=this.compileNameIndex(e.names);t.add(i);if(e.isCIDFont&&e.topDict.hasName("FontMatrix")){var n=e.topDict.getByName("FontMatrix");e.topDict.removeByName("FontMatrix");for(var s=0,o=e.fdArray.length;s=-107&&e<=107?[e+139]:e>=108&&e<=1131?[247+((e-=108)>>8),255&e]:e>=-1131&&e<=-108?[251+((e=-e-108)>>8),255&e]:e>=-32768&&e<=32767?[28,e>>8&255,255&e]:[29,e>>24&255,e>>16&255,e>>8&255,255&e]}compileHeader(e){return[e.major,e.minor,e.hdrSize,e.offSize]}compileNameIndex(e){for(var t=new CFFIndex,r=0,i=e.length;r"~"||"["===l||"]"===l||"("===l||")"===l||"{"===l||"}"===l||"<"===l||">"===l||"/"===l||"%"===l)&&(l="_");o[c]=l}""===(o=o.join(""))&&(o="Bad_Font_Name");t.add((0,a.stringToBytes)(o))}return this.compileIndex(t)}compileTopDicts(e,t,r){for(var a=[],i=new CFFIndex,n=0,s=e.length;n>8&255,255&s]);else{n=new Uint8Array(1+2*s);n[0]=0;let t=0;const i=e.charset.length;let o=!1;for(let s=1;s>8&255;n[s+1]=255&c}}return this.compileTypedArray(n)}compileEncoding(e){return this.compileTypedArray(e.raw)}compileFDSelect(e){const t=e.format;let r,a;switch(t){case 0:r=new Uint8Array(1+e.fdSelect.length);r[0]=t;for(a=0;a>8&255,255&i,n];for(a=1;a>8&255,255&a,t);n=t}}const o=(s.length-3)/3;s[1]=o>>8&255;s[2]=255&o;s.push(a>>8&255,255&a);r=new Uint8Array(s)}return this.compileTypedArray(r)}compileTypedArray(e){for(var t=[],r=0,a=e.length;r>8&255,255&a],o=1;for(i=0;i>8&255,255&c):3===n?s.push(c>>16&255,c>>8&255,255&c):s.push(c>>>24&255,c>>16&255,c>>8&255,255&c);r[i]&&(c+=r[i].length)}for(i=0;i=65520&&e<=65535?0:e>=62976&&e<=63743?i()[e]||e:173===e?45:e};t.reverseIfRtl=function reverseIfRtl(e){var t=e.length;if(t<=1||!function isRTLRangeFor(e){var t=n[13];return e>=t.begin&&e=(t=n[11]).begin&&e=0;a--)r+=e[a];return r};t.getUnicodeRangeFor=function getUnicodeRangeFor(e){for(var t=0,r=n.length;t=a.begin&&e=5&&i<=7))return-1;a=e.substring(1)}if(a===a.toUpperCase()&&(r=parseInt(a,16))>=0)return r}return-1}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.FontRendererFactory=void 0;var a=r(2),i=r(31),n=r(34),s=r(33),o=r(12),c=function FontRendererFactoryClosure(){function getLong(e,t){return e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3]}function getUshort(e,t){return e[t]<<8|e[t+1]}function getSubroutineBias(e){const t=e.length;let r=32768;t<1240?r=107:t<33900&&(r=1131);return r}function parseCmap(e,t,r){var i,n,s,o=1===getUshort(e,t+2)?getLong(e,t+8):getLong(e,t+16),c=getUshort(e,t+o);if(4===c){getUshort(e,t+o+2);var l=getUshort(e,t+o+6)>>1;n=t+o+14;i=[];for(s=0;s>1;r=0&&e>16,s=0,o=0;i+=10;if(n<0)do{a=e[i]<<8|e[i+1];var c,l,h=e[i+2]<<8|e[i+3];i+=4;if(1&a){c=(e[i]<<24|e[i+1]<<16)>>16;l=(e[i+2]<<24|e[i+3]<<16)>>16;i+=4}else{c=e[i++];l=e[i++]}if(2&a){s=c;o=l}else{s=0;o=0}var u=1,d=1,f=0,g=0;if(8&a){u=d=(e[i]<<24|e[i+1]<<16)/1073741824;i+=2}else if(64&a){u=(e[i]<<24|e[i+1]<<16)/1073741824;d=(e[i+2]<<24|e[i+3]<<16)/1073741824;i+=4}else if(128&a){u=(e[i]<<24|e[i+1]<<16)/1073741824;f=(e[i+2]<<24|e[i+3]<<16)/1073741824;g=(e[i+4]<<24|e[i+5]<<16)/1073741824;d=(e[i+6]<<24|e[i+7]<<16)/1073741824;i+=8}var m=r.glyphs[h];if(m){t.push({cmd:"save"});t.push({cmd:"transform",args:[u,f,g,d,s,o]});compileGlyf(m,t,r);t.push({cmd:"restore"})}}while(32&a);else{var p,b,y=[];for(p=0;p0;)w.push({flags:a})}for(p=0;p>16;i+=2;break;case 2:s-=e[i++];break;case 18:s+=e[i++]}w[p].x=s}for(p=0;p>16;i+=2;break;case 4:o-=e[i++];break;case 36:o+=e[i++]}w[p].y=o}var S=0;for(i=0;i>1;v=!0;break;case 4:c+=n.pop();moveTo(o,c);v=!0;break;case 5:for(;n.length>0;){o+=n.shift();c+=n.shift();lineTo(o,c)}break;case 6:for(;n.length>0;){lineTo(o+=n.shift(),c);if(0===n.length)break;c+=n.shift();lineTo(o,c)}break;case 7:for(;n.length>0;){c+=n.shift();lineTo(o,c);if(0===n.length)break;lineTo(o+=n.shift(),c)}break;case 8:for(;n.length>0;){u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 10:b=n.pop();y=null;if(r.isCFFCIDFont){const e=r.fdSelect.getFDIndex(i);if(e>=0&&eMath.abs(c-S)?o+=n.shift():c+=n.shift();bezierCurveTo(u,f,d,g,o,c);break;default:throw new a.FormatError("unknown operator: 12 "+w)}break;case 14:if(n.length>=4){var C=n.pop(),x=n.pop();c=n.pop();o=n.pop();t.push({cmd:"save"});t.push({cmd:"translate",args:[o,c]});var A=lookupCmap(r.cmap,String.fromCharCode(r.glyphNameMap[s.StandardEncoding[C]]));compileCharString(r.glyphs[A.glyphId],t,r,A.glyphId);t.push({cmd:"restore"});A=lookupCmap(r.cmap,String.fromCharCode(r.glyphNameMap[s.StandardEncoding[x]]));compileCharString(r.glyphs[A.glyphId],t,r,A.glyphId)}return;case 18:l+=n.length>>1;v=!0;break;case 19:case 20:h+=(l+=n.length>>1)+7>>3;v=!0;break;case 21:c+=n.pop();moveTo(o+=n.pop(),c);v=!0;break;case 22:moveTo(o+=n.pop(),c);v=!0;break;case 23:l+=n.length>>1;v=!0;break;case 24:for(;n.length>2;){u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}o+=n.shift();c+=n.shift();lineTo(o,c);break;case 25:for(;n.length>6;){o+=n.shift();c+=n.shift();lineTo(o,c)}u=o+n.shift();f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o,c);break;case 26:n.length%2&&(o+=n.shift());for(;n.length>0;){u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d;c=g+n.shift();bezierCurveTo(u,f,d,g,o,c)}break;case 27:n.length%2&&(c+=n.shift());for(;n.length>0;)bezierCurveTo(u=o+n.shift(),f=c,d=u+n.shift(),g=f+n.shift(),o=d+n.shift(),c=g);break;case 28:n.push((e[h]<<24|e[h+1]<<16)>>16);h+=2;break;case 29:b=n.pop()+r.gsubrsBias;(y=r.gsubrs[b])&&parse(y);break;case 30:for(;n.length>0;){u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+(1===n.length?n.shift():0);bezierCurveTo(u,f,d,g,o,c);if(0===n.length)break;u=o+n.shift();f=c;d=u+n.shift();g=f+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o=d+(1===n.length?n.shift():0),c)}break;case 31:for(;n.length>0;){u=o+n.shift();f=c;d=u+n.shift();g=f+n.shift();c=g+n.shift();bezierCurveTo(u,f,d,g,o=d+(1===n.length?n.shift():0),c);if(0===n.length)break;u=o;f=c+n.shift();d=u+n.shift();g=f+n.shift();o=d+n.shift();c=g+(1===n.length?n.shift():0);bezierCurveTo(u,f,d,g,o,c)}break;default:if(w<32)throw new a.FormatError("unknown operator: "+w);if(w<247)n.push(w-139);else if(w<251)n.push(256*(w-247)+e[h++]+108);else if(w<255)n.push(256*-(w-251)-e[h++]-108);else{n.push((e[h]<<24|e[h+1]<<16|e[h+2]<<8|e[h+3])/65536);h+=4}}v&&(n.length=0)}}(e)}(e,t,this,r)}}return{create:function FontRendererFactory_create(e,t){for(var r,i,n,s,o,c,l=new Uint8Array(e.data),h=getUshort(l,4),u=0,d=12;ua)return!0;for(var i=a-e,n=i;n>8&255,255&s);else{s=65536*s|0;this.output.push(255,s>>24&255,s>>16&255,s>>8&255,255&s)}}this.output.push.apply(this.output,t);r?this.stack.splice(i,e):this.stack.length=0;return!1}};return Type1CharString}(),c=function Type1ParserClosure(){function isHexDigit(e){return e>=48&&e<=57||e>=65&&e<=70||e>=97&&e<=102}function decrypt(e,t,r){if(r>=e.length)return new Uint8Array(0);var a,i,n=0|t;for(a=0;a>8;n=52845*(c+n)+22719&65535}return o}function isSpecial(e){return 47===e||91===e||93===e||123===e||125===e||40===e||41===e}function Type1Parser(e,t,r){if(t){var a=e.getBytes(),s=!((isHexDigit(a[0])||(0,i.isWhiteSpace)(a[0]))&&isHexDigit(a[1])&&isHexDigit(a[2])&&isHexDigit(a[3])&&isHexDigit(a[4])&&isHexDigit(a[5])&&isHexDigit(a[6])&&isHexDigit(a[7]));e=new n.Stream(s?decrypt(a,55665,4):function decryptAscii(e,t,r){var a,i,n=0|t,s=e.length,o=new Uint8Array(s>>>1);for(a=0,i=0;a>8;n=52845*(h+n)+22719&65535}}}return o.slice(r,i)}(a,55665,4))}this.seacAnalysisEnabled=!!r;this.stream=e;this.nextChar()}Type1Parser.prototype={readNumberArray:function Type1Parser_readNumberArray(){this.getToken();for(var e=[];;){var t=this.getToken();if(null===t||"]"===t||"}"===t)break;e.push(parseFloat(t||0))}return e},readNumber:function Type1Parser_readNumber(){var e=this.getToken();return parseFloat(e||0)},readInt:function Type1Parser_readInt(){var e=this.getToken();return 0|parseInt(e||0,10)},readBoolean:function Type1Parser_readBoolean(){return"true"===this.getToken()?1:0},nextChar:function Type1_nextChar(){return this.currentChar=this.stream.getByte()},getToken:function Type1Parser_getToken(){for(var e=!1,t=this.currentChar;;){if(-1===t)return null;if(e)10!==t&&13!==t||(e=!1);else if(37===t)e=!0;else if(!(0,i.isWhiteSpace)(t))break;t=this.nextChar()}if(isSpecial(t)){this.nextChar();return String.fromCharCode(t)}var r="";do{r+=String.fromCharCode(t);t=this.nextChar()}while(t>=0&&!(0,i.isWhiteSpace)(t)&&!isSpecial(t));return r},readCharStrings:function Type1Parser_readCharStrings(e,t){return-1===t?e:decrypt(e,4330,t)},extractFontProgram:function Type1Parser_extractFontProgram(e){var t=this.stream,r=[],a=[],i=Object.create(null);i.lenIV=4;for(var n,s,c,l,h,u={subrs:[],charstrings:[],properties:{privateData:i}};null!==(n=this.getToken());)if("/"===n)switch(n=this.getToken()){case"CharStrings":this.getToken();this.getToken();this.getToken();this.getToken();for(;null!==(n=this.getToken())&&"end"!==n;)if("/"===n){var d=this.getToken();s=this.readInt();this.getToken();c=s>0?t.getBytes(s):new Uint8Array(0);l=u.properties.privateData.lenIV;h=this.readCharStrings(c,l);this.nextChar();"noaccess"===(n=this.getToken())&&this.getToken();a.push({glyph:d,encoded:h})}break;case"Subrs":this.readInt();this.getToken();for(;"dup"===this.getToken();){const e=this.readInt();s=this.readInt();this.getToken();c=s>0?t.getBytes(s):new Uint8Array(0);l=u.properties.privateData.lenIV;h=this.readCharStrings(c,l);this.nextChar();"noaccess"===(n=this.getToken())&&this.getToken();r[e]=h}break;case"BlueValues":case"OtherBlues":case"FamilyBlues":case"FamilyOtherBlues":var f=this.readNumberArray();f.length>0&&f.length,0;break;case"StemSnapH":case"StemSnapV":u.properties.privateData[n]=this.readNumberArray();break;case"StdHW":case"StdVW":u.properties.privateData[n]=this.readNumberArray()[0];break;case"BlueShift":case"lenIV":case"BlueFuzz":case"BlueScale":case"LanguageGroup":case"ExpansionFactor":u.properties.privateData[n]=this.readNumber();break;case"ForceBold":u.properties.privateData[n]=this.readBoolean()}for(var g=0;g-1&&void 0===e.widths[t]&&t>=e.firstChar&&t<=e.lastChar&&(e.widths[t]=m.width)}}return u},extractFontHeader:function Type1Parser_extractFontHeader(e){for(var t;null!==(t=this.getToken());)if("/"===t)switch(t=this.getToken()){case"FontMatrix":var r=this.readNumberArray();e.fontMatrix=r;break;case"Encoding":var i,n=this.getToken();if(/^\d+$/.test(n)){i=[];var s=0|parseInt(n,10);this.getToken();for(var o=0;o=d||I<=0)(0,a.info)("Bad shading domain.");else{var P,E=new Float32Array(l.numComps),B=new Float32Array(1);for(let e=0;e<=10;e++){B[0]=u+e*I;T(B,0,E,0);P=l.getRgb(E,0);var O=a.Util.makeCssRgb(P[0],P[1],P[2]);F.push([e/10,O])}var M="transparent";if(e.has("Background")){P=l.getRgb(e.get("Background"),0);M=a.Util.makeCssRgb(P[0],P[1],P[2])}if(!m){F.unshift([0,M]);F[1][0]+=g.SMALL_NUMBER}if(!p){F[F.length-1][0]-=g.SMALL_NUMBER;F.push([1,M])}this.colorStops=F}}RadialAxial.prototype={getIR:function RadialAxial_getIR(){var e,t,r,i,n,s=this.coordsArr,l=this.shadingType;if(l===o){t=[s[0],s[1]];r=[s[2],s[3]];i=null;n=null;e="axial"}else if(l===c){t=[s[0],s[1]];r=[s[3],s[4]];i=s[2];n=s[5];e="radial"}else(0,a.unreachable)("getPattern type unknown: "+l);var h=this.matrix;if(h){t=a.Util.applyTransform(t,h);r=a.Util.applyTransform(r,h);if(l===c){var u=a.Util.singularValueDecompose2dScale(h);i*=u[0];n*=u[1]}}return["RadialAxial",e,this.bbox,this.colorStops,t,r,i,n]}};return RadialAxial}();g.Mesh=function MeshClosure(){function MeshStreamReader(e,t){this.stream=e;this.context=t;this.buffer=0;this.bufferLength=0;var r=t.numComps;this.tmpCompsBuf=new Float32Array(r);var a=t.colorSpace.numComps;this.tmpCsCompsBuf=t.colorFn?new Float32Array(a):this.tmpCompsBuf}MeshStreamReader.prototype={get hasData(){if(this.stream.end)return this.stream.pos0)return!0;var e=this.stream.getByte();if(e<0)return!1;this.buffer=e;this.bufferLength=8;return!0},readBits:function MeshStreamReader_readBits(e){var t=this.buffer,r=this.bufferLength;if(32===e){if(0===r)return(this.stream.getByte()<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte())>>>0;t=t<<24|this.stream.getByte()<<16|this.stream.getByte()<<8|this.stream.getByte();var a=this.stream.getByte();this.buffer=a&(1<>r)>>>0}if(8===e&&0===r)return this.stream.getByte();for(;r>r},align:function MeshStreamReader_align(){this.buffer=0;this.bufferLength=0},readFlag:function MeshStreamReader_readFlag(){return this.readBits(this.context.bitsPerFlag)},readCoordinate:function MeshStreamReader_readCoordinate(){var e=this.context.bitsPerCoordinate,t=this.readBits(e),r=this.readBits(e),a=this.context.decode,i=e<32?1/((1<o?o:t;r=r>c?c:r;a=a>c)*h;l&=(1<r?e=r:e0&&(d=i[h-1]);var f=a[1];h>1,c=a.length>>1,u=new l(s),d=Object.create(null),f=8192,g=new Float32Array(c);return function constructPostScriptFromIRResult(e,t,r,a){var i,s,l="",h=g;for(i=0;i(v=n[2*i+1]))&&(s=v);p[i]=s}if(f>0){f--;d[l]=p}r.set(p,a)}else r.set(m,a)}}}}();var c=function PostScriptStackClosure(){function PostScriptStack(e){this.stack=e?Array.prototype.slice.call(e,0):[]}PostScriptStack.prototype={push:function PostScriptStack_push(e){if(this.stack.length>=100)throw new Error("PostScript function stack overflow.");this.stack.push(e)},pop:function PostScriptStack_pop(){if(this.stack.length<=0)throw new Error("PostScript function stack underflow.");return this.stack.pop()},copy:function PostScriptStack_copy(e){if(this.stack.length+e>=100)throw new Error("PostScript function stack overflow.");for(var t=this.stack,r=t.length-e,a=e-1;a>=0;a--,r++)t.push(t[r])},index:function PostScriptStack_index(e){this.push(this.stack[this.stack.length-e-1])},roll:function PostScriptStack_roll(e,t){var r,a,i,n=this.stack,s=n.length-e,o=n.length-1,c=s+(t-Math.floor(t/e)*e);for(r=s,a=o;r0?n.push(r<>a);break;case"ceiling":r=n.pop();n.push(Math.ceil(r));break;case"copy":r=n.pop();n.copy(r);break;case"cos":r=n.pop();n.push(Math.cos(r));break;case"cvi":r=0|n.pop();n.push(r);break;case"cvr":break;case"div":a=n.pop();r=n.pop();n.push(r/a);break;case"dup":n.copy(1);break;case"eq":a=n.pop();r=n.pop();n.push(r===a);break;case"exch":n.roll(2,1);break;case"exp":a=n.pop();r=n.pop();n.push(r**a);break;case"false":n.push(!1);break;case"floor":r=n.pop();n.push(Math.floor(r));break;case"ge":a=n.pop();r=n.pop();n.push(r>=a);break;case"gt":a=n.pop();r=n.pop();n.push(r>a);break;case"idiv":a=n.pop();r=n.pop();n.push(r/a|0);break;case"index":r=n.pop();n.index(r);break;case"le":a=n.pop();r=n.pop();n.push(r<=a);break;case"ln":r=n.pop();n.push(Math.log(r));break;case"log":r=n.pop();n.push(Math.log(r)/Math.LN10);break;case"lt":a=n.pop();r=n.pop();n.push(r=t?new AstLiteral(t):e.max<=t?e:new AstMin(e,t)}function PostScriptCompiler(){}PostScriptCompiler.prototype={compile:function PostScriptCompiler_compile(e,t,r){var a,i,n,s,o,c,l,h,u=[],d=[],f=t.length>>1,g=r.length>>1,m=0;for(let e=0;ee.min){s.unshift("Math.max(",i,", ");s.push(")")}if(n=0&&(t>=65&&t<=90||t>=97&&t<=122);)r.push(String.fromCharCode(t));const a=r.join("");switch(a.toLowerCase()){case"if":return o.IF;case"ifelse":return o.IFELSE;default:return o.getOperator(a)}}getNumber(){let e=this.currentChar;const t=this.strBuf;t.length=0;t[0]=String.fromCharCode(e);for(;(e=this.nextChar())>=0&&(e>=48&&e<=57||45===e||46===e);)t.push(String.fromCharCode(e));const r=parseFloat(t.join(""));if(isNaN(r))throw new a.FormatError("Invalid floating point number: "+r);return r}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.bidi=function bidi(e,t,r){var c=!0,l=e.length;if(0===l||r)return createBidiText(e,c,r);s.length=l;o.length=l;var h,u,d=0;for(h=0;h=0&&"ET"===o[k];--k)o[k]="EN";for(k=h+1;k0&&(C=o[h-1]);var x=v;S+1A&&isOdd(A)&&(I=A)}for(A=T;A>=I;--A){var F=-1;for(h=0,u=m.length;h=0){reverseValues(s,F,h);F=-1}}else F<0&&(F=h);F>=0&&reverseValues(s,F,m.length)}for(h=0,u=s.length;h"!==P||(s[h]="")}return createBidiText(s.join(""),c)};var a=r(2),i=["BN","BN","BN","BN","BN","BN","BN","BN","BN","S","B","S","WS","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","B","B","B","S","WS","ON","ON","ET","ET","ET","ON","ON","ON","ON","ON","ES","CS","ES","CS","CS","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","CS","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","ON","ON","ON","BN","BN","BN","BN","BN","BN","B","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","BN","CS","ON","ET","ET","ET","ET","ON","ON","ON","ON","L","ON","ON","BN","ON","ON","ET","ET","EN","EN","ON","L","ON","ON","ON","EN","L","ON","ON","ON","ON","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","L","ON","L","L","L","L","L","L","L","L"],n=["AN","AN","AN","AN","AN","AN","ON","ON","AL","ET","ET","AL","CS","AL","ON","ON","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","AN","AN","AN","AN","AN","AN","AN","AN","AN","ET","AN","AN","AL","AL","AL","NSM","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","AL","NSM","NSM","NSM","NSM","NSM","NSM","NSM","AN","ON","NSM","NSM","NSM","NSM","NSM","NSM","AL","AL","NSM","NSM","ON","NSM","NSM","NSM","NSM","AL","AL","EN","EN","EN","EN","EN","EN","EN","EN","EN","EN","AL","AL","AL","AL","AL","AL"];function isOdd(e){return 0!=(1&e)}function isEven(e){return 0==(1&e)}function findUnequal(e,t,r){for(var a=t,i=e.length;a>>8;t[r++]=255&i}}}else{if(!(0,a.isArrayBuffer)(e))throw new Error("Wrong data format in MurmurHash3_64_update. Input must be a string or array.");t=e;r=t.byteLength}const i=r>>2,n=r-4*i,s=new Uint32Array(t.buffer,0,i);let o=0,c=0,l=this.h1,h=this.h2;const u=3432918353,d=461845907;for(let e=0;e>>17;o=o*d&4294901760|13715*o&65535;l^=o;l=l<<13|l>>>19;l=5*l+3864292196}else{c=s[e];c=c*u&4294901760|11601*c&65535;c=c<<15|c>>>17;c=c*d&4294901760|13715*c&65535;h^=c;h=h<<13|h>>>19;h=5*h+3864292196}o=0;switch(n){case 3:o^=t[4*i+2]<<16;case 2:o^=t[4*i+1]<<8;case 1:o^=t[4*i];o=o*u&4294901760|11601*o&65535;o=o<<15|o>>>17;o=o*d&4294901760|13715*o&65535;1&i?l^=o:h^=o}this.h1=l;this.h2=h}hexdigest(){let e=this.h1,t=this.h2;e^=t>>>1;e=3981806797*e&4294901760|36045*e&65535;t=4283543511*t&4294901760|(2950163797*(t<<16|e>>>16)&4294901760)>>>16;e^=t>>>1;e=444984403*e&4294901760|60499*e&65535;t=3301882366*t&4294901760|(3120437893*(t<<16|e>>>16)&4294901760)>>>16;e^=t>>>1;const r=(e>>>0).toString(16),a=(t>>>0).toString(16);return r.padStart(8,"0")+a.padStart(8,"0")}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFImage=void 0;var a=r(2),i=r(5),n=r(23),s=r(12),o=r(18),c=r(21);function decodeAndClamp(e,t,r,a){(e=t+e*r)<0?e=0:e>a&&(e=a);return e}function resizeImageMask(e,t,r,a,i,n){var s=i*n;let o;o=t<=8?new Uint8Array(s):t<=16?new Uint16Array(s):new Uint32Array(s);var c,l,h,u,d=r/i,f=a/n,g=0,m=new Uint16Array(i),p=r;for(c=0;c0&&Number.isInteger(r.height)&&r.height>0&&(r.width!==p||r.height!==b)){(0,a.warn)("PDFImage - using the Width/Height of the image data, rather than the image dictionary.");p=r.width;b=r.height}if(p<1||b<1)throw new a.FormatError(`Invalid image width: ${p} or height: ${b}`);this.width=p;this.height=b;this.interpolate=f.get("Interpolate","I")||!1;this.imageMask=f.get("ImageMask","IM")||!1;this.matte=f.get("Matte")||!1;var y=r.bitsPerComponent;if(!y&&!(y=f.get("BitsPerComponent","BPC"))){if(!this.imageMask)throw new a.FormatError("Bits per component missing in image: "+this.imageMask);y=1}this.bpc=y;if(!this.imageMask){let o=f.getRaw("ColorSpace")||f.getRaw("CS");if(!o){(0,a.info)("JPX images (which do not require color spaces)");switch(r.numComps){case 1:o=i.Name.get("DeviceGray");break;case 3:o=i.Name.get("DeviceRGB");break;case 4:o=i.Name.get("DeviceCMYK");break;default:throw new Error(`JPX images with ${r.numComps} color components not supported.`)}}this.colorSpace=n.ColorSpace.parse({cs:o,xref:e,resources:s?t:null,pdfFunctionFactory:u,localColorSpaceCache:d});this.numComps=this.colorSpace.numComps}this.decode=f.getArray("Decode","D");this.needsDecode=!1;if(this.decode&&(this.colorSpace&&!this.colorSpace.isDefaultDecode(this.decode,y)||h&&!n.ColorSpace.isDefaultDecode(this.decode,1))){this.needsDecode=!0;var v=(1<>3)*r,c=e.byteLength;if(!a||i&&!(o===c))if(i){(n=new Uint8ClampedArray(o)).set(e);for(s=c;s>7&1;o[d+1]=l>>6&1;o[d+2]=l>>5&1;o[d+3]=l>>4&1;o[d+4]=l>>3&1;o[d+5]=l>>2&1;o[d+6]=l>>1&1;o[d+7]=1&l;d+=8}if(d>=1}}}else{var b=0;l=0;for(d=0,c=n;d>y;r<0?r=0:r>u&&(r=u);o[d]=r;l&=(1<f[y+1]){m=255;break}}s[l]=m}}if(s)for(l=0,u=3,h=t*i;l>3;if(!e){var f;"DeviceGray"===this.colorSpace.name&&1===u?f=a.ImageKind.GRAYSCALE_1BPP:"DeviceRGB"!==this.colorSpace.name||8!==u||this.needsDecode||(f=a.ImageKind.RGB_24BPP);if(f&&!this.smask&&!this.mask&&r===l&&i===h){n.kind=f;t=this.getImageBytes(h*d);if(this.image instanceof s.DecodeStream)n.data=t;else{var g=new Uint8ClampedArray(t.length);g.set(t);n.data=g}if(this.needsDecode){(0,a.assert)(f===a.ImageKind.GRAYSCALE_1BPP,"PDFImage.createImageData: The image must be grayscale.");for(var m=n.data,p=0,b=m.length;p>3,l=this.getImageBytes(s*c),h=this.getComponents(l);if(1!==o){this.needsDecode&&this.decodeBuffer(h);i=n*s;var u=255/((1<{const t=e.data;if(t.targetName!==this.sourceName)return;if(t.stream){this._processStreamMessage(t);return}if(t.callback){const e=t.callbackId,r=this.callbackCapabilities[e];if(!r)throw new Error("Cannot resolve callback "+e);delete this.callbackCapabilities[e];if(t.callback===i)r.resolve(t.data);else{if(t.callback!==n)throw new Error("Unexpected callback case");r.reject(wrapReason(t.reason))}return}const a=this.actionHandler[t.action];if(!a)throw new Error("Unknown action from worker: "+t.action);if(t.callbackId){const e=this.sourceName,s=t.sourceName;new Promise((function(e){e(a(t.data))})).then((function(a){r.postMessage({sourceName:e,targetName:s,callback:i,callbackId:t.callbackId,data:a})}),(function(a){r.postMessage({sourceName:e,targetName:s,callback:n,callbackId:t.callbackId,reason:wrapReason(a)})}))}else t.streamId?this._createStreamSink(t):a(t.data)};r.addEventListener("message",this._onComObjOnMessage)}on(e,t){const r=this.actionHandler;if(r[e])throw new Error(`There is already an actionName called "${e}"`);r[e]=t}send(e,t,r){this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,data:t},r)}sendWithPromise(e,t,r){const i=this.callbackId++,n=(0,a.createPromiseCapability)();this.callbackCapabilities[i]=n;try{this._postMessage({sourceName:this.sourceName,targetName:this.targetName,action:e,callbackId:i,data:t},r)}catch(e){n.reject(e)}return n.promise}sendWithStream(e,t,r,i){const n=this.streamId++,o=this.sourceName,c=this.targetName,l=this.comObj;return new ReadableStream({start:r=>{const s=(0,a.createPromiseCapability)();this.streamControllers[n]={controller:r,startCall:s,pullCall:null,cancelCall:null,isClosed:!1};this._postMessage({sourceName:o,targetName:c,action:e,streamId:n,data:t,desiredSize:r.desiredSize},i);return s.promise},pull:e=>{const t=(0,a.createPromiseCapability)();this.streamControllers[n].pullCall=t;l.postMessage({sourceName:o,targetName:c,stream:u,streamId:n,desiredSize:e.desiredSize});return t.promise},cancel:e=>{(0,a.assert)(e instanceof Error,"cancel must have a valid reason");const t=(0,a.createPromiseCapability)();this.streamControllers[n].cancelCall=t;this.streamControllers[n].isClosed=!0;l.postMessage({sourceName:o,targetName:c,stream:s,streamId:n,reason:wrapReason(e)});return t.promise}},r)}_createStreamSink(e){const t=this,r=this.actionHandler[e.action],i=e.streamId,n=this.sourceName,s=e.sourceName,o=this.comObj,u={enqueue(e,r=1,o){if(this.isCancelled)return;const c=this.desiredSize;this.desiredSize-=r;if(c>0&&this.desiredSize<=0){this.sinkCapability=(0,a.createPromiseCapability)();this.ready=this.sinkCapability.promise}t._postMessage({sourceName:n,targetName:s,stream:l,streamId:i,chunk:e},o)},close(){if(!this.isCancelled){this.isCancelled=!0;o.postMessage({sourceName:n,targetName:s,stream:c,streamId:i});delete t.streamSinks[i]}},error(e){(0,a.assert)(e instanceof Error,"error must have a valid reason");if(!this.isCancelled){this.isCancelled=!0;o.postMessage({sourceName:n,targetName:s,stream:h,streamId:i,reason:wrapReason(e)})}},sinkCapability:(0,a.createPromiseCapability)(),onPull:null,onCancel:null,isCancelled:!1,desiredSize:e.desiredSize,ready:null};u.sinkCapability.resolve();u.ready=u.sinkCapability.promise;this.streamSinks[i]=u;new Promise((function(t){t(r(e.data,u))})).then((function(){o.postMessage({sourceName:n,targetName:s,stream:f,streamId:i,success:!0})}),(function(e){o.postMessage({sourceName:n,targetName:s,stream:f,streamId:i,reason:wrapReason(e)})}))}_processStreamMessage(e){const t=e.streamId,r=this.sourceName,i=e.sourceName,n=this.comObj;switch(e.stream){case f:e.success?this.streamControllers[t].startCall.resolve():this.streamControllers[t].startCall.reject(wrapReason(e.reason));break;case d:e.success?this.streamControllers[t].pullCall.resolve():this.streamControllers[t].pullCall.reject(wrapReason(e.reason));break;case u:if(!this.streamSinks[t]){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,success:!0});break}this.streamSinks[t].desiredSize<=0&&e.desiredSize>0&&this.streamSinks[t].sinkCapability.resolve();this.streamSinks[t].desiredSize=e.desiredSize;const{onPull:g}=this.streamSinks[e.streamId];new Promise((function(e){e(g&&g())})).then((function(){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:i,stream:d,streamId:t,reason:wrapReason(e)})}));break;case l:(0,a.assert)(this.streamControllers[t],"enqueue should have stream controller");if(this.streamControllers[t].isClosed)break;this.streamControllers[t].controller.enqueue(e.chunk);break;case c:(0,a.assert)(this.streamControllers[t],"close should have stream controller");if(this.streamControllers[t].isClosed)break;this.streamControllers[t].isClosed=!0;this.streamControllers[t].controller.close();this._deleteStreamController(t);break;case h:(0,a.assert)(this.streamControllers[t],"error should have stream controller");this.streamControllers[t].controller.error(wrapReason(e.reason));this._deleteStreamController(t);break;case o:e.success?this.streamControllers[t].cancelCall.resolve():this.streamControllers[t].cancelCall.reject(wrapReason(e.reason));this._deleteStreamController(t);break;case s:if(!this.streamSinks[t])break;const{onCancel:m}=this.streamSinks[e.streamId];new Promise((function(t){t(m&&m(wrapReason(e.reason)))})).then((function(){n.postMessage({sourceName:r,targetName:i,stream:o,streamId:t,success:!0})}),(function(e){n.postMessage({sourceName:r,targetName:i,stream:o,streamId:t,reason:wrapReason(e)})}));this.streamSinks[t].sinkCapability.reject(wrapReason(e.reason));this.streamSinks[t].isCancelled=!0;delete this.streamSinks[t];break;default:throw new Error("Unexpected stream case")}}async _deleteStreamController(e){await Promise.allSettled([this.streamControllers[e].startCall,this.streamControllers[e].pullCall,this.streamControllers[e].cancelCall].map((function(e){return e&&e.promise})));delete this.streamControllers[e]}_postMessage(e,t){t&&this.postMessageTransfers?this.comObj.postMessage(e,t):this.comObj.postMessage(e)}destroy(){this.comObj.removeEventListener("message",this._onComObjOnMessage)}}},function(e,t,r){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.PDFWorkerStream=void 0;var a=r(2);t.PDFWorkerStream=class PDFWorkerStream{constructor(e){this._msgHandler=e;this._contentLength=null;this._fullRequestReader=null;this._rangeRequestReaders=[]}getFullReader(){(0,a.assert)(!this._fullRequestReader,"PDFWorkerStream.getFullReader can only be called once.");this._fullRequestReader=new PDFWorkerStreamReader(this._msgHandler);return this._fullRequestReader}getRangeReader(e,t){const r=new PDFWorkerStreamRangeReader(e,t,this._msgHandler);this._rangeRequestReaders.push(r);return r}cancelAllRequests(e){this._fullRequestReader&&this._fullRequestReader.cancel(e);this._rangeRequestReaders.slice(0).forEach((function(t){t.cancel(e)}))}};class PDFWorkerStreamReader{constructor(e){this._msgHandler=e;this.onProgress=null;this._contentLength=null;this._isRangeSupported=!1;this._isStreamingSupported=!1;const t=this._msgHandler.sendWithStream("GetReader");this._reader=t.getReader();this._headersReady=this._msgHandler.sendWithPromise("ReaderHeadersReady").then(e=>{this._isStreamingSupported=e.isStreamingSupported;this._isRangeSupported=e.isRangeSupported;this._contentLength=e.contentLength})}get headersReady(){return this._headersReady}get contentLength(){return this._contentLength}get isStreamingSupported(){return this._isStreamingSupported}get isRangeSupported(){return this._isRangeSupported}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}class PDFWorkerStreamRangeReader{constructor(e,t,r){this._msgHandler=r;this.onProgress=null;const a=this._msgHandler.sendWithStream("GetRangeReader",{begin:e,end:t});this._reader=a.getReader()}get isStreamingSupported(){return!1}async read(){const{value:e,done:t}=await this._reader.read();return t?{value:void 0,done:!0}:{value:e.buffer,done:!1}}cancel(e){this._reader.cancel(e)}}}])})); \ No newline at end of file diff --git a/client-vanilla/public/exampleWorkflows.js b/client-vanilla/public/exampleWorkflows.js deleted file mode 100644 index f7dc33e06..000000000 --- a/client-vanilla/public/exampleWorkflows.js +++ /dev/null @@ -1,165 +0,0 @@ -// JSON Representation of this Node Tree: -// https://discord.com/channels/1068636748814483718/1099390571493195898/1118192754103693483 -// https://cdn.discordapp.com/attachments/1099390571493195898/1118192753759764520/image.png?ex=6537dba7&is=652566a7&hm=dc46820ef7c34bc37424794966c5f66f93ba0e15a740742c364d47d31ea119a9& -export const discordWorkflow = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "extract", - values: { "index": "1" }, - operations: [ - { - type: "removeObjects", - values: { "objectNames": "photo, josh" }, - operations: [ - { - type: "wait", - values: { "id": 1 } - } - ] - } - ] - }, - { - type: "extract", - values: { "index": "2-5" }, - operations: [ - { - type: "fillField", - values: { "objectName": "name", "inputValue": "Josh" }, - operations: [ - { - type: "wait", - values: { "id": 1 } - } - ] - } - ] - }, - { - type: "done", // This gets called when the other merge-ops with the same id finish. - values: { "id": 1 }, - operations: [ - { - type: "merge", - values: {}, - operations: [] - } - ] - }, - { - type: "extractImages", - values: {}, - operations: [] - }, - { - type: "merge", - values: {}, - operations: [ - { - type: "transform", - values: { "scale": "2x", "rotation": "90deg" }, - operations: [] - } - ] - } - ] -} - -// This will merge all input files into one giant document -export const mergeOnly = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "merge", - values: {}, - operations: [] - } - ] -} - -// Extract Pages and store them in a new document -export const extractOnly = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "extract", - values: { "pageIndexes": [0, 2] }, - operations: [] - } - ] -} - -// Split a document up into multiple documents -export const splitOnly = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "split", - values: { "splitAfterPageArray": [2, 10] }, - operations: [] - } - ] -} - -export const rotateOnly = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "rotate", - values: { "rotation": -90 }, - operations: [] - } - ] -} - -export const imposeOnly = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "impose", - values: { "nup": 2, "format": "A4L" }, - operations: [] - } - ] -} - -export const removeBlankPagesOnly = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "removeBlankPages", - values: { "whiteThreashold": 10 }, - operations: [] - } - ] -} - -export const splitOnQR = { - outputOptions: { - zip: false - }, - operations: [ - { - type: "splitOn", - values: { - type: "QR_CODE" - }, - operations: [] - } - ] - } \ No newline at end of file diff --git a/client-vanilla/public/functions.js b/client-vanilla/public/functions.js deleted file mode 100644 index eb80f9c31..000000000 --- a/client-vanilla/public/functions.js +++ /dev/null @@ -1,65 +0,0 @@ -// PDFLib gets imported via index.html script-tag -// PDFJS as pdfjsLib via index.html script-tag -// jsQR via index.html script-tag - -import * as pdfcpuWraopper from "./wasm/pdfcpu/pdfcpu-wrapper-browser.js"; - -const OpenCV = { cv: cv } // OPENCV gets importet as cv via index.html script-tag - -import { extractPages as dependantExtractPages } from "./functions/extractPages.js"; -import { impose as dependantImpose } from './functions/impose.js'; -import { mergePDFs as dependantMergePDFs } from './functions/mergePDFs.js'; -import { rotatePages as dependantRotatePages } from './functions/rotatePages.js'; -import { scaleContent as dependantScaleContent} from './functions/scaleContent.js'; -import { scalePage as dependantScalePage } from './functions/scalePage.js'; -import { splitPDF as dependantSplitPDF } from './functions/splitPDF.js'; -import { editMetadata as dependantEditMetadata} from "./functions/editMetadata.js"; -import { sortPagesWithPreset as dependantSortPagesWithPreset} from "./functions/organizePages.js"; -import { removeBlankPages as dependantRemoveBlankPages} from "./functions/removeBlankPages.js"; -import { splitOn as dependantSplitOn } from "./functions/splitOn.js"; - -// TODO: Dynamic loading & undloading of libraries. - -export async function extractPages(snapshot, pageIndexes) { - return dependantExtractPages(snapshot, pageIndexes, PDFLib); -} - -export async function impose(snapshot, nup, format) { - return dependantImpose(snapshot, nup, format, pdfcpuWraopper); -} - -export async function mergePDFs(snapshots) { - return dependantMergePDFs(snapshots, PDFLib); -} - -export async function rotatePages(snapshot, rotation) { - return dependantRotatePages(snapshot, rotation, PDFLib); -} - -export async function scaleContent(snapshot, scaleFactor) { - return dependantScaleContent(snapshot, scaleFactor, PDFLib); -} - -export async function scalePage(snapshot, pageSize) { - return dependantScalePage(snapshot, pageSize, PDFLib); -} - -export async function splitPDF(snapshot, splitAfterPageArray) { - return dependantSplitPDF(snapshot, splitAfterPageArray, PDFLib); -} - -export async function editMetadata(snapshot, metadata) { - return dependantEditMetadata(snapshot, metadata, PDFLib); -} - -export async function sortPagesWithPreset(snapshot, operation) { - return dependantSortPagesWithPreset(snapshot, operation, PDFLib); -} - -export async function removeBlankPages(snapshot, whiteThreashold) { - return dependantRemoveBlankPages(snapshot, whiteThreashold, pdfjsLib, OpenCV, PDFLib); -} - -export async function splitOn(snapshot, type, whiteThreashold) { - return dependantSplitOn(snapshot, type, whiteThreashold, pdfjsLib, OpenCV, PDFLib, jsQR); -} \ No newline at end of file diff --git a/client-vanilla/public/index.css b/client-vanilla/public/index.css deleted file mode 100644 index e69de29bb..000000000 diff --git a/client-vanilla/public/index.html b/client-vanilla/public/index.html deleted file mode 100644 index 8233891bc..000000000 --- a/client-vanilla/public/index.html +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - Document - - - - - - - - - - - - - -
- -
- -
- - -
- -
- - - \ No newline at end of file diff --git a/client-vanilla/public/index.js b/client-vanilla/public/index.js deleted file mode 100644 index 0d76f6a3e..000000000 --- a/client-vanilla/public/index.js +++ /dev/null @@ -1,65 +0,0 @@ -import { scaleContent } from "./functions/scaleContent.js"; -import { scalePage, PageSize } from "./functions/scalePage.js"; -import * as exampleWorkflows from "./exampleWorkflows.js"; -import { traverseOperations } from "./traverseOperations.js"; -import * as Functions from "./functions.js"; - -(async () => { - const workflowField = document.getElementById("workflow"); - - const dropdown = document.getElementById("pdfOptions"); - // Clear existing options (if any) - dropdown.innerHTML = ''; - - // Iterate over the keys of the object and create an option for each key - for (const key in exampleWorkflows) { - const option = document.createElement('option'); - option.value = key; - option.text = key; - dropdown.appendChild(option); - } - - const loadButton = document.getElementById("loadButton"); - loadButton.addEventListener("click", (e) => { - workflowField.value = JSON.stringify(exampleWorkflows[dropdown.value], null, 2); - }); - loadButton.click(); - - const pdfFileInput = document.getElementById('pdfFile'); - const doneButton = document.getElementById("doneButton"); - - doneButton.addEventListener('click', async (e) => { - console.log("Starting..."); - - const files = Array.from(pdfFileInput.files); - const inputs = await Promise.all(files.map(async file => { - return { - originalFileName: file.name.replace(/\.[^/.]+$/, ""), - fileName: file.name.replace(/\.[^/.]+$/, ""), - buffer: new Uint8Array(await file.arrayBuffer()) - } - })); - console.log(inputs); - - const workflow = JSON.parse(workflowField.value); - console.log(workflow); - const traverse = traverseOperations(workflow.operations, inputs, Functions); - - let pdfResults; - let iteration; - while (true) { - iteration = await traverse.next(); - if (iteration.done) { - pdfResults = iteration.value; - console.log(`data: processing done\n\n`); - break; - } - console.log(`data: ${iteration.value}\n\n`); - } - - // TODO: Zip if wanted - pdfResults.forEach(result => { - download(result.buffer, result.fileName, "application/pdf"); - }); - }); -})(); \ No newline at end of file diff --git a/server-node/src/jobs.ts b/server-node/src/jobs.ts index b1f0c5463..58823cf3a 100644 --- a/server-node/src/jobs.ts +++ b/server-node/src/jobs.ts @@ -37,6 +37,7 @@ function setupJobs(jobsDir: string) { else { console.log("jobs.toml is not present, if you want to use jobs please configure it"); } + // TODO: Cleanup the folder? }); } diff --git a/server-node/vite.config.ts b/server-node/vite.config.ts index dc50d0664..8f9316cf2 100644 --- a/server-node/vite.config.ts +++ b/server-node/vite.config.ts @@ -5,32 +5,32 @@ import compileTime from "vite-plugin-compile-time" import { VitePluginNode } from 'vite-plugin-node'; export default defineConfig({ - // ...vite configures - server: { - // vite server configs, for details see [vite doc](https://vitejs.dev/config/#server-host) - port: 8000 - }, - plugins: [ - ...VitePluginNode({ - // Nodejs native Request adapter - // currently this plugin support 'express', 'nest', 'koa' and 'fastify' out of box, - // you can also pass a function if you are using other frameworks, see Custom Adapter section - adapter: 'express', + // ...vite configures + server: { + // vite server configs, for details see [vite doc](https://vitejs.dev/config/#server-host) + port: 8000 + }, + plugins: [ + ...VitePluginNode({ + // Nodejs native Request adapter + // currently this plugin support 'express', 'nest', 'koa' and 'fastify' out of box, + // you can also pass a function if you are using other frameworks, see Custom Adapter section + adapter: 'express', - // tell the plugin where is your project entry - appPath: './src/index.ts', + // tell the plugin where is your project entry + appPath: './src/index.ts', - // Optional, default: false - // if you want to init your app on boot, set this to true - initAppOnBoot: true, - }), - topLevelAwait({ - // The export name of top-level await promise for each chunk module - promiseExportName: "__tla", - // The function to generate import names of top-level await promise in each chunk module - promiseImportName: i => `__tla_${i}` - }), - compileTime(), - dynamicImport(), + // Optional, default: false + // if you want to init your app on boot, set this to true + initAppOnBoot: true, + }), + topLevelAwait({ + // The export name of top-level await promise for each chunk module + promiseExportName: "__tla", + // The function to generate import names of top-level await promise in each chunk module + promiseImportName: i => `__tla_${i}` + }), + compileTime(), + dynamicImport(), ], }); \ No newline at end of file