From 970e3e086ed8cb4f416307edde821f6d104fe0ce Mon Sep 17 00:00:00 2001 From: fds2610-bot Date: Thu, 1 Oct 2026 14:30:00 +0200 Subject: [PATCH] =?UTF-8?q?Fix=20n.n.:=20=C3=9Cberweisung=20erfassen=20?= =?UTF-8?q?=E2=80=93=20QR-Code=20(EPC-QR,=20BezahlCode)=20aus=20Bild=20ein?= =?UTF-8?q?lesen?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 5.5 --- Changes.md | 7 + public/static/app.css | 31 + public/static/jsQR.LICENSE | 202 + public/static/jsQR.js | 10102 +++++++++++++++++++++++ public/static/qrimport.js | 245 + src/Views/zahlungsverkehr/formular.php | 27 +- tests/e2e/fixtures/qr-bezahlcode.png | Bin 0 -> 117065 bytes tests/e2e/fixtures/qr-epc.png | Bin 0 -> 110549 bytes tests/e2e/specs/qrimport.spec.js | 86 + 9 files changed, 10699 insertions(+), 1 deletion(-) create mode 100644 public/static/jsQR.LICENSE create mode 100644 public/static/jsQR.js create mode 100644 public/static/qrimport.js create mode 100644 tests/e2e/fixtures/qr-bezahlcode.png create mode 100644 tests/e2e/fixtures/qr-epc.png create mode 100644 tests/e2e/specs/qrimport.spec.js diff --git a/Changes.md b/Changes.md index 2e1f0d9..082cb8a 100644 --- a/Changes.md +++ b/Changes.md @@ -1,5 +1,12 @@ # Änderungen +## Überweisung erfassen: QR-Code einlesen (01.10.2026) + +- Neben „Empfänger“ steht ein Bereich, auf den sich ein Bild (z. B. Rechnungs-Screenshot) ziehen lässt. Ein Klick öffnet einen Dialog zum Einfügen aus der Zwischenablage (Strg+V) oder zur Dateiauswahl. +- Ein enthaltener QR-Code im Format EPC-QR (GiroCode) oder BezahlCode (`singlepaymentsepa`) füllt Name, IBAN, BIC, Betrag, Verwendungszweck und ggf. Ausführungstermin. Das Bild wird nur im Browser gelesen. +- Decoder: jsQR 1.4.0 (Apache-2.0) als `public/static/jsQR.js`; Fork: codeberg.org/fds2610-bot/jsQR. +- Test: `tests/e2e/specs/qrimport.spec.js` (Beispielbilder in `tests/e2e/fixtures/`). + ## Position der „+ Neu“-Knöpfe und Erklärtexte als Tooltip (01.10.2026) - Buchungsvorlagen, Erinnerungen, Sparziele, Verträge und Regeln: Die Erklärzeile entfällt, der Text steht als Tooltip am aktiven Reiter. Kredite erhalten einen Tooltip am Reiter „Kredite“. diff --git a/public/static/app.css b/public/static/app.css index e39a917..1c6168b 100644 --- a/public/static/app.css +++ b/public/static/app.css @@ -2474,3 +2474,34 @@ table.liste.reihen .anzeige:hover, table.liste.reihen .anzeige:focus-visible { background: var(--flaeche-gedaempft); outline: none; } table.liste.reihen .anzeige.leer { color: var(--text-gedaempft); font-style: italic; } table.liste.reihen [hidden] { display: none; } + +/* QR-Import im Dialog „Überweisung erfassen“: Der Bereich steht neben der + Überschrift „Empfänger“ und nimmt eine Bilddatei per Ziehen entgegen. */ +.empfaengerkopf { + display: flex; + align-items: center; + gap: 1rem; + flex-wrap: wrap; +} + +.empfaengerkopf h3 { margin: 0; } + +.qrbereich { + padding: .4rem .8rem; + border: 1px dashed var(--rand-kraeftig); + border-radius: var(--radius); + background: var(--flaeche-gedaempft); + color: var(--text-gedaempft); + font-size: .9rem; + cursor: pointer; +} + +.qrbereich:hover, +.qrbereich:focus-visible, +.qrbereich.ueberfahren { + border-color: var(--akzent); + background: color-mix(in srgb, var(--akzent) 8%, transparent); + color: var(--text); +} + +.qrmeldung { margin: .5rem 0 0; } diff --git a/public/static/jsQR.LICENSE b/public/static/jsQR.LICENSE new file mode 100644 index 0000000..8f71f43 --- /dev/null +++ b/public/static/jsQR.LICENSE @@ -0,0 +1,202 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + 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. + diff --git a/public/static/jsQR.js b/public/static/jsQR.js new file mode 100644 index 0000000..429896a --- /dev/null +++ b/public/static/jsQR.js @@ -0,0 +1,10102 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(); + else if(typeof define === 'function' && define.amd) + define([], factory); + else if(typeof exports === 'object') + exports["jsQR"] = factory(); + else + root["jsQR"] = factory(); +})(typeof self !== 'undefined' ? self : this, function() { +return /******/ (function(modules) { // webpackBootstrap +/******/ // The module cache +/******/ var installedModules = {}; +/******/ +/******/ // The require function +/******/ function __webpack_require__(moduleId) { +/******/ +/******/ // Check if module is in cache +/******/ if(installedModules[moduleId]) { +/******/ return installedModules[moduleId].exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = installedModules[moduleId] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = true; +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/******/ +/******/ // expose the modules object (__webpack_modules__) +/******/ __webpack_require__.m = modules; +/******/ +/******/ // expose the module cache +/******/ __webpack_require__.c = installedModules; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { +/******/ configurable: false, +/******/ enumerable: true, +/******/ get: getter +/******/ }); +/******/ } +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 3); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); +var BitMatrix = /** @class */ (function () { + function BitMatrix(data, width) { + this.width = width; + this.height = data.length / width; + this.data = data; + } + BitMatrix.createEmpty = function (width, height) { + return new BitMatrix(new Uint8ClampedArray(width * height), width); + }; + BitMatrix.prototype.get = function (x, y) { + if (x < 0 || x >= 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 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 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/public/static/qrimport.js b/public/static/qrimport.js new file mode 100644 index 0000000..7e0a2e0 --- /dev/null +++ b/public/static/qrimport.js @@ -0,0 +1,245 @@ +/* QR-Import im Dialog „Überweisung erfassen“. + * + * Eine Rechnung oder ein Screenshot wird auf den Bereich neben „Empfänger“ + * gezogen (oder per Klick im Dialog aus der Zwischenablage eingefügt). Das + * Bild wird im Browser nach einem QR-Code durchsucht (jsQR, siehe jsQR.js); + * enthält er einen EPC-QR (GiroCode) oder einen BezahlCode, füllt das Skript + * die Felder der Überweisung. Das Bild verlässt den Browser nicht. + */ + +(function () { + 'use strict'; + + // ---- Formate ----------------------------------------------------------- + + function betragNormalisieren(text) { + // „260,61“, „1.234,56“, „260.61“ → „260,61“ + let zahl = text.replace(/[^\d.,]/g, ''); + if (zahl.indexOf(',') >= 0) { + zahl = zahl.replace(/\./g, ''); + } else if (/\.\d{3}$/.test(zahl) && zahl.split('.').length > 2) { + zahl = zahl.replace(/\./g, ''); + } else { + zahl = zahl.replace('.', ','); + } + return zahl; + } + + function datumNormalisieren(text) { + // „02.10.2026“ oder „2026-10-02“ → „2026-10-02“ (Wert für ) + let treffer = /^(\d{2})\.(\d{2})\.(\d{4})$/.exec(text); + if (treffer) { + return treffer[3] + '-' + treffer[2] + '-' + treffer[1]; + } + return /^\d{4}-\d{2}-\d{2}$/.test(text) ? text : ''; + } + + // EPC-QR: zeilenweise, Kennung „BCD“ (European Payments Council, EPC069-12). + function epcLesen(text) { + const zeilen = text.split(/\r?\n/); + if (zeilen[0].trim() !== 'BCD' || zeilen.length < 7) { + return null; + } + const betrag = /^[A-Z]{3}(\d+(?:\.\d{1,2})?)$/.exec((zeilen[7] || '').trim()); + return { + empfaenger: (zeilen[5] || '').trim(), + iban: (zeilen[6] || '').replace(/\s+/g, ''), + bic: (zeilen[4] || '').trim(), + betrag: betrag ? betragNormalisieren(betrag[1]) : '', + // Zeile 10 = Referenz, Zeile 11 = Text; je eines von beiden ist gefüllt. + verwendungszweck: ((zeilen[10] || '') || (zeilen[9] || '')).trim(), + ausfuehrung_am: '' + }; + } + + // BezahlCode: URI „bank://singlepaymentsepa?name=…&iban=…“. Die ältere + // Variante „singlepayment“ trägt Kontonummer und BLZ statt IBAN und lässt + // sich in eine SEPA-Überweisung nicht verlässlich umrechnen. + function bezahlcodeLesen(text) { + const treffer = /^bank:\/\/([a-z]+)\?(.*)$/i.exec(text.trim()); + if (!treffer || treffer[1].toLowerCase() !== 'singlepaymentsepa') { + return null; + } + const parameter = new URLSearchParams(treffer[2]); + const wert = function (name) { + return (parameter.get(name) || '').trim(); + }; + return { + empfaenger: wert('name'), + iban: wert('iban').replace(/\s+/g, ''), + bic: wert('bic'), + betrag: wert('amount') ? betragNormalisieren(wert('amount')) : '', + verwendungszweck: [wert('reason'), wert('reason1')].filter(Boolean).join(' '), + ausfuehrung_am: datumNormalisieren(wert('executiondate')) + }; + } + + function zahlungLesen(text) { + return epcLesen(text) || bezahlcodeLesen(text); + } + + // ---- Bild → Text ------------------------------------------------------- + + function qrAusBild(bild) { + // Mehrere Maßstäbe: Ein kleiner Code in einem großen Screenshot wird + // oft erst beim Vergrößern erkannt, ein sehr feiner Code beim Verkleinern. + const faktoren = [1, 0.5, 2, 0.35]; + for (let i = 0; i < faktoren.length; i += 1) { + const breite = Math.round(bild.width * faktoren[i]); + const hoehe = Math.round(bild.height * faktoren[i]); + if (breite < 40 || hoehe < 40 || breite * hoehe > 36e6) { + continue; + } + const leinwand = document.createElement('canvas'); + leinwand.width = breite; + leinwand.height = hoehe; + const kontext = leinwand.getContext('2d', { willReadFrequently: true }); + kontext.imageSmoothingEnabled = faktoren[i] < 1; + kontext.drawImage(bild, 0, 0, breite, hoehe); + const daten = kontext.getImageData(0, 0, breite, hoehe); + const code = window.jsQR(daten.data, breite, hoehe); + if (code && code.data) { + return code.data; + } + } + return null; + } + + async function dateiAuslesen(datei) { + if (!datei.type.startsWith('image/')) { + throw new Error('Nur Bilder werden gelesen (PNG, JPG, WebP …) – bei einem PDF bitte einen Screenshot der Seite einfügen.'); + } + let bild; + try { + bild = await createImageBitmap(datei); + } catch (fehler) { + throw new Error('Das Bild lässt sich nicht öffnen.'); + } + const text = qrAusBild(bild); + bild.close(); + if (text === null) { + throw new Error('Im Bild wurde kein QR-Code gefunden.'); + } + const zahlung = zahlungLesen(text); + if (zahlung === null) { + throw new Error('Der QR-Code ist weder ein EPC-QR (GiroCode) noch ein BezahlCode für eine SEPA-Überweisung.'); + } + return zahlung; + } + + // ---- Oberfläche -------------------------------------------------------- + + const bereich = document.querySelector('[data-qrbereich]'); + const dialog = document.getElementById('qrdialog'); + if (!bereich || !dialog) { + return; + } + const meldung = document.querySelector('[data-qrmeldung]'); + const dateiwahl = dialog.querySelector('[data-qrdatei]'); + + function melden(text, fehler) { + meldung.textContent = text; + meldung.hidden = text === ''; + meldung.className = 'qrmeldung meldung ' + (fehler ? 'meldung-fehler' : 'meldung-erfolg'); + } + + function uebernehmen(zahlung) { + const gesetzt = []; + Object.keys(zahlung).forEach(function (name) { + const feld = document.getElementById(name); + if (feld && zahlung[name] !== '') { + feld.value = zahlung[name]; + feld.dispatchEvent(new Event('change', { bubbles: true })); + gesetzt.push(name); + } + }); + // Eine zuvor gewählte Adresse passt nach dem Import nicht mehr zum Namen. + const adresse = document.getElementById('adresse'); + if (adresse && adresse.value !== '') { + adresse.value = ''; + } + melden('QR-Code gelesen – bitte die Felder prüfen.', false); + } + + async function verarbeiten(datei) { + if (dialog.open) { + dialog.close(); + } + melden('Wird gelesen …', false); + try { + uebernehmen(await dateiAuslesen(datei)); + } catch (fehler) { + melden(fehler.message, true); + } + } + + function dateiAusListe(liste) { + for (let i = 0; i < liste.length; i += 1) { + const datei = liste[i].kind === undefined ? liste[i] : (liste[i].kind === 'file' ? liste[i].getAsFile() : null); + if (datei) { + return datei; + } + } + return null; + } + + function oeffnen() { + if (!dialog.open) { + dialog.showModal(); + } + } + + bereich.addEventListener('click', oeffnen); + bereich.addEventListener('keydown', function (ereignis) { + if (ereignis.key === 'Enter' || ereignis.key === ' ') { + ereignis.preventDefault(); + oeffnen(); + } + }); + + ['dragenter', 'dragover'].forEach(function (name) { + bereich.addEventListener(name, function (ereignis) { + ereignis.preventDefault(); + bereich.classList.add('ueberfahren'); + }); + }); + ['dragleave', 'drop'].forEach(function (name) { + bereich.addEventListener(name, function () { + bereich.classList.remove('ueberfahren'); + }); + }); + bereich.addEventListener('drop', function (ereignis) { + ereignis.preventDefault(); + const datei = dateiAusListe(ereignis.dataTransfer.files); + if (datei) { + verarbeiten(datei); + } + }); + + // Einfügen: Strg+V im geöffneten Dialog. + dialog.addEventListener('paste', function (ereignis) { + const datei = dateiAusListe(ereignis.clipboardData.items); + if (datei) { + ereignis.preventDefault(); + verarbeiten(datei); + } + }); + + // Der Dialog nimmt auch eine Datei per Ziehen oder Dateiauswahl. + dialog.addEventListener('dragover', function (ereignis) { + ereignis.preventDefault(); + }); + dialog.addEventListener('drop', function (ereignis) { + ereignis.preventDefault(); + const datei = dateiAusListe(ereignis.dataTransfer.files); + if (datei) { + verarbeiten(datei); + } + }); + dateiwahl.addEventListener('change', function () { + if (dateiwahl.files.length > 0) { + verarbeiten(dateiwahl.files[0]); + dateiwahl.value = ''; + } + }); +})(); diff --git a/src/Views/zahlungsverkehr/formular.php b/src/Views/zahlungsverkehr/formular.php index 69291c6..e6f3253 100644 --- a/src/Views/zahlungsverkehr/formular.php +++ b/src/Views/zahlungsverkehr/formular.php @@ -62,7 +62,18 @@ include __DIR__ . '/../layout/kopf.php';

-

Empfänger

+
+

Empfänger

+ + +
+ QR-Code einlesen: Bild hierher ziehen oder klicken +
+ +
+ ein @@ -170,8 +181,22 @@ include __DIR__ . '/../layout/kopf.php'; + +

QR-Code einlesen

+

Bild mit EPC-QR (GiroCode) oder BezahlCode aus der Zwischenablage einfügen + (Strg + V) oder eine Bilddatei wählen.

+

Das Bild wird nur im Browser gelesen und nicht hochgeladen.

+ + +
+ +
+
+ + + diff --git a/tests/e2e/fixtures/qr-bezahlcode.png b/tests/e2e/fixtures/qr-bezahlcode.png new file mode 100644 index 0000000000000000000000000000000000000000..fd60e1e12ae9eda5d15ca20470272c270c49999c GIT binary patch literal 117065 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 =a|-|)x2Kxujk z!(>po!msjqLV_$&B zhCeW`ZrOCU#Y^Gd?)nK@y3B5a?ooxVU5)*&+PT#f{j+Y{Cfw)WO>x5q%{=)+{*LPF zx_;#*<{Nj;85LjBkQE#qy_$WB3*ss9<*N65ko1+YGXJZ1ak8DNnwl+COP2DO(?lKv zBO^PAn0-p(8e}TNUVR+BsmLp}?NMBR*Xi1ClEQ0V_LbRn=!8S5J`!R>f+z=%?1&MO z5aI@ghEvqljnHZv)5X~~^z&PInSD^%RW7Tza-T==nF@;!PBO_ly_Az9mmVDzIm~R= z0-DwI&CKuzwv!z^_yUaBRP&5dd(A;#{_?pyqvD-q6P^37cWkZSrJ1~UXRC}?`M8ZY zSF0n9^q}UZI=0W}mwsGvrtbsOK?iP+mo|4B-gW)%@}6Ml{)Q%+Y3?#VZyS8&^NVCE zk6I4YSC%_8YTyBdd-UaG^ZOz3GcI)HR!%nAK4(;xRqN;P=hgem>s?ho{JcB+rn9tg z$`*$iCwdS}|Z3Yk3lUdmtI)Q6K;Ur*0s{^64IKW(hrRVpqdM{|4Y>;p=H3+0M} zGcwFj6=kLDzB5cgEBL^mSx0+#jp*_1myZd-@nMpp;xd}89y2C3=T7o!m;UQC;;+5A zlV6x4S6Zeqt<7?vk%^}1>~%CLqACf4upL?RTI0+#E&s7|3+MEavHIsySp6=jD;l20 zEh1S3HqJDvbM|{1@G8u92|D0}JbkjM#rF@L9NyKr5 zhL4?xSlKa${&~Fpi&n{1N{`QRiZbi+JobHzOzn_wZQJPWk4B z((9XF9yKqhoG5Mk`a1rTy6o#B`23T9-a$rY`jD>+k00zh_}`C}k-4$*zfXW4nEmke zj`91q-+g_~{NC&Izt-`eFaKO${D1u;;?I8Fv?V8RSLH#Ex=<}Ky}nClXPPPEb$`r2 zumTGqE`FF?>#g3f-pnip!rPjzLt_SNl(=N{16n+R{%L|OG=YeI`S%8>a6{bpjF8rY zBE^craBv0SPY>(QlvEVmp^U}xA0*vYkuh@qo@CZDjm#F)8VyPQ=+<&ZR*67pH5H~m z|M(-1G(eRG5vS&Je^Y)c0A(~$BvaDRC^q?&;D-L=6oUQmK(`eTuj<2E?@~Gte?oVu z9WoA|5Q?yCIo}+z9n=FGrysiW19blp@GNq8R`?F3?kI{g3*TJ-aMVwE{U!Itlx&l& zS4tY%%iio&Oe>2ak-Be{Ch@i~jr9a9wIjUQ;xyB1Oe&D|^JA{{D|0Bq5GIuUv47t_ zItEuzwU3I3SPS<9Pu_&2hz56^mwHvdCN(^J@+1thiU{sM-K9vwv+KHWkP-nMq~<^0 zBNd?UOc^WyP{tJ+qf;Z^wdv#3z8nnVqX3CZ_onR7p|vo&c zec-^W)0v+_NjJ-4oRU~F`2c&$=^;qwIxyPx(=ptzK`Q>TIJdDCN4q>K$!Veu#7w}# zQ#8@omtSAclo_3^TVK1}zCpHB3#b@5+v>28Rk0BMnxr&oQl5B5nV()vZ*TSNc5SXJ z$ZjZ2dq&IqB_y0}9Ub!7l#df|4WPTrW5PFb+O0{>~RTu3jctghB+ zc2#RWch=Z;u80hG%f1HykNY_}*P|Csu3U4gd;8}|>ev@u%5eoTo*_k=B%3#HcKRHN!&zz~1i&?HqawBL~vJi^G%^x?kQ5Yy90Sj#z zES+m_Zx8PG$+aqA97*XdSuKB>aUr0%jBxnrr1-ReLR*(_jox}9#E$}KMgmEEeSLXa zzPVOu_WX_eckdo&r@Ll+7%lG0ncQz~xaWKcWt9UfjlId{@0loQ86#n!AXIE~_B3t0 zqbV*y;Kr|0?l)*q5kd-)$t1av{pf%=K&4!OB8m|)sTt>nV@UcoJ$7m+5DxGG%)6nU zfgnK7+ByP?kl_?RR3~7&T{kTA<9@U~VX&VK&#o?`cp7gUEuI=a4h=i)6S_ShnKVF# z5oKe^f zQK6wrV2uAfco358&|&wxcd8s~u}^{JETD2P``ve!z?b(OlF|yD>h5(u^F3|mrUhSN zoVhn$5LCXWPQfm&#+4|QN|Y+HB6LiPX>E#%iSc94i)t^D&B-%ndg)|Nryw;m24~IgD!cCUS{*ib`CXnE1q^VrN5z7<)mplM-Qr0PF@$ zH*tFV{#PHK<9_i7^ro+`9|Gu-e60L^>F90A#=5$f;M5{QLKf2wLoj%fl+iqu zq|gLlq*}lGL)#PCB2_xwnuEu7E|)vBM6`bA%&t_3ymV=yuD>4s_LDzKqX=feIa!K=r{CLkW%n4LZVvIu)aaiaq{RP7Fjp2-$oLx-DDkt;GIE zc+40bn{COuY}V}lph?JQ&FWAb=I%-HKSJwf3|UsMpQ+v;$R)N92cL6Cd-mZG!I)~) z;p9`h{l?$@7STA9v&2Evth98g-=y3f4D6tEpJc)PcSA0?IjKaIwu}AV-cjgBzh(`h z;UuX?GeRVDd`paIT_Qy&0U0 zWtDb^HP%gL9?b>@`udZYvjAYwht(6i|5&T7tI$jPo<5Da#2P^4Y^$8LB<5%`=k`{f z#?|Vx*6@s%LXC_30FGMZ2VKqP-Qrptnk&dOCXCu@ZJmeeuNhsE6e&UIUB{w#pQca# zoXaFfv+frWiN#3^H-V+~B#uKH$cHgoR&cQbQIlsC(YRs1Cv7i<)pnr>5n+`r2(Bz3 zM0^GjrfE;?Z@95&#MgADTtPgze!H-H+aOUR9?|m;#=7Jae>bqluNTN{wy+2memWL! z9Y|b~{)$l7~USIyaTFvQiv`)HwZFr_KKWTlPi{xFRM53jwZNy>^ z(+-M(T6$`I2p`Tmtj?|qE@SMc%DyiP`V%RqOrLH<5<14CNyp-N67dR;*QgDq2X0>! zlrl*#zFn7>9v(hk%NT2SA!Qnk1q^vuR{tSoKX)Wsoi=$>@;2sp2+`8y`6C3a&b4{t z*DK2{S+?xlp)z>3g`7=fbii&z}D0qFa9iPPEXgAY}W`dPI3s?Fpeh~LN+WiEzP!j+J|S%=IM(8 zV_I4Vhuk{b+)!df*N%ZmRp`9IZ+?O4Lyh{$!~*-$``a5Q-H3F+t#;NuUe$^ zPVPZ&1=Hy#ily88vR>XJU+T0Tq-i3z(+CjPK%F5NAFW!XqAuU6ai+?0{!)2=IJKA9 zwfgJU)o$Pk_8kl`Fq(`{CD%x2j3dG-hqNMP4huG+g3DMMXQrpbpJMI4Ok9 z$iMImOhB3|PHPJL4&xOa!(TlM{{sI$8uK6|Z*TN;<2I|JUJF2;$qa%gv7ViF>C_{p zOr7c?4Z?s)%Q)3JvLt^A5C_L8eFPGij3{VvA^EHsrwJxJKbGLk3@wK-)_x&Gn4|?c zc#Pboa~tJ=L$iVnmFs|v5e;sQQ5B`7RIro@`FUs7SNqUcs-=OKNy)oFlO(0`#BfEx zhfm0xJvDP3?5m8Q)I-^Fmq$NztTFbs!z#d`=L6z=Lz62hLOm@A{y#Z|4T*{HsGL21 z`~s402Fp0qG$neNxJQ|6yHcX+_1b2TA0mT>(iA;35swkbF_)Bj(lsrpEe2s*hQBzL zW72@Xgv@BtwmJ;5{ycI-^_Facxftt;i`d$wOTCMWi$exBP(;|2I6qmd0Wava>t;am;X&gE81sE`y)?)7SQCWGo4 zUEU-e49Sxf>XA_e2z zumPL8q2W+Cfn-q#H^kV9pm|O-aCC$?ASsU0VBihjJw7b!n zvwdqag&d<{XB+dxCQrT>9b-46g>%LsTQbwU)y=Iq&}!g;MW~P0LRpI#=oEL^Pzu7M ze(~6*ZB#;#InBIC@{SS98{EOYksgV6DYuv1H|ZItF7+_!Syoo4bD(qDya9)e3=CX~ z0mpM>`c%7>Ww_|b}_k3G%SJ)w}a zAS;FgtDefRFEi9ovc}??0Vs$>cucQxMoPPpu(Y=Awo3i!XGfY#{M+(YJEga%*xB3r z-mU^B)xK|zI#*Qsg&~Q~p9^+&8&QO8kn51;Ewkz~Ov#=x>Dx z+tqkh_Ezj{fvyFJ`8B3$x=54FEKE$!i;fzncdHA}wWv5HZJDkM@Ytj z3x%1UoCIcy$ORRQoFvosG2pdb~c!`BhIQ7$?NRf((I7AERmH_8>cZ z8JQntT$N!i`KCeQH-2%iri2)D8fJ+_LLq12E zJq_pAgbSr4VY;Athg$s%>lenivQ%puYzE{1ZA7Dyx}PH~(eXmt29>pqBadgun#k`8 zLfli()n9#sNaC%o+HjnwBKo9+Z96SvnzS&AG`${yuw>*MmvnWyp=J*Am}oNoAzKlE z+7Z8*l0m=z{U2k=nsXSsEFP&8M-aF>)YYr1}GPbO(i%{&0QKZ!; z7+7V;OuzVNTitMANGp|wsuQM#qLxRx=0RiRp@|RY{REEZ69^$del-`jPfg*PzIQg& z>2&LNWc*AnK62LPyDnQ|m+JziA78BK;dI%#zG zWmt~1(6;~1?5wO6glL~qD=ie;wyYnGov+Wt^%uHF2mx}^BW}nU+v(St=JM3yZ>iuC zXtxxAAiytKzzF!JGQYo5nDeBq4MhRD(~P2TxO}+Op_3dLf0$el|+)R=d~6X#jNClYOAtzRjd-3)T}gd;u6#@PD)sl6$EvE+G24f zQL)18bO=1-GDE2W%u;&ecRFPA$X^ULY&h2iIaOqDGgFHYsBdKzCXPYa7Oi~I5XZ3w z9b+-0=mq(=!J`P78{QOlf@e-B)6)ZUEP80SfJyAk6jX!Z_sS)1s9PZ(cAiAhczKrxmEpwZpX< zxFhHr^x%@l6TM3BIh2{0e}1BQc2JcUSkzHq2_*tJtb`s=!3FOez9bZgNQ^i!d=&(B z{H>faqe0`%_O@99&F)t@ikMHX<5qj|z~S7>oUakM$=Wc7)qmdZc!C}IsdfLwt_jcc zb6cQsjn2LKCgB$unLbao7BA3;ucp`GR8UYXew2}%0QiCnya9}FJ7x9(FmV=tKeQwq z8?hDmIs*Mp-Pt4j+1(!{zh347~&m}JywyqesYoTxu7hy+ax=7r32Sl4E1dD)oi#2KZOT9D| zNCV(9=8&r)IUj*+a}7#`Et615VObUfUN0i4IZh76K?!m217w`&&&hgkN&suG8sr(F zUcPHlYuKKhr@yrt}Q&YxEU0kH$FZDjRZS;&9i$ix%WLPWa4z zh0|$9Br#&PQtGCw&#uu-ERf~>hYv*sMeq=$w^58!prOd2S#h<02+(Z}WGd@da9je+ zfoZ0ire4dI*J~9eNs-ryGz_pouI-X~GN^=bWfhIkGb zF>5h96=wzG@DUrVSnRs$SB*@>4uRxSnmt>O!3ruznG&W15)(ylKsHqhS$TPBM`K#7 zUXZT4mj_+0h#gl!e2Q%@s%0Z)Tb+@9<2vt9!6)B;eU5iB7rsTxR2bCNq)3J*u%oDo zqy^OVtdxHEUqXWC22Y=Tk0z%5&h)((k*w5WYCdzA>-(w$W5KSgQFdoezWJS_V)AaM zWnT)mjzwY_aT-KZ_k9I=B+kq>>f!kPSBU_0-uAhHXU|4bC4ru=3Ok@APvzx_Wj+Z9Xz literal 0 HcmV?d00001 diff --git a/tests/e2e/fixtures/qr-epc.png b/tests/e2e/fixtures/qr-epc.png new file mode 100644 index 0000000000000000000000000000000000000000..3f7aec6e76748ffef6d5dcc014f31dee8212019a GIT binary patch literal 110549 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 z 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 { + test.beforeEach(async ({ page }) => { + await anmelden(page) + await page.goto('/zahlungsverkehr/neu') + await expect(page.locator('#qrbereich')).toBeVisible() + }) + + for (const { datei, format } of BEISPIELE) { + test(`${format}: Dateiauswahl im Dialog füllt die Felder`, async ({ page }) => { + await page.click('#qrbereich') + await expect(page.locator('#qrdialog')).toBeVisible() + await page.setInputFiles('#qrdatei', path.join(__dirname, '..', 'fixtures', datei)) + await expect(page.locator('#qrdialog')).toBeHidden() + await pruefeFelder(page) + }) + + test(`${format}: Bild aus der Zwischenablage füllt die Felder`, async ({ page }) => { + const bytes = fs.readFileSync(path.join(__dirname, '..', 'fixtures', datei)).toString('base64') + await page.click('#qrbereich') + await page.evaluate(async (b64) => { + // fetch() auf data:-URLs verbietet die Content-Security-Policy (connect-src). + const blob = new Blob([Uint8Array.from(atob(b64), (z) => z.charCodeAt(0))], { type: 'image/png' }) + const daten = new DataTransfer() + daten.items.add(new File([blob], 'bild.png', { type: 'image/png' })) + document.getElementById('qrdialog').dispatchEvent( + new ClipboardEvent('paste', { clipboardData: daten, bubbles: true, cancelable: true })) + }, bytes) + await pruefeFelder(page) + }) + + test(`${format}: Ziehen auf den Bereich füllt die Felder`, async ({ page }) => { + const bytes = fs.readFileSync(path.join(__dirname, '..', 'fixtures', datei)).toString('base64') + await page.evaluate(async (b64) => { + // fetch() auf data:-URLs verbietet die Content-Security-Policy (connect-src). + const blob = new Blob([Uint8Array.from(atob(b64), (z) => z.charCodeAt(0))], { type: 'image/png' }) + const daten = new DataTransfer() + daten.items.add(new File([blob], 'bild.png', { type: 'image/png' })) + document.getElementById('qrbereich').dispatchEvent( + new DragEvent('drop', { dataTransfer: daten, bubbles: true, cancelable: true })) + }, bytes) + await pruefeFelder(page) + }) + } + + test('Bild ohne QR-Code meldet einen Fehler und lässt die Felder leer', async ({ page }) => { + await page.click('#qrbereich') + await page.setInputFiles('#qrdatei', { + name: 'leer.png', + mimeType: 'image/png', + // 1×1-Pixel-PNG + buffer: Buffer.from('iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVR42mP8z8BQDwAEhQGAhKmMIQAAAABJRU5ErkJggg==', 'base64'), + }) + await expect(page.locator('[data-qrmeldung]')).toContainText('kein QR-Code') + await expect(page.locator('#iban')).toHaveValue('') + }) +})