diff --git a/.gitignore b/.gitignore index 2fc4471..b64031e 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,19 @@ misc/coverage.html misc/prof.js v8.log tmp +*.txt +*.csv +*.dif +*.prn +*.slk +*.socialcalc +*.xls +*.xlsb +*.xlsm *.xlsx *.xlsm *.xlsb +*.xml +*.htm +*.html +*.sheetjs diff --git a/.jshintrc b/.jshintrc new file mode 100644 index 0000000..5cd205b --- /dev/null +++ b/.jshintrc @@ -0,0 +1,4 @@ +{ + "bitwise": false, + "curly": false +} diff --git a/.npmignore b/.npmignore index 67c925a..bd035d9 100644 --- a/.npmignore +++ b/.npmignore @@ -4,11 +4,20 @@ index.html misc/ node_modules tmp +*.txt +*.csv +*.dif +*.prn +*.slk +*.socialcalc *.xls *.xlsb *.xlsm *.xlsx *.xml +*.htm +*.html +*.sheetjs .gitignore .jshintrc CONTRIBUTING.md diff --git a/.travis.yml b/.travis.yml index 5a28536..2cd84a2 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,6 +1,7 @@ language: node_js node_js: - - "0.11" + - "iojs" + - "0.11.14" - "0.10" - "0.8" before_install: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 605a3c3..e9642de 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,7 +5,7 @@ order to maintain that, every contributor must be vigilant. There have been many projects in the past that have been very lax regarding licensing, and we are of the opinion that those are ticking timebombs and that -no corporate product should depend on them. +no commercial product should depend on them. # Required Reading @@ -17,6 +17,17 @@ These are pretty short reads and emphasize the importance of proper licensing: - http://www.codinghorror.com/blog/2007/04/pick-a-license-any-license.html +# Raising Issues + +Issues should generally be accompanied by test files. Since github does not +support attachments, the best method is to send files to +(subject line should contain issue number or message) or to share using some +storage service. Unless expressly permitted, any attachments will not be +shared or included in a test suite (although I will ask :) + +If sending email to a gmail account is problematic, the email +inbox is self-hosted. + # Pre-Contribution Checklist Before thinking about contributing, make sure that: @@ -27,7 +38,7 @@ Before thinking about contributing, make sure that: Corporation or a subsidiary - You have not consulted any existing relevant codebase (if you have, please -take note of which codebases were consulted). + take note of which codebases were consulted). If you cannot attest to each of these items, the best approach is to raise an issue. If it is a particularly high-priority issue, please drop an email to @@ -45,9 +56,8 @@ Keep these in mind as you work: - You are working on your own time. Unless they explicitly grant permission, your employer may be the ultimate owner of your IP - # Post-Contribution Before contributions are merged, you will receive an email (at the address associated with the git commit) and will be asked to confirm the aforementioned -items. +items. Ensure that the email addresses associated with the commits is valid. diff --git a/LICENSE b/LICENSE index 41dcf0c..f769c2c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2012-2014 SheetJS +Copyright (C) 2012-2015 SheetJS Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/Makefile b/Makefile index 2ce4e17..817246f 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,5 @@ LIB=xlsx -FMT=xlsx xlsm xlsb ods misc full +FMT=xlsx xlsm xlsb ods xls xml misc full REQS=jszip.js ADDONS=dist/cpexcel.js AUXTARGETS=ods.js @@ -17,6 +17,9 @@ $(TARGET): $(DEPS) bits/01_version.js: package.json echo "$(ULIB).version = '"`grep version package.json | awk '{gsub(/[^0-9a-z\.-]/,"",$$2); print $$2}'`"';" > $@ +bits/18_cfb.js: node_modules/cfb/dist/xlscfb.js + cp $^ $@ + .PHONY: clean clean: rm -f $(TARGET) @@ -88,8 +91,11 @@ dist: dist-deps $(TARGET) bower.json cp $(TARGET) dist/ cp LICENSE dist/ uglifyjs $(TARGET) -o dist/$(LIB).min.js --source-map dist/$(LIB).min.map --preamble "$$(head -n 1 bits/00_header.js)" + misc/strip_sourcemap.sh dist/$(LIB).min.js uglifyjs $(REQS) $(TARGET) -o dist/$(LIB).core.min.js --source-map dist/$(LIB).core.min.map --preamble "$$(head -n 1 bits/00_header.js)" + misc/strip_sourcemap.sh dist/$(LIB).core.min.js uglifyjs $(REQS) $(ADDONS) $(TARGET) -o dist/$(LIB).full.min.js --source-map dist/$(LIB).full.min.map --preamble "$$(head -n 1 bits/00_header.js)" + misc/strip_sourcemap.sh dist/$(LIB).full.min.js .PHONY: aux aux: $(AUXTARGETS) diff --git a/README.md b/README.md index 759ff5c..ccb430c 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,22 @@ # xlsx -Parser and writer for Excel 2007+ (XLSX/XLSM/XLSB) files and parser for ODS. -Pure-JS cleanroom implementation from the Office Open XML spec, [MS-XLSB], ODF -specifications and related documents. +Parser and writer for various spreadsheet formats. Pure-JS cleanroom +implementation from official specifications and related documents. + +Supported read formats: + +- Excel 2007+ XML Formats (XLSX/XLSM) +- Excel 2007+ Binary Format (XLSB) +- Excel 2003-2004 XML Format (XML "SpreadsheetML") +- Excel 97-2004 (XLS BIFF8) +- Excel 5.0/95 (XLS BIFF5) +- OpenDocument Spreadsheet (ODS) + +Supported write formats: + +- XLSX +- CSV (and general DSV) +- JSON and JS objects (various styles) Demo: @@ -10,7 +24,7 @@ Source: ## Installation -In [nodejs](https://www.npmjs.org/package/xlsx): +With [npm](https://www.npmjs.org/package/xlsx): npm install xlsx @@ -18,7 +32,7 @@ In the browser: -In [bower](http://bower.io/search/?q=js-xlsx): +With [bower](http://bower.io/search/?q=js-xlsx): bower install js-xlsx @@ -27,7 +41,7 @@ CDNjs automatically pulls the latest version and makes all versions available at ## Optional Modules -The nodejs version automatically requires modules for additional features. Some +The node version automatically requires modules for additional features. Some of these modules are rather large in size and are only needed in special circumstances, so they do not ship with the core. For browser use, they must be included directly: @@ -56,7 +70,7 @@ To use the shim, add the shim before the script tag that loads xlsx.js: For parsing, the first step is to read the file. This involves acquiring the data and feeding it into the library. Here are a few common scenarios: -- nodejs readFile: +- node readFile: ``` if(typeof require !== 'undefined') XLSX = require('xlsx'); @@ -142,13 +156,32 @@ input_dom_element.addEventListener('change', handleFile, false); ## Working with the Workbook -This example walks through every cell of every sheet and dumps the values: +The full object format is described later in this README. + +This example extracts the value stored in cell A1 from the first worksheet: + +``` +var first_sheet_name = workbook.SheetNames[0]; +var address_of_cell = 'A1'; + +/* Get worksheet */ +var worksheet = workbook.Sheets[first_sheet_name]; + +/* Find desired cell */ +var desired_cell = worksheet[address_of_cell]; + +/* Get the value */ +var desired_value = desired_cell.v; +``` + +This example iterates through every nonempty of every sheet and dumps values: ``` var sheet_name_list = workbook.SheetNames; -sheet_name_list.forEach(function(y) { +sheet_name_list.forEach(function(y) { /* iterate through sheets */ var worksheet = workbook.Sheets[y]; for (z in worksheet) { + /* all keys that do not begin with "!" correspond to cell addresses */ if(z[0] === '!') continue; console.log(y + "!" + z + "=" + JSON.stringify(worksheet[z].v)); } @@ -166,9 +199,9 @@ mode is provided for testing. On OSX you can get the base64 encoding with: - XMLHttpRequest -- nodejs +- node -The nodejs version installs a binary `xlsx` which can read XLSX/XLSM/XLSB +The node version installs a command line tool `xlsx` which can read spreadsheet files and output the contents in various formats. The source is available at `xlsx.njs` in the bin directory. @@ -220,7 +253,7 @@ Complete examples: ## Interface -`XLSX` is the exposed variable in the browser and the exported nodejs variable +`XLSX` is the exposed variable in the browser and the exported node variable `XLSX.version` is the version of the library (added by the build script). @@ -374,7 +407,8 @@ Special worksheet keys (accessible as `worksheet[key]`, each starting with `!`): `wb.Sheets[sheetname]` returns an object representing the worksheet. `wb.Props` is an object storing the standard properties. `wb.Custprops` stores -custom properties. +custom properties. Since the XLS standard properties deviate from the XLSX +standard, XLS parsing stores core properties in both places. . ## Parsing Options @@ -383,7 +417,7 @@ The exported `read` and `readFile` functions accept an options argument: | Option Name | Default | Description | | :---------- | ------: | :---------- | -| cellFormula | true | Save formulae to the .f field | +| cellFormula | true | Save formulae to the .f field ** | | cellHTML | true | Parse rich text and save HTML to the .h field | | cellNF | false | Save number format string to the .z field | | cellStyles | false | Save style/theme info to the .s field | @@ -395,17 +429,24 @@ The exported `read` and `readFile` functions accept an options argument: | bookProps | false | If true, only parse enough to get book metadata ** | | bookSheets | false | If true, only parse enough to get the sheet names | | bookVBA | false | If true, expose vbaProject.bin to `vbaraw` field ** | +| password | "" | If defined and file is encrypted, use password ** | +- `cellFormula` option only applies to formats that require extra processing to + parse formulae (XLS/XLSB). - Even if `cellNF` is false, formatted text will be generated and saved to `.w` - In some cases, sheets may be parsed even if `bookSheets` is false. - `bookSheets` and `bookProps` combine to give both sets of information - `Deps` will be an empty object if `bookDeps` is falsy -- `bookFiles` adds a `keys` array (paths in the ZIP) and a `files` hash (whose - keys are paths and values are objects representing the files) +- `bookFiles` behavior depends on file type: + * `keys` array (paths in the ZIP) for ZIP-based formats + * `files` hash (mapping paths to objects representing the files) for ZIP + * `cfb` object for formats using CFB containers - `sheetRows-1` rows will be generated when looking at the JSON object output (since the header row is counted as a row when parsing the data) - `bookVBA` merely exposes the raw vba object. It does not parse the data. - `cellDates` currently does not convert numerical dates to JS dates. +- Currently only XOR encryption is supported. Unsupported error will be thrown + for files employing other encryption methods. The defaults are enumerated in bits/84_defaults.js @@ -430,7 +471,7 @@ The exported `write` and `writeFile` functions accept an options argument: ## Tested Environments - - NodeJS 0.8, 0.10 (latest release), 0.11 (unstable) + - NodeJS 0.8, 0.10 (latest release), 0.11.14 (unstable), io.js - IE 6/7/8/9/10/11 using Base64 mode (IE10/11 using HTML5 mode) - FF 18 using Base64 or HTML5 mode - Chrome 24 using Base64 or HTML5 mode @@ -449,7 +490,7 @@ Running `make init` will refresh the `test_files` submodule and get the files. ## Testing -`make test` will run the nodejs-based tests. To run the in-browser tests, clone +`make test` will run the node-based tests. To run the in-browser tests, clone [the oss.sheetjs.com repo](https://github.com/SheetJS/SheetJS.github.io) and replace the xlsx.js file (then fire up the browser and go to `stress.html`): @@ -481,10 +522,6 @@ $ diff xlsx.js xlsx.new.js To produce the dist files, run `make dist`. The dist files are updated in each version release and should not be committed between versions. -## XLS Support - -XLS is available in [js-xls](http://git.io/xls). - ## License Please consult the attached LICENSE file for details. All rights not explicitly @@ -506,7 +543,18 @@ OSP-covered specifications: - [MS-XLSB]: Excel (.xlsb) Binary File Format - [MS-XLSX]: Excel (.xlsx) Extensions to the Office Open XML SpreadsheetML File Format - [MS-OE376]: Office Implementation Information for ECMA-376 Standards Support + - [MS-CFB]: Compound File Binary File Format + - [MS-XLS]: Excel Binary File Format (.xls) Structure Specification + - [MS-ODATA]: Open Data Protocol (OData) + - [MS-OFFCRYPTO]: Office Document Cryptography Structure + - [MS-OLEDS]: Object Linking and Embedding (OLE) Data Structures + - [MS-OLEPS]: Object Linking and Embedding (OLE) Property Set Data Structures + - [MS-OSHARED]: Office Common Data Types and Objects Structures + - [MS-OVBA]: Office VBA File Format Structure + - [MS-CTXLS]: Excel Custom Toolbar Binary File Format - [MS-XLDM]: Spreadsheet Data Model File Format + - [MS-EXSPXML3]: Excel Calculation Version 2 Web Service XML Schema + - [XLS]: Microsoft Office Excel 97-2007 Binary File Format Specification Open Document Format for Office Applications Version 1.2 (29 September 2011) diff --git a/bin/xlsx.njs b/bin/xlsx.njs index 6de8f43..a9c76b2 100755 --- a/bin/xlsx.njs +++ b/bin/xlsx.njs @@ -1,5 +1,5 @@ #!/usr/bin/env node -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ var n = "xlsx"; /* vim: set ts=2 ft=javascript: */ var X = require('../'); @@ -9,6 +9,7 @@ program .usage('[options] [sheetname]') .option('-f, --file ', 'use specified workbook') .option('-s, --sheet ', 'print specified sheet (default first sheet)') + .option('-p, --password ', 'if file is encrypted, try with specified pw') .option('-l, --list-sheets', 'list sheet names and exit') .option('-o, --output ', 'output to specified file') .option('-B, --xlsb', 'emit XLSB to or .xlsb') @@ -67,6 +68,7 @@ if(!fs.existsSync(filename)) { var opts = {}, wb; if(program.listSheets) opts.bookSheets = true; if(program.sheetRows) opts.sheetRows = program.sheetRows; +if(program.password) opts.password = program.password; if(program.xlsx || program.xlsm || program.xlsb) { opts.cellNF = true; if(program.output) sheetname = program.output; diff --git a/bits/.npmignore b/bits/.npmignore new file mode 100644 index 0000000..a6c7c28 --- /dev/null +++ b/bits/.npmignore @@ -0,0 +1 @@ +*.js diff --git a/bits/00_header.js b/bits/00_header.js index 5675ca8..7b557ac 100644 --- a/bits/00_header.js +++ b/bits/00_header.js @@ -1,5 +1,6 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ /* vim: set ts=2: */ /*jshint -W041 */ +/*jshint funcscope:true, eqnull:true */ var XLSX = {}; -(function(XLSX){ +(function make_xlsx(XLSX){ diff --git a/bits/01_version.js b/bits/01_version.js index 9693356..36faf4d 100644 --- a/bits/01_version.js +++ b/bits/01_version.js @@ -1 +1 @@ -XLSX.version = '0.7.12'; +XLSX.version = '0.8.0'; diff --git a/bits/02_codepage.js b/bits/02_codepage.js index a051cbc..6726a6f 100644 --- a/bits/02_codepage.js +++ b/bits/02_codepage.js @@ -1,18 +1,23 @@ -var current_codepage = 1252, current_cptable; +var current_codepage = 1200, current_cptable; if(typeof module !== "undefined" && typeof require !== 'undefined') { if(typeof cptable === 'undefined') cptable = require('./dist/cpexcel'); current_cptable = cptable[current_codepage]; } -function reset_cp() { set_cp(1252); } +function reset_cp() { set_cp(1200); } var set_cp = function(cp) { current_codepage = cp; }; function char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; } var debom_xml = function(data) { return data; }; +var _getchar = function _gc1(x) { return String.fromCharCode(x); }; if(typeof cptable !== 'undefined') { set_cp = function(cp) { current_codepage = cp; current_cptable = cptable[cp]; }; debom_xml = function(data) { if(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.substr(2))); } return data; }; + _getchar = function _gc2(x) { + if(current_codepage === 1200) return String.fromCharCode(x); + return cptable.utils.decode(current_codepage, [x&255,x>>8])[0]; + }; } diff --git a/bits/04_base64.js b/bits/04_base64.js new file mode 100644 index 0000000..cda6c0f --- /dev/null +++ b/bits/04_base64.js @@ -0,0 +1,41 @@ +var Base64 = (function make_b64(){ + var map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return { + encode: function(input, utf8) { + var o = ""; + var c1, c2, c3, e1, e2, e3, e4; + for(var i = 0; i < input.length; ) { + c1 = input.charCodeAt(i++); + c2 = input.charCodeAt(i++); + c3 = input.charCodeAt(i++); + e1 = c1 >> 2; + e2 = (c1 & 3) << 4 | c2 >> 4; + e3 = (c2 & 15) << 2 | c3 >> 6; + e4 = c3 & 63; + if (isNaN(c2)) { e3 = e4 = 64; } + else if (isNaN(c3)) { e4 = 64; } + o += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4); + } + return o; + }, + decode: function b64_decode(input, utf8) { + var o = ""; + var c1, c2, c3; + var e1, e2, e3, e4; + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + for(var i = 0; i < input.length;) { + e1 = map.indexOf(input.charAt(i++)); + e2 = map.indexOf(input.charAt(i++)); + e3 = map.indexOf(input.charAt(i++)); + e4 = map.indexOf(input.charAt(i++)); + c1 = e1 << 2 | e2 >> 4; + c2 = (e2 & 15) << 4 | e3 >> 2; + c3 = (e3 & 3) << 6 | e4; + o += String.fromCharCode(c1); + if (e3 != 64) { o += String.fromCharCode(c2); } + if (e4 != 64) { o += String.fromCharCode(c3); } + } + return o; + } + }; +})(); diff --git a/bits/05_buf.js b/bits/05_buf.js new file mode 100644 index 0000000..ab3565d --- /dev/null +++ b/bits/05_buf.js @@ -0,0 +1,16 @@ +var has_buf = (typeof Buffer !== 'undefined'); + +function new_raw_buf(len) { + /* jshint -W056 */ + return new (has_buf ? Buffer : Array)(len); + /* jshint +W056 */ +} + +function s2a(s) { + if(has_buf) return new Buffer(s, "binary"); + return s.split("").map(function(x){ return x.charCodeAt(0) & 0xff; }); +} + +var bconcat = function(bufs) { return [].concat.apply([], bufs); }; + +var chr0 = /\u0000/g, chr1 = /[\u0001-\u0006]/; diff --git a/bits/11_ssfutils.js b/bits/11_ssfutils.js new file mode 100644 index 0000000..5253ad4 --- /dev/null +++ b/bits/11_ssfutils.js @@ -0,0 +1,20 @@ +/* map from xlml named formats to SSF TODO: localize */ +var XLMLFormatMap = { + "General Number": "General", + "General Date": SSF._table[22], + "Long Date": "dddd, mmmm dd, yyyy", + "Medium Date": SSF._table[15], + "Short Date": SSF._table[14], + "Long Time": SSF._table[19], + "Medium Time": SSF._table[18], + "Short Time": SSF._table[20], + "Currency": '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)', + "Fixed": SSF._table[2], + "Standard": SSF._table[4], + "Percent": SSF._table[10], + "Scientific": SSF._table[11], + "Yes/No": '"Yes";"Yes";"No";@', + "True/False": '"True";"True";"False";@', + "On/Off": '"Yes";"Yes";"No";@' +}; + diff --git a/bits/18_cfb.js b/bits/18_cfb.js new file mode 100644 index 0000000..2bb2335 --- /dev/null +++ b/bits/18_cfb.js @@ -0,0 +1,383 @@ +var DO_NOT_EXPORT_CFB = true; +/* cfb.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* vim: set ts=2: */ +/*jshint eqnull:true */ + +/* [MS-CFB] v20130118 */ +var CFB = (function _CFB(){ +var exports = {}; +exports.version = '0.10.2'; +function parse(file) { +var mver = 3; // major version +var ssz = 512; // sector size +var nmfs = 0; // number of mini FAT sectors +var ndfs = 0; // number of DIFAT sectors +var dir_start = 0; // first directory sector location +var minifat_start = 0; // first mini FAT sector location +var difat_start = 0; // first mini FAT sector location + +var fat_addrs = []; // locations of FAT sectors + +/* [MS-CFB] 2.2 Compound File Header */ +var blob = file.slice(0,512); +prep_blob(blob, 0); + +/* major version */ +var mv = check_get_mver(blob); +mver = mv[0]; +switch(mver) { + case 3: ssz = 512; break; case 4: ssz = 4096; break; + default: throw "Major Version: Expected 3 or 4 saw " + mver; +} + +/* reprocess header */ +if(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); } +/* Save header for final object */ +var header = file.slice(0,ssz); + +check_shifts(blob, mver); + +// Number of Directory Sectors +var nds = blob.read_shift(4, 'i'); +if(mver === 3 && nds !== 0) throw '# Directory Sectors: Expected 0 saw ' + nds; + +// Number of FAT Sectors +//var nfs = blob.read_shift(4, 'i'); +blob.l += 4; + +// First Directory Sector Location +dir_start = blob.read_shift(4, 'i'); + +// Transaction Signature +blob.l += 4; + +// Mini Stream Cutoff Size +blob.chk('00100000', 'Mini Stream Cutoff Size: '); + +// First Mini FAT Sector Location +minifat_start = blob.read_shift(4, 'i'); + +// Number of Mini FAT Sectors +nmfs = blob.read_shift(4, 'i'); + +// First DIFAT sector location +difat_start = blob.read_shift(4, 'i'); + +// Number of DIFAT Sectors +ndfs = blob.read_shift(4, 'i'); + +// Grab FAT Sector Locations +for(var q, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */ + q = blob.read_shift(4, 'i'); + if(q<0) break; + fat_addrs[j] = q; +} + +/** Break the file up into sectors */ +var sectors = sectorify(file, ssz); + +sleuth_fat(difat_start, ndfs, sectors, ssz, fat_addrs); + +/** Chains */ +var sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz); + +sector_list[dir_start].name = "!Directory"; +if(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = "!MiniFAT"; +sector_list[fat_addrs[0]].name = "!FAT"; +sector_list.fat_addrs = fat_addrs; +sector_list.ssz = ssz; + +/* [MS-CFB] 2.6.1 Compound File Directory Entry */ +var files = {}, Paths = [], FileIndex = [], FullPaths = [], FullPathDir = {}; +read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex); + +build_full_paths(FileIndex, FullPathDir, FullPaths, Paths); + +var root_name = Paths.shift(); +Paths.root = root_name; + +/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */ +var find_path = make_find_path(FullPaths, Paths, FileIndex, files, root_name); + +return { + raw: {header: header, sectors: sectors}, + FileIndex: FileIndex, + FullPaths: FullPaths, + FullPathDir: FullPathDir, + find: find_path +}; +} // parse + +/* [MS-CFB] 2.2 Compound File Header -- read up to major version */ +function check_get_mver(blob) { + // header signature 8 + blob.chk(HEADER_SIGNATURE, 'Header Signature: '); + + // clsid 16 + blob.chk(HEADER_CLSID, 'CLSID: '); + + // minor version 2 + var mver = blob.read_shift(2, 'u'); + + return [blob.read_shift(2,'u'), mver]; +} +function check_shifts(blob, mver) { + var shift = 0x09; + + // Byte Order + blob.chk('feff', 'Byte Order: '); + + // Sector Shift + switch((shift = blob.read_shift(2))) { + case 0x09: if(mver !== 3) throw 'MajorVersion/SectorShift Mismatch'; break; + case 0x0c: if(mver !== 4) throw 'MajorVersion/SectorShift Mismatch'; break; + default: throw 'Sector Shift: Expected 9 or 12 saw ' + shift; + } + + // Mini Sector Shift + blob.chk('0600', 'Mini Sector Shift: '); + + // Reserved + blob.chk('000000000000', 'Reserved: '); +} + +/** Break the file up into sectors */ +function sectorify(file, ssz) { + var nsectors = Math.ceil(file.length/ssz)-1; + var sectors = new Array(nsectors); + for(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz); + sectors[nsectors-1] = file.slice(nsectors*ssz); + return sectors; +} + +/* [MS-CFB] 2.6.4 Red-Black Tree */ +function build_full_paths(FI, FPD, FP, Paths) { + var i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length; + var dad = new Array(pl), q = new Array(pl); + + for(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; } + + for(; j < q.length; ++j) { + i = q[j]; + L = FI[i].L; R = FI[i].R; C = FI[i].C; + if(dad[i] === i) { + if(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L]; + if(R !== -1 && dad[R] !== R) dad[i] = dad[R]; + } + if(C !== -1 /*NOSTREAM*/) dad[C] = i; + if(L !== -1) { dad[L] = dad[i]; q.push(L); } + if(R !== -1) { dad[R] = dad[i]; q.push(R); } + } + for(i=1; i !== pl; ++i) if(dad[i] === i) { + if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R]; + else if(L !== -1 && dad[L] !== L) dad[i] = dad[L]; + } + + for(i=1; i < pl; ++i) { + if(FI[i].type === 0 /* unknown */) continue; + j = dad[i]; + if(j === 0) FP[i] = FP[0] + "/" + FP[i]; + else while(j !== 0) { + FP[i] = FP[j] + "/" + FP[i]; + j = dad[j]; + } + dad[i] = 0; + } + + FP[0] += "/"; + for(i=1; i < pl; ++i) { + if(FI[i].type !== 2 /* stream */) FP[i] += "/"; + FPD[FP[i]] = FI[i]; + } +} + +/* [MS-CFB] 2.6.4 */ +function make_find_path(FullPaths, Paths, FileIndex, files, root_name) { + var UCFullPaths = new Array(FullPaths.length); + var UCPaths = new Array(Paths.length), i; + for(i = 0; i < FullPaths.length; ++i) UCFullPaths[i] = FullPaths[i].toUpperCase().replace(chr0,'').replace(chr1,'!'); + for(i = 0; i < Paths.length; ++i) UCPaths[i] = Paths[i].toUpperCase().replace(chr0,'').replace(chr1,'!'); + return function find_path(path) { + var k; + if(path.charCodeAt(0) === 47 /* "/" */) { k=true; path = root_name + path; } + else k = path.indexOf("/") !== -1; + var UCPath = path.toUpperCase().replace(chr0,'').replace(chr1,'!'); + var w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath); + if(w === -1) return null; + return k === true ? FileIndex[w] : files[Paths[w]]; + }; +} + +/** Chase down the rest of the DIFAT chain to build a comprehensive list + DIFAT chains by storing the next sector number as the last 32 bytes */ +function sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) { + var q; + if(idx === ENDOFCHAIN) { + if(cnt !== 0) throw "DIFAT chain shorter than expected"; + } else if(idx !== -1 /*FREESECT*/) { + var sector = sectors[idx], m = (ssz>>>2)-1; + for(var i = 0; i < m; ++i) { + if((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break; + fat_addrs.push(q); + } + sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs); + } +} + +/** Follow the linked list of sectors for a given starting point */ +function get_sector_list(sectors, start, fat_addrs, ssz, chkd) { + var sl = sectors.length; + var buf, buf_chain; + if(!chkd) chkd = new Array(sl); + var modulus = ssz - 1, j, jj; + buf = []; + buf_chain = []; + for(j=start; j>=0;) { + chkd[j] = true; + buf[buf.length] = j; + buf_chain.push(sectors[j]); + var addr = fat_addrs[Math.floor(j*4/ssz)]; + jj = ((j*4) & modulus); + if(ssz < 4 + jj) throw "FAT boundary crossed: " + j + " 4 "+ssz; + j = __readInt32LE(sectors[addr], jj); + } + return {nodes: buf, data:__toBuffer([buf_chain])}; +} + +/** Chase down the sector linked lists */ +function make_sector_list(sectors, dir_start, fat_addrs, ssz) { + var sl = sectors.length, sector_list = new Array(sl); + var chkd = new Array(sl), buf, buf_chain; + var modulus = ssz - 1, i, j, k, jj; + for(i=0; i < sl; ++i) { + buf = []; + k = (i + dir_start); if(k >= sl) k-=sl; + if(chkd[k] === true) continue; + buf_chain = []; + for(j=k; j>=0;) { + chkd[j] = true; + buf[buf.length] = j; + buf_chain.push(sectors[j]); + var addr = fat_addrs[Math.floor(j*4/ssz)]; + jj = ((j*4) & modulus); + if(ssz < 4 + jj) throw "FAT boundary crossed: " + j + " 4 "+ssz; + j = __readInt32LE(sectors[addr], jj); + } + sector_list[k] = {nodes: buf, data:__toBuffer([buf_chain])}; + } + return sector_list; +} + +/* [MS-CFB] 2.6.1 Compound File Directory Entry */ +function read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex) { + var blob; + var minifat_store = 0, pl = (Paths.length?2:0); + var sector = sector_list[dir_start].data; + var i = 0, namelen = 0, name, o, ctime, mtime; + for(; i < sector.length; i+= 128) { + blob = sector.slice(i, i+128); + prep_blob(blob, 64); + namelen = blob.read_shift(2); + if(namelen === 0) continue; + name = __utf16le(blob,0,namelen-pl); + Paths.push(name); + o = { + name: name, + type: blob.read_shift(1), + color: blob.read_shift(1), + L: blob.read_shift(4, 'i'), + R: blob.read_shift(4, 'i'), + C: blob.read_shift(4, 'i'), + clsid: blob.read_shift(16), + state: blob.read_shift(4, 'i') + }; + ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2); + if(ctime !== 0) { + o.ctime = ctime; o.ct = read_date(blob, blob.l-8); + } + mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2); + if(mtime !== 0) { + o.mtime = mtime; o.mt = read_date(blob, blob.l-8); + } + o.start = blob.read_shift(4, 'i'); + o.size = blob.read_shift(4, 'i'); + if(o.type === 5) { /* root */ + minifat_store = o.start; + if(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = "!StreamData"; + /*minifat_size = o.size;*/ + } else if(o.size >= 4096 /* MSCSZ */) { + o.storage = 'fat'; + if(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz); + sector_list[o.start].name = o.name; + o.content = sector_list[o.start].data.slice(0,o.size); + prep_blob(o.content, 0); + } else { + o.storage = 'minifat'; + if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN) { + o.content = sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size); + prep_blob(o.content, 0); + } + } + files[name] = o; + FileIndex.push(o); + } +} + +function read_date(blob, offset) { + return new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000); +} + +var fs; +function readFileSync(filename, options) { + if(fs === undefined) fs = require('fs'); + return parse(fs.readFileSync(filename), options); +} + +function readSync(blob, options) { + switch(options !== undefined && options.type !== undefined ? options.type : "base64") { + case "file": return readFileSync(blob, options); + case "base64": return parse(s2a(Base64.decode(blob)), options); + case "binary": return parse(s2a(blob), options); + } + return parse(blob); +} + +/** CFB Constants */ +var MSSZ = 64; /* Mini Sector Size = 1<<6 */ +//var MSCSZ = 4096; /* Mini Stream Cutoff Size */ +/* 2.1 Compound File Sector Numbers and Types */ +var ENDOFCHAIN = -2; +/* 2.2 Compound File Header */ +var HEADER_SIGNATURE = 'd0cf11e0a1b11ae1'; +var HEADER_CLSID = '00000000000000000000000000000000'; +var consts = { + /* 2.1 Compund File Sector Numbers and Types */ + MAXREGSECT: -6, + DIFSECT: -4, + FATSECT: -3, + ENDOFCHAIN: ENDOFCHAIN, + FREESECT: -1, + /* 2.2 Compound File Header */ + HEADER_SIGNATURE: HEADER_SIGNATURE, + HEADER_MINOR_VERSION: '3e00', + MAXREGSID: -6, + NOSTREAM: -1, + HEADER_CLSID: HEADER_CLSID, + /* 2.6.1 Compound File Directory Entry */ + EntryTypes: ['unknown','storage','stream','lockbytes','property','root'] +}; + +exports.read = readSync; +exports.parse = parse; +exports.utils = { + ReadShift: ReadShift, + CheckField: CheckField, + prep_blob: prep_blob, + bconcat: bconcat, + consts: consts +}; + +return exports; +})(); + +if(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; } diff --git a/bits/20_jsutils.js b/bits/20_jsutils.js index 3a73f69..bff609c 100644 --- a/bits/20_jsutils.js +++ b/bits/20_jsutils.js @@ -42,4 +42,3 @@ function cc2str(arr) { return o; } -var has_buf = (typeof Buffer !== 'undefined'); diff --git a/bits/22_xmlutils.js b/bits/22_xmlutils.js index b027fb6..e36bf18 100644 --- a/bits/22_xmlutils.js +++ b/bits/22_xmlutils.js @@ -1,4 +1,4 @@ -var attregexg=/\b[\w:]+=["'][^"]*['"]/g; +var attregexg=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g; var tagregex=/<[^>]*>/g; var nsregex=/<\w*:/, nsregex2 = /<(\/?)\w+:/; function parsexmltag(tag, skip_root) { @@ -31,17 +31,27 @@ var rencoding = evert(encodings); var rencstr = "&<>'\"".split(""); // TODO: CP remap (need to read file version to determine OS) -var encregex = /&[a-z]*;/g, coderegex = /_x([\da-fA-F]+)_/g; -function unescapexml(text){ - var s = text + ''; - return s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));}); -} +var unescapexml = (function() { + var encregex = /&[a-z]*;/g, coderegex = /_x([\da-fA-F]+)_/g; + return function unescapexml(text){ + var s = text + ''; + return s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));}); + }; +})(); + var decregex=/[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f]/g; function escapexml(text){ var s = text + ''; return s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return "_x" + ("000"+s.charCodeAt(0).toString(16)).substr(-4) + "_";}); } +/* TODO: handle codepages */ +var xlml_fixstr = (function() { + var entregex = /&#(\d+);/g; + function entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); } + return function xlml_fixstr(str) { return str.replace(entregex,entrepl); }; +})(); + function parsexmlbool(value, tag) { switch(value) { case '1': case 'true': case 'TRUE': return true; @@ -158,3 +168,4 @@ XMLNS.main = [ 'http://schemas.microsoft.com/office/excel/2006/main', 'http://schemas.microsoft.com/office/excel/2006/2' ]; + diff --git a/bits/23_binutils.js b/bits/23_binutils.js index 78fc662..cb862dc 100644 --- a/bits/23_binutils.js +++ b/bits/23_binutils.js @@ -18,16 +18,39 @@ function readIEEE754(buf, idx, isLE, nl, ml) { var __toBuffer, ___toBuffer; __toBuffer = ___toBuffer = function toBuffer_(bufs) { var x = []; for(var i = 0; i < bufs[0].length; ++i) { x.push.apply(x, bufs[0][i]); } return x; }; +var __utf16le, ___utf16le; +__utf16le = ___utf16le = function utf16le_(b,s,e) { var ss=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : "";}; +var __lpwstr, ___lpwstr; +__lpwstr = ___lpwstr = function lpwstr_(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : "";}; var __double, ___double; __double = ___double = function(b, idx) { return readIEEE754(b, idx);}; var is_buf = function is_buf_a(a) { return Array.isArray(a); }; if(has_buf) { + __utf16le = function utf16le_b(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e); }; + __hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); }; + __lpstr = function lpstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : "";}; + __lpwstr = function lpwstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);}; + __utf8 = function utf8_b(s,e) { return this.toString('utf8',s,e); }; __toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);}; + bconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); }; __double = function double_(b,i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); }; is_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); }; } +/* from js-xls */ +if(typeof cptable !== 'undefined') { + __utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)); }; + __utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); }; + __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : "";}; + __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : "";}; +} var __readUInt8 = function(b, idx) { return b[idx]; }; var __readUInt16LE = function(b, idx) { return b[idx+1]*(1<<8)+b[idx]; }; @@ -35,20 +58,70 @@ var __readInt16LE = function(b, idx) { var u = b[idx+1]*(1<<8)+b[idx]; return (u var __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; }; var __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; }; +var ___unhexlify = function(s) { return s.match(/../g).map(function(x) { return parseInt(x,16);}); }; +var __unhexlify = typeof Buffer !== "undefined" ? function(s) { return Buffer.isBuffer(s) ? new Buffer(s, 'hex') : ___unhexlify(s); } : ___unhexlify; function ReadShift(size, t) { - var o="", oo=[], w, vv, i, loc; - if(t === 'dbcs') { - loc = this.l; - if(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString("utf16le"); - else for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; } - size *= 2; - } else switch(size) { - case 1: o = __readUInt8(this, this.l); break; - case 2: o = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); break; - case 4: o = __readUInt32LE(this, this.l); break; - case 8: if(t === 'f') { o = __double(this, this.l); break; } - } + var o="", oI, oR, oo=[], w, vv, i, loc; + switch(t) { + case 'dbcs': + loc = this.l; + if(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString("utf16le"); + else for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; } + size *= 2; + break; + + case 'utf8': o = __utf8(this, this.l, this.l + size); break; + case 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break; + + /* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */ + case 'lpstr': o = __lpstr(this, this.l); size = 5 + o.length; break; + /* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */ + case 'lpwstr': o = __lpwstr(this, this.l); size = 5 + o.length; if(o[o.length-1] == '\u0000') size += 2; break; + + case 'cstr': size = 0; o = ""; + while((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w)); + o = oo.join(""); break; + case 'wstr': size = 0; o = ""; + while((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;} + size+=2; o = oo.join(""); break; + + /* sbcs and dbcs support continue records in the SST way TODO codepages */ + case 'dbcs-cont': o = ""; loc = this.l; + for(i = 0; i != size; ++i) { + if(this.lens && this.lens.indexOf(loc) !== -1) { + w = __readUInt8(this, loc); + this.l = loc + 1; + vv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont'); + return oo.join("") + vv; + } + oo.push(_getchar(__readUInt16LE(this, loc))); + loc+=2; + } o = oo.join(""); size *= 2; break; + + case 'sbcs-cont': o = ""; loc = this.l; + for(i = 0; i != size; ++i) { + if(this.lens && this.lens.indexOf(loc) !== -1) { + w = __readUInt8(this, loc); + this.l = loc + 1; + vv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont'); + return oo.join("") + vv; + } + oo.push(_getchar(__readUInt8(this, loc))); + loc+=1; + } o = oo.join(""); break; + + default: + switch(size) { + case 1: oI = __readUInt8(this, this.l); this.l++; return oI; + case 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI; + case 4: + if(t === 'i' || (this[this.l+3] & 0x80)===0) { oI = __readInt32LE(this, this.l); this.l += 4; return oI; } + else { oR = __readUInt32LE(this, this.l); this.l += 4; return oR; } break; + case 8: if(t === 'f') { oR = __double(this, this.l); this.l += 8; return oR; } + /* falls through */ + case 16: o = __hexlify(this, this.l, size); break; + }} this.l+=size; return o; } @@ -69,9 +142,16 @@ function WriteShift(t, val, f) { this.l += size; return this; } +function CheckField(hexstr, fld) { + var m = __hexlify(this,this.l,hexstr.length>>1); + if(m !== hexstr) throw fld + 'Expected ' + hexstr + ' saw ' + m; + this.l += hexstr.length>>1; +} + function prep_blob(blob, pos) { blob.l = pos; blob.read_shift = ReadShift; + blob.chk = CheckField; blob.write_shift = WriteShift; } @@ -80,7 +160,7 @@ function parsenoop(blob, length) { blob.l += length; } function writenoop(blob, length) { blob.l += length; } function new_buf(sz) { - var o = has_buf ? new Buffer(sz) : new Array(sz); + var o = new_raw_buf(sz); prep_blob(o, 0); return o; } diff --git a/bits/24_hoppers.js b/bits/24_hoppers.js index 3b50126..773362c 100644 --- a/bits/24_hoppers.js +++ b/bits/24_hoppers.js @@ -5,7 +5,7 @@ function recordhopper(data, cb, opts) { while(data.l < data.length) { var RT = data.read_shift(1); if(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7); - var R = RecordEnum[RT] || RecordEnum[0xFFFF]; + var R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF]; tmpbyte = data.read_shift(1); length = tmpbyte & 0x7F; for(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte); @@ -49,7 +49,7 @@ function buf_array() { function write_record(ba, type, payload, length) { var t = evert_RE[type], l; - if(!length) length = RecordEnum[t].p || (payload||[]).length || 0; + if(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0; l = 1 + (t >= 0x80 ? 1 : 0) + 1 + length; if(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l; var o = ba.next(l); diff --git a/bits/25_cellutils.js b/bits/25_cellutils.js new file mode 100644 index 0000000..8ae765b --- /dev/null +++ b/bits/25_cellutils.js @@ -0,0 +1,21 @@ +/* XLS ranges enforced */ +function shift_cell_xls(cell, tgt) { + if(tgt.s) { + if(cell.cRel) cell.c += tgt.s.c; + if(cell.rRel) cell.r += tgt.s.r; + } else { + cell.c += tgt.c; + cell.r += tgt.r; + } + cell.cRel = cell.rRel = 0; + while(cell.c >= 0x100) cell.c -= 0x100; + while(cell.r >= 0x10000) cell.r -= 0x10000; + return cell; +} + +function shift_range_xls(cell, range) { + cell.s = shift_cell_xls(cell.s, range.s); + cell.e = shift_cell_xls(cell.e, range.s); + return cell; +} + diff --git a/bits/26_crypto.js b/bits/26_crypto.js new file mode 100644 index 0000000..db36131 --- /dev/null +++ b/bits/26_crypto.js @@ -0,0 +1,35 @@ +var OFFCRYPTO = {}; +var make_offcrypto = function(O, _crypto) { + var crypto; + if(typeof _crypto !== 'undefined') crypto = _crypto; + else if(typeof require !== 'undefined') { + try { crypto = require('cry'+'pto'); } + catch(e) { crypto = null; } + } + + O.rc4 = function(key, data) { + var S = new Array(256); + var c = 0, i = 0, j = 0, t = 0; + for(i = 0; i != 256; ++i) S[i] = i; + for(i = 0; i != 256; ++i) { + j = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255; + t = S[i]; S[i] = S[j]; S[j] = t; + } + i = j = 0; out = Buffer(data.length); + for(c = 0; c != data.length; ++c) { + i = (i + 1)&255; + j = (j + S[i])%256; + t = S[i]; S[i] = S[j]; S[j] = t; + out[c] = (data[c] ^ S[(S[i]+S[j])&255]); + } + return out; + }; + + if(crypto) { + O.md5 = function(hex) { return crypto.createHash('md5').update(hex).digest('hex'); }; + } else { + O.md5 = function(hex) { throw "unimplemented"; }; + } +}; +make_offcrypto(OFFCRYPTO, typeof crypto !== "undefined" ? crypto : undefined); + diff --git a/bits/28_binstructs.js b/bits/28_binstructs.js index cdca5c9..33f5b86 100644 --- a/bits/28_binstructs.js +++ b/bits/28_binstructs.js @@ -33,14 +33,14 @@ function write_RichStr(str, o) { } /* [MS-XLSB] 2.5.9 */ -function parse_Cell(data) { +function parse_XLSBCell(data) { var col = data.read_shift(4); var iStyleRef = data.read_shift(2); iStyleRef += data.read_shift(1) <<16; var fPhShow = data.read_shift(1); return { c:col, iStyleRef: iStyleRef }; } -function write_Cell(cell, o) { +function write_XLSBCell(cell, o) { if(o == null) o = new_buf(8); o.write_shift(-4, cell.c); o.write_shift(3, cell.iStyleRef === undefined ? cell.iStyleRef : cell.s); @@ -50,7 +50,7 @@ function write_Cell(cell, o) { /* [MS-XLSB] 2.5.21 */ -function parse_CodeName (data, length) { return parse_XLWideString(data, length); } +function parse_XLSBCodeName (data, length) { return parse_XLWideString(data, length); } /* [MS-XLSB] 2.5.166 */ function parse_XLNullableWideString(data) { @@ -82,11 +82,12 @@ var write_RelID = write_XLNullableWideString; /* [MS-XLSB] 2.5.122 */ +/* [MS-XLS] 2.5.217 */ function parse_RkNumber(data) { var b = data.slice(data.l, data.l+4); var fX100 = b[0] & 1, fInt = b[0] & 2; data.l+=4; - b[0] &= 0xFC; + b[0] &= 0xFC; // b[0] &= ~3; var RK = fInt === 0 ? __double([0,0,0,0,b[0],b[1],b[2],b[3]],0) : __readInt32LE(b,0)>>2; return fX100 ? RK/100 : RK; } @@ -111,6 +112,7 @@ function write_UncheckedRfX(r, o) { } /* [MS-XLSB] 2.5.171 */ +/* [MS-XLS] 2.5.342 */ function parse_Xnum(data, length) { return data.read_shift(8, 'f'); } function write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, 'f', data); } diff --git a/bits/29_xlsenum.js b/bits/29_xlsenum.js new file mode 100644 index 0000000..f9fc64e --- /dev/null +++ b/bits/29_xlsenum.js @@ -0,0 +1,265 @@ +/* [MS-OLEPS] 2.2 PropertyType */ +{ + var VT_EMPTY = 0x0000; + var VT_NULL = 0x0001; + var VT_I2 = 0x0002; + var VT_I4 = 0x0003; + var VT_R4 = 0x0004; + var VT_R8 = 0x0005; + var VT_CY = 0x0006; + var VT_DATE = 0x0007; + var VT_BSTR = 0x0008; + var VT_ERROR = 0x000A; + var VT_BOOL = 0x000B; + var VT_VARIANT = 0x000C; + var VT_DECIMAL = 0x000E; + var VT_I1 = 0x0010; + var VT_UI1 = 0x0011; + var VT_UI2 = 0x0012; + var VT_UI4 = 0x0013; + var VT_I8 = 0x0014; + var VT_UI8 = 0x0015; + var VT_INT = 0x0016; + var VT_UINT = 0x0017; + var VT_LPSTR = 0x001E; + var VT_LPWSTR = 0x001F; + var VT_FILETIME = 0x0040; + var VT_BLOB = 0x0041; + var VT_STREAM = 0x0042; + var VT_STORAGE = 0x0043; + var VT_STREAMED_Object = 0x0044; + var VT_STORED_Object = 0x0045; + var VT_BLOB_Object = 0x0046; + var VT_CF = 0x0047; + var VT_CLSID = 0x0048; + var VT_VERSIONED_STREAM = 0x0049; + var VT_VECTOR = 0x1000; + var VT_ARRAY = 0x2000; + + var VT_STRING = 0x0050; // 2.3.3.1.11 VtString + var VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString + var VT_CUSTOM = [VT_STRING, VT_USTR]; +} + +/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */ +var DocSummaryPIDDSI = { + 0x01: { n: 'CodePage', t: VT_I2 }, + 0x02: { n: 'Category', t: VT_STRING }, + 0x03: { n: 'PresentationFormat', t: VT_STRING }, + 0x04: { n: 'ByteCount', t: VT_I4 }, + 0x05: { n: 'LineCount', t: VT_I4 }, + 0x06: { n: 'ParagraphCount', t: VT_I4 }, + 0x07: { n: 'SlideCount', t: VT_I4 }, + 0x08: { n: 'NoteCount', t: VT_I4 }, + 0x09: { n: 'HiddenCount', t: VT_I4 }, + 0x0a: { n: 'MultimediaClipCount', t: VT_I4 }, + 0x0b: { n: 'Scale', t: VT_BOOL }, + 0x0c: { n: 'HeadingPair', t: VT_VECTOR | VT_VARIANT }, + 0x0d: { n: 'DocParts', t: VT_VECTOR | VT_LPSTR }, + 0x0e: { n: 'Manager', t: VT_STRING }, + 0x0f: { n: 'Company', t: VT_STRING }, + 0x10: { n: 'LinksDirty', t: VT_BOOL }, + 0x11: { n: 'CharacterCount', t: VT_I4 }, + 0x13: { n: 'SharedDoc', t: VT_BOOL }, + 0x16: { n: 'HLinksChanged', t: VT_BOOL }, + 0x17: { n: 'AppVersion', t: VT_I4, p: 'version' }, + 0x1A: { n: 'ContentType', t: VT_STRING }, + 0x1B: { n: 'ContentStatus', t: VT_STRING }, + 0x1C: { n: 'Language', t: VT_STRING }, + 0x1D: { n: 'Version', t: VT_STRING }, + 0xFF: {} +}; + +/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */ +var SummaryPIDSI = { + 0x01: { n: 'CodePage', t: VT_I2 }, + 0x02: { n: 'Title', t: VT_STRING }, + 0x03: { n: 'Subject', t: VT_STRING }, + 0x04: { n: 'Author', t: VT_STRING }, + 0x05: { n: 'Keywords', t: VT_STRING }, + 0x06: { n: 'Comments', t: VT_STRING }, + 0x07: { n: 'Template', t: VT_STRING }, + 0x08: { n: 'LastAuthor', t: VT_STRING }, + 0x09: { n: 'RevNumber', t: VT_STRING }, + 0x0A: { n: 'EditTime', t: VT_FILETIME }, + 0x0B: { n: 'LastPrinted', t: VT_FILETIME }, + 0x0C: { n: 'CreatedDate', t: VT_FILETIME }, + 0x0D: { n: 'ModifiedDate', t: VT_FILETIME }, + 0x0E: { n: 'PageCount', t: VT_I4 }, + 0x0F: { n: 'WordCount', t: VT_I4 }, + 0x10: { n: 'CharCount', t: VT_I4 }, + 0x11: { n: 'Thumbnail', t: VT_CF }, + 0x12: { n: 'ApplicationName', t: VT_LPSTR }, + 0x13: { n: 'DocumentSecurity', t: VT_I4 }, + 0xFF: {} +}; + +/* [MS-OLEPS] 2.18 */ +var SpecialProperties = { + 0x80000000: { n: 'Locale', t: VT_UI4 }, + 0x80000003: { n: 'Behavior', t: VT_UI4 }, + 0x72627262: {} +}; + +(function() { + for(var y in SpecialProperties) if(SpecialProperties.hasOwnProperty(y)) + DocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y]; +})(); + +/* [MS-XLS] 2.4.63 Country/Region codes */ +var CountryEnum = { + 0x0001: "US", // United States + 0x0002: "CA", // Canada + 0x0003: "", // Latin America (except Brazil) + 0x0007: "RU", // Russia + 0x0014: "EG", // Egypt + 0x001E: "GR", // Greece + 0x001F: "NL", // Netherlands + 0x0020: "BE", // Belgium + 0x0021: "FR", // France + 0x0022: "ES", // Spain + 0x0024: "HU", // Hungary + 0x0027: "IT", // Italy + 0x0029: "CH", // Switzerland + 0x002B: "AT", // Austria + 0x002C: "GB", // United Kingdom + 0x002D: "DK", // Denmark + 0x002E: "SE", // Sweden + 0x002F: "NO", // Norway + 0x0030: "PL", // Poland + 0x0031: "DE", // Germany + 0x0034: "MX", // Mexico + 0x0037: "BR", // Brazil + 0x003d: "AU", // Australia + 0x0040: "NZ", // New Zealand + 0x0042: "TH", // Thailand + 0x0051: "JP", // Japan + 0x0052: "KR", // Korea + 0x0054: "VN", // Viet Nam + 0x0056: "CN", // China + 0x005A: "TR", // Turkey + 0x0069: "JS", // Ramastan + 0x00D5: "DZ", // Algeria + 0x00D8: "MA", // Morocco + 0x00DA: "LY", // Libya + 0x015F: "PT", // Portugal + 0x0162: "IS", // Iceland + 0x0166: "FI", // Finland + 0x01A4: "CZ", // Czech Republic + 0x0376: "TW", // Taiwan + 0x03C1: "LB", // Lebanon + 0x03C2: "JO", // Jordan + 0x03C3: "SY", // Syria + 0x03C4: "IQ", // Iraq + 0x03C5: "KW", // Kuwait + 0x03C6: "SA", // Saudi Arabia + 0x03CB: "AE", // United Arab Emirates + 0x03CC: "IL", // Israel + 0x03CE: "QA", // Qatar + 0x03D5: "IR", // Iran + 0xFFFF: "US" // United States +}; + +/* [MS-XLS] 2.5.127 */ +var XLSFillPattern = [ + null, + 'solid', + 'mediumGray', + 'darkGray', + 'lightGray', + 'darkHorizontal', + 'darkVertical', + 'darkDown', + 'darkUp', + 'darkGrid', + 'darkTrellis', + 'lightHorizontal', + 'lightVertical', + 'lightDown', + 'lightUp', + 'lightGrid', + 'lightTrellis', + 'gray125', + 'gray0625' +]; + +function rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); } + +/* [MS-XLS] 2.5.161 */ +var XLSIcv = rgbify([ + /* Color Constants */ + 0x000000, + 0xFFFFFF, + 0xFF0000, + 0x00FF00, + 0x0000FF, + 0xFFFF00, + 0xFF00FF, + 0x00FFFF, + + /* Defaults */ + 0x000000, + 0xFFFFFF, + 0xFF0000, + 0x00FF00, + 0x0000FF, + 0xFFFF00, + 0xFF00FF, + 0x00FFFF, + + 0x800000, + 0x008000, + 0x000080, + 0x808000, + 0x800080, + 0x008080, + 0xC0C0C0, + 0x808080, + 0x9999FF, + 0x993366, + 0xFFFFCC, + 0xCCFFFF, + 0x660066, + 0xFF8080, + 0x0066CC, + 0xCCCCFF, + + 0x000080, + 0xFF00FF, + 0xFFFF00, + 0x00FFFF, + 0x800080, + 0x800000, + 0x008080, + 0x0000FF, + 0x00CCFF, + 0xCCFFFF, + 0xCCFFCC, + 0xFFFF99, + 0x99CCFF, + 0xFF99CC, + 0xCC99FF, + 0xFFCC99, + + 0x3366FF, + 0x33CCCC, + 0x99CC00, + 0xFFCC00, + 0xFF9900, + 0xFF6600, + 0x666699, + 0x969696, + 0x003366, + 0x339966, + 0x003300, + 0x333300, + 0x993300, + 0x993366, + 0x333399, + 0x333333, + + /* Sheet */ + 0xFFFFFF, + 0x000000 +]); + diff --git a/bits/36_xlsprops.js b/bits/36_xlsprops.js new file mode 100644 index 0000000..215b737 --- /dev/null +++ b/bits/36_xlsprops.js @@ -0,0 +1,8 @@ +function xlml_set_prop(Props, tag, val) { + /* TODO: Normalize the properties */ + switch(tag) { + case 'Description': tag = 'Comments'; break; + } + Props[tag] = val; +} + diff --git a/bits/38_xlstypes.js b/bits/38_xlstypes.js new file mode 100644 index 0000000..7744cc2 --- /dev/null +++ b/bits/38_xlstypes.js @@ -0,0 +1,440 @@ +/* [MS-DTYP] 2.3.3 FILETIME */ +/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */ +/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */ +function parse_FILETIME(blob) { + var dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4); + return new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\.000/,""); +} + +/* [MS-OSHARED] 2.3.3.1.4 Lpstr */ +function parse_lpstr(blob, type, pad) { + var str = blob.read_shift(0, 'lpstr'); + if(pad) blob.l += (4 - ((str.length+1) & 3)) & 3; + return str; +} + +/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */ +function parse_lpwstr(blob, type, pad) { + var str = blob.read_shift(0, 'lpwstr'); + if(pad) blob.l += (4 - ((str.length+1) & 3)) & 3; + return str; +} + + +/* [MS-OSHARED] 2.3.3.1.11 VtString */ +/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */ +function parse_VtStringBase(blob, stringType, pad) { + if(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob); + return parse_lpstr(blob, stringType, pad); +} + +function parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); } +function parse_VtUnalignedString(blob, t) { if(!t) throw new Error("dafuq?"); return parse_VtStringBase(blob, t, 0); } + +/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */ +function parse_VtVecUnalignedLpstrValue(blob) { + var length = blob.read_shift(4); + var ret = []; + for(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr'); + return ret; +} + +/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */ +function parse_VtVecUnalignedLpstr(blob) { + return parse_VtVecUnalignedLpstrValue(blob); +} + +/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */ +function parse_VtHeadingPair(blob) { + var headingString = parse_TypedPropertyValue(blob, VT_USTR); + var headerParts = parse_TypedPropertyValue(blob, VT_I4); + return [headingString, headerParts]; +} + +/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */ +function parse_VtVecHeadingPairValue(blob) { + var cElements = blob.read_shift(4); + var out = []; + for(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob)); + return out; +} + +/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */ +function parse_VtVecHeadingPair(blob) { + // NOTE: When invoked, wType & padding were already consumed + return parse_VtVecHeadingPairValue(blob); +} + +/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */ +function parse_dictionary(blob,CodePage) { + var cnt = blob.read_shift(4); + var dict = {}; + for(var j = 0; j != cnt; ++j) { + var pid = blob.read_shift(4); + var len = blob.read_shift(4); + dict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!'); + } + if(blob.l & 3) blob.l = (blob.l>>2+1)<<2; + return dict; +} + +/* [MS-OLEPS] 2.9 BLOB */ +function parse_BLOB(blob) { + var size = blob.read_shift(4); + var bytes = blob.slice(blob.l,blob.l+size); + if(size & 3 > 0) blob.l += (4 - (size & 3)) & 3; + return bytes; +} + +/* [MS-OLEPS] 2.11 ClipboardData */ +function parse_ClipboardData(blob) { + // TODO + var o = {}; + o.Size = blob.read_shift(4); + //o.Format = blob.read_shift(4); + blob.l += o.Size; + return o; +} + +/* [MS-OLEPS] 2.14 Vector and Array Property Types */ +function parse_VtVector(blob, cb) { + /* [MS-OLEPS] 2.14.2 VectorHeader */ +/* var Length = blob.read_shift(4); + var o = []; + for(var i = 0; i != Length; ++i) { + o.push(cb(blob)); + } + return o;*/ +} + +/* [MS-OLEPS] 2.15 TypedPropertyValue */ +function parse_TypedPropertyValue(blob, type, _opts) { + var t = blob.read_shift(2), ret, opts = _opts||{}; + blob.l += 2; + if(type !== VT_VARIANT) + if(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t); + switch(type === VT_VARIANT ? t : type) { + case 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret; + case 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret; + case 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0; + case 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret; + case 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,''); + case 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob); + case 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob); + case 0x41 /*VT_BLOB*/: return parse_BLOB(blob); + case 0x47 /*VT_CF*/: return parse_ClipboardData(blob); + case 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw && 4).replace(chr0,''); + case 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t, 4).replace(chr0,''); + case 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob); + case 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob); + default: throw new Error("TypedPropertyValue unrecognized type " + type + " " + t); + } +} +/* [MS-OLEPS] 2.14.2 VectorHeader */ +/*function parse_VTVectorVariant(blob) { + var Length = blob.read_shift(4); + + if(Length & 1 !== 0) throw new Error("VectorHeader Length=" + Length + " must be even"); + var o = []; + for(var i = 0; i != Length; ++i) { + o.push(parse_TypedPropertyValue(blob, VT_VARIANT)); + } + return o; +}*/ + +/* [MS-OLEPS] 2.20 PropertySet */ +function parse_PropertySet(blob, PIDSI) { + var start_addr = blob.l; + var size = blob.read_shift(4); + var NumProps = blob.read_shift(4); + var Props = [], i = 0; + var CodePage = 0; + var Dictionary = -1, DictObj; + for(i = 0; i != NumProps; ++i) { + var PropID = blob.read_shift(4); + var Offset = blob.read_shift(4); + Props[i] = [PropID, Offset + start_addr]; + } + var PropH = {}; + for(i = 0; i != NumProps; ++i) { + if(blob.l !== Props[i][1]) { + var fail = true; + if(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) { + case 0x02 /*VT_I2*/: if(blob.l +2 === Props[i][1]) { blob.l+=2; fail = false; } break; + case 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break; + case 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break; + } + if(!PIDSI && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; } + if(fail) throw new Error("Read Error: Expected address " + Props[i][1] + ' at ' + blob.l + ' :' + i); + } + if(PIDSI) { + var piddsi = PIDSI[Props[i][0]]; + PropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true}); + if(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + "." + String(PropH[piddsi.n] & 0xFFFF); + if(piddsi.n == "CodePage") switch(PropH[piddsi.n]) { + case 0: PropH[piddsi.n] = 1252; + /* falls through */ + case 10000: // OSX Roman + case 1252: // Windows Latin + + case 874: // SB Windows Thai + case 1250: // SB Windows Central Europe + case 1251: // SB Windows Cyrillic + case 1253: // SB Windows Greek + case 1254: // SB Windows Turkish + case 1255: // SB Windows Hebrew + case 1256: // SB Windows Arabic + case 1257: // SB Windows Baltic + case 1258: // SB Windows Vietnam + + case 932: // DB Windows Japanese Shift-JIS + case 936: // DB Windows Simplified Chinese GBK + case 949: // DB Windows Korean + case 950: // DB Windows Traditional Chinese Big5 + + case 1200: // UTF16LE + case 1201: // UTF16BE + case 65000: case -536: // UTF-7 + case 65001: case -535: // UTF-8 + set_cp(CodePage = PropH[piddsi.n]); break; + default: throw new Error("Unsupported CodePage: " + PropH[piddsi.n]); + } + } else { + if(Props[i][0] === 0x1) { + CodePage = PropH.CodePage = parse_TypedPropertyValue(blob, VT_I2); + set_cp(CodePage); + if(Dictionary !== -1) { + var oldpos = blob.l; + blob.l = Props[Dictionary][1]; + DictObj = parse_dictionary(blob,CodePage); + blob.l = oldpos; + } + } else if(Props[i][0] === 0) { + if(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; } + DictObj = parse_dictionary(blob,CodePage); + } else { + var name = DictObj[Props[i][0]]; + var val; + /* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */ + switch(blob[blob.l]) { + case 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break; + case 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break; + case 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break; + case 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break; + case 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break; + case 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break; + case 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break; + case 0x40 /*VT_FILETIME*/: blob.l += 4; val = new Date(parse_FILETIME(blob)); break; + default: throw new Error("unparsed value: " + blob[blob.l]); + } + PropH[name] = val; + } + } + } + blob.l = start_addr + size; /* step ahead to skip padding */ + return PropH; +} + +/* [MS-OLEPS] 2.21 PropertySetStream */ +function parse_PropertySetStream(file, PIDSI) { + var blob = file.content; + prep_blob(blob, 0); + + var NumSets, FMTID0, FMTID1, Offset0, Offset1; + blob.chk('feff', 'Byte Order: '); + + var vers = blob.read_shift(2); // TODO: check version + var SystemIdentifier = blob.read_shift(4); + blob.chk(CFB.utils.consts.HEADER_CLSID, 'CLSID: '); + NumSets = blob.read_shift(4); + if(NumSets !== 1 && NumSets !== 2) throw "Unrecognized #Sets: " + NumSets; + FMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4); + + if(NumSets === 1 && Offset0 !== blob.l) throw "Length mismatch"; + else if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); } + var PSet0 = parse_PropertySet(blob, PIDSI); + + var rval = { SystemIdentifier: SystemIdentifier }; + for(var y in PSet0) rval[y] = PSet0[y]; + //rval.blob = blob; + rval.FMTID = FMTID0; + //rval.PSet0 = PSet0; + if(NumSets === 1) return rval; + if(blob.l !== Offset1) throw "Length mismatch 2: " + blob.l + " !== " + Offset1; + var PSet1; + try { PSet1 = parse_PropertySet(blob, null); } catch(e) { } + for(y in PSet1) rval[y] = PSet1[y]; + rval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1 + return rval; +} + + +function parsenoop2(blob, length) { blob.read_shift(length); return null; } + +function parslurp(blob, length, cb) { + var arr = [], target = blob.l + length; + while(blob.l < target) arr.push(cb(blob, target - blob.l)); + if(target !== blob.l) throw new Error("Slurp error"); + return arr; +} + +function parslurp2(blob, length, cb) { + var arr = [], target = blob.l + length, len = blob.read_shift(2); + while(len-- !== 0) arr.push(cb(blob, target - blob.l)); + if(target !== blob.l) throw new Error("Slurp error"); + return arr; +} + +function parsebool(blob, length) { return blob.read_shift(length) === 0x1; } + +function parseuint16(blob) { return blob.read_shift(2, 'u'); } +function parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);} + +/* --- 2.5 Structures --- */ + +/* [MS-XLS] 2.5.14 Boolean */ +var parse_Boolean = parsebool; + +/* [MS-XLS] 2.5.10 Bes (boolean or error) */ +function parse_Bes(blob) { + var v = blob.read_shift(1), t = blob.read_shift(1); + return t === 0x01 ? v : v === 0x01; +} + +/* [MS-XLS] 2.5.240 ShortXLUnicodeString */ +function parse_ShortXLUnicodeString(blob, length, opts) { + var cch = blob.read_shift(1); + var width = 1, encoding = 'sbcs-cont'; + var cp = current_codepage; + if(opts && opts.biff >= 8) current_codepage = 1200; + if(opts === undefined || opts.biff !== 5) { + var fHighByte = blob.read_shift(1); + if(fHighByte) { width = 2; encoding = 'dbcs-cont'; } + } + var o = cch ? blob.read_shift(cch, encoding) : ""; + current_codepage = cp; + return o; +} + +/* 2.5.293 XLUnicodeRichExtendedString */ +function parse_XLUnicodeRichExtendedString(blob) { + var cp = current_codepage; + current_codepage = 1200; + var cch = blob.read_shift(2), flags = blob.read_shift(1); + var fHighByte = flags & 0x1, fExtSt = flags & 0x4, fRichSt = flags & 0x8; + var width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs + var cRun, cbExtRst; + var z = {}; + if(fRichSt) cRun = blob.read_shift(2); + if(fExtSt) cbExtRst = blob.read_shift(4); + var encoding = (flags & 0x1) ? 'dbcs-cont' : 'sbcs-cont'; + var msg = cch === 0 ? "" : blob.read_shift(cch, encoding); + if(fRichSt) blob.l += 4 * cRun; //TODO: parse this + if(fExtSt) blob.l += cbExtRst; //TODO: parse this + z.t = msg; + if(!fRichSt) { z.raw = "" + z.t + ""; z.r = z.t; } + current_codepage = cp; + return z; +} + +/* 2.5.296 XLUnicodeStringNoCch */ +function parse_XLUnicodeStringNoCch(blob, cch, opts) { + var retval; + var fHighByte = blob.read_shift(1); + if(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); } + else { retval = blob.read_shift(cch, 'dbcs-cont'); } + return retval; +} + +/* 2.5.294 XLUnicodeString */ +function parse_XLUnicodeString(blob, length, opts) { + var cch = blob.read_shift(opts !== undefined && opts.biff > 0 && opts.biff < 8 ? 1 : 2); + if(cch === 0) { blob.l++; return ""; } + return parse_XLUnicodeStringNoCch(blob, cch, opts); +} +/* BIFF5 override */ +function parse_XLUnicodeString2(blob, length, opts) { + if(opts.biff !== 5 && opts.biff !== 2) return parse_XLUnicodeString(blob, length, opts); + var cch = blob.read_shift(1); + if(cch === 0) { blob.l++; return ""; } + return blob.read_shift(cch, 'sbcs-cont'); +} + +/* [MS-XLS] 2.5.61 ControlInfo */ +var parse_ControlInfo = parsenoop; + +/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */ +var parse_URLMoniker = function(blob, length) { + var len = blob.read_shift(4), start = blob.l; + var extra = false; + if(len > 24) { + /* look ahead */ + blob.l += len - 24; + if(blob.read_shift(16) === "795881f43b1d7f48af2c825dc4852763") extra = true; + blob.l = start; + } + var url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,""); + if(extra) blob.l += 24; + return url; +}; + +/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */ +var parse_FileMoniker = function(blob, length) { + var cAnti = blob.read_shift(2); + var ansiLength = blob.read_shift(4); + var ansiPath = blob.read_shift(ansiLength, 'cstr'); + var endServer = blob.read_shift(2); + var versionNumber = blob.read_shift(2); + var cbUnicodePathSize = blob.read_shift(4); + if(cbUnicodePathSize === 0) return ansiPath.replace(/\\/g,"/"); + var cbUnicodePathBytes = blob.read_shift(4); + var usKeyValue = blob.read_shift(2); + var unicodePath = blob.read_shift(cbUnicodePathBytes>>1, 'utf16le').replace(chr0,""); + return unicodePath; +}; + +/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */ +var parse_HyperlinkMoniker = function(blob, length) { + var clsid = blob.read_shift(16); length -= 16; + switch(clsid) { + case "e0c9ea79f9bace118c8200aa004ba90b": return parse_URLMoniker(blob, length); + case "0303000000000000c000000000000046": return parse_FileMoniker(blob, length); + default: throw "unsupported moniker " + clsid; + } +}; + +/* [MS-OSHARED] 2.3.7.9 HyperlinkString */ +var parse_HyperlinkString = function(blob, length) { + var len = blob.read_shift(4); + var o = blob.read_shift(len, 'utf16le').replace(chr0, ""); + return o; +}; + +/* [MS-OSHARED] 2.3.7.1 Hyperlink Object TODO: unify params with XLSX */ +var parse_Hyperlink = function(blob, length) { + var end = blob.l + length; + var sVer = blob.read_shift(4); + if(sVer !== 2) throw new Error("Unrecognized streamVersion: " + sVer); + var flags = blob.read_shift(2); + blob.l += 2; + var displayName, targetFrameName, moniker, oleMoniker, location, guid, fileTime; + if(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l); + if(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l); + if((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l); + if((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l); + if(flags & 0x0008) location = parse_HyperlinkString(blob, end - blob.l); + if(flags & 0x0020) guid = blob.read_shift(16); + if(flags & 0x0040) fileTime = parse_FILETIME(blob, 8); + blob.l = end; + var target = (targetFrameName||moniker||oleMoniker); + if(location) target+="#"+location; + return {Target: target}; +}; + +/* 2.5.178 LongRGBA */ +function parse_LongRGBA(blob, length) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; } + +/* 2.5.177 LongRGB */ +function parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; } + + diff --git a/bits/39_xlsbiff.js b/bits/39_xlsbiff.js new file mode 100644 index 0000000..153b7a4 --- /dev/null +++ b/bits/39_xlsbiff.js @@ -0,0 +1,917 @@ +/* --- MS-XLS --- */ + +/* 2.5.19 */ +function parse_XLSCell(blob, length) { + var rw = blob.read_shift(2); // 0-indexed + var col = blob.read_shift(2); + var ixfe = blob.read_shift(2); + return {r:rw, c:col, ixfe:ixfe}; +} + +/* 2.5.134 */ +function parse_frtHeader(blob) { + var rt = blob.read_shift(2); + var flags = blob.read_shift(2); // TODO: parse these flags + blob.l += 8; + return {type: rt, flags: flags}; +} + + + +function parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? "" : parse_XLUnicodeString2(blob, length, opts); } + +/* 2.5.158 */ +var HIDEOBJENUM = ['SHOWALL', 'SHOWPLACEHOLDER', 'HIDEALL']; +var parse_HideObjEnum = parseuint16; + +/* 2.5.344 */ +function parse_XTI(blob, length) { + var iSupBook = blob.read_shift(2), itabFirst = blob.read_shift(2,'i'), itabLast = blob.read_shift(2,'i'); + return [iSupBook, itabFirst, itabLast]; +} + +/* 2.5.218 */ +function parse_RkRec(blob, length) { + var ixfe = blob.read_shift(2); + var RK = parse_RkNumber(blob); + //console.log("::", ixfe, RK,";;"); + return [ixfe, RK]; +} + +/* 2.5.1 */ +function parse_AddinUdf(blob, length) { + blob.l += 4; length -= 4; + var l = blob.l + length; + var udfName = parse_ShortXLUnicodeString(blob, length); + var cb = blob.read_shift(2); + l -= blob.l; + if(cb !== l) throw "Malformed AddinUdf: padding = " + l + " != " + cb; + blob.l += cb; + return udfName; +} + +/* 2.5.209 TODO: Check sizes */ +function parse_Ref8U(blob, length) { + var rwFirst = blob.read_shift(2); + var rwLast = blob.read_shift(2); + var colFirst = blob.read_shift(2); + var colLast = blob.read_shift(2); + return {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}}; +} + +/* 2.5.211 */ +function parse_RefU(blob, length) { + var rwFirst = blob.read_shift(2); + var rwLast = blob.read_shift(2); + var colFirst = blob.read_shift(1); + var colLast = blob.read_shift(1); + return {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}}; +} + +/* 2.5.207 */ +var parse_Ref = parse_RefU; + +/* 2.5.143 */ +function parse_FtCmo(blob, length) { + blob.l += 4; + var ot = blob.read_shift(2); + var id = blob.read_shift(2); + var flags = blob.read_shift(2); + blob.l+=12; + return [id, ot, flags]; +} + +/* 2.5.149 */ +function parse_FtNts(blob, length) { + var out = {}; + blob.l += 4; + blob.l += 16; // GUID TODO + out.fSharedNote = blob.read_shift(2); + blob.l += 4; + return out; +} + +/* 2.5.142 */ +function parse_FtCf(blob, length) { + var out = {}; + blob.l += 4; + blob.cf = blob.read_shift(2); + return out; +} + +/* 2.5.140 - 2.5.154 and friends */ +var FtTab = { + 0x15: parse_FtCmo, + 0x13: parsenoop, /* FtLbsData */ + 0x12: function(blob, length) { blob.l += 12; }, /* FtCblsData */ + 0x11: function(blob, length) { blob.l += 8; }, /* FtRboData */ + 0x10: parsenoop, /* FtEdoData */ + 0x0F: parsenoop, /* FtGboData */ + 0x0D: parse_FtNts, /* FtNts */ + 0x0C: function(blob, length) { blob.l += 24; }, /* FtSbs */ + 0x0B: function(blob, length) { blob.l += 10; }, /* FtRbo */ + 0x0A: function(blob, length) { blob.l += 16; }, /* FtCbls */ + 0x09: parsenoop, /* FtPictFmla */ + 0x08: function(blob, length) { blob.l += 6; }, /* FtPioGrbit */ + 0x07: parse_FtCf, /* FtCf */ + 0x06: function(blob, length) { blob.l += 6; }, /* FtGmo */ + 0x04: parsenoop, /* FtMacro */ + 0x00: function(blob, length) { blob.l += 4; } /* FtEnding */ +}; +function parse_FtArray(blob, length, ot) { + var s = blob.l; + var fts = []; + while(blob.l < s + length) { + var ft = blob.read_shift(2); + blob.l-=2; + try { + fts.push(FtTab[ft](blob, s + length - blob.l)); + } catch(e) { blob.l = s + length; return fts; } + } + if(blob.l != s + length) blob.l = s + length; //throw "bad Object Ft-sequence"; + return fts; +} + +/* 2.5.129 */ +var parse_FontIndex = parseuint16; + +/* --- 2.4 Records --- */ + +/* 2.4.21 */ +function parse_BOF(blob, length) { + var o = {}; + o.BIFFVer = blob.read_shift(2); length -= 2; + switch(o.BIFFVer) { + case 0x0600: /* BIFF8 */ + case 0x0500: /* BIFF5 */ + case 0x0002: case 0x0007: /* BIFF2 */ + break; + default: throw "Unexpected BIFF Ver " + o.BIFFVer; + } + blob.read_shift(length); + return o; +} + + +/* 2.4.146 */ +function parse_InterfaceHdr(blob, length) { + if(length === 0) return 0x04b0; + var q; + if((q=blob.read_shift(2))!==0x04b0) throw 'InterfaceHdr codePage ' + q; + return 0x04b0; +} + + +/* 2.4.349 */ +function parse_WriteAccess(blob, length, opts) { + if(opts.enc) { blob.l += length; return ""; } + var l = blob.l; + // TODO: make sure XLUnicodeString doesnt overrun + var UserName = parse_XLUnicodeString(blob, 0, opts); + blob.read_shift(length + l - blob.l); + return UserName; +} + +/* 2.4.28 */ +function parse_BoundSheet8(blob, length, opts) { + var pos = blob.read_shift(4); + var hidden = blob.read_shift(1) >> 6; + var dt = blob.read_shift(1); + switch(dt) { + case 0: dt = 'Worksheet'; break; + case 1: dt = 'Macrosheet'; break; + case 2: dt = 'Chartsheet'; break; + case 6: dt = 'VBAModule'; break; + } + var name = parse_ShortXLUnicodeString(blob, 0, opts); + if(name.length === 0) name = "Sheet1"; + return { pos:pos, hs:hidden, dt:dt, name:name }; +} + +/* 2.4.265 TODO */ +function parse_SST(blob, length) { + var cnt = blob.read_shift(4); + var ucnt = blob.read_shift(4); + var strs = []; + for(var i = 0; i != ucnt; ++i) { + strs.push(parse_XLUnicodeRichExtendedString(blob)); + } + strs.Count = cnt; strs.Unique = ucnt; + return strs; +} + +/* 2.4.107 */ +function parse_ExtSST(blob, length) { + var extsst = {}; + extsst.dsst = blob.read_shift(2); + blob.l += length-2; + return extsst; +} + + +/* 2.4.221 TODO*/ +function parse_Row(blob, length) { + var rw = blob.read_shift(2), col = blob.read_shift(2), Col = blob.read_shift(2), rht = blob.read_shift(2); + blob.read_shift(4); // reserved(2), unused(2) + var flags = blob.read_shift(1); // various flags + blob.read_shift(1); // reserved + blob.read_shift(2); //ixfe, other flags + return {r:rw, c:col, cnt:Col-col}; +} + + +/* 2.4.125 */ +function parse_ForceFullCalculation(blob, length) { + var header = parse_frtHeader(blob); + if(header.type != 0x08A3) throw "Invalid Future Record " + header.type; + var fullcalc = blob.read_shift(4); + return fullcalc !== 0x0; +} + + +var parse_CompressPictures = parsenoop2; /* 2.4.55 Not interesting */ + + + +/* 2.4.215 rt */ +function parse_RecalcId(blob, length) { + blob.read_shift(2); + return blob.read_shift(4); +} + +/* 2.4.87 */ +function parse_DefaultRowHeight (blob, length) { + var f = blob.read_shift(2), miyRw; + miyRw = blob.read_shift(2); // flags & 0x02 -> hidden, else empty + var fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3}; + return [fl, miyRw]; +} + +/* 2.4.345 TODO */ +function parse_Window1(blob, length) { + var xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2); + var flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2); + var ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2); + return { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur, + FirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio }; +} + +/* 2.4.122 TODO */ +function parse_Font(blob, length, opts) { + blob.l += 14; + var name = parse_ShortXLUnicodeString(blob, 0, opts); + return name; +} + +/* 2.4.149 */ +function parse_LabelSst(blob, length) { + var cell = parse_XLSCell(blob); + cell.isst = blob.read_shift(4); + return cell; +} + +/* 2.4.148 */ +function parse_Label(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + var str = parse_XLUnicodeString(blob, length-6, opts); + cell.val = str; + return cell; +} + +/* 2.4.126 Number Formats */ +function parse_Format(blob, length, opts) { + var ifmt = blob.read_shift(2); + var fmtstr = parse_XLUnicodeString2(blob, 0, opts); + return [ifmt, fmtstr]; +} + +/* 2.4.90 */ +function parse_Dimensions(blob, length) { + var w = length === 10 ? 2 : 4; + var r = blob.read_shift(w), R = blob.read_shift(w), + c = blob.read_shift(2), C = blob.read_shift(2); + blob.l += 2; + return {s: {r:r, c:c}, e: {r:R, c:C}}; +} + +/* 2.4.220 */ +function parse_RK(blob, length) { + var rw = blob.read_shift(2), col = blob.read_shift(2); + var rkrec = parse_RkRec(blob); + return {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]}; +} + +/* 2.4.175 */ +function parse_MulRk(blob, length) { + var target = blob.l + length - 2; + var rw = blob.read_shift(2), col = blob.read_shift(2); + var rkrecs = []; + while(blob.l < target) rkrecs.push(parse_RkRec(blob)); + if(blob.l !== target) throw "MulRK read error"; + var lastcol = blob.read_shift(2); + if(rkrecs.length != lastcol - col + 1) throw "MulRK length mismatch"; + return {r:rw, c:col, C:lastcol, rkrec:rkrecs}; +} + +/* 2.5.20 2.5.249 TODO */ +function parse_CellStyleXF(blob, length, style) { + var o = {}; + var a = blob.read_shift(4), b = blob.read_shift(4); + var c = blob.read_shift(4), d = blob.read_shift(2); + o.patternType = XLSFillPattern[c >> 26]; + o.icvFore = d & 0x7F; + o.icvBack = (d >> 7) & 0x7F; + return o; +} +function parse_CellXF(blob, length) {return parse_CellStyleXF(blob,length,0);} +function parse_StyleXF(blob, length) {return parse_CellStyleXF(blob,length,1);} + +/* 2.4.353 TODO: actually do this right */ +function parse_XF(blob, length) { + var o = {}; + o.ifnt = blob.read_shift(2); o.ifmt = blob.read_shift(2); o.flags = blob.read_shift(2); + o.fStyle = (o.flags >> 2) & 0x01; + length -= 6; + o.data = parse_CellStyleXF(blob, length, o.fStyle); + return o; +} + +/* 2.4.134 */ +function parse_Guts(blob, length) { + blob.l += 4; + var out = [blob.read_shift(2), blob.read_shift(2)]; + if(out[0] !== 0) out[0]--; + if(out[1] !== 0) out[1]--; + if(out[0] > 7 || out[1] > 7) throw "Bad Gutters: " + out; + return out; +} + +/* 2.4.24 */ +function parse_BoolErr(blob, length) { + var cell = parse_XLSCell(blob, 6); + var val = parse_Bes(blob, 2); + cell.val = val; + cell.t = (val === true || val === false) ? 'b' : 'e'; + return cell; +} + +/* 2.4.180 Number */ +function parse_Number(blob, length) { + var cell = parse_XLSCell(blob, 6); + var xnum = parse_Xnum(blob, 8); + cell.val = xnum; + return cell; +} + +var parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136 + +/* 2.4.271 */ +function parse_SupBook(blob, length, opts) { + var end = blob.l + length; + var ctab = blob.read_shift(2); + var cch = blob.read_shift(2); + var virtPath; + if(cch >=0x01 && cch <=0xff) virtPath = parse_XLUnicodeStringNoCch(blob, cch); + var rgst = blob.read_shift(end - blob.l); + opts.sbcch = cch; + return [cch, ctab, virtPath, rgst]; +} + +/* 2.4.105 TODO */ +function parse_ExternName(blob, length, opts) { + var flags = blob.read_shift(2); + var body; + var o = { + fBuiltIn: flags & 0x01, + fWantAdvise: (flags >>> 1) & 0x01, + fWantPict: (flags >>> 2) & 0x01, + fOle: (flags >>> 3) & 0x01, + fOleLink: (flags >>> 4) & 0x01, + cf: (flags >>> 5) & 0x3FF, + fIcon: flags >>> 15 & 0x01 + }; + if(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2); + //else throw new Error("unsupported SupBook cch: " + opts.sbcch); + o.body = body || blob.read_shift(length-2); + return o; +} + +/* 2.4.150 TODO */ +function parse_Lbl(blob, length, opts) { + if(opts.biff < 8) return parse_Label(blob, length, opts); + var target = blob.l + length; + var flags = blob.read_shift(2); + var chKey = blob.read_shift(1); + var cch = blob.read_shift(1); + var cce = blob.read_shift(2); + blob.l += 2; + var itab = blob.read_shift(2); + blob.l += 4; + var name = parse_XLUnicodeStringNoCch(blob, cch, opts); + var rgce = parse_NameParsedFormula(blob, target - blob.l, opts, cce); + return { + chKey: chKey, + Name: name, + rgce: rgce + }; +} + +/* 2.4.106 TODO: verify supbook manipulation */ +function parse_ExternSheet(blob, length, opts) { + if(opts.biff < 8) return parse_ShortXLUnicodeString(blob, length, opts); + var o = parslurp2(blob,length,parse_XTI); + var oo = []; + if(opts.sbcch === 0x0401) { + for(var i = 0; i != o.length; ++i) oo.push(opts.snames[o[i][1]]); + return oo; + } + else return o; +} + +/* 2.4.260 */ +function parse_ShrFmla(blob, length, opts) { + var ref = parse_RefU(blob, 6); + blob.l++; + var cUse = blob.read_shift(1); + length -= 8; + return [parse_SharedParsedFormula(blob, length, opts), cUse]; +} + +/* 2.4.4 TODO */ +function parse_Array(blob, length, opts) { + var ref = parse_Ref(blob, 6); + blob.l += 6; length -= 12; /* TODO: fAlwaysCalc */ + return [ref, parse_ArrayParsedFormula(blob, length, opts, ref)]; +} + +/* 2.4.173 */ +function parse_MTRSettings(blob, length) { + var fMTREnabled = blob.read_shift(4) !== 0x00; + var fUserSetThreadCount = blob.read_shift(4) !== 0x00; + var cUserThreadCount = blob.read_shift(4); + return [fMTREnabled, fUserSetThreadCount, cUserThreadCount]; +} + +/* 2.5.186 TODO: BIFF5 */ +function parse_NoteSh(blob, length, opts) { + if(opts.biff < 8) return; + var row = blob.read_shift(2), col = blob.read_shift(2); + var flags = blob.read_shift(2), idObj = blob.read_shift(2); + var stAuthor = parse_XLUnicodeString2(blob, 0, opts); + if(opts.biff < 8) blob.read_shift(1); + return [{r:row,c:col}, stAuthor, idObj, flags]; +} + +/* 2.4.179 */ +function parse_Note(blob, length, opts) { + /* TODO: Support revisions */ + return parse_NoteSh(blob, length, opts); +} + +/* 2.4.168 */ +function parse_MergeCells(blob, length) { + var merges = []; + var cmcs = blob.read_shift(2); + while (cmcs--) merges.push(parse_Ref8U(blob,length)); + return merges; +} + +/* 2.4.181 TODO: parse all the things! */ +function parse_Obj(blob, length) { + var cmo = parse_FtCmo(blob, 22); // id, ot, flags + var fts = parse_FtArray(blob, length-22, cmo[1]); + return { cmo: cmo, ft:fts }; +} + +/* 2.4.329 TODO: parse properly */ +function parse_TxO(blob, length, opts) { + var s = blob.l; +try { + blob.l += 4; + var ot = (opts.lastobj||{cmo:[0,0]}).cmo[1]; + var controlInfo; + if([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6; + else controlInfo = parse_ControlInfo(blob, 6, opts); + var cchText = blob.read_shift(2); + var cbRuns = blob.read_shift(2); + var ifntEmpty = parse_FontIndex(blob, 2); + var len = blob.read_shift(2); + blob.l += len; + //var fmla = parse_ObjFmla(blob, s + length - blob.l); + + var texts = ""; + for(var i = 1; i < blob.lens.length-1; ++i) { + if(blob.l-s != blob.lens[i]) throw "TxO: bad continue record"; + var hdr = blob[blob.l]; + var t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1); + texts += t; + if(texts.length >= (hdr ? cchText : 2*cchText)) break; + } + if(texts.length !== cchText && texts.length !== cchText*2) { + throw "cchText: " + cchText + " != " + texts.length; + } + + blob.l = s + length; + /* 2.5.272 TxORuns */ +// var rgTxoRuns = []; +// for(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8; +// var cchText2 = blob.read_shift(2); +// if(cchText2 !== cchText) throw "TxOLastRun mismatch: " + cchText2 + " " + cchText; +// blob.l += 6; +// if(s + length != blob.l) throw "TxO " + (s + length) + ", at " + blob.l; + return { t: texts }; +} catch(e) { blob.l = s + length; return { t: texts||"" }; } +} + +/* 2.4.140 */ +var parse_HLink = function(blob, length) { + var ref = parse_Ref8U(blob, 8); + blob.l += 16; /* CLSID */ + var hlink = parse_Hyperlink(blob, length-24); + return [ref, hlink]; +}; + +/* 2.4.141 */ +var parse_HLinkTooltip = function(blob, length) { + var end = blob.l + length; + blob.read_shift(2); + var ref = parse_Ref8U(blob, 8); + var wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont'); + wzTooltip = wzTooltip.replace(chr0,""); + return [ref, wzTooltip]; +}; + +/* 2.4.63 */ +function parse_Country(blob, length) { + var o = [], d; + d = blob.read_shift(2); o[0] = CountryEnum[d] || d; + d = blob.read_shift(2); o[1] = CountryEnum[d] || d; + return o; +} + +/* 2.4.50 ClrtClient */ +function parse_ClrtClient(blob, length) { + var ccv = blob.read_shift(2); + var o = []; + while(ccv-->0) o.push(parse_LongRGB(blob, 8)); + return o; +} + +/* 2.4.188 */ +function parse_Palette(blob, length) { + var ccv = blob.read_shift(2); + var o = []; + while(ccv-->0) o.push(parse_LongRGB(blob, 8)); + return o; +} + +/* 2.4.354 */ +function parse_XFCRC(blob, length) { + blob.l += 2; + var o = {cxfs:0, crc:0}; + o.cxfs = blob.read_shift(2); + o.crc = blob.read_shift(4); + return o; +} + + +var parse_Style = parsenoop; +var parse_StyleExt = parsenoop; + +var parse_ColInfo = parsenoop; + +var parse_Window2 = parsenoop; + + +var parse_Backup = parsebool; /* 2.4.14 */ +var parse_Blank = parse_XLSCell; /* 2.4.20 Just the cell */ +var parse_BottomMargin = parse_Xnum; /* 2.4.27 */ +var parse_BuiltInFnGroupCount = parseuint16; /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ +var parse_CalcCount = parseuint16; /* 2.4.31 #Iterations */ +var parse_CalcDelta = parse_Xnum; /* 2.4.32 */ +var parse_CalcIter = parsebool; /* 2.4.33 1=iterative calc */ +var parse_CalcMode = parseuint16; /* 2.4.34 0=manual, 1=auto (def), 2=table */ +var parse_CalcPrecision = parsebool; /* 2.4.35 */ +var parse_CalcRefMode = parsenoop2; /* 2.4.36 */ +var parse_CalcSaveRecalc = parsebool; /* 2.4.37 */ +var parse_CodePage = parseuint16; /* 2.4.52 */ +var parse_Compat12 = parsebool; /* 2.4.54 true = no compatibility check */ +var parse_Date1904 = parsebool; /* 2.4.77 - 1=1904,0=1900 */ +var parse_DefColWidth = parseuint16; /* 2.4.89 */ +var parse_DSF = parsenoop2; /* 2.4.94 -- MUST be ignored */ +var parse_EntExU2 = parsenoop2; /* 2.4.102 -- Explicitly says to ignore */ +var parse_EOF = parsenoop2; /* 2.4.103 */ +var parse_Excel9File = parsenoop2; /* 2.4.104 -- Optional and unused */ +var parse_FeatHdr = parsenoop2; /* 2.4.112 */ +var parse_FontX = parseuint16; /* 2.4.123 */ +var parse_Footer = parse_XLHeaderFooter; /* 2.4.124 */ +var parse_GridSet = parseuint16; /* 2.4.132, =1 */ +var parse_HCenter = parsebool; /* 2.4.135 sheet centered horizontal on print */ +var parse_Header = parse_XLHeaderFooter; /* 2.4.136 */ +var parse_HideObj = parse_HideObjEnum; /* 2.4.139 */ +var parse_InterfaceEnd = parsenoop2; /* 2.4.145 -- noop */ +var parse_LeftMargin = parse_Xnum; /* 2.4.151 */ +var parse_Mms = parsenoop2; /* 2.4.169 -- Explicitly says to ignore */ +var parse_ObjProtect = parsebool; /* 2.4.183 -- must be 1 if present */ +var parse_Password = parseuint16; /* 2.4.191 */ +var parse_PrintGrid = parsebool; /* 2.4.202 */ +var parse_PrintRowCol = parsebool; /* 2.4.203 */ +var parse_PrintSize = parseuint16; /* 2.4.204 0:3 */ +var parse_Prot4Rev = parsebool; /* 2.4.205 */ +var parse_Prot4RevPass = parseuint16; /* 2.4.206 */ +var parse_Protect = parsebool; /* 2.4.207 */ +var parse_RefreshAll = parsebool; /* 2.4.217 -- must be 0 if not template */ +var parse_RightMargin = parse_Xnum; /* 2.4.219 */ +var parse_RRTabId = parseuint16a; /* 2.4.241 */ +var parse_ScenarioProtect = parsebool; /* 2.4.245 */ +var parse_Scl = parseuint16a; /* 2.4.247 num, den */ +var parse_String = parse_XLUnicodeString; /* 2.4.268 */ +var parse_SxBool = parsebool; /* 2.4.274 */ +var parse_TopMargin = parse_Xnum; /* 2.4.328 */ +var parse_UsesELFs = parsebool; /* 2.4.337 -- should be 0 */ +var parse_VCenter = parsebool; /* 2.4.342 */ +var parse_WinProtect = parsebool; /* 2.4.347 */ +var parse_WriteProtect = parsenoop; /* 2.4.350 empty record */ + + +/* ---- */ +var parse_VerticalPageBreaks = parsenoop; +var parse_HorizontalPageBreaks = parsenoop; +var parse_Selection = parsenoop; +var parse_Continue = parsenoop; +var parse_Pane = parsenoop; +var parse_Pls = parsenoop; +var parse_DCon = parsenoop; +var parse_DConRef = parsenoop; +var parse_DConName = parsenoop; +var parse_XCT = parsenoop; +var parse_CRN = parsenoop; +var parse_FileSharing = parsenoop; +var parse_Uncalced = parsenoop; +var parse_Template = parsenoop; +var parse_Intl = parsenoop; +var parse_WsBool = parsenoop; +var parse_Sort = parsenoop; +var parse_Sync = parsenoop; +var parse_LPr = parsenoop; +var parse_DxGCol = parsenoop; +var parse_FnGroupName = parsenoop; +var parse_FilterMode = parsenoop; +var parse_AutoFilterInfo = parsenoop; +var parse_AutoFilter = parsenoop; +var parse_Setup = parsenoop; +var parse_ScenMan = parsenoop; +var parse_SCENARIO = parsenoop; +var parse_SxView = parsenoop; +var parse_Sxvd = parsenoop; +var parse_SXVI = parsenoop; +var parse_SxIvd = parsenoop; +var parse_SXLI = parsenoop; +var parse_SXPI = parsenoop; +var parse_DocRoute = parsenoop; +var parse_RecipName = parsenoop; +var parse_MulBlank = parsenoop; +var parse_SXDI = parsenoop; +var parse_SXDB = parsenoop; +var parse_SXFDB = parsenoop; +var parse_SXDBB = parsenoop; +var parse_SXNum = parsenoop; +var parse_SxErr = parsenoop; +var parse_SXInt = parsenoop; +var parse_SXString = parsenoop; +var parse_SXDtr = parsenoop; +var parse_SxNil = parsenoop; +var parse_SXTbl = parsenoop; +var parse_SXTBRGIITM = parsenoop; +var parse_SxTbpg = parsenoop; +var parse_ObProj = parsenoop; +var parse_SXStreamID = parsenoop; +var parse_DBCell = parsenoop; +var parse_SXRng = parsenoop; +var parse_SxIsxoper = parsenoop; +var parse_BookBool = parsenoop; +var parse_DbOrParamQry = parsenoop; +var parse_OleObjectSize = parsenoop; +var parse_SXVS = parsenoop; +var parse_BkHim = parsenoop; +var parse_MsoDrawingGroup = parsenoop; +var parse_MsoDrawing = parsenoop; +var parse_MsoDrawingSelection = parsenoop; +var parse_PhoneticInfo = parsenoop; +var parse_SxRule = parsenoop; +var parse_SXEx = parsenoop; +var parse_SxFilt = parsenoop; +var parse_SxDXF = parsenoop; +var parse_SxItm = parsenoop; +var parse_SxName = parsenoop; +var parse_SxSelect = parsenoop; +var parse_SXPair = parsenoop; +var parse_SxFmla = parsenoop; +var parse_SxFormat = parsenoop; +var parse_SXVDEx = parsenoop; +var parse_SXFormula = parsenoop; +var parse_SXDBEx = parsenoop; +var parse_RRDInsDel = parsenoop; +var parse_RRDHead = parsenoop; +var parse_RRDChgCell = parsenoop; +var parse_RRDRenSheet = parsenoop; +var parse_RRSort = parsenoop; +var parse_RRDMove = parsenoop; +var parse_RRFormat = parsenoop; +var parse_RRAutoFmt = parsenoop; +var parse_RRInsertSh = parsenoop; +var parse_RRDMoveBegin = parsenoop; +var parse_RRDMoveEnd = parsenoop; +var parse_RRDInsDelBegin = parsenoop; +var parse_RRDInsDelEnd = parsenoop; +var parse_RRDConflict = parsenoop; +var parse_RRDDefName = parsenoop; +var parse_RRDRstEtxp = parsenoop; +var parse_LRng = parsenoop; +var parse_CUsr = parsenoop; +var parse_CbUsr = parsenoop; +var parse_UsrInfo = parsenoop; +var parse_UsrExcl = parsenoop; +var parse_FileLock = parsenoop; +var parse_RRDInfo = parsenoop; +var parse_BCUsrs = parsenoop; +var parse_UsrChk = parsenoop; +var parse_UserBView = parsenoop; +var parse_UserSViewBegin = parsenoop; // overloaded +var parse_UserSViewEnd = parsenoop; +var parse_RRDUserView = parsenoop; +var parse_Qsi = parsenoop; +var parse_CondFmt = parsenoop; +var parse_CF = parsenoop; +var parse_DVal = parsenoop; +var parse_DConBin = parsenoop; +var parse_Lel = parsenoop; +var parse_XLSCodeName = parse_XLUnicodeString; +var parse_SXFDBType = parsenoop; +var parse_ObNoMacros = parsenoop; +var parse_Dv = parsenoop; +var parse_Index = parsenoop; +var parse_Table = parsenoop; +var parse_BigName = parsenoop; +var parse_ContinueBigName = parsenoop; +var parse_WebPub = parsenoop; +var parse_QsiSXTag = parsenoop; +var parse_DBQueryExt = parsenoop; +var parse_ExtString = parsenoop; +var parse_TxtQry = parsenoop; +var parse_Qsir = parsenoop; +var parse_Qsif = parsenoop; +var parse_RRDTQSIF = parsenoop; +var parse_OleDbConn = parsenoop; +var parse_WOpt = parsenoop; +var parse_SXViewEx = parsenoop; +var parse_SXTH = parsenoop; +var parse_SXPIEx = parsenoop; +var parse_SXVDTEx = parsenoop; +var parse_SXViewEx9 = parsenoop; +var parse_ContinueFrt = parsenoop; +var parse_RealTimeData = parsenoop; +var parse_ChartFrtInfo = parsenoop; +var parse_FrtWrapper = parsenoop; +var parse_StartBlock = parsenoop; +var parse_EndBlock = parsenoop; +var parse_StartObject = parsenoop; +var parse_EndObject = parsenoop; +var parse_CatLab = parsenoop; +var parse_YMult = parsenoop; +var parse_SXViewLink = parsenoop; +var parse_PivotChartBits = parsenoop; +var parse_FrtFontList = parsenoop; +var parse_SheetExt = parsenoop; +var parse_BookExt = parsenoop; +var parse_SXAddl = parsenoop; +var parse_CrErr = parsenoop; +var parse_HFPicture = parsenoop; +var parse_Feat = parsenoop; +var parse_DataLabExt = parsenoop; +var parse_DataLabExtContents = parsenoop; +var parse_CellWatch = parsenoop; +var parse_FeatHdr11 = parsenoop; +var parse_Feature11 = parsenoop; +var parse_DropDownObjIds = parsenoop; +var parse_ContinueFrt11 = parsenoop; +var parse_DConn = parsenoop; +var parse_List12 = parsenoop; +var parse_Feature12 = parsenoop; +var parse_CondFmt12 = parsenoop; +var parse_CF12 = parsenoop; +var parse_CFEx = parsenoop; +var parse_AutoFilter12 = parsenoop; +var parse_ContinueFrt12 = parsenoop; +var parse_MDTInfo = parsenoop; +var parse_MDXStr = parsenoop; +var parse_MDXTuple = parsenoop; +var parse_MDXSet = parsenoop; +var parse_MDXProp = parsenoop; +var parse_MDXKPI = parsenoop; +var parse_MDB = parsenoop; +var parse_PLV = parsenoop; +var parse_DXF = parsenoop; +var parse_TableStyles = parsenoop; +var parse_TableStyle = parsenoop; +var parse_TableStyleElement = parsenoop; +var parse_NamePublish = parsenoop; +var parse_NameCmt = parsenoop; +var parse_SortData = parsenoop; +var parse_GUIDTypeLib = parsenoop; +var parse_FnGrp12 = parsenoop; +var parse_NameFnGrp12 = parsenoop; +var parse_HeaderFooter = parsenoop; +var parse_CrtLayout12 = parsenoop; +var parse_CrtMlFrt = parsenoop; +var parse_CrtMlFrtContinue = parsenoop; +var parse_ShapePropsStream = parsenoop; +var parse_TextPropsStream = parsenoop; +var parse_RichTextStream = parsenoop; +var parse_CrtLayout12A = parsenoop; +var parse_Units = parsenoop; +var parse_Chart = parsenoop; +var parse_Series = parsenoop; +var parse_DataFormat = parsenoop; +var parse_LineFormat = parsenoop; +var parse_MarkerFormat = parsenoop; +var parse_AreaFormat = parsenoop; +var parse_PieFormat = parsenoop; +var parse_AttachedLabel = parsenoop; +var parse_SeriesText = parsenoop; +var parse_ChartFormat = parsenoop; +var parse_Legend = parsenoop; +var parse_SeriesList = parsenoop; +var parse_Bar = parsenoop; +var parse_Line = parsenoop; +var parse_Pie = parsenoop; +var parse_Area = parsenoop; +var parse_Scatter = parsenoop; +var parse_CrtLine = parsenoop; +var parse_Axis = parsenoop; +var parse_Tick = parsenoop; +var parse_ValueRange = parsenoop; +var parse_CatSerRange = parsenoop; +var parse_AxisLine = parsenoop; +var parse_CrtLink = parsenoop; +var parse_DefaultText = parsenoop; +var parse_Text = parsenoop; +var parse_ObjectLink = parsenoop; +var parse_Frame = parsenoop; +var parse_Begin = parsenoop; +var parse_End = parsenoop; +var parse_PlotArea = parsenoop; +var parse_Chart3d = parsenoop; +var parse_PicF = parsenoop; +var parse_DropBar = parsenoop; +var parse_Radar = parsenoop; +var parse_Surf = parsenoop; +var parse_RadarArea = parsenoop; +var parse_AxisParent = parsenoop; +var parse_LegendException = parsenoop; +var parse_ShtProps = parsenoop; +var parse_SerToCrt = parsenoop; +var parse_AxesUsed = parsenoop; +var parse_SBaseRef = parsenoop; +var parse_SerParent = parsenoop; +var parse_SerAuxTrend = parsenoop; +var parse_IFmtRecord = parsenoop; +var parse_Pos = parsenoop; +var parse_AlRuns = parsenoop; +var parse_BRAI = parsenoop; +var parse_SerAuxErrBar = parsenoop; +var parse_SerFmt = parsenoop; +var parse_Chart3DBarShape = parsenoop; +var parse_Fbi = parsenoop; +var parse_BopPop = parsenoop; +var parse_AxcExt = parsenoop; +var parse_Dat = parsenoop; +var parse_PlotGrowth = parsenoop; +var parse_SIIndex = parsenoop; +var parse_GelFrame = parsenoop; +var parse_BopPopCustom = parsenoop; +var parse_Fbi2 = parsenoop; + +/* --- Specific to versions before BIFF8 --- */ +function parse_BIFF5String(blob) { + var len = blob.read_shift(1); + return blob.read_shift(len, 'sbcs-cont'); +} + +/* BIFF2_??? where ??? is the name from [XLS] */ +function parse_BIFF2STR(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + ++blob.l; + var str = parse_XLUnicodeString2(blob, length-7, opts); + cell.val = str; + return cell; +} + +function parse_BIFF2NUM(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + ++blob.l; + var num = parse_Xnum(blob, 8); + cell.val = num; + return cell; +} + diff --git a/bits/44_offcrypto.js b/bits/44_offcrypto.js new file mode 100644 index 0000000..48d920e --- /dev/null +++ b/bits/44_offcrypto.js @@ -0,0 +1,180 @@ +function _JS2ANSI(str) { if(typeof cptable !== 'undefined') return cptable.utils.encode(1252, str); return str.split("").map(function(x) { return x.charCodeAt(0); }); } + +/* [MS-OFFCRYPTO] 2.1.4 Version */ +function parse_Version(blob, length) { + var o = {}; + o.Major = blob.read_shift(2); + o.Minor = blob.read_shift(2); + return o; +} +/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */ +function parse_EncryptionHeader(blob, length) { + var o = {}; + o.Flags = blob.read_shift(4); + + // Check if SizeExtra is 0x00000000 + var tmp = blob.read_shift(4); + if(tmp !== 0) throw 'Unrecognized SizeExtra: ' + tmp; + + o.AlgID = blob.read_shift(4); + switch(o.AlgID) { + case 0: case 0x6801: case 0x660E: case 0x660F: case 0x6610: break; + default: throw 'Unrecognized encryption algorithm: ' + o.AlgID; + } + parsenoop(blob, length-12); + return o; +} + +/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */ +function parse_EncryptionVerifier(blob, length) { + return parsenoop(blob, length); +} +/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */ +function parse_RC4CryptoHeader(blob, length) { + var o = {}; + var vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4; + if(vers.Minor != 2) throw 'unrecognized minor version code: ' + vers.Minor; + if(vers.Major > 4 || vers.Major < 2) throw 'unrecognized major version code: ' + vers.Major; + o.Flags = blob.read_shift(4); length -= 4; + var sz = blob.read_shift(4); length -= 4; + o.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz; + o.EncryptionVerifier = parse_EncryptionVerifier(blob, length); + return o; +} +/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */ +function parse_RC4Header(blob, length) { + var o = {}; + var vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4; + if(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor; + o.Salt = blob.read_shift(16); + o.EncryptedVerifier = blob.read_shift(16); + o.EncryptedVerifierHash = blob.read_shift(16); + return o; +} + +/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */ +function crypto_CreatePasswordVerifier_Method1(Password) { + var Verifier = 0x0000, PasswordArray; + var PasswordDecoded = _JS2ANSI(Password); + var len = PasswordDecoded.length + 1, i, PasswordByte; + var Intermediate1, Intermediate2, Intermediate3; + PasswordArray = new_raw_buf(len); + PasswordArray[0] = PasswordDecoded.length; + for(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1]; + for(i = len-1; i >= 0; --i) { + PasswordByte = PasswordArray[i]; + Intermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1; + Intermediate2 = (Verifier << 1) & 0x7FFF; + Intermediate3 = Intermediate1 | Intermediate2; + Verifier = Intermediate3 ^ PasswordByte; + } + return Verifier ^ 0xCE4B; +} + +/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */ +var crypto_CreateXorArray_Method1 = (function() { + var PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00]; + var InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3]; + var XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4]; + var Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; }; + var XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); }; + var CreateXorKey_Method1 = function(Password) { + var XorKey = InitialCode[Password.length - 1]; + var CurrentElement = 0x68; + for(var i = Password.length-1; i >= 0; --i) { + var Char = Password[i]; + for(var j = 0; j != 7; ++j) { + if(Char & 0x40) XorKey ^= XorMatrix[CurrentElement]; + Char *= 2; --CurrentElement; + } + } + return XorKey; + }; + return function(password) { + var Password = _JS2ANSI(password); + var XorKey = CreateXorKey_Method1(Password); + var Index = Password.length; + var ObfuscationArray = new_raw_buf(16); + for(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00; + var Temp, PasswordLastChar, PadIndex; + if((Index & 1) === 1) { + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(PadArray[0], Temp); + --Index; + Temp = XorKey & 0xFF; + PasswordLastChar = Password[Password.length - 1]; + ObfuscationArray[Index] = XorRor(PasswordLastChar, Temp); + } + while(Index > 0) { + --Index; + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + --Index; + Temp = XorKey & 0xFF; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + } + Index = 15; + PadIndex = 15 - Password.length; + while(PadIndex > 0) { + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp); + --Index; + --PadIndex; + Temp = XorKey & 0xFF; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + --Index; + --PadIndex; + } + return ObfuscationArray; + }; +})(); + +/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */ +var crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) { + /* If XorArray is set, use it; if O is not set, make changes in-place */ + if(!O) O = Data; + if(!XorArray) XorArray = crypto_CreateXorArray_Method1(password); + var Index, Value; + for(Index = 0; Index != Data.length; ++Index) { + Value = Data[Index]; + Value ^= XorArray[XorArrayIndex]; + Value = ((Value>>5) | (Value<<3)) & 0xFF; + O[Index] = Value; + ++XorArrayIndex; + } + return [O, XorArrayIndex, XorArray]; +}; + +var crypto_MakeXorDecryptor = function(password) { + var XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password); + return function(Data) { + var O = crypto_DecryptData_Method1(null, Data, XorArrayIndex, XorArray); + XorArrayIndex = O[1]; + return O[0]; + }; +}; + +/* 2.5.343 */ +function parse_XORObfuscation(blob, length, opts, out) { + var o = { key: parseuint16(blob), verificationBytes: parseuint16(blob) }; + if(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password); + out.valid = o.verificationBytes === o.verifier; + if(out.valid) out.insitu_decrypt = crypto_MakeXorDecryptor(opts.password); + return o; +} + +/* 2.4.117 */ +function parse_FilePassHeader(blob, length, oo) { + var o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2; + if(o.Info === 1) o.Data = parse_RC4Header(blob, length); + else o.Data = parse_RC4CryptoHeader(blob, length); + return o; +} +function parse_FilePass(blob, length, opts) { + var o = { Type: blob.read_shift(2) }; /* wEncryptionType */ + if(o.Type) parse_FilePassHeader(blob, length-2, o); + else parse_XORObfuscation(blob, length-2, opts, o); + return o; +} + + diff --git a/bits/45_styutils.js b/bits/45_styutils.js index 76afdd4..16d30bc 100644 --- a/bits/45_styutils.js +++ b/bits/45_styutils.js @@ -62,3 +62,23 @@ function find_mdw(collw, coll) { if(MDW === MAX_MDW) MDW = DEF_MDW; } } + +/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */ +var XLMLPatternTypeMap = { + "None": "none", + "Solid": "solid", + "Gray50": "mediumGray", + "Gray75": "darkGray", + "Gray25": "lightGray", + "HorzStripe": "darkHorizontal", + "VertStripe": "darkVertical", + "ReverseDiagStripe": "darkDown", + "DiagStripe": "darkUp", + "DiagCross": "darkGrid", + "ThickDiagCross": "darkTrellis", + "ThinHorzStripe": "lightHorizontal", + "ThinVertStripe": "lightVertical", + "ThinReverseDiagStripe": "lightDown", + "ThinHorzCross": "lightGrid" +}; + diff --git a/bits/50_styxls.js b/bits/50_styxls.js new file mode 100644 index 0000000..32804ea --- /dev/null +++ b/bits/50_styxls.js @@ -0,0 +1,78 @@ +/* [MS-XLS] 2.4.326 TODO: payload is a zip file */ +function parse_Theme(blob, length) { + var dwThemeVersion = blob.read_shift(4); + if(dwThemeVersion === 124226) return; + blob.l += length-4; +} + +/* 2.5.49 */ +function parse_ColorTheme(blob, length) { return blob.read_shift(4); } + +/* 2.5.155 */ +function parse_FullColorExt(blob, length) { + var o = {}; + o.xclrType = blob.read_shift(2); + o.nTintShade = blob.read_shift(2); + switch(o.xclrType) { + case 0: blob.l += 4; break; + case 1: o.xclrValue = parse_IcvXF(blob, 4); break; + case 2: o.xclrValue = parse_LongRGBA(blob, 4); break; + case 3: o.xclrValue = parse_ColorTheme(blob, 4); break; + case 4: blob.l += 4; break; + } + blob.l += 8; + return o; +} + +/* 2.5.164 TODO: read 7 bits*/ +function parse_IcvXF(blob, length) { + return parsenoop(blob, length); +} + +/* 2.5.280 */ +function parse_XFExtGradient(blob, length) { + return parsenoop(blob, length); +} + +/* 2.5.108 */ +function parse_ExtProp(blob, length) { + var extType = blob.read_shift(2); + var cb = blob.read_shift(2); + var o = [extType]; + switch(extType) { + case 0x04: case 0x05: case 0x07: case 0x08: + case 0x09: case 0x0A: case 0x0B: case 0x0D: + o[1] = parse_FullColorExt(blob, cb); break; + case 0x06: o[1] = parse_XFExtGradient(blob, cb); break; + case 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 5 ? 1 : 2); break; + default: throw new Error("Unrecognized ExtProp type: " + extType + " " + cb); + } + return o; +} + +/* 2.4.355 */ +function parse_XFExt(blob, length) { + var end = blob.l + length; + blob.l += 2; + var ixfe = blob.read_shift(2); + blob.l += 2; + var cexts = blob.read_shift(2); + var ext = []; + while(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l)); + return {ixfe:ixfe, ext:ext}; +} + +/* xf is an XF, see parse_XFExt for xfext */ +function update_xfext(xf, xfext) { + xfext.forEach(function(xfe) { + switch(xfe[0]) { /* 2.5.108 extPropData */ + case 0x04: break; /* foreground color */ + case 0x05: break; /* background color */ + case 0x07: case 0x08: case 0x09: case 0x0a: break; + case 0x0d: break; /* text color */ + case 0x0e: break; /* font scheme */ + default: throw "bafuq" + xfe[0].toString(16); + } + }); +} + diff --git a/bits/61_fcommon.js b/bits/61_fcommon.js new file mode 100644 index 0000000..08a9754 --- /dev/null +++ b/bits/61_fcommon.js @@ -0,0 +1,17 @@ +/* TODO: it will be useful to parse the function str */ +var rc_to_a1 = (function(){ + var rcregex = /(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g; + var rcbase; + function rcfunc($$,$1,$2,$3,$4,$5) { + var R = $3.length>0?parseInt($3,10)|0:0, C = $5.length>0?parseInt($5,10)|0:0; + if(C<0 && $4.length === 0) C=0; + if($4.length > 0) C += rcbase.c; + if($2.length > 0) R += rcbase.r; + return $1 + encode_col(C) + encode_row(R); + } + return function rc_to_a1(fstr, base) { + rcbase = base; + return fstr.replace(rcregex, rcfunc); + }; +})(); + diff --git a/bits/62_fxls.js b/bits/62_fxls.js new file mode 100644 index 0000000..45c9d0e --- /dev/null +++ b/bits/62_fxls.js @@ -0,0 +1,803 @@ +/* --- formula references point to MS-XLS --- */ +/* Small helpers */ +function parseread(l) { return function(blob, length) { blob.l+=l; return; }; } +function parseread1(blob, length) { blob.l+=1; return; } + +/* Rgce Helpers */ + +/* 2.5.51 */ +function parse_ColRelU(blob, length) { + var c = blob.read_shift(2); + return [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1]; +} + +/* 2.5.198.105 */ +function parse_RgceArea(blob, length) { + var r=blob.read_shift(2), R=blob.read_shift(2); + var c=parse_ColRelU(blob, 2); + var C=parse_ColRelU(blob, 2); + return { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} }; +} + +/* 2.5.198.105 TODO */ +function parse_RgceAreaRel(blob, length) { + var r=blob.read_shift(2), R=blob.read_shift(2); + var c=parse_ColRelU(blob, 2); + var C=parse_ColRelU(blob, 2); + return { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} }; +} + +/* 2.5.198.109 */ +function parse_RgceLoc(blob, length) { + var r = blob.read_shift(2); + var c = parse_ColRelU(blob, 2); + return {r:r, c:c[0], cRel:c[1], rRel:c[2]}; +} + +/* 2.5.198.111 */ +function parse_RgceLocRel(blob, length) { + var r = blob.read_shift(2); + var cl = blob.read_shift(2); + var cRel = (cl & 0x8000) >> 15, rRel = (cl & 0x4000) >> 14; + cl &= 0x3FFF; + if(cRel !== 0) while(cl >= 0x100) cl -= 0x100; + return {r:r,c:cl,cRel:cRel,rRel:rRel}; +} + +/* Ptg Tokens */ + +/* 2.5.198.27 */ +function parse_PtgArea(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var area = parse_RgceArea(blob, 8); + return [type, area]; +} + +/* 2.5.198.28 */ +function parse_PtgArea3d(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var ixti = blob.read_shift(2); + var area = parse_RgceArea(blob, 8); + return [type, ixti, area]; +} + +/* 2.5.198.29 */ +function parse_PtgAreaErr(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + blob.l += 8; + return [type]; +} +/* 2.5.198.30 */ +function parse_PtgAreaErr3d(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var ixti = blob.read_shift(2); + blob.l += 8; + return [type, ixti]; +} + +/* 2.5.198.31 */ +function parse_PtgAreaN(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var area = parse_RgceAreaRel(blob, 8); + return [type, area]; +} + +/* 2.5.198.32 -- ignore this and look in PtgExtraArray for shape + values */ +function parse_PtgArray(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + blob.l += 7; + return [type]; +} + +/* 2.5.198.33 */ +function parse_PtgAttrBaxcel(blob, length) { + var bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */ + var bitBaxcel = 1; + blob.l += 4; + return [bitSemi, bitBaxcel]; +} + +/* 2.5.198.34 */ +function parse_PtgAttrChoose(blob, length) { + blob.l +=2; + var offset = blob.read_shift(2); + var o = []; + /* offset is 1 less than the number of elements */ + for(var i = 0; i <= offset; ++i) o.push(blob.read_shift(2)); + return o; +} + +/* 2.5.198.35 */ +function parse_PtgAttrGoto(blob, length) { + var bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 2; + return [bitGoto, blob.read_shift(2)]; +} + +/* 2.5.198.36 */ +function parse_PtgAttrIf(blob, length) { + var bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 2; + return [bitIf, blob.read_shift(2)]; +} + +/* 2.5.198.37 */ +function parse_PtgAttrSemi(blob, length) { + var bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 4; + return [bitSemi]; +} + +/* 2.5.198.40 (used by PtgAttrSpace and PtgAttrSpaceSemi) */ +function parse_PtgAttrSpaceType(blob, length) { + var type = blob.read_shift(1), cch = blob.read_shift(1); + return [type, cch]; +} + +/* 2.5.198.38 */ +function parse_PtgAttrSpace(blob, length) { + blob.read_shift(2); + return parse_PtgAttrSpaceType(blob, 2); +} + +/* 2.5.198.39 */ +function parse_PtgAttrSpaceSemi(blob, length) { + blob.read_shift(2); + return parse_PtgAttrSpaceType(blob, 2); +} + +/* 2.5.198.84 TODO */ +function parse_PtgRef(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var loc = parse_RgceLoc(blob,4); + return [type, loc]; +} + +/* 2.5.198.88 TODO */ +function parse_PtgRefN(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var loc = parse_RgceLocRel(blob,4); + return [type, loc]; +} + +/* 2.5.198.85 TODO */ +function parse_PtgRef3d(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var ixti = blob.read_shift(2); // XtiIndex + var loc = parse_RgceLoc(blob,4); + return [type, ixti, loc]; +} + + +/* 2.5.198.62 TODO */ +function parse_PtgFunc(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var iftab = blob.read_shift(2); + return [FtabArgc[iftab], Ftab[iftab]]; +} +/* 2.5.198.63 TODO */ +function parse_PtgFuncVar(blob, length) { + blob.l++; + var cparams = blob.read_shift(1), tab = parsetab(blob); + return [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]]; +} + +function parsetab(blob, length) { + return [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF]; +} + +/* 2.5.198.41 */ +var parse_PtgAttrSum = parseread(4); +/* 2.5.198.43 */ +var parse_PtgConcat = parseread1; + +/* 2.5.198.58 */ +function parse_PtgExp(blob, length) { + blob.l++; + var row = blob.read_shift(2); + var col = blob.read_shift(2); + return [row, col]; +} + +/* 2.5.198.57 */ +function parse_PtgErr(blob, length) { blob.l++; return BErr[blob.read_shift(1)]; } + +/* 2.5.198.66 TODO */ +function parse_PtgInt(blob, length) { blob.l++; return blob.read_shift(2); } + +/* 2.5.198.42 */ +function parse_PtgBool(blob, length) { blob.l++; return blob.read_shift(1)!==0;} + +/* 2.5.198.79 */ +function parse_PtgNum(blob, length) { blob.l++; return parse_Xnum(blob, 8); } + +/* 2.5.198.89 */ +function parse_PtgStr(blob, length) { blob.l++; return parse_ShortXLUnicodeString(blob); } + +/* 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */ +function parse_SerAr(blob) { + var val = []; + switch((val[0] = blob.read_shift(1))) { + /* 2.5.192.113 */ + case 0x04: /* SerBool -- boolean */ + val[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE'; + blob.l += 7; break; + /* 2.5.192.114 */ + case 0x10: /* SerErr -- error */ + val[1] = BErr[blob[blob.l]]; + blob.l += 8; break; + /* 2.5.192.115 */ + case 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */ + blob.l += 8; break; + /* 2.5.192.116 */ + case 0x01: /* SerNum -- Xnum */ + val[1] = parse_Xnum(blob, 8); break; + /* 2.5.192.117 */ + case 0x02: /* SerStr -- XLUnicodeString (<256 chars) */ + val[1] = parse_XLUnicodeString(blob); break; + // default: throw "Bad SerAr: " + val[0]; /* Unreachable */ + } + return val; +} + +/* 2.5.198.61 */ +function parse_PtgExtraMem(blob, cce) { + var count = blob.read_shift(2); + var out = []; + for(var i = 0; i != count; ++i) out.push(parse_Ref8U(blob, 8)); + return out; +} + +/* 2.5.198.59 */ +function parse_PtgExtraArray(blob) { + var cols = 1 + blob.read_shift(1); //DColByteU + var rows = 1 + blob.read_shift(2); //DRw + for(var i = 0, o=[]; i != rows && (o[i] = []); ++i) + for(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob); + return o; +} + +/* 2.5.198.76 */ +function parse_PtgName(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var nameindex = blob.read_shift(4); + return [type, 0, nameindex]; +} + +/* 2.5.198.77 */ +function parse_PtgNameX(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var ixti = blob.read_shift(2); // XtiIndex + var nameindex = blob.read_shift(4); + return [type, ixti, nameindex]; +} + +/* 2.5.198.70 */ +function parse_PtgMemArea(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + blob.l += 4; + var cce = blob.read_shift(2); + return [type, cce]; +} + +/* 2.5.198.72 */ +function parse_PtgMemFunc(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var cce = blob.read_shift(2); + return [type, cce]; +} + + +/* 2.5.198.86 */ +function parse_PtgRefErr(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + blob.l += 4; + return [type]; +} + +/* 2.5.198.26 */ +var parse_PtgAdd = parseread1; +/* 2.5.198.45 */ +var parse_PtgDiv = parseread1; +/* 2.5.198.56 */ +var parse_PtgEq = parseread1; +/* 2.5.198.64 */ +var parse_PtgGe = parseread1; +/* 2.5.198.65 */ +var parse_PtgGt = parseread1; +/* 2.5.198.67 */ +var parse_PtgIsect = parseread1; +/* 2.5.198.68 */ +var parse_PtgLe = parseread1; +/* 2.5.198.69 */ +var parse_PtgLt = parseread1; +/* 2.5.198.74 */ +var parse_PtgMissArg = parseread1; +/* 2.5.198.75 */ +var parse_PtgMul = parseread1; +/* 2.5.198.78 */ +var parse_PtgNe = parseread1; +/* 2.5.198.80 */ +var parse_PtgParen = parseread1; +/* 2.5.198.81 */ +var parse_PtgPercent = parseread1; +/* 2.5.198.82 */ +var parse_PtgPower = parseread1; +/* 2.5.198.83 */ +var parse_PtgRange = parseread1; +/* 2.5.198.90 */ +var parse_PtgSub = parseread1; +/* 2.5.198.93 */ +var parse_PtgUminus = parseread1; +/* 2.5.198.94 */ +var parse_PtgUnion = parseread1; +/* 2.5.198.95 */ +var parse_PtgUplus = parseread1; + +/* 2.5.198.71 */ +var parse_PtgMemErr = parsenoop; +/* 2.5.198.73 */ +var parse_PtgMemNoMem = parsenoop; +/* 2.5.198.87 */ +var parse_PtgRefErr3d = parsenoop; +/* 2.5.198.92 */ +var parse_PtgTbl = parsenoop; + +/* 2.5.198.25 */ +var PtgTypes = { + 0x01: { n:'PtgExp', f:parse_PtgExp }, + 0x02: { n:'PtgTbl', f:parse_PtgTbl }, + 0x03: { n:'PtgAdd', f:parse_PtgAdd }, + 0x04: { n:'PtgSub', f:parse_PtgSub }, + 0x05: { n:'PtgMul', f:parse_PtgMul }, + 0x06: { n:'PtgDiv', f:parse_PtgDiv }, + 0x07: { n:'PtgPower', f:parse_PtgPower }, + 0x08: { n:'PtgConcat', f:parse_PtgConcat }, + 0x09: { n:'PtgLt', f:parse_PtgLt }, + 0x0A: { n:'PtgLe', f:parse_PtgLe }, + 0x0B: { n:'PtgEq', f:parse_PtgEq }, + 0x0C: { n:'PtgGe', f:parse_PtgGe }, + 0x0D: { n:'PtgGt', f:parse_PtgGt }, + 0x0E: { n:'PtgNe', f:parse_PtgNe }, + 0x0F: { n:'PtgIsect', f:parse_PtgIsect }, + 0x10: { n:'PtgUnion', f:parse_PtgUnion }, + 0x11: { n:'PtgRange', f:parse_PtgRange }, + 0x12: { n:'PtgUplus', f:parse_PtgUplus }, + 0x13: { n:'PtgUminus', f:parse_PtgUminus }, + 0x14: { n:'PtgPercent', f:parse_PtgPercent }, + 0x15: { n:'PtgParen', f:parse_PtgParen }, + 0x16: { n:'PtgMissArg', f:parse_PtgMissArg }, + 0x17: { n:'PtgStr', f:parse_PtgStr }, + 0x1C: { n:'PtgErr', f:parse_PtgErr }, + 0x1D: { n:'PtgBool', f:parse_PtgBool }, + 0x1E: { n:'PtgInt', f:parse_PtgInt }, + 0x1F: { n:'PtgNum', f:parse_PtgNum }, + 0x20: { n:'PtgArray', f:parse_PtgArray }, + 0x21: { n:'PtgFunc', f:parse_PtgFunc }, + 0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar }, + 0x23: { n:'PtgName', f:parse_PtgName }, + 0x24: { n:'PtgRef', f:parse_PtgRef }, + 0x25: { n:'PtgArea', f:parse_PtgArea }, + 0x26: { n:'PtgMemArea', f:parse_PtgMemArea }, + 0x27: { n:'PtgMemErr', f:parse_PtgMemErr }, + 0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem }, + 0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc }, + 0x2A: { n:'PtgRefErr', f:parse_PtgRefErr }, + 0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr }, + 0x2C: { n:'PtgRefN', f:parse_PtgRefN }, + 0x2D: { n:'PtgAreaN', f:parse_PtgAreaN }, + 0x39: { n:'PtgNameX', f:parse_PtgNameX }, + 0x3A: { n:'PtgRef3d', f:parse_PtgRef3d }, + 0x3B: { n:'PtgArea3d', f:parse_PtgArea3d }, + 0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d }, + 0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d }, + 0xFF: {} +}; +/* These are duplicated in the PtgTypes table */ +var PtgDupes = { + 0x40: 0x20, 0x60: 0x20, + 0x41: 0x21, 0x61: 0x21, + 0x42: 0x22, 0x62: 0x22, + 0x43: 0x23, 0x63: 0x23, + 0x44: 0x24, 0x64: 0x24, + 0x45: 0x25, 0x65: 0x25, + 0x46: 0x26, 0x66: 0x26, + 0x47: 0x27, 0x67: 0x27, + 0x48: 0x28, 0x68: 0x28, + 0x49: 0x29, 0x69: 0x29, + 0x4A: 0x2A, 0x6A: 0x2A, + 0x4B: 0x2B, 0x6B: 0x2B, + 0x4C: 0x2C, 0x6C: 0x2C, + 0x4D: 0x2D, 0x6D: 0x2D, + 0x59: 0x39, 0x79: 0x39, + 0x5A: 0x3A, 0x7A: 0x3A, + 0x5B: 0x3B, 0x7B: 0x3B, + 0x5C: 0x3C, 0x7C: 0x3C, + 0x5D: 0x3D, 0x7D: 0x3D +}; +(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})(); + +var Ptg18 = {}; +var Ptg19 = { + 0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi }, + 0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf }, + 0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose }, + 0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto }, + 0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum }, + 0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel }, + 0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace }, + 0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi }, + 0xFF: {} +}; + +/* 2.4.127 TODO */ +function parse_Formula(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + var val = parse_FormulaValue(blob,8); + var flags = blob.read_shift(1); + blob.read_shift(1); + var chn = blob.read_shift(4); + var cbf = ""; + if(opts.biff === 5) blob.l += length-20; + else cbf = parse_XLSCellParsedFormula(blob, length-20, opts); + return {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]}; +} + +/* 2.5.133 TODO: how to emit empty strings? */ +function parse_FormulaValue(blob) { + var b; + if(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n']; + switch(blob[blob.l]) { + case 0x00: blob.l += 8; return ["String", 's']; + case 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b']; + case 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e']; + case 0x03: blob.l += 8; return ["",'s']; + } +} + +/* 2.5.198.103 */ +function parse_RgbExtra(blob, length, rgce, opts) { + if(opts.biff < 8) return parsenoop(blob, length); + var target = blob.l + length; + var o = []; + for(var i = 0; i !== rgce.length; ++i) { + switch(rgce[i][0]) { + case 'PtgArray': /* PtgArray -> PtgExtraArray */ + rgce[i][1] = parse_PtgExtraArray(blob); + o.push(rgce[i][1]); + break; + case 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */ + rgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1]); + o.push(rgce[i][2]); + break; + default: break; + } + } + length = target - blob.l; + if(length !== 0) o.push(parsenoop(blob, length)); + return o; +} + +/* 2.5.198.21 */ +function parse_NameParsedFormula(blob, length, opts, cce) { + var target = blob.l + length; + var rgce = parse_Rgce(blob, cce); + var rgcb; + if(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.3 TODO */ +function parse_XLSCellParsedFormula(blob, length, opts) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce); + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, length - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.118 TODO */ +function parse_SharedParsedFormula(blob, length, opts) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + var rgce = parse_Rgce(blob, cce); + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.1 TODO */ +function parse_ArrayParsedFormula(blob, length, opts, ref) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce); + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.104 */ +function parse_Rgce(blob, length) { + var target = blob.l + length; + var R, id, ptgs = []; + while(target != blob.l) { + length = target - blob.l; + id = blob[blob.l]; + R = PtgTypes[id]; + //console.log("ptg", id, R) + if(id === 0x18 || id === 0x19) { + id = blob[blob.l + 1]; + R = (id === 0x18 ? Ptg18 : Ptg19)[id]; + } + if(!R || !R.f) { ptgs.push(parsenoop(blob, length)); } + else { ptgs.push([R.n, R.f(blob, length)]); } + } + return ptgs; +} + +function mapper(x) { return x.map(function f2(y) { return y[1];}).join(",");} + +/* 2.2.2 + Magic TODO */ +function stringify_formula(formula, range, cell, supbooks, opts) { + if(opts !== undefined && opts.biff === 5) return "BIFF5??"; + var _range = range !== undefined ? range : {s:{c:0, r:0}}; + var stack = [], e1, e2, type, c, ixti, nameidx, r; + if(!formula[0] || !formula[0][0]) return ""; + //console.log("--",cell,formula[0]) + for(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) { + var f = formula[0][ff]; + //console.log("++",f, stack) + switch(f[0]) { + /* 2.2.2.1 Unary Operator Tokens */ + /* 2.5.198.93 */ + case 'PtgUminus': stack.push("-" + stack.pop()); break; + /* 2.5.198.95 */ + case 'PtgUplus': stack.push("+" + stack.pop()); break; + /* 2.5.198.81 */ + case 'PtgPercent': stack.push(stack.pop() + "%"); break; + + /* 2.2.2.1 Binary Value Operator Token */ + /* 2.5.198.26 */ + case 'PtgAdd': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"+"+e1); + break; + /* 2.5.198.90 */ + case 'PtgSub': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"-"+e1); + break; + /* 2.5.198.75 */ + case 'PtgMul': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"*"+e1); + break; + /* 2.5.198.45 */ + case 'PtgDiv': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"/"+e1); + break; + /* 2.5.198.82 */ + case 'PtgPower': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"^"+e1); + break; + /* 2.5.198.43 */ + case 'PtgConcat': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"&"+e1); + break; + /* 2.5.198.69 */ + case 'PtgLt': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<"+e1); + break; + /* 2.5.198.68 */ + case 'PtgLe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<="+e1); + break; + /* 2.5.198.56 */ + case 'PtgEq': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"="+e1); + break; + /* 2.5.198.64 */ + case 'PtgGe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+">="+e1); + break; + /* 2.5.198.65 */ + case 'PtgGt': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+">"+e1); + break; + /* 2.5.198.78 */ + case 'PtgNe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<>"+e1); + break; + + /* 2.2.2.1 Binary Reference Operator Token */ + /* 2.5.198.67 */ + case 'PtgIsect': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+" "+e1); + break; + case 'PtgUnion': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+","+e1); + break; + case 'PtgRange': break; + + /* 2.2.2.3 Control Tokens "can be ignored" */ + /* 2.5.198.34 */ + case 'PtgAttrChoose': break; + /* 2.5.198.35 */ + case 'PtgAttrGoto': break; + /* 2.5.198.36 */ + case 'PtgAttrIf': break; + + + /* 2.5.198.84 */ + case 'PtgRef': + type = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), _range); + stack.push(encode_cell(c)); + break; + /* 2.5.198.88 */ + case 'PtgRefN': + type = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), cell); + stack.push(encode_cell(c)); + break; + case 'PtgRef3d': // TODO: lots of stuff + type = f[1][0]; ixti = f[1][1]; c = shift_cell_xls(f[1][2], _range); + stack.push(supbooks[1][ixti+1]+"!"+encode_cell(c)); + break; + + /* Function Call */ + /* 2.5.198.62 */ + case 'PtgFunc': + /* 2.5.198.63 */ + case 'PtgFuncVar': + /* f[1] = [argc, func] */ + var argc = f[1][0], func = f[1][1]; + if(!argc) argc = 0; + var args = stack.slice(-argc); + stack.length -= argc; + if(func === 'User') func = args.shift(); + stack.push(func + "(" + args.join(",") + ")"); + break; + + /* 2.5.198.42 */ + case 'PtgBool': stack.push(f[1] ? "TRUE" : "FALSE"); break; + /* 2.5.198.66 */ + case 'PtgInt': stack.push(f[1]); break; + /* 2.5.198.79 TODO: precision? */ + case 'PtgNum': stack.push(String(f[1])); break; + /* 2.5.198.89 */ + case 'PtgStr': stack.push('"' + f[1] + '"'); break; + /* 2.5.198.57 */ + case 'PtgErr': stack.push(f[1]); break; + /* 2.5.198.27 TODO: fixed points */ + case 'PtgArea': + type = f[1][0]; r = shift_range_xls(f[1][1], _range); + stack.push(encode_range(r)); + break; + /* 2.5.198.28 */ + case 'PtgArea3d': // TODO: lots of stuff + type = f[1][0]; ixti = f[1][1]; r = f[1][2]; + stack.push(supbooks[1][ixti+1]+"!"+encode_range(r)); + break; + /* 2.5.198.41 */ + case 'PtgAttrSum': + stack.push("SUM(" + stack.pop() + ")"); + break; + + /* Expression Prefixes */ + /* 2.5.198.37 */ + case 'PtgAttrSemi': break; + + /* 2.5.97.60 TODO: do something different for revisions */ + case 'PtgName': + /* f[1] = type, 0, nameindex */ + nameidx = f[1][2]; + var lbl = supbooks[0][nameidx]; + var name = lbl.Name; + if(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name]; + stack.push(name); + break; + + /* 2.5.97.61 TODO: do something different for revisions */ + case 'PtgNameX': + /* f[1] = type, ixti, nameindex */ + var bookidx = f[1][1]; nameidx = f[1][2]; var externbook; + /* TODO: Properly handle missing values */ + if(supbooks[bookidx+1]) externbook = supbooks[bookidx+1][nameidx]; + else if(supbooks[bookidx-1]) externbook = supbooks[bookidx-1][nameidx]; + if(!externbook) externbook = {body: "??NAMEX??"}; + stack.push(externbook.body); + break; + + /* 2.2.2.4 Display Tokens */ + /* 2.5.198.80 */ + case 'PtgParen': stack.push('(' + stack.pop() + ')'); break; + + /* 2.5.198.86 */ + case 'PtgRefErr': stack.push('#REF!'); break; + + /* */ + /* 2.5.198.58 TODO */ + case 'PtgExp': + c = {c:f[1][1],r:f[1][0]}; + var q = {c: cell.c, r:cell.r}; + if(supbooks.sharedf[encode_cell(c)]) { + var parsedf = (supbooks.sharedf[encode_cell(c)]); + stack.push(stringify_formula(parsedf, _range, q, supbooks, opts)); + } + else { + var fnd = false; + for(e1=0;e1!=supbooks.arrayf.length; ++e1) { + /* TODO: should be something like range_has */ + e2 = supbooks.arrayf[e1]; + if(c.c < e2[0].s.c || c.c > e2[0].e.c) continue; + if(c.r < e2[0].s.r || c.r > e2[0].e.r) continue; + stack.push(stringify_formula(e2[1], _range, q, supbooks, opts)); + } + if(!fnd) stack.push(f[1]); + } + break; + + /* 2.5.198.32 TODO */ + case 'PtgArray': + stack.push("{" + f[1].map(mapper).join(";") + "}"); + break; + + /* 2.2.2.5 Mem Tokens */ + /* 2.5.198.70 TODO: confirm this is a non-display */ + case 'PtgMemArea': + //stack.push("(" + f[2].map(encode_range).join(",") + ")"); + break; + + /* 2.5.198.38 TODO */ + case 'PtgAttrSpace': break; + + /* 2.5.198.92 TODO */ + case 'PtgTbl': break; + + /* 2.5.198.71 */ + case 'PtgMemErr': break; + + /* 2.5.198.74 */ + case 'PtgMissArg': + stack.push(""); + break; + + /* 2.5.198.29 TODO */ + case 'PtgAreaErr': break; + + /* 2.5.198.31 TODO */ + case 'PtgAreaN': stack.push(""); break; + + /* 2.5.198.87 TODO */ + case 'PtgRefErr3d': break; + + /* 2.5.198.72 TODO */ + case 'PtgMemFunc': break; + + default: throw 'Unrecognized Formula Token: ' + f; + } + //console.log("::",f, stack) + } + //console.log("--",stack); + return stack[0]; +} + diff --git a/bits/63_fbin.js b/bits/63_fbin.js index 6d6286d..a3244a7 100644 --- a/bits/63_fbin.js +++ b/bits/63_fbin.js @@ -1,5 +1,5 @@ /* [MS-XLSB] 2.5.97.4 CellParsedFormula TODO: use similar logic to js-xls */ -function parse_CellParsedFormula(data, length) { +function parse_XLSBCellParsedFormula(data, length) { var cce = data.read_shift(4); return parsenoop(data, length-4); } diff --git a/bits/64_ftab.js b/bits/64_ftab.js new file mode 100644 index 0000000..50e344b --- /dev/null +++ b/bits/64_ftab.js @@ -0,0 +1,1090 @@ +/* [MS-XLS] 2.5.198.44 */ +var PtgDataType = { + 0x1: "REFERENCE", // reference to range + 0x2: "VALUE", // single value + 0x3: "ARRAY" // array of values +}; + +/* [MS-XLS] 2.5.198.4 */ +var Cetab = { + 0x0000: 'BEEP', + 0x0001: 'OPEN', + 0x0002: 'OPEN.LINKS', + 0x0003: 'CLOSE.ALL', + 0x0004: 'SAVE', + 0x0005: 'SAVE.AS', + 0x0006: 'FILE.DELETE', + 0x0007: 'PAGE.SETUP', + 0x0008: 'PRINT', + 0x0009: 'PRINTER.SETUP', + 0x000A: 'QUIT', + 0x000B: 'NEW.WINDOW', + 0x000C: 'ARRANGE.ALL', + 0x000D: 'WINDOW.SIZE', + 0x000E: 'WINDOW.MOVE', + 0x000F: 'FULL', + 0x0010: 'CLOSE', + 0x0011: 'RUN', + 0x0016: 'SET.PRINT.AREA', + 0x0017: 'SET.PRINT.TITLES', + 0x0018: 'SET.PAGE.BREAK', + 0x0019: 'REMOVE.PAGE.BREAK', + 0x001A: 'FONT', + 0x001B: 'DISPLAY', + 0x001C: 'PROTECT.DOCUMENT', + 0x001D: 'PRECISION', + 0x001E: 'A1.R1C1', + 0x001F: 'CALCULATE.NOW', + 0x0020: 'CALCULATION', + 0x0022: 'DATA.FIND', + 0x0023: 'EXTRACT', + 0x0024: 'DATA.DELETE', + 0x0025: 'SET.DATABASE', + 0x0026: 'SET.CRITERIA', + 0x0027: 'SORT', + 0x0028: 'DATA.SERIES', + 0x0029: 'TABLE', + 0x002A: 'FORMAT.NUMBER', + 0x002B: 'ALIGNMENT', + 0x002C: 'STYLE', + 0x002D: 'BORDER', + 0x002E: 'CELL.PROTECTION', + 0x002F: 'COLUMN.WIDTH', + 0x0030: 'UNDO', + 0x0031: 'CUT', + 0x0032: 'COPY', + 0x0033: 'PASTE', + 0x0034: 'CLEAR', + 0x0035: 'PASTE.SPECIAL', + 0x0036: 'EDIT.DELETE', + 0x0037: 'INSERT', + 0x0038: 'FILL.RIGHT', + 0x0039: 'FILL.DOWN', + 0x003D: 'DEFINE.NAME', + 0x003E: 'CREATE.NAMES', + 0x003F: 'FORMULA.GOTO', + 0x0040: 'FORMULA.FIND', + 0x0041: 'SELECT.LAST.CELL', + 0x0042: 'SHOW.ACTIVE.CELL', + 0x0043: 'GALLERY.AREA', + 0x0044: 'GALLERY.BAR', + 0x0045: 'GALLERY.COLUMN', + 0x0046: 'GALLERY.LINE', + 0x0047: 'GALLERY.PIE', + 0x0048: 'GALLERY.SCATTER', + 0x0049: 'COMBINATION', + 0x004A: 'PREFERRED', + 0x004B: 'ADD.OVERLAY', + 0x004C: 'GRIDLINES', + 0x004D: 'SET.PREFERRED', + 0x004E: 'AXES', + 0x004F: 'LEGEND', + 0x0050: 'ATTACH.TEXT', + 0x0051: 'ADD.ARROW', + 0x0052: 'SELECT.CHART', + 0x0053: 'SELECT.PLOT.AREA', + 0x0054: 'PATTERNS', + 0x0055: 'MAIN.CHART', + 0x0056: 'OVERLAY', + 0x0057: 'SCALE', + 0x0058: 'FORMAT.LEGEND', + 0x0059: 'FORMAT.TEXT', + 0x005A: 'EDIT.REPEAT', + 0x005B: 'PARSE', + 0x005C: 'JUSTIFY', + 0x005D: 'HIDE', + 0x005E: 'UNHIDE', + 0x005F: 'WORKSPACE', + 0x0060: 'FORMULA', + 0x0061: 'FORMULA.FILL', + 0x0062: 'FORMULA.ARRAY', + 0x0063: 'DATA.FIND.NEXT', + 0x0064: 'DATA.FIND.PREV', + 0x0065: 'FORMULA.FIND.NEXT', + 0x0066: 'FORMULA.FIND.PREV', + 0x0067: 'ACTIVATE', + 0x0068: 'ACTIVATE.NEXT', + 0x0069: 'ACTIVATE.PREV', + 0x006A: 'UNLOCKED.NEXT', + 0x006B: 'UNLOCKED.PREV', + 0x006C: 'COPY.PICTURE', + 0x006D: 'SELECT', + 0x006E: 'DELETE.NAME', + 0x006F: 'DELETE.FORMAT', + 0x0070: 'VLINE', + 0x0071: 'HLINE', + 0x0072: 'VPAGE', + 0x0073: 'HPAGE', + 0x0074: 'VSCROLL', + 0x0075: 'HSCROLL', + 0x0076: 'ALERT', + 0x0077: 'NEW', + 0x0078: 'CANCEL.COPY', + 0x0079: 'SHOW.CLIPBOARD', + 0x007A: 'MESSAGE', + 0x007C: 'PASTE.LINK', + 0x007D: 'APP.ACTIVATE', + 0x007E: 'DELETE.ARROW', + 0x007F: 'ROW.HEIGHT', + 0x0080: 'FORMAT.MOVE', + 0x0081: 'FORMAT.SIZE', + 0x0082: 'FORMULA.REPLACE', + 0x0083: 'SEND.KEYS', + 0x0084: 'SELECT.SPECIAL', + 0x0085: 'APPLY.NAMES', + 0x0086: 'REPLACE.FONT', + 0x0087: 'FREEZE.PANES', + 0x0088: 'SHOW.INFO', + 0x0089: 'SPLIT', + 0x008A: 'ON.WINDOW', + 0x008B: 'ON.DATA', + 0x008C: 'DISABLE.INPUT', + 0x008E: 'OUTLINE', + 0x008F: 'LIST.NAMES', + 0x0090: 'FILE.CLOSE', + 0x0091: 'SAVE.WORKBOOK', + 0x0092: 'DATA.FORM', + 0x0093: 'COPY.CHART', + 0x0094: 'ON.TIME', + 0x0095: 'WAIT', + 0x0096: 'FORMAT.FONT', + 0x0097: 'FILL.UP', + 0x0098: 'FILL.LEFT', + 0x0099: 'DELETE.OVERLAY', + 0x009B: 'SHORT.MENUS', + 0x009F: 'SET.UPDATE.STATUS', + 0x00A1: 'COLOR.PALETTE', + 0x00A2: 'DELETE.STYLE', + 0x00A3: 'WINDOW.RESTORE', + 0x00A4: 'WINDOW.MAXIMIZE', + 0x00A6: 'CHANGE.LINK', + 0x00A7: 'CALCULATE.DOCUMENT', + 0x00A8: 'ON.KEY', + 0x00A9: 'APP.RESTORE', + 0x00AA: 'APP.MOVE', + 0x00AB: 'APP.SIZE', + 0x00AC: 'APP.MINIMIZE', + 0x00AD: 'APP.MAXIMIZE', + 0x00AE: 'BRING.TO.FRONT', + 0x00AF: 'SEND.TO.BACK', + 0x00B9: 'MAIN.CHART.TYPE', + 0x00BA: 'OVERLAY.CHART.TYPE', + 0x00BB: 'SELECT.END', + 0x00BC: 'OPEN.MAIL', + 0x00BD: 'SEND.MAIL', + 0x00BE: 'STANDARD.FONT', + 0x00BF: 'CONSOLIDATE', + 0x00C0: 'SORT.SPECIAL', + 0x00C1: 'GALLERY.3D.AREA', + 0x00C2: 'GALLERY.3D.COLUMN', + 0x00C3: 'GALLERY.3D.LINE', + 0x00C4: 'GALLERY.3D.PIE', + 0x00C5: 'VIEW.3D', + 0x00C6: 'GOAL.SEEK', + 0x00C7: 'WORKGROUP', + 0x00C8: 'FILL.GROUP', + 0x00C9: 'UPDATE.LINK', + 0x00CA: 'PROMOTE', + 0x00CB: 'DEMOTE', + 0x00CC: 'SHOW.DETAIL', + 0x00CE: 'UNGROUP', + 0x00CF: 'OBJECT.PROPERTIES', + 0x00D0: 'SAVE.NEW.OBJECT', + 0x00D1: 'SHARE', + 0x00D2: 'SHARE.NAME', + 0x00D3: 'DUPLICATE', + 0x00D4: 'APPLY.STYLE', + 0x00D5: 'ASSIGN.TO.OBJECT', + 0x00D6: 'OBJECT.PROTECTION', + 0x00D7: 'HIDE.OBJECT', + 0x00D8: 'SET.EXTRACT', + 0x00D9: 'CREATE.PUBLISHER', + 0x00DA: 'SUBSCRIBE.TO', + 0x00DB: 'ATTRIBUTES', + 0x00DC: 'SHOW.TOOLBAR', + 0x00DE: 'PRINT.PREVIEW', + 0x00DF: 'EDIT.COLOR', + 0x00E0: 'SHOW.LEVELS', + 0x00E1: 'FORMAT.MAIN', + 0x00E2: 'FORMAT.OVERLAY', + 0x00E3: 'ON.RECALC', + 0x00E4: 'EDIT.SERIES', + 0x00E5: 'DEFINE.STYLE', + 0x00F0: 'LINE.PRINT', + 0x00F3: 'ENTER.DATA', + 0x00F9: 'GALLERY.RADAR', + 0x00FA: 'MERGE.STYLES', + 0x00FB: 'EDITION.OPTIONS', + 0x00FC: 'PASTE.PICTURE', + 0x00FD: 'PASTE.PICTURE.LINK', + 0x00FE: 'SPELLING', + 0x0100: 'ZOOM', + 0x0103: 'INSERT.OBJECT', + 0x0104: 'WINDOW.MINIMIZE', + 0x0109: 'SOUND.NOTE', + 0x010A: 'SOUND.PLAY', + 0x010B: 'FORMAT.SHAPE', + 0x010C: 'EXTEND.POLYGON', + 0x010D: 'FORMAT.AUTO', + 0x0110: 'GALLERY.3D.BAR', + 0x0111: 'GALLERY.3D.SURFACE', + 0x0112: 'FILL.AUTO', + 0x0114: 'CUSTOMIZE.TOOLBAR', + 0x0115: 'ADD.TOOL', + 0x0116: 'EDIT.OBJECT', + 0x0117: 'ON.DOUBLECLICK', + 0x0118: 'ON.ENTRY', + 0x0119: 'WORKBOOK.ADD', + 0x011A: 'WORKBOOK.MOVE', + 0x011B: 'WORKBOOK.COPY', + 0x011C: 'WORKBOOK.OPTIONS', + 0x011D: 'SAVE.WORKSPACE', + 0x0120: 'CHART.WIZARD', + 0x0121: 'DELETE.TOOL', + 0x0122: 'MOVE.TOOL', + 0x0123: 'WORKBOOK.SELECT', + 0x0124: 'WORKBOOK.ACTIVATE', + 0x0125: 'ASSIGN.TO.TOOL', + 0x0127: 'COPY.TOOL', + 0x0128: 'RESET.TOOL', + 0x0129: 'CONSTRAIN.NUMERIC', + 0x012A: 'PASTE.TOOL', + 0x012E: 'WORKBOOK.NEW', + 0x0131: 'SCENARIO.CELLS', + 0x0132: 'SCENARIO.DELETE', + 0x0133: 'SCENARIO.ADD', + 0x0134: 'SCENARIO.EDIT', + 0x0135: 'SCENARIO.SHOW', + 0x0136: 'SCENARIO.SHOW.NEXT', + 0x0137: 'SCENARIO.SUMMARY', + 0x0138: 'PIVOT.TABLE.WIZARD', + 0x0139: 'PIVOT.FIELD.PROPERTIES', + 0x013A: 'PIVOT.FIELD', + 0x013B: 'PIVOT.ITEM', + 0x013C: 'PIVOT.ADD.FIELDS', + 0x013E: 'OPTIONS.CALCULATION', + 0x013F: 'OPTIONS.EDIT', + 0x0140: 'OPTIONS.VIEW', + 0x0141: 'ADDIN.MANAGER', + 0x0142: 'MENU.EDITOR', + 0x0143: 'ATTACH.TOOLBARS', + 0x0144: 'VBAActivate', + 0x0145: 'OPTIONS.CHART', + 0x0148: 'VBA.INSERT.FILE', + 0x014A: 'VBA.PROCEDURE.DEFINITION', + 0x0150: 'ROUTING.SLIP', + 0x0152: 'ROUTE.DOCUMENT', + 0x0153: 'MAIL.LOGON', + 0x0156: 'INSERT.PICTURE', + 0x0157: 'EDIT.TOOL', + 0x0158: 'GALLERY.DOUGHNUT', + 0x015E: 'CHART.TREND', + 0x0160: 'PIVOT.ITEM.PROPERTIES', + 0x0162: 'WORKBOOK.INSERT', + 0x0163: 'OPTIONS.TRANSITION', + 0x0164: 'OPTIONS.GENERAL', + 0x0172: 'FILTER.ADVANCED', + 0x0175: 'MAIL.ADD.MAILER', + 0x0176: 'MAIL.DELETE.MAILER', + 0x0177: 'MAIL.REPLY', + 0x0178: 'MAIL.REPLY.ALL', + 0x0179: 'MAIL.FORWARD', + 0x017A: 'MAIL.NEXT.LETTER', + 0x017B: 'DATA.LABEL', + 0x017C: 'INSERT.TITLE', + 0x017D: 'FONT.PROPERTIES', + 0x017E: 'MACRO.OPTIONS', + 0x017F: 'WORKBOOK.HIDE', + 0x0180: 'WORKBOOK.UNHIDE', + 0x0181: 'WORKBOOK.DELETE', + 0x0182: 'WORKBOOK.NAME', + 0x0184: 'GALLERY.CUSTOM', + 0x0186: 'ADD.CHART.AUTOFORMAT', + 0x0187: 'DELETE.CHART.AUTOFORMAT', + 0x0188: 'CHART.ADD.DATA', + 0x0189: 'AUTO.OUTLINE', + 0x018A: 'TAB.ORDER', + 0x018B: 'SHOW.DIALOG', + 0x018C: 'SELECT.ALL', + 0x018D: 'UNGROUP.SHEETS', + 0x018E: 'SUBTOTAL.CREATE', + 0x018F: 'SUBTOTAL.REMOVE', + 0x0190: 'RENAME.OBJECT', + 0x019C: 'WORKBOOK.SCROLL', + 0x019D: 'WORKBOOK.NEXT', + 0x019E: 'WORKBOOK.PREV', + 0x019F: 'WORKBOOK.TAB.SPLIT', + 0x01A0: 'FULL.SCREEN', + 0x01A1: 'WORKBOOK.PROTECT', + 0x01A4: 'SCROLLBAR.PROPERTIES', + 0x01A5: 'PIVOT.SHOW.PAGES', + 0x01A6: 'TEXT.TO.COLUMNS', + 0x01A7: 'FORMAT.CHARTTYPE', + 0x01A8: 'LINK.FORMAT', + 0x01A9: 'TRACER.DISPLAY', + 0x01AE: 'TRACER.NAVIGATE', + 0x01AF: 'TRACER.CLEAR', + 0x01B0: 'TRACER.ERROR', + 0x01B1: 'PIVOT.FIELD.GROUP', + 0x01B2: 'PIVOT.FIELD.UNGROUP', + 0x01B3: 'CHECKBOX.PROPERTIES', + 0x01B4: 'LABEL.PROPERTIES', + 0x01B5: 'LISTBOX.PROPERTIES', + 0x01B6: 'EDITBOX.PROPERTIES', + 0x01B7: 'PIVOT.REFRESH', + 0x01B8: 'LINK.COMBO', + 0x01B9: 'OPEN.TEXT', + 0x01BA: 'HIDE.DIALOG', + 0x01BB: 'SET.DIALOG.FOCUS', + 0x01BC: 'ENABLE.OBJECT', + 0x01BD: 'PUSHBUTTON.PROPERTIES', + 0x01BE: 'SET.DIALOG.DEFAULT', + 0x01BF: 'FILTER', + 0x01C0: 'FILTER.SHOW.ALL', + 0x01C1: 'CLEAR.OUTLINE', + 0x01C2: 'FUNCTION.WIZARD', + 0x01C3: 'ADD.LIST.ITEM', + 0x01C4: 'SET.LIST.ITEM', + 0x01C5: 'REMOVE.LIST.ITEM', + 0x01C6: 'SELECT.LIST.ITEM', + 0x01C7: 'SET.CONTROL.VALUE', + 0x01C8: 'SAVE.COPY.AS', + 0x01CA: 'OPTIONS.LISTS.ADD', + 0x01CB: 'OPTIONS.LISTS.DELETE', + 0x01CC: 'SERIES.AXES', + 0x01CD: 'SERIES.X', + 0x01CE: 'SERIES.Y', + 0x01CF: 'ERRORBAR.X', + 0x01D0: 'ERRORBAR.Y', + 0x01D1: 'FORMAT.CHART', + 0x01D2: 'SERIES.ORDER', + 0x01D3: 'MAIL.LOGOFF', + 0x01D4: 'CLEAR.ROUTING.SLIP', + 0x01D5: 'APP.ACTIVATE.MICROSOFT', + 0x01D6: 'MAIL.EDIT.MAILER', + 0x01D7: 'ON.SHEET', + 0x01D8: 'STANDARD.WIDTH', + 0x01D9: 'SCENARIO.MERGE', + 0x01DA: 'SUMMARY.INFO', + 0x01DB: 'FIND.FILE', + 0x01DC: 'ACTIVE.CELL.FONT', + 0x01DD: 'ENABLE.TIPWIZARD', + 0x01DE: 'VBA.MAKE.ADDIN', + 0x01E0: 'INSERTDATATABLE', + 0x01E1: 'WORKGROUP.OPTIONS', + 0x01E2: 'MAIL.SEND.MAILER', + 0x01E5: 'AUTOCORRECT', + 0x01E9: 'POST.DOCUMENT', + 0x01EB: 'PICKLIST', + 0x01ED: 'VIEW.SHOW', + 0x01EE: 'VIEW.DEFINE', + 0x01EF: 'VIEW.DELETE', + 0x01FD: 'SHEET.BACKGROUND', + 0x01FE: 'INSERT.MAP.OBJECT', + 0x01FF: 'OPTIONS.MENONO', + 0x0205: 'MSOCHECKS', + 0x0206: 'NORMAL', + 0x0207: 'LAYOUT', + 0x0208: 'RM.PRINT.AREA', + 0x0209: 'CLEAR.PRINT.AREA', + 0x020A: 'ADD.PRINT.AREA', + 0x020B: 'MOVE.BRK', + 0x0221: 'HIDECURR.NOTE', + 0x0222: 'HIDEALL.NOTES', + 0x0223: 'DELETE.NOTE', + 0x0224: 'TRAVERSE.NOTES', + 0x0225: 'ACTIVATE.NOTES', + 0x026C: 'PROTECT.REVISIONS', + 0x026D: 'UNPROTECT.REVISIONS', + 0x0287: 'OPTIONS.ME', + 0x028D: 'WEB.PUBLISH', + 0x029B: 'NEWWEBQUERY', + 0x02A1: 'PIVOT.TABLE.CHART', + 0x02F1: 'OPTIONS.SAVE', + 0x02F3: 'OPTIONS.SPELL', + 0x0328: 'HIDEALL.INKANNOTS' +}; + +/* [MS-XLS] 2.5.198.17 */ +var Ftab = { + 0x0000: 'COUNT', + 0x0001: 'IF', + 0x0002: 'ISNA', + 0x0003: 'ISERROR', + 0x0004: 'SUM', + 0x0005: 'AVERAGE', + 0x0006: 'MIN', + 0x0007: 'MAX', + 0x0008: 'ROW', + 0x0009: 'COLUMN', + 0x000A: 'NA', + 0x000B: 'NPV', + 0x000C: 'STDEV', + 0x000D: 'DOLLAR', + 0x000E: 'FIXED', + 0x000F: 'SIN', + 0x0010: 'COS', + 0x0011: 'TAN', + 0x0012: 'ATAN', + 0x0013: 'PI', + 0x0014: 'SQRT', + 0x0015: 'EXP', + 0x0016: 'LN', + 0x0017: 'LOG10', + 0x0018: 'ABS', + 0x0019: 'INT', + 0x001A: 'SIGN', + 0x001B: 'ROUND', + 0x001C: 'LOOKUP', + 0x001D: 'INDEX', + 0x001E: 'REPT', + 0x001F: 'MID', + 0x0020: 'LEN', + 0x0021: 'VALUE', + 0x0022: 'TRUE', + 0x0023: 'FALSE', + 0x0024: 'AND', + 0x0025: 'OR', + 0x0026: 'NOT', + 0x0027: 'MOD', + 0x0028: 'DCOUNT', + 0x0029: 'DSUM', + 0x002A: 'DAVERAGE', + 0x002B: 'DMIN', + 0x002C: 'DMAX', + 0x002D: 'DSTDEV', + 0x002E: 'VAR', + 0x002F: 'DVAR', + 0x0030: 'TEXT', + 0x0031: 'LINEST', + 0x0032: 'TREND', + 0x0033: 'LOGEST', + 0x0034: 'GROWTH', + 0x0035: 'GOTO', + 0x0036: 'HALT', + 0x0037: 'RETURN', + 0x0038: 'PV', + 0x0039: 'FV', + 0x003A: 'NPER', + 0x003B: 'PMT', + 0x003C: 'RATE', + 0x003D: 'MIRR', + 0x003E: 'IRR', + 0x003F: 'RAND', + 0x0040: 'MATCH', + 0x0041: 'DATE', + 0x0042: 'TIME', + 0x0043: 'DAY', + 0x0044: 'MONTH', + 0x0045: 'YEAR', + 0x0046: 'WEEKDAY', + 0x0047: 'HOUR', + 0x0048: 'MINUTE', + 0x0049: 'SECOND', + 0x004A: 'NOW', + 0x004B: 'AREAS', + 0x004C: 'ROWS', + 0x004D: 'COLUMNS', + 0x004E: 'OFFSET', + 0x004F: 'ABSREF', + 0x0050: 'RELREF', + 0x0051: 'ARGUMENT', + 0x0052: 'SEARCH', + 0x0053: 'TRANSPOSE', + 0x0054: 'ERROR', + 0x0055: 'STEP', + 0x0056: 'TYPE', + 0x0057: 'ECHO', + 0x0058: 'SET.NAME', + 0x0059: 'CALLER', + 0x005A: 'DEREF', + 0x005B: 'WINDOWS', + 0x005C: 'SERIES', + 0x005D: 'DOCUMENTS', + 0x005E: 'ACTIVE.CELL', + 0x005F: 'SELECTION', + 0x0060: 'RESULT', + 0x0061: 'ATAN2', + 0x0062: 'ASIN', + 0x0063: 'ACOS', + 0x0064: 'CHOOSE', + 0x0065: 'HLOOKUP', + 0x0066: 'VLOOKUP', + 0x0067: 'LINKS', + 0x0068: 'INPUT', + 0x0069: 'ISREF', + 0x006A: 'GET.FORMULA', + 0x006B: 'GET.NAME', + 0x006C: 'SET.VALUE', + 0x006D: 'LOG', + 0x006E: 'EXEC', + 0x006F: 'CHAR', + 0x0070: 'LOWER', + 0x0071: 'UPPER', + 0x0072: 'PROPER', + 0x0073: 'LEFT', + 0x0074: 'RIGHT', + 0x0075: 'EXACT', + 0x0076: 'TRIM', + 0x0077: 'REPLACE', + 0x0078: 'SUBSTITUTE', + 0x0079: 'CODE', + 0x007A: 'NAMES', + 0x007B: 'DIRECTORY', + 0x007C: 'FIND', + 0x007D: 'CELL', + 0x007E: 'ISERR', + 0x007F: 'ISTEXT', + 0x0080: 'ISNUMBER', + 0x0081: 'ISBLANK', + 0x0082: 'T', + 0x0083: 'N', + 0x0084: 'FOPEN', + 0x0085: 'FCLOSE', + 0x0086: 'FSIZE', + 0x0087: 'FREADLN', + 0x0088: 'FREAD', + 0x0089: 'FWRITELN', + 0x008A: 'FWRITE', + 0x008B: 'FPOS', + 0x008C: 'DATEVALUE', + 0x008D: 'TIMEVALUE', + 0x008E: 'SLN', + 0x008F: 'SYD', + 0x0090: 'DDB', + 0x0091: 'GET.DEF', + 0x0092: 'REFTEXT', + 0x0093: 'TEXTREF', + 0x0094: 'INDIRECT', + 0x0095: 'REGISTER', + 0x0096: 'CALL', + 0x0097: 'ADD.BAR', + 0x0098: 'ADD.MENU', + 0x0099: 'ADD.COMMAND', + 0x009A: 'ENABLE.COMMAND', + 0x009B: 'CHECK.COMMAND', + 0x009C: 'RENAME.COMMAND', + 0x009D: 'SHOW.BAR', + 0x009E: 'DELETE.MENU', + 0x009F: 'DELETE.COMMAND', + 0x00A0: 'GET.CHART.ITEM', + 0x00A1: 'DIALOG.BOX', + 0x00A2: 'CLEAN', + 0x00A3: 'MDETERM', + 0x00A4: 'MINVERSE', + 0x00A5: 'MMULT', + 0x00A6: 'FILES', + 0x00A7: 'IPMT', + 0x00A8: 'PPMT', + 0x00A9: 'COUNTA', + 0x00AA: 'CANCEL.KEY', + 0x00AB: 'FOR', + 0x00AC: 'WHILE', + 0x00AD: 'BREAK', + 0x00AE: 'NEXT', + 0x00AF: 'INITIATE', + 0x00B0: 'REQUEST', + 0x00B1: 'POKE', + 0x00B2: 'EXECUTE', + 0x00B3: 'TERMINATE', + 0x00B4: 'RESTART', + 0x00B5: 'HELP', + 0x00B6: 'GET.BAR', + 0x00B7: 'PRODUCT', + 0x00B8: 'FACT', + 0x00B9: 'GET.CELL', + 0x00BA: 'GET.WORKSPACE', + 0x00BB: 'GET.WINDOW', + 0x00BC: 'GET.DOCUMENT', + 0x00BD: 'DPRODUCT', + 0x00BE: 'ISNONTEXT', + 0x00BF: 'GET.NOTE', + 0x00C0: 'NOTE', + 0x00C1: 'STDEVP', + 0x00C2: 'VARP', + 0x00C3: 'DSTDEVP', + 0x00C4: 'DVARP', + 0x00C5: 'TRUNC', + 0x00C6: 'ISLOGICAL', + 0x00C7: 'DCOUNTA', + 0x00C8: 'DELETE.BAR', + 0x00C9: 'UNREGISTER', + 0x00CC: 'USDOLLAR', + 0x00CD: 'FINDB', + 0x00CE: 'SEARCHB', + 0x00CF: 'REPLACEB', + 0x00D0: 'LEFTB', + 0x00D1: 'RIGHTB', + 0x00D2: 'MIDB', + 0x00D3: 'LENB', + 0x00D4: 'ROUNDUP', + 0x00D5: 'ROUNDDOWN', + 0x00D6: 'ASC', + 0x00D7: 'DBCS', + 0x00D8: 'RANK', + 0x00DB: 'ADDRESS', + 0x00DC: 'DAYS360', + 0x00DD: 'TODAY', + 0x00DE: 'VDB', + 0x00DF: 'ELSE', + 0x00E0: 'ELSE.IF', + 0x00E1: 'END.IF', + 0x00E2: 'FOR.CELL', + 0x00E3: 'MEDIAN', + 0x00E4: 'SUMPRODUCT', + 0x00E5: 'SINH', + 0x00E6: 'COSH', + 0x00E7: 'TANH', + 0x00E8: 'ASINH', + 0x00E9: 'ACOSH', + 0x00EA: 'ATANH', + 0x00EB: 'DGET', + 0x00EC: 'CREATE.OBJECT', + 0x00ED: 'VOLATILE', + 0x00EE: 'LAST.ERROR', + 0x00EF: 'CUSTOM.UNDO', + 0x00F0: 'CUSTOM.REPEAT', + 0x00F1: 'FORMULA.CONVERT', + 0x00F2: 'GET.LINK.INFO', + 0x00F3: 'TEXT.BOX', + 0x00F4: 'INFO', + 0x00F5: 'GROUP', + 0x00F6: 'GET.OBJECT', + 0x00F7: 'DB', + 0x00F8: 'PAUSE', + 0x00FB: 'RESUME', + 0x00FC: 'FREQUENCY', + 0x00FD: 'ADD.TOOLBAR', + 0x00FE: 'DELETE.TOOLBAR', + 0x00FF: 'User', + 0x0100: 'RESET.TOOLBAR', + 0x0101: 'EVALUATE', + 0x0102: 'GET.TOOLBAR', + 0x0103: 'GET.TOOL', + 0x0104: 'SPELLING.CHECK', + 0x0105: 'ERROR.TYPE', + 0x0106: 'APP.TITLE', + 0x0107: 'WINDOW.TITLE', + 0x0108: 'SAVE.TOOLBAR', + 0x0109: 'ENABLE.TOOL', + 0x010A: 'PRESS.TOOL', + 0x010B: 'REGISTER.ID', + 0x010C: 'GET.WORKBOOK', + 0x010D: 'AVEDEV', + 0x010E: 'BETADIST', + 0x010F: 'GAMMALN', + 0x0110: 'BETAINV', + 0x0111: 'BINOMDIST', + 0x0112: 'CHIDIST', + 0x0113: 'CHIINV', + 0x0114: 'COMBIN', + 0x0115: 'CONFIDENCE', + 0x0116: 'CRITBINOM', + 0x0117: 'EVEN', + 0x0118: 'EXPONDIST', + 0x0119: 'FDIST', + 0x011A: 'FINV', + 0x011B: 'FISHER', + 0x011C: 'FISHERINV', + 0x011D: 'FLOOR', + 0x011E: 'GAMMADIST', + 0x011F: 'GAMMAINV', + 0x0120: 'CEILING', + 0x0121: 'HYPGEOMDIST', + 0x0122: 'LOGNORMDIST', + 0x0123: 'LOGINV', + 0x0124: 'NEGBINOMDIST', + 0x0125: 'NORMDIST', + 0x0126: 'NORMSDIST', + 0x0127: 'NORMINV', + 0x0128: 'NORMSINV', + 0x0129: 'STANDARDIZE', + 0x012A: 'ODD', + 0x012B: 'PERMUT', + 0x012C: 'POISSON', + 0x012D: 'TDIST', + 0x012E: 'WEIBULL', + 0x012F: 'SUMXMY2', + 0x0130: 'SUMX2MY2', + 0x0131: 'SUMX2PY2', + 0x0132: 'CHITEST', + 0x0133: 'CORREL', + 0x0134: 'COVAR', + 0x0135: 'FORECAST', + 0x0136: 'FTEST', + 0x0137: 'INTERCEPT', + 0x0138: 'PEARSON', + 0x0139: 'RSQ', + 0x013A: 'STEYX', + 0x013B: 'SLOPE', + 0x013C: 'TTEST', + 0x013D: 'PROB', + 0x013E: 'DEVSQ', + 0x013F: 'GEOMEAN', + 0x0140: 'HARMEAN', + 0x0141: 'SUMSQ', + 0x0142: 'KURT', + 0x0143: 'SKEW', + 0x0144: 'ZTEST', + 0x0145: 'LARGE', + 0x0146: 'SMALL', + 0x0147: 'QUARTILE', + 0x0148: 'PERCENTILE', + 0x0149: 'PERCENTRANK', + 0x014A: 'MODE', + 0x014B: 'TRIMMEAN', + 0x014C: 'TINV', + 0x014E: 'MOVIE.COMMAND', + 0x014F: 'GET.MOVIE', + 0x0150: 'CONCATENATE', + 0x0151: 'POWER', + 0x0152: 'PIVOT.ADD.DATA', + 0x0153: 'GET.PIVOT.TABLE', + 0x0154: 'GET.PIVOT.FIELD', + 0x0155: 'GET.PIVOT.ITEM', + 0x0156: 'RADIANS', + 0x0157: 'DEGREES', + 0x0158: 'SUBTOTAL', + 0x0159: 'SUMIF', + 0x015A: 'COUNTIF', + 0x015B: 'COUNTBLANK', + 0x015C: 'SCENARIO.GET', + 0x015D: 'OPTIONS.LISTS.GET', + 0x015E: 'ISPMT', + 0x015F: 'DATEDIF', + 0x0160: 'DATESTRING', + 0x0161: 'NUMBERSTRING', + 0x0162: 'ROMAN', + 0x0163: 'OPEN.DIALOG', + 0x0164: 'SAVE.DIALOG', + 0x0165: 'VIEW.GET', + 0x0166: 'GETPIVOTDATA', + 0x0167: 'HYPERLINK', + 0x0168: 'PHONETIC', + 0x0169: 'AVERAGEA', + 0x016A: 'MAXA', + 0x016B: 'MINA', + 0x016C: 'STDEVPA', + 0x016D: 'VARPA', + 0x016E: 'STDEVA', + 0x016F: 'VARA', + 0x0170: 'BAHTTEXT', + 0x0171: 'THAIDAYOFWEEK', + 0x0172: 'THAIDIGIT', + 0x0173: 'THAIMONTHOFYEAR', + 0x0174: 'THAINUMSOUND', + 0x0175: 'THAINUMSTRING', + 0x0176: 'THAISTRINGLENGTH', + 0x0177: 'ISTHAIDIGIT', + 0x0178: 'ROUNDBAHTDOWN', + 0x0179: 'ROUNDBAHTUP', + 0x017A: 'THAIYEAR', + 0x017B: 'RTD' +}; +var FtabArgc = { + 0x0002: 1, /* ISNA */ + 0x0003: 1, /* ISERROR */ + 0x000F: 1, /* SIN */ + 0x0010: 1, /* COS */ + 0x0011: 1, /* TAN */ + 0x0012: 1, /* ATAN */ + 0x0014: 1, /* SQRT */ + 0x0015: 1, /* EXP */ + 0x0016: 1, /* LN */ + 0x0017: 1, /* LOG10 */ + 0x0018: 1, /* ABS */ + 0x0019: 1, /* INT */ + 0x001A: 1, /* SIGN */ + 0x001B: 2, /* ROUND */ + 0x001E: 2, /* REPT */ + 0x001F: 3, /* MID */ + 0x0020: 1, /* LEN */ + 0x0021: 1, /* VALUE */ + 0x0026: 1, /* NOT */ + 0x0027: 2, /* MOD */ + 0x0028: 3, /* DCOUNT */ + 0x0029: 3, /* DSUM */ + 0x002A: 3, /* DAVERAGE */ + 0x002B: 3, /* DMIN */ + 0x002C: 3, /* DMAX */ + 0x002D: 3, /* DSTDEV */ + 0x002F: 3, /* DVAR */ + 0x0030: 2, /* TEXT */ + 0x0035: 1, /* GOTO */ + 0x003D: 3, /* MIRR */ + 0x0041: 3, /* DATE */ + 0x0042: 3, /* TIME */ + 0x0043: 1, /* DAY */ + 0x0044: 1, /* MONTH */ + 0x0045: 1, /* YEAR */ + 0x0047: 1, /* HOUR */ + 0x0048: 1, /* MINUTE */ + 0x0049: 1, /* SECOND */ + 0x004B: 1, /* AREAS */ + 0x004C: 1, /* ROWS */ + 0x004D: 1, /* COLUMNS */ + 0x004F: 2, /* ABSREF */ + 0x0050: 2, /* RELREF */ + 0x0053: 1, /* TRANSPOSE */ + 0x0056: 1, /* TYPE */ + 0x005A: 1, /* DEREF */ + 0x0061: 2, /* ATAN2 */ + 0x0062: 1, /* ASIN */ + 0x0063: 1, /* ACOS */ + 0x0069: 1, /* ISREF */ + 0x006F: 1, /* CHAR */ + 0x0070: 1, /* LOWER */ + 0x0071: 1, /* UPPER */ + 0x0072: 1, /* PROPER */ + 0x0075: 2, /* EXACT */ + 0x0076: 1, /* TRIM */ + 0x0077: 4, /* REPLACE */ + 0x0079: 1, /* CODE */ + 0x007E: 1, /* ISERR */ + 0x007F: 1, /* ISTEXT */ + 0x0080: 1, /* ISNUMBER */ + 0x0081: 1, /* ISBLANK */ + 0x0082: 1, /* T */ + 0x0083: 1, /* N */ + 0x0085: 1, /* FCLOSE */ + 0x0086: 1, /* FSIZE */ + 0x0087: 1, /* FREADLN */ + 0x0088: 2, /* FREAD */ + 0x0089: 2, /* FWRITELN */ + 0x008A: 2, /* FWRITE */ + 0x008C: 1, /* DATEVALUE */ + 0x008D: 1, /* TIMEVALUE */ + 0x008E: 3, /* SLN */ + 0x008F: 4, /* SYD */ + 0x00A2: 1, /* CLEAN */ + 0x00A3: 1, /* MDETERM */ + 0x00A4: 1, /* MINVERSE */ + 0x00A5: 2, /* MMULT */ + 0x00AC: 1, /* WHILE */ + 0x00AF: 2, /* INITIATE */ + 0x00B0: 2, /* REQUEST */ + 0x00B1: 3, /* POKE */ + 0x00B2: 2, /* EXECUTE */ + 0x00B3: 1, /* TERMINATE */ + 0x00B8: 1, /* FACT */ + 0x00BD: 3, /* DPRODUCT */ + 0x00BE: 1, /* ISNONTEXT */ + 0x00C3: 3, /* DSTDEVP */ + 0x00C4: 3, /* DVARP */ + 0x00C6: 1, /* ISLOGICAL */ + 0x00C7: 3, /* DCOUNTA */ + 0x00C9: 1, /* UNREGISTER */ + 0x00CF: 4, /* REPLACEB */ + 0x00D2: 3, /* MIDB */ + 0x00D3: 1, /* LENB */ + 0x00D4: 2, /* ROUNDUP */ + 0x00D5: 2, /* ROUNDDOWN */ + 0x00D6: 1, /* ASC */ + 0x00D7: 1, /* DBCS */ + 0x00E5: 1, /* SINH */ + 0x00E6: 1, /* COSH */ + 0x00E7: 1, /* TANH */ + 0x00E8: 1, /* ASINH */ + 0x00E9: 1, /* ACOSH */ + 0x00EA: 1, /* ATANH */ + 0x00EB: 3, /* DGET */ + 0x00F4: 1, /* INFO */ + 0x00FC: 2, /* FREQUENCY */ + 0x0101: 1, /* EVALUATE */ + 0x0105: 1, /* ERROR.TYPE */ + 0x010F: 1, /* GAMMALN */ + 0x0111: 4, /* BINOMDIST */ + 0x0112: 2, /* CHIDIST */ + 0x0113: 2, /* CHIINV */ + 0x0114: 2, /* COMBIN */ + 0x0115: 3, /* CONFIDENCE */ + 0x0116: 3, /* CRITBINOM */ + 0x0117: 1, /* EVEN */ + 0x0118: 3, /* EXPONDIST */ + 0x0119: 3, /* FDIST */ + 0x011A: 3, /* FINV */ + 0x011B: 1, /* FISHER */ + 0x011C: 1, /* FISHERINV */ + 0x011D: 2, /* FLOOR */ + 0x011E: 4, /* GAMMADIST */ + 0x011F: 3, /* GAMMAINV */ + 0x0120: 2, /* CEILING */ + 0x0121: 4, /* HYPGEOMDIST */ + 0x0122: 3, /* LOGNORMDIST */ + 0x0123: 3, /* LOGINV */ + 0x0124: 3, /* NEGBINOMDIST */ + 0x0125: 4, /* NORMDIST */ + 0x0126: 1, /* NORMSDIST */ + 0x0127: 3, /* NORMINV */ + 0x0128: 1, /* NORMSINV */ + 0x0129: 3, /* STANDARDIZE */ + 0x012A: 1, /* ODD */ + 0x012B: 2, /* PERMUT */ + 0x012C: 3, /* POISSON */ + 0x012D: 3, /* TDIST */ + 0x012E: 4, /* WEIBULL */ + 0x012F: 2, /* SUMXMY2 */ + 0x0130: 2, /* SUMX2MY2 */ + 0x0131: 2, /* SUMX2PY2 */ + 0x0132: 2, /* CHITEST */ + 0x0133: 2, /* CORREL */ + 0x0134: 2, /* COVAR */ + 0x0135: 3, /* FORECAST */ + 0x0136: 2, /* FTEST */ + 0x0137: 2, /* INTERCEPT */ + 0x0138: 2, /* PEARSON */ + 0x0139: 2, /* RSQ */ + 0x013A: 2, /* STEYX */ + 0x013B: 2, /* SLOPE */ + 0x013C: 4, /* TTEST */ + 0x0145: 2, /* LARGE */ + 0x0146: 2, /* SMALL */ + 0x0147: 2, /* QUARTILE */ + 0x0148: 2, /* PERCENTILE */ + 0x014B: 2, /* TRIMMEAN */ + 0x014C: 2, /* TINV */ + 0x0151: 2, /* POWER */ + 0x0156: 1, /* RADIANS */ + 0x0157: 1, /* DEGREES */ + 0x015A: 2, /* COUNTIF */ + 0x015B: 1, /* COUNTBLANK */ + 0x015E: 4, /* ISPMT */ + 0x015F: 3, /* DATEDIF */ + 0x0160: 1, /* DATESTRING */ + 0x0161: 2, /* NUMBERSTRING */ + 0x0168: 1, /* PHONETIC */ + 0x0170: 1, /* BAHTTEXT */ + 0x0171: 1, /* THAIDAYOFWEEK */ + 0x0172: 1, /* THAIDIGIT */ + 0x0173: 1, /* THAIMONTHOFYEAR */ + 0x0174: 1, /* THAINUMSOUND */ + 0x0175: 1, /* THAINUMSTRING */ + 0x0176: 1, /* THAISTRINGLENGTH */ + 0x0177: 1, /* ISTHAIDIGIT */ + 0x0178: 1, /* ROUNDBAHTDOWN */ + 0x0179: 1, /* ROUNDBAHTUP */ + 0x017A: 1, /* THAIYEAR */ + 0xFFFF: 0 +}; +/* [MS-XLSX] 2.2.3 Functions */ +var XLSXFutureFunctions = { + "_xlfn.ACOT": "ACOT", + "_xlfn.ACOTH": "ACOTH", + "_xlfn.AGGREGATE": "AGGREGATE", + "_xlfn.ARABIC": "ARABIC", + "_xlfn.AVERAGEIF": "AVERAGEIF", + "_xlfn.AVERAGEIFS": "AVERAGEIFS", + "_xlfn.BASE": "BASE", + "_xlfn.BETA.DIST": "BETA.DIST", + "_xlfn.BETA.INV": "BETA.INV", + "_xlfn.BINOM.DIST": "BINOM.DIST", + "_xlfn.BINOM.DIST.RANGE": "BINOM.DIST.RANGE", + "_xlfn.BINOM.INV": "BINOM.INV", + "_xlfn.BITAND": "BITAND", + "_xlfn.BITLSHIFT": "BITLSHIFT", + "_xlfn.BITOR": "BITOR", + "_xlfn.BITRSHIFT": "BITRSHIFT", + "_xlfn.BITXOR": "BITXOR", + "_xlfn.CEILING.MATH": "CEILING.MATH", + "_xlfn.CEILING.PRECISE": "CEILING.PRECISE", + "_xlfn.CHISQ.DIST": "CHISQ.DIST", + "_xlfn.CHISQ.DIST.RT": "CHISQ.DIST.RT", + "_xlfn.CHISQ.INV": "CHISQ.INV", + "_xlfn.CHISQ.INV.RT": "CHISQ.INV.RT", + "_xlfn.CHISQ.TEST": "CHISQ.TEST", + "_xlfn.COMBINA": "COMBINA", + "_xlfn.CONFIDENCE.NORM": "CONFIDENCE.NORM", + "_xlfn.CONFIDENCE.T": "CONFIDENCE.T", + "_xlfn.COT": "COT", + "_xlfn.COTH": "COTH", + "_xlfn.COUNTIFS": "COUNTIFS", + "_xlfn.COVARIANCE.P": "COVARIANCE.P", + "_xlfn.COVARIANCE.S": "COVARIANCE.S", + "_xlfn.CSC": "CSC", + "_xlfn.CSCH": "CSCH", + "_xlfn.DAYS": "DAYS", + "_xlfn.DECIMAL": "DECIMAL", + "_xlfn.ECMA.CEILING": "ECMA.CEILING", + "_xlfn.ERF.PRECISE": "ERF.PRECISE", + "_xlfn.ERFC.PRECISE": "ERFC.PRECISE", + "_xlfn.EXPON.DIST": "EXPON.DIST", + "_xlfn.F.DIST": "F.DIST", + "_xlfn.F.DIST.RT": "F.DIST.RT", + "_xlfn.F.INV": "F.INV", + "_xlfn.F.INV.RT": "F.INV.RT", + "_xlfn.F.TEST": "F.TEST", + "_xlfn.FILTERXML": "FILTERXML", + "_xlfn.FLOOR.MATH": "FLOOR.MATH", + "_xlfn.FLOOR.PRECISE": "FLOOR.PRECISE", + "_xlfn.FORMULATEXT": "FORMULATEXT", + "_xlfn.GAMMA": "GAMMA", + "_xlfn.GAMMA.DIST": "GAMMA.DIST", + "_xlfn.GAMMA.INV": "GAMMA.INV", + "_xlfn.GAMMALN.PRECISE": "GAMMALN.PRECISE", + "_xlfn.GAUSS": "GAUSS", + "_xlfn.HYPGEOM.DIST": "HYPGEOM.DIST", + "_xlfn.IFNA": "IFNA", + "_xlfn.IFERROR": "IFERROR", + "_xlfn.IMCOSH": "IMCOSH", + "_xlfn.IMCOT": "IMCOT", + "_xlfn.IMCSC": "IMCSC", + "_xlfn.IMCSCH": "IMCSCH", + "_xlfn.IMSEC": "IMSEC", + "_xlfn.IMSECH": "IMSECH", + "_xlfn.IMSINH": "IMSINH", + "_xlfn.IMTAN": "IMTAN", + "_xlfn.ISFORMULA": "ISFORMULA", + "_xlfn.ISO.CEILING": "ISO.CEILING", + "_xlfn.ISOWEEKNUM": "ISOWEEKNUM", + "_xlfn.LOGNORM.DIST": "LOGNORM.DIST", + "_xlfn.LOGNORM.INV": "LOGNORM.INV", + "_xlfn.MODE.MULT": "MODE.MULT", + "_xlfn.MODE.SNGL": "MODE.SNGL", + "_xlfn.MUNIT": "MUNIT", + "_xlfn.NEGBINOM.DIST": "NEGBINOM.DIST", + "_xlfn.NETWORKDAYS.INTL": "NETWORKDAYS.INTL", + "_xlfn.NIGBINOM": "NIGBINOM", + "_xlfn.NORM.DIST": "NORM.DIST", + "_xlfn.NORM.INV": "NORM.INV", + "_xlfn.NORM.S.DIST": "NORM.S.DIST", + "_xlfn.NORM.S.INV": "NORM.S.INV", + "_xlfn.NUMBERVALUE": "NUMBERVALUE", + "_xlfn.PDURATION": "PDURATION", + "_xlfn.PERCENTILE.EXC": "PERCENTILE.EXC", + "_xlfn.PERCENTILE.INC": "PERCENTILE.INC", + "_xlfn.PERCENTRANK.EXC": "PERCENTRANK.EXC", + "_xlfn.PERCENTRANK.INC": "PERCENTRANK.INC", + "_xlfn.PERMUTATIONA": "PERMUTATIONA", + "_xlfn.PHI": "PHI", + "_xlfn.POISSON.DIST": "POISSON.DIST", + "_xlfn.QUARTILE.EXC": "QUARTILE.EXC", + "_xlfn.QUARTILE.INC": "QUARTILE.INC", + "_xlfn.QUERYSTRING": "QUERYSTRING", + "_xlfn.RANK.AVG": "RANK.AVG", + "_xlfn.RANK.EQ": "RANK.EQ", + "_xlfn.RRI": "RRI", + "_xlfn.SEC": "SEC", + "_xlfn.SECH": "SECH", + "_xlfn.SHEET": "SHEET", + "_xlfn.SHEETS": "SHEETS", + "_xlfn.SKEW.P": "SKEW.P", + "_xlfn.STDEV.P": "STDEV.P", + "_xlfn.STDEV.S": "STDEV.S", + "_xlfn.SUMIFS": "SUMIFS", + "_xlfn.T.DIST": "T.DIST", + "_xlfn.T.DIST.2T": "T.DIST.2T", + "_xlfn.T.DIST.RT": "T.DIST.RT", + "_xlfn.T.INV": "T.INV", + "_xlfn.T.INV.2T": "T.INV.2T", + "_xlfn.T.TEST": "T.TEST", + "_xlfn.UNICHAR": "UNICHAR", + "_xlfn.UNICODE": "UNICODE", + "_xlfn.VAR.P": "VAR.P", + "_xlfn.VAR.S": "VAR.S", + "_xlfn.WEBSERVICE": "WEBSERVICE", + "_xlfn.WEIBULL.DIST": "WEIBULL.DIST", + "_xlfn.WORKDAY.INTL": "WORKDAY.INTL", + "_xlfn.XOR": "XOR", + "_xlfn.Z.TEST": "Z.TEST" +}; + diff --git a/bits/68_wsbin.js b/bits/68_wsbin.js index 79e3198..fd5f1e0 100644 --- a/bits/68_wsbin.js +++ b/bits/68_wsbin.js @@ -16,70 +16,70 @@ function parse_BrtWsProp(data, length) { var z = {}; /* TODO: pull flags */ data.l += 19; - z.name = parse_CodeName(data, length - 19); + z.name = parse_XLSBCodeName(data, length - 19); return z; } /* [MS-XLSB] 2.4.303 BrtCellBlank */ function parse_BrtCellBlank(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); return [cell]; } function write_BrtCellBlank(cell, val, o) { if(o == null) o = new_buf(8); - return write_Cell(val, o); + return write_XLSBCell(val, o); } /* [MS-XLSB] 2.4.304 BrtCellBool */ function parse_BrtCellBool(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var fBool = data.read_shift(1); return [cell, fBool, 'b']; } /* [MS-XLSB] 2.4.305 BrtCellError */ function parse_BrtCellError(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var fBool = data.read_shift(1); return [cell, fBool, 'e']; } /* [MS-XLSB] 2.4.308 BrtCellIsst */ function parse_BrtCellIsst(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var isst = data.read_shift(4); return [cell, isst, 's']; } /* [MS-XLSB] 2.4.310 BrtCellReal */ function parse_BrtCellReal(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_Xnum(data); return [cell, value, 'n']; } /* [MS-XLSB] 2.4.311 BrtCellRk */ function parse_BrtCellRk(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_RkNumber(data); return [cell, value, 'n']; } /* [MS-XLSB] 2.4.314 BrtCellSt */ function parse_BrtCellSt(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_XLWideString(data); return [cell, value, 'str']; } /* [MS-XLSB] 2.4.647 BrtFmlaBool */ function parse_BrtFmlaBool(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = data.read_shift(1); var o = [cell, value, 'b']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length-9); + var formula = parse_XLSBCellParsedFormula(data, length-9); o[3] = ""; /* TODO */ } else data.l += length-9; @@ -88,11 +88,11 @@ function parse_BrtFmlaBool(data, length, opts) { /* [MS-XLSB] 2.4.648 BrtFmlaError */ function parse_BrtFmlaError(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = data.read_shift(1); var o = [cell, value, 'e']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length-9); + var formula = parse_XLSBCellParsedFormula(data, length-9); o[3] = ""; /* TODO */ } else data.l += length-9; @@ -101,11 +101,11 @@ function parse_BrtFmlaError(data, length, opts) { /* [MS-XLSB] 2.4.649 BrtFmlaNum */ function parse_BrtFmlaNum(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_Xnum(data); var o = [cell, value, 'n']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length - 16); + var formula = parse_XLSBCellParsedFormula(data, length - 16); o[3] = ""; /* TODO */ } else data.l += length-16; @@ -115,11 +115,11 @@ function parse_BrtFmlaNum(data, length, opts) { /* [MS-XLSB] 2.4.650 BrtFmlaString */ function parse_BrtFmlaString(data, length, opts) { var start = data.l; - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_XLWideString(data); var o = [cell, value, 'str']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, start + length - data.l); + var formula = parse_XLSBCellParsedFormula(data, start + length - data.l); } else data.l = start + length; return o; diff --git a/bits/80_xlml.js b/bits/80_xlml.js new file mode 100644 index 0000000..f9fef28 --- /dev/null +++ b/bits/80_xlml.js @@ -0,0 +1,699 @@ +var attregexg2=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g; +var attregex2=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/; +var _chr = function(c) { return String.fromCharCode(c); }; +function xlml_parsexmltag(tag, skip_root) { + var words = tag.split(/\s+/); + var z = []; if(!skip_root) z[0] = words[0]; + if(words.length === 1) return z; + var m = tag.match(attregexg2), y, j, w, i; + if(m) for(i = 0; i != m.length; ++i) { + y = m[i].match(attregex2); + if((j=y[1].indexOf(":")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2); + else { + if(y[1].substr(0,6) === "xmlns:") w = "xmlns"+y[1].substr(6); + else w = y[1].substr(j+1); + z[w] = y[2].substr(1,y[2].length-2); + } + } + return z; +} +function xlml_parsexmltagobj(tag) { + var words = tag.split(/\s+/); + var z = {}; + if(words.length === 1) return z; + var m = tag.match(attregexg2), y, j, w, i; + if(m) for(i = 0; i != m.length; ++i) { + y = m[i].match(attregex2); + if((j=y[1].indexOf(":")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2); + else { + if(y[1].substr(0,6) === "xmlns:") w = "xmlns"+y[1].substr(6); + else w = y[1].substr(j+1); + z[w] = y[2].substr(1,y[2].length-2); + } + } + return z; +} + +// ---- + +function xlml_format(format, value) { + var fmt = XLMLFormatMap[format] || unescapexml(format); + if(fmt === "General") return SSF._general(value); + return SSF.format(fmt, value); +} + +function xlml_set_custprop(Custprops, Rn, cp, val) { + switch((cp[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]) { + case "boolean": val = parsexmlbool(val); break; + case "i2": case "int": val = parseInt(val, 10); break; + case "r4": case "float": val = parseFloat(val); break; + case "date": case "dateTime.tz": val = new Date(val); break; + case "i8": case "string": case "fixed": case "uuid": case "bin.base64": break; + default: throw "bad custprop:" + cp[0]; + } + Custprops[unescapexml(Rn[3])] = val; +} + +function safe_format_xlml(cell, nf, o) { + try { + if(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; } + else if(nf === "General") { + if(cell.t === 'n') { + if((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v); + else cell.w = SSF._general_num(cell.v); + } + else cell.w = SSF._general(cell.v); + } + else cell.w = xlml_format(nf||"General", cell.v); + if(o.cellNF) cell.z = XLMLFormatMap[nf]||nf||"General"; + } catch(e) { if(o.WTF) throw e; } +} + +function process_style_xlml(styles, stag, opts) { + if(opts.cellStyles) { + if(stag.Interior) { + var I = stag.Interior; + if(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern; + } + } + styles[stag.ID] = stag; +} + +/* TODO: there must exist some form of OSP-blessed spec */ +function parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, o) { + var nf = "General", sid = cell.StyleID, S = {}; o = o || {}; + var interiors = []; + if(sid === undefined && row) sid = row.StyleID; + if(sid === undefined && csty) sid = csty.StyleID; + while(styles[sid] !== undefined) { + if(styles[sid].nf) nf = styles[sid].nf; + if(styles[sid].Interior) interiors.push(styles[sid].Interior); + if(!styles[sid].Parent) break; + sid = styles[sid].Parent; + } + switch(data.Type) { + case 'Boolean': + cell.t = 'b'; + cell.v = parsexmlbool(xml); + break; + case 'String': + cell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml)); + cell.v = xml.indexOf("<") > -1 ? ss : cell.r; + break; + case 'DateTime': + cell.v = (Date.parse(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); + if(cell.v !== cell.v) cell.v = unescapexml(xml); + else if(cell.v >= 1 && cell.v<60) cell.v = cell.v -1; + if(!nf || nf == "General") nf = "yyyy-mm-dd"; + /* falls through */ + case 'Number': + if(cell.v === undefined) cell.v=+xml; + if(!cell.t) cell.t = 'n'; + break; + case 'Error': cell.t = 'e'; cell.v = RBErr[xml]; cell.w = xml; break; + default: cell.t = 's'; cell.v = xlml_fixstr(ss); break; + } + safe_format_xlml(cell, nf, o); + if(o.cellFormula != null && cell.Formula) { + cell.f = rc_to_a1(unescapexml(cell.Formula), base); + cell.Formula = undefined; + } + if(o.cellStyles) { + interiors.forEach(function(x) { + if(!S.patternType && x.patternType) S.patternType = x.patternType; + }); + cell.s = S; + } + cell.ixfe = cell.StyleID !== undefined ? cell.StyleID : 'Default'; +} + +function xlml_clean_comment(comment) { + comment.t = comment.v; + comment.v = comment.w = comment.ixfe = undefined; +} + +function xlml_normalize(d) { + if(has_buf && Buffer.isBuffer(d)) return d.toString('utf8'); + if(typeof d === 'string') return d; + throw "badf"; +} + +/* TODO: Everything */ +var xlmlregex = /<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/mg; +function parse_xlml_xml(d, opts) { + var str = xlml_normalize(d); + var Rn; + var state = [], tmp; + var sheets = {}, sheetnames = [], cursheet = {}, sheetname = ""; + var table = {}, cell = {}, row = {}, dtag, didx; + var c = 0, r = 0; + var refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} }; + var styles = {}, stag = {}; + var ss = "", fidx = 0; + var mergecells = []; + var Props = {}, Custprops = {}, pidx = 0, cp = {}; + var comments = [], comment = {}; + var cstys = [], csty; + xlmlregex.lastIndex = 0; + while((Rn = xlmlregex.exec(str))) switch(Rn[3]) { + case 'Data': + if(state[state.length-1][1]) break; + if(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]=="Comment"?comment:cell, {c:c,r:r}, styles, cstys[c], row, opts); + else { ss = ""; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; } + break; + case 'Cell': + if(Rn[1]==='/'){ + if(comments.length > 0) cell.c = comments; + if((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) cursheet[encode_col(c) + encode_row(r)] = cell; + if(cell.HRef) { + cell.l = {Target:cell.HRef, tooltip:cell.HRefScreenTip}; + cell.HRef = cell.HRefScreenTip = undefined; + } + if(cell.MergeAcross || cell.MergeDown) { + var cc = c + (parseInt(cell.MergeAcross,10)|0); + var rr = r + (parseInt(cell.MergeDown,10)|0); + mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}}); + } + ++c; + if(cell.MergeAcross) c += +cell.MergeAcross; + } else { + cell = xlml_parsexmltagobj(Rn[0]); + if(cell.Index) c = +cell.Index - 1; + if(c < refguess.s.c) refguess.s.c = c; + if(c > refguess.e.c) refguess.e.c = c; + if(Rn[0].substr(-2) === "/>") ++c; + comments = []; + } + break; + case 'Row': + if(Rn[1]==='/' || Rn[0].substr(-2) === "/>") { + if(r < refguess.s.r) refguess.s.r = r; + if(r > refguess.e.r) refguess.e.r = r; + if(Rn[0].substr(-2) === "/>") { + row = xlml_parsexmltag(Rn[0]); + if(row.Index) r = +row.Index - 1; + } + c = 0; ++r; + } else { + row = xlml_parsexmltag(Rn[0]); + if(row.Index) r = +row.Index - 1; + } + break; + case 'Worksheet': /* TODO: read range from FullRows/FullColumns */ + if(Rn[1]==='/'){ + if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp; + sheetnames.push(sheetname); + if(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) cursheet["!ref"] = encode_range(refguess); + if(mergecells.length) cursheet["!merges"] = mergecells; + sheets[sheetname] = cursheet; + } else { + refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} }; + r = c = 0; + state.push([Rn[3], false]); + tmp = xlml_parsexmltag(Rn[0]); + sheetname = tmp.Name; + cursheet = {}; + mergecells = []; + } + break; + case 'Table': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else if(Rn[0].slice(-2) == "/>") break; + else { + table = xlml_parsexmltag(Rn[0]); + state.push([Rn[3], false]); + cstys = []; + } + break; + + case 'Style': + if(Rn[1]==='/') process_style_xlml(styles, stag, opts); + else stag = xlml_parsexmltag(Rn[0]); + break; + + case 'NumberFormat': + stag.nf = xlml_parsexmltag(Rn[0]).Format || "General"; + break; + + case 'Column': + if(state[state.length-1][0] !== 'Table') break; + csty = xlml_parsexmltag(Rn[0]); + cstys[(csty.Index-1||cstys.length)] = csty; + for(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = csty; + break; + + case 'NamedRange': break; + case 'NamedCell': break; + case 'B': break; + case 'I': break; + case 'U': break; + case 'S': break; + case 'Sub': break; + case 'Sup': break; + case 'Span': break; + case 'Border': break; + case 'Alignment': break; + case 'Borders': break; + case 'Font': + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") ss += str.slice(fidx, Rn.index); + else fidx = Rn.index + Rn[0].length; + break; + case 'Interior': + if(!opts.cellStyles) break; + stag.Interior = xlml_parsexmltag(Rn[0]); + break; + case 'Protection': break; + + case 'Author': + case 'Title': + case 'Description': + case 'Created': + case 'Keywords': + case 'Subject': + case 'Category': + case 'Company': + case 'LastAuthor': + case 'LastSaved': + case 'LastPrinted': + case 'Version': + case 'Revision': + case 'TotalTime': + case 'HyperlinkBase': + case 'Manager': + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index)); + else pidx = Rn.index + Rn[0].length; + break; + case 'Paragraphs': break; + + case 'Styles': + case 'Workbook': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else state.push([Rn[3], false]); + break; + + case 'Comment': + if(Rn[1]==='/'){ + if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp; + xlml_clean_comment(comment); + comments.push(comment); + } else { + state.push([Rn[3], false]); + tmp = xlml_parsexmltag(Rn[0]); + comment = {a:tmp.Author}; + } + break; + + case 'Name': break; + + case 'ComponentOptions': + case 'DocumentProperties': + case 'CustomDocumentProperties': + case 'OfficeDocumentSettings': + case 'PivotTable': + case 'PivotCache': + case 'Names': + case 'MapInfo': + case 'PageBreaks': + case 'QueryTable': + case 'DataValidation': + case 'AutoFilter': + case 'Sorting': + case 'Schema': + case 'data': + case 'ConditionalFormatting': + case 'SmartTagType': + case 'SmartTags': + case 'ExcelWorkbook': + case 'WorkbookOptions': + case 'WorksheetOptions': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]); + break; + + default: + var seen = true; + switch(state[state.length-1][0]) { + /* OfficeDocumentSettings */ + case 'OfficeDocumentSettings': switch(Rn[3]) { + case 'AllowPNG': break; + case 'RemovePersonalInformation': break; + case 'DownloadComponents': break; + case 'LocationOfComponents': break; + case 'Colors': break; + case 'Color': break; + case 'Index': break; + case 'RGB': break; + case 'PixelsPerInch': break; + case 'TargetScreenSize': break; + case 'ReadOnlyRecommended': break; + default: seen = false; + } break; + + /* ComponentOptions */ + case 'ComponentOptions': switch(Rn[3]) { + case 'Toolbar': break; + case 'HideOfficeLogo': break; + case 'SpreadsheetAutoFit': break; + case 'Label': break; + case 'Caption': break; + case 'MaxHeight': break; + case 'MaxWidth': break; + case 'NextSheetNumber': break; + default: seen = false; + } break; + + /* ExcelWorkbook */ + case 'ExcelWorkbook': switch(Rn[3]) { + case 'WindowHeight': break; + case 'WindowWidth': break; + case 'WindowTopX': break; + case 'WindowTopY': break; + case 'TabRatio': break; + case 'ProtectStructure': break; + case 'ProtectWindows': break; + case 'ActiveSheet': break; + case 'DisplayInkNotes': break; + case 'FirstVisibleSheet': break; + case 'SupBook': break; + case 'SheetName': break; + case 'SheetIndex': break; + case 'SheetIndexFirst': break; + case 'SheetIndexLast': break; + case 'Dll': break; + case 'AcceptLabelsInFormulas': break; + case 'DoNotSaveLinkValues': break; + case 'Date1904': break; + case 'Iteration': break; + case 'MaxIterations': break; + case 'MaxChange': break; + case 'Path': break; + case 'Xct': break; + case 'Count': break; + case 'SelectedSheets': break; + case 'Calculation': break; + case 'Uncalced': break; + case 'StartupPrompt': break; + case 'Crn': break; + case 'ExternName': break; + case 'Formula': break; + case 'ColFirst': break; + case 'ColLast': break; + case 'WantAdvise': break; + case 'Boolean': break; + case 'Error': break; + case 'Text': break; + case 'OLE': break; + case 'NoAutoRecover': break; + case 'PublishObjects': break; + case 'DoNotCalculateBeforeSave': break; + case 'Number': break; + case 'RefModeR1C1': break; + case 'EmbedSaveSmartTags': break; + default: seen = false; + } break; + + /* WorkbookOptions */ + case 'WorkbookOptions': switch(Rn[3]) { + case 'OWCVersion': break; + case 'Height': break; + case 'Width': break; + default: seen = false; + } break; + + /* WorksheetOptions */ + case 'WorksheetOptions': switch(Rn[3]) { + case 'Unsynced': break; + case 'Visible': break; + case 'Print': break; + case 'Panes': break; + case 'Scale': break; + case 'Pane': break; + case 'Number': break; + case 'Layout': break; + case 'Header': break; + case 'Footer': break; + case 'PageSetup': break; + case 'PageMargins': break; + case 'Selected': break; + case 'ProtectObjects': break; + case 'EnableSelection': break; + case 'ProtectScenarios': break; + case 'ValidPrinterInfo': break; + case 'HorizontalResolution': break; + case 'VerticalResolution': break; + case 'NumberofCopies': break; + case 'ActiveRow': break; + case 'ActiveCol': break; + case 'ActivePane': break; + case 'TopRowVisible': break; + case 'TopRowBottomPane': break; + case 'LeftColumnVisible': break; + case 'LeftColumnRightPane': break; + case 'FitToPage': break; + case 'RangeSelection': break; + case 'PaperSizeIndex': break; + case 'PageLayoutZoom': break; + case 'PageBreakZoom': break; + case 'FilterOn': break; + case 'DoNotDisplayGridlines': break; + case 'SplitHorizontal': break; + case 'SplitVertical': break; + case 'FreezePanes': break; + case 'FrozenNoSplit': break; + case 'FitWidth': break; + case 'FitHeight': break; + case 'CommentsLayout': break; + case 'Zoom': break; + case 'LeftToRight': break; + case 'Gridlines': break; + case 'AllowSort': break; + case 'AllowFilter': break; + case 'AllowInsertRows': break; + case 'AllowDeleteRows': break; + case 'AllowInsertCols': break; + case 'AllowDeleteCols': break; + case 'AllowInsertHyperlinks': break; + case 'AllowFormatCells': break; + case 'AllowSizeCols': break; + case 'AllowSizeRows': break; + case 'NoSummaryRowsBelowDetail': break; + case 'TabColorIndex': break; + case 'DoNotDisplayHeadings': break; + case 'ShowPageLayoutZoom': break; + case 'NoSummaryColumnsRightDetail': break; + case 'BlackAndWhite': break; + case 'DoNotDisplayZeros': break; + case 'DisplayPageBreak': break; + case 'RowColHeadings': break; + case 'DoNotDisplayOutline': break; + case 'NoOrientation': break; + case 'AllowUsePivotTables': break; + case 'ZeroHeight': break; + case 'ViewableRange': break; + case 'Selection': break; + case 'ProtectContents': break; + default: seen = false; + } break; + + /* PivotTable */ + case 'PivotTable': case 'PivotCache': switch(Rn[3]) { + case 'ImmediateItemsOnDrop': break; + case 'ShowPageMultipleItemLabel': break; + case 'CompactRowIndent': break; + case 'Location': break; + case 'PivotField': break; + case 'Orientation': break; + case 'LayoutForm': break; + case 'LayoutSubtotalLocation': break; + case 'LayoutCompactRow': break; + case 'Position': break; + case 'PivotItem': break; + case 'DataType': break; + case 'DataField': break; + case 'SourceName': break; + case 'ParentField': break; + case 'PTLineItems': break; + case 'PTLineItem': break; + case 'CountOfSameItems': break; + case 'Item': break; + case 'ItemType': break; + case 'PTSource': break; + case 'CacheIndex': break; + case 'ConsolidationReference': break; + case 'FileName': break; + case 'Reference': break; + case 'NoColumnGrand': break; + case 'NoRowGrand': break; + case 'BlankLineAfterItems': break; + case 'Hidden': break; + case 'Subtotal': break; + case 'BaseField': break; + case 'MapChildItems': break; + case 'Function': break; + case 'RefreshOnFileOpen': break; + case 'PrintSetTitles': break; + case 'MergeLabels': break; + case 'DefaultVersion': break; + case 'RefreshName': break; + case 'RefreshDate': break; + case 'RefreshDateCopy': break; + case 'VersionLastRefresh': break; + case 'VersionLastUpdate': break; + case 'VersionUpdateableMin': break; + case 'VersionRefreshableMin': break; + case 'Calculation': break; + default: seen = false; + } break; + + /* PageBreaks */ + case 'PageBreaks': switch(Rn[3]) { + case 'ColBreaks': break; + case 'ColBreak': break; + case 'RowBreaks': break; + case 'RowBreak': break; + case 'ColStart': break; + case 'ColEnd': break; + case 'RowEnd': break; + default: seen = false; + } break; + + /* AutoFilter */ + case 'AutoFilter': switch(Rn[3]) { + case 'AutoFilterColumn': break; + case 'AutoFilterCondition': break; + case 'AutoFilterAnd': break; + case 'AutoFilterOr': break; + default: seen = false; + } break; + + /* QueryTable */ + case 'QueryTable': switch(Rn[3]) { + case 'Id': break; + case 'AutoFormatFont': break; + case 'AutoFormatPattern': break; + case 'QuerySource': break; + case 'QueryType': break; + case 'EnableRedirections': break; + case 'RefreshedInXl9': break; + case 'URLString': break; + case 'HTMLTables': break; + case 'Connection': break; + case 'CommandText': break; + case 'RefreshInfo': break; + case 'NoTitles': break; + case 'NextId': break; + case 'ColumnInfo': break; + case 'OverwriteCells': break; + case 'DoNotPromptForFile': break; + case 'TextWizardSettings': break; + case 'Source': break; + case 'Number': break; + case 'Decimal': break; + case 'ThousandSeparator': break; + case 'TrailingMinusNumbers': break; + case 'FormatSettings': break; + case 'FieldType': break; + case 'Delimiters': break; + case 'Tab': break; + case 'Comma': break; + case 'AutoFormatName': break; + case 'VersionLastEdit': break; + case 'VersionLastRefresh': break; + default: seen = false; + } break; + + /* Sorting */ + case 'Sorting': + /* ConditionalFormatting */ + case 'ConditionalFormatting': + /* DataValidation */ + case 'DataValidation': switch(Rn[3]) { + case 'Range': break; + case 'Type': break; + case 'Min': break; + case 'Max': break; + case 'Sort': break; + case 'Descending': break; + case 'Order': break; + case 'CaseSensitive': break; + case 'Value': break; + case 'ErrorStyle': break; + case 'ErrorMessage': break; + case 'ErrorTitle': break; + case 'CellRangeList': break; + case 'InputMessage': break; + case 'InputTitle': break; + case 'ComboHide': break; + case 'InputHide': break; + case 'Condition': break; + case 'Qualifier': break; + case 'UseBlank': break; + case 'Value1': break; + case 'Value2': break; + case 'Format': break; + default: seen = false; + } break; + + /* MapInfo (schema) */ + case 'MapInfo': case 'Schema': case 'data': switch(Rn[3]) { + case 'Map': break; + case 'Entry': break; + case 'Range': break; + case 'XPath': break; + case 'Field': break; + case 'XSDType': break; + case 'FilterOn': break; + case 'Aggregate': break; + case 'ElementType': break; + case 'AttributeType': break; + /* These are from xsd (XML Schema Definition) */ + case 'schema': + case 'element': + case 'complexType': + case 'datatype': + case 'all': + case 'attribute': + case 'extends': break; + + case 'row': break; + default: seen = false; + } break; + + /* SmartTags (can be anything) */ + case 'SmartTags': break; + + default: seen = false; break; + } + if(seen) break; + /* CustomDocumentProperties */ + if(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + "|" + state.join("|"); + if(state[state.length-1][0]==='CustomDocumentProperties') { + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") xlml_set_custprop(Custprops, Rn, cp, str.slice(pidx, Rn.index)); + else { cp = Rn; pidx = Rn.index + Rn[0].length; } + break; + } + if(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + "|" + state.join("|"); + } + var out = {}; + if(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets; + out.SheetNames = sheetnames; + out.SSF = SSF.get_table(); + out.Props = Props; + out.Custprops = Custprops; + return out; +} + +function parse_xlml(data, opts) { + fix_read_opts(opts=opts||{}); + switch(opts.type||"base64") { + case "base64": return parse_xlml_xml(Base64.decode(data), opts); + case "binary": case "buffer": case "file": return parse_xlml_xml(data, opts); + case "array": return parse_xlml_xml(data.map(_chr).join(""), opts); + } +} + +function write_xlml(wb, opts) { } + diff --git a/bits/81_xls.js b/bits/81_xls.js new file mode 100644 index 0000000..3cd779a --- /dev/null +++ b/bits/81_xls.js @@ -0,0 +1,675 @@ +/* [MS-OLEDS] 2.3.8 CompObjStream */ +function parse_compobj(obj) { + var v = {}; + var o = obj.content; + + /* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */ + var l = 28, m; + m = __lpstr(o, l); + l += 4 + __readUInt32LE(o,l); + v.UserType = m; + + /* [MS-OLEDS] 2.3.1 ClipboardFormatOrAnsiString */ + m = __readUInt32LE(o,l); l+= 4; + switch(m) { + case 0x00000000: break; + case 0xffffffff: case 0xfffffffe: l+=4; break; + default: + if(m > 0x190) throw new Error("Unsupported Clipboard: " + m.toString(16)); + l += m; + } + + m = __lpstr(o, l); l += m.length === 0 ? 0 : 5 + m.length; v.Reserved1 = m; + + if((m = __readUInt32LE(o,l)) !== 0x71b2e9f4) return v; + throw "Unsupported Unicode Extension"; +} + +/* 2.4.58 Continue logic */ +function slurp(R, blob, length, opts) { + var l = length; + var bufs = []; + var d = blob.slice(blob.l,blob.l+l); + if(opts && opts.enc && opts.enc.insitu_decrypt) switch(R.n) { + case 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break; + default: + if(d.length === 0) break; + opts.enc.insitu_decrypt(d); + } + bufs.push(d); + blob.l += l; + var next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]); + while(next != null && next.n === 'Continue') { + l = __readUInt16LE(blob,blob.l+2); + bufs.push(blob.slice(blob.l+4,blob.l+4+l)); + blob.l += 4+l; + next = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]); + } + var b = bconcat(bufs); + prep_blob(b, 0); + var ll = 0; b.lens = []; + for(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; } + return R.f(b, b.length, opts); +} + +function safe_format_xf(p, opts, date1904) { + if(!p.XF) return; + try { + var fmtid = p.XF.ifmt||0; + if(p.t === 'e') { p.w = p.w || BErr[p.v]; } + else if(fmtid === 0) { + if(p.t === 'n') { + if((p.v|0) === p.v) p.w = SSF._general_int(p.v); + else p.w = SSF._general_num(p.v); + } + else p.w = SSF._general(p.v); + } + else p.w = SSF.format(fmtid,p.v, {date1904:date1904||false}); + if(opts.cellNF) p.z = SSF._table[fmtid]; + } catch(e) { if(opts.WTF) throw e; } +} + +function make_cell(val, ixfe, t) { + return {v:val, ixfe:ixfe, t:t}; +} + +// 2.3.2 +function parse_workbook(blob, options) { + var wb = {opts:{}}; + var Sheets = {}; + var out = {}; + var Directory = {}; + var found_sheet = false; + var range = {}; + var last_formula = null; + var sst = []; + var cur_sheet = ""; + var Preamble = {}; + var lastcell, last_cell, cc, cmnt, rng, rngC, rngR; + var shared_formulae = {}; + var array_formulae = []; /* TODO: something more clever */ + var temp_val; + var country; + var cell_valid = true; + var XFs = []; /* XF records */ + var palette = []; + var get_rgb = function getrgb(icv) { + if(icv < 8) return XLSIcv[icv]; + if(icv < 64) return palette[icv-8] || XLSIcv[icv]; + return XLSIcv[icv]; + }; + var process_cell_style = function pcs(cell, line) { + var xfd = line.XF.data; + if(!xfd || !xfd.patternType) return; + line.s = {}; + line.s.patternType = xfd.patternType; + var t; + if((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; } + if((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; } + }; + var addcell = function addcell(cell, line, options) { + if(!cell_valid) return; + if(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line); + lastcell = cell; + last_cell = encode_cell(cell); + if(range.s) { + if(cell.r < range.s.r) range.s.r = cell.r; + if(cell.c < range.s.c) range.s.c = cell.c; + } + if(range.e) { + if(cell.r + 1 > range.e.r) range.e.r = cell.r + 1; + if(cell.c + 1 > range.e.c) range.e.c = cell.c + 1; + } + if(options.sheetRows && lastcell.r >= options.sheetRows) cell_valid = false; + else out[last_cell] = line; + }; + var opts = { + enc: false, // encrypted + sbcch: 0, // cch in the preceding SupBook + snames: [], // sheetnames + sharedf: shared_formulae, // shared formulae by address + arrayf: array_formulae, // array formulae array + rrtabid: [], // RRTabId + lastuser: "", // Last User from WriteAccess + biff: 8, // BIFF version + codepage: 0, // CP from CodePage record + winlocked: 0, // fLockWn from WinProtect + wtf: false + }; + if(options.password) opts.password = options.password; + var mergecells = []; + var objects = []; + var supbooks = [[]]; // 1-indexed, will hold extern names + var sbc = 0, sbci = 0, sbcli = 0; + supbooks.SheetNames = opts.snames; + supbooks.sharedf = opts.sharedf; + supbooks.arrayf = opts.arrayf; + var last_Rn = ''; + var file_depth = 0; /* TODO: make a real stack */ + + /* explicit override for some broken writers */ + opts.codepage = 1200; + set_cp(1200); + + while(blob.l < blob.length - 1) { + var s = blob.l; + var RecordType = blob.read_shift(2); + if(RecordType === 0 && last_Rn === 'EOF') break; + var length = (blob.l === blob.length ? 0 : blob.read_shift(2)), y; + var R = XLSRecordEnum[RecordType]; + if(R && R.f) { + if(options.bookSheets) { + if(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break; + } + last_Rn = R.n; + if(R.r === 2 || R.r == 12) { + var rt = blob.read_shift(2); length -= 2; + if(!opts.enc && rt !== RecordType) throw "rt mismatch"; + if(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT + } + //console.error(R,blob.l,length,blob.length); + var val; + if(R.n === 'EOF') val = R.f(blob, length, opts); + else val = slurp(R, blob, length, opts); + var Rn = R.n; + /* BIFF5 overrides */ + if(opts.biff === 5 || opts.biff === 2) switch(Rn) { + case 'Lbl': Rn = 'Label'; break; + } + /* nested switch statements to workaround V8 128 limit */ + switch(Rn) { + /* Workbook Options */ + case 'Date1904': wb.opts.Date1904 = val; break; + case 'WriteProtect': wb.opts.WriteProtect = true; break; + case 'FilePass': + if(!opts.enc) blob.l = 0; + opts.enc = val; + if(opts.WTF) console.error(val); + if(!options.password) throw new Error("File is password-protected"); + if(val.Type !== 0) throw new Error("Encryption scheme unsupported"); + if(!val.valid) throw new Error("Password is incorrect"); + break; + case 'WriteAccess': opts.lastuser = val; break; + case 'FileSharing': break; //TODO + case 'CodePage': + /* overrides based on test cases */ + if(val === 0x5212) val = 1200; + else if(val === 0x8001) val = 1252; + opts.codepage = val; + set_cp(val); + break; + case 'RRTabId': opts.rrtabid = val; break; + case 'WinProtect': opts.winlocked = val; break; + case 'Template': break; // TODO + case 'RefreshAll': wb.opts.RefreshAll = val; break; + case 'BookBool': break; // TODO + case 'UsesELFs': /* if(val) console.error("Unsupported ELFs"); */ break; + case 'MTRSettings': { + if(val[0] && val[1]) throw "Unsupported threads: " + val; + } break; // TODO: actually support threads + case 'CalcCount': wb.opts.CalcCount = val; break; + case 'CalcDelta': wb.opts.CalcDelta = val; break; + case 'CalcIter': wb.opts.CalcIter = val; break; + case 'CalcMode': wb.opts.CalcMode = val; break; + case 'CalcPrecision': wb.opts.CalcPrecision = val; break; + case 'CalcSaveRecalc': wb.opts.CalcSaveRecalc = val; break; + case 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1 + case 'Uncalced': break; + case 'ForceFullCalculation': wb.opts.FullCalc = val; break; + case 'WsBool': break; // TODO + case 'XF': XFs.push(val); break; + case 'ExtSST': break; // TODO + case 'BookExt': break; // TODO + case 'RichTextStream': break; + case 'BkHim': break; + + case 'SupBook': supbooks[++sbc] = [val]; sbci = 0; break; + case 'ExternName': supbooks[sbc][++sbci] = val; break; + case 'Index': break; // TODO + case 'Lbl': supbooks[0][++sbcli] = val; break; + case 'ExternSheet': supbooks[sbc] = supbooks[sbc].concat(val); sbci += val.length; break; + + case 'Protect': out["!protect"] = val; break; /* for sheet or book */ + case 'Password': if(val !== 0 && opts.WTF) console.error("Password verifier: " + val); break; + case 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/ + + case 'BoundSheet8': { + Directory[val.pos] = val; + opts.snames.push(val.name); + } break; + case 'EOF': { + if(--file_depth) break; + if(range.e) { + out["!range"] = range; + if(range.e.r > 0 && range.e.c > 0) { + range.e.r--; range.e.c--; + out["!ref"] = encode_range(range); + range.e.r++; range.e.c++; + } + if(mergecells.length > 0) out["!merges"] = mergecells; + if(objects.length > 0) out["!objects"] = objects; + } + if(cur_sheet === "") Preamble = out; else Sheets[cur_sheet] = out; + out = {}; + } break; + case 'BOF': { + if(opts.biff !== 8); + else if(val.BIFFVer === 0x0500) opts.biff = 5; + else if(val.BIFFVer === 0x0002) opts.biff = 2; + else if(val.BIFFVer === 0x0007) opts.biff = 2; + if(file_depth++) break; + cell_valid = true; + out = {}; + if(opts.biff === 2) { + if(cur_sheet === "") cur_sheet = "Sheet1"; + range = {s:{r:0,c:0},e:{r:0,c:0}}; + } + else cur_sheet = (Directory[s] || {name:""}).name; + mergecells = []; + objects = []; + } break; + case 'Number': case 'BIFF2NUM': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'BoolErr': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'RK': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'MulRk': { + for(var j = val.c; j <= val.C; ++j) { + var ixfe = val.rkrec[j-val.c][0]; + temp_val= {ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:j, r:val.r}, temp_val, options); + } + } break; + case 'Formula': { + switch(val.val) { + case 'String': last_formula = val; break; + case 'Array Formula': throw "Array Formula unsupported"; + default: + temp_val = {v:val.val, ixfe:val.cell.ixfe, t:val.tt}; + temp_val.XF = XFs[temp_val.ixfe]; + if(options.cellFormula) temp_val.f = "="+stringify_formula(val.formula,range,val.cell,supbooks, opts); + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell(val.cell, temp_val, options); + last_formula = val; + } + } break; + case 'String': { + if(last_formula) { + last_formula.val = val; + temp_val = {v:last_formula.val, ixfe:last_formula.cell.ixfe, t:'s'}; + temp_val.XF = XFs[temp_val.ixfe]; + if(options.cellFormula) temp_val.f = "="+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts); + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell(last_formula.cell, temp_val, options); + last_formula = null; + } + } break; + case 'Array': { + array_formulae.push(val); + } break; + case 'ShrFmla': { + if(!cell_valid) break; + //if(options.cellFormula) out[last_cell].f = stringify_formula(val[0], range, lastcell, supbooks, opts); + /* TODO: capture range */ + shared_formulae[encode_cell(last_formula.cell)]= val[0]; + } break; + case 'LabelSst': + //temp_val={v:sst[val.isst].t, ixfe:val.ixfe, t:'s'}; + temp_val=make_cell(sst[val.isst].t, val.ixfe, 's'); + temp_val.XF = XFs[temp_val.ixfe]; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + break; + case 'Label': case 'BIFF2STR': + /* Some writers erroneously write Label */ + temp_val=make_cell(val.val, val.ixfe, 's'); + temp_val.XF = XFs[temp_val.ixfe]; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + break; + case 'Dimensions': { + if(file_depth === 1) range = val; /* TODO: stack */ + } break; + case 'SST': { + sst = val; + } break; + case 'Format': { /* val = [id, fmt] */ + SSF.load(val[1], val[0]); + } break; + + case 'MergeCells': mergecells = mergecells.concat(val); break; + + case 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break; + case 'TxO': opts.lastobj.TxO = val; break; + + case 'HLink': { + for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR) + for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) + if(out[encode_cell({c:rngC,r:rngR})]) + out[encode_cell({c:rngC,r:rngR})].l = val[1]; + } break; + case 'HLinkTooltip': { + for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR) + for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) + if(out[encode_cell({c:rngC,r:rngR})]) + out[encode_cell({c:rngC,r:rngR})].l.tooltip = val[1]; + } break; + + /* Comments */ + case 'Note': { + if(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */ + cc = out[encode_cell(val[0])]; + var noteobj = objects[val[2]]; + if(!cc) break; + if(!cc.c) cc.c = []; + cmnt = {a:val[1],t:noteobj.TxO.t}; + cc.c.push(cmnt); + } break; + + default: switch(R.n) { /* nested */ + case 'ClrtClient': break; + case 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break; + + case 'NameCmt': break; + case 'Header': break; // TODO + case 'Footer': break; // TODO + case 'HCenter': break; // TODO + case 'VCenter': break; // TODO + case 'Pls': break; // TODO + case 'Setup': break; // TODO + case 'DefColWidth': break; // TODO + case 'GCW': break; + case 'LHRecord': break; + case 'ColInfo': break; // TODO + case 'Row': break; // TODO + case 'DBCell': break; // TODO + case 'MulBlank': break; // TODO + case 'EntExU2': break; // TODO + case 'SxView': break; // TODO + case 'Sxvd': break; // TODO + case 'SXVI': break; // TODO + case 'SXVDEx': break; // TODO + case 'SxIvd': break; // TODO + case 'SXDI': break; // TODO + case 'SXLI': break; // TODO + case 'SXEx': break; // TODO + case 'QsiSXTag': break; // TODO + case 'Selection': break; + case 'Feat': break; + case 'FeatHdr': case 'FeatHdr11': break; + case 'Feature11': case 'Feature12': case 'List12': break; + case 'Blank': break; + case 'Country': country = val; break; + case 'RecalcId': break; + case 'DefaultRowHeight': case 'DxGCol': break; // TODO: htmlify + case 'Fbi': case 'Fbi2': case 'GelFrame': break; + case 'Font': break; // TODO + case 'XFCRC': break; // TODO + case 'Style': break; // TODO + case 'StyleExt': break; // TODO + case 'Palette': palette = val; break; // TODO + case 'Theme': break; // TODO + /* Protection */ + case 'ScenarioProtect': break; + case 'ObjProtect': break; + + /* Conditional Formatting */ + case 'CondFmt12': break; + + /* Table */ + case 'Table': break; // TODO + case 'TableStyles': break; // TODO + case 'TableStyle': break; // TODO + case 'TableStyleElement': break; // TODO + + /* PivotTable */ + case 'SXStreamID': break; // TODO + case 'SXVS': break; // TODO + case 'DConRef': break; // TODO + case 'SXAddl': break; // TODO + case 'DConBin': break; // TODO + case 'DConName': break; // TODO + case 'SXPI': break; // TODO + case 'SxFormat': break; // TODO + case 'SxSelect': break; // TODO + case 'SxRule': break; // TODO + case 'SxFilt': break; // TODO + case 'SxItm': break; // TODO + case 'SxDXF': break; // TODO + + /* Scenario Manager */ + case 'ScenMan': break; + + /* Data Consolidation */ + case 'DCon': break; + + /* Watched Cell */ + case 'CellWatch': break; + + /* Print Settings */ + case 'PrintRowCol': break; + case 'PrintGrid': break; + case 'PrintSize': break; + + case 'XCT': break; + case 'CRN': break; + + case 'Scl': { + //console.log("Zoom Level:", val[0]/val[1],val); + } break; + case 'SheetExt': { + + } break; + case 'SheetExtOptional': { + + } break; + + /* VBA */ + case 'ObNoMacros': { + + } break; + case 'ObProj': { + + } break; + case 'CodeName': { + + } break; + case 'GUIDTypeLib': { + + } break; + + case 'WOpt': break; // TODO: WTF? + case 'PhoneticInfo': break; + + case 'OleObjectSize': break; + + /* Differential Formatting */ + case 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break; + + /* Data Validation */ + case 'Dv': case 'DVal': break; + + /* Data Series */ + case 'BRAI': case 'Series': case 'SeriesText': break; + + /* Data Connection */ + case 'DConn': break; + case 'DbOrParamQry': break; + case 'DBQueryExt': break; + + /* Formatting */ + case 'IFmtRecord': break; + case 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break; + + /* Explicitly Ignored */ + case 'Excel9File': break; + case 'Units': break; + case 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': case 'BuiltInFnGroupCount': + /* View Stuff */ + case 'Window1': case 'Window2': case 'HideObj': case 'GridSet': case 'Guts': + case 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': + case 'Pane': break; + default: switch(R.n) { /* nested */ + /* Chart */ + case 'Dat': + case 'Begin': case 'End': + case 'StartBlock': case 'EndBlock': + case 'Frame': case 'Area': + case 'Axis': case 'AxisLine': case 'Tick': break; + case 'AxesUsed': + case 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break; + case 'LineFormat': case 'AreaFormat': + case 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break; + case 'PlotArea': case 'PlotGrowth': break; + case 'SeriesList': case 'SerParent': case 'SerAuxTrend': break; + case 'DataFormat': case 'SerToCrt': case 'FontX': break; + case 'CatSerRange': case 'AxcExt': case 'SerFmt': break; + case 'ShtProps': break; + case 'DefaultText': case 'Text': case 'CatLab': break; + case 'DataLabExtContents': break; + case 'Legend': case 'LegendException': break; + case 'Pie': case 'Scatter': break; + case 'PieFormat': case 'MarkerFormat': break; + case 'StartObject': case 'EndObject': break; + case 'AlRuns': case 'ObjectLink': break; + case 'SIIndex': break; + case 'AttachedLabel': case 'YMult': break; + + /* Chart Group */ + case 'Line': case 'Bar': break; + case 'Surf': break; + + /* Axis Group */ + case 'AxisParent': break; + case 'Pos': break; + case 'ValueRange': break; + + /* Pivot Chart */ + case 'SXViewEx9': break; // TODO + case 'SXViewLink': break; + case 'PivotChartBits': break; + case 'SBaseRef': break; + case 'TextPropsStream': break; + + /* Chart Misc */ + case 'LnExt': break; + case 'MkrExt': break; + case 'CrtCoopt': break; + + /* Query Table */ + case 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break; + case 'TxtQry': break; + + /* Filter */ + case 'FilterMode': break; + case 'AutoFilter': case 'AutoFilterInfo': break; + case 'AutoFilter12': break; + case 'DropDownObjIds': break; + case 'Sort': break; + case 'SortData': break; + + /* Drawing */ + case 'ShapePropsStream': break; + case 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break; + case 'ImData': break; + /* Pub Stuff */ + case 'WebPub': case 'AutoWebPub': + + /* Print Stuff */ + case 'RightMargin': case 'LeftMargin': case 'TopMargin': case 'BottomMargin': + case 'HeaderFooter': case 'HFPicture': case 'PLV': + case 'HorizontalPageBreaks': case 'VerticalPageBreaks': + /* Behavioral */ + case 'Backup': case 'CompressPictures': case 'Compat12': break; + + /* Should not Happen */ + case 'Continue': case 'ContinueFrt12': break; + + /* Future Records */ + case 'FrtFontList': case 'FrtWrapper': break; + + /* BIFF5 records */ + case 'ExternCount': break; + case 'RString': break; + case 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break; + + default: switch(R.n) { /* nested */ + /* Miscellaneous */ + case 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt': + case 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData': + case 'Name': break; + default: if(options.WTF) throw 'Unrecognized Record ' + R.n; + }}}} + } else blob.l += length; + } + var sheetnamesraw = opts.biff === 2 ? ['Sheet1'] : Object.keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;}); + var sheetnames = sheetnamesraw.slice(); + wb.Directory=sheetnamesraw; + wb.SheetNames=sheetnamesraw; + if(!options.bookSheets) wb.Sheets=Sheets; + wb.Preamble=Preamble; + wb.Strings = sst; + wb.SSF = SSF.get_table(); + if(opts.enc) wb.Encryption = opts.enc; + wb.Metadata = {}; + if(country !== undefined) wb.Metadata.Country = country; + return wb; +} + +function parse_xlscfb(cfb, options) { +if(!options) options = {}; +fix_read_opts(options); +reset_cp(); +var CompObj, Summary, Workbook; +if(cfb.find) { + CompObj = cfb.find('!CompObj'); + Summary = cfb.find('!SummaryInformation'); + Workbook = cfb.find('/Workbook'); +} else { + prep_blob(cfb, 0); + Workbook = {content: cfb}; +} + +if(!Workbook) Workbook = cfb.find('/Book'); +var CompObjP, SummaryP, WorkbookP; + +if(CompObj) CompObjP = parse_compobj(CompObj); +if(options.bookProps && !options.bookSheets) WorkbookP = {}; +else { + if(Workbook) WorkbookP = parse_workbook(Workbook.content, options, !!Workbook.find); + else throw new Error("Cannot find Workbook stream"); +} + +if(cfb.find) parse_props(cfb); + +var props = {}; +for(var y in cfb.Summary) props[y] = cfb.Summary[y]; +for(y in cfb.DocSummary) props[y] = cfb.DocSummary[y]; +WorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */ +if(options.bookFiles) WorkbookP.cfb = cfb; +WorkbookP.CompObjP = CompObjP; +return WorkbookP; +} + +/* TODO: WTF */ +function parse_props(cfb) { + /* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */ + var DSI = cfb.find('!DocumentSummaryInformation'); + if(DSI) try { cfb.DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI); } catch(e) {} + + /* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/ + var SI = cfb.find('!SummaryInformation'); + if(SI) try { cfb.Summary = parse_PropertySetStream(SI, SummaryPIDSI); } catch(e) {} +} + diff --git a/bits/82_parsetab.js b/bits/82_parsetab.js index be0e5b0..fba9b77 100644 --- a/bits/82_parsetab.js +++ b/bits/82_parsetab.js @@ -1,5 +1,5 @@ /* [MS-XLSB] 2.3 Record Enumeration */ -var RecordEnum = { +var XLSBRecordEnum = { 0x0000: { n:"BrtRowHdr", f:parse_BrtRowHdr }, 0x0001: { n:"BrtCellBlank", f:parse_BrtCellBlank }, 0x0002: { n:"BrtCellRk", f:parse_BrtCellRk }, @@ -822,4 +822,409 @@ var RecordEnum = { 0xFFFF: { n:"", f:parsenoop } }; -var evert_RE = evert_key(RecordEnum, 'n'); +var evert_RE = evert_key(XLSBRecordEnum, 'n'); + +/* [MS-XLS] 2.3 Record Enumeration */ +var XLSRecordEnum = { + 0x0003: { n:"BIFF2NUM", f:parse_BIFF2NUM }, + 0x0004: { n:"BIFF2STR", f:parse_BIFF2STR }, + 0x0006: { n:"Formula", f:parse_Formula }, + 0x0009: { n:'BOF', f:parse_BOF }, + 0x000a: { n:'EOF', f:parse_EOF }, + 0x000c: { n:"CalcCount", f:parse_CalcCount }, + 0x000d: { n:"CalcMode", f:parse_CalcMode }, + 0x000e: { n:"CalcPrecision", f:parse_CalcPrecision }, + 0x000f: { n:"CalcRefMode", f:parse_CalcRefMode }, + 0x0010: { n:"CalcDelta", f:parse_CalcDelta }, + 0x0011: { n:"CalcIter", f:parse_CalcIter }, + 0x0012: { n:"Protect", f:parse_Protect }, + 0x0013: { n:"Password", f:parse_Password }, + 0x0014: { n:"Header", f:parse_Header }, + 0x0015: { n:"Footer", f:parse_Footer }, + 0x0017: { n:"ExternSheet", f:parse_ExternSheet }, + 0x0018: { n:"Lbl", f:parse_Lbl }, + 0x0019: { n:"WinProtect", f:parse_WinProtect }, + 0x001a: { n:"VerticalPageBreaks", f:parse_VerticalPageBreaks }, + 0x001b: { n:"HorizontalPageBreaks", f:parse_HorizontalPageBreaks }, + 0x001c: { n:"Note", f:parse_Note }, + 0x001d: { n:"Selection", f:parse_Selection }, + 0x0022: { n:"Date1904", f:parse_Date1904 }, + 0x0023: { n:"ExternName", f:parse_ExternName }, + 0x0026: { n:"LeftMargin", f:parse_LeftMargin }, + 0x0027: { n:"RightMargin", f:parse_RightMargin }, + 0x0028: { n:"TopMargin", f:parse_TopMargin }, + 0x0029: { n:"BottomMargin", f:parse_BottomMargin }, + 0x002a: { n:"PrintRowCol", f:parse_PrintRowCol }, + 0x002b: { n:"PrintGrid", f:parse_PrintGrid }, + 0x002f: { n:"FilePass", f:parse_FilePass }, + 0x0031: { n:"Font", f:parse_Font }, + 0x0033: { n:"PrintSize", f:parse_PrintSize }, + 0x003c: { n:"Continue", f:parse_Continue }, + 0x003d: { n:"Window1", f:parse_Window1 }, + 0x0040: { n:"Backup", f:parse_Backup }, + 0x0041: { n:"Pane", f:parse_Pane }, + 0x0042: { n:'CodePage', f:parse_CodePage }, + 0x004d: { n:"Pls", f:parse_Pls }, + 0x0050: { n:"DCon", f:parse_DCon }, + 0x0051: { n:"DConRef", f:parse_DConRef }, + 0x0052: { n:"DConName", f:parse_DConName }, + 0x0055: { n:"DefColWidth", f:parse_DefColWidth }, + 0x0059: { n:"XCT", f:parse_XCT }, + 0x005a: { n:"CRN", f:parse_CRN }, + 0x005b: { n:"FileSharing", f:parse_FileSharing }, + 0x005c: { n:'WriteAccess', f:parse_WriteAccess }, + 0x005d: { n:"Obj", f:parse_Obj }, + 0x005e: { n:"Uncalced", f:parse_Uncalced }, + 0x005f: { n:"CalcSaveRecalc", f:parse_CalcSaveRecalc }, + 0x0060: { n:"Template", f:parse_Template }, + 0x0061: { n:"Intl", f:parse_Intl }, + 0x0063: { n:"ObjProtect", f:parse_ObjProtect }, + 0x007d: { n:"ColInfo", f:parse_ColInfo }, + 0x0080: { n:"Guts", f:parse_Guts }, + 0x0081: { n:"WsBool", f:parse_WsBool }, + 0x0082: { n:"GridSet", f:parse_GridSet }, + 0x0083: { n:"HCenter", f:parse_HCenter }, + 0x0084: { n:"VCenter", f:parse_VCenter }, + 0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 }, + 0x0086: { n:"WriteProtect", f:parse_WriteProtect }, + 0x008c: { n:"Country", f:parse_Country }, + 0x008d: { n:"HideObj", f:parse_HideObj }, + 0x0090: { n:"Sort", f:parse_Sort }, + 0x0092: { n:"Palette", f:parse_Palette }, + 0x0097: { n:"Sync", f:parse_Sync }, + 0x0098: { n:"LPr", f:parse_LPr }, + 0x0099: { n:"DxGCol", f:parse_DxGCol }, + 0x009a: { n:"FnGroupName", f:parse_FnGroupName }, + 0x009b: { n:"FilterMode", f:parse_FilterMode }, + 0x009c: { n:"BuiltInFnGroupCount", f:parse_BuiltInFnGroupCount }, + 0x009d: { n:"AutoFilterInfo", f:parse_AutoFilterInfo }, + 0x009e: { n:"AutoFilter", f:parse_AutoFilter }, + 0x00a0: { n:"Scl", f:parse_Scl }, + 0x00a1: { n:"Setup", f:parse_Setup }, + 0x00ae: { n:"ScenMan", f:parse_ScenMan }, + 0x00af: { n:"SCENARIO", f:parse_SCENARIO }, + 0x00b0: { n:"SxView", f:parse_SxView }, + 0x00b1: { n:"Sxvd", f:parse_Sxvd }, + 0x00b2: { n:"SXVI", f:parse_SXVI }, + 0x00b4: { n:"SxIvd", f:parse_SxIvd }, + 0x00b5: { n:"SXLI", f:parse_SXLI }, + 0x00b6: { n:"SXPI", f:parse_SXPI }, + 0x00b8: { n:"DocRoute", f:parse_DocRoute }, + 0x00b9: { n:"RecipName", f:parse_RecipName }, + 0x00bd: { n:"MulRk", f:parse_MulRk }, + 0x00be: { n:"MulBlank", f:parse_MulBlank }, + 0x00c1: { n:'Mms', f:parse_Mms }, + 0x00c5: { n:"SXDI", f:parse_SXDI }, + 0x00c6: { n:"SXDB", f:parse_SXDB }, + 0x00c7: { n:"SXFDB", f:parse_SXFDB }, + 0x00c8: { n:"SXDBB", f:parse_SXDBB }, + 0x00c9: { n:"SXNum", f:parse_SXNum }, + 0x00ca: { n:"SxBool", f:parse_SxBool }, + 0x00cb: { n:"SxErr", f:parse_SxErr }, + 0x00cc: { n:"SXInt", f:parse_SXInt }, + 0x00cd: { n:"SXString", f:parse_SXString }, + 0x00ce: { n:"SXDtr", f:parse_SXDtr }, + 0x00cf: { n:"SxNil", f:parse_SxNil }, + 0x00d0: { n:"SXTbl", f:parse_SXTbl }, + 0x00d1: { n:"SXTBRGIITM", f:parse_SXTBRGIITM }, + 0x00d2: { n:"SxTbpg", f:parse_SxTbpg }, + 0x00d3: { n:"ObProj", f:parse_ObProj }, + 0x00d5: { n:"SXStreamID", f:parse_SXStreamID }, + 0x00d7: { n:"DBCell", f:parse_DBCell }, + 0x00d8: { n:"SXRng", f:parse_SXRng }, + 0x00d9: { n:"SxIsxoper", f:parse_SxIsxoper }, + 0x00da: { n:"BookBool", f:parse_BookBool }, + 0x00dc: { n:"DbOrParamQry", f:parse_DbOrParamQry }, + 0x00dd: { n:"ScenarioProtect", f:parse_ScenarioProtect }, + 0x00de: { n:"OleObjectSize", f:parse_OleObjectSize }, + 0x00e0: { n:"XF", f:parse_XF }, + 0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr }, + 0x00e2: { n:'InterfaceEnd', f:parse_InterfaceEnd }, + 0x00e3: { n:"SXVS", f:parse_SXVS }, + 0x00e5: { n:"MergeCells", f:parse_MergeCells }, + 0x00e9: { n:"BkHim", f:parse_BkHim }, + 0x00eb: { n:"MsoDrawingGroup", f:parse_MsoDrawingGroup }, + 0x00ec: { n:"MsoDrawing", f:parse_MsoDrawing }, + 0x00ed: { n:"MsoDrawingSelection", f:parse_MsoDrawingSelection }, + 0x00ef: { n:"PhoneticInfo", f:parse_PhoneticInfo }, + 0x00f0: { n:"SxRule", f:parse_SxRule }, + 0x00f1: { n:"SXEx", f:parse_SXEx }, + 0x00f2: { n:"SxFilt", f:parse_SxFilt }, + 0x00f4: { n:"SxDXF", f:parse_SxDXF }, + 0x00f5: { n:"SxItm", f:parse_SxItm }, + 0x00f6: { n:"SxName", f:parse_SxName }, + 0x00f7: { n:"SxSelect", f:parse_SxSelect }, + 0x00f8: { n:"SXPair", f:parse_SXPair }, + 0x00f9: { n:"SxFmla", f:parse_SxFmla }, + 0x00fb: { n:"SxFormat", f:parse_SxFormat }, + 0x00fc: { n:"SST", f:parse_SST }, + 0x00fd: { n:"LabelSst", f:parse_LabelSst }, + 0x00ff: { n:"ExtSST", f:parse_ExtSST }, + 0x0100: { n:"SXVDEx", f:parse_SXVDEx }, + 0x0103: { n:"SXFormula", f:parse_SXFormula }, + 0x0122: { n:"SXDBEx", f:parse_SXDBEx }, + 0x0137: { n:"RRDInsDel", f:parse_RRDInsDel }, + 0x0138: { n:"RRDHead", f:parse_RRDHead }, + 0x013b: { n:"RRDChgCell", f:parse_RRDChgCell }, + 0x013d: { n:"RRTabId", f:parse_RRTabId }, + 0x013e: { n:"RRDRenSheet", f:parse_RRDRenSheet }, + 0x013f: { n:"RRSort", f:parse_RRSort }, + 0x0140: { n:"RRDMove", f:parse_RRDMove }, + 0x014a: { n:"RRFormat", f:parse_RRFormat }, + 0x014b: { n:"RRAutoFmt", f:parse_RRAutoFmt }, + 0x014d: { n:"RRInsertSh", f:parse_RRInsertSh }, + 0x014e: { n:"RRDMoveBegin", f:parse_RRDMoveBegin }, + 0x014f: { n:"RRDMoveEnd", f:parse_RRDMoveEnd }, + 0x0150: { n:"RRDInsDelBegin", f:parse_RRDInsDelBegin }, + 0x0151: { n:"RRDInsDelEnd", f:parse_RRDInsDelEnd }, + 0x0152: { n:"RRDConflict", f:parse_RRDConflict }, + 0x0153: { n:"RRDDefName", f:parse_RRDDefName }, + 0x0154: { n:"RRDRstEtxp", f:parse_RRDRstEtxp }, + 0x015f: { n:"LRng", f:parse_LRng }, + 0x0160: { n:"UsesELFs", f:parse_UsesELFs }, + 0x0161: { n:"DSF", f:parse_DSF }, + 0x0191: { n:"CUsr", f:parse_CUsr }, + 0x0192: { n:"CbUsr", f:parse_CbUsr }, + 0x0193: { n:"UsrInfo", f:parse_UsrInfo }, + 0x0194: { n:"UsrExcl", f:parse_UsrExcl }, + 0x0195: { n:"FileLock", f:parse_FileLock }, + 0x0196: { n:"RRDInfo", f:parse_RRDInfo }, + 0x0197: { n:"BCUsrs", f:parse_BCUsrs }, + 0x0198: { n:"UsrChk", f:parse_UsrChk }, + 0x01a9: { n:"UserBView", f:parse_UserBView }, + 0x01aa: { n:"UserSViewBegin", f:parse_UserSViewBegin }, + 0x01ab: { n:"UserSViewEnd", f:parse_UserSViewEnd }, + 0x01ac: { n:"RRDUserView", f:parse_RRDUserView }, + 0x01ad: { n:"Qsi", f:parse_Qsi }, + 0x01ae: { n:"SupBook", f:parse_SupBook }, + 0x01af: { n:"Prot4Rev", f:parse_Prot4Rev }, + 0x01b0: { n:"CondFmt", f:parse_CondFmt }, + 0x01b1: { n:"CF", f:parse_CF }, + 0x01b2: { n:"DVal", f:parse_DVal }, + 0x01b5: { n:"DConBin", f:parse_DConBin }, + 0x01b6: { n:"TxO", f:parse_TxO }, + 0x01b7: { n:"RefreshAll", f:parse_RefreshAll }, + 0x01b8: { n:"HLink", f:parse_HLink }, + 0x01b9: { n:"Lel", f:parse_Lel }, + 0x01ba: { n:"CodeName", f:parse_XLSCodeName }, + 0x01bb: { n:"SXFDBType", f:parse_SXFDBType }, + 0x01bc: { n:"Prot4RevPass", f:parse_Prot4RevPass }, + 0x01bd: { n:"ObNoMacros", f:parse_ObNoMacros }, + 0x01be: { n:"Dv", f:parse_Dv }, + 0x01c0: { n:"Excel9File", f:parse_Excel9File }, + 0x01c1: { n:"RecalcId", f:parse_RecalcId, r:2}, + 0x01c2: { n:"EntExU2", f:parse_EntExU2 }, + 0x0200: { n:"Dimensions", f:parse_Dimensions }, + 0x0201: { n:"Blank", f:parse_Blank }, + 0x0203: { n:"Number", f:parse_Number }, + 0x0204: { n:"Label", f:parse_Label }, + 0x0205: { n:"BoolErr", f:parse_BoolErr }, + 0x0207: { n:"String", f:parse_String }, + 0x0208: { n:'Row', f:parse_Row }, + 0x020b: { n:"Index", f:parse_Index }, + 0x0221: { n:"Array", f:parse_Array }, + 0x0225: { n:"DefaultRowHeight", f:parse_DefaultRowHeight }, + 0x0236: { n:"Table", f:parse_Table }, + 0x023e: { n:"Window2", f:parse_Window2 }, + 0x027e: { n:"RK", f:parse_RK }, + 0x0293: { n:"Style", f:parse_Style }, + 0x0418: { n:"BigName", f:parse_BigName }, + 0x041e: { n:"Format", f:parse_Format }, + 0x043c: { n:"ContinueBigName", f:parse_ContinueBigName }, + 0x04bc: { n:"ShrFmla", f:parse_ShrFmla }, + 0x0800: { n:"HLinkTooltip", f:parse_HLinkTooltip }, + 0x0801: { n:"WebPub", f:parse_WebPub }, + 0x0802: { n:"QsiSXTag", f:parse_QsiSXTag }, + 0x0803: { n:"DBQueryExt", f:parse_DBQueryExt }, + 0x0804: { n:"ExtString", f:parse_ExtString }, + 0x0805: { n:"TxtQry", f:parse_TxtQry }, + 0x0806: { n:"Qsir", f:parse_Qsir }, + 0x0807: { n:"Qsif", f:parse_Qsif }, + 0x0808: { n:"RRDTQSIF", f:parse_RRDTQSIF }, + 0x0809: { n:'BOF', f:parse_BOF }, + 0x080a: { n:"OleDbConn", f:parse_OleDbConn }, + 0x080b: { n:"WOpt", f:parse_WOpt }, + 0x080c: { n:"SXViewEx", f:parse_SXViewEx }, + 0x080d: { n:"SXTH", f:parse_SXTH }, + 0x080e: { n:"SXPIEx", f:parse_SXPIEx }, + 0x080f: { n:"SXVDTEx", f:parse_SXVDTEx }, + 0x0810: { n:"SXViewEx9", f:parse_SXViewEx9 }, + 0x0812: { n:"ContinueFrt", f:parse_ContinueFrt }, + 0x0813: { n:"RealTimeData", f:parse_RealTimeData }, + 0x0850: { n:"ChartFrtInfo", f:parse_ChartFrtInfo }, + 0x0851: { n:"FrtWrapper", f:parse_FrtWrapper }, + 0x0852: { n:"StartBlock", f:parse_StartBlock }, + 0x0853: { n:"EndBlock", f:parse_EndBlock }, + 0x0854: { n:"StartObject", f:parse_StartObject }, + 0x0855: { n:"EndObject", f:parse_EndObject }, + 0x0856: { n:"CatLab", f:parse_CatLab }, + 0x0857: { n:"YMult", f:parse_YMult }, + 0x0858: { n:"SXViewLink", f:parse_SXViewLink }, + 0x0859: { n:"PivotChartBits", f:parse_PivotChartBits }, + 0x085a: { n:"FrtFontList", f:parse_FrtFontList }, + 0x0862: { n:"SheetExt", f:parse_SheetExt }, + 0x0863: { n:"BookExt", f:parse_BookExt, r:12}, + 0x0864: { n:"SXAddl", f:parse_SXAddl }, + 0x0865: { n:"CrErr", f:parse_CrErr }, + 0x0866: { n:"HFPicture", f:parse_HFPicture }, + 0x0867: { n:'FeatHdr', f:parse_FeatHdr }, + 0x0868: { n:"Feat", f:parse_Feat }, + 0x086a: { n:"DataLabExt", f:parse_DataLabExt }, + 0x086b: { n:"DataLabExtContents", f:parse_DataLabExtContents }, + 0x086c: { n:"CellWatch", f:parse_CellWatch }, + 0x0871: { n:"FeatHdr11", f:parse_FeatHdr11 }, + 0x0872: { n:"Feature11", f:parse_Feature11 }, + 0x0874: { n:"DropDownObjIds", f:parse_DropDownObjIds }, + 0x0875: { n:"ContinueFrt11", f:parse_ContinueFrt11 }, + 0x0876: { n:"DConn", f:parse_DConn }, + 0x0877: { n:"List12", f:parse_List12 }, + 0x0878: { n:"Feature12", f:parse_Feature12 }, + 0x0879: { n:"CondFmt12", f:parse_CondFmt12 }, + 0x087a: { n:"CF12", f:parse_CF12 }, + 0x087b: { n:"CFEx", f:parse_CFEx }, + 0x087c: { n:"XFCRC", f:parse_XFCRC, r:12 }, + 0x087d: { n:"XFExt", f:parse_XFExt, r:12 }, + 0x087e: { n:"AutoFilter12", f:parse_AutoFilter12 }, + 0x087f: { n:"ContinueFrt12", f:parse_ContinueFrt12 }, + 0x0884: { n:"MDTInfo", f:parse_MDTInfo }, + 0x0885: { n:"MDXStr", f:parse_MDXStr }, + 0x0886: { n:"MDXTuple", f:parse_MDXTuple }, + 0x0887: { n:"MDXSet", f:parse_MDXSet }, + 0x0888: { n:"MDXProp", f:parse_MDXProp }, + 0x0889: { n:"MDXKPI", f:parse_MDXKPI }, + 0x088a: { n:"MDB", f:parse_MDB }, + 0x088b: { n:"PLV", f:parse_PLV }, + 0x088c: { n:"Compat12", f:parse_Compat12, r:12 }, + 0x088d: { n:"DXF", f:parse_DXF }, + 0x088e: { n:"TableStyles", f:parse_TableStyles, r:12 }, + 0x088f: { n:"TableStyle", f:parse_TableStyle }, + 0x0890: { n:"TableStyleElement", f:parse_TableStyleElement }, + 0x0892: { n:"StyleExt", f:parse_StyleExt }, + 0x0893: { n:"NamePublish", f:parse_NamePublish }, + 0x0894: { n:"NameCmt", f:parse_NameCmt }, + 0x0895: { n:"SortData", f:parse_SortData }, + 0x0896: { n:"Theme", f:parse_Theme, r:12 }, + 0x0897: { n:"GUIDTypeLib", f:parse_GUIDTypeLib }, + 0x0898: { n:"FnGrp12", f:parse_FnGrp12 }, + 0x0899: { n:"NameFnGrp12", f:parse_NameFnGrp12 }, + 0x089a: { n:"MTRSettings", f:parse_MTRSettings, r:12 }, + 0x089b: { n:"CompressPictures", f:parse_CompressPictures }, + 0x089c: { n:"HeaderFooter", f:parse_HeaderFooter }, + 0x089d: { n:"CrtLayout12", f:parse_CrtLayout12 }, + 0x089e: { n:"CrtMlFrt", f:parse_CrtMlFrt }, + 0x089f: { n:"CrtMlFrtContinue", f:parse_CrtMlFrtContinue }, + 0x08a3: { n:"ForceFullCalculation", f:parse_ForceFullCalculation }, + 0x08a4: { n:"ShapePropsStream", f:parse_ShapePropsStream }, + 0x08a5: { n:"TextPropsStream", f:parse_TextPropsStream }, + 0x08a6: { n:"RichTextStream", f:parse_RichTextStream }, + 0x08a7: { n:"CrtLayout12A", f:parse_CrtLayout12A }, + 0x1001: { n:"Units", f:parse_Units }, + 0x1002: { n:"Chart", f:parse_Chart }, + 0x1003: { n:"Series", f:parse_Series }, + 0x1006: { n:"DataFormat", f:parse_DataFormat }, + 0x1007: { n:"LineFormat", f:parse_LineFormat }, + 0x1009: { n:"MarkerFormat", f:parse_MarkerFormat }, + 0x100a: { n:"AreaFormat", f:parse_AreaFormat }, + 0x100b: { n:"PieFormat", f:parse_PieFormat }, + 0x100c: { n:"AttachedLabel", f:parse_AttachedLabel }, + 0x100d: { n:"SeriesText", f:parse_SeriesText }, + 0x1014: { n:"ChartFormat", f:parse_ChartFormat }, + 0x1015: { n:"Legend", f:parse_Legend }, + 0x1016: { n:"SeriesList", f:parse_SeriesList }, + 0x1017: { n:"Bar", f:parse_Bar }, + 0x1018: { n:"Line", f:parse_Line }, + 0x1019: { n:"Pie", f:parse_Pie }, + 0x101a: { n:"Area", f:parse_Area }, + 0x101b: { n:"Scatter", f:parse_Scatter }, + 0x101c: { n:"CrtLine", f:parse_CrtLine }, + 0x101d: { n:"Axis", f:parse_Axis }, + 0x101e: { n:"Tick", f:parse_Tick }, + 0x101f: { n:"ValueRange", f:parse_ValueRange }, + 0x1020: { n:"CatSerRange", f:parse_CatSerRange }, + 0x1021: { n:"AxisLine", f:parse_AxisLine }, + 0x1022: { n:"CrtLink", f:parse_CrtLink }, + 0x1024: { n:"DefaultText", f:parse_DefaultText }, + 0x1025: { n:"Text", f:parse_Text }, + 0x1026: { n:"FontX", f:parse_FontX }, + 0x1027: { n:"ObjectLink", f:parse_ObjectLink }, + 0x1032: { n:"Frame", f:parse_Frame }, + 0x1033: { n:"Begin", f:parse_Begin }, + 0x1034: { n:"End", f:parse_End }, + 0x1035: { n:"PlotArea", f:parse_PlotArea }, + 0x103a: { n:"Chart3d", f:parse_Chart3d }, + 0x103c: { n:"PicF", f:parse_PicF }, + 0x103d: { n:"DropBar", f:parse_DropBar }, + 0x103e: { n:"Radar", f:parse_Radar }, + 0x103f: { n:"Surf", f:parse_Surf }, + 0x1040: { n:"RadarArea", f:parse_RadarArea }, + 0x1041: { n:"AxisParent", f:parse_AxisParent }, + 0x1043: { n:"LegendException", f:parse_LegendException }, + 0x1044: { n:"ShtProps", f:parse_ShtProps }, + 0x1045: { n:"SerToCrt", f:parse_SerToCrt }, + 0x1046: { n:"AxesUsed", f:parse_AxesUsed }, + 0x1048: { n:"SBaseRef", f:parse_SBaseRef }, + 0x104a: { n:"SerParent", f:parse_SerParent }, + 0x104b: { n:"SerAuxTrend", f:parse_SerAuxTrend }, + 0x104e: { n:"IFmtRecord", f:parse_IFmtRecord }, + 0x104f: { n:"Pos", f:parse_Pos }, + 0x1050: { n:"AlRuns", f:parse_AlRuns }, + 0x1051: { n:"BRAI", f:parse_BRAI }, + 0x105b: { n:"SerAuxErrBar", f:parse_SerAuxErrBar }, + 0x105c: { n:"ClrtClient", f:parse_ClrtClient }, + 0x105d: { n:"SerFmt", f:parse_SerFmt }, + 0x105f: { n:"Chart3DBarShape", f:parse_Chart3DBarShape }, + 0x1060: { n:"Fbi", f:parse_Fbi }, + 0x1061: { n:"BopPop", f:parse_BopPop }, + 0x1062: { n:"AxcExt", f:parse_AxcExt }, + 0x1063: { n:"Dat", f:parse_Dat }, + 0x1064: { n:"PlotGrowth", f:parse_PlotGrowth }, + 0x1065: { n:"SIIndex", f:parse_SIIndex }, + 0x1066: { n:"GelFrame", f:parse_GelFrame }, + 0x1067: { n:"BopPopCustom", f:parse_BopPopCustom }, + 0x1068: { n:"Fbi2", f:parse_Fbi2 }, + + /* These are specified in an older version of the spec */ + 0x0016: { n:"ExternCount", f:parsenoop }, + 0x007e: { n:"RK", f:parsenoop }, /* Not necessarily same as 0x027e */ + 0x007f: { n:"ImData", f:parsenoop }, + 0x0087: { n:"Addin", f:parsenoop }, + 0x0088: { n:"Edg", f:parsenoop }, + 0x0089: { n:"Pub", f:parsenoop }, + 0x0091: { n:"Sub", f:parsenoop }, + 0x0094: { n:"LHRecord", f:parsenoop }, + 0x0095: { n:"LHNGraph", f:parsenoop }, + 0x0096: { n:"Sound", f:parsenoop }, + 0x00a9: { n:"CoordList", f:parsenoop }, + 0x00ab: { n:"GCW", f:parsenoop }, + 0x00bc: { n:"ShrFmla", f:parsenoop }, /* Not necessarily same as 0x04bc */ + 0x00c2: { n:"AddMenu", f:parsenoop }, + 0x00c3: { n:"DelMenu", f:parsenoop }, + 0x00d6: { n:"RString", f:parsenoop }, + 0x00df: { n:"UDDesc", f:parsenoop }, + 0x00ea: { n:"TabIdConf", f:parsenoop }, + 0x0162: { n:"XL5Modify", f:parsenoop }, + 0x01a5: { n:"FileSharing2", f:parsenoop }, + 0x0218: { n:"Name", f:parsenoop }, + 0x0223: { n:"ExternName", f:parse_ExternName }, + 0x0231: { n:"Font", f:parsenoop }, + 0x0406: { n:"Formula", f:parse_Formula }, + 0x086d: { n:"FeatInfo", f:parsenoop }, + 0x0873: { n:"FeatInfo11", f:parsenoop }, + 0x0881: { n:"SXAddl12", f:parsenoop }, + 0x08c0: { n:"AutoWebPub", f:parsenoop }, + 0x08c1: { n:"ListObj", f:parsenoop }, + 0x08c2: { n:"ListField", f:parsenoop }, + 0x08c3: { n:"ListDV", f:parsenoop }, + 0x08c4: { n:"ListCondFmt", f:parsenoop }, + 0x08c5: { n:"ListCF", f:parsenoop }, + 0x08c6: { n:"FMQry", f:parsenoop }, + 0x08c7: { n:"FMSQry", f:parsenoop }, + 0x08c8: { n:"PLV", f:parsenoop }, /* supposedly PLV for Excel 11 */ + 0x08c9: { n:"LnExt", f:parsenoop }, + 0x08ca: { n:"MkrExt", f:parsenoop }, + 0x08cb: { n:"CrtCoopt", f:parsenoop }, + + 0x0000: {} +}; + + diff --git a/bits/84_defaults.js b/bits/84_defaults.js index e0d52bc..4b811ba 100644 --- a/bits/84_defaults.js +++ b/bits/84_defaults.js @@ -21,9 +21,10 @@ var fix_read_opts = fix_opts_func([ ['bookDeps', false], /* parse calculation chains */ ['bookSheets', false], /* only try to get sheet names (no Sheets) */ ['bookProps', false], /* only try to get properties (no Sheets) */ - ['bookFiles', false], /* include raw file structure (keys, files) */ + ['bookFiles', false], /* include raw file structure (keys, files, cfb) */ ['bookVBA', false], /* include vba raw data (vbaraw) */ + ['password',''], /* password */ ['WTF', false] /* WTF mode (throws errors) */ ]); diff --git a/bits/87_read.js b/bits/87_read.js index 057f903..4b3cabb 100644 --- a/bits/87_read.js +++ b/bits/87_read.js @@ -1,10 +1,20 @@ -function readSync(data, opts) { +function firstbyte(f,o) { + switch((o||{}).type || "base64") { + case 'buffer': return f[0]; + case 'base64': return Base64.decode(f.substr(0,12)).charCodeAt(0); + case 'binary': return f.charCodeAt(0); + case 'array': return f[0]; + default: throw new Error("Unrecognized type " + o.type); + } +} + +function read_zip(data, opts) { var zip, d = data; var o = opts||{}; if(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? "buffer" : "base64"; switch(o.type) { case "base64": zip = new jszip(d, { base64:true }); break; - case "binary": zip = new jszip(d, { base64:false }); break; + case "binary": case "array": zip = new jszip(d, { base64:false }); break; case "buffer": zip = new jszip(d); break; case "file": zip=new jszip(d=_fs.readFileSync(data)); break; default: throw new Error("Unrecognized type " + o.type); @@ -12,8 +22,25 @@ function readSync(data, opts) { return parse_zip(zip, o); } +function readSync(data, opts) { + var zip, d = data, isfile = false, n; + var o = opts||{}; + if(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? "buffer" : "base64"; + if(o.type == "file") { isfile = true; o.type = "buffer"; d = _fs.readFileSync(data); } + switch((n = firstbyte(d, o))) { + case 0xD0: + if(isfile) o.type = "file"; + return parse_xlscfb(CFB.read(data, o), o); + case 0x09: return parse_xlscfb(s2a(o.type === 'base64' ? Base64.decode(data) : data), o); + case 0x3C: return parse_xlml(d, o); + case 0x50: + if(isfile) o.type = "file"; + return read_zip(data, opts); + default: throw new Error("Unsupported file " + n); + } +} + function readFileSync(data, opts) { var o = opts||{}; o.type = 'file'; return readSync(data, o); } - diff --git a/bits/88_write.js b/bits/88_write.js index 6dd6670..0428662 100644 --- a/bits/88_write.js +++ b/bits/88_write.js @@ -1,4 +1,4 @@ -function writeSync(wb, opts) { +function write_zip_type(wb, opts) { var o = opts||{}; var z = write_zip(wb, o); switch(o.type) { @@ -10,13 +10,25 @@ function writeSync(wb, opts) { } } +function writeSync(wb, opts) { + var o = opts||{}; + switch(o.bookType) { + case 'xml': return write_xlml(wb, o); + default: return write_zip_type(wb, o); + } +} + function writeFileSync(wb, filename, opts) { var o = opts||{}; o.type = 'file'; o.file = filename; switch(o.file.substr(-5).toLowerCase()) { + case '.xlsx': o.bookType = 'xlsx'; break; case '.xlsm': o.bookType = 'xlsm'; break; case '.xlsb': o.bookType = 'xlsb'; break; - } + default: switch(o.file.substr(-4).toLowerCase()) { + case '.xls': o.bookType = 'xls'; break; + case '.xml': o.bookType = 'xml'; break; + }} return writeSync(wb, o); } diff --git a/bits/90_utils.js b/bits/90_utils.js index 52bb31a..17508ce 100644 --- a/bits/90_utils.js +++ b/bits/90_utils.js @@ -100,7 +100,12 @@ function sheet_to_json(sheet, opts){ for (R = r.s.r + offset; R <= r.e.r; ++R) { rr = encode_row(R); isempty = true; - row = header === 1 ? [] : Object.create({ __rowNum__ : R }); + if(header === 1) row = []; + else { + row = {}; + if(Object.defineProperty) Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); + else row.__rowNum__ = R; + } for (C = r.s.c; C <= r.e.c; ++C) { val = sheet[cols[C] + rr]; if(val === undefined || val.t === undefined) continue; @@ -116,7 +121,7 @@ function sheet_to_json(sheet, opts){ isempty = false; } } - if(isempty === false) out[outi++] = row; + if(isempty === false || header === 1) out[outi++] = row; } out.length = outi; return out; diff --git a/bits/98_exports.js b/bits/98_exports.js index f34c159..df1acd6 100644 --- a/bits/98_exports.js +++ b/bits/98_exports.js @@ -1,7 +1,11 @@ -XLSX.parseZip = parse_zip; -XLSX.read = readSync; -XLSX.readFile = readFileSync; +XLSX.parse_xlscfb = parse_xlscfb; +XLSX.parse_zip = parse_zip; +XLSX.read = readSync; //xlsread +XLSX.readFile = readFileSync; //readFile +XLSX.readFileSync = readFileSync; XLSX.write = writeSync; XLSX.writeFile = writeFileSync; +XLSX.writeFileSync = writeFileSync; XLSX.utils = utils; +XLSX.CFB = CFB; XLSX.SSF = SSF; diff --git a/bits/99_footer.js b/bits/99_footer.js index 5df68cb..50e5f5e 100644 --- a/bits/99_footer.js +++ b/bits/99_footer.js @@ -1 +1,2 @@ })(typeof exports !== 'undefined' ? exports : XLSX); +var XLS = XLSX; diff --git a/bower.json b/bower.json index 799e5dc..3551d9a 100644 --- a/bower.json +++ b/bower.json @@ -2,7 +2,7 @@ "name": "js-xlsx", "homepage": "https://github.com/SheetJS/js-xlsx", "main": "dist/xlsx.js", - "version": "0.7.12", + "version": "0.8.0", "ignore": [ "bin", "bits", @@ -11,10 +11,13 @@ ], "keywords": [ "excel", + "xls", + "xml", "xlsx", "xlsm", "xlsb", "ods", + "js-xls" "js-xlsx" ] } diff --git a/dist/LICENSE b/dist/LICENSE index 41dcf0c..f769c2c 100644 --- a/dist/LICENSE +++ b/dist/LICENSE @@ -1,4 +1,4 @@ -Copyright (C) 2012-2014 SheetJS +Copyright (C) 2012-2015 SheetJS Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. diff --git a/dist/cpexcel.js b/dist/cpexcel.js index 4cbe39b..f821c7a 100644 --- a/dist/cpexcel.js +++ b/dist/cpexcel.js @@ -1,6 +1,6 @@ /* cpexcel.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ /*jshint -W100 */ -var cptable = {version:"1.3.6"}; +var cptable = {version:"1.3.7"}; cptable[874] = (function(){ var d = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {"enc": e, "dec": D }; })(); cptable[932] = (function(){ var d = [], e = {}, D = [], j; D[0] = "\u0000\u0001\u0002\u0003\u0004\u0005\u0006\u0007\b\t\n\u000b\f\r\u000e\u000f\u0010\u0011\u0012\u0013\u0014\u0015\u0016\u0017\u0018\u0019\u001a\u001b\u001c\u001d\u001e\u001f !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������".split(""); @@ -832,7 +832,9 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; var sfcc = function sfcc(x) { return String.fromCharCode(x); }; var cca = function cca(x){ return x.charCodeAt(0); }; - if(typeof Buffer !== 'undefined') { + + var has_buf = (typeof Buffer !== 'undefined'); + if(has_buf) { var mdl = 1024, mdb = new Buffer(mdl); var make_EE = function make_EE(E){ var EE = new Buffer(65536); @@ -867,6 +869,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } } out.length = j; + out = out.slice(0,j); } else { out = Buffer(len); for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)]; @@ -925,6 +928,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j]; } out.length = k; + out = out.slice(0,k); } else if(Buffer.isBuffer(data)) { for(i = k = 0; i < len; ++i) { D = data[i]; @@ -939,6 +943,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } } out.length = k; + out = out.slice(0,k); } else { for(i = k = 0; i < len; i++) { j = data[i].charCodeAt(0)*2; @@ -1037,7 +1042,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } var encache = function encache() { - if(typeof Buffer !== 'undefined') { + if(has_buf) { if(cpdcache[sbcs_cache[0]]) return; var i, s; for(i = 0; i < sbcs_cache.length; ++i) { @@ -1063,7 +1068,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; }; var cp_decache = function cp_decache(cp) { cpdcache[cp] = cpecache[cp] = undefined; }; var decache = function decache() { - if(typeof Buffer !== 'undefined') { + if(has_buf) { if(!cpdcache[sbcs_cache[0]]) return; sbcs_cache.forEach(cp_decache); dbcs_cache.forEach(cp_decache); @@ -1086,9 +1091,9 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; var encode = function encode(cp, data, ofmt) { if(cp === last_cp) { return last_enc(data, ofmt); } if(cpecache[cp] !== undefined) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); } - if(typeof Buffer !== 'undefined' && Buffer.isBuffer(data)) data = data.toString('utf8'); + if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8'); var len = data.length; - var out = typeof Buffer !== 'undefined' ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww; + var out = has_buf ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww; var C = cpt[cp], E, M; if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) { w = E[data[i]]; @@ -1100,7 +1105,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } else if((M=magic[cp])) switch(M) { case "utf8": - if(typeof Buffer !== 'undefined' && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; } + if(has_buf && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; } for(i = 0; i < len; ++i, ++j) { w = data[i].charCodeAt(0); if(w <= 0x007F) out[j] = w; @@ -1122,7 +1127,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } break; case "ascii": - if(typeof Buffer !== 'undefined' && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; } + if(has_buf && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; } for(i = 0; i < len; ++i, ++j) { w = data[i].charCodeAt(0); if(w <= 0x007F) out[j] = w; @@ -1130,7 +1135,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } break; case "utf16le": - if(typeof Buffer !== 'undefined' && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; } + if(has_buf && typeof data === "string") { out = new Buffer(data, M); j = out.length; break; } for(i = 0; i < len; ++i) { w = data[i].charCodeAt(0); out[j++] = w&255; @@ -1182,6 +1187,7 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } else throw new Error("Unrecognized CP: " + cp); out.length = j; + out = out.slice(0,j); if(typeof Buffer === 'undefined') return (ofmt == 'str') ? out.map(sfcc).join("") : out; if(ofmt === undefined || ofmt === 'buf') return out; if(ofmt !== 'arr') return out.toString('binary'); @@ -1222,13 +1228,13 @@ if (typeof module !== 'undefined' && module.exports) module.exports = cptable; } break; case "ascii": - if(typeof Buffer !== 'undefined' && Buffer.isBuffer(data)) return data.toString(M); + if(has_buf && Buffer.isBuffer(data)) return data.toString(M); for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]); k = len; break; case "utf16le": i = 0; if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2; - if(typeof Buffer !== 'undefined' && Buffer.isBuffer(data)) return data.toString(M); + if(has_buf && Buffer.isBuffer(data)) return data.toString(M); j = 2; for(; i < len; i+=j) { out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]); diff --git a/dist/ods.js b/dist/ods.js index 6851c02..9d498b0 100644 --- a/dist/ods.js +++ b/dist/ods.js @@ -15,6 +15,12 @@ var get_utils = function() { throw new Error("Cannot find XLSX utils"); }; var has_buf = (typeof Buffer !== 'undefined'); + +function cc2str(arr) { + var o = ""; + for(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]); + return o; +} function getdata(data) { if(!data) return null; if(data.data) return data.data; diff --git a/dist/xlsx.core.min.js b/dist/xlsx.core.min.js index ec4a48c..c7366f6 100644 --- a/dist/xlsx.core.min.js +++ b/dist/xlsx.core.min.js @@ -1,10 +1,13 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.JSZip=e()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o>2;enc2=(chr1&3)<<4|chr2>>4;enc3=(chr2&15)<<2|chr3>>6;enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64}else if(isNaN(chr3)){enc4=64}output=output+_keyStr.charAt(enc1)+_keyStr.charAt(enc2)+_keyStr.charAt(enc3)+_keyStr.charAt(enc4)}return output};exports.decode=function(input,utf8){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2)}if(enc4!=64){output=output+String.fromCharCode(chr3)}}return output}},{}],2:[function(_dereq_,module,exports){"use strict";function CompressedObject(){this.compressedSize=0;this.uncompressedSize=0;this.crc32=0;this.compressionMethod=null;this.compressedContent=null}CompressedObject.prototype={getContent:function(){return null},getCompressedContent:function(){return null}};module.exports=CompressedObject},{}],3:[function(_dereq_,module,exports){"use strict";exports.STORE={magic:"\x00\x00",compress:function(content){return content},uncompress:function(content){return content},compressInputType:null,uncompressInputType:null};exports.DEFLATE=_dereq_("./flate")},{"./flate":8}],4:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var table=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];module.exports=function crc32(input,crc){if(typeof input==="undefined"||!input.length){return 0}var isArray=utils.getTypeOf(input)!=="string";if(typeof crc=="undefined"){crc=0}var x=0;var y=0;var b=0;crc=crc^-1;for(var i=0,iTop=input.length;i>>8^x}return crc^-1}},{"./utils":21}],5:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");function DataReader(data){this.data=null;this.length=0;this.index=0}DataReader.prototype={checkOffset:function(offset){this.checkIndex(this.index+offset)},checkIndex:function(newIndex){if(this.length=this.index;i--){result=(result<<8)+this.byteAt(i)}this.index+=size;return result},readString:function(size){return utils.transformTo("string",this.readData(size))},readData:function(size){},lastIndexOfSignature:function(sig){},readDate:function(){var dostime=this.readInt(4);return new Date((dostime>>25&127)+1980,(dostime>>21&15)-1,dostime>>16&31,dostime>>11&31,dostime>>5&63,(dostime&31)<<1)}};module.exports=DataReader},{"./utils":21}],6:[function(_dereq_,module,exports){"use strict";exports.base64=false;exports.binary=false;exports.dir=false;exports.createFolders=false;exports.date=null;exports.compression=null;exports.comment=null},{}],7:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");exports.string2binary=function(str){return utils.string2binary(str)};exports.string2Uint8Array=function(str){return utils.transformTo("uint8array",str)};exports.uint8Array2String=function(array){return utils.transformTo("string",array)};exports.string2Blob=function(str){var buffer=utils.transformTo("arraybuffer",str);return utils.arrayBuffer2Blob(buffer)};exports.arrayBuffer2Blob=function(buffer){return utils.arrayBuffer2Blob(buffer)};exports.transformTo=function(outputType,input){return utils.transformTo(outputType,input)};exports.getTypeOf=function(input){return utils.getTypeOf(input)};exports.checkSupport=function(type){return utils.checkSupport(type)};exports.MAX_VALUE_16BITS=utils.MAX_VALUE_16BITS;exports.MAX_VALUE_32BITS=utils.MAX_VALUE_32BITS;exports.pretty=function(str){return utils.pretty(str)};exports.findCompression=function(compressionMethod){return utils.findCompression(compressionMethod)};exports.isRegExp=function(object){return utils.isRegExp(object)}},{"./utils":21}],8:[function(_dereq_,module,exports){"use strict";var USE_TYPEDARRAY=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Uint32Array!=="undefined";var pako=_dereq_("pako");exports.uncompressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.compressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.magic="\b\x00";exports.compress=function(input){return pako.deflateRaw(input)};exports.uncompress=function(input){return pako.inflateRaw(input)}},{pako:24}],9:[function(_dereq_,module,exports){"use strict";var base64=_dereq_("./base64");function JSZip(data,options){if(!(this instanceof JSZip))return new JSZip(data,options);this.files={};this.comment=null;this.root="";if(data){this.load(data,options)}this.clone=function(){var newObj=new JSZip;for(var i in this){if(typeof this[i]!=="function"){newObj[i]=this[i]}}return newObj}}JSZip.prototype=_dereq_("./object");JSZip.prototype.load=_dereq_("./load");JSZip.support=_dereq_("./support");JSZip.defaults=_dereq_("./defaults");JSZip.utils=_dereq_("./deprecatedPublicUtils");JSZip.base64={encode:function(input){return base64.encode(input)},decode:function(input){return base64.decode(input)}};JSZip.compressions=_dereq_("./compressions");module.exports=JSZip},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(_dereq_,module,exports){"use strict";var base64=_dereq_("./base64");var ZipEntries=_dereq_("./zipEntries");module.exports=function(data,options){var files,zipEntries,i,input;options=options||{};if(options.base64){data=base64.decode(data)}zipEntries=new ZipEntries(data,options);files=zipEntries.files;for(i=0;i>>8}return hex};var extend=function(){var result={},i,attr;for(i=0;i0?path.substring(0,lastSlash):""};var folderAdd=function(name,createFolders){if(name.slice(-1)!="/"){name+="/"}createFolders=typeof createFolders!=="undefined"?createFolders:false;if(!this.files[name]){fileAdd.call(this,name,null,{dir:true,createFolders:createFolders})}return this.files[name]};var generateCompressedObjectFrom=function(file,compression){var result=new CompressedObject,content;if(file._data instanceof CompressedObject){result.uncompressedSize=file._data.uncompressedSize;result.crc32=file._data.crc32;if(result.uncompressedSize===0||file.dir){compression=compressions["STORE"];result.compressedContent="";result.crc32=0}else if(file._data.compressionMethod===compression.magic){result.compressedContent=file._data.getCompressedContent()}else{content=file._data.getContent();result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}}else{content=getBinaryData(file);if(!content||content.length===0||file.dir){compression=compressions["STORE"];content=""}result.uncompressedSize=content.length;result.crc32=crc32(content);result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}result.compressedSize=result.compressedContent.length;result.compressionMethod=compression.magic;return result};var generateZipParts=function(name,file,compressedObject,offset){var data=compressedObject.compressedContent,utfEncodedFileName=utils.transformTo("string",utf8.utf8encode(file.name)),comment=file.comment||"",utfEncodedComment=utils.transformTo("string",utf8.utf8encode(comment)),useUTF8ForFileName=utfEncodedFileName.length!==file.name.length,useUTF8ForComment=utfEncodedComment.length!==comment.length,o=file.options,dosTime,dosDate,extraFields="",unicodePathExtraField="",unicodeCommentExtraField="",dir,date;if(file._initialMetadata.dir!==file.dir){dir=file.dir}else{dir=o.dir}if(file._initialMetadata.date!==file.date){date=file.date}else{date=o.date}dosTime=date.getHours();dosTime=dosTime<<6;dosTime=dosTime|date.getMinutes();dosTime=dosTime<<5;dosTime=dosTime|date.getSeconds()/2;dosDate=date.getFullYear()-1980;dosDate=dosDate<<4;dosDate=dosDate|date.getMonth()+1;dosDate=dosDate<<5;dosDate=dosDate|date.getDate();if(useUTF8ForFileName){unicodePathExtraField=decToHex(1,1)+decToHex(crc32(utfEncodedFileName),4)+utfEncodedFileName;extraFields+="up"+decToHex(unicodePathExtraField.length,2)+unicodePathExtraField}if(useUTF8ForComment){unicodeCommentExtraField=decToHex(1,1)+decToHex(this.crc32(utfEncodedComment),4)+utfEncodedComment;extraFields+="uc"+decToHex(unicodeCommentExtraField.length,2)+unicodeCommentExtraField}var header="";header+="\n\x00";header+=useUTF8ForFileName||useUTF8ForComment?"\x00\b":"\x00\x00";header+=compressedObject.compressionMethod;header+=decToHex(dosTime,2);header+=decToHex(dosDate,2);header+=decToHex(compressedObject.crc32,4);header+=decToHex(compressedObject.compressedSize,4);header+=decToHex(compressedObject.uncompressedSize,4);header+=decToHex(utfEncodedFileName.length,2);header+=decToHex(extraFields.length,2);var fileRecord=signature.LOCAL_FILE_HEADER+header+utfEncodedFileName+extraFields;var dirRecord=signature.CENTRAL_FILE_HEADER+"\x00"+header+decToHex(utfEncodedComment.length,2)+"\x00\x00"+"\x00\x00"+(dir===true?"\x00\x00\x00":"\x00\x00\x00\x00")+decToHex(offset,4)+utfEncodedFileName+extraFields+utfEncodedComment;return{fileRecord:fileRecord,dirRecord:dirRecord,compressedObject:compressedObject}};var out={load:function(stream,options){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(search){var result=[],filename,relativePath,file,fileClone;for(filename in this.files){if(!this.files.hasOwnProperty(filename)){continue}file=this.files[filename];fileClone=new ZipObject(file.name,file._data,extend(file.options));relativePath=filename.slice(this.root.length,filename.length);if(filename.slice(0,this.root.length)===this.root&&search(relativePath,fileClone)){result.push(fileClone)}}return result},file:function(name,data,o){if(arguments.length===1){if(utils.isRegExp(name)){var regexp=name;return this.filter(function(relativePath,file){return!file.dir&®exp.test(relativePath)})}else{return this.filter(function(relativePath,file){return!file.dir&&relativePath===name})[0]||null}}else{name=this.root+name;fileAdd.call(this,name,data,o)}return this},folder:function(arg){if(!arg){return this}if(utils.isRegExp(arg)){return this.filter(function(relativePath,file){return file.dir&&arg.test(relativePath)})}var name=this.root+arg;var newFolder=folderAdd.call(this,name);var ret=this.clone();ret.root=newFolder.name;return ret},remove:function(name){name=this.root+name;var file=this.files[name];if(!file){if(name.slice(-1)!="/"){name+="/"}file=this.files[name]}if(file&&!file.dir){delete this.files[name]}else{var kids=this.filter(function(relativePath,file){return file.name.slice(0,name.length)===name});for(var i=0;i=0;--i){if(this.data[i]===sig0&&this.data[i+1]===sig1&&this.data[i+2]===sig2&&this.data[i+3]===sig3){return i}}return-1};Uint8ArrayReader.prototype.readData=function(size){this.checkOffset(size);if(size===0){return new Uint8Array(0)}var result=this.data.subarray(this.index,this.index+size);this.index+=size;return result};module.exports=Uint8ArrayReader},{"./dataReader":5}],19:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var Uint8ArrayWriter=function(length){this.data=new Uint8Array(length);this.index=0};Uint8ArrayWriter.prototype={append:function(input){if(input.length!==0){input=utils.transformTo("uint8array",input);this.data.set(input,this.index);this.index+=input.length}},finalize:function(){return this.data}};module.exports=Uint8ArrayWriter},{"./utils":21}],20:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var support=_dereq_("./support");var nodeBuffer=_dereq_("./nodeBuffer");var _utf8len=new Array(256);for(var i=0;i<256;i++){_utf8len[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1}_utf8len[254]=_utf8len[254]=1;var string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};var utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max};var buf2string=function(buf){var str,i,out,c,c_len;var len=buf.length;var utf16buf=new Array(len*2);for(out=0,i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}if(utf16buf.length!==out){if(utf16buf.subarray){utf16buf=utf16buf.subarray(0,out)}else{utf16buf.length=out}}return utils.applyFromCharCode(utf16buf)};exports.utf8encode=function utf8encode(str){if(support.nodebuffer){return nodeBuffer(str,"utf-8")}return string2buf(str)};exports.utf8decode=function utf8decode(buf){if(support.nodebuffer){return utils.transformTo("nodebuffer",buf).toString("utf-8")}buf=utils.transformTo(support.uint8array?"uint8array":"array",buf);var result=[],k=0,len=buf.length,chunk=65536;while(k1){try{if(type==="array"||type==="nodebuffer"){result.push(String.fromCharCode.apply(null,array.slice(k,Math.min(k+chunk,len))))}else{result.push(String.fromCharCode.apply(null,array.subarray(k,Math.min(k+chunk,len))))}k+=chunk}catch(e){chunk=Math.floor(chunk/2)}}return result.join("")}exports.applyFromCharCode=arrayLikeToString;function arrayLikeToArrayLike(arrayFrom,arrayTo){for(var i=0;i1){throw new Error("Multi-volumes zip are not supported")}},readLocalFiles:function(){var i,file;for(i=0;i0){opt.windowBits=-opt.windowBits}else if(opt.gzip&&opt.windowBits>0&&opt.windowBits<16){opt.windowBits+=16}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_deflate.deflateInit2(this.strm,opt.level,opt.method,opt.windowBits,opt.memLevel,opt.strategy);if(status!==Z_OK){throw new Error(msg[status])}if(opt.header){zlib_deflate.deflateSetHeader(this.strm,opt.header)}};Deflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?Z_FINISH:Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.string2buf(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_deflate.deflate(strm,_mode);if(status!==Z_STREAM_END&&status!==Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.avail_out===0||strm.avail_in===0&&_mode===Z_FINISH){if(this.options.to==="string"){this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output,strm.next_out)))}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}while((strm.avail_in>0||strm.avail_out===0)&&status!==Z_STREAM_END);if(_mode===Z_FINISH){status=zlib_deflate.deflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===Z_OK}return true};Deflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Deflate.prototype.onEnd=function(status){if(status===Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function deflate(input,options){var deflator=new Deflate(options);deflator.push(input,true);if(deflator.err){throw deflator.msg}return deflator.result}function deflateRaw(input,options){options=options||{};options.raw=true;return deflate(input,options)}function gzip(input,options){options=options||{};options.gzip=true;return deflate(input,options)}exports.Deflate=Deflate;exports.deflate=deflate;exports.deflateRaw=deflateRaw;exports.gzip=gzip},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(_dereq_,module,exports){"use strict";var zlib_inflate=_dereq_("./zlib/inflate.js");var utils=_dereq_("./utils/common");var strings=_dereq_("./utils/strings");var c=_dereq_("./zlib/constants");var msg=_dereq_("./zlib/messages");var zstream=_dereq_("./zlib/zstream");var gzheader=_dereq_("./zlib/gzheader");var Inflate=function(options){this.options=utils.assign({chunkSize:16384,windowBits:0,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>=0&&opt.windowBits<16){opt.windowBits=-opt.windowBits;if(opt.windowBits===0){opt.windowBits=-15}}if(opt.windowBits>=0&&opt.windowBits<16&&!(options&&options.windowBits)){opt.windowBits+=32}if(opt.windowBits>15&&opt.windowBits<48){if((opt.windowBits&15)===0){opt.windowBits|=15}}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_inflate.inflateInit2(this.strm,opt.windowBits);if(status!==c.Z_OK){throw new Error(msg[status])}this.header=new gzheader;zlib_inflate.inflateGetHeader(this.strm,this.header)};Inflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;var next_out_utf8,tail,utf8str;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?c.Z_FINISH:c.Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.binstring2buf(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_inflate.inflate(strm,c.Z_NO_FLUSH);if(status!==c.Z_STREAM_END&&status!==c.Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.next_out){if(strm.avail_out===0||status===c.Z_STREAM_END||strm.avail_in===0&&_mode===c.Z_FINISH){if(this.options.to==="string"){next_out_utf8=strings.utf8border(strm.output,strm.next_out);tail=strm.next_out-next_out_utf8;utf8str=strings.buf2string(strm.output,next_out_utf8);strm.next_out=tail;strm.avail_out=chunkSize-tail;if(tail){utils.arraySet(strm.output,strm.output,next_out_utf8,tail,0)}this.onData(utf8str)}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}}while(strm.avail_in>0&&status!==c.Z_STREAM_END);if(status===c.Z_STREAM_END){_mode=c.Z_FINISH}if(_mode===c.Z_FINISH){status=zlib_inflate.inflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===c.Z_OK}return true};Inflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Inflate.prototype.onEnd=function(status){if(status===c.Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function inflate(input,options){var inflator=new Inflate(options);inflator.push(input,true);if(inflator.err){throw inflator.msg}return inflator.result}function inflateRaw(input,options){options=options||{};options.raw=true;return inflate(input,options)}exports.Inflate=Inflate;exports.inflate=inflate;exports.inflateRaw=inflateRaw;exports.ungzip=inflate},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(_dereq_,module,exports){"use strict";var TYPED_OK=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";exports.assign=function(obj){var sources=Array.prototype.slice.call(arguments,1);while(sources.length){var source=sources.shift();if(!source){continue}if(typeof source!=="object"){throw new TypeError(source+"must be non-object")}for(var p in source){if(source.hasOwnProperty(p)){obj[p]=source[p]}}}return obj};exports.shrinkBuf=function(buf,size){if(buf.length===size){return buf}if(buf.subarray){return buf.subarray(0,size)}buf.length=size;return buf};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return}for(var i=0;i=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1}_utf8len[254]=_utf8len[254]=1;exports.string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};function buf2binstring(buf,len){if(len<65537){if(buf.subarray&&STR_APPLY_UIA_OK||!buf.subarray&&STR_APPLY_OK){return String.fromCharCode.apply(null,utils.shrinkBuf(buf,len))}}var result="";for(var i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}return buf2binstring(utf16buf,out)};exports.utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max}},{"./common":27}],29:[function(_dereq_,module,exports){"use strict";function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){n=len>2e3?2e3:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0}while(--n);s1%=65521;s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],30:[function(_dereq_,module,exports){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(_dereq_,module,exports){"use strict";function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=crc^-1;for(var i=pos;i>>8^t[(crc^buf[i])&255]}return crc^-1}module.exports=crc32},{}],32:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var trees=_dereq_("./trees");var adler32=_dereq_("./adler32");var crc32=_dereq_("./crc32");var msg=_dereq_("./messages");var Z_NO_FLUSH=0;var Z_PARTIAL_FLUSH=1;var Z_FULL_FLUSH=3;var Z_FINISH=4;var Z_BLOCK=5;var Z_OK=0;var Z_STREAM_END=1;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_BUF_ERROR=-5;var Z_DEFAULT_COMPRESSION=-1;var Z_FILTERED=1;var Z_HUFFMAN_ONLY=2;var Z_RLE=3;var Z_FIXED=4;var Z_DEFAULT_STRATEGY=0;var Z_UNKNOWN=2;var Z_DEFLATED=8;var MAX_MEM_LEVEL=9;var MAX_WBITS=15;var DEF_MEM_LEVEL=8;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=32;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;var BS_BLOCK_DONE=2;var BS_FINISH_STARTED=3;var BS_FINISH_DONE=4;var OS_CODE=3;function err(strm,errorCode){strm.msg=msg[errorCode];return errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}function flush_pending(strm){var s=strm.state;var len=s.pending;if(len>strm.avail_out){len=strm.avail_out}if(len===0){return}utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out);strm.next_out+=len;s.pending_out+=len;strm.total_out+=len;strm.avail_out-=len;s.pending-=len;if(s.pending===0){s.pending_out=0}}function flush_block_only(s,last){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last);s.block_start=s.strstart;flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255;s.pending_buf[s.pending++]=b&255}function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size){len=size}if(len===0){return 0}strm.avail_in-=len;utils.arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1){strm.adler=adler32(strm.adler,buf,len,start)}else if(strm.state.wrap===2){strm.adler=crc32(strm.adler,buf,len,start)}strm.next_in+=len;strm.total_in+=len;return len}function longest_match(s,cur_match){var chain_length=s.max_chain_length;var scan=s.strstart;var match;var len;var best_len=s.prev_length;var nice_match=s.nice_match;var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0;var _win=s.window;var wmask=s.w_mask;var prev=s.prev;var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+best_len];if(s.prev_length>=s.good_match){chain_length>>=2}if(nice_match>s.lookahead){nice_match=s.lookahead}do{match=cur_match;if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1]){continue}scan+=2;match++;do{}while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&scanbest_len){s.match_start=cur_match;best_len=len;if(len>=nice_match){break}scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead){return best_len}return s.lookahead}function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;do{more=s.window_size-s.lookahead-s.strstart;if(s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0);s.match_start-=_w_size;s.strstart-=_w_size;s.block_start-=_w_size;n=s.hash_size;p=n;do{m=s.head[--p];s.head[p]=m>=_w_size?m-_w_size:0}while(--n);n=_w_size;p=n;do{m=s.prev[--p];s.prev[p]=m>=_w_size?m-_w_size:0}while(--n);more+=_w_size}if(s.strm.avail_in===0){break}n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];s.ins_h=(s.ins_h<s.pending_buf_size-5){max_block_size=s.pending_buf_size-5}for(;;){if(s.lookahead<=1){fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.strstart+=s.lookahead;s.lookahead=0;var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){s.lookahead=s.strstart-max_start;s.strstart=max_start;flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.strstart>s.block_start){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_NEED_MORE}function deflate_fast(s,flush){var hash_head;var bflush;for(;;){if(s.lookahead=MIN_MATCH){s.ins_h=(s.ins_h<=MIN_MATCH){bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;if(s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do{s.strstart++;s.ins_h=(s.ins_h<=MIN_MATCH){s.ins_h=(s.ins_h<4096)){s.match_length=MIN_MATCH-1}}if(s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH;bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH);s.lookahead-=s.prev_length-1;s.prev_length-=2;do{if(++s.strstart<=max_insert){s.ins_h=(s.ins_h<=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do{}while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&scans.lookahead){s.match_length=s.lookahead}}}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;s.strstart+=s.match_length;s.match_length=0}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_huff(s,flush){var bflush; for(;;){if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH){return BS_NEED_MORE}break}}s.match_length=0;bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}var Config=function(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length;this.max_lazy=max_lazy;this.nice_length=nice_length;this.max_chain=max_chain;this.func=func};var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(s){s.window_size=2*s.w_size;zero(s.head);s.max_lazy_match=configuration_table[s.level].max_lazy;s.good_match=configuration_table[s.level].good_length;s.nice_match=configuration_table[s.level].nice_length;s.max_chain_length=configuration_table[s.level].max_chain;s.strstart=0;s.block_start=0;s.lookahead=0;s.insert=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;s.ins_h=0}function DeflateState(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=Z_DEFLATED;this.last_flush=-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new utils.Buf16(HEAP_SIZE*2);this.dyn_dtree=new utils.Buf16((2*D_CODES+1)*2);this.bl_tree=new utils.Buf16((2*BL_CODES+1)*2);zero(this.dyn_ltree);zero(this.dyn_dtree);zero(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new utils.Buf16(MAX_BITS+1);this.heap=new utils.Buf16(2*L_CODES+1);zero(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new utils.Buf16(2*L_CODES+1);zero(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0;this.bi_buf=0;this.bi_valid=0}function deflateResetKeep(strm){var s;if(!strm||!strm.state){return err(strm,Z_STREAM_ERROR)}strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0){s.wrap=-s.wrap}s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0:1;s.last_flush=Z_NO_FLUSH;trees._tr_init(s);return Z_OK}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK){lm_init(strm.state)}return ret}function deflateSetHeader(strm,head){if(!strm||!strm.state){return Z_STREAM_ERROR}if(strm.state.wrap!==2){return Z_STREAM_ERROR}strm.state.gzhead=head;return Z_OK}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm){return Z_STREAM_ERROR}var wrap=1;if(level===Z_DEFAULT_COMPRESSION){level=6}if(windowBits<0){wrap=0;windowBits=-windowBits}else if(windowBits>15){wrap=2;windowBits-=16}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED){return err(strm,Z_STREAM_ERROR)}if(windowBits===8){windowBits=9}var s=new DeflateState;strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<>1;s.l_buf=(1+2)*s.lit_bufsize;s.level=level;s.strategy=strategy;s.method=method;return deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s;var beg,val;if(!strm||!strm.state||flush>Z_BLOCK||flush<0){return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR}s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH){return err(strm,strm.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR)}s.strm=strm;old_flush=s.last_flush;s.last_flush=flush;if(s.status===INIT_STATE){if(s.wrap===2){strm.adler=0;put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE}else{put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment?0:16));put_byte(s,s.gzhead.time&255);put_byte(s,s.gzhead.time>>8&255);put_byte(s,s.gzhead.time>>16&255);put_byte(s,s.gzhead.time>>24&255);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,s.gzhead.os&255);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&255);put_byte(s,s.gzhead.extra.length>>8&255)}if(s.gzhead.hcrc){strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)}s.gzindex=0;s.status=EXTRA_STATE}}else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2){level_flags=0}else if(s.level<6){level_flags=1}else if(s.level===6){level_flags=2}else{level_flags=3}header|=level_flags<<6;if(s.strstart!==0){header|=PRESET_DICT}header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}strm.adler=1}}if(s.status===EXTRA_STATE){if(s.gzhead.extra){beg=s.pending;while(s.gzindex<(s.gzhead.extra.length&65535)){if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){break}}put_byte(s,s.gzhead.extra[s.gzindex]&255);s.gzindex++}if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE}}else{s.status=NAME_STATE}}if(s.status===NAME_STATE){if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.gzindex=0;s.status=COMMENT_STATE}}else{s.status=COMMENT_STATE}}if(s.status===COMMENT_STATE){if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.status=HCRC_STATE}}else{s.status=HCRC_STATE}}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size){flush_pending(strm)}if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);strm.adler=0;s.status=BUSY_STATE}}else{s.status=BUSY_STATE}}if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH){return err(strm,Z_BUF_ERROR)}if(s.status===FINISH_STATE&&strm.avail_in!==0){return err(strm,Z_BUF_ERROR)}if(strm.avail_in!==0||s.lookahead!==0||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if(bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE){s.status=FINISH_STATE}if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0){s.last_flush=-1}return Z_OK}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH){trees._tr_align(s)}else if(flush!==Z_BLOCK){trees._tr_stored_block(s,0,0,false);if(flush===Z_FULL_FLUSH){zero(s.head);if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}}if(flush!==Z_FINISH){return Z_OK}if(s.wrap<=0){return Z_STREAM_END}if(s.wrap===2){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);put_byte(s,strm.adler>>16&255);put_byte(s,strm.adler>>24&255);put_byte(s,strm.total_in&255);put_byte(s,strm.total_in>>8&255);put_byte(s,strm.total_in>>16&255);put_byte(s,strm.total_in>>24&255)}else{putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}flush_pending(strm);if(s.wrap>0){s.wrap=-s.wrap}return s.pending!==0?Z_OK:Z_STREAM_END}function deflateEnd(strm){var status;if(!strm||!strm.state){return Z_STREAM_ERROR}status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE){return err(strm,Z_STREAM_ERROR)}strm.state=null;return status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK}exports.deflateInit=deflateInit;exports.deflateInit2=deflateInit2;exports.deflateReset=deflateReset;exports.deflateResetKeep=deflateResetKeep;exports.deflateSetHeader=deflateSetHeader;exports.deflate=deflate;exports.deflateEnd=deflateEnd;exports.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(_dereq_,module,exports){"use strict";function GZheader(){this.text=0;this.time=0;this.xflags=0;this.os=0;this.extra=null;this.extra_len=0;this.name="";this.comment="";this.hcrc=0;this.done=false}module.exports=GZheader},{}],34:[function(_dereq_,module,exports){"use strict";var BAD=30;var TYPE=12;module.exports=function inflate_fast(strm,start){var state;var _in;var last;var _out;var beg;var end;var dmax;var wsize;var whave;var wnext;var window;var hold;var bits;var lcode;var dcode;var lmask;var dmask;var here;var op;var len;var dist;var from;var from_source;var input,output;state=strm.state;_in=strm.next_in;input=strm.input;last=_in+(strm.avail_in-5);_out=strm.next_out;output=strm.output;beg=_out-(start-strm.avail_out);end=_out+(strm.avail_out-257);dmax=state.dmax;wsize=state.wsize;whave=state.whave;wnext=state.wnext;window=state.window;hold=state.hold;bits=state.bits;lcode=state.lencode;dcode=state.distcode;lmask=(1<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op===0){output[_out++]=here&65535}else if(op&16){len=here&65535;op&=15;if(op){if(bits>>=op;bits-=op}if(bits<15){hold+=input[_in++]<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bitsdmax){strm.msg="invalid distance too far back";state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}}from=0;from_source=window;if(wnext===0){from+=wsize-op;if(op2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1){output[_out++]=from_source[from++]}}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++];len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1){output[_out++]=output[from++]}}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<>3;_in-=len;bits-=len<<3;hold&=(1<>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new utils.Buf16(320);this.work=new utils.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function inflateResetKeep(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap){strm.adler=state.wrap&1}state.mode=HEAD;state.last=0;state.havedict=0;state.dmax=32768;state.head=null;state.hold=0;state.bits=0;state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if(windowBits<0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48){windowBits&=15}}if(windowBits&&(windowBits<8||windowBits>15)){return Z_STREAM_ERROR}if(state.window!==null&&state.wbits!==windowBits){state.window=null}state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm){return Z_STREAM_ERROR}state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK){strm.state=null}return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix,distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144){state.lens[sym++]=8}while(sym<256){state.lens[sym++]=9}while(sym<280){state.lens[sym++]=7}while(sym<288){state.lens[sym++]=8}inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32){state.lens[sym++]=5}inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy){dist=copy}utils.arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize){state.wnext=0}if(state.whave>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head){state.head.done=false}if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}hold>>>=4;bits-=4;len=(hold&15)+8;if(state.wbits===0){state.wbits=len}else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<>8&1}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>8&255;hbuf[2]=hold>>>16&255;hbuf[3]=hold>>>24&255;state.check=crc32(state.check,hbuf,4,0)}hold=0;bits=0;state.mode=OS;case OS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0}else if(state.head){state.head.extra=null}state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have){copy=have}if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra){state.head.extra=new Array(state.head.extra_len)}utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;state.length-=copy}if(state.length){break inf_leave}}state.length=0;state.mode=NAME;case NAME:if(state.flags&2048){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.name+=String.fromCharCode(len)}}while(len&©>9&1;state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(flush===Z_TREES){hold>>>=2;bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type";state.mode=BAD}hold>>>=2;bits-=2;break;case STORED:hold>>>=bits&7;bits-=bits&7;while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES){break inf_leave}case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have){copy=have}if(copy>left){copy=left}if(copy===0){break inf_leave}utils.arraySet(output,input,next,copy,put);have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy;break}state.mode=TYPE;break;case TABLE:while(bits<14){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols";state.mode=BAD;break}state.have=0;state.mode=LENLENS;case LENLENS:while(state.have>>=3;bits-=3}while(state.have<19){state.lens[order[state.have++]]=0}state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold&3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--){state.lens[state.have++]=len}}}if(state.mode===BAD){break}if(state.lens[256]===0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}state.distbits=6;state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts);state.distbits=opts.bits;if(ret){strm.msg="invalid distances set";state.mode=BAD;break}state.mode=LEN_;if(flush===Z_TREES){break inf_leave}case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;inflate_fast(strm,_out);put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;if(state.mode===TYPE){state.back=-1}break}state.back=0;for(;;){here=state.lencode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back";state.mode=BAD;break}state.mode=MATCH;case MATCH:if(left===0){break inf_leave}copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy}else{from=state.wnext-copy}if(copy>state.length){copy=state.length}from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left){copy=left}left-=copy;state.length-=copy;do{output[put++]=from_source[from++]}while(--copy);if(state.length===0){state.mode=LEN}break;case LIT:if(left===0){break inf_leave}output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0){break inf_leave}have--;hold|=input[next++]<=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;lenENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}var i=0;for(;;){i++;here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}},{"../utils/common":27}],37:[function(_dereq_,module,exports){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length};var static_l_desc;var static_d_desc;var static_bl_desc;var TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc};function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;hmax_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){bits--}s.bl_count[bits]--;s.bl_count[bits+1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code>=7;for(;code8){put_short(s,s.bi_buf)}else if(s.bi_valid>0){s.pending_buf[s.pending++]=s.bi_buf}s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]>1;n>=1;n--){pqdownheap(s,tree,n)}node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s,desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n0){if(s.strm.data_type===Z_UNKNOWN){s.strm.data_type=detect_data_type(s)}build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last)}else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1}exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align},{"../utils/common":27}],39:[function(_dereq_,module,exports){"use strict";function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream},{}]},{},[9])(9)});var XLSX={};(function(XLSX){XLSX.version="0.7.12";var current_codepage=1252,current_cptable;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")cptable=require("./dist/cpexcel");current_cptable=cptable[current_codepage]}function reset_cp(){set_cp(1252)}var set_cp=function(cp){current_codepage=cp};function char_codes(data){var o=[];for(var i=0,len=data.length;i=0)o+=x.charAt(i--);return o}function fill(c,l){var o="";while(o.length=d?t:fill("0",d-t.length)+t}function pad_(v,d){var t=""+v;return t.length>=d?t:fill(" ",d-t.length)+t}function rpad_(v,d){var t=""+v;return t.length>=d?t:t+fill(" ",d-t.length)}function pad0r1(v,d){var t=""+Math.round(v);return t.length>=d?t:fill("0",d-t.length)+t}function pad0r2(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}var p2_32=Math.pow(2,32);function pad0r(v,d){if(v>p2_32||v<-p2_32)return pad0r1(v,d);var i=Math.round(v);return pad0r2(i,d)}function isgeneral(s,i){return s.length>=7+i&&(s.charCodeAt(i)|32)===103&&(s.charCodeAt(i+1)|32)===101&&(s.charCodeAt(i+2)|32)===110&&(s.charCodeAt(i+3)|32)===101&&(s.charCodeAt(i+4)|32)===114&&(s.charCodeAt(i+5)|32)===97&&(s.charCodeAt(i+6)|32)===108}var opts_fmt=[["date1904",0],["output",""],["WTF",false]];function fixopts(o){for(var y=0;y!=opts_fmt.length;++y)if(o[opts_fmt[y][0]]===undefined)o[opts_fmt[y][0]]=opts_fmt[y][1]}SSF.opts=opts_fmt;var table_fmt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "',65535:"General"};var days=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var months=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function frac(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){Q=Q_1;P=P_1}if(Q>D){Q=Q_2;P=P_2}if(!mixed)return[0,sgn*P,Q];if(Q===0)throw"Unexpected state: "+P+" "+P_1+" "+P_2+" "+Q+" "+Q_1+" "+Q_2;var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}function general_fmt_int(v,opts){return""+v}SSF._general_int=general_fmt_int;var general_fmt_num=function make_general_fmt_num(){var gnr1=/\.(\d*[1-9])0+$/,gnr2=/\.0*$/,gnr4=/\.(\d*[1-9])0+/,gnr5=/\.0*[Ee]/,gnr6=/(E[+-])(\d)$/;function gfn2(v){var w=v<0?12:11;var o=gfn5(v.toFixed(12));if(o.length<=w)return o;o=v.toPrecision(10);if(o.length<=w)return o;return v.toExponential(5)}function gfn3(v){var o=v.toFixed(11).replace(gnr1,".$1");if(o.length>(v<0?12:11))o=v.toPrecision(6);return o}function gfn4(o){for(var i=0;i!=o.length;++i)if((o.charCodeAt(i)|32)===101)return o.replace(gnr4,".$1").replace(gnr5,"E").replace("e","E").replace(gnr6,"$10$2");return o}function gfn5(o){return o.indexOf(".")>-1?o.replace(gnr2,"").replace(gnr1,".$1"):o}return function general_fmt_num(v,opts){var V=Math.floor(Math.log(Math.abs(v))*Math.LOG10E),o;if(V>=-4&&V<=-1)o=v.toPrecision(10+V);else if(Math.abs(V)<=9)o=gfn2(v);else if(V===10)o=v.toFixed(10).substr(0,12);else o=gfn3(v);return gfn5(gfn4(o))}}();SSF._general_num=general_fmt_num;function general_fmt(v,opts){switch(typeof v){case"string":return v;case"boolean":return v?"TRUE":"FALSE";case"number":return(v|0)===v?general_fmt_int(v,opts):general_fmt_num(v,opts)}throw new Error("unsupported value in General format: "+v)}SSF._general=general_fmt;function fix_hijri(date,o){return 0}function parse_date_code(v,opts,b2){if(v>2958465||v<0)return null;var date=v|0,time=Math.floor(86400*(v-date)),dow=0;var dout=[];var out={D:date,T:time,u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(out.u)<1e-6)out.u=0;fixopts(opts!=null?opts:opts=[]);if(opts.date1904)date+=1462;if(out.u>.999){out.u=0;if(++time==86400){time=0;++date}}if(date===60){dout=b2?[1317,10,29]:[1900,2,29];dow=3}else if(date===0){dout=b2?[1317,8,29]:[1900,1,0];dow=6}else{if(date>60)--date;var d=new Date(1900,0,1);d.setDate(d.getDate()+date-1);dout=[d.getFullYear(),d.getMonth()+1,d.getDate()];dow=d.getDay();if(date<60)dow=(dow+6)%7;if(b2)dow=fix_hijri(d,dout)}out.y=dout[0];out.m=dout[1];out.d=dout[2];out.S=time%60;time=Math.floor(time/60);out.M=time%60;time=Math.floor(time/60);out.H=time;out.q=dow;return out}SSF.parse_date_code=parse_date_code;function write_date(type,fmt,val,ss0){var o="",ss=0,tt=0,y=val.y,out,outl=0;switch(type){case 98:y=val.y+543;case 121:switch(fmt.length){case 1:case 2:out=y%100;outl=2;break;default:out=y%1e4;outl=4;break}break;case 109:switch(fmt.length){case 1:case 2:out=val.m;outl=fmt.length;break;case 3:return months[val.m-1][1];case 5:return months[val.m-1][0];default:return months[val.m-1][2]}break;case 100:switch(fmt.length){case 1:case 2:out=val.d;outl=fmt.length;break;case 3:return days[val.q][0];default:return days[val.q][1]}break;case 104:switch(fmt.length){case 1:case 2:out=1+(val.H+11)%12;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 72:switch(fmt.length){case 1:case 2:out=val.H;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 77:switch(fmt.length){case 1:case 2:out=val.M;outl=fmt.length;break;default:throw"bad minute format: "+fmt}break;case 115:if(val.u===0)switch(fmt){case"s":case"ss":return pad0(val.S,fmt.length);case".0":case".00":case".000":}switch(fmt){case"s":case"ss":case".0":case".00":case".000":if(ss0>=2)tt=ss0===3?1e3:100;else tt=ss0===1?10:1;ss=Math.round(tt*(val.S+val.u));if(ss>=60*tt)ss=0;if(fmt==="s")return ss===0?"0":""+ss/tt;o=pad0(ss,2+ss0);if(fmt==="ss")return o.substr(0,2);return"."+o.substr(2,fmt.length-1);default:throw"bad second format: "+fmt}case 90:switch(fmt){case"[h]":case"[hh]":out=val.D*24+val.H;break;case"[m]":case"[mm]":out=(val.D*24+val.H)*60+val.M;break;case"[s]":case"[ss]":out=((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u);break;default:throw"bad abstime format: "+fmt}outl=fmt.length===3?1:2;break;case 101:out=y;outl=1}if(outl>0)return pad0(out,outl);else return""}function commaify(s){if(s.length<=3)return s;var j=s.length%3,o=s.substr(0,j);for(;j!=s.length;j+=3)o+=(o.length>0?",":"")+s.substr(j,3);return o}var write_num=function make_write_num(){var pct1=/%/g;function write_num_pct(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_cm(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_exp(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(o.indexOf("e")===-1){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);while(o.substr(0,2)==="0."){o=o[0]+o.substr(2,period)+"."+o.substr(2+period);o=o.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}var frac1=/# (\?+)( ?)\/( ?)(\d+)/;function write_num_f1(r,aval,sign){var den=parseInt(r[4]),rr=Math.round(aval*den),base=Math.floor(rr/den);var myn=rr-base*den,myd=den;return sign+(base===0?"":""+base)+" "+(myn===0?fill(" ",r[1].length+1+r[4].length):pad_(myn,r[1].length)+r[2]+"/"+r[3]+pad0(myd,r[4].length))}function write_num_f2(r,aval,sign){return sign+(aval===0?"":""+aval)+fill(" ",r[1].length+2+r[4].length)}var dec1=/^#*0*\.(0+)/;var closeparen=/\).*[0#]/;var phone=/\(###\) ###\\?-####/;function hashq(str){var o="",cc;for(var i=0;i!=str.length;++i)switch(cc=str.charCodeAt(i)){case 35:break;case 63:o+=" ";break;case 48:o+="0";break;default:o+=String.fromCharCode(cc)}return o}function rnd(val,d){var dd=Math.pow(10,d);return""+Math.round(val*dd)/dd}function dec(val,d){return Math.round((val-Math.floor(val))*Math.pow(10,d))}function flr(val){if(val<2147483647&&val>-2147483648)return""+(val>=0?val|0:val-1|0);return""+Math.floor(val)}function write_num_flt(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_flt("n",ffmt,val);return"("+write_num_flt("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_flt(type,fmt.substr(fmt[1]==" "?2:1),val);var o,oo;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0r(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=pad0r(val,0);if(o==="0")o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f1(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0r(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=rnd(val,r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+rnd(aval,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(pad0r(aval,0));if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_flt(type,fmt,-val):commaify(""+Math.floor(val))+"."+pad0(dec(val,r[1].length),r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_flt(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=0)return write_num_int("n",ffmt,val);return"("+write_num_int("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm2(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct2(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp2(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_int(type,fmt.substr(fmt[1]==" "?2:1),val);var o;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=""+val;if(val===0)o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f2(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=(""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+(""+aval).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(""+aval);if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val)+"."+fill("0",r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_int(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_int(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=12?"P":"A";q.t="T";hr="h";i+=3}else if(fmt.substr(i,5)==="AM/PM"){if(dt!=null)q.v=dt.H>=12?"PM":"AM";q.t="T";i+=5;hr="h"}else{q.t="t";++i}if(dt==null&&q.t==="T")return"";out[out.length]=q;lst=c;break;case"[":o=c;while(fmt[i++]!=="]"&&i-1||c=="\\"&&fmt[i+1]=="-"&&"0#".indexOf(fmt[i+2])>-1)o+=c;out[out.length]={t:"n",v:o};break;case"?":o=c;while(fmt[++i]===c)o+=c;q={t:c,v:o};out[out.length]=q;lst=c;break;case"*":++i;if(fmt[i]==" "||fmt[i]=="*")++i;break;case"(":case")":out[out.length]={t:flen===1?"t":c,v:c};++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=c;while("0123456789".indexOf(fmt[++i])>-1)o+=fmt[i];out[out.length]={t:"D",v:o};break;case" ":out[out.length]={t:c,v:c};++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"t",v:c};++i;break}}var bt=0,ss0=0,ssm;for(i=out.length-1,lst="t";i>=0;--i){switch(out[i].t){case"h":case"H":out[i].t=hr;lst="h";if(bt<1)bt=1;break;case"s":if(ssm=out[i].v.match(/\.0+$/))ss0=Math.max(ss0,ssm[0].length-1);if(bt<3)bt=3;case"d":case"y":case"M":case"e":lst=out[i].t;break;case"m":if(lst==="s"){out[i].t="M";if(bt<2)bt=2}break;case"X":if(out[i].v==="B2");break;case"Z":if(bt<1&&out[i].v.match(/[Hh]/))bt=1;if(bt<2&&out[i].v.match(/[Mm]/))bt=2;if(bt<3&&out[i].v.match(/[Ss]/))bt=3}}switch(bt){case 0:break;case 1:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}if(dt.M>=60){dt.M=0;++dt.H}break;case 2:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}break}var nstr="",jj;for(i=0;i-1||out[jj].v===" "&&out[jj+1]!=null&&out[jj+1].t=="?"))){out[i].v+=out[jj].v;out[jj]=undefined;++jj}nstr+=out[i].v;i=jj-1;break;case"G":out[i].t="t";out[i].v=general_fmt(v,opts);break}}var vv="",myv,ostr;if(nstr.length>0){myv=v<0&&nstr.charCodeAt(0)===45?-v:v;ostr=write_num(nstr.charCodeAt(0)===40?"(":"n",nstr,myv);jj=ostr.length-1;var decpt=out.length;for(i=0;i-1){decpt=i;break}var lasti=out.length;if(decpt===out.length&&ostr.indexOf("E")===-1){for(i=out.length-1;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;if(jj>=out[i].v.length-1){jj-=out[i].v.length;out[i].v=ostr.substr(jj+1,out[i].v.length)}else if(jj<0)out[i].v="";else{out[i].v=ostr.substr(0,jj+1);jj=-1}out[i].t="t";lasti=i}if(jj>=0&&lasti=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")-1:out[i].v.length-1;vv=out[i].v.substr(j+1);for(;j>=0;--j){if(jj>=0&&(out[i].v[j]==="0"||out[i].v[j]==="#"))vv=ostr[jj--]+vv}out[i].v=vv;out[i].t="t";lasti=i}if(jj>=0&&lasti-1&&i===decpt?out[i].v.indexOf(".")+1:0;vv=out[i].v.substr(0,j);for(;j-1){myv=flen>1&&v<0&&i>0&&out[i-1].v==="-"?-v:v;out[i].v=write_num(out[i].t,out[i].v,myv);out[i].t="t"}var retval="";for(i=0;i!==out.length;++i)if(out[i]!=null)retval+=out[i].v;return retval}SSF._eval=eval_fmt;var cfregex=/\[[=<>]/;var cfregex2=/\[([=<>]*)(-?\d+\.?\d*)\]/;function chkcond(v,rr){if(rr==null)return false;var thresh=parseFloat(rr[2]);switch(rr[1]){case"=":if(v==thresh)return true;break;case">":if(v>thresh)return true;break;case"<":if(v":if(v!=thresh)return true;break;case">=":if(v>=thresh)return true;break;case"<=":if(v<=thresh)return true;break}return false}function choose_fmt(f,v){var fmt=split_fmt(f);var l=fmt.length,lat=fmt[l-1].indexOf("@");if(l<4&&lat>-1)--l;if(fmt.length>4)throw"cannot find right format for |"+fmt+"|";if(typeof v!=="number")return[4,fmt.length===4||lat>-1?fmt[fmt.length-1]:"@"];switch(fmt.length){case 1:fmt=lat>-1?["General","General","General",fmt[0]]:[fmt[0],fmt[0],fmt[0],"@"];break;case 2:fmt=lat>-1?[fmt[0],fmt[0],fmt[0],fmt[1]]:[fmt[0],fmt[1],fmt[0],"@"];break;case 3:fmt=lat>-1?[fmt[0],fmt[1],fmt[0],fmt[2]]:[fmt[0],fmt[1],fmt[2],"@"];break;case 4:break}var ff=v>0?fmt[0]:v<0?fmt[1]:fmt[2];if(fmt[0].indexOf("[")===-1&&fmt[1].indexOf("[")===-1)return[l,ff];if(fmt[0].match(cfregex)!=null||fmt[1].match(cfregex)!=null){var m1=fmt[0].match(cfregex2);var m2=fmt[1].match(cfregex2);return chkcond(v,m1)?[l,fmt[0]]:chkcond(v,m2)?[l,fmt[1]]:[l,fmt[m1!=null&&m2!=null?2:1]]}return[l,ff]}function format(fmt,v,o){fixopts(o!=null?o:o=[]);var sfmt="";switch(typeof fmt){case"string":sfmt=fmt;break;case"number":sfmt=(o.table!=null?o.table:table_fmt)[fmt];break}if(isgeneral(sfmt,0))return general_fmt(v,o);var f=choose_fmt(sfmt,v);if(isgeneral(f[1]))return general_fmt(v,o);if(v===true)v="TRUE";else if(v===false)v="FALSE";else if(v===""||v==null)return"";return eval_fmt(f[1],v,o,f[0])}SSF._table=table_fmt;SSF.load=function load_entry(fmt,idx){table_fmt[idx]=fmt};SSF.format=format;SSF.get_table=function get_table(){return table_fmt};SSF.load_table=function load_table(tbl){for(var i=0;i!=392;++i)if(tbl[i]!==undefined)SSF.load(tbl[i],i)}};make_ssf(SSF);function isval(x){return x!==undefined&&x!==null}function keys(o){return Object.keys(o)}function evert_key(obj,key){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]][key]]=K[i];return o}function evert(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=K[i];return o}function evert_num(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=parseInt(K[i],10);return o}function evert_arr(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i){if(o[obj[K[i]]]==null)o[obj[K[i]]]=[];o[obj[K[i]]].push(K[i])}return o}function datenum(v,date1904){if(date1904)v+=1462;var epoch=Date.parse(v);return(epoch+22091616e5)/(24*60*60*1e3)}function cc2str(arr){var o="";for(var i=0;i!=arr.length;++i)o+=String.fromCharCode(arr[i]);return o}var has_buf=typeof Buffer!=="undefined";function getdata(data){if(!data)return null;if(data.name.substr(-4)===".bin"){if(data.data)return char_codes(data.data);if(data.asNodeBuffer&&has_buf)return data.asNodeBuffer();if(data._data&&data._data.getContent)return Array.prototype.slice.call(data._data.getContent())}else{if(data.data)return data.name.substr(-4)!==".bin"?debom_xml(data.data):char_codes(data.data);if(data.asNodeBuffer&&has_buf)return debom_xml(data.asNodeBuffer().toString("binary"));if(data.asBinary)return debom_xml(data.asBinary());if(data._data&&data._data.getContent)return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)))}return null}function safegetzipfile(zip,file){var f=file;if(zip.files[f])return zip.files[f];f=file.toLowerCase();if(zip.files[f])return zip.files[f];f=f.replace(/\//g,"\\");if(zip.files[f])return zip.files[f];return null}function getzipfile(zip,file){var o=safegetzipfile(zip,file);if(o==null)throw new Error("Cannot find file "+file+" in zip");return o}function getzipdata(zip,file,safe){if(!safe)return getdata(getzipfile(zip,file));if(!file)return null;try{return getzipdata(zip,file)}catch(e){return null}}var _fs,jszip;if(typeof JSZip!=="undefined")jszip=JSZip;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){if(has_buf&&typeof jszip==="undefined")jszip=require("js"+"zip");if(typeof jszip==="undefined")jszip=require("./js"+"zip").JSZip;_fs=require("f"+"s")}}var attregexg=/\b[\w:]+=["'][^"]*['"]/g;var tagregex=/<[^>]*>/g;var nsregex=/<\w*:/,nsregex2=/<(\/?)\w+:/;function parsexmltag(tag,skip_root){var z=[];var eq=0,c=0;for(;eq!==tag.length;++eq)if((c=tag.charCodeAt(eq))===32||c===10||c===13)break;if(!skip_root)z[0]=tag.substr(0,eq);if(eq===tag.length)return z;var m=tag.match(attregexg),j=0,w="",v="",i=0,q="",cc="";if(m)for(i=0;i!=m.length;++i){cc=m[i];for(c=0;c!=cc.length;++c)if(cc.charCodeAt(c)===61)break;q=cc.substr(0,c);v=cc.substring(c+2,cc.length-1);for(j=0;j!=q.length;++j)if(q.charCodeAt(j)===58)break;if(j===q.length)z[q]=v;else z[(j===5&&q.substr(0,5)==="xmlns"?"xmlns":"")+q.substr(j+1)]=v}return z}function strip_ns(x){return x.replace(nsregex2,"<$1")}var encodings={""":'"',"'":"'",">":">","<":"<","&":"&"};var rencoding=evert(encodings);var rencstr="&<>'\"".split("");var encregex=/&[a-z]*;/g,coderegex=/_x([\da-fA-F]+)_/g;function unescapexml(text){var s=text+"";return s.replace(encregex,function($$){return encodings[$$]}).replace(coderegex,function(m,c){return String.fromCharCode(parseInt(c,16))})}var decregex=/[&<>'"]/g,charegex=/[\u0000-\u0008\u000b-\u001f]/g;function escapexml(text){var s=text+"";return s.replace(decregex,function(y){return rencoding[y]}).replace(charegex,function(s){return"_x"+("000"+s.charCodeAt(0).toString(16)).substr(-4)+"_"})}function parsexmlbool(value,tag){switch(value){case"1":case"true":case"TRUE":return true;default:return false}}var utf8read=function utf8reada(orig){var out="",i=0,c=0,d=0,e=0,f=0,w=0;while(i191&&c<224){out+=String.fromCharCode((c&31)<<6|d&63);continue}e=orig.charCodeAt(i++);if(c<240){out+=String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);continue}f=orig.charCodeAt(i++);w=((c&7)<<18|(d&63)<<12|(e&63)<<6|f&63)-65536;out+=String.fromCharCode(55296+(w>>>10&1023));out+=String.fromCharCode(56320+(w&1023))}return out};if(has_buf){var utf8readb=function utf8readb(data){var out=new Buffer(2*data.length),w,i,j=1,k=0,ww=0,c;for(i=0;i>>10&1023);w=56320+(w&1023)}if(ww!==0){out[k++]=ww&255;out[k++]=ww>>>8;ww=0}out[k++]=w%256;out[k++]=w>>>8}out.length=k;return out.toString("ucs2")};var corpus="foo bar baz☃🍣";if(utf8read(corpus)==utf8readb(corpus))utf8read=utf8readb;var utf8readc=function utf8readc(data){return Buffer(data,"binary").toString("utf8")};if(utf8read(corpus)==utf8readc(corpus))utf8read=utf8readc}var matchtag=function(){var mtcache={};return function matchtag(f,g){var t=f+"|"+g;if(mtcache[t]!==undefined)return mtcache[t];return mtcache[t]=new RegExp("<(?:\\w+:)?"+f+'(?: xml:space="preserve")?(?:[^>]*)>([^☃]*)",g||"")}}();var vtregex=function(){var vt_cache={};return function vt_regex(bt){if(vt_cache[bt]!==undefined)return vt_cache[bt];return vt_cache[bt]=new RegExp("(.*?)","g")}}();var vtvregex=/<\/?vt:variant>/g,vtmregex=/]*)>(.*)"+g+""}function wxt_helper(h){return keys(h).map(function(k){return" "+k+'="'+h[k]+'"'}).join("")}function writextag(f,g,h){return"<"+f+(isval(h)?wxt_helper(h):"")+(isval(g)?(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+""}function write_w3cdtf(d,t){try{return d.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}}function write_vt(s){switch(typeof s){case"string":return writextag("vt:lpwstr",s);case"number":return writextag((s|0)==s?"vt:i4":"vt:r8",String(s));case"boolean":return writextag("vt:bool",s?"true":"false")}if(s instanceof Date)return writextag("vt:filetime",write_w3cdtf(s));throw new Error("Unable to serialize "+s)}var XML_HEADER='\r\n';var XMLNS={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};XMLNS.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function readIEEE754(buf,idx,isLE,nl,ml){if(isLE===undefined)isLE=true;if(!nl)nl=8;if(!ml&&nl===8)ml=52;var e,m,el=nl*8-ml-1,eMax=(1<>1;var bits=-7,d=isLE?-1:1,i=isLE?nl-1:0,s=buf[idx+i];i+=d;e=s&(1<<-bits)-1;s>>>=-bits;bits+=el;for(;bits>0;e=e*256+buf[idx+i],i+=d,bits-=8);m=e&(1<<-bits)-1;e>>>=-bits;bits+=ml;for(;bits>0;m=m*256+buf[idx+i],i+=d,bits-=8);if(e===eMax)return m?NaN:(s?-1:1)*Infinity;else if(e===0)e=1-eBias;else{m=m+Math.pow(2,ml);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-ml)}var __toBuffer,___toBuffer;__toBuffer=___toBuffer=function toBuffer_(bufs){var x=[];for(var i=0;i0&&Buffer.isBuffer(bufs[0][0])?Buffer.concat(bufs[0]):___toBuffer(bufs)};__double=function double_(b,i){if(Buffer.isBuffer(b))return b.readDoubleLE(i);return ___double(b,i)};is_buf=function is_buf_b(a){return Buffer.isBuffer(a)||Array.isArray(a)}}var __readUInt8=function(b,idx){return b[idx]};var __readUInt16LE=function(b,idx){return b[idx+1]*(1<<8)+b[idx]};var __readInt16LE=function(b,idx){var u=b[idx+1]*(1<<8)+b[idx];return u<32768?u:(65535-u+1)*-1};var __readUInt32LE=function(b,idx){return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]};var __readInt32LE=function(b,idx){return b[idx+3]<<24|b[idx+2]<<16|b[idx+1]<<8|b[idx]};function ReadShift(size,t){var o="",oo=[],w,vv,i,loc;if(t==="dbcs"){loc=this.l;if(has_buf&&Buffer.isBuffer(this))o=this.slice(this.l,this.l+2*size).toString("utf16le");else for(i=0;i!=size;++i){o+=String.fromCharCode(__readUInt16LE(this,loc));loc+=2}size*=2}else switch(size){case 1:o=__readUInt8(this,this.l);break;case 2:o=(t==="i"?__readInt16LE:__readUInt16LE)(this,this.l);break;case 4:o=__readUInt32LE(this,this.l);break;case 8:if(t==="f"){o=__double(this,this.l);break}}this.l+=size;return o}function WriteShift(t,val,f){var size,i;if(f==="dbcs"){for(i=0;i!=val.length;++i)this.writeUInt16LE(val.charCodeAt(i),this.l+2*i);size=2*val.length}else switch(t){case 1:size=1;this[this.l]=val&255;break;case 3:size=3;this[this.l+2]=val&255;val>>>=8;this[this.l+1]=val&255;val>>>=8;this[this.l]=val&255;break;case 4:size=4;this.writeUInt32LE(val,this.l);break;case 8:size=8;if(f==="f"){this.writeDoubleLE(val,this.l);break}case 16:break;case-4:size=4;this.writeInt32LE(val,this.l);break}this.l+=size;return this}function prep_blob(blob,pos){blob.l=pos;blob.read_shift=ReadShift;blob.write_shift=WriteShift}function parsenoop(blob,length){blob.l+=length}function writenoop(blob,length){blob.l+=length}function new_buf(sz){var o=has_buf?new Buffer(sz):new Array(sz);prep_blob(o,0);return o}function recordhopper(data,cb,opts){var tmpbyte,cntbyte,length;prep_blob(data,data.l||0);while(data.l0)bufs.push(curbuf);curbuf=null};var next=function ba_next(sz){if(sz=128?1:0)+1+length;if(length>=128)++l;if(length>=16384)++l;if(length>=2097152)++l;var o=ba.next(l);if(t<=127)o.write_shift(1,t);else{o.write_shift(1,(t&127)+128);o.write_shift(1,t>>7)}for(var i=0;i!=4;++i){if(length>=128){o.write_shift(1,(length&127)+128);length>>=7}else{o.write_shift(1,length);break}}if(length>0&&is_buf(payload))ba.push(payload)}function parse_StrRun(data,length){return{ich:data.read_shift(2),ifnt:data.read_shift(2)}}function parse_RichStr(data,length){var start=data.l;var flags=data.read_shift(1);var str=parse_XLWideString(data);var rgsStrRun=[];var z={t:str,h:str};if((flags&1)!==0){var dwSizeStrRun=data.read_shift(4);for(var i=0;i!=dwSizeStrRun;++i)rgsStrRun.push(parse_StrRun(data));z.r=rgsStrRun}else z.r=""+escapexml(str)+"";if((flags&2)!==0){}data.l=start+length;return z}function write_RichStr(str,o){if(o==null)o=new_buf(5+2*str.t.length);o.write_shift(1,0);write_XLWideString(str.t,o);return o}function parse_Cell(data){var col=data.read_shift(4);var iStyleRef=data.read_shift(2);iStyleRef+=data.read_shift(1)<<16;var fPhShow=data.read_shift(1);return{c:col,iStyleRef:iStyleRef}}function write_Cell(cell,o){if(o==null)o=new_buf(8);o.write_shift(-4,cell.c);o.write_shift(3,cell.iStyleRef===undefined?cell.iStyleRef:cell.s);o.write_shift(1,0);return o}function parse_CodeName(data,length){return parse_XLWideString(data,length)}function parse_XLNullableWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0||cchCharacters===4294967295?"":data.read_shift(cchCharacters,"dbcs")}function write_XLNullableWideString(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.length>0?data.length:4294967295);if(data.length>0)o.write_shift(0,data,"dbcs");return o}function parse_XLWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0?"":data.read_shift(cchCharacters,"dbcs")}function write_XLWideString(data,o){if(o==null)o=new_buf(4+2*data.length);o.write_shift(4,data.length);if(data.length>0)o.write_shift(0,data,"dbcs");return o}var parse_RelID=parse_XLNullableWideString;var write_RelID=write_XLNullableWideString;function parse_RkNumber(data){var b=data.slice(data.l,data.l+4);var fX100=b[0]&1,fInt=b[0]&2;data.l+=4;b[0]&=252;var RK=fInt===0?__double([0,0,0,0,b[0],b[1],b[2],b[3]],0):__readInt32LE(b,0)>>2;return fX100?RK/100:RK}function parse_UncheckedRfX(data){var cell={s:{},e:{}};cell.s.r=data.read_shift(4);cell.e.r=data.read_shift(4);cell.s.c=data.read_shift(4);cell.e.c=data.read_shift(4);return cell}function write_UncheckedRfX(r,o){if(!o)o=new_buf(16);o.write_shift(4,r.s.r);o.write_shift(4,r.e.r);o.write_shift(4,r.s.c);o.write_shift(4,r.e.c);return o}function parse_Xnum(data,length){return data.read_shift(8,"f")}function write_Xnum(data,o){return(o||new_buf(8)).write_shift(8,"f",data)}var BErr={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var RBErr=evert_num(BErr);function parse_BrtColor(data,length){var out={};var d=data.read_shift(1);out.fValidRGB=d&1;out.xColorType=d>>>1;out.index=data.read_shift(1);out.nTintAndShade=data.read_shift(2,"i");out.bRed=data.read_shift(1);out.bGreen=data.read_shift(1);out.bBlue=data.read_shift(1);out.bAlpha=data.read_shift(1)}function parse_FontFlags(data,length){var d=data.read_shift(1);data.l++;var out={fItalic:d&2,fStrikeout:d&8,fOutline:d&16,fShadow:d&32,fCondense:d&64,fExtend:d&128};return out}var ct2type={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.chartsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"TODO","application/vnd.ms-excel.dialogsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"TODO","application/vnd.ms-excel.macrosheet":"TODO","application/vnd.ms-excel.macrosheet+xml":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.ms-excel.comments":"comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"TODO","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO",sheet:"js"};var CT_LIST=function(){var o={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};keys(o).forEach(function(k){if(!o[k].xlsm)o[k].xlsm=o[k].xlsx});keys(o).forEach(function(k){keys(o[k]).forEach(function(v){ct2type[o[k][v]]=k})});return o}();var type2ct=evert_arr(ct2type);XMLNS.CT="http://schemas.openxmlformats.org/package/2006/content-types";function parse_ct(data,opts){var ctext={};if(!data||!data.match)return data;var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0].replace(nsregex,"<")){case"0?ct.calcchains[0]:"";ct.sst=ct.strs.length>0?ct.strs[0]:"";ct.style=ct.styles.length>0?ct.styles[0]:"";ct.defaults=ctext;delete ct.calcchains;return ct}var CTYPE_XML_ROOT=writextag("Types",null,{xmlns:XMLNS.CT,"xmlns:xsd":XMLNS.xsd,"xmlns:xsi":XMLNS.xsi});var CTYPE_DEFAULTS=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["rels",type2ct.rels[0]]].map(function(x){return writextag("Default",null,{Extension:x[0],ContentType:x[1]})});function write_ct(ct,opts){var o=[],v;o[o.length]=XML_HEADER;o[o.length]=CTYPE_XML_ROOT;o=o.concat(CTYPE_DEFAULTS);var f1=function(w){if(ct[w]&&ct[w].length>0){v=ct[w][0];o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})}};var f2=function(w){ct[w].forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})})};var f3=function(t){(ct[t]||[]).forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:type2ct[t][0]})})};f1("workbooks");f2("sheets");f3("themes");["strs","styles"].forEach(f1);["coreprops","extprops","custprops"].forEach(f3);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var RELS={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument"};function parse_rels(data,currentFilePath){if(!data)return data;if(currentFilePath.charAt(0)!=="/"){currentFilePath="/"+currentFilePath}var rels={};var hash={};var resolveRelativePathIntoAbsolute=function(to){var toksFrom=currentFilePath.split("/");toksFrom.pop();var toksTo=to.split("/");var reversed=[];while(toksTo.length!==0){var tokTo=toksTo.shift();if(tokTo===".."){toksFrom.pop()}else if(tokTo!=="."){toksFrom.push(tokTo)}}return toksFrom.join("/")};data.match(tagregex).forEach(function(x){var y=parsexmltag(x);if(y[0]==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CORE_PROPS=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];XMLNS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";RELS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var CORE_PROPS_REGEX=function(){var r=new Array(CORE_PROPS.length);for(var i=0;i]*>(.*)")}return r}();function parse_core_props(data){var p={};for(var i=0;i0)p[f[1]]=cur[1];if(f[2]==="date"&&p[f[1]])p[f[1]]=new Date(p[f[1]])}return p}var CORE_PROPS_XML_ROOT=writextag("cp:coreProperties",null,{"xmlns:cp":XMLNS.CORE_PROPS,"xmlns:dc":XMLNS.dc,"xmlns:dcterms":XMLNS.dcterms,"xmlns:dcmitype":XMLNS.dcmitype,"xmlns:xsi":XMLNS.xsi});function cp_doit(f,g,h,o,p){if(p[f]!=null||g==null||g==="")return;p[f]=g;o[o.length]=h?writextag(f,g,h):writetag(f,g)}function write_core_props(cp,opts){var o=[XML_HEADER,CORE_PROPS_XML_ROOT],p={};if(!cp)return o.join("");if(cp.CreatedDate!=null)cp_doit("dcterms:created",typeof cp.CreatedDate==="string"?cp.CreatedDate:write_w3cdtf(cp.CreatedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);if(cp.ModifiedDate!=null)cp_doit("dcterms:modified",typeof cp.ModifiedDate==="string"?cp.ModifiedDate:write_w3cdtf(cp.ModifiedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);for(var i=0;i!=CORE_PROPS.length;++i){var f=CORE_PROPS[i];cp_doit(f[0],cp[f[1]],null,o,p)}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var EXT_PROPS=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];XMLNS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";RELS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function parse_ext_props(data,p){var q={};if(!p)p={};EXT_PROPS.forEach(function(f){switch(f[2]){case"string":p[f[1]]=(data.match(matchtag(f[0]))||[])[1];break;case"bool":p[f[1]]=(data.match(matchtag(f[0]))||[])[1]==="true";break;case"raw":var cur=data.match(new RegExp("<"+f[0]+"[^>]*>(.*)"));if(cur&&cur.length>0)q[f[1]]=cur[1];break}});if(q.HeadingPairs&&q.TitlesOfParts){var v=parseVector(q.HeadingPairs);var j=0,widx=0;for(var i=0;i!==v.length;++i){switch(v[i].v){case"Worksheets":widx=j;p.Worksheets=+v[++i].v;break;case"Named Ranges":++i;break}}var parts=parseVector(q.TitlesOfParts).map(function(x){return utf8read(x.v)});p.SheetNames=parts.slice(widx,widx+p.Worksheets)}return p}var EXT_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.EXT_PROPS,"xmlns:vt":XMLNS.vt});function write_ext_props(cp,opts){var o=[],p={},W=writextag;if(!cp)cp={};cp.Application="SheetJS";o[o.length]=XML_HEADER;o[o.length]=EXT_PROPS_XML_ROOT;EXT_PROPS.forEach(function(f){if(cp[f[1]]===undefined)return;var v;switch(f[2]){case"string":v=cp[f[1]];break;case"bool":v=cp[f[1]]?"true":"false";break}if(v!==undefined)o[o.length]=W(f[0],v)});o[o.length]=W("HeadingPairs",W("vt:vector",W("vt:variant","Worksheets")+W("vt:variant",W("vt:i4",String(cp.Worksheets))),{size:2,baseType:"variant"}));o[o.length]=W("TitlesOfParts",W("vt:vector",cp.SheetNames.map(function(s){return""+s+""}).join(""),{size:cp.Worksheets,baseType:"lpstr"}));if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}XMLNS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";RELS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var custregex=/<[^>]+>[^<]*/g;function parse_cust_props(data,opts){var p={},name;var m=data.match(custregex);if(m)for(var i=0;i!=m.length;++i){var x=m[i],y=parsexmltag(x);switch(y[0]){case"":name=null;break;default:if(x.indexOf("");var type=toks[0].substring(4),text=toks[1];switch(type){case"lpstr":case"lpwstr":case"bstr":case"lpwstr":p[name]=unescapexml(text);break;case"bool":p[name]=parsexmlbool(text,"");break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":p[name]=parseInt(text,10);break;case"r4":case"r8":case"decimal":p[name]=parseFloat(text);break;case"filetime":case"date":p[name]=new Date(text);break;case"cy":case"error":p[name]=unescapexml(text);break;default:if(typeof console!=="undefined")console.warn("Unexpected",x,type,toks)}}else if(x.substr(0,2)==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CS2CP={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var parse_rs=function parse_rs_factory(){var tregex=matchtag("t"),rpregex=matchtag("rPr"),rregex=//g,rend=/<\/r>/,nlregex=/\r\n/g;var parse_rpr=function parse_rpr(rpr,intro,outro){var font={},cp=65001;var m=rpr.match(tagregex),i=0;if(m)for(;i!=m.length;++i){var y=parsexmltag(m[i]);switch(y[0]){case"":break;case"":break;case"":font.strike=1;break;case"":break;case"":font.u=1;break;case"":break;case"":font.b=1;break;case"":break;case"":font.i=1;break;case"":break;case"');outro.push("");return cp};function parse_r(r){var terms=[[],"",[]];var t=r.match(tregex),cp=65001;if(!isval(t))return"";terms[1]=t[1];var rpr=r.match(rpregex);if(isval(rpr))cp=parse_rpr(rpr[1],terms[0],terms[2]);return terms[0].join("")+terms[1].replace(nlregex,"
")+terms[2].join("")}return function parse_rs(rs){return rs.replace(rregex,"").split(rend).map(parse_r).join("")}}();var sitregex=/]*>([^<]*)<\/t>/g,sirregex=//;function parse_si(x,opts){var html=opts?opts.cellHTML:true;var z={};if(!x)return null;var y;if(x.charCodeAt(1)===116){z.t=utf8read(unescapexml(x.substr(x.indexOf(">")+1).split(/<\/t>/)[0]));z.r=x;if(html)z.h=z.t}else if(y=x.match(sirregex)){z.r=x;z.t=utf8read(unescapexml(x.match(sitregex).join("").replace(tagregex,"")));if(html)z.h=parse_rs(x)}return z}var sstr0=/]*)>([\s\S]*)<\/sst>/;var sstr1=/<(?:si|sstItem)>/g;var sstr2=/<\/(?:si|sstItem)>/;function parse_sst_xml(data,opts){var s=[],ss;var sst=data.match(sstr0);if(isval(sst)){ss=sst[2].replace(sstr1,"").split(sstr2);for(var i=0;i!=ss.length;++i){var o=parse_si(ss[i],opts);if(o!=null)s[s.length]=o}sst=parsexmltag(sst[1]);s.Count=sst.count;s.Unique=sst.uniqueCount}return s}RELS.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var straywsregex=/^\s|\s$|[\t\n\r]/;function write_sst_xml(sst,opts){if(!opts.bookSST)return"";var o=[XML_HEADER];o[o.length]=writextag("sst",null,{xmlns:XMLNS.main[0],count:sst.Count,uniqueCount:sst.Unique});for(var i=0;i!=sst.length;++i){if(sst[i]==null)continue;var s=sst[i];var sitag="";if(s.r)sitag+=s.r;else{sitag+=""}sitag+="";o[o.length]=sitag}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBeginSst(data,length){return[data.read_shift(4),data.read_shift(4)]}function parse_sst_bin(data,opts){var s=[];var pass=false;recordhopper(data,function hopper_sst(val,R,RT){switch(R.n){case"BrtBeginSst":s.Count=val[0];s.Unique=val[1];break;case"BrtSSTItem":s.push(val);break;case"BrtEndSst":return true;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return s}function write_BrtBeginSst(sst,o){if(!o)o=new_buf(8);o.write_shift(4,sst.Count);o.write_shift(4,sst.Unique);return o}var write_BrtSSTItem=write_RichStr;function write_sst_bin(sst,opts){var ba=buf_array();write_record(ba,"BrtBeginSst",write_BrtBeginSst(sst));for(var i=0;i255?255:rgb[i]<0?0:rgb[i]);return o.toString(16).toUpperCase().substr(1)}function rgb2HSL(rgb){var R=rgb[0]/255,G=rgb[1]/255,B=rgb[2]/255;var M=Math.max(R,G,B),m=Math.min(R,G,B),C=M-m;if(C===0)return[0,0,R];var H6=0,S=0,L2=M+m;S=C/(L2>1?2-L2:L2);switch(M){case R:H6=((G-B)/C+6)%6;break;case G:H6=(B-R)/C+2;break;case B:H6=(R-G)/C+4;break}return[H6/6,S,L2/2]}function hsl2RGB(hsl){var H=hsl[0],S=hsl[1],L=hsl[2];var C=S*2*(L<.5?L:1-L),m=L-C/2;var rgb=[m,m,m],h6=6*H;var X;if(S!==0)switch(h6|0){case 0:case 6:X=C*h6;rgb[0]+=C;rgb[1]+=X;break;case 1:X=C*(2-h6);rgb[0]+=X;rgb[1]+=C;break;case 2:X=C*(h6-2);rgb[1]+=C;rgb[2]+=X;break;case 3:X=C*(4-h6);rgb[1]+=X;rgb[2]+=C;break;case 4:X=C*(h6-4);rgb[2]+=C;rgb[0]+=X;break;case 5:X=C*(6-h6);rgb[2]+=X;rgb[0]+=C;break}for(var i=0;i!=3;++i)rgb[i]=Math.round(rgb[i]*255);return rgb}function rgb_tint(hex,tint){if(tint===0)return hex;var hsl=rgb2HSL(hex2RGB(hex));if(tint<0)hsl[2]=hsl[2]*(1+tint);else hsl[2]=1-(1-hsl[2])*(1-tint);return rgb2Hex(hsl2RGB(hsl))}var DEF_MDW=7,MAX_MDW=15,MIN_MDW=1,MDW=DEF_MDW;function width2px(width){return(width+(128/MDW|0)/256)*MDW|0}function px2char(px){return((px-5)/MDW*100+.5|0)/100}function char2width(chr){return((chr*MDW+5)/MDW*256|0)/256}function cycle_width(collw){return char2width(px2char(width2px(collw)))}function find_mdw(collw,coll){if(cycle_width(collw)!=collw){for(MDW=DEF_MDW;MDW>MIN_MDW;--MDW)if(cycle_width(collw)===collw)break;if(MDW===MIN_MDW)for(MDW=DEF_MDW+1;MDW":case"":break;case"":break;case"":styles.Fills.push(fill);fill={};break;case"":case"":break;case"":case"":break;case"":case"":break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in fills"}})}function parse_numFmts(t,opts){styles.NumberFmt=[];var k=keys(SSF._table);for(var i=0;i":case"":case"":break;case"0)SSF.load(f,j)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in numFmts"}}}function write_numFmts(NF,opts){var o=[""];[[5,8],[23,26],[41,44],[63,66],[164,392]].forEach(function(r){for(var i=r[0];i<=r[1];++i)if(NF[i]!==undefined)o[o.length]=writextag("numFmt",null,{numFmtId:i,formatCode:escapexml(NF[i])})});if(o.length===1)return"";o[o.length]="";o[0]=writextag("numFmts",null,{count:o.length-2}).replace("/>",">");return o.join("")}function parse_cellXfs(t,opts){styles.CellXf=[];t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":case"":case"":break;case"":break;case"":break;case"":case"":break;case"":break;case"";if(o.length===2)return"";o[0]=writextag("cellXfs",null,{count:o.length-2}).replace("/>",">");return o.join("")}var parse_sty_xml=function make_pstyx(){var numFmtRegex=/]*)>.*<\/numFmts>/;var cellXfRegex=/]*)>.*<\/cellXfs>/;var fillsRegex=/]*)>.*<\/fills>/;return function parse_sty_xml(data,opts){var t;if(t=data.match(numFmtRegex))parse_numFmts(t,opts);if(t=data.match(fillsRegex))parse_fills(t,opts);if(t=data.match(cellXfRegex))parse_cellXfs(t,opts);return styles}}();var STYLES_XML_ROOT=writextag("styleSheet",null,{xmlns:XMLNS.main[0],"xmlns:vt":XMLNS.vt});RELS.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function write_sty_xml(wb,opts){var o=[XML_HEADER,STYLES_XML_ROOT],w;if((w=write_numFmts(wb.SSF))!=null)o[o.length]=w;o[o.length]='';o[o.length]='';o[o.length]='';o[o.length]='';if(w=write_cellXfs(opts.cellXfs))o[o.length]=w;o[o.length]='';o[o.length]='';o[o.length]='';if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtFmt(data,length){var ifmt=data.read_shift(2);var stFmtCode=parse_XLWideString(data,length-2);return[ifmt,stFmtCode]}function parse_BrtFont(data,length){var out={flags:{}};out.dyHeight=data.read_shift(2);out.grbit=parse_FontFlags(data,2);out.bls=data.read_shift(2);out.sss=data.read_shift(2);out.uls=data.read_shift(1);out.bFamily=data.read_shift(1);out.bCharSet=data.read_shift(1);data.l++;out.brtColor=parse_BrtColor(data,8);out.bFontScheme=data.read_shift(1);out.name=parse_XLWideString(data,length-21);out.flags.Bold=out.bls===700;out.flags.Italic=out.grbit.fItalic;out.flags.Strikeout=out.grbit.fStrikeout;out.flags.Outline=out.grbit.fOutline;out.flags.Shadow=out.grbit.fShadow;out.flags.Condense=out.grbit.fCondense;out.flags.Extend=out.grbit.fExtend;out.flags.Sub=out.sss&2;out.flags.Sup=out.sss&1;return out}function parse_BrtXF(data,length){var ixfeParent=data.read_shift(2);var ifmt=data.read_shift(2);parsenoop(data,length-4);return{ixfe:ixfeParent,ifmt:ifmt}}function parse_sty_bin(data,opts){styles.NumberFmt=[];for(var y in SSF._table)styles.NumberFmt[y]=SSF._table[y];styles.CellXf=[];var state="";var pass=false;recordhopper(data,function hopper_sty(val,R,RT){switch(R.n){case"BrtFmt":styles.NumberFmt[val[0]]=val[1];SSF.load(val[1],val[0]);break;case"BrtFont":break;case"BrtKnownFonts":break;case"BrtFill":break;case"BrtBorder":break;case"BrtXF":if(state==="CELLXFS"){styles.CellXf.push(val)}break;case"BrtStyle":break;case"BrtDXF":break;case"BrtMRUColor":break;case"BrtIndexedColor":break;case"BrtBeginStyleSheet":break;case"BrtEndStyleSheet":break;case"BrtBeginTableStyle":break;case"BrtTableStyleElement":break;case"BrtEndTableStyle":break;case"BrtBeginFmts":state="FMTS";break;case"BrtEndFmts":state="";break;case"BrtBeginFonts":state="FONTS";break;case"BrtEndFonts":state="";break;case"BrtACBegin":state="ACFONTS";break;case"BrtACEnd":state="";break;case"BrtBeginFills":state="FILLS";break;case"BrtEndFills":state="";break;case"BrtBeginBorders":state="BORDERS";break;case"BrtEndBorders":state="";break;case"BrtBeginCellStyleXFs":state="CELLSTYLEXFS";break;case"BrtEndCellStyleXFs":state="";break;case"BrtBeginCellXFs":state="CELLXFS";break;case"BrtEndCellXFs":state="";break;case"BrtBeginStyles":state="STYLES";break;case"BrtEndStyles":state="";break;case"BrtBeginDXFs":state="DXFS";break;case"BrtEndDXFs":state="";break;case"BrtBeginTableStyles":state="TABLESTYLES";break;case"BrtEndTableStyles":state="";break;case"BrtBeginColorPalette":state="COLORPALETTE";break;case"BrtEndColorPalette":state="";break;case"BrtBeginIndexedColors":state="INDEXEDCOLORS";break;case"BrtEndIndexedColors":state="";break;case"BrtBeginMRUColors":state="MRUCOLORS";break;case"BrtEndMRUColors":state="";break;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;case"BrtBeginStyleSheetExt14":break;case"BrtBeginSlicerStyles":break;case"BrtEndSlicerStyles":break;case"BrtBeginTimelineStylesheetExt15":break;case"BrtEndTimelineStylesheetExt15":break;case"BrtBeginTimelineStyles":break;case"BrtEndTimelineStyles":break;case"BrtEndStyleSheetExt14":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return styles}function write_sty_bin(data,opts){var ba=buf_array();write_record(ba,"BrtBeginStyleSheet");write_record(ba,"BrtEndStyleSheet");return ba.end()}RELS.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function parse_clrScheme(t,opts){themes.themeElements.clrScheme=[];var color={};t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":if(y[0][1]==="/"){themes.themeElements.clrScheme.push(color);color={}}else{color.name=y[0].substring(3,y[0].length-1)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in clrScheme"}})}function parse_fontScheme(t,opts){}function parse_fmtScheme(t,opts){}var clrsregex=/]*)>[^\u2603]*<\/a:clrScheme>/;var fntsregex=/]*)>[^\u2603]*<\/a:fontScheme>/;var fmtsregex=/]*)>[^\u2603]*<\/a:fmtScheme>/;function parse_themeElements(data,opts){themes.themeElements={};var t;[["clrScheme",clrsregex,parse_clrScheme],["fontScheme",fntsregex,parse_fontScheme],["fmtScheme",fmtsregex,parse_fmtScheme]].forEach(function(m){if(!(t=data.match(m[1])))throw m[0]+" not found in themeElements";m[2](t,opts)})}var themeltregex=/]*)>[^\u2603]*<\/a:themeElements>/;function parse_theme_xml(data,opts){if(!data||data.length===0)return themes;var t;if(!(t=data.match(themeltregex)))throw"themeElements not found in theme";parse_themeElements(t[0],opts);return themes}function write_theme(){return'\n'}function parse_cc_xml(data,opts){var d=[];var l=0,i=1;(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":case"":break;case"thisCell.r)range.s.r=thisCell.r;if(range.e.rthisCell.c)range.s.c=thisCell.c;if(range.e.c/))return[];var authors=[];var commentList=[];data.match(/<(?:\w+:)?authors>([^\u2603]*)<\/(?:\w+:)?authors>/)[1].split(/<\/\w*:?author>/).forEach(function(x){if(x===""||x.trim()==="")return;authors.push(x.match(/<(?:\w+:)?author[^>]*>(.*)/)[1])});(data.match(/<(?:\w+:)?commentList>([^\u2603]*)<\/(?:\w+:)?commentList>/)||["",""])[1].split(/<\/\w*:?comment>/).forEach(function(x,index){if(x===""||x.trim()==="")return;var y=parsexmltag(x.match(/<(?:\w+:)?comment[^>]*>/)[0]);var comment={author:y.authorId&&authors[y.authorId]?authors[y.authorId]:undefined,ref:y.ref,guid:y.guid}; -var cell=decode_cell(y.ref);if(opts.sheetRows&&opts.sheetRows<=cell.r)return;var textMatch=x.match(/([^\u2603]*)<\/text>/);if(!textMatch||!textMatch[1])return;var rt=parse_si(textMatch[1]);comment.r=rt.r;comment.t=rt.t;if(opts.cellHTML)comment.h=rt.h;commentList.push(comment)});return commentList}function write_comments_xml(data,opts){}function parse_BrtBeginComment(data,length){var out={};out.iauthor=data.read_shift(4);var rfx=parse_UncheckedRfX(data,16);out.rfx=rfx.s;out.ref=encode_cell(rfx.s);data.l+=16;return out}var parse_BrtCommentAuthor=parse_XLWideString;var parse_BrtCommentText=parse_RichStr;function parse_comments_bin(data,opts){var out=[];var authors=[];var c={};var pass=false;recordhopper(data,function hopper_cmnt(val,R,RT){switch(R.n){case"BrtCommentAuthor":authors.push(val);break;case"BrtBeginComment":c=val;break;case"BrtCommentText":c.t=val.t;c.h=val.h;c.r=val.r;break;case"BrtEndComment":c.author=authors[c.iauthor];delete c.iauthor;if(opts.sheetRows&&opts.sheetRows<=c.rfx.r)break;delete c.rfx;out.push(c);break;case"BrtBeginComments":break;case"BrtEndComments":break;case"BrtBeginCommentAuthors":break;case"BrtEndCommentAuthors":break;case"BrtBeginCommentList":break;case"BrtEndCommentList":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return out}function write_comments_bin(data,opts){}function parse_CellParsedFormula(data,length){var cce=data.read_shift(4);return parsenoop(data,length-4)}var strs={};var _ssfopts={};RELS.WS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet";function get_sst_id(sst,str){for(var i=0,len=sst.length;i=0&&d.s.c>=0)ws["!ref"]=encode_range(d)}var mergecregex=//g;var sheetdataregex=/<(?:\w+:)?sheetData>([^\u2603]*)<\/(?:\w+:)?sheetData>/;var hlinkregex=/]*\/>/g;var dimregex=/"(\w*:\w*)"/;var colregex=/]*\/>/g;function parse_ws_xml(data,opts,rels){if(!data)return data;var s={};var ridx=data.indexOf("0){var ref=data.substr(ridx,50).match(dimregex);if(ref!=null)parse_ws_xml_dim(s,ref[1])}var mergecells=[];if(data.indexOf("")!==-1){var merges=data.match(mergecregex);for(ridx=0;ridx!=merges.length;++ridx)mergecells[ridx]=safe_decode_range(merges[ridx].substr(merges[ridx].indexOf('"')+1))}var columns=[];if(opts.cellStyles&&data.indexOf("")!==-1){var cols=data.match(colregex);parse_ws_xml_cols(columns,cols)}var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var mtch=data.match(sheetdataregex);if(mtch)parse_ws_xml_data(mtch[1],s,opts,refguess);if(data.indexOf("")!==-1)parse_ws_xml_hlinks(s,data.match(hlinkregex),rels);if(!s["!ref"]&&refguess.e.c>=refguess.s.c&&refguess.e.r>=refguess.s.r)s["!ref"]=encode_range(refguess);if(opts.sheetRows>0&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.rrefguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c0)s["!merges"]=mergecells;if(columns.length>0)s["!cols"]=columns;return s}function write_ws_xml_merges(merges){if(merges.length==0)return"";var o='';for(var i=0;i!=merges.length;++i)o+='';return o+""}function parse_ws_xml_hlinks(s,data,rels){for(var i=0;i!=data.length;++i){var val=parsexmltag(data[i],true);if(!val.ref)return;var rel=rels["!id"][val.id];if(rel){val.Target=rel.Target;if(val.location)val.Target+="#"+val.location;val.Rel=rel}var rng=safe_decode_range(val.ref);for(var R=rng.s.r;R<=rng.e.r;++R)for(var C=rng.s.c;C<=rng.e.c;++C){var addr=encode_cell({c:C,r:R});if(!s[addr])s[addr]={t:"stub",v:undefined};s[addr].l=val}}}function parse_ws_xml_cols(columns,cols){var seencol=false;for(var coli=0;coli!=cols.length;++coli){var coll=parsexmltag(cols[coli],true);var colm=parseInt(coll.min,10)-1,colM=parseInt(coll.max,10)-1;delete coll.min;delete coll.max;if(!seencol&&coll.width){seencol=true;find_mdw(+coll.width,coll)}if(coll.width){coll.wpx=width2px(+coll.width);coll.wch=px2char(coll.wpx);coll.MDW=MDW}while(colm<=colM)columns[colm++]=coll}}function write_ws_xml_cols(ws,cols){var o=[""],col,width;for(var i=0;i!=cols.length;++i){if(!(col=cols[i]))continue;var p={min:i+1,max:i+1};width=-1;if(col.wpx)width=px2char(col.wpx);else if(col.wch)width=col.wch;if(width>-1){p.width=char2width(width);p.customWidth=1}o[o.length]=writextag("col",null,p)}o[o.length]="";return o.join("")}function write_ws_xml_cell(cell,ref,ws,opts,idx,wb){if(cell.v===undefined)return"";var vv="";var oldt=cell.t,oldv=cell.v;switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":vv=""+cell.v;break;case"e":vv=BErr[cell.v];break;case"d":if(opts.cellDates)vv=new Date(cell.v).toISOString();else{cell.t="n";vv=""+(cell.v=datenum(cell.v));if(typeof cell.z==="undefined")cell.z=SSF._table[14]}break;default:vv=cell.v;break}var v=writetag("v",escapexml(vv)),o={r:ref};var os=get_cell_style(opts.cellXfs,cell,opts);if(os!==0)o.s=os;switch(cell.t){case"n":break;case"d":o.t="d";break;case"b":o.t="b";break;case"e":o.t="e";break;default:if(opts.bookSST){v=writetag("v",""+get_sst_id(opts.Strings,cell.v));o.t="s";break}o.t="str";break}if(cell.t!=oldt){cell.t=oldt;cell.v=oldv}return writextag("c",v,o)}var parse_ws_xml_data=function parse_ws_xml_data_factory(){var cellregex=/<(?:\w+:)?c[ >]/,rowregex=/<\/(?:\w+:)?row>/;var rregex=/r=["']([^"']*)["']/,isregex=/([\S\s]*?)<\/is>/;var match_v=matchtag("v"),match_f=matchtag("f");return function parse_ws_xml_data(sdata,s,opts,guess){var ri=0,x="",cells=[],cref=[],idx=0,i=0,cc=0,d="",p;var tag,tagr=0,tagc=0;var sstr;var fmtid=0,fillid=0,do_format=Array.isArray(styles.CellXf),cf;for(var marr=sdata.split(rowregex),mt=0,marrlen=marr.length;mt!=marrlen;++mt){x=marr[mt].trim();var xlen=x.length;if(xlen===0)continue;for(ri=0;ritagr-1)guess.s.r=tagr-1;if(guess.e.r":"")+x;if(cref!==null&&cref.length===2){idx=0;d=cref[1];for(i=0;i!=d.length;++i){if((cc=d.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}--idx;tagc=idx}else++tagc;for(i=0;i!=x.length;++i)if(x.charCodeAt(i)===62)break;++i;tag=parsexmltag(x.substr(0,i),true);if(!tag.r)tag.r=utils.encode_cell({r:tagr-1,c:tagc});d=x.substr(i);p={t:""};if((cref=d.match(match_v))!==null&&cref[1]!=="")p.v=unescapexml(cref[1]);if(opts.cellFormula&&(cref=d.match(match_f))!==null)p.f=unescapexml(cref[1]);if(tag.t===undefined&&p.v===undefined){if(!opts.sheetStubs)continue;p.t="stub"}else p.t=tag.t||"n";if(guess.s.c>idx)guess.s.c=idx;if(guess.e.c0)o[o.length]=writextag("row",r.join(""),{r:rr})}return o.join("")}var WS_XML_ROOT=writextag("worksheet",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function write_ws_xml(idx,opts,wb){var o=[XML_HEADER,WS_XML_ROOT];var s=wb.SheetNames[idx],sidx=0,rdata="";var ws=wb.Sheets[s];if(ws===undefined)ws={};var ref=ws["!ref"];if(ref===undefined)ref="A1";o[o.length]=writextag("dimension",null,{ref:ref});if(ws["!cols"]!==undefined&&ws["!cols"].length>0)o[o.length]=write_ws_xml_cols(ws,ws["!cols"]);o[sidx=o.length]="";if(ws["!ref"]!==undefined){rdata=write_ws_xml_data(ws,opts,idx,wb);if(rdata.length>0)o[o.length]=rdata}if(o.length>sidx+1){o[o.length]="";o[sidx]=o[sidx].replace("/>",">")}if(ws["!merges"]!==undefined&&ws["!merges"].length>0)o[o.length]=write_ws_xml_merges(ws["!merges"]);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtRowHdr(data,length){var z=[];z.r=data.read_shift(4);data.l+=length-4;return z}var parse_BrtWsDim=parse_UncheckedRfX;var write_BrtWsDim=write_UncheckedRfX;function parse_BrtWsProp(data,length){var z={};data.l+=19;z.name=parse_CodeName(data,length-19);return z}function parse_BrtCellBlank(data,length){var cell=parse_Cell(data);return[cell]}function write_BrtCellBlank(cell,val,o){if(o==null)o=new_buf(8);return write_Cell(val,o)}function parse_BrtCellBool(data,length){var cell=parse_Cell(data);var fBool=data.read_shift(1);return[cell,fBool,"b"]}function parse_BrtCellError(data,length){var cell=parse_Cell(data);var fBool=data.read_shift(1);return[cell,fBool,"e"]}function parse_BrtCellIsst(data,length){var cell=parse_Cell(data);var isst=data.read_shift(4);return[cell,isst,"s"]}function parse_BrtCellReal(data,length){var cell=parse_Cell(data);var value=parse_Xnum(data);return[cell,value,"n"]}function parse_BrtCellRk(data,length){var cell=parse_Cell(data);var value=parse_RkNumber(data);return[cell,value,"n"]}function parse_BrtCellSt(data,length){var cell=parse_Cell(data);var value=parse_XLWideString(data);return[cell,value,"str"]}function parse_BrtFmlaBool(data,length,opts){var cell=parse_Cell(data);var value=data.read_shift(1);var o=[cell,value,"b"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaError(data,length,opts){var cell=parse_Cell(data);var value=data.read_shift(1);var o=[cell,value,"e"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaNum(data,length,opts){var cell=parse_Cell(data);var value=parse_Xnum(data);var o=[cell,value,"n"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-16);o[3]=""}else data.l+=length-16;return o}function parse_BrtFmlaString(data,length,opts){var start=data.l;var cell=parse_Cell(data);var value=parse_XLWideString(data);var o=[cell,value,"str"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,start+length-data.l)}else data.l=start+length;return o}var parse_BrtMergeCell=parse_UncheckedRfX;function parse_BrtHLink(data,length,opts){var end=data.l+length;var rfx=parse_UncheckedRfX(data,16);var relId=parse_XLNullableWideString(data);var loc=parse_XLWideString(data);var tooltip=parse_XLWideString(data);var display=parse_XLWideString(data);data.l=end;return{rfx:rfx,relId:relId,loc:loc,tooltip:tooltip,display:display}}function parse_ws_bin(data,opts,rels){if(!data)return data;if(!rels)rels={"!id":{}};var s={};var ref;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var pass=false,end=false;var row,p,cf,R,C,addr,sstr,rr;var mergecells=[];recordhopper(data,function ws_parse(val,R){if(end)return;switch(R.n){case"BrtWsDim":ref=val;break;case"BrtRowHdr":row=val;if(opts.sheetRows&&opts.sheetRows<=row.r)end=true;rr=encode_row(row.r);break;case"BrtFmlaBool":case"BrtFmlaError":case"BrtFmlaNum":case"BrtFmlaString":case"BrtCellBool":case"BrtCellError":case"BrtCellIsst":case"BrtCellReal":case"BrtCellRk":case"BrtCellSt":p={t:val[2]};switch(val[2]){case"n":p.v=val[1];break;case"s":sstr=strs[val[1]];p.v=sstr.t;p.r=sstr.r;break;case"b":p.v=val[1]?true:false;break;case"e":p.v=val[1];p.w=BErr[p.v];break;case"str":p.t="s";p.v=utf8read(val[1]);break}if(opts.cellFormula&&val.length>3)p.f=val[3];if(cf=styles.CellXf[val[0].iStyleRef])safe_format(p,cf.ifmt,null,opts);s[encode_col(C=val[0].c)+rr]=p;if(refguess.s.r>row.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.rrow.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.r0||ref.e.c>0||ref.s.r>0||ref.s.c>0))s["!ref"]=encode_range(ref);if(opts.sheetRows&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.rrefguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c0)s["!merges"]=mergecells;return s}function write_ws_bin_cell(ba,cell,R,C,opts){if(cell.v===undefined)return"";var vv="";switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":case"e":vv=""+cell.v;break;default:vv=cell.v;break}var o={r:R,c:C};o.s=get_cell_style(opts.cellXfs,cell,opts);switch(cell.t){case"s":case"str":if(opts.bookSST){vv=get_sst_id(opts.Strings,cell.v);o.t="s";break}o.t="str";break;case"n":break;case"b":o.t="b";break;case"e":o.t="e";break}write_record(ba,"BrtCellBlank",write_BrtCellBlank(cell,o))}function write_CELLTABLE(ba,ws,idx,opts,wb){var range=safe_decode_range(ws["!ref"]||"A1"),ref,rr="",cols=[];write_record(ba,"BrtBeginSheetData");for(var R=range.s.r;R<=range.e.r;++R){rr=encode_row(R);for(var C=range.s.c;C<=range.e.c;++C){if(R===range.s.r)cols[C]=encode_col(C);ref=cols[C]+rr;if(!ws[ref])continue;write_ws_bin_cell(ba,ws[ref],R,C,opts)}}write_record(ba,"BrtEndSheetData")}function write_ws_bin(idx,opts,wb){var ba=buf_array();var s=wb.SheetNames[idx],ws=wb.Sheets[s]||{};var r=safe_decode_range(ws["!ref"]||"A1");write_record(ba,"BrtBeginSheet");write_record(ba,"BrtWsDim",write_BrtWsDim(r));write_CELLTABLE(ba,ws,idx,opts,wb);write_record(ba,"BrtEndSheet");return ba.end()}var WBPropsDef=[["allowRefreshQuery","0"],["autoCompressPictures","1"],["backupFile","0"],["checkCompatibility","0"],["codeName",""],["date1904","0"],["dateCompatibility","1"],["filterPrivacy","0"],["hidePivotFieldList","0"],["promptedSolutions","0"],["publishItems","0"],["refreshAllConnections",false],["saveExternalLinkValues","1"],["showBorderUnselectedTables","1"],["showInkAnnotation","1"],["showObjects","all"],["showPivotChartFilter","0"]];var WBViewDef=[["activeTab","0"],["autoFilterDateGrouping","1"],["firstSheet","0"],["minimized","0"],["showHorizontalScroll","1"],["showSheetTabs","1"],["showVerticalScroll","1"],["tabRatio","600"],["visibility","visible"]];var SheetDef=[["state","visible"]];var CalcPrDef=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var CustomWBViewDef=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function push_defaults_array(target,defaults){for(var j=0;j!=target.length;++j){var w=target[j];for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(w[z[0]]==null)w[z[0]]=z[1]}}}function push_defaults(target,defaults){for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(target[z[0]]==null)target[z[0]]=z[1]}}function parse_wb_defaults(wb){push_defaults(wb.WBProps,WBPropsDef);push_defaults(wb.CalcPr,CalcPrDef);push_defaults_array(wb.WBView,WBViewDef);push_defaults_array(wb.Sheets,SheetDef);_ssfopts.date1904=parsexmlbool(wb.WBProps.date1904,"date1904")}var wbnsregex=/<\w+:workbook/;function parse_wb_xml(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,xmlns="xmlns";data.match(tagregex).forEach(function xml_wb(x){var y=parsexmltag(x);switch(strip_ns(y[0])){case"":break;case"":break;case"":break;case"":delete y[0];wb.WBProps=y;break;case"":break;case"":case"":break;case"":case"":break;case"":break;case"":case"":break;case"":break;case"":case"":pass=false;break;case"":case"":break;case"":delete y[0];wb.CalcPr=y;break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":break;case"":break;case"":case"":break;case"":case"":case"":break;case"":pass=false;break;case"":pass=false;break;default:if(!pass&&opts.WTF)throw"unrecognized "+y[0]+" in workbook"}});if(XMLNS.main.indexOf(wb.xmlns)===-1)throw new Error("Unknown Namespace: "+wb.xmlns);parse_wb_defaults(wb);return wb}var WB_XML_ROOT=writextag("workbook",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function safe1904(wb){try{return parsexmlbool(wb.Workbook.WBProps.date1904)?"true":"false"}catch(e){return"false"}}function write_wb_xml(wb,opts){var o=[XML_HEADER];o[o.length]=WB_XML_ROOT;o[o.length]=writextag("workbookPr",null,{date1904:safe1904(wb)});o[o.length]="";for(var i=0;i!=wb.SheetNames.length;++i)o[o.length]=writextag("sheet",null,{name:wb.SheetNames[i].substr(0,31),sheetId:""+(i+1),"r:id":"rId"+(i+1)});o[o.length]="";if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBundleSh(data,length){var z={};z.hsState=data.read_shift(4);z.iTabID=data.read_shift(4);z.strRelID=parse_RelID(data,length-8);z.name=parse_XLWideString(data);return z}function write_BrtBundleSh(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.hsState);o.write_shift(4,data.iTabID);write_RelID(data.strRelID,o);write_XLWideString(data.name.substr(0,31),o);return o}function parse_BrtWbProp(data,length){data.read_shift(4);var dwThemeVersion=data.read_shift(4);var strName=length>8?parse_XLWideString(data):"";return[dwThemeVersion,strName]}function write_BrtWbProp(data,o){if(!o)o=new_buf(8);o.write_shift(4,0);o.write_shift(4,0);return o}function parse_BrtFRTArchID$(data,length){var o={};data.read_shift(4);o.ArchID=data.read_shift(4);data.l+=length-8;return o}function parse_wb_bin(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,z;recordhopper(data,function hopper_wb(val,R){switch(R.n){case"BrtBundleSh":wb.Sheets.push(val);break;case"BrtBeginBook":break;case"BrtFileVersion":break;case"BrtWbProp":break;case"BrtACBegin":break;case"BrtAbsPath15":break;case"BrtACEnd":break;case"BrtWbFactoid":break;case"BrtBookProtection":break;case"BrtBeginBookViews":break;case"BrtBookView":break;case"BrtEndBookViews":break;case"BrtBeginBundleShs":break;case"BrtEndBundleShs":break;case"BrtBeginFnGroup":break;case"BrtEndFnGroup":break;case"BrtBeginExternals":break;case"BrtSupSelf":break;case"BrtSupBookSrc":break;case"BrtExternSheet":break;case"BrtEndExternals":break;case"BrtName":break;case"BrtCalcProp":break;case"BrtUserBookView":break;case"BrtBeginPivotCacheIDs":break;case"BrtBeginPivotCacheID":break;case"BrtEndPivotCacheID":break;case"BrtEndPivotCacheIDs":break;case"BrtWebOpt":break;case"BrtFileRecover":break;case"BrtFileSharing":break;case"BrtBeginSmartTagTypes":break;case"BrtSmartTagType":break;case"BrtEndSmartTagTypes":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTArchID$":break;case"BrtWorkBookPr15":break;case"BrtFRTEnd":pass=false;break;case"BrtEndBook":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}});parse_wb_defaults(wb);return wb}function write_BUNDLESHS(ba,wb,opts){write_record(ba,"BrtBeginBundleShs");for(var idx=0;idx!=wb.SheetNames.length;++idx){var d={hsState:0,iTabID:idx+1,strRelID:"rId"+(idx+1),name:wb.SheetNames[idx]};write_record(ba,"BrtBundleSh",write_BrtBundleSh(d))}write_record(ba,"BrtEndBundleShs")}function write_BrtFileVersion(data,o){if(!o)o=new_buf(127);for(var i=0;i!=4;++i)o.write_shift(4,0);write_XLWideString("SheetJS",o);write_XLWideString(XLSX.version,o);write_XLWideString(XLSX.version,o);write_XLWideString("7262",o);o.length=o.l;return o}function write_BOOKVIEWS(ba,wb,opts){write_record(ba,"BrtBeginBookViews");write_record(ba,"BrtEndBookViews")}function write_BrtCalcProp(data,o){if(!o)o=new_buf(26);o.write_shift(4,0);o.write_shift(4,1);o.write_shift(4,0);write_Xnum(0,o);o.write_shift(-4,1023);o.write_shift(1,51);o.write_shift(1,0);return o}function write_BrtFileRecover(data,o){if(!o)o=new_buf(1);o.write_shift(1,0);return o}function write_wb_bin(wb,opts){var ba=buf_array();write_record(ba,"BrtBeginBook");write_record(ba,"BrtFileVersion",write_BrtFileVersion());write_record(ba,"BrtWbProp",write_BrtWbProp());write_BOOKVIEWS(ba,wb,opts);write_BUNDLESHS(ba,wb,opts);write_record(ba,"BrtCalcProp",write_BrtCalcProp());write_record(ba,"BrtFileRecover",write_BrtFileRecover());write_record(ba,"BrtEndBook");return ba.end()}function parse_wb(data,name,opts){return(name.substr(-4)===".bin"?parse_wb_bin:parse_wb_xml)(data,opts)}function parse_ws(data,name,opts,rels){return(name.substr(-4)===".bin"?parse_ws_bin:parse_ws_xml)(data,opts,rels)}function parse_sty(data,name,opts){return(name.substr(-4)===".bin"?parse_sty_bin:parse_sty_xml)(data,opts)}function parse_theme(data,name,opts){return parse_theme_xml(data,opts)}function parse_sst(data,name,opts){return(name.substr(-4)===".bin"?parse_sst_bin:parse_sst_xml)(data,opts)}function parse_cmnt(data,name,opts){return(name.substr(-4)===".bin"?parse_comments_bin:parse_comments_xml)(data,opts)}function parse_cc(data,name,opts){return(name.substr(-4)===".bin"?parse_cc_bin:parse_cc_xml)(data,opts)}function write_wb(wb,name,opts){return(name.substr(-4)===".bin"?write_wb_bin:write_wb_xml)(wb,opts)}function write_ws(data,name,opts,wb){return(name.substr(-4)===".bin"?write_ws_bin:write_ws_xml)(data,opts,wb)}function write_sty(data,name,opts){return(name.substr(-4)===".bin"?write_sty_bin:write_sty_xml)(data,opts)}function write_sst(data,name,opts){return(name.substr(-4)===".bin"?write_sst_bin:write_sst_xml)(data,opts)}var RecordEnum={0:{n:"BrtRowHdr",f:parse_BrtRowHdr},1:{n:"BrtCellBlank",f:parse_BrtCellBlank},2:{n:"BrtCellRk",f:parse_BrtCellRk},3:{n:"BrtCellError",f:parse_BrtCellError},4:{n:"BrtCellBool",f:parse_BrtCellBool},5:{n:"BrtCellReal",f:parse_BrtCellReal},6:{n:"BrtCellSt",f:parse_BrtCellSt},7:{n:"BrtCellIsst",f:parse_BrtCellIsst},8:{n:"BrtFmlaString",f:parse_BrtFmlaString},9:{n:"BrtFmlaNum",f:parse_BrtFmlaNum},10:{n:"BrtFmlaBool",f:parse_BrtFmlaBool},11:{n:"BrtFmlaError",f:parse_BrtFmlaError},16:{n:"BrtFRTArchID$",f:parse_BrtFRTArchID$},19:{n:"BrtSSTItem",f:parse_RichStr},20:{n:"BrtPCDIMissing",f:parsenoop},21:{n:"BrtPCDINumber",f:parsenoop},22:{n:"BrtPCDIBoolean",f:parsenoop},23:{n:"BrtPCDIError",f:parsenoop},24:{n:"BrtPCDIString",f:parsenoop},25:{n:"BrtPCDIDatetime",f:parsenoop},26:{n:"BrtPCDIIndex",f:parsenoop},27:{n:"BrtPCDIAMissing",f:parsenoop},28:{n:"BrtPCDIANumber",f:parsenoop},29:{n:"BrtPCDIABoolean",f:parsenoop},30:{n:"BrtPCDIAError",f:parsenoop},31:{n:"BrtPCDIAString",f:parsenoop},32:{n:"BrtPCDIADatetime",f:parsenoop},33:{n:"BrtPCRRecord",f:parsenoop},34:{n:"BrtPCRRecordDt",f:parsenoop},35:{n:"BrtFRTBegin",f:parsenoop},36:{n:"BrtFRTEnd",f:parsenoop},37:{n:"BrtACBegin",f:parsenoop},38:{n:"BrtACEnd",f:parsenoop},39:{n:"BrtName",f:parsenoop},40:{n:"BrtIndexRowBlock",f:parsenoop},42:{n:"BrtIndexBlock",f:parsenoop},43:{n:"BrtFont",f:parse_BrtFont},44:{n:"BrtFmt",f:parse_BrtFmt},45:{n:"BrtFill",f:parsenoop},46:{n:"BrtBorder",f:parsenoop},47:{n:"BrtXF",f:parse_BrtXF},48:{n:"BrtStyle",f:parsenoop},49:{n:"BrtCellMeta",f:parsenoop},50:{n:"BrtValueMeta",f:parsenoop},51:{n:"BrtMdb",f:parsenoop},52:{n:"BrtBeginFmd",f:parsenoop},53:{n:"BrtEndFmd",f:parsenoop},54:{n:"BrtBeginMdx",f:parsenoop},55:{n:"BrtEndMdx",f:parsenoop},56:{n:"BrtBeginMdxTuple",f:parsenoop},57:{n:"BrtEndMdxTuple",f:parsenoop},58:{n:"BrtMdxMbrIstr",f:parsenoop},59:{n:"BrtStr",f:parsenoop},60:{n:"BrtColInfo",f:parsenoop},62:{n:"BrtCellRString",f:parsenoop},63:{n:"BrtCalcChainItem$",f:parse_BrtCalcChainItem$},64:{n:"BrtDVal",f:parsenoop},65:{n:"BrtSxvcellNum",f:parsenoop},66:{n:"BrtSxvcellStr",f:parsenoop},67:{n:"BrtSxvcellBool",f:parsenoop},68:{n:"BrtSxvcellErr",f:parsenoop},69:{n:"BrtSxvcellDate",f:parsenoop},70:{n:"BrtSxvcellNil",f:parsenoop},128:{n:"BrtFileVersion",f:parsenoop},129:{n:"BrtBeginSheet",f:parsenoop},130:{n:"BrtEndSheet",f:parsenoop},131:{n:"BrtBeginBook",f:parsenoop,p:0},132:{n:"BrtEndBook",f:parsenoop},133:{n:"BrtBeginWsViews",f:parsenoop},134:{n:"BrtEndWsViews",f:parsenoop},135:{n:"BrtBeginBookViews",f:parsenoop},136:{n:"BrtEndBookViews",f:parsenoop},137:{n:"BrtBeginWsView",f:parsenoop},138:{n:"BrtEndWsView",f:parsenoop},139:{n:"BrtBeginCsViews",f:parsenoop},140:{n:"BrtEndCsViews",f:parsenoop},141:{n:"BrtBeginCsView",f:parsenoop},142:{n:"BrtEndCsView",f:parsenoop},143:{n:"BrtBeginBundleShs",f:parsenoop},144:{n:"BrtEndBundleShs",f:parsenoop},145:{n:"BrtBeginSheetData",f:parsenoop},146:{n:"BrtEndSheetData",f:parsenoop},147:{n:"BrtWsProp",f:parse_BrtWsProp},148:{n:"BrtWsDim",f:parse_BrtWsDim,p:16},151:{n:"BrtPane",f:parsenoop},152:{n:"BrtSel",f:parsenoop},153:{n:"BrtWbProp",f:parse_BrtWbProp},154:{n:"BrtWbFactoid",f:parsenoop},155:{n:"BrtFileRecover",f:parsenoop},156:{n:"BrtBundleSh",f:parse_BrtBundleSh},157:{n:"BrtCalcProp",f:parsenoop},158:{n:"BrtBookView",f:parsenoop},159:{n:"BrtBeginSst",f:parse_BrtBeginSst},160:{n:"BrtEndSst",f:parsenoop},161:{n:"BrtBeginAFilter",f:parsenoop},162:{n:"BrtEndAFilter",f:parsenoop},163:{n:"BrtBeginFilterColumn",f:parsenoop},164:{n:"BrtEndFilterColumn",f:parsenoop},165:{n:"BrtBeginFilters",f:parsenoop},166:{n:"BrtEndFilters",f:parsenoop},167:{n:"BrtFilter",f:parsenoop},168:{n:"BrtColorFilter",f:parsenoop},169:{n:"BrtIconFilter",f:parsenoop},170:{n:"BrtTop10Filter",f:parsenoop},171:{n:"BrtDynamicFilter",f:parsenoop},172:{n:"BrtBeginCustomFilters",f:parsenoop},173:{n:"BrtEndCustomFilters",f:parsenoop},174:{n:"BrtCustomFilter",f:parsenoop},175:{n:"BrtAFilterDateGroupItem",f:parsenoop},176:{n:"BrtMergeCell",f:parse_BrtMergeCell},177:{n:"BrtBeginMergeCells",f:parsenoop},178:{n:"BrtEndMergeCells",f:parsenoop},179:{n:"BrtBeginPivotCacheDef",f:parsenoop},180:{n:"BrtEndPivotCacheDef",f:parsenoop},181:{n:"BrtBeginPCDFields",f:parsenoop},182:{n:"BrtEndPCDFields",f:parsenoop},183:{n:"BrtBeginPCDField",f:parsenoop},184:{n:"BrtEndPCDField",f:parsenoop},185:{n:"BrtBeginPCDSource",f:parsenoop},186:{n:"BrtEndPCDSource",f:parsenoop},187:{n:"BrtBeginPCDSRange",f:parsenoop},188:{n:"BrtEndPCDSRange",f:parsenoop},189:{n:"BrtBeginPCDFAtbl",f:parsenoop},190:{n:"BrtEndPCDFAtbl",f:parsenoop},191:{n:"BrtBeginPCDIRun",f:parsenoop},192:{n:"BrtEndPCDIRun",f:parsenoop},193:{n:"BrtBeginPivotCacheRecords",f:parsenoop},194:{n:"BrtEndPivotCacheRecords",f:parsenoop},195:{n:"BrtBeginPCDHierarchies",f:parsenoop},196:{n:"BrtEndPCDHierarchies",f:parsenoop},197:{n:"BrtBeginPCDHierarchy",f:parsenoop},198:{n:"BrtEndPCDHierarchy",f:parsenoop},199:{n:"BrtBeginPCDHFieldsUsage",f:parsenoop},200:{n:"BrtEndPCDHFieldsUsage",f:parsenoop},201:{n:"BrtBeginExtConnection",f:parsenoop},202:{n:"BrtEndExtConnection",f:parsenoop},203:{n:"BrtBeginECDbProps",f:parsenoop},204:{n:"BrtEndECDbProps",f:parsenoop},205:{n:"BrtBeginECOlapProps",f:parsenoop},206:{n:"BrtEndECOlapProps",f:parsenoop},207:{n:"BrtBeginPCDSConsol",f:parsenoop},208:{n:"BrtEndPCDSConsol",f:parsenoop},209:{n:"BrtBeginPCDSCPages",f:parsenoop},210:{n:"BrtEndPCDSCPages",f:parsenoop},211:{n:"BrtBeginPCDSCPage",f:parsenoop},212:{n:"BrtEndPCDSCPage",f:parsenoop},213:{n:"BrtBeginPCDSCPItem",f:parsenoop},214:{n:"BrtEndPCDSCPItem",f:parsenoop},215:{n:"BrtBeginPCDSCSets",f:parsenoop},216:{n:"BrtEndPCDSCSets",f:parsenoop},217:{n:"BrtBeginPCDSCSet",f:parsenoop},218:{n:"BrtEndPCDSCSet",f:parsenoop},219:{n:"BrtBeginPCDFGroup",f:parsenoop},220:{n:"BrtEndPCDFGroup",f:parsenoop},221:{n:"BrtBeginPCDFGItems",f:parsenoop},222:{n:"BrtEndPCDFGItems",f:parsenoop},223:{n:"BrtBeginPCDFGRange",f:parsenoop},224:{n:"BrtEndPCDFGRange",f:parsenoop},225:{n:"BrtBeginPCDFGDiscrete",f:parsenoop},226:{n:"BrtEndPCDFGDiscrete",f:parsenoop},227:{n:"BrtBeginPCDSDTupleCache",f:parsenoop},228:{n:"BrtEndPCDSDTupleCache",f:parsenoop},229:{n:"BrtBeginPCDSDTCEntries",f:parsenoop},230:{n:"BrtEndPCDSDTCEntries",f:parsenoop},231:{n:"BrtBeginPCDSDTCEMembers",f:parsenoop},232:{n:"BrtEndPCDSDTCEMembers",f:parsenoop},233:{n:"BrtBeginPCDSDTCEMember",f:parsenoop},234:{n:"BrtEndPCDSDTCEMember",f:parsenoop},235:{n:"BrtBeginPCDSDTCQueries",f:parsenoop},236:{n:"BrtEndPCDSDTCQueries",f:parsenoop},237:{n:"BrtBeginPCDSDTCQuery",f:parsenoop},238:{n:"BrtEndPCDSDTCQuery",f:parsenoop},239:{n:"BrtBeginPCDSDTCSets",f:parsenoop},240:{n:"BrtEndPCDSDTCSets",f:parsenoop},241:{n:"BrtBeginPCDSDTCSet",f:parsenoop},242:{n:"BrtEndPCDSDTCSet",f:parsenoop},243:{n:"BrtBeginPCDCalcItems",f:parsenoop},244:{n:"BrtEndPCDCalcItems",f:parsenoop},245:{n:"BrtBeginPCDCalcItem",f:parsenoop},246:{n:"BrtEndPCDCalcItem",f:parsenoop},247:{n:"BrtBeginPRule",f:parsenoop},248:{n:"BrtEndPRule",f:parsenoop},249:{n:"BrtBeginPRFilters",f:parsenoop},250:{n:"BrtEndPRFilters",f:parsenoop},251:{n:"BrtBeginPRFilter",f:parsenoop},252:{n:"BrtEndPRFilter",f:parsenoop},253:{n:"BrtBeginPNames",f:parsenoop},254:{n:"BrtEndPNames",f:parsenoop},255:{n:"BrtBeginPName",f:parsenoop},256:{n:"BrtEndPName",f:parsenoop},257:{n:"BrtBeginPNPairs",f:parsenoop},258:{n:"BrtEndPNPairs",f:parsenoop},259:{n:"BrtBeginPNPair",f:parsenoop},260:{n:"BrtEndPNPair",f:parsenoop},261:{n:"BrtBeginECWebProps",f:parsenoop},262:{n:"BrtEndECWebProps",f:parsenoop},263:{n:"BrtBeginEcWpTables",f:parsenoop},264:{n:"BrtEndECWPTables",f:parsenoop},265:{n:"BrtBeginECParams",f:parsenoop},266:{n:"BrtEndECParams",f:parsenoop},267:{n:"BrtBeginECParam",f:parsenoop},268:{n:"BrtEndECParam",f:parsenoop},269:{n:"BrtBeginPCDKPIs",f:parsenoop},270:{n:"BrtEndPCDKPIs",f:parsenoop},271:{n:"BrtBeginPCDKPI",f:parsenoop},272:{n:"BrtEndPCDKPI",f:parsenoop},273:{n:"BrtBeginDims",f:parsenoop},274:{n:"BrtEndDims",f:parsenoop},275:{n:"BrtBeginDim",f:parsenoop},276:{n:"BrtEndDim",f:parsenoop},277:{n:"BrtIndexPartEnd",f:parsenoop},278:{n:"BrtBeginStyleSheet",f:parsenoop},279:{n:"BrtEndStyleSheet",f:parsenoop},280:{n:"BrtBeginSXView",f:parsenoop},281:{n:"BrtEndSXVI",f:parsenoop},282:{n:"BrtBeginSXVI",f:parsenoop},283:{n:"BrtBeginSXVIs",f:parsenoop},284:{n:"BrtEndSXVIs",f:parsenoop},285:{n:"BrtBeginSXVD",f:parsenoop},286:{n:"BrtEndSXVD",f:parsenoop},287:{n:"BrtBeginSXVDs",f:parsenoop},288:{n:"BrtEndSXVDs",f:parsenoop},289:{n:"BrtBeginSXPI",f:parsenoop},290:{n:"BrtEndSXPI",f:parsenoop},291:{n:"BrtBeginSXPIs",f:parsenoop},292:{n:"BrtEndSXPIs",f:parsenoop},293:{n:"BrtBeginSXDI",f:parsenoop},294:{n:"BrtEndSXDI",f:parsenoop},295:{n:"BrtBeginSXDIs",f:parsenoop},296:{n:"BrtEndSXDIs",f:parsenoop},297:{n:"BrtBeginSXLI",f:parsenoop},298:{n:"BrtEndSXLI",f:parsenoop},299:{n:"BrtBeginSXLIRws",f:parsenoop},300:{n:"BrtEndSXLIRws",f:parsenoop},301:{n:"BrtBeginSXLICols",f:parsenoop},302:{n:"BrtEndSXLICols",f:parsenoop},303:{n:"BrtBeginSXFormat",f:parsenoop},304:{n:"BrtEndSXFormat",f:parsenoop},305:{n:"BrtBeginSXFormats",f:parsenoop},306:{n:"BrtEndSxFormats",f:parsenoop},307:{n:"BrtBeginSxSelect",f:parsenoop},308:{n:"BrtEndSxSelect",f:parsenoop},309:{n:"BrtBeginISXVDRws",f:parsenoop},310:{n:"BrtEndISXVDRws",f:parsenoop},311:{n:"BrtBeginISXVDCols",f:parsenoop},312:{n:"BrtEndISXVDCols",f:parsenoop},313:{n:"BrtEndSXLocation",f:parsenoop},314:{n:"BrtBeginSXLocation",f:parsenoop},315:{n:"BrtEndSXView",f:parsenoop},316:{n:"BrtBeginSXTHs",f:parsenoop},317:{n:"BrtEndSXTHs",f:parsenoop},318:{n:"BrtBeginSXTH",f:parsenoop},319:{n:"BrtEndSXTH",f:parsenoop},320:{n:"BrtBeginISXTHRws",f:parsenoop},321:{n:"BrtEndISXTHRws",f:parsenoop},322:{n:"BrtBeginISXTHCols",f:parsenoop},323:{n:"BrtEndISXTHCols",f:parsenoop},324:{n:"BrtBeginSXTDMPS",f:parsenoop},325:{n:"BrtEndSXTDMPs",f:parsenoop},326:{n:"BrtBeginSXTDMP",f:parsenoop},327:{n:"BrtEndSXTDMP",f:parsenoop},328:{n:"BrtBeginSXTHItems",f:parsenoop},329:{n:"BrtEndSXTHItems",f:parsenoop},330:{n:"BrtBeginSXTHItem",f:parsenoop},331:{n:"BrtEndSXTHItem",f:parsenoop},332:{n:"BrtBeginMetadata",f:parsenoop},333:{n:"BrtEndMetadata",f:parsenoop},334:{n:"BrtBeginEsmdtinfo",f:parsenoop},335:{n:"BrtMdtinfo",f:parsenoop},336:{n:"BrtEndEsmdtinfo",f:parsenoop},337:{n:"BrtBeginEsmdb",f:parsenoop},338:{n:"BrtEndEsmdb",f:parsenoop},339:{n:"BrtBeginEsfmd",f:parsenoop},340:{n:"BrtEndEsfmd",f:parsenoop},341:{n:"BrtBeginSingleCells",f:parsenoop},342:{n:"BrtEndSingleCells",f:parsenoop},343:{n:"BrtBeginList",f:parsenoop},344:{n:"BrtEndList",f:parsenoop},345:{n:"BrtBeginListCols",f:parsenoop},346:{n:"BrtEndListCols",f:parsenoop},347:{n:"BrtBeginListCol",f:parsenoop},348:{n:"BrtEndListCol",f:parsenoop},349:{n:"BrtBeginListXmlCPr",f:parsenoop},350:{n:"BrtEndListXmlCPr",f:parsenoop},351:{n:"BrtListCCFmla",f:parsenoop},352:{n:"BrtListTrFmla",f:parsenoop},353:{n:"BrtBeginExternals",f:parsenoop},354:{n:"BrtEndExternals",f:parsenoop},355:{n:"BrtSupBookSrc",f:parsenoop},357:{n:"BrtSupSelf",f:parsenoop},358:{n:"BrtSupSame",f:parsenoop},359:{n:"BrtSupTabs",f:parsenoop},360:{n:"BrtBeginSupBook",f:parsenoop},361:{n:"BrtPlaceholderName",f:parsenoop},362:{n:"BrtExternSheet",f:parsenoop},363:{n:"BrtExternTableStart",f:parsenoop},364:{n:"BrtExternTableEnd",f:parsenoop},366:{n:"BrtExternRowHdr",f:parsenoop},367:{n:"BrtExternCellBlank",f:parsenoop},368:{n:"BrtExternCellReal",f:parsenoop},369:{n:"BrtExternCellBool",f:parsenoop},370:{n:"BrtExternCellError",f:parsenoop},371:{n:"BrtExternCellString",f:parsenoop},372:{n:"BrtBeginEsmdx",f:parsenoop},373:{n:"BrtEndEsmdx",f:parsenoop},374:{n:"BrtBeginMdxSet",f:parsenoop},375:{n:"BrtEndMdxSet",f:parsenoop},376:{n:"BrtBeginMdxMbrProp",f:parsenoop},377:{n:"BrtEndMdxMbrProp",f:parsenoop},378:{n:"BrtBeginMdxKPI",f:parsenoop},379:{n:"BrtEndMdxKPI",f:parsenoop},380:{n:"BrtBeginEsstr",f:parsenoop},381:{n:"BrtEndEsstr",f:parsenoop},382:{n:"BrtBeginPRFItem",f:parsenoop},383:{n:"BrtEndPRFItem",f:parsenoop},384:{n:"BrtBeginPivotCacheIDs",f:parsenoop},385:{n:"BrtEndPivotCacheIDs",f:parsenoop},386:{n:"BrtBeginPivotCacheID",f:parsenoop},387:{n:"BrtEndPivotCacheID",f:parsenoop},388:{n:"BrtBeginISXVIs",f:parsenoop},389:{n:"BrtEndISXVIs",f:parsenoop},390:{n:"BrtBeginColInfos",f:parsenoop},391:{n:"BrtEndColInfos",f:parsenoop},392:{n:"BrtBeginRwBrk",f:parsenoop},393:{n:"BrtEndRwBrk",f:parsenoop},394:{n:"BrtBeginColBrk",f:parsenoop},395:{n:"BrtEndColBrk",f:parsenoop},396:{n:"BrtBrk",f:parsenoop},397:{n:"BrtUserBookView",f:parsenoop},398:{n:"BrtInfo",f:parsenoop},399:{n:"BrtCUsr",f:parsenoop},400:{n:"BrtUsr",f:parsenoop},401:{n:"BrtBeginUsers",f:parsenoop},403:{n:"BrtEOF",f:parsenoop},404:{n:"BrtUCR",f:parsenoop},405:{n:"BrtRRInsDel",f:parsenoop},406:{n:"BrtRREndInsDel",f:parsenoop},407:{n:"BrtRRMove",f:parsenoop},408:{n:"BrtRREndMove",f:parsenoop},409:{n:"BrtRRChgCell",f:parsenoop},410:{n:"BrtRREndChgCell",f:parsenoop},411:{n:"BrtRRHeader",f:parsenoop},412:{n:"BrtRRUserView",f:parsenoop},413:{n:"BrtRRRenSheet",f:parsenoop},414:{n:"BrtRRInsertSh",f:parsenoop},415:{n:"BrtRRDefName",f:parsenoop},416:{n:"BrtRRNote",f:parsenoop},417:{n:"BrtRRConflict",f:parsenoop},418:{n:"BrtRRTQSIF",f:parsenoop},419:{n:"BrtRRFormat",f:parsenoop},420:{n:"BrtRREndFormat",f:parsenoop},421:{n:"BrtRRAutoFmt",f:parsenoop},422:{n:"BrtBeginUserShViews",f:parsenoop},423:{n:"BrtBeginUserShView",f:parsenoop},424:{n:"BrtEndUserShView",f:parsenoop},425:{n:"BrtEndUserShViews",f:parsenoop},426:{n:"BrtArrFmla",f:parsenoop},427:{n:"BrtShrFmla",f:parsenoop},428:{n:"BrtTable",f:parsenoop},429:{n:"BrtBeginExtConnections",f:parsenoop},430:{n:"BrtEndExtConnections",f:parsenoop},431:{n:"BrtBeginPCDCalcMems",f:parsenoop},432:{n:"BrtEndPCDCalcMems",f:parsenoop},433:{n:"BrtBeginPCDCalcMem",f:parsenoop},434:{n:"BrtEndPCDCalcMem",f:parsenoop},435:{n:"BrtBeginPCDHGLevels",f:parsenoop},436:{n:"BrtEndPCDHGLevels",f:parsenoop},437:{n:"BrtBeginPCDHGLevel",f:parsenoop},438:{n:"BrtEndPCDHGLevel",f:parsenoop},439:{n:"BrtBeginPCDHGLGroups",f:parsenoop},440:{n:"BrtEndPCDHGLGroups",f:parsenoop},441:{n:"BrtBeginPCDHGLGroup",f:parsenoop},442:{n:"BrtEndPCDHGLGroup",f:parsenoop},443:{n:"BrtBeginPCDHGLGMembers",f:parsenoop},444:{n:"BrtEndPCDHGLGMembers",f:parsenoop},445:{n:"BrtBeginPCDHGLGMember",f:parsenoop},446:{n:"BrtEndPCDHGLGMember",f:parsenoop},447:{n:"BrtBeginQSI",f:parsenoop},448:{n:"BrtEndQSI",f:parsenoop},449:{n:"BrtBeginQSIR",f:parsenoop},450:{n:"BrtEndQSIR",f:parsenoop},451:{n:"BrtBeginDeletedNames",f:parsenoop},452:{n:"BrtEndDeletedNames",f:parsenoop},453:{n:"BrtBeginDeletedName",f:parsenoop},454:{n:"BrtEndDeletedName",f:parsenoop},455:{n:"BrtBeginQSIFs",f:parsenoop},456:{n:"BrtEndQSIFs",f:parsenoop},457:{n:"BrtBeginQSIF",f:parsenoop},458:{n:"BrtEndQSIF",f:parsenoop},459:{n:"BrtBeginAutoSortScope",f:parsenoop},460:{n:"BrtEndAutoSortScope",f:parsenoop},461:{n:"BrtBeginConditionalFormatting",f:parsenoop},462:{n:"BrtEndConditionalFormatting",f:parsenoop},463:{n:"BrtBeginCFRule",f:parsenoop},464:{n:"BrtEndCFRule",f:parsenoop},465:{n:"BrtBeginIconSet",f:parsenoop},466:{n:"BrtEndIconSet",f:parsenoop},467:{n:"BrtBeginDatabar",f:parsenoop},468:{n:"BrtEndDatabar",f:parsenoop},469:{n:"BrtBeginColorScale",f:parsenoop},470:{n:"BrtEndColorScale",f:parsenoop},471:{n:"BrtCFVO",f:parsenoop},472:{n:"BrtExternValueMeta",f:parsenoop},473:{n:"BrtBeginColorPalette",f:parsenoop},474:{n:"BrtEndColorPalette",f:parsenoop},475:{n:"BrtIndexedColor",f:parsenoop},476:{n:"BrtMargins",f:parsenoop},477:{n:"BrtPrintOptions",f:parsenoop},478:{n:"BrtPageSetup",f:parsenoop},479:{n:"BrtBeginHeaderFooter",f:parsenoop},480:{n:"BrtEndHeaderFooter",f:parsenoop},481:{n:"BrtBeginSXCrtFormat",f:parsenoop},482:{n:"BrtEndSXCrtFormat",f:parsenoop},483:{n:"BrtBeginSXCrtFormats",f:parsenoop},484:{n:"BrtEndSXCrtFormats",f:parsenoop},485:{n:"BrtWsFmtInfo",f:parsenoop},486:{n:"BrtBeginMgs",f:parsenoop},487:{n:"BrtEndMGs",f:parsenoop},488:{n:"BrtBeginMGMaps",f:parsenoop},489:{n:"BrtEndMGMaps",f:parsenoop},490:{n:"BrtBeginMG",f:parsenoop},491:{n:"BrtEndMG",f:parsenoop},492:{n:"BrtBeginMap",f:parsenoop},493:{n:"BrtEndMap",f:parsenoop},494:{n:"BrtHLink",f:parse_BrtHLink},495:{n:"BrtBeginDCon",f:parsenoop},496:{n:"BrtEndDCon",f:parsenoop},497:{n:"BrtBeginDRefs",f:parsenoop},498:{n:"BrtEndDRefs",f:parsenoop},499:{n:"BrtDRef",f:parsenoop},500:{n:"BrtBeginScenMan",f:parsenoop},501:{n:"BrtEndScenMan",f:parsenoop},502:{n:"BrtBeginSct",f:parsenoop},503:{n:"BrtEndSct",f:parsenoop},504:{n:"BrtSlc",f:parsenoop},505:{n:"BrtBeginDXFs",f:parsenoop},506:{n:"BrtEndDXFs",f:parsenoop},507:{n:"BrtDXF",f:parsenoop},508:{n:"BrtBeginTableStyles",f:parsenoop},509:{n:"BrtEndTableStyles",f:parsenoop},510:{n:"BrtBeginTableStyle",f:parsenoop},511:{n:"BrtEndTableStyle",f:parsenoop},512:{n:"BrtTableStyleElement",f:parsenoop},513:{n:"BrtTableStyleClient",f:parsenoop},514:{n:"BrtBeginVolDeps",f:parsenoop},515:{n:"BrtEndVolDeps",f:parsenoop},516:{n:"BrtBeginVolType",f:parsenoop},517:{n:"BrtEndVolType",f:parsenoop},518:{n:"BrtBeginVolMain",f:parsenoop},519:{n:"BrtEndVolMain",f:parsenoop},520:{n:"BrtBeginVolTopic",f:parsenoop},521:{n:"BrtEndVolTopic",f:parsenoop},522:{n:"BrtVolSubtopic",f:parsenoop},523:{n:"BrtVolRef",f:parsenoop},524:{n:"BrtVolNum",f:parsenoop},525:{n:"BrtVolErr",f:parsenoop},526:{n:"BrtVolStr",f:parsenoop},527:{n:"BrtVolBool",f:parsenoop},528:{n:"BrtBeginCalcChain$",f:parsenoop},529:{n:"BrtEndCalcChain$",f:parsenoop},530:{n:"BrtBeginSortState",f:parsenoop},531:{n:"BrtEndSortState",f:parsenoop},532:{n:"BrtBeginSortCond",f:parsenoop},533:{n:"BrtEndSortCond",f:parsenoop},534:{n:"BrtBookProtection",f:parsenoop},535:{n:"BrtSheetProtection",f:parsenoop},536:{n:"BrtRangeProtection",f:parsenoop},537:{n:"BrtPhoneticInfo",f:parsenoop},538:{n:"BrtBeginECTxtWiz",f:parsenoop},539:{n:"BrtEndECTxtWiz",f:parsenoop},540:{n:"BrtBeginECTWFldInfoLst",f:parsenoop},541:{n:"BrtEndECTWFldInfoLst",f:parsenoop},542:{n:"BrtBeginECTwFldInfo",f:parsenoop},548:{n:"BrtFileSharing",f:parsenoop},549:{n:"BrtOleSize",f:parsenoop},550:{n:"BrtDrawing",f:parsenoop},551:{n:"BrtLegacyDrawing",f:parsenoop},552:{n:"BrtLegacyDrawingHF",f:parsenoop},553:{n:"BrtWebOpt",f:parsenoop},554:{n:"BrtBeginWebPubItems",f:parsenoop},555:{n:"BrtEndWebPubItems",f:parsenoop},556:{n:"BrtBeginWebPubItem",f:parsenoop},557:{n:"BrtEndWebPubItem",f:parsenoop},558:{n:"BrtBeginSXCondFmt",f:parsenoop},559:{n:"BrtEndSXCondFmt",f:parsenoop},560:{n:"BrtBeginSXCondFmts",f:parsenoop},561:{n:"BrtEndSXCondFmts",f:parsenoop},562:{n:"BrtBkHim",f:parsenoop},564:{n:"BrtColor",f:parsenoop},565:{n:"BrtBeginIndexedColors",f:parsenoop},566:{n:"BrtEndIndexedColors",f:parsenoop},569:{n:"BrtBeginMRUColors",f:parsenoop},570:{n:"BrtEndMRUColors",f:parsenoop},572:{n:"BrtMRUColor",f:parsenoop},573:{n:"BrtBeginDVals",f:parsenoop},574:{n:"BrtEndDVals",f:parsenoop},577:{n:"BrtSupNameStart",f:parsenoop},578:{n:"BrtSupNameValueStart",f:parsenoop},579:{n:"BrtSupNameValueEnd",f:parsenoop},580:{n:"BrtSupNameNum",f:parsenoop},581:{n:"BrtSupNameErr",f:parsenoop},582:{n:"BrtSupNameSt",f:parsenoop},583:{n:"BrtSupNameNil",f:parsenoop},584:{n:"BrtSupNameBool",f:parsenoop},585:{n:"BrtSupNameFmla",f:parsenoop},586:{n:"BrtSupNameBits",f:parsenoop},587:{n:"BrtSupNameEnd",f:parsenoop},588:{n:"BrtEndSupBook",f:parsenoop},589:{n:"BrtCellSmartTagProperty",f:parsenoop},590:{n:"BrtBeginCellSmartTag",f:parsenoop},591:{n:"BrtEndCellSmartTag",f:parsenoop},592:{n:"BrtBeginCellSmartTags",f:parsenoop},593:{n:"BrtEndCellSmartTags",f:parsenoop},594:{n:"BrtBeginSmartTags",f:parsenoop},595:{n:"BrtEndSmartTags",f:parsenoop},596:{n:"BrtSmartTagType",f:parsenoop},597:{n:"BrtBeginSmartTagTypes",f:parsenoop},598:{n:"BrtEndSmartTagTypes",f:parsenoop},599:{n:"BrtBeginSXFilters",f:parsenoop},600:{n:"BrtEndSXFilters",f:parsenoop},601:{n:"BrtBeginSXFILTER",f:parsenoop},602:{n:"BrtEndSXFilter",f:parsenoop},603:{n:"BrtBeginFills",f:parsenoop},604:{n:"BrtEndFills",f:parsenoop},605:{n:"BrtBeginCellWatches",f:parsenoop},606:{n:"BrtEndCellWatches",f:parsenoop},607:{n:"BrtCellWatch",f:parsenoop},608:{n:"BrtBeginCRErrs",f:parsenoop},609:{n:"BrtEndCRErrs",f:parsenoop},610:{n:"BrtCrashRecErr",f:parsenoop},611:{n:"BrtBeginFonts",f:parsenoop},612:{n:"BrtEndFonts",f:parsenoop},613:{n:"BrtBeginBorders",f:parsenoop},614:{n:"BrtEndBorders",f:parsenoop},615:{n:"BrtBeginFmts",f:parsenoop},616:{n:"BrtEndFmts",f:parsenoop},617:{n:"BrtBeginCellXFs",f:parsenoop},618:{n:"BrtEndCellXFs",f:parsenoop},619:{n:"BrtBeginStyles",f:parsenoop},620:{n:"BrtEndStyles",f:parsenoop},625:{n:"BrtBigName",f:parsenoop},626:{n:"BrtBeginCellStyleXFs",f:parsenoop},627:{n:"BrtEndCellStyleXFs",f:parsenoop},628:{n:"BrtBeginComments",f:parsenoop},629:{n:"BrtEndComments",f:parsenoop},630:{n:"BrtBeginCommentAuthors",f:parsenoop},631:{n:"BrtEndCommentAuthors",f:parsenoop},632:{n:"BrtCommentAuthor",f:parse_BrtCommentAuthor},633:{n:"BrtBeginCommentList",f:parsenoop},634:{n:"BrtEndCommentList",f:parsenoop},635:{n:"BrtBeginComment",f:parse_BrtBeginComment},636:{n:"BrtEndComment",f:parsenoop},637:{n:"BrtCommentText",f:parse_BrtCommentText},638:{n:"BrtBeginOleObjects",f:parsenoop},639:{n:"BrtOleObject",f:parsenoop},640:{n:"BrtEndOleObjects",f:parsenoop},641:{n:"BrtBeginSxrules",f:parsenoop},642:{n:"BrtEndSxRules",f:parsenoop},643:{n:"BrtBeginActiveXControls",f:parsenoop},644:{n:"BrtActiveX",f:parsenoop},645:{n:"BrtEndActiveXControls",f:parsenoop},646:{n:"BrtBeginPCDSDTCEMembersSortBy",f:parsenoop},648:{n:"BrtBeginCellIgnoreECs",f:parsenoop},649:{n:"BrtCellIgnoreEC",f:parsenoop},650:{n:"BrtEndCellIgnoreECs",f:parsenoop},651:{n:"BrtCsProp",f:parsenoop},652:{n:"BrtCsPageSetup",f:parsenoop},653:{n:"BrtBeginUserCsViews",f:parsenoop},654:{n:"BrtEndUserCsViews",f:parsenoop},655:{n:"BrtBeginUserCsView",f:parsenoop},656:{n:"BrtEndUserCsView",f:parsenoop},657:{n:"BrtBeginPcdSFCIEntries",f:parsenoop},658:{n:"BrtEndPCDSFCIEntries",f:parsenoop},659:{n:"BrtPCDSFCIEntry",f:parsenoop},660:{n:"BrtBeginListParts",f:parsenoop},661:{n:"BrtListPart",f:parsenoop},662:{n:"BrtEndListParts",f:parsenoop},663:{n:"BrtSheetCalcProp",f:parsenoop},664:{n:"BrtBeginFnGroup",f:parsenoop},665:{n:"BrtFnGroup",f:parsenoop},666:{n:"BrtEndFnGroup",f:parsenoop},667:{n:"BrtSupAddin",f:parsenoop},668:{n:"BrtSXTDMPOrder",f:parsenoop},669:{n:"BrtCsProtection",f:parsenoop},671:{n:"BrtBeginWsSortMap",f:parsenoop},672:{n:"BrtEndWsSortMap",f:parsenoop},673:{n:"BrtBeginRRSort",f:parsenoop},674:{n:"BrtEndRRSort",f:parsenoop},675:{n:"BrtRRSortItem",f:parsenoop},676:{n:"BrtFileSharingIso",f:parsenoop},677:{n:"BrtBookProtectionIso",f:parsenoop},678:{n:"BrtSheetProtectionIso",f:parsenoop},679:{n:"BrtCsProtectionIso",f:parsenoop},680:{n:"BrtRangeProtectionIso",f:parsenoop},1024:{n:"BrtRwDescent",f:parsenoop},1025:{n:"BrtKnownFonts",f:parsenoop},1026:{n:"BrtBeginSXTupleSet",f:parsenoop},1027:{n:"BrtEndSXTupleSet",f:parsenoop},1028:{n:"BrtBeginSXTupleSetHeader",f:parsenoop},1029:{n:"BrtEndSXTupleSetHeader",f:parsenoop},1030:{n:"BrtSXTupleSetHeaderItem",f:parsenoop},1031:{n:"BrtBeginSXTupleSetData",f:parsenoop},1032:{n:"BrtEndSXTupleSetData",f:parsenoop},1033:{n:"BrtBeginSXTupleSetRow",f:parsenoop},1034:{n:"BrtEndSXTupleSetRow",f:parsenoop},1035:{n:"BrtSXTupleSetRowItem",f:parsenoop},1036:{n:"BrtNameExt",f:parsenoop},1037:{n:"BrtPCDH14",f:parsenoop},1038:{n:"BrtBeginPCDCalcMem14",f:parsenoop},1039:{n:"BrtEndPCDCalcMem14",f:parsenoop},1040:{n:"BrtSXTH14",f:parsenoop},1041:{n:"BrtBeginSparklineGroup",f:parsenoop},1042:{n:"BrtEndSparklineGroup",f:parsenoop},1043:{n:"BrtSparkline",f:parsenoop},1044:{n:"BrtSXDI14",f:parsenoop},1045:{n:"BrtWsFmtInfoEx14",f:parsenoop},1046:{n:"BrtBeginConditionalFormatting14",f:parsenoop},1047:{n:"BrtEndConditionalFormatting14",f:parsenoop},1048:{n:"BrtBeginCFRule14",f:parsenoop},1049:{n:"BrtEndCFRule14",f:parsenoop},1050:{n:"BrtCFVO14",f:parsenoop},1051:{n:"BrtBeginDatabar14",f:parsenoop},1052:{n:"BrtBeginIconSet14",f:parsenoop},1053:{n:"BrtDVal14",f:parsenoop},1054:{n:"BrtBeginDVals14",f:parsenoop},1055:{n:"BrtColor14",f:parsenoop},1056:{n:"BrtBeginSparklines",f:parsenoop},1057:{n:"BrtEndSparklines",f:parsenoop},1058:{n:"BrtBeginSparklineGroups",f:parsenoop},1059:{n:"BrtEndSparklineGroups",f:parsenoop},1061:{n:"BrtSXVD14",f:parsenoop},1062:{n:"BrtBeginSxview14",f:parsenoop},1063:{n:"BrtEndSxview14",f:parsenoop},1066:{n:"BrtBeginPCD14",f:parsenoop},1067:{n:"BrtEndPCD14",f:parsenoop},1068:{n:"BrtBeginExtConn14",f:parsenoop},1069:{n:"BrtEndExtConn14",f:parsenoop},1070:{n:"BrtBeginSlicerCacheIDs",f:parsenoop},1071:{n:"BrtEndSlicerCacheIDs",f:parsenoop},1072:{n:"BrtBeginSlicerCacheID",f:parsenoop},1073:{n:"BrtEndSlicerCacheID",f:parsenoop},1075:{n:"BrtBeginSlicerCache",f:parsenoop},1076:{n:"BrtEndSlicerCache",f:parsenoop},1077:{n:"BrtBeginSlicerCacheDef",f:parsenoop},1078:{n:"BrtEndSlicerCacheDef",f:parsenoop},1079:{n:"BrtBeginSlicersEx",f:parsenoop},1080:{n:"BrtEndSlicersEx",f:parsenoop},1081:{n:"BrtBeginSlicerEx",f:parsenoop},1082:{n:"BrtEndSlicerEx",f:parsenoop},1083:{n:"BrtBeginSlicer",f:parsenoop},1084:{n:"BrtEndSlicer",f:parsenoop},1085:{n:"BrtSlicerCachePivotTables",f:parsenoop},1086:{n:"BrtBeginSlicerCacheOlapImpl",f:parsenoop},1087:{n:"BrtEndSlicerCacheOlapImpl",f:parsenoop},1088:{n:"BrtBeginSlicerCacheLevelsData",f:parsenoop},1089:{n:"BrtEndSlicerCacheLevelsData",f:parsenoop},1090:{n:"BrtBeginSlicerCacheLevelData",f:parsenoop},1091:{n:"BrtEndSlicerCacheLevelData",f:parsenoop},1092:{n:"BrtBeginSlicerCacheSiRanges",f:parsenoop},1093:{n:"BrtEndSlicerCacheSiRanges",f:parsenoop},1094:{n:"BrtBeginSlicerCacheSiRange",f:parsenoop},1095:{n:"BrtEndSlicerCacheSiRange",f:parsenoop},1096:{n:"BrtSlicerCacheOlapItem",f:parsenoop},1097:{n:"BrtBeginSlicerCacheSelections",f:parsenoop},1098:{n:"BrtSlicerCacheSelection",f:parsenoop},1099:{n:"BrtEndSlicerCacheSelections",f:parsenoop},1100:{n:"BrtBeginSlicerCacheNative",f:parsenoop},1101:{n:"BrtEndSlicerCacheNative",f:parsenoop},1102:{n:"BrtSlicerCacheNativeItem",f:parsenoop},1103:{n:"BrtRangeProtection14",f:parsenoop},1104:{n:"BrtRangeProtectionIso14",f:parsenoop},1105:{n:"BrtCellIgnoreEC14",f:parsenoop},1111:{n:"BrtList14",f:parsenoop},1112:{n:"BrtCFIcon",f:parsenoop},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs",f:parsenoop},1114:{n:"BrtEndSlicerCachesPivotCacheIDs",f:parsenoop},1115:{n:"BrtBeginSlicers",f:parsenoop},1116:{n:"BrtEndSlicers",f:parsenoop},1117:{n:"BrtWbProp14",f:parsenoop},1118:{n:"BrtBeginSXEdit",f:parsenoop},1119:{n:"BrtEndSXEdit",f:parsenoop},1120:{n:"BrtBeginSXEdits",f:parsenoop},1121:{n:"BrtEndSXEdits",f:parsenoop},1122:{n:"BrtBeginSXChange",f:parsenoop},1123:{n:"BrtEndSXChange",f:parsenoop},1124:{n:"BrtBeginSXChanges",f:parsenoop},1125:{n:"BrtEndSXChanges",f:parsenoop},1126:{n:"BrtSXTupleItems",f:parsenoop},1128:{n:"BrtBeginSlicerStyle",f:parsenoop},1129:{n:"BrtEndSlicerStyle",f:parsenoop},1130:{n:"BrtSlicerStyleElement",f:parsenoop},1131:{n:"BrtBeginStyleSheetExt14",f:parsenoop},1132:{n:"BrtEndStyleSheetExt14",f:parsenoop},1133:{n:"BrtBeginSlicerCachesPivotCacheID",f:parsenoop},1134:{n:"BrtEndSlicerCachesPivotCacheID",f:parsenoop},1135:{n:"BrtBeginConditionalFormattings",f:parsenoop},1136:{n:"BrtEndConditionalFormattings",f:parsenoop},1137:{n:"BrtBeginPCDCalcMemExt",f:parsenoop},1138:{n:"BrtEndPCDCalcMemExt",f:parsenoop},1139:{n:"BrtBeginPCDCalcMemsExt",f:parsenoop},1140:{n:"BrtEndPCDCalcMemsExt",f:parsenoop},1141:{n:"BrtPCDField14",f:parsenoop},1142:{n:"BrtBeginSlicerStyles",f:parsenoop},1143:{n:"BrtEndSlicerStyles",f:parsenoop},1144:{n:"BrtBeginSlicerStyleElements",f:parsenoop},1145:{n:"BrtEndSlicerStyleElements",f:parsenoop},1146:{n:"BrtCFRuleExt",f:parsenoop},1147:{n:"BrtBeginSXCondFmt14",f:parsenoop},1148:{n:"BrtEndSXCondFmt14",f:parsenoop},1149:{n:"BrtBeginSXCondFmts14",f:parsenoop},1150:{n:"BrtEndSXCondFmts14",f:parsenoop},1152:{n:"BrtBeginSortCond14",f:parsenoop},1153:{n:"BrtEndSortCond14",f:parsenoop},1154:{n:"BrtEndDVals14",f:parsenoop},1155:{n:"BrtEndIconSet14",f:parsenoop},1156:{n:"BrtEndDatabar14",f:parsenoop},1157:{n:"BrtBeginColorScale14",f:parsenoop},1158:{n:"BrtEndColorScale14",f:parsenoop},1159:{n:"BrtBeginSxrules14",f:parsenoop},1160:{n:"BrtEndSxrules14",f:parsenoop},1161:{n:"BrtBeginPRule14",f:parsenoop},1162:{n:"BrtEndPRule14",f:parsenoop},1163:{n:"BrtBeginPRFilters14",f:parsenoop},1164:{n:"BrtEndPRFilters14",f:parsenoop},1165:{n:"BrtBeginPRFilter14",f:parsenoop},1166:{n:"BrtEndPRFilter14",f:parsenoop},1167:{n:"BrtBeginPRFItem14",f:parsenoop},1168:{n:"BrtEndPRFItem14",f:parsenoop},1169:{n:"BrtBeginCellIgnoreECs14",f:parsenoop},1170:{n:"BrtEndCellIgnoreECs14",f:parsenoop},1171:{n:"BrtDxf14",f:parsenoop},1172:{n:"BrtBeginDxF14s",f:parsenoop},1173:{n:"BrtEndDxf14s",f:parsenoop},1177:{n:"BrtFilter14",f:parsenoop},1178:{n:"BrtBeginCustomFilters14",f:parsenoop},1180:{n:"BrtCustomFilter14",f:parsenoop},1181:{n:"BrtIconFilter14",f:parsenoop},1182:{n:"BrtPivotCacheConnectionName",f:parsenoop},2048:{n:"BrtBeginDecoupledPivotCacheIDs",f:parsenoop},2049:{n:"BrtEndDecoupledPivotCacheIDs",f:parsenoop},2050:{n:"BrtDecoupledPivotCacheID",f:parsenoop},2051:{n:"BrtBeginPivotTableRefs",f:parsenoop},2052:{n:"BrtEndPivotTableRefs",f:parsenoop},2053:{n:"BrtPivotTableRef",f:parsenoop},2054:{n:"BrtSlicerCacheBookPivotTables",f:parsenoop},2055:{n:"BrtBeginSxvcells",f:parsenoop},2056:{n:"BrtEndSxvcells",f:parsenoop},2057:{n:"BrtBeginSxRow",f:parsenoop},2058:{n:"BrtEndSxRow",f:parsenoop},2060:{n:"BrtPcdCalcMem15",f:parsenoop},2067:{n:"BrtQsi15",f:parsenoop},2068:{n:"BrtBeginWebExtensions",f:parsenoop},2069:{n:"BrtEndWebExtensions",f:parsenoop},2070:{n:"BrtWebExtension",f:parsenoop},2071:{n:"BrtAbsPath15",f:parsenoop},2072:{n:"BrtBeginPivotTableUISettings",f:parsenoop},2073:{n:"BrtEndPivotTableUISettings",f:parsenoop},2075:{n:"BrtTableSlicerCacheIDs",f:parsenoop},2076:{n:"BrtTableSlicerCacheID",f:parsenoop},2077:{n:"BrtBeginTableSlicerCache",f:parsenoop},2078:{n:"BrtEndTableSlicerCache",f:parsenoop},2079:{n:"BrtSxFilter15",f:parsenoop},2080:{n:"BrtBeginTimelineCachePivotCacheIDs",f:parsenoop},2081:{n:"BrtEndTimelineCachePivotCacheIDs",f:parsenoop},2082:{n:"BrtTimelineCachePivotCacheID",f:parsenoop},2083:{n:"BrtBeginTimelineCacheIDs",f:parsenoop},2084:{n:"BrtEndTimelineCacheIDs",f:parsenoop},2085:{n:"BrtBeginTimelineCacheID",f:parsenoop},2086:{n:"BrtEndTimelineCacheID",f:parsenoop},2087:{n:"BrtBeginTimelinesEx",f:parsenoop},2088:{n:"BrtEndTimelinesEx",f:parsenoop},2089:{n:"BrtBeginTimelineEx",f:parsenoop},2090:{n:"BrtEndTimelineEx",f:parsenoop},2091:{n:"BrtWorkBookPr15",f:parsenoop},2092:{n:"BrtPCDH15",f:parsenoop},2093:{n:"BrtBeginTimelineStyle",f:parsenoop},2094:{n:"BrtEndTimelineStyle",f:parsenoop},2095:{n:"BrtTimelineStyleElement",f:parsenoop},2096:{n:"BrtBeginTimelineStylesheetExt15",f:parsenoop},2097:{n:"BrtEndTimelineStylesheetExt15",f:parsenoop},2098:{n:"BrtBeginTimelineStyles",f:parsenoop},2099:{n:"BrtEndTimelineStyles",f:parsenoop},2100:{n:"BrtBeginTimelineStyleElements",f:parsenoop},2101:{n:"BrtEndTimelineStyleElements",f:parsenoop},2102:{n:"BrtDxf15",f:parsenoop},2103:{n:"BrtBeginDxfs15",f:parsenoop},2104:{n:"brtEndDxfs15",f:parsenoop},2105:{n:"BrtSlicerCacheHideItemsWithNoData",f:parsenoop},2106:{n:"BrtBeginItemUniqueNames",f:parsenoop},2107:{n:"BrtEndItemUniqueNames",f:parsenoop},2108:{n:"BrtItemUniqueName",f:parsenoop},2109:{n:"BrtBeginExtConn15",f:parsenoop},2110:{n:"BrtEndExtConn15",f:parsenoop},2111:{n:"BrtBeginOledbPr15",f:parsenoop},2112:{n:"BrtEndOledbPr15",f:parsenoop},2113:{n:"BrtBeginDataFeedPr15",f:parsenoop},2114:{n:"BrtEndDataFeedPr15",f:parsenoop},2115:{n:"BrtTextPr15",f:parsenoop},2116:{n:"BrtRangePr15",f:parsenoop},2117:{n:"BrtDbCommand15",f:parsenoop},2118:{n:"BrtBeginDbTables15",f:parsenoop},2119:{n:"BrtEndDbTables15",f:parsenoop},2120:{n:"BrtDbTable15",f:parsenoop},2121:{n:"BrtBeginDataModel",f:parsenoop},2122:{n:"BrtEndDataModel",f:parsenoop},2123:{n:"BrtBeginModelTables",f:parsenoop},2124:{n:"BrtEndModelTables",f:parsenoop},2125:{n:"BrtModelTable",f:parsenoop},2126:{n:"BrtBeginModelRelationships",f:parsenoop},2127:{n:"BrtEndModelRelationships",f:parsenoop},2128:{n:"BrtModelRelationship",f:parsenoop},2129:{n:"BrtBeginECTxtWiz15",f:parsenoop},2130:{n:"BrtEndECTxtWiz15",f:parsenoop},2131:{n:"BrtBeginECTWFldInfoLst15",f:parsenoop},2132:{n:"BrtEndECTWFldInfoLst15",f:parsenoop},2133:{n:"BrtBeginECTWFldInfo15",f:parsenoop},2134:{n:"BrtFieldListActiveItem",f:parsenoop},2135:{n:"BrtPivotCacheIdVersion",f:parsenoop},2136:{n:"BrtSXDI15",f:parsenoop},65535:{n:"",f:parsenoop}}; -var evert_RE=evert_key(RecordEnum,"n");function parse_ods(zip,opts){if(typeof module!=="undefined"&&typeof require!=="undefined"&&typeof ODS==="undefined")ODS=require("./dist/od"+"s");if(typeof ODS==="undefined"||!ODS.parse_ods)throw new Error("Unsupported ODS");return ODS.parse_ods(zip,opts)}function fix_opts_func(defaults){return function fix_opts(opts){for(var i=0;i!=defaults.length;++i){var d=defaults[i];if(opts[d[0]]===undefined)opts[d[0]]=d[1];if(d[2]==="n")opts[d[0]]=Number(opts[d[0]])}}}var fix_read_opts=fix_opts_func([["cellNF",false],["cellHTML",true],["cellFormula",true],["cellStyles",false],["cellDates",false],["sheetStubs",false],["sheetRows",0,"n"],["bookDeps",false],["bookSheets",false],["bookProps",false],["bookFiles",false],["bookVBA",false],["WTF",false]]);var fix_write_opts=fix_opts_func([["cellDates",false],["bookSST",false],["bookType","xlsx"],["WTF",false]]);function safe_parse_wbrels(wbrels,sheets){if(!wbrels)return 0;try{wbrels=sheets.map(function pwbr(w){return[w.name,wbrels["!id"][w.id].Target]})}catch(e){return null}return!wbrels||wbrels.length===0?null:wbrels}function safe_parse_ws(zip,path,relsPath,sheet,sheetRels,sheets,opts){try{sheetRels[sheet]=parse_rels(getzipdata(zip,relsPath,true),path);sheets[sheet]=parse_ws(getzipdata(zip,path),path,opts,sheetRels[sheet])}catch(e){if(opts.WTF)throw e}}var nodirs=function nodirs(x){return x.substr(-1)!="/"};function parse_zip(zip,opts){make_ssf(SSF);opts=opts||{};fix_read_opts(opts);reset_cp();if(safegetzipfile(zip,"META-INF/manifest.xml"))return parse_ods(zip,opts);var entries=keys(zip.files).filter(nodirs).sort();var dir=parse_ct(getzipdata(zip,"[Content_Types].xml"),opts);var xlsb=false;var sheets,binname;if(dir.workbooks.length===0){binname="xl/workbook.xml";if(getzipdata(zip,binname,true))dir.workbooks.push(binname)}if(dir.workbooks.length===0){binname="xl/workbook.bin";if(!getzipfile(zip,binname,true))throw new Error("Could not find workbook");dir.workbooks.push(binname);xlsb=true}if(dir.workbooks[0].substr(-3)=="bin")xlsb=true;if(xlsb)set_cp(1200);if(!opts.bookSheets&&!opts.bookProps){strs=[];if(dir.sst)strs=parse_sst(getzipdata(zip,dir.sst.replace(/^\//,"")),dir.sst,opts);styles={};if(dir.style)styles=parse_sty(getzipdata(zip,dir.style.replace(/^\//,"")),dir.style,opts);themes={};if(opts.cellStyles&&dir.themes.length)themes=parse_theme(getzipdata(zip,dir.themes[0].replace(/^\//,""),true),dir.themes[0],opts)}var wb=parse_wb(getzipdata(zip,dir.workbooks[0].replace(/^\//,"")),dir.workbooks[0],opts);var props={},propdata="";if(dir.coreprops.length!==0){propdata=getzipdata(zip,dir.coreprops[0].replace(/^\//,""),true);if(propdata)props=parse_core_props(propdata);if(dir.extprops.length!==0){propdata=getzipdata(zip,dir.extprops[0].replace(/^\//,""),true);if(propdata)parse_ext_props(propdata,props)}}var custprops={};if(!opts.bookSheets||opts.bookProps){if(dir.custprops.length!==0){propdata=getzipdata(zip,dir.custprops[0].replace(/^\//,""),true);if(propdata)custprops=parse_cust_props(propdata,opts)}}var out={};if(opts.bookSheets||opts.bookProps){if(props.Worksheets&&props.SheetNames.length>0)sheets=props.SheetNames;else if(wb.Sheets)sheets=wb.Sheets.map(function pluck(x){return x.name});if(opts.bookProps){out.Props=props;out.Custprops=custprops}if(typeof sheets!=="undefined")out.SheetNames=sheets;if(opts.bookSheets?out.SheetNames:opts.bookProps)return out}sheets={};var deps={};if(opts.bookDeps&&dir.calcchain)deps=parse_cc(getzipdata(zip,dir.calcchain.replace(/^\//,"")),dir.calcchain,opts);var i=0;var sheetRels={};var path,relsPath;if(!props.Worksheets){var wbsheets=wb.Sheets;props.Worksheets=wbsheets.length;props.SheetNames=[];for(var j=0;j!=wbsheets.length;++j){props.SheetNames[j]=wbsheets[j].name}}var wbext=xlsb?"bin":"xml";var wbrelsfile="xl/_rels/workbook."+wbext+".rels";var wbrels=parse_rels(getzipdata(zip,wbrelsfile,true),wbrelsfile);if(wbrels)wbrels=safe_parse_wbrels(wbrels,wb.Sheets);var nmode=getzipdata(zip,"xl/worksheets/sheet.xml",true)?1:0;for(i=0;i!=props.Worksheets;++i){if(wbrels)path="xl/"+wbrels[i][1].replace(/[\/]?xl\//,"");else{path="xl/worksheets/sheet"+(i+1-nmode)+"."+wbext;path=path.replace(/sheet0\./,"sheet.")}relsPath=path.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");safe_parse_ws(zip,path,relsPath,props.SheetNames[i],sheetRels,sheets,opts)}if(dir.comments)parse_comments(zip,dir.comments,sheets,sheetRels,opts);out={Directory:dir,Workbook:wb,Props:props,Custprops:custprops,Deps:deps,Sheets:sheets,SheetNames:props.SheetNames,Strings:strs,Styles:styles,Themes:themes,SSF:SSF.get_table()};if(opts.bookFiles){out.keys=entries;out.files=zip.files}if(opts.bookVBA){if(dir.vba.length>0)out.vbaraw=getzipdata(zip,dir.vba[0],true);else if(dir.defaults.bin==="application/vnd.ms-office.vbaProject")out.vbaraw=getzipdata(zip,"xl/vbaProject.bin",true)}return out}function add_rels(rels,rId,f,type,relobj){if(!relobj)relobj={};if(!rels["!id"])rels["!id"]={};relobj.Id="rId"+rId;relobj.Type=type;relobj.Target=f;if(rels["!id"][relobj.Id])throw new Error("Cannot rewrite rId "+rId);rels["!id"][relobj.Id]=relobj;rels[("/"+relobj.Target).replace("//","/")]=relobj}function write_zip(wb,opts){if(wb&&!wb.SSF){wb.SSF=SSF.get_table()}if(wb&&wb.SSF){make_ssf(SSF);SSF.load_table(wb.SSF);opts.revssf=evert_num(wb.SSF);opts.revssf[wb.SSF[65535]]=0}opts.rels={};opts.wbrels={};opts.Strings=[];opts.Strings.Count=0;opts.Strings.Unique=0;var wbext=opts.bookType=="xlsb"?"bin":"xml";var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};fix_write_opts(opts=opts||{});var zip=new jszip;var f="",rId=0;opts.cellXfs=[];get_cell_style(opts.cellXfs,{},{revssf:{General:0}});f="docProps/core.xml";zip.file(f,write_core_props(wb.Props,opts));ct.coreprops.push(f);add_rels(opts.rels,2,f,RELS.CORE_PROPS);f="docProps/app.xml";if(!wb.Props)wb.Props={};wb.Props.SheetNames=wb.SheetNames;wb.Props.Worksheets=wb.SheetNames.length;zip.file(f,write_ext_props(wb.Props,opts));ct.extprops.push(f);add_rels(opts.rels,3,f,RELS.EXT_PROPS);if(wb.Custprops!==wb.Props&&keys(wb.Custprops||{}).length>0){f="docProps/custom.xml";zip.file(f,write_cust_props(wb.Custprops,opts));ct.custprops.push(f);add_rels(opts.rels,4,f,RELS.CUST_PROPS)}f="xl/workbook."+wbext;zip.file(f,write_wb(wb,f,opts));ct.workbooks.push(f);add_rels(opts.rels,1,f,RELS.WB);for(rId=1;rId<=wb.SheetNames.length;++rId){f="xl/worksheets/sheet"+rId+"."+wbext;zip.file(f,write_ws(rId-1,f,opts,wb));ct.sheets.push(f);add_rels(opts.wbrels,rId,"worksheets/sheet"+rId+"."+wbext,RELS.WS)}if(opts.Strings!=null&&opts.Strings.length>0){f="xl/sharedStrings."+wbext;zip.file(f,write_sst(opts.Strings,f,opts));ct.strs.push(f);add_rels(opts.wbrels,++rId,"sharedStrings."+wbext,RELS.SST)}f="xl/theme/theme1.xml";zip.file(f,write_theme());ct.themes.push(f);add_rels(opts.wbrels,++rId,"theme/theme1.xml",RELS.THEME);f="xl/styles."+wbext;zip.file(f,write_sty(wb,f,opts));ct.styles.push(f);add_rels(opts.wbrels,++rId,"styles."+wbext,RELS.STY);zip.file("[Content_Types].xml",write_ct(ct,opts));zip.file("_rels/.rels",write_rels(opts.rels));zip.file("xl/_rels/workbook."+wbext+".rels",write_rels(opts.wbrels));return zip}function readSync(data,opts){var zip,d=data;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";switch(o.type){case"base64":zip=new jszip(d,{base64:true});break;case"binary":zip=new jszip(d,{base64:false});break;case"buffer":zip=new jszip(d);break;case"file":zip=new jszip(d=_fs.readFileSync(data));break;default:throw new Error("Unrecognized type "+o.type)}return parse_zip(zip,o)}function readFileSync(data,opts){var o=opts||{};o.type="file";return readSync(data,o)}function writeSync(wb,opts){var o=opts||{};var z=write_zip(wb,o);switch(o.type){case"base64":return z.generate({type:"base64"});case"binary":return z.generate({type:"string"});case"buffer":return z.generate({type:"nodebuffer"});case"file":return _fs.writeFileSync(o.file,z.generate({type:"nodebuffer"}));default:throw new Error("Unrecognized type "+o.type)}}function writeFileSync(wb,filename,opts){var o=opts||{};o.type="file";o.file=filename;switch(o.file.substr(-5).toLowerCase()){case".xlsm":o.bookType="xlsm";break;case".xlsb":o.bookType="xlsb";break}return writeSync(wb,o)}function decode_row(rowstr){return parseInt(unfix_row(rowstr),10)-1}function encode_row(row){return""+(row+1)}function fix_row(cstr){return cstr.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function unfix_row(cstr){return cstr.replace(/\$(\d+)$/,"$1")}function decode_col(colstr){var c=unfix_col(colstr),d=0,i=0;for(;i!==c.length;++i)d=26*d+c.charCodeAt(i)-64;return d-1}function encode_col(col){var s="";for(++col;col;col=Math.floor((col-1)/26))s=String.fromCharCode((col-1)%26+65)+s;return s}function fix_col(cstr){return cstr.replace(/^([A-Z])/,"$$$1")}function unfix_col(cstr){return cstr.replace(/^\$([A-Z])/,"$1")}function split_cell(cstr){return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function decode_cell(cstr){var splt=split_cell(cstr);return{c:decode_col(splt[0]),r:decode_row(splt[1])}}function encode_cell(cell){return encode_col(cell.c)+encode_row(cell.r)}function fix_cell(cstr){return fix_col(fix_row(cstr))}function unfix_cell(cstr){return unfix_col(unfix_row(cstr))}function decode_range(range){var x=range.split(":").map(decode_cell);return{s:x[0],e:x[x.length-1]}}function encode_range(cs,ce){if(ce===undefined||typeof ce==="number")return encode_range(cs.s,cs.e);if(typeof cs!=="string")cs=encode_cell(cs);if(typeof ce!=="string")ce=encode_cell(ce);return cs==ce?cs:cs+":"+ce}function safe_decode_range(range){var o={s:{c:0,r:0},e:{c:0,r:0}};var idx=0,i=0,cc=0;var len=range.length;for(idx=0;i26)break;idx=26*idx+cc}o.s.c=--idx;for(idx=0;i9)break;idx=10*idx+cc}o.s.r=--idx;if(i===len||range.charCodeAt(++i)===58){o.e.c=o.s.c;o.e.r=o.s.r;return o}for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.e.c=--idx;for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.e.r=--idx;return o}function safe_format_cell(cell,v){if(cell.z!==undefined)try{return cell.w=SSF.format(cell.z,v)}catch(e){}if(!cell.XF)return v;try{return cell.w=SSF.format(cell.XF.ifmt||0,v)}catch(e){return""+v}}function format_cell(cell,v){if(cell==null||cell.t==null)return"";if(cell.w!==undefined)return cell.w;if(v===undefined)return safe_format_cell(cell,cell.v);return safe_format_cell(cell,v)}function sheet_to_json(sheet,opts){var val,row,range,header=0,offset=1,r,hdr=[],isempty,R,C,v;var o=opts!=null?opts:{};var raw=o.raw;if(sheet==null||sheet["!ref"]==null)return[];range=o.range!==undefined?o.range:sheet["!ref"];if(o.header===1)header=1;else if(o.header==="A")header=2;else if(Array.isArray(o.header))header=3;switch(typeof range){case"string":r=safe_decode_range(range);break;case"number":r=safe_decode_range(sheet["!ref"]);r.s.r=range;break;default:r=range}if(header>0)offset=0;var rr=encode_row(r.s.r);var cols=new Array(r.e.c-r.s.c+1);var out=new Array(r.e.r-r.s.r-offset+1);var outi=0;for(C=r.s.c;C<=r.e.c;++C){cols[C]=encode_col(C);val=sheet[cols[C]+rr];switch(header){case 1:hdr[C]=C;break;case 2:hdr[C]=cols[C];break;case 3:hdr[C]=o.header[C-r.s.c];break;default:if(val===undefined)continue;hdr[C]=format_cell(val)}}for(R=r.s.r+offset;R<=r.e.r;++R){rr=encode_row(R);isempty=true;row=header===1?[]:Object.create({__rowNum__:R});for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];if(val===undefined||val.t===undefined)continue;v=val.v;switch(val.t){case"e":continue;case"s":break;case"b":case"n":break;default:throw"unrecognized type "+val.t}if(v!==undefined){row[hdr[C]]=raw?v:format_cell(val,v);isempty=false}}if(isempty===false)out[outi++]=row}out.length=outi;return out}function sheet_to_row_object_array(sheet,opts){return sheet_to_json(sheet,opts!=null?opts:{})}function sheet_to_csv(sheet,opts){var out="",txt="",qreg=/"/g;var o=opts==null?{}:opts;if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]);var FS=o.FS!==undefined?o.FS:",",fs=FS.charCodeAt(0);var RS=o.RS!==undefined?o.RS:"\n",rs=RS.charCodeAt(0);var row="",rr="",cols=[];var i=0,cc=0,val;var R=0,C=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(R=r.s.r;R<=r.e.r;++R){row="";rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];txt=val!==undefined?""+format_cell(val):"";for(i=0,cc=0;i!==txt.length;++i)if((cc=txt.charCodeAt(i))===fs||cc===rs||cc===34){txt='"'+txt.replace(qreg,'""')+'"';break}row+=(C===r.s.c?"":FS)+txt}out+=row+RS}return out}var make_csv=sheet_to_csv;function sheet_to_formulae(sheet){var cmds,y="",x,val="";if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]),rr="",cols=[],C;cmds=new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));var i=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(var R=r.s.r;R<=r.e.r;++R){rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){y=cols[C]+rr;x=sheet[y];val="";if(x===undefined)continue;if(x.f!=null)val=x.f;else if(x.w!==undefined)val="'"+x.w;else if(x.v===undefined)continue;else val=""+x.v;cmds[i++]=y+"="+val}}cmds.length=i;return cmds}var utils={encode_col:encode_col,encode_row:encode_row,encode_cell:encode_cell,encode_range:encode_range,decode_col:decode_col,decode_row:decode_row,split_cell:split_cell,decode_cell:decode_cell,decode_range:decode_range,format_cell:format_cell,get_formulae:sheet_to_formulae,make_csv:sheet_to_csv,make_json:sheet_to_json,make_formulae:sheet_to_formulae,sheet_to_csv:sheet_to_csv,sheet_to_json:sheet_to_json,sheet_to_formulae:sheet_to_formulae,sheet_to_row_object_array:sheet_to_row_object_array};XLSX.parseZip=parse_zip;XLSX.read=readSync;XLSX.readFile=readFileSync;XLSX.write=writeSync;XLSX.writeFile=writeFileSync;XLSX.utils=utils;XLSX.SSF=SSF})(typeof exports!=="undefined"?exports:XLSX); -//# sourceMappingURL=dist/xlsx.core.min.map \ No newline at end of file +exports.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var MAXBITS=15;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var CODES=0;var LENS=1;var DISTS=2;var lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0];var lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78];var dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0];var dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];module.exports=function inflate_table(type,lens,lens_index,codes,table,table_index,work,opts){var bits=opts.bits;var len=0;var sym=0;var min=0,max=0;var root=0;var curr=0;var drop=0;var left=0;var used=0;var huff=0;var incr;var fill;var low;var mask;var next;var base=null;var base_index=0;var end;var count=new utils.Buf16(MAXBITS+1);var offs=new utils.Buf16(MAXBITS+1);var extra=null;var extra_index=0;var here_bits,here_op,here_val;for(len=0;len<=MAXBITS;len++){count[len]=0}for(sym=0;sym=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;lenENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}var i=0;for(;;){i++;here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}},{"../utils/common":27}],37:[function(_dereq_,module,exports){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length};var static_l_desc;var static_d_desc;var static_bl_desc;var TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc};function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;hmax_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){bits--}s.bl_count[bits]--;s.bl_count[bits+1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code>=7;for(;code8){put_short(s,s.bi_buf)}else if(s.bi_valid>0){s.pending_buf[s.pending++]=s.bi_buf}s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]>1;n>=1;n--){pqdownheap(s,tree,n)}node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s,desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n0){if(s.strm.data_type===Z_UNKNOWN){s.strm.data_type=detect_data_type(s)}build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last)}else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1}exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align},{"../utils/common":27}],39:[function(_dereq_,module,exports){"use strict";function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream},{}]},{},[9])(9)});var XLSX={};(function make_xlsx(XLSX){XLSX.version="0.8.0";var current_codepage=1200,current_cptable;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")cptable=require("./dist/cpexcel");current_cptable=cptable[current_codepage]}function reset_cp(){set_cp(1200)}var set_cp=function(cp){current_codepage=cp};function char_codes(data){var o=[];for(var i=0,len=data.length;i>8])[0]}}var Base64=function make_b64(){var map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(input,utf8){var o="";var c1,c2,c3,e1,e2,e3,e4;for(var i=0;i>2;e2=(c1&3)<<4|c2>>4;e3=(c2&15)<<2|c3>>6;e4=c3&63;if(isNaN(c2)){e3=e4=64}else if(isNaN(c3)){e4=64}o+=map.charAt(e1)+map.charAt(e2)+map.charAt(e3)+map.charAt(e4)}return o},decode:function b64_decode(input,utf8){var o="";var c1,c2,c3;var e1,e2,e3,e4;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var i=0;i>4;c2=(e2&15)<<4|e3>>2;c3=(e3&3)<<6|e4;o+=String.fromCharCode(c1);if(e3!=64){o+=String.fromCharCode(c2)}if(e4!=64){o+=String.fromCharCode(c3)}}return o}}}();var has_buf=typeof Buffer!=="undefined";function new_raw_buf(len){return new(has_buf?Buffer:Array)(len)}function s2a(s){if(has_buf)return new Buffer(s,"binary");return s.split("").map(function(x){return x.charCodeAt(0)&255})}var bconcat=function(bufs){return[].concat.apply([],bufs)};var chr0=/\u0000/g,chr1=/[\u0001-\u0006]/;var SSF={};var make_ssf=function make_ssf(SSF){SSF.version="0.8.1";function _strrev(x){var o="",i=x.length-1;while(i>=0)o+=x.charAt(i--);return o}function fill(c,l){var o="";while(o.length=d?t:fill("0",d-t.length)+t}function pad_(v,d){var t=""+v;return t.length>=d?t:fill(" ",d-t.length)+t}function rpad_(v,d){var t=""+v;return t.length>=d?t:t+fill(" ",d-t.length)}function pad0r1(v,d){var t=""+Math.round(v);return t.length>=d?t:fill("0",d-t.length)+t}function pad0r2(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}var p2_32=Math.pow(2,32);function pad0r(v,d){if(v>p2_32||v<-p2_32)return pad0r1(v,d);var i=Math.round(v);return pad0r2(i,d)}function isgeneral(s,i){return s.length>=7+i&&(s.charCodeAt(i)|32)===103&&(s.charCodeAt(i+1)|32)===101&&(s.charCodeAt(i+2)|32)===110&&(s.charCodeAt(i+3)|32)===101&&(s.charCodeAt(i+4)|32)===114&&(s.charCodeAt(i+5)|32)===97&&(s.charCodeAt(i+6)|32)===108}var opts_fmt=[["date1904",0],["output",""],["WTF",false]];function fixopts(o){for(var y=0;y!=opts_fmt.length;++y)if(o[opts_fmt[y][0]]===undefined)o[opts_fmt[y][0]]=opts_fmt[y][1]}SSF.opts=opts_fmt;var table_fmt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "',65535:"General"};var days=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var months=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function frac(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){Q=Q_1;P=P_1}if(Q>D){Q=Q_2;P=P_2}if(!mixed)return[0,sgn*P,Q];if(Q===0)throw"Unexpected state: "+P+" "+P_1+" "+P_2+" "+Q+" "+Q_1+" "+Q_2;var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}function general_fmt_int(v,opts){return""+v}SSF._general_int=general_fmt_int;var general_fmt_num=function make_general_fmt_num(){var gnr1=/\.(\d*[1-9])0+$/,gnr2=/\.0*$/,gnr4=/\.(\d*[1-9])0+/,gnr5=/\.0*[Ee]/,gnr6=/(E[+-])(\d)$/;function gfn2(v){var w=v<0?12:11;var o=gfn5(v.toFixed(12));if(o.length<=w)return o;o=v.toPrecision(10);if(o.length<=w)return o;return v.toExponential(5)}function gfn3(v){var o=v.toFixed(11).replace(gnr1,".$1");if(o.length>(v<0?12:11))o=v.toPrecision(6);return o}function gfn4(o){for(var i=0;i!=o.length;++i)if((o.charCodeAt(i)|32)===101)return o.replace(gnr4,".$1").replace(gnr5,"E").replace("e","E").replace(gnr6,"$10$2");return o}function gfn5(o){return o.indexOf(".")>-1?o.replace(gnr2,"").replace(gnr1,".$1"):o}return function general_fmt_num(v,opts){var V=Math.floor(Math.log(Math.abs(v))*Math.LOG10E),o;if(V>=-4&&V<=-1)o=v.toPrecision(10+V);else if(Math.abs(V)<=9)o=gfn2(v);else if(V===10)o=v.toFixed(10).substr(0,12);else o=gfn3(v);return gfn5(gfn4(o))}}();SSF._general_num=general_fmt_num;function general_fmt(v,opts){switch(typeof v){case"string":return v;case"boolean":return v?"TRUE":"FALSE";case"number":return(v|0)===v?general_fmt_int(v,opts):general_fmt_num(v,opts)}throw new Error("unsupported value in General format: "+v)}SSF._general=general_fmt;function fix_hijri(date,o){return 0}function parse_date_code(v,opts,b2){if(v>2958465||v<0)return null;var date=v|0,time=Math.floor(86400*(v-date)),dow=0;var dout=[];var out={D:date,T:time,u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(out.u)<1e-6)out.u=0;fixopts(opts!=null?opts:opts=[]);if(opts.date1904)date+=1462;if(out.u>.999){out.u=0;if(++time==86400){time=0;++date}}if(date===60){dout=b2?[1317,10,29]:[1900,2,29];dow=3}else if(date===0){dout=b2?[1317,8,29]:[1900,1,0];dow=6}else{if(date>60)--date;var d=new Date(1900,0,1);d.setDate(d.getDate()+date-1);dout=[d.getFullYear(),d.getMonth()+1,d.getDate()];dow=d.getDay();if(date<60)dow=(dow+6)%7;if(b2)dow=fix_hijri(d,dout)}out.y=dout[0];out.m=dout[1];out.d=dout[2];out.S=time%60;time=Math.floor(time/60);out.M=time%60;time=Math.floor(time/60);out.H=time;out.q=dow;return out}SSF.parse_date_code=parse_date_code;function write_date(type,fmt,val,ss0){var o="",ss=0,tt=0,y=val.y,out,outl=0;switch(type){case 98:y=val.y+543;case 121:switch(fmt.length){case 1:case 2:out=y%100;outl=2;break;default:out=y%1e4;outl=4;break}break;case 109:switch(fmt.length){case 1:case 2:out=val.m;outl=fmt.length;break;case 3:return months[val.m-1][1];case 5:return months[val.m-1][0];default:return months[val.m-1][2]}break;case 100:switch(fmt.length){case 1:case 2:out=val.d;outl=fmt.length;break;case 3:return days[val.q][0];default:return days[val.q][1]}break;case 104:switch(fmt.length){case 1:case 2:out=1+(val.H+11)%12;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 72:switch(fmt.length){case 1:case 2:out=val.H;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 77:switch(fmt.length){case 1:case 2:out=val.M;outl=fmt.length;break;default:throw"bad minute format: "+fmt}break;case 115:if(val.u===0)switch(fmt){case"s":case"ss":return pad0(val.S,fmt.length);case".0":case".00":case".000":}switch(fmt){case"s":case"ss":case".0":case".00":case".000":if(ss0>=2)tt=ss0===3?1e3:100;else tt=ss0===1?10:1;ss=Math.round(tt*(val.S+val.u));if(ss>=60*tt)ss=0;if(fmt==="s")return ss===0?"0":""+ss/tt;o=pad0(ss,2+ss0);if(fmt==="ss")return o.substr(0,2);return"."+o.substr(2,fmt.length-1);default:throw"bad second format: "+fmt}case 90:switch(fmt){case"[h]":case"[hh]":out=val.D*24+val.H;break;case"[m]":case"[mm]":out=(val.D*24+val.H)*60+val.M;break;case"[s]":case"[ss]":out=((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u);break;default:throw"bad abstime format: "+fmt}outl=fmt.length===3?1:2;break;case 101:out=y;outl=1}if(outl>0)return pad0(out,outl);else return""}function commaify(s){if(s.length<=3)return s;var j=s.length%3,o=s.substr(0,j);for(;j!=s.length;j+=3)o+=(o.length>0?",":"")+s.substr(j,3);return o}var write_num=function make_write_num(){var pct1=/%/g;function write_num_pct(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_cm(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_exp(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(o.indexOf("e")===-1){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);while(o.substr(0,2)==="0."){o=o[0]+o.substr(2,period)+"."+o.substr(2+period);o=o.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}var frac1=/# (\?+)( ?)\/( ?)(\d+)/;function write_num_f1(r,aval,sign){var den=parseInt(r[4]),rr=Math.round(aval*den),base=Math.floor(rr/den);var myn=rr-base*den,myd=den;return sign+(base===0?"":""+base)+" "+(myn===0?fill(" ",r[1].length+1+r[4].length):pad_(myn,r[1].length)+r[2]+"/"+r[3]+pad0(myd,r[4].length))}function write_num_f2(r,aval,sign){return sign+(aval===0?"":""+aval)+fill(" ",r[1].length+2+r[4].length)}var dec1=/^#*0*\.(0+)/;var closeparen=/\).*[0#]/;var phone=/\(###\) ###\\?-####/;function hashq(str){var o="",cc;for(var i=0;i!=str.length;++i)switch(cc=str.charCodeAt(i)){case 35:break;case 63:o+=" ";break;case 48:o+="0";break;default:o+=String.fromCharCode(cc)}return o}function rnd(val,d){var dd=Math.pow(10,d);return""+Math.round(val*dd)/dd}function dec(val,d){return Math.round((val-Math.floor(val))*Math.pow(10,d))}function flr(val){if(val<2147483647&&val>-2147483648)return""+(val>=0?val|0:val-1|0);return""+Math.floor(val)}function write_num_flt(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_flt("n",ffmt,val);return"("+write_num_flt("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_flt(type,fmt.substr(fmt[1]==" "?2:1),val);var o,oo;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0r(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=pad0r(val,0);if(o==="0")o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f1(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0r(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=rnd(val,r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+rnd(aval,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(pad0r(aval,0));if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_flt(type,fmt,-val):commaify(""+Math.floor(val))+"."+pad0(dec(val,r[1].length),r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_flt(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=0)return write_num_int("n",ffmt,val);return"("+write_num_int("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm2(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct2(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp2(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_int(type,fmt.substr(fmt[1]==" "?2:1),val);var o;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=""+val;if(val===0)o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f2(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=(""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".") +}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+(""+aval).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(""+aval);if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val)+"."+fill("0",r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_int(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_int(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=12?"P":"A";q.t="T";hr="h";i+=3}else if(fmt.substr(i,5)==="AM/PM"){if(dt!=null)q.v=dt.H>=12?"PM":"AM";q.t="T";i+=5;hr="h"}else{q.t="t";++i}if(dt==null&&q.t==="T")return"";out[out.length]=q;lst=c;break;case"[":o=c;while(fmt[i++]!=="]"&&i-1||c=="\\"&&fmt[i+1]=="-"&&"0#".indexOf(fmt[i+2])>-1)o+=c;out[out.length]={t:"n",v:o};break;case"?":o=c;while(fmt[++i]===c)o+=c;q={t:c,v:o};out[out.length]=q;lst=c;break;case"*":++i;if(fmt[i]==" "||fmt[i]=="*")++i;break;case"(":case")":out[out.length]={t:flen===1?"t":c,v:c};++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=c;while("0123456789".indexOf(fmt[++i])>-1)o+=fmt[i];out[out.length]={t:"D",v:o};break;case" ":out[out.length]={t:c,v:c};++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"t",v:c};++i;break}}var bt=0,ss0=0,ssm;for(i=out.length-1,lst="t";i>=0;--i){switch(out[i].t){case"h":case"H":out[i].t=hr;lst="h";if(bt<1)bt=1;break;case"s":if(ssm=out[i].v.match(/\.0+$/))ss0=Math.max(ss0,ssm[0].length-1);if(bt<3)bt=3;case"d":case"y":case"M":case"e":lst=out[i].t;break;case"m":if(lst==="s"){out[i].t="M";if(bt<2)bt=2}break;case"X":if(out[i].v==="B2");break;case"Z":if(bt<1&&out[i].v.match(/[Hh]/))bt=1;if(bt<2&&out[i].v.match(/[Mm]/))bt=2;if(bt<3&&out[i].v.match(/[Ss]/))bt=3}}switch(bt){case 0:break;case 1:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}if(dt.M>=60){dt.M=0;++dt.H}break;case 2:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}break}var nstr="",jj;for(i=0;i-1||out[jj].v===" "&&out[jj+1]!=null&&out[jj+1].t=="?"))){out[i].v+=out[jj].v;out[jj]=undefined;++jj}nstr+=out[i].v;i=jj-1;break;case"G":out[i].t="t";out[i].v=general_fmt(v,opts);break}}var vv="",myv,ostr;if(nstr.length>0){myv=v<0&&nstr.charCodeAt(0)===45?-v:v;ostr=write_num(nstr.charCodeAt(0)===40?"(":"n",nstr,myv);jj=ostr.length-1;var decpt=out.length;for(i=0;i-1){decpt=i;break}var lasti=out.length;if(decpt===out.length&&ostr.indexOf("E")===-1){for(i=out.length-1;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;if(jj>=out[i].v.length-1){jj-=out[i].v.length;out[i].v=ostr.substr(jj+1,out[i].v.length)}else if(jj<0)out[i].v="";else{out[i].v=ostr.substr(0,jj+1);jj=-1}out[i].t="t";lasti=i}if(jj>=0&&lasti=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")-1:out[i].v.length-1;vv=out[i].v.substr(j+1);for(;j>=0;--j){if(jj>=0&&(out[i].v[j]==="0"||out[i].v[j]==="#"))vv=ostr[jj--]+vv}out[i].v=vv;out[i].t="t";lasti=i}if(jj>=0&&lasti-1&&i===decpt?out[i].v.indexOf(".")+1:0;vv=out[i].v.substr(0,j);for(;j-1){myv=flen>1&&v<0&&i>0&&out[i-1].v==="-"?-v:v;out[i].v=write_num(out[i].t,out[i].v,myv);out[i].t="t"}var retval="";for(i=0;i!==out.length;++i)if(out[i]!=null)retval+=out[i].v;return retval}SSF._eval=eval_fmt;var cfregex=/\[[=<>]/;var cfregex2=/\[([=<>]*)(-?\d+\.?\d*)\]/;function chkcond(v,rr){if(rr==null)return false;var thresh=parseFloat(rr[2]);switch(rr[1]){case"=":if(v==thresh)return true;break;case">":if(v>thresh)return true;break;case"<":if(v":if(v!=thresh)return true;break;case">=":if(v>=thresh)return true;break;case"<=":if(v<=thresh)return true;break}return false}function choose_fmt(f,v){var fmt=split_fmt(f);var l=fmt.length,lat=fmt[l-1].indexOf("@");if(l<4&&lat>-1)--l;if(fmt.length>4)throw"cannot find right format for |"+fmt+"|";if(typeof v!=="number")return[4,fmt.length===4||lat>-1?fmt[fmt.length-1]:"@"];switch(fmt.length){case 1:fmt=lat>-1?["General","General","General",fmt[0]]:[fmt[0],fmt[0],fmt[0],"@"];break;case 2:fmt=lat>-1?[fmt[0],fmt[0],fmt[0],fmt[1]]:[fmt[0],fmt[1],fmt[0],"@"];break;case 3:fmt=lat>-1?[fmt[0],fmt[1],fmt[0],fmt[2]]:[fmt[0],fmt[1],fmt[2],"@"];break;case 4:break}var ff=v>0?fmt[0]:v<0?fmt[1]:fmt[2];if(fmt[0].indexOf("[")===-1&&fmt[1].indexOf("[")===-1)return[l,ff];if(fmt[0].match(cfregex)!=null||fmt[1].match(cfregex)!=null){var m1=fmt[0].match(cfregex2);var m2=fmt[1].match(cfregex2);return chkcond(v,m1)?[l,fmt[0]]:chkcond(v,m2)?[l,fmt[1]]:[l,fmt[m1!=null&&m2!=null?2:1]]}return[l,ff]}function format(fmt,v,o){fixopts(o!=null?o:o=[]);var sfmt="";switch(typeof fmt){case"string":sfmt=fmt;break;case"number":sfmt=(o.table!=null?o.table:table_fmt)[fmt];break}if(isgeneral(sfmt,0))return general_fmt(v,o);var f=choose_fmt(sfmt,v);if(isgeneral(f[1]))return general_fmt(v,o);if(v===true)v="TRUE";else if(v===false)v="FALSE";else if(v===""||v==null)return"";return eval_fmt(f[1],v,o,f[0])}SSF._table=table_fmt;SSF.load=function load_entry(fmt,idx){table_fmt[idx]=fmt};SSF.format=format;SSF.get_table=function get_table(){return table_fmt};SSF.load_table=function load_table(tbl){for(var i=0;i!=392;++i)if(tbl[i]!==undefined)SSF.load(tbl[i],i)}};make_ssf(SSF);var XLMLFormatMap={"General Number":"General","General Date":SSF._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":SSF._table[15],"Short Date":SSF._table[14],"Long Time":SSF._table[19],"Medium Time":SSF._table[18],"Short Time":SSF._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:SSF._table[2],Standard:SSF._table[4],Percent:SSF._table[10],Scientific:SSF._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var DO_NOT_EXPORT_CFB=true;var CFB=function _CFB(){var exports={};exports.version="0.10.2";function parse(file){var mver=3;var ssz=512;var nmfs=0;var ndfs=0;var dir_start=0;var minifat_start=0;var difat_start=0;var fat_addrs=[];var blob=file.slice(0,512);prep_blob(blob,0);var mv=check_get_mver(blob);mver=mv[0];switch(mver){case 3:ssz=512;break;case 4:ssz=4096;break;default:throw"Major Version: Expected 3 or 4 saw "+mver}if(ssz!==512){blob=file.slice(0,ssz);prep_blob(blob,28)}var header=file.slice(0,ssz);check_shifts(blob,mver);var nds=blob.read_shift(4,"i");if(mver===3&&nds!==0)throw"# Directory Sectors: Expected 0 saw "+nds;blob.l+=4;dir_start=blob.read_shift(4,"i");blob.l+=4;blob.chk("00100000","Mini Stream Cutoff Size: ");minifat_start=blob.read_shift(4,"i");nmfs=blob.read_shift(4,"i");difat_start=blob.read_shift(4,"i");ndfs=blob.read_shift(4,"i");for(var q,j=0;j<109;++j){q=blob.read_shift(4,"i");if(q<0)break;fat_addrs[j]=q}var sectors=sectorify(file,ssz);sleuth_fat(difat_start,ndfs,sectors,ssz,fat_addrs);var sector_list=make_sector_list(sectors,dir_start,fat_addrs,ssz);sector_list[dir_start].name="!Directory";if(nmfs>0&&minifat_start!==ENDOFCHAIN)sector_list[minifat_start].name="!MiniFAT";sector_list[fat_addrs[0]].name="!FAT";sector_list.fat_addrs=fat_addrs;sector_list.ssz=ssz;var files={},Paths=[],FileIndex=[],FullPaths=[],FullPathDir={};read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex);build_full_paths(FileIndex,FullPathDir,FullPaths,Paths);var root_name=Paths.shift();Paths.root=root_name;var find_path=make_find_path(FullPaths,Paths,FileIndex,files,root_name);return{raw:{header:header,sectors:sectors},FileIndex:FileIndex,FullPaths:FullPaths,FullPathDir:FullPathDir,find:find_path}}function check_get_mver(blob){blob.chk(HEADER_SIGNATURE,"Header Signature: ");blob.chk(HEADER_CLSID,"CLSID: ");var mver=blob.read_shift(2,"u");return[blob.read_shift(2,"u"),mver]}function check_shifts(blob,mver){var shift=9;blob.chk("feff","Byte Order: ");switch(shift=blob.read_shift(2)){case 9:if(mver!==3)throw"MajorVersion/SectorShift Mismatch";break;case 12:if(mver!==4)throw"MajorVersion/SectorShift Mismatch";break;default:throw"Sector Shift: Expected 9 or 12 saw "+shift}blob.chk("0600","Mini Sector Shift: ");blob.chk("000000000000","Reserved: ")}function sectorify(file,ssz){var nsectors=Math.ceil(file.length/ssz)-1;var sectors=new Array(nsectors);for(var i=1;i>>2)-1;for(var i=0;i=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)];jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}return{nodes:buf,data:__toBuffer([buf_chain])}}function make_sector_list(sectors,dir_start,fat_addrs,ssz){var sl=sectors.length,sector_list=new Array(sl);var chkd=new Array(sl),buf,buf_chain;var modulus=ssz-1,i,j,k,jj;for(i=0;i=sl)k-=sl;if(chkd[k]===true)continue;buf_chain=[];for(j=k;j>=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)];jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}sector_list[k]={nodes:buf,data:__toBuffer([buf_chain])}}return sector_list}function read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex){var blob;var minifat_store=0,pl=Paths.length?2:0;var sector=sector_list[dir_start].data;var i=0,namelen=0,name,o,ctime,mtime;for(;i0&&minifat_store!==ENDOFCHAIN)sector_list[minifat_store].name="!StreamData"}else if(o.size>=4096){o.storage="fat";if(sector_list[o.start]===undefined)sector_list[o.start]=get_sector_list(sectors,o.start,sector_list.fat_addrs,sector_list.ssz);sector_list[o.start].name=o.name;o.content=sector_list[o.start].data.slice(0,o.size);prep_blob(o.content,0)}else{o.storage="minifat";if(minifat_store!==ENDOFCHAIN&&o.start!==ENDOFCHAIN){o.content=sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size);prep_blob(o.content,0)}}files[name]=o;FileIndex.push(o)}}function read_date(blob,offset){return new Date((__readUInt32LE(blob,offset+4)/1e7*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7-11644473600)*1e3)}var fs;function readFileSync(filename,options){if(fs===undefined)fs=require("fs");return parse(fs.readFileSync(filename),options)}function readSync(blob,options){switch(options!==undefined&&options.type!==undefined?options.type:"base64"){case"file":return readFileSync(blob,options);case"base64":return parse(s2a(Base64.decode(blob)),options);case"binary":return parse(s2a(blob),options)}return parse(blob)}var MSSZ=64;var ENDOFCHAIN=-2;var HEADER_SIGNATURE="d0cf11e0a1b11ae1";var HEADER_CLSID="00000000000000000000000000000000";var consts={MAXREGSECT:-6,DIFSECT:-4,FATSECT:-3,ENDOFCHAIN:ENDOFCHAIN,FREESECT:-1,HEADER_SIGNATURE:HEADER_SIGNATURE,HEADER_MINOR_VERSION:"3e00",MAXREGSID:-6,NOSTREAM:-1,HEADER_CLSID:HEADER_CLSID,EntryTypes:["unknown","storage","stream","lockbytes","property","root"]};exports.read=readSync;exports.parse=parse;exports.utils={ReadShift:ReadShift,CheckField:CheckField,prep_blob:prep_blob,bconcat:bconcat,consts:consts};return exports}();if(typeof require!=="undefined"&&typeof module!=="undefined"&&typeof DO_NOT_EXPORT_CFB==="undefined"){module.exports=CFB}function isval(x){return x!==undefined&&x!==null}function keys(o){return Object.keys(o)}function evert_key(obj,key){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]][key]]=K[i];return o}function evert(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=K[i];return o}function evert_num(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=parseInt(K[i],10);return o}function evert_arr(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i){if(o[obj[K[i]]]==null)o[obj[K[i]]]=[];o[obj[K[i]]].push(K[i])}return o}function datenum(v,date1904){if(date1904)v+=1462;var epoch=Date.parse(v);return(epoch+22091616e5)/(24*60*60*1e3)}function cc2str(arr){var o="";for(var i=0;i!=arr.length;++i)o+=String.fromCharCode(arr[i]);return o}function getdata(data){if(!data)return null;if(data.name.substr(-4)===".bin"){if(data.data)return char_codes(data.data);if(data.asNodeBuffer&&has_buf)return data.asNodeBuffer();if(data._data&&data._data.getContent)return Array.prototype.slice.call(data._data.getContent())}else{if(data.data)return data.name.substr(-4)!==".bin"?debom_xml(data.data):char_codes(data.data);if(data.asNodeBuffer&&has_buf)return debom_xml(data.asNodeBuffer().toString("binary"));if(data.asBinary)return debom_xml(data.asBinary());if(data._data&&data._data.getContent)return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)))}return null}function safegetzipfile(zip,file){var f=file;if(zip.files[f])return zip.files[f];f=file.toLowerCase();if(zip.files[f])return zip.files[f];f=f.replace(/\//g,"\\");if(zip.files[f])return zip.files[f];return null}function getzipfile(zip,file){var o=safegetzipfile(zip,file);if(o==null)throw new Error("Cannot find file "+file+" in zip");return o}function getzipdata(zip,file,safe){if(!safe)return getdata(getzipfile(zip,file));if(!file)return null;try{return getzipdata(zip,file)}catch(e){return null}}var _fs,jszip;if(typeof JSZip!=="undefined")jszip=JSZip;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){if(has_buf&&typeof jszip==="undefined")jszip=require("js"+"zip");if(typeof jszip==="undefined")jszip=require("./js"+"zip").JSZip;_fs=require("f"+"s")}}var attregexg=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var tagregex=/<[^>]*>/g;var nsregex=/<\w*:/,nsregex2=/<(\/?)\w+:/;function parsexmltag(tag,skip_root){var z=[];var eq=0,c=0;for(;eq!==tag.length;++eq)if((c=tag.charCodeAt(eq))===32||c===10||c===13)break;if(!skip_root)z[0]=tag.substr(0,eq);if(eq===tag.length)return z;var m=tag.match(attregexg),j=0,w="",v="",i=0,q="",cc="";if(m)for(i=0;i!=m.length;++i){cc=m[i];for(c=0;c!=cc.length;++c)if(cc.charCodeAt(c)===61)break;q=cc.substr(0,c);v=cc.substring(c+2,cc.length-1);for(j=0;j!=q.length;++j)if(q.charCodeAt(j)===58)break;if(j===q.length)z[q]=v;else z[(j===5&&q.substr(0,5)==="xmlns"?"xmlns":"")+q.substr(j+1)]=v}return z}function strip_ns(x){return x.replace(nsregex2,"<$1")}var encodings={""":'"',"'":"'",">":">","<":"<","&":"&"};var rencoding=evert(encodings);var rencstr="&<>'\"".split("");var unescapexml=function(){var encregex=/&[a-z]*;/g,coderegex=/_x([\da-fA-F]+)_/g;return function unescapexml(text){var s=text+"";return s.replace(encregex,function($$){return encodings[$$]}).replace(coderegex,function(m,c){return String.fromCharCode(parseInt(c,16))})}}();var decregex=/[&<>'"]/g,charegex=/[\u0000-\u0008\u000b-\u001f]/g;function escapexml(text){var s=text+"";return s.replace(decregex,function(y){return rencoding[y]}).replace(charegex,function(s){return"_x"+("000"+s.charCodeAt(0).toString(16)).substr(-4)+"_"})}var xlml_fixstr=function(){var entregex=/&#(\d+);/g;function entrepl($$,$1){return String.fromCharCode(parseInt($1,10))}return function xlml_fixstr(str){return str.replace(entregex,entrepl)}}();function parsexmlbool(value,tag){switch(value){case"1":case"true":case"TRUE":return true;default:return false}}var utf8read=function utf8reada(orig){var out="",i=0,c=0,d=0,e=0,f=0,w=0;while(i191&&c<224){out+=String.fromCharCode((c&31)<<6|d&63);continue}e=orig.charCodeAt(i++);if(c<240){out+=String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);continue}f=orig.charCodeAt(i++);w=((c&7)<<18|(d&63)<<12|(e&63)<<6|f&63)-65536;out+=String.fromCharCode(55296+(w>>>10&1023));out+=String.fromCharCode(56320+(w&1023))}return out};if(has_buf){var utf8readb=function utf8readb(data){var out=new Buffer(2*data.length),w,i,j=1,k=0,ww=0,c;for(i=0;i>>10&1023);w=56320+(w&1023)}if(ww!==0){out[k++]=ww&255;out[k++]=ww>>>8;ww=0}out[k++]=w%256;out[k++]=w>>>8}out.length=k;return out.toString("ucs2")};var corpus="foo bar baz☃🍣";if(utf8read(corpus)==utf8readb(corpus))utf8read=utf8readb;var utf8readc=function utf8readc(data){return Buffer(data,"binary").toString("utf8")};if(utf8read(corpus)==utf8readc(corpus))utf8read=utf8readc}var matchtag=function(){var mtcache={};return function matchtag(f,g){var t=f+"|"+g;if(mtcache[t]!==undefined)return mtcache[t];return mtcache[t]=new RegExp("<(?:\\w+:)?"+f+'(?: xml:space="preserve")?(?:[^>]*)>([^☃]*)",g||"")}}();var vtregex=function(){var vt_cache={};return function vt_regex(bt){if(vt_cache[bt]!==undefined)return vt_cache[bt];return vt_cache[bt]=new RegExp("(.*?)","g")}}();var vtvregex=/<\/?vt:variant>/g,vtmregex=/]*)>(.*)"+g+""}function wxt_helper(h){return keys(h).map(function(k){return" "+k+'="'+h[k]+'"'}).join("")}function writextag(f,g,h){return"<"+f+(isval(h)?wxt_helper(h):"")+(isval(g)?(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+""}function write_w3cdtf(d,t){try{return d.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}}function write_vt(s){switch(typeof s){case"string":return writextag("vt:lpwstr",s);case"number":return writextag((s|0)==s?"vt:i4":"vt:r8",String(s));case"boolean":return writextag("vt:bool",s?"true":"false")}if(s instanceof Date)return writextag("vt:filetime",write_w3cdtf(s));throw new Error("Unable to serialize "+s)}var XML_HEADER='\r\n';var XMLNS={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};XMLNS.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function readIEEE754(buf,idx,isLE,nl,ml){if(isLE===undefined)isLE=true;if(!nl)nl=8;if(!ml&&nl===8)ml=52;var e,m,el=nl*8-ml-1,eMax=(1<>1;var bits=-7,d=isLE?-1:1,i=isLE?nl-1:0,s=buf[idx+i];i+=d;e=s&(1<<-bits)-1;s>>>=-bits;bits+=el;for(;bits>0;e=e*256+buf[idx+i],i+=d,bits-=8);m=e&(1<<-bits)-1;e>>>=-bits;bits+=ml;for(;bits>0;m=m*256+buf[idx+i],i+=d,bits-=8);if(e===eMax)return m?NaN:(s?-1:1)*Infinity;else if(e===0)e=1-eBias;else{m=m+Math.pow(2,ml);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-ml)}var __toBuffer,___toBuffer;__toBuffer=___toBuffer=function toBuffer_(bufs){var x=[];for(var i=0;i0?__utf8(b,i+4,i+4+len-1):""};var __lpwstr,___lpwstr;__lpwstr=___lpwstr=function lpwstr_(b,i){var len=2*__readUInt32LE(b,i);return len>0?__utf8(b,i+4,i+4+len-1):""};var __double,___double;__double=___double=function(b,idx){return readIEEE754(b,idx)};var is_buf=function is_buf_a(a){return Array.isArray(a)};if(has_buf){__utf16le=function utf16le_b(b,s,e){if(!Buffer.isBuffer(b))return ___utf16le(b,s,e);return b.toString("utf16le",s,e)};__hexlify=function(b,s,l){return Buffer.isBuffer(b)?b.toString("hex",s,s+l):___hexlify(b,s,l)};__lpstr=function lpstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpstr(b,i);var len=b.readUInt32LE(i);return len>0?b.toString("utf8",i+4,i+4+len-1):""};__lpwstr=function lpwstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpwstr(b,i);var len=2*b.readUInt32LE(i);return b.toString("utf16le",i+4,i+4+len-1)};__utf8=function utf8_b(s,e){return this.toString("utf8",s,e)};__toBuffer=function(bufs){return bufs[0].length>0&&Buffer.isBuffer(bufs[0][0])?Buffer.concat(bufs[0]):___toBuffer(bufs)};bconcat=function(bufs){return Buffer.isBuffer(bufs[0])?Buffer.concat(bufs):[].concat.apply([],bufs)};__double=function double_(b,i){if(Buffer.isBuffer(b))return b.readDoubleLE(i);return ___double(b,i)};is_buf=function is_buf_b(a){return Buffer.isBuffer(a)||Array.isArray(a)}}if(typeof cptable!=="undefined"){__utf16le=function(b,s,e){return cptable.utils.decode(1200,b.slice(s,e))};__utf8=function(b,s,e){return cptable.utils.decode(65001,b.slice(s,e))};__lpstr=function(b,i){var len=__readUInt32LE(b,i);return len>0?cptable.utils.decode(current_codepage,b.slice(i+4,i+4+len-1)):""};__lpwstr=function(b,i){var len=2*__readUInt32LE(b,i);return len>0?cptable.utils.decode(1200,b.slice(i+4,i+4+len-1)):""}}var __readUInt8=function(b,idx){return b[idx]};var __readUInt16LE=function(b,idx){return b[idx+1]*(1<<8)+b[idx]};var __readInt16LE=function(b,idx){var u=b[idx+1]*(1<<8)+b[idx];return u<32768?u:(65535-u+1)*-1};var __readUInt32LE=function(b,idx){return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]};var __readInt32LE=function(b,idx){return b[idx+3]<<24|b[idx+2]<<16|b[idx+1]<<8|b[idx]};var ___unhexlify=function(s){return s.match(/../g).map(function(x){return parseInt(x,16)})};var __unhexlify=typeof Buffer!=="undefined"?function(s){return Buffer.isBuffer(s)?new Buffer(s,"hex"):___unhexlify(s)}:___unhexlify;function ReadShift(size,t){var o="",oI,oR,oo=[],w,vv,i,loc;switch(t){case"dbcs":loc=this.l;if(has_buf&&Buffer.isBuffer(this))o=this.slice(this.l,this.l+2*size).toString("utf16le");else for(i=0;i!=size;++i){o+=String.fromCharCode(__readUInt16LE(this,loc));loc+=2}size*=2;break;case"utf8":o=__utf8(this,this.l,this.l+size);break;case"utf16le":size*=2;o=__utf16le(this,this.l,this.l+size);break;case"lpstr":o=__lpstr(this,this.l);size=5+o.length;break;case"lpwstr":o=__lpwstr(this,this.l);size=5+o.length;if(o[o.length-1]=="\x00")size+=2;break;case"cstr":size=0;o="";while((w=__readUInt8(this,this.l+size++))!==0)oo.push(_getchar(w));o=oo.join("");break;case"wstr":size=0;o="";while((w=__readUInt16LE(this,this.l+size))!==0){oo.push(_getchar(w));size+=2}size+=2;o=oo.join("");break;case"dbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt16LE(this,loc)));loc+=2}o=oo.join("");size*=2;break;case"sbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt8(this,loc)));loc+=1}o=oo.join("");break;default:switch(size){case 1:oI=__readUInt8(this,this.l);this.l++;return oI;case 2:oI=(t==="i"?__readInt16LE:__readUInt16LE)(this,this.l);this.l+=2;return oI;case 4:if(t==="i"||(this[this.l+3]&128)===0){oI=__readInt32LE(this,this.l);this.l+=4;return oI}else{oR=__readUInt32LE(this,this.l);this.l+=4;return oR}break;case 8:if(t==="f"){oR=__double(this,this.l);this.l+=8;return oR}case 16:o=__hexlify(this,this.l,size);break}}this.l+=size;return o}function WriteShift(t,val,f){var size,i;if(f==="dbcs"){for(i=0;i!=val.length;++i)this.writeUInt16LE(val.charCodeAt(i),this.l+2*i);size=2*val.length}else switch(t){case 1:size=1;this[this.l]=val&255;break;case 3:size=3;this[this.l+2]=val&255;val>>>=8; +this[this.l+1]=val&255;val>>>=8;this[this.l]=val&255;break;case 4:size=4;this.writeUInt32LE(val,this.l);break;case 8:size=8;if(f==="f"){this.writeDoubleLE(val,this.l);break}case 16:break;case-4:size=4;this.writeInt32LE(val,this.l);break}this.l+=size;return this}function CheckField(hexstr,fld){var m=__hexlify(this,this.l,hexstr.length>>1);if(m!==hexstr)throw fld+"Expected "+hexstr+" saw "+m;this.l+=hexstr.length>>1}function prep_blob(blob,pos){blob.l=pos;blob.read_shift=ReadShift;blob.chk=CheckField;blob.write_shift=WriteShift}function parsenoop(blob,length){blob.l+=length}function writenoop(blob,length){blob.l+=length}function new_buf(sz){var o=new_raw_buf(sz);prep_blob(o,0);return o}function recordhopper(data,cb,opts){var tmpbyte,cntbyte,length;prep_blob(data,data.l||0);while(data.l0)bufs.push(curbuf);curbuf=null};var next=function ba_next(sz){if(sz=128?1:0)+1+length;if(length>=128)++l;if(length>=16384)++l;if(length>=2097152)++l;var o=ba.next(l);if(t<=127)o.write_shift(1,t);else{o.write_shift(1,(t&127)+128);o.write_shift(1,t>>7)}for(var i=0;i!=4;++i){if(length>=128){o.write_shift(1,(length&127)+128);length>>=7}else{o.write_shift(1,length);break}}if(length>0&&is_buf(payload))ba.push(payload)}function shift_cell_xls(cell,tgt){if(tgt.s){if(cell.cRel)cell.c+=tgt.s.c;if(cell.rRel)cell.r+=tgt.s.r}else{cell.c+=tgt.c;cell.r+=tgt.r}cell.cRel=cell.rRel=0;while(cell.c>=256)cell.c-=256;while(cell.r>=65536)cell.r-=65536;return cell}function shift_range_xls(cell,range){cell.s=shift_cell_xls(cell.s,range.s);cell.e=shift_cell_xls(cell.e,range.s);return cell}var OFFCRYPTO={};var make_offcrypto=function(O,_crypto){var crypto;if(typeof _crypto!=="undefined")crypto=_crypto;else if(typeof require!=="undefined"){try{crypto=require("cry"+"pto")}catch(e){crypto=null}}O.rc4=function(key,data){var S=new Array(256);var c=0,i=0,j=0,t=0;for(i=0;i!=256;++i)S[i]=i;for(i=0;i!=256;++i){j=j+S[i]+key[i%key.length].charCodeAt(0)&255;t=S[i];S[i]=S[j];S[j]=t}i=j=0;out=Buffer(data.length);for(c=0;c!=data.length;++c){i=i+1&255;j=(j+S[i])%256;t=S[i];S[i]=S[j];S[j]=t;out[c]=data[c]^S[S[i]+S[j]&255]}return out};if(crypto){O.md5=function(hex){return crypto.createHash("md5").update(hex).digest("hex")}}else{O.md5=function(hex){throw"unimplemented"}}};make_offcrypto(OFFCRYPTO,typeof crypto!=="undefined"?crypto:undefined);function parse_StrRun(data,length){return{ich:data.read_shift(2),ifnt:data.read_shift(2)}}function parse_RichStr(data,length){var start=data.l;var flags=data.read_shift(1);var str=parse_XLWideString(data);var rgsStrRun=[];var z={t:str,h:str};if((flags&1)!==0){var dwSizeStrRun=data.read_shift(4);for(var i=0;i!=dwSizeStrRun;++i)rgsStrRun.push(parse_StrRun(data));z.r=rgsStrRun}else z.r=""+escapexml(str)+"";if((flags&2)!==0){}data.l=start+length;return z}function write_RichStr(str,o){if(o==null)o=new_buf(5+2*str.t.length);o.write_shift(1,0);write_XLWideString(str.t,o);return o}function parse_XLSBCell(data){var col=data.read_shift(4);var iStyleRef=data.read_shift(2);iStyleRef+=data.read_shift(1)<<16;var fPhShow=data.read_shift(1);return{c:col,iStyleRef:iStyleRef}}function write_XLSBCell(cell,o){if(o==null)o=new_buf(8);o.write_shift(-4,cell.c);o.write_shift(3,cell.iStyleRef===undefined?cell.iStyleRef:cell.s);o.write_shift(1,0);return o}function parse_XLSBCodeName(data,length){return parse_XLWideString(data,length)}function parse_XLNullableWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0||cchCharacters===4294967295?"":data.read_shift(cchCharacters,"dbcs")}function write_XLNullableWideString(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.length>0?data.length:4294967295);if(data.length>0)o.write_shift(0,data,"dbcs");return o}function parse_XLWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0?"":data.read_shift(cchCharacters,"dbcs")}function write_XLWideString(data,o){if(o==null)o=new_buf(4+2*data.length);o.write_shift(4,data.length);if(data.length>0)o.write_shift(0,data,"dbcs");return o}var parse_RelID=parse_XLNullableWideString;var write_RelID=write_XLNullableWideString;function parse_RkNumber(data){var b=data.slice(data.l,data.l+4);var fX100=b[0]&1,fInt=b[0]&2;data.l+=4;b[0]&=252;var RK=fInt===0?__double([0,0,0,0,b[0],b[1],b[2],b[3]],0):__readInt32LE(b,0)>>2;return fX100?RK/100:RK}function parse_UncheckedRfX(data){var cell={s:{},e:{}};cell.s.r=data.read_shift(4);cell.e.r=data.read_shift(4);cell.s.c=data.read_shift(4);cell.e.c=data.read_shift(4);return cell}function write_UncheckedRfX(r,o){if(!o)o=new_buf(16);o.write_shift(4,r.s.r);o.write_shift(4,r.e.r);o.write_shift(4,r.s.c);o.write_shift(4,r.e.c);return o}function parse_Xnum(data,length){return data.read_shift(8,"f")}function write_Xnum(data,o){return(o||new_buf(8)).write_shift(8,"f",data)}var BErr={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var RBErr=evert_num(BErr);function parse_BrtColor(data,length){var out={};var d=data.read_shift(1);out.fValidRGB=d&1;out.xColorType=d>>>1;out.index=data.read_shift(1);out.nTintAndShade=data.read_shift(2,"i");out.bRed=data.read_shift(1);out.bGreen=data.read_shift(1);out.bBlue=data.read_shift(1);out.bAlpha=data.read_shift(1)}function parse_FontFlags(data,length){var d=data.read_shift(1);data.l++;var out={fItalic:d&2,fStrikeout:d&8,fOutline:d&16,fShadow:d&32,fCondense:d&64,fExtend:d&128};return out}{var VT_EMPTY=0;var VT_NULL=1;var VT_I2=2;var VT_I4=3;var VT_R4=4;var VT_R8=5;var VT_CY=6;var VT_DATE=7;var VT_BSTR=8;var VT_ERROR=10;var VT_BOOL=11;var VT_VARIANT=12;var VT_DECIMAL=14;var VT_I1=16;var VT_UI1=17;var VT_UI2=18;var VT_UI4=19;var VT_I8=20;var VT_UI8=21;var VT_INT=22;var VT_UINT=23;var VT_LPSTR=30;var VT_LPWSTR=31;var VT_FILETIME=64;var VT_BLOB=65;var VT_STREAM=66;var VT_STORAGE=67;var VT_STREAMED_Object=68;var VT_STORED_Object=69;var VT_BLOB_Object=70;var VT_CF=71;var VT_CLSID=72;var VT_VERSIONED_STREAM=73;var VT_VECTOR=4096;var VT_ARRAY=8192;var VT_STRING=80;var VT_USTR=81;var VT_CUSTOM=[VT_STRING,VT_USTR]}var DocSummaryPIDDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Category",t:VT_STRING},3:{n:"PresentationFormat",t:VT_STRING},4:{n:"ByteCount",t:VT_I4},5:{n:"LineCount",t:VT_I4},6:{n:"ParagraphCount",t:VT_I4},7:{n:"SlideCount",t:VT_I4},8:{n:"NoteCount",t:VT_I4},9:{n:"HiddenCount",t:VT_I4},10:{n:"MultimediaClipCount",t:VT_I4},11:{n:"Scale",t:VT_BOOL},12:{n:"HeadingPair",t:VT_VECTOR|VT_VARIANT},13:{n:"DocParts",t:VT_VECTOR|VT_LPSTR},14:{n:"Manager",t:VT_STRING},15:{n:"Company",t:VT_STRING},16:{n:"LinksDirty",t:VT_BOOL},17:{n:"CharacterCount",t:VT_I4},19:{n:"SharedDoc",t:VT_BOOL},22:{n:"HLinksChanged",t:VT_BOOL},23:{n:"AppVersion",t:VT_I4,p:"version"},26:{n:"ContentType",t:VT_STRING},27:{n:"ContentStatus",t:VT_STRING},28:{n:"Language",t:VT_STRING},29:{n:"Version",t:VT_STRING},255:{}};var SummaryPIDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Title",t:VT_STRING},3:{n:"Subject",t:VT_STRING},4:{n:"Author",t:VT_STRING},5:{n:"Keywords",t:VT_STRING},6:{n:"Comments",t:VT_STRING},7:{n:"Template",t:VT_STRING},8:{n:"LastAuthor",t:VT_STRING},9:{n:"RevNumber",t:VT_STRING},10:{n:"EditTime",t:VT_FILETIME},11:{n:"LastPrinted",t:VT_FILETIME},12:{n:"CreatedDate",t:VT_FILETIME},13:{n:"ModifiedDate",t:VT_FILETIME},14:{n:"PageCount",t:VT_I4},15:{n:"WordCount",t:VT_I4},16:{n:"CharCount",t:VT_I4},17:{n:"Thumbnail",t:VT_CF},18:{n:"ApplicationName",t:VT_LPSTR},19:{n:"DocumentSecurity",t:VT_I4},255:{}};var SpecialProperties={2147483648:{n:"Locale",t:VT_UI4},2147483651:{n:"Behavior",t:VT_UI4},1919054434:{}};(function(){for(var y in SpecialProperties)if(SpecialProperties.hasOwnProperty(y))DocSummaryPIDDSI[y]=SummaryPIDSI[y]=SpecialProperties[y]})();var CountryEnum={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var XLSFillPattern=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function rgbify(arr){return arr.map(function(x){return[x>>16&255,x>>8&255,x&255]})}var XLSIcv=rgbify([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0]);var ct2type={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.chartsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"TODO","application/vnd.ms-excel.dialogsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"TODO","application/vnd.ms-excel.macrosheet":"TODO","application/vnd.ms-excel.macrosheet+xml":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.ms-excel.comments":"comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"TODO","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO",sheet:"js"};var CT_LIST=function(){var o={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};keys(o).forEach(function(k){if(!o[k].xlsm)o[k].xlsm=o[k].xlsx});keys(o).forEach(function(k){keys(o[k]).forEach(function(v){ct2type[o[k][v]]=k})});return o}();var type2ct=evert_arr(ct2type);XMLNS.CT="http://schemas.openxmlformats.org/package/2006/content-types";function parse_ct(data,opts){var ctext={};if(!data||!data.match)return data;var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0].replace(nsregex,"<")){case"0?ct.calcchains[0]:"";ct.sst=ct.strs.length>0?ct.strs[0]:"";ct.style=ct.styles.length>0?ct.styles[0]:"";ct.defaults=ctext;delete ct.calcchains;return ct}var CTYPE_XML_ROOT=writextag("Types",null,{xmlns:XMLNS.CT,"xmlns:xsd":XMLNS.xsd,"xmlns:xsi":XMLNS.xsi});var CTYPE_DEFAULTS=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["rels",type2ct.rels[0]]].map(function(x){return writextag("Default",null,{Extension:x[0],ContentType:x[1]})});function write_ct(ct,opts){var o=[],v;o[o.length]=XML_HEADER;o[o.length]=CTYPE_XML_ROOT;o=o.concat(CTYPE_DEFAULTS);var f1=function(w){if(ct[w]&&ct[w].length>0){v=ct[w][0];o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})}};var f2=function(w){ct[w].forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})})};var f3=function(t){(ct[t]||[]).forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:type2ct[t][0]})})};f1("workbooks");f2("sheets");f3("themes");["strs","styles"].forEach(f1);["coreprops","extprops","custprops"].forEach(f3);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var RELS={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument"};function parse_rels(data,currentFilePath){if(!data)return data;if(currentFilePath.charAt(0)!=="/"){currentFilePath="/"+currentFilePath}var rels={};var hash={};var resolveRelativePathIntoAbsolute=function(to){var toksFrom=currentFilePath.split("/");toksFrom.pop();var toksTo=to.split("/");var reversed=[];while(toksTo.length!==0){var tokTo=toksTo.shift();if(tokTo===".."){toksFrom.pop()}else if(tokTo!=="."){toksFrom.push(tokTo)}}return toksFrom.join("/")};data.match(tagregex).forEach(function(x){var y=parsexmltag(x);if(y[0]==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CORE_PROPS=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];XMLNS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";RELS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var CORE_PROPS_REGEX=function(){var r=new Array(CORE_PROPS.length);for(var i=0;i]*>(.*)")}return r}();function parse_core_props(data){var p={};for(var i=0;i0)p[f[1]]=cur[1];if(f[2]==="date"&&p[f[1]])p[f[1]]=new Date(p[f[1]])}return p}var CORE_PROPS_XML_ROOT=writextag("cp:coreProperties",null,{"xmlns:cp":XMLNS.CORE_PROPS,"xmlns:dc":XMLNS.dc,"xmlns:dcterms":XMLNS.dcterms,"xmlns:dcmitype":XMLNS.dcmitype,"xmlns:xsi":XMLNS.xsi});function cp_doit(f,g,h,o,p){if(p[f]!=null||g==null||g==="")return;p[f]=g;o[o.length]=h?writextag(f,g,h):writetag(f,g)}function write_core_props(cp,opts){var o=[XML_HEADER,CORE_PROPS_XML_ROOT],p={};if(!cp)return o.join("");if(cp.CreatedDate!=null)cp_doit("dcterms:created",typeof cp.CreatedDate==="string"?cp.CreatedDate:write_w3cdtf(cp.CreatedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);if(cp.ModifiedDate!=null)cp_doit("dcterms:modified",typeof cp.ModifiedDate==="string"?cp.ModifiedDate:write_w3cdtf(cp.ModifiedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);for(var i=0;i!=CORE_PROPS.length;++i){var f=CORE_PROPS[i];cp_doit(f[0],cp[f[1]],null,o,p)}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var EXT_PROPS=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];XMLNS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";RELS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function parse_ext_props(data,p){var q={};if(!p)p={};EXT_PROPS.forEach(function(f){switch(f[2]){case"string":p[f[1]]=(data.match(matchtag(f[0]))||[])[1];break;case"bool":p[f[1]]=(data.match(matchtag(f[0]))||[])[1]==="true";break;case"raw":var cur=data.match(new RegExp("<"+f[0]+"[^>]*>(.*)"));if(cur&&cur.length>0)q[f[1]]=cur[1];break}});if(q.HeadingPairs&&q.TitlesOfParts){var v=parseVector(q.HeadingPairs);var j=0,widx=0;for(var i=0;i!==v.length;++i){switch(v[i].v){case"Worksheets":widx=j;p.Worksheets=+v[++i].v;break;case"Named Ranges":++i;break}}var parts=parseVector(q.TitlesOfParts).map(function(x){return utf8read(x.v)});p.SheetNames=parts.slice(widx,widx+p.Worksheets)}return p}var EXT_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.EXT_PROPS,"xmlns:vt":XMLNS.vt});function write_ext_props(cp,opts){var o=[],p={},W=writextag;if(!cp)cp={};cp.Application="SheetJS";o[o.length]=XML_HEADER;o[o.length]=EXT_PROPS_XML_ROOT;EXT_PROPS.forEach(function(f){if(cp[f[1]]===undefined)return;var v;switch(f[2]){case"string":v=cp[f[1]];break;case"bool":v=cp[f[1]]?"true":"false";break}if(v!==undefined)o[o.length]=W(f[0],v)});o[o.length]=W("HeadingPairs",W("vt:vector",W("vt:variant","Worksheets")+W("vt:variant",W("vt:i4",String(cp.Worksheets))),{size:2,baseType:"variant"}));o[o.length]=W("TitlesOfParts",W("vt:vector",cp.SheetNames.map(function(s){return""+s+""}).join(""),{size:cp.Worksheets,baseType:"lpstr"}));if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}XMLNS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";RELS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var custregex=/<[^>]+>[^<]*/g;function parse_cust_props(data,opts){var p={},name;var m=data.match(custregex);if(m)for(var i=0;i!=m.length;++i){var x=m[i],y=parsexmltag(x);switch(y[0]){case"":name=null;break;default:if(x.indexOf("");var type=toks[0].substring(4),text=toks[1];switch(type){case"lpstr":case"lpwstr":case"bstr":case"lpwstr":p[name]=unescapexml(text);break;case"bool":p[name]=parsexmlbool(text,"");break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":p[name]=parseInt(text,10);break;case"r4":case"r8":case"decimal":p[name]=parseFloat(text);break;case"filetime":case"date":p[name]=new Date(text);break;case"cy":case"error":p[name]=unescapexml(text);break;default:if(typeof console!=="undefined")console.warn("Unexpected",x,type,toks)}}else if(x.substr(0,2)==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function xlml_set_prop(Props,tag,val){switch(tag){case"Description":tag="Comments";break}Props[tag]=val}function parse_FILETIME(blob){var dwLowDateTime=blob.read_shift(4),dwHighDateTime=blob.read_shift(4);return new Date((dwHighDateTime/1e7*Math.pow(2,32)+dwLowDateTime/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function parse_lpstr(blob,type,pad){var str=blob.read_shift(0,"lpstr");if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_lpwstr(blob,type,pad){var str=blob.read_shift(0,"lpwstr");if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_VtStringBase(blob,stringType,pad){if(stringType===31)return parse_lpwstr(blob);return parse_lpstr(blob,stringType,pad)}function parse_VtString(blob,t,pad){return parse_VtStringBase(blob,t,pad===false?0:4)}function parse_VtUnalignedString(blob,t){if(!t)throw new Error("dafuq?");return parse_VtStringBase(blob,t,0)}function parse_VtVecUnalignedLpstrValue(blob){var length=blob.read_shift(4);var ret=[];for(var i=0;i!=length;++i)ret[i]=blob.read_shift(0,"lpstr");return ret}function parse_VtVecUnalignedLpstr(blob){return parse_VtVecUnalignedLpstrValue(blob)}function parse_VtHeadingPair(blob){var headingString=parse_TypedPropertyValue(blob,VT_USTR);var headerParts=parse_TypedPropertyValue(blob,VT_I4);return[headingString,headerParts]}function parse_VtVecHeadingPairValue(blob){var cElements=blob.read_shift(4);var out=[];for(var i=0;i!=cElements/2;++i)out.push(parse_VtHeadingPair(blob));return out}function parse_VtVecHeadingPair(blob){return parse_VtVecHeadingPairValue(blob)}function parse_dictionary(blob,CodePage){var cnt=blob.read_shift(4);var dict={};for(var j=0;j!=cnt;++j){var pid=blob.read_shift(4);var len=blob.read_shift(4);dict[pid]=blob.read_shift(len,CodePage===1200?"utf16le":"utf8").replace(chr0,"").replace(chr1,"!")}if(blob.l&3)blob.l=blob.l>>2+1<<2;return dict}function parse_BLOB(blob){var size=blob.read_shift(4);var bytes=blob.slice(blob.l,blob.l+size);if(size&3>0)blob.l+=4-(size&3)&3;return bytes}function parse_ClipboardData(blob){var o={};o.Size=blob.read_shift(4);blob.l+=o.Size;return o}function parse_VtVector(blob,cb){}function parse_TypedPropertyValue(blob,type,_opts){var t=blob.read_shift(2),ret,opts=_opts||{};blob.l+=2;if(type!==VT_VARIANT)if(t!==type&&VT_CUSTOM.indexOf(type)===-1)throw new Error("Expected type "+type+" saw "+t);switch(type===VT_VARIANT?t:type){case 2:ret=blob.read_shift(2,"i");if(!opts.raw)blob.l+=2;return ret;case 3:ret=blob.read_shift(4,"i");return ret;case 11:return blob.read_shift(4)!==0;case 19:ret=blob.read_shift(4);return ret;case 30:return parse_lpstr(blob,t,4).replace(chr0,"");case 31:return parse_lpwstr(blob);case 64:return parse_FILETIME(blob);case 65:return parse_BLOB(blob);case 71:return parse_ClipboardData(blob);case 80:return parse_VtString(blob,t,!opts.raw&&4).replace(chr0,"");case 81:return parse_VtUnalignedString(blob,t,4).replace(chr0,"");case 4108:return parse_VtVecHeadingPair(blob);case 4126:return parse_VtVecUnalignedLpstr(blob);default:throw new Error("TypedPropertyValue unrecognized type "+type+" "+t)}}function parse_PropertySet(blob,PIDSI){var start_addr=blob.l;var size=blob.read_shift(4);var NumProps=blob.read_shift(4);var Props=[],i=0;var CodePage=0;var Dictionary=-1,DictObj;for(i=0;i!=NumProps;++i){var PropID=blob.read_shift(4);var Offset=blob.read_shift(4);Props[i]=[PropID,Offset+start_addr]}var PropH={};for(i=0;i!=NumProps;++i){if(blob.l!==Props[i][1]){var fail=true;if(i>0&&PIDSI)switch(PIDSI[Props[i-1][0]].t){case 2:if(blob.l+2===Props[i][1]){blob.l+=2;fail=false}break;case 80:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break;case 4108:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break}if(!PIDSI&&blob.l<=Props[i][1]){fail=false;blob.l=Props[i][1]}if(fail)throw new Error("Read Error: Expected address "+Props[i][1]+" at "+blob.l+" :"+i)}if(PIDSI){var piddsi=PIDSI[Props[i][0]];PropH[piddsi.n]=parse_TypedPropertyValue(blob,piddsi.t,{raw:true});if(piddsi.p==="version")PropH[piddsi.n]=String(PropH[piddsi.n]>>16)+"."+String(PropH[piddsi.n]&65535);if(piddsi.n=="CodePage")switch(PropH[piddsi.n]){case 0:PropH[piddsi.n]=1252;case 1e4:case 1252:case 874:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 932:case 936:case 949:case 950:case 1200:case 1201:case 65e3:case-536:case 65001:case-535:set_cp(CodePage=PropH[piddsi.n]);break;default:throw new Error("Unsupported CodePage: "+PropH[piddsi.n])}}else{if(Props[i][0]===1){CodePage=PropH.CodePage=parse_TypedPropertyValue(blob,VT_I2);set_cp(CodePage);if(Dictionary!==-1){var oldpos=blob.l;blob.l=Props[Dictionary][1];DictObj=parse_dictionary(blob,CodePage);blob.l=oldpos}}else if(Props[i][0]===0){if(CodePage===0){Dictionary=i;blob.l=Props[i+1][1];continue}DictObj=parse_dictionary(blob,CodePage)}else{var name=DictObj[Props[i][0]];var val;switch(blob[blob.l]){case 65:blob.l+=4;val=parse_BLOB(blob);break;case 30:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 31:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 3:blob.l+=4;val=blob.read_shift(4,"i");break;case 19:blob.l+=4;val=blob.read_shift(4);break;case 5:blob.l+=4;val=blob.read_shift(8,"f");break;case 11:blob.l+=4;val=parsebool(blob,4);break;case 64:blob.l+=4;val=new Date(parse_FILETIME(blob));break;default:throw new Error("unparsed value: "+blob[blob.l])}PropH[name]=val}}}blob.l=start_addr+size;return PropH}function parse_PropertySetStream(file,PIDSI){var blob=file.content;prep_blob(blob,0);var NumSets,FMTID0,FMTID1,Offset0,Offset1;blob.chk("feff","Byte Order: ");var vers=blob.read_shift(2);var SystemIdentifier=blob.read_shift(4);blob.chk(CFB.utils.consts.HEADER_CLSID,"CLSID: ");NumSets=blob.read_shift(4);if(NumSets!==1&&NumSets!==2)throw"Unrecognized #Sets: "+NumSets;FMTID0=blob.read_shift(16);Offset0=blob.read_shift(4);if(NumSets===1&&Offset0!==blob.l)throw"Length mismatch";else if(NumSets===2){FMTID1=blob.read_shift(16);Offset1=blob.read_shift(4)}var PSet0=parse_PropertySet(blob,PIDSI);var rval={SystemIdentifier:SystemIdentifier};for(var y in PSet0)rval[y]=PSet0[y];rval.FMTID=FMTID0;if(NumSets===1)return rval;if(blob.l!==Offset1)throw"Length mismatch 2: "+blob.l+" !== "+Offset1;var PSet1;try{PSet1=parse_PropertySet(blob,null)}catch(e){}for(y in PSet1)rval[y]=PSet1[y];rval.FMTID=[FMTID0,FMTID1];return rval}function parsenoop2(blob,length){blob.read_shift(length);return null}function parslurp(blob,length,cb){var arr=[],target=blob.l+length;while(blob.l=8)current_codepage=1200;if(opts===undefined||opts.biff!==5){var fHighByte=blob.read_shift(1);if(fHighByte){width=2;encoding="dbcs-cont"}}var o=cch?blob.read_shift(cch,encoding):"";current_codepage=cp;return o}function parse_XLUnicodeRichExtendedString(blob){var cp=current_codepage;current_codepage=1200;var cch=blob.read_shift(2),flags=blob.read_shift(1);var fHighByte=flags&1,fExtSt=flags&4,fRichSt=flags&8;var width=1+(flags&1);var cRun,cbExtRst;var z={};if(fRichSt)cRun=blob.read_shift(2);if(fExtSt)cbExtRst=blob.read_shift(4);var encoding=flags&1?"dbcs-cont":"sbcs-cont";var msg=cch===0?"":blob.read_shift(cch,encoding);if(fRichSt)blob.l+=4*cRun;if(fExtSt)blob.l+=cbExtRst;z.t=msg;if(!fRichSt){z.raw=""+z.t+"";z.r=z.t}current_codepage=cp;return z}function parse_XLUnicodeStringNoCch(blob,cch,opts){var retval;var fHighByte=blob.read_shift(1);if(fHighByte===0){retval=blob.read_shift(cch,"sbcs-cont")}else{retval=blob.read_shift(cch,"dbcs-cont")}return retval}function parse_XLUnicodeString(blob,length,opts){var cch=blob.read_shift(opts!==undefined&&opts.biff>0&&opts.biff<8?1:2);if(cch===0){blob.l++;return""}return parse_XLUnicodeStringNoCch(blob,cch,opts)}function parse_XLUnicodeString2(blob,length,opts){if(opts.biff!==5&&opts.biff!==2)return parse_XLUnicodeString(blob,length,opts);var cch=blob.read_shift(1);if(cch===0){blob.l++;return""}return blob.read_shift(cch,"sbcs-cont")}var parse_ControlInfo=parsenoop;var parse_URLMoniker=function(blob,length){var len=blob.read_shift(4),start=blob.l;var extra=false;if(len>24){blob.l+=len-24;if(blob.read_shift(16)==="795881f43b1d7f48af2c825dc4852763")extra=true;blob.l=start}var url=blob.read_shift((extra?len-24:len)>>1,"utf16le").replace(chr0,"");if(extra)blob.l+=24;return url};var parse_FileMoniker=function(blob,length){var cAnti=blob.read_shift(2);var ansiLength=blob.read_shift(4);var ansiPath=blob.read_shift(ansiLength,"cstr");var endServer=blob.read_shift(2);var versionNumber=blob.read_shift(2);var cbUnicodePathSize=blob.read_shift(4);if(cbUnicodePathSize===0)return ansiPath.replace(/\\/g,"/");var cbUnicodePathBytes=blob.read_shift(4);var usKeyValue=blob.read_shift(2);var unicodePath=blob.read_shift(cbUnicodePathBytes>>1,"utf16le").replace(chr0,"");return unicodePath};var parse_HyperlinkMoniker=function(blob,length){var clsid=blob.read_shift(16);length-=16;switch(clsid){case"e0c9ea79f9bace118c8200aa004ba90b":return parse_URLMoniker(blob,length);case"0303000000000000c000000000000046":return parse_FileMoniker(blob,length);default:throw"unsupported moniker "+clsid}};var parse_HyperlinkString=function(blob,length){var len=blob.read_shift(4);var o=blob.read_shift(len,"utf16le").replace(chr0,"");return o};var parse_Hyperlink=function(blob,length){var end=blob.l+length;var sVer=blob.read_shift(4);if(sVer!==2)throw new Error("Unrecognized streamVersion: "+sVer);var flags=blob.read_shift(2);blob.l+=2;var displayName,targetFrameName,moniker,oleMoniker,location,guid,fileTime;if(flags&16)displayName=parse_HyperlinkString(blob,end-blob.l);if(flags&128)targetFrameName=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===257)moniker=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===1)oleMoniker=parse_HyperlinkMoniker(blob,end-blob.l);if(flags&8)location=parse_HyperlinkString(blob,end-blob.l);if(flags&32)guid=blob.read_shift(16);if(flags&64)fileTime=parse_FILETIME(blob,8);blob.l=end;var target=targetFrameName||moniker||oleMoniker;if(location)target+="#"+location;return{Target:target}};function parse_LongRGBA(blob,length){var r=blob.read_shift(1),g=blob.read_shift(1),b=blob.read_shift(1),a=blob.read_shift(1);return[r,g,b,a]}function parse_LongRGB(blob,length){var x=parse_LongRGBA(blob,length);x[3]=0;return x}function parse_XLSCell(blob,length){var rw=blob.read_shift(2);var col=blob.read_shift(2);var ixfe=blob.read_shift(2);return{r:rw,c:col,ixfe:ixfe}}function parse_frtHeader(blob){var rt=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=8;return{type:rt,flags:flags}}function parse_OptXLUnicodeString(blob,length,opts){return length===0?"":parse_XLUnicodeString2(blob,length,opts)}var HIDEOBJENUM=["SHOWALL","SHOWPLACEHOLDER","HIDEALL"];var parse_HideObjEnum=parseuint16;function parse_XTI(blob,length){var iSupBook=blob.read_shift(2),itabFirst=blob.read_shift(2,"i"),itabLast=blob.read_shift(2,"i");return[iSupBook,itabFirst,itabLast]}function parse_RkRec(blob,length){var ixfe=blob.read_shift(2);var RK=parse_RkNumber(blob);return[ixfe,RK]}function parse_AddinUdf(blob,length){blob.l+=4;length-=4;var l=blob.l+length;var udfName=parse_ShortXLUnicodeString(blob,length);var cb=blob.read_shift(2);l-=blob.l;if(cb!==l)throw"Malformed AddinUdf: padding = "+l+" != "+cb;blob.l+=cb;return udfName}function parse_Ref8U(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(2);var colLast=blob.read_shift(2);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}function parse_RefU(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(1);var colLast=blob.read_shift(1);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}var parse_Ref=parse_RefU;function parse_FtCmo(blob,length){blob.l+=4;var ot=blob.read_shift(2);var id=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=12;return[id,ot,flags]}function parse_FtNts(blob,length){var out={};blob.l+=4;blob.l+=16;out.fSharedNote=blob.read_shift(2);blob.l+=4;return out}function parse_FtCf(blob,length){var out={};blob.l+=4;blob.cf=blob.read_shift(2);return out}var FtTab={21:parse_FtCmo,19:parsenoop,18:function(blob,length){blob.l+=12},17:function(blob,length){blob.l+=8},16:parsenoop,15:parsenoop,13:parse_FtNts,12:function(blob,length){blob.l+=24},11:function(blob,length){blob.l+=10},10:function(blob,length){blob.l+=16},9:parsenoop,8:function(blob,length){blob.l+=6},7:parse_FtCf,6:function(blob,length){blob.l+=6},4:parsenoop,0:function(blob,length){blob.l+=4}};function parse_FtArray(blob,length,ot){var s=blob.l;var fts=[];while(blob.l":case"":break;case"":pass=false;break;case"":pass=false;break;default:if(!pass&&opts.WTF)throw"unrecognized "+y[0]+" in workbook"}});if(XMLNS.main.indexOf(wb.xmlns)===-1)throw new Error("Unknown Namespace: "+wb.xmlns);parse_wb_defaults(wb);return wb}var WB_XML_ROOT=writextag("workbook",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function safe1904(wb){try{return parsexmlbool(wb.Workbook.WBProps.date1904)?"true":"false"}catch(e){return"false"}}function write_wb_xml(wb,opts){var o=[XML_HEADER];o[o.length]=WB_XML_ROOT;o[o.length]=writextag("workbookPr",null,{date1904:safe1904(wb)});o[o.length]="";for(var i=0;i!=wb.SheetNames.length;++i)o[o.length]=writextag("sheet",null,{name:wb.SheetNames[i].substr(0,31),sheetId:""+(i+1),"r:id":"rId"+(i+1)});o[o.length]="";if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBundleSh(data,length){var z={};z.hsState=data.read_shift(4);z.iTabID=data.read_shift(4);z.strRelID=parse_RelID(data,length-8);z.name=parse_XLWideString(data);return z}function write_BrtBundleSh(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.hsState);o.write_shift(4,data.iTabID);write_RelID(data.strRelID,o);write_XLWideString(data.name.substr(0,31),o);return o}function parse_BrtWbProp(data,length){data.read_shift(4);var dwThemeVersion=data.read_shift(4);var strName=length>8?parse_XLWideString(data):"";return[dwThemeVersion,strName]}function write_BrtWbProp(data,o){if(!o)o=new_buf(8);o.write_shift(4,0);o.write_shift(4,0);return o}function parse_BrtFRTArchID$(data,length){var o={};data.read_shift(4);o.ArchID=data.read_shift(4);data.l+=length-8;return o}function parse_wb_bin(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,z;recordhopper(data,function hopper_wb(val,R){switch(R.n){case"BrtBundleSh":wb.Sheets.push(val);break;case"BrtBeginBook":break;case"BrtFileVersion":break;case"BrtWbProp":break;case"BrtACBegin":break;case"BrtAbsPath15":break;case"BrtACEnd":break;case"BrtWbFactoid":break;case"BrtBookProtection":break;case"BrtBeginBookViews":break;case"BrtBookView":break;case"BrtEndBookViews":break;case"BrtBeginBundleShs":break;case"BrtEndBundleShs":break;case"BrtBeginFnGroup":break;case"BrtEndFnGroup":break;case"BrtBeginExternals":break;case"BrtSupSelf":break;case"BrtSupBookSrc":break;case"BrtExternSheet":break;case"BrtEndExternals":break;case"BrtName":break;case"BrtCalcProp":break;case"BrtUserBookView":break;case"BrtBeginPivotCacheIDs":break;case"BrtBeginPivotCacheID":break;case"BrtEndPivotCacheID":break;case"BrtEndPivotCacheIDs":break;case"BrtWebOpt":break;case"BrtFileRecover":break;case"BrtFileSharing":break;case"BrtBeginSmartTagTypes":break;case"BrtSmartTagType":break;case"BrtEndSmartTagTypes":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTArchID$":break;case"BrtWorkBookPr15":break;case"BrtFRTEnd":pass=false;break;case"BrtEndBook":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}});parse_wb_defaults(wb);return wb}function write_BUNDLESHS(ba,wb,opts){write_record(ba,"BrtBeginBundleShs");for(var idx=0;idx!=wb.SheetNames.length;++idx){var d={hsState:0,iTabID:idx+1,strRelID:"rId"+(idx+1),name:wb.SheetNames[idx]};write_record(ba,"BrtBundleSh",write_BrtBundleSh(d))}write_record(ba,"BrtEndBundleShs")}function write_BrtFileVersion(data,o){if(!o)o=new_buf(127);for(var i=0;i!=4;++i)o.write_shift(4,0);write_XLWideString("SheetJS",o);write_XLWideString(XLSX.version,o);write_XLWideString(XLSX.version,o);write_XLWideString("7262",o);o.length=o.l;return o}function write_BOOKVIEWS(ba,wb,opts){write_record(ba,"BrtBeginBookViews");write_record(ba,"BrtEndBookViews")}function write_BrtCalcProp(data,o){if(!o)o=new_buf(26);o.write_shift(4,0);o.write_shift(4,1);o.write_shift(4,0);write_Xnum(0,o);o.write_shift(-4,1023);o.write_shift(1,51);o.write_shift(1,0);return o}function write_BrtFileRecover(data,o){if(!o)o=new_buf(1);o.write_shift(1,0);return o}function write_wb_bin(wb,opts){var ba=buf_array();write_record(ba,"BrtBeginBook");write_record(ba,"BrtFileVersion",write_BrtFileVersion());write_record(ba,"BrtWbProp",write_BrtWbProp());write_BOOKVIEWS(ba,wb,opts);write_BUNDLESHS(ba,wb,opts);write_record(ba,"BrtCalcProp",write_BrtCalcProp());write_record(ba,"BrtFileRecover",write_BrtFileRecover());write_record(ba,"BrtEndBook");return ba.end()}function parse_wb(data,name,opts){return(name.substr(-4)===".bin"?parse_wb_bin:parse_wb_xml)(data,opts)}function parse_ws(data,name,opts,rels){return(name.substr(-4)===".bin"?parse_ws_bin:parse_ws_xml)(data,opts,rels)}function parse_sty(data,name,opts){return(name.substr(-4)===".bin"?parse_sty_bin:parse_sty_xml)(data,opts)}function parse_theme(data,name,opts){return parse_theme_xml(data,opts)}function parse_sst(data,name,opts){return(name.substr(-4)===".bin"?parse_sst_bin:parse_sst_xml)(data,opts)}function parse_cmnt(data,name,opts){return(name.substr(-4)===".bin"?parse_comments_bin:parse_comments_xml)(data,opts)}function parse_cc(data,name,opts){return(name.substr(-4)===".bin"?parse_cc_bin:parse_cc_xml)(data,opts)}function write_wb(wb,name,opts){return(name.substr(-4)===".bin"?write_wb_bin:write_wb_xml)(wb,opts)}function write_ws(data,name,opts,wb){return(name.substr(-4)===".bin"?write_ws_bin:write_ws_xml)(data,opts,wb)}function write_sty(data,name,opts){return(name.substr(-4)===".bin"?write_sty_bin:write_sty_xml)(data,opts)}function write_sst(data,name,opts){return(name.substr(-4)===".bin"?write_sst_bin:write_sst_xml)(data,opts)}var attregexg2=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var attregex2=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var _chr=function(c){return String.fromCharCode(c)};function xlml_parsexmltag(tag,skip_root){var words=tag.split(/\s+/);var z=[];if(!skip_root)z[0]=words[0];if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_parsexmltagobj(tag){var words=tag.split(/\s+/);var z={};if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_format(format,value){var fmt=XLMLFormatMap[format]||unescapexml(format);if(fmt==="General")return SSF._general(value);return SSF.format(fmt,value)}function xlml_set_custprop(Custprops,Rn,cp,val){switch((cp[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":val=parsexmlbool(val);break;case"i2":case"int":val=parseInt(val,10);break;case"r4":case"float":val=parseFloat(val);break;case"date":case"dateTime.tz":val=new Date(val);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw"bad custprop:"+cp[0]}Custprops[unescapexml(Rn[3])]=val}function safe_format_xlml(cell,nf,o){try{if(cell.t==="e"){cell.w=cell.w||BErr[cell.v]}else if(nf==="General"){if(cell.t==="n"){if((cell.v|0)===cell.v)cell.w=SSF._general_int(cell.v);else cell.w=SSF._general_num(cell.v)}else cell.w=SSF._general(cell.v)}else cell.w=xlml_format(nf||"General",cell.v);if(o.cellNF)cell.z=XLMLFormatMap[nf]||nf||"General"}catch(e){if(o.WTF)throw e}}function process_style_xlml(styles,stag,opts){if(opts.cellStyles){if(stag.Interior){var I=stag.Interior;if(I.Pattern)I.patternType=XLMLPatternTypeMap[I.Pattern]||I.Pattern}}styles[stag.ID]=stag}function parse_xlml_data(xml,ss,data,cell,base,styles,csty,row,o){var nf="General",sid=cell.StyleID,S={};o=o||{};var interiors=[];if(sid===undefined&&row)sid=row.StyleID;if(sid===undefined&&csty)sid=csty.StyleID;while(styles[sid]!==undefined){if(styles[sid].nf)nf=styles[sid].nf;if(styles[sid].Interior)interiors.push(styles[sid].Interior);if(!styles[sid].Parent)break;sid=styles[sid].Parent}switch(data.Type){case"Boolean":cell.t="b";cell.v=parsexmlbool(xml);break;case"String":cell.t="s";cell.r=xlml_fixstr(unescapexml(xml));cell.v=xml.indexOf("<")>-1?ss:cell.r;break;case"DateTime":cell.v=(Date.parse(xml)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(cell.v!==cell.v)cell.v=unescapexml(xml);else if(cell.v>=1&&cell.v<60)cell.v=cell.v-1;if(!nf||nf=="General")nf="yyyy-mm-dd";case"Number":if(cell.v===undefined)cell.v=+xml;if(!cell.t)cell.t="n";break;case"Error":cell.t="e";cell.v=RBErr[xml];cell.w=xml;break;default:cell.t="s";cell.v=xlml_fixstr(ss);break}safe_format_xlml(cell,nf,o);if(o.cellFormula!=null&&cell.Formula){cell.f=rc_to_a1(unescapexml(cell.Formula),base);cell.Formula=undefined}if(o.cellStyles){interiors.forEach(function(x){if(!S.patternType&&x.patternType)S.patternType=x.patternType});cell.s=S}cell.ixfe=cell.StyleID!==undefined?cell.StyleID:"Default"}function xlml_clean_comment(comment){comment.t=comment.v;comment.v=comment.w=comment.ixfe=undefined}function xlml_normalize(d){if(has_buf&&Buffer.isBuffer(d))return d.toString("utf8");if(typeof d==="string")return d;throw"badf"}var xlmlregex=/<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/gm;function parse_xlml_xml(d,opts){var str=xlml_normalize(d);var Rn;var state=[],tmp;var sheets={},sheetnames=[],cursheet={},sheetname="";var table={},cell={},row={},dtag,didx;var c=0,r=0;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var styles={},stag={};var ss="",fidx=0;var mergecells=[];var Props={},Custprops={},pidx=0,cp={};var comments=[],comment={};var cstys=[],csty;xlmlregex.lastIndex=0;while(Rn=xlmlregex.exec(str))switch(Rn[3]){case"Data":if(state[state.length-1][1])break;if(Rn[1]==="/")parse_xlml_data(str.slice(didx,Rn.index),ss,dtag,state[state.length-1][0]=="Comment"?comment:cell,{c:c,r:r},styles,cstys[c],row,opts);else{ss="";dtag=xlml_parsexmltag(Rn[0]);didx=Rn.index+Rn[0].length}break;case"Cell":if(Rn[1]==="/"){if(comments.length>0)cell.c=comments;if((!opts.sheetRows||opts.sheetRows>r)&&cell.v!==undefined)cursheet[encode_col(c)+encode_row(r)]=cell;if(cell.HRef){cell.l={Target:cell.HRef,tooltip:cell.HRefScreenTip};cell.HRef=cell.HRefScreenTip=undefined}if(cell.MergeAcross||cell.MergeDown){var cc=c+(parseInt(cell.MergeAcross,10)|0);var rr=r+(parseInt(cell.MergeDown,10)|0);mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}})}++c;if(cell.MergeAcross)c+=+cell.MergeAcross}else{cell=xlml_parsexmltagobj(Rn[0]);if(cell.Index)c=+cell.Index-1;if(crefguess.e.c)refguess.e.c=c;if(Rn[0].substr(-2)==="/>")++c;comments=[]}break;case"Row":if(Rn[1]==="/"||Rn[0].substr(-2)==="/>"){if(rrefguess.e.r)refguess.e.r=r;if(Rn[0].substr(-2)==="/>"){row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}c=0;++r}else{row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}break;case"Worksheet":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;sheetnames.push(sheetname);if(refguess.s.r<=refguess.e.r&&refguess.s.c<=refguess.e.c)cursheet["!ref"]=encode_range(refguess);if(mergecells.length)cursheet["!merges"]=mergecells;sheets[sheetname]=cursheet}else{refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};r=c=0;state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);sheetname=tmp.Name;cursheet={};mergecells=[]}break;case"Table":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].slice(-2)=="/>")break;else{table=xlml_parsexmltag(Rn[0]);state.push([Rn[3],false]);cstys=[]}break;case"Style":if(Rn[1]==="/")process_style_xlml(styles,stag,opts);else stag=xlml_parsexmltag(Rn[0]);break;case"NumberFormat":stag.nf=xlml_parsexmltag(Rn[0]).Format||"General";break;case"Column":if(state[state.length-1][0]!=="Table")break;csty=xlml_parsexmltag(Rn[0]);cstys[csty.Index-1||cstys.length]=csty;for(var i=0;i<+csty.Span;++i)cstys[cstys.length]=csty;break;case"NamedRange":break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")ss+=str.slice(fidx,Rn.index);else fidx=Rn.index+Rn[0].length;break;case"Interior":if(!opts.cellStyles)break;stag.Interior=xlml_parsexmltag(Rn[0]);break;case"Protection":break;case"Author":case"Title":case"Description":case"Created":case"Keywords":case"Subject":case"Category":case"Company":case"LastAuthor":case"LastSaved":case"LastPrinted":case"Version":case"Revision":case"TotalTime":case"HyperlinkBase":case"Manager":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_prop(Props,Rn[3],str.slice(pidx,Rn.index));else pidx=Rn.index+Rn[0].length;break;case"Paragraphs":break;case"Styles":case"Workbook":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else state.push([Rn[3],false]);break;case"Comment":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;xlml_clean_comment(comment);comments.push(comment)}else{state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);comment={a:tmp.Author}}break;case"Name":break;case"ComponentOptions":case"DocumentProperties":case"CustomDocumentProperties":case"OfficeDocumentSettings":case"PivotTable":case"PivotCache":case"Names":case"MapInfo":case"PageBreaks":case"QueryTable":case"DataValidation":case"AutoFilter":case"Sorting":case"Schema":case"data":case"ConditionalFormatting":case"SmartTagType":case"SmartTags":case"ExcelWorkbook":case"WorkbookOptions":case"WorksheetOptions":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].charAt(Rn[0].length-2)!=="/")state.push([Rn[3],true]);break;default:var seen=true;switch(state[state.length-1][0]){case"OfficeDocumentSettings":switch(Rn[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:seen=false}break;case"ComponentOptions":switch(Rn[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:seen=false}break;case"ExcelWorkbook":switch(Rn[3]){case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break; +case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Date1904":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:seen=false}break;case"WorkbookOptions":switch(Rn[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:seen=false}break;case"WorksheetOptions":switch(Rn[3]){case"Unsynced":break;case"Visible":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"Header":break;case"Footer":break;case"PageSetup":break;case"PageMargins":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:seen=false}break;case"PivotTable":case"PivotCache":switch(Rn[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:seen=false}break;case"PageBreaks":switch(Rn[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:seen=false}break;case"AutoFilter":switch(Rn[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:seen=false}break;case"QueryTable":switch(Rn[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:seen=false}break;case"Sorting":case"ConditionalFormatting":case"DataValidation":switch(Rn[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:seen=false}break;case"MapInfo":case"Schema":case"data":switch(Rn[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":case"element":case"complexType":case"datatype":case"all":case"attribute":case"extends":break;case"row":break;default:seen=false}break;case"SmartTags":break;default:seen=false;break}if(seen)break;if(!state[state.length-1][1])throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|");if(state[state.length-1][0]==="CustomDocumentProperties"){if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_custprop(Custprops,Rn,cp,str.slice(pidx,Rn.index));else{cp=Rn;pidx=Rn.index+Rn[0].length}break}if(opts.WTF)throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|")}var out={};if(!opts.bookSheets&&!opts.bookProps)out.Sheets=sheets;out.SheetNames=sheetnames;out.SSF=SSF.get_table();out.Props=Props;out.Custprops=Custprops;return out}function parse_xlml(data,opts){fix_read_opts(opts=opts||{});switch(opts.type||"base64"){case"base64":return parse_xlml_xml(Base64.decode(data),opts);case"binary":case"buffer":case"file":return parse_xlml_xml(data,opts);case"array":return parse_xlml_xml(data.map(_chr).join(""),opts)}}function write_xlml(wb,opts){}function parse_compobj(obj){var v={};var o=obj.content;var l=28,m;m=__lpstr(o,l);l+=4+__readUInt32LE(o,l);v.UserType=m;m=__readUInt32LE(o,l);l+=4;switch(m){case 0:break;case 4294967295:case 4294967294:l+=4;break;default:if(m>400)throw new Error("Unsupported Clipboard: "+m.toString(16));l+=m}m=__lpstr(o,l);l+=m.length===0?0:5+m.length;v.Reserved1=m;if((m=__readUInt32LE(o,l))!==1907550708)return v;throw"Unsupported Unicode Extension"}function slurp(R,blob,length,opts){var l=length;var bufs=[];var d=blob.slice(blob.l,blob.l+l);if(opts&&opts.enc&&opts.enc.insitu_decrypt)switch(R.n){case"BOF":case"FilePass":case"FileLock":case"InterfaceHdr":case"RRDInfo":case"RRDHead":case"UsrExcl":break;default:if(d.length===0)break;opts.enc.insitu_decrypt(d)}bufs.push(d);blob.l+=l;var next=XLSRecordEnum[__readUInt16LE(blob,blob.l)];while(next!=null&&next.n==="Continue"){l=__readUInt16LE(blob,blob.l+2);bufs.push(blob.slice(blob.l+4,blob.l+4+l));blob.l+=4+l;next=XLSRecordEnum[__readUInt16LE(blob,blob.l)]}var b=bconcat(bufs);prep_blob(b,0);var ll=0;b.lens=[];for(var j=0;jrange.e.r)range.e.r=cell.r+1;if(cell.c+1>range.e.c)range.e.c=cell.c+1}if(options.sheetRows&&lastcell.r>=options.sheetRows)cell_valid=false;else out[last_cell]=line};var opts={enc:false,sbcch:0,snames:[],sharedf:shared_formulae,arrayf:array_formulae,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,wtf:false};if(options.password)opts.password=options.password;var mergecells=[];var objects=[];var supbooks=[[]];var sbc=0,sbci=0,sbcli=0;supbooks.SheetNames=opts.snames;supbooks.sharedf=opts.sharedf;supbooks.arrayf=opts.arrayf;var last_Rn="";var file_depth=0;opts.codepage=1200;set_cp(1200);while(blob.l0&&range.e.c>0){range.e.r--;range.e.c--;out["!ref"]=encode_range(range);range.e.r++;range.e.c++}if(mergecells.length>0)out["!merges"]=mergecells;if(objects.length>0)out["!objects"]=objects}if(cur_sheet==="")Preamble=out;else Sheets[cur_sheet]=out;out={}}break;case"BOF":{if(opts.biff!==8);else if(val.BIFFVer===1280)opts.biff=5;else if(val.BIFFVer===2)opts.biff=2;else if(val.BIFFVer===7)opts.biff=2;if(file_depth++)break;cell_valid=true;out={};if(opts.biff===2){if(cur_sheet==="")cur_sheet="Sheet1";range={s:{r:0,c:0},e:{r:0,c:0}}}else cur_sheet=(Directory[s]||{name:""}).name;mergecells=[];objects=[]}break;case"Number":case"BIFF2NUM":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"BoolErr":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:val.t};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"RK":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.rknum,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"MulRk":{for(var j=val.c;j<=val.C;++j){var ixfe=val.rkrec[j-val.c][0];temp_val={ixfe:ixfe,XF:XFs[ixfe],v:val.rkrec[j-val.c][1],t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:j,r:val.r},temp_val,options)}}break;case"Formula":{switch(val.val){case"String":last_formula=val;break;case"Array Formula":throw"Array Formula unsupported";default:temp_val={v:val.val,ixfe:val.cell.ixfe,t:val.tt};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(val.formula,range,val.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(val.cell,temp_val,options);last_formula=val}}break;case"String":{if(last_formula){last_formula.val=val;temp_val={v:last_formula.val,ixfe:last_formula.cell.ixfe,t:"s"};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(last_formula.formula,range,last_formula.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(last_formula.cell,temp_val,options);last_formula=null}}break;case"Array":{array_formulae.push(val)}break;case"ShrFmla":{if(!cell_valid)break;shared_formulae[encode_cell(last_formula.cell)]=val[0]}break;case"LabelSst":temp_val=make_cell(sst[val.isst].t,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Label":case"BIFF2STR":temp_val=make_cell(val.val,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Dimensions":{if(file_depth===1)range=val}break;case"SST":{sst=val}break;case"Format":{SSF.load(val[1],val[0])}break;case"MergeCells":mergecells=mergecells.concat(val);break;case"Obj":objects[val.cmo[0]]=opts.lastobj=val;break;case"TxO":opts.lastobj.TxO=val;break;case"HLink":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l=val[1]}break;case"HLinkTooltip":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l.tooltip=val[1]}break;case"Note":{if(opts.biff<=5&&opts.biff>=2)break;cc=out[encode_cell(val[0])];var noteobj=objects[val[2]];if(!cc)break;if(!cc.c)cc.c=[];cmnt={a:val[1],t:noteobj.TxO.t};cc.c.push(cmnt)}break;default:switch(R.n){case"ClrtClient":break;case"XFExt":update_xfext(XFs[val.ixfe],val.ext);break;case"NameCmt":break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"Setup":break;case"DefColWidth":break;case"GCW":break;case"LHRecord":break;case"ColInfo":break;case"Row":break;case"DBCell":break;case"MulBlank":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Blank":break;case"Country":country=val;break;case"RecalcId":break;case"DefaultRowHeight":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":palette=val;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":case"Window1":case"Window2":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(R.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":break;case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":break;case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"ImData":break;case"WebPub":case"AutoWebPub":case"RightMargin":case"LeftMargin":case"TopMargin":case"BottomMargin":case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;case"ExternCount":break;case"RString":break;case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;default:switch(R.n){case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;default:if(options.WTF)throw"Unrecognized Record "+R.n}}}}}else blob.l+=length}var sheetnamesraw=opts.biff===2?["Sheet1"]:Object.keys(Directory).sort(function(a,b){return Number(a)-Number(b)}).map(function(x){return Directory[x].name});var sheetnames=sheetnamesraw.slice();wb.Directory=sheetnamesraw;wb.SheetNames=sheetnamesraw;if(!options.bookSheets)wb.Sheets=Sheets;wb.Preamble=Preamble;wb.Strings=sst;wb.SSF=SSF.get_table();if(opts.enc)wb.Encryption=opts.enc;wb.Metadata={};if(country!==undefined)wb.Metadata.Country=country;return wb}function parse_xlscfb(cfb,options){if(!options)options={};fix_read_opts(options);reset_cp();var CompObj,Summary,Workbook;if(cfb.find){CompObj=cfb.find("!CompObj");Summary=cfb.find("!SummaryInformation");Workbook=cfb.find("/Workbook")}else{prep_blob(cfb,0);Workbook={content:cfb}}if(!Workbook)Workbook=cfb.find("/Book");var CompObjP,SummaryP,WorkbookP;if(CompObj)CompObjP=parse_compobj(CompObj);if(options.bookProps&&!options.bookSheets)WorkbookP={};else{if(Workbook)WorkbookP=parse_workbook(Workbook.content,options,!!Workbook.find);else throw new Error("Cannot find Workbook stream")}if(cfb.find)parse_props(cfb);var props={};for(var y in cfb.Summary)props[y]=cfb.Summary[y];for(y in cfb.DocSummary)props[y]=cfb.DocSummary[y];WorkbookP.Props=WorkbookP.Custprops=props;if(options.bookFiles)WorkbookP.cfb=cfb;WorkbookP.CompObjP=CompObjP;return WorkbookP}function parse_props(cfb){var DSI=cfb.find("!DocumentSummaryInformation");if(DSI)try{cfb.DocSummary=parse_PropertySetStream(DSI,DocSummaryPIDDSI)}catch(e){}var SI=cfb.find("!SummaryInformation");if(SI)try{cfb.Summary=parse_PropertySetStream(SI,SummaryPIDSI)}catch(e){}}var XLSBRecordEnum={0:{n:"BrtRowHdr",f:parse_BrtRowHdr},1:{n:"BrtCellBlank",f:parse_BrtCellBlank},2:{n:"BrtCellRk",f:parse_BrtCellRk},3:{n:"BrtCellError",f:parse_BrtCellError},4:{n:"BrtCellBool",f:parse_BrtCellBool},5:{n:"BrtCellReal",f:parse_BrtCellReal},6:{n:"BrtCellSt",f:parse_BrtCellSt},7:{n:"BrtCellIsst",f:parse_BrtCellIsst},8:{n:"BrtFmlaString",f:parse_BrtFmlaString},9:{n:"BrtFmlaNum",f:parse_BrtFmlaNum},10:{n:"BrtFmlaBool",f:parse_BrtFmlaBool},11:{n:"BrtFmlaError",f:parse_BrtFmlaError},16:{n:"BrtFRTArchID$",f:parse_BrtFRTArchID$},19:{n:"BrtSSTItem",f:parse_RichStr},20:{n:"BrtPCDIMissing",f:parsenoop},21:{n:"BrtPCDINumber",f:parsenoop},22:{n:"BrtPCDIBoolean",f:parsenoop},23:{n:"BrtPCDIError",f:parsenoop},24:{n:"BrtPCDIString",f:parsenoop},25:{n:"BrtPCDIDatetime",f:parsenoop},26:{n:"BrtPCDIIndex",f:parsenoop},27:{n:"BrtPCDIAMissing",f:parsenoop},28:{n:"BrtPCDIANumber",f:parsenoop},29:{n:"BrtPCDIABoolean",f:parsenoop},30:{n:"BrtPCDIAError",f:parsenoop},31:{n:"BrtPCDIAString",f:parsenoop},32:{n:"BrtPCDIADatetime",f:parsenoop},33:{n:"BrtPCRRecord",f:parsenoop},34:{n:"BrtPCRRecordDt",f:parsenoop},35:{n:"BrtFRTBegin",f:parsenoop},36:{n:"BrtFRTEnd",f:parsenoop},37:{n:"BrtACBegin",f:parsenoop},38:{n:"BrtACEnd",f:parsenoop},39:{n:"BrtName",f:parsenoop},40:{n:"BrtIndexRowBlock",f:parsenoop},42:{n:"BrtIndexBlock",f:parsenoop},43:{n:"BrtFont",f:parse_BrtFont},44:{n:"BrtFmt",f:parse_BrtFmt},45:{n:"BrtFill",f:parsenoop},46:{n:"BrtBorder",f:parsenoop},47:{n:"BrtXF",f:parse_BrtXF},48:{n:"BrtStyle",f:parsenoop},49:{n:"BrtCellMeta",f:parsenoop},50:{n:"BrtValueMeta",f:parsenoop},51:{n:"BrtMdb",f:parsenoop},52:{n:"BrtBeginFmd",f:parsenoop},53:{n:"BrtEndFmd",f:parsenoop},54:{n:"BrtBeginMdx",f:parsenoop},55:{n:"BrtEndMdx",f:parsenoop},56:{n:"BrtBeginMdxTuple",f:parsenoop},57:{n:"BrtEndMdxTuple",f:parsenoop},58:{n:"BrtMdxMbrIstr",f:parsenoop},59:{n:"BrtStr",f:parsenoop},60:{n:"BrtColInfo",f:parsenoop},62:{n:"BrtCellRString",f:parsenoop},63:{n:"BrtCalcChainItem$",f:parse_BrtCalcChainItem$},64:{n:"BrtDVal",f:parsenoop},65:{n:"BrtSxvcellNum",f:parsenoop},66:{n:"BrtSxvcellStr",f:parsenoop},67:{n:"BrtSxvcellBool",f:parsenoop},68:{n:"BrtSxvcellErr",f:parsenoop},69:{n:"BrtSxvcellDate",f:parsenoop},70:{n:"BrtSxvcellNil",f:parsenoop},128:{n:"BrtFileVersion",f:parsenoop},129:{n:"BrtBeginSheet",f:parsenoop},130:{n:"BrtEndSheet",f:parsenoop},131:{n:"BrtBeginBook",f:parsenoop,p:0},132:{n:"BrtEndBook",f:parsenoop},133:{n:"BrtBeginWsViews",f:parsenoop},134:{n:"BrtEndWsViews",f:parsenoop},135:{n:"BrtBeginBookViews",f:parsenoop},136:{n:"BrtEndBookViews",f:parsenoop},137:{n:"BrtBeginWsView",f:parsenoop},138:{n:"BrtEndWsView",f:parsenoop},139:{n:"BrtBeginCsViews",f:parsenoop},140:{n:"BrtEndCsViews",f:parsenoop},141:{n:"BrtBeginCsView",f:parsenoop},142:{n:"BrtEndCsView",f:parsenoop},143:{n:"BrtBeginBundleShs",f:parsenoop},144:{n:"BrtEndBundleShs",f:parsenoop},145:{n:"BrtBeginSheetData",f:parsenoop},146:{n:"BrtEndSheetData",f:parsenoop},147:{n:"BrtWsProp",f:parse_BrtWsProp},148:{n:"BrtWsDim",f:parse_BrtWsDim,p:16},151:{n:"BrtPane",f:parsenoop},152:{n:"BrtSel",f:parsenoop},153:{n:"BrtWbProp",f:parse_BrtWbProp},154:{n:"BrtWbFactoid",f:parsenoop},155:{n:"BrtFileRecover",f:parsenoop},156:{n:"BrtBundleSh",f:parse_BrtBundleSh},157:{n:"BrtCalcProp",f:parsenoop},158:{n:"BrtBookView",f:parsenoop},159:{n:"BrtBeginSst",f:parse_BrtBeginSst},160:{n:"BrtEndSst",f:parsenoop},161:{n:"BrtBeginAFilter",f:parsenoop},162:{n:"BrtEndAFilter",f:parsenoop},163:{n:"BrtBeginFilterColumn",f:parsenoop},164:{n:"BrtEndFilterColumn",f:parsenoop},165:{n:"BrtBeginFilters",f:parsenoop},166:{n:"BrtEndFilters",f:parsenoop},167:{n:"BrtFilter",f:parsenoop},168:{n:"BrtColorFilter",f:parsenoop},169:{n:"BrtIconFilter",f:parsenoop},170:{n:"BrtTop10Filter",f:parsenoop},171:{n:"BrtDynamicFilter",f:parsenoop},172:{n:"BrtBeginCustomFilters",f:parsenoop},173:{n:"BrtEndCustomFilters",f:parsenoop},174:{n:"BrtCustomFilter",f:parsenoop},175:{n:"BrtAFilterDateGroupItem",f:parsenoop},176:{n:"BrtMergeCell",f:parse_BrtMergeCell},177:{n:"BrtBeginMergeCells",f:parsenoop},178:{n:"BrtEndMergeCells",f:parsenoop},179:{n:"BrtBeginPivotCacheDef",f:parsenoop},180:{n:"BrtEndPivotCacheDef",f:parsenoop},181:{n:"BrtBeginPCDFields",f:parsenoop},182:{n:"BrtEndPCDFields",f:parsenoop},183:{n:"BrtBeginPCDField",f:parsenoop},184:{n:"BrtEndPCDField",f:parsenoop},185:{n:"BrtBeginPCDSource",f:parsenoop},186:{n:"BrtEndPCDSource",f:parsenoop},187:{n:"BrtBeginPCDSRange",f:parsenoop},188:{n:"BrtEndPCDSRange",f:parsenoop},189:{n:"BrtBeginPCDFAtbl",f:parsenoop},190:{n:"BrtEndPCDFAtbl",f:parsenoop},191:{n:"BrtBeginPCDIRun",f:parsenoop},192:{n:"BrtEndPCDIRun",f:parsenoop},193:{n:"BrtBeginPivotCacheRecords",f:parsenoop},194:{n:"BrtEndPivotCacheRecords",f:parsenoop},195:{n:"BrtBeginPCDHierarchies",f:parsenoop},196:{n:"BrtEndPCDHierarchies",f:parsenoop},197:{n:"BrtBeginPCDHierarchy",f:parsenoop},198:{n:"BrtEndPCDHierarchy",f:parsenoop},199:{n:"BrtBeginPCDHFieldsUsage",f:parsenoop},200:{n:"BrtEndPCDHFieldsUsage",f:parsenoop},201:{n:"BrtBeginExtConnection",f:parsenoop},202:{n:"BrtEndExtConnection",f:parsenoop},203:{n:"BrtBeginECDbProps",f:parsenoop},204:{n:"BrtEndECDbProps",f:parsenoop},205:{n:"BrtBeginECOlapProps",f:parsenoop},206:{n:"BrtEndECOlapProps",f:parsenoop},207:{n:"BrtBeginPCDSConsol",f:parsenoop},208:{n:"BrtEndPCDSConsol",f:parsenoop},209:{n:"BrtBeginPCDSCPages",f:parsenoop},210:{n:"BrtEndPCDSCPages",f:parsenoop},211:{n:"BrtBeginPCDSCPage",f:parsenoop},212:{n:"BrtEndPCDSCPage",f:parsenoop},213:{n:"BrtBeginPCDSCPItem",f:parsenoop},214:{n:"BrtEndPCDSCPItem",f:parsenoop},215:{n:"BrtBeginPCDSCSets",f:parsenoop},216:{n:"BrtEndPCDSCSets",f:parsenoop},217:{n:"BrtBeginPCDSCSet",f:parsenoop},218:{n:"BrtEndPCDSCSet",f:parsenoop},219:{n:"BrtBeginPCDFGroup",f:parsenoop},220:{n:"BrtEndPCDFGroup",f:parsenoop},221:{n:"BrtBeginPCDFGItems",f:parsenoop},222:{n:"BrtEndPCDFGItems",f:parsenoop},223:{n:"BrtBeginPCDFGRange",f:parsenoop},224:{n:"BrtEndPCDFGRange",f:parsenoop},225:{n:"BrtBeginPCDFGDiscrete",f:parsenoop},226:{n:"BrtEndPCDFGDiscrete",f:parsenoop},227:{n:"BrtBeginPCDSDTupleCache",f:parsenoop},228:{n:"BrtEndPCDSDTupleCache",f:parsenoop},229:{n:"BrtBeginPCDSDTCEntries",f:parsenoop},230:{n:"BrtEndPCDSDTCEntries",f:parsenoop},231:{n:"BrtBeginPCDSDTCEMembers",f:parsenoop},232:{n:"BrtEndPCDSDTCEMembers",f:parsenoop},233:{n:"BrtBeginPCDSDTCEMember",f:parsenoop},234:{n:"BrtEndPCDSDTCEMember",f:parsenoop},235:{n:"BrtBeginPCDSDTCQueries",f:parsenoop},236:{n:"BrtEndPCDSDTCQueries",f:parsenoop},237:{n:"BrtBeginPCDSDTCQuery",f:parsenoop},238:{n:"BrtEndPCDSDTCQuery",f:parsenoop},239:{n:"BrtBeginPCDSDTCSets",f:parsenoop},240:{n:"BrtEndPCDSDTCSets",f:parsenoop},241:{n:"BrtBeginPCDSDTCSet",f:parsenoop},242:{n:"BrtEndPCDSDTCSet",f:parsenoop},243:{n:"BrtBeginPCDCalcItems",f:parsenoop},244:{n:"BrtEndPCDCalcItems",f:parsenoop},245:{n:"BrtBeginPCDCalcItem",f:parsenoop},246:{n:"BrtEndPCDCalcItem",f:parsenoop},247:{n:"BrtBeginPRule",f:parsenoop},248:{n:"BrtEndPRule",f:parsenoop},249:{n:"BrtBeginPRFilters",f:parsenoop},250:{n:"BrtEndPRFilters",f:parsenoop},251:{n:"BrtBeginPRFilter",f:parsenoop},252:{n:"BrtEndPRFilter",f:parsenoop},253:{n:"BrtBeginPNames",f:parsenoop},254:{n:"BrtEndPNames",f:parsenoop},255:{n:"BrtBeginPName",f:parsenoop},256:{n:"BrtEndPName",f:parsenoop},257:{n:"BrtBeginPNPairs",f:parsenoop},258:{n:"BrtEndPNPairs",f:parsenoop},259:{n:"BrtBeginPNPair",f:parsenoop},260:{n:"BrtEndPNPair",f:parsenoop},261:{n:"BrtBeginECWebProps",f:parsenoop},262:{n:"BrtEndECWebProps",f:parsenoop},263:{n:"BrtBeginEcWpTables",f:parsenoop},264:{n:"BrtEndECWPTables",f:parsenoop},265:{n:"BrtBeginECParams",f:parsenoop},266:{n:"BrtEndECParams",f:parsenoop},267:{n:"BrtBeginECParam",f:parsenoop},268:{n:"BrtEndECParam",f:parsenoop},269:{n:"BrtBeginPCDKPIs",f:parsenoop},270:{n:"BrtEndPCDKPIs",f:parsenoop},271:{n:"BrtBeginPCDKPI",f:parsenoop},272:{n:"BrtEndPCDKPI",f:parsenoop},273:{n:"BrtBeginDims",f:parsenoop},274:{n:"BrtEndDims",f:parsenoop},275:{n:"BrtBeginDim",f:parsenoop},276:{n:"BrtEndDim",f:parsenoop},277:{n:"BrtIndexPartEnd",f:parsenoop},278:{n:"BrtBeginStyleSheet",f:parsenoop},279:{n:"BrtEndStyleSheet",f:parsenoop},280:{n:"BrtBeginSXView",f:parsenoop},281:{n:"BrtEndSXVI",f:parsenoop},282:{n:"BrtBeginSXVI",f:parsenoop},283:{n:"BrtBeginSXVIs",f:parsenoop},284:{n:"BrtEndSXVIs",f:parsenoop},285:{n:"BrtBeginSXVD",f:parsenoop},286:{n:"BrtEndSXVD",f:parsenoop},287:{n:"BrtBeginSXVDs",f:parsenoop},288:{n:"BrtEndSXVDs",f:parsenoop},289:{n:"BrtBeginSXPI",f:parsenoop},290:{n:"BrtEndSXPI",f:parsenoop},291:{n:"BrtBeginSXPIs",f:parsenoop},292:{n:"BrtEndSXPIs",f:parsenoop},293:{n:"BrtBeginSXDI",f:parsenoop},294:{n:"BrtEndSXDI",f:parsenoop},295:{n:"BrtBeginSXDIs",f:parsenoop},296:{n:"BrtEndSXDIs",f:parsenoop},297:{n:"BrtBeginSXLI",f:parsenoop},298:{n:"BrtEndSXLI",f:parsenoop},299:{n:"BrtBeginSXLIRws",f:parsenoop},300:{n:"BrtEndSXLIRws",f:parsenoop},301:{n:"BrtBeginSXLICols",f:parsenoop},302:{n:"BrtEndSXLICols",f:parsenoop},303:{n:"BrtBeginSXFormat",f:parsenoop},304:{n:"BrtEndSXFormat",f:parsenoop},305:{n:"BrtBeginSXFormats",f:parsenoop},306:{n:"BrtEndSxFormats",f:parsenoop},307:{n:"BrtBeginSxSelect",f:parsenoop},308:{n:"BrtEndSxSelect",f:parsenoop},309:{n:"BrtBeginISXVDRws",f:parsenoop},310:{n:"BrtEndISXVDRws",f:parsenoop},311:{n:"BrtBeginISXVDCols",f:parsenoop},312:{n:"BrtEndISXVDCols",f:parsenoop},313:{n:"BrtEndSXLocation",f:parsenoop},314:{n:"BrtBeginSXLocation",f:parsenoop},315:{n:"BrtEndSXView",f:parsenoop},316:{n:"BrtBeginSXTHs",f:parsenoop},317:{n:"BrtEndSXTHs",f:parsenoop},318:{n:"BrtBeginSXTH",f:parsenoop},319:{n:"BrtEndSXTH",f:parsenoop},320:{n:"BrtBeginISXTHRws",f:parsenoop},321:{n:"BrtEndISXTHRws",f:parsenoop},322:{n:"BrtBeginISXTHCols",f:parsenoop},323:{n:"BrtEndISXTHCols",f:parsenoop},324:{n:"BrtBeginSXTDMPS",f:parsenoop},325:{n:"BrtEndSXTDMPs",f:parsenoop},326:{n:"BrtBeginSXTDMP",f:parsenoop},327:{n:"BrtEndSXTDMP",f:parsenoop},328:{n:"BrtBeginSXTHItems",f:parsenoop},329:{n:"BrtEndSXTHItems",f:parsenoop},330:{n:"BrtBeginSXTHItem",f:parsenoop},331:{n:"BrtEndSXTHItem",f:parsenoop},332:{n:"BrtBeginMetadata",f:parsenoop},333:{n:"BrtEndMetadata",f:parsenoop},334:{n:"BrtBeginEsmdtinfo",f:parsenoop},335:{n:"BrtMdtinfo",f:parsenoop},336:{n:"BrtEndEsmdtinfo",f:parsenoop},337:{n:"BrtBeginEsmdb",f:parsenoop},338:{n:"BrtEndEsmdb",f:parsenoop},339:{n:"BrtBeginEsfmd",f:parsenoop},340:{n:"BrtEndEsfmd",f:parsenoop},341:{n:"BrtBeginSingleCells",f:parsenoop},342:{n:"BrtEndSingleCells",f:parsenoop},343:{n:"BrtBeginList",f:parsenoop},344:{n:"BrtEndList",f:parsenoop},345:{n:"BrtBeginListCols",f:parsenoop},346:{n:"BrtEndListCols",f:parsenoop},347:{n:"BrtBeginListCol",f:parsenoop},348:{n:"BrtEndListCol",f:parsenoop},349:{n:"BrtBeginListXmlCPr",f:parsenoop},350:{n:"BrtEndListXmlCPr",f:parsenoop},351:{n:"BrtListCCFmla",f:parsenoop},352:{n:"BrtListTrFmla",f:parsenoop},353:{n:"BrtBeginExternals",f:parsenoop},354:{n:"BrtEndExternals",f:parsenoop},355:{n:"BrtSupBookSrc",f:parsenoop},357:{n:"BrtSupSelf",f:parsenoop},358:{n:"BrtSupSame",f:parsenoop},359:{n:"BrtSupTabs",f:parsenoop},360:{n:"BrtBeginSupBook",f:parsenoop},361:{n:"BrtPlaceholderName",f:parsenoop},362:{n:"BrtExternSheet",f:parsenoop},363:{n:"BrtExternTableStart",f:parsenoop},364:{n:"BrtExternTableEnd",f:parsenoop},366:{n:"BrtExternRowHdr",f:parsenoop},367:{n:"BrtExternCellBlank",f:parsenoop},368:{n:"BrtExternCellReal",f:parsenoop},369:{n:"BrtExternCellBool",f:parsenoop},370:{n:"BrtExternCellError",f:parsenoop},371:{n:"BrtExternCellString",f:parsenoop},372:{n:"BrtBeginEsmdx",f:parsenoop},373:{n:"BrtEndEsmdx",f:parsenoop},374:{n:"BrtBeginMdxSet",f:parsenoop},375:{n:"BrtEndMdxSet",f:parsenoop},376:{n:"BrtBeginMdxMbrProp",f:parsenoop},377:{n:"BrtEndMdxMbrProp",f:parsenoop},378:{n:"BrtBeginMdxKPI",f:parsenoop},379:{n:"BrtEndMdxKPI",f:parsenoop},380:{n:"BrtBeginEsstr",f:parsenoop},381:{n:"BrtEndEsstr",f:parsenoop},382:{n:"BrtBeginPRFItem",f:parsenoop},383:{n:"BrtEndPRFItem",f:parsenoop},384:{n:"BrtBeginPivotCacheIDs",f:parsenoop},385:{n:"BrtEndPivotCacheIDs",f:parsenoop},386:{n:"BrtBeginPivotCacheID",f:parsenoop},387:{n:"BrtEndPivotCacheID",f:parsenoop},388:{n:"BrtBeginISXVIs",f:parsenoop},389:{n:"BrtEndISXVIs",f:parsenoop},390:{n:"BrtBeginColInfos",f:parsenoop},391:{n:"BrtEndColInfos",f:parsenoop},392:{n:"BrtBeginRwBrk",f:parsenoop},393:{n:"BrtEndRwBrk",f:parsenoop},394:{n:"BrtBeginColBrk",f:parsenoop},395:{n:"BrtEndColBrk",f:parsenoop},396:{n:"BrtBrk",f:parsenoop},397:{n:"BrtUserBookView",f:parsenoop},398:{n:"BrtInfo",f:parsenoop},399:{n:"BrtCUsr",f:parsenoop},400:{n:"BrtUsr",f:parsenoop},401:{n:"BrtBeginUsers",f:parsenoop},403:{n:"BrtEOF",f:parsenoop},404:{n:"BrtUCR",f:parsenoop},405:{n:"BrtRRInsDel",f:parsenoop},406:{n:"BrtRREndInsDel",f:parsenoop},407:{n:"BrtRRMove",f:parsenoop},408:{n:"BrtRREndMove",f:parsenoop},409:{n:"BrtRRChgCell",f:parsenoop},410:{n:"BrtRREndChgCell",f:parsenoop},411:{n:"BrtRRHeader",f:parsenoop},412:{n:"BrtRRUserView",f:parsenoop},413:{n:"BrtRRRenSheet",f:parsenoop},414:{n:"BrtRRInsertSh",f:parsenoop},415:{n:"BrtRRDefName",f:parsenoop},416:{n:"BrtRRNote",f:parsenoop},417:{n:"BrtRRConflict",f:parsenoop},418:{n:"BrtRRTQSIF",f:parsenoop},419:{n:"BrtRRFormat",f:parsenoop},420:{n:"BrtRREndFormat",f:parsenoop},421:{n:"BrtRRAutoFmt",f:parsenoop},422:{n:"BrtBeginUserShViews",f:parsenoop},423:{n:"BrtBeginUserShView",f:parsenoop},424:{n:"BrtEndUserShView",f:parsenoop},425:{n:"BrtEndUserShViews",f:parsenoop},426:{n:"BrtArrFmla",f:parsenoop},427:{n:"BrtShrFmla",f:parsenoop},428:{n:"BrtTable",f:parsenoop},429:{n:"BrtBeginExtConnections",f:parsenoop},430:{n:"BrtEndExtConnections",f:parsenoop},431:{n:"BrtBeginPCDCalcMems",f:parsenoop},432:{n:"BrtEndPCDCalcMems",f:parsenoop},433:{n:"BrtBeginPCDCalcMem",f:parsenoop},434:{n:"BrtEndPCDCalcMem",f:parsenoop},435:{n:"BrtBeginPCDHGLevels",f:parsenoop},436:{n:"BrtEndPCDHGLevels",f:parsenoop},437:{n:"BrtBeginPCDHGLevel",f:parsenoop},438:{n:"BrtEndPCDHGLevel",f:parsenoop},439:{n:"BrtBeginPCDHGLGroups",f:parsenoop},440:{n:"BrtEndPCDHGLGroups",f:parsenoop},441:{n:"BrtBeginPCDHGLGroup",f:parsenoop},442:{n:"BrtEndPCDHGLGroup",f:parsenoop},443:{n:"BrtBeginPCDHGLGMembers",f:parsenoop},444:{n:"BrtEndPCDHGLGMembers",f:parsenoop},445:{n:"BrtBeginPCDHGLGMember",f:parsenoop},446:{n:"BrtEndPCDHGLGMember",f:parsenoop},447:{n:"BrtBeginQSI",f:parsenoop},448:{n:"BrtEndQSI",f:parsenoop},449:{n:"BrtBeginQSIR",f:parsenoop},450:{n:"BrtEndQSIR",f:parsenoop},451:{n:"BrtBeginDeletedNames",f:parsenoop},452:{n:"BrtEndDeletedNames",f:parsenoop},453:{n:"BrtBeginDeletedName",f:parsenoop},454:{n:"BrtEndDeletedName",f:parsenoop},455:{n:"BrtBeginQSIFs",f:parsenoop},456:{n:"BrtEndQSIFs",f:parsenoop},457:{n:"BrtBeginQSIF",f:parsenoop},458:{n:"BrtEndQSIF",f:parsenoop},459:{n:"BrtBeginAutoSortScope",f:parsenoop},460:{n:"BrtEndAutoSortScope",f:parsenoop},461:{n:"BrtBeginConditionalFormatting",f:parsenoop},462:{n:"BrtEndConditionalFormatting",f:parsenoop},463:{n:"BrtBeginCFRule",f:parsenoop},464:{n:"BrtEndCFRule",f:parsenoop},465:{n:"BrtBeginIconSet",f:parsenoop},466:{n:"BrtEndIconSet",f:parsenoop},467:{n:"BrtBeginDatabar",f:parsenoop},468:{n:"BrtEndDatabar",f:parsenoop},469:{n:"BrtBeginColorScale",f:parsenoop},470:{n:"BrtEndColorScale",f:parsenoop},471:{n:"BrtCFVO",f:parsenoop},472:{n:"BrtExternValueMeta",f:parsenoop},473:{n:"BrtBeginColorPalette",f:parsenoop},474:{n:"BrtEndColorPalette",f:parsenoop},475:{n:"BrtIndexedColor",f:parsenoop},476:{n:"BrtMargins",f:parsenoop},477:{n:"BrtPrintOptions",f:parsenoop},478:{n:"BrtPageSetup",f:parsenoop},479:{n:"BrtBeginHeaderFooter",f:parsenoop},480:{n:"BrtEndHeaderFooter",f:parsenoop},481:{n:"BrtBeginSXCrtFormat",f:parsenoop},482:{n:"BrtEndSXCrtFormat",f:parsenoop},483:{n:"BrtBeginSXCrtFormats",f:parsenoop},484:{n:"BrtEndSXCrtFormats",f:parsenoop},485:{n:"BrtWsFmtInfo",f:parsenoop},486:{n:"BrtBeginMgs",f:parsenoop},487:{n:"BrtEndMGs",f:parsenoop},488:{n:"BrtBeginMGMaps",f:parsenoop},489:{n:"BrtEndMGMaps",f:parsenoop},490:{n:"BrtBeginMG",f:parsenoop},491:{n:"BrtEndMG",f:parsenoop},492:{n:"BrtBeginMap",f:parsenoop},493:{n:"BrtEndMap",f:parsenoop},494:{n:"BrtHLink",f:parse_BrtHLink},495:{n:"BrtBeginDCon",f:parsenoop},496:{n:"BrtEndDCon",f:parsenoop},497:{n:"BrtBeginDRefs",f:parsenoop},498:{n:"BrtEndDRefs",f:parsenoop},499:{n:"BrtDRef",f:parsenoop},500:{n:"BrtBeginScenMan",f:parsenoop},501:{n:"BrtEndScenMan",f:parsenoop},502:{n:"BrtBeginSct",f:parsenoop},503:{n:"BrtEndSct",f:parsenoop},504:{n:"BrtSlc",f:parsenoop},505:{n:"BrtBeginDXFs",f:parsenoop},506:{n:"BrtEndDXFs",f:parsenoop},507:{n:"BrtDXF",f:parsenoop},508:{n:"BrtBeginTableStyles",f:parsenoop},509:{n:"BrtEndTableStyles",f:parsenoop},510:{n:"BrtBeginTableStyle",f:parsenoop},511:{n:"BrtEndTableStyle",f:parsenoop},512:{n:"BrtTableStyleElement",f:parsenoop},513:{n:"BrtTableStyleClient",f:parsenoop},514:{n:"BrtBeginVolDeps",f:parsenoop},515:{n:"BrtEndVolDeps",f:parsenoop},516:{n:"BrtBeginVolType",f:parsenoop},517:{n:"BrtEndVolType",f:parsenoop},518:{n:"BrtBeginVolMain",f:parsenoop},519:{n:"BrtEndVolMain",f:parsenoop},520:{n:"BrtBeginVolTopic",f:parsenoop},521:{n:"BrtEndVolTopic",f:parsenoop},522:{n:"BrtVolSubtopic",f:parsenoop},523:{n:"BrtVolRef",f:parsenoop},524:{n:"BrtVolNum",f:parsenoop},525:{n:"BrtVolErr",f:parsenoop},526:{n:"BrtVolStr",f:parsenoop},527:{n:"BrtVolBool",f:parsenoop},528:{n:"BrtBeginCalcChain$",f:parsenoop},529:{n:"BrtEndCalcChain$",f:parsenoop},530:{n:"BrtBeginSortState",f:parsenoop},531:{n:"BrtEndSortState",f:parsenoop},532:{n:"BrtBeginSortCond",f:parsenoop},533:{n:"BrtEndSortCond",f:parsenoop},534:{n:"BrtBookProtection",f:parsenoop},535:{n:"BrtSheetProtection",f:parsenoop},536:{n:"BrtRangeProtection",f:parsenoop},537:{n:"BrtPhoneticInfo",f:parsenoop},538:{n:"BrtBeginECTxtWiz",f:parsenoop},539:{n:"BrtEndECTxtWiz",f:parsenoop},540:{n:"BrtBeginECTWFldInfoLst",f:parsenoop},541:{n:"BrtEndECTWFldInfoLst",f:parsenoop},542:{n:"BrtBeginECTwFldInfo",f:parsenoop},548:{n:"BrtFileSharing",f:parsenoop},549:{n:"BrtOleSize",f:parsenoop},550:{n:"BrtDrawing",f:parsenoop},551:{n:"BrtLegacyDrawing",f:parsenoop},552:{n:"BrtLegacyDrawingHF",f:parsenoop},553:{n:"BrtWebOpt",f:parsenoop},554:{n:"BrtBeginWebPubItems",f:parsenoop},555:{n:"BrtEndWebPubItems",f:parsenoop},556:{n:"BrtBeginWebPubItem",f:parsenoop},557:{n:"BrtEndWebPubItem",f:parsenoop},558:{n:"BrtBeginSXCondFmt",f:parsenoop},559:{n:"BrtEndSXCondFmt",f:parsenoop},560:{n:"BrtBeginSXCondFmts",f:parsenoop},561:{n:"BrtEndSXCondFmts",f:parsenoop},562:{n:"BrtBkHim",f:parsenoop},564:{n:"BrtColor",f:parsenoop},565:{n:"BrtBeginIndexedColors",f:parsenoop},566:{n:"BrtEndIndexedColors",f:parsenoop},569:{n:"BrtBeginMRUColors",f:parsenoop},570:{n:"BrtEndMRUColors",f:parsenoop},572:{n:"BrtMRUColor",f:parsenoop},573:{n:"BrtBeginDVals",f:parsenoop},574:{n:"BrtEndDVals",f:parsenoop},577:{n:"BrtSupNameStart",f:parsenoop},578:{n:"BrtSupNameValueStart",f:parsenoop},579:{n:"BrtSupNameValueEnd",f:parsenoop},580:{n:"BrtSupNameNum",f:parsenoop},581:{n:"BrtSupNameErr",f:parsenoop},582:{n:"BrtSupNameSt",f:parsenoop},583:{n:"BrtSupNameNil",f:parsenoop},584:{n:"BrtSupNameBool",f:parsenoop},585:{n:"BrtSupNameFmla",f:parsenoop},586:{n:"BrtSupNameBits",f:parsenoop},587:{n:"BrtSupNameEnd",f:parsenoop},588:{n:"BrtEndSupBook",f:parsenoop},589:{n:"BrtCellSmartTagProperty",f:parsenoop},590:{n:"BrtBeginCellSmartTag",f:parsenoop},591:{n:"BrtEndCellSmartTag",f:parsenoop},592:{n:"BrtBeginCellSmartTags",f:parsenoop},593:{n:"BrtEndCellSmartTags",f:parsenoop},594:{n:"BrtBeginSmartTags",f:parsenoop},595:{n:"BrtEndSmartTags",f:parsenoop},596:{n:"BrtSmartTagType",f:parsenoop},597:{n:"BrtBeginSmartTagTypes",f:parsenoop},598:{n:"BrtEndSmartTagTypes",f:parsenoop},599:{n:"BrtBeginSXFilters",f:parsenoop},600:{n:"BrtEndSXFilters",f:parsenoop},601:{n:"BrtBeginSXFILTER",f:parsenoop},602:{n:"BrtEndSXFilter",f:parsenoop},603:{n:"BrtBeginFills",f:parsenoop},604:{n:"BrtEndFills",f:parsenoop},605:{n:"BrtBeginCellWatches",f:parsenoop},606:{n:"BrtEndCellWatches",f:parsenoop},607:{n:"BrtCellWatch",f:parsenoop},608:{n:"BrtBeginCRErrs",f:parsenoop},609:{n:"BrtEndCRErrs",f:parsenoop},610:{n:"BrtCrashRecErr",f:parsenoop},611:{n:"BrtBeginFonts",f:parsenoop},612:{n:"BrtEndFonts",f:parsenoop},613:{n:"BrtBeginBorders",f:parsenoop},614:{n:"BrtEndBorders",f:parsenoop},615:{n:"BrtBeginFmts",f:parsenoop},616:{n:"BrtEndFmts",f:parsenoop},617:{n:"BrtBeginCellXFs",f:parsenoop},618:{n:"BrtEndCellXFs",f:parsenoop},619:{n:"BrtBeginStyles",f:parsenoop},620:{n:"BrtEndStyles",f:parsenoop},625:{n:"BrtBigName",f:parsenoop},626:{n:"BrtBeginCellStyleXFs",f:parsenoop},627:{n:"BrtEndCellStyleXFs",f:parsenoop},628:{n:"BrtBeginComments",f:parsenoop},629:{n:"BrtEndComments",f:parsenoop},630:{n:"BrtBeginCommentAuthors",f:parsenoop},631:{n:"BrtEndCommentAuthors",f:parsenoop},632:{n:"BrtCommentAuthor",f:parse_BrtCommentAuthor},633:{n:"BrtBeginCommentList",f:parsenoop},634:{n:"BrtEndCommentList",f:parsenoop},635:{n:"BrtBeginComment",f:parse_BrtBeginComment},636:{n:"BrtEndComment",f:parsenoop},637:{n:"BrtCommentText",f:parse_BrtCommentText},638:{n:"BrtBeginOleObjects",f:parsenoop},639:{n:"BrtOleObject",f:parsenoop},640:{n:"BrtEndOleObjects",f:parsenoop},641:{n:"BrtBeginSxrules",f:parsenoop},642:{n:"BrtEndSxRules",f:parsenoop},643:{n:"BrtBeginActiveXControls",f:parsenoop},644:{n:"BrtActiveX",f:parsenoop},645:{n:"BrtEndActiveXControls",f:parsenoop},646:{n:"BrtBeginPCDSDTCEMembersSortBy",f:parsenoop},648:{n:"BrtBeginCellIgnoreECs",f:parsenoop},649:{n:"BrtCellIgnoreEC",f:parsenoop},650:{n:"BrtEndCellIgnoreECs",f:parsenoop},651:{n:"BrtCsProp",f:parsenoop},652:{n:"BrtCsPageSetup",f:parsenoop},653:{n:"BrtBeginUserCsViews",f:parsenoop},654:{n:"BrtEndUserCsViews",f:parsenoop},655:{n:"BrtBeginUserCsView",f:parsenoop},656:{n:"BrtEndUserCsView",f:parsenoop},657:{n:"BrtBeginPcdSFCIEntries",f:parsenoop},658:{n:"BrtEndPCDSFCIEntries",f:parsenoop},659:{n:"BrtPCDSFCIEntry",f:parsenoop},660:{n:"BrtBeginListParts",f:parsenoop},661:{n:"BrtListPart",f:parsenoop},662:{n:"BrtEndListParts",f:parsenoop},663:{n:"BrtSheetCalcProp",f:parsenoop},664:{n:"BrtBeginFnGroup",f:parsenoop},665:{n:"BrtFnGroup",f:parsenoop},666:{n:"BrtEndFnGroup",f:parsenoop},667:{n:"BrtSupAddin",f:parsenoop},668:{n:"BrtSXTDMPOrder",f:parsenoop},669:{n:"BrtCsProtection",f:parsenoop},671:{n:"BrtBeginWsSortMap",f:parsenoop},672:{n:"BrtEndWsSortMap",f:parsenoop},673:{n:"BrtBeginRRSort",f:parsenoop},674:{n:"BrtEndRRSort",f:parsenoop},675:{n:"BrtRRSortItem",f:parsenoop},676:{n:"BrtFileSharingIso",f:parsenoop},677:{n:"BrtBookProtectionIso",f:parsenoop},678:{n:"BrtSheetProtectionIso",f:parsenoop},679:{n:"BrtCsProtectionIso",f:parsenoop},680:{n:"BrtRangeProtectionIso",f:parsenoop},1024:{n:"BrtRwDescent",f:parsenoop},1025:{n:"BrtKnownFonts",f:parsenoop},1026:{n:"BrtBeginSXTupleSet",f:parsenoop},1027:{n:"BrtEndSXTupleSet",f:parsenoop},1028:{n:"BrtBeginSXTupleSetHeader",f:parsenoop},1029:{n:"BrtEndSXTupleSetHeader",f:parsenoop},1030:{n:"BrtSXTupleSetHeaderItem",f:parsenoop},1031:{n:"BrtBeginSXTupleSetData",f:parsenoop},1032:{n:"BrtEndSXTupleSetData",f:parsenoop},1033:{n:"BrtBeginSXTupleSetRow",f:parsenoop},1034:{n:"BrtEndSXTupleSetRow",f:parsenoop},1035:{n:"BrtSXTupleSetRowItem",f:parsenoop},1036:{n:"BrtNameExt",f:parsenoop},1037:{n:"BrtPCDH14",f:parsenoop},1038:{n:"BrtBeginPCDCalcMem14",f:parsenoop},1039:{n:"BrtEndPCDCalcMem14",f:parsenoop},1040:{n:"BrtSXTH14",f:parsenoop},1041:{n:"BrtBeginSparklineGroup",f:parsenoop},1042:{n:"BrtEndSparklineGroup",f:parsenoop},1043:{n:"BrtSparkline",f:parsenoop},1044:{n:"BrtSXDI14",f:parsenoop},1045:{n:"BrtWsFmtInfoEx14",f:parsenoop},1046:{n:"BrtBeginConditionalFormatting14",f:parsenoop},1047:{n:"BrtEndConditionalFormatting14",f:parsenoop},1048:{n:"BrtBeginCFRule14",f:parsenoop},1049:{n:"BrtEndCFRule14",f:parsenoop},1050:{n:"BrtCFVO14",f:parsenoop},1051:{n:"BrtBeginDatabar14",f:parsenoop},1052:{n:"BrtBeginIconSet14",f:parsenoop},1053:{n:"BrtDVal14",f:parsenoop},1054:{n:"BrtBeginDVals14",f:parsenoop},1055:{n:"BrtColor14",f:parsenoop},1056:{n:"BrtBeginSparklines",f:parsenoop},1057:{n:"BrtEndSparklines",f:parsenoop},1058:{n:"BrtBeginSparklineGroups",f:parsenoop},1059:{n:"BrtEndSparklineGroups",f:parsenoop},1061:{n:"BrtSXVD14",f:parsenoop},1062:{n:"BrtBeginSxview14",f:parsenoop},1063:{n:"BrtEndSxview14",f:parsenoop},1066:{n:"BrtBeginPCD14",f:parsenoop},1067:{n:"BrtEndPCD14",f:parsenoop},1068:{n:"BrtBeginExtConn14",f:parsenoop},1069:{n:"BrtEndExtConn14",f:parsenoop},1070:{n:"BrtBeginSlicerCacheIDs",f:parsenoop},1071:{n:"BrtEndSlicerCacheIDs",f:parsenoop},1072:{n:"BrtBeginSlicerCacheID",f:parsenoop},1073:{n:"BrtEndSlicerCacheID",f:parsenoop},1075:{n:"BrtBeginSlicerCache",f:parsenoop},1076:{n:"BrtEndSlicerCache",f:parsenoop},1077:{n:"BrtBeginSlicerCacheDef",f:parsenoop},1078:{n:"BrtEndSlicerCacheDef",f:parsenoop},1079:{n:"BrtBeginSlicersEx",f:parsenoop},1080:{n:"BrtEndSlicersEx",f:parsenoop},1081:{n:"BrtBeginSlicerEx",f:parsenoop},1082:{n:"BrtEndSlicerEx",f:parsenoop},1083:{n:"BrtBeginSlicer",f:parsenoop},1084:{n:"BrtEndSlicer",f:parsenoop},1085:{n:"BrtSlicerCachePivotTables",f:parsenoop},1086:{n:"BrtBeginSlicerCacheOlapImpl",f:parsenoop},1087:{n:"BrtEndSlicerCacheOlapImpl",f:parsenoop},1088:{n:"BrtBeginSlicerCacheLevelsData",f:parsenoop},1089:{n:"BrtEndSlicerCacheLevelsData",f:parsenoop},1090:{n:"BrtBeginSlicerCacheLevelData",f:parsenoop},1091:{n:"BrtEndSlicerCacheLevelData",f:parsenoop},1092:{n:"BrtBeginSlicerCacheSiRanges",f:parsenoop},1093:{n:"BrtEndSlicerCacheSiRanges",f:parsenoop},1094:{n:"BrtBeginSlicerCacheSiRange",f:parsenoop},1095:{n:"BrtEndSlicerCacheSiRange",f:parsenoop},1096:{n:"BrtSlicerCacheOlapItem",f:parsenoop},1097:{n:"BrtBeginSlicerCacheSelections",f:parsenoop},1098:{n:"BrtSlicerCacheSelection",f:parsenoop},1099:{n:"BrtEndSlicerCacheSelections",f:parsenoop},1100:{n:"BrtBeginSlicerCacheNative",f:parsenoop},1101:{n:"BrtEndSlicerCacheNative",f:parsenoop},1102:{n:"BrtSlicerCacheNativeItem",f:parsenoop},1103:{n:"BrtRangeProtection14",f:parsenoop},1104:{n:"BrtRangeProtectionIso14",f:parsenoop},1105:{n:"BrtCellIgnoreEC14",f:parsenoop},1111:{n:"BrtList14",f:parsenoop},1112:{n:"BrtCFIcon",f:parsenoop},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs",f:parsenoop},1114:{n:"BrtEndSlicerCachesPivotCacheIDs",f:parsenoop},1115:{n:"BrtBeginSlicers",f:parsenoop},1116:{n:"BrtEndSlicers",f:parsenoop},1117:{n:"BrtWbProp14",f:parsenoop},1118:{n:"BrtBeginSXEdit",f:parsenoop},1119:{n:"BrtEndSXEdit",f:parsenoop},1120:{n:"BrtBeginSXEdits",f:parsenoop},1121:{n:"BrtEndSXEdits",f:parsenoop},1122:{n:"BrtBeginSXChange",f:parsenoop},1123:{n:"BrtEndSXChange",f:parsenoop},1124:{n:"BrtBeginSXChanges",f:parsenoop},1125:{n:"BrtEndSXChanges",f:parsenoop},1126:{n:"BrtSXTupleItems",f:parsenoop},1128:{n:"BrtBeginSlicerStyle",f:parsenoop},1129:{n:"BrtEndSlicerStyle",f:parsenoop},1130:{n:"BrtSlicerStyleElement",f:parsenoop},1131:{n:"BrtBeginStyleSheetExt14",f:parsenoop},1132:{n:"BrtEndStyleSheetExt14",f:parsenoop},1133:{n:"BrtBeginSlicerCachesPivotCacheID",f:parsenoop},1134:{n:"BrtEndSlicerCachesPivotCacheID",f:parsenoop},1135:{n:"BrtBeginConditionalFormattings",f:parsenoop},1136:{n:"BrtEndConditionalFormattings",f:parsenoop},1137:{n:"BrtBeginPCDCalcMemExt",f:parsenoop},1138:{n:"BrtEndPCDCalcMemExt",f:parsenoop},1139:{n:"BrtBeginPCDCalcMemsExt",f:parsenoop},1140:{n:"BrtEndPCDCalcMemsExt",f:parsenoop},1141:{n:"BrtPCDField14",f:parsenoop},1142:{n:"BrtBeginSlicerStyles",f:parsenoop},1143:{n:"BrtEndSlicerStyles",f:parsenoop},1144:{n:"BrtBeginSlicerStyleElements",f:parsenoop},1145:{n:"BrtEndSlicerStyleElements",f:parsenoop},1146:{n:"BrtCFRuleExt",f:parsenoop},1147:{n:"BrtBeginSXCondFmt14",f:parsenoop},1148:{n:"BrtEndSXCondFmt14",f:parsenoop},1149:{n:"BrtBeginSXCondFmts14",f:parsenoop},1150:{n:"BrtEndSXCondFmts14",f:parsenoop},1152:{n:"BrtBeginSortCond14",f:parsenoop},1153:{n:"BrtEndSortCond14",f:parsenoop},1154:{n:"BrtEndDVals14",f:parsenoop},1155:{n:"BrtEndIconSet14",f:parsenoop},1156:{n:"BrtEndDatabar14",f:parsenoop},1157:{n:"BrtBeginColorScale14",f:parsenoop},1158:{n:"BrtEndColorScale14",f:parsenoop},1159:{n:"BrtBeginSxrules14",f:parsenoop},1160:{n:"BrtEndSxrules14",f:parsenoop},1161:{n:"BrtBeginPRule14",f:parsenoop},1162:{n:"BrtEndPRule14",f:parsenoop},1163:{n:"BrtBeginPRFilters14",f:parsenoop},1164:{n:"BrtEndPRFilters14",f:parsenoop},1165:{n:"BrtBeginPRFilter14",f:parsenoop},1166:{n:"BrtEndPRFilter14",f:parsenoop},1167:{n:"BrtBeginPRFItem14",f:parsenoop},1168:{n:"BrtEndPRFItem14",f:parsenoop},1169:{n:"BrtBeginCellIgnoreECs14",f:parsenoop},1170:{n:"BrtEndCellIgnoreECs14",f:parsenoop},1171:{n:"BrtDxf14",f:parsenoop},1172:{n:"BrtBeginDxF14s",f:parsenoop},1173:{n:"BrtEndDxf14s",f:parsenoop},1177:{n:"BrtFilter14",f:parsenoop},1178:{n:"BrtBeginCustomFilters14",f:parsenoop},1180:{n:"BrtCustomFilter14",f:parsenoop},1181:{n:"BrtIconFilter14",f:parsenoop},1182:{n:"BrtPivotCacheConnectionName",f:parsenoop},2048:{n:"BrtBeginDecoupledPivotCacheIDs",f:parsenoop},2049:{n:"BrtEndDecoupledPivotCacheIDs",f:parsenoop},2050:{n:"BrtDecoupledPivotCacheID",f:parsenoop},2051:{n:"BrtBeginPivotTableRefs",f:parsenoop},2052:{n:"BrtEndPivotTableRefs",f:parsenoop},2053:{n:"BrtPivotTableRef",f:parsenoop},2054:{n:"BrtSlicerCacheBookPivotTables",f:parsenoop},2055:{n:"BrtBeginSxvcells",f:parsenoop},2056:{n:"BrtEndSxvcells",f:parsenoop},2057:{n:"BrtBeginSxRow",f:parsenoop},2058:{n:"BrtEndSxRow",f:parsenoop},2060:{n:"BrtPcdCalcMem15",f:parsenoop},2067:{n:"BrtQsi15",f:parsenoop},2068:{n:"BrtBeginWebExtensions",f:parsenoop},2069:{n:"BrtEndWebExtensions",f:parsenoop},2070:{n:"BrtWebExtension",f:parsenoop},2071:{n:"BrtAbsPath15",f:parsenoop},2072:{n:"BrtBeginPivotTableUISettings",f:parsenoop},2073:{n:"BrtEndPivotTableUISettings",f:parsenoop},2075:{n:"BrtTableSlicerCacheIDs",f:parsenoop},2076:{n:"BrtTableSlicerCacheID",f:parsenoop},2077:{n:"BrtBeginTableSlicerCache",f:parsenoop},2078:{n:"BrtEndTableSlicerCache",f:parsenoop},2079:{n:"BrtSxFilter15",f:parsenoop},2080:{n:"BrtBeginTimelineCachePivotCacheIDs",f:parsenoop},2081:{n:"BrtEndTimelineCachePivotCacheIDs",f:parsenoop},2082:{n:"BrtTimelineCachePivotCacheID",f:parsenoop},2083:{n:"BrtBeginTimelineCacheIDs",f:parsenoop},2084:{n:"BrtEndTimelineCacheIDs",f:parsenoop},2085:{n:"BrtBeginTimelineCacheID",f:parsenoop},2086:{n:"BrtEndTimelineCacheID",f:parsenoop},2087:{n:"BrtBeginTimelinesEx",f:parsenoop},2088:{n:"BrtEndTimelinesEx",f:parsenoop},2089:{n:"BrtBeginTimelineEx",f:parsenoop},2090:{n:"BrtEndTimelineEx",f:parsenoop},2091:{n:"BrtWorkBookPr15",f:parsenoop},2092:{n:"BrtPCDH15",f:parsenoop},2093:{n:"BrtBeginTimelineStyle",f:parsenoop},2094:{n:"BrtEndTimelineStyle",f:parsenoop},2095:{n:"BrtTimelineStyleElement",f:parsenoop},2096:{n:"BrtBeginTimelineStylesheetExt15",f:parsenoop},2097:{n:"BrtEndTimelineStylesheetExt15",f:parsenoop},2098:{n:"BrtBeginTimelineStyles",f:parsenoop},2099:{n:"BrtEndTimelineStyles",f:parsenoop},2100:{n:"BrtBeginTimelineStyleElements",f:parsenoop},2101:{n:"BrtEndTimelineStyleElements",f:parsenoop},2102:{n:"BrtDxf15",f:parsenoop},2103:{n:"BrtBeginDxfs15",f:parsenoop},2104:{n:"brtEndDxfs15",f:parsenoop},2105:{n:"BrtSlicerCacheHideItemsWithNoData",f:parsenoop},2106:{n:"BrtBeginItemUniqueNames",f:parsenoop},2107:{n:"BrtEndItemUniqueNames",f:parsenoop},2108:{n:"BrtItemUniqueName",f:parsenoop},2109:{n:"BrtBeginExtConn15",f:parsenoop},2110:{n:"BrtEndExtConn15",f:parsenoop},2111:{n:"BrtBeginOledbPr15",f:parsenoop},2112:{n:"BrtEndOledbPr15",f:parsenoop},2113:{n:"BrtBeginDataFeedPr15",f:parsenoop},2114:{n:"BrtEndDataFeedPr15",f:parsenoop},2115:{n:"BrtTextPr15",f:parsenoop},2116:{n:"BrtRangePr15",f:parsenoop},2117:{n:"BrtDbCommand15",f:parsenoop},2118:{n:"BrtBeginDbTables15",f:parsenoop},2119:{n:"BrtEndDbTables15",f:parsenoop},2120:{n:"BrtDbTable15",f:parsenoop},2121:{n:"BrtBeginDataModel",f:parsenoop},2122:{n:"BrtEndDataModel",f:parsenoop},2123:{n:"BrtBeginModelTables",f:parsenoop},2124:{n:"BrtEndModelTables",f:parsenoop},2125:{n:"BrtModelTable",f:parsenoop},2126:{n:"BrtBeginModelRelationships",f:parsenoop},2127:{n:"BrtEndModelRelationships",f:parsenoop},2128:{n:"BrtModelRelationship",f:parsenoop},2129:{n:"BrtBeginECTxtWiz15",f:parsenoop},2130:{n:"BrtEndECTxtWiz15",f:parsenoop},2131:{n:"BrtBeginECTWFldInfoLst15",f:parsenoop},2132:{n:"BrtEndECTWFldInfoLst15",f:parsenoop},2133:{n:"BrtBeginECTWFldInfo15",f:parsenoop},2134:{n:"BrtFieldListActiveItem",f:parsenoop},2135:{n:"BrtPivotCacheIdVersion",f:parsenoop},2136:{n:"BrtSXDI15",f:parsenoop},65535:{n:"",f:parsenoop}}; +var evert_RE=evert_key(XLSBRecordEnum,"n");var XLSRecordEnum={3:{n:"BIFF2NUM",f:parse_BIFF2NUM},4:{n:"BIFF2STR",f:parse_BIFF2STR},6:{n:"Formula",f:parse_Formula},9:{n:"BOF",f:parse_BOF},10:{n:"EOF",f:parse_EOF},12:{n:"CalcCount",f:parse_CalcCount},13:{n:"CalcMode",f:parse_CalcMode},14:{n:"CalcPrecision",f:parse_CalcPrecision},15:{n:"CalcRefMode",f:parse_CalcRefMode},16:{n:"CalcDelta",f:parse_CalcDelta},17:{n:"CalcIter",f:parse_CalcIter},18:{n:"Protect",f:parse_Protect},19:{n:"Password",f:parse_Password},20:{n:"Header",f:parse_Header},21:{n:"Footer",f:parse_Footer},23:{n:"ExternSheet",f:parse_ExternSheet},24:{n:"Lbl",f:parse_Lbl},25:{n:"WinProtect",f:parse_WinProtect},26:{n:"VerticalPageBreaks",f:parse_VerticalPageBreaks},27:{n:"HorizontalPageBreaks",f:parse_HorizontalPageBreaks},28:{n:"Note",f:parse_Note},29:{n:"Selection",f:parse_Selection},34:{n:"Date1904",f:parse_Date1904},35:{n:"ExternName",f:parse_ExternName},38:{n:"LeftMargin",f:parse_LeftMargin},39:{n:"RightMargin",f:parse_RightMargin},40:{n:"TopMargin",f:parse_TopMargin},41:{n:"BottomMargin",f:parse_BottomMargin},42:{n:"PrintRowCol",f:parse_PrintRowCol},43:{n:"PrintGrid",f:parse_PrintGrid},47:{n:"FilePass",f:parse_FilePass},49:{n:"Font",f:parse_Font},51:{n:"PrintSize",f:parse_PrintSize},60:{n:"Continue",f:parse_Continue},61:{n:"Window1",f:parse_Window1},64:{n:"Backup",f:parse_Backup},65:{n:"Pane",f:parse_Pane},66:{n:"CodePage",f:parse_CodePage},77:{n:"Pls",f:parse_Pls},80:{n:"DCon",f:parse_DCon},81:{n:"DConRef",f:parse_DConRef},82:{n:"DConName",f:parse_DConName},85:{n:"DefColWidth",f:parse_DefColWidth},89:{n:"XCT",f:parse_XCT},90:{n:"CRN",f:parse_CRN},91:{n:"FileSharing",f:parse_FileSharing},92:{n:"WriteAccess",f:parse_WriteAccess},93:{n:"Obj",f:parse_Obj},94:{n:"Uncalced",f:parse_Uncalced},95:{n:"CalcSaveRecalc",f:parse_CalcSaveRecalc},96:{n:"Template",f:parse_Template},97:{n:"Intl",f:parse_Intl},99:{n:"ObjProtect",f:parse_ObjProtect},125:{n:"ColInfo",f:parse_ColInfo},128:{n:"Guts",f:parse_Guts},129:{n:"WsBool",f:parse_WsBool},130:{n:"GridSet",f:parse_GridSet},131:{n:"HCenter",f:parse_HCenter},132:{n:"VCenter",f:parse_VCenter},133:{n:"BoundSheet8",f:parse_BoundSheet8},134:{n:"WriteProtect",f:parse_WriteProtect},140:{n:"Country",f:parse_Country},141:{n:"HideObj",f:parse_HideObj},144:{n:"Sort",f:parse_Sort},146:{n:"Palette",f:parse_Palette},151:{n:"Sync",f:parse_Sync},152:{n:"LPr",f:parse_LPr},153:{n:"DxGCol",f:parse_DxGCol},154:{n:"FnGroupName",f:parse_FnGroupName},155:{n:"FilterMode",f:parse_FilterMode},156:{n:"BuiltInFnGroupCount",f:parse_BuiltInFnGroupCount},157:{n:"AutoFilterInfo",f:parse_AutoFilterInfo},158:{n:"AutoFilter",f:parse_AutoFilter},160:{n:"Scl",f:parse_Scl},161:{n:"Setup",f:parse_Setup},174:{n:"ScenMan",f:parse_ScenMan},175:{n:"SCENARIO",f:parse_SCENARIO},176:{n:"SxView",f:parse_SxView},177:{n:"Sxvd",f:parse_Sxvd},178:{n:"SXVI",f:parse_SXVI},180:{n:"SxIvd",f:parse_SxIvd},181:{n:"SXLI",f:parse_SXLI},182:{n:"SXPI",f:parse_SXPI},184:{n:"DocRoute",f:parse_DocRoute},185:{n:"RecipName",f:parse_RecipName},189:{n:"MulRk",f:parse_MulRk},190:{n:"MulBlank",f:parse_MulBlank},193:{n:"Mms",f:parse_Mms},197:{n:"SXDI",f:parse_SXDI},198:{n:"SXDB",f:parse_SXDB},199:{n:"SXFDB",f:parse_SXFDB},200:{n:"SXDBB",f:parse_SXDBB},201:{n:"SXNum",f:parse_SXNum},202:{n:"SxBool",f:parse_SxBool},203:{n:"SxErr",f:parse_SxErr},204:{n:"SXInt",f:parse_SXInt},205:{n:"SXString",f:parse_SXString},206:{n:"SXDtr",f:parse_SXDtr},207:{n:"SxNil",f:parse_SxNil},208:{n:"SXTbl",f:parse_SXTbl},209:{n:"SXTBRGIITM",f:parse_SXTBRGIITM},210:{n:"SxTbpg",f:parse_SxTbpg},211:{n:"ObProj",f:parse_ObProj},213:{n:"SXStreamID",f:parse_SXStreamID},215:{n:"DBCell",f:parse_DBCell},216:{n:"SXRng",f:parse_SXRng},217:{n:"SxIsxoper",f:parse_SxIsxoper},218:{n:"BookBool",f:parse_BookBool},220:{n:"DbOrParamQry",f:parse_DbOrParamQry},221:{n:"ScenarioProtect",f:parse_ScenarioProtect},222:{n:"OleObjectSize",f:parse_OleObjectSize},224:{n:"XF",f:parse_XF},225:{n:"InterfaceHdr",f:parse_InterfaceHdr},226:{n:"InterfaceEnd",f:parse_InterfaceEnd},227:{n:"SXVS",f:parse_SXVS},229:{n:"MergeCells",f:parse_MergeCells},233:{n:"BkHim",f:parse_BkHim},235:{n:"MsoDrawingGroup",f:parse_MsoDrawingGroup},236:{n:"MsoDrawing",f:parse_MsoDrawing},237:{n:"MsoDrawingSelection",f:parse_MsoDrawingSelection},239:{n:"PhoneticInfo",f:parse_PhoneticInfo},240:{n:"SxRule",f:parse_SxRule},241:{n:"SXEx",f:parse_SXEx},242:{n:"SxFilt",f:parse_SxFilt},244:{n:"SxDXF",f:parse_SxDXF},245:{n:"SxItm",f:parse_SxItm},246:{n:"SxName",f:parse_SxName},247:{n:"SxSelect",f:parse_SxSelect},248:{n:"SXPair",f:parse_SXPair},249:{n:"SxFmla",f:parse_SxFmla},251:{n:"SxFormat",f:parse_SxFormat},252:{n:"SST",f:parse_SST},253:{n:"LabelSst",f:parse_LabelSst},255:{n:"ExtSST",f:parse_ExtSST},256:{n:"SXVDEx",f:parse_SXVDEx},259:{n:"SXFormula",f:parse_SXFormula},290:{n:"SXDBEx",f:parse_SXDBEx},311:{n:"RRDInsDel",f:parse_RRDInsDel},312:{n:"RRDHead",f:parse_RRDHead},315:{n:"RRDChgCell",f:parse_RRDChgCell},317:{n:"RRTabId",f:parse_RRTabId},318:{n:"RRDRenSheet",f:parse_RRDRenSheet},319:{n:"RRSort",f:parse_RRSort},320:{n:"RRDMove",f:parse_RRDMove},330:{n:"RRFormat",f:parse_RRFormat},331:{n:"RRAutoFmt",f:parse_RRAutoFmt},333:{n:"RRInsertSh",f:parse_RRInsertSh},334:{n:"RRDMoveBegin",f:parse_RRDMoveBegin},335:{n:"RRDMoveEnd",f:parse_RRDMoveEnd},336:{n:"RRDInsDelBegin",f:parse_RRDInsDelBegin},337:{n:"RRDInsDelEnd",f:parse_RRDInsDelEnd},338:{n:"RRDConflict",f:parse_RRDConflict},339:{n:"RRDDefName",f:parse_RRDDefName},340:{n:"RRDRstEtxp",f:parse_RRDRstEtxp},351:{n:"LRng",f:parse_LRng},352:{n:"UsesELFs",f:parse_UsesELFs},353:{n:"DSF",f:parse_DSF},401:{n:"CUsr",f:parse_CUsr},402:{n:"CbUsr",f:parse_CbUsr},403:{n:"UsrInfo",f:parse_UsrInfo},404:{n:"UsrExcl",f:parse_UsrExcl},405:{n:"FileLock",f:parse_FileLock},406:{n:"RRDInfo",f:parse_RRDInfo},407:{n:"BCUsrs",f:parse_BCUsrs},408:{n:"UsrChk",f:parse_UsrChk},425:{n:"UserBView",f:parse_UserBView},426:{n:"UserSViewBegin",f:parse_UserSViewBegin},427:{n:"UserSViewEnd",f:parse_UserSViewEnd},428:{n:"RRDUserView",f:parse_RRDUserView},429:{n:"Qsi",f:parse_Qsi},430:{n:"SupBook",f:parse_SupBook},431:{n:"Prot4Rev",f:parse_Prot4Rev},432:{n:"CondFmt",f:parse_CondFmt},433:{n:"CF",f:parse_CF},434:{n:"DVal",f:parse_DVal},437:{n:"DConBin",f:parse_DConBin},438:{n:"TxO",f:parse_TxO},439:{n:"RefreshAll",f:parse_RefreshAll},440:{n:"HLink",f:parse_HLink},441:{n:"Lel",f:parse_Lel},442:{n:"CodeName",f:parse_XLSCodeName},443:{n:"SXFDBType",f:parse_SXFDBType},444:{n:"Prot4RevPass",f:parse_Prot4RevPass},445:{n:"ObNoMacros",f:parse_ObNoMacros},446:{n:"Dv",f:parse_Dv},448:{n:"Excel9File",f:parse_Excel9File},449:{n:"RecalcId",f:parse_RecalcId,r:2},450:{n:"EntExU2",f:parse_EntExU2},512:{n:"Dimensions",f:parse_Dimensions},513:{n:"Blank",f:parse_Blank},515:{n:"Number",f:parse_Number},516:{n:"Label",f:parse_Label},517:{n:"BoolErr",f:parse_BoolErr},519:{n:"String",f:parse_String},520:{n:"Row",f:parse_Row},523:{n:"Index",f:parse_Index},545:{n:"Array",f:parse_Array},549:{n:"DefaultRowHeight",f:parse_DefaultRowHeight},566:{n:"Table",f:parse_Table},574:{n:"Window2",f:parse_Window2},638:{n:"RK",f:parse_RK},659:{n:"Style",f:parse_Style},1048:{n:"BigName",f:parse_BigName},1054:{n:"Format",f:parse_Format},1084:{n:"ContinueBigName",f:parse_ContinueBigName},1212:{n:"ShrFmla",f:parse_ShrFmla},2048:{n:"HLinkTooltip",f:parse_HLinkTooltip},2049:{n:"WebPub",f:parse_WebPub},2050:{n:"QsiSXTag",f:parse_QsiSXTag},2051:{n:"DBQueryExt",f:parse_DBQueryExt},2052:{n:"ExtString",f:parse_ExtString},2053:{n:"TxtQry",f:parse_TxtQry},2054:{n:"Qsir",f:parse_Qsir},2055:{n:"Qsif",f:parse_Qsif},2056:{n:"RRDTQSIF",f:parse_RRDTQSIF},2057:{n:"BOF",f:parse_BOF},2058:{n:"OleDbConn",f:parse_OleDbConn},2059:{n:"WOpt",f:parse_WOpt},2060:{n:"SXViewEx",f:parse_SXViewEx},2061:{n:"SXTH",f:parse_SXTH},2062:{n:"SXPIEx",f:parse_SXPIEx},2063:{n:"SXVDTEx",f:parse_SXVDTEx},2064:{n:"SXViewEx9",f:parse_SXViewEx9},2066:{n:"ContinueFrt",f:parse_ContinueFrt},2067:{n:"RealTimeData",f:parse_RealTimeData},2128:{n:"ChartFrtInfo",f:parse_ChartFrtInfo},2129:{n:"FrtWrapper",f:parse_FrtWrapper},2130:{n:"StartBlock",f:parse_StartBlock},2131:{n:"EndBlock",f:parse_EndBlock},2132:{n:"StartObject",f:parse_StartObject},2133:{n:"EndObject",f:parse_EndObject},2134:{n:"CatLab",f:parse_CatLab},2135:{n:"YMult",f:parse_YMult},2136:{n:"SXViewLink",f:parse_SXViewLink},2137:{n:"PivotChartBits",f:parse_PivotChartBits},2138:{n:"FrtFontList",f:parse_FrtFontList},2146:{n:"SheetExt",f:parse_SheetExt},2147:{n:"BookExt",f:parse_BookExt,r:12},2148:{n:"SXAddl",f:parse_SXAddl},2149:{n:"CrErr",f:parse_CrErr},2150:{n:"HFPicture",f:parse_HFPicture},2151:{n:"FeatHdr",f:parse_FeatHdr},2152:{n:"Feat",f:parse_Feat},2154:{n:"DataLabExt",f:parse_DataLabExt},2155:{n:"DataLabExtContents",f:parse_DataLabExtContents},2156:{n:"CellWatch",f:parse_CellWatch},2161:{n:"FeatHdr11",f:parse_FeatHdr11},2162:{n:"Feature11",f:parse_Feature11},2164:{n:"DropDownObjIds",f:parse_DropDownObjIds},2165:{n:"ContinueFrt11",f:parse_ContinueFrt11},2166:{n:"DConn",f:parse_DConn},2167:{n:"List12",f:parse_List12},2168:{n:"Feature12",f:parse_Feature12},2169:{n:"CondFmt12",f:parse_CondFmt12},2170:{n:"CF12",f:parse_CF12},2171:{n:"CFEx",f:parse_CFEx},2172:{n:"XFCRC",f:parse_XFCRC,r:12},2173:{n:"XFExt",f:parse_XFExt,r:12},2174:{n:"AutoFilter12",f:parse_AutoFilter12},2175:{n:"ContinueFrt12",f:parse_ContinueFrt12},2180:{n:"MDTInfo",f:parse_MDTInfo},2181:{n:"MDXStr",f:parse_MDXStr},2182:{n:"MDXTuple",f:parse_MDXTuple},2183:{n:"MDXSet",f:parse_MDXSet},2184:{n:"MDXProp",f:parse_MDXProp},2185:{n:"MDXKPI",f:parse_MDXKPI},2186:{n:"MDB",f:parse_MDB},2187:{n:"PLV",f:parse_PLV},2188:{n:"Compat12",f:parse_Compat12,r:12},2189:{n:"DXF",f:parse_DXF},2190:{n:"TableStyles",f:parse_TableStyles,r:12},2191:{n:"TableStyle",f:parse_TableStyle},2192:{n:"TableStyleElement",f:parse_TableStyleElement},2194:{n:"StyleExt",f:parse_StyleExt},2195:{n:"NamePublish",f:parse_NamePublish},2196:{n:"NameCmt",f:parse_NameCmt},2197:{n:"SortData",f:parse_SortData},2198:{n:"Theme",f:parse_Theme,r:12},2199:{n:"GUIDTypeLib",f:parse_GUIDTypeLib},2200:{n:"FnGrp12",f:parse_FnGrp12},2201:{n:"NameFnGrp12",f:parse_NameFnGrp12},2202:{n:"MTRSettings",f:parse_MTRSettings,r:12},2203:{n:"CompressPictures",f:parse_CompressPictures},2204:{n:"HeaderFooter",f:parse_HeaderFooter},2205:{n:"CrtLayout12",f:parse_CrtLayout12},2206:{n:"CrtMlFrt",f:parse_CrtMlFrt},2207:{n:"CrtMlFrtContinue",f:parse_CrtMlFrtContinue},2211:{n:"ForceFullCalculation",f:parse_ForceFullCalculation},2212:{n:"ShapePropsStream",f:parse_ShapePropsStream},2213:{n:"TextPropsStream",f:parse_TextPropsStream},2214:{n:"RichTextStream",f:parse_RichTextStream},2215:{n:"CrtLayout12A",f:parse_CrtLayout12A},4097:{n:"Units",f:parse_Units},4098:{n:"Chart",f:parse_Chart},4099:{n:"Series",f:parse_Series},4102:{n:"DataFormat",f:parse_DataFormat},4103:{n:"LineFormat",f:parse_LineFormat},4105:{n:"MarkerFormat",f:parse_MarkerFormat},4106:{n:"AreaFormat",f:parse_AreaFormat},4107:{n:"PieFormat",f:parse_PieFormat},4108:{n:"AttachedLabel",f:parse_AttachedLabel},4109:{n:"SeriesText",f:parse_SeriesText},4116:{n:"ChartFormat",f:parse_ChartFormat},4117:{n:"Legend",f:parse_Legend},4118:{n:"SeriesList",f:parse_SeriesList},4119:{n:"Bar",f:parse_Bar},4120:{n:"Line",f:parse_Line},4121:{n:"Pie",f:parse_Pie},4122:{n:"Area",f:parse_Area},4123:{n:"Scatter",f:parse_Scatter},4124:{n:"CrtLine",f:parse_CrtLine},4125:{n:"Axis",f:parse_Axis},4126:{n:"Tick",f:parse_Tick},4127:{n:"ValueRange",f:parse_ValueRange},4128:{n:"CatSerRange",f:parse_CatSerRange},4129:{n:"AxisLine",f:parse_AxisLine},4130:{n:"CrtLink",f:parse_CrtLink},4132:{n:"DefaultText",f:parse_DefaultText},4133:{n:"Text",f:parse_Text},4134:{n:"FontX",f:parse_FontX},4135:{n:"ObjectLink",f:parse_ObjectLink},4146:{n:"Frame",f:parse_Frame},4147:{n:"Begin",f:parse_Begin},4148:{n:"End",f:parse_End},4149:{n:"PlotArea",f:parse_PlotArea},4154:{n:"Chart3d",f:parse_Chart3d},4156:{n:"PicF",f:parse_PicF},4157:{n:"DropBar",f:parse_DropBar},4158:{n:"Radar",f:parse_Radar},4159:{n:"Surf",f:parse_Surf},4160:{n:"RadarArea",f:parse_RadarArea},4161:{n:"AxisParent",f:parse_AxisParent},4163:{n:"LegendException",f:parse_LegendException},4164:{n:"ShtProps",f:parse_ShtProps},4165:{n:"SerToCrt",f:parse_SerToCrt},4166:{n:"AxesUsed",f:parse_AxesUsed},4168:{n:"SBaseRef",f:parse_SBaseRef},4170:{n:"SerParent",f:parse_SerParent},4171:{n:"SerAuxTrend",f:parse_SerAuxTrend},4174:{n:"IFmtRecord",f:parse_IFmtRecord},4175:{n:"Pos",f:parse_Pos},4176:{n:"AlRuns",f:parse_AlRuns},4177:{n:"BRAI",f:parse_BRAI},4187:{n:"SerAuxErrBar",f:parse_SerAuxErrBar},4188:{n:"ClrtClient",f:parse_ClrtClient},4189:{n:"SerFmt",f:parse_SerFmt},4191:{n:"Chart3DBarShape",f:parse_Chart3DBarShape},4192:{n:"Fbi",f:parse_Fbi},4193:{n:"BopPop",f:parse_BopPop},4194:{n:"AxcExt",f:parse_AxcExt},4195:{n:"Dat",f:parse_Dat},4196:{n:"PlotGrowth",f:parse_PlotGrowth},4197:{n:"SIIndex",f:parse_SIIndex},4198:{n:"GelFrame",f:parse_GelFrame},4199:{n:"BopPopCustom",f:parse_BopPopCustom},4200:{n:"Fbi2",f:parse_Fbi2},22:{n:"ExternCount",f:parsenoop},126:{n:"RK",f:parsenoop},127:{n:"ImData",f:parsenoop},135:{n:"Addin",f:parsenoop},136:{n:"Edg",f:parsenoop},137:{n:"Pub",f:parsenoop},145:{n:"Sub",f:parsenoop},148:{n:"LHRecord",f:parsenoop},149:{n:"LHNGraph",f:parsenoop},150:{n:"Sound",f:parsenoop},169:{n:"CoordList",f:parsenoop},171:{n:"GCW",f:parsenoop},188:{n:"ShrFmla",f:parsenoop},194:{n:"AddMenu",f:parsenoop},195:{n:"DelMenu",f:parsenoop},214:{n:"RString",f:parsenoop},223:{n:"UDDesc",f:parsenoop},234:{n:"TabIdConf",f:parsenoop},354:{n:"XL5Modify",f:parsenoop},421:{n:"FileSharing2",f:parsenoop},536:{n:"Name",f:parsenoop},547:{n:"ExternName",f:parse_ExternName},561:{n:"Font",f:parsenoop},1030:{n:"Formula",f:parse_Formula},2157:{n:"FeatInfo",f:parsenoop},2163:{n:"FeatInfo11",f:parsenoop},2177:{n:"SXAddl12",f:parsenoop},2240:{n:"AutoWebPub",f:parsenoop},2241:{n:"ListObj",f:parsenoop},2242:{n:"ListField",f:parsenoop},2243:{n:"ListDV",f:parsenoop},2244:{n:"ListCondFmt",f:parsenoop},2245:{n:"ListCF",f:parsenoop},2246:{n:"FMQry",f:parsenoop},2247:{n:"FMSQry",f:parsenoop},2248:{n:"PLV",f:parsenoop},2249:{n:"LnExt",f:parsenoop},2250:{n:"MkrExt",f:parsenoop},2251:{n:"CrtCoopt",f:parsenoop},0:{}};function parse_ods(zip,opts){if(typeof module!=="undefined"&&typeof require!=="undefined"&&typeof ODS==="undefined")ODS=require("./od"+"s");if(typeof ODS==="undefined"||!ODS.parse_ods)throw new Error("Unsupported ODS");return ODS.parse_ods(zip,opts)}function fix_opts_func(defaults){return function fix_opts(opts){for(var i=0;i!=defaults.length;++i){var d=defaults[i];if(opts[d[0]]===undefined)opts[d[0]]=d[1];if(d[2]==="n")opts[d[0]]=Number(opts[d[0]])}}}var fix_read_opts=fix_opts_func([["cellNF",false],["cellHTML",true],["cellFormula",true],["cellStyles",false],["cellDates",false],["sheetStubs",false],["sheetRows",0,"n"],["bookDeps",false],["bookSheets",false],["bookProps",false],["bookFiles",false],["bookVBA",false],["password",""],["WTF",false]]);var fix_write_opts=fix_opts_func([["cellDates",false],["bookSST",false],["bookType","xlsx"],["WTF",false]]);function safe_parse_wbrels(wbrels,sheets){if(!wbrels)return 0;try{wbrels=sheets.map(function pwbr(w){return[w.name,wbrels["!id"][w.id].Target]})}catch(e){return null}return!wbrels||wbrels.length===0?null:wbrels}function safe_parse_ws(zip,path,relsPath,sheet,sheetRels,sheets,opts){try{sheetRels[sheet]=parse_rels(getzipdata(zip,relsPath,true),path);sheets[sheet]=parse_ws(getzipdata(zip,path),path,opts,sheetRels[sheet])}catch(e){if(opts.WTF)throw e}}var nodirs=function nodirs(x){return x.substr(-1)!="/"};function parse_zip(zip,opts){make_ssf(SSF);opts=opts||{};fix_read_opts(opts);reset_cp();if(safegetzipfile(zip,"META-INF/manifest.xml"))return parse_ods(zip,opts);var entries=keys(zip.files).filter(nodirs).sort();var dir=parse_ct(getzipdata(zip,"[Content_Types].xml"),opts);var xlsb=false;var sheets,binname;if(dir.workbooks.length===0){binname="xl/workbook.xml";if(getzipdata(zip,binname,true))dir.workbooks.push(binname)}if(dir.workbooks.length===0){binname="xl/workbook.bin";if(!getzipfile(zip,binname,true))throw new Error("Could not find workbook");dir.workbooks.push(binname);xlsb=true}if(dir.workbooks[0].substr(-3)=="bin")xlsb=true;if(xlsb)set_cp(1200);if(!opts.bookSheets&&!opts.bookProps){strs=[];if(dir.sst)strs=parse_sst(getzipdata(zip,dir.sst.replace(/^\//,"")),dir.sst,opts);styles={};if(dir.style)styles=parse_sty(getzipdata(zip,dir.style.replace(/^\//,"")),dir.style,opts);themes={};if(opts.cellStyles&&dir.themes.length)themes=parse_theme(getzipdata(zip,dir.themes[0].replace(/^\//,""),true),dir.themes[0],opts)}var wb=parse_wb(getzipdata(zip,dir.workbooks[0].replace(/^\//,"")),dir.workbooks[0],opts);var props={},propdata="";if(dir.coreprops.length!==0){propdata=getzipdata(zip,dir.coreprops[0].replace(/^\//,""),true);if(propdata)props=parse_core_props(propdata);if(dir.extprops.length!==0){propdata=getzipdata(zip,dir.extprops[0].replace(/^\//,""),true);if(propdata)parse_ext_props(propdata,props)}}var custprops={};if(!opts.bookSheets||opts.bookProps){if(dir.custprops.length!==0){propdata=getzipdata(zip,dir.custprops[0].replace(/^\//,""),true);if(propdata)custprops=parse_cust_props(propdata,opts)}}var out={};if(opts.bookSheets||opts.bookProps){if(props.Worksheets&&props.SheetNames.length>0)sheets=props.SheetNames;else if(wb.Sheets)sheets=wb.Sheets.map(function pluck(x){return x.name});if(opts.bookProps){out.Props=props;out.Custprops=custprops}if(typeof sheets!=="undefined")out.SheetNames=sheets;if(opts.bookSheets?out.SheetNames:opts.bookProps)return out}sheets={};var deps={};if(opts.bookDeps&&dir.calcchain)deps=parse_cc(getzipdata(zip,dir.calcchain.replace(/^\//,"")),dir.calcchain,opts);var i=0;var sheetRels={};var path,relsPath;if(!props.Worksheets){var wbsheets=wb.Sheets;props.Worksheets=wbsheets.length;props.SheetNames=[];for(var j=0;j!=wbsheets.length;++j){props.SheetNames[j]=wbsheets[j].name}}var wbext=xlsb?"bin":"xml";var wbrelsfile="xl/_rels/workbook."+wbext+".rels";var wbrels=parse_rels(getzipdata(zip,wbrelsfile,true),wbrelsfile);if(wbrels)wbrels=safe_parse_wbrels(wbrels,wb.Sheets);var nmode=getzipdata(zip,"xl/worksheets/sheet.xml",true)?1:0;for(i=0;i!=props.Worksheets;++i){if(wbrels)path="xl/"+wbrels[i][1].replace(/[\/]?xl\//,"");else{path="xl/worksheets/sheet"+(i+1-nmode)+"."+wbext;path=path.replace(/sheet0\./,"sheet.")}relsPath=path.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");safe_parse_ws(zip,path,relsPath,props.SheetNames[i],sheetRels,sheets,opts)}if(dir.comments)parse_comments(zip,dir.comments,sheets,sheetRels,opts);out={Directory:dir,Workbook:wb,Props:props,Custprops:custprops,Deps:deps,Sheets:sheets,SheetNames:props.SheetNames,Strings:strs,Styles:styles,Themes:themes,SSF:SSF.get_table()};if(opts.bookFiles){out.keys=entries;out.files=zip.files}if(opts.bookVBA){if(dir.vba.length>0)out.vbaraw=getzipdata(zip,dir.vba[0],true);else if(dir.defaults.bin==="application/vnd.ms-office.vbaProject")out.vbaraw=getzipdata(zip,"xl/vbaProject.bin",true)}return out}function add_rels(rels,rId,f,type,relobj){if(!relobj)relobj={};if(!rels["!id"])rels["!id"]={};relobj.Id="rId"+rId;relobj.Type=type;relobj.Target=f;if(rels["!id"][relobj.Id])throw new Error("Cannot rewrite rId "+rId);rels["!id"][relobj.Id]=relobj;rels[("/"+relobj.Target).replace("//","/")]=relobj}function write_zip(wb,opts){if(wb&&!wb.SSF){wb.SSF=SSF.get_table()}if(wb&&wb.SSF){make_ssf(SSF);SSF.load_table(wb.SSF);opts.revssf=evert_num(wb.SSF);opts.revssf[wb.SSF[65535]]=0}opts.rels={};opts.wbrels={};opts.Strings=[];opts.Strings.Count=0;opts.Strings.Unique=0;var wbext=opts.bookType=="xlsb"?"bin":"xml";var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};fix_write_opts(opts=opts||{});var zip=new jszip;var f="",rId=0;opts.cellXfs=[];get_cell_style(opts.cellXfs,{},{revssf:{General:0}});f="docProps/core.xml";zip.file(f,write_core_props(wb.Props,opts));ct.coreprops.push(f);add_rels(opts.rels,2,f,RELS.CORE_PROPS);f="docProps/app.xml";if(!wb.Props)wb.Props={};wb.Props.SheetNames=wb.SheetNames;wb.Props.Worksheets=wb.SheetNames.length;zip.file(f,write_ext_props(wb.Props,opts));ct.extprops.push(f);add_rels(opts.rels,3,f,RELS.EXT_PROPS);if(wb.Custprops!==wb.Props&&keys(wb.Custprops||{}).length>0){f="docProps/custom.xml";zip.file(f,write_cust_props(wb.Custprops,opts));ct.custprops.push(f);add_rels(opts.rels,4,f,RELS.CUST_PROPS)}f="xl/workbook."+wbext;zip.file(f,write_wb(wb,f,opts));ct.workbooks.push(f);add_rels(opts.rels,1,f,RELS.WB);for(rId=1;rId<=wb.SheetNames.length;++rId){f="xl/worksheets/sheet"+rId+"."+wbext;zip.file(f,write_ws(rId-1,f,opts,wb));ct.sheets.push(f);add_rels(opts.wbrels,rId,"worksheets/sheet"+rId+"."+wbext,RELS.WS)}if(opts.Strings!=null&&opts.Strings.length>0){f="xl/sharedStrings."+wbext;zip.file(f,write_sst(opts.Strings,f,opts));ct.strs.push(f);add_rels(opts.wbrels,++rId,"sharedStrings."+wbext,RELS.SST)}f="xl/theme/theme1.xml";zip.file(f,write_theme());ct.themes.push(f);add_rels(opts.wbrels,++rId,"theme/theme1.xml",RELS.THEME);f="xl/styles."+wbext;zip.file(f,write_sty(wb,f,opts));ct.styles.push(f);add_rels(opts.wbrels,++rId,"styles."+wbext,RELS.STY);zip.file("[Content_Types].xml",write_ct(ct,opts));zip.file("_rels/.rels",write_rels(opts.rels));zip.file("xl/_rels/workbook."+wbext+".rels",write_rels(opts.wbrels));return zip}function firstbyte(f,o){switch((o||{}).type||"base64"){case"buffer":return f[0];case"base64":return Base64.decode(f.substr(0,12)).charCodeAt(0);case"binary":return f.charCodeAt(0);case"array":return f[0];default:throw new Error("Unrecognized type "+o.type)}}function read_zip(data,opts){var zip,d=data;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";switch(o.type){case"base64":zip=new jszip(d,{base64:true});break;case"binary":case"array":zip=new jszip(d,{base64:false});break;case"buffer":zip=new jszip(d);break;case"file":zip=new jszip(d=_fs.readFileSync(data));break;default:throw new Error("Unrecognized type "+o.type)}return parse_zip(zip,o)}function readSync(data,opts){var zip,d=data,isfile=false,n;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";if(o.type=="file"){isfile=true;o.type="buffer";d=_fs.readFileSync(data)}switch(n=firstbyte(d,o)){case 208:if(isfile)o.type="file";return parse_xlscfb(CFB.read(data,o),o);case 9:return parse_xlscfb(s2a(o.type==="base64"?Base64.decode(data):data),o);case 60:return parse_xlml(d,o);case 80:if(isfile)o.type="file";return read_zip(data,opts);default:throw new Error("Unsupported file "+n)}}function readFileSync(data,opts){var o=opts||{};o.type="file";return readSync(data,o)}function write_zip_type(wb,opts){var o=opts||{};var z=write_zip(wb,o);switch(o.type){case"base64":return z.generate({type:"base64"});case"binary":return z.generate({type:"string"});case"buffer":return z.generate({type:"nodebuffer"});case"file":return _fs.writeFileSync(o.file,z.generate({type:"nodebuffer"}));default:throw new Error("Unrecognized type "+o.type)}}function writeSync(wb,opts){var o=opts||{};switch(o.bookType){case"xml":return write_xlml(wb,o);default:return write_zip_type(wb,o)}}function writeFileSync(wb,filename,opts){var o=opts||{};o.type="file";o.file=filename;switch(o.file.substr(-5).toLowerCase()){case".xlsx":o.bookType="xlsx";break;case".xlsm":o.bookType="xlsm";break;case".xlsb":o.bookType="xlsb";break;default:switch(o.file.substr(-4).toLowerCase()){case".xls":o.bookType="xls";break;case".xml":o.bookType="xml";break}}return writeSync(wb,o)}function decode_row(rowstr){return parseInt(unfix_row(rowstr),10)-1}function encode_row(row){return""+(row+1)}function fix_row(cstr){return cstr.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function unfix_row(cstr){return cstr.replace(/\$(\d+)$/,"$1")}function decode_col(colstr){var c=unfix_col(colstr),d=0,i=0;for(;i!==c.length;++i)d=26*d+c.charCodeAt(i)-64;return d-1}function encode_col(col){var s="";for(++col;col;col=Math.floor((col-1)/26))s=String.fromCharCode((col-1)%26+65)+s;return s}function fix_col(cstr){return cstr.replace(/^([A-Z])/,"$$$1")}function unfix_col(cstr){return cstr.replace(/^\$([A-Z])/,"$1")}function split_cell(cstr){return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function decode_cell(cstr){var splt=split_cell(cstr);return{c:decode_col(splt[0]),r:decode_row(splt[1])}}function encode_cell(cell){return encode_col(cell.c)+encode_row(cell.r)}function fix_cell(cstr){return fix_col(fix_row(cstr))}function unfix_cell(cstr){return unfix_col(unfix_row(cstr))}function decode_range(range){var x=range.split(":").map(decode_cell);return{s:x[0],e:x[x.length-1]}}function encode_range(cs,ce){if(ce===undefined||typeof ce==="number")return encode_range(cs.s,cs.e);if(typeof cs!=="string")cs=encode_cell(cs);if(typeof ce!=="string")ce=encode_cell(ce);return cs==ce?cs:cs+":"+ce}function safe_decode_range(range){var o={s:{c:0,r:0},e:{c:0,r:0}};var idx=0,i=0,cc=0;var len=range.length;for(idx=0;i26)break;idx=26*idx+cc}o.s.c=--idx;for(idx=0;i9)break;idx=10*idx+cc}o.s.r=--idx;if(i===len||range.charCodeAt(++i)===58){o.e.c=o.s.c;o.e.r=o.s.r;return o}for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.e.c=--idx;for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.e.r=--idx;return o}function safe_format_cell(cell,v){if(cell.z!==undefined)try{return cell.w=SSF.format(cell.z,v)}catch(e){}if(!cell.XF)return v;try{return cell.w=SSF.format(cell.XF.ifmt||0,v)}catch(e){return""+v}}function format_cell(cell,v){if(cell==null||cell.t==null)return"";if(cell.w!==undefined)return cell.w;if(v===undefined)return safe_format_cell(cell,cell.v);return safe_format_cell(cell,v)}function sheet_to_json(sheet,opts){var val,row,range,header=0,offset=1,r,hdr=[],isempty,R,C,v;var o=opts!=null?opts:{};var raw=o.raw;if(sheet==null||sheet["!ref"]==null)return[];range=o.range!==undefined?o.range:sheet["!ref"];if(o.header===1)header=1;else if(o.header==="A")header=2;else if(Array.isArray(o.header))header=3;switch(typeof range){case"string":r=safe_decode_range(range);break;case"number":r=safe_decode_range(sheet["!ref"]);r.s.r=range;break;default:r=range}if(header>0)offset=0;var rr=encode_row(r.s.r);var cols=new Array(r.e.c-r.s.c+1);var out=new Array(r.e.r-r.s.r-offset+1);var outi=0;for(C=r.s.c;C<=r.e.c;++C){cols[C]=encode_col(C);val=sheet[cols[C]+rr];switch(header){case 1:hdr[C]=C;break;case 2:hdr[C]=cols[C];break;case 3:hdr[C]=o.header[C-r.s.c];break;default:if(val===undefined)continue;hdr[C]=format_cell(val)}}for(R=r.s.r+offset;R<=r.e.r;++R){rr=encode_row(R);isempty=true;if(header===1)row=[];else{row={};if(Object.defineProperty)Object.defineProperty(row,"__rowNum__",{value:R,enumerable:false});else row.__rowNum__=R}for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];if(val===undefined||val.t===undefined)continue;v=val.v;switch(val.t){case"e":continue;case"s":break;case"b":case"n":break;default:throw"unrecognized type "+val.t}if(v!==undefined){row[hdr[C]]=raw?v:format_cell(val,v);isempty=false}}if(isempty===false||header===1)out[outi++]=row}out.length=outi;return out}function sheet_to_row_object_array(sheet,opts){return sheet_to_json(sheet,opts!=null?opts:{})}function sheet_to_csv(sheet,opts){var out="",txt="",qreg=/"/g;var o=opts==null?{}:opts;if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]);var FS=o.FS!==undefined?o.FS:",",fs=FS.charCodeAt(0);var RS=o.RS!==undefined?o.RS:"\n",rs=RS.charCodeAt(0);var row="",rr="",cols=[];var i=0,cc=0,val;var R=0,C=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(R=r.s.r;R<=r.e.r;++R){row="";rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];txt=val!==undefined?""+format_cell(val):"";for(i=0,cc=0;i!==txt.length;++i)if((cc=txt.charCodeAt(i))===fs||cc===rs||cc===34){txt='"'+txt.replace(qreg,'""')+'"';break}row+=(C===r.s.c?"":FS)+txt}out+=row+RS}return out}var make_csv=sheet_to_csv;function sheet_to_formulae(sheet){var cmds,y="",x,val="";if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]),rr="",cols=[],C;cmds=new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));var i=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(var R=r.s.r;R<=r.e.r;++R){rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){y=cols[C]+rr;x=sheet[y];val="";if(x===undefined)continue;if(x.f!=null)val=x.f;else if(x.w!==undefined)val="'"+x.w;else if(x.v===undefined)continue;else val=""+x.v;cmds[i++]=y+"="+val}}cmds.length=i;return cmds}var utils={encode_col:encode_col,encode_row:encode_row,encode_cell:encode_cell,encode_range:encode_range,decode_col:decode_col,decode_row:decode_row,split_cell:split_cell,decode_cell:decode_cell,decode_range:decode_range,format_cell:format_cell,get_formulae:sheet_to_formulae,make_csv:sheet_to_csv,make_json:sheet_to_json,make_formulae:sheet_to_formulae,sheet_to_csv:sheet_to_csv,sheet_to_json:sheet_to_json,sheet_to_formulae:sheet_to_formulae,sheet_to_row_object_array:sheet_to_row_object_array};XLSX.parse_xlscfb=parse_xlscfb;XLSX.parse_zip=parse_zip;XLSX.read=readSync;XLSX.readFile=readFileSync;XLSX.readFileSync=readFileSync;XLSX.write=writeSync;XLSX.writeFile=writeFileSync;XLSX.writeFileSync=writeFileSync;XLSX.utils=utils;XLSX.CFB=CFB;XLSX.SSF=SSF})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX; diff --git a/dist/xlsx.core.min.map b/dist/xlsx.core.min.map index 61a96cf..d900dac 100644 --- a/dist/xlsx.core.min.map +++ b/dist/xlsx.core.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/xlsx.core.min.js","sources":["jszip.js","xlsx.js"],"names":["e","exports","module","define","amd","f","window","global","self","JSZip","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode",2,"CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent",3,"STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate",4,"utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils",5,"DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date",6,"base64","binary","dir","createFolders","date","compression","comment",7,"string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object",8,"USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw",9,"options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support",10,"ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries",11,"Buffer","encoding","test","isBuffer","undefined",12,"Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader",13,"signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8",14,"ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR",15,"StringReader","./dataReader",16,"join",17,"arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob",18,"sig0","sig1","sig2","sig3","subarray",19,20,"_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min",21,"identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method",22,"ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry",23,"isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField",24,"assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants",25,"zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream",26,"zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js",27,"TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32",28,"STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common",29,"adler32","adler","s1","s2",30,"Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN",31,"makeTable","crcTable","end",32,"trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees",33,"GZheader","xflags","extra_len","done",34,"BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane",35,"inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees",36,"MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index",37,"0","-1","-2","-3","-4","-5","-6",38,"STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb",39,"ZStream","XLSX","version","current_codepage","current_cptable","cptable","reset_cp","set_cp","cp","char_codes","debom_xml","substr","SSF","make_ssf","_strrev","pad0","d","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","opts_fmt","fixopts","table_fmt",40,45,46,47,48,49,56,65535,"days","months","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","abs","LOG10E","_general_num","general_fmt","_general","fix_hijri","parse_date_code","b2","dow","dout","T","H","M","S","date1904","setDate","getDay","write_date","fmt","ss0","ss","tt","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","flr","write_num_flt","ffmt","oo","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","format","_table","load_entry","get_table","load_table","tbl","isval","keys","evert_key","key","K","evert","evert_num","evert_arr","datenum","epoch","parse","cc2str","arr","has_buf","getdata","safegetzipfile","getzipfile","getzipdata","safe","_fs","jszip","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","strip_ns","encodings",""","'",">","<","&","rencoding","rencstr","split","encregex","coderegex","unescapexml","decregex","charegex","escapexml","parsexmlbool","utf8read","utf8reada","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","g","RegExp","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","forEach","wtregex","writetag","wxt_helper","map","writextag","write_w3cdtf","toISOString","write_vt","XML_HEADER","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","readIEEE754","isLE","nl","ml","el","eMax","eBias","NaN","Infinity","__toBuffer","___toBuffer","toBuffer_","bufs","__double","___double","is_buf","is_buf_a","double_","readDoubleLE","is_buf_b","__readUInt8","__readUInt16LE","__readInt16LE","__readUInt32LE","__readInt32LE","ReadShift","loc","WriteShift","writeUInt16LE","writeUInt32LE","writeDoubleLE","writeInt32LE","prep_blob","read_shift","write_shift","parsenoop","writenoop","new_buf","sz","recordhopper","cb","tmpbyte","cntbyte","RT","R","RecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","evert_RE","parse_StrRun","ich","ifnt","parse_RichStr","parse_XLWideString","rgsStrRun","dwSizeStrRun","write_RichStr","write_XLWideString","parse_Cell","col","iStyleRef","fPhShow","write_Cell","cell","parse_CodeName","parse_XLNullableWideString","cchCharacters","write_XLNullableWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr",42,43,255,"RBErr","parse_BrtColor","fValidRGB","xColorType","nTintAndShade","bRed","bGreen","bBlue","bAlpha","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.chartsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml","application/vnd.ms-excel.dialogsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml","application/vnd.ms-excel.macrosheet","application/vnd.ms-excel.macrosheet+xml","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.ms-excel.comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","sheet","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","sheets","styles","type2ct","CT","parse_ct","ctext","ct","calcchains","themes","coreprops","extprops","custprops","comments","vba","TODO","rels","xmlns","Extension","ContentType","PartName","WTF","console","error","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","parse_rels","currentFilePath","hash","resolveRelativePathIntoAbsolute","toksFrom","pop","toksTo","reversed","tokTo","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","widx","Worksheets","parts","SheetNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","xmlnsvt","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","CS2CP",77,128,129,130,134,136,161,162,163,177,178,186,204,222,238,69,"parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","font","strike","rgb","color","family","parse_r","terms","rs","sitregex","sirregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","Count","Unique","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","hex2RGB","rgb2Hex","rgb2HSL","G","C","H6","L2","hsl2RGB","hsl","L","h6","X","rgb_tint","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","width2px","width","px2char","px","char2width","chr","cycle_width","collw","find_mdw","coll","parse_fills","Fills","patternType","bgColor","indexed","theme","fgColor","parse_numFmts","NumberFmt","formatCode","numFmtId","write_numFmts","NF","parse_cellXfs","CellXf","fillId","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","STYLES_XML_ROOT","STY","write_sty_xml","wb","parse_BrtFmt","ifmt","stFmtCode","parse_BrtFont","dyHeight","grbit","bls","sss","uls","bFamily","bCharSet","brtColor","bFontScheme","Bold","Italic","Strikeout","Outline","Shadow","Condense","Extend","Sub","Sup","parse_BrtXF","ixfeParent","ixfe","parse_sty_bin","hopper_sty","write_sty_bin","THEME","parse_clrScheme","themeElements","clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","encode_cell","parse_cc_bin","hopper_cc","write_cc_bin","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","ref","range","safe_decode_range","thisCell","decode_cell","encoded","encode_range","author","parse_comments_xml","authors","commentList","trim","authorId","guid","sheetRows","textMatch","rt","write_comments_xml","parse_BrtBeginComment","iauthor","rfx","parse_BrtCommentAuthor","parse_BrtCommentText","parse_comments_bin","hopper_cmnt","write_comments_bin","parse_CellParsedFormula","cce","_ssfopts","WS","get_sst_id","get_cell_style","revssf","fontId","borderId","xfId","applyNumberFormat","safe_format","fillid","cellNF","raw_rgb","parse_ws_xml_dim","ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","parse_ws_xml","ridx","mergecells","merges","columns","cellStyles","cols","parse_ws_xml_cols","refguess","mtch","parse_ws_xml_data","parse_ws_xml_hlinks","tmpref","write_ws_xml_merges","location","Rel","rng","addr","seencol","coli","colm","colM","wpx","wch","write_ws_xml_cols","customWidth","write_ws_xml_cell","oldt","oldv","cellDates","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","match_v","match_f","sdata","guess","cells","cref","tagr","tagc","sstr","do_format","cf","marr","mt","marrlen","xlen","cellFormula","sheetStubs","write_ws_xml_data","encode_col","encode_row","WS_XML_ROOT","xmlns:r","write_ws_xml","sidx","rdata","Sheets","parse_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","parse_BrtCellBool","fBool","parse_BrtCellError","parse_BrtCellIsst","isst","parse_BrtCellReal","parse_BrtCellRk","parse_BrtCellSt","parse_BrtFmlaBool","formula","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","parse_BrtHLink","relId","tooltip","display","parse_ws_bin","!id","row","ws_parse","write_ws_bin_cell","write_CELLTABLE","write_ws_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","target","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","wbnsregex","parse_wb_xml","AppVersion","xml_wb","WB_XML_ROOT","safe1904","Workbook","write_wb_xml","sheetId","r:id","parse_BrtBundleSh","hsState","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","dwThemeVersion","strName","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_wb_bin","hopper_wb","write_BUNDLESHS","write_BrtFileVersion","write_BOOKVIEWS","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_sty","parse_theme","parse_sst","parse_cc","write_wb","write_ws","write_sty","write_sst",44,50,51,52,53,54,55,57,58,59,60,62,63,64,65,66,67,68,70,131,132,133,135,137,138,139,140,141,142,143,144,145,146,147,148,151,152,153,154,155,156,157,158,159,160,164,165,166,167,168,169,170,171,172,173,174,175,176,179,180,181,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,357,358,359,360,361,362,363,364,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,564,565,566,569,570,572,573,574,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,671,672,673,674,675,676,677,678,679,680,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1061,1062,1063,1066,1067,1068,1069,1070,1071,1072,1073,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1177,1178,1180,1181,1182,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2060,2067,2068,2069,2070,2071,2072,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,"parse_ods","ODS","fix_opts_func","fix_opts","Number","fix_read_opts","fix_write_opts","safe_parse_wbrels","wbrels","pwbr","safe_parse_ws","relsPath","nodirs","parse_zip","entries","sort","binname","bookSheets","bookProps","props","propdata","pluck","Props","Custprops","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Directory","Deps","Styles","Themes","bookFiles","bookVBA","vbaraw","bin","add_rels","rId","relobj","write_zip","General","readSync","readFileSync","writeSync","writeFileSync","decode_row","rowstr","unfix_row","fix_row","cstr","decode_col","colstr","unfix_col","fix_col","split_cell","splt","fix_cell","unfix_cell","decode_range","cs","ce","safe_format_cell","XF","format_cell","sheet_to_json","hdr","isempty","outi","create","__rowNum__","sheet_to_row_object_array","sheet_to_csv","txt","qreg","FS","fs","RS","make_csv","sheet_to_formulae","cmds","get_formulae","make_json","make_formulae","parseZip","read","readFile","write","writeFile"],"mappings":"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AAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY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"} \ No newline at end of file +{"version":3,"file":"dist/xlsx.core.min.js","sources":["jszip.js","xlsx.js"],"names":["e","exports","module","define","amd","f","window","global","self","JSZip","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode",2,"CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent",3,"STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate",4,"utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils",5,"DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date",6,"base64","binary","dir","createFolders","date","compression","comment",7,"string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object",8,"USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw",9,"options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support",10,"ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries",11,"Buffer","encoding","test","isBuffer","undefined",12,"Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader",13,"signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8",14,"ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR",15,"StringReader","./dataReader",16,"join",17,"arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob",18,"sig0","sig1","sig2","sig3","subarray",19,20,"_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min",21,"identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method",22,"ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry",23,"isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField",24,"assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants",25,"zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream",26,"zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js",27,"TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32",28,"STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common",29,"adler32","adler","s1","s2",30,"Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN",31,"makeTable","crcTable","end",32,"trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees",33,"GZheader","xflags","extra_len","done",34,"BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane",35,"inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees",36,"MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index",37,"0","-1","-2","-3","-4","-5","-6",38,"STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb",39,"ZStream","XLSX","make_xlsx","version","current_codepage","current_cptable","cptable","reset_cp","set_cp","cp","char_codes","debom_xml","_getchar","_gc1","substr","_gc2","Base64","make_b64","map","c1","c3","e1","e2","e3","e4","b64_decode","has_buf","new_raw_buf","s2a","split","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","d","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","opts_fmt","fixopts","table_fmt",40,45,46,47,48,49,56,65535,"days","months","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","abs","LOG10E","_general_num","general_fmt","_general","fix_hijri","parse_date_code","b2","dow","dout","T","H","M","S","date1904","setDate","getDay","write_date","fmt","ss0","ss","tt","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","flr","write_num_flt","ffmt","oo","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","format","_table","load_entry","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","DO_NOT_EXPORT_CFB","CFB","_CFB","parse","mver","ssz","nmfs","ndfs","dir_start","minifat_start","difat_start","fat_addrs","prep_blob","mv","check_get_mver","check_shifts","nds","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","root_name","find_path","make_find_path","find","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","L","R","C","pl","dad","UCFullPaths","UCPaths","UCPath","cnt","sector","__readInt32LE","get_sector_list","chkd","sl","buf_chain","modulus","addr","nodes","__toBuffer","minifat_store","namelen","ctime","mtime","__utf16le","color","clsid","ct","read_date","mt","storage","MSSZ","__readUInt32LE","fs","readFileSync","readSync","consts","MAXREGSECT","DIFSECT","FATSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","read","ReadShift","CheckField","isval","keys","evert_key","key","K","evert","evert_num","evert_arr","datenum","epoch","cc2str","arr","getdata","safegetzipfile","getzipfile","getzipdata","safe","_fs","jszip","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","strip_ns","encodings",""","'",">","<","&","rencoding","rencstr","unescapexml","encregex","coderegex","decregex","charegex","escapexml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8read","utf8reada","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","g","RegExp","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","forEach","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XML_HEADER","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","readIEEE754","isLE","nl","ml","el","eMax","eBias","NaN","Infinity","___toBuffer","toBuffer_","___utf16le","utf16le_","__readUInt16LE","__hexlify","___hexlify","hexlify_","__utf8","___utf8","__readUInt8","__lpstr","___lpstr","lpstr_","__lpwstr","___lpwstr","lpwstr_","__double","___double","is_buf","is_buf_a","utf16le_b","lpstr_b","readUInt32LE","lpwstr_b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","___unhexlify","__unhexlify","oI","oR","loc","WriteShift","writeUInt16LE","writeUInt32LE","writeDoubleLE","writeInt32LE","hexstr","fld","write_shift","parsenoop","writenoop","new_buf","sz","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","evert_RE","shift_cell_xls","cell","tgt","cRel","rRel","shift_range_xls","range","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","createHash","update","digest","parse_StrRun","ich","ifnt","parse_RichStr","parse_XLWideString","rgsStrRun","dwSizeStrRun","write_RichStr","write_XLWideString","parse_XLSBCell","col","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","parse_XLNullableWideString","cchCharacters","write_XLNullableWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr",42,43,255,"RBErr","parse_BrtColor","fValidRGB","xColorType","nTintAndShade","bRed","bGreen","bBlue","bAlpha","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","VT_EMPTY","VT_NULL","VT_I2","VT_I4","VT_R4","VT_R8","VT_CY","VT_DATE","VT_BSTR","VT_ERROR","VT_BOOL","VT_VARIANT","VT_DECIMAL","VT_I1","VT_UI1","VT_UI2","VT_UI4","VT_I8","VT_UI8","VT_INT","VT_UINT","VT_LPSTR","VT_LPWSTR","VT_FILETIME","VT_BLOB","VT_STREAM","VT_STORAGE","VT_STREAMED_Object","VT_STORED_Object","VT_BLOB_Object","VT_CF","VT_CLSID","VT_VERSIONED_STREAM","VT_VECTOR","VT_ARRAY","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties",2147483648,2147483651,1919054434,"CountryEnum",41,44,52,55,61,64,66,81,82,84,86,90,105,213,216,218,351,354,358,420,886,961,962,963,964,965,966,971,972,974,981,"XLSFillPattern","rgbify","XLSIcv","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.chartsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml","application/vnd.ms-excel.dialogsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml","application/vnd.ms-excel.macrosheet","application/vnd.ms-excel.macrosheet+xml","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.ms-excel.comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","sheet","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","sheets","styles","type2ct","CT","parse_ct","ctext","calcchains","themes","coreprops","extprops","custprops","comments","vba","TODO","rels","xmlns","Extension","ContentType","PartName","WTF","console","error","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","parse_rels","currentFilePath","hash","resolveRelativePathIntoAbsolute","toksFrom","pop","toksTo","reversed","tokTo","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","widx","Worksheets","parts","SheetNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","xmlnsvt","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","parse_ClipboardData","Size","parse_VtVector","_opts","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","parslurp","target","parslurp2","parseuint16","parseuint16a","parse_Boolean","parse_Bes","parse_ShortXLUnicodeString","cch","width","biff","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","parse_URLMoniker","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","parse_frtHeader","rt","parse_OptXLUnicodeString","HIDEOBJENUM","parse_HideObjEnum","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","FtTab","parse_FtArray","fts","ft","parse_FontIndex","parse_BOF","BIFFVer","parse_InterfaceHdr","parse_WriteAccess","enc","UserName","parse_BoundSheet8","hidden","hs","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","Col","rht","parse_ForceFullCalculation","fullcalc","parse_CompressPictures","parse_RecalcId","parse_DefaultRowHeight","miyRw","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","parse_Font","parse_LabelSst","isst","parse_Label","parse_Format","ifmt","fmtstr","parse_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_CellStyleXF","patternType","icvFore","icvBack","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","parse_BoolErr","parse_Number","xnum","parse_XLHeaderFooter","parse_SupBook","ctab","virtPath","rgst","sbcch","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","parse_Lbl","chKey","cce","itab","rgce","parse_NameParsedFormula","Name","parse_ExternSheet","snames","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","row","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","cmo","parse_TxO","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","texts","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","parse_Style","parse_StyleExt","parse_ColInfo","parse_Window2","parse_Backup","parse_Blank","parse_BottomMargin","parse_BuiltInFnGroupCount","parse_CalcCount","parse_CalcDelta","parse_CalcIter","parse_CalcMode","parse_CalcPrecision","parse_CalcRefMode","parse_CalcSaveRecalc","parse_CodePage","parse_Compat12","parse_Date1904","parse_DefColWidth","parse_DSF","parse_EntExU2","parse_EOF","parse_Excel9File","parse_FeatHdr","parse_FontX","parse_Footer","parse_GridSet","parse_HCenter","parse_Header","parse_HideObj","parse_InterfaceEnd","parse_LeftMargin","parse_Mms","parse_ObjProtect","parse_Password","parse_PrintGrid","parse_PrintRowCol","parse_PrintSize","parse_Prot4Rev","parse_Prot4RevPass","parse_Protect","parse_RefreshAll","parse_RightMargin","parse_RRTabId","parse_ScenarioProtect","parse_Scl","parse_String","parse_SxBool","parse_TopMargin","parse_UsesELFs","parse_VCenter","parse_WinProtect","parse_WriteProtect","parse_VerticalPageBreaks","parse_HorizontalPageBreaks","parse_Selection","parse_Continue","parse_Pane","parse_Pls","parse_DCon","parse_DConRef","parse_DConName","parse_XCT","parse_CRN","parse_FileSharing","parse_Uncalced","parse_Template","parse_Intl","parse_WsBool","parse_Sort","parse_Sync","parse_LPr","parse_DxGCol","parse_FnGroupName","parse_FilterMode","parse_AutoFilterInfo","parse_AutoFilter","parse_Setup","parse_ScenMan","parse_SCENARIO","parse_SxView","parse_Sxvd","parse_SXVI","parse_SxIvd","parse_SXLI","parse_SXPI","parse_DocRoute","parse_RecipName","parse_MulBlank","parse_SXDI","parse_SXDB","parse_SXFDB","parse_SXDBB","parse_SXNum","parse_SxErr","parse_SXInt","parse_SXString","parse_SXDtr","parse_SxNil","parse_SXTbl","parse_SXTBRGIITM","parse_SxTbpg","parse_ObProj","parse_SXStreamID","parse_DBCell","parse_SXRng","parse_SxIsxoper","parse_BookBool","parse_DbOrParamQry","parse_OleObjectSize","parse_SXVS","parse_BkHim","parse_MsoDrawingGroup","parse_MsoDrawing","parse_MsoDrawingSelection","parse_PhoneticInfo","parse_SxRule","parse_SXEx","parse_SxFilt","parse_SxDXF","parse_SxItm","parse_SxName","parse_SxSelect","parse_SXPair","parse_SxFmla","parse_SxFormat","parse_SXVDEx","parse_SXFormula","parse_SXDBEx","parse_RRDInsDel","parse_RRDHead","parse_RRDChgCell","parse_RRDRenSheet","parse_RRSort","parse_RRDMove","parse_RRFormat","parse_RRAutoFmt","parse_RRInsertSh","parse_RRDMoveBegin","parse_RRDMoveEnd","parse_RRDInsDelBegin","parse_RRDInsDelEnd","parse_RRDConflict","parse_RRDDefName","parse_RRDRstEtxp","parse_LRng","parse_CUsr","parse_CbUsr","parse_UsrInfo","parse_UsrExcl","parse_FileLock","parse_RRDInfo","parse_BCUsrs","parse_UsrChk","parse_UserBView","parse_UserSViewBegin","parse_UserSViewEnd","parse_RRDUserView","parse_Qsi","parse_CondFmt","parse_CF","parse_DVal","parse_DConBin","parse_Lel","parse_XLSCodeName","parse_SXFDBType","parse_ObNoMacros","parse_Dv","parse_Index","parse_Table","parse_BigName","parse_ContinueBigName","parse_WebPub","parse_QsiSXTag","parse_DBQueryExt","parse_ExtString","parse_TxtQry","parse_Qsir","parse_Qsif","parse_RRDTQSIF","parse_OleDbConn","parse_WOpt","parse_SXViewEx","parse_SXTH","parse_SXPIEx","parse_SXVDTEx","parse_SXViewEx9","parse_ContinueFrt","parse_RealTimeData","parse_ChartFrtInfo","parse_FrtWrapper","parse_StartBlock","parse_EndBlock","parse_StartObject","parse_EndObject","parse_CatLab","parse_YMult","parse_SXViewLink","parse_PivotChartBits","parse_FrtFontList","parse_SheetExt","parse_BookExt","parse_SXAddl","parse_CrErr","parse_HFPicture","parse_Feat","parse_DataLabExt","parse_DataLabExtContents","parse_CellWatch","parse_FeatHdr11","parse_Feature11","parse_DropDownObjIds","parse_ContinueFrt11","parse_DConn","parse_List12","parse_Feature12","parse_CondFmt12","parse_CF12","parse_CFEx","parse_AutoFilter12","parse_ContinueFrt12","parse_MDTInfo","parse_MDXStr","parse_MDXTuple","parse_MDXSet","parse_MDXProp","parse_MDXKPI","parse_MDB","parse_PLV","parse_DXF","parse_TableStyles","parse_TableStyle","parse_TableStyleElement","parse_NamePublish","parse_NameCmt","parse_SortData","parse_GUIDTypeLib","parse_FnGrp12","parse_NameFnGrp12","parse_HeaderFooter","parse_CrtLayout12","parse_CrtMlFrt","parse_CrtMlFrtContinue","parse_ShapePropsStream","parse_TextPropsStream","parse_RichTextStream","parse_CrtLayout12A","parse_Units","parse_Chart","parse_Series","parse_DataFormat","parse_LineFormat","parse_MarkerFormat","parse_AreaFormat","parse_PieFormat","parse_AttachedLabel","parse_SeriesText","parse_ChartFormat","parse_Legend","parse_SeriesList","parse_Bar","parse_Line","parse_Pie","parse_Area","parse_Scatter","parse_CrtLine","parse_Axis","parse_Tick","parse_ValueRange","parse_CatSerRange","parse_AxisLine","parse_CrtLink","parse_DefaultText","parse_Text","parse_ObjectLink","parse_Frame","parse_Begin","parse_End","parse_PlotArea","parse_Chart3d","parse_PicF","parse_DropBar","parse_Radar","parse_Surf","parse_RadarArea","parse_AxisParent","parse_LegendException","parse_ShtProps","parse_SerToCrt","parse_AxesUsed","parse_SBaseRef","parse_SerParent","parse_SerAuxTrend","parse_IFmtRecord","parse_Pos","parse_AlRuns","parse_BRAI","parse_SerAuxErrBar","parse_SerFmt","parse_Chart3DBarShape","parse_Fbi","parse_BopPop","parse_AxcExt","parse_Dat","parse_PlotGrowth","parse_SIIndex","parse_GelFrame","parse_BopPopCustom","parse_Fbi2","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","CS2CP",77,128,129,130,134,136,161,162,163,177,178,186,204,222,238,69,"parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","font","strike","rgb","family","parse_r","terms","rs","sitregex","sirregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_Version","Major","Minor","parse_EncryptionHeader","tmp","AlgID","parse_EncryptionVerifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","Salt","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","Verifier","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","verifier","valid","insitu_decrypt","parse_FilePassHeader","Info","parse_FilePass","hex2RGB","rgb2Hex","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","width2px","px2char","px","char2width","chr","cycle_width","collw","find_mdw","coll","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_fills","Fills","bgColor","indexed","theme","fgColor","parse_numFmts","NumberFmt","formatCode","numFmtId","write_numFmts","NF","parse_cellXfs","CellXf","fillId","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","STYLES_XML_ROOT","STY","write_sty_xml","wb","parse_BrtFmt","stFmtCode","parse_BrtFont","dyHeight","grbit","bls","sss","uls","bFamily","bCharSet","brtColor","bFontScheme","Bold","Italic","Strikeout","Outline","Shadow","Condense","Extend","Sub","Sup","parse_BrtXF","ixfeParent","parse_sty_bin","hopper_sty","write_sty_bin","THEME","parse_clrScheme","themeElements","clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xf","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","encode_cell","parse_cc_bin","hopper_cc","write_cc_bin","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","safe_decode_range","thisCell","decode_cell","encoded","encode_range","author","parse_comments_xml","authors","commentList","trim","authorId","sheetRows","textMatch","write_comments_xml","parse_BrtBeginComment","iauthor","rfx","parse_BrtCommentAuthor","parse_BrtCommentText","parse_comments_bin","hopper_cmnt","write_comments_bin","rc_to_a1","rcregex","rcbase","rcfunc","$4","$5","encode_col","encode_row","fstr","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLocRel","cl","parse_PtgArea","area","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","cols","rows","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgRefErr3d","parse_PtgTbl","PtgTypes",57,58,59,60,"PtgDupes",96,65,97,98,67,99,68,100,101,70,102,71,103,72,104,73,74,106,75,107,76,108,109,89,121,122,91,123,92,124,93,125,"Ptg18","Ptg19","parse_Formula","parse_FormulaValue","chn","cbf","parse_XLSCellParsedFormula","formula","shared","parse_RgbExtra","parse_Rgce","rgcb","ptgs","mapper","stringify_formula","supbooks","_range","stack","nameidx","fflen","argc","args","lbl","XLSXFutureFunctions","bookidx","externbook","sharedf","parsedf","fnd","arrayf","parse_XLSBCellParsedFormula","PtgDataType",50,51,53,54,62,63,78,79,80,83,85,87,88,94,95,110,111,112,113,114,115,116,117,118,119,120,126,127,131,132,133,135,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,155,159,164,166,167,168,169,170,171,172,173,174,175,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,206,207,208,209,210,211,212,214,215,217,219,220,223,224,225,226,227,228,229,240,243,249,250,251,252,253,254,256,259,260,265,266,267,268,269,272,273,274,276,277,278,279,280,281,282,283,284,285,288,289,290,291,292,293,295,296,297,298,302,305,306,307,308,309,310,311,312,313,314,315,316,318,319,320,321,322,323,324,325,328,330,336,338,339,342,343,344,350,352,355,356,370,373,374,375,376,377,378,379,380,381,382,383,384,385,386,388,390,391,392,393,394,395,396,397,398,399,400,412,413,414,415,416,417,421,422,423,424,425,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,480,481,482,485,489,491,493,494,495,509,510,511,517,518,519,520,521,522,523,545,546,547,548,549,620,621,647,653,667,673,753,755,808,141,154,156,157,158,160,165,176,179,180,181,182,183,184,205,221,230,231,232,233,234,235,236,237,239,241,242,244,245,246,247,248,257,258,261,262,263,264,270,271,275,286,287,294,299,300,301,303,304,317,326,327,329,331,332,334,335,337,340,341,345,346,347,348,349,353,357,359,360,361,362,363,364,365,366,367,368,369,371,372,"_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","_ssfopts","WS","get_sst_id","get_cell_style","revssf","fontId","borderId","xfId","applyNumberFormat","safe_format","fillid","cellNF","raw_rgb","parse_ws_xml_dim","ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","parse_ws_xml","ridx","mergecells","columns","cellStyles","parse_ws_xml_cols","refguess","mtch","parse_ws_xml_data","parse_ws_xml_hlinks","tmpref","write_ws_xml_merges","Rel","rng","seencol","coli","colm","colM","wpx","wch","write_ws_xml_cols","customWidth","write_ws_xml_cell","oldt","oldv","cellDates","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","match_v","match_f","sdata","guess","cells","cref","tagr","tagc","sstr","do_format","marr","marrlen","xlen","cellFormula","sheetStubs","write_ws_xml_data","WS_XML_ROOT","xmlns:r","write_ws_xml","sidx","rdata","Sheets","parse_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","parse_BrtCellBool","fBool","parse_BrtCellError","parse_BrtCellIsst","parse_BrtCellReal","parse_BrtCellRk","parse_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","parse_BrtHLink","relId","tooltip","display","parse_ws_bin","!id","ws_parse","write_ws_bin_cell","write_CELLTABLE","write_ws_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","wbnsregex","parse_wb_xml","AppVersion","xml_wb","WB_XML_ROOT","safe1904","Workbook","write_wb_xml","sheetId","r:id","parse_BrtBundleSh","hsState","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","strName","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_wb_bin","hopper_wb","write_BUNDLESHS","write_BrtFileVersion","write_BOOKVIEWS","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_sty","parse_theme","parse_sst","parse_cc","write_wb","write_ws","write_sty","write_sst","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","Custprops","Rn","safe_format_xlml","nf","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","xml","csty","sid","StyleID","interiors","Parent","UTC","Formula","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","lastIndex","exec","HRef","HRefScreenTip","MergeAcross","MergeDown","Format","Span","Author","seen","bookSheets","bookProps","parse_xlml","fix_read_opts","write_xlml","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","XF","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","shared_formulae","array_formulae","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","icv","process_cell_style","pcs","line","xfd","addcell","rrtabid","lastuser","codepage","winlocked","wtf","objects","sbc","sbci","sbcli","last_Rn","file_depth","RecordType","Date1904","WriteProtect","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","TxO","noteobj","sheetnamesraw","sort","Number","Encryption","Metadata","Country","parse_xlscfb","cfb","CompObj","Summary","CompObjP","SummaryP","WorkbookP","parse_props","props","DocSummary","bookFiles","DSI","SI",333,387,389,401,403,404,405,406,407,408,409,410,411,418,419,426,427,428,429,457,479,483,484,486,487,488,490,492,496,497,498,499,500,501,502,503,504,505,506,507,508,512,513,514,515,516,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,550,551,552,553,554,555,556,557,558,559,560,561,562,564,565,566,569,570,572,573,574,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,648,649,650,651,652,654,655,656,657,658,659,660,661,662,663,664,665,666,668,669,671,672,674,675,676,677,678,679,680,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1061,1062,1063,1066,1067,1068,1069,1070,1071,1072,1073,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1177,1178,1180,1181,1182,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2060,2067,2068,2069,2070,2071,2072,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,402,1212,2059,2061,2062,2063,2064,2066,2137,2138,2146,2147,2148,2149,2150,2151,2152,2154,2155,2156,2161,2162,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2211,2212,2213,2214,2215,4097,4098,4099,4102,4103,4105,4106,4107,4108,4109,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4132,4133,4134,4135,4146,4147,4148,4149,4154,4156,4157,4158,4159,4160,4161,4163,4164,4165,4166,4168,4170,4171,4174,4175,4176,4177,4187,4188,4189,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,2157,2163,2177,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,"parse_ods","ODS","fix_opts_func","fix_opts","fix_write_opts","safe_parse_wbrels","wbrels","pwbr","safe_parse_ws","relsPath","nodirs","parse_zip","entries","binname","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","Themes","bookVBA","vbaraw","bin","add_rels","rId","relobj","write_zip","General","firstbyte","read_zip","isfile","write_zip_type","writeFileSync","writeSync","decode_row","rowstr","unfix_row","fix_row","cstr","decode_col","colstr","unfix_col","fix_col","split_cell","splt","fix_cell","unfix_cell","decode_range","cs","ce","safe_format_cell","format_cell","sheet_to_json","isempty","outi","defineProperty","enumerable","__rowNum__","sheet_to_row_object_array","sheet_to_csv","txt","qreg","FS","RS","make_csv","sheet_to_formulae","cmds","get_formulae","make_json","make_formulae","readFile","write","writeFile","XLS"],"mappings":"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AAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY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"} \ No newline at end of file diff --git a/dist/xlsx.full.min.js b/dist/xlsx.full.min.js index 85b3a0f..3c73b81 100644 --- a/dist/xlsx.full.min.js +++ b/dist/xlsx.full.min.js @@ -1,15 +1,18 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var f;"undefined"!=typeof window?f=window:"undefined"!=typeof global?f=global:"undefined"!=typeof self&&(f=self),f.JSZip=e()}}(function(){var define,module,exports;return function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);throw new Error("Cannot find module '"+o+"'")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o>2;enc2=(chr1&3)<<4|chr2>>4;enc3=(chr2&15)<<2|chr3>>6;enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64}else if(isNaN(chr3)){enc4=64}output=output+_keyStr.charAt(enc1)+_keyStr.charAt(enc2)+_keyStr.charAt(enc3)+_keyStr.charAt(enc4)}return output};exports.decode=function(input,utf8){var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2)}if(enc4!=64){output=output+String.fromCharCode(chr3)}}return output}},{}],2:[function(_dereq_,module,exports){"use strict";function CompressedObject(){this.compressedSize=0;this.uncompressedSize=0;this.crc32=0;this.compressionMethod=null;this.compressedContent=null}CompressedObject.prototype={getContent:function(){return null},getCompressedContent:function(){return null}};module.exports=CompressedObject},{}],3:[function(_dereq_,module,exports){"use strict";exports.STORE={magic:"\x00\x00",compress:function(content){return content},uncompress:function(content){return content},compressInputType:null,uncompressInputType:null};exports.DEFLATE=_dereq_("./flate")},{"./flate":8}],4:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var table=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];module.exports=function crc32(input,crc){if(typeof input==="undefined"||!input.length){return 0}var isArray=utils.getTypeOf(input)!=="string";if(typeof crc=="undefined"){crc=0}var x=0;var y=0;var b=0;crc=crc^-1;for(var i=0,iTop=input.length;i>>8^x}return crc^-1}},{"./utils":21}],5:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");function DataReader(data){this.data=null;this.length=0;this.index=0}DataReader.prototype={checkOffset:function(offset){this.checkIndex(this.index+offset)},checkIndex:function(newIndex){if(this.length=this.index;i--){result=(result<<8)+this.byteAt(i)}this.index+=size;return result},readString:function(size){return utils.transformTo("string",this.readData(size))},readData:function(size){},lastIndexOfSignature:function(sig){},readDate:function(){var dostime=this.readInt(4);return new Date((dostime>>25&127)+1980,(dostime>>21&15)-1,dostime>>16&31,dostime>>11&31,dostime>>5&63,(dostime&31)<<1)}};module.exports=DataReader},{"./utils":21}],6:[function(_dereq_,module,exports){"use strict";exports.base64=false;exports.binary=false;exports.dir=false;exports.createFolders=false;exports.date=null;exports.compression=null;exports.comment=null},{}],7:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");exports.string2binary=function(str){return utils.string2binary(str)};exports.string2Uint8Array=function(str){return utils.transformTo("uint8array",str)};exports.uint8Array2String=function(array){return utils.transformTo("string",array)};exports.string2Blob=function(str){var buffer=utils.transformTo("arraybuffer",str);return utils.arrayBuffer2Blob(buffer)};exports.arrayBuffer2Blob=function(buffer){return utils.arrayBuffer2Blob(buffer)};exports.transformTo=function(outputType,input){return utils.transformTo(outputType,input)};exports.getTypeOf=function(input){return utils.getTypeOf(input)};exports.checkSupport=function(type){return utils.checkSupport(type)};exports.MAX_VALUE_16BITS=utils.MAX_VALUE_16BITS;exports.MAX_VALUE_32BITS=utils.MAX_VALUE_32BITS;exports.pretty=function(str){return utils.pretty(str)};exports.findCompression=function(compressionMethod){return utils.findCompression(compressionMethod)};exports.isRegExp=function(object){return utils.isRegExp(object)}},{"./utils":21}],8:[function(_dereq_,module,exports){"use strict";var USE_TYPEDARRAY=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Uint32Array!=="undefined";var pako=_dereq_("pako");exports.uncompressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.compressInputType=USE_TYPEDARRAY?"uint8array":"array";exports.magic="\b\x00";exports.compress=function(input){return pako.deflateRaw(input)};exports.uncompress=function(input){return pako.inflateRaw(input)}},{pako:24}],9:[function(_dereq_,module,exports){"use strict";var base64=_dereq_("./base64");function JSZip(data,options){if(!(this instanceof JSZip))return new JSZip(data,options);this.files={};this.comment=null;this.root="";if(data){this.load(data,options)}this.clone=function(){var newObj=new JSZip;for(var i in this){if(typeof this[i]!=="function"){newObj[i]=this[i]}}return newObj}}JSZip.prototype=_dereq_("./object");JSZip.prototype.load=_dereq_("./load");JSZip.support=_dereq_("./support");JSZip.defaults=_dereq_("./defaults");JSZip.utils=_dereq_("./deprecatedPublicUtils");JSZip.base64={encode:function(input){return base64.encode(input)},decode:function(input){return base64.decode(input)}};JSZip.compressions=_dereq_("./compressions");module.exports=JSZip},{"./base64":1,"./compressions":3,"./defaults":6,"./deprecatedPublicUtils":7,"./load":10,"./object":13,"./support":17}],10:[function(_dereq_,module,exports){"use strict";var base64=_dereq_("./base64");var ZipEntries=_dereq_("./zipEntries");module.exports=function(data,options){var files,zipEntries,i,input;options=options||{};if(options.base64){data=base64.decode(data)}zipEntries=new ZipEntries(data,options);files=zipEntries.files;for(i=0;i>>8}return hex};var extend=function(){var result={},i,attr;for(i=0;i0?path.substring(0,lastSlash):""};var folderAdd=function(name,createFolders){if(name.slice(-1)!="/"){name+="/"}createFolders=typeof createFolders!=="undefined"?createFolders:false;if(!this.files[name]){fileAdd.call(this,name,null,{dir:true,createFolders:createFolders})}return this.files[name]};var generateCompressedObjectFrom=function(file,compression){var result=new CompressedObject,content;if(file._data instanceof CompressedObject){result.uncompressedSize=file._data.uncompressedSize;result.crc32=file._data.crc32;if(result.uncompressedSize===0||file.dir){compression=compressions["STORE"];result.compressedContent="";result.crc32=0}else if(file._data.compressionMethod===compression.magic){result.compressedContent=file._data.getCompressedContent()}else{content=file._data.getContent();result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}}else{content=getBinaryData(file);if(!content||content.length===0||file.dir){compression=compressions["STORE"];content=""}result.uncompressedSize=content.length;result.crc32=crc32(content);result.compressedContent=compression.compress(utils.transformTo(compression.compressInputType,content))}result.compressedSize=result.compressedContent.length;result.compressionMethod=compression.magic;return result};var generateZipParts=function(name,file,compressedObject,offset){var data=compressedObject.compressedContent,utfEncodedFileName=utils.transformTo("string",utf8.utf8encode(file.name)),comment=file.comment||"",utfEncodedComment=utils.transformTo("string",utf8.utf8encode(comment)),useUTF8ForFileName=utfEncodedFileName.length!==file.name.length,useUTF8ForComment=utfEncodedComment.length!==comment.length,o=file.options,dosTime,dosDate,extraFields="",unicodePathExtraField="",unicodeCommentExtraField="",dir,date;if(file._initialMetadata.dir!==file.dir){dir=file.dir}else{dir=o.dir}if(file._initialMetadata.date!==file.date){date=file.date}else{date=o.date}dosTime=date.getHours();dosTime=dosTime<<6;dosTime=dosTime|date.getMinutes();dosTime=dosTime<<5;dosTime=dosTime|date.getSeconds()/2;dosDate=date.getFullYear()-1980;dosDate=dosDate<<4;dosDate=dosDate|date.getMonth()+1;dosDate=dosDate<<5;dosDate=dosDate|date.getDate();if(useUTF8ForFileName){unicodePathExtraField=decToHex(1,1)+decToHex(crc32(utfEncodedFileName),4)+utfEncodedFileName;extraFields+="up"+decToHex(unicodePathExtraField.length,2)+unicodePathExtraField}if(useUTF8ForComment){unicodeCommentExtraField=decToHex(1,1)+decToHex(this.crc32(utfEncodedComment),4)+utfEncodedComment;extraFields+="uc"+decToHex(unicodeCommentExtraField.length,2)+unicodeCommentExtraField}var header="";header+="\n\x00";header+=useUTF8ForFileName||useUTF8ForComment?"\x00\b":"\x00\x00";header+=compressedObject.compressionMethod;header+=decToHex(dosTime,2);header+=decToHex(dosDate,2);header+=decToHex(compressedObject.crc32,4);header+=decToHex(compressedObject.compressedSize,4);header+=decToHex(compressedObject.uncompressedSize,4);header+=decToHex(utfEncodedFileName.length,2);header+=decToHex(extraFields.length,2);var fileRecord=signature.LOCAL_FILE_HEADER+header+utfEncodedFileName+extraFields;var dirRecord=signature.CENTRAL_FILE_HEADER+"\x00"+header+decToHex(utfEncodedComment.length,2)+"\x00\x00"+"\x00\x00"+(dir===true?"\x00\x00\x00":"\x00\x00\x00\x00")+decToHex(offset,4)+utfEncodedFileName+extraFields+utfEncodedComment;return{fileRecord:fileRecord,dirRecord:dirRecord,compressedObject:compressedObject}};var out={load:function(stream,options){throw new Error("Load method is not defined. Is the file jszip-load.js included ?")},filter:function(search){var result=[],filename,relativePath,file,fileClone;for(filename in this.files){if(!this.files.hasOwnProperty(filename)){continue}file=this.files[filename];fileClone=new ZipObject(file.name,file._data,extend(file.options));relativePath=filename.slice(this.root.length,filename.length);if(filename.slice(0,this.root.length)===this.root&&search(relativePath,fileClone)){result.push(fileClone)}}return result},file:function(name,data,o){if(arguments.length===1){if(utils.isRegExp(name)){var regexp=name;return this.filter(function(relativePath,file){return!file.dir&®exp.test(relativePath)})}else{return this.filter(function(relativePath,file){return!file.dir&&relativePath===name})[0]||null}}else{name=this.root+name;fileAdd.call(this,name,data,o)}return this},folder:function(arg){if(!arg){return this}if(utils.isRegExp(arg)){return this.filter(function(relativePath,file){return file.dir&&arg.test(relativePath)})}var name=this.root+arg;var newFolder=folderAdd.call(this,name);var ret=this.clone();ret.root=newFolder.name;return ret},remove:function(name){name=this.root+name;var file=this.files[name];if(!file){if(name.slice(-1)!="/"){name+="/"}file=this.files[name]}if(file&&!file.dir){delete this.files[name]}else{var kids=this.filter(function(relativePath,file){return file.name.slice(0,name.length)===name});for(var i=0;i=0;--i){if(this.data[i]===sig0&&this.data[i+1]===sig1&&this.data[i+2]===sig2&&this.data[i+3]===sig3){return i}}return-1};Uint8ArrayReader.prototype.readData=function(size){this.checkOffset(size);if(size===0){return new Uint8Array(0)}var result=this.data.subarray(this.index,this.index+size);this.index+=size;return result};module.exports=Uint8ArrayReader},{"./dataReader":5}],19:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var Uint8ArrayWriter=function(length){this.data=new Uint8Array(length);this.index=0};Uint8ArrayWriter.prototype={append:function(input){if(input.length!==0){input=utils.transformTo("uint8array",input);this.data.set(input,this.index);this.index+=input.length}},finalize:function(){return this.data}};module.exports=Uint8ArrayWriter},{"./utils":21}],20:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("./utils");var support=_dereq_("./support");var nodeBuffer=_dereq_("./nodeBuffer");var _utf8len=new Array(256);for(var i=0;i<256;i++){_utf8len[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1}_utf8len[254]=_utf8len[254]=1;var string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};var utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max};var buf2string=function(buf){var str,i,out,c,c_len;var len=buf.length;var utf16buf=new Array(len*2);for(out=0,i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}if(utf16buf.length!==out){if(utf16buf.subarray){utf16buf=utf16buf.subarray(0,out)}else{utf16buf.length=out}}return utils.applyFromCharCode(utf16buf)};exports.utf8encode=function utf8encode(str){if(support.nodebuffer){return nodeBuffer(str,"utf-8")}return string2buf(str)};exports.utf8decode=function utf8decode(buf){if(support.nodebuffer){return utils.transformTo("nodebuffer",buf).toString("utf-8")}buf=utils.transformTo(support.uint8array?"uint8array":"array",buf);var result=[],k=0,len=buf.length,chunk=65536;while(k1){try{if(type==="array"||type==="nodebuffer"){result.push(String.fromCharCode.apply(null,array.slice(k,Math.min(k+chunk,len))))}else{result.push(String.fromCharCode.apply(null,array.subarray(k,Math.min(k+chunk,len))))}k+=chunk}catch(e){chunk=Math.floor(chunk/2)}}return result.join("")}exports.applyFromCharCode=arrayLikeToString;function arrayLikeToArrayLike(arrayFrom,arrayTo){for(var i=0;i1){throw new Error("Multi-volumes zip are not supported")}},readLocalFiles:function(){var i,file;for(i=0;i0){opt.windowBits=-opt.windowBits}else if(opt.gzip&&opt.windowBits>0&&opt.windowBits<16){opt.windowBits+=16}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_deflate.deflateInit2(this.strm,opt.level,opt.method,opt.windowBits,opt.memLevel,opt.strategy);if(status!==Z_OK){throw new Error(msg[status])}if(opt.header){zlib_deflate.deflateSetHeader(this.strm,opt.header)}};Deflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?Z_FINISH:Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.string2buf(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_deflate.deflate(strm,_mode);if(status!==Z_STREAM_END&&status!==Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.avail_out===0||strm.avail_in===0&&_mode===Z_FINISH){if(this.options.to==="string"){this.onData(strings.buf2binstring(utils.shrinkBuf(strm.output,strm.next_out)))}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}while((strm.avail_in>0||strm.avail_out===0)&&status!==Z_STREAM_END);if(_mode===Z_FINISH){status=zlib_deflate.deflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===Z_OK}return true};Deflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Deflate.prototype.onEnd=function(status){if(status===Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function deflate(input,options){var deflator=new Deflate(options);deflator.push(input,true);if(deflator.err){throw deflator.msg}return deflator.result}function deflateRaw(input,options){options=options||{};options.raw=true;return deflate(input,options)}function gzip(input,options){options=options||{};options.gzip=true;return deflate(input,options)}exports.Deflate=Deflate;exports.deflate=deflate;exports.deflateRaw=deflateRaw;exports.gzip=gzip},{"./utils/common":27,"./utils/strings":28,"./zlib/deflate.js":32,"./zlib/messages":37,"./zlib/zstream":39}],26:[function(_dereq_,module,exports){"use strict";var zlib_inflate=_dereq_("./zlib/inflate.js");var utils=_dereq_("./utils/common");var strings=_dereq_("./utils/strings");var c=_dereq_("./zlib/constants");var msg=_dereq_("./zlib/messages");var zstream=_dereq_("./zlib/zstream");var gzheader=_dereq_("./zlib/gzheader");var Inflate=function(options){this.options=utils.assign({chunkSize:16384,windowBits:0,to:""},options||{});var opt=this.options;if(opt.raw&&opt.windowBits>=0&&opt.windowBits<16){opt.windowBits=-opt.windowBits;if(opt.windowBits===0){opt.windowBits=-15}}if(opt.windowBits>=0&&opt.windowBits<16&&!(options&&options.windowBits)){opt.windowBits+=32}if(opt.windowBits>15&&opt.windowBits<48){if((opt.windowBits&15)===0){opt.windowBits|=15}}this.err=0;this.msg="";this.ended=false;this.chunks=[];this.strm=new zstream;this.strm.avail_out=0;var status=zlib_inflate.inflateInit2(this.strm,opt.windowBits);if(status!==c.Z_OK){throw new Error(msg[status])}this.header=new gzheader;zlib_inflate.inflateGetHeader(this.strm,this.header)};Inflate.prototype.push=function(data,mode){var strm=this.strm;var chunkSize=this.options.chunkSize;var status,_mode;var next_out_utf8,tail,utf8str;if(this.ended){return false}_mode=mode===~~mode?mode:mode===true?c.Z_FINISH:c.Z_NO_FLUSH;if(typeof data==="string"){strm.input=strings.binstring2buf(data)}else{strm.input=data}strm.next_in=0;strm.avail_in=strm.input.length;do{if(strm.avail_out===0){strm.output=new utils.Buf8(chunkSize);strm.next_out=0;strm.avail_out=chunkSize}status=zlib_inflate.inflate(strm,c.Z_NO_FLUSH);if(status!==c.Z_STREAM_END&&status!==c.Z_OK){this.onEnd(status);this.ended=true;return false}if(strm.next_out){if(strm.avail_out===0||status===c.Z_STREAM_END||strm.avail_in===0&&_mode===c.Z_FINISH){if(this.options.to==="string"){next_out_utf8=strings.utf8border(strm.output,strm.next_out);tail=strm.next_out-next_out_utf8;utf8str=strings.buf2string(strm.output,next_out_utf8);strm.next_out=tail;strm.avail_out=chunkSize-tail;if(tail){utils.arraySet(strm.output,strm.output,next_out_utf8,tail,0)}this.onData(utf8str)}else{this.onData(utils.shrinkBuf(strm.output,strm.next_out))}}}}while(strm.avail_in>0&&status!==c.Z_STREAM_END);if(status===c.Z_STREAM_END){_mode=c.Z_FINISH}if(_mode===c.Z_FINISH){status=zlib_inflate.inflateEnd(this.strm);this.onEnd(status);this.ended=true;return status===c.Z_OK}return true};Inflate.prototype.onData=function(chunk){this.chunks.push(chunk)};Inflate.prototype.onEnd=function(status){if(status===c.Z_OK){if(this.options.to==="string"){this.result=this.chunks.join("")}else{this.result=utils.flattenChunks(this.chunks)}}this.chunks=[];this.err=status;this.msg=this.strm.msg};function inflate(input,options){var inflator=new Inflate(options);inflator.push(input,true);if(inflator.err){throw inflator.msg}return inflator.result}function inflateRaw(input,options){options=options||{};options.raw=true;return inflate(input,options)}exports.Inflate=Inflate;exports.inflate=inflate;exports.inflateRaw=inflateRaw;exports.ungzip=inflate},{"./utils/common":27,"./utils/strings":28,"./zlib/constants":30,"./zlib/gzheader":33,"./zlib/inflate.js":35,"./zlib/messages":37,"./zlib/zstream":39}],27:[function(_dereq_,module,exports){"use strict";var TYPED_OK=typeof Uint8Array!=="undefined"&&typeof Uint16Array!=="undefined"&&typeof Int32Array!=="undefined";exports.assign=function(obj){var sources=Array.prototype.slice.call(arguments,1);while(sources.length){var source=sources.shift();if(!source){continue}if(typeof source!=="object"){throw new TypeError(source+"must be non-object")}for(var p in source){if(source.hasOwnProperty(p)){obj[p]=source[p]}}}return obj};exports.shrinkBuf=function(buf,size){if(buf.length===size){return buf}if(buf.subarray){return buf.subarray(0,size)}buf.length=size;return buf};var fnTyped={arraySet:function(dest,src,src_offs,len,dest_offs){if(src.subarray&&dest.subarray){dest.set(src.subarray(src_offs,src_offs+len),dest_offs);return}for(var i=0;i=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1}_utf8len[254]=_utf8len[254]=1;exports.string2buf=function(str){var buf,c,c2,m_pos,i,str_len=str.length,buf_len=0;for(m_pos=0;m_pos>>6;buf[i++]=128|c&63}else if(c<65536){buf[i++]=224|c>>>12;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}else{buf[i++]=240|c>>>18;buf[i++]=128|c>>>12&63;buf[i++]=128|c>>>6&63;buf[i++]=128|c&63}}return buf};function buf2binstring(buf,len){if(len<65537){if(buf.subarray&&STR_APPLY_UIA_OK||!buf.subarray&&STR_APPLY_OK){return String.fromCharCode.apply(null,utils.shrinkBuf(buf,len))}}var result="";for(var i=0;i4){utf16buf[out++]=65533;i+=c_len-1;continue}c&=c_len===2?31:c_len===3?15:7;while(c_len>1&&i1){utf16buf[out++]=65533;continue}if(c<65536){utf16buf[out++]=c}else{c-=65536;utf16buf[out++]=55296|c>>10&1023;utf16buf[out++]=56320|c&1023}}return buf2binstring(utf16buf,out)};exports.utf8border=function(buf,max){var pos;max=max||buf.length;if(max>buf.length){max=buf.length}pos=max-1;while(pos>=0&&(buf[pos]&192)===128){pos--}if(pos<0){return max}if(pos===0){return max}return pos+_utf8len[buf[pos]]>max?pos:max}},{"./common":27}],29:[function(_dereq_,module,exports){"use strict";function adler32(adler,buf,len,pos){var s1=adler&65535|0,s2=adler>>>16&65535|0,n=0;while(len!==0){n=len>2e3?2e3:len;len-=n;do{s1=s1+buf[pos++]|0;s2=s2+s1|0}while(--n);s1%=65521;s2%=65521}return s1|s2<<16|0}module.exports=adler32},{}],30:[function(_dereq_,module,exports){module.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],31:[function(_dereq_,module,exports){"use strict";function makeTable(){var c,table=[];for(var n=0;n<256;n++){c=n;for(var k=0;k<8;k++){c=c&1?3988292384^c>>>1:c>>>1}table[n]=c}return table}var crcTable=makeTable();function crc32(crc,buf,len,pos){var t=crcTable,end=pos+len;crc=crc^-1;for(var i=pos;i>>8^t[(crc^buf[i])&255]}return crc^-1}module.exports=crc32},{}],32:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var trees=_dereq_("./trees");var adler32=_dereq_("./adler32");var crc32=_dereq_("./crc32");var msg=_dereq_("./messages");var Z_NO_FLUSH=0;var Z_PARTIAL_FLUSH=1;var Z_FULL_FLUSH=3;var Z_FINISH=4;var Z_BLOCK=5;var Z_OK=0;var Z_STREAM_END=1;var Z_STREAM_ERROR=-2;var Z_DATA_ERROR=-3;var Z_BUF_ERROR=-5;var Z_DEFAULT_COMPRESSION=-1;var Z_FILTERED=1;var Z_HUFFMAN_ONLY=2;var Z_RLE=3;var Z_FIXED=4;var Z_DEFAULT_STRATEGY=0;var Z_UNKNOWN=2;var Z_DEFLATED=8;var MAX_MEM_LEVEL=9;var MAX_WBITS=15;var DEF_MEM_LEVEL=8;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var MIN_MATCH=3;var MAX_MATCH=258;var MIN_LOOKAHEAD=MAX_MATCH+MIN_MATCH+1;var PRESET_DICT=32;var INIT_STATE=42;var EXTRA_STATE=69;var NAME_STATE=73;var COMMENT_STATE=91;var HCRC_STATE=103;var BUSY_STATE=113;var FINISH_STATE=666;var BS_NEED_MORE=1;var BS_BLOCK_DONE=2;var BS_FINISH_STARTED=3;var BS_FINISH_DONE=4;var OS_CODE=3;function err(strm,errorCode){strm.msg=msg[errorCode];return errorCode}function rank(f){return(f<<1)-(f>4?9:0)}function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}function flush_pending(strm){var s=strm.state;var len=s.pending;if(len>strm.avail_out){len=strm.avail_out}if(len===0){return}utils.arraySet(strm.output,s.pending_buf,s.pending_out,len,strm.next_out);strm.next_out+=len;s.pending_out+=len;strm.total_out+=len;strm.avail_out-=len;s.pending-=len;if(s.pending===0){s.pending_out=0}}function flush_block_only(s,last){trees._tr_flush_block(s,s.block_start>=0?s.block_start:-1,s.strstart-s.block_start,last);s.block_start=s.strstart;flush_pending(s.strm)}function put_byte(s,b){s.pending_buf[s.pending++]=b}function putShortMSB(s,b){s.pending_buf[s.pending++]=b>>>8&255;s.pending_buf[s.pending++]=b&255}function read_buf(strm,buf,start,size){var len=strm.avail_in;if(len>size){len=size}if(len===0){return 0}strm.avail_in-=len;utils.arraySet(buf,strm.input,strm.next_in,len,start);if(strm.state.wrap===1){strm.adler=adler32(strm.adler,buf,len,start)}else if(strm.state.wrap===2){strm.adler=crc32(strm.adler,buf,len,start)}strm.next_in+=len;strm.total_in+=len;return len}function longest_match(s,cur_match){var chain_length=s.max_chain_length;var scan=s.strstart;var match;var len;var best_len=s.prev_length;var nice_match=s.nice_match;var limit=s.strstart>s.w_size-MIN_LOOKAHEAD?s.strstart-(s.w_size-MIN_LOOKAHEAD):0;var _win=s.window;var wmask=s.w_mask;var prev=s.prev;var strend=s.strstart+MAX_MATCH;var scan_end1=_win[scan+best_len-1];var scan_end=_win[scan+best_len];if(s.prev_length>=s.good_match){chain_length>>=2}if(nice_match>s.lookahead){nice_match=s.lookahead}do{match=cur_match;if(_win[match+best_len]!==scan_end||_win[match+best_len-1]!==scan_end1||_win[match]!==_win[scan]||_win[++match]!==_win[scan+1]){continue}scan+=2;match++;do{}while(_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&_win[++scan]===_win[++match]&&scanbest_len){s.match_start=cur_match;best_len=len;if(len>=nice_match){break}scan_end1=_win[scan+best_len-1];scan_end=_win[scan+best_len]}}while((cur_match=prev[cur_match&wmask])>limit&&--chain_length!==0);if(best_len<=s.lookahead){return best_len}return s.lookahead}function fill_window(s){var _w_size=s.w_size;var p,n,m,more,str;do{more=s.window_size-s.lookahead-s.strstart;if(s.strstart>=_w_size+(_w_size-MIN_LOOKAHEAD)){utils.arraySet(s.window,s.window,_w_size,_w_size,0);s.match_start-=_w_size;s.strstart-=_w_size;s.block_start-=_w_size;n=s.hash_size;p=n;do{m=s.head[--p];s.head[p]=m>=_w_size?m-_w_size:0}while(--n);n=_w_size;p=n;do{m=s.prev[--p];s.prev[p]=m>=_w_size?m-_w_size:0}while(--n);more+=_w_size}if(s.strm.avail_in===0){break}n=read_buf(s.strm,s.window,s.strstart+s.lookahead,more);s.lookahead+=n;if(s.lookahead+s.insert>=MIN_MATCH){str=s.strstart-s.insert;s.ins_h=s.window[str];s.ins_h=(s.ins_h<s.pending_buf_size-5){max_block_size=s.pending_buf_size-5}for(;;){if(s.lookahead<=1){fill_window(s);if(s.lookahead===0&&flush===Z_NO_FLUSH){return BS_NEED_MORE}if(s.lookahead===0){break}}s.strstart+=s.lookahead;s.lookahead=0;var max_start=s.block_start+max_block_size;if(s.strstart===0||s.strstart>=max_start){s.lookahead=s.strstart-max_start;s.strstart=max_start;flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}if(s.strstart-s.block_start>=s.w_size-MIN_LOOKAHEAD){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.strstart>s.block_start){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_NEED_MORE}function deflate_fast(s,flush){var hash_head;var bflush;for(;;){if(s.lookahead=MIN_MATCH){s.ins_h=(s.ins_h<=MIN_MATCH){bflush=trees._tr_tally(s,s.strstart-s.match_start,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;if(s.match_length<=s.max_lazy_match&&s.lookahead>=MIN_MATCH){s.match_length--;do{s.strstart++;s.ins_h=(s.ins_h<=MIN_MATCH){s.ins_h=(s.ins_h<4096)){s.match_length=MIN_MATCH-1}}if(s.prev_length>=MIN_MATCH&&s.match_length<=s.prev_length){max_insert=s.strstart+s.lookahead-MIN_MATCH;bflush=trees._tr_tally(s,s.strstart-1-s.prev_match,s.prev_length-MIN_MATCH);s.lookahead-=s.prev_length-1;s.prev_length-=2;do{if(++s.strstart<=max_insert){s.ins_h=(s.ins_h<=MIN_MATCH&&s.strstart>0){scan=s.strstart-1;prev=_win[scan];if(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]){strend=s.strstart+MAX_MATCH;do{}while(prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&prev===_win[++scan]&&scans.lookahead){s.match_length=s.lookahead}}}if(s.match_length>=MIN_MATCH){bflush=trees._tr_tally(s,1,s.match_length-MIN_MATCH);s.lookahead-=s.match_length;s.strstart+=s.match_length;s.match_length=0}else{bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++}if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}function deflate_huff(s,flush){var bflush; for(;;){if(s.lookahead===0){fill_window(s);if(s.lookahead===0){if(flush===Z_NO_FLUSH){return BS_NEED_MORE}break}}s.match_length=0;bflush=trees._tr_tally(s,0,s.window[s.strstart]);s.lookahead--;s.strstart++;if(bflush){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}}s.insert=0;if(flush===Z_FINISH){flush_block_only(s,true);if(s.strm.avail_out===0){return BS_FINISH_STARTED}return BS_FINISH_DONE}if(s.last_lit){flush_block_only(s,false);if(s.strm.avail_out===0){return BS_NEED_MORE}}return BS_BLOCK_DONE}var Config=function(good_length,max_lazy,nice_length,max_chain,func){this.good_length=good_length;this.max_lazy=max_lazy;this.nice_length=nice_length;this.max_chain=max_chain;this.func=func};var configuration_table;configuration_table=[new Config(0,0,0,0,deflate_stored),new Config(4,4,8,4,deflate_fast),new Config(4,5,16,8,deflate_fast),new Config(4,6,32,32,deflate_fast),new Config(4,4,16,16,deflate_slow),new Config(8,16,32,32,deflate_slow),new Config(8,16,128,128,deflate_slow),new Config(8,32,128,256,deflate_slow),new Config(32,128,258,1024,deflate_slow),new Config(32,258,258,4096,deflate_slow)];function lm_init(s){s.window_size=2*s.w_size;zero(s.head);s.max_lazy_match=configuration_table[s.level].max_lazy;s.good_match=configuration_table[s.level].good_length;s.nice_match=configuration_table[s.level].nice_length;s.max_chain_length=configuration_table[s.level].max_chain;s.strstart=0;s.block_start=0;s.lookahead=0;s.insert=0;s.match_length=s.prev_length=MIN_MATCH-1;s.match_available=0;s.ins_h=0}function DeflateState(){this.strm=null;this.status=0;this.pending_buf=null;this.pending_buf_size=0;this.pending_out=0;this.pending=0;this.wrap=0;this.gzhead=null;this.gzindex=0;this.method=Z_DEFLATED;this.last_flush=-1;this.w_size=0;this.w_bits=0;this.w_mask=0;this.window=null;this.window_size=0;this.prev=null;this.head=null;this.ins_h=0;this.hash_size=0;this.hash_bits=0;this.hash_mask=0;this.hash_shift=0;this.block_start=0;this.match_length=0;this.prev_match=0;this.match_available=0;this.strstart=0;this.match_start=0;this.lookahead=0;this.prev_length=0;this.max_chain_length=0;this.max_lazy_match=0;this.level=0;this.strategy=0;this.good_match=0;this.nice_match=0;this.dyn_ltree=new utils.Buf16(HEAP_SIZE*2);this.dyn_dtree=new utils.Buf16((2*D_CODES+1)*2);this.bl_tree=new utils.Buf16((2*BL_CODES+1)*2);zero(this.dyn_ltree);zero(this.dyn_dtree);zero(this.bl_tree);this.l_desc=null;this.d_desc=null;this.bl_desc=null;this.bl_count=new utils.Buf16(MAX_BITS+1);this.heap=new utils.Buf16(2*L_CODES+1);zero(this.heap);this.heap_len=0;this.heap_max=0;this.depth=new utils.Buf16(2*L_CODES+1);zero(this.depth);this.l_buf=0;this.lit_bufsize=0;this.last_lit=0;this.d_buf=0;this.opt_len=0;this.static_len=0;this.matches=0;this.insert=0;this.bi_buf=0;this.bi_valid=0}function deflateResetKeep(strm){var s;if(!strm||!strm.state){return err(strm,Z_STREAM_ERROR)}strm.total_in=strm.total_out=0;strm.data_type=Z_UNKNOWN;s=strm.state;s.pending=0;s.pending_out=0;if(s.wrap<0){s.wrap=-s.wrap}s.status=s.wrap?INIT_STATE:BUSY_STATE;strm.adler=s.wrap===2?0:1;s.last_flush=Z_NO_FLUSH;trees._tr_init(s);return Z_OK}function deflateReset(strm){var ret=deflateResetKeep(strm);if(ret===Z_OK){lm_init(strm.state)}return ret}function deflateSetHeader(strm,head){if(!strm||!strm.state){return Z_STREAM_ERROR}if(strm.state.wrap!==2){return Z_STREAM_ERROR}strm.state.gzhead=head;return Z_OK}function deflateInit2(strm,level,method,windowBits,memLevel,strategy){if(!strm){return Z_STREAM_ERROR}var wrap=1;if(level===Z_DEFAULT_COMPRESSION){level=6}if(windowBits<0){wrap=0;windowBits=-windowBits}else if(windowBits>15){wrap=2;windowBits-=16}if(memLevel<1||memLevel>MAX_MEM_LEVEL||method!==Z_DEFLATED||windowBits<8||windowBits>15||level<0||level>9||strategy<0||strategy>Z_FIXED){return err(strm,Z_STREAM_ERROR)}if(windowBits===8){windowBits=9}var s=new DeflateState;strm.state=s;s.strm=strm;s.wrap=wrap;s.gzhead=null;s.w_bits=windowBits;s.w_size=1<>1;s.l_buf=(1+2)*s.lit_bufsize;s.level=level;s.strategy=strategy;s.method=method;return deflateReset(strm)}function deflateInit(strm,level){return deflateInit2(strm,level,Z_DEFLATED,MAX_WBITS,DEF_MEM_LEVEL,Z_DEFAULT_STRATEGY)}function deflate(strm,flush){var old_flush,s;var beg,val;if(!strm||!strm.state||flush>Z_BLOCK||flush<0){return strm?err(strm,Z_STREAM_ERROR):Z_STREAM_ERROR}s=strm.state;if(!strm.output||!strm.input&&strm.avail_in!==0||s.status===FINISH_STATE&&flush!==Z_FINISH){return err(strm,strm.avail_out===0?Z_BUF_ERROR:Z_STREAM_ERROR)}s.strm=strm;old_flush=s.last_flush;s.last_flush=flush;if(s.status===INIT_STATE){if(s.wrap===2){strm.adler=0;put_byte(s,31);put_byte(s,139);put_byte(s,8);if(!s.gzhead){put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,0);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,OS_CODE);s.status=BUSY_STATE}else{put_byte(s,(s.gzhead.text?1:0)+(s.gzhead.hcrc?2:0)+(!s.gzhead.extra?0:4)+(!s.gzhead.name?0:8)+(!s.gzhead.comment?0:16));put_byte(s,s.gzhead.time&255);put_byte(s,s.gzhead.time>>8&255);put_byte(s,s.gzhead.time>>16&255);put_byte(s,s.gzhead.time>>24&255);put_byte(s,s.level===9?2:s.strategy>=Z_HUFFMAN_ONLY||s.level<2?4:0);put_byte(s,s.gzhead.os&255);if(s.gzhead.extra&&s.gzhead.extra.length){put_byte(s,s.gzhead.extra.length&255);put_byte(s,s.gzhead.extra.length>>8&255)}if(s.gzhead.hcrc){strm.adler=crc32(strm.adler,s.pending_buf,s.pending,0)}s.gzindex=0;s.status=EXTRA_STATE}}else{var header=Z_DEFLATED+(s.w_bits-8<<4)<<8;var level_flags=-1;if(s.strategy>=Z_HUFFMAN_ONLY||s.level<2){level_flags=0}else if(s.level<6){level_flags=1}else if(s.level===6){level_flags=2}else{level_flags=3}header|=level_flags<<6;if(s.strstart!==0){header|=PRESET_DICT}header+=31-header%31;s.status=BUSY_STATE;putShortMSB(s,header);if(s.strstart!==0){putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}strm.adler=1}}if(s.status===EXTRA_STATE){if(s.gzhead.extra){beg=s.pending;while(s.gzindex<(s.gzhead.extra.length&65535)){if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){break}}put_byte(s,s.gzhead.extra[s.gzindex]&255);s.gzindex++}if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(s.gzindex===s.gzhead.extra.length){s.gzindex=0;s.status=NAME_STATE}}else{s.status=NAME_STATE}}if(s.status===NAME_STATE){if(s.gzhead.name){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.gzindex=0;s.status=COMMENT_STATE}}else{s.status=COMMENT_STATE}}if(s.status===COMMENT_STATE){if(s.gzhead.comment){beg=s.pending;do{if(s.pending===s.pending_buf_size){if(s.gzhead.hcrc&&s.pending>beg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}flush_pending(strm);beg=s.pending;if(s.pending===s.pending_buf_size){val=1;break}}if(s.gzindexbeg){strm.adler=crc32(strm.adler,s.pending_buf,s.pending-beg,beg)}if(val===0){s.status=HCRC_STATE}}else{s.status=HCRC_STATE}}if(s.status===HCRC_STATE){if(s.gzhead.hcrc){if(s.pending+2>s.pending_buf_size){flush_pending(strm)}if(s.pending+2<=s.pending_buf_size){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);strm.adler=0;s.status=BUSY_STATE}}else{s.status=BUSY_STATE}}if(s.pending!==0){flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}else if(strm.avail_in===0&&rank(flush)<=rank(old_flush)&&flush!==Z_FINISH){return err(strm,Z_BUF_ERROR)}if(s.status===FINISH_STATE&&strm.avail_in!==0){return err(strm,Z_BUF_ERROR)}if(strm.avail_in!==0||s.lookahead!==0||flush!==Z_NO_FLUSH&&s.status!==FINISH_STATE){var bstate=s.strategy===Z_HUFFMAN_ONLY?deflate_huff(s,flush):s.strategy===Z_RLE?deflate_rle(s,flush):configuration_table[s.level].func(s,flush);if(bstate===BS_FINISH_STARTED||bstate===BS_FINISH_DONE){s.status=FINISH_STATE}if(bstate===BS_NEED_MORE||bstate===BS_FINISH_STARTED){if(strm.avail_out===0){s.last_flush=-1}return Z_OK}if(bstate===BS_BLOCK_DONE){if(flush===Z_PARTIAL_FLUSH){trees._tr_align(s)}else if(flush!==Z_BLOCK){trees._tr_stored_block(s,0,0,false);if(flush===Z_FULL_FLUSH){zero(s.head);if(s.lookahead===0){s.strstart=0;s.block_start=0;s.insert=0}}}flush_pending(strm);if(strm.avail_out===0){s.last_flush=-1;return Z_OK}}}if(flush!==Z_FINISH){return Z_OK}if(s.wrap<=0){return Z_STREAM_END}if(s.wrap===2){put_byte(s,strm.adler&255);put_byte(s,strm.adler>>8&255);put_byte(s,strm.adler>>16&255);put_byte(s,strm.adler>>24&255);put_byte(s,strm.total_in&255);put_byte(s,strm.total_in>>8&255);put_byte(s,strm.total_in>>16&255);put_byte(s,strm.total_in>>24&255)}else{putShortMSB(s,strm.adler>>>16);putShortMSB(s,strm.adler&65535)}flush_pending(strm);if(s.wrap>0){s.wrap=-s.wrap}return s.pending!==0?Z_OK:Z_STREAM_END}function deflateEnd(strm){var status;if(!strm||!strm.state){return Z_STREAM_ERROR}status=strm.state.status;if(status!==INIT_STATE&&status!==EXTRA_STATE&&status!==NAME_STATE&&status!==COMMENT_STATE&&status!==HCRC_STATE&&status!==BUSY_STATE&&status!==FINISH_STATE){return err(strm,Z_STREAM_ERROR)}strm.state=null;return status===BUSY_STATE?err(strm,Z_DATA_ERROR):Z_OK}exports.deflateInit=deflateInit;exports.deflateInit2=deflateInit2;exports.deflateReset=deflateReset;exports.deflateResetKeep=deflateResetKeep;exports.deflateSetHeader=deflateSetHeader;exports.deflate=deflate;exports.deflateEnd=deflateEnd;exports.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./messages":37,"./trees":38}],33:[function(_dereq_,module,exports){"use strict";function GZheader(){this.text=0;this.time=0;this.xflags=0;this.os=0;this.extra=null;this.extra_len=0;this.name="";this.comment="";this.hcrc=0;this.done=false}module.exports=GZheader},{}],34:[function(_dereq_,module,exports){"use strict";var BAD=30;var TYPE=12;module.exports=function inflate_fast(strm,start){var state;var _in;var last;var _out;var beg;var end;var dmax;var wsize;var whave;var wnext;var window;var hold;var bits;var lcode;var dcode;var lmask;var dmask;var here;var op;var len;var dist;var from;var from_source;var input,output;state=strm.state;_in=strm.next_in;input=strm.input;last=_in+(strm.avail_in-5);_out=strm.next_out;output=strm.output;beg=_out-(start-strm.avail_out);end=_out+(strm.avail_out-257);dmax=state.dmax;wsize=state.wsize;whave=state.whave;wnext=state.wnext;window=state.window;hold=state.hold;bits=state.bits;lcode=state.lencode;dcode=state.distcode;lmask=(1<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op===0){output[_out++]=here&65535}else if(op&16){len=here&65535;op&=15;if(op){if(bits>>=op;bits-=op}if(bits<15){hold+=input[_in++]<>>24;hold>>>=op;bits-=op;op=here>>>16&255;if(op&16){dist=here&65535;op&=15;if(bitsdmax){strm.msg="invalid distance too far back";state.mode=BAD;break top}hold>>>=op;bits-=op;op=_out-beg;if(dist>op){op=dist-op;if(op>whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break top}}from=0;from_source=window;if(wnext===0){from+=wsize-op;if(op2){output[_out++]=from_source[from++];output[_out++]=from_source[from++];output[_out++]=from_source[from++];len-=3}if(len){output[_out++]=from_source[from++];if(len>1){output[_out++]=from_source[from++]}}}else{from=_out-dist;do{output[_out++]=output[from++];output[_out++]=output[from++];output[_out++]=output[from++];len-=3}while(len>2);if(len){output[_out++]=output[from++];if(len>1){output[_out++]=output[from++]}}}}else if((op&64)===0){here=dcode[(here&65535)+(hold&(1<>3;_in-=len;bits-=len<<3;hold&=(1<>>24&255)+(q>>>8&65280)+((q&65280)<<8)+((q&255)<<24)}function InflateState(){this.mode=0;this.last=false;this.wrap=0;this.havedict=false;this.flags=0;this.dmax=0;this.check=0;this.total=0;this.head=null;this.wbits=0;this.wsize=0;this.whave=0;this.wnext=0;this.window=null;this.hold=0;this.bits=0;this.length=0;this.offset=0;this.extra=0;this.lencode=null;this.distcode=null;this.lenbits=0;this.distbits=0;this.ncode=0;this.nlen=0;this.ndist=0;this.have=0;this.next=null;this.lens=new utils.Buf16(320);this.work=new utils.Buf16(288);this.lendyn=null;this.distdyn=null;this.sane=0;this.back=0;this.was=0}function inflateResetKeep(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;strm.total_in=strm.total_out=state.total=0;strm.msg="";if(state.wrap){strm.adler=state.wrap&1}state.mode=HEAD;state.last=0;state.havedict=0;state.dmax=32768;state.head=null;state.hold=0;state.bits=0;state.lencode=state.lendyn=new utils.Buf32(ENOUGH_LENS);state.distcode=state.distdyn=new utils.Buf32(ENOUGH_DISTS);state.sane=1;state.back=-1;return Z_OK}function inflateReset(strm){var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;state.wsize=0;state.whave=0;state.wnext=0;return inflateResetKeep(strm)}function inflateReset2(strm,windowBits){var wrap;var state;if(!strm||!strm.state){return Z_STREAM_ERROR}state=strm.state;if(windowBits<0){wrap=0;windowBits=-windowBits}else{wrap=(windowBits>>4)+1;if(windowBits<48){windowBits&=15}}if(windowBits&&(windowBits<8||windowBits>15)){return Z_STREAM_ERROR}if(state.window!==null&&state.wbits!==windowBits){state.window=null}state.wrap=wrap;state.wbits=windowBits;return inflateReset(strm)}function inflateInit2(strm,windowBits){var ret;var state;if(!strm){return Z_STREAM_ERROR}state=new InflateState;strm.state=state;state.window=null;ret=inflateReset2(strm,windowBits);if(ret!==Z_OK){strm.state=null}return ret}function inflateInit(strm){return inflateInit2(strm,DEF_WBITS)}var virgin=true;var lenfix,distfix;function fixedtables(state){if(virgin){var sym;lenfix=new utils.Buf32(512);distfix=new utils.Buf32(32);sym=0;while(sym<144){state.lens[sym++]=8}while(sym<256){state.lens[sym++]=9}while(sym<280){state.lens[sym++]=7}while(sym<288){state.lens[sym++]=8}inflate_table(LENS,state.lens,0,288,lenfix,0,state.work,{bits:9});sym=0;while(sym<32){state.lens[sym++]=5}inflate_table(DISTS,state.lens,0,32,distfix,0,state.work,{bits:5});virgin=false}state.lencode=lenfix;state.lenbits=9;state.distcode=distfix;state.distbits=5}function updatewindow(strm,src,end,copy){var dist;var state=strm.state;if(state.window===null){state.wsize=1<=state.wsize){utils.arraySet(state.window,src,end-state.wsize,state.wsize,0);state.wnext=0;state.whave=state.wsize}else{dist=state.wsize-state.wnext;if(dist>copy){dist=copy}utils.arraySet(state.window,src,end-copy,dist,state.wnext);copy-=dist;if(copy){utils.arraySet(state.window,src,end-copy,copy,0);state.wnext=copy;state.whave=state.wsize}else{state.wnext+=dist;if(state.wnext===state.wsize){state.wnext=0}if(state.whave>>8&255;state.check=crc32(state.check,hbuf,2,0);hold=0;bits=0;state.mode=FLAGS;break}state.flags=0;if(state.head){state.head.done=false}if(!(state.wrap&1)||(((hold&255)<<8)+(hold>>8))%31){strm.msg="incorrect header check";state.mode=BAD;break}if((hold&15)!==Z_DEFLATED){strm.msg="unknown compression method";state.mode=BAD;break}hold>>>=4;bits-=4;len=(hold&15)+8;if(state.wbits===0){state.wbits=len}else if(len>state.wbits){strm.msg="invalid window size";state.mode=BAD;break}state.dmax=1<>8&1}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=TIME;case TIME:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>8&255;hbuf[2]=hold>>>16&255;hbuf[3]=hold>>>24&255;state.check=crc32(state.check,hbuf,4,0)}hold=0;bits=0;state.mode=OS;case OS:while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<>8}if(state.flags&512){hbuf[0]=hold&255;hbuf[1]=hold>>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0;state.mode=EXLEN;case EXLEN:if(state.flags&1024){while(bits<16){if(have===0){break inf_leave}have--;hold+=input[next++]<>>8&255;state.check=crc32(state.check,hbuf,2,0)}hold=0;bits=0}else if(state.head){state.head.extra=null}state.mode=EXTRA;case EXTRA:if(state.flags&1024){copy=state.length;if(copy>have){copy=have}if(copy){if(state.head){len=state.head.extra_len-state.length;if(!state.head.extra){state.head.extra=new Array(state.head.extra_len)}utils.arraySet(state.head.extra,input,next,copy,len)}if(state.flags&512){state.check=crc32(state.check,input,copy,next)}have-=copy;next+=copy;state.length-=copy}if(state.length){break inf_leave}}state.length=0;state.mode=NAME;case NAME:if(state.flags&2048){if(have===0){break inf_leave}copy=0;do{len=input[next+copy++];if(state.head&&len&&state.length<65536){state.head.name+=String.fromCharCode(len)}}while(len&©>9&1;state.head.done=true}strm.adler=state.check=0;state.mode=TYPE;break;case DICTID:while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=bits&7;bits-=bits&7;state.mode=CHECK;break}while(bits<3){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=1;bits-=1;switch(hold&3){case 0:state.mode=STORED;break;case 1:fixedtables(state);state.mode=LEN_;if(flush===Z_TREES){hold>>>=2;bits-=2;break inf_leave}break;case 2:state.mode=TABLE;break;case 3:strm.msg="invalid block type";state.mode=BAD}hold>>>=2;bits-=2;break;case STORED:hold>>>=bits&7;bits-=bits&7;while(bits<32){if(have===0){break inf_leave}have--;hold+=input[next++]<>>16^65535)){strm.msg="invalid stored block lengths";state.mode=BAD;break}state.length=hold&65535;hold=0;bits=0;state.mode=COPY_;if(flush===Z_TREES){break inf_leave}case COPY_:state.mode=COPY;case COPY:copy=state.length;if(copy){if(copy>have){copy=have}if(copy>left){copy=left}if(copy===0){break inf_leave}utils.arraySet(output,input,next,copy,put);have-=copy;next+=copy;left-=copy;put+=copy;state.length-=copy;break}state.mode=TYPE;break;case TABLE:while(bits<14){if(have===0){break inf_leave}have--;hold+=input[next++]<>>=5;bits-=5;state.ndist=(hold&31)+1;hold>>>=5;bits-=5;state.ncode=(hold&15)+4;hold>>>=4;bits-=4;if(state.nlen>286||state.ndist>30){strm.msg="too many length or distance symbols";state.mode=BAD;break}state.have=0;state.mode=LENLENS;case LENLENS:while(state.have>>=3;bits-=3}while(state.have<19){state.lens[order[state.have++]]=0}state.lencode=state.lendyn;state.lenbits=7;opts={bits:state.lenbits};ret=inflate_table(CODES,state.lens,0,19,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid code lengths set";state.mode=BAD;break}state.have=0;state.mode=CODELENS;case CODELENS:while(state.have>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=here_bits;bits-=here_bits;state.lens[state.have++]=here_val}else{if(here_val===16){n=here_bits+2;while(bits>>=here_bits;bits-=here_bits;if(state.have===0){strm.msg="invalid bit length repeat";state.mode=BAD;break}len=state.lens[state.have-1];copy=3+(hold&3);hold>>>=2;bits-=2}else if(here_val===17){n=here_bits+3;while(bits>>=here_bits;bits-=here_bits;len=0;copy=3+(hold&7);hold>>>=3;bits-=3}else{n=here_bits+7;while(bits>>=here_bits;bits-=here_bits;len=0;copy=11+(hold&127);hold>>>=7;bits-=7}if(state.have+copy>state.nlen+state.ndist){strm.msg="invalid bit length repeat";state.mode=BAD;break}while(copy--){state.lens[state.have++]=len}}}if(state.mode===BAD){break}if(state.lens[256]===0){strm.msg="invalid code -- missing end-of-block";state.mode=BAD;break}state.lenbits=9;opts={bits:state.lenbits};ret=inflate_table(LENS,state.lens,0,state.nlen,state.lencode,0,state.work,opts);state.lenbits=opts.bits;if(ret){strm.msg="invalid literal/lengths set";state.mode=BAD;break}state.distbits=6;state.distcode=state.distdyn;opts={bits:state.distbits};ret=inflate_table(DISTS,state.lens,state.nlen,state.ndist,state.distcode,0,state.work,opts);state.distbits=opts.bits;if(ret){strm.msg="invalid distances set";state.mode=BAD;break}state.mode=LEN_;if(flush===Z_TREES){break inf_leave}case LEN_:state.mode=LEN;case LEN:if(have>=6&&left>=258){strm.next_out=put;strm.avail_out=left;strm.next_in=next;strm.avail_in=have;state.hold=hold;state.bits=bits;inflate_fast(strm,_out);put=strm.next_out;output=strm.output;left=strm.avail_out;next=strm.next_in;input=strm.input;have=strm.avail_in;hold=state.hold;bits=state.bits;if(state.mode===TYPE){state.back=-1}break}state.back=0;for(;;){here=state.lencode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;state.length=here_val;if(here_op===0){state.mode=LIT;break}if(here_op&32){state.back=-1;state.mode=TYPE;break}if(here_op&64){strm.msg="invalid literal/length code";state.mode=BAD;break}state.extra=here_op&15;state.mode=LENEXT;case LENEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}state.was=state.length;state.mode=DIST;case DIST:for(;;){here=state.distcode[hold&(1<>>24;here_op=here>>>16&255;here_val=here&65535;if(here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>last_bits)];here_bits=here>>>24;here_op=here>>>16&255;here_val=here&65535;if(last_bits+here_bits<=bits){break}if(have===0){break inf_leave}have--;hold+=input[next++]<>>=last_bits;bits-=last_bits;state.back+=last_bits}hold>>>=here_bits;bits-=here_bits;state.back+=here_bits;if(here_op&64){strm.msg="invalid distance code";state.mode=BAD;break}state.offset=here_val;state.extra=here_op&15;state.mode=DISTEXT;case DISTEXT:if(state.extra){n=state.extra;while(bits>>=state.extra;bits-=state.extra;state.back+=state.extra}if(state.offset>state.dmax){strm.msg="invalid distance too far back";state.mode=BAD;break}state.mode=MATCH;case MATCH:if(left===0){break inf_leave}copy=_out-left;if(state.offset>copy){copy=state.offset-copy;if(copy>state.whave){if(state.sane){strm.msg="invalid distance too far back";state.mode=BAD;break}}if(copy>state.wnext){copy-=state.wnext;from=state.wsize-copy}else{from=state.wnext-copy}if(copy>state.length){copy=state.length}from_source=state.window}else{from_source=output;from=put-state.offset;copy=state.length}if(copy>left){copy=left}left-=copy;state.length-=copy;do{output[put++]=from_source[from++]}while(--copy);if(state.length===0){state.mode=LEN}break;case LIT:if(left===0){break inf_leave}output[put++]=state.length;left--;state.mode=LEN;break;case CHECK:if(state.wrap){while(bits<32){if(have===0){break inf_leave}have--;hold|=input[next++]<=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;lenENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}var i=0;for(;;){i++;here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}},{"../utils/common":27}],37:[function(_dereq_,module,exports){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length};var static_l_desc;var static_d_desc;var static_bl_desc;var TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc};function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;hmax_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){bits--}s.bl_count[bits]--;s.bl_count[bits+1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code>=7;for(;code8){put_short(s,s.bi_buf)}else if(s.bi_valid>0){s.pending_buf[s.pending++]=s.bi_buf}s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]>1;n>=1;n--){pqdownheap(s,tree,n)}node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s,desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n0){if(s.strm.data_type===Z_UNKNOWN){s.strm.data_type=detect_data_type(s)}build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last)}else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1}exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align},{"../utils/common":27}],39:[function(_dereq_,module,exports){"use strict";function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream},{}]},{},[9])(9)});var cptable={version:"1.3.6"};cptable[874]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[932]=function(){var d=[],e={},D=[],j;D[0]="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������".split("");for(j=0;j!=D[0].length;++j)if(D[0][j].charCodeAt(0)!==65533){e[D[0][j]]=0+j;d[0+j]=D[0][j]}D[129]="���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���".split("");for(j=0;j!=D[129].length;++j)if(D[129][j].charCodeAt(0)!==65533){e[D[129][j]]=33024+j;d[33024+j]=D[129][j]}D[130]="�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������".split("");for(j=0;j!=D[130].length;++j)if(D[130][j].charCodeAt(0)!==65533){e[D[130][j]]=33280+j;d[33280+j]=D[130][j]}D[131]="����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������".split("");for(j=0;j!=D[131].length;++j)if(D[131][j].charCodeAt(0)!==65533){e[D[131][j]]=33536+j;d[33536+j]=D[131][j]}D[132]="����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������".split("");for(j=0;j!=D[132].length;++j)if(D[132][j].charCodeAt(0)!==65533){e[D[132][j]]=33792+j;d[33792+j]=D[132][j]}D[135]="����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[135].length;++j)if(D[135][j].charCodeAt(0)!==65533){e[D[135][j]]=34560+j;d[34560+j]=D[135][j]}D[136]="���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���".split("");for(j=0;j!=D[136].length;++j)if(D[136][j].charCodeAt(0)!==65533){e[D[136][j]]=34816+j;d[34816+j]=D[136][j]}D[137]="����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���".split("");for(j=0;j!=D[137].length;++j)if(D[137][j].charCodeAt(0)!==65533){e[D[137][j]]=35072+j;d[35072+j]=D[137][j]}D[138]="����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���".split("");for(j=0;j!=D[138].length;++j)if(D[138][j].charCodeAt(0)!==65533){e[D[138][j]]=35328+j;d[35328+j]=D[138][j]}D[139]="����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���".split("");for(j=0;j!=D[139].length;++j)if(D[139][j].charCodeAt(0)!==65533){e[D[139][j]]=35584+j;d[35584+j]=D[139][j]}D[140]="����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���".split("");for(j=0;j!=D[140].length;++j)if(D[140][j].charCodeAt(0)!==65533){e[D[140][j]]=35840+j;d[35840+j]=D[140][j]}D[141]="����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���".split("");for(j=0;j!=D[141].length;++j)if(D[141][j].charCodeAt(0)!==65533){e[D[141][j]]=36096+j;d[36096+j]=D[141][j]}D[142]="����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���".split("");for(j=0;j!=D[142].length;++j)if(D[142][j].charCodeAt(0)!==65533){e[D[142][j]]=36352+j;d[36352+j]=D[142][j]}D[143]="����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���".split("");for(j=0;j!=D[143].length;++j)if(D[143][j].charCodeAt(0)!==65533){e[D[143][j]]=36608+j;d[36608+j]=D[143][j]}D[144]="����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���".split("");for(j=0;j!=D[144].length;++j)if(D[144][j].charCodeAt(0)!==65533){e[D[144][j]]=36864+j;d[36864+j]=D[144][j]}D[145]="����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���".split("");for(j=0;j!=D[145].length;++j)if(D[145][j].charCodeAt(0)!==65533){e[D[145][j]]=37120+j;d[37120+j]=D[145][j]}D[146]="����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���".split("");for(j=0;j!=D[146].length;++j)if(D[146][j].charCodeAt(0)!==65533){e[D[146][j]]=37376+j;d[37376+j]=D[146][j]}D[147]="����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���".split("");for(j=0;j!=D[147].length;++j)if(D[147][j].charCodeAt(0)!==65533){e[D[147][j]]=37632+j;d[37632+j]=D[147][j]}D[148]="����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���".split("");for(j=0;j!=D[148].length;++j)if(D[148][j].charCodeAt(0)!==65533){e[D[148][j]]=37888+j;d[37888+j]=D[148][j]}D[149]="����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���".split("");for(j=0;j!=D[149].length;++j)if(D[149][j].charCodeAt(0)!==65533){e[D[149][j]]=38144+j;d[38144+j]=D[149][j]}D[150]="����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���".split("");for(j=0;j!=D[150].length;++j)if(D[150][j].charCodeAt(0)!==65533){e[D[150][j]]=38400+j;d[38400+j]=D[150][j]}D[151]="����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���".split("");for(j=0;j!=D[151].length;++j)if(D[151][j].charCodeAt(0)!==65533){e[D[151][j]]=38656+j;d[38656+j]=D[151][j]}D[152]="����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���".split("");for(j=0;j!=D[152].length;++j)if(D[152][j].charCodeAt(0)!==65533){e[D[152][j]]=38912+j;d[38912+j]=D[152][j]}D[153]="����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���".split("");for(j=0;j!=D[153].length;++j)if(D[153][j].charCodeAt(0)!==65533){e[D[153][j]]=39168+j;d[39168+j]=D[153][j]}D[154]="����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���".split("");for(j=0;j!=D[154].length;++j)if(D[154][j].charCodeAt(0)!==65533){e[D[154][j]]=39424+j;d[39424+j]=D[154][j]}D[155]="����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���".split("");for(j=0;j!=D[155].length;++j)if(D[155][j].charCodeAt(0)!==65533){e[D[155][j]]=39680+j;d[39680+j]=D[155][j]}D[156]="����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���".split("");for(j=0;j!=D[156].length;++j)if(D[156][j].charCodeAt(0)!==65533){e[D[156][j]]=39936+j;d[39936+j]=D[156][j]}D[157]="����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���".split("");for(j=0;j!=D[157].length;++j)if(D[157][j].charCodeAt(0)!==65533){e[D[157][j]]=40192+j;d[40192+j]=D[157][j]}D[158]="����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���".split("");for(j=0;j!=D[158].length;++j)if(D[158][j].charCodeAt(0)!==65533){e[D[158][j]]=40448+j;d[40448+j]=D[158][j]}D[159]="����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���".split("");for(j=0;j!=D[159].length;++j)if(D[159][j].charCodeAt(0)!==65533){e[D[159][j]]=40704+j;d[40704+j]=D[159][j]}D[224]="����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���".split("");for(j=0;j!=D[224].length;++j)if(D[224][j].charCodeAt(0)!==65533){e[D[224][j]]=57344+j;d[57344+j]=D[224][j]}D[225]="����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���".split("");for(j=0;j!=D[225].length;++j)if(D[225][j].charCodeAt(0)!==65533){e[D[225][j]]=57600+j;d[57600+j]=D[225][j]}D[226]="����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���".split("");for(j=0;j!=D[226].length;++j)if(D[226][j].charCodeAt(0)!==65533){e[D[226][j]]=57856+j;d[57856+j]=D[226][j]}D[227]="����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���".split("");for(j=0;j!=D[227].length;++j)if(D[227][j].charCodeAt(0)!==65533){e[D[227][j]]=58112+j;d[58112+j]=D[227][j]}D[228]="����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���".split("");for(j=0;j!=D[228].length;++j)if(D[228][j].charCodeAt(0)!==65533){e[D[228][j]]=58368+j;d[58368+j]=D[228][j]}D[229]="����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���".split("");for(j=0;j!=D[229].length;++j)if(D[229][j].charCodeAt(0)!==65533){e[D[229][j]]=58624+j;d[58624+j]=D[229][j]}D[230]="����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���".split("");for(j=0;j!=D[230].length;++j)if(D[230][j].charCodeAt(0)!==65533){e[D[230][j]]=58880+j;d[58880+j]=D[230][j]}D[231]="����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���".split("");for(j=0;j!=D[231].length;++j)if(D[231][j].charCodeAt(0)!==65533){e[D[231][j]]=59136+j;d[59136+j]=D[231][j]}D[232]="����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���".split("");for(j=0;j!=D[232].length;++j)if(D[232][j].charCodeAt(0)!==65533){e[D[232][j]]=59392+j;d[59392+j]=D[232][j]}D[233]="����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���".split("");for(j=0;j!=D[233].length;++j)if(D[233][j].charCodeAt(0)!==65533){e[D[233][j]]=59648+j;d[59648+j]=D[233][j]}D[234]="����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[234].length;++j)if(D[234][j].charCodeAt(0)!==65533){e[D[234][j]]=59904+j;d[59904+j]=D[234][j]}D[237]="����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���".split("");for(j=0;j!=D[237].length;++j)if(D[237][j].charCodeAt(0)!==65533){e[D[237][j]]=60672+j;d[60672+j]=D[237][j]}D[238]="����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���".split(""); +exports.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":27,"./adler32":29,"./crc32":31,"./inffast":34,"./inftrees":36}],36:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var MAXBITS=15;var ENOUGH_LENS=852;var ENOUGH_DISTS=592;var CODES=0;var LENS=1;var DISTS=2;var lbase=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0];var lext=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78];var dbase=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0];var dext=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];module.exports=function inflate_table(type,lens,lens_index,codes,table,table_index,work,opts){var bits=opts.bits;var len=0;var sym=0;var min=0,max=0;var root=0;var curr=0;var drop=0;var left=0;var used=0;var huff=0;var incr;var fill;var low;var mask;var next;var base=null;var base_index=0;var end;var count=new utils.Buf16(MAXBITS+1);var offs=new utils.Buf16(MAXBITS+1);var extra=null;var extra_index=0;var here_bits,here_op,here_val;for(len=0;len<=MAXBITS;len++){count[len]=0}for(sym=0;sym=1;max--){if(count[max]!==0){break}}if(root>max){root=max}if(max===0){table[table_index++]=1<<24|64<<16|0;table[table_index++]=1<<24|64<<16|0;opts.bits=1;return 0}for(min=1;min0&&(type===CODES||max!==1)){return-1}offs[1]=0;for(len=1;lenENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}var i=0;for(;;){i++;here_bits=len-drop;if(work[sym]end){here_op=extra[extra_index+work[sym]];here_val=base[base_index+work[sym]]}else{here_op=32+64;here_val=0}incr=1<>drop)+fill]=here_bits<<24|here_op<<16|here_val|0}while(fill!==0);incr=1<>=1}if(incr!==0){huff&=incr-1;huff+=incr}else{huff=0}sym++;if(--count[len]===0){if(len===max){break}len=lens[lens_index+work[sym]]}if(len>root&&(huff&mask)!==low){if(drop===0){drop=root}next+=min;curr=len-drop;left=1<ENOUGH_LENS||type===DISTS&&used>ENOUGH_DISTS){return 1}low=huff&mask;table[low]=root<<24|curr<<16|next-table_index|0}}if(huff!==0){table[next+huff]=len-drop<<24|64<<16|0}opts.bits=root;return 0}},{"../utils/common":27}],37:[function(_dereq_,module,exports){"use strict";module.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],38:[function(_dereq_,module,exports){"use strict";var utils=_dereq_("../utils/common");var Z_FIXED=4;var Z_BINARY=0;var Z_TEXT=1;var Z_UNKNOWN=2;function zero(buf){var len=buf.length;while(--len>=0){buf[len]=0}}var STORED_BLOCK=0;var STATIC_TREES=1;var DYN_TREES=2;var MIN_MATCH=3;var MAX_MATCH=258;var LENGTH_CODES=29;var LITERALS=256;var L_CODES=LITERALS+1+LENGTH_CODES;var D_CODES=30;var BL_CODES=19;var HEAP_SIZE=2*L_CODES+1;var MAX_BITS=15;var Buf_size=16;var MAX_BL_BITS=7;var END_BLOCK=256;var REP_3_6=16;var REPZ_3_10=17;var REPZ_11_138=18;var extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];var extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];var extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];var bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];var DIST_CODE_LEN=512;var static_ltree=new Array((L_CODES+2)*2);zero(static_ltree);var static_dtree=new Array(D_CODES*2);zero(static_dtree);var _dist_code=new Array(DIST_CODE_LEN);zero(_dist_code);var _length_code=new Array(MAX_MATCH-MIN_MATCH+1);zero(_length_code);var base_length=new Array(LENGTH_CODES);zero(base_length);var base_dist=new Array(D_CODES);zero(base_dist);var StaticTreeDesc=function(static_tree,extra_bits,extra_base,elems,max_length){this.static_tree=static_tree;this.extra_bits=extra_bits;this.extra_base=extra_base;this.elems=elems;this.max_length=max_length;this.has_stree=static_tree&&static_tree.length};var static_l_desc;var static_d_desc;var static_bl_desc;var TreeDesc=function(dyn_tree,stat_desc){this.dyn_tree=dyn_tree;this.max_code=0;this.stat_desc=stat_desc};function d_code(dist){return dist<256?_dist_code[dist]:_dist_code[256+(dist>>>7)]}function put_short(s,w){s.pending_buf[s.pending++]=w&255;s.pending_buf[s.pending++]=w>>>8&255}function send_bits(s,value,length){if(s.bi_valid>Buf_size-length){s.bi_buf|=value<>Buf_size-s.bi_valid;s.bi_valid+=length-Buf_size}else{s.bi_buf|=value<>>=1;res<<=1}while(--len>0);return res>>>1}function bi_flush(s){if(s.bi_valid===16){put_short(s,s.bi_buf);s.bi_buf=0;s.bi_valid=0}else if(s.bi_valid>=8){s.pending_buf[s.pending++]=s.bi_buf&255;s.bi_buf>>=8;s.bi_valid-=8}}function gen_bitlen(s,desc){var tree=desc.dyn_tree;var max_code=desc.max_code;var stree=desc.stat_desc.static_tree;var has_stree=desc.stat_desc.has_stree;var extra=desc.stat_desc.extra_bits;var base=desc.stat_desc.extra_base;var max_length=desc.stat_desc.max_length;var h;var n,m;var bits;var xbits;var f;var overflow=0;for(bits=0;bits<=MAX_BITS;bits++){s.bl_count[bits]=0}tree[s.heap[s.heap_max]*2+1]=0;for(h=s.heap_max+1;hmax_length){bits=max_length;overflow++}tree[n*2+1]=bits;if(n>max_code){continue}s.bl_count[bits]++;xbits=0;if(n>=base){xbits=extra[n-base]}f=tree[n*2];s.opt_len+=f*(bits+xbits);if(has_stree){s.static_len+=f*(stree[n*2+1]+xbits)}}if(overflow===0){return}do{bits=max_length-1;while(s.bl_count[bits]===0){bits--}s.bl_count[bits]--;s.bl_count[bits+1]+=2;s.bl_count[max_length]--;overflow-=2}while(overflow>0);for(bits=max_length;bits!==0;bits--){n=s.bl_count[bits];while(n!==0){m=s.heap[--h];if(m>max_code){continue}if(tree[m*2+1]!==bits){s.opt_len+=(bits-tree[m*2+1])*tree[m*2];tree[m*2+1]=bits}n--}}}function gen_codes(tree,max_code,bl_count){var next_code=new Array(MAX_BITS+1);var code=0;var bits;var n;for(bits=1;bits<=MAX_BITS;bits++){next_code[bits]=code=code+bl_count[bits-1]<<1}for(n=0;n<=max_code;n++){var len=tree[n*2+1];if(len===0){continue}tree[n*2]=bi_reverse(next_code[len]++,len)}}function tr_static_init(){var n;var bits;var length;var code;var dist;var bl_count=new Array(MAX_BITS+1);length=0;for(code=0;code>=7;for(;code8){put_short(s,s.bi_buf)}else if(s.bi_valid>0){s.pending_buf[s.pending++]=s.bi_buf}s.bi_buf=0;s.bi_valid=0}function copy_block(s,buf,len,header){bi_windup(s);if(header){put_short(s,len);put_short(s,~len)}utils.arraySet(s.pending_buf,s.window,buf,len,s.pending);s.pending+=len}function smaller(tree,n,m,depth){var _n2=n*2;var _m2=m*2;return tree[_n2]>1;n>=1;n--){pqdownheap(s,tree,n)}node=elems;do{n=s.heap[1];s.heap[1]=s.heap[s.heap_len--];pqdownheap(s,tree,1);m=s.heap[1];s.heap[--s.heap_max]=n;s.heap[--s.heap_max]=m;tree[node*2]=tree[n*2]+tree[m*2];s.depth[node]=(s.depth[n]>=s.depth[m]?s.depth[n]:s.depth[m])+1;tree[n*2+1]=tree[m*2+1]=node;s.heap[1]=node++;pqdownheap(s,tree,1)}while(s.heap_len>=2);s.heap[--s.heap_max]=s.heap[1];gen_bitlen(s,desc);gen_codes(tree,max_code,s.bl_count)}function scan_tree(s,tree,max_code){var n;var prevlen=-1;var curlen;var nextlen=tree[0*2+1];var count=0;var max_count=7;var min_count=4;if(nextlen===0){max_count=138;min_count=3}tree[(max_code+1)*2+1]=65535;for(n=0;n<=max_code;n++){curlen=nextlen;nextlen=tree[(n+1)*2+1];if(++count=3;max_blindex--){if(s.bl_tree[bl_order[max_blindex]*2+1]!==0){break}}s.opt_len+=3*(max_blindex+1)+5+5+4;return max_blindex}function send_all_trees(s,lcodes,dcodes,blcodes){var rank;send_bits(s,lcodes-257,5);send_bits(s,dcodes-1,5);send_bits(s,blcodes-4,4);for(rank=0;rank>>=1){if(black_mask&1&&s.dyn_ltree[n*2]!==0){return Z_BINARY}}if(s.dyn_ltree[9*2]!==0||s.dyn_ltree[10*2]!==0||s.dyn_ltree[13*2]!==0){return Z_TEXT}for(n=32;n0){if(s.strm.data_type===Z_UNKNOWN){s.strm.data_type=detect_data_type(s)}build_tree(s,s.l_desc);build_tree(s,s.d_desc);max_blindex=build_bl_tree(s);opt_lenb=s.opt_len+3+7>>>3;static_lenb=s.static_len+3+7>>>3;if(static_lenb<=opt_lenb){opt_lenb=static_lenb}}else{opt_lenb=static_lenb=stored_len+5}if(stored_len+4<=opt_lenb&&buf!==-1){_tr_stored_block(s,buf,stored_len,last)}else if(s.strategy===Z_FIXED||static_lenb===opt_lenb){send_bits(s,(STATIC_TREES<<1)+(last?1:0),3);compress_block(s,static_ltree,static_dtree)}else{send_bits(s,(DYN_TREES<<1)+(last?1:0),3);send_all_trees(s,s.l_desc.max_code+1,s.d_desc.max_code+1,max_blindex+1);compress_block(s,s.dyn_ltree,s.dyn_dtree)}init_block(s);if(last){bi_windup(s)}}function _tr_tally(s,dist,lc){s.pending_buf[s.d_buf+s.last_lit*2]=dist>>>8&255;s.pending_buf[s.d_buf+s.last_lit*2+1]=dist&255;s.pending_buf[s.l_buf+s.last_lit]=lc&255;s.last_lit++;if(dist===0){s.dyn_ltree[lc*2]++}else{s.matches++;dist--;s.dyn_ltree[(_length_code[lc]+LITERALS+1)*2]++;s.dyn_dtree[d_code(dist)*2]++}return s.last_lit===s.lit_bufsize-1}exports._tr_init=_tr_init;exports._tr_stored_block=_tr_stored_block;exports._tr_flush_block=_tr_flush_block;exports._tr_tally=_tr_tally;exports._tr_align=_tr_align},{"../utils/common":27}],39:[function(_dereq_,module,exports){"use strict";function ZStream(){this.input=null;this.next_in=0;this.avail_in=0;this.total_in=0;this.output=null;this.next_out=0;this.avail_out=0;this.total_out=0;this.msg="";this.state=null;this.data_type=2;this.adler=0}module.exports=ZStream},{}]},{},[9])(9)});var cptable={version:"1.3.7"};cptable[874]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[932]=function(){var d=[],e={},D=[],j;D[0]="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������".split("");for(j=0;j!=D[0].length;++j)if(D[0][j].charCodeAt(0)!==65533){e[D[0][j]]=0+j;d[0+j]=D[0][j]}D[129]="���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���".split("");for(j=0;j!=D[129].length;++j)if(D[129][j].charCodeAt(0)!==65533){e[D[129][j]]=33024+j;d[33024+j]=D[129][j]}D[130]="�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������".split("");for(j=0;j!=D[130].length;++j)if(D[130][j].charCodeAt(0)!==65533){e[D[130][j]]=33280+j;d[33280+j]=D[130][j]}D[131]="����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������".split("");for(j=0;j!=D[131].length;++j)if(D[131][j].charCodeAt(0)!==65533){e[D[131][j]]=33536+j;d[33536+j]=D[131][j]}D[132]="����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������".split("");for(j=0;j!=D[132].length;++j)if(D[132][j].charCodeAt(0)!==65533){e[D[132][j]]=33792+j;d[33792+j]=D[132][j]}D[135]="����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[135].length;++j)if(D[135][j].charCodeAt(0)!==65533){e[D[135][j]]=34560+j;d[34560+j]=D[135][j]}D[136]="���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���".split("");for(j=0;j!=D[136].length;++j)if(D[136][j].charCodeAt(0)!==65533){e[D[136][j]]=34816+j;d[34816+j]=D[136][j]}D[137]="����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���".split("");for(j=0;j!=D[137].length;++j)if(D[137][j].charCodeAt(0)!==65533){e[D[137][j]]=35072+j;d[35072+j]=D[137][j]}D[138]="����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���".split("");for(j=0;j!=D[138].length;++j)if(D[138][j].charCodeAt(0)!==65533){e[D[138][j]]=35328+j;d[35328+j]=D[138][j]}D[139]="����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���".split("");for(j=0;j!=D[139].length;++j)if(D[139][j].charCodeAt(0)!==65533){e[D[139][j]]=35584+j;d[35584+j]=D[139][j]}D[140]="����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���".split("");for(j=0;j!=D[140].length;++j)if(D[140][j].charCodeAt(0)!==65533){e[D[140][j]]=35840+j;d[35840+j]=D[140][j]}D[141]="����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���".split("");for(j=0;j!=D[141].length;++j)if(D[141][j].charCodeAt(0)!==65533){e[D[141][j]]=36096+j;d[36096+j]=D[141][j]}D[142]="����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���".split("");for(j=0;j!=D[142].length;++j)if(D[142][j].charCodeAt(0)!==65533){e[D[142][j]]=36352+j;d[36352+j]=D[142][j]}D[143]="����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���".split("");for(j=0;j!=D[143].length;++j)if(D[143][j].charCodeAt(0)!==65533){e[D[143][j]]=36608+j;d[36608+j]=D[143][j]}D[144]="����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���".split("");for(j=0;j!=D[144].length;++j)if(D[144][j].charCodeAt(0)!==65533){e[D[144][j]]=36864+j;d[36864+j]=D[144][j]}D[145]="����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���".split("");for(j=0;j!=D[145].length;++j)if(D[145][j].charCodeAt(0)!==65533){e[D[145][j]]=37120+j;d[37120+j]=D[145][j]}D[146]="����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���".split("");for(j=0;j!=D[146].length;++j)if(D[146][j].charCodeAt(0)!==65533){e[D[146][j]]=37376+j;d[37376+j]=D[146][j]}D[147]="����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���".split("");for(j=0;j!=D[147].length;++j)if(D[147][j].charCodeAt(0)!==65533){e[D[147][j]]=37632+j;d[37632+j]=D[147][j]}D[148]="����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���".split("");for(j=0;j!=D[148].length;++j)if(D[148][j].charCodeAt(0)!==65533){e[D[148][j]]=37888+j;d[37888+j]=D[148][j]}D[149]="����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���".split("");for(j=0;j!=D[149].length;++j)if(D[149][j].charCodeAt(0)!==65533){e[D[149][j]]=38144+j;d[38144+j]=D[149][j]}D[150]="����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���".split("");for(j=0;j!=D[150].length;++j)if(D[150][j].charCodeAt(0)!==65533){e[D[150][j]]=38400+j;d[38400+j]=D[150][j]}D[151]="����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���".split("");for(j=0;j!=D[151].length;++j)if(D[151][j].charCodeAt(0)!==65533){e[D[151][j]]=38656+j;d[38656+j]=D[151][j]}D[152]="����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���".split("");for(j=0;j!=D[152].length;++j)if(D[152][j].charCodeAt(0)!==65533){e[D[152][j]]=38912+j;d[38912+j]=D[152][j]}D[153]="����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���".split("");for(j=0;j!=D[153].length;++j)if(D[153][j].charCodeAt(0)!==65533){e[D[153][j]]=39168+j;d[39168+j]=D[153][j]}D[154]="����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���".split("");for(j=0;j!=D[154].length;++j)if(D[154][j].charCodeAt(0)!==65533){e[D[154][j]]=39424+j;d[39424+j]=D[154][j]}D[155]="����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���".split("");for(j=0;j!=D[155].length;++j)if(D[155][j].charCodeAt(0)!==65533){e[D[155][j]]=39680+j;d[39680+j]=D[155][j]}D[156]="����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���".split("");for(j=0;j!=D[156].length;++j)if(D[156][j].charCodeAt(0)!==65533){e[D[156][j]]=39936+j;d[39936+j]=D[156][j]}D[157]="����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���".split("");for(j=0;j!=D[157].length;++j)if(D[157][j].charCodeAt(0)!==65533){e[D[157][j]]=40192+j;d[40192+j]=D[157][j]}D[158]="����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���".split("");for(j=0;j!=D[158].length;++j)if(D[158][j].charCodeAt(0)!==65533){e[D[158][j]]=40448+j;d[40448+j]=D[158][j]}D[159]="����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���".split("");for(j=0;j!=D[159].length;++j)if(D[159][j].charCodeAt(0)!==65533){e[D[159][j]]=40704+j;d[40704+j]=D[159][j]}D[224]="����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���".split("");for(j=0;j!=D[224].length;++j)if(D[224][j].charCodeAt(0)!==65533){e[D[224][j]]=57344+j;d[57344+j]=D[224][j]}D[225]="����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���".split("");for(j=0;j!=D[225].length;++j)if(D[225][j].charCodeAt(0)!==65533){e[D[225][j]]=57600+j;d[57600+j]=D[225][j]}D[226]="����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���".split("");for(j=0;j!=D[226].length;++j)if(D[226][j].charCodeAt(0)!==65533){e[D[226][j]]=57856+j;d[57856+j]=D[226][j]}D[227]="����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���".split("");for(j=0;j!=D[227].length;++j)if(D[227][j].charCodeAt(0)!==65533){e[D[227][j]]=58112+j;d[58112+j]=D[227][j]}D[228]="����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���".split("");for(j=0;j!=D[228].length;++j)if(D[228][j].charCodeAt(0)!==65533){e[D[228][j]]=58368+j;d[58368+j]=D[228][j]}D[229]="����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���".split("");for(j=0;j!=D[229].length;++j)if(D[229][j].charCodeAt(0)!==65533){e[D[229][j]]=58624+j;d[58624+j]=D[229][j]}D[230]="����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���".split("");for(j=0;j!=D[230].length;++j)if(D[230][j].charCodeAt(0)!==65533){e[D[230][j]]=58880+j;d[58880+j]=D[230][j]}D[231]="����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���".split("");for(j=0;j!=D[231].length;++j)if(D[231][j].charCodeAt(0)!==65533){e[D[231][j]]=59136+j;d[59136+j]=D[231][j]}D[232]="����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���".split("");for(j=0;j!=D[232].length;++j)if(D[232][j].charCodeAt(0)!==65533){e[D[232][j]]=59392+j;d[59392+j]=D[232][j]}D[233]="����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���".split("");for(j=0;j!=D[233].length;++j)if(D[233][j].charCodeAt(0)!==65533){e[D[233][j]]=59648+j;d[59648+j]=D[233][j]}D[234]="����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[234].length;++j)if(D[234][j].charCodeAt(0)!==65533){e[D[234][j]]=59904+j;d[59904+j]=D[234][j]}D[237]="����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���".split("");for(j=0;j!=D[237].length;++j)if(D[237][j].charCodeAt(0)!==65533){e[D[237][j]]=60672+j;d[60672+j]=D[237][j]}D[238]="����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���".split(""); for(j=0;j!=D[238].length;++j)if(D[238][j].charCodeAt(0)!==65533){e[D[238][j]]=60928+j;d[60928+j]=D[238][j]}D[250]="����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���".split("");for(j=0;j!=D[250].length;++j)if(D[250][j].charCodeAt(0)!==65533){e[D[250][j]]=64e3+j;d[64e3+j]=D[250][j]}D[251]="����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���".split("");for(j=0;j!=D[251].length;++j)if(D[251][j].charCodeAt(0)!==65533){e[D[251][j]]=64256+j;d[64256+j]=D[251][j]}D[252]="����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[252].length;++j)if(D[252][j].charCodeAt(0)!==65533){e[D[252][j]]=64512+j;d[64512+j]=D[252][j]}return{enc:e,dec:d}}();cptable[936]=function(){var d=[],e={},D=[],j;D[0]="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[0].length;++j)if(D[0][j].charCodeAt(0)!==65533){e[D[0][j]]=0+j;d[0+j]=D[0][j]}D[129]="����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�".split("");for(j=0;j!=D[129].length;++j)if(D[129][j].charCodeAt(0)!==65533){e[D[129][j]]=33024+j;d[33024+j]=D[129][j]}D[130]="����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�".split("");for(j=0;j!=D[130].length;++j)if(D[130][j].charCodeAt(0)!==65533){e[D[130][j]]=33280+j;d[33280+j]=D[130][j]}D[131]="����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�".split("");for(j=0;j!=D[131].length;++j)if(D[131][j].charCodeAt(0)!==65533){e[D[131][j]]=33536+j;d[33536+j]=D[131][j]}D[132]="����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�".split("");for(j=0;j!=D[132].length;++j)if(D[132][j].charCodeAt(0)!==65533){e[D[132][j]]=33792+j;d[33792+j]=D[132][j]}D[133]="����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�".split("");for(j=0;j!=D[133].length;++j)if(D[133][j].charCodeAt(0)!==65533){e[D[133][j]]=34048+j;d[34048+j]=D[133][j]}D[134]="����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�".split("");for(j=0;j!=D[134].length;++j)if(D[134][j].charCodeAt(0)!==65533){e[D[134][j]]=34304+j;d[34304+j]=D[134][j]}D[135]="����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�".split("");for(j=0;j!=D[135].length;++j)if(D[135][j].charCodeAt(0)!==65533){e[D[135][j]]=34560+j;d[34560+j]=D[135][j]}D[136]="����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�".split("");for(j=0;j!=D[136].length;++j)if(D[136][j].charCodeAt(0)!==65533){e[D[136][j]]=34816+j;d[34816+j]=D[136][j]}D[137]="����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�".split("");for(j=0;j!=D[137].length;++j)if(D[137][j].charCodeAt(0)!==65533){e[D[137][j]]=35072+j;d[35072+j]=D[137][j]}D[138]="����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�".split("");for(j=0;j!=D[138].length;++j)if(D[138][j].charCodeAt(0)!==65533){e[D[138][j]]=35328+j;d[35328+j]=D[138][j]}D[139]="����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�".split("");for(j=0;j!=D[139].length;++j)if(D[139][j].charCodeAt(0)!==65533){e[D[139][j]]=35584+j;d[35584+j]=D[139][j]}D[140]="����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�".split("");for(j=0;j!=D[140].length;++j)if(D[140][j].charCodeAt(0)!==65533){e[D[140][j]]=35840+j;d[35840+j]=D[140][j]}D[141]="����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�".split("");for(j=0;j!=D[141].length;++j)if(D[141][j].charCodeAt(0)!==65533){e[D[141][j]]=36096+j;d[36096+j]=D[141][j]}D[142]="����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�".split("");for(j=0;j!=D[142].length;++j)if(D[142][j].charCodeAt(0)!==65533){e[D[142][j]]=36352+j;d[36352+j]=D[142][j]}D[143]="����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�".split("");for(j=0;j!=D[143].length;++j)if(D[143][j].charCodeAt(0)!==65533){e[D[143][j]]=36608+j;d[36608+j]=D[143][j]}D[144]="����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�".split("");for(j=0;j!=D[144].length;++j)if(D[144][j].charCodeAt(0)!==65533){e[D[144][j]]=36864+j;d[36864+j]=D[144][j]}D[145]="����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�".split("");for(j=0;j!=D[145].length;++j)if(D[145][j].charCodeAt(0)!==65533){e[D[145][j]]=37120+j;d[37120+j]=D[145][j]}D[146]="����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�".split("");for(j=0;j!=D[146].length;++j)if(D[146][j].charCodeAt(0)!==65533){e[D[146][j]]=37376+j;d[37376+j]=D[146][j]}D[147]="����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�".split("");for(j=0;j!=D[147].length;++j)if(D[147][j].charCodeAt(0)!==65533){e[D[147][j]]=37632+j;d[37632+j]=D[147][j]}D[148]="����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�".split("");for(j=0;j!=D[148].length;++j)if(D[148][j].charCodeAt(0)!==65533){e[D[148][j]]=37888+j;d[37888+j]=D[148][j]}D[149]="����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�".split("");for(j=0;j!=D[149].length;++j)if(D[149][j].charCodeAt(0)!==65533){e[D[149][j]]=38144+j;d[38144+j]=D[149][j]}D[150]="����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�".split("");for(j=0;j!=D[150].length;++j)if(D[150][j].charCodeAt(0)!==65533){e[D[150][j]]=38400+j;d[38400+j]=D[150][j]}D[151]="����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�".split("");for(j=0;j!=D[151].length;++j)if(D[151][j].charCodeAt(0)!==65533){e[D[151][j]]=38656+j;d[38656+j]=D[151][j]}D[152]="����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�".split("");for(j=0;j!=D[152].length;++j)if(D[152][j].charCodeAt(0)!==65533){e[D[152][j]]=38912+j;d[38912+j]=D[152][j]}D[153]="����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�".split("");for(j=0;j!=D[153].length;++j)if(D[153][j].charCodeAt(0)!==65533){e[D[153][j]]=39168+j;d[39168+j]=D[153][j]}D[154]="����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�".split("");for(j=0;j!=D[154].length;++j)if(D[154][j].charCodeAt(0)!==65533){e[D[154][j]]=39424+j;d[39424+j]=D[154][j]}D[155]="����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�".split("");for(j=0;j!=D[155].length;++j)if(D[155][j].charCodeAt(0)!==65533){e[D[155][j]]=39680+j;d[39680+j]=D[155][j]}D[156]="����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�".split("");for(j=0;j!=D[156].length;++j)if(D[156][j].charCodeAt(0)!==65533){e[D[156][j]]=39936+j;d[39936+j]=D[156][j]}D[157]="����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�".split("");for(j=0;j!=D[157].length;++j)if(D[157][j].charCodeAt(0)!==65533){e[D[157][j]]=40192+j;d[40192+j]=D[157][j]}D[158]="����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�".split("");for(j=0;j!=D[158].length;++j)if(D[158][j].charCodeAt(0)!==65533){e[D[158][j]]=40448+j;d[40448+j]=D[158][j]}D[159]="����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�".split("");for(j=0;j!=D[159].length;++j)if(D[159][j].charCodeAt(0)!==65533){e[D[159][j]]=40704+j;d[40704+j]=D[159][j]}D[160]="����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�".split("");for(j=0;j!=D[160].length;++j)if(D[160][j].charCodeAt(0)!==65533){e[D[160][j]]=40960+j;d[40960+j]=D[160][j]}D[161]="����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�".split("");for(j=0;j!=D[161].length;++j)if(D[161][j].charCodeAt(0)!==65533){e[D[161][j]]=41216+j;d[41216+j]=D[161][j]}D[162]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���".split("");for(j=0;j!=D[162].length;++j)if(D[162][j].charCodeAt(0)!==65533){e[D[162][j]]=41472+j;d[41472+j]=D[162][j]}D[163]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split("");for(j=0;j!=D[163].length;++j)if(D[163][j].charCodeAt(0)!==65533){e[D[163][j]]=41728+j;d[41728+j]=D[163][j]}D[164]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split("");for(j=0;j!=D[164].length;++j)if(D[164][j].charCodeAt(0)!==65533){e[D[164][j]]=41984+j;d[41984+j]=D[164][j]}D[165]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split("");for(j=0;j!=D[165].length;++j)if(D[165][j].charCodeAt(0)!==65533){e[D[165][j]]=42240+j;d[42240+j]=D[165][j]}D[166]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������".split("");for(j=0;j!=D[166].length;++j)if(D[166][j].charCodeAt(0)!==65533){e[D[166][j]]=42496+j;d[42496+j]=D[166][j]}D[167]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");for(j=0;j!=D[167].length;++j)if(D[167][j].charCodeAt(0)!==65533){e[D[167][j]]=42752+j;d[42752+j]=D[167][j]}D[168]="����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������".split("");for(j=0;j!=D[168].length;++j)if(D[168][j].charCodeAt(0)!==65533){e[D[168][j]]=43008+j;d[43008+j]=D[168][j]}D[169]="����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������".split("");for(j=0;j!=D[169].length;++j)if(D[169][j].charCodeAt(0)!==65533){e[D[169][j]]=43264+j;d[43264+j]=D[169][j]}D[170]="����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[170].length;++j)if(D[170][j].charCodeAt(0)!==65533){e[D[170][j]]=43520+j;d[43520+j]=D[170][j]}D[171]="����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[171].length;++j)if(D[171][j].charCodeAt(0)!==65533){e[D[171][j]]=43776+j;d[43776+j]=D[171][j]}D[172]="����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[172].length;++j)if(D[172][j].charCodeAt(0)!==65533){e[D[172][j]]=44032+j;d[44032+j]=D[172][j]}D[173]="����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[173].length;++j)if(D[173][j].charCodeAt(0)!==65533){e[D[173][j]]=44288+j;d[44288+j]=D[173][j]}D[174]="����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[174].length;++j)if(D[174][j].charCodeAt(0)!==65533){e[D[174][j]]=44544+j;d[44544+j]=D[174][j]}D[175]="����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[175].length;++j)if(D[175][j].charCodeAt(0)!==65533){e[D[175][j]]=44800+j;d[44800+j]=D[175][j]}D[176]="����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�".split("");for(j=0;j!=D[176].length;++j)if(D[176][j].charCodeAt(0)!==65533){e[D[176][j]]=45056+j;d[45056+j]=D[176][j]}D[177]="����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�".split("");for(j=0;j!=D[177].length;++j)if(D[177][j].charCodeAt(0)!==65533){e[D[177][j]]=45312+j;d[45312+j]=D[177][j]}D[178]="����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�".split("");for(j=0;j!=D[178].length;++j)if(D[178][j].charCodeAt(0)!==65533){e[D[178][j]]=45568+j;d[45568+j]=D[178][j]}D[179]="����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�".split("");for(j=0;j!=D[179].length;++j)if(D[179][j].charCodeAt(0)!==65533){e[D[179][j]]=45824+j;d[45824+j]=D[179][j]}D[180]="����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�".split("");for(j=0;j!=D[180].length;++j)if(D[180][j].charCodeAt(0)!==65533){e[D[180][j]]=46080+j;d[46080+j]=D[180][j]}D[181]="����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�".split("");for(j=0;j!=D[181].length;++j)if(D[181][j].charCodeAt(0)!==65533){e[D[181][j]]=46336+j;d[46336+j]=D[181][j]}D[182]="����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�".split("");for(j=0;j!=D[182].length;++j)if(D[182][j].charCodeAt(0)!==65533){e[D[182][j]]=46592+j;d[46592+j]=D[182][j]}D[183]="����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�".split("");for(j=0;j!=D[183].length;++j)if(D[183][j].charCodeAt(0)!==65533){e[D[183][j]]=46848+j;d[46848+j]=D[183][j]}D[184]="����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�".split("");for(j=0;j!=D[184].length;++j)if(D[184][j].charCodeAt(0)!==65533){e[D[184][j]]=47104+j;d[47104+j]=D[184][j]}D[185]="����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�".split("");for(j=0;j!=D[185].length;++j)if(D[185][j].charCodeAt(0)!==65533){e[D[185][j]]=47360+j;d[47360+j]=D[185][j]}D[186]="����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�".split("");for(j=0;j!=D[186].length;++j)if(D[186][j].charCodeAt(0)!==65533){e[D[186][j]]=47616+j;d[47616+j]=D[186][j]}D[187]="����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�".split("");for(j=0;j!=D[187].length;++j)if(D[187][j].charCodeAt(0)!==65533){e[D[187][j]]=47872+j;d[47872+j]=D[187][j]}D[188]="����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�".split("");for(j=0;j!=D[188].length;++j)if(D[188][j].charCodeAt(0)!==65533){e[D[188][j]]=48128+j;d[48128+j]=D[188][j]}D[189]="����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�".split("");for(j=0;j!=D[189].length;++j)if(D[189][j].charCodeAt(0)!==65533){e[D[189][j]]=48384+j;d[48384+j]=D[189][j]}D[190]="����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�".split("");for(j=0;j!=D[190].length;++j)if(D[190][j].charCodeAt(0)!==65533){e[D[190][j]]=48640+j;d[48640+j]=D[190][j]}D[191]="����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�".split("");for(j=0;j!=D[191].length;++j)if(D[191][j].charCodeAt(0)!==65533){e[D[191][j]]=48896+j;d[48896+j]=D[191][j]}D[192]="����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�".split("");for(j=0;j!=D[192].length;++j)if(D[192][j].charCodeAt(0)!==65533){e[D[192][j]]=49152+j;d[49152+j]=D[192][j]}D[193]="����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�".split("");for(j=0;j!=D[193].length;++j)if(D[193][j].charCodeAt(0)!==65533){e[D[193][j]]=49408+j;d[49408+j]=D[193][j]}D[194]="����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�".split("");for(j=0;j!=D[194].length;++j)if(D[194][j].charCodeAt(0)!==65533){e[D[194][j]]=49664+j;d[49664+j]=D[194][j]}D[195]="����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�".split("");for(j=0;j!=D[195].length;++j)if(D[195][j].charCodeAt(0)!==65533){e[D[195][j]]=49920+j;d[49920+j]=D[195][j]}D[196]="����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�".split("");for(j=0;j!=D[196].length;++j)if(D[196][j].charCodeAt(0)!==65533){e[D[196][j]]=50176+j;d[50176+j]=D[196][j]}D[197]="����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�".split("");for(j=0;j!=D[197].length;++j)if(D[197][j].charCodeAt(0)!==65533){e[D[197][j]]=50432+j;d[50432+j]=D[197][j]}D[198]="����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�".split("");for(j=0;j!=D[198].length;++j)if(D[198][j].charCodeAt(0)!==65533){e[D[198][j]]=50688+j;d[50688+j]=D[198][j]}D[199]="����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�".split("");for(j=0;j!=D[199].length;++j)if(D[199][j].charCodeAt(0)!==65533){e[D[199][j]]=50944+j;d[50944+j]=D[199][j]}D[200]="����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�".split("");for(j=0;j!=D[200].length;++j)if(D[200][j].charCodeAt(0)!==65533){e[D[200][j]]=51200+j;d[51200+j]=D[200][j]}D[201]="����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�".split("");for(j=0;j!=D[201].length;++j)if(D[201][j].charCodeAt(0)!==65533){e[D[201][j]]=51456+j;d[51456+j]=D[201][j]}D[202]="����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�".split("");for(j=0;j!=D[202].length;++j)if(D[202][j].charCodeAt(0)!==65533){e[D[202][j]]=51712+j;d[51712+j]=D[202][j]}D[203]="����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�".split("");for(j=0;j!=D[203].length;++j)if(D[203][j].charCodeAt(0)!==65533){e[D[203][j]]=51968+j;d[51968+j]=D[203][j]}D[204]="����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�".split("");for(j=0;j!=D[204].length;++j)if(D[204][j].charCodeAt(0)!==65533){e[D[204][j]]=52224+j;d[52224+j]=D[204][j]}D[205]="����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�".split("");for(j=0;j!=D[205].length;++j)if(D[205][j].charCodeAt(0)!==65533){e[D[205][j]]=52480+j;d[52480+j]=D[205][j]}D[206]="����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�".split("");for(j=0;j!=D[206].length;++j)if(D[206][j].charCodeAt(0)!==65533){e[D[206][j]]=52736+j;d[52736+j]=D[206][j]}D[207]="����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�".split("");for(j=0;j!=D[207].length;++j)if(D[207][j].charCodeAt(0)!==65533){e[D[207][j]]=52992+j;d[52992+j]=D[207][j]}D[208]="����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�".split(""); for(j=0;j!=D[208].length;++j)if(D[208][j].charCodeAt(0)!==65533){e[D[208][j]]=53248+j;d[53248+j]=D[208][j]}D[209]="����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�".split("");for(j=0;j!=D[209].length;++j)if(D[209][j].charCodeAt(0)!==65533){e[D[209][j]]=53504+j;d[53504+j]=D[209][j]}D[210]="����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�".split("");for(j=0;j!=D[210].length;++j)if(D[210][j].charCodeAt(0)!==65533){e[D[210][j]]=53760+j;d[53760+j]=D[210][j]}D[211]="����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�".split("");for(j=0;j!=D[211].length;++j)if(D[211][j].charCodeAt(0)!==65533){e[D[211][j]]=54016+j;d[54016+j]=D[211][j]}D[212]="����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�".split("");for(j=0;j!=D[212].length;++j)if(D[212][j].charCodeAt(0)!==65533){e[D[212][j]]=54272+j;d[54272+j]=D[212][j]}D[213]="����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�".split("");for(j=0;j!=D[213].length;++j)if(D[213][j].charCodeAt(0)!==65533){e[D[213][j]]=54528+j;d[54528+j]=D[213][j]}D[214]="����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�".split("");for(j=0;j!=D[214].length;++j)if(D[214][j].charCodeAt(0)!==65533){e[D[214][j]]=54784+j;d[54784+j]=D[214][j]}D[215]="����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������".split("");for(j=0;j!=D[215].length;++j)if(D[215][j].charCodeAt(0)!==65533){e[D[215][j]]=55040+j;d[55040+j]=D[215][j]}D[216]="����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�".split("");for(j=0;j!=D[216].length;++j)if(D[216][j].charCodeAt(0)!==65533){e[D[216][j]]=55296+j;d[55296+j]=D[216][j]}D[217]="����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�".split("");for(j=0;j!=D[217].length;++j)if(D[217][j].charCodeAt(0)!==65533){e[D[217][j]]=55552+j;d[55552+j]=D[217][j]}D[218]="����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�".split("");for(j=0;j!=D[218].length;++j)if(D[218][j].charCodeAt(0)!==65533){e[D[218][j]]=55808+j;d[55808+j]=D[218][j]}D[219]="����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�".split("");for(j=0;j!=D[219].length;++j)if(D[219][j].charCodeAt(0)!==65533){e[D[219][j]]=56064+j;d[56064+j]=D[219][j]}D[220]="����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�".split("");for(j=0;j!=D[220].length;++j)if(D[220][j].charCodeAt(0)!==65533){e[D[220][j]]=56320+j;d[56320+j]=D[220][j]}D[221]="����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�".split("");for(j=0;j!=D[221].length;++j)if(D[221][j].charCodeAt(0)!==65533){e[D[221][j]]=56576+j;d[56576+j]=D[221][j]}D[222]="����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�".split("");for(j=0;j!=D[222].length;++j)if(D[222][j].charCodeAt(0)!==65533){e[D[222][j]]=56832+j;d[56832+j]=D[222][j]}D[223]="����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�".split("");for(j=0;j!=D[223].length;++j)if(D[223][j].charCodeAt(0)!==65533){e[D[223][j]]=57088+j;d[57088+j]=D[223][j]}D[224]="����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�".split("");for(j=0;j!=D[224].length;++j)if(D[224][j].charCodeAt(0)!==65533){e[D[224][j]]=57344+j;d[57344+j]=D[224][j]}D[225]="����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�".split("");for(j=0;j!=D[225].length;++j)if(D[225][j].charCodeAt(0)!==65533){e[D[225][j]]=57600+j;d[57600+j]=D[225][j]}D[226]="����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�".split("");for(j=0;j!=D[226].length;++j)if(D[226][j].charCodeAt(0)!==65533){e[D[226][j]]=57856+j;d[57856+j]=D[226][j]}D[227]="����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�".split("");for(j=0;j!=D[227].length;++j)if(D[227][j].charCodeAt(0)!==65533){e[D[227][j]]=58112+j;d[58112+j]=D[227][j]}D[228]="����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�".split("");for(j=0;j!=D[228].length;++j)if(D[228][j].charCodeAt(0)!==65533){e[D[228][j]]=58368+j;d[58368+j]=D[228][j]}D[229]="����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�".split("");for(j=0;j!=D[229].length;++j)if(D[229][j].charCodeAt(0)!==65533){e[D[229][j]]=58624+j;d[58624+j]=D[229][j]}D[230]="����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�".split("");for(j=0;j!=D[230].length;++j)if(D[230][j].charCodeAt(0)!==65533){e[D[230][j]]=58880+j;d[58880+j]=D[230][j]}D[231]="����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�".split("");for(j=0;j!=D[231].length;++j)if(D[231][j].charCodeAt(0)!==65533){e[D[231][j]]=59136+j;d[59136+j]=D[231][j]}D[232]="����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�".split("");for(j=0;j!=D[232].length;++j)if(D[232][j].charCodeAt(0)!==65533){e[D[232][j]]=59392+j;d[59392+j]=D[232][j]}D[233]="����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�".split("");for(j=0;j!=D[233].length;++j)if(D[233][j].charCodeAt(0)!==65533){e[D[233][j]]=59648+j;d[59648+j]=D[233][j]}D[234]="����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�".split("");for(j=0;j!=D[234].length;++j)if(D[234][j].charCodeAt(0)!==65533){e[D[234][j]]=59904+j;d[59904+j]=D[234][j]}D[235]="����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�".split("");for(j=0;j!=D[235].length;++j)if(D[235][j].charCodeAt(0)!==65533){e[D[235][j]]=60160+j;d[60160+j]=D[235][j]}D[236]="����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�".split("");for(j=0;j!=D[236].length;++j)if(D[236][j].charCodeAt(0)!==65533){e[D[236][j]]=60416+j;d[60416+j]=D[236][j]}D[237]="����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�".split("");for(j=0;j!=D[237].length;++j)if(D[237][j].charCodeAt(0)!==65533){e[D[237][j]]=60672+j;d[60672+j]=D[237][j]}D[238]="����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�".split("");for(j=0;j!=D[238].length;++j)if(D[238][j].charCodeAt(0)!==65533){e[D[238][j]]=60928+j;d[60928+j]=D[238][j]}D[239]="����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�".split("");for(j=0;j!=D[239].length;++j)if(D[239][j].charCodeAt(0)!==65533){e[D[239][j]]=61184+j;d[61184+j]=D[239][j]}D[240]="����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�".split("");for(j=0;j!=D[240].length;++j)if(D[240][j].charCodeAt(0)!==65533){e[D[240][j]]=61440+j;d[61440+j]=D[240][j]}D[241]="����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�".split("");for(j=0;j!=D[241].length;++j)if(D[241][j].charCodeAt(0)!==65533){e[D[241][j]]=61696+j;d[61696+j]=D[241][j]}D[242]="����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�".split("");for(j=0;j!=D[242].length;++j)if(D[242][j].charCodeAt(0)!==65533){e[D[242][j]]=61952+j;d[61952+j]=D[242][j]}D[243]="����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�".split("");for(j=0;j!=D[243].length;++j)if(D[243][j].charCodeAt(0)!==65533){e[D[243][j]]=62208+j;d[62208+j]=D[243][j]}D[244]="����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�".split("");for(j=0;j!=D[244].length;++j)if(D[244][j].charCodeAt(0)!==65533){e[D[244][j]]=62464+j;d[62464+j]=D[244][j]}D[245]="����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�".split("");for(j=0;j!=D[245].length;++j)if(D[245][j].charCodeAt(0)!==65533){e[D[245][j]]=62720+j;d[62720+j]=D[245][j]}D[246]="����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�".split("");for(j=0;j!=D[246].length;++j)if(D[246][j].charCodeAt(0)!==65533){e[D[246][j]]=62976+j;d[62976+j]=D[246][j]}D[247]="����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�".split("");for(j=0;j!=D[247].length;++j)if(D[247][j].charCodeAt(0)!==65533){e[D[247][j]]=63232+j;d[63232+j]=D[247][j]}D[248]="����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[248].length;++j)if(D[248][j].charCodeAt(0)!==65533){e[D[248][j]]=63488+j;d[63488+j]=D[248][j]}D[249]="����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[249].length;++j)if(D[249][j].charCodeAt(0)!==65533){e[D[249][j]]=63744+j;d[63744+j]=D[249][j]}D[250]="����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[250].length;++j)if(D[250][j].charCodeAt(0)!==65533){e[D[250][j]]=64e3+j;d[64e3+j]=D[250][j]}D[251]="����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[251].length;++j)if(D[251][j].charCodeAt(0)!==65533){e[D[251][j]]=64256+j;d[64256+j]=D[251][j]}D[252]="����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[252].length;++j)if(D[252][j].charCodeAt(0)!==65533){e[D[252][j]]=64512+j;d[64512+j]=D[252][j]}D[253]="����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[253].length;++j)if(D[253][j].charCodeAt(0)!==65533){e[D[253][j]]=64768+j;d[64768+j]=D[253][j]}D[254]="����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[254].length;++j)if(D[254][j].charCodeAt(0)!==65533){e[D[254][j]]=65024+j;d[65024+j]=D[254][j]}return{enc:e,dec:d}}();cptable[949]=function(){var d=[],e={},D=[],j;D[0]="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[0].length;++j)if(D[0][j].charCodeAt(0)!==65533){e[D[0][j]]=0+j;d[0+j]=D[0][j]}D[129]="�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�".split("");for(j=0;j!=D[129].length;++j)if(D[129][j].charCodeAt(0)!==65533){e[D[129][j]]=33024+j;d[33024+j]=D[129][j]}D[130]="�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�".split("");for(j=0;j!=D[130].length;++j)if(D[130][j].charCodeAt(0)!==65533){e[D[130][j]]=33280+j;d[33280+j]=D[130][j]}D[131]="�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�".split("");for(j=0;j!=D[131].length;++j)if(D[131][j].charCodeAt(0)!==65533){e[D[131][j]]=33536+j;d[33536+j]=D[131][j]}D[132]="�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�".split("");for(j=0;j!=D[132].length;++j)if(D[132][j].charCodeAt(0)!==65533){e[D[132][j]]=33792+j;d[33792+j]=D[132][j]}D[133]="�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�".split("");for(j=0;j!=D[133].length;++j)if(D[133][j].charCodeAt(0)!==65533){e[D[133][j]]=34048+j;d[34048+j]=D[133][j]}D[134]="�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�".split("");for(j=0;j!=D[134].length;++j)if(D[134][j].charCodeAt(0)!==65533){e[D[134][j]]=34304+j;d[34304+j]=D[134][j]}D[135]="�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�".split("");for(j=0;j!=D[135].length;++j)if(D[135][j].charCodeAt(0)!==65533){e[D[135][j]]=34560+j;d[34560+j]=D[135][j]}D[136]="�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�".split("");for(j=0;j!=D[136].length;++j)if(D[136][j].charCodeAt(0)!==65533){e[D[136][j]]=34816+j;d[34816+j]=D[136][j]}D[137]="�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�".split("");for(j=0;j!=D[137].length;++j)if(D[137][j].charCodeAt(0)!==65533){e[D[137][j]]=35072+j;d[35072+j]=D[137][j]}D[138]="�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�".split("");for(j=0;j!=D[138].length;++j)if(D[138][j].charCodeAt(0)!==65533){e[D[138][j]]=35328+j;d[35328+j]=D[138][j]}D[139]="�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�".split("");for(j=0;j!=D[139].length;++j)if(D[139][j].charCodeAt(0)!==65533){e[D[139][j]]=35584+j;d[35584+j]=D[139][j]}D[140]="�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�".split("");for(j=0;j!=D[140].length;++j)if(D[140][j].charCodeAt(0)!==65533){e[D[140][j]]=35840+j;d[35840+j]=D[140][j]}D[141]="�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�".split("");for(j=0;j!=D[141].length;++j)if(D[141][j].charCodeAt(0)!==65533){e[D[141][j]]=36096+j;d[36096+j]=D[141][j]}D[142]="�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�".split("");for(j=0;j!=D[142].length;++j)if(D[142][j].charCodeAt(0)!==65533){e[D[142][j]]=36352+j;d[36352+j]=D[142][j]}D[143]="�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�".split("");for(j=0;j!=D[143].length;++j)if(D[143][j].charCodeAt(0)!==65533){e[D[143][j]]=36608+j;d[36608+j]=D[143][j]}D[144]="�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�".split("");for(j=0;j!=D[144].length;++j)if(D[144][j].charCodeAt(0)!==65533){e[D[144][j]]=36864+j;d[36864+j]=D[144][j]}D[145]="�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�".split("");for(j=0;j!=D[145].length;++j)if(D[145][j].charCodeAt(0)!==65533){e[D[145][j]]=37120+j;d[37120+j]=D[145][j]}D[146]="�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�".split("");for(j=0;j!=D[146].length;++j)if(D[146][j].charCodeAt(0)!==65533){e[D[146][j]]=37376+j;d[37376+j]=D[146][j]}D[147]="�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�".split("");for(j=0;j!=D[147].length;++j)if(D[147][j].charCodeAt(0)!==65533){e[D[147][j]]=37632+j;d[37632+j]=D[147][j]}D[148]="�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�".split("");for(j=0;j!=D[148].length;++j)if(D[148][j].charCodeAt(0)!==65533){e[D[148][j]]=37888+j;d[37888+j]=D[148][j]}D[149]="�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�".split("");for(j=0;j!=D[149].length;++j)if(D[149][j].charCodeAt(0)!==65533){e[D[149][j]]=38144+j;d[38144+j]=D[149][j]}D[150]="�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�".split("");for(j=0;j!=D[150].length;++j)if(D[150][j].charCodeAt(0)!==65533){e[D[150][j]]=38400+j;d[38400+j]=D[150][j]}D[151]="�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�".split("");for(j=0;j!=D[151].length;++j)if(D[151][j].charCodeAt(0)!==65533){e[D[151][j]]=38656+j;d[38656+j]=D[151][j]}D[152]="�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�".split("");for(j=0;j!=D[152].length;++j)if(D[152][j].charCodeAt(0)!==65533){e[D[152][j]]=38912+j;d[38912+j]=D[152][j]}D[153]="�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�".split("");for(j=0;j!=D[153].length;++j)if(D[153][j].charCodeAt(0)!==65533){e[D[153][j]]=39168+j;d[39168+j]=D[153][j]}D[154]="�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�".split("");for(j=0;j!=D[154].length;++j)if(D[154][j].charCodeAt(0)!==65533){e[D[154][j]]=39424+j;d[39424+j]=D[154][j]}D[155]="�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�".split("");for(j=0;j!=D[155].length;++j)if(D[155][j].charCodeAt(0)!==65533){e[D[155][j]]=39680+j;d[39680+j]=D[155][j]}D[156]="�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�".split("");for(j=0;j!=D[156].length;++j)if(D[156][j].charCodeAt(0)!==65533){e[D[156][j]]=39936+j;d[39936+j]=D[156][j]}D[157]="�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�".split("");for(j=0;j!=D[157].length;++j)if(D[157][j].charCodeAt(0)!==65533){e[D[157][j]]=40192+j;d[40192+j]=D[157][j]}D[158]="�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�".split("");for(j=0;j!=D[158].length;++j)if(D[158][j].charCodeAt(0)!==65533){e[D[158][j]]=40448+j;d[40448+j]=D[158][j]}D[159]="�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�".split("");for(j=0;j!=D[159].length;++j)if(D[159][j].charCodeAt(0)!==65533){e[D[159][j]]=40704+j;d[40704+j]=D[159][j]}D[160]="�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�".split("");for(j=0;j!=D[160].length;++j)if(D[160][j].charCodeAt(0)!==65533){e[D[160][j]]=40960+j;d[40960+j]=D[160][j]}D[161]="�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�".split("");for(j=0;j!=D[161].length;++j)if(D[161][j].charCodeAt(0)!==65533){e[D[161][j]]=41216+j;d[41216+j]=D[161][j]}D[162]="�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������".split("");for(j=0;j!=D[162].length;++j)if(D[162][j].charCodeAt(0)!==65533){e[D[162][j]]=41472+j;d[41472+j]=D[162][j]}D[163]="�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�".split("");for(j=0;j!=D[163].length;++j)if(D[163][j].charCodeAt(0)!==65533){e[D[163][j]]=41728+j;d[41728+j]=D[163][j]}D[164]="�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�".split("");for(j=0;j!=D[164].length;++j)if(D[164][j].charCodeAt(0)!==65533){e[D[164][j]]=41984+j;d[41984+j]=D[164][j]}D[165]="�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������".split(""); for(j=0;j!=D[165].length;++j)if(D[165][j].charCodeAt(0)!==65533){e[D[165][j]]=42240+j;d[42240+j]=D[165][j]}D[166]="�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������".split("");for(j=0;j!=D[166].length;++j)if(D[166][j].charCodeAt(0)!==65533){e[D[166][j]]=42496+j;d[42496+j]=D[166][j]}D[167]="�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������".split("");for(j=0;j!=D[167].length;++j)if(D[167][j].charCodeAt(0)!==65533){e[D[167][j]]=42752+j;d[42752+j]=D[167][j]}D[168]="�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆЪĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�".split("");for(j=0;j!=D[168].length;++j)if(D[168][j].charCodeAt(0)!==65533){e[D[168][j]]=43008+j;d[43008+j]=D[168][j]}D[169]="�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�".split("");for(j=0;j!=D[169].length;++j)if(D[169][j].charCodeAt(0)!==65533){e[D[169][j]]=43264+j;d[43264+j]=D[169][j]}D[170]="�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������".split("");for(j=0;j!=D[170].length;++j)if(D[170][j].charCodeAt(0)!==65533){e[D[170][j]]=43520+j;d[43520+j]=D[170][j]}D[171]="�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������".split("");for(j=0;j!=D[171].length;++j)if(D[171][j].charCodeAt(0)!==65533){e[D[171][j]]=43776+j;d[43776+j]=D[171][j]}D[172]="�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������".split("");for(j=0;j!=D[172].length;++j)if(D[172][j].charCodeAt(0)!==65533){e[D[172][j]]=44032+j;d[44032+j]=D[172][j]}D[173]="�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[173].length;++j)if(D[173][j].charCodeAt(0)!==65533){e[D[173][j]]=44288+j;d[44288+j]=D[173][j]}D[174]="�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[174].length;++j)if(D[174][j].charCodeAt(0)!==65533){e[D[174][j]]=44544+j;d[44544+j]=D[174][j]}D[175]="�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[175].length;++j)if(D[175][j].charCodeAt(0)!==65533){e[D[175][j]]=44800+j;d[44800+j]=D[175][j]}D[176]="�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�".split("");for(j=0;j!=D[176].length;++j)if(D[176][j].charCodeAt(0)!==65533){e[D[176][j]]=45056+j;d[45056+j]=D[176][j]}D[177]="�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�".split("");for(j=0;j!=D[177].length;++j)if(D[177][j].charCodeAt(0)!==65533){e[D[177][j]]=45312+j;d[45312+j]=D[177][j]}D[178]="�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�".split("");for(j=0;j!=D[178].length;++j)if(D[178][j].charCodeAt(0)!==65533){e[D[178][j]]=45568+j;d[45568+j]=D[178][j]}D[179]="�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�".split("");for(j=0;j!=D[179].length;++j)if(D[179][j].charCodeAt(0)!==65533){e[D[179][j]]=45824+j;d[45824+j]=D[179][j]}D[180]="�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�".split("");for(j=0;j!=D[180].length;++j)if(D[180][j].charCodeAt(0)!==65533){e[D[180][j]]=46080+j;d[46080+j]=D[180][j]}D[181]="�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�".split("");for(j=0;j!=D[181].length;++j)if(D[181][j].charCodeAt(0)!==65533){e[D[181][j]]=46336+j;d[46336+j]=D[181][j]}D[182]="�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�".split("");for(j=0;j!=D[182].length;++j)if(D[182][j].charCodeAt(0)!==65533){e[D[182][j]]=46592+j;d[46592+j]=D[182][j]}D[183]="�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�".split("");for(j=0;j!=D[183].length;++j)if(D[183][j].charCodeAt(0)!==65533){e[D[183][j]]=46848+j;d[46848+j]=D[183][j]}D[184]="�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�".split("");for(j=0;j!=D[184].length;++j)if(D[184][j].charCodeAt(0)!==65533){e[D[184][j]]=47104+j;d[47104+j]=D[184][j]}D[185]="�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�".split("");for(j=0;j!=D[185].length;++j)if(D[185][j].charCodeAt(0)!==65533){e[D[185][j]]=47360+j;d[47360+j]=D[185][j]}D[186]="�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�".split("");for(j=0;j!=D[186].length;++j)if(D[186][j].charCodeAt(0)!==65533){e[D[186][j]]=47616+j;d[47616+j]=D[186][j]}D[187]="�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�".split("");for(j=0;j!=D[187].length;++j)if(D[187][j].charCodeAt(0)!==65533){e[D[187][j]]=47872+j;d[47872+j]=D[187][j]}D[188]="�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�".split("");for(j=0;j!=D[188].length;++j)if(D[188][j].charCodeAt(0)!==65533){e[D[188][j]]=48128+j;d[48128+j]=D[188][j]}D[189]="�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�".split("");for(j=0;j!=D[189].length;++j)if(D[189][j].charCodeAt(0)!==65533){e[D[189][j]]=48384+j;d[48384+j]=D[189][j]}D[190]="�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�".split("");for(j=0;j!=D[190].length;++j)if(D[190][j].charCodeAt(0)!==65533){e[D[190][j]]=48640+j;d[48640+j]=D[190][j]}D[191]="�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�".split("");for(j=0;j!=D[191].length;++j)if(D[191][j].charCodeAt(0)!==65533){e[D[191][j]]=48896+j;d[48896+j]=D[191][j]}D[192]="�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�".split("");for(j=0;j!=D[192].length;++j)if(D[192][j].charCodeAt(0)!==65533){e[D[192][j]]=49152+j;d[49152+j]=D[192][j]}D[193]="�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�".split("");for(j=0;j!=D[193].length;++j)if(D[193][j].charCodeAt(0)!==65533){e[D[193][j]]=49408+j;d[49408+j]=D[193][j]}D[194]="�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�".split("");for(j=0;j!=D[194].length;++j)if(D[194][j].charCodeAt(0)!==65533){e[D[194][j]]=49664+j;d[49664+j]=D[194][j]}D[195]="�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�".split("");for(j=0;j!=D[195].length;++j)if(D[195][j].charCodeAt(0)!==65533){e[D[195][j]]=49920+j;d[49920+j]=D[195][j]}D[196]="�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�".split("");for(j=0;j!=D[196].length;++j)if(D[196][j].charCodeAt(0)!==65533){e[D[196][j]]=50176+j;d[50176+j]=D[196][j]}D[197]="�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�".split("");for(j=0;j!=D[197].length;++j)if(D[197][j].charCodeAt(0)!==65533){e[D[197][j]]=50432+j;d[50432+j]=D[197][j]}D[198]="�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�".split("");for(j=0;j!=D[198].length;++j)if(D[198][j].charCodeAt(0)!==65533){e[D[198][j]]=50688+j;d[50688+j]=D[198][j]}D[199]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�".split("");for(j=0;j!=D[199].length;++j)if(D[199][j].charCodeAt(0)!==65533){e[D[199][j]]=50944+j;d[50944+j]=D[199][j]}D[200]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�".split("");for(j=0;j!=D[200].length;++j)if(D[200][j].charCodeAt(0)!==65533){e[D[200][j]]=51200+j;d[51200+j]=D[200][j]}D[202]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�".split("");for(j=0;j!=D[202].length;++j)if(D[202][j].charCodeAt(0)!==65533){e[D[202][j]]=51712+j;d[51712+j]=D[202][j]}D[203]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�".split("");for(j=0;j!=D[203].length;++j)if(D[203][j].charCodeAt(0)!==65533){e[D[203][j]]=51968+j;d[51968+j]=D[203][j]}D[204]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�".split("");for(j=0;j!=D[204].length;++j)if(D[204][j].charCodeAt(0)!==65533){e[D[204][j]]=52224+j;d[52224+j]=D[204][j]}D[205]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�".split("");for(j=0;j!=D[205].length;++j)if(D[205][j].charCodeAt(0)!==65533){e[D[205][j]]=52480+j;d[52480+j]=D[205][j]}D[206]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�".split("");for(j=0;j!=D[206].length;++j)if(D[206][j].charCodeAt(0)!==65533){e[D[206][j]]=52736+j;d[52736+j]=D[206][j]}D[207]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�".split("");for(j=0;j!=D[207].length;++j)if(D[207][j].charCodeAt(0)!==65533){e[D[207][j]]=52992+j;d[52992+j]=D[207][j]}D[208]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�".split("");for(j=0;j!=D[208].length;++j)if(D[208][j].charCodeAt(0)!==65533){e[D[208][j]]=53248+j;d[53248+j]=D[208][j]}D[209]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�".split("");for(j=0;j!=D[209].length;++j)if(D[209][j].charCodeAt(0)!==65533){e[D[209][j]]=53504+j;d[53504+j]=D[209][j]}D[210]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�".split("");for(j=0;j!=D[210].length;++j)if(D[210][j].charCodeAt(0)!==65533){e[D[210][j]]=53760+j;d[53760+j]=D[210][j]}D[211]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�".split("");for(j=0;j!=D[211].length;++j)if(D[211][j].charCodeAt(0)!==65533){e[D[211][j]]=54016+j;d[54016+j]=D[211][j]}D[212]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�".split("");for(j=0;j!=D[212].length;++j)if(D[212][j].charCodeAt(0)!==65533){e[D[212][j]]=54272+j;d[54272+j]=D[212][j]}D[213]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�".split("");for(j=0;j!=D[213].length;++j)if(D[213][j].charCodeAt(0)!==65533){e[D[213][j]]=54528+j;d[54528+j]=D[213][j]}D[214]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�".split("");for(j=0;j!=D[214].length;++j)if(D[214][j].charCodeAt(0)!==65533){e[D[214][j]]=54784+j;d[54784+j]=D[214][j]}D[215]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�".split("");for(j=0;j!=D[215].length;++j)if(D[215][j].charCodeAt(0)!==65533){e[D[215][j]]=55040+j;d[55040+j]=D[215][j]}D[216]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�".split("");for(j=0;j!=D[216].length;++j)if(D[216][j].charCodeAt(0)!==65533){e[D[216][j]]=55296+j;d[55296+j]=D[216][j]}D[217]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�".split("");for(j=0;j!=D[217].length;++j)if(D[217][j].charCodeAt(0)!==65533){e[D[217][j]]=55552+j;d[55552+j]=D[217][j]}D[218]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�".split("");for(j=0;j!=D[218].length;++j)if(D[218][j].charCodeAt(0)!==65533){e[D[218][j]]=55808+j;d[55808+j]=D[218][j]}D[219]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�".split("");for(j=0;j!=D[219].length;++j)if(D[219][j].charCodeAt(0)!==65533){e[D[219][j]]=56064+j;d[56064+j]=D[219][j]}D[220]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�".split("");for(j=0;j!=D[220].length;++j)if(D[220][j].charCodeAt(0)!==65533){e[D[220][j]]=56320+j;d[56320+j]=D[220][j]}D[221]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�".split("");for(j=0;j!=D[221].length;++j)if(D[221][j].charCodeAt(0)!==65533){e[D[221][j]]=56576+j;d[56576+j]=D[221][j]}D[222]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�".split("");for(j=0;j!=D[222].length;++j)if(D[222][j].charCodeAt(0)!==65533){e[D[222][j]]=56832+j;d[56832+j]=D[222][j]}D[223]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�".split("");for(j=0;j!=D[223].length;++j)if(D[223][j].charCodeAt(0)!==65533){e[D[223][j]]=57088+j;d[57088+j]=D[223][j]}D[224]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�".split("");for(j=0;j!=D[224].length;++j)if(D[224][j].charCodeAt(0)!==65533){e[D[224][j]]=57344+j;d[57344+j]=D[224][j]}D[225]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�".split("");for(j=0;j!=D[225].length;++j)if(D[225][j].charCodeAt(0)!==65533){e[D[225][j]]=57600+j;d[57600+j]=D[225][j]}D[226]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�".split("");for(j=0;j!=D[226].length;++j)if(D[226][j].charCodeAt(0)!==65533){e[D[226][j]]=57856+j;d[57856+j]=D[226][j]}D[227]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�".split("");for(j=0;j!=D[227].length;++j)if(D[227][j].charCodeAt(0)!==65533){e[D[227][j]]=58112+j;d[58112+j]=D[227][j]}D[228]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�".split("");for(j=0;j!=D[228].length;++j)if(D[228][j].charCodeAt(0)!==65533){e[D[228][j]]=58368+j;d[58368+j]=D[228][j]}D[229]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�".split("");for(j=0;j!=D[229].length;++j)if(D[229][j].charCodeAt(0)!==65533){e[D[229][j]]=58624+j;d[58624+j]=D[229][j]}D[230]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�".split("");for(j=0;j!=D[230].length;++j)if(D[230][j].charCodeAt(0)!==65533){e[D[230][j]]=58880+j;d[58880+j]=D[230][j]}D[231]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�".split("");for(j=0;j!=D[231].length;++j)if(D[231][j].charCodeAt(0)!==65533){e[D[231][j]]=59136+j;d[59136+j]=D[231][j]}D[232]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�".split("");for(j=0;j!=D[232].length;++j)if(D[232][j].charCodeAt(0)!==65533){e[D[232][j]]=59392+j;d[59392+j]=D[232][j]}D[233]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�".split("");for(j=0;j!=D[233].length;++j)if(D[233][j].charCodeAt(0)!==65533){e[D[233][j]]=59648+j;d[59648+j]=D[233][j]}D[234]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�".split("");for(j=0;j!=D[234].length;++j)if(D[234][j].charCodeAt(0)!==65533){e[D[234][j]]=59904+j;d[59904+j]=D[234][j]}D[235]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�".split("");for(j=0;j!=D[235].length;++j)if(D[235][j].charCodeAt(0)!==65533){e[D[235][j]]=60160+j;d[60160+j]=D[235][j]}D[236]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�".split("");for(j=0;j!=D[236].length;++j)if(D[236][j].charCodeAt(0)!==65533){e[D[236][j]]=60416+j;d[60416+j]=D[236][j]}D[237]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�".split("");for(j=0;j!=D[237].length;++j)if(D[237][j].charCodeAt(0)!==65533){e[D[237][j]]=60672+j;d[60672+j]=D[237][j]}D[238]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�".split("");for(j=0;j!=D[238].length;++j)if(D[238][j].charCodeAt(0)!==65533){e[D[238][j]]=60928+j;d[60928+j]=D[238][j]}D[239]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�".split("");for(j=0;j!=D[239].length;++j)if(D[239][j].charCodeAt(0)!==65533){e[D[239][j]]=61184+j;d[61184+j]=D[239][j]}D[240]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�".split("");for(j=0;j!=D[240].length;++j)if(D[240][j].charCodeAt(0)!==65533){e[D[240][j]]=61440+j;d[61440+j]=D[240][j]}D[241]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�".split("");for(j=0;j!=D[241].length;++j)if(D[241][j].charCodeAt(0)!==65533){e[D[241][j]]=61696+j;d[61696+j]=D[241][j]}D[242]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�".split("");for(j=0;j!=D[242].length;++j)if(D[242][j].charCodeAt(0)!==65533){e[D[242][j]]=61952+j;d[61952+j]=D[242][j]}D[243]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�".split("");for(j=0;j!=D[243].length;++j)if(D[243][j].charCodeAt(0)!==65533){e[D[243][j]]=62208+j;d[62208+j]=D[243][j]}D[244]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�".split("");for(j=0;j!=D[244].length;++j)if(D[244][j].charCodeAt(0)!==65533){e[D[244][j]]=62464+j;d[62464+j]=D[244][j]}D[245]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�".split("");for(j=0;j!=D[245].length;++j)if(D[245][j].charCodeAt(0)!==65533){e[D[245][j]]=62720+j;d[62720+j]=D[245][j]}D[246]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�".split("");for(j=0;j!=D[246].length;++j)if(D[246][j].charCodeAt(0)!==65533){e[D[246][j]]=62976+j;d[62976+j]=D[246][j]}D[247]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�".split("");for(j=0;j!=D[247].length;++j)if(D[247][j].charCodeAt(0)!==65533){e[D[247][j]]=63232+j;d[63232+j]=D[247][j]}D[248]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�".split("");for(j=0;j!=D[248].length;++j)if(D[248][j].charCodeAt(0)!==65533){e[D[248][j]]=63488+j;d[63488+j]=D[248][j]}D[249]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�".split("");for(j=0;j!=D[249].length;++j)if(D[249][j].charCodeAt(0)!==65533){e[D[249][j]]=63744+j;d[63744+j]=D[249][j]}D[250]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�".split(""); for(j=0;j!=D[250].length;++j)if(D[250][j].charCodeAt(0)!==65533){e[D[250][j]]=64e3+j;d[64e3+j]=D[250][j]}D[251]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�".split("");for(j=0;j!=D[251].length;++j)if(D[251][j].charCodeAt(0)!==65533){e[D[251][j]]=64256+j;d[64256+j]=D[251][j]}D[252]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�".split("");for(j=0;j!=D[252].length;++j)if(D[252][j].charCodeAt(0)!==65533){e[D[252][j]]=64512+j;d[64512+j]=D[252][j]}D[253]="�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�".split("");for(j=0;j!=D[253].length;++j)if(D[253][j].charCodeAt(0)!==65533){e[D[253][j]]=64768+j;d[64768+j]=D[253][j]}return{enc:e,dec:d}}();cptable[950]=function(){var d=[],e={},D=[],j;D[0]="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[0].length;++j)if(D[0][j].charCodeAt(0)!==65533){e[D[0][j]]=0+j;d[0+j]=D[0][j]}D[161]="���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�".split("");for(j=0;j!=D[161].length;++j)if(D[161][j].charCodeAt(0)!==65533){e[D[161][j]]=41216+j;d[41216+j]=D[161][j]}D[162]="����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�".split("");for(j=0;j!=D[162].length;++j)if(D[162][j].charCodeAt(0)!==65533){e[D[162][j]]=41472+j;d[41472+j]=D[162][j]}D[163]="����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������".split("");for(j=0;j!=D[163].length;++j)if(D[163][j].charCodeAt(0)!==65533){e[D[163][j]]=41728+j;d[41728+j]=D[163][j]}D[164]="����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�".split("");for(j=0;j!=D[164].length;++j)if(D[164][j].charCodeAt(0)!==65533){e[D[164][j]]=41984+j;d[41984+j]=D[164][j]}D[165]="����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�".split("");for(j=0;j!=D[165].length;++j)if(D[165][j].charCodeAt(0)!==65533){e[D[165][j]]=42240+j;d[42240+j]=D[165][j]}D[166]="����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�".split("");for(j=0;j!=D[166].length;++j)if(D[166][j].charCodeAt(0)!==65533){e[D[166][j]]=42496+j;d[42496+j]=D[166][j]}D[167]="����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�".split("");for(j=0;j!=D[167].length;++j)if(D[167][j].charCodeAt(0)!==65533){e[D[167][j]]=42752+j;d[42752+j]=D[167][j]}D[168]="����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�".split("");for(j=0;j!=D[168].length;++j)if(D[168][j].charCodeAt(0)!==65533){e[D[168][j]]=43008+j;d[43008+j]=D[168][j]}D[169]="����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�".split("");for(j=0;j!=D[169].length;++j)if(D[169][j].charCodeAt(0)!==65533){e[D[169][j]]=43264+j;d[43264+j]=D[169][j]}D[170]="����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�".split("");for(j=0;j!=D[170].length;++j)if(D[170][j].charCodeAt(0)!==65533){e[D[170][j]]=43520+j;d[43520+j]=D[170][j]}D[171]="����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�".split("");for(j=0;j!=D[171].length;++j)if(D[171][j].charCodeAt(0)!==65533){e[D[171][j]]=43776+j;d[43776+j]=D[171][j]}D[172]="����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�".split("");for(j=0;j!=D[172].length;++j)if(D[172][j].charCodeAt(0)!==65533){e[D[172][j]]=44032+j;d[44032+j]=D[172][j]}D[173]="����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�".split("");for(j=0;j!=D[173].length;++j)if(D[173][j].charCodeAt(0)!==65533){e[D[173][j]]=44288+j;d[44288+j]=D[173][j]}D[174]="����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�".split("");for(j=0;j!=D[174].length;++j)if(D[174][j].charCodeAt(0)!==65533){e[D[174][j]]=44544+j;d[44544+j]=D[174][j]}D[175]="����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�".split("");for(j=0;j!=D[175].length;++j)if(D[175][j].charCodeAt(0)!==65533){e[D[175][j]]=44800+j;d[44800+j]=D[175][j]}D[176]="����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�".split("");for(j=0;j!=D[176].length;++j)if(D[176][j].charCodeAt(0)!==65533){e[D[176][j]]=45056+j;d[45056+j]=D[176][j]}D[177]="����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�".split("");for(j=0;j!=D[177].length;++j)if(D[177][j].charCodeAt(0)!==65533){e[D[177][j]]=45312+j;d[45312+j]=D[177][j]}D[178]="����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�".split("");for(j=0;j!=D[178].length;++j)if(D[178][j].charCodeAt(0)!==65533){e[D[178][j]]=45568+j;d[45568+j]=D[178][j]}D[179]="����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�".split("");for(j=0;j!=D[179].length;++j)if(D[179][j].charCodeAt(0)!==65533){e[D[179][j]]=45824+j;d[45824+j]=D[179][j]}D[180]="����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�".split("");for(j=0;j!=D[180].length;++j)if(D[180][j].charCodeAt(0)!==65533){e[D[180][j]]=46080+j;d[46080+j]=D[180][j]}D[181]="����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�".split("");for(j=0;j!=D[181].length;++j)if(D[181][j].charCodeAt(0)!==65533){e[D[181][j]]=46336+j;d[46336+j]=D[181][j]}D[182]="����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�".split("");for(j=0;j!=D[182].length;++j)if(D[182][j].charCodeAt(0)!==65533){e[D[182][j]]=46592+j;d[46592+j]=D[182][j]}D[183]="����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�".split("");for(j=0;j!=D[183].length;++j)if(D[183][j].charCodeAt(0)!==65533){e[D[183][j]]=46848+j;d[46848+j]=D[183][j]}D[184]="����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�".split("");for(j=0;j!=D[184].length;++j)if(D[184][j].charCodeAt(0)!==65533){e[D[184][j]]=47104+j;d[47104+j]=D[184][j]}D[185]="����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�".split("");for(j=0;j!=D[185].length;++j)if(D[185][j].charCodeAt(0)!==65533){e[D[185][j]]=47360+j;d[47360+j]=D[185][j]}D[186]="����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�".split("");for(j=0;j!=D[186].length;++j)if(D[186][j].charCodeAt(0)!==65533){e[D[186][j]]=47616+j;d[47616+j]=D[186][j]}D[187]="����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�".split("");for(j=0;j!=D[187].length;++j)if(D[187][j].charCodeAt(0)!==65533){e[D[187][j]]=47872+j;d[47872+j]=D[187][j]}D[188]="����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�".split("");for(j=0;j!=D[188].length;++j)if(D[188][j].charCodeAt(0)!==65533){e[D[188][j]]=48128+j;d[48128+j]=D[188][j]}D[189]="����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�".split("");for(j=0;j!=D[189].length;++j)if(D[189][j].charCodeAt(0)!==65533){e[D[189][j]]=48384+j;d[48384+j]=D[189][j]}D[190]="����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�".split("");for(j=0;j!=D[190].length;++j)if(D[190][j].charCodeAt(0)!==65533){e[D[190][j]]=48640+j;d[48640+j]=D[190][j]}D[191]="����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�".split("");for(j=0;j!=D[191].length;++j)if(D[191][j].charCodeAt(0)!==65533){e[D[191][j]]=48896+j;d[48896+j]=D[191][j]}D[192]="����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�".split("");for(j=0;j!=D[192].length;++j)if(D[192][j].charCodeAt(0)!==65533){e[D[192][j]]=49152+j;d[49152+j]=D[192][j]}D[193]="����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�".split("");for(j=0;j!=D[193].length;++j)if(D[193][j].charCodeAt(0)!==65533){e[D[193][j]]=49408+j;d[49408+j]=D[193][j]}D[194]="����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�".split("");for(j=0;j!=D[194].length;++j)if(D[194][j].charCodeAt(0)!==65533){e[D[194][j]]=49664+j;d[49664+j]=D[194][j]}D[195]="����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�".split("");for(j=0;j!=D[195].length;++j)if(D[195][j].charCodeAt(0)!==65533){e[D[195][j]]=49920+j;d[49920+j]=D[195][j]}D[196]="����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�".split("");for(j=0;j!=D[196].length;++j)if(D[196][j].charCodeAt(0)!==65533){e[D[196][j]]=50176+j;d[50176+j]=D[196][j]}D[197]="����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�".split("");for(j=0;j!=D[197].length;++j)if(D[197][j].charCodeAt(0)!==65533){e[D[197][j]]=50432+j;d[50432+j]=D[197][j]}D[198]="����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������".split("");for(j=0;j!=D[198].length;++j)if(D[198][j].charCodeAt(0)!==65533){e[D[198][j]]=50688+j;d[50688+j]=D[198][j]}D[201]="����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�".split("");for(j=0;j!=D[201].length;++j)if(D[201][j].charCodeAt(0)!==65533){e[D[201][j]]=51456+j;d[51456+j]=D[201][j]}D[202]="����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�".split("");for(j=0;j!=D[202].length;++j)if(D[202][j].charCodeAt(0)!==65533){e[D[202][j]]=51712+j;d[51712+j]=D[202][j]}D[203]="����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�".split("");for(j=0;j!=D[203].length;++j)if(D[203][j].charCodeAt(0)!==65533){e[D[203][j]]=51968+j;d[51968+j]=D[203][j]}D[204]="����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�".split("");for(j=0;j!=D[204].length;++j)if(D[204][j].charCodeAt(0)!==65533){e[D[204][j]]=52224+j;d[52224+j]=D[204][j]}D[205]="����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�".split("");for(j=0;j!=D[205].length;++j)if(D[205][j].charCodeAt(0)!==65533){e[D[205][j]]=52480+j;d[52480+j]=D[205][j]}D[206]="����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�".split("");for(j=0;j!=D[206].length;++j)if(D[206][j].charCodeAt(0)!==65533){e[D[206][j]]=52736+j;d[52736+j]=D[206][j]}D[207]="����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�".split("");for(j=0;j!=D[207].length;++j)if(D[207][j].charCodeAt(0)!==65533){e[D[207][j]]=52992+j;d[52992+j]=D[207][j]}D[208]="����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�".split("");for(j=0;j!=D[208].length;++j)if(D[208][j].charCodeAt(0)!==65533){e[D[208][j]]=53248+j;d[53248+j]=D[208][j]}D[209]="����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�".split("");for(j=0;j!=D[209].length;++j)if(D[209][j].charCodeAt(0)!==65533){e[D[209][j]]=53504+j;d[53504+j]=D[209][j]}D[210]="����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�".split("");for(j=0;j!=D[210].length;++j)if(D[210][j].charCodeAt(0)!==65533){e[D[210][j]]=53760+j;d[53760+j]=D[210][j]}D[211]="����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�".split("");for(j=0;j!=D[211].length;++j)if(D[211][j].charCodeAt(0)!==65533){e[D[211][j]]=54016+j;d[54016+j]=D[211][j]}D[212]="����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�".split("");for(j=0;j!=D[212].length;++j)if(D[212][j].charCodeAt(0)!==65533){e[D[212][j]]=54272+j;d[54272+j]=D[212][j]}D[213]="����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�".split("");for(j=0;j!=D[213].length;++j)if(D[213][j].charCodeAt(0)!==65533){e[D[213][j]]=54528+j;d[54528+j]=D[213][j]}D[214]="����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�".split("");for(j=0;j!=D[214].length;++j)if(D[214][j].charCodeAt(0)!==65533){e[D[214][j]]=54784+j;d[54784+j]=D[214][j]}D[215]="����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�".split("");for(j=0;j!=D[215].length;++j)if(D[215][j].charCodeAt(0)!==65533){e[D[215][j]]=55040+j;d[55040+j]=D[215][j]}D[216]="����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�".split("");for(j=0;j!=D[216].length;++j)if(D[216][j].charCodeAt(0)!==65533){e[D[216][j]]=55296+j;d[55296+j]=D[216][j]}D[217]="����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�".split("");for(j=0;j!=D[217].length;++j)if(D[217][j].charCodeAt(0)!==65533){e[D[217][j]]=55552+j;d[55552+j]=D[217][j]}D[218]="����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�".split("");for(j=0;j!=D[218].length;++j)if(D[218][j].charCodeAt(0)!==65533){e[D[218][j]]=55808+j;d[55808+j]=D[218][j]}D[219]="����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�".split("");for(j=0;j!=D[219].length;++j)if(D[219][j].charCodeAt(0)!==65533){e[D[219][j]]=56064+j;d[56064+j]=D[219][j]}D[220]="����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�".split("");for(j=0;j!=D[220].length;++j)if(D[220][j].charCodeAt(0)!==65533){e[D[220][j]]=56320+j;d[56320+j]=D[220][j]}D[221]="����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�".split("");for(j=0;j!=D[221].length;++j)if(D[221][j].charCodeAt(0)!==65533){e[D[221][j]]=56576+j;d[56576+j]=D[221][j]}D[222]="����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�".split("");for(j=0;j!=D[222].length;++j)if(D[222][j].charCodeAt(0)!==65533){e[D[222][j]]=56832+j;d[56832+j]=D[222][j]}D[223]="����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�".split("");for(j=0;j!=D[223].length;++j)if(D[223][j].charCodeAt(0)!==65533){e[D[223][j]]=57088+j;d[57088+j]=D[223][j]}D[224]="����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�".split("");for(j=0;j!=D[224].length;++j)if(D[224][j].charCodeAt(0)!==65533){e[D[224][j]]=57344+j;d[57344+j]=D[224][j]}D[225]="����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�".split("");for(j=0;j!=D[225].length;++j)if(D[225][j].charCodeAt(0)!==65533){e[D[225][j]]=57600+j;d[57600+j]=D[225][j]}D[226]="����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�".split("");for(j=0;j!=D[226].length;++j)if(D[226][j].charCodeAt(0)!==65533){e[D[226][j]]=57856+j;d[57856+j]=D[226][j]}D[227]="����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�".split("");for(j=0;j!=D[227].length;++j)if(D[227][j].charCodeAt(0)!==65533){e[D[227][j]]=58112+j;d[58112+j]=D[227][j]}D[228]="����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�".split("");for(j=0;j!=D[228].length;++j)if(D[228][j].charCodeAt(0)!==65533){e[D[228][j]]=58368+j;d[58368+j]=D[228][j]}D[229]="����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�".split("");for(j=0;j!=D[229].length;++j)if(D[229][j].charCodeAt(0)!==65533){e[D[229][j]]=58624+j;d[58624+j]=D[229][j]}D[230]="����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�".split("");for(j=0;j!=D[230].length;++j)if(D[230][j].charCodeAt(0)!==65533){e[D[230][j]]=58880+j;d[58880+j]=D[230][j]}D[231]="����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�".split("");for(j=0;j!=D[231].length;++j)if(D[231][j].charCodeAt(0)!==65533){e[D[231][j]]=59136+j;d[59136+j]=D[231][j]}D[232]="����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�".split("");for(j=0;j!=D[232].length;++j)if(D[232][j].charCodeAt(0)!==65533){e[D[232][j]]=59392+j;d[59392+j]=D[232][j]}D[233]="����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�".split("");for(j=0;j!=D[233].length;++j)if(D[233][j].charCodeAt(0)!==65533){e[D[233][j]]=59648+j;d[59648+j]=D[233][j]}D[234]="����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�".split("");for(j=0;j!=D[234].length;++j)if(D[234][j].charCodeAt(0)!==65533){e[D[234][j]]=59904+j;d[59904+j]=D[234][j]}D[235]="����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�".split("");for(j=0;j!=D[235].length;++j)if(D[235][j].charCodeAt(0)!==65533){e[D[235][j]]=60160+j;d[60160+j]=D[235][j]}D[236]="����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�".split("");for(j=0;j!=D[236].length;++j)if(D[236][j].charCodeAt(0)!==65533){e[D[236][j]]=60416+j;d[60416+j]=D[236][j]}D[237]="����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�".split("");for(j=0;j!=D[237].length;++j)if(D[237][j].charCodeAt(0)!==65533){e[D[237][j]]=60672+j;d[60672+j]=D[237][j]}D[238]="����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�".split("");for(j=0;j!=D[238].length;++j)if(D[238][j].charCodeAt(0)!==65533){e[D[238][j]]=60928+j;d[60928+j]=D[238][j]}D[239]="����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�".split("");for(j=0;j!=D[239].length;++j)if(D[239][j].charCodeAt(0)!==65533){e[D[239][j]]=61184+j;d[61184+j]=D[239][j]}D[240]="����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�".split("");for(j=0;j!=D[240].length;++j)if(D[240][j].charCodeAt(0)!==65533){e[D[240][j]]=61440+j;d[61440+j]=D[240][j]}D[241]="����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�".split("");for(j=0;j!=D[241].length;++j)if(D[241][j].charCodeAt(0)!==65533){e[D[241][j]]=61696+j;d[61696+j]=D[241][j]}D[242]="����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�".split(""); -for(j=0;j!=D[242].length;++j)if(D[242][j].charCodeAt(0)!==65533){e[D[242][j]]=61952+j;d[61952+j]=D[242][j]}D[243]="����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split("");for(j=0;j!=D[243].length;++j)if(D[243][j].charCodeAt(0)!==65533){e[D[243][j]]=62208+j;d[62208+j]=D[243][j]}D[244]="����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split("");for(j=0;j!=D[244].length;++j)if(D[244][j].charCodeAt(0)!==65533){e[D[244][j]]=62464+j;d[62464+j]=D[244][j]}D[245]="����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split("");for(j=0;j!=D[245].length;++j)if(D[245][j].charCodeAt(0)!==65533){e[D[245][j]]=62720+j;d[62720+j]=D[245][j]}D[246]="����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split("");for(j=0;j!=D[246].length;++j)if(D[246][j].charCodeAt(0)!==65533){e[D[246][j]]=62976+j;d[62976+j]=D[246][j]}D[247]="����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split("");for(j=0;j!=D[247].length;++j)if(D[247][j].charCodeAt(0)!==65533){e[D[247][j]]=63232+j;d[63232+j]=D[247][j]}D[248]="����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split("");for(j=0;j!=D[248].length;++j)if(D[248][j].charCodeAt(0)!==65533){e[D[248][j]]=63488+j;d[63488+j]=D[248][j]}D[249]="����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split("");for(j=0;j!=D[249].length;++j)if(D[249][j].charCodeAt(0)!==65533){e[D[249][j]]=63744+j;d[63744+j]=D[249][j]}return{enc:e,dec:d}}();cptable[1250]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1251]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1252]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1253]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1254]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1255]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1256]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1257]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1258]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1e4]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10006]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10007]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10029]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10079]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10081]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();if(typeof module!=="undefined"&&module.exports)module.exports=cptable;(function(root,factory){"use strict";if(typeof cptable==="undefined"){if(typeof require!=="undefined"){var cpt=require("./cpt"+"able");if(typeof module!=="undefined"&&module.exports)module.exports=factory(cpt);else root.cptable=factory(cpt)}else throw new Error("cptable not found")}else cptable=factory(cptable)})(this,function(cpt){"use strict";var magic={1200:"utf16le",1201:"utf16be",12000:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65000:"utf7",65001:"utf8"};var sbcs_cache=[874,1250,1251,1252,1253,1254,1255,1256,1e4];var dbcs_cache=[932,936,949,950];var magic_cache=[65001];var magic_decode={};var magic_encode={};var cpecache={};var cpdcache={};var sfcc=function sfcc(x){return String.fromCharCode(x)};var cca=function cca(x){return x.charCodeAt(0)};if(typeof Buffer!=="undefined"){var mdl=1024,mdb=new Buffer(mdl);var make_EE=function make_EE(E){var EE=new Buffer(65536);for(var i=0;i<65536;++i)EE[i]=0;var keys=Object.keys(E),len=keys.length;for(var ee=0,e=keys[ee];ee>10&1023)];out[j++]=EE[56320+(w&1023)]}}}out.length=j}else{out=Buffer(len);for(i=0;i>8}return function sbcs_d(data){var len=data.length,i=0,j;if(2*len>mdl){mdl=2*len;mdb=new Buffer(mdl)}if(Buffer.isBuffer(data)){for(i=0;i>8}return function dbcs_e(data,ofmt){var len=data.length,out=new Buffer(2*len),i,j,jj,k,D;if(typeof data==="string"){for(i=k=0;i0)out[k++]=EE[j]}out.length=k}else if(Buffer.isBuffer(data)){for(i=k=0;i0)out[k++]=EE[j]}else{jj=j-65536;j=2*(55296+(jj>>10&1023));out[k++]=EE[j+1]||EE[j];if(EE[j+1]>0)out[k++]=EE[j];j=2*(56320+(jj&1023));out[k++]=EE[j+1]||EE[j];if(EE[j+1]>0)out[k++]=EE[j]}}out.length=k}else{for(i=k=0;i0)out[k++]=EE[j]}}if(ofmt===undefined||ofmt==="buf")return out;if(ofmt!=="arr")return out.toString("binary");return[].slice.call(out)}};var dbcs_decode=function make_dbcs_decode(cp){var D=cpt[cp].dec;var DD=new Buffer(131072),d=0,c,w=0,j=0,i=0;for(i=0;i<65536;++i){DD[2*i]=255;DD[2*i+1]=253}for(d=0;d>8}return function dbcs_d(data){var len=data.length,out=new Buffer(2*len),i,j,k=0;if(Buffer.isBuffer(data)){for(i=0;imdl){mdl=4*len;mdb=new Buffer(mdl)}mdb.length=0;var i=0;if(len>=3&&data[0]==239)if(data[1]==187&&data[2]==191)i=3;for(var j=1,k=0,D=0;i>8}else{w-=65536;ww=55296+(w>>10&1023);w=56320+(w&1023);mdb[k++]=ww&255;mdb[k++]=ww>>>8;mdb[k++]=w&255;mdb[k++]=w>>>8&255}}mdb.length=k;return mdb.toString("ucs2")};magic_encode[65001]=function utf8_e(data,ofmt){var len=data.length,w=0,ww=0,j=0;var direct=typeof data==="string";if(4*len>mdl){mdl=4*len;mdb=new Buffer(mdl)}for(var i=0;i>6);mdb[j++]=128+(w&63)}else if(w>=55296&&w<=57343){w-=55296;++i;ww=(direct?data.charCodeAt(i):data[i].charCodeAt(0))-56320+(w<<10);mdb[j++]=240+(ww>>>18&7);mdb[j++]=144+(ww>>>12&63);mdb[j++]=128+(ww>>>6&63);mdb[j++]=128+(ww&63)}else{mdb[j++]=224+(w>>12);mdb[j++]=128+(w>>6&63);mdb[j++]=128+(w&63)}}mdb.length=j;if(ofmt===undefined||ofmt==="buf")return mdb;if(ofmt!=="arr")return mdb.toString("binary");return[].slice.call(mdb)}}var encache=function encache(){if(typeof Buffer!=="undefined"){if(cpdcache[sbcs_cache[0]])return;var i,s;for(i=0;i255){out[j]=w>>8;out[++j]=w&255}}else if(M=magic[cp])switch(M){case"utf8":if(typeof Buffer!=="undefined"&&typeof data==="string"){out=new Buffer(data,M);j=out.length;break}for(i=0;i>6);out[++j]=128+(w&63)}else if(w>=55296&&w<=57343){w-=55296;ww=data[++i].charCodeAt(0)-56320+(w<<10);out[j]=240+(ww>>>18&7);out[++j]=144+(ww>>>12&63);out[++j]=128+(ww>>>6&63);out[++j]=128+(ww&63)}else{out[j]=224+(w>>12);out[++j]=128+(w>>6&63);out[++j]=128+(w&63)}}break;case"ascii":if(typeof Buffer!=="undefined"&&typeof data==="string"){out=new Buffer(data,M);j=out.length;break}for(i=0;i>8}break;case"utf16be":for(i=0;i>8;out[j++]=w&255}break;case"utf32le":for(i=0;i=55296&&w<=57343)w=65536+(w-55296<<10)+(data[++i].charCodeAt(0)-56320);out[j++]=w&255;w>>=8;out[j++]=w&255;w>>=8;out[j++]=w&255;w>>=8;out[j++]=w&255}break;case"utf32be":for(i=0;i=55296&&w<=57343)w=65536+(w-55296<<10)+(data[++i].charCodeAt(0)-56320);out[j+3]=w&255;w>>=8;out[j+2]=w&255;w>>=8;out[j+1]=w&255;w>>=8;out[j]=w&255;w>>=8;j+=4}break;case"utf7":for(i=0;i-1){out[j++]=c.charCodeAt(0);continue}tt=encode(1201,c);out[j++]=43;out[j++]=BM.charCodeAt(tt[0]>>2);out[j++]=BM.charCodeAt(((tt[0]&3)<<4)+((tt[1]||0)>>4));out[j++]=BM.charCodeAt(((tt[1]&15)<<2)+((tt[2]||0)>>6));out[j++]=45}break;default:throw new Error("Unsupported magic: "+cp+" "+magic[cp])}else throw new Error("Unrecognized CP: "+cp);out.length=j;if(typeof Buffer==="undefined")return ofmt=="str"?out.map(sfcc).join(""):out;if(ofmt===undefined||ofmt==="buf")return out;if(ofmt!=="arr")return out.toString("binary");return[].slice.call(out)};var decode=function decode(cp,data){var F;if(F=cpdcache[cp])return F(data);var len=data.length,out=new Array(len),w,i,j=1,k=0,ww;var C=cpt[cp],D,M;if(C&&(D=C.dec)){if(typeof data==="string")data=data.split("").map(cca);for(i=0;i=3&&data[0]==239)if(data[1]==187&&data[2]==191)i=3;for(;i>10&1023);w=56320+(w&1023);out[k++]=String.fromCharCode(ww);out[k++]=String.fromCharCode(w)}}break;case"ascii":if(typeof Buffer!=="undefined"&&Buffer.isBuffer(data))return data.toString(M);for(i=0;i=2&&data[0]==255)if(data[1]==254)i=2;if(typeof Buffer!=="undefined"&&Buffer.isBuffer(data))return data.toString(M);j=2;for(;i=2&&data[0]==254)if(data[1]==255)i=2;j=2;for(;i=4&&data[0]==255)if(data[1]==254&&data[2]==0&&data[3]==0)i=4;j=4;for(;i65535){w-=65536;out[k++]=String.fromCharCode(55296+(w>>10&1023));out[k++]=String.fromCharCode(56320+(w&1023))}else out[k++]=String.fromCharCode(w)}break;case"utf32be":i=0;if(len>=4&&data[3]==255)if(data[2]==254&&data[1]==0&&data[0]==0)i=4;j=4;for(;i65535){w-=65536;out[k++]=String.fromCharCode(55296+(w>>10&1023));out[k++]=String.fromCharCode(56320+(w&1023))}else out[k++]=String.fromCharCode(w)}break;case"utf7":i=0;if(len>=4&&data[0]==43&&data[1]==47&&data[2]==118){if(len>=5&&data[3]==56&&data[4]==45)i=5;else if(data[3]==56||data[3]==57||data[3]==43||data[3]==47)i=4}for(;i>4;tt.push(c1);e3=BM.indexOf(String.fromCharCode(data[i+l++]));if(e3===-1)break;c2=(e2&15)<<4|e3>>2;tt.push(c2);e4=BM.indexOf(String.fromCharCode(data[i+l++]));if(e4===-1)break;c3=(e3&3)<<6|e4;if(e4<64)tt.push(c3)}if((tt.length&1)===1)tt.length--;o64=decode(1201,tt);for(l=0;l=0)o+=x.charAt(i--);return o}function fill(c,l){var o="";while(o.length=d?t:fill("0",d-t.length)+t}function pad_(v,d){var t=""+v;return t.length>=d?t:fill(" ",d-t.length)+t}function rpad_(v,d){var t=""+v;return t.length>=d?t:t+fill(" ",d-t.length)}function pad0r1(v,d){var t=""+Math.round(v);return t.length>=d?t:fill("0",d-t.length)+t}function pad0r2(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}var p2_32=Math.pow(2,32);function pad0r(v,d){if(v>p2_32||v<-p2_32)return pad0r1(v,d);var i=Math.round(v);return pad0r2(i,d)}function isgeneral(s,i){return s.length>=7+i&&(s.charCodeAt(i)|32)===103&&(s.charCodeAt(i+1)|32)===101&&(s.charCodeAt(i+2)|32)===110&&(s.charCodeAt(i+3)|32)===101&&(s.charCodeAt(i+4)|32)===114&&(s.charCodeAt(i+5)|32)===97&&(s.charCodeAt(i+6)|32)===108}var opts_fmt=[["date1904",0],["output",""],["WTF",false]];function fixopts(o){for(var y=0;y!=opts_fmt.length;++y)if(o[opts_fmt[y][0]]===undefined)o[opts_fmt[y][0]]=opts_fmt[y][1]}SSF.opts=opts_fmt;var table_fmt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "',65535:"General"};var days=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var months=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function frac(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){Q=Q_1;P=P_1}if(Q>D){Q=Q_2;P=P_2}if(!mixed)return[0,sgn*P,Q];if(Q===0)throw"Unexpected state: "+P+" "+P_1+" "+P_2+" "+Q+" "+Q_1+" "+Q_2;var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}function general_fmt_int(v,opts){return""+v}SSF._general_int=general_fmt_int;var general_fmt_num=function make_general_fmt_num(){var gnr1=/\.(\d*[1-9])0+$/,gnr2=/\.0*$/,gnr4=/\.(\d*[1-9])0+/,gnr5=/\.0*[Ee]/,gnr6=/(E[+-])(\d)$/;function gfn2(v){var w=v<0?12:11;var o=gfn5(v.toFixed(12));if(o.length<=w)return o;o=v.toPrecision(10);if(o.length<=w)return o;return v.toExponential(5)}function gfn3(v){var o=v.toFixed(11).replace(gnr1,".$1");if(o.length>(v<0?12:11))o=v.toPrecision(6);return o}function gfn4(o){for(var i=0;i!=o.length;++i)if((o.charCodeAt(i)|32)===101)return o.replace(gnr4,".$1").replace(gnr5,"E").replace("e","E").replace(gnr6,"$10$2");return o}function gfn5(o){return o.indexOf(".")>-1?o.replace(gnr2,"").replace(gnr1,".$1"):o}return function general_fmt_num(v,opts){var V=Math.floor(Math.log(Math.abs(v))*Math.LOG10E),o;if(V>=-4&&V<=-1)o=v.toPrecision(10+V);else if(Math.abs(V)<=9)o=gfn2(v);else if(V===10)o=v.toFixed(10).substr(0,12);else o=gfn3(v);return gfn5(gfn4(o))}}();SSF._general_num=general_fmt_num;function general_fmt(v,opts){switch(typeof v){case"string":return v;case"boolean":return v?"TRUE":"FALSE";case"number":return(v|0)===v?general_fmt_int(v,opts):general_fmt_num(v,opts)}throw new Error("unsupported value in General format: "+v)}SSF._general=general_fmt;function fix_hijri(date,o){return 0}function parse_date_code(v,opts,b2){if(v>2958465||v<0)return null;var date=v|0,time=Math.floor(86400*(v-date)),dow=0;var dout=[];var out={D:date,T:time,u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(out.u)<1e-6)out.u=0;fixopts(opts!=null?opts:opts=[]);if(opts.date1904)date+=1462;if(out.u>.999){out.u=0;if(++time==86400){time=0;++date}}if(date===60){dout=b2?[1317,10,29]:[1900,2,29];dow=3}else if(date===0){dout=b2?[1317,8,29]:[1900,1,0];dow=6}else{if(date>60)--date;var d=new Date(1900,0,1);d.setDate(d.getDate()+date-1);dout=[d.getFullYear(),d.getMonth()+1,d.getDate()];dow=d.getDay();if(date<60)dow=(dow+6)%7;if(b2)dow=fix_hijri(d,dout)}out.y=dout[0];out.m=dout[1];out.d=dout[2];out.S=time%60;time=Math.floor(time/60);out.M=time%60;time=Math.floor(time/60);out.H=time;out.q=dow;return out}SSF.parse_date_code=parse_date_code;function write_date(type,fmt,val,ss0){var o="",ss=0,tt=0,y=val.y,out,outl=0;switch(type){case 98:y=val.y+543;case 121:switch(fmt.length){case 1:case 2:out=y%100;outl=2;break;default:out=y%1e4;outl=4;break}break;case 109:switch(fmt.length){case 1:case 2:out=val.m;outl=fmt.length;break;case 3:return months[val.m-1][1];case 5:return months[val.m-1][0];default:return months[val.m-1][2]}break;case 100:switch(fmt.length){case 1:case 2:out=val.d;outl=fmt.length;break;case 3:return days[val.q][0];default:return days[val.q][1]}break;case 104:switch(fmt.length){case 1:case 2:out=1+(val.H+11)%12;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 72:switch(fmt.length){case 1:case 2:out=val.H;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 77:switch(fmt.length){case 1:case 2:out=val.M;outl=fmt.length;break;default:throw"bad minute format: "+fmt}break;case 115:if(val.u===0)switch(fmt){case"s":case"ss":return pad0(val.S,fmt.length);case".0":case".00":case".000":}switch(fmt){case"s":case"ss":case".0":case".00":case".000":if(ss0>=2)tt=ss0===3?1e3:100;else tt=ss0===1?10:1;ss=Math.round(tt*(val.S+val.u));if(ss>=60*tt)ss=0;if(fmt==="s")return ss===0?"0":""+ss/tt;o=pad0(ss,2+ss0);if(fmt==="ss")return o.substr(0,2);return"."+o.substr(2,fmt.length-1);default:throw"bad second format: "+fmt}case 90:switch(fmt){case"[h]":case"[hh]":out=val.D*24+val.H;break;case"[m]":case"[mm]":out=(val.D*24+val.H)*60+val.M;break;case"[s]":case"[ss]":out=((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u);break;default:throw"bad abstime format: "+fmt}outl=fmt.length===3?1:2;break;case 101:out=y;outl=1}if(outl>0)return pad0(out,outl);else return""}function commaify(s){if(s.length<=3)return s;var j=s.length%3,o=s.substr(0,j);for(;j!=s.length;j+=3)o+=(o.length>0?",":"")+s.substr(j,3);return o}var write_num=function make_write_num(){var pct1=/%/g;function write_num_pct(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_cm(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_exp(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(o.indexOf("e")===-1){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);while(o.substr(0,2)==="0."){o=o[0]+o.substr(2,period)+"."+o.substr(2+period);o=o.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}var frac1=/# (\?+)( ?)\/( ?)(\d+)/;function write_num_f1(r,aval,sign){var den=parseInt(r[4]),rr=Math.round(aval*den),base=Math.floor(rr/den);var myn=rr-base*den,myd=den;return sign+(base===0?"":""+base)+" "+(myn===0?fill(" ",r[1].length+1+r[4].length):pad_(myn,r[1].length)+r[2]+"/"+r[3]+pad0(myd,r[4].length))}function write_num_f2(r,aval,sign){return sign+(aval===0?"":""+aval)+fill(" ",r[1].length+2+r[4].length)}var dec1=/^#*0*\.(0+)/;var closeparen=/\).*[0#]/;var phone=/\(###\) ###\\?-####/;function hashq(str){var o="",cc;for(var i=0;i!=str.length;++i)switch(cc=str.charCodeAt(i)){case 35:break;case 63:o+=" ";break;case 48:o+="0";break;default:o+=String.fromCharCode(cc)}return o}function rnd(val,d){var dd=Math.pow(10,d);return""+Math.round(val*dd)/dd}function dec(val,d){return Math.round((val-Math.floor(val))*Math.pow(10,d))}function flr(val){if(val<2147483647&&val>-2147483648)return""+(val>=0?val|0:val-1|0);return""+Math.floor(val)}function write_num_flt(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_flt("n",ffmt,val);return"("+write_num_flt("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_flt(type,fmt.substr(fmt[1]==" "?2:1),val); -var o,oo;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0r(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=pad0r(val,0);if(o==="0")o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f1(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0r(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=rnd(val,r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+rnd(aval,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(pad0r(aval,0));if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_flt(type,fmt,-val):commaify(""+Math.floor(val))+"."+pad0(dec(val,r[1].length),r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_flt(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=0)return write_num_int("n",ffmt,val);return"("+write_num_int("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm2(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct2(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp2(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_int(type,fmt.substr(fmt[1]==" "?2:1),val);var o;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=""+val;if(val===0)o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f2(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=(""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+(""+aval).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(""+aval);if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val)+"."+fill("0",r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_int(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_int(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=12?"P":"A";q.t="T";hr="h";i+=3}else if(fmt.substr(i,5)==="AM/PM"){if(dt!=null)q.v=dt.H>=12?"PM":"AM";q.t="T";i+=5;hr="h"}else{q.t="t";++i}if(dt==null&&q.t==="T")return"";out[out.length]=q;lst=c;break;case"[":o=c;while(fmt[i++]!=="]"&&i-1||c=="\\"&&fmt[i+1]=="-"&&"0#".indexOf(fmt[i+2])>-1)o+=c;out[out.length]={t:"n",v:o};break;case"?":o=c;while(fmt[++i]===c)o+=c;q={t:c,v:o};out[out.length]=q;lst=c;break;case"*":++i;if(fmt[i]==" "||fmt[i]=="*")++i;break;case"(":case")":out[out.length]={t:flen===1?"t":c,v:c};++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=c;while("0123456789".indexOf(fmt[++i])>-1)o+=fmt[i];out[out.length]={t:"D",v:o};break;case" ":out[out.length]={t:c,v:c};++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"t",v:c};++i;break}}var bt=0,ss0=0,ssm;for(i=out.length-1,lst="t";i>=0;--i){switch(out[i].t){case"h":case"H":out[i].t=hr;lst="h";if(bt<1)bt=1;break;case"s":if(ssm=out[i].v.match(/\.0+$/))ss0=Math.max(ss0,ssm[0].length-1);if(bt<3)bt=3;case"d":case"y":case"M":case"e":lst=out[i].t;break;case"m":if(lst==="s"){out[i].t="M";if(bt<2)bt=2}break;case"X":if(out[i].v==="B2");break;case"Z":if(bt<1&&out[i].v.match(/[Hh]/))bt=1;if(bt<2&&out[i].v.match(/[Mm]/))bt=2;if(bt<3&&out[i].v.match(/[Ss]/))bt=3}}switch(bt){case 0:break;case 1:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}if(dt.M>=60){dt.M=0;++dt.H}break;case 2:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}break}var nstr="",jj;for(i=0;i-1||out[jj].v===" "&&out[jj+1]!=null&&out[jj+1].t=="?"))){out[i].v+=out[jj].v;out[jj]=undefined;++jj}nstr+=out[i].v;i=jj-1;break;case"G":out[i].t="t";out[i].v=general_fmt(v,opts);break}}var vv="",myv,ostr;if(nstr.length>0){myv=v<0&&nstr.charCodeAt(0)===45?-v:v;ostr=write_num(nstr.charCodeAt(0)===40?"(":"n",nstr,myv);jj=ostr.length-1;var decpt=out.length;for(i=0;i-1){decpt=i;break}var lasti=out.length;if(decpt===out.length&&ostr.indexOf("E")===-1){for(i=out.length-1;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;if(jj>=out[i].v.length-1){jj-=out[i].v.length;out[i].v=ostr.substr(jj+1,out[i].v.length)}else if(jj<0)out[i].v="";else{out[i].v=ostr.substr(0,jj+1);jj=-1}out[i].t="t";lasti=i}if(jj>=0&&lasti=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")-1:out[i].v.length-1;vv=out[i].v.substr(j+1);for(;j>=0;--j){if(jj>=0&&(out[i].v[j]==="0"||out[i].v[j]==="#"))vv=ostr[jj--]+vv}out[i].v=vv;out[i].t="t";lasti=i}if(jj>=0&&lasti-1&&i===decpt?out[i].v.indexOf(".")+1:0;vv=out[i].v.substr(0,j);for(;j-1){myv=flen>1&&v<0&&i>0&&out[i-1].v==="-"?-v:v;out[i].v=write_num(out[i].t,out[i].v,myv);out[i].t="t"}var retval="";for(i=0;i!==out.length;++i)if(out[i]!=null)retval+=out[i].v;return retval}SSF._eval=eval_fmt;var cfregex=/\[[=<>]/;var cfregex2=/\[([=<>]*)(-?\d+\.?\d*)\]/;function chkcond(v,rr){if(rr==null)return false;var thresh=parseFloat(rr[2]);switch(rr[1]){case"=":if(v==thresh)return true;break;case">":if(v>thresh)return true;break;case"<":if(v":if(v!=thresh)return true;break;case">=":if(v>=thresh)return true;break;case"<=":if(v<=thresh)return true;break}return false}function choose_fmt(f,v){var fmt=split_fmt(f);var l=fmt.length,lat=fmt[l-1].indexOf("@");if(l<4&&lat>-1)--l;if(fmt.length>4)throw"cannot find right format for |"+fmt+"|";if(typeof v!=="number")return[4,fmt.length===4||lat>-1?fmt[fmt.length-1]:"@"];switch(fmt.length){case 1:fmt=lat>-1?["General","General","General",fmt[0]]:[fmt[0],fmt[0],fmt[0],"@"];break;case 2:fmt=lat>-1?[fmt[0],fmt[0],fmt[0],fmt[1]]:[fmt[0],fmt[1],fmt[0],"@"];break;case 3:fmt=lat>-1?[fmt[0],fmt[1],fmt[0],fmt[2]]:[fmt[0],fmt[1],fmt[2],"@"];break;case 4:break}var ff=v>0?fmt[0]:v<0?fmt[1]:fmt[2];if(fmt[0].indexOf("[")===-1&&fmt[1].indexOf("[")===-1)return[l,ff];if(fmt[0].match(cfregex)!=null||fmt[1].match(cfregex)!=null){var m1=fmt[0].match(cfregex2);var m2=fmt[1].match(cfregex2);return chkcond(v,m1)?[l,fmt[0]]:chkcond(v,m2)?[l,fmt[1]]:[l,fmt[m1!=null&&m2!=null?2:1]]}return[l,ff]}function format(fmt,v,o){fixopts(o!=null?o:o=[]);var sfmt="";switch(typeof fmt){case"string":sfmt=fmt;break;case"number":sfmt=(o.table!=null?o.table:table_fmt)[fmt];break}if(isgeneral(sfmt,0))return general_fmt(v,o);var f=choose_fmt(sfmt,v);if(isgeneral(f[1]))return general_fmt(v,o);if(v===true)v="TRUE";else if(v===false)v="FALSE";else if(v===""||v==null)return"";return eval_fmt(f[1],v,o,f[0])}SSF._table=table_fmt;SSF.load=function load_entry(fmt,idx){table_fmt[idx]=fmt};SSF.format=format;SSF.get_table=function get_table(){return table_fmt};SSF.load_table=function load_table(tbl){for(var i=0;i!=392;++i)if(tbl[i]!==undefined)SSF.load(tbl[i],i)}};make_ssf(SSF);function isval(x){return x!==undefined&&x!==null}function keys(o){return Object.keys(o)}function evert_key(obj,key){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]][key]]=K[i];return o}function evert(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=K[i];return o}function evert_num(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=parseInt(K[i],10);return o}function evert_arr(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i){if(o[obj[K[i]]]==null)o[obj[K[i]]]=[];o[obj[K[i]]].push(K[i])}return o}function datenum(v,date1904){if(date1904)v+=1462;var epoch=Date.parse(v);return(epoch+22091616e5)/(24*60*60*1e3)}function cc2str(arr){var o="";for(var i=0;i!=arr.length;++i)o+=String.fromCharCode(arr[i]);return o}var has_buf=typeof Buffer!=="undefined";function getdata(data){if(!data)return null;if(data.name.substr(-4)===".bin"){if(data.data)return char_codes(data.data);if(data.asNodeBuffer&&has_buf)return data.asNodeBuffer();if(data._data&&data._data.getContent)return Array.prototype.slice.call(data._data.getContent())}else{if(data.data)return data.name.substr(-4)!==".bin"?debom_xml(data.data):char_codes(data.data);if(data.asNodeBuffer&&has_buf)return debom_xml(data.asNodeBuffer().toString("binary"));if(data.asBinary)return debom_xml(data.asBinary());if(data._data&&data._data.getContent)return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)))}return null}function safegetzipfile(zip,file){var f=file;if(zip.files[f])return zip.files[f];f=file.toLowerCase();if(zip.files[f])return zip.files[f];f=f.replace(/\//g,"\\");if(zip.files[f])return zip.files[f];return null}function getzipfile(zip,file){var o=safegetzipfile(zip,file);if(o==null)throw new Error("Cannot find file "+file+" in zip");return o}function getzipdata(zip,file,safe){if(!safe)return getdata(getzipfile(zip,file));if(!file)return null;try{return getzipdata(zip,file)}catch(e){return null}}var _fs,jszip;if(typeof JSZip!=="undefined")jszip=JSZip;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){if(has_buf&&typeof jszip==="undefined")jszip=require("js"+"zip");if(typeof jszip==="undefined")jszip=require("./js"+"zip").JSZip;_fs=require("f"+"s")}}var attregexg=/\b[\w:]+=["'][^"]*['"]/g;var tagregex=/<[^>]*>/g;var nsregex=/<\w*:/,nsregex2=/<(\/?)\w+:/;function parsexmltag(tag,skip_root){var z=[];var eq=0,c=0;for(;eq!==tag.length;++eq)if((c=tag.charCodeAt(eq))===32||c===10||c===13)break;if(!skip_root)z[0]=tag.substr(0,eq);if(eq===tag.length)return z;var m=tag.match(attregexg),j=0,w="",v="",i=0,q="",cc="";if(m)for(i=0;i!=m.length;++i){cc=m[i];for(c=0;c!=cc.length;++c)if(cc.charCodeAt(c)===61)break;q=cc.substr(0,c);v=cc.substring(c+2,cc.length-1);for(j=0;j!=q.length;++j)if(q.charCodeAt(j)===58)break;if(j===q.length)z[q]=v;else z[(j===5&&q.substr(0,5)==="xmlns"?"xmlns":"")+q.substr(j+1)]=v}return z}function strip_ns(x){return x.replace(nsregex2,"<$1")}var encodings={""":'"',"'":"'",">":">","<":"<","&":"&"};var rencoding=evert(encodings);var rencstr="&<>'\"".split("");var encregex=/&[a-z]*;/g,coderegex=/_x([\da-fA-F]+)_/g;function unescapexml(text){var s=text+"";return s.replace(encregex,function($$){return encodings[$$]}).replace(coderegex,function(m,c){return String.fromCharCode(parseInt(c,16))})}var decregex=/[&<>'"]/g,charegex=/[\u0000-\u0008\u000b-\u001f]/g;function escapexml(text){var s=text+"";return s.replace(decregex,function(y){return rencoding[y]}).replace(charegex,function(s){return"_x"+("000"+s.charCodeAt(0).toString(16)).substr(-4)+"_"})}function parsexmlbool(value,tag){switch(value){case"1":case"true":case"TRUE":return true;default:return false}}var utf8read=function utf8reada(orig){var out="",i=0,c=0,d=0,e=0,f=0,w=0;while(i191&&c<224){out+=String.fromCharCode((c&31)<<6|d&63);continue}e=orig.charCodeAt(i++);if(c<240){out+=String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);continue}f=orig.charCodeAt(i++);w=((c&7)<<18|(d&63)<<12|(e&63)<<6|f&63)-65536;out+=String.fromCharCode(55296+(w>>>10&1023));out+=String.fromCharCode(56320+(w&1023))}return out};if(has_buf){var utf8readb=function utf8readb(data){var out=new Buffer(2*data.length),w,i,j=1,k=0,ww=0,c;for(i=0;i>>10&1023);w=56320+(w&1023)}if(ww!==0){out[k++]=ww&255;out[k++]=ww>>>8;ww=0}out[k++]=w%256;out[k++]=w>>>8}out.length=k;return out.toString("ucs2")};var corpus="foo bar baz☃🍣";if(utf8read(corpus)==utf8readb(corpus))utf8read=utf8readb;var utf8readc=function utf8readc(data){return Buffer(data,"binary").toString("utf8")};if(utf8read(corpus)==utf8readc(corpus))utf8read=utf8readc}var matchtag=function(){var mtcache={};return function matchtag(f,g){var t=f+"|"+g;if(mtcache[t]!==undefined)return mtcache[t];return mtcache[t]=new RegExp("<(?:\\w+:)?"+f+'(?: xml:space="preserve")?(?:[^>]*)>([^☃]*)",g||"")}}();var vtregex=function(){var vt_cache={};return function vt_regex(bt){if(vt_cache[bt]!==undefined)return vt_cache[bt];return vt_cache[bt]=new RegExp("(.*?)","g")}}();var vtvregex=/<\/?vt:variant>/g,vtmregex=/]*)>(.*)"+g+""}function wxt_helper(h){return keys(h).map(function(k){return" "+k+'="'+h[k]+'"'}).join("")}function writextag(f,g,h){return"<"+f+(isval(h)?wxt_helper(h):"")+(isval(g)?(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+""}function write_w3cdtf(d,t){try{return d.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}}function write_vt(s){switch(typeof s){case"string":return writextag("vt:lpwstr",s);case"number":return writextag((s|0)==s?"vt:i4":"vt:r8",String(s));case"boolean":return writextag("vt:bool",s?"true":"false")}if(s instanceof Date)return writextag("vt:filetime",write_w3cdtf(s));throw new Error("Unable to serialize "+s)}var XML_HEADER='\r\n';var XMLNS={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};XMLNS.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function readIEEE754(buf,idx,isLE,nl,ml){if(isLE===undefined)isLE=true;if(!nl)nl=8;if(!ml&&nl===8)ml=52;var e,m,el=nl*8-ml-1,eMax=(1<>1;var bits=-7,d=isLE?-1:1,i=isLE?nl-1:0,s=buf[idx+i];i+=d;e=s&(1<<-bits)-1;s>>>=-bits;bits+=el;for(;bits>0;e=e*256+buf[idx+i],i+=d,bits-=8);m=e&(1<<-bits)-1;e>>>=-bits;bits+=ml;for(;bits>0;m=m*256+buf[idx+i],i+=d,bits-=8);if(e===eMax)return m?NaN:(s?-1:1)*Infinity;else if(e===0)e=1-eBias;else{m=m+Math.pow(2,ml);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-ml)}var __toBuffer,___toBuffer;__toBuffer=___toBuffer=function toBuffer_(bufs){var x=[];for(var i=0;i0&&Buffer.isBuffer(bufs[0][0])?Buffer.concat(bufs[0]):___toBuffer(bufs)};__double=function double_(b,i){if(Buffer.isBuffer(b))return b.readDoubleLE(i);return ___double(b,i)};is_buf=function is_buf_b(a){return Buffer.isBuffer(a)||Array.isArray(a)}}var __readUInt8=function(b,idx){return b[idx]};var __readUInt16LE=function(b,idx){return b[idx+1]*(1<<8)+b[idx]};var __readInt16LE=function(b,idx){var u=b[idx+1]*(1<<8)+b[idx];return u<32768?u:(65535-u+1)*-1};var __readUInt32LE=function(b,idx){return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]};var __readInt32LE=function(b,idx){return b[idx+3]<<24|b[idx+2]<<16|b[idx+1]<<8|b[idx]};function ReadShift(size,t){var o="",oo=[],w,vv,i,loc;if(t==="dbcs"){loc=this.l;if(has_buf&&Buffer.isBuffer(this))o=this.slice(this.l,this.l+2*size).toString("utf16le");else for(i=0;i!=size;++i){o+=String.fromCharCode(__readUInt16LE(this,loc));loc+=2}size*=2}else switch(size){case 1:o=__readUInt8(this,this.l);break;case 2:o=(t==="i"?__readInt16LE:__readUInt16LE)(this,this.l);break;case 4:o=__readUInt32LE(this,this.l);break;case 8:if(t==="f"){o=__double(this,this.l);break}}this.l+=size;return o}function WriteShift(t,val,f){var size,i;if(f==="dbcs"){for(i=0;i!=val.length;++i)this.writeUInt16LE(val.charCodeAt(i),this.l+2*i);size=2*val.length}else switch(t){case 1:size=1;this[this.l]=val&255;break;case 3:size=3;this[this.l+2]=val&255;val>>>=8;this[this.l+1]=val&255;val>>>=8;this[this.l]=val&255;break;case 4:size=4;this.writeUInt32LE(val,this.l);break;case 8:size=8;if(f==="f"){this.writeDoubleLE(val,this.l);break}case 16:break;case-4:size=4;this.writeInt32LE(val,this.l);break}this.l+=size;return this}function prep_blob(blob,pos){blob.l=pos;blob.read_shift=ReadShift;blob.write_shift=WriteShift}function parsenoop(blob,length){blob.l+=length}function writenoop(blob,length){blob.l+=length}function new_buf(sz){var o=has_buf?new Buffer(sz):new Array(sz);prep_blob(o,0);return o}function recordhopper(data,cb,opts){var tmpbyte,cntbyte,length;prep_blob(data,data.l||0);while(data.l0)bufs.push(curbuf);curbuf=null};var next=function ba_next(sz){if(sz=128?1:0)+1+length;if(length>=128)++l;if(length>=16384)++l;if(length>=2097152)++l;var o=ba.next(l);if(t<=127)o.write_shift(1,t);else{o.write_shift(1,(t&127)+128);o.write_shift(1,t>>7)}for(var i=0;i!=4;++i){if(length>=128){o.write_shift(1,(length&127)+128);length>>=7}else{o.write_shift(1,length);break}}if(length>0&&is_buf(payload))ba.push(payload)}function parse_StrRun(data,length){return{ich:data.read_shift(2),ifnt:data.read_shift(2)}}function parse_RichStr(data,length){var start=data.l;var flags=data.read_shift(1);var str=parse_XLWideString(data);var rgsStrRun=[];var z={t:str,h:str};if((flags&1)!==0){var dwSizeStrRun=data.read_shift(4);for(var i=0;i!=dwSizeStrRun;++i)rgsStrRun.push(parse_StrRun(data));z.r=rgsStrRun}else z.r=""+escapexml(str)+"";if((flags&2)!==0){}data.l=start+length;return z}function write_RichStr(str,o){if(o==null)o=new_buf(5+2*str.t.length);o.write_shift(1,0);write_XLWideString(str.t,o);return o}function parse_Cell(data){var col=data.read_shift(4);var iStyleRef=data.read_shift(2);iStyleRef+=data.read_shift(1)<<16;var fPhShow=data.read_shift(1);return{c:col,iStyleRef:iStyleRef}}function write_Cell(cell,o){if(o==null)o=new_buf(8);o.write_shift(-4,cell.c);o.write_shift(3,cell.iStyleRef===undefined?cell.iStyleRef:cell.s);o.write_shift(1,0);return o}function parse_CodeName(data,length){return parse_XLWideString(data,length)}function parse_XLNullableWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0||cchCharacters===4294967295?"":data.read_shift(cchCharacters,"dbcs")}function write_XLNullableWideString(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.length>0?data.length:4294967295);if(data.length>0)o.write_shift(0,data,"dbcs");return o}function parse_XLWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0?"":data.read_shift(cchCharacters,"dbcs")}function write_XLWideString(data,o){if(o==null)o=new_buf(4+2*data.length);o.write_shift(4,data.length);if(data.length>0)o.write_shift(0,data,"dbcs");return o}var parse_RelID=parse_XLNullableWideString;var write_RelID=write_XLNullableWideString;function parse_RkNumber(data){var b=data.slice(data.l,data.l+4);var fX100=b[0]&1,fInt=b[0]&2;data.l+=4;b[0]&=252;var RK=fInt===0?__double([0,0,0,0,b[0],b[1],b[2],b[3]],0):__readInt32LE(b,0)>>2;return fX100?RK/100:RK}function parse_UncheckedRfX(data){var cell={s:{},e:{}};cell.s.r=data.read_shift(4);cell.e.r=data.read_shift(4);cell.s.c=data.read_shift(4);cell.e.c=data.read_shift(4);return cell}function write_UncheckedRfX(r,o){if(!o)o=new_buf(16);o.write_shift(4,r.s.r);o.write_shift(4,r.e.r);o.write_shift(4,r.s.c);o.write_shift(4,r.e.c);return o}function parse_Xnum(data,length){return data.read_shift(8,"f")}function write_Xnum(data,o){return(o||new_buf(8)).write_shift(8,"f",data)}var BErr={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var RBErr=evert_num(BErr);function parse_BrtColor(data,length){var out={};var d=data.read_shift(1);out.fValidRGB=d&1;out.xColorType=d>>>1;out.index=data.read_shift(1);out.nTintAndShade=data.read_shift(2,"i");out.bRed=data.read_shift(1);out.bGreen=data.read_shift(1);out.bBlue=data.read_shift(1);out.bAlpha=data.read_shift(1)}function parse_FontFlags(data,length){var d=data.read_shift(1);data.l++;var out={fItalic:d&2,fStrikeout:d&8,fOutline:d&16,fShadow:d&32,fCondense:d&64,fExtend:d&128};return out}var ct2type={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.chartsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"TODO","application/vnd.ms-excel.dialogsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"TODO","application/vnd.ms-excel.macrosheet":"TODO","application/vnd.ms-excel.macrosheet+xml":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.ms-excel.comments":"comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"TODO","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO",sheet:"js"}; -var CT_LIST=function(){var o={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};keys(o).forEach(function(k){if(!o[k].xlsm)o[k].xlsm=o[k].xlsx});keys(o).forEach(function(k){keys(o[k]).forEach(function(v){ct2type[o[k][v]]=k})});return o}();var type2ct=evert_arr(ct2type);XMLNS.CT="http://schemas.openxmlformats.org/package/2006/content-types";function parse_ct(data,opts){var ctext={};if(!data||!data.match)return data;var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0].replace(nsregex,"<")){case"0?ct.calcchains[0]:"";ct.sst=ct.strs.length>0?ct.strs[0]:"";ct.style=ct.styles.length>0?ct.styles[0]:"";ct.defaults=ctext;delete ct.calcchains;return ct}var CTYPE_XML_ROOT=writextag("Types",null,{xmlns:XMLNS.CT,"xmlns:xsd":XMLNS.xsd,"xmlns:xsi":XMLNS.xsi});var CTYPE_DEFAULTS=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["rels",type2ct.rels[0]]].map(function(x){return writextag("Default",null,{Extension:x[0],ContentType:x[1]})});function write_ct(ct,opts){var o=[],v;o[o.length]=XML_HEADER;o[o.length]=CTYPE_XML_ROOT;o=o.concat(CTYPE_DEFAULTS);var f1=function(w){if(ct[w]&&ct[w].length>0){v=ct[w][0];o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})}};var f2=function(w){ct[w].forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})})};var f3=function(t){(ct[t]||[]).forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:type2ct[t][0]})})};f1("workbooks");f2("sheets");f3("themes");["strs","styles"].forEach(f1);["coreprops","extprops","custprops"].forEach(f3);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var RELS={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument"};function parse_rels(data,currentFilePath){if(!data)return data;if(currentFilePath.charAt(0)!=="/"){currentFilePath="/"+currentFilePath}var rels={};var hash={};var resolveRelativePathIntoAbsolute=function(to){var toksFrom=currentFilePath.split("/");toksFrom.pop();var toksTo=to.split("/");var reversed=[];while(toksTo.length!==0){var tokTo=toksTo.shift();if(tokTo===".."){toksFrom.pop()}else if(tokTo!=="."){toksFrom.push(tokTo)}}return toksFrom.join("/")};data.match(tagregex).forEach(function(x){var y=parsexmltag(x);if(y[0]==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CORE_PROPS=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];XMLNS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";RELS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var CORE_PROPS_REGEX=function(){var r=new Array(CORE_PROPS.length);for(var i=0;i]*>(.*)")}return r}();function parse_core_props(data){var p={};for(var i=0;i0)p[f[1]]=cur[1];if(f[2]==="date"&&p[f[1]])p[f[1]]=new Date(p[f[1]])}return p}var CORE_PROPS_XML_ROOT=writextag("cp:coreProperties",null,{"xmlns:cp":XMLNS.CORE_PROPS,"xmlns:dc":XMLNS.dc,"xmlns:dcterms":XMLNS.dcterms,"xmlns:dcmitype":XMLNS.dcmitype,"xmlns:xsi":XMLNS.xsi});function cp_doit(f,g,h,o,p){if(p[f]!=null||g==null||g==="")return;p[f]=g;o[o.length]=h?writextag(f,g,h):writetag(f,g)}function write_core_props(cp,opts){var o=[XML_HEADER,CORE_PROPS_XML_ROOT],p={};if(!cp)return o.join("");if(cp.CreatedDate!=null)cp_doit("dcterms:created",typeof cp.CreatedDate==="string"?cp.CreatedDate:write_w3cdtf(cp.CreatedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);if(cp.ModifiedDate!=null)cp_doit("dcterms:modified",typeof cp.ModifiedDate==="string"?cp.ModifiedDate:write_w3cdtf(cp.ModifiedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);for(var i=0;i!=CORE_PROPS.length;++i){var f=CORE_PROPS[i];cp_doit(f[0],cp[f[1]],null,o,p)}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var EXT_PROPS=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];XMLNS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";RELS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function parse_ext_props(data,p){var q={};if(!p)p={};EXT_PROPS.forEach(function(f){switch(f[2]){case"string":p[f[1]]=(data.match(matchtag(f[0]))||[])[1];break;case"bool":p[f[1]]=(data.match(matchtag(f[0]))||[])[1]==="true";break;case"raw":var cur=data.match(new RegExp("<"+f[0]+"[^>]*>(.*)"));if(cur&&cur.length>0)q[f[1]]=cur[1];break}});if(q.HeadingPairs&&q.TitlesOfParts){var v=parseVector(q.HeadingPairs);var j=0,widx=0;for(var i=0;i!==v.length;++i){switch(v[i].v){case"Worksheets":widx=j;p.Worksheets=+v[++i].v;break;case"Named Ranges":++i;break}}var parts=parseVector(q.TitlesOfParts).map(function(x){return utf8read(x.v)});p.SheetNames=parts.slice(widx,widx+p.Worksheets)}return p}var EXT_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.EXT_PROPS,"xmlns:vt":XMLNS.vt});function write_ext_props(cp,opts){var o=[],p={},W=writextag;if(!cp)cp={};cp.Application="SheetJS";o[o.length]=XML_HEADER;o[o.length]=EXT_PROPS_XML_ROOT;EXT_PROPS.forEach(function(f){if(cp[f[1]]===undefined)return;var v;switch(f[2]){case"string":v=cp[f[1]];break;case"bool":v=cp[f[1]]?"true":"false";break}if(v!==undefined)o[o.length]=W(f[0],v)});o[o.length]=W("HeadingPairs",W("vt:vector",W("vt:variant","Worksheets")+W("vt:variant",W("vt:i4",String(cp.Worksheets))),{size:2,baseType:"variant"}));o[o.length]=W("TitlesOfParts",W("vt:vector",cp.SheetNames.map(function(s){return""+s+""}).join(""),{size:cp.Worksheets,baseType:"lpstr"}));if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}XMLNS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";RELS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var custregex=/<[^>]+>[^<]*/g;function parse_cust_props(data,opts){var p={},name;var m=data.match(custregex);if(m)for(var i=0;i!=m.length;++i){var x=m[i],y=parsexmltag(x);switch(y[0]){case"":name=null;break;default:if(x.indexOf("");var type=toks[0].substring(4),text=toks[1];switch(type){case"lpstr":case"lpwstr":case"bstr":case"lpwstr":p[name]=unescapexml(text);break;case"bool":p[name]=parsexmlbool(text,"");break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":p[name]=parseInt(text,10);break;case"r4":case"r8":case"decimal":p[name]=parseFloat(text);break;case"filetime":case"date":p[name]=new Date(text);break;case"cy":case"error":p[name]=unescapexml(text);break;default:if(typeof console!=="undefined")console.warn("Unexpected",x,type,toks)}}else if(x.substr(0,2)==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CS2CP={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var parse_rs=function parse_rs_factory(){var tregex=matchtag("t"),rpregex=matchtag("rPr"),rregex=//g,rend=/<\/r>/,nlregex=/\r\n/g;var parse_rpr=function parse_rpr(rpr,intro,outro){var font={},cp=65001;var m=rpr.match(tagregex),i=0;if(m)for(;i!=m.length;++i){var y=parsexmltag(m[i]);switch(y[0]){case"":break;case"":break;case"":font.strike=1;break;case"":break;case"":font.u=1;break;case"":break;case"":font.b=1;break;case"":break;case"":font.i=1;break;case"":break;case"');outro.push("");return cp};function parse_r(r){var terms=[[],"",[]];var t=r.match(tregex),cp=65001;if(!isval(t))return"";terms[1]=t[1];var rpr=r.match(rpregex);if(isval(rpr))cp=parse_rpr(rpr[1],terms[0],terms[2]);return terms[0].join("")+terms[1].replace(nlregex,"
")+terms[2].join("")}return function parse_rs(rs){return rs.replace(rregex,"").split(rend).map(parse_r).join("")}}();var sitregex=/]*>([^<]*)<\/t>/g,sirregex=//;function parse_si(x,opts){var html=opts?opts.cellHTML:true;var z={};if(!x)return null;var y;if(x.charCodeAt(1)===116){z.t=utf8read(unescapexml(x.substr(x.indexOf(">")+1).split(/<\/t>/)[0]));z.r=x;if(html)z.h=z.t}else if(y=x.match(sirregex)){z.r=x;z.t=utf8read(unescapexml(x.match(sitregex).join("").replace(tagregex,"")));if(html)z.h=parse_rs(x)}return z}var sstr0=/]*)>([\s\S]*)<\/sst>/;var sstr1=/<(?:si|sstItem)>/g;var sstr2=/<\/(?:si|sstItem)>/;function parse_sst_xml(data,opts){var s=[],ss;var sst=data.match(sstr0);if(isval(sst)){ss=sst[2].replace(sstr1,"").split(sstr2);for(var i=0;i!=ss.length;++i){var o=parse_si(ss[i],opts);if(o!=null)s[s.length]=o}sst=parsexmltag(sst[1]);s.Count=sst.count;s.Unique=sst.uniqueCount}return s}RELS.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var straywsregex=/^\s|\s$|[\t\n\r]/;function write_sst_xml(sst,opts){if(!opts.bookSST)return"";var o=[XML_HEADER];o[o.length]=writextag("sst",null,{xmlns:XMLNS.main[0],count:sst.Count,uniqueCount:sst.Unique});for(var i=0;i!=sst.length;++i){if(sst[i]==null)continue;var s=sst[i];var sitag="";if(s.r)sitag+=s.r;else{sitag+=""}sitag+="";o[o.length]=sitag}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBeginSst(data,length){return[data.read_shift(4),data.read_shift(4)]}function parse_sst_bin(data,opts){var s=[];var pass=false;recordhopper(data,function hopper_sst(val,R,RT){switch(R.n){case"BrtBeginSst":s.Count=val[0];s.Unique=val[1];break;case"BrtSSTItem":s.push(val);break;case"BrtEndSst":return true;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return s}function write_BrtBeginSst(sst,o){if(!o)o=new_buf(8);o.write_shift(4,sst.Count);o.write_shift(4,sst.Unique);return o}var write_BrtSSTItem=write_RichStr;function write_sst_bin(sst,opts){var ba=buf_array();write_record(ba,"BrtBeginSst",write_BrtBeginSst(sst));for(var i=0;i255?255:rgb[i]<0?0:rgb[i]);return o.toString(16).toUpperCase().substr(1)}function rgb2HSL(rgb){var R=rgb[0]/255,G=rgb[1]/255,B=rgb[2]/255;var M=Math.max(R,G,B),m=Math.min(R,G,B),C=M-m;if(C===0)return[0,0,R];var H6=0,S=0,L2=M+m;S=C/(L2>1?2-L2:L2);switch(M){case R:H6=((G-B)/C+6)%6;break;case G:H6=(B-R)/C+2;break;case B:H6=(R-G)/C+4;break}return[H6/6,S,L2/2]}function hsl2RGB(hsl){var H=hsl[0],S=hsl[1],L=hsl[2];var C=S*2*(L<.5?L:1-L),m=L-C/2;var rgb=[m,m,m],h6=6*H;var X;if(S!==0)switch(h6|0){case 0:case 6:X=C*h6;rgb[0]+=C;rgb[1]+=X;break;case 1:X=C*(2-h6);rgb[0]+=X;rgb[1]+=C;break;case 2:X=C*(h6-2);rgb[1]+=C;rgb[2]+=X;break;case 3:X=C*(4-h6);rgb[1]+=X;rgb[2]+=C;break;case 4:X=C*(h6-4);rgb[2]+=C;rgb[0]+=X;break;case 5:X=C*(6-h6);rgb[2]+=X;rgb[0]+=C;break}for(var i=0;i!=3;++i)rgb[i]=Math.round(rgb[i]*255);return rgb}function rgb_tint(hex,tint){if(tint===0)return hex;var hsl=rgb2HSL(hex2RGB(hex));if(tint<0)hsl[2]=hsl[2]*(1+tint);else hsl[2]=1-(1-hsl[2])*(1-tint);return rgb2Hex(hsl2RGB(hsl))}var DEF_MDW=7,MAX_MDW=15,MIN_MDW=1,MDW=DEF_MDW;function width2px(width){return(width+(128/MDW|0)/256)*MDW|0}function px2char(px){return((px-5)/MDW*100+.5|0)/100}function char2width(chr){return((chr*MDW+5)/MDW*256|0)/256}function cycle_width(collw){return char2width(px2char(width2px(collw)))}function find_mdw(collw,coll){if(cycle_width(collw)!=collw){for(MDW=DEF_MDW;MDW>MIN_MDW;--MDW)if(cycle_width(collw)===collw)break;if(MDW===MIN_MDW)for(MDW=DEF_MDW+1;MDW":case"":break;case"":break;case"":styles.Fills.push(fill);fill={};break;case"":case"":break;case"":case"":break;case"":case"":break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in fills"}})}function parse_numFmts(t,opts){styles.NumberFmt=[];var k=keys(SSF._table);for(var i=0;i":case"":case"":break;case"0)SSF.load(f,j)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in numFmts"}}}function write_numFmts(NF,opts){var o=[""];[[5,8],[23,26],[41,44],[63,66],[164,392]].forEach(function(r){for(var i=r[0];i<=r[1];++i)if(NF[i]!==undefined)o[o.length]=writextag("numFmt",null,{numFmtId:i,formatCode:escapexml(NF[i])})});if(o.length===1)return"";o[o.length]="";o[0]=writextag("numFmts",null,{count:o.length-2}).replace("/>",">");return o.join("")}function parse_cellXfs(t,opts){styles.CellXf=[];t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":case"":case"":break;case"":break;case"":break;case"":case"":break;case"":break;case"";if(o.length===2)return"";o[0]=writextag("cellXfs",null,{count:o.length-2}).replace("/>",">");return o.join("")}var parse_sty_xml=function make_pstyx(){var numFmtRegex=/]*)>.*<\/numFmts>/;var cellXfRegex=/]*)>.*<\/cellXfs>/;var fillsRegex=/]*)>.*<\/fills>/;return function parse_sty_xml(data,opts){var t;if(t=data.match(numFmtRegex))parse_numFmts(t,opts);if(t=data.match(fillsRegex))parse_fills(t,opts);if(t=data.match(cellXfRegex))parse_cellXfs(t,opts);return styles}}();var STYLES_XML_ROOT=writextag("styleSheet",null,{xmlns:XMLNS.main[0],"xmlns:vt":XMLNS.vt});RELS.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function write_sty_xml(wb,opts){var o=[XML_HEADER,STYLES_XML_ROOT],w;if((w=write_numFmts(wb.SSF))!=null)o[o.length]=w;o[o.length]='';o[o.length]='';o[o.length]='';o[o.length]='';if(w=write_cellXfs(opts.cellXfs))o[o.length]=w;o[o.length]='';o[o.length]='';o[o.length]='';if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtFmt(data,length){var ifmt=data.read_shift(2);var stFmtCode=parse_XLWideString(data,length-2);return[ifmt,stFmtCode]}function parse_BrtFont(data,length){var out={flags:{}};out.dyHeight=data.read_shift(2);out.grbit=parse_FontFlags(data,2);out.bls=data.read_shift(2);out.sss=data.read_shift(2);out.uls=data.read_shift(1);out.bFamily=data.read_shift(1);out.bCharSet=data.read_shift(1);data.l++;out.brtColor=parse_BrtColor(data,8);out.bFontScheme=data.read_shift(1);out.name=parse_XLWideString(data,length-21);out.flags.Bold=out.bls===700;out.flags.Italic=out.grbit.fItalic;out.flags.Strikeout=out.grbit.fStrikeout;out.flags.Outline=out.grbit.fOutline;out.flags.Shadow=out.grbit.fShadow;out.flags.Condense=out.grbit.fCondense;out.flags.Extend=out.grbit.fExtend;out.flags.Sub=out.sss&2;out.flags.Sup=out.sss&1;return out}function parse_BrtXF(data,length){var ixfeParent=data.read_shift(2);var ifmt=data.read_shift(2);parsenoop(data,length-4);return{ixfe:ixfeParent,ifmt:ifmt}}function parse_sty_bin(data,opts){styles.NumberFmt=[];for(var y in SSF._table)styles.NumberFmt[y]=SSF._table[y];styles.CellXf=[];var state="";var pass=false;recordhopper(data,function hopper_sty(val,R,RT){switch(R.n){case"BrtFmt":styles.NumberFmt[val[0]]=val[1];SSF.load(val[1],val[0]);break;case"BrtFont":break;case"BrtKnownFonts":break;case"BrtFill":break;case"BrtBorder":break;case"BrtXF":if(state==="CELLXFS"){styles.CellXf.push(val)}break;case"BrtStyle":break;case"BrtDXF":break;case"BrtMRUColor":break;case"BrtIndexedColor":break;case"BrtBeginStyleSheet":break;case"BrtEndStyleSheet":break;case"BrtBeginTableStyle":break;case"BrtTableStyleElement":break;case"BrtEndTableStyle":break;case"BrtBeginFmts":state="FMTS";break;case"BrtEndFmts":state="";break;case"BrtBeginFonts":state="FONTS";break;case"BrtEndFonts":state="";break;case"BrtACBegin":state="ACFONTS";break;case"BrtACEnd":state="";break;case"BrtBeginFills":state="FILLS";break;case"BrtEndFills":state="";break;case"BrtBeginBorders":state="BORDERS";break;case"BrtEndBorders":state="";break;case"BrtBeginCellStyleXFs":state="CELLSTYLEXFS";break;case"BrtEndCellStyleXFs":state="";break;case"BrtBeginCellXFs":state="CELLXFS";break;case"BrtEndCellXFs":state="";break;case"BrtBeginStyles":state="STYLES";break;case"BrtEndStyles":state="";break;case"BrtBeginDXFs":state="DXFS";break;case"BrtEndDXFs":state="";break;case"BrtBeginTableStyles":state="TABLESTYLES";break;case"BrtEndTableStyles":state="";break;case"BrtBeginColorPalette":state="COLORPALETTE";break;case"BrtEndColorPalette":state="";break;case"BrtBeginIndexedColors":state="INDEXEDCOLORS";break;case"BrtEndIndexedColors":state="";break;case"BrtBeginMRUColors":state="MRUCOLORS";break;case"BrtEndMRUColors":state="";break;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;case"BrtBeginStyleSheetExt14":break;case"BrtBeginSlicerStyles":break;case"BrtEndSlicerStyles":break;case"BrtBeginTimelineStylesheetExt15":break;case"BrtEndTimelineStylesheetExt15":break;case"BrtBeginTimelineStyles":break;case"BrtEndTimelineStyles":break;case"BrtEndStyleSheetExt14":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return styles}function write_sty_bin(data,opts){var ba=buf_array();write_record(ba,"BrtBeginStyleSheet");write_record(ba,"BrtEndStyleSheet");return ba.end()}RELS.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function parse_clrScheme(t,opts){themes.themeElements.clrScheme=[];var color={};t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":if(y[0][1]==="/"){themes.themeElements.clrScheme.push(color);color={}}else{color.name=y[0].substring(3,y[0].length-1)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in clrScheme"}})}function parse_fontScheme(t,opts){}function parse_fmtScheme(t,opts){}var clrsregex=/]*)>[^\u2603]*<\/a:clrScheme>/;var fntsregex=/]*)>[^\u2603]*<\/a:fontScheme>/;var fmtsregex=/]*)>[^\u2603]*<\/a:fmtScheme>/;function parse_themeElements(data,opts){themes.themeElements={};var t;[["clrScheme",clrsregex,parse_clrScheme],["fontScheme",fntsregex,parse_fontScheme],["fmtScheme",fmtsregex,parse_fmtScheme]].forEach(function(m){if(!(t=data.match(m[1])))throw m[0]+" not found in themeElements";m[2](t,opts)})}var themeltregex=/]*)>[^\u2603]*<\/a:themeElements>/;function parse_theme_xml(data,opts){if(!data||data.length===0)return themes;var t;if(!(t=data.match(themeltregex)))throw"themeElements not found in theme";parse_themeElements(t[0],opts);return themes}function write_theme(){return'\n' -}function parse_cc_xml(data,opts){var d=[];var l=0,i=1;(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":case"":break;case"thisCell.r)range.s.r=thisCell.r;if(range.e.rthisCell.c)range.s.c=thisCell.c;if(range.e.c/))return[];var authors=[];var commentList=[];data.match(/<(?:\w+:)?authors>([^\u2603]*)<\/(?:\w+:)?authors>/)[1].split(/<\/\w*:?author>/).forEach(function(x){if(x===""||x.trim()==="")return;authors.push(x.match(/<(?:\w+:)?author[^>]*>(.*)/)[1])});(data.match(/<(?:\w+:)?commentList>([^\u2603]*)<\/(?:\w+:)?commentList>/)||["",""])[1].split(/<\/\w*:?comment>/).forEach(function(x,index){if(x===""||x.trim()==="")return;var y=parsexmltag(x.match(/<(?:\w+:)?comment[^>]*>/)[0]);var comment={author:y.authorId&&authors[y.authorId]?authors[y.authorId]:undefined,ref:y.ref,guid:y.guid};var cell=decode_cell(y.ref);if(opts.sheetRows&&opts.sheetRows<=cell.r)return;var textMatch=x.match(/([^\u2603]*)<\/text>/);if(!textMatch||!textMatch[1])return;var rt=parse_si(textMatch[1]);comment.r=rt.r;comment.t=rt.t;if(opts.cellHTML)comment.h=rt.h;commentList.push(comment)});return commentList}function write_comments_xml(data,opts){}function parse_BrtBeginComment(data,length){var out={};out.iauthor=data.read_shift(4);var rfx=parse_UncheckedRfX(data,16);out.rfx=rfx.s;out.ref=encode_cell(rfx.s);data.l+=16;return out}var parse_BrtCommentAuthor=parse_XLWideString;var parse_BrtCommentText=parse_RichStr;function parse_comments_bin(data,opts){var out=[];var authors=[];var c={};var pass=false;recordhopper(data,function hopper_cmnt(val,R,RT){switch(R.n){case"BrtCommentAuthor":authors.push(val);break;case"BrtBeginComment":c=val;break;case"BrtCommentText":c.t=val.t;c.h=val.h;c.r=val.r;break;case"BrtEndComment":c.author=authors[c.iauthor];delete c.iauthor;if(opts.sheetRows&&opts.sheetRows<=c.rfx.r)break;delete c.rfx;out.push(c);break;case"BrtBeginComments":break;case"BrtEndComments":break;case"BrtBeginCommentAuthors":break;case"BrtEndCommentAuthors":break;case"BrtBeginCommentList":break;case"BrtEndCommentList":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return out}function write_comments_bin(data,opts){}function parse_CellParsedFormula(data,length){var cce=data.read_shift(4);return parsenoop(data,length-4)}var strs={};var _ssfopts={};RELS.WS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet";function get_sst_id(sst,str){for(var i=0,len=sst.length;i=0&&d.s.c>=0)ws["!ref"]=encode_range(d)}var mergecregex=//g;var sheetdataregex=/<(?:\w+:)?sheetData>([^\u2603]*)<\/(?:\w+:)?sheetData>/;var hlinkregex=/]*\/>/g;var dimregex=/"(\w*:\w*)"/;var colregex=/]*\/>/g;function parse_ws_xml(data,opts,rels){if(!data)return data;var s={};var ridx=data.indexOf("0){var ref=data.substr(ridx,50).match(dimregex);if(ref!=null)parse_ws_xml_dim(s,ref[1])}var mergecells=[];if(data.indexOf("")!==-1){var merges=data.match(mergecregex);for(ridx=0;ridx!=merges.length;++ridx)mergecells[ridx]=safe_decode_range(merges[ridx].substr(merges[ridx].indexOf('"')+1))}var columns=[];if(opts.cellStyles&&data.indexOf("")!==-1){var cols=data.match(colregex);parse_ws_xml_cols(columns,cols)}var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var mtch=data.match(sheetdataregex);if(mtch)parse_ws_xml_data(mtch[1],s,opts,refguess);if(data.indexOf("")!==-1)parse_ws_xml_hlinks(s,data.match(hlinkregex),rels);if(!s["!ref"]&&refguess.e.c>=refguess.s.c&&refguess.e.r>=refguess.s.r)s["!ref"]=encode_range(refguess);if(opts.sheetRows>0&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.rrefguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c0)s["!merges"]=mergecells;if(columns.length>0)s["!cols"]=columns;return s}function write_ws_xml_merges(merges){if(merges.length==0)return"";var o='';for(var i=0;i!=merges.length;++i)o+='';return o+""}function parse_ws_xml_hlinks(s,data,rels){for(var i=0;i!=data.length;++i){var val=parsexmltag(data[i],true);if(!val.ref)return;var rel=rels["!id"][val.id];if(rel){val.Target=rel.Target;if(val.location)val.Target+="#"+val.location;val.Rel=rel}var rng=safe_decode_range(val.ref);for(var R=rng.s.r;R<=rng.e.r;++R)for(var C=rng.s.c;C<=rng.e.c;++C){var addr=encode_cell({c:C,r:R});if(!s[addr])s[addr]={t:"stub",v:undefined};s[addr].l=val}}}function parse_ws_xml_cols(columns,cols){var seencol=false;for(var coli=0;coli!=cols.length;++coli){var coll=parsexmltag(cols[coli],true);var colm=parseInt(coll.min,10)-1,colM=parseInt(coll.max,10)-1;delete coll.min;delete coll.max;if(!seencol&&coll.width){seencol=true;find_mdw(+coll.width,coll)}if(coll.width){coll.wpx=width2px(+coll.width);coll.wch=px2char(coll.wpx);coll.MDW=MDW}while(colm<=colM)columns[colm++]=coll}}function write_ws_xml_cols(ws,cols){var o=[""],col,width;for(var i=0;i!=cols.length;++i){if(!(col=cols[i]))continue;var p={min:i+1,max:i+1};width=-1;if(col.wpx)width=px2char(col.wpx);else if(col.wch)width=col.wch;if(width>-1){p.width=char2width(width);p.customWidth=1}o[o.length]=writextag("col",null,p)}o[o.length]="";return o.join("")}function write_ws_xml_cell(cell,ref,ws,opts,idx,wb){if(cell.v===undefined)return"";var vv="";var oldt=cell.t,oldv=cell.v;switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":vv=""+cell.v;break;case"e":vv=BErr[cell.v];break;case"d":if(opts.cellDates)vv=new Date(cell.v).toISOString();else{cell.t="n";vv=""+(cell.v=datenum(cell.v));if(typeof cell.z==="undefined")cell.z=SSF._table[14]}break;default:vv=cell.v;break}var v=writetag("v",escapexml(vv)),o={r:ref};var os=get_cell_style(opts.cellXfs,cell,opts);if(os!==0)o.s=os;switch(cell.t){case"n":break;case"d":o.t="d";break;case"b":o.t="b";break;case"e":o.t="e";break;default:if(opts.bookSST){v=writetag("v",""+get_sst_id(opts.Strings,cell.v));o.t="s";break}o.t="str";break}if(cell.t!=oldt){cell.t=oldt;cell.v=oldv}return writextag("c",v,o)}var parse_ws_xml_data=function parse_ws_xml_data_factory(){var cellregex=/<(?:\w+:)?c[ >]/,rowregex=/<\/(?:\w+:)?row>/;var rregex=/r=["']([^"']*)["']/,isregex=/([\S\s]*?)<\/is>/;var match_v=matchtag("v"),match_f=matchtag("f");return function parse_ws_xml_data(sdata,s,opts,guess){var ri=0,x="",cells=[],cref=[],idx=0,i=0,cc=0,d="",p;var tag,tagr=0,tagc=0;var sstr;var fmtid=0,fillid=0,do_format=Array.isArray(styles.CellXf),cf;for(var marr=sdata.split(rowregex),mt=0,marrlen=marr.length;mt!=marrlen;++mt){x=marr[mt].trim();var xlen=x.length;if(xlen===0)continue;for(ri=0;ritagr-1)guess.s.r=tagr-1;if(guess.e.r":"")+x;if(cref!==null&&cref.length===2){idx=0;d=cref[1];for(i=0;i!=d.length;++i){if((cc=d.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}--idx;tagc=idx}else++tagc;for(i=0;i!=x.length;++i)if(x.charCodeAt(i)===62)break;++i;tag=parsexmltag(x.substr(0,i),true);if(!tag.r)tag.r=utils.encode_cell({r:tagr-1,c:tagc});d=x.substr(i);p={t:""};if((cref=d.match(match_v))!==null&&cref[1]!=="")p.v=unescapexml(cref[1]);if(opts.cellFormula&&(cref=d.match(match_f))!==null)p.f=unescapexml(cref[1]);if(tag.t===undefined&&p.v===undefined){if(!opts.sheetStubs)continue;p.t="stub"}else p.t=tag.t||"n";if(guess.s.c>idx)guess.s.c=idx;if(guess.e.c0)o[o.length]=writextag("row",r.join(""),{r:rr})}return o.join("")}var WS_XML_ROOT=writextag("worksheet",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function write_ws_xml(idx,opts,wb){var o=[XML_HEADER,WS_XML_ROOT];var s=wb.SheetNames[idx],sidx=0,rdata="";var ws=wb.Sheets[s];if(ws===undefined)ws={};var ref=ws["!ref"];if(ref===undefined)ref="A1";o[o.length]=writextag("dimension",null,{ref:ref});if(ws["!cols"]!==undefined&&ws["!cols"].length>0)o[o.length]=write_ws_xml_cols(ws,ws["!cols"]);o[sidx=o.length]="";if(ws["!ref"]!==undefined){rdata=write_ws_xml_data(ws,opts,idx,wb);if(rdata.length>0)o[o.length]=rdata}if(o.length>sidx+1){o[o.length]="";o[sidx]=o[sidx].replace("/>",">")}if(ws["!merges"]!==undefined&&ws["!merges"].length>0)o[o.length]=write_ws_xml_merges(ws["!merges"]);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtRowHdr(data,length){var z=[];z.r=data.read_shift(4);data.l+=length-4;return z}var parse_BrtWsDim=parse_UncheckedRfX;var write_BrtWsDim=write_UncheckedRfX;function parse_BrtWsProp(data,length){var z={};data.l+=19;z.name=parse_CodeName(data,length-19);return z}function parse_BrtCellBlank(data,length){var cell=parse_Cell(data);return[cell]}function write_BrtCellBlank(cell,val,o){if(o==null)o=new_buf(8);return write_Cell(val,o)}function parse_BrtCellBool(data,length){var cell=parse_Cell(data);var fBool=data.read_shift(1);return[cell,fBool,"b"]}function parse_BrtCellError(data,length){var cell=parse_Cell(data);var fBool=data.read_shift(1);return[cell,fBool,"e"]}function parse_BrtCellIsst(data,length){var cell=parse_Cell(data);var isst=data.read_shift(4);return[cell,isst,"s"]}function parse_BrtCellReal(data,length){var cell=parse_Cell(data);var value=parse_Xnum(data);return[cell,value,"n"]}function parse_BrtCellRk(data,length){var cell=parse_Cell(data);var value=parse_RkNumber(data);return[cell,value,"n"]}function parse_BrtCellSt(data,length){var cell=parse_Cell(data);var value=parse_XLWideString(data);return[cell,value,"str"]}function parse_BrtFmlaBool(data,length,opts){var cell=parse_Cell(data);var value=data.read_shift(1);var o=[cell,value,"b"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaError(data,length,opts){var cell=parse_Cell(data);var value=data.read_shift(1);var o=[cell,value,"e"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaNum(data,length,opts){var cell=parse_Cell(data);var value=parse_Xnum(data);var o=[cell,value,"n"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-16);o[3]=""}else data.l+=length-16;return o}function parse_BrtFmlaString(data,length,opts){var start=data.l;var cell=parse_Cell(data);var value=parse_XLWideString(data);var o=[cell,value,"str"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,start+length-data.l)}else data.l=start+length;return o}var parse_BrtMergeCell=parse_UncheckedRfX;function parse_BrtHLink(data,length,opts){var end=data.l+length;var rfx=parse_UncheckedRfX(data,16);var relId=parse_XLNullableWideString(data);var loc=parse_XLWideString(data);var tooltip=parse_XLWideString(data);var display=parse_XLWideString(data);data.l=end;return{rfx:rfx,relId:relId,loc:loc,tooltip:tooltip,display:display}}function parse_ws_bin(data,opts,rels){if(!data)return data;if(!rels)rels={"!id":{}};var s={};var ref;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var pass=false,end=false;var row,p,cf,R,C,addr,sstr,rr;var mergecells=[];recordhopper(data,function ws_parse(val,R){if(end)return;switch(R.n){case"BrtWsDim":ref=val;break;case"BrtRowHdr":row=val;if(opts.sheetRows&&opts.sheetRows<=row.r)end=true;rr=encode_row(row.r);break;case"BrtFmlaBool":case"BrtFmlaError":case"BrtFmlaNum":case"BrtFmlaString":case"BrtCellBool":case"BrtCellError":case"BrtCellIsst":case"BrtCellReal":case"BrtCellRk":case"BrtCellSt":p={t:val[2]};switch(val[2]){case"n":p.v=val[1];break;case"s":sstr=strs[val[1]];p.v=sstr.t;p.r=sstr.r;break;case"b":p.v=val[1]?true:false;break;case"e":p.v=val[1];p.w=BErr[p.v];break;case"str":p.t="s";p.v=utf8read(val[1]);break}if(opts.cellFormula&&val.length>3)p.f=val[3];if(cf=styles.CellXf[val[0].iStyleRef])safe_format(p,cf.ifmt,null,opts);s[encode_col(C=val[0].c)+rr]=p;if(refguess.s.r>row.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.rrow.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.r0||ref.e.c>0||ref.s.r>0||ref.s.c>0))s["!ref"]=encode_range(ref);if(opts.sheetRows&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.rrefguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c0)s["!merges"]=mergecells;return s}function write_ws_bin_cell(ba,cell,R,C,opts){if(cell.v===undefined)return"";var vv="";switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":case"e":vv=""+cell.v;break;default:vv=cell.v;break}var o={r:R,c:C};o.s=get_cell_style(opts.cellXfs,cell,opts);switch(cell.t){case"s":case"str":if(opts.bookSST){vv=get_sst_id(opts.Strings,cell.v);o.t="s";break}o.t="str";break;case"n":break;case"b":o.t="b";break;case"e":o.t="e";break}write_record(ba,"BrtCellBlank",write_BrtCellBlank(cell,o))}function write_CELLTABLE(ba,ws,idx,opts,wb){var range=safe_decode_range(ws["!ref"]||"A1"),ref,rr="",cols=[];write_record(ba,"BrtBeginSheetData");for(var R=range.s.r;R<=range.e.r;++R){rr=encode_row(R);for(var C=range.s.c;C<=range.e.c;++C){if(R===range.s.r)cols[C]=encode_col(C);ref=cols[C]+rr;if(!ws[ref])continue;write_ws_bin_cell(ba,ws[ref],R,C,opts)}}write_record(ba,"BrtEndSheetData")}function write_ws_bin(idx,opts,wb){var ba=buf_array();var s=wb.SheetNames[idx],ws=wb.Sheets[s]||{};var r=safe_decode_range(ws["!ref"]||"A1");write_record(ba,"BrtBeginSheet");write_record(ba,"BrtWsDim",write_BrtWsDim(r));write_CELLTABLE(ba,ws,idx,opts,wb);write_record(ba,"BrtEndSheet");return ba.end()}var WBPropsDef=[["allowRefreshQuery","0"],["autoCompressPictures","1"],["backupFile","0"],["checkCompatibility","0"],["codeName",""],["date1904","0"],["dateCompatibility","1"],["filterPrivacy","0"],["hidePivotFieldList","0"],["promptedSolutions","0"],["publishItems","0"],["refreshAllConnections",false],["saveExternalLinkValues","1"],["showBorderUnselectedTables","1"],["showInkAnnotation","1"],["showObjects","all"],["showPivotChartFilter","0"]];var WBViewDef=[["activeTab","0"],["autoFilterDateGrouping","1"],["firstSheet","0"],["minimized","0"],["showHorizontalScroll","1"],["showSheetTabs","1"],["showVerticalScroll","1"],["tabRatio","600"],["visibility","visible"]];var SheetDef=[["state","visible"]];var CalcPrDef=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var CustomWBViewDef=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function push_defaults_array(target,defaults){for(var j=0;j!=target.length;++j){var w=target[j];for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(w[z[0]]==null)w[z[0]]=z[1]}}}function push_defaults(target,defaults){for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(target[z[0]]==null)target[z[0]]=z[1]}}function parse_wb_defaults(wb){push_defaults(wb.WBProps,WBPropsDef);push_defaults(wb.CalcPr,CalcPrDef);push_defaults_array(wb.WBView,WBViewDef);push_defaults_array(wb.Sheets,SheetDef);_ssfopts.date1904=parsexmlbool(wb.WBProps.date1904,"date1904")}var wbnsregex=/<\w+:workbook/;function parse_wb_xml(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,xmlns="xmlns";data.match(tagregex).forEach(function xml_wb(x){var y=parsexmltag(x);switch(strip_ns(y[0])){case"":break;case"":break;case"":break;case"":delete y[0];wb.WBProps=y;break;case"":break;case"":case"":break;case"":case"":break;case"":break;case"":case"":break;case"":break;case"":case"":pass=false;break;case"":case"":break;case"":delete y[0];wb.CalcPr=y;break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":break;case"":break;case"":case"":break;case"":case"
":case"":break;case"":pass=false;break;case"":pass=false;break;default:if(!pass&&opts.WTF)throw"unrecognized "+y[0]+" in workbook"}});if(XMLNS.main.indexOf(wb.xmlns)===-1)throw new Error("Unknown Namespace: "+wb.xmlns);parse_wb_defaults(wb);return wb}var WB_XML_ROOT=writextag("workbook",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function safe1904(wb){try{return parsexmlbool(wb.Workbook.WBProps.date1904)?"true":"false"}catch(e){return"false"}}function write_wb_xml(wb,opts){var o=[XML_HEADER];o[o.length]=WB_XML_ROOT;o[o.length]=writextag("workbookPr",null,{date1904:safe1904(wb)});o[o.length]="";for(var i=0;i!=wb.SheetNames.length;++i)o[o.length]=writextag("sheet",null,{name:wb.SheetNames[i].substr(0,31),sheetId:""+(i+1),"r:id":"rId"+(i+1)});o[o.length]="";if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBundleSh(data,length){var z={};z.hsState=data.read_shift(4);z.iTabID=data.read_shift(4);z.strRelID=parse_RelID(data,length-8);z.name=parse_XLWideString(data);return z}function write_BrtBundleSh(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.hsState);o.write_shift(4,data.iTabID);write_RelID(data.strRelID,o);write_XLWideString(data.name.substr(0,31),o);return o}function parse_BrtWbProp(data,length){data.read_shift(4);var dwThemeVersion=data.read_shift(4);var strName=length>8?parse_XLWideString(data):"";return[dwThemeVersion,strName]}function write_BrtWbProp(data,o){if(!o)o=new_buf(8);o.write_shift(4,0);o.write_shift(4,0);return o}function parse_BrtFRTArchID$(data,length){var o={};data.read_shift(4);o.ArchID=data.read_shift(4);data.l+=length-8;return o}function parse_wb_bin(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,z;recordhopper(data,function hopper_wb(val,R){switch(R.n){case"BrtBundleSh":wb.Sheets.push(val);break;case"BrtBeginBook":break;case"BrtFileVersion":break;case"BrtWbProp":break;case"BrtACBegin":break;case"BrtAbsPath15":break;case"BrtACEnd":break;case"BrtWbFactoid":break;case"BrtBookProtection":break;case"BrtBeginBookViews":break;case"BrtBookView":break;case"BrtEndBookViews":break;case"BrtBeginBundleShs":break;case"BrtEndBundleShs":break;case"BrtBeginFnGroup":break;case"BrtEndFnGroup":break;case"BrtBeginExternals":break;case"BrtSupSelf":break;case"BrtSupBookSrc":break;case"BrtExternSheet":break;case"BrtEndExternals":break;case"BrtName":break;case"BrtCalcProp":break;case"BrtUserBookView":break;case"BrtBeginPivotCacheIDs":break;case"BrtBeginPivotCacheID":break;case"BrtEndPivotCacheID":break;case"BrtEndPivotCacheIDs":break;case"BrtWebOpt":break;case"BrtFileRecover":break;case"BrtFileSharing":break;case"BrtBeginSmartTagTypes":break;case"BrtSmartTagType":break;case"BrtEndSmartTagTypes":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTArchID$":break;case"BrtWorkBookPr15":break;case"BrtFRTEnd":pass=false;break;case"BrtEndBook":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}});parse_wb_defaults(wb);return wb}function write_BUNDLESHS(ba,wb,opts){write_record(ba,"BrtBeginBundleShs");for(var idx=0;idx!=wb.SheetNames.length;++idx){var d={hsState:0,iTabID:idx+1,strRelID:"rId"+(idx+1),name:wb.SheetNames[idx]};write_record(ba,"BrtBundleSh",write_BrtBundleSh(d))}write_record(ba,"BrtEndBundleShs")}function write_BrtFileVersion(data,o){if(!o)o=new_buf(127);for(var i=0;i!=4;++i)o.write_shift(4,0);write_XLWideString("SheetJS",o);write_XLWideString(XLSX.version,o);write_XLWideString(XLSX.version,o);write_XLWideString("7262",o);o.length=o.l;return o}function write_BOOKVIEWS(ba,wb,opts){write_record(ba,"BrtBeginBookViews");write_record(ba,"BrtEndBookViews")}function write_BrtCalcProp(data,o){if(!o)o=new_buf(26);o.write_shift(4,0);o.write_shift(4,1);o.write_shift(4,0);write_Xnum(0,o);o.write_shift(-4,1023);o.write_shift(1,51);o.write_shift(1,0);return o}function write_BrtFileRecover(data,o){if(!o)o=new_buf(1);o.write_shift(1,0);return o}function write_wb_bin(wb,opts){var ba=buf_array();write_record(ba,"BrtBeginBook");write_record(ba,"BrtFileVersion",write_BrtFileVersion());write_record(ba,"BrtWbProp",write_BrtWbProp());write_BOOKVIEWS(ba,wb,opts);write_BUNDLESHS(ba,wb,opts);write_record(ba,"BrtCalcProp",write_BrtCalcProp());write_record(ba,"BrtFileRecover",write_BrtFileRecover());write_record(ba,"BrtEndBook");return ba.end()}function parse_wb(data,name,opts){return(name.substr(-4)===".bin"?parse_wb_bin:parse_wb_xml)(data,opts)}function parse_ws(data,name,opts,rels){return(name.substr(-4)===".bin"?parse_ws_bin:parse_ws_xml)(data,opts,rels)}function parse_sty(data,name,opts){return(name.substr(-4)===".bin"?parse_sty_bin:parse_sty_xml)(data,opts)}function parse_theme(data,name,opts){return parse_theme_xml(data,opts)}function parse_sst(data,name,opts){return(name.substr(-4)===".bin"?parse_sst_bin:parse_sst_xml)(data,opts)}function parse_cmnt(data,name,opts){return(name.substr(-4)===".bin"?parse_comments_bin:parse_comments_xml)(data,opts)}function parse_cc(data,name,opts){return(name.substr(-4)===".bin"?parse_cc_bin:parse_cc_xml)(data,opts)}function write_wb(wb,name,opts){return(name.substr(-4)===".bin"?write_wb_bin:write_wb_xml)(wb,opts)}function write_ws(data,name,opts,wb){return(name.substr(-4)===".bin"?write_ws_bin:write_ws_xml)(data,opts,wb)}function write_sty(data,name,opts){return(name.substr(-4)===".bin"?write_sty_bin:write_sty_xml)(data,opts)}function write_sst(data,name,opts){return(name.substr(-4)===".bin"?write_sst_bin:write_sst_xml)(data,opts)}var RecordEnum={0:{n:"BrtRowHdr",f:parse_BrtRowHdr},1:{n:"BrtCellBlank",f:parse_BrtCellBlank},2:{n:"BrtCellRk",f:parse_BrtCellRk},3:{n:"BrtCellError",f:parse_BrtCellError},4:{n:"BrtCellBool",f:parse_BrtCellBool},5:{n:"BrtCellReal",f:parse_BrtCellReal},6:{n:"BrtCellSt",f:parse_BrtCellSt},7:{n:"BrtCellIsst",f:parse_BrtCellIsst},8:{n:"BrtFmlaString",f:parse_BrtFmlaString},9:{n:"BrtFmlaNum",f:parse_BrtFmlaNum},10:{n:"BrtFmlaBool",f:parse_BrtFmlaBool},11:{n:"BrtFmlaError",f:parse_BrtFmlaError},16:{n:"BrtFRTArchID$",f:parse_BrtFRTArchID$},19:{n:"BrtSSTItem",f:parse_RichStr},20:{n:"BrtPCDIMissing",f:parsenoop},21:{n:"BrtPCDINumber",f:parsenoop},22:{n:"BrtPCDIBoolean",f:parsenoop},23:{n:"BrtPCDIError",f:parsenoop},24:{n:"BrtPCDIString",f:parsenoop},25:{n:"BrtPCDIDatetime",f:parsenoop},26:{n:"BrtPCDIIndex",f:parsenoop},27:{n:"BrtPCDIAMissing",f:parsenoop},28:{n:"BrtPCDIANumber",f:parsenoop},29:{n:"BrtPCDIABoolean",f:parsenoop},30:{n:"BrtPCDIAError",f:parsenoop},31:{n:"BrtPCDIAString",f:parsenoop},32:{n:"BrtPCDIADatetime",f:parsenoop},33:{n:"BrtPCRRecord",f:parsenoop},34:{n:"BrtPCRRecordDt",f:parsenoop},35:{n:"BrtFRTBegin",f:parsenoop},36:{n:"BrtFRTEnd",f:parsenoop},37:{n:"BrtACBegin",f:parsenoop},38:{n:"BrtACEnd",f:parsenoop},39:{n:"BrtName",f:parsenoop},40:{n:"BrtIndexRowBlock",f:parsenoop},42:{n:"BrtIndexBlock",f:parsenoop},43:{n:"BrtFont",f:parse_BrtFont},44:{n:"BrtFmt",f:parse_BrtFmt},45:{n:"BrtFill",f:parsenoop},46:{n:"BrtBorder",f:parsenoop},47:{n:"BrtXF",f:parse_BrtXF},48:{n:"BrtStyle",f:parsenoop},49:{n:"BrtCellMeta",f:parsenoop},50:{n:"BrtValueMeta",f:parsenoop},51:{n:"BrtMdb",f:parsenoop},52:{n:"BrtBeginFmd",f:parsenoop},53:{n:"BrtEndFmd",f:parsenoop},54:{n:"BrtBeginMdx",f:parsenoop},55:{n:"BrtEndMdx",f:parsenoop},56:{n:"BrtBeginMdxTuple",f:parsenoop},57:{n:"BrtEndMdxTuple",f:parsenoop},58:{n:"BrtMdxMbrIstr",f:parsenoop},59:{n:"BrtStr",f:parsenoop},60:{n:"BrtColInfo",f:parsenoop},62:{n:"BrtCellRString",f:parsenoop},63:{n:"BrtCalcChainItem$",f:parse_BrtCalcChainItem$},64:{n:"BrtDVal",f:parsenoop},65:{n:"BrtSxvcellNum",f:parsenoop},66:{n:"BrtSxvcellStr",f:parsenoop},67:{n:"BrtSxvcellBool",f:parsenoop},68:{n:"BrtSxvcellErr",f:parsenoop},69:{n:"BrtSxvcellDate",f:parsenoop},70:{n:"BrtSxvcellNil",f:parsenoop},128:{n:"BrtFileVersion",f:parsenoop},129:{n:"BrtBeginSheet",f:parsenoop},130:{n:"BrtEndSheet",f:parsenoop},131:{n:"BrtBeginBook",f:parsenoop,p:0},132:{n:"BrtEndBook",f:parsenoop},133:{n:"BrtBeginWsViews",f:parsenoop},134:{n:"BrtEndWsViews",f:parsenoop},135:{n:"BrtBeginBookViews",f:parsenoop},136:{n:"BrtEndBookViews",f:parsenoop},137:{n:"BrtBeginWsView",f:parsenoop},138:{n:"BrtEndWsView",f:parsenoop},139:{n:"BrtBeginCsViews",f:parsenoop},140:{n:"BrtEndCsViews",f:parsenoop},141:{n:"BrtBeginCsView",f:parsenoop},142:{n:"BrtEndCsView",f:parsenoop},143:{n:"BrtBeginBundleShs",f:parsenoop},144:{n:"BrtEndBundleShs",f:parsenoop},145:{n:"BrtBeginSheetData",f:parsenoop},146:{n:"BrtEndSheetData",f:parsenoop},147:{n:"BrtWsProp",f:parse_BrtWsProp},148:{n:"BrtWsDim",f:parse_BrtWsDim,p:16},151:{n:"BrtPane",f:parsenoop},152:{n:"BrtSel",f:parsenoop},153:{n:"BrtWbProp",f:parse_BrtWbProp},154:{n:"BrtWbFactoid",f:parsenoop},155:{n:"BrtFileRecover",f:parsenoop},156:{n:"BrtBundleSh",f:parse_BrtBundleSh},157:{n:"BrtCalcProp",f:parsenoop},158:{n:"BrtBookView",f:parsenoop},159:{n:"BrtBeginSst",f:parse_BrtBeginSst},160:{n:"BrtEndSst",f:parsenoop},161:{n:"BrtBeginAFilter",f:parsenoop},162:{n:"BrtEndAFilter",f:parsenoop},163:{n:"BrtBeginFilterColumn",f:parsenoop},164:{n:"BrtEndFilterColumn",f:parsenoop},165:{n:"BrtBeginFilters",f:parsenoop},166:{n:"BrtEndFilters",f:parsenoop},167:{n:"BrtFilter",f:parsenoop},168:{n:"BrtColorFilter",f:parsenoop},169:{n:"BrtIconFilter",f:parsenoop},170:{n:"BrtTop10Filter",f:parsenoop},171:{n:"BrtDynamicFilter",f:parsenoop},172:{n:"BrtBeginCustomFilters",f:parsenoop},173:{n:"BrtEndCustomFilters",f:parsenoop},174:{n:"BrtCustomFilter",f:parsenoop},175:{n:"BrtAFilterDateGroupItem",f:parsenoop},176:{n:"BrtMergeCell",f:parse_BrtMergeCell},177:{n:"BrtBeginMergeCells",f:parsenoop},178:{n:"BrtEndMergeCells",f:parsenoop},179:{n:"BrtBeginPivotCacheDef",f:parsenoop},180:{n:"BrtEndPivotCacheDef",f:parsenoop},181:{n:"BrtBeginPCDFields",f:parsenoop},182:{n:"BrtEndPCDFields",f:parsenoop},183:{n:"BrtBeginPCDField",f:parsenoop},184:{n:"BrtEndPCDField",f:parsenoop},185:{n:"BrtBeginPCDSource",f:parsenoop},186:{n:"BrtEndPCDSource",f:parsenoop},187:{n:"BrtBeginPCDSRange",f:parsenoop},188:{n:"BrtEndPCDSRange",f:parsenoop},189:{n:"BrtBeginPCDFAtbl",f:parsenoop},190:{n:"BrtEndPCDFAtbl",f:parsenoop},191:{n:"BrtBeginPCDIRun",f:parsenoop},192:{n:"BrtEndPCDIRun",f:parsenoop},193:{n:"BrtBeginPivotCacheRecords",f:parsenoop},194:{n:"BrtEndPivotCacheRecords",f:parsenoop},195:{n:"BrtBeginPCDHierarchies",f:parsenoop},196:{n:"BrtEndPCDHierarchies",f:parsenoop},197:{n:"BrtBeginPCDHierarchy",f:parsenoop},198:{n:"BrtEndPCDHierarchy",f:parsenoop},199:{n:"BrtBeginPCDHFieldsUsage",f:parsenoop},200:{n:"BrtEndPCDHFieldsUsage",f:parsenoop},201:{n:"BrtBeginExtConnection",f:parsenoop},202:{n:"BrtEndExtConnection",f:parsenoop},203:{n:"BrtBeginECDbProps",f:parsenoop},204:{n:"BrtEndECDbProps",f:parsenoop},205:{n:"BrtBeginECOlapProps",f:parsenoop},206:{n:"BrtEndECOlapProps",f:parsenoop},207:{n:"BrtBeginPCDSConsol",f:parsenoop},208:{n:"BrtEndPCDSConsol",f:parsenoop},209:{n:"BrtBeginPCDSCPages",f:parsenoop},210:{n:"BrtEndPCDSCPages",f:parsenoop},211:{n:"BrtBeginPCDSCPage",f:parsenoop},212:{n:"BrtEndPCDSCPage",f:parsenoop},213:{n:"BrtBeginPCDSCPItem",f:parsenoop},214:{n:"BrtEndPCDSCPItem",f:parsenoop},215:{n:"BrtBeginPCDSCSets",f:parsenoop},216:{n:"BrtEndPCDSCSets",f:parsenoop},217:{n:"BrtBeginPCDSCSet",f:parsenoop},218:{n:"BrtEndPCDSCSet",f:parsenoop},219:{n:"BrtBeginPCDFGroup",f:parsenoop},220:{n:"BrtEndPCDFGroup",f:parsenoop},221:{n:"BrtBeginPCDFGItems",f:parsenoop},222:{n:"BrtEndPCDFGItems",f:parsenoop},223:{n:"BrtBeginPCDFGRange",f:parsenoop},224:{n:"BrtEndPCDFGRange",f:parsenoop},225:{n:"BrtBeginPCDFGDiscrete",f:parsenoop},226:{n:"BrtEndPCDFGDiscrete",f:parsenoop},227:{n:"BrtBeginPCDSDTupleCache",f:parsenoop},228:{n:"BrtEndPCDSDTupleCache",f:parsenoop},229:{n:"BrtBeginPCDSDTCEntries",f:parsenoop},230:{n:"BrtEndPCDSDTCEntries",f:parsenoop},231:{n:"BrtBeginPCDSDTCEMembers",f:parsenoop},232:{n:"BrtEndPCDSDTCEMembers",f:parsenoop},233:{n:"BrtBeginPCDSDTCEMember",f:parsenoop},234:{n:"BrtEndPCDSDTCEMember",f:parsenoop},235:{n:"BrtBeginPCDSDTCQueries",f:parsenoop},236:{n:"BrtEndPCDSDTCQueries",f:parsenoop},237:{n:"BrtBeginPCDSDTCQuery",f:parsenoop},238:{n:"BrtEndPCDSDTCQuery",f:parsenoop},239:{n:"BrtBeginPCDSDTCSets",f:parsenoop},240:{n:"BrtEndPCDSDTCSets",f:parsenoop},241:{n:"BrtBeginPCDSDTCSet",f:parsenoop},242:{n:"BrtEndPCDSDTCSet",f:parsenoop},243:{n:"BrtBeginPCDCalcItems",f:parsenoop},244:{n:"BrtEndPCDCalcItems",f:parsenoop},245:{n:"BrtBeginPCDCalcItem",f:parsenoop},246:{n:"BrtEndPCDCalcItem",f:parsenoop},247:{n:"BrtBeginPRule",f:parsenoop},248:{n:"BrtEndPRule",f:parsenoop},249:{n:"BrtBeginPRFilters",f:parsenoop},250:{n:"BrtEndPRFilters",f:parsenoop},251:{n:"BrtBeginPRFilter",f:parsenoop},252:{n:"BrtEndPRFilter",f:parsenoop},253:{n:"BrtBeginPNames",f:parsenoop},254:{n:"BrtEndPNames",f:parsenoop},255:{n:"BrtBeginPName",f:parsenoop},256:{n:"BrtEndPName",f:parsenoop},257:{n:"BrtBeginPNPairs",f:parsenoop},258:{n:"BrtEndPNPairs",f:parsenoop},259:{n:"BrtBeginPNPair",f:parsenoop},260:{n:"BrtEndPNPair",f:parsenoop},261:{n:"BrtBeginECWebProps",f:parsenoop},262:{n:"BrtEndECWebProps",f:parsenoop},263:{n:"BrtBeginEcWpTables",f:parsenoop},264:{n:"BrtEndECWPTables",f:parsenoop},265:{n:"BrtBeginECParams",f:parsenoop},266:{n:"BrtEndECParams",f:parsenoop},267:{n:"BrtBeginECParam",f:parsenoop},268:{n:"BrtEndECParam",f:parsenoop},269:{n:"BrtBeginPCDKPIs",f:parsenoop},270:{n:"BrtEndPCDKPIs",f:parsenoop},271:{n:"BrtBeginPCDKPI",f:parsenoop},272:{n:"BrtEndPCDKPI",f:parsenoop},273:{n:"BrtBeginDims",f:parsenoop},274:{n:"BrtEndDims",f:parsenoop},275:{n:"BrtBeginDim",f:parsenoop},276:{n:"BrtEndDim",f:parsenoop},277:{n:"BrtIndexPartEnd",f:parsenoop},278:{n:"BrtBeginStyleSheet",f:parsenoop},279:{n:"BrtEndStyleSheet",f:parsenoop},280:{n:"BrtBeginSXView",f:parsenoop},281:{n:"BrtEndSXVI",f:parsenoop},282:{n:"BrtBeginSXVI",f:parsenoop},283:{n:"BrtBeginSXVIs",f:parsenoop},284:{n:"BrtEndSXVIs",f:parsenoop},285:{n:"BrtBeginSXVD",f:parsenoop},286:{n:"BrtEndSXVD",f:parsenoop},287:{n:"BrtBeginSXVDs",f:parsenoop},288:{n:"BrtEndSXVDs",f:parsenoop},289:{n:"BrtBeginSXPI",f:parsenoop},290:{n:"BrtEndSXPI",f:parsenoop},291:{n:"BrtBeginSXPIs",f:parsenoop},292:{n:"BrtEndSXPIs",f:parsenoop},293:{n:"BrtBeginSXDI",f:parsenoop},294:{n:"BrtEndSXDI",f:parsenoop},295:{n:"BrtBeginSXDIs",f:parsenoop},296:{n:"BrtEndSXDIs",f:parsenoop},297:{n:"BrtBeginSXLI",f:parsenoop},298:{n:"BrtEndSXLI",f:parsenoop},299:{n:"BrtBeginSXLIRws",f:parsenoop},300:{n:"BrtEndSXLIRws",f:parsenoop},301:{n:"BrtBeginSXLICols",f:parsenoop},302:{n:"BrtEndSXLICols",f:parsenoop},303:{n:"BrtBeginSXFormat",f:parsenoop},304:{n:"BrtEndSXFormat",f:parsenoop},305:{n:"BrtBeginSXFormats",f:parsenoop},306:{n:"BrtEndSxFormats",f:parsenoop},307:{n:"BrtBeginSxSelect",f:parsenoop},308:{n:"BrtEndSxSelect",f:parsenoop},309:{n:"BrtBeginISXVDRws",f:parsenoop},310:{n:"BrtEndISXVDRws",f:parsenoop},311:{n:"BrtBeginISXVDCols",f:parsenoop},312:{n:"BrtEndISXVDCols",f:parsenoop},313:{n:"BrtEndSXLocation",f:parsenoop},314:{n:"BrtBeginSXLocation",f:parsenoop},315:{n:"BrtEndSXView",f:parsenoop},316:{n:"BrtBeginSXTHs",f:parsenoop},317:{n:"BrtEndSXTHs",f:parsenoop},318:{n:"BrtBeginSXTH",f:parsenoop},319:{n:"BrtEndSXTH",f:parsenoop},320:{n:"BrtBeginISXTHRws",f:parsenoop},321:{n:"BrtEndISXTHRws",f:parsenoop},322:{n:"BrtBeginISXTHCols",f:parsenoop},323:{n:"BrtEndISXTHCols",f:parsenoop},324:{n:"BrtBeginSXTDMPS",f:parsenoop},325:{n:"BrtEndSXTDMPs",f:parsenoop},326:{n:"BrtBeginSXTDMP",f:parsenoop},327:{n:"BrtEndSXTDMP",f:parsenoop},328:{n:"BrtBeginSXTHItems",f:parsenoop},329:{n:"BrtEndSXTHItems",f:parsenoop},330:{n:"BrtBeginSXTHItem",f:parsenoop},331:{n:"BrtEndSXTHItem",f:parsenoop},332:{n:"BrtBeginMetadata",f:parsenoop},333:{n:"BrtEndMetadata",f:parsenoop},334:{n:"BrtBeginEsmdtinfo",f:parsenoop},335:{n:"BrtMdtinfo",f:parsenoop},336:{n:"BrtEndEsmdtinfo",f:parsenoop},337:{n:"BrtBeginEsmdb",f:parsenoop},338:{n:"BrtEndEsmdb",f:parsenoop},339:{n:"BrtBeginEsfmd",f:parsenoop},340:{n:"BrtEndEsfmd",f:parsenoop},341:{n:"BrtBeginSingleCells",f:parsenoop},342:{n:"BrtEndSingleCells",f:parsenoop},343:{n:"BrtBeginList",f:parsenoop},344:{n:"BrtEndList",f:parsenoop},345:{n:"BrtBeginListCols",f:parsenoop},346:{n:"BrtEndListCols",f:parsenoop},347:{n:"BrtBeginListCol",f:parsenoop},348:{n:"BrtEndListCol",f:parsenoop},349:{n:"BrtBeginListXmlCPr",f:parsenoop},350:{n:"BrtEndListXmlCPr",f:parsenoop},351:{n:"BrtListCCFmla",f:parsenoop},352:{n:"BrtListTrFmla",f:parsenoop},353:{n:"BrtBeginExternals",f:parsenoop},354:{n:"BrtEndExternals",f:parsenoop},355:{n:"BrtSupBookSrc",f:parsenoop},357:{n:"BrtSupSelf",f:parsenoop},358:{n:"BrtSupSame",f:parsenoop},359:{n:"BrtSupTabs",f:parsenoop},360:{n:"BrtBeginSupBook",f:parsenoop},361:{n:"BrtPlaceholderName",f:parsenoop},362:{n:"BrtExternSheet",f:parsenoop},363:{n:"BrtExternTableStart",f:parsenoop},364:{n:"BrtExternTableEnd",f:parsenoop},366:{n:"BrtExternRowHdr",f:parsenoop},367:{n:"BrtExternCellBlank",f:parsenoop},368:{n:"BrtExternCellReal",f:parsenoop},369:{n:"BrtExternCellBool",f:parsenoop},370:{n:"BrtExternCellError",f:parsenoop},371:{n:"BrtExternCellString",f:parsenoop},372:{n:"BrtBeginEsmdx",f:parsenoop},373:{n:"BrtEndEsmdx",f:parsenoop},374:{n:"BrtBeginMdxSet",f:parsenoop},375:{n:"BrtEndMdxSet",f:parsenoop},376:{n:"BrtBeginMdxMbrProp",f:parsenoop},377:{n:"BrtEndMdxMbrProp",f:parsenoop},378:{n:"BrtBeginMdxKPI",f:parsenoop},379:{n:"BrtEndMdxKPI",f:parsenoop},380:{n:"BrtBeginEsstr",f:parsenoop},381:{n:"BrtEndEsstr",f:parsenoop},382:{n:"BrtBeginPRFItem",f:parsenoop},383:{n:"BrtEndPRFItem",f:parsenoop},384:{n:"BrtBeginPivotCacheIDs",f:parsenoop},385:{n:"BrtEndPivotCacheIDs",f:parsenoop},386:{n:"BrtBeginPivotCacheID",f:parsenoop},387:{n:"BrtEndPivotCacheID",f:parsenoop},388:{n:"BrtBeginISXVIs",f:parsenoop},389:{n:"BrtEndISXVIs",f:parsenoop},390:{n:"BrtBeginColInfos",f:parsenoop},391:{n:"BrtEndColInfos",f:parsenoop},392:{n:"BrtBeginRwBrk",f:parsenoop},393:{n:"BrtEndRwBrk",f:parsenoop},394:{n:"BrtBeginColBrk",f:parsenoop},395:{n:"BrtEndColBrk",f:parsenoop},396:{n:"BrtBrk",f:parsenoop},397:{n:"BrtUserBookView",f:parsenoop},398:{n:"BrtInfo",f:parsenoop},399:{n:"BrtCUsr",f:parsenoop},400:{n:"BrtUsr",f:parsenoop},401:{n:"BrtBeginUsers",f:parsenoop},403:{n:"BrtEOF",f:parsenoop},404:{n:"BrtUCR",f:parsenoop},405:{n:"BrtRRInsDel",f:parsenoop},406:{n:"BrtRREndInsDel",f:parsenoop},407:{n:"BrtRRMove",f:parsenoop},408:{n:"BrtRREndMove",f:parsenoop},409:{n:"BrtRRChgCell",f:parsenoop},410:{n:"BrtRREndChgCell",f:parsenoop},411:{n:"BrtRRHeader",f:parsenoop},412:{n:"BrtRRUserView",f:parsenoop},413:{n:"BrtRRRenSheet",f:parsenoop},414:{n:"BrtRRInsertSh",f:parsenoop},415:{n:"BrtRRDefName",f:parsenoop},416:{n:"BrtRRNote",f:parsenoop},417:{n:"BrtRRConflict",f:parsenoop},418:{n:"BrtRRTQSIF",f:parsenoop},419:{n:"BrtRRFormat",f:parsenoop},420:{n:"BrtRREndFormat",f:parsenoop},421:{n:"BrtRRAutoFmt",f:parsenoop},422:{n:"BrtBeginUserShViews",f:parsenoop},423:{n:"BrtBeginUserShView",f:parsenoop},424:{n:"BrtEndUserShView",f:parsenoop},425:{n:"BrtEndUserShViews",f:parsenoop},426:{n:"BrtArrFmla",f:parsenoop},427:{n:"BrtShrFmla",f:parsenoop},428:{n:"BrtTable",f:parsenoop},429:{n:"BrtBeginExtConnections",f:parsenoop},430:{n:"BrtEndExtConnections",f:parsenoop},431:{n:"BrtBeginPCDCalcMems",f:parsenoop},432:{n:"BrtEndPCDCalcMems",f:parsenoop},433:{n:"BrtBeginPCDCalcMem",f:parsenoop},434:{n:"BrtEndPCDCalcMem",f:parsenoop},435:{n:"BrtBeginPCDHGLevels",f:parsenoop},436:{n:"BrtEndPCDHGLevels",f:parsenoop},437:{n:"BrtBeginPCDHGLevel",f:parsenoop},438:{n:"BrtEndPCDHGLevel",f:parsenoop},439:{n:"BrtBeginPCDHGLGroups",f:parsenoop},440:{n:"BrtEndPCDHGLGroups",f:parsenoop},441:{n:"BrtBeginPCDHGLGroup",f:parsenoop},442:{n:"BrtEndPCDHGLGroup",f:parsenoop},443:{n:"BrtBeginPCDHGLGMembers",f:parsenoop},444:{n:"BrtEndPCDHGLGMembers",f:parsenoop},445:{n:"BrtBeginPCDHGLGMember",f:parsenoop},446:{n:"BrtEndPCDHGLGMember",f:parsenoop},447:{n:"BrtBeginQSI",f:parsenoop},448:{n:"BrtEndQSI",f:parsenoop},449:{n:"BrtBeginQSIR",f:parsenoop},450:{n:"BrtEndQSIR",f:parsenoop},451:{n:"BrtBeginDeletedNames",f:parsenoop},452:{n:"BrtEndDeletedNames",f:parsenoop},453:{n:"BrtBeginDeletedName",f:parsenoop},454:{n:"BrtEndDeletedName",f:parsenoop},455:{n:"BrtBeginQSIFs",f:parsenoop},456:{n:"BrtEndQSIFs",f:parsenoop},457:{n:"BrtBeginQSIF",f:parsenoop},458:{n:"BrtEndQSIF",f:parsenoop},459:{n:"BrtBeginAutoSortScope",f:parsenoop},460:{n:"BrtEndAutoSortScope",f:parsenoop},461:{n:"BrtBeginConditionalFormatting",f:parsenoop},462:{n:"BrtEndConditionalFormatting",f:parsenoop},463:{n:"BrtBeginCFRule",f:parsenoop},464:{n:"BrtEndCFRule",f:parsenoop},465:{n:"BrtBeginIconSet",f:parsenoop},466:{n:"BrtEndIconSet",f:parsenoop},467:{n:"BrtBeginDatabar",f:parsenoop},468:{n:"BrtEndDatabar",f:parsenoop},469:{n:"BrtBeginColorScale",f:parsenoop},470:{n:"BrtEndColorScale",f:parsenoop},471:{n:"BrtCFVO",f:parsenoop},472:{n:"BrtExternValueMeta",f:parsenoop},473:{n:"BrtBeginColorPalette",f:parsenoop},474:{n:"BrtEndColorPalette",f:parsenoop},475:{n:"BrtIndexedColor",f:parsenoop},476:{n:"BrtMargins",f:parsenoop},477:{n:"BrtPrintOptions",f:parsenoop},478:{n:"BrtPageSetup",f:parsenoop},479:{n:"BrtBeginHeaderFooter",f:parsenoop},480:{n:"BrtEndHeaderFooter",f:parsenoop},481:{n:"BrtBeginSXCrtFormat",f:parsenoop},482:{n:"BrtEndSXCrtFormat",f:parsenoop},483:{n:"BrtBeginSXCrtFormats",f:parsenoop},484:{n:"BrtEndSXCrtFormats",f:parsenoop},485:{n:"BrtWsFmtInfo",f:parsenoop},486:{n:"BrtBeginMgs",f:parsenoop},487:{n:"BrtEndMGs",f:parsenoop},488:{n:"BrtBeginMGMaps",f:parsenoop},489:{n:"BrtEndMGMaps",f:parsenoop},490:{n:"BrtBeginMG",f:parsenoop},491:{n:"BrtEndMG",f:parsenoop},492:{n:"BrtBeginMap",f:parsenoop},493:{n:"BrtEndMap",f:parsenoop},494:{n:"BrtHLink",f:parse_BrtHLink},495:{n:"BrtBeginDCon",f:parsenoop},496:{n:"BrtEndDCon",f:parsenoop},497:{n:"BrtBeginDRefs",f:parsenoop},498:{n:"BrtEndDRefs",f:parsenoop},499:{n:"BrtDRef",f:parsenoop},500:{n:"BrtBeginScenMan",f:parsenoop},501:{n:"BrtEndScenMan",f:parsenoop},502:{n:"BrtBeginSct",f:parsenoop},503:{n:"BrtEndSct",f:parsenoop},504:{n:"BrtSlc",f:parsenoop},505:{n:"BrtBeginDXFs",f:parsenoop},506:{n:"BrtEndDXFs",f:parsenoop},507:{n:"BrtDXF",f:parsenoop},508:{n:"BrtBeginTableStyles",f:parsenoop},509:{n:"BrtEndTableStyles",f:parsenoop},510:{n:"BrtBeginTableStyle",f:parsenoop},511:{n:"BrtEndTableStyle",f:parsenoop},512:{n:"BrtTableStyleElement",f:parsenoop},513:{n:"BrtTableStyleClient",f:parsenoop},514:{n:"BrtBeginVolDeps",f:parsenoop},515:{n:"BrtEndVolDeps",f:parsenoop},516:{n:"BrtBeginVolType",f:parsenoop},517:{n:"BrtEndVolType",f:parsenoop},518:{n:"BrtBeginVolMain",f:parsenoop},519:{n:"BrtEndVolMain",f:parsenoop},520:{n:"BrtBeginVolTopic",f:parsenoop},521:{n:"BrtEndVolTopic",f:parsenoop},522:{n:"BrtVolSubtopic",f:parsenoop},523:{n:"BrtVolRef",f:parsenoop},524:{n:"BrtVolNum",f:parsenoop},525:{n:"BrtVolErr",f:parsenoop},526:{n:"BrtVolStr",f:parsenoop},527:{n:"BrtVolBool",f:parsenoop},528:{n:"BrtBeginCalcChain$",f:parsenoop},529:{n:"BrtEndCalcChain$",f:parsenoop},530:{n:"BrtBeginSortState",f:parsenoop},531:{n:"BrtEndSortState",f:parsenoop},532:{n:"BrtBeginSortCond",f:parsenoop},533:{n:"BrtEndSortCond",f:parsenoop},534:{n:"BrtBookProtection",f:parsenoop},535:{n:"BrtSheetProtection",f:parsenoop},536:{n:"BrtRangeProtection",f:parsenoop},537:{n:"BrtPhoneticInfo",f:parsenoop},538:{n:"BrtBeginECTxtWiz",f:parsenoop},539:{n:"BrtEndECTxtWiz",f:parsenoop},540:{n:"BrtBeginECTWFldInfoLst",f:parsenoop},541:{n:"BrtEndECTWFldInfoLst",f:parsenoop},542:{n:"BrtBeginECTwFldInfo",f:parsenoop},548:{n:"BrtFileSharing",f:parsenoop},549:{n:"BrtOleSize",f:parsenoop},550:{n:"BrtDrawing",f:parsenoop},551:{n:"BrtLegacyDrawing",f:parsenoop},552:{n:"BrtLegacyDrawingHF",f:parsenoop},553:{n:"BrtWebOpt",f:parsenoop},554:{n:"BrtBeginWebPubItems",f:parsenoop},555:{n:"BrtEndWebPubItems",f:parsenoop},556:{n:"BrtBeginWebPubItem",f:parsenoop},557:{n:"BrtEndWebPubItem",f:parsenoop},558:{n:"BrtBeginSXCondFmt",f:parsenoop},559:{n:"BrtEndSXCondFmt",f:parsenoop},560:{n:"BrtBeginSXCondFmts",f:parsenoop},561:{n:"BrtEndSXCondFmts",f:parsenoop},562:{n:"BrtBkHim",f:parsenoop},564:{n:"BrtColor",f:parsenoop},565:{n:"BrtBeginIndexedColors",f:parsenoop},566:{n:"BrtEndIndexedColors",f:parsenoop},569:{n:"BrtBeginMRUColors",f:parsenoop},570:{n:"BrtEndMRUColors",f:parsenoop},572:{n:"BrtMRUColor",f:parsenoop},573:{n:"BrtBeginDVals",f:parsenoop},574:{n:"BrtEndDVals",f:parsenoop},577:{n:"BrtSupNameStart",f:parsenoop},578:{n:"BrtSupNameValueStart",f:parsenoop},579:{n:"BrtSupNameValueEnd",f:parsenoop},580:{n:"BrtSupNameNum",f:parsenoop},581:{n:"BrtSupNameErr",f:parsenoop},582:{n:"BrtSupNameSt",f:parsenoop},583:{n:"BrtSupNameNil",f:parsenoop},584:{n:"BrtSupNameBool",f:parsenoop},585:{n:"BrtSupNameFmla",f:parsenoop},586:{n:"BrtSupNameBits",f:parsenoop},587:{n:"BrtSupNameEnd",f:parsenoop},588:{n:"BrtEndSupBook",f:parsenoop},589:{n:"BrtCellSmartTagProperty",f:parsenoop},590:{n:"BrtBeginCellSmartTag",f:parsenoop},591:{n:"BrtEndCellSmartTag",f:parsenoop},592:{n:"BrtBeginCellSmartTags",f:parsenoop},593:{n:"BrtEndCellSmartTags",f:parsenoop},594:{n:"BrtBeginSmartTags",f:parsenoop},595:{n:"BrtEndSmartTags",f:parsenoop},596:{n:"BrtSmartTagType",f:parsenoop},597:{n:"BrtBeginSmartTagTypes",f:parsenoop},598:{n:"BrtEndSmartTagTypes",f:parsenoop},599:{n:"BrtBeginSXFilters",f:parsenoop},600:{n:"BrtEndSXFilters",f:parsenoop},601:{n:"BrtBeginSXFILTER",f:parsenoop},602:{n:"BrtEndSXFilter",f:parsenoop},603:{n:"BrtBeginFills",f:parsenoop},604:{n:"BrtEndFills",f:parsenoop},605:{n:"BrtBeginCellWatches",f:parsenoop},606:{n:"BrtEndCellWatches",f:parsenoop},607:{n:"BrtCellWatch",f:parsenoop},608:{n:"BrtBeginCRErrs",f:parsenoop},609:{n:"BrtEndCRErrs",f:parsenoop},610:{n:"BrtCrashRecErr",f:parsenoop},611:{n:"BrtBeginFonts",f:parsenoop},612:{n:"BrtEndFonts",f:parsenoop},613:{n:"BrtBeginBorders",f:parsenoop},614:{n:"BrtEndBorders",f:parsenoop},615:{n:"BrtBeginFmts",f:parsenoop},616:{n:"BrtEndFmts",f:parsenoop},617:{n:"BrtBeginCellXFs",f:parsenoop},618:{n:"BrtEndCellXFs",f:parsenoop},619:{n:"BrtBeginStyles",f:parsenoop},620:{n:"BrtEndStyles",f:parsenoop},625:{n:"BrtBigName",f:parsenoop},626:{n:"BrtBeginCellStyleXFs",f:parsenoop},627:{n:"BrtEndCellStyleXFs",f:parsenoop},628:{n:"BrtBeginComments",f:parsenoop},629:{n:"BrtEndComments",f:parsenoop},630:{n:"BrtBeginCommentAuthors",f:parsenoop},631:{n:"BrtEndCommentAuthors",f:parsenoop},632:{n:"BrtCommentAuthor",f:parse_BrtCommentAuthor},633:{n:"BrtBeginCommentList",f:parsenoop},634:{n:"BrtEndCommentList",f:parsenoop},635:{n:"BrtBeginComment",f:parse_BrtBeginComment},636:{n:"BrtEndComment",f:parsenoop},637:{n:"BrtCommentText",f:parse_BrtCommentText},638:{n:"BrtBeginOleObjects",f:parsenoop},639:{n:"BrtOleObject",f:parsenoop},640:{n:"BrtEndOleObjects",f:parsenoop},641:{n:"BrtBeginSxrules",f:parsenoop},642:{n:"BrtEndSxRules",f:parsenoop},643:{n:"BrtBeginActiveXControls",f:parsenoop},644:{n:"BrtActiveX",f:parsenoop},645:{n:"BrtEndActiveXControls",f:parsenoop},646:{n:"BrtBeginPCDSDTCEMembersSortBy",f:parsenoop},648:{n:"BrtBeginCellIgnoreECs",f:parsenoop},649:{n:"BrtCellIgnoreEC",f:parsenoop},650:{n:"BrtEndCellIgnoreECs",f:parsenoop},651:{n:"BrtCsProp",f:parsenoop},652:{n:"BrtCsPageSetup",f:parsenoop},653:{n:"BrtBeginUserCsViews",f:parsenoop},654:{n:"BrtEndUserCsViews",f:parsenoop},655:{n:"BrtBeginUserCsView",f:parsenoop},656:{n:"BrtEndUserCsView",f:parsenoop},657:{n:"BrtBeginPcdSFCIEntries",f:parsenoop},658:{n:"BrtEndPCDSFCIEntries",f:parsenoop},659:{n:"BrtPCDSFCIEntry",f:parsenoop},660:{n:"BrtBeginListParts",f:parsenoop},661:{n:"BrtListPart",f:parsenoop},662:{n:"BrtEndListParts",f:parsenoop},663:{n:"BrtSheetCalcProp",f:parsenoop},664:{n:"BrtBeginFnGroup",f:parsenoop},665:{n:"BrtFnGroup",f:parsenoop},666:{n:"BrtEndFnGroup",f:parsenoop},667:{n:"BrtSupAddin",f:parsenoop},668:{n:"BrtSXTDMPOrder",f:parsenoop},669:{n:"BrtCsProtection",f:parsenoop},671:{n:"BrtBeginWsSortMap",f:parsenoop},672:{n:"BrtEndWsSortMap",f:parsenoop},673:{n:"BrtBeginRRSort",f:parsenoop},674:{n:"BrtEndRRSort",f:parsenoop},675:{n:"BrtRRSortItem",f:parsenoop},676:{n:"BrtFileSharingIso",f:parsenoop},677:{n:"BrtBookProtectionIso",f:parsenoop},678:{n:"BrtSheetProtectionIso",f:parsenoop},679:{n:"BrtCsProtectionIso",f:parsenoop},680:{n:"BrtRangeProtectionIso",f:parsenoop},1024:{n:"BrtRwDescent",f:parsenoop},1025:{n:"BrtKnownFonts",f:parsenoop},1026:{n:"BrtBeginSXTupleSet",f:parsenoop},1027:{n:"BrtEndSXTupleSet",f:parsenoop},1028:{n:"BrtBeginSXTupleSetHeader",f:parsenoop},1029:{n:"BrtEndSXTupleSetHeader",f:parsenoop},1030:{n:"BrtSXTupleSetHeaderItem",f:parsenoop},1031:{n:"BrtBeginSXTupleSetData",f:parsenoop},1032:{n:"BrtEndSXTupleSetData",f:parsenoop},1033:{n:"BrtBeginSXTupleSetRow",f:parsenoop},1034:{n:"BrtEndSXTupleSetRow",f:parsenoop},1035:{n:"BrtSXTupleSetRowItem",f:parsenoop},1036:{n:"BrtNameExt",f:parsenoop},1037:{n:"BrtPCDH14",f:parsenoop},1038:{n:"BrtBeginPCDCalcMem14",f:parsenoop},1039:{n:"BrtEndPCDCalcMem14",f:parsenoop},1040:{n:"BrtSXTH14",f:parsenoop},1041:{n:"BrtBeginSparklineGroup",f:parsenoop},1042:{n:"BrtEndSparklineGroup",f:parsenoop},1043:{n:"BrtSparkline",f:parsenoop},1044:{n:"BrtSXDI14",f:parsenoop},1045:{n:"BrtWsFmtInfoEx14",f:parsenoop},1046:{n:"BrtBeginConditionalFormatting14",f:parsenoop},1047:{n:"BrtEndConditionalFormatting14",f:parsenoop},1048:{n:"BrtBeginCFRule14",f:parsenoop},1049:{n:"BrtEndCFRule14",f:parsenoop},1050:{n:"BrtCFVO14",f:parsenoop},1051:{n:"BrtBeginDatabar14",f:parsenoop},1052:{n:"BrtBeginIconSet14",f:parsenoop},1053:{n:"BrtDVal14",f:parsenoop},1054:{n:"BrtBeginDVals14",f:parsenoop},1055:{n:"BrtColor14",f:parsenoop},1056:{n:"BrtBeginSparklines",f:parsenoop},1057:{n:"BrtEndSparklines",f:parsenoop},1058:{n:"BrtBeginSparklineGroups",f:parsenoop},1059:{n:"BrtEndSparklineGroups",f:parsenoop},1061:{n:"BrtSXVD14",f:parsenoop},1062:{n:"BrtBeginSxview14",f:parsenoop},1063:{n:"BrtEndSxview14",f:parsenoop},1066:{n:"BrtBeginPCD14",f:parsenoop},1067:{n:"BrtEndPCD14",f:parsenoop},1068:{n:"BrtBeginExtConn14",f:parsenoop},1069:{n:"BrtEndExtConn14",f:parsenoop},1070:{n:"BrtBeginSlicerCacheIDs",f:parsenoop},1071:{n:"BrtEndSlicerCacheIDs",f:parsenoop},1072:{n:"BrtBeginSlicerCacheID",f:parsenoop},1073:{n:"BrtEndSlicerCacheID",f:parsenoop},1075:{n:"BrtBeginSlicerCache",f:parsenoop},1076:{n:"BrtEndSlicerCache",f:parsenoop},1077:{n:"BrtBeginSlicerCacheDef",f:parsenoop},1078:{n:"BrtEndSlicerCacheDef",f:parsenoop},1079:{n:"BrtBeginSlicersEx",f:parsenoop},1080:{n:"BrtEndSlicersEx",f:parsenoop},1081:{n:"BrtBeginSlicerEx",f:parsenoop},1082:{n:"BrtEndSlicerEx",f:parsenoop},1083:{n:"BrtBeginSlicer",f:parsenoop},1084:{n:"BrtEndSlicer",f:parsenoop},1085:{n:"BrtSlicerCachePivotTables",f:parsenoop},1086:{n:"BrtBeginSlicerCacheOlapImpl",f:parsenoop},1087:{n:"BrtEndSlicerCacheOlapImpl",f:parsenoop},1088:{n:"BrtBeginSlicerCacheLevelsData",f:parsenoop},1089:{n:"BrtEndSlicerCacheLevelsData",f:parsenoop},1090:{n:"BrtBeginSlicerCacheLevelData",f:parsenoop},1091:{n:"BrtEndSlicerCacheLevelData",f:parsenoop},1092:{n:"BrtBeginSlicerCacheSiRanges",f:parsenoop},1093:{n:"BrtEndSlicerCacheSiRanges",f:parsenoop},1094:{n:"BrtBeginSlicerCacheSiRange",f:parsenoop},1095:{n:"BrtEndSlicerCacheSiRange",f:parsenoop},1096:{n:"BrtSlicerCacheOlapItem",f:parsenoop},1097:{n:"BrtBeginSlicerCacheSelections",f:parsenoop},1098:{n:"BrtSlicerCacheSelection",f:parsenoop},1099:{n:"BrtEndSlicerCacheSelections",f:parsenoop},1100:{n:"BrtBeginSlicerCacheNative",f:parsenoop},1101:{n:"BrtEndSlicerCacheNative",f:parsenoop},1102:{n:"BrtSlicerCacheNativeItem",f:parsenoop},1103:{n:"BrtRangeProtection14",f:parsenoop},1104:{n:"BrtRangeProtectionIso14",f:parsenoop},1105:{n:"BrtCellIgnoreEC14",f:parsenoop},1111:{n:"BrtList14",f:parsenoop},1112:{n:"BrtCFIcon",f:parsenoop},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs",f:parsenoop},1114:{n:"BrtEndSlicerCachesPivotCacheIDs",f:parsenoop},1115:{n:"BrtBeginSlicers",f:parsenoop},1116:{n:"BrtEndSlicers",f:parsenoop},1117:{n:"BrtWbProp14",f:parsenoop},1118:{n:"BrtBeginSXEdit",f:parsenoop},1119:{n:"BrtEndSXEdit",f:parsenoop},1120:{n:"BrtBeginSXEdits",f:parsenoop},1121:{n:"BrtEndSXEdits",f:parsenoop},1122:{n:"BrtBeginSXChange",f:parsenoop},1123:{n:"BrtEndSXChange",f:parsenoop},1124:{n:"BrtBeginSXChanges",f:parsenoop},1125:{n:"BrtEndSXChanges",f:parsenoop},1126:{n:"BrtSXTupleItems",f:parsenoop},1128:{n:"BrtBeginSlicerStyle",f:parsenoop},1129:{n:"BrtEndSlicerStyle",f:parsenoop},1130:{n:"BrtSlicerStyleElement",f:parsenoop},1131:{n:"BrtBeginStyleSheetExt14",f:parsenoop},1132:{n:"BrtEndStyleSheetExt14",f:parsenoop},1133:{n:"BrtBeginSlicerCachesPivotCacheID",f:parsenoop},1134:{n:"BrtEndSlicerCachesPivotCacheID",f:parsenoop},1135:{n:"BrtBeginConditionalFormattings",f:parsenoop},1136:{n:"BrtEndConditionalFormattings",f:parsenoop},1137:{n:"BrtBeginPCDCalcMemExt",f:parsenoop},1138:{n:"BrtEndPCDCalcMemExt",f:parsenoop},1139:{n:"BrtBeginPCDCalcMemsExt",f:parsenoop},1140:{n:"BrtEndPCDCalcMemsExt",f:parsenoop},1141:{n:"BrtPCDField14",f:parsenoop},1142:{n:"BrtBeginSlicerStyles",f:parsenoop},1143:{n:"BrtEndSlicerStyles",f:parsenoop},1144:{n:"BrtBeginSlicerStyleElements",f:parsenoop},1145:{n:"BrtEndSlicerStyleElements",f:parsenoop},1146:{n:"BrtCFRuleExt",f:parsenoop},1147:{n:"BrtBeginSXCondFmt14",f:parsenoop},1148:{n:"BrtEndSXCondFmt14",f:parsenoop},1149:{n:"BrtBeginSXCondFmts14",f:parsenoop},1150:{n:"BrtEndSXCondFmts14",f:parsenoop},1152:{n:"BrtBeginSortCond14",f:parsenoop},1153:{n:"BrtEndSortCond14",f:parsenoop},1154:{n:"BrtEndDVals14",f:parsenoop},1155:{n:"BrtEndIconSet14",f:parsenoop},1156:{n:"BrtEndDatabar14",f:parsenoop},1157:{n:"BrtBeginColorScale14",f:parsenoop},1158:{n:"BrtEndColorScale14",f:parsenoop},1159:{n:"BrtBeginSxrules14",f:parsenoop},1160:{n:"BrtEndSxrules14",f:parsenoop},1161:{n:"BrtBeginPRule14",f:parsenoop},1162:{n:"BrtEndPRule14",f:parsenoop},1163:{n:"BrtBeginPRFilters14",f:parsenoop},1164:{n:"BrtEndPRFilters14",f:parsenoop},1165:{n:"BrtBeginPRFilter14",f:parsenoop},1166:{n:"BrtEndPRFilter14",f:parsenoop},1167:{n:"BrtBeginPRFItem14",f:parsenoop},1168:{n:"BrtEndPRFItem14",f:parsenoop},1169:{n:"BrtBeginCellIgnoreECs14",f:parsenoop},1170:{n:"BrtEndCellIgnoreECs14",f:parsenoop},1171:{n:"BrtDxf14",f:parsenoop},1172:{n:"BrtBeginDxF14s",f:parsenoop},1173:{n:"BrtEndDxf14s",f:parsenoop},1177:{n:"BrtFilter14",f:parsenoop},1178:{n:"BrtBeginCustomFilters14",f:parsenoop},1180:{n:"BrtCustomFilter14",f:parsenoop},1181:{n:"BrtIconFilter14",f:parsenoop},1182:{n:"BrtPivotCacheConnectionName",f:parsenoop},2048:{n:"BrtBeginDecoupledPivotCacheIDs",f:parsenoop},2049:{n:"BrtEndDecoupledPivotCacheIDs",f:parsenoop},2050:{n:"BrtDecoupledPivotCacheID",f:parsenoop},2051:{n:"BrtBeginPivotTableRefs",f:parsenoop},2052:{n:"BrtEndPivotTableRefs",f:parsenoop},2053:{n:"BrtPivotTableRef",f:parsenoop},2054:{n:"BrtSlicerCacheBookPivotTables",f:parsenoop},2055:{n:"BrtBeginSxvcells",f:parsenoop},2056:{n:"BrtEndSxvcells",f:parsenoop},2057:{n:"BrtBeginSxRow",f:parsenoop},2058:{n:"BrtEndSxRow",f:parsenoop},2060:{n:"BrtPcdCalcMem15",f:parsenoop},2067:{n:"BrtQsi15",f:parsenoop},2068:{n:"BrtBeginWebExtensions",f:parsenoop},2069:{n:"BrtEndWebExtensions",f:parsenoop},2070:{n:"BrtWebExtension",f:parsenoop},2071:{n:"BrtAbsPath15",f:parsenoop},2072:{n:"BrtBeginPivotTableUISettings",f:parsenoop},2073:{n:"BrtEndPivotTableUISettings",f:parsenoop},2075:{n:"BrtTableSlicerCacheIDs",f:parsenoop},2076:{n:"BrtTableSlicerCacheID",f:parsenoop},2077:{n:"BrtBeginTableSlicerCache",f:parsenoop},2078:{n:"BrtEndTableSlicerCache",f:parsenoop},2079:{n:"BrtSxFilter15",f:parsenoop},2080:{n:"BrtBeginTimelineCachePivotCacheIDs",f:parsenoop},2081:{n:"BrtEndTimelineCachePivotCacheIDs",f:parsenoop},2082:{n:"BrtTimelineCachePivotCacheID",f:parsenoop},2083:{n:"BrtBeginTimelineCacheIDs",f:parsenoop},2084:{n:"BrtEndTimelineCacheIDs",f:parsenoop},2085:{n:"BrtBeginTimelineCacheID",f:parsenoop},2086:{n:"BrtEndTimelineCacheID",f:parsenoop},2087:{n:"BrtBeginTimelinesEx",f:parsenoop},2088:{n:"BrtEndTimelinesEx",f:parsenoop},2089:{n:"BrtBeginTimelineEx",f:parsenoop},2090:{n:"BrtEndTimelineEx",f:parsenoop},2091:{n:"BrtWorkBookPr15",f:parsenoop},2092:{n:"BrtPCDH15",f:parsenoop},2093:{n:"BrtBeginTimelineStyle",f:parsenoop},2094:{n:"BrtEndTimelineStyle",f:parsenoop},2095:{n:"BrtTimelineStyleElement",f:parsenoop},2096:{n:"BrtBeginTimelineStylesheetExt15",f:parsenoop},2097:{n:"BrtEndTimelineStylesheetExt15",f:parsenoop},2098:{n:"BrtBeginTimelineStyles",f:parsenoop},2099:{n:"BrtEndTimelineStyles",f:parsenoop},2100:{n:"BrtBeginTimelineStyleElements",f:parsenoop},2101:{n:"BrtEndTimelineStyleElements",f:parsenoop},2102:{n:"BrtDxf15",f:parsenoop},2103:{n:"BrtBeginDxfs15",f:parsenoop},2104:{n:"brtEndDxfs15",f:parsenoop},2105:{n:"BrtSlicerCacheHideItemsWithNoData",f:parsenoop},2106:{n:"BrtBeginItemUniqueNames",f:parsenoop},2107:{n:"BrtEndItemUniqueNames",f:parsenoop},2108:{n:"BrtItemUniqueName",f:parsenoop},2109:{n:"BrtBeginExtConn15",f:parsenoop},2110:{n:"BrtEndExtConn15",f:parsenoop},2111:{n:"BrtBeginOledbPr15",f:parsenoop},2112:{n:"BrtEndOledbPr15",f:parsenoop},2113:{n:"BrtBeginDataFeedPr15",f:parsenoop},2114:{n:"BrtEndDataFeedPr15",f:parsenoop},2115:{n:"BrtTextPr15",f:parsenoop},2116:{n:"BrtRangePr15",f:parsenoop},2117:{n:"BrtDbCommand15",f:parsenoop},2118:{n:"BrtBeginDbTables15",f:parsenoop},2119:{n:"BrtEndDbTables15",f:parsenoop},2120:{n:"BrtDbTable15",f:parsenoop},2121:{n:"BrtBeginDataModel",f:parsenoop},2122:{n:"BrtEndDataModel",f:parsenoop},2123:{n:"BrtBeginModelTables",f:parsenoop},2124:{n:"BrtEndModelTables",f:parsenoop},2125:{n:"BrtModelTable",f:parsenoop},2126:{n:"BrtBeginModelRelationships",f:parsenoop},2127:{n:"BrtEndModelRelationships",f:parsenoop},2128:{n:"BrtModelRelationship",f:parsenoop},2129:{n:"BrtBeginECTxtWiz15",f:parsenoop},2130:{n:"BrtEndECTxtWiz15",f:parsenoop},2131:{n:"BrtBeginECTWFldInfoLst15",f:parsenoop},2132:{n:"BrtEndECTWFldInfoLst15",f:parsenoop},2133:{n:"BrtBeginECTWFldInfo15",f:parsenoop},2134:{n:"BrtFieldListActiveItem",f:parsenoop},2135:{n:"BrtPivotCacheIdVersion",f:parsenoop},2136:{n:"BrtSXDI15",f:parsenoop},65535:{n:"",f:parsenoop}}; -var evert_RE=evert_key(RecordEnum,"n");function parse_ods(zip,opts){if(typeof module!=="undefined"&&typeof require!=="undefined"&&typeof ODS==="undefined")ODS=require("./dist/od"+"s");if(typeof ODS==="undefined"||!ODS.parse_ods)throw new Error("Unsupported ODS");return ODS.parse_ods(zip,opts)}function fix_opts_func(defaults){return function fix_opts(opts){for(var i=0;i!=defaults.length;++i){var d=defaults[i];if(opts[d[0]]===undefined)opts[d[0]]=d[1];if(d[2]==="n")opts[d[0]]=Number(opts[d[0]])}}}var fix_read_opts=fix_opts_func([["cellNF",false],["cellHTML",true],["cellFormula",true],["cellStyles",false],["cellDates",false],["sheetStubs",false],["sheetRows",0,"n"],["bookDeps",false],["bookSheets",false],["bookProps",false],["bookFiles",false],["bookVBA",false],["WTF",false]]);var fix_write_opts=fix_opts_func([["cellDates",false],["bookSST",false],["bookType","xlsx"],["WTF",false]]);function safe_parse_wbrels(wbrels,sheets){if(!wbrels)return 0;try{wbrels=sheets.map(function pwbr(w){return[w.name,wbrels["!id"][w.id].Target]})}catch(e){return null}return!wbrels||wbrels.length===0?null:wbrels}function safe_parse_ws(zip,path,relsPath,sheet,sheetRels,sheets,opts){try{sheetRels[sheet]=parse_rels(getzipdata(zip,relsPath,true),path);sheets[sheet]=parse_ws(getzipdata(zip,path),path,opts,sheetRels[sheet])}catch(e){if(opts.WTF)throw e}}var nodirs=function nodirs(x){return x.substr(-1)!="/"};function parse_zip(zip,opts){make_ssf(SSF);opts=opts||{};fix_read_opts(opts);reset_cp();if(safegetzipfile(zip,"META-INF/manifest.xml"))return parse_ods(zip,opts);var entries=keys(zip.files).filter(nodirs).sort();var dir=parse_ct(getzipdata(zip,"[Content_Types].xml"),opts);var xlsb=false;var sheets,binname;if(dir.workbooks.length===0){binname="xl/workbook.xml";if(getzipdata(zip,binname,true))dir.workbooks.push(binname)}if(dir.workbooks.length===0){binname="xl/workbook.bin";if(!getzipfile(zip,binname,true))throw new Error("Could not find workbook");dir.workbooks.push(binname);xlsb=true}if(dir.workbooks[0].substr(-3)=="bin")xlsb=true;if(xlsb)set_cp(1200);if(!opts.bookSheets&&!opts.bookProps){strs=[];if(dir.sst)strs=parse_sst(getzipdata(zip,dir.sst.replace(/^\//,"")),dir.sst,opts);styles={};if(dir.style)styles=parse_sty(getzipdata(zip,dir.style.replace(/^\//,"")),dir.style,opts);themes={};if(opts.cellStyles&&dir.themes.length)themes=parse_theme(getzipdata(zip,dir.themes[0].replace(/^\//,""),true),dir.themes[0],opts)}var wb=parse_wb(getzipdata(zip,dir.workbooks[0].replace(/^\//,"")),dir.workbooks[0],opts);var props={},propdata="";if(dir.coreprops.length!==0){propdata=getzipdata(zip,dir.coreprops[0].replace(/^\//,""),true);if(propdata)props=parse_core_props(propdata);if(dir.extprops.length!==0){propdata=getzipdata(zip,dir.extprops[0].replace(/^\//,""),true);if(propdata)parse_ext_props(propdata,props)}}var custprops={};if(!opts.bookSheets||opts.bookProps){if(dir.custprops.length!==0){propdata=getzipdata(zip,dir.custprops[0].replace(/^\//,""),true);if(propdata)custprops=parse_cust_props(propdata,opts)}}var out={};if(opts.bookSheets||opts.bookProps){if(props.Worksheets&&props.SheetNames.length>0)sheets=props.SheetNames;else if(wb.Sheets)sheets=wb.Sheets.map(function pluck(x){return x.name});if(opts.bookProps){out.Props=props;out.Custprops=custprops}if(typeof sheets!=="undefined")out.SheetNames=sheets;if(opts.bookSheets?out.SheetNames:opts.bookProps)return out}sheets={};var deps={};if(opts.bookDeps&&dir.calcchain)deps=parse_cc(getzipdata(zip,dir.calcchain.replace(/^\//,"")),dir.calcchain,opts);var i=0;var sheetRels={};var path,relsPath;if(!props.Worksheets){var wbsheets=wb.Sheets;props.Worksheets=wbsheets.length;props.SheetNames=[];for(var j=0;j!=wbsheets.length;++j){props.SheetNames[j]=wbsheets[j].name}}var wbext=xlsb?"bin":"xml";var wbrelsfile="xl/_rels/workbook."+wbext+".rels";var wbrels=parse_rels(getzipdata(zip,wbrelsfile,true),wbrelsfile);if(wbrels)wbrels=safe_parse_wbrels(wbrels,wb.Sheets);var nmode=getzipdata(zip,"xl/worksheets/sheet.xml",true)?1:0;for(i=0;i!=props.Worksheets;++i){if(wbrels)path="xl/"+wbrels[i][1].replace(/[\/]?xl\//,"");else{path="xl/worksheets/sheet"+(i+1-nmode)+"."+wbext;path=path.replace(/sheet0\./,"sheet.")}relsPath=path.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");safe_parse_ws(zip,path,relsPath,props.SheetNames[i],sheetRels,sheets,opts)}if(dir.comments)parse_comments(zip,dir.comments,sheets,sheetRels,opts);out={Directory:dir,Workbook:wb,Props:props,Custprops:custprops,Deps:deps,Sheets:sheets,SheetNames:props.SheetNames,Strings:strs,Styles:styles,Themes:themes,SSF:SSF.get_table()};if(opts.bookFiles){out.keys=entries;out.files=zip.files}if(opts.bookVBA){if(dir.vba.length>0)out.vbaraw=getzipdata(zip,dir.vba[0],true);else if(dir.defaults.bin==="application/vnd.ms-office.vbaProject")out.vbaraw=getzipdata(zip,"xl/vbaProject.bin",true)}return out}function add_rels(rels,rId,f,type,relobj){if(!relobj)relobj={};if(!rels["!id"])rels["!id"]={};relobj.Id="rId"+rId;relobj.Type=type;relobj.Target=f;if(rels["!id"][relobj.Id])throw new Error("Cannot rewrite rId "+rId);rels["!id"][relobj.Id]=relobj;rels[("/"+relobj.Target).replace("//","/")]=relobj}function write_zip(wb,opts){if(wb&&!wb.SSF){wb.SSF=SSF.get_table()}if(wb&&wb.SSF){make_ssf(SSF);SSF.load_table(wb.SSF);opts.revssf=evert_num(wb.SSF);opts.revssf[wb.SSF[65535]]=0}opts.rels={};opts.wbrels={};opts.Strings=[];opts.Strings.Count=0;opts.Strings.Unique=0;var wbext=opts.bookType=="xlsb"?"bin":"xml";var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};fix_write_opts(opts=opts||{});var zip=new jszip;var f="",rId=0;opts.cellXfs=[];get_cell_style(opts.cellXfs,{},{revssf:{General:0}});f="docProps/core.xml";zip.file(f,write_core_props(wb.Props,opts));ct.coreprops.push(f);add_rels(opts.rels,2,f,RELS.CORE_PROPS);f="docProps/app.xml";if(!wb.Props)wb.Props={};wb.Props.SheetNames=wb.SheetNames;wb.Props.Worksheets=wb.SheetNames.length;zip.file(f,write_ext_props(wb.Props,opts));ct.extprops.push(f);add_rels(opts.rels,3,f,RELS.EXT_PROPS);if(wb.Custprops!==wb.Props&&keys(wb.Custprops||{}).length>0){f="docProps/custom.xml";zip.file(f,write_cust_props(wb.Custprops,opts));ct.custprops.push(f);add_rels(opts.rels,4,f,RELS.CUST_PROPS)}f="xl/workbook."+wbext;zip.file(f,write_wb(wb,f,opts));ct.workbooks.push(f);add_rels(opts.rels,1,f,RELS.WB);for(rId=1;rId<=wb.SheetNames.length;++rId){f="xl/worksheets/sheet"+rId+"."+wbext;zip.file(f,write_ws(rId-1,f,opts,wb));ct.sheets.push(f);add_rels(opts.wbrels,rId,"worksheets/sheet"+rId+"."+wbext,RELS.WS)}if(opts.Strings!=null&&opts.Strings.length>0){f="xl/sharedStrings."+wbext;zip.file(f,write_sst(opts.Strings,f,opts));ct.strs.push(f);add_rels(opts.wbrels,++rId,"sharedStrings."+wbext,RELS.SST)}f="xl/theme/theme1.xml";zip.file(f,write_theme());ct.themes.push(f);add_rels(opts.wbrels,++rId,"theme/theme1.xml",RELS.THEME);f="xl/styles."+wbext;zip.file(f,write_sty(wb,f,opts));ct.styles.push(f);add_rels(opts.wbrels,++rId,"styles."+wbext,RELS.STY);zip.file("[Content_Types].xml",write_ct(ct,opts));zip.file("_rels/.rels",write_rels(opts.rels));zip.file("xl/_rels/workbook."+wbext+".rels",write_rels(opts.wbrels));return zip}function readSync(data,opts){var zip,d=data;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";switch(o.type){case"base64":zip=new jszip(d,{base64:true});break;case"binary":zip=new jszip(d,{base64:false});break;case"buffer":zip=new jszip(d);break;case"file":zip=new jszip(d=_fs.readFileSync(data));break;default:throw new Error("Unrecognized type "+o.type)}return parse_zip(zip,o)}function readFileSync(data,opts){var o=opts||{};o.type="file";return readSync(data,o)}function writeSync(wb,opts){var o=opts||{};var z=write_zip(wb,o);switch(o.type){case"base64":return z.generate({type:"base64"});case"binary":return z.generate({type:"string"});case"buffer":return z.generate({type:"nodebuffer"});case"file":return _fs.writeFileSync(o.file,z.generate({type:"nodebuffer"}));default:throw new Error("Unrecognized type "+o.type)}}function writeFileSync(wb,filename,opts){var o=opts||{};o.type="file";o.file=filename;switch(o.file.substr(-5).toLowerCase()){case".xlsm":o.bookType="xlsm";break;case".xlsb":o.bookType="xlsb";break}return writeSync(wb,o)}function decode_row(rowstr){return parseInt(unfix_row(rowstr),10)-1}function encode_row(row){return""+(row+1)}function fix_row(cstr){return cstr.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function unfix_row(cstr){return cstr.replace(/\$(\d+)$/,"$1")}function decode_col(colstr){var c=unfix_col(colstr),d=0,i=0;for(;i!==c.length;++i)d=26*d+c.charCodeAt(i)-64;return d-1}function encode_col(col){var s="";for(++col;col;col=Math.floor((col-1)/26))s=String.fromCharCode((col-1)%26+65)+s;return s}function fix_col(cstr){return cstr.replace(/^([A-Z])/,"$$$1")}function unfix_col(cstr){return cstr.replace(/^\$([A-Z])/,"$1")}function split_cell(cstr){return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function decode_cell(cstr){var splt=split_cell(cstr);return{c:decode_col(splt[0]),r:decode_row(splt[1])}}function encode_cell(cell){return encode_col(cell.c)+encode_row(cell.r)}function fix_cell(cstr){return fix_col(fix_row(cstr))}function unfix_cell(cstr){return unfix_col(unfix_row(cstr))}function decode_range(range){var x=range.split(":").map(decode_cell);return{s:x[0],e:x[x.length-1]}}function encode_range(cs,ce){if(ce===undefined||typeof ce==="number")return encode_range(cs.s,cs.e);if(typeof cs!=="string")cs=encode_cell(cs);if(typeof ce!=="string")ce=encode_cell(ce);return cs==ce?cs:cs+":"+ce}function safe_decode_range(range){var o={s:{c:0,r:0},e:{c:0,r:0}};var idx=0,i=0,cc=0;var len=range.length;for(idx=0;i26)break;idx=26*idx+cc}o.s.c=--idx;for(idx=0;i9)break;idx=10*idx+cc}o.s.r=--idx;if(i===len||range.charCodeAt(++i)===58){o.e.c=o.s.c;o.e.r=o.s.r;return o}for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.e.c=--idx;for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.e.r=--idx;return o}function safe_format_cell(cell,v){if(cell.z!==undefined)try{return cell.w=SSF.format(cell.z,v)}catch(e){}if(!cell.XF)return v;try{return cell.w=SSF.format(cell.XF.ifmt||0,v)}catch(e){return""+v}}function format_cell(cell,v){if(cell==null||cell.t==null)return"";if(cell.w!==undefined)return cell.w;if(v===undefined)return safe_format_cell(cell,cell.v);return safe_format_cell(cell,v)}function sheet_to_json(sheet,opts){var val,row,range,header=0,offset=1,r,hdr=[],isempty,R,C,v;var o=opts!=null?opts:{};var raw=o.raw;if(sheet==null||sheet["!ref"]==null)return[];range=o.range!==undefined?o.range:sheet["!ref"];if(o.header===1)header=1;else if(o.header==="A")header=2;else if(Array.isArray(o.header))header=3;switch(typeof range){case"string":r=safe_decode_range(range);break;case"number":r=safe_decode_range(sheet["!ref"]);r.s.r=range;break;default:r=range}if(header>0)offset=0;var rr=encode_row(r.s.r);var cols=new Array(r.e.c-r.s.c+1);var out=new Array(r.e.r-r.s.r-offset+1);var outi=0;for(C=r.s.c;C<=r.e.c;++C){cols[C]=encode_col(C);val=sheet[cols[C]+rr];switch(header){case 1:hdr[C]=C;break;case 2:hdr[C]=cols[C];break;case 3:hdr[C]=o.header[C-r.s.c];break;default:if(val===undefined)continue;hdr[C]=format_cell(val)}}for(R=r.s.r+offset;R<=r.e.r;++R){rr=encode_row(R);isempty=true;row=header===1?[]:Object.create({__rowNum__:R});for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];if(val===undefined||val.t===undefined)continue;v=val.v;switch(val.t){case"e":continue;case"s":break;case"b":case"n":break;default:throw"unrecognized type "+val.t}if(v!==undefined){row[hdr[C]]=raw?v:format_cell(val,v);isempty=false}}if(isempty===false)out[outi++]=row}out.length=outi;return out}function sheet_to_row_object_array(sheet,opts){return sheet_to_json(sheet,opts!=null?opts:{})}function sheet_to_csv(sheet,opts){var out="",txt="",qreg=/"/g;var o=opts==null?{}:opts;if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]);var FS=o.FS!==undefined?o.FS:",",fs=FS.charCodeAt(0);var RS=o.RS!==undefined?o.RS:"\n",rs=RS.charCodeAt(0);var row="",rr="",cols=[];var i=0,cc=0,val;var R=0,C=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(R=r.s.r;R<=r.e.r;++R){row="";rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];txt=val!==undefined?""+format_cell(val):"";for(i=0,cc=0;i!==txt.length;++i)if((cc=txt.charCodeAt(i))===fs||cc===rs||cc===34){txt='"'+txt.replace(qreg,'""')+'"';break}row+=(C===r.s.c?"":FS)+txt}out+=row+RS}return out}var make_csv=sheet_to_csv;function sheet_to_formulae(sheet){var cmds,y="",x,val="";if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]),rr="",cols=[],C;cmds=new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));var i=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(var R=r.s.r;R<=r.e.r;++R){rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){y=cols[C]+rr;x=sheet[y];val="";if(x===undefined)continue;if(x.f!=null)val=x.f;else if(x.w!==undefined)val="'"+x.w;else if(x.v===undefined)continue;else val=""+x.v;cmds[i++]=y+"="+val}}cmds.length=i;return cmds}var utils={encode_col:encode_col,encode_row:encode_row,encode_cell:encode_cell,encode_range:encode_range,decode_col:decode_col,decode_row:decode_row,split_cell:split_cell,decode_cell:decode_cell,decode_range:decode_range,format_cell:format_cell,get_formulae:sheet_to_formulae,make_csv:sheet_to_csv,make_json:sheet_to_json,make_formulae:sheet_to_formulae,sheet_to_csv:sheet_to_csv,sheet_to_json:sheet_to_json,sheet_to_formulae:sheet_to_formulae,sheet_to_row_object_array:sheet_to_row_object_array};XLSX.parseZip=parse_zip;XLSX.read=readSync;XLSX.readFile=readFileSync;XLSX.write=writeSync;XLSX.writeFile=writeFileSync;XLSX.utils=utils;XLSX.SSF=SSF})(typeof exports!=="undefined"?exports:XLSX); -//# sourceMappingURL=dist/xlsx.full.min.map \ No newline at end of file +for(j=0;j!=D[242].length;++j)if(D[242][j].charCodeAt(0)!==65533){e[D[242][j]]=61952+j;d[61952+j]=D[242][j]}D[243]="����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�".split("");for(j=0;j!=D[243].length;++j)if(D[243][j].charCodeAt(0)!==65533){e[D[243][j]]=62208+j;d[62208+j]=D[243][j]}D[244]="����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�".split("");for(j=0;j!=D[244].length;++j)if(D[244][j].charCodeAt(0)!==65533){e[D[244][j]]=62464+j;d[62464+j]=D[244][j]}D[245]="����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�".split("");for(j=0;j!=D[245].length;++j)if(D[245][j].charCodeAt(0)!==65533){e[D[245][j]]=62720+j;d[62720+j]=D[245][j]}D[246]="����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�".split("");for(j=0;j!=D[246].length;++j)if(D[246][j].charCodeAt(0)!==65533){e[D[246][j]]=62976+j;d[62976+j]=D[246][j]}D[247]="����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�".split("");for(j=0;j!=D[247].length;++j)if(D[247][j].charCodeAt(0)!==65533){e[D[247][j]]=63232+j;d[63232+j]=D[247][j]}D[248]="����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�".split("");for(j=0;j!=D[248].length;++j)if(D[248][j].charCodeAt(0)!==65533){e[D[248][j]]=63488+j;d[63488+j]=D[248][j]}D[249]="����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�".split("");for(j=0;j!=D[249].length;++j)if(D[249][j].charCodeAt(0)!==65533){e[D[249][j]]=63744+j;d[63744+j]=D[249][j]}return{enc:e,dec:d}}();cptable[1250]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1251]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1252]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ×ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1253]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1254]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖ×ØÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1255]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1256]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1257]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1258]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖ×ØÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[1e4]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10006]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10007]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10029]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10079]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüÝ°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();cptable[10081]=function(){var d="\x00\b \n \f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ",D=[],e={};for(var i=0;i!=d.length;++i){if(d.charCodeAt(i)!==65533)e[d[i]]=i;D[i]=d.charAt(i)}return{enc:e,dec:D}}();if(typeof module!=="undefined"&&module.exports)module.exports=cptable;(function(root,factory){"use strict";if(typeof cptable==="undefined"){if(typeof require!=="undefined"){var cpt=require("./cpt"+"able");if(typeof module!=="undefined"&&module.exports)module.exports=factory(cpt);else root.cptable=factory(cpt)}else throw new Error("cptable not found")}else cptable=factory(cptable)})(this,function(cpt){"use strict";var magic={1200:"utf16le",1201:"utf16be",12000:"utf32le",12001:"utf32be",16969:"utf64le",20127:"ascii",65000:"utf7",65001:"utf8"};var sbcs_cache=[874,1250,1251,1252,1253,1254,1255,1256,1e4];var dbcs_cache=[932,936,949,950];var magic_cache=[65001];var magic_decode={};var magic_encode={};var cpecache={};var cpdcache={};var sfcc=function sfcc(x){return String.fromCharCode(x)};var cca=function cca(x){return x.charCodeAt(0)};var has_buf=typeof Buffer!=="undefined";if(has_buf){var mdl=1024,mdb=new Buffer(mdl);var make_EE=function make_EE(E){var EE=new Buffer(65536);for(var i=0;i<65536;++i)EE[i]=0;var keys=Object.keys(E),len=keys.length;for(var ee=0,e=keys[ee];ee>10&1023)];out[j++]=EE[56320+(w&1023)]}}}out.length=j;out=out.slice(0,j)}else{out=Buffer(len);for(i=0;i>8}return function sbcs_d(data){var len=data.length,i=0,j;if(2*len>mdl){mdl=2*len;mdb=new Buffer(mdl)}if(Buffer.isBuffer(data)){for(i=0;i>8}return function dbcs_e(data,ofmt){var len=data.length,out=new Buffer(2*len),i,j,jj,k,D;if(typeof data==="string"){for(i=k=0;i0)out[k++]=EE[j]}out.length=k;out=out.slice(0,k)}else if(Buffer.isBuffer(data)){for(i=k=0;i0)out[k++]=EE[j]}else{jj=j-65536;j=2*(55296+(jj>>10&1023));out[k++]=EE[j+1]||EE[j];if(EE[j+1]>0)out[k++]=EE[j];j=2*(56320+(jj&1023));out[k++]=EE[j+1]||EE[j];if(EE[j+1]>0)out[k++]=EE[j]}}out.length=k;out=out.slice(0,k)}else{for(i=k=0;i0)out[k++]=EE[j]}}if(ofmt===undefined||ofmt==="buf")return out;if(ofmt!=="arr")return out.toString("binary");return[].slice.call(out)}};var dbcs_decode=function make_dbcs_decode(cp){var D=cpt[cp].dec;var DD=new Buffer(131072),d=0,c,w=0,j=0,i=0;for(i=0;i<65536;++i){DD[2*i]=255;DD[2*i+1]=253}for(d=0;d>8}return function dbcs_d(data){var len=data.length,out=new Buffer(2*len),i,j,k=0;if(Buffer.isBuffer(data)){for(i=0;imdl){mdl=4*len;mdb=new Buffer(mdl)}mdb.length=0;var i=0;if(len>=3&&data[0]==239)if(data[1]==187&&data[2]==191)i=3;for(var j=1,k=0,D=0;i>8}else{w-=65536;ww=55296+(w>>10&1023);w=56320+(w&1023);mdb[k++]=ww&255;mdb[k++]=ww>>>8;mdb[k++]=w&255;mdb[k++]=w>>>8&255}}mdb.length=k;return mdb.toString("ucs2")};magic_encode[65001]=function utf8_e(data,ofmt){var len=data.length,w=0,ww=0,j=0;var direct=typeof data==="string";if(4*len>mdl){mdl=4*len;mdb=new Buffer(mdl)}for(var i=0;i>6);mdb[j++]=128+(w&63)}else if(w>=55296&&w<=57343){w-=55296;++i;ww=(direct?data.charCodeAt(i):data[i].charCodeAt(0))-56320+(w<<10);mdb[j++]=240+(ww>>>18&7);mdb[j++]=144+(ww>>>12&63);mdb[j++]=128+(ww>>>6&63);mdb[j++]=128+(ww&63)}else{mdb[j++]=224+(w>>12);mdb[j++]=128+(w>>6&63);mdb[j++]=128+(w&63)}}mdb.length=j;if(ofmt===undefined||ofmt==="buf")return mdb;if(ofmt!=="arr")return mdb.toString("binary");return[].slice.call(mdb)}}var encache=function encache(){if(has_buf){if(cpdcache[sbcs_cache[0]])return;var i,s;for(i=0;i255){out[j]=w>>8;out[++j]=w&255}}else if(M=magic[cp])switch(M){case"utf8":if(has_buf&&typeof data==="string"){out=new Buffer(data,M);j=out.length;break}for(i=0;i>6);out[++j]=128+(w&63)}else if(w>=55296&&w<=57343){w-=55296;ww=data[++i].charCodeAt(0)-56320+(w<<10);out[j]=240+(ww>>>18&7);out[++j]=144+(ww>>>12&63);out[++j]=128+(ww>>>6&63);out[++j]=128+(ww&63)}else{out[j]=224+(w>>12);out[++j]=128+(w>>6&63);out[++j]=128+(w&63)}}break;case"ascii":if(has_buf&&typeof data==="string"){out=new Buffer(data,M);j=out.length;break}for(i=0;i>8}break;case"utf16be":for(i=0;i>8;out[j++]=w&255}break;case"utf32le":for(i=0;i=55296&&w<=57343)w=65536+(w-55296<<10)+(data[++i].charCodeAt(0)-56320);out[j++]=w&255;w>>=8;out[j++]=w&255;w>>=8;out[j++]=w&255;w>>=8;out[j++]=w&255}break;case"utf32be":for(i=0;i=55296&&w<=57343)w=65536+(w-55296<<10)+(data[++i].charCodeAt(0)-56320);out[j+3]=w&255;w>>=8;out[j+2]=w&255;w>>=8;out[j+1]=w&255;w>>=8;out[j]=w&255;w>>=8;j+=4}break;case"utf7":for(i=0;i-1){out[j++]=c.charCodeAt(0);continue}tt=encode(1201,c);out[j++]=43;out[j++]=BM.charCodeAt(tt[0]>>2);out[j++]=BM.charCodeAt(((tt[0]&3)<<4)+((tt[1]||0)>>4));out[j++]=BM.charCodeAt(((tt[1]&15)<<2)+((tt[2]||0)>>6));out[j++]=45}break;default:throw new Error("Unsupported magic: "+cp+" "+magic[cp])}else throw new Error("Unrecognized CP: "+cp);out.length=j;out=out.slice(0,j);if(typeof Buffer==="undefined")return ofmt=="str"?out.map(sfcc).join(""):out;if(ofmt===undefined||ofmt==="buf")return out;if(ofmt!=="arr")return out.toString("binary");return[].slice.call(out)};var decode=function decode(cp,data){var F;if(F=cpdcache[cp])return F(data);var len=data.length,out=new Array(len),w,i,j=1,k=0,ww;var C=cpt[cp],D,M;if(C&&(D=C.dec)){if(typeof data==="string")data=data.split("").map(cca);for(i=0;i=3&&data[0]==239)if(data[1]==187&&data[2]==191)i=3;for(;i>10&1023);w=56320+(w&1023);out[k++]=String.fromCharCode(ww);out[k++]=String.fromCharCode(w)}}break;case"ascii":if(has_buf&&Buffer.isBuffer(data))return data.toString(M);for(i=0;i=2&&data[0]==255)if(data[1]==254)i=2;if(has_buf&&Buffer.isBuffer(data))return data.toString(M);j=2;for(;i=2&&data[0]==254)if(data[1]==255)i=2;j=2;for(;i=4&&data[0]==255)if(data[1]==254&&data[2]==0&&data[3]==0)i=4;j=4;for(;i65535){w-=65536;out[k++]=String.fromCharCode(55296+(w>>10&1023));out[k++]=String.fromCharCode(56320+(w&1023))}else out[k++]=String.fromCharCode(w)}break;case"utf32be":i=0;if(len>=4&&data[3]==255)if(data[2]==254&&data[1]==0&&data[0]==0)i=4;j=4;for(;i65535){w-=65536;out[k++]=String.fromCharCode(55296+(w>>10&1023));out[k++]=String.fromCharCode(56320+(w&1023))}else out[k++]=String.fromCharCode(w)}break;case"utf7":i=0;if(len>=4&&data[0]==43&&data[1]==47&&data[2]==118){if(len>=5&&data[3]==56&&data[4]==45)i=5;else if(data[3]==56||data[3]==57||data[3]==43||data[3]==47)i=4}for(;i>4;tt.push(c1);e3=BM.indexOf(String.fromCharCode(data[i+l++]));if(e3===-1)break;c2=(e2&15)<<4|e3>>2;tt.push(c2);e4=BM.indexOf(String.fromCharCode(data[i+l++]));if(e4===-1)break;c3=(e3&3)<<6|e4;if(e4<64)tt.push(c3)}if((tt.length&1)===1)tt.length--;o64=decode(1201,tt);for(l=0;l>8])[0]}}var Base64=function make_b64(){var map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(input,utf8){var o="";var c1,c2,c3,e1,e2,e3,e4;for(var i=0;i>2;e2=(c1&3)<<4|c2>>4;e3=(c2&15)<<2|c3>>6;e4=c3&63;if(isNaN(c2)){e3=e4=64}else if(isNaN(c3)){e4=64}o+=map.charAt(e1)+map.charAt(e2)+map.charAt(e3)+map.charAt(e4)}return o},decode:function b64_decode(input,utf8){var o="";var c1,c2,c3;var e1,e2,e3,e4;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var i=0;i>4;c2=(e2&15)<<4|e3>>2;c3=(e3&3)<<6|e4;o+=String.fromCharCode(c1);if(e3!=64){o+=String.fromCharCode(c2)}if(e4!=64){o+=String.fromCharCode(c3)}}return o}}}();var has_buf=typeof Buffer!=="undefined";function new_raw_buf(len){return new(has_buf?Buffer:Array)(len)}function s2a(s){if(has_buf)return new Buffer(s,"binary");return s.split("").map(function(x){return x.charCodeAt(0)&255})}var bconcat=function(bufs){return[].concat.apply([],bufs)};var chr0=/\u0000/g,chr1=/[\u0001-\u0006]/;var SSF={};var make_ssf=function make_ssf(SSF){SSF.version="0.8.1";function _strrev(x){var o="",i=x.length-1;while(i>=0)o+=x.charAt(i--);return o}function fill(c,l){var o="";while(o.length=d?t:fill("0",d-t.length)+t}function pad_(v,d){var t=""+v;return t.length>=d?t:fill(" ",d-t.length)+t}function rpad_(v,d){var t=""+v;return t.length>=d?t:t+fill(" ",d-t.length)}function pad0r1(v,d){var t=""+Math.round(v);return t.length>=d?t:fill("0",d-t.length)+t}function pad0r2(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}var p2_32=Math.pow(2,32);function pad0r(v,d){if(v>p2_32||v<-p2_32)return pad0r1(v,d);var i=Math.round(v);return pad0r2(i,d)}function isgeneral(s,i){return s.length>=7+i&&(s.charCodeAt(i)|32)===103&&(s.charCodeAt(i+1)|32)===101&&(s.charCodeAt(i+2)|32)===110&&(s.charCodeAt(i+3)|32)===101&&(s.charCodeAt(i+4)|32)===114&&(s.charCodeAt(i+5)|32)===97&&(s.charCodeAt(i+6)|32)===108}var opts_fmt=[["date1904",0],["output",""],["WTF",false]];function fixopts(o){for(var y=0;y!=opts_fmt.length;++y)if(o[opts_fmt[y][0]]===undefined)o[opts_fmt[y][0]]=opts_fmt[y][1]}SSF.opts=opts_fmt;var table_fmt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "',65535:"General"};var days=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var months=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function frac(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){Q=Q_1;P=P_1}if(Q>D){Q=Q_2;P=P_2}if(!mixed)return[0,sgn*P,Q];if(Q===0)throw"Unexpected state: "+P+" "+P_1+" "+P_2+" "+Q+" "+Q_1+" "+Q_2;var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}function general_fmt_int(v,opts){return""+v}SSF._general_int=general_fmt_int;var general_fmt_num=function make_general_fmt_num(){var gnr1=/\.(\d*[1-9])0+$/,gnr2=/\.0*$/,gnr4=/\.(\d*[1-9])0+/,gnr5=/\.0*[Ee]/,gnr6=/(E[+-])(\d)$/;function gfn2(v){var w=v<0?12:11;var o=gfn5(v.toFixed(12));if(o.length<=w)return o;o=v.toPrecision(10);if(o.length<=w)return o;return v.toExponential(5)}function gfn3(v){var o=v.toFixed(11).replace(gnr1,".$1");if(o.length>(v<0?12:11))o=v.toPrecision(6);return o}function gfn4(o){for(var i=0;i!=o.length;++i)if((o.charCodeAt(i)|32)===101)return o.replace(gnr4,".$1").replace(gnr5,"E").replace("e","E").replace(gnr6,"$10$2");return o}function gfn5(o){return o.indexOf(".")>-1?o.replace(gnr2,"").replace(gnr1,".$1"):o}return function general_fmt_num(v,opts){var V=Math.floor(Math.log(Math.abs(v))*Math.LOG10E),o;if(V>=-4&&V<=-1)o=v.toPrecision(10+V);else if(Math.abs(V)<=9)o=gfn2(v);else if(V===10)o=v.toFixed(10).substr(0,12);else o=gfn3(v);return gfn5(gfn4(o))}}();SSF._general_num=general_fmt_num;function general_fmt(v,opts){switch(typeof v){case"string":return v;case"boolean":return v?"TRUE":"FALSE";case"number":return(v|0)===v?general_fmt_int(v,opts):general_fmt_num(v,opts)}throw new Error("unsupported value in General format: "+v)}SSF._general=general_fmt;function fix_hijri(date,o){return 0}function parse_date_code(v,opts,b2){if(v>2958465||v<0)return null;var date=v|0,time=Math.floor(86400*(v-date)),dow=0;var dout=[];var out={D:date,T:time,u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(out.u)<1e-6)out.u=0;fixopts(opts!=null?opts:opts=[]);if(opts.date1904)date+=1462;if(out.u>.999){out.u=0;if(++time==86400){time=0;++date}}if(date===60){dout=b2?[1317,10,29]:[1900,2,29];dow=3}else if(date===0){dout=b2?[1317,8,29]:[1900,1,0];dow=6}else{if(date>60)--date;var d=new Date(1900,0,1);d.setDate(d.getDate()+date-1);dout=[d.getFullYear(),d.getMonth()+1,d.getDate()];dow=d.getDay();if(date<60)dow=(dow+6)%7;if(b2)dow=fix_hijri(d,dout)}out.y=dout[0];out.m=dout[1];out.d=dout[2];out.S=time%60;time=Math.floor(time/60);out.M=time%60;time=Math.floor(time/60);out.H=time;out.q=dow;return out}SSF.parse_date_code=parse_date_code;function write_date(type,fmt,val,ss0){var o="",ss=0,tt=0,y=val.y,out,outl=0;switch(type){case 98:y=val.y+543;case 121:switch(fmt.length){case 1:case 2:out=y%100;outl=2;break;default:out=y%1e4;outl=4;break}break;case 109:switch(fmt.length){case 1:case 2:out=val.m;outl=fmt.length;break;case 3:return months[val.m-1][1];case 5:return months[val.m-1][0];default:return months[val.m-1][2]}break;case 100:switch(fmt.length){case 1:case 2:out=val.d;outl=fmt.length;break;case 3:return days[val.q][0];default:return days[val.q][1]}break;case 104:switch(fmt.length){case 1:case 2:out=1+(val.H+11)%12;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 72:switch(fmt.length){case 1:case 2:out=val.H;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 77:switch(fmt.length){case 1:case 2:out=val.M;outl=fmt.length;break;default:throw"bad minute format: "+fmt}break;case 115:if(val.u===0)switch(fmt){case"s":case"ss":return pad0(val.S,fmt.length);case".0":case".00":case".000":}switch(fmt){case"s":case"ss":case".0":case".00":case".000":if(ss0>=2)tt=ss0===3?1e3:100;else tt=ss0===1?10:1;ss=Math.round(tt*(val.S+val.u));if(ss>=60*tt)ss=0;if(fmt==="s")return ss===0?"0":""+ss/tt;o=pad0(ss,2+ss0);if(fmt==="ss")return o.substr(0,2);return"."+o.substr(2,fmt.length-1);default:throw"bad second format: "+fmt}case 90:switch(fmt){case"[h]":case"[hh]":out=val.D*24+val.H;break;case"[m]":case"[mm]":out=(val.D*24+val.H)*60+val.M;break;case"[s]":case"[ss]":out=((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u);break;default:throw"bad abstime format: "+fmt}outl=fmt.length===3?1:2;break;case 101:out=y;outl=1}if(outl>0)return pad0(out,outl);else return""}function commaify(s){if(s.length<=3)return s;var j=s.length%3,o=s.substr(0,j);for(;j!=s.length;j+=3)o+=(o.length>0?",":"")+s.substr(j,3);return o}var write_num=function make_write_num(){var pct1=/%/g;function write_num_pct(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_cm(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_exp(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(o.indexOf("e")===-1){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);while(o.substr(0,2)==="0."){o=o[0]+o.substr(2,period)+"."+o.substr(2+period);o=o.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}var frac1=/# (\?+)( ?)\/( ?)(\d+)/;function write_num_f1(r,aval,sign){var den=parseInt(r[4]),rr=Math.round(aval*den),base=Math.floor(rr/den); +var myn=rr-base*den,myd=den;return sign+(base===0?"":""+base)+" "+(myn===0?fill(" ",r[1].length+1+r[4].length):pad_(myn,r[1].length)+r[2]+"/"+r[3]+pad0(myd,r[4].length))}function write_num_f2(r,aval,sign){return sign+(aval===0?"":""+aval)+fill(" ",r[1].length+2+r[4].length)}var dec1=/^#*0*\.(0+)/;var closeparen=/\).*[0#]/;var phone=/\(###\) ###\\?-####/;function hashq(str){var o="",cc;for(var i=0;i!=str.length;++i)switch(cc=str.charCodeAt(i)){case 35:break;case 63:o+=" ";break;case 48:o+="0";break;default:o+=String.fromCharCode(cc)}return o}function rnd(val,d){var dd=Math.pow(10,d);return""+Math.round(val*dd)/dd}function dec(val,d){return Math.round((val-Math.floor(val))*Math.pow(10,d))}function flr(val){if(val<2147483647&&val>-2147483648)return""+(val>=0?val|0:val-1|0);return""+Math.floor(val)}function write_num_flt(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_flt("n",ffmt,val);return"("+write_num_flt("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_flt(type,fmt.substr(fmt[1]==" "?2:1),val);var o,oo;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0r(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=pad0r(val,0);if(o==="0")o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f1(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0r(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=rnd(val,r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+rnd(aval,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(pad0r(aval,0));if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_flt(type,fmt,-val):commaify(""+Math.floor(val))+"."+pad0(dec(val,r[1].length),r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_flt(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=0)return write_num_int("n",ffmt,val);return"("+write_num_int("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm2(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct2(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp2(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_int(type,fmt.substr(fmt[1]==" "?2:1),val);var o;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=""+val;if(val===0)o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f2(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=(""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+(""+aval).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(""+aval);if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val)+"."+fill("0",r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_int(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_int(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=12?"P":"A";q.t="T";hr="h";i+=3}else if(fmt.substr(i,5)==="AM/PM"){if(dt!=null)q.v=dt.H>=12?"PM":"AM";q.t="T";i+=5;hr="h"}else{q.t="t";++i}if(dt==null&&q.t==="T")return"";out[out.length]=q;lst=c;break;case"[":o=c;while(fmt[i++]!=="]"&&i-1||c=="\\"&&fmt[i+1]=="-"&&"0#".indexOf(fmt[i+2])>-1)o+=c;out[out.length]={t:"n",v:o};break;case"?":o=c;while(fmt[++i]===c)o+=c;q={t:c,v:o};out[out.length]=q;lst=c;break;case"*":++i;if(fmt[i]==" "||fmt[i]=="*")++i;break;case"(":case")":out[out.length]={t:flen===1?"t":c,v:c};++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=c;while("0123456789".indexOf(fmt[++i])>-1)o+=fmt[i];out[out.length]={t:"D",v:o};break;case" ":out[out.length]={t:c,v:c};++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"t",v:c};++i;break}}var bt=0,ss0=0,ssm;for(i=out.length-1,lst="t";i>=0;--i){switch(out[i].t){case"h":case"H":out[i].t=hr;lst="h";if(bt<1)bt=1;break;case"s":if(ssm=out[i].v.match(/\.0+$/))ss0=Math.max(ss0,ssm[0].length-1);if(bt<3)bt=3;case"d":case"y":case"M":case"e":lst=out[i].t;break;case"m":if(lst==="s"){out[i].t="M";if(bt<2)bt=2}break;case"X":if(out[i].v==="B2");break;case"Z":if(bt<1&&out[i].v.match(/[Hh]/))bt=1;if(bt<2&&out[i].v.match(/[Mm]/))bt=2;if(bt<3&&out[i].v.match(/[Ss]/))bt=3}}switch(bt){case 0:break;case 1:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}if(dt.M>=60){dt.M=0;++dt.H}break;case 2:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}break}var nstr="",jj;for(i=0;i-1||out[jj].v===" "&&out[jj+1]!=null&&out[jj+1].t=="?"))){out[i].v+=out[jj].v;out[jj]=undefined;++jj}nstr+=out[i].v;i=jj-1;break;case"G":out[i].t="t";out[i].v=general_fmt(v,opts);break}}var vv="",myv,ostr;if(nstr.length>0){myv=v<0&&nstr.charCodeAt(0)===45?-v:v;ostr=write_num(nstr.charCodeAt(0)===40?"(":"n",nstr,myv);jj=ostr.length-1;var decpt=out.length;for(i=0;i-1){decpt=i;break}var lasti=out.length;if(decpt===out.length&&ostr.indexOf("E")===-1){for(i=out.length-1;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;if(jj>=out[i].v.length-1){jj-=out[i].v.length;out[i].v=ostr.substr(jj+1,out[i].v.length)}else if(jj<0)out[i].v="";else{out[i].v=ostr.substr(0,jj+1);jj=-1}out[i].t="t";lasti=i}if(jj>=0&&lasti=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")-1:out[i].v.length-1;vv=out[i].v.substr(j+1);for(;j>=0;--j){if(jj>=0&&(out[i].v[j]==="0"||out[i].v[j]==="#"))vv=ostr[jj--]+vv}out[i].v=vv;out[i].t="t";lasti=i}if(jj>=0&&lasti-1&&i===decpt?out[i].v.indexOf(".")+1:0;vv=out[i].v.substr(0,j);for(;j-1){myv=flen>1&&v<0&&i>0&&out[i-1].v==="-"?-v:v;out[i].v=write_num(out[i].t,out[i].v,myv);out[i].t="t"}var retval="";for(i=0;i!==out.length;++i)if(out[i]!=null)retval+=out[i].v;return retval}SSF._eval=eval_fmt;var cfregex=/\[[=<>]/;var cfregex2=/\[([=<>]*)(-?\d+\.?\d*)\]/;function chkcond(v,rr){if(rr==null)return false;var thresh=parseFloat(rr[2]);switch(rr[1]){case"=":if(v==thresh)return true;break;case">":if(v>thresh)return true;break;case"<":if(v":if(v!=thresh)return true;break;case">=":if(v>=thresh)return true;break;case"<=":if(v<=thresh)return true;break}return false}function choose_fmt(f,v){var fmt=split_fmt(f);var l=fmt.length,lat=fmt[l-1].indexOf("@");if(l<4&&lat>-1)--l;if(fmt.length>4)throw"cannot find right format for |"+fmt+"|";if(typeof v!=="number")return[4,fmt.length===4||lat>-1?fmt[fmt.length-1]:"@"];switch(fmt.length){case 1:fmt=lat>-1?["General","General","General",fmt[0]]:[fmt[0],fmt[0],fmt[0],"@"];break;case 2:fmt=lat>-1?[fmt[0],fmt[0],fmt[0],fmt[1]]:[fmt[0],fmt[1],fmt[0],"@"];break;case 3:fmt=lat>-1?[fmt[0],fmt[1],fmt[0],fmt[2]]:[fmt[0],fmt[1],fmt[2],"@"];break;case 4:break}var ff=v>0?fmt[0]:v<0?fmt[1]:fmt[2];if(fmt[0].indexOf("[")===-1&&fmt[1].indexOf("[")===-1)return[l,ff];if(fmt[0].match(cfregex)!=null||fmt[1].match(cfregex)!=null){var m1=fmt[0].match(cfregex2);var m2=fmt[1].match(cfregex2);return chkcond(v,m1)?[l,fmt[0]]:chkcond(v,m2)?[l,fmt[1]]:[l,fmt[m1!=null&&m2!=null?2:1]]}return[l,ff]}function format(fmt,v,o){fixopts(o!=null?o:o=[]);var sfmt="";switch(typeof fmt){case"string":sfmt=fmt;break;case"number":sfmt=(o.table!=null?o.table:table_fmt)[fmt];break}if(isgeneral(sfmt,0))return general_fmt(v,o);var f=choose_fmt(sfmt,v);if(isgeneral(f[1]))return general_fmt(v,o);if(v===true)v="TRUE";else if(v===false)v="FALSE";else if(v===""||v==null)return"";return eval_fmt(f[1],v,o,f[0])}SSF._table=table_fmt;SSF.load=function load_entry(fmt,idx){table_fmt[idx]=fmt};SSF.format=format;SSF.get_table=function get_table(){return table_fmt};SSF.load_table=function load_table(tbl){for(var i=0;i!=392;++i)if(tbl[i]!==undefined)SSF.load(tbl[i],i)}};make_ssf(SSF);var XLMLFormatMap={"General Number":"General","General Date":SSF._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":SSF._table[15],"Short Date":SSF._table[14],"Long Time":SSF._table[19],"Medium Time":SSF._table[18],"Short Time":SSF._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:SSF._table[2],Standard:SSF._table[4],Percent:SSF._table[10],Scientific:SSF._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var DO_NOT_EXPORT_CFB=true;var CFB=function _CFB(){var exports={};exports.version="0.10.2";function parse(file){var mver=3;var ssz=512;var nmfs=0;var ndfs=0;var dir_start=0;var minifat_start=0;var difat_start=0;var fat_addrs=[];var blob=file.slice(0,512);prep_blob(blob,0);var mv=check_get_mver(blob);mver=mv[0];switch(mver){case 3:ssz=512;break;case 4:ssz=4096;break;default:throw"Major Version: Expected 3 or 4 saw "+mver}if(ssz!==512){blob=file.slice(0,ssz);prep_blob(blob,28)}var header=file.slice(0,ssz);check_shifts(blob,mver);var nds=blob.read_shift(4,"i");if(mver===3&&nds!==0)throw"# Directory Sectors: Expected 0 saw "+nds;blob.l+=4;dir_start=blob.read_shift(4,"i");blob.l+=4;blob.chk("00100000","Mini Stream Cutoff Size: ");minifat_start=blob.read_shift(4,"i");nmfs=blob.read_shift(4,"i");difat_start=blob.read_shift(4,"i");ndfs=blob.read_shift(4,"i");for(var q,j=0;j<109;++j){q=blob.read_shift(4,"i");if(q<0)break;fat_addrs[j]=q}var sectors=sectorify(file,ssz);sleuth_fat(difat_start,ndfs,sectors,ssz,fat_addrs);var sector_list=make_sector_list(sectors,dir_start,fat_addrs,ssz);sector_list[dir_start].name="!Directory";if(nmfs>0&&minifat_start!==ENDOFCHAIN)sector_list[minifat_start].name="!MiniFAT";sector_list[fat_addrs[0]].name="!FAT";sector_list.fat_addrs=fat_addrs;sector_list.ssz=ssz;var files={},Paths=[],FileIndex=[],FullPaths=[],FullPathDir={};read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex);build_full_paths(FileIndex,FullPathDir,FullPaths,Paths);var root_name=Paths.shift();Paths.root=root_name;var find_path=make_find_path(FullPaths,Paths,FileIndex,files,root_name);return{raw:{header:header,sectors:sectors},FileIndex:FileIndex,FullPaths:FullPaths,FullPathDir:FullPathDir,find:find_path}}function check_get_mver(blob){blob.chk(HEADER_SIGNATURE,"Header Signature: ");blob.chk(HEADER_CLSID,"CLSID: ");var mver=blob.read_shift(2,"u");return[blob.read_shift(2,"u"),mver]}function check_shifts(blob,mver){var shift=9;blob.chk("feff","Byte Order: ");switch(shift=blob.read_shift(2)){case 9:if(mver!==3)throw"MajorVersion/SectorShift Mismatch";break;case 12:if(mver!==4)throw"MajorVersion/SectorShift Mismatch";break;default:throw"Sector Shift: Expected 9 or 12 saw "+shift}blob.chk("0600","Mini Sector Shift: ");blob.chk("000000000000","Reserved: ")}function sectorify(file,ssz){var nsectors=Math.ceil(file.length/ssz)-1;var sectors=new Array(nsectors);for(var i=1;i>>2)-1;for(var i=0;i=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)];jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}return{nodes:buf,data:__toBuffer([buf_chain])}}function make_sector_list(sectors,dir_start,fat_addrs,ssz){var sl=sectors.length,sector_list=new Array(sl);var chkd=new Array(sl),buf,buf_chain;var modulus=ssz-1,i,j,k,jj;for(i=0;i=sl)k-=sl;if(chkd[k]===true)continue;buf_chain=[];for(j=k;j>=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)];jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}sector_list[k]={nodes:buf,data:__toBuffer([buf_chain])}}return sector_list}function read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex){var blob;var minifat_store=0,pl=Paths.length?2:0;var sector=sector_list[dir_start].data;var i=0,namelen=0,name,o,ctime,mtime;for(;i0&&minifat_store!==ENDOFCHAIN)sector_list[minifat_store].name="!StreamData"}else if(o.size>=4096){o.storage="fat";if(sector_list[o.start]===undefined)sector_list[o.start]=get_sector_list(sectors,o.start,sector_list.fat_addrs,sector_list.ssz);sector_list[o.start].name=o.name;o.content=sector_list[o.start].data.slice(0,o.size);prep_blob(o.content,0)}else{o.storage="minifat";if(minifat_store!==ENDOFCHAIN&&o.start!==ENDOFCHAIN){o.content=sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size);prep_blob(o.content,0)}}files[name]=o;FileIndex.push(o)}}function read_date(blob,offset){return new Date((__readUInt32LE(blob,offset+4)/1e7*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7-11644473600)*1e3)}var fs;function readFileSync(filename,options){if(fs===undefined)fs=require("fs");return parse(fs.readFileSync(filename),options)}function readSync(blob,options){switch(options!==undefined&&options.type!==undefined?options.type:"base64"){case"file":return readFileSync(blob,options);case"base64":return parse(s2a(Base64.decode(blob)),options);case"binary":return parse(s2a(blob),options)}return parse(blob)}var MSSZ=64;var ENDOFCHAIN=-2;var HEADER_SIGNATURE="d0cf11e0a1b11ae1";var HEADER_CLSID="00000000000000000000000000000000";var consts={MAXREGSECT:-6,DIFSECT:-4,FATSECT:-3,ENDOFCHAIN:ENDOFCHAIN,FREESECT:-1,HEADER_SIGNATURE:HEADER_SIGNATURE,HEADER_MINOR_VERSION:"3e00",MAXREGSID:-6,NOSTREAM:-1,HEADER_CLSID:HEADER_CLSID,EntryTypes:["unknown","storage","stream","lockbytes","property","root"]};exports.read=readSync;exports.parse=parse;exports.utils={ReadShift:ReadShift,CheckField:CheckField,prep_blob:prep_blob,bconcat:bconcat,consts:consts};return exports}();if(typeof require!=="undefined"&&typeof module!=="undefined"&&typeof DO_NOT_EXPORT_CFB==="undefined"){module.exports=CFB}function isval(x){return x!==undefined&&x!==null}function keys(o){return Object.keys(o)}function evert_key(obj,key){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]][key]]=K[i];return o}function evert(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=K[i];return o}function evert_num(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=parseInt(K[i],10);return o}function evert_arr(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i){if(o[obj[K[i]]]==null)o[obj[K[i]]]=[];o[obj[K[i]]].push(K[i])}return o}function datenum(v,date1904){if(date1904)v+=1462;var epoch=Date.parse(v);return(epoch+22091616e5)/(24*60*60*1e3)}function cc2str(arr){var o="";for(var i=0;i!=arr.length;++i)o+=String.fromCharCode(arr[i]);return o}function getdata(data){if(!data)return null;if(data.name.substr(-4)===".bin"){if(data.data)return char_codes(data.data);if(data.asNodeBuffer&&has_buf)return data.asNodeBuffer();if(data._data&&data._data.getContent)return Array.prototype.slice.call(data._data.getContent())}else{if(data.data)return data.name.substr(-4)!==".bin"?debom_xml(data.data):char_codes(data.data);if(data.asNodeBuffer&&has_buf)return debom_xml(data.asNodeBuffer().toString("binary"));if(data.asBinary)return debom_xml(data.asBinary());if(data._data&&data._data.getContent)return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)))}return null}function safegetzipfile(zip,file){var f=file;if(zip.files[f])return zip.files[f];f=file.toLowerCase();if(zip.files[f])return zip.files[f];f=f.replace(/\//g,"\\");if(zip.files[f])return zip.files[f];return null}function getzipfile(zip,file){var o=safegetzipfile(zip,file);if(o==null)throw new Error("Cannot find file "+file+" in zip");return o}function getzipdata(zip,file,safe){if(!safe)return getdata(getzipfile(zip,file));if(!file)return null;try{return getzipdata(zip,file)}catch(e){return null}}var _fs,jszip;if(typeof JSZip!=="undefined")jszip=JSZip;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){if(has_buf&&typeof jszip==="undefined")jszip=require("js"+"zip");if(typeof jszip==="undefined")jszip=require("./js"+"zip").JSZip;_fs=require("f"+"s")}}var attregexg=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var tagregex=/<[^>]*>/g;var nsregex=/<\w*:/,nsregex2=/<(\/?)\w+:/;function parsexmltag(tag,skip_root){var z=[];var eq=0,c=0;for(;eq!==tag.length;++eq)if((c=tag.charCodeAt(eq))===32||c===10||c===13)break;if(!skip_root)z[0]=tag.substr(0,eq);if(eq===tag.length)return z;var m=tag.match(attregexg),j=0,w="",v="",i=0,q="",cc="";if(m)for(i=0;i!=m.length;++i){cc=m[i];for(c=0;c!=cc.length;++c)if(cc.charCodeAt(c)===61)break;q=cc.substr(0,c);v=cc.substring(c+2,cc.length-1);for(j=0;j!=q.length;++j)if(q.charCodeAt(j)===58)break;if(j===q.length)z[q]=v;else z[(j===5&&q.substr(0,5)==="xmlns"?"xmlns":"")+q.substr(j+1)]=v}return z}function strip_ns(x){return x.replace(nsregex2,"<$1")}var encodings={""":'"',"'":"'",">":">","<":"<","&":"&"};var rencoding=evert(encodings);var rencstr="&<>'\"".split("");var unescapexml=function(){var encregex=/&[a-z]*;/g,coderegex=/_x([\da-fA-F]+)_/g;return function unescapexml(text){var s=text+"";return s.replace(encregex,function($$){return encodings[$$]}).replace(coderegex,function(m,c){return String.fromCharCode(parseInt(c,16))})}}();var decregex=/[&<>'"]/g,charegex=/[\u0000-\u0008\u000b-\u001f]/g;function escapexml(text){var s=text+"";return s.replace(decregex,function(y){return rencoding[y]}).replace(charegex,function(s){return"_x"+("000"+s.charCodeAt(0).toString(16)).substr(-4)+"_"})}var xlml_fixstr=function(){var entregex=/&#(\d+);/g;function entrepl($$,$1){return String.fromCharCode(parseInt($1,10))}return function xlml_fixstr(str){return str.replace(entregex,entrepl)}}();function parsexmlbool(value,tag){switch(value){case"1":case"true":case"TRUE":return true;default:return false}}var utf8read=function utf8reada(orig){var out="",i=0,c=0,d=0,e=0,f=0,w=0;while(i191&&c<224){out+=String.fromCharCode((c&31)<<6|d&63);continue}e=orig.charCodeAt(i++);if(c<240){out+=String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);continue}f=orig.charCodeAt(i++);w=((c&7)<<18|(d&63)<<12|(e&63)<<6|f&63)-65536;out+=String.fromCharCode(55296+(w>>>10&1023));out+=String.fromCharCode(56320+(w&1023))}return out};if(has_buf){var utf8readb=function utf8readb(data){var out=new Buffer(2*data.length),w,i,j=1,k=0,ww=0,c;for(i=0;i>>10&1023);w=56320+(w&1023)}if(ww!==0){out[k++]=ww&255;out[k++]=ww>>>8;ww=0}out[k++]=w%256;out[k++]=w>>>8}out.length=k;return out.toString("ucs2")};var corpus="foo bar baz☃🍣";if(utf8read(corpus)==utf8readb(corpus))utf8read=utf8readb;var utf8readc=function utf8readc(data){return Buffer(data,"binary").toString("utf8")};if(utf8read(corpus)==utf8readc(corpus))utf8read=utf8readc}var matchtag=function(){var mtcache={};return function matchtag(f,g){var t=f+"|"+g;if(mtcache[t]!==undefined)return mtcache[t];return mtcache[t]=new RegExp("<(?:\\w+:)?"+f+'(?: xml:space="preserve")?(?:[^>]*)>([^☃]*)",g||"")}}();var vtregex=function(){var vt_cache={};return function vt_regex(bt){if(vt_cache[bt]!==undefined)return vt_cache[bt];return vt_cache[bt]=new RegExp("(.*?)","g")}}();var vtvregex=/<\/?vt:variant>/g,vtmregex=/]*)>(.*)"+g+""}function wxt_helper(h){return keys(h).map(function(k){return" "+k+'="'+h[k]+'"'}).join("")}function writextag(f,g,h){return"<"+f+(isval(h)?wxt_helper(h):"")+(isval(g)?(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+""}function write_w3cdtf(d,t){try{return d.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}}function write_vt(s){switch(typeof s){case"string":return writextag("vt:lpwstr",s);case"number":return writextag((s|0)==s?"vt:i4":"vt:r8",String(s)); +case"boolean":return writextag("vt:bool",s?"true":"false")}if(s instanceof Date)return writextag("vt:filetime",write_w3cdtf(s));throw new Error("Unable to serialize "+s)}var XML_HEADER='\r\n';var XMLNS={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};XMLNS.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function readIEEE754(buf,idx,isLE,nl,ml){if(isLE===undefined)isLE=true;if(!nl)nl=8;if(!ml&&nl===8)ml=52;var e,m,el=nl*8-ml-1,eMax=(1<>1;var bits=-7,d=isLE?-1:1,i=isLE?nl-1:0,s=buf[idx+i];i+=d;e=s&(1<<-bits)-1;s>>>=-bits;bits+=el;for(;bits>0;e=e*256+buf[idx+i],i+=d,bits-=8);m=e&(1<<-bits)-1;e>>>=-bits;bits+=ml;for(;bits>0;m=m*256+buf[idx+i],i+=d,bits-=8);if(e===eMax)return m?NaN:(s?-1:1)*Infinity;else if(e===0)e=1-eBias;else{m=m+Math.pow(2,ml);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-ml)}var __toBuffer,___toBuffer;__toBuffer=___toBuffer=function toBuffer_(bufs){var x=[];for(var i=0;i0?__utf8(b,i+4,i+4+len-1):""};var __lpwstr,___lpwstr;__lpwstr=___lpwstr=function lpwstr_(b,i){var len=2*__readUInt32LE(b,i);return len>0?__utf8(b,i+4,i+4+len-1):""};var __double,___double;__double=___double=function(b,idx){return readIEEE754(b,idx)};var is_buf=function is_buf_a(a){return Array.isArray(a)};if(has_buf){__utf16le=function utf16le_b(b,s,e){if(!Buffer.isBuffer(b))return ___utf16le(b,s,e);return b.toString("utf16le",s,e)};__hexlify=function(b,s,l){return Buffer.isBuffer(b)?b.toString("hex",s,s+l):___hexlify(b,s,l)};__lpstr=function lpstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpstr(b,i);var len=b.readUInt32LE(i);return len>0?b.toString("utf8",i+4,i+4+len-1):""};__lpwstr=function lpwstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpwstr(b,i);var len=2*b.readUInt32LE(i);return b.toString("utf16le",i+4,i+4+len-1)};__utf8=function utf8_b(s,e){return this.toString("utf8",s,e)};__toBuffer=function(bufs){return bufs[0].length>0&&Buffer.isBuffer(bufs[0][0])?Buffer.concat(bufs[0]):___toBuffer(bufs)};bconcat=function(bufs){return Buffer.isBuffer(bufs[0])?Buffer.concat(bufs):[].concat.apply([],bufs)};__double=function double_(b,i){if(Buffer.isBuffer(b))return b.readDoubleLE(i);return ___double(b,i)};is_buf=function is_buf_b(a){return Buffer.isBuffer(a)||Array.isArray(a)}}if(typeof cptable!=="undefined"){__utf16le=function(b,s,e){return cptable.utils.decode(1200,b.slice(s,e))};__utf8=function(b,s,e){return cptable.utils.decode(65001,b.slice(s,e))};__lpstr=function(b,i){var len=__readUInt32LE(b,i);return len>0?cptable.utils.decode(current_codepage,b.slice(i+4,i+4+len-1)):""};__lpwstr=function(b,i){var len=2*__readUInt32LE(b,i);return len>0?cptable.utils.decode(1200,b.slice(i+4,i+4+len-1)):""}}var __readUInt8=function(b,idx){return b[idx]};var __readUInt16LE=function(b,idx){return b[idx+1]*(1<<8)+b[idx]};var __readInt16LE=function(b,idx){var u=b[idx+1]*(1<<8)+b[idx];return u<32768?u:(65535-u+1)*-1};var __readUInt32LE=function(b,idx){return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]};var __readInt32LE=function(b,idx){return b[idx+3]<<24|b[idx+2]<<16|b[idx+1]<<8|b[idx]};var ___unhexlify=function(s){return s.match(/../g).map(function(x){return parseInt(x,16)})};var __unhexlify=typeof Buffer!=="undefined"?function(s){return Buffer.isBuffer(s)?new Buffer(s,"hex"):___unhexlify(s)}:___unhexlify;function ReadShift(size,t){var o="",oI,oR,oo=[],w,vv,i,loc;switch(t){case"dbcs":loc=this.l;if(has_buf&&Buffer.isBuffer(this))o=this.slice(this.l,this.l+2*size).toString("utf16le");else for(i=0;i!=size;++i){o+=String.fromCharCode(__readUInt16LE(this,loc));loc+=2}size*=2;break;case"utf8":o=__utf8(this,this.l,this.l+size);break;case"utf16le":size*=2;o=__utf16le(this,this.l,this.l+size);break;case"lpstr":o=__lpstr(this,this.l);size=5+o.length;break;case"lpwstr":o=__lpwstr(this,this.l);size=5+o.length;if(o[o.length-1]=="\x00")size+=2;break;case"cstr":size=0;o="";while((w=__readUInt8(this,this.l+size++))!==0)oo.push(_getchar(w));o=oo.join("");break;case"wstr":size=0;o="";while((w=__readUInt16LE(this,this.l+size))!==0){oo.push(_getchar(w));size+=2}size+=2;o=oo.join("");break;case"dbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt16LE(this,loc)));loc+=2}o=oo.join("");size*=2;break;case"sbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt8(this,loc)));loc+=1}o=oo.join("");break;default:switch(size){case 1:oI=__readUInt8(this,this.l);this.l++;return oI;case 2:oI=(t==="i"?__readInt16LE:__readUInt16LE)(this,this.l);this.l+=2;return oI;case 4:if(t==="i"||(this[this.l+3]&128)===0){oI=__readInt32LE(this,this.l);this.l+=4;return oI}else{oR=__readUInt32LE(this,this.l);this.l+=4;return oR}break;case 8:if(t==="f"){oR=__double(this,this.l);this.l+=8;return oR}case 16:o=__hexlify(this,this.l,size);break}}this.l+=size;return o}function WriteShift(t,val,f){var size,i;if(f==="dbcs"){for(i=0;i!=val.length;++i)this.writeUInt16LE(val.charCodeAt(i),this.l+2*i);size=2*val.length}else switch(t){case 1:size=1;this[this.l]=val&255;break;case 3:size=3;this[this.l+2]=val&255;val>>>=8;this[this.l+1]=val&255;val>>>=8;this[this.l]=val&255;break;case 4:size=4;this.writeUInt32LE(val,this.l);break;case 8:size=8;if(f==="f"){this.writeDoubleLE(val,this.l);break}case 16:break;case-4:size=4;this.writeInt32LE(val,this.l);break}this.l+=size;return this}function CheckField(hexstr,fld){var m=__hexlify(this,this.l,hexstr.length>>1);if(m!==hexstr)throw fld+"Expected "+hexstr+" saw "+m;this.l+=hexstr.length>>1}function prep_blob(blob,pos){blob.l=pos;blob.read_shift=ReadShift;blob.chk=CheckField;blob.write_shift=WriteShift}function parsenoop(blob,length){blob.l+=length}function writenoop(blob,length){blob.l+=length}function new_buf(sz){var o=new_raw_buf(sz);prep_blob(o,0);return o}function recordhopper(data,cb,opts){var tmpbyte,cntbyte,length;prep_blob(data,data.l||0);while(data.l0)bufs.push(curbuf);curbuf=null};var next=function ba_next(sz){if(sz=128?1:0)+1+length;if(length>=128)++l;if(length>=16384)++l;if(length>=2097152)++l;var o=ba.next(l);if(t<=127)o.write_shift(1,t);else{o.write_shift(1,(t&127)+128);o.write_shift(1,t>>7)}for(var i=0;i!=4;++i){if(length>=128){o.write_shift(1,(length&127)+128);length>>=7}else{o.write_shift(1,length);break}}if(length>0&&is_buf(payload))ba.push(payload)}function shift_cell_xls(cell,tgt){if(tgt.s){if(cell.cRel)cell.c+=tgt.s.c;if(cell.rRel)cell.r+=tgt.s.r}else{cell.c+=tgt.c;cell.r+=tgt.r}cell.cRel=cell.rRel=0;while(cell.c>=256)cell.c-=256;while(cell.r>=65536)cell.r-=65536;return cell}function shift_range_xls(cell,range){cell.s=shift_cell_xls(cell.s,range.s);cell.e=shift_cell_xls(cell.e,range.s);return cell}var OFFCRYPTO={};var make_offcrypto=function(O,_crypto){var crypto;if(typeof _crypto!=="undefined")crypto=_crypto;else if(typeof require!=="undefined"){try{crypto=require("cry"+"pto")}catch(e){crypto=null}}O.rc4=function(key,data){var S=new Array(256);var c=0,i=0,j=0,t=0;for(i=0;i!=256;++i)S[i]=i;for(i=0;i!=256;++i){j=j+S[i]+key[i%key.length].charCodeAt(0)&255;t=S[i];S[i]=S[j];S[j]=t}i=j=0;out=Buffer(data.length);for(c=0;c!=data.length;++c){i=i+1&255;j=(j+S[i])%256;t=S[i];S[i]=S[j];S[j]=t;out[c]=data[c]^S[S[i]+S[j]&255]}return out};if(crypto){O.md5=function(hex){return crypto.createHash("md5").update(hex).digest("hex")}}else{O.md5=function(hex){throw"unimplemented"}}};make_offcrypto(OFFCRYPTO,typeof crypto!=="undefined"?crypto:undefined);function parse_StrRun(data,length){return{ich:data.read_shift(2),ifnt:data.read_shift(2)}}function parse_RichStr(data,length){var start=data.l;var flags=data.read_shift(1);var str=parse_XLWideString(data);var rgsStrRun=[];var z={t:str,h:str};if((flags&1)!==0){var dwSizeStrRun=data.read_shift(4);for(var i=0;i!=dwSizeStrRun;++i)rgsStrRun.push(parse_StrRun(data));z.r=rgsStrRun}else z.r=""+escapexml(str)+"";if((flags&2)!==0){}data.l=start+length;return z}function write_RichStr(str,o){if(o==null)o=new_buf(5+2*str.t.length);o.write_shift(1,0);write_XLWideString(str.t,o);return o}function parse_XLSBCell(data){var col=data.read_shift(4);var iStyleRef=data.read_shift(2);iStyleRef+=data.read_shift(1)<<16;var fPhShow=data.read_shift(1);return{c:col,iStyleRef:iStyleRef}}function write_XLSBCell(cell,o){if(o==null)o=new_buf(8);o.write_shift(-4,cell.c);o.write_shift(3,cell.iStyleRef===undefined?cell.iStyleRef:cell.s);o.write_shift(1,0);return o}function parse_XLSBCodeName(data,length){return parse_XLWideString(data,length)}function parse_XLNullableWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0||cchCharacters===4294967295?"":data.read_shift(cchCharacters,"dbcs")}function write_XLNullableWideString(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.length>0?data.length:4294967295);if(data.length>0)o.write_shift(0,data,"dbcs");return o}function parse_XLWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0?"":data.read_shift(cchCharacters,"dbcs")}function write_XLWideString(data,o){if(o==null)o=new_buf(4+2*data.length);o.write_shift(4,data.length);if(data.length>0)o.write_shift(0,data,"dbcs");return o}var parse_RelID=parse_XLNullableWideString;var write_RelID=write_XLNullableWideString;function parse_RkNumber(data){var b=data.slice(data.l,data.l+4);var fX100=b[0]&1,fInt=b[0]&2;data.l+=4;b[0]&=252;var RK=fInt===0?__double([0,0,0,0,b[0],b[1],b[2],b[3]],0):__readInt32LE(b,0)>>2;return fX100?RK/100:RK}function parse_UncheckedRfX(data){var cell={s:{},e:{}};cell.s.r=data.read_shift(4);cell.e.r=data.read_shift(4);cell.s.c=data.read_shift(4);cell.e.c=data.read_shift(4);return cell}function write_UncheckedRfX(r,o){if(!o)o=new_buf(16);o.write_shift(4,r.s.r);o.write_shift(4,r.e.r);o.write_shift(4,r.s.c);o.write_shift(4,r.e.c);return o}function parse_Xnum(data,length){return data.read_shift(8,"f")}function write_Xnum(data,o){return(o||new_buf(8)).write_shift(8,"f",data)}var BErr={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var RBErr=evert_num(BErr);function parse_BrtColor(data,length){var out={};var d=data.read_shift(1);out.fValidRGB=d&1;out.xColorType=d>>>1;out.index=data.read_shift(1);out.nTintAndShade=data.read_shift(2,"i");out.bRed=data.read_shift(1);out.bGreen=data.read_shift(1);out.bBlue=data.read_shift(1);out.bAlpha=data.read_shift(1)}function parse_FontFlags(data,length){var d=data.read_shift(1);data.l++;var out={fItalic:d&2,fStrikeout:d&8,fOutline:d&16,fShadow:d&32,fCondense:d&64,fExtend:d&128};return out}{var VT_EMPTY=0;var VT_NULL=1;var VT_I2=2;var VT_I4=3;var VT_R4=4;var VT_R8=5;var VT_CY=6;var VT_DATE=7;var VT_BSTR=8;var VT_ERROR=10;var VT_BOOL=11;var VT_VARIANT=12;var VT_DECIMAL=14;var VT_I1=16;var VT_UI1=17;var VT_UI2=18;var VT_UI4=19;var VT_I8=20;var VT_UI8=21;var VT_INT=22;var VT_UINT=23;var VT_LPSTR=30;var VT_LPWSTR=31;var VT_FILETIME=64;var VT_BLOB=65;var VT_STREAM=66;var VT_STORAGE=67;var VT_STREAMED_Object=68;var VT_STORED_Object=69;var VT_BLOB_Object=70;var VT_CF=71;var VT_CLSID=72;var VT_VERSIONED_STREAM=73;var VT_VECTOR=4096;var VT_ARRAY=8192;var VT_STRING=80;var VT_USTR=81;var VT_CUSTOM=[VT_STRING,VT_USTR]}var DocSummaryPIDDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Category",t:VT_STRING},3:{n:"PresentationFormat",t:VT_STRING},4:{n:"ByteCount",t:VT_I4},5:{n:"LineCount",t:VT_I4},6:{n:"ParagraphCount",t:VT_I4},7:{n:"SlideCount",t:VT_I4},8:{n:"NoteCount",t:VT_I4},9:{n:"HiddenCount",t:VT_I4},10:{n:"MultimediaClipCount",t:VT_I4},11:{n:"Scale",t:VT_BOOL},12:{n:"HeadingPair",t:VT_VECTOR|VT_VARIANT},13:{n:"DocParts",t:VT_VECTOR|VT_LPSTR},14:{n:"Manager",t:VT_STRING},15:{n:"Company",t:VT_STRING},16:{n:"LinksDirty",t:VT_BOOL},17:{n:"CharacterCount",t:VT_I4},19:{n:"SharedDoc",t:VT_BOOL},22:{n:"HLinksChanged",t:VT_BOOL},23:{n:"AppVersion",t:VT_I4,p:"version"},26:{n:"ContentType",t:VT_STRING},27:{n:"ContentStatus",t:VT_STRING},28:{n:"Language",t:VT_STRING},29:{n:"Version",t:VT_STRING},255:{}};var SummaryPIDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Title",t:VT_STRING},3:{n:"Subject",t:VT_STRING},4:{n:"Author",t:VT_STRING},5:{n:"Keywords",t:VT_STRING},6:{n:"Comments",t:VT_STRING},7:{n:"Template",t:VT_STRING},8:{n:"LastAuthor",t:VT_STRING},9:{n:"RevNumber",t:VT_STRING},10:{n:"EditTime",t:VT_FILETIME},11:{n:"LastPrinted",t:VT_FILETIME},12:{n:"CreatedDate",t:VT_FILETIME},13:{n:"ModifiedDate",t:VT_FILETIME},14:{n:"PageCount",t:VT_I4},15:{n:"WordCount",t:VT_I4},16:{n:"CharCount",t:VT_I4},17:{n:"Thumbnail",t:VT_CF},18:{n:"ApplicationName",t:VT_LPSTR},19:{n:"DocumentSecurity",t:VT_I4},255:{}};var SpecialProperties={2147483648:{n:"Locale",t:VT_UI4},2147483651:{n:"Behavior",t:VT_UI4},1919054434:{}};(function(){for(var y in SpecialProperties)if(SpecialProperties.hasOwnProperty(y))DocSummaryPIDDSI[y]=SummaryPIDSI[y]=SpecialProperties[y]})();var CountryEnum={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var XLSFillPattern=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function rgbify(arr){return arr.map(function(x){return[x>>16&255,x>>8&255,x&255]})}var XLSIcv=rgbify([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0]);var ct2type={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.chartsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"TODO","application/vnd.ms-excel.dialogsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"TODO","application/vnd.ms-excel.macrosheet":"TODO","application/vnd.ms-excel.macrosheet+xml":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.ms-excel.comments":"comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"TODO","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO",sheet:"js"};var CT_LIST=function(){var o={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};keys(o).forEach(function(k){if(!o[k].xlsm)o[k].xlsm=o[k].xlsx});keys(o).forEach(function(k){keys(o[k]).forEach(function(v){ct2type[o[k][v]]=k})});return o}();var type2ct=evert_arr(ct2type);XMLNS.CT="http://schemas.openxmlformats.org/package/2006/content-types";function parse_ct(data,opts){var ctext={};if(!data||!data.match)return data;var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0].replace(nsregex,"<")){case"0?ct.calcchains[0]:"";ct.sst=ct.strs.length>0?ct.strs[0]:"";ct.style=ct.styles.length>0?ct.styles[0]:"";ct.defaults=ctext;delete ct.calcchains;return ct}var CTYPE_XML_ROOT=writextag("Types",null,{xmlns:XMLNS.CT,"xmlns:xsd":XMLNS.xsd,"xmlns:xsi":XMLNS.xsi});var CTYPE_DEFAULTS=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["rels",type2ct.rels[0]]].map(function(x){return writextag("Default",null,{Extension:x[0],ContentType:x[1]})});function write_ct(ct,opts){var o=[],v;o[o.length]=XML_HEADER;o[o.length]=CTYPE_XML_ROOT;o=o.concat(CTYPE_DEFAULTS);var f1=function(w){if(ct[w]&&ct[w].length>0){v=ct[w][0];o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})}};var f2=function(w){ct[w].forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})})};var f3=function(t){(ct[t]||[]).forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:type2ct[t][0]})})};f1("workbooks");f2("sheets");f3("themes");["strs","styles"].forEach(f1);["coreprops","extprops","custprops"].forEach(f3);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var RELS={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument"};function parse_rels(data,currentFilePath){if(!data)return data;if(currentFilePath.charAt(0)!=="/"){currentFilePath="/"+currentFilePath}var rels={};var hash={};var resolveRelativePathIntoAbsolute=function(to){var toksFrom=currentFilePath.split("/");toksFrom.pop();var toksTo=to.split("/");var reversed=[];while(toksTo.length!==0){var tokTo=toksTo.shift();if(tokTo===".."){toksFrom.pop()}else if(tokTo!=="."){toksFrom.push(tokTo)}}return toksFrom.join("/")};data.match(tagregex).forEach(function(x){var y=parsexmltag(x);if(y[0]==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CORE_PROPS=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];XMLNS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";RELS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var CORE_PROPS_REGEX=function(){var r=new Array(CORE_PROPS.length);for(var i=0;i]*>(.*)")}return r}();function parse_core_props(data){var p={};for(var i=0;i0)p[f[1]]=cur[1];if(f[2]==="date"&&p[f[1]])p[f[1]]=new Date(p[f[1]])}return p}var CORE_PROPS_XML_ROOT=writextag("cp:coreProperties",null,{"xmlns:cp":XMLNS.CORE_PROPS,"xmlns:dc":XMLNS.dc,"xmlns:dcterms":XMLNS.dcterms,"xmlns:dcmitype":XMLNS.dcmitype,"xmlns:xsi":XMLNS.xsi});function cp_doit(f,g,h,o,p){if(p[f]!=null||g==null||g==="")return;p[f]=g;o[o.length]=h?writextag(f,g,h):writetag(f,g)}function write_core_props(cp,opts){var o=[XML_HEADER,CORE_PROPS_XML_ROOT],p={};if(!cp)return o.join("");if(cp.CreatedDate!=null)cp_doit("dcterms:created",typeof cp.CreatedDate==="string"?cp.CreatedDate:write_w3cdtf(cp.CreatedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);if(cp.ModifiedDate!=null)cp_doit("dcterms:modified",typeof cp.ModifiedDate==="string"?cp.ModifiedDate:write_w3cdtf(cp.ModifiedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);for(var i=0;i!=CORE_PROPS.length;++i){var f=CORE_PROPS[i];cp_doit(f[0],cp[f[1]],null,o,p)}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var EXT_PROPS=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];XMLNS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";RELS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function parse_ext_props(data,p){var q={};if(!p)p={};EXT_PROPS.forEach(function(f){switch(f[2]){case"string":p[f[1]]=(data.match(matchtag(f[0]))||[])[1];break;case"bool":p[f[1]]=(data.match(matchtag(f[0]))||[])[1]==="true";break;case"raw":var cur=data.match(new RegExp("<"+f[0]+"[^>]*>(.*)"));if(cur&&cur.length>0)q[f[1]]=cur[1];break}});if(q.HeadingPairs&&q.TitlesOfParts){var v=parseVector(q.HeadingPairs);var j=0,widx=0;for(var i=0;i!==v.length;++i){switch(v[i].v){case"Worksheets":widx=j;p.Worksheets=+v[++i].v;break;case"Named Ranges":++i;break}}var parts=parseVector(q.TitlesOfParts).map(function(x){return utf8read(x.v)});p.SheetNames=parts.slice(widx,widx+p.Worksheets)}return p}var EXT_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.EXT_PROPS,"xmlns:vt":XMLNS.vt});function write_ext_props(cp,opts){var o=[],p={},W=writextag;if(!cp)cp={};cp.Application="SheetJS";o[o.length]=XML_HEADER;o[o.length]=EXT_PROPS_XML_ROOT;EXT_PROPS.forEach(function(f){if(cp[f[1]]===undefined)return;var v;switch(f[2]){case"string":v=cp[f[1]];break;case"bool":v=cp[f[1]]?"true":"false";break}if(v!==undefined)o[o.length]=W(f[0],v)});o[o.length]=W("HeadingPairs",W("vt:vector",W("vt:variant","Worksheets")+W("vt:variant",W("vt:i4",String(cp.Worksheets))),{size:2,baseType:"variant"}));o[o.length]=W("TitlesOfParts",W("vt:vector",cp.SheetNames.map(function(s){return""+s+""}).join(""),{size:cp.Worksheets,baseType:"lpstr"}));if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}XMLNS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";RELS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var custregex=/<[^>]+>[^<]*/g;function parse_cust_props(data,opts){var p={},name;var m=data.match(custregex);if(m)for(var i=0;i!=m.length;++i){var x=m[i],y=parsexmltag(x);switch(y[0]){case"":name=null;break;default:if(x.indexOf("");var type=toks[0].substring(4),text=toks[1];switch(type){case"lpstr":case"lpwstr":case"bstr":case"lpwstr":p[name]=unescapexml(text);break;case"bool":p[name]=parsexmlbool(text,"");break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":p[name]=parseInt(text,10);break;case"r4":case"r8":case"decimal":p[name]=parseFloat(text);break;case"filetime":case"date":p[name]=new Date(text);break;case"cy":case"error":p[name]=unescapexml(text);break;default:if(typeof console!=="undefined")console.warn("Unexpected",x,type,toks)}}else if(x.substr(0,2)==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function xlml_set_prop(Props,tag,val){switch(tag){case"Description":tag="Comments";break}Props[tag]=val}function parse_FILETIME(blob){var dwLowDateTime=blob.read_shift(4),dwHighDateTime=blob.read_shift(4);return new Date((dwHighDateTime/1e7*Math.pow(2,32)+dwLowDateTime/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function parse_lpstr(blob,type,pad){var str=blob.read_shift(0,"lpstr");if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_lpwstr(blob,type,pad){var str=blob.read_shift(0,"lpwstr"); +if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_VtStringBase(blob,stringType,pad){if(stringType===31)return parse_lpwstr(blob);return parse_lpstr(blob,stringType,pad)}function parse_VtString(blob,t,pad){return parse_VtStringBase(blob,t,pad===false?0:4)}function parse_VtUnalignedString(blob,t){if(!t)throw new Error("dafuq?");return parse_VtStringBase(blob,t,0)}function parse_VtVecUnalignedLpstrValue(blob){var length=blob.read_shift(4);var ret=[];for(var i=0;i!=length;++i)ret[i]=blob.read_shift(0,"lpstr");return ret}function parse_VtVecUnalignedLpstr(blob){return parse_VtVecUnalignedLpstrValue(blob)}function parse_VtHeadingPair(blob){var headingString=parse_TypedPropertyValue(blob,VT_USTR);var headerParts=parse_TypedPropertyValue(blob,VT_I4);return[headingString,headerParts]}function parse_VtVecHeadingPairValue(blob){var cElements=blob.read_shift(4);var out=[];for(var i=0;i!=cElements/2;++i)out.push(parse_VtHeadingPair(blob));return out}function parse_VtVecHeadingPair(blob){return parse_VtVecHeadingPairValue(blob)}function parse_dictionary(blob,CodePage){var cnt=blob.read_shift(4);var dict={};for(var j=0;j!=cnt;++j){var pid=blob.read_shift(4);var len=blob.read_shift(4);dict[pid]=blob.read_shift(len,CodePage===1200?"utf16le":"utf8").replace(chr0,"").replace(chr1,"!")}if(blob.l&3)blob.l=blob.l>>2+1<<2;return dict}function parse_BLOB(blob){var size=blob.read_shift(4);var bytes=blob.slice(blob.l,blob.l+size);if(size&3>0)blob.l+=4-(size&3)&3;return bytes}function parse_ClipboardData(blob){var o={};o.Size=blob.read_shift(4);blob.l+=o.Size;return o}function parse_VtVector(blob,cb){}function parse_TypedPropertyValue(blob,type,_opts){var t=blob.read_shift(2),ret,opts=_opts||{};blob.l+=2;if(type!==VT_VARIANT)if(t!==type&&VT_CUSTOM.indexOf(type)===-1)throw new Error("Expected type "+type+" saw "+t);switch(type===VT_VARIANT?t:type){case 2:ret=blob.read_shift(2,"i");if(!opts.raw)blob.l+=2;return ret;case 3:ret=blob.read_shift(4,"i");return ret;case 11:return blob.read_shift(4)!==0;case 19:ret=blob.read_shift(4);return ret;case 30:return parse_lpstr(blob,t,4).replace(chr0,"");case 31:return parse_lpwstr(blob);case 64:return parse_FILETIME(blob);case 65:return parse_BLOB(blob);case 71:return parse_ClipboardData(blob);case 80:return parse_VtString(blob,t,!opts.raw&&4).replace(chr0,"");case 81:return parse_VtUnalignedString(blob,t,4).replace(chr0,"");case 4108:return parse_VtVecHeadingPair(blob);case 4126:return parse_VtVecUnalignedLpstr(blob);default:throw new Error("TypedPropertyValue unrecognized type "+type+" "+t)}}function parse_PropertySet(blob,PIDSI){var start_addr=blob.l;var size=blob.read_shift(4);var NumProps=blob.read_shift(4);var Props=[],i=0;var CodePage=0;var Dictionary=-1,DictObj;for(i=0;i!=NumProps;++i){var PropID=blob.read_shift(4);var Offset=blob.read_shift(4);Props[i]=[PropID,Offset+start_addr]}var PropH={};for(i=0;i!=NumProps;++i){if(blob.l!==Props[i][1]){var fail=true;if(i>0&&PIDSI)switch(PIDSI[Props[i-1][0]].t){case 2:if(blob.l+2===Props[i][1]){blob.l+=2;fail=false}break;case 80:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break;case 4108:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break}if(!PIDSI&&blob.l<=Props[i][1]){fail=false;blob.l=Props[i][1]}if(fail)throw new Error("Read Error: Expected address "+Props[i][1]+" at "+blob.l+" :"+i)}if(PIDSI){var piddsi=PIDSI[Props[i][0]];PropH[piddsi.n]=parse_TypedPropertyValue(blob,piddsi.t,{raw:true});if(piddsi.p==="version")PropH[piddsi.n]=String(PropH[piddsi.n]>>16)+"."+String(PropH[piddsi.n]&65535);if(piddsi.n=="CodePage")switch(PropH[piddsi.n]){case 0:PropH[piddsi.n]=1252;case 1e4:case 1252:case 874:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 932:case 936:case 949:case 950:case 1200:case 1201:case 65e3:case-536:case 65001:case-535:set_cp(CodePage=PropH[piddsi.n]);break;default:throw new Error("Unsupported CodePage: "+PropH[piddsi.n])}}else{if(Props[i][0]===1){CodePage=PropH.CodePage=parse_TypedPropertyValue(blob,VT_I2);set_cp(CodePage);if(Dictionary!==-1){var oldpos=blob.l;blob.l=Props[Dictionary][1];DictObj=parse_dictionary(blob,CodePage);blob.l=oldpos}}else if(Props[i][0]===0){if(CodePage===0){Dictionary=i;blob.l=Props[i+1][1];continue}DictObj=parse_dictionary(blob,CodePage)}else{var name=DictObj[Props[i][0]];var val;switch(blob[blob.l]){case 65:blob.l+=4;val=parse_BLOB(blob);break;case 30:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 31:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 3:blob.l+=4;val=blob.read_shift(4,"i");break;case 19:blob.l+=4;val=blob.read_shift(4);break;case 5:blob.l+=4;val=blob.read_shift(8,"f");break;case 11:blob.l+=4;val=parsebool(blob,4);break;case 64:blob.l+=4;val=new Date(parse_FILETIME(blob));break;default:throw new Error("unparsed value: "+blob[blob.l])}PropH[name]=val}}}blob.l=start_addr+size;return PropH}function parse_PropertySetStream(file,PIDSI){var blob=file.content;prep_blob(blob,0);var NumSets,FMTID0,FMTID1,Offset0,Offset1;blob.chk("feff","Byte Order: ");var vers=blob.read_shift(2);var SystemIdentifier=blob.read_shift(4);blob.chk(CFB.utils.consts.HEADER_CLSID,"CLSID: ");NumSets=blob.read_shift(4);if(NumSets!==1&&NumSets!==2)throw"Unrecognized #Sets: "+NumSets;FMTID0=blob.read_shift(16);Offset0=blob.read_shift(4);if(NumSets===1&&Offset0!==blob.l)throw"Length mismatch";else if(NumSets===2){FMTID1=blob.read_shift(16);Offset1=blob.read_shift(4)}var PSet0=parse_PropertySet(blob,PIDSI);var rval={SystemIdentifier:SystemIdentifier};for(var y in PSet0)rval[y]=PSet0[y];rval.FMTID=FMTID0;if(NumSets===1)return rval;if(blob.l!==Offset1)throw"Length mismatch 2: "+blob.l+" !== "+Offset1;var PSet1;try{PSet1=parse_PropertySet(blob,null)}catch(e){}for(y in PSet1)rval[y]=PSet1[y];rval.FMTID=[FMTID0,FMTID1];return rval}function parsenoop2(blob,length){blob.read_shift(length);return null}function parslurp(blob,length,cb){var arr=[],target=blob.l+length;while(blob.l=8)current_codepage=1200;if(opts===undefined||opts.biff!==5){var fHighByte=blob.read_shift(1);if(fHighByte){width=2;encoding="dbcs-cont"}}var o=cch?blob.read_shift(cch,encoding):"";current_codepage=cp;return o}function parse_XLUnicodeRichExtendedString(blob){var cp=current_codepage;current_codepage=1200;var cch=blob.read_shift(2),flags=blob.read_shift(1);var fHighByte=flags&1,fExtSt=flags&4,fRichSt=flags&8;var width=1+(flags&1);var cRun,cbExtRst;var z={};if(fRichSt)cRun=blob.read_shift(2);if(fExtSt)cbExtRst=blob.read_shift(4);var encoding=flags&1?"dbcs-cont":"sbcs-cont";var msg=cch===0?"":blob.read_shift(cch,encoding);if(fRichSt)blob.l+=4*cRun;if(fExtSt)blob.l+=cbExtRst;z.t=msg;if(!fRichSt){z.raw=""+z.t+"";z.r=z.t}current_codepage=cp;return z}function parse_XLUnicodeStringNoCch(blob,cch,opts){var retval;var fHighByte=blob.read_shift(1);if(fHighByte===0){retval=blob.read_shift(cch,"sbcs-cont")}else{retval=blob.read_shift(cch,"dbcs-cont")}return retval}function parse_XLUnicodeString(blob,length,opts){var cch=blob.read_shift(opts!==undefined&&opts.biff>0&&opts.biff<8?1:2);if(cch===0){blob.l++;return""}return parse_XLUnicodeStringNoCch(blob,cch,opts)}function parse_XLUnicodeString2(blob,length,opts){if(opts.biff!==5&&opts.biff!==2)return parse_XLUnicodeString(blob,length,opts);var cch=blob.read_shift(1);if(cch===0){blob.l++;return""}return blob.read_shift(cch,"sbcs-cont")}var parse_ControlInfo=parsenoop;var parse_URLMoniker=function(blob,length){var len=blob.read_shift(4),start=blob.l;var extra=false;if(len>24){blob.l+=len-24;if(blob.read_shift(16)==="795881f43b1d7f48af2c825dc4852763")extra=true;blob.l=start}var url=blob.read_shift((extra?len-24:len)>>1,"utf16le").replace(chr0,"");if(extra)blob.l+=24;return url};var parse_FileMoniker=function(blob,length){var cAnti=blob.read_shift(2);var ansiLength=blob.read_shift(4);var ansiPath=blob.read_shift(ansiLength,"cstr");var endServer=blob.read_shift(2);var versionNumber=blob.read_shift(2);var cbUnicodePathSize=blob.read_shift(4);if(cbUnicodePathSize===0)return ansiPath.replace(/\\/g,"/");var cbUnicodePathBytes=blob.read_shift(4);var usKeyValue=blob.read_shift(2);var unicodePath=blob.read_shift(cbUnicodePathBytes>>1,"utf16le").replace(chr0,"");return unicodePath};var parse_HyperlinkMoniker=function(blob,length){var clsid=blob.read_shift(16);length-=16;switch(clsid){case"e0c9ea79f9bace118c8200aa004ba90b":return parse_URLMoniker(blob,length);case"0303000000000000c000000000000046":return parse_FileMoniker(blob,length);default:throw"unsupported moniker "+clsid}};var parse_HyperlinkString=function(blob,length){var len=blob.read_shift(4);var o=blob.read_shift(len,"utf16le").replace(chr0,"");return o};var parse_Hyperlink=function(blob,length){var end=blob.l+length;var sVer=blob.read_shift(4);if(sVer!==2)throw new Error("Unrecognized streamVersion: "+sVer);var flags=blob.read_shift(2);blob.l+=2;var displayName,targetFrameName,moniker,oleMoniker,location,guid,fileTime;if(flags&16)displayName=parse_HyperlinkString(blob,end-blob.l);if(flags&128)targetFrameName=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===257)moniker=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===1)oleMoniker=parse_HyperlinkMoniker(blob,end-blob.l);if(flags&8)location=parse_HyperlinkString(blob,end-blob.l);if(flags&32)guid=blob.read_shift(16);if(flags&64)fileTime=parse_FILETIME(blob,8);blob.l=end;var target=targetFrameName||moniker||oleMoniker;if(location)target+="#"+location;return{Target:target}};function parse_LongRGBA(blob,length){var r=blob.read_shift(1),g=blob.read_shift(1),b=blob.read_shift(1),a=blob.read_shift(1);return[r,g,b,a]}function parse_LongRGB(blob,length){var x=parse_LongRGBA(blob,length);x[3]=0;return x}function parse_XLSCell(blob,length){var rw=blob.read_shift(2);var col=blob.read_shift(2);var ixfe=blob.read_shift(2);return{r:rw,c:col,ixfe:ixfe}}function parse_frtHeader(blob){var rt=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=8;return{type:rt,flags:flags}}function parse_OptXLUnicodeString(blob,length,opts){return length===0?"":parse_XLUnicodeString2(blob,length,opts)}var HIDEOBJENUM=["SHOWALL","SHOWPLACEHOLDER","HIDEALL"];var parse_HideObjEnum=parseuint16;function parse_XTI(blob,length){var iSupBook=blob.read_shift(2),itabFirst=blob.read_shift(2,"i"),itabLast=blob.read_shift(2,"i");return[iSupBook,itabFirst,itabLast]}function parse_RkRec(blob,length){var ixfe=blob.read_shift(2);var RK=parse_RkNumber(blob);return[ixfe,RK]}function parse_AddinUdf(blob,length){blob.l+=4;length-=4;var l=blob.l+length;var udfName=parse_ShortXLUnicodeString(blob,length);var cb=blob.read_shift(2);l-=blob.l;if(cb!==l)throw"Malformed AddinUdf: padding = "+l+" != "+cb;blob.l+=cb;return udfName}function parse_Ref8U(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(2);var colLast=blob.read_shift(2);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}function parse_RefU(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(1);var colLast=blob.read_shift(1);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}var parse_Ref=parse_RefU;function parse_FtCmo(blob,length){blob.l+=4;var ot=blob.read_shift(2);var id=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=12;return[id,ot,flags]}function parse_FtNts(blob,length){var out={};blob.l+=4;blob.l+=16;out.fSharedNote=blob.read_shift(2);blob.l+=4;return out}function parse_FtCf(blob,length){var out={};blob.l+=4;blob.cf=blob.read_shift(2);return out}var FtTab={21:parse_FtCmo,19:parsenoop,18:function(blob,length){blob.l+=12},17:function(blob,length){blob.l+=8},16:parsenoop,15:parsenoop,13:parse_FtNts,12:function(blob,length){blob.l+=24},11:function(blob,length){blob.l+=10},10:function(blob,length){blob.l+=16},9:parsenoop,8:function(blob,length){blob.l+=6},7:parse_FtCf,6:function(blob,length){blob.l+=6},4:parsenoop,0:function(blob,length){blob.l+=4}};function parse_FtArray(blob,length,ot){var s=blob.l;var fts=[];while(blob.l":case"":break;case"":pass=false;break;case"":pass=false;break;default:if(!pass&&opts.WTF)throw"unrecognized "+y[0]+" in workbook"}});if(XMLNS.main.indexOf(wb.xmlns)===-1)throw new Error("Unknown Namespace: "+wb.xmlns);parse_wb_defaults(wb);return wb}var WB_XML_ROOT=writextag("workbook",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function safe1904(wb){try{return parsexmlbool(wb.Workbook.WBProps.date1904)?"true":"false"}catch(e){return"false"}}function write_wb_xml(wb,opts){var o=[XML_HEADER];o[o.length]=WB_XML_ROOT;o[o.length]=writextag("workbookPr",null,{date1904:safe1904(wb)});o[o.length]="";for(var i=0;i!=wb.SheetNames.length;++i)o[o.length]=writextag("sheet",null,{name:wb.SheetNames[i].substr(0,31),sheetId:""+(i+1),"r:id":"rId"+(i+1)});o[o.length]="";if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBundleSh(data,length){var z={};z.hsState=data.read_shift(4);z.iTabID=data.read_shift(4);z.strRelID=parse_RelID(data,length-8);z.name=parse_XLWideString(data);return z}function write_BrtBundleSh(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.hsState);o.write_shift(4,data.iTabID);write_RelID(data.strRelID,o);write_XLWideString(data.name.substr(0,31),o);return o}function parse_BrtWbProp(data,length){data.read_shift(4);var dwThemeVersion=data.read_shift(4);var strName=length>8?parse_XLWideString(data):"";return[dwThemeVersion,strName]}function write_BrtWbProp(data,o){if(!o)o=new_buf(8);o.write_shift(4,0);o.write_shift(4,0);return o}function parse_BrtFRTArchID$(data,length){var o={};data.read_shift(4);o.ArchID=data.read_shift(4);data.l+=length-8;return o}function parse_wb_bin(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,z;recordhopper(data,function hopper_wb(val,R){switch(R.n){case"BrtBundleSh":wb.Sheets.push(val);break;case"BrtBeginBook":break;case"BrtFileVersion":break;case"BrtWbProp":break;case"BrtACBegin":break;case"BrtAbsPath15":break;case"BrtACEnd":break;case"BrtWbFactoid":break;case"BrtBookProtection":break;case"BrtBeginBookViews":break;case"BrtBookView":break;case"BrtEndBookViews":break;case"BrtBeginBundleShs":break;case"BrtEndBundleShs":break;case"BrtBeginFnGroup":break;case"BrtEndFnGroup":break;case"BrtBeginExternals":break;case"BrtSupSelf":break;case"BrtSupBookSrc":break;case"BrtExternSheet":break;case"BrtEndExternals":break;case"BrtName":break;case"BrtCalcProp":break;case"BrtUserBookView":break;case"BrtBeginPivotCacheIDs":break;case"BrtBeginPivotCacheID":break;case"BrtEndPivotCacheID":break;case"BrtEndPivotCacheIDs":break;case"BrtWebOpt":break;case"BrtFileRecover":break;case"BrtFileSharing":break;case"BrtBeginSmartTagTypes":break;case"BrtSmartTagType":break;case"BrtEndSmartTagTypes":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTArchID$":break;case"BrtWorkBookPr15":break;case"BrtFRTEnd":pass=false;break;case"BrtEndBook":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}});parse_wb_defaults(wb);return wb}function write_BUNDLESHS(ba,wb,opts){write_record(ba,"BrtBeginBundleShs");for(var idx=0;idx!=wb.SheetNames.length;++idx){var d={hsState:0,iTabID:idx+1,strRelID:"rId"+(idx+1),name:wb.SheetNames[idx]};write_record(ba,"BrtBundleSh",write_BrtBundleSh(d))}write_record(ba,"BrtEndBundleShs")}function write_BrtFileVersion(data,o){if(!o)o=new_buf(127);for(var i=0;i!=4;++i)o.write_shift(4,0);write_XLWideString("SheetJS",o);write_XLWideString(XLSX.version,o);write_XLWideString(XLSX.version,o);write_XLWideString("7262",o);o.length=o.l;return o}function write_BOOKVIEWS(ba,wb,opts){write_record(ba,"BrtBeginBookViews");write_record(ba,"BrtEndBookViews")}function write_BrtCalcProp(data,o){if(!o)o=new_buf(26);o.write_shift(4,0);o.write_shift(4,1);o.write_shift(4,0);write_Xnum(0,o);o.write_shift(-4,1023);o.write_shift(1,51);o.write_shift(1,0);return o}function write_BrtFileRecover(data,o){if(!o)o=new_buf(1);o.write_shift(1,0);return o}function write_wb_bin(wb,opts){var ba=buf_array();write_record(ba,"BrtBeginBook");write_record(ba,"BrtFileVersion",write_BrtFileVersion());write_record(ba,"BrtWbProp",write_BrtWbProp());write_BOOKVIEWS(ba,wb,opts);write_BUNDLESHS(ba,wb,opts);write_record(ba,"BrtCalcProp",write_BrtCalcProp());write_record(ba,"BrtFileRecover",write_BrtFileRecover());write_record(ba,"BrtEndBook");return ba.end()}function parse_wb(data,name,opts){return(name.substr(-4)===".bin"?parse_wb_bin:parse_wb_xml)(data,opts)}function parse_ws(data,name,opts,rels){return(name.substr(-4)===".bin"?parse_ws_bin:parse_ws_xml)(data,opts,rels)}function parse_sty(data,name,opts){return(name.substr(-4)===".bin"?parse_sty_bin:parse_sty_xml)(data,opts)}function parse_theme(data,name,opts){return parse_theme_xml(data,opts)}function parse_sst(data,name,opts){return(name.substr(-4)===".bin"?parse_sst_bin:parse_sst_xml)(data,opts)}function parse_cmnt(data,name,opts){return(name.substr(-4)===".bin"?parse_comments_bin:parse_comments_xml)(data,opts)}function parse_cc(data,name,opts){return(name.substr(-4)===".bin"?parse_cc_bin:parse_cc_xml)(data,opts)}function write_wb(wb,name,opts){return(name.substr(-4)===".bin"?write_wb_bin:write_wb_xml)(wb,opts)}function write_ws(data,name,opts,wb){return(name.substr(-4)===".bin"?write_ws_bin:write_ws_xml)(data,opts,wb)}function write_sty(data,name,opts){return(name.substr(-4)===".bin"?write_sty_bin:write_sty_xml)(data,opts)}function write_sst(data,name,opts){return(name.substr(-4)===".bin"?write_sst_bin:write_sst_xml)(data,opts)}var attregexg2=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var attregex2=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var _chr=function(c){return String.fromCharCode(c)};function xlml_parsexmltag(tag,skip_root){var words=tag.split(/\s+/);var z=[];if(!skip_root)z[0]=words[0];if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_parsexmltagobj(tag){var words=tag.split(/\s+/);var z={};if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_format(format,value){var fmt=XLMLFormatMap[format]||unescapexml(format);if(fmt==="General")return SSF._general(value);return SSF.format(fmt,value)}function xlml_set_custprop(Custprops,Rn,cp,val){switch((cp[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":val=parsexmlbool(val);break;case"i2":case"int":val=parseInt(val,10);break;case"r4":case"float":val=parseFloat(val);break;case"date":case"dateTime.tz":val=new Date(val);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw"bad custprop:"+cp[0]}Custprops[unescapexml(Rn[3])]=val}function safe_format_xlml(cell,nf,o){try{if(cell.t==="e"){cell.w=cell.w||BErr[cell.v]}else if(nf==="General"){if(cell.t==="n"){if((cell.v|0)===cell.v)cell.w=SSF._general_int(cell.v);else cell.w=SSF._general_num(cell.v)}else cell.w=SSF._general(cell.v)}else cell.w=xlml_format(nf||"General",cell.v);if(o.cellNF)cell.z=XLMLFormatMap[nf]||nf||"General"}catch(e){if(o.WTF)throw e}}function process_style_xlml(styles,stag,opts){if(opts.cellStyles){if(stag.Interior){var I=stag.Interior;if(I.Pattern)I.patternType=XLMLPatternTypeMap[I.Pattern]||I.Pattern}}styles[stag.ID]=stag}function parse_xlml_data(xml,ss,data,cell,base,styles,csty,row,o){var nf="General",sid=cell.StyleID,S={};o=o||{};var interiors=[];if(sid===undefined&&row)sid=row.StyleID;if(sid===undefined&&csty)sid=csty.StyleID;while(styles[sid]!==undefined){if(styles[sid].nf)nf=styles[sid].nf;if(styles[sid].Interior)interiors.push(styles[sid].Interior);if(!styles[sid].Parent)break;sid=styles[sid].Parent}switch(data.Type){case"Boolean":cell.t="b";cell.v=parsexmlbool(xml);break;case"String":cell.t="s";cell.r=xlml_fixstr(unescapexml(xml));cell.v=xml.indexOf("<")>-1?ss:cell.r;break;case"DateTime":cell.v=(Date.parse(xml)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(cell.v!==cell.v)cell.v=unescapexml(xml);else if(cell.v>=1&&cell.v<60)cell.v=cell.v-1;if(!nf||nf=="General")nf="yyyy-mm-dd";case"Number":if(cell.v===undefined)cell.v=+xml;if(!cell.t)cell.t="n";break;case"Error":cell.t="e";cell.v=RBErr[xml];cell.w=xml;break;default:cell.t="s";cell.v=xlml_fixstr(ss);break}safe_format_xlml(cell,nf,o);if(o.cellFormula!=null&&cell.Formula){cell.f=rc_to_a1(unescapexml(cell.Formula),base);cell.Formula=undefined}if(o.cellStyles){interiors.forEach(function(x){if(!S.patternType&&x.patternType)S.patternType=x.patternType});cell.s=S}cell.ixfe=cell.StyleID!==undefined?cell.StyleID:"Default"}function xlml_clean_comment(comment){comment.t=comment.v;comment.v=comment.w=comment.ixfe=undefined}function xlml_normalize(d){if(has_buf&&Buffer.isBuffer(d))return d.toString("utf8");if(typeof d==="string")return d;throw"badf"}var xlmlregex=/<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/gm;function parse_xlml_xml(d,opts){var str=xlml_normalize(d);var Rn;var state=[],tmp;var sheets={},sheetnames=[],cursheet={},sheetname="";var table={},cell={},row={},dtag,didx;var c=0,r=0;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var styles={},stag={};var ss="",fidx=0;var mergecells=[];var Props={},Custprops={},pidx=0,cp={};var comments=[],comment={};var cstys=[],csty;xlmlregex.lastIndex=0;while(Rn=xlmlregex.exec(str))switch(Rn[3]){case"Data":if(state[state.length-1][1])break;if(Rn[1]==="/")parse_xlml_data(str.slice(didx,Rn.index),ss,dtag,state[state.length-1][0]=="Comment"?comment:cell,{c:c,r:r},styles,cstys[c],row,opts); +else{ss="";dtag=xlml_parsexmltag(Rn[0]);didx=Rn.index+Rn[0].length}break;case"Cell":if(Rn[1]==="/"){if(comments.length>0)cell.c=comments;if((!opts.sheetRows||opts.sheetRows>r)&&cell.v!==undefined)cursheet[encode_col(c)+encode_row(r)]=cell;if(cell.HRef){cell.l={Target:cell.HRef,tooltip:cell.HRefScreenTip};cell.HRef=cell.HRefScreenTip=undefined}if(cell.MergeAcross||cell.MergeDown){var cc=c+(parseInt(cell.MergeAcross,10)|0);var rr=r+(parseInt(cell.MergeDown,10)|0);mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}})}++c;if(cell.MergeAcross)c+=+cell.MergeAcross}else{cell=xlml_parsexmltagobj(Rn[0]);if(cell.Index)c=+cell.Index-1;if(crefguess.e.c)refguess.e.c=c;if(Rn[0].substr(-2)==="/>")++c;comments=[]}break;case"Row":if(Rn[1]==="/"||Rn[0].substr(-2)==="/>"){if(rrefguess.e.r)refguess.e.r=r;if(Rn[0].substr(-2)==="/>"){row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}c=0;++r}else{row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}break;case"Worksheet":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;sheetnames.push(sheetname);if(refguess.s.r<=refguess.e.r&&refguess.s.c<=refguess.e.c)cursheet["!ref"]=encode_range(refguess);if(mergecells.length)cursheet["!merges"]=mergecells;sheets[sheetname]=cursheet}else{refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};r=c=0;state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);sheetname=tmp.Name;cursheet={};mergecells=[]}break;case"Table":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].slice(-2)=="/>")break;else{table=xlml_parsexmltag(Rn[0]);state.push([Rn[3],false]);cstys=[]}break;case"Style":if(Rn[1]==="/")process_style_xlml(styles,stag,opts);else stag=xlml_parsexmltag(Rn[0]);break;case"NumberFormat":stag.nf=xlml_parsexmltag(Rn[0]).Format||"General";break;case"Column":if(state[state.length-1][0]!=="Table")break;csty=xlml_parsexmltag(Rn[0]);cstys[csty.Index-1||cstys.length]=csty;for(var i=0;i<+csty.Span;++i)cstys[cstys.length]=csty;break;case"NamedRange":break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")ss+=str.slice(fidx,Rn.index);else fidx=Rn.index+Rn[0].length;break;case"Interior":if(!opts.cellStyles)break;stag.Interior=xlml_parsexmltag(Rn[0]);break;case"Protection":break;case"Author":case"Title":case"Description":case"Created":case"Keywords":case"Subject":case"Category":case"Company":case"LastAuthor":case"LastSaved":case"LastPrinted":case"Version":case"Revision":case"TotalTime":case"HyperlinkBase":case"Manager":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_prop(Props,Rn[3],str.slice(pidx,Rn.index));else pidx=Rn.index+Rn[0].length;break;case"Paragraphs":break;case"Styles":case"Workbook":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else state.push([Rn[3],false]);break;case"Comment":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;xlml_clean_comment(comment);comments.push(comment)}else{state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);comment={a:tmp.Author}}break;case"Name":break;case"ComponentOptions":case"DocumentProperties":case"CustomDocumentProperties":case"OfficeDocumentSettings":case"PivotTable":case"PivotCache":case"Names":case"MapInfo":case"PageBreaks":case"QueryTable":case"DataValidation":case"AutoFilter":case"Sorting":case"Schema":case"data":case"ConditionalFormatting":case"SmartTagType":case"SmartTags":case"ExcelWorkbook":case"WorkbookOptions":case"WorksheetOptions":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].charAt(Rn[0].length-2)!=="/")state.push([Rn[3],true]);break;default:var seen=true;switch(state[state.length-1][0]){case"OfficeDocumentSettings":switch(Rn[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:seen=false}break;case"ComponentOptions":switch(Rn[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:seen=false}break;case"ExcelWorkbook":switch(Rn[3]){case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Date1904":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:seen=false}break;case"WorkbookOptions":switch(Rn[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:seen=false}break;case"WorksheetOptions":switch(Rn[3]){case"Unsynced":break;case"Visible":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"Header":break;case"Footer":break;case"PageSetup":break;case"PageMargins":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:seen=false}break;case"PivotTable":case"PivotCache":switch(Rn[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:seen=false}break;case"PageBreaks":switch(Rn[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:seen=false}break;case"AutoFilter":switch(Rn[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:seen=false}break;case"QueryTable":switch(Rn[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:seen=false}break;case"Sorting":case"ConditionalFormatting":case"DataValidation":switch(Rn[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:seen=false}break;case"MapInfo":case"Schema":case"data":switch(Rn[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":case"element":case"complexType":case"datatype":case"all":case"attribute":case"extends":break;case"row":break;default:seen=false}break;case"SmartTags":break;default:seen=false;break}if(seen)break;if(!state[state.length-1][1])throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|");if(state[state.length-1][0]==="CustomDocumentProperties"){if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_custprop(Custprops,Rn,cp,str.slice(pidx,Rn.index));else{cp=Rn;pidx=Rn.index+Rn[0].length}break}if(opts.WTF)throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|")}var out={};if(!opts.bookSheets&&!opts.bookProps)out.Sheets=sheets;out.SheetNames=sheetnames;out.SSF=SSF.get_table();out.Props=Props;out.Custprops=Custprops;return out}function parse_xlml(data,opts){fix_read_opts(opts=opts||{});switch(opts.type||"base64"){case"base64":return parse_xlml_xml(Base64.decode(data),opts);case"binary":case"buffer":case"file":return parse_xlml_xml(data,opts);case"array":return parse_xlml_xml(data.map(_chr).join(""),opts)}}function write_xlml(wb,opts){}function parse_compobj(obj){var v={};var o=obj.content;var l=28,m;m=__lpstr(o,l);l+=4+__readUInt32LE(o,l);v.UserType=m;m=__readUInt32LE(o,l);l+=4;switch(m){case 0:break;case 4294967295:case 4294967294:l+=4;break;default:if(m>400)throw new Error("Unsupported Clipboard: "+m.toString(16));l+=m}m=__lpstr(o,l);l+=m.length===0?0:5+m.length;v.Reserved1=m;if((m=__readUInt32LE(o,l))!==1907550708)return v;throw"Unsupported Unicode Extension"}function slurp(R,blob,length,opts){var l=length;var bufs=[];var d=blob.slice(blob.l,blob.l+l);if(opts&&opts.enc&&opts.enc.insitu_decrypt)switch(R.n){case"BOF":case"FilePass":case"FileLock":case"InterfaceHdr":case"RRDInfo":case"RRDHead":case"UsrExcl":break;default:if(d.length===0)break;opts.enc.insitu_decrypt(d)}bufs.push(d);blob.l+=l;var next=XLSRecordEnum[__readUInt16LE(blob,blob.l)];while(next!=null&&next.n==="Continue"){l=__readUInt16LE(blob,blob.l+2);bufs.push(blob.slice(blob.l+4,blob.l+4+l));blob.l+=4+l;next=XLSRecordEnum[__readUInt16LE(blob,blob.l)]}var b=bconcat(bufs);prep_blob(b,0);var ll=0;b.lens=[];for(var j=0;jrange.e.r)range.e.r=cell.r+1;if(cell.c+1>range.e.c)range.e.c=cell.c+1}if(options.sheetRows&&lastcell.r>=options.sheetRows)cell_valid=false;else out[last_cell]=line};var opts={enc:false,sbcch:0,snames:[],sharedf:shared_formulae,arrayf:array_formulae,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,wtf:false};if(options.password)opts.password=options.password;var mergecells=[];var objects=[];var supbooks=[[]];var sbc=0,sbci=0,sbcli=0;supbooks.SheetNames=opts.snames;supbooks.sharedf=opts.sharedf;supbooks.arrayf=opts.arrayf;var last_Rn="";var file_depth=0;opts.codepage=1200;set_cp(1200);while(blob.l0&&range.e.c>0){range.e.r--;range.e.c--;out["!ref"]=encode_range(range);range.e.r++;range.e.c++}if(mergecells.length>0)out["!merges"]=mergecells;if(objects.length>0)out["!objects"]=objects}if(cur_sheet==="")Preamble=out;else Sheets[cur_sheet]=out;out={}}break;case"BOF":{if(opts.biff!==8);else if(val.BIFFVer===1280)opts.biff=5;else if(val.BIFFVer===2)opts.biff=2;else if(val.BIFFVer===7)opts.biff=2;if(file_depth++)break;cell_valid=true;out={};if(opts.biff===2){if(cur_sheet==="")cur_sheet="Sheet1";range={s:{r:0,c:0},e:{r:0,c:0}}}else cur_sheet=(Directory[s]||{name:""}).name;mergecells=[];objects=[]}break;case"Number":case"BIFF2NUM":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"BoolErr":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:val.t};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"RK":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.rknum,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"MulRk":{for(var j=val.c;j<=val.C;++j){var ixfe=val.rkrec[j-val.c][0];temp_val={ixfe:ixfe,XF:XFs[ixfe],v:val.rkrec[j-val.c][1],t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:j,r:val.r},temp_val,options)}}break;case"Formula":{switch(val.val){case"String":last_formula=val;break;case"Array Formula":throw"Array Formula unsupported";default:temp_val={v:val.val,ixfe:val.cell.ixfe,t:val.tt};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(val.formula,range,val.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(val.cell,temp_val,options);last_formula=val}}break;case"String":{if(last_formula){last_formula.val=val;temp_val={v:last_formula.val,ixfe:last_formula.cell.ixfe,t:"s"};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(last_formula.formula,range,last_formula.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(last_formula.cell,temp_val,options);last_formula=null}}break;case"Array":{array_formulae.push(val)}break;case"ShrFmla":{if(!cell_valid)break;shared_formulae[encode_cell(last_formula.cell)]=val[0]}break;case"LabelSst":temp_val=make_cell(sst[val.isst].t,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Label":case"BIFF2STR":temp_val=make_cell(val.val,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Dimensions":{if(file_depth===1)range=val}break;case"SST":{sst=val}break;case"Format":{SSF.load(val[1],val[0])}break;case"MergeCells":mergecells=mergecells.concat(val);break;case"Obj":objects[val.cmo[0]]=opts.lastobj=val;break;case"TxO":opts.lastobj.TxO=val;break;case"HLink":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l=val[1]}break;case"HLinkTooltip":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l.tooltip=val[1]}break;case"Note":{if(opts.biff<=5&&opts.biff>=2)break;cc=out[encode_cell(val[0])];var noteobj=objects[val[2]];if(!cc)break;if(!cc.c)cc.c=[];cmnt={a:val[1],t:noteobj.TxO.t};cc.c.push(cmnt)}break;default:switch(R.n){case"ClrtClient":break;case"XFExt":update_xfext(XFs[val.ixfe],val.ext);break;case"NameCmt":break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"Setup":break;case"DefColWidth":break;case"GCW":break;case"LHRecord":break;case"ColInfo":break;case"Row":break;case"DBCell":break;case"MulBlank":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Blank":break;case"Country":country=val;break;case"RecalcId":break;case"DefaultRowHeight":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":palette=val;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":case"Window1":case"Window2":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(R.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":break;case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":break;case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"ImData":break;case"WebPub":case"AutoWebPub":case"RightMargin":case"LeftMargin":case"TopMargin":case"BottomMargin":case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;case"ExternCount":break;case"RString":break;case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;default:switch(R.n){case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;default:if(options.WTF)throw"Unrecognized Record "+R.n}}}}}else blob.l+=length}var sheetnamesraw=opts.biff===2?["Sheet1"]:Object.keys(Directory).sort(function(a,b){return Number(a)-Number(b)}).map(function(x){return Directory[x].name});var sheetnames=sheetnamesraw.slice();wb.Directory=sheetnamesraw;wb.SheetNames=sheetnamesraw;if(!options.bookSheets)wb.Sheets=Sheets;wb.Preamble=Preamble;wb.Strings=sst;wb.SSF=SSF.get_table();if(opts.enc)wb.Encryption=opts.enc;wb.Metadata={};if(country!==undefined)wb.Metadata.Country=country;return wb}function parse_xlscfb(cfb,options){if(!options)options={};fix_read_opts(options);reset_cp();var CompObj,Summary,Workbook;if(cfb.find){CompObj=cfb.find("!CompObj");Summary=cfb.find("!SummaryInformation");Workbook=cfb.find("/Workbook")}else{prep_blob(cfb,0);Workbook={content:cfb}}if(!Workbook)Workbook=cfb.find("/Book");var CompObjP,SummaryP,WorkbookP;if(CompObj)CompObjP=parse_compobj(CompObj);if(options.bookProps&&!options.bookSheets)WorkbookP={};else{if(Workbook)WorkbookP=parse_workbook(Workbook.content,options,!!Workbook.find);else throw new Error("Cannot find Workbook stream")}if(cfb.find)parse_props(cfb);var props={};for(var y in cfb.Summary)props[y]=cfb.Summary[y];for(y in cfb.DocSummary)props[y]=cfb.DocSummary[y];WorkbookP.Props=WorkbookP.Custprops=props;if(options.bookFiles)WorkbookP.cfb=cfb;WorkbookP.CompObjP=CompObjP;return WorkbookP}function parse_props(cfb){var DSI=cfb.find("!DocumentSummaryInformation");if(DSI)try{cfb.DocSummary=parse_PropertySetStream(DSI,DocSummaryPIDDSI)}catch(e){}var SI=cfb.find("!SummaryInformation");if(SI)try{cfb.Summary=parse_PropertySetStream(SI,SummaryPIDSI)}catch(e){}}var XLSBRecordEnum={0:{n:"BrtRowHdr",f:parse_BrtRowHdr},1:{n:"BrtCellBlank",f:parse_BrtCellBlank},2:{n:"BrtCellRk",f:parse_BrtCellRk},3:{n:"BrtCellError",f:parse_BrtCellError},4:{n:"BrtCellBool",f:parse_BrtCellBool},5:{n:"BrtCellReal",f:parse_BrtCellReal},6:{n:"BrtCellSt",f:parse_BrtCellSt},7:{n:"BrtCellIsst",f:parse_BrtCellIsst},8:{n:"BrtFmlaString",f:parse_BrtFmlaString},9:{n:"BrtFmlaNum",f:parse_BrtFmlaNum},10:{n:"BrtFmlaBool",f:parse_BrtFmlaBool},11:{n:"BrtFmlaError",f:parse_BrtFmlaError},16:{n:"BrtFRTArchID$",f:parse_BrtFRTArchID$},19:{n:"BrtSSTItem",f:parse_RichStr},20:{n:"BrtPCDIMissing",f:parsenoop},21:{n:"BrtPCDINumber",f:parsenoop},22:{n:"BrtPCDIBoolean",f:parsenoop},23:{n:"BrtPCDIError",f:parsenoop},24:{n:"BrtPCDIString",f:parsenoop},25:{n:"BrtPCDIDatetime",f:parsenoop},26:{n:"BrtPCDIIndex",f:parsenoop},27:{n:"BrtPCDIAMissing",f:parsenoop},28:{n:"BrtPCDIANumber",f:parsenoop},29:{n:"BrtPCDIABoolean",f:parsenoop},30:{n:"BrtPCDIAError",f:parsenoop},31:{n:"BrtPCDIAString",f:parsenoop},32:{n:"BrtPCDIADatetime",f:parsenoop},33:{n:"BrtPCRRecord",f:parsenoop},34:{n:"BrtPCRRecordDt",f:parsenoop},35:{n:"BrtFRTBegin",f:parsenoop},36:{n:"BrtFRTEnd",f:parsenoop},37:{n:"BrtACBegin",f:parsenoop},38:{n:"BrtACEnd",f:parsenoop},39:{n:"BrtName",f:parsenoop},40:{n:"BrtIndexRowBlock",f:parsenoop},42:{n:"BrtIndexBlock",f:parsenoop},43:{n:"BrtFont",f:parse_BrtFont},44:{n:"BrtFmt",f:parse_BrtFmt},45:{n:"BrtFill",f:parsenoop},46:{n:"BrtBorder",f:parsenoop},47:{n:"BrtXF",f:parse_BrtXF},48:{n:"BrtStyle",f:parsenoop},49:{n:"BrtCellMeta",f:parsenoop},50:{n:"BrtValueMeta",f:parsenoop},51:{n:"BrtMdb",f:parsenoop},52:{n:"BrtBeginFmd",f:parsenoop},53:{n:"BrtEndFmd",f:parsenoop},54:{n:"BrtBeginMdx",f:parsenoop},55:{n:"BrtEndMdx",f:parsenoop},56:{n:"BrtBeginMdxTuple",f:parsenoop},57:{n:"BrtEndMdxTuple",f:parsenoop},58:{n:"BrtMdxMbrIstr",f:parsenoop},59:{n:"BrtStr",f:parsenoop},60:{n:"BrtColInfo",f:parsenoop},62:{n:"BrtCellRString",f:parsenoop},63:{n:"BrtCalcChainItem$",f:parse_BrtCalcChainItem$},64:{n:"BrtDVal",f:parsenoop},65:{n:"BrtSxvcellNum",f:parsenoop},66:{n:"BrtSxvcellStr",f:parsenoop},67:{n:"BrtSxvcellBool",f:parsenoop},68:{n:"BrtSxvcellErr",f:parsenoop},69:{n:"BrtSxvcellDate",f:parsenoop},70:{n:"BrtSxvcellNil",f:parsenoop},128:{n:"BrtFileVersion",f:parsenoop},129:{n:"BrtBeginSheet",f:parsenoop},130:{n:"BrtEndSheet",f:parsenoop},131:{n:"BrtBeginBook",f:parsenoop,p:0},132:{n:"BrtEndBook",f:parsenoop},133:{n:"BrtBeginWsViews",f:parsenoop},134:{n:"BrtEndWsViews",f:parsenoop},135:{n:"BrtBeginBookViews",f:parsenoop},136:{n:"BrtEndBookViews",f:parsenoop},137:{n:"BrtBeginWsView",f:parsenoop},138:{n:"BrtEndWsView",f:parsenoop},139:{n:"BrtBeginCsViews",f:parsenoop},140:{n:"BrtEndCsViews",f:parsenoop},141:{n:"BrtBeginCsView",f:parsenoop},142:{n:"BrtEndCsView",f:parsenoop},143:{n:"BrtBeginBundleShs",f:parsenoop},144:{n:"BrtEndBundleShs",f:parsenoop},145:{n:"BrtBeginSheetData",f:parsenoop},146:{n:"BrtEndSheetData",f:parsenoop},147:{n:"BrtWsProp",f:parse_BrtWsProp},148:{n:"BrtWsDim",f:parse_BrtWsDim,p:16},151:{n:"BrtPane",f:parsenoop},152:{n:"BrtSel",f:parsenoop},153:{n:"BrtWbProp",f:parse_BrtWbProp},154:{n:"BrtWbFactoid",f:parsenoop},155:{n:"BrtFileRecover",f:parsenoop},156:{n:"BrtBundleSh",f:parse_BrtBundleSh},157:{n:"BrtCalcProp",f:parsenoop},158:{n:"BrtBookView",f:parsenoop},159:{n:"BrtBeginSst",f:parse_BrtBeginSst},160:{n:"BrtEndSst",f:parsenoop},161:{n:"BrtBeginAFilter",f:parsenoop},162:{n:"BrtEndAFilter",f:parsenoop},163:{n:"BrtBeginFilterColumn",f:parsenoop},164:{n:"BrtEndFilterColumn",f:parsenoop},165:{n:"BrtBeginFilters",f:parsenoop},166:{n:"BrtEndFilters",f:parsenoop},167:{n:"BrtFilter",f:parsenoop},168:{n:"BrtColorFilter",f:parsenoop},169:{n:"BrtIconFilter",f:parsenoop},170:{n:"BrtTop10Filter",f:parsenoop},171:{n:"BrtDynamicFilter",f:parsenoop},172:{n:"BrtBeginCustomFilters",f:parsenoop},173:{n:"BrtEndCustomFilters",f:parsenoop},174:{n:"BrtCustomFilter",f:parsenoop},175:{n:"BrtAFilterDateGroupItem",f:parsenoop},176:{n:"BrtMergeCell",f:parse_BrtMergeCell},177:{n:"BrtBeginMergeCells",f:parsenoop},178:{n:"BrtEndMergeCells",f:parsenoop},179:{n:"BrtBeginPivotCacheDef",f:parsenoop},180:{n:"BrtEndPivotCacheDef",f:parsenoop},181:{n:"BrtBeginPCDFields",f:parsenoop},182:{n:"BrtEndPCDFields",f:parsenoop},183:{n:"BrtBeginPCDField",f:parsenoop},184:{n:"BrtEndPCDField",f:parsenoop},185:{n:"BrtBeginPCDSource",f:parsenoop},186:{n:"BrtEndPCDSource",f:parsenoop},187:{n:"BrtBeginPCDSRange",f:parsenoop},188:{n:"BrtEndPCDSRange",f:parsenoop},189:{n:"BrtBeginPCDFAtbl",f:parsenoop},190:{n:"BrtEndPCDFAtbl",f:parsenoop},191:{n:"BrtBeginPCDIRun",f:parsenoop},192:{n:"BrtEndPCDIRun",f:parsenoop},193:{n:"BrtBeginPivotCacheRecords",f:parsenoop},194:{n:"BrtEndPivotCacheRecords",f:parsenoop},195:{n:"BrtBeginPCDHierarchies",f:parsenoop},196:{n:"BrtEndPCDHierarchies",f:parsenoop},197:{n:"BrtBeginPCDHierarchy",f:parsenoop},198:{n:"BrtEndPCDHierarchy",f:parsenoop},199:{n:"BrtBeginPCDHFieldsUsage",f:parsenoop},200:{n:"BrtEndPCDHFieldsUsage",f:parsenoop},201:{n:"BrtBeginExtConnection",f:parsenoop},202:{n:"BrtEndExtConnection",f:parsenoop},203:{n:"BrtBeginECDbProps",f:parsenoop},204:{n:"BrtEndECDbProps",f:parsenoop},205:{n:"BrtBeginECOlapProps",f:parsenoop},206:{n:"BrtEndECOlapProps",f:parsenoop},207:{n:"BrtBeginPCDSConsol",f:parsenoop},208:{n:"BrtEndPCDSConsol",f:parsenoop},209:{n:"BrtBeginPCDSCPages",f:parsenoop},210:{n:"BrtEndPCDSCPages",f:parsenoop},211:{n:"BrtBeginPCDSCPage",f:parsenoop},212:{n:"BrtEndPCDSCPage",f:parsenoop},213:{n:"BrtBeginPCDSCPItem",f:parsenoop},214:{n:"BrtEndPCDSCPItem",f:parsenoop},215:{n:"BrtBeginPCDSCSets",f:parsenoop},216:{n:"BrtEndPCDSCSets",f:parsenoop},217:{n:"BrtBeginPCDSCSet",f:parsenoop},218:{n:"BrtEndPCDSCSet",f:parsenoop},219:{n:"BrtBeginPCDFGroup",f:parsenoop},220:{n:"BrtEndPCDFGroup",f:parsenoop},221:{n:"BrtBeginPCDFGItems",f:parsenoop},222:{n:"BrtEndPCDFGItems",f:parsenoop},223:{n:"BrtBeginPCDFGRange",f:parsenoop},224:{n:"BrtEndPCDFGRange",f:parsenoop},225:{n:"BrtBeginPCDFGDiscrete",f:parsenoop},226:{n:"BrtEndPCDFGDiscrete",f:parsenoop},227:{n:"BrtBeginPCDSDTupleCache",f:parsenoop},228:{n:"BrtEndPCDSDTupleCache",f:parsenoop},229:{n:"BrtBeginPCDSDTCEntries",f:parsenoop},230:{n:"BrtEndPCDSDTCEntries",f:parsenoop},231:{n:"BrtBeginPCDSDTCEMembers",f:parsenoop},232:{n:"BrtEndPCDSDTCEMembers",f:parsenoop},233:{n:"BrtBeginPCDSDTCEMember",f:parsenoop},234:{n:"BrtEndPCDSDTCEMember",f:parsenoop},235:{n:"BrtBeginPCDSDTCQueries",f:parsenoop},236:{n:"BrtEndPCDSDTCQueries",f:parsenoop},237:{n:"BrtBeginPCDSDTCQuery",f:parsenoop},238:{n:"BrtEndPCDSDTCQuery",f:parsenoop},239:{n:"BrtBeginPCDSDTCSets",f:parsenoop},240:{n:"BrtEndPCDSDTCSets",f:parsenoop},241:{n:"BrtBeginPCDSDTCSet",f:parsenoop},242:{n:"BrtEndPCDSDTCSet",f:parsenoop},243:{n:"BrtBeginPCDCalcItems",f:parsenoop},244:{n:"BrtEndPCDCalcItems",f:parsenoop},245:{n:"BrtBeginPCDCalcItem",f:parsenoop},246:{n:"BrtEndPCDCalcItem",f:parsenoop},247:{n:"BrtBeginPRule",f:parsenoop},248:{n:"BrtEndPRule",f:parsenoop},249:{n:"BrtBeginPRFilters",f:parsenoop},250:{n:"BrtEndPRFilters",f:parsenoop},251:{n:"BrtBeginPRFilter",f:parsenoop},252:{n:"BrtEndPRFilter",f:parsenoop},253:{n:"BrtBeginPNames",f:parsenoop},254:{n:"BrtEndPNames",f:parsenoop},255:{n:"BrtBeginPName",f:parsenoop},256:{n:"BrtEndPName",f:parsenoop},257:{n:"BrtBeginPNPairs",f:parsenoop},258:{n:"BrtEndPNPairs",f:parsenoop},259:{n:"BrtBeginPNPair",f:parsenoop},260:{n:"BrtEndPNPair",f:parsenoop},261:{n:"BrtBeginECWebProps",f:parsenoop},262:{n:"BrtEndECWebProps",f:parsenoop},263:{n:"BrtBeginEcWpTables",f:parsenoop},264:{n:"BrtEndECWPTables",f:parsenoop},265:{n:"BrtBeginECParams",f:parsenoop},266:{n:"BrtEndECParams",f:parsenoop},267:{n:"BrtBeginECParam",f:parsenoop},268:{n:"BrtEndECParam",f:parsenoop},269:{n:"BrtBeginPCDKPIs",f:parsenoop},270:{n:"BrtEndPCDKPIs",f:parsenoop},271:{n:"BrtBeginPCDKPI",f:parsenoop},272:{n:"BrtEndPCDKPI",f:parsenoop},273:{n:"BrtBeginDims",f:parsenoop},274:{n:"BrtEndDims",f:parsenoop},275:{n:"BrtBeginDim",f:parsenoop},276:{n:"BrtEndDim",f:parsenoop},277:{n:"BrtIndexPartEnd",f:parsenoop},278:{n:"BrtBeginStyleSheet",f:parsenoop},279:{n:"BrtEndStyleSheet",f:parsenoop},280:{n:"BrtBeginSXView",f:parsenoop},281:{n:"BrtEndSXVI",f:parsenoop},282:{n:"BrtBeginSXVI",f:parsenoop},283:{n:"BrtBeginSXVIs",f:parsenoop},284:{n:"BrtEndSXVIs",f:parsenoop},285:{n:"BrtBeginSXVD",f:parsenoop},286:{n:"BrtEndSXVD",f:parsenoop},287:{n:"BrtBeginSXVDs",f:parsenoop},288:{n:"BrtEndSXVDs",f:parsenoop},289:{n:"BrtBeginSXPI",f:parsenoop},290:{n:"BrtEndSXPI",f:parsenoop},291:{n:"BrtBeginSXPIs",f:parsenoop},292:{n:"BrtEndSXPIs",f:parsenoop},293:{n:"BrtBeginSXDI",f:parsenoop},294:{n:"BrtEndSXDI",f:parsenoop},295:{n:"BrtBeginSXDIs",f:parsenoop},296:{n:"BrtEndSXDIs",f:parsenoop},297:{n:"BrtBeginSXLI",f:parsenoop},298:{n:"BrtEndSXLI",f:parsenoop},299:{n:"BrtBeginSXLIRws",f:parsenoop},300:{n:"BrtEndSXLIRws",f:parsenoop},301:{n:"BrtBeginSXLICols",f:parsenoop},302:{n:"BrtEndSXLICols",f:parsenoop},303:{n:"BrtBeginSXFormat",f:parsenoop},304:{n:"BrtEndSXFormat",f:parsenoop},305:{n:"BrtBeginSXFormats",f:parsenoop},306:{n:"BrtEndSxFormats",f:parsenoop},307:{n:"BrtBeginSxSelect",f:parsenoop},308:{n:"BrtEndSxSelect",f:parsenoop},309:{n:"BrtBeginISXVDRws",f:parsenoop},310:{n:"BrtEndISXVDRws",f:parsenoop},311:{n:"BrtBeginISXVDCols",f:parsenoop},312:{n:"BrtEndISXVDCols",f:parsenoop},313:{n:"BrtEndSXLocation",f:parsenoop},314:{n:"BrtBeginSXLocation",f:parsenoop},315:{n:"BrtEndSXView",f:parsenoop},316:{n:"BrtBeginSXTHs",f:parsenoop},317:{n:"BrtEndSXTHs",f:parsenoop},318:{n:"BrtBeginSXTH",f:parsenoop},319:{n:"BrtEndSXTH",f:parsenoop},320:{n:"BrtBeginISXTHRws",f:parsenoop},321:{n:"BrtEndISXTHRws",f:parsenoop},322:{n:"BrtBeginISXTHCols",f:parsenoop},323:{n:"BrtEndISXTHCols",f:parsenoop},324:{n:"BrtBeginSXTDMPS",f:parsenoop},325:{n:"BrtEndSXTDMPs",f:parsenoop},326:{n:"BrtBeginSXTDMP",f:parsenoop},327:{n:"BrtEndSXTDMP",f:parsenoop},328:{n:"BrtBeginSXTHItems",f:parsenoop},329:{n:"BrtEndSXTHItems",f:parsenoop},330:{n:"BrtBeginSXTHItem",f:parsenoop},331:{n:"BrtEndSXTHItem",f:parsenoop},332:{n:"BrtBeginMetadata",f:parsenoop},333:{n:"BrtEndMetadata",f:parsenoop},334:{n:"BrtBeginEsmdtinfo",f:parsenoop},335:{n:"BrtMdtinfo",f:parsenoop},336:{n:"BrtEndEsmdtinfo",f:parsenoop},337:{n:"BrtBeginEsmdb",f:parsenoop},338:{n:"BrtEndEsmdb",f:parsenoop},339:{n:"BrtBeginEsfmd",f:parsenoop},340:{n:"BrtEndEsfmd",f:parsenoop},341:{n:"BrtBeginSingleCells",f:parsenoop},342:{n:"BrtEndSingleCells",f:parsenoop},343:{n:"BrtBeginList",f:parsenoop},344:{n:"BrtEndList",f:parsenoop},345:{n:"BrtBeginListCols",f:parsenoop},346:{n:"BrtEndListCols",f:parsenoop},347:{n:"BrtBeginListCol",f:parsenoop},348:{n:"BrtEndListCol",f:parsenoop},349:{n:"BrtBeginListXmlCPr",f:parsenoop},350:{n:"BrtEndListXmlCPr",f:parsenoop},351:{n:"BrtListCCFmla",f:parsenoop},352:{n:"BrtListTrFmla",f:parsenoop},353:{n:"BrtBeginExternals",f:parsenoop},354:{n:"BrtEndExternals",f:parsenoop},355:{n:"BrtSupBookSrc",f:parsenoop},357:{n:"BrtSupSelf",f:parsenoop},358:{n:"BrtSupSame",f:parsenoop},359:{n:"BrtSupTabs",f:parsenoop},360:{n:"BrtBeginSupBook",f:parsenoop},361:{n:"BrtPlaceholderName",f:parsenoop},362:{n:"BrtExternSheet",f:parsenoop},363:{n:"BrtExternTableStart",f:parsenoop},364:{n:"BrtExternTableEnd",f:parsenoop},366:{n:"BrtExternRowHdr",f:parsenoop},367:{n:"BrtExternCellBlank",f:parsenoop},368:{n:"BrtExternCellReal",f:parsenoop},369:{n:"BrtExternCellBool",f:parsenoop},370:{n:"BrtExternCellError",f:parsenoop},371:{n:"BrtExternCellString",f:parsenoop},372:{n:"BrtBeginEsmdx",f:parsenoop},373:{n:"BrtEndEsmdx",f:parsenoop},374:{n:"BrtBeginMdxSet",f:parsenoop},375:{n:"BrtEndMdxSet",f:parsenoop},376:{n:"BrtBeginMdxMbrProp",f:parsenoop},377:{n:"BrtEndMdxMbrProp",f:parsenoop},378:{n:"BrtBeginMdxKPI",f:parsenoop},379:{n:"BrtEndMdxKPI",f:parsenoop},380:{n:"BrtBeginEsstr",f:parsenoop},381:{n:"BrtEndEsstr",f:parsenoop},382:{n:"BrtBeginPRFItem",f:parsenoop},383:{n:"BrtEndPRFItem",f:parsenoop},384:{n:"BrtBeginPivotCacheIDs",f:parsenoop},385:{n:"BrtEndPivotCacheIDs",f:parsenoop},386:{n:"BrtBeginPivotCacheID",f:parsenoop},387:{n:"BrtEndPivotCacheID",f:parsenoop},388:{n:"BrtBeginISXVIs",f:parsenoop},389:{n:"BrtEndISXVIs",f:parsenoop},390:{n:"BrtBeginColInfos",f:parsenoop},391:{n:"BrtEndColInfos",f:parsenoop},392:{n:"BrtBeginRwBrk",f:parsenoop},393:{n:"BrtEndRwBrk",f:parsenoop},394:{n:"BrtBeginColBrk",f:parsenoop},395:{n:"BrtEndColBrk",f:parsenoop},396:{n:"BrtBrk",f:parsenoop},397:{n:"BrtUserBookView",f:parsenoop},398:{n:"BrtInfo",f:parsenoop},399:{n:"BrtCUsr",f:parsenoop},400:{n:"BrtUsr",f:parsenoop},401:{n:"BrtBeginUsers",f:parsenoop},403:{n:"BrtEOF",f:parsenoop},404:{n:"BrtUCR",f:parsenoop},405:{n:"BrtRRInsDel",f:parsenoop},406:{n:"BrtRREndInsDel",f:parsenoop},407:{n:"BrtRRMove",f:parsenoop},408:{n:"BrtRREndMove",f:parsenoop},409:{n:"BrtRRChgCell",f:parsenoop},410:{n:"BrtRREndChgCell",f:parsenoop},411:{n:"BrtRRHeader",f:parsenoop},412:{n:"BrtRRUserView",f:parsenoop},413:{n:"BrtRRRenSheet",f:parsenoop},414:{n:"BrtRRInsertSh",f:parsenoop},415:{n:"BrtRRDefName",f:parsenoop},416:{n:"BrtRRNote",f:parsenoop},417:{n:"BrtRRConflict",f:parsenoop},418:{n:"BrtRRTQSIF",f:parsenoop},419:{n:"BrtRRFormat",f:parsenoop},420:{n:"BrtRREndFormat",f:parsenoop},421:{n:"BrtRRAutoFmt",f:parsenoop},422:{n:"BrtBeginUserShViews",f:parsenoop},423:{n:"BrtBeginUserShView",f:parsenoop},424:{n:"BrtEndUserShView",f:parsenoop},425:{n:"BrtEndUserShViews",f:parsenoop},426:{n:"BrtArrFmla",f:parsenoop},427:{n:"BrtShrFmla",f:parsenoop},428:{n:"BrtTable",f:parsenoop},429:{n:"BrtBeginExtConnections",f:parsenoop},430:{n:"BrtEndExtConnections",f:parsenoop},431:{n:"BrtBeginPCDCalcMems",f:parsenoop},432:{n:"BrtEndPCDCalcMems",f:parsenoop},433:{n:"BrtBeginPCDCalcMem",f:parsenoop},434:{n:"BrtEndPCDCalcMem",f:parsenoop},435:{n:"BrtBeginPCDHGLevels",f:parsenoop},436:{n:"BrtEndPCDHGLevels",f:parsenoop},437:{n:"BrtBeginPCDHGLevel",f:parsenoop},438:{n:"BrtEndPCDHGLevel",f:parsenoop},439:{n:"BrtBeginPCDHGLGroups",f:parsenoop},440:{n:"BrtEndPCDHGLGroups",f:parsenoop},441:{n:"BrtBeginPCDHGLGroup",f:parsenoop},442:{n:"BrtEndPCDHGLGroup",f:parsenoop},443:{n:"BrtBeginPCDHGLGMembers",f:parsenoop},444:{n:"BrtEndPCDHGLGMembers",f:parsenoop},445:{n:"BrtBeginPCDHGLGMember",f:parsenoop},446:{n:"BrtEndPCDHGLGMember",f:parsenoop},447:{n:"BrtBeginQSI",f:parsenoop},448:{n:"BrtEndQSI",f:parsenoop},449:{n:"BrtBeginQSIR",f:parsenoop},450:{n:"BrtEndQSIR",f:parsenoop},451:{n:"BrtBeginDeletedNames",f:parsenoop},452:{n:"BrtEndDeletedNames",f:parsenoop},453:{n:"BrtBeginDeletedName",f:parsenoop},454:{n:"BrtEndDeletedName",f:parsenoop},455:{n:"BrtBeginQSIFs",f:parsenoop},456:{n:"BrtEndQSIFs",f:parsenoop},457:{n:"BrtBeginQSIF",f:parsenoop},458:{n:"BrtEndQSIF",f:parsenoop},459:{n:"BrtBeginAutoSortScope",f:parsenoop},460:{n:"BrtEndAutoSortScope",f:parsenoop},461:{n:"BrtBeginConditionalFormatting",f:parsenoop},462:{n:"BrtEndConditionalFormatting",f:parsenoop},463:{n:"BrtBeginCFRule",f:parsenoop},464:{n:"BrtEndCFRule",f:parsenoop},465:{n:"BrtBeginIconSet",f:parsenoop},466:{n:"BrtEndIconSet",f:parsenoop},467:{n:"BrtBeginDatabar",f:parsenoop},468:{n:"BrtEndDatabar",f:parsenoop},469:{n:"BrtBeginColorScale",f:parsenoop},470:{n:"BrtEndColorScale",f:parsenoop},471:{n:"BrtCFVO",f:parsenoop},472:{n:"BrtExternValueMeta",f:parsenoop},473:{n:"BrtBeginColorPalette",f:parsenoop},474:{n:"BrtEndColorPalette",f:parsenoop},475:{n:"BrtIndexedColor",f:parsenoop},476:{n:"BrtMargins",f:parsenoop},477:{n:"BrtPrintOptions",f:parsenoop},478:{n:"BrtPageSetup",f:parsenoop},479:{n:"BrtBeginHeaderFooter",f:parsenoop},480:{n:"BrtEndHeaderFooter",f:parsenoop},481:{n:"BrtBeginSXCrtFormat",f:parsenoop},482:{n:"BrtEndSXCrtFormat",f:parsenoop},483:{n:"BrtBeginSXCrtFormats",f:parsenoop},484:{n:"BrtEndSXCrtFormats",f:parsenoop},485:{n:"BrtWsFmtInfo",f:parsenoop},486:{n:"BrtBeginMgs",f:parsenoop},487:{n:"BrtEndMGs",f:parsenoop},488:{n:"BrtBeginMGMaps",f:parsenoop},489:{n:"BrtEndMGMaps",f:parsenoop},490:{n:"BrtBeginMG",f:parsenoop},491:{n:"BrtEndMG",f:parsenoop},492:{n:"BrtBeginMap",f:parsenoop},493:{n:"BrtEndMap",f:parsenoop},494:{n:"BrtHLink",f:parse_BrtHLink},495:{n:"BrtBeginDCon",f:parsenoop},496:{n:"BrtEndDCon",f:parsenoop},497:{n:"BrtBeginDRefs",f:parsenoop},498:{n:"BrtEndDRefs",f:parsenoop},499:{n:"BrtDRef",f:parsenoop},500:{n:"BrtBeginScenMan",f:parsenoop},501:{n:"BrtEndScenMan",f:parsenoop},502:{n:"BrtBeginSct",f:parsenoop},503:{n:"BrtEndSct",f:parsenoop},504:{n:"BrtSlc",f:parsenoop},505:{n:"BrtBeginDXFs",f:parsenoop},506:{n:"BrtEndDXFs",f:parsenoop},507:{n:"BrtDXF",f:parsenoop},508:{n:"BrtBeginTableStyles",f:parsenoop},509:{n:"BrtEndTableStyles",f:parsenoop},510:{n:"BrtBeginTableStyle",f:parsenoop},511:{n:"BrtEndTableStyle",f:parsenoop},512:{n:"BrtTableStyleElement",f:parsenoop},513:{n:"BrtTableStyleClient",f:parsenoop},514:{n:"BrtBeginVolDeps",f:parsenoop},515:{n:"BrtEndVolDeps",f:parsenoop},516:{n:"BrtBeginVolType",f:parsenoop},517:{n:"BrtEndVolType",f:parsenoop},518:{n:"BrtBeginVolMain",f:parsenoop},519:{n:"BrtEndVolMain",f:parsenoop},520:{n:"BrtBeginVolTopic",f:parsenoop},521:{n:"BrtEndVolTopic",f:parsenoop},522:{n:"BrtVolSubtopic",f:parsenoop},523:{n:"BrtVolRef",f:parsenoop},524:{n:"BrtVolNum",f:parsenoop},525:{n:"BrtVolErr",f:parsenoop},526:{n:"BrtVolStr",f:parsenoop},527:{n:"BrtVolBool",f:parsenoop},528:{n:"BrtBeginCalcChain$",f:parsenoop},529:{n:"BrtEndCalcChain$",f:parsenoop},530:{n:"BrtBeginSortState",f:parsenoop},531:{n:"BrtEndSortState",f:parsenoop},532:{n:"BrtBeginSortCond",f:parsenoop},533:{n:"BrtEndSortCond",f:parsenoop},534:{n:"BrtBookProtection",f:parsenoop},535:{n:"BrtSheetProtection",f:parsenoop},536:{n:"BrtRangeProtection",f:parsenoop},537:{n:"BrtPhoneticInfo",f:parsenoop},538:{n:"BrtBeginECTxtWiz",f:parsenoop},539:{n:"BrtEndECTxtWiz",f:parsenoop},540:{n:"BrtBeginECTWFldInfoLst",f:parsenoop},541:{n:"BrtEndECTWFldInfoLst",f:parsenoop},542:{n:"BrtBeginECTwFldInfo",f:parsenoop},548:{n:"BrtFileSharing",f:parsenoop},549:{n:"BrtOleSize",f:parsenoop},550:{n:"BrtDrawing",f:parsenoop},551:{n:"BrtLegacyDrawing",f:parsenoop},552:{n:"BrtLegacyDrawingHF",f:parsenoop},553:{n:"BrtWebOpt",f:parsenoop},554:{n:"BrtBeginWebPubItems",f:parsenoop},555:{n:"BrtEndWebPubItems",f:parsenoop},556:{n:"BrtBeginWebPubItem",f:parsenoop},557:{n:"BrtEndWebPubItem",f:parsenoop},558:{n:"BrtBeginSXCondFmt",f:parsenoop},559:{n:"BrtEndSXCondFmt",f:parsenoop},560:{n:"BrtBeginSXCondFmts",f:parsenoop},561:{n:"BrtEndSXCondFmts",f:parsenoop},562:{n:"BrtBkHim",f:parsenoop},564:{n:"BrtColor",f:parsenoop},565:{n:"BrtBeginIndexedColors",f:parsenoop},566:{n:"BrtEndIndexedColors",f:parsenoop},569:{n:"BrtBeginMRUColors",f:parsenoop},570:{n:"BrtEndMRUColors",f:parsenoop},572:{n:"BrtMRUColor",f:parsenoop},573:{n:"BrtBeginDVals",f:parsenoop},574:{n:"BrtEndDVals",f:parsenoop},577:{n:"BrtSupNameStart",f:parsenoop},578:{n:"BrtSupNameValueStart",f:parsenoop},579:{n:"BrtSupNameValueEnd",f:parsenoop},580:{n:"BrtSupNameNum",f:parsenoop},581:{n:"BrtSupNameErr",f:parsenoop},582:{n:"BrtSupNameSt",f:parsenoop},583:{n:"BrtSupNameNil",f:parsenoop},584:{n:"BrtSupNameBool",f:parsenoop},585:{n:"BrtSupNameFmla",f:parsenoop},586:{n:"BrtSupNameBits",f:parsenoop},587:{n:"BrtSupNameEnd",f:parsenoop},588:{n:"BrtEndSupBook",f:parsenoop},589:{n:"BrtCellSmartTagProperty",f:parsenoop},590:{n:"BrtBeginCellSmartTag",f:parsenoop},591:{n:"BrtEndCellSmartTag",f:parsenoop},592:{n:"BrtBeginCellSmartTags",f:parsenoop},593:{n:"BrtEndCellSmartTags",f:parsenoop},594:{n:"BrtBeginSmartTags",f:parsenoop},595:{n:"BrtEndSmartTags",f:parsenoop},596:{n:"BrtSmartTagType",f:parsenoop},597:{n:"BrtBeginSmartTagTypes",f:parsenoop},598:{n:"BrtEndSmartTagTypes",f:parsenoop},599:{n:"BrtBeginSXFilters",f:parsenoop},600:{n:"BrtEndSXFilters",f:parsenoop},601:{n:"BrtBeginSXFILTER",f:parsenoop},602:{n:"BrtEndSXFilter",f:parsenoop},603:{n:"BrtBeginFills",f:parsenoop},604:{n:"BrtEndFills",f:parsenoop},605:{n:"BrtBeginCellWatches",f:parsenoop},606:{n:"BrtEndCellWatches",f:parsenoop},607:{n:"BrtCellWatch",f:parsenoop},608:{n:"BrtBeginCRErrs",f:parsenoop},609:{n:"BrtEndCRErrs",f:parsenoop},610:{n:"BrtCrashRecErr",f:parsenoop},611:{n:"BrtBeginFonts",f:parsenoop},612:{n:"BrtEndFonts",f:parsenoop},613:{n:"BrtBeginBorders",f:parsenoop},614:{n:"BrtEndBorders",f:parsenoop},615:{n:"BrtBeginFmts",f:parsenoop},616:{n:"BrtEndFmts",f:parsenoop},617:{n:"BrtBeginCellXFs",f:parsenoop},618:{n:"BrtEndCellXFs",f:parsenoop},619:{n:"BrtBeginStyles",f:parsenoop},620:{n:"BrtEndStyles",f:parsenoop},625:{n:"BrtBigName",f:parsenoop},626:{n:"BrtBeginCellStyleXFs",f:parsenoop},627:{n:"BrtEndCellStyleXFs",f:parsenoop},628:{n:"BrtBeginComments",f:parsenoop},629:{n:"BrtEndComments",f:parsenoop},630:{n:"BrtBeginCommentAuthors",f:parsenoop},631:{n:"BrtEndCommentAuthors",f:parsenoop},632:{n:"BrtCommentAuthor",f:parse_BrtCommentAuthor},633:{n:"BrtBeginCommentList",f:parsenoop},634:{n:"BrtEndCommentList",f:parsenoop},635:{n:"BrtBeginComment",f:parse_BrtBeginComment},636:{n:"BrtEndComment",f:parsenoop},637:{n:"BrtCommentText",f:parse_BrtCommentText},638:{n:"BrtBeginOleObjects",f:parsenoop},639:{n:"BrtOleObject",f:parsenoop},640:{n:"BrtEndOleObjects",f:parsenoop},641:{n:"BrtBeginSxrules",f:parsenoop},642:{n:"BrtEndSxRules",f:parsenoop},643:{n:"BrtBeginActiveXControls",f:parsenoop},644:{n:"BrtActiveX",f:parsenoop},645:{n:"BrtEndActiveXControls",f:parsenoop},646:{n:"BrtBeginPCDSDTCEMembersSortBy",f:parsenoop},648:{n:"BrtBeginCellIgnoreECs",f:parsenoop},649:{n:"BrtCellIgnoreEC",f:parsenoop},650:{n:"BrtEndCellIgnoreECs",f:parsenoop},651:{n:"BrtCsProp",f:parsenoop},652:{n:"BrtCsPageSetup",f:parsenoop},653:{n:"BrtBeginUserCsViews",f:parsenoop},654:{n:"BrtEndUserCsViews",f:parsenoop},655:{n:"BrtBeginUserCsView",f:parsenoop},656:{n:"BrtEndUserCsView",f:parsenoop},657:{n:"BrtBeginPcdSFCIEntries",f:parsenoop},658:{n:"BrtEndPCDSFCIEntries",f:parsenoop},659:{n:"BrtPCDSFCIEntry",f:parsenoop},660:{n:"BrtBeginListParts",f:parsenoop},661:{n:"BrtListPart",f:parsenoop},662:{n:"BrtEndListParts",f:parsenoop},663:{n:"BrtSheetCalcProp",f:parsenoop},664:{n:"BrtBeginFnGroup",f:parsenoop},665:{n:"BrtFnGroup",f:parsenoop},666:{n:"BrtEndFnGroup",f:parsenoop},667:{n:"BrtSupAddin",f:parsenoop},668:{n:"BrtSXTDMPOrder",f:parsenoop},669:{n:"BrtCsProtection",f:parsenoop},671:{n:"BrtBeginWsSortMap",f:parsenoop},672:{n:"BrtEndWsSortMap",f:parsenoop},673:{n:"BrtBeginRRSort",f:parsenoop},674:{n:"BrtEndRRSort",f:parsenoop},675:{n:"BrtRRSortItem",f:parsenoop},676:{n:"BrtFileSharingIso",f:parsenoop},677:{n:"BrtBookProtectionIso",f:parsenoop},678:{n:"BrtSheetProtectionIso",f:parsenoop},679:{n:"BrtCsProtectionIso",f:parsenoop},680:{n:"BrtRangeProtectionIso",f:parsenoop},1024:{n:"BrtRwDescent",f:parsenoop},1025:{n:"BrtKnownFonts",f:parsenoop},1026:{n:"BrtBeginSXTupleSet",f:parsenoop},1027:{n:"BrtEndSXTupleSet",f:parsenoop},1028:{n:"BrtBeginSXTupleSetHeader",f:parsenoop},1029:{n:"BrtEndSXTupleSetHeader",f:parsenoop},1030:{n:"BrtSXTupleSetHeaderItem",f:parsenoop},1031:{n:"BrtBeginSXTupleSetData",f:parsenoop},1032:{n:"BrtEndSXTupleSetData",f:parsenoop},1033:{n:"BrtBeginSXTupleSetRow",f:parsenoop},1034:{n:"BrtEndSXTupleSetRow",f:parsenoop},1035:{n:"BrtSXTupleSetRowItem",f:parsenoop},1036:{n:"BrtNameExt",f:parsenoop},1037:{n:"BrtPCDH14",f:parsenoop},1038:{n:"BrtBeginPCDCalcMem14",f:parsenoop},1039:{n:"BrtEndPCDCalcMem14",f:parsenoop},1040:{n:"BrtSXTH14",f:parsenoop},1041:{n:"BrtBeginSparklineGroup",f:parsenoop},1042:{n:"BrtEndSparklineGroup",f:parsenoop},1043:{n:"BrtSparkline",f:parsenoop},1044:{n:"BrtSXDI14",f:parsenoop},1045:{n:"BrtWsFmtInfoEx14",f:parsenoop},1046:{n:"BrtBeginConditionalFormatting14",f:parsenoop},1047:{n:"BrtEndConditionalFormatting14",f:parsenoop},1048:{n:"BrtBeginCFRule14",f:parsenoop},1049:{n:"BrtEndCFRule14",f:parsenoop},1050:{n:"BrtCFVO14",f:parsenoop},1051:{n:"BrtBeginDatabar14",f:parsenoop},1052:{n:"BrtBeginIconSet14",f:parsenoop},1053:{n:"BrtDVal14",f:parsenoop},1054:{n:"BrtBeginDVals14",f:parsenoop},1055:{n:"BrtColor14",f:parsenoop},1056:{n:"BrtBeginSparklines",f:parsenoop},1057:{n:"BrtEndSparklines",f:parsenoop},1058:{n:"BrtBeginSparklineGroups",f:parsenoop},1059:{n:"BrtEndSparklineGroups",f:parsenoop},1061:{n:"BrtSXVD14",f:parsenoop},1062:{n:"BrtBeginSxview14",f:parsenoop},1063:{n:"BrtEndSxview14",f:parsenoop},1066:{n:"BrtBeginPCD14",f:parsenoop},1067:{n:"BrtEndPCD14",f:parsenoop},1068:{n:"BrtBeginExtConn14",f:parsenoop},1069:{n:"BrtEndExtConn14",f:parsenoop},1070:{n:"BrtBeginSlicerCacheIDs",f:parsenoop},1071:{n:"BrtEndSlicerCacheIDs",f:parsenoop},1072:{n:"BrtBeginSlicerCacheID",f:parsenoop},1073:{n:"BrtEndSlicerCacheID",f:parsenoop},1075:{n:"BrtBeginSlicerCache",f:parsenoop},1076:{n:"BrtEndSlicerCache",f:parsenoop},1077:{n:"BrtBeginSlicerCacheDef",f:parsenoop},1078:{n:"BrtEndSlicerCacheDef",f:parsenoop},1079:{n:"BrtBeginSlicersEx",f:parsenoop},1080:{n:"BrtEndSlicersEx",f:parsenoop},1081:{n:"BrtBeginSlicerEx",f:parsenoop},1082:{n:"BrtEndSlicerEx",f:parsenoop},1083:{n:"BrtBeginSlicer",f:parsenoop},1084:{n:"BrtEndSlicer",f:parsenoop},1085:{n:"BrtSlicerCachePivotTables",f:parsenoop},1086:{n:"BrtBeginSlicerCacheOlapImpl",f:parsenoop},1087:{n:"BrtEndSlicerCacheOlapImpl",f:parsenoop},1088:{n:"BrtBeginSlicerCacheLevelsData",f:parsenoop},1089:{n:"BrtEndSlicerCacheLevelsData",f:parsenoop},1090:{n:"BrtBeginSlicerCacheLevelData",f:parsenoop},1091:{n:"BrtEndSlicerCacheLevelData",f:parsenoop},1092:{n:"BrtBeginSlicerCacheSiRanges",f:parsenoop},1093:{n:"BrtEndSlicerCacheSiRanges",f:parsenoop},1094:{n:"BrtBeginSlicerCacheSiRange",f:parsenoop},1095:{n:"BrtEndSlicerCacheSiRange",f:parsenoop},1096:{n:"BrtSlicerCacheOlapItem",f:parsenoop},1097:{n:"BrtBeginSlicerCacheSelections",f:parsenoop},1098:{n:"BrtSlicerCacheSelection",f:parsenoop},1099:{n:"BrtEndSlicerCacheSelections",f:parsenoop},1100:{n:"BrtBeginSlicerCacheNative",f:parsenoop},1101:{n:"BrtEndSlicerCacheNative",f:parsenoop},1102:{n:"BrtSlicerCacheNativeItem",f:parsenoop},1103:{n:"BrtRangeProtection14",f:parsenoop},1104:{n:"BrtRangeProtectionIso14",f:parsenoop},1105:{n:"BrtCellIgnoreEC14",f:parsenoop},1111:{n:"BrtList14",f:parsenoop},1112:{n:"BrtCFIcon",f:parsenoop},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs",f:parsenoop},1114:{n:"BrtEndSlicerCachesPivotCacheIDs",f:parsenoop},1115:{n:"BrtBeginSlicers",f:parsenoop},1116:{n:"BrtEndSlicers",f:parsenoop},1117:{n:"BrtWbProp14",f:parsenoop},1118:{n:"BrtBeginSXEdit",f:parsenoop},1119:{n:"BrtEndSXEdit",f:parsenoop},1120:{n:"BrtBeginSXEdits",f:parsenoop},1121:{n:"BrtEndSXEdits",f:parsenoop},1122:{n:"BrtBeginSXChange",f:parsenoop},1123:{n:"BrtEndSXChange",f:parsenoop},1124:{n:"BrtBeginSXChanges",f:parsenoop},1125:{n:"BrtEndSXChanges",f:parsenoop},1126:{n:"BrtSXTupleItems",f:parsenoop},1128:{n:"BrtBeginSlicerStyle",f:parsenoop},1129:{n:"BrtEndSlicerStyle",f:parsenoop},1130:{n:"BrtSlicerStyleElement",f:parsenoop},1131:{n:"BrtBeginStyleSheetExt14",f:parsenoop},1132:{n:"BrtEndStyleSheetExt14",f:parsenoop},1133:{n:"BrtBeginSlicerCachesPivotCacheID",f:parsenoop},1134:{n:"BrtEndSlicerCachesPivotCacheID",f:parsenoop},1135:{n:"BrtBeginConditionalFormattings",f:parsenoop},1136:{n:"BrtEndConditionalFormattings",f:parsenoop},1137:{n:"BrtBeginPCDCalcMemExt",f:parsenoop},1138:{n:"BrtEndPCDCalcMemExt",f:parsenoop},1139:{n:"BrtBeginPCDCalcMemsExt",f:parsenoop},1140:{n:"BrtEndPCDCalcMemsExt",f:parsenoop},1141:{n:"BrtPCDField14",f:parsenoop},1142:{n:"BrtBeginSlicerStyles",f:parsenoop},1143:{n:"BrtEndSlicerStyles",f:parsenoop},1144:{n:"BrtBeginSlicerStyleElements",f:parsenoop},1145:{n:"BrtEndSlicerStyleElements",f:parsenoop},1146:{n:"BrtCFRuleExt",f:parsenoop},1147:{n:"BrtBeginSXCondFmt14",f:parsenoop},1148:{n:"BrtEndSXCondFmt14",f:parsenoop},1149:{n:"BrtBeginSXCondFmts14",f:parsenoop},1150:{n:"BrtEndSXCondFmts14",f:parsenoop},1152:{n:"BrtBeginSortCond14",f:parsenoop},1153:{n:"BrtEndSortCond14",f:parsenoop},1154:{n:"BrtEndDVals14",f:parsenoop},1155:{n:"BrtEndIconSet14",f:parsenoop},1156:{n:"BrtEndDatabar14",f:parsenoop},1157:{n:"BrtBeginColorScale14",f:parsenoop},1158:{n:"BrtEndColorScale14",f:parsenoop},1159:{n:"BrtBeginSxrules14",f:parsenoop},1160:{n:"BrtEndSxrules14",f:parsenoop},1161:{n:"BrtBeginPRule14",f:parsenoop},1162:{n:"BrtEndPRule14",f:parsenoop},1163:{n:"BrtBeginPRFilters14",f:parsenoop},1164:{n:"BrtEndPRFilters14",f:parsenoop},1165:{n:"BrtBeginPRFilter14",f:parsenoop},1166:{n:"BrtEndPRFilter14",f:parsenoop},1167:{n:"BrtBeginPRFItem14",f:parsenoop},1168:{n:"BrtEndPRFItem14",f:parsenoop},1169:{n:"BrtBeginCellIgnoreECs14",f:parsenoop},1170:{n:"BrtEndCellIgnoreECs14",f:parsenoop},1171:{n:"BrtDxf14",f:parsenoop},1172:{n:"BrtBeginDxF14s",f:parsenoop},1173:{n:"BrtEndDxf14s",f:parsenoop},1177:{n:"BrtFilter14",f:parsenoop},1178:{n:"BrtBeginCustomFilters14",f:parsenoop},1180:{n:"BrtCustomFilter14",f:parsenoop},1181:{n:"BrtIconFilter14",f:parsenoop},1182:{n:"BrtPivotCacheConnectionName",f:parsenoop},2048:{n:"BrtBeginDecoupledPivotCacheIDs",f:parsenoop},2049:{n:"BrtEndDecoupledPivotCacheIDs",f:parsenoop},2050:{n:"BrtDecoupledPivotCacheID",f:parsenoop},2051:{n:"BrtBeginPivotTableRefs",f:parsenoop},2052:{n:"BrtEndPivotTableRefs",f:parsenoop},2053:{n:"BrtPivotTableRef",f:parsenoop},2054:{n:"BrtSlicerCacheBookPivotTables",f:parsenoop},2055:{n:"BrtBeginSxvcells",f:parsenoop},2056:{n:"BrtEndSxvcells",f:parsenoop},2057:{n:"BrtBeginSxRow",f:parsenoop},2058:{n:"BrtEndSxRow",f:parsenoop},2060:{n:"BrtPcdCalcMem15",f:parsenoop},2067:{n:"BrtQsi15",f:parsenoop},2068:{n:"BrtBeginWebExtensions",f:parsenoop},2069:{n:"BrtEndWebExtensions",f:parsenoop},2070:{n:"BrtWebExtension",f:parsenoop},2071:{n:"BrtAbsPath15",f:parsenoop},2072:{n:"BrtBeginPivotTableUISettings",f:parsenoop},2073:{n:"BrtEndPivotTableUISettings",f:parsenoop},2075:{n:"BrtTableSlicerCacheIDs",f:parsenoop},2076:{n:"BrtTableSlicerCacheID",f:parsenoop},2077:{n:"BrtBeginTableSlicerCache",f:parsenoop},2078:{n:"BrtEndTableSlicerCache",f:parsenoop},2079:{n:"BrtSxFilter15",f:parsenoop},2080:{n:"BrtBeginTimelineCachePivotCacheIDs",f:parsenoop},2081:{n:"BrtEndTimelineCachePivotCacheIDs",f:parsenoop},2082:{n:"BrtTimelineCachePivotCacheID",f:parsenoop},2083:{n:"BrtBeginTimelineCacheIDs",f:parsenoop},2084:{n:"BrtEndTimelineCacheIDs",f:parsenoop},2085:{n:"BrtBeginTimelineCacheID",f:parsenoop},2086:{n:"BrtEndTimelineCacheID",f:parsenoop},2087:{n:"BrtBeginTimelinesEx",f:parsenoop},2088:{n:"BrtEndTimelinesEx",f:parsenoop},2089:{n:"BrtBeginTimelineEx",f:parsenoop},2090:{n:"BrtEndTimelineEx",f:parsenoop},2091:{n:"BrtWorkBookPr15",f:parsenoop},2092:{n:"BrtPCDH15",f:parsenoop},2093:{n:"BrtBeginTimelineStyle",f:parsenoop},2094:{n:"BrtEndTimelineStyle",f:parsenoop},2095:{n:"BrtTimelineStyleElement",f:parsenoop},2096:{n:"BrtBeginTimelineStylesheetExt15",f:parsenoop},2097:{n:"BrtEndTimelineStylesheetExt15",f:parsenoop},2098:{n:"BrtBeginTimelineStyles",f:parsenoop},2099:{n:"BrtEndTimelineStyles",f:parsenoop},2100:{n:"BrtBeginTimelineStyleElements",f:parsenoop},2101:{n:"BrtEndTimelineStyleElements",f:parsenoop},2102:{n:"BrtDxf15",f:parsenoop},2103:{n:"BrtBeginDxfs15",f:parsenoop},2104:{n:"brtEndDxfs15",f:parsenoop},2105:{n:"BrtSlicerCacheHideItemsWithNoData",f:parsenoop},2106:{n:"BrtBeginItemUniqueNames",f:parsenoop},2107:{n:"BrtEndItemUniqueNames",f:parsenoop},2108:{n:"BrtItemUniqueName",f:parsenoop},2109:{n:"BrtBeginExtConn15",f:parsenoop},2110:{n:"BrtEndExtConn15",f:parsenoop},2111:{n:"BrtBeginOledbPr15",f:parsenoop},2112:{n:"BrtEndOledbPr15",f:parsenoop},2113:{n:"BrtBeginDataFeedPr15",f:parsenoop},2114:{n:"BrtEndDataFeedPr15",f:parsenoop},2115:{n:"BrtTextPr15",f:parsenoop},2116:{n:"BrtRangePr15",f:parsenoop},2117:{n:"BrtDbCommand15",f:parsenoop},2118:{n:"BrtBeginDbTables15",f:parsenoop},2119:{n:"BrtEndDbTables15",f:parsenoop},2120:{n:"BrtDbTable15",f:parsenoop},2121:{n:"BrtBeginDataModel",f:parsenoop},2122:{n:"BrtEndDataModel",f:parsenoop},2123:{n:"BrtBeginModelTables",f:parsenoop},2124:{n:"BrtEndModelTables",f:parsenoop},2125:{n:"BrtModelTable",f:parsenoop},2126:{n:"BrtBeginModelRelationships",f:parsenoop},2127:{n:"BrtEndModelRelationships",f:parsenoop},2128:{n:"BrtModelRelationship",f:parsenoop},2129:{n:"BrtBeginECTxtWiz15",f:parsenoop},2130:{n:"BrtEndECTxtWiz15",f:parsenoop},2131:{n:"BrtBeginECTWFldInfoLst15",f:parsenoop},2132:{n:"BrtEndECTWFldInfoLst15",f:parsenoop},2133:{n:"BrtBeginECTWFldInfo15",f:parsenoop},2134:{n:"BrtFieldListActiveItem",f:parsenoop},2135:{n:"BrtPivotCacheIdVersion",f:parsenoop},2136:{n:"BrtSXDI15",f:parsenoop},65535:{n:"",f:parsenoop}}; +var evert_RE=evert_key(XLSBRecordEnum,"n");var XLSRecordEnum={3:{n:"BIFF2NUM",f:parse_BIFF2NUM},4:{n:"BIFF2STR",f:parse_BIFF2STR},6:{n:"Formula",f:parse_Formula},9:{n:"BOF",f:parse_BOF},10:{n:"EOF",f:parse_EOF},12:{n:"CalcCount",f:parse_CalcCount},13:{n:"CalcMode",f:parse_CalcMode},14:{n:"CalcPrecision",f:parse_CalcPrecision},15:{n:"CalcRefMode",f:parse_CalcRefMode},16:{n:"CalcDelta",f:parse_CalcDelta},17:{n:"CalcIter",f:parse_CalcIter},18:{n:"Protect",f:parse_Protect},19:{n:"Password",f:parse_Password},20:{n:"Header",f:parse_Header},21:{n:"Footer",f:parse_Footer},23:{n:"ExternSheet",f:parse_ExternSheet},24:{n:"Lbl",f:parse_Lbl},25:{n:"WinProtect",f:parse_WinProtect},26:{n:"VerticalPageBreaks",f:parse_VerticalPageBreaks},27:{n:"HorizontalPageBreaks",f:parse_HorizontalPageBreaks},28:{n:"Note",f:parse_Note},29:{n:"Selection",f:parse_Selection},34:{n:"Date1904",f:parse_Date1904},35:{n:"ExternName",f:parse_ExternName},38:{n:"LeftMargin",f:parse_LeftMargin},39:{n:"RightMargin",f:parse_RightMargin},40:{n:"TopMargin",f:parse_TopMargin},41:{n:"BottomMargin",f:parse_BottomMargin},42:{n:"PrintRowCol",f:parse_PrintRowCol},43:{n:"PrintGrid",f:parse_PrintGrid},47:{n:"FilePass",f:parse_FilePass},49:{n:"Font",f:parse_Font},51:{n:"PrintSize",f:parse_PrintSize},60:{n:"Continue",f:parse_Continue},61:{n:"Window1",f:parse_Window1},64:{n:"Backup",f:parse_Backup},65:{n:"Pane",f:parse_Pane},66:{n:"CodePage",f:parse_CodePage},77:{n:"Pls",f:parse_Pls},80:{n:"DCon",f:parse_DCon},81:{n:"DConRef",f:parse_DConRef},82:{n:"DConName",f:parse_DConName},85:{n:"DefColWidth",f:parse_DefColWidth},89:{n:"XCT",f:parse_XCT},90:{n:"CRN",f:parse_CRN},91:{n:"FileSharing",f:parse_FileSharing},92:{n:"WriteAccess",f:parse_WriteAccess},93:{n:"Obj",f:parse_Obj},94:{n:"Uncalced",f:parse_Uncalced},95:{n:"CalcSaveRecalc",f:parse_CalcSaveRecalc},96:{n:"Template",f:parse_Template},97:{n:"Intl",f:parse_Intl},99:{n:"ObjProtect",f:parse_ObjProtect},125:{n:"ColInfo",f:parse_ColInfo},128:{n:"Guts",f:parse_Guts},129:{n:"WsBool",f:parse_WsBool},130:{n:"GridSet",f:parse_GridSet},131:{n:"HCenter",f:parse_HCenter},132:{n:"VCenter",f:parse_VCenter},133:{n:"BoundSheet8",f:parse_BoundSheet8},134:{n:"WriteProtect",f:parse_WriteProtect},140:{n:"Country",f:parse_Country},141:{n:"HideObj",f:parse_HideObj},144:{n:"Sort",f:parse_Sort},146:{n:"Palette",f:parse_Palette},151:{n:"Sync",f:parse_Sync},152:{n:"LPr",f:parse_LPr},153:{n:"DxGCol",f:parse_DxGCol},154:{n:"FnGroupName",f:parse_FnGroupName},155:{n:"FilterMode",f:parse_FilterMode},156:{n:"BuiltInFnGroupCount",f:parse_BuiltInFnGroupCount},157:{n:"AutoFilterInfo",f:parse_AutoFilterInfo},158:{n:"AutoFilter",f:parse_AutoFilter},160:{n:"Scl",f:parse_Scl},161:{n:"Setup",f:parse_Setup},174:{n:"ScenMan",f:parse_ScenMan},175:{n:"SCENARIO",f:parse_SCENARIO},176:{n:"SxView",f:parse_SxView},177:{n:"Sxvd",f:parse_Sxvd},178:{n:"SXVI",f:parse_SXVI},180:{n:"SxIvd",f:parse_SxIvd},181:{n:"SXLI",f:parse_SXLI},182:{n:"SXPI",f:parse_SXPI},184:{n:"DocRoute",f:parse_DocRoute},185:{n:"RecipName",f:parse_RecipName},189:{n:"MulRk",f:parse_MulRk},190:{n:"MulBlank",f:parse_MulBlank},193:{n:"Mms",f:parse_Mms},197:{n:"SXDI",f:parse_SXDI},198:{n:"SXDB",f:parse_SXDB},199:{n:"SXFDB",f:parse_SXFDB},200:{n:"SXDBB",f:parse_SXDBB},201:{n:"SXNum",f:parse_SXNum},202:{n:"SxBool",f:parse_SxBool},203:{n:"SxErr",f:parse_SxErr},204:{n:"SXInt",f:parse_SXInt},205:{n:"SXString",f:parse_SXString},206:{n:"SXDtr",f:parse_SXDtr},207:{n:"SxNil",f:parse_SxNil},208:{n:"SXTbl",f:parse_SXTbl},209:{n:"SXTBRGIITM",f:parse_SXTBRGIITM},210:{n:"SxTbpg",f:parse_SxTbpg},211:{n:"ObProj",f:parse_ObProj},213:{n:"SXStreamID",f:parse_SXStreamID},215:{n:"DBCell",f:parse_DBCell},216:{n:"SXRng",f:parse_SXRng},217:{n:"SxIsxoper",f:parse_SxIsxoper},218:{n:"BookBool",f:parse_BookBool},220:{n:"DbOrParamQry",f:parse_DbOrParamQry},221:{n:"ScenarioProtect",f:parse_ScenarioProtect},222:{n:"OleObjectSize",f:parse_OleObjectSize},224:{n:"XF",f:parse_XF},225:{n:"InterfaceHdr",f:parse_InterfaceHdr},226:{n:"InterfaceEnd",f:parse_InterfaceEnd},227:{n:"SXVS",f:parse_SXVS},229:{n:"MergeCells",f:parse_MergeCells},233:{n:"BkHim",f:parse_BkHim},235:{n:"MsoDrawingGroup",f:parse_MsoDrawingGroup},236:{n:"MsoDrawing",f:parse_MsoDrawing},237:{n:"MsoDrawingSelection",f:parse_MsoDrawingSelection},239:{n:"PhoneticInfo",f:parse_PhoneticInfo},240:{n:"SxRule",f:parse_SxRule},241:{n:"SXEx",f:parse_SXEx},242:{n:"SxFilt",f:parse_SxFilt},244:{n:"SxDXF",f:parse_SxDXF},245:{n:"SxItm",f:parse_SxItm},246:{n:"SxName",f:parse_SxName},247:{n:"SxSelect",f:parse_SxSelect},248:{n:"SXPair",f:parse_SXPair},249:{n:"SxFmla",f:parse_SxFmla},251:{n:"SxFormat",f:parse_SxFormat},252:{n:"SST",f:parse_SST},253:{n:"LabelSst",f:parse_LabelSst},255:{n:"ExtSST",f:parse_ExtSST},256:{n:"SXVDEx",f:parse_SXVDEx},259:{n:"SXFormula",f:parse_SXFormula},290:{n:"SXDBEx",f:parse_SXDBEx},311:{n:"RRDInsDel",f:parse_RRDInsDel},312:{n:"RRDHead",f:parse_RRDHead},315:{n:"RRDChgCell",f:parse_RRDChgCell},317:{n:"RRTabId",f:parse_RRTabId},318:{n:"RRDRenSheet",f:parse_RRDRenSheet},319:{n:"RRSort",f:parse_RRSort},320:{n:"RRDMove",f:parse_RRDMove},330:{n:"RRFormat",f:parse_RRFormat},331:{n:"RRAutoFmt",f:parse_RRAutoFmt},333:{n:"RRInsertSh",f:parse_RRInsertSh},334:{n:"RRDMoveBegin",f:parse_RRDMoveBegin},335:{n:"RRDMoveEnd",f:parse_RRDMoveEnd},336:{n:"RRDInsDelBegin",f:parse_RRDInsDelBegin},337:{n:"RRDInsDelEnd",f:parse_RRDInsDelEnd},338:{n:"RRDConflict",f:parse_RRDConflict},339:{n:"RRDDefName",f:parse_RRDDefName},340:{n:"RRDRstEtxp",f:parse_RRDRstEtxp},351:{n:"LRng",f:parse_LRng},352:{n:"UsesELFs",f:parse_UsesELFs},353:{n:"DSF",f:parse_DSF},401:{n:"CUsr",f:parse_CUsr},402:{n:"CbUsr",f:parse_CbUsr},403:{n:"UsrInfo",f:parse_UsrInfo},404:{n:"UsrExcl",f:parse_UsrExcl},405:{n:"FileLock",f:parse_FileLock},406:{n:"RRDInfo",f:parse_RRDInfo},407:{n:"BCUsrs",f:parse_BCUsrs},408:{n:"UsrChk",f:parse_UsrChk},425:{n:"UserBView",f:parse_UserBView},426:{n:"UserSViewBegin",f:parse_UserSViewBegin},427:{n:"UserSViewEnd",f:parse_UserSViewEnd},428:{n:"RRDUserView",f:parse_RRDUserView},429:{n:"Qsi",f:parse_Qsi},430:{n:"SupBook",f:parse_SupBook},431:{n:"Prot4Rev",f:parse_Prot4Rev},432:{n:"CondFmt",f:parse_CondFmt},433:{n:"CF",f:parse_CF},434:{n:"DVal",f:parse_DVal},437:{n:"DConBin",f:parse_DConBin},438:{n:"TxO",f:parse_TxO},439:{n:"RefreshAll",f:parse_RefreshAll},440:{n:"HLink",f:parse_HLink},441:{n:"Lel",f:parse_Lel},442:{n:"CodeName",f:parse_XLSCodeName},443:{n:"SXFDBType",f:parse_SXFDBType},444:{n:"Prot4RevPass",f:parse_Prot4RevPass},445:{n:"ObNoMacros",f:parse_ObNoMacros},446:{n:"Dv",f:parse_Dv},448:{n:"Excel9File",f:parse_Excel9File},449:{n:"RecalcId",f:parse_RecalcId,r:2},450:{n:"EntExU2",f:parse_EntExU2},512:{n:"Dimensions",f:parse_Dimensions},513:{n:"Blank",f:parse_Blank},515:{n:"Number",f:parse_Number},516:{n:"Label",f:parse_Label},517:{n:"BoolErr",f:parse_BoolErr},519:{n:"String",f:parse_String},520:{n:"Row",f:parse_Row},523:{n:"Index",f:parse_Index},545:{n:"Array",f:parse_Array},549:{n:"DefaultRowHeight",f:parse_DefaultRowHeight},566:{n:"Table",f:parse_Table},574:{n:"Window2",f:parse_Window2},638:{n:"RK",f:parse_RK},659:{n:"Style",f:parse_Style},1048:{n:"BigName",f:parse_BigName},1054:{n:"Format",f:parse_Format},1084:{n:"ContinueBigName",f:parse_ContinueBigName},1212:{n:"ShrFmla",f:parse_ShrFmla},2048:{n:"HLinkTooltip",f:parse_HLinkTooltip},2049:{n:"WebPub",f:parse_WebPub},2050:{n:"QsiSXTag",f:parse_QsiSXTag},2051:{n:"DBQueryExt",f:parse_DBQueryExt},2052:{n:"ExtString",f:parse_ExtString},2053:{n:"TxtQry",f:parse_TxtQry},2054:{n:"Qsir",f:parse_Qsir},2055:{n:"Qsif",f:parse_Qsif},2056:{n:"RRDTQSIF",f:parse_RRDTQSIF},2057:{n:"BOF",f:parse_BOF},2058:{n:"OleDbConn",f:parse_OleDbConn},2059:{n:"WOpt",f:parse_WOpt},2060:{n:"SXViewEx",f:parse_SXViewEx},2061:{n:"SXTH",f:parse_SXTH},2062:{n:"SXPIEx",f:parse_SXPIEx},2063:{n:"SXVDTEx",f:parse_SXVDTEx},2064:{n:"SXViewEx9",f:parse_SXViewEx9},2066:{n:"ContinueFrt",f:parse_ContinueFrt},2067:{n:"RealTimeData",f:parse_RealTimeData},2128:{n:"ChartFrtInfo",f:parse_ChartFrtInfo},2129:{n:"FrtWrapper",f:parse_FrtWrapper},2130:{n:"StartBlock",f:parse_StartBlock},2131:{n:"EndBlock",f:parse_EndBlock},2132:{n:"StartObject",f:parse_StartObject},2133:{n:"EndObject",f:parse_EndObject},2134:{n:"CatLab",f:parse_CatLab},2135:{n:"YMult",f:parse_YMult},2136:{n:"SXViewLink",f:parse_SXViewLink},2137:{n:"PivotChartBits",f:parse_PivotChartBits},2138:{n:"FrtFontList",f:parse_FrtFontList},2146:{n:"SheetExt",f:parse_SheetExt},2147:{n:"BookExt",f:parse_BookExt,r:12},2148:{n:"SXAddl",f:parse_SXAddl},2149:{n:"CrErr",f:parse_CrErr},2150:{n:"HFPicture",f:parse_HFPicture},2151:{n:"FeatHdr",f:parse_FeatHdr},2152:{n:"Feat",f:parse_Feat},2154:{n:"DataLabExt",f:parse_DataLabExt},2155:{n:"DataLabExtContents",f:parse_DataLabExtContents},2156:{n:"CellWatch",f:parse_CellWatch},2161:{n:"FeatHdr11",f:parse_FeatHdr11},2162:{n:"Feature11",f:parse_Feature11},2164:{n:"DropDownObjIds",f:parse_DropDownObjIds},2165:{n:"ContinueFrt11",f:parse_ContinueFrt11},2166:{n:"DConn",f:parse_DConn},2167:{n:"List12",f:parse_List12},2168:{n:"Feature12",f:parse_Feature12},2169:{n:"CondFmt12",f:parse_CondFmt12},2170:{n:"CF12",f:parse_CF12},2171:{n:"CFEx",f:parse_CFEx},2172:{n:"XFCRC",f:parse_XFCRC,r:12},2173:{n:"XFExt",f:parse_XFExt,r:12},2174:{n:"AutoFilter12",f:parse_AutoFilter12},2175:{n:"ContinueFrt12",f:parse_ContinueFrt12},2180:{n:"MDTInfo",f:parse_MDTInfo},2181:{n:"MDXStr",f:parse_MDXStr},2182:{n:"MDXTuple",f:parse_MDXTuple},2183:{n:"MDXSet",f:parse_MDXSet},2184:{n:"MDXProp",f:parse_MDXProp},2185:{n:"MDXKPI",f:parse_MDXKPI},2186:{n:"MDB",f:parse_MDB},2187:{n:"PLV",f:parse_PLV},2188:{n:"Compat12",f:parse_Compat12,r:12},2189:{n:"DXF",f:parse_DXF},2190:{n:"TableStyles",f:parse_TableStyles,r:12},2191:{n:"TableStyle",f:parse_TableStyle},2192:{n:"TableStyleElement",f:parse_TableStyleElement},2194:{n:"StyleExt",f:parse_StyleExt},2195:{n:"NamePublish",f:parse_NamePublish},2196:{n:"NameCmt",f:parse_NameCmt},2197:{n:"SortData",f:parse_SortData},2198:{n:"Theme",f:parse_Theme,r:12},2199:{n:"GUIDTypeLib",f:parse_GUIDTypeLib},2200:{n:"FnGrp12",f:parse_FnGrp12},2201:{n:"NameFnGrp12",f:parse_NameFnGrp12},2202:{n:"MTRSettings",f:parse_MTRSettings,r:12},2203:{n:"CompressPictures",f:parse_CompressPictures},2204:{n:"HeaderFooter",f:parse_HeaderFooter},2205:{n:"CrtLayout12",f:parse_CrtLayout12},2206:{n:"CrtMlFrt",f:parse_CrtMlFrt},2207:{n:"CrtMlFrtContinue",f:parse_CrtMlFrtContinue},2211:{n:"ForceFullCalculation",f:parse_ForceFullCalculation},2212:{n:"ShapePropsStream",f:parse_ShapePropsStream},2213:{n:"TextPropsStream",f:parse_TextPropsStream},2214:{n:"RichTextStream",f:parse_RichTextStream},2215:{n:"CrtLayout12A",f:parse_CrtLayout12A},4097:{n:"Units",f:parse_Units},4098:{n:"Chart",f:parse_Chart},4099:{n:"Series",f:parse_Series},4102:{n:"DataFormat",f:parse_DataFormat},4103:{n:"LineFormat",f:parse_LineFormat},4105:{n:"MarkerFormat",f:parse_MarkerFormat},4106:{n:"AreaFormat",f:parse_AreaFormat},4107:{n:"PieFormat",f:parse_PieFormat},4108:{n:"AttachedLabel",f:parse_AttachedLabel},4109:{n:"SeriesText",f:parse_SeriesText},4116:{n:"ChartFormat",f:parse_ChartFormat},4117:{n:"Legend",f:parse_Legend},4118:{n:"SeriesList",f:parse_SeriesList},4119:{n:"Bar",f:parse_Bar},4120:{n:"Line",f:parse_Line},4121:{n:"Pie",f:parse_Pie},4122:{n:"Area",f:parse_Area},4123:{n:"Scatter",f:parse_Scatter},4124:{n:"CrtLine",f:parse_CrtLine},4125:{n:"Axis",f:parse_Axis},4126:{n:"Tick",f:parse_Tick},4127:{n:"ValueRange",f:parse_ValueRange},4128:{n:"CatSerRange",f:parse_CatSerRange},4129:{n:"AxisLine",f:parse_AxisLine},4130:{n:"CrtLink",f:parse_CrtLink},4132:{n:"DefaultText",f:parse_DefaultText},4133:{n:"Text",f:parse_Text},4134:{n:"FontX",f:parse_FontX},4135:{n:"ObjectLink",f:parse_ObjectLink},4146:{n:"Frame",f:parse_Frame},4147:{n:"Begin",f:parse_Begin},4148:{n:"End",f:parse_End},4149:{n:"PlotArea",f:parse_PlotArea},4154:{n:"Chart3d",f:parse_Chart3d},4156:{n:"PicF",f:parse_PicF},4157:{n:"DropBar",f:parse_DropBar},4158:{n:"Radar",f:parse_Radar},4159:{n:"Surf",f:parse_Surf},4160:{n:"RadarArea",f:parse_RadarArea},4161:{n:"AxisParent",f:parse_AxisParent},4163:{n:"LegendException",f:parse_LegendException},4164:{n:"ShtProps",f:parse_ShtProps},4165:{n:"SerToCrt",f:parse_SerToCrt},4166:{n:"AxesUsed",f:parse_AxesUsed},4168:{n:"SBaseRef",f:parse_SBaseRef},4170:{n:"SerParent",f:parse_SerParent},4171:{n:"SerAuxTrend",f:parse_SerAuxTrend},4174:{n:"IFmtRecord",f:parse_IFmtRecord},4175:{n:"Pos",f:parse_Pos},4176:{n:"AlRuns",f:parse_AlRuns},4177:{n:"BRAI",f:parse_BRAI},4187:{n:"SerAuxErrBar",f:parse_SerAuxErrBar},4188:{n:"ClrtClient",f:parse_ClrtClient},4189:{n:"SerFmt",f:parse_SerFmt},4191:{n:"Chart3DBarShape",f:parse_Chart3DBarShape},4192:{n:"Fbi",f:parse_Fbi},4193:{n:"BopPop",f:parse_BopPop},4194:{n:"AxcExt",f:parse_AxcExt},4195:{n:"Dat",f:parse_Dat},4196:{n:"PlotGrowth",f:parse_PlotGrowth},4197:{n:"SIIndex",f:parse_SIIndex},4198:{n:"GelFrame",f:parse_GelFrame},4199:{n:"BopPopCustom",f:parse_BopPopCustom},4200:{n:"Fbi2",f:parse_Fbi2},22:{n:"ExternCount",f:parsenoop},126:{n:"RK",f:parsenoop},127:{n:"ImData",f:parsenoop},135:{n:"Addin",f:parsenoop},136:{n:"Edg",f:parsenoop},137:{n:"Pub",f:parsenoop},145:{n:"Sub",f:parsenoop},148:{n:"LHRecord",f:parsenoop},149:{n:"LHNGraph",f:parsenoop},150:{n:"Sound",f:parsenoop},169:{n:"CoordList",f:parsenoop},171:{n:"GCW",f:parsenoop},188:{n:"ShrFmla",f:parsenoop},194:{n:"AddMenu",f:parsenoop},195:{n:"DelMenu",f:parsenoop},214:{n:"RString",f:parsenoop},223:{n:"UDDesc",f:parsenoop},234:{n:"TabIdConf",f:parsenoop},354:{n:"XL5Modify",f:parsenoop},421:{n:"FileSharing2",f:parsenoop},536:{n:"Name",f:parsenoop},547:{n:"ExternName",f:parse_ExternName},561:{n:"Font",f:parsenoop},1030:{n:"Formula",f:parse_Formula},2157:{n:"FeatInfo",f:parsenoop},2163:{n:"FeatInfo11",f:parsenoop},2177:{n:"SXAddl12",f:parsenoop},2240:{n:"AutoWebPub",f:parsenoop},2241:{n:"ListObj",f:parsenoop},2242:{n:"ListField",f:parsenoop},2243:{n:"ListDV",f:parsenoop},2244:{n:"ListCondFmt",f:parsenoop},2245:{n:"ListCF",f:parsenoop},2246:{n:"FMQry",f:parsenoop},2247:{n:"FMSQry",f:parsenoop},2248:{n:"PLV",f:parsenoop},2249:{n:"LnExt",f:parsenoop},2250:{n:"MkrExt",f:parsenoop},2251:{n:"CrtCoopt",f:parsenoop},0:{}};function parse_ods(zip,opts){if(typeof module!=="undefined"&&typeof require!=="undefined"&&typeof ODS==="undefined")ODS=require("./od"+"s");if(typeof ODS==="undefined"||!ODS.parse_ods)throw new Error("Unsupported ODS");return ODS.parse_ods(zip,opts)}function fix_opts_func(defaults){return function fix_opts(opts){for(var i=0;i!=defaults.length;++i){var d=defaults[i];if(opts[d[0]]===undefined)opts[d[0]]=d[1];if(d[2]==="n")opts[d[0]]=Number(opts[d[0]])}}}var fix_read_opts=fix_opts_func([["cellNF",false],["cellHTML",true],["cellFormula",true],["cellStyles",false],["cellDates",false],["sheetStubs",false],["sheetRows",0,"n"],["bookDeps",false],["bookSheets",false],["bookProps",false],["bookFiles",false],["bookVBA",false],["password",""],["WTF",false]]);var fix_write_opts=fix_opts_func([["cellDates",false],["bookSST",false],["bookType","xlsx"],["WTF",false]]);function safe_parse_wbrels(wbrels,sheets){if(!wbrels)return 0;try{wbrels=sheets.map(function pwbr(w){return[w.name,wbrels["!id"][w.id].Target]})}catch(e){return null}return!wbrels||wbrels.length===0?null:wbrels}function safe_parse_ws(zip,path,relsPath,sheet,sheetRels,sheets,opts){try{sheetRels[sheet]=parse_rels(getzipdata(zip,relsPath,true),path);sheets[sheet]=parse_ws(getzipdata(zip,path),path,opts,sheetRels[sheet])}catch(e){if(opts.WTF)throw e}}var nodirs=function nodirs(x){return x.substr(-1)!="/"};function parse_zip(zip,opts){make_ssf(SSF);opts=opts||{};fix_read_opts(opts);reset_cp();if(safegetzipfile(zip,"META-INF/manifest.xml"))return parse_ods(zip,opts);var entries=keys(zip.files).filter(nodirs).sort();var dir=parse_ct(getzipdata(zip,"[Content_Types].xml"),opts);var xlsb=false;var sheets,binname;if(dir.workbooks.length===0){binname="xl/workbook.xml";if(getzipdata(zip,binname,true))dir.workbooks.push(binname)}if(dir.workbooks.length===0){binname="xl/workbook.bin";if(!getzipfile(zip,binname,true))throw new Error("Could not find workbook");dir.workbooks.push(binname);xlsb=true}if(dir.workbooks[0].substr(-3)=="bin")xlsb=true;if(xlsb)set_cp(1200);if(!opts.bookSheets&&!opts.bookProps){strs=[];if(dir.sst)strs=parse_sst(getzipdata(zip,dir.sst.replace(/^\//,"")),dir.sst,opts);styles={};if(dir.style)styles=parse_sty(getzipdata(zip,dir.style.replace(/^\//,"")),dir.style,opts);themes={};if(opts.cellStyles&&dir.themes.length)themes=parse_theme(getzipdata(zip,dir.themes[0].replace(/^\//,""),true),dir.themes[0],opts)}var wb=parse_wb(getzipdata(zip,dir.workbooks[0].replace(/^\//,"")),dir.workbooks[0],opts);var props={},propdata="";if(dir.coreprops.length!==0){propdata=getzipdata(zip,dir.coreprops[0].replace(/^\//,""),true);if(propdata)props=parse_core_props(propdata);if(dir.extprops.length!==0){propdata=getzipdata(zip,dir.extprops[0].replace(/^\//,""),true);if(propdata)parse_ext_props(propdata,props)}}var custprops={};if(!opts.bookSheets||opts.bookProps){if(dir.custprops.length!==0){propdata=getzipdata(zip,dir.custprops[0].replace(/^\//,""),true);if(propdata)custprops=parse_cust_props(propdata,opts)}}var out={};if(opts.bookSheets||opts.bookProps){if(props.Worksheets&&props.SheetNames.length>0)sheets=props.SheetNames;else if(wb.Sheets)sheets=wb.Sheets.map(function pluck(x){return x.name});if(opts.bookProps){out.Props=props;out.Custprops=custprops}if(typeof sheets!=="undefined")out.SheetNames=sheets;if(opts.bookSheets?out.SheetNames:opts.bookProps)return out}sheets={};var deps={};if(opts.bookDeps&&dir.calcchain)deps=parse_cc(getzipdata(zip,dir.calcchain.replace(/^\//,"")),dir.calcchain,opts);var i=0;var sheetRels={};var path,relsPath;if(!props.Worksheets){var wbsheets=wb.Sheets;props.Worksheets=wbsheets.length;props.SheetNames=[];for(var j=0;j!=wbsheets.length;++j){props.SheetNames[j]=wbsheets[j].name}}var wbext=xlsb?"bin":"xml";var wbrelsfile="xl/_rels/workbook."+wbext+".rels";var wbrels=parse_rels(getzipdata(zip,wbrelsfile,true),wbrelsfile);if(wbrels)wbrels=safe_parse_wbrels(wbrels,wb.Sheets);var nmode=getzipdata(zip,"xl/worksheets/sheet.xml",true)?1:0;for(i=0;i!=props.Worksheets;++i){if(wbrels)path="xl/"+wbrels[i][1].replace(/[\/]?xl\//,"");else{path="xl/worksheets/sheet"+(i+1-nmode)+"."+wbext;path=path.replace(/sheet0\./,"sheet.")}relsPath=path.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");safe_parse_ws(zip,path,relsPath,props.SheetNames[i],sheetRels,sheets,opts)}if(dir.comments)parse_comments(zip,dir.comments,sheets,sheetRels,opts);out={Directory:dir,Workbook:wb,Props:props,Custprops:custprops,Deps:deps,Sheets:sheets,SheetNames:props.SheetNames,Strings:strs,Styles:styles,Themes:themes,SSF:SSF.get_table()};if(opts.bookFiles){out.keys=entries;out.files=zip.files}if(opts.bookVBA){if(dir.vba.length>0)out.vbaraw=getzipdata(zip,dir.vba[0],true);else if(dir.defaults.bin==="application/vnd.ms-office.vbaProject")out.vbaraw=getzipdata(zip,"xl/vbaProject.bin",true)}return out}function add_rels(rels,rId,f,type,relobj){if(!relobj)relobj={};if(!rels["!id"])rels["!id"]={};relobj.Id="rId"+rId;relobj.Type=type;relobj.Target=f;if(rels["!id"][relobj.Id])throw new Error("Cannot rewrite rId "+rId);rels["!id"][relobj.Id]=relobj;rels[("/"+relobj.Target).replace("//","/")]=relobj}function write_zip(wb,opts){if(wb&&!wb.SSF){wb.SSF=SSF.get_table()}if(wb&&wb.SSF){make_ssf(SSF);SSF.load_table(wb.SSF);opts.revssf=evert_num(wb.SSF);opts.revssf[wb.SSF[65535]]=0}opts.rels={};opts.wbrels={};opts.Strings=[];opts.Strings.Count=0;opts.Strings.Unique=0;var wbext=opts.bookType=="xlsb"?"bin":"xml";var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};fix_write_opts(opts=opts||{});var zip=new jszip;var f="",rId=0;opts.cellXfs=[];get_cell_style(opts.cellXfs,{},{revssf:{General:0}});f="docProps/core.xml";zip.file(f,write_core_props(wb.Props,opts));ct.coreprops.push(f);add_rels(opts.rels,2,f,RELS.CORE_PROPS);f="docProps/app.xml";if(!wb.Props)wb.Props={};wb.Props.SheetNames=wb.SheetNames;wb.Props.Worksheets=wb.SheetNames.length;zip.file(f,write_ext_props(wb.Props,opts));ct.extprops.push(f);add_rels(opts.rels,3,f,RELS.EXT_PROPS);if(wb.Custprops!==wb.Props&&keys(wb.Custprops||{}).length>0){f="docProps/custom.xml";zip.file(f,write_cust_props(wb.Custprops,opts));ct.custprops.push(f);add_rels(opts.rels,4,f,RELS.CUST_PROPS)}f="xl/workbook."+wbext;zip.file(f,write_wb(wb,f,opts));ct.workbooks.push(f);add_rels(opts.rels,1,f,RELS.WB);for(rId=1;rId<=wb.SheetNames.length;++rId){f="xl/worksheets/sheet"+rId+"."+wbext;zip.file(f,write_ws(rId-1,f,opts,wb));ct.sheets.push(f);add_rels(opts.wbrels,rId,"worksheets/sheet"+rId+"."+wbext,RELS.WS)}if(opts.Strings!=null&&opts.Strings.length>0){f="xl/sharedStrings."+wbext;zip.file(f,write_sst(opts.Strings,f,opts));ct.strs.push(f);add_rels(opts.wbrels,++rId,"sharedStrings."+wbext,RELS.SST)}f="xl/theme/theme1.xml";zip.file(f,write_theme());ct.themes.push(f);add_rels(opts.wbrels,++rId,"theme/theme1.xml",RELS.THEME);f="xl/styles."+wbext;zip.file(f,write_sty(wb,f,opts));ct.styles.push(f);add_rels(opts.wbrels,++rId,"styles."+wbext,RELS.STY);zip.file("[Content_Types].xml",write_ct(ct,opts));zip.file("_rels/.rels",write_rels(opts.rels));zip.file("xl/_rels/workbook."+wbext+".rels",write_rels(opts.wbrels));return zip}function firstbyte(f,o){switch((o||{}).type||"base64"){case"buffer":return f[0];case"base64":return Base64.decode(f.substr(0,12)).charCodeAt(0);case"binary":return f.charCodeAt(0);case"array":return f[0];default:throw new Error("Unrecognized type "+o.type)}}function read_zip(data,opts){var zip,d=data;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";switch(o.type){case"base64":zip=new jszip(d,{base64:true});break;case"binary":case"array":zip=new jszip(d,{base64:false});break;case"buffer":zip=new jszip(d);break;case"file":zip=new jszip(d=_fs.readFileSync(data));break;default:throw new Error("Unrecognized type "+o.type)}return parse_zip(zip,o)}function readSync(data,opts){var zip,d=data,isfile=false,n;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";if(o.type=="file"){isfile=true;o.type="buffer";d=_fs.readFileSync(data)}switch(n=firstbyte(d,o)){case 208:if(isfile)o.type="file";return parse_xlscfb(CFB.read(data,o),o);case 9:return parse_xlscfb(s2a(o.type==="base64"?Base64.decode(data):data),o);case 60:return parse_xlml(d,o);case 80:if(isfile)o.type="file";return read_zip(data,opts);default:throw new Error("Unsupported file "+n)}}function readFileSync(data,opts){var o=opts||{};o.type="file";return readSync(data,o)}function write_zip_type(wb,opts){var o=opts||{};var z=write_zip(wb,o);switch(o.type){case"base64":return z.generate({type:"base64"});case"binary":return z.generate({type:"string"});case"buffer":return z.generate({type:"nodebuffer"});case"file":return _fs.writeFileSync(o.file,z.generate({type:"nodebuffer"}));default:throw new Error("Unrecognized type "+o.type)}}function writeSync(wb,opts){var o=opts||{};switch(o.bookType){case"xml":return write_xlml(wb,o);default:return write_zip_type(wb,o)}}function writeFileSync(wb,filename,opts){var o=opts||{};o.type="file";o.file=filename;switch(o.file.substr(-5).toLowerCase()){case".xlsx":o.bookType="xlsx";break;case".xlsm":o.bookType="xlsm";break;case".xlsb":o.bookType="xlsb";break;default:switch(o.file.substr(-4).toLowerCase()){case".xls":o.bookType="xls";break;case".xml":o.bookType="xml";break}}return writeSync(wb,o)}function decode_row(rowstr){return parseInt(unfix_row(rowstr),10)-1}function encode_row(row){return""+(row+1)}function fix_row(cstr){return cstr.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function unfix_row(cstr){return cstr.replace(/\$(\d+)$/,"$1")}function decode_col(colstr){var c=unfix_col(colstr),d=0,i=0;for(;i!==c.length;++i)d=26*d+c.charCodeAt(i)-64;return d-1}function encode_col(col){var s="";for(++col;col;col=Math.floor((col-1)/26))s=String.fromCharCode((col-1)%26+65)+s;return s}function fix_col(cstr){return cstr.replace(/^([A-Z])/,"$$$1")}function unfix_col(cstr){return cstr.replace(/^\$([A-Z])/,"$1")}function split_cell(cstr){return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function decode_cell(cstr){var splt=split_cell(cstr);return{c:decode_col(splt[0]),r:decode_row(splt[1])}}function encode_cell(cell){return encode_col(cell.c)+encode_row(cell.r)}function fix_cell(cstr){return fix_col(fix_row(cstr))}function unfix_cell(cstr){return unfix_col(unfix_row(cstr))}function decode_range(range){var x=range.split(":").map(decode_cell);return{s:x[0],e:x[x.length-1]}}function encode_range(cs,ce){if(ce===undefined||typeof ce==="number")return encode_range(cs.s,cs.e);if(typeof cs!=="string")cs=encode_cell(cs);if(typeof ce!=="string")ce=encode_cell(ce);return cs==ce?cs:cs+":"+ce}function safe_decode_range(range){var o={s:{c:0,r:0},e:{c:0,r:0}};var idx=0,i=0,cc=0;var len=range.length;for(idx=0;i26)break;idx=26*idx+cc}o.s.c=--idx;for(idx=0;i9)break;idx=10*idx+cc}o.s.r=--idx;if(i===len||range.charCodeAt(++i)===58){o.e.c=o.s.c;o.e.r=o.s.r;return o}for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.e.c=--idx;for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.e.r=--idx;return o}function safe_format_cell(cell,v){if(cell.z!==undefined)try{return cell.w=SSF.format(cell.z,v)}catch(e){}if(!cell.XF)return v;try{return cell.w=SSF.format(cell.XF.ifmt||0,v)}catch(e){return""+v}}function format_cell(cell,v){if(cell==null||cell.t==null)return"";if(cell.w!==undefined)return cell.w;if(v===undefined)return safe_format_cell(cell,cell.v);return safe_format_cell(cell,v)}function sheet_to_json(sheet,opts){var val,row,range,header=0,offset=1,r,hdr=[],isempty,R,C,v;var o=opts!=null?opts:{};var raw=o.raw;if(sheet==null||sheet["!ref"]==null)return[];range=o.range!==undefined?o.range:sheet["!ref"];if(o.header===1)header=1;else if(o.header==="A")header=2;else if(Array.isArray(o.header))header=3;switch(typeof range){case"string":r=safe_decode_range(range);break;case"number":r=safe_decode_range(sheet["!ref"]);r.s.r=range;break;default:r=range}if(header>0)offset=0;var rr=encode_row(r.s.r);var cols=new Array(r.e.c-r.s.c+1);var out=new Array(r.e.r-r.s.r-offset+1);var outi=0;for(C=r.s.c;C<=r.e.c;++C){cols[C]=encode_col(C);val=sheet[cols[C]+rr];switch(header){case 1:hdr[C]=C;break;case 2:hdr[C]=cols[C];break;case 3:hdr[C]=o.header[C-r.s.c];break;default:if(val===undefined)continue;hdr[C]=format_cell(val)}}for(R=r.s.r+offset;R<=r.e.r;++R){rr=encode_row(R);isempty=true;if(header===1)row=[];else{row={};if(Object.defineProperty)Object.defineProperty(row,"__rowNum__",{value:R,enumerable:false});else row.__rowNum__=R}for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];if(val===undefined||val.t===undefined)continue;v=val.v;switch(val.t){case"e":continue;case"s":break;case"b":case"n":break;default:throw"unrecognized type "+val.t}if(v!==undefined){row[hdr[C]]=raw?v:format_cell(val,v);isempty=false}}if(isempty===false||header===1)out[outi++]=row}out.length=outi;return out}function sheet_to_row_object_array(sheet,opts){return sheet_to_json(sheet,opts!=null?opts:{})}function sheet_to_csv(sheet,opts){var out="",txt="",qreg=/"/g;var o=opts==null?{}:opts;if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]);var FS=o.FS!==undefined?o.FS:",",fs=FS.charCodeAt(0);var RS=o.RS!==undefined?o.RS:"\n",rs=RS.charCodeAt(0);var row="",rr="",cols=[];var i=0,cc=0,val;var R=0,C=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(R=r.s.r;R<=r.e.r;++R){row="";rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];txt=val!==undefined?""+format_cell(val):"";for(i=0,cc=0;i!==txt.length;++i)if((cc=txt.charCodeAt(i))===fs||cc===rs||cc===34){txt='"'+txt.replace(qreg,'""')+'"';break}row+=(C===r.s.c?"":FS)+txt}out+=row+RS}return out}var make_csv=sheet_to_csv;function sheet_to_formulae(sheet){var cmds,y="",x,val="";if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]),rr="",cols=[],C;cmds=new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));var i=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(var R=r.s.r;R<=r.e.r;++R){rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){y=cols[C]+rr;x=sheet[y];val="";if(x===undefined)continue;if(x.f!=null)val=x.f;else if(x.w!==undefined)val="'"+x.w;else if(x.v===undefined)continue;else val=""+x.v;cmds[i++]=y+"="+val}}cmds.length=i;return cmds}var utils={encode_col:encode_col,encode_row:encode_row,encode_cell:encode_cell,encode_range:encode_range,decode_col:decode_col,decode_row:decode_row,split_cell:split_cell,decode_cell:decode_cell,decode_range:decode_range,format_cell:format_cell,get_formulae:sheet_to_formulae,make_csv:sheet_to_csv,make_json:sheet_to_json,make_formulae:sheet_to_formulae,sheet_to_csv:sheet_to_csv,sheet_to_json:sheet_to_json,sheet_to_formulae:sheet_to_formulae,sheet_to_row_object_array:sheet_to_row_object_array};XLSX.parse_xlscfb=parse_xlscfb;XLSX.parse_zip=parse_zip;XLSX.read=readSync;XLSX.readFile=readFileSync;XLSX.readFileSync=readFileSync;XLSX.write=writeSync;XLSX.writeFile=writeFileSync;XLSX.writeFileSync=writeFileSync;XLSX.utils=utils;XLSX.CFB=CFB;XLSX.SSF=SSF})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX; diff --git a/dist/xlsx.full.min.map b/dist/xlsx.full.min.map index 45fb700..cc5733e 100644 --- a/dist/xlsx.full.min.map +++ b/dist/xlsx.full.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/xlsx.full.min.js","sources":["jszip.js","dist/cpexcel.js","xlsx.js"],"names":["e","exports","module","define","amd","f","window","global","self","JSZip","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode",2,"CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent",3,"STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate",4,"utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils",5,"DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date",6,"base64","binary","dir","createFolders","date","compression","comment",7,"string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object",8,"USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw",9,"options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support",10,"ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries",11,"Buffer","encoding","test","isBuffer","undefined",12,"Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader",13,"signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8",14,"ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR",15,"StringReader","./dataReader",16,"join",17,"arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob",18,"sig0","sig1","sig2","sig3","subarray",19,20,"_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min",21,"identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method",22,"ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry",23,"isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField",24,"assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants",25,"zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream",26,"zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js",27,"TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32",28,"STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common",29,"adler32","adler","s1","s2",30,"Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN",31,"makeTable","crcTable","end",32,"trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees",33,"GZheader","xflags","extra_len","done",34,"BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane",35,"inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees",36,"MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index",37,"0","-1","-2","-3","-4","-5","-6",38,"STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb",39,"ZStream","cptable","version","d","D","enc","split","factory","cpt","1200","1201","12000","12001","16969","20127","65000","65001","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpecache","cpdcache","sfcc","cca","mdl","mdb","make_EE","E","EE","keys","ee","sbcs_encode","make_sbcs_encode","cp","sbcs_e","ofmt","sbcs_decode","make_sbcs_decode","DD","sbcs_d","dbcs_encode","make_dbcs_encode","dbcs_e","jj","dbcs_decode","make_dbcs_decode","dbcs_d","utf8_d","ww","utf8_e","direct","encache","cp_decache","decache","forEach","last_enc","last_cp","cache","sbcs","dbcs","BM","SetD","tt","C","M","map","F","dash","o64","c1","c3","e1","e2","e3","e4","hascp","XLSX","current_codepage","current_cptable","reset_cp","set_cp","char_codes","debom_xml","substr","SSF","make_ssf","_strrev","pad0","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","opts_fmt","fixopts","table_fmt",40,45,46,47,48,49,56,65535,"days","months","frac","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","abs","LOG10E","_general_num","general_fmt","_general","fix_hijri","parse_date_code","b2","dow","dout","T","H","S","date1904","setDate","getDay","write_date","fmt","ss0","ss","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","flr","write_num_flt","ffmt","oo","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","format","_table","load_entry","get_table","load_table","tbl","isval","evert_key","key","K","evert","evert_num","evert_arr","datenum","epoch","parse","cc2str","arr","has_buf","getdata","safegetzipfile","getzipfile","getzipdata","safe","_fs","jszip","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","strip_ns","encodings",""","'",">","<","&","rencoding","rencstr","encregex","coderegex","unescapexml","decregex","charegex","escapexml","parsexmlbool","utf8read","utf8reada","orig","utf8readb","corpus","utf8readc","matchtag","mtcache","g","RegExp","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XML_HEADER","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","readIEEE754","isLE","nl","ml","el","eMax","eBias","NaN","Infinity","__toBuffer","___toBuffer","toBuffer_","bufs","__double","___double","is_buf","is_buf_a","double_","readDoubleLE","is_buf_b","__readUInt8","__readUInt16LE","__readInt16LE","__readUInt32LE","__readInt32LE","ReadShift","loc","WriteShift","writeUInt16LE","writeUInt32LE","writeDoubleLE","writeInt32LE","prep_blob","read_shift","write_shift","parsenoop","writenoop","new_buf","sz","recordhopper","cb","tmpbyte","cntbyte","RT","R","RecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","evert_RE","parse_StrRun","ich","ifnt","parse_RichStr","parse_XLWideString","rgsStrRun","dwSizeStrRun","write_RichStr","write_XLWideString","parse_Cell","col","iStyleRef","fPhShow","write_Cell","cell","parse_CodeName","parse_XLNullableWideString","cchCharacters","write_XLNullableWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr",42,43,255,"RBErr","parse_BrtColor","fValidRGB","xColorType","nTintAndShade","bRed","bGreen","bBlue","bAlpha","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.chartsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml","application/vnd.ms-excel.dialogsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml","application/vnd.ms-excel.macrosheet","application/vnd.ms-excel.macrosheet+xml","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.ms-excel.comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","sheet","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","sheets","styles","type2ct","CT","parse_ct","ctext","ct","calcchains","themes","coreprops","extprops","custprops","comments","vba","TODO","rels","xmlns","Extension","ContentType","PartName","WTF","console","error","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","parse_rels","currentFilePath","hash","resolveRelativePathIntoAbsolute","toksFrom","pop","toksTo","reversed","tokTo","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","widx","Worksheets","parts","SheetNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","xmlnsvt","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","CS2CP",77,128,129,130,134,136,161,162,163,177,178,186,204,222,238,69,"parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","font","strike","rgb","color","family","parse_r","terms","rs","sitregex","sirregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","Count","Unique","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","hex2RGB","rgb2Hex","rgb2HSL","G","H6","L2","hsl2RGB","hsl","L","h6","X","rgb_tint","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","width2px","width","px2char","px","char2width","chr","cycle_width","collw","find_mdw","coll","parse_fills","Fills","patternType","bgColor","indexed","theme","fgColor","parse_numFmts","NumberFmt","formatCode","numFmtId","write_numFmts","NF","parse_cellXfs","CellXf","fillId","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","STYLES_XML_ROOT","STY","write_sty_xml","wb","parse_BrtFmt","ifmt","stFmtCode","parse_BrtFont","dyHeight","grbit","bls","sss","uls","bFamily","bCharSet","brtColor","bFontScheme","Bold","Italic","Strikeout","Outline","Shadow","Condense","Extend","Sub","Sup","parse_BrtXF","ixfeParent","ixfe","parse_sty_bin","hopper_sty","write_sty_bin","THEME","parse_clrScheme","themeElements","clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","encode_cell","parse_cc_bin","hopper_cc","write_cc_bin","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","ref","range","safe_decode_range","thisCell","decode_cell","encoded","encode_range","author","parse_comments_xml","authors","commentList","trim","authorId","guid","sheetRows","textMatch","rt","write_comments_xml","parse_BrtBeginComment","iauthor","rfx","parse_BrtCommentAuthor","parse_BrtCommentText","parse_comments_bin","hopper_cmnt","write_comments_bin","parse_CellParsedFormula","cce","_ssfopts","WS","get_sst_id","get_cell_style","revssf","fontId","borderId","xfId","applyNumberFormat","safe_format","fillid","cellNF","raw_rgb","parse_ws_xml_dim","ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","parse_ws_xml","ridx","mergecells","merges","columns","cellStyles","cols","parse_ws_xml_cols","refguess","mtch","parse_ws_xml_data","parse_ws_xml_hlinks","tmpref","write_ws_xml_merges","location","Rel","rng","addr","seencol","coli","colm","colM","wpx","wch","write_ws_xml_cols","customWidth","write_ws_xml_cell","oldt","oldv","cellDates","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","match_v","match_f","sdata","guess","cells","cref","tagr","tagc","sstr","do_format","cf","marr","mt","marrlen","xlen","cellFormula","sheetStubs","write_ws_xml_data","encode_col","encode_row","WS_XML_ROOT","xmlns:r","write_ws_xml","sidx","rdata","Sheets","parse_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","parse_BrtCellBool","fBool","parse_BrtCellError","parse_BrtCellIsst","isst","parse_BrtCellReal","parse_BrtCellRk","parse_BrtCellSt","parse_BrtFmlaBool","formula","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","parse_BrtHLink","relId","tooltip","display","parse_ws_bin","!id","row","ws_parse","write_ws_bin_cell","write_CELLTABLE","write_ws_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","target","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","wbnsregex","parse_wb_xml","AppVersion","xml_wb","WB_XML_ROOT","safe1904","Workbook","write_wb_xml","sheetId","r:id","parse_BrtBundleSh","hsState","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","dwThemeVersion","strName","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_wb_bin","hopper_wb","write_BUNDLESHS","write_BrtFileVersion","write_BOOKVIEWS","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_sty","parse_theme","parse_sst","parse_cc","write_wb","write_ws","write_sty","write_sst",44,50,51,52,53,54,55,57,58,59,60,62,63,64,65,66,67,68,70,131,132,133,135,137,138,139,140,141,142,143,144,145,146,147,148,151,152,153,154,155,156,157,158,159,160,164,165,166,167,168,169,170,171,172,173,174,175,176,179,180,181,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,357,358,359,360,361,362,363,364,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,564,565,566,569,570,572,573,574,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,671,672,673,674,675,676,677,678,679,680,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1061,1062,1063,1066,1067,1068,1069,1070,1071,1072,1073,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1177,1178,1180,1181,1182,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2060,2067,2068,2069,2070,2071,2072,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,"parse_ods","ODS","fix_opts_func","fix_opts","Number","fix_read_opts","fix_write_opts","safe_parse_wbrels","wbrels","pwbr","safe_parse_ws","relsPath","nodirs","parse_zip","entries","sort","binname","bookSheets","bookProps","props","propdata","pluck","Props","Custprops","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Directory","Deps","Styles","Themes","bookFiles","bookVBA","vbaraw","bin","add_rels","rId","relobj","write_zip","General","readSync","readFileSync","writeSync","writeFileSync","decode_row","rowstr","unfix_row","fix_row","cstr","decode_col","colstr","unfix_col","fix_col","split_cell","splt","fix_cell","unfix_cell","decode_range","cs","ce","safe_format_cell","XF","format_cell","sheet_to_json","hdr","isempty","outi","create","__rowNum__","sheet_to_row_object_array","sheet_to_csv","txt","qreg","FS","fs","RS","make_csv","sheet_to_formulae","cmds","get_formulae","make_json","make_formulae","parseZip","read","readFile","write","writeFile"],"mappings":"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AAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY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"} \ No newline at end of file +{"version":3,"file":"dist/xlsx.full.min.js","sources":["jszip.js","dist/cpexcel.js","xlsx.js"],"names":["e","exports","module","define","amd","f","window","global","self","JSZip","t","n","r","s","o","u","a","require","i","Error","call","length",1,"_dereq_","_keyStr","encode","input","utf8","output","chr1","chr2","chr3","enc1","enc2","enc3","enc4","charCodeAt","isNaN","charAt","decode","replace","indexOf","String","fromCharCode",2,"CompressedObject","this","compressedSize","uncompressedSize","crc32","compressionMethod","compressedContent","prototype","getContent","getCompressedContent",3,"STORE","magic","compress","content","uncompress","compressInputType","uncompressInputType","DEFLATE","./flate",4,"utils","table","crc","isArray","getTypeOf","x","y","b","iTop","./utils",5,"DataReader","data","index","checkOffset","offset","checkIndex","newIndex","setIndex","skip","byteAt","readInt","size","result","readString","transformTo","readData","lastIndexOfSignature","sig","readDate","dostime","Date",6,"base64","binary","dir","createFolders","date","compression","comment",7,"string2binary","str","string2Uint8Array","uint8Array2String","array","string2Blob","buffer","arrayBuffer2Blob","outputType","checkSupport","type","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","findCompression","isRegExp","object",8,"USE_TYPEDARRAY","Uint8Array","Uint16Array","Uint32Array","pako","deflateRaw","inflateRaw",9,"options","files","root","load","clone","newObj","support","defaults","compressions","./base64","./compressions","./defaults","./deprecatedPublicUtils","./load","./object","./support",10,"ZipEntries","zipEntries","file","fileName","decompressed","optimizedBinaryString","fileComment","zipComment","./zipEntries",11,"Buffer","encoding","test","isBuffer","undefined",12,"Uint8ArrayReader","NodeBufferReader","slice","./uint8ArrayReader",13,"signature","nodeBuffer","StringWriter","Uint8ArrayWriter","getRawData","_data","copy","set","getBinaryData","nodebuffer","asBinary","dataToString","asUTF8","out","utf8decode","utf8encode","ZipObject","name","_initialMetadata","asText","asNodeBuffer","asUint8Array","asArrayBuffer","decToHex","dec","bytes","hex","extend","attr","arguments","hasOwnProperty","prepareFileAttrs","toUpperCase","fileAdd","dataType","parent","parentFolder","folderAdd","path","substring","lastSlash","lastIndexOf","generateCompressedObjectFrom","generateZipParts","compressedObject","utfEncodedFileName","utfEncodedComment","useUTF8ForFileName","useUTF8ForComment","dosTime","dosDate","extraFields","unicodePathExtraField","unicodeCommentExtraField","getHours","getMinutes","getSeconds","getFullYear","getMonth","getDate","header","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","stream","filter","search","filename","relativePath","fileClone","push","regexp","folder","arg","newFolder","ret","remove","kids","generate","zipData","localDirLength","centralDirLength","writer","compressionName","zipPart","dirEnd","CENTRAL_DIRECTORY_END","typeName","toLowerCase","append","zip","finalize","string","./compressedObject","./crc32","./nodeBuffer","./signature","./stringWriter","./uint8ArrayWriter","./utf8",14,"ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","DATA_DESCRIPTOR",15,"StringReader","./dataReader",16,"join",17,"arraybuffer","ArrayBuffer","uint8array","blob","Blob","Builder","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","builder","getBlob",18,"sig0","sig1","sig2","sig3","subarray",19,20,"_utf8len","Array","string2buf","buf","c","c2","m_pos","str_len","buf_len","utf8border","max","pos","buf2string","c_len","len","utf16buf","applyFromCharCode","toString","k","chunk","nextBoundary","Math","min",21,"identity","stringToArrayLike","arrayLikeToString","canUseApply","apply","resultStr","floor","arrayLikeToArrayLike","arrayFrom","arrayTo","transform","byteLength","inputType","Object","supported","res","code","method",22,"ZipEntry","jszipProto","loadOptions","checkSignature","expectedSignature","reader","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","versionMadeBy","versionNeeded","zip64ExtensibleData","extraDataSize","extraFieldId","extraFieldLength","extraFieldValue","id","value","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","./nodeBufferReader","./stringReader","./zipEntry",23,"isEncrypted","bitFlag","useUTF8","prepareCompressedContent","from","previousIndex","compressedFileData","prepareContent","uncompressedFileData","localExtraFieldsLength","fileNameLength","checkCRC32","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","extraReader","start","upath","findExtraFieldUnicodePath","ucomment","findExtraFieldUnicodeComment","upathField","ucommentField",24,"assign","deflate","inflate","constants","./lib/deflate","./lib/inflate","./lib/utils/common","./lib/zlib/constants",25,"zlib_deflate","strings","msg","zstream","Z_NO_FLUSH","Z_FINISH","Z_OK","Z_STREAM_END","Z_DEFAULT_COMPRESSION","Z_DEFAULT_STRATEGY","Z_DEFLATED","Deflate","level","chunkSize","windowBits","memLevel","strategy","to","opt","raw","gzip","err","ended","chunks","strm","avail_out","status","deflateInit2","deflateSetHeader","mode","_mode","next_in","avail_in","Buf8","next_out","onEnd","onData","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","deflator","./utils/common","./utils/strings","./zlib/deflate.js","./zlib/messages","./zlib/zstream",26,"zlib_inflate","gzheader","Inflate","inflateInit2","inflateGetHeader","next_out_utf8","tail","utf8str","binstring2buf","arraySet","inflateEnd","inflator","ungzip","./zlib/constants","./zlib/gzheader","./zlib/inflate.js",27,"TYPED_OK","Int32Array","obj","sources","source","shift","TypeError","p","fnTyped","dest","src","src_offs","dest_offs","l","fnUntyped","concat","setTyped","on","Buf16","Buf32",28,"STR_APPLY_OK","STR_APPLY_UIA_OK","__","./common",29,"adler32","adler","s1","s2",30,"Z_PARTIAL_FLUSH","Z_SYNC_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_NEED_DICT","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_BUF_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_BINARY","Z_TEXT","Z_UNKNOWN",31,"makeTable","crcTable","end",32,"trees","MAX_MEM_LEVEL","MAX_WBITS","DEF_MEM_LEVEL","LENGTH_CODES","LITERALS","L_CODES","D_CODES","BL_CODES","HEAP_SIZE","MAX_BITS","MIN_MATCH","MAX_MATCH","MIN_LOOKAHEAD","PRESET_DICT","INIT_STATE","EXTRA_STATE","NAME_STATE","COMMENT_STATE","HCRC_STATE","BUSY_STATE","FINISH_STATE","BS_NEED_MORE","BS_BLOCK_DONE","BS_FINISH_STARTED","BS_FINISH_DONE","OS_CODE","errorCode","rank","zero","flush_pending","state","pending","pending_buf","pending_out","total_out","flush_block_only","last","_tr_flush_block","block_start","strstart","put_byte","putShortMSB","read_buf","wrap","total_in","longest_match","cur_match","chain_length","max_chain_length","scan","match","best_len","prev_length","nice_match","limit","w_size","_win","wmask","w_mask","prev","strend","scan_end1","scan_end","good_match","lookahead","match_start","fill_window","_w_size","m","more","window_size","hash_size","head","insert","ins_h","hash_shift","hash_mask","deflate_stored","flush","max_block_size","pending_buf_size","max_start","deflate_fast","hash_head","bflush","match_length","_tr_tally","max_lazy_match","last_lit","deflate_slow","max_insert","prev_match","match_available","deflate_rle","deflate_huff","Config","good_length","max_lazy","nice_length","max_chain","func","configuration_table","lm_init","DeflateState","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","depth","l_buf","lit_bufsize","d_buf","opt_len","static_len","matches","bi_buf","bi_valid","deflateResetKeep","data_type","_tr_init","deflateReset","deflateInit","old_flush","beg","val","text","hcrc","extra","time","os","level_flags","bstate","_tr_align","_tr_stored_block","deflateInfo","../utils/common","./adler32","./messages","./trees",33,"GZheader","xflags","extra_len","done",34,"BAD","TYPE","inflate_fast","_in","_out","dmax","wsize","whave","wnext","hold","bits","lcode","dcode","lmask","dmask","here","op","dist","from_source","lencode","distcode","lenbits","distbits","top","dolen","dodist","sane",35,"inflate_table","CODES","LENS","DISTS","Z_MEM_ERROR","HEAD","FLAGS","TIME","OS","EXLEN","EXTRA","NAME","COMMENT","HCRC","DICTID","DICT","TYPEDO","STORED","COPY_","COPY","TABLE","LENLENS","CODELENS","LEN_","LEN","LENEXT","DIST","DISTEXT","MATCH","LIT","CHECK","LENGTH","DONE","MEM","SYNC","ENOUGH_LENS","ENOUGH_DISTS","DEF_WBITS","ZSWAP32","q","InflateState","havedict","flags","check","total","wbits","ncode","nlen","ndist","have","next","lens","work","lendyn","distdyn","back","was","inflateResetKeep","inflateReset","inflateReset2","inflateInit","virgin","lenfix","distfix","fixedtables","sym","updatewindow","put","left","here_bits","here_op","here_val","last_bits","last_op","last_val","hbuf","opts","order","inf_leave","inflateInfo","./inffast","./inftrees",36,"MAXBITS","lbase","lext","dbase","dext","lens_index","codes","table_index","curr","drop","used","huff","incr","fill","low","mask","base","base_index","count","offs","extra_index",37,"0","-1","-2","-3","-4","-5","-6",38,"STORED_BLOCK","STATIC_TREES","DYN_TREES","Buf_size","MAX_BL_BITS","END_BLOCK","REP_3_6","REPZ_3_10","REPZ_11_138","extra_lbits","extra_dbits","extra_blbits","bl_order","DIST_CODE_LEN","static_ltree","static_dtree","_dist_code","_length_code","base_length","base_dist","StaticTreeDesc","static_tree","extra_bits","extra_base","elems","max_length","has_stree","static_l_desc","static_d_desc","static_bl_desc","TreeDesc","dyn_tree","stat_desc","max_code","d_code","put_short","w","send_bits","send_code","tree","bi_reverse","bi_flush","gen_bitlen","desc","stree","h","xbits","overflow","gen_codes","next_code","tr_static_init","init_block","bi_windup","copy_block","smaller","_n2","_m2","pqdownheap","v","j","compress_block","ltree","dtree","lc","lx","build_tree","node","scan_tree","prevlen","curlen","nextlen","max_count","min_count","send_tree","build_bl_tree","max_blindex","send_all_trees","lcodes","dcodes","blcodes","detect_data_type","black_mask","static_init_done","stored_len","opt_lenb","static_lenb",39,"ZStream","cptable","version","d","D","enc","split","factory","cpt","1200","1201","12000","12001","16969","20127","65000","65001","sbcs_cache","dbcs_cache","magic_cache","magic_decode","magic_encode","cpecache","cpdcache","sfcc","cca","has_buf","mdl","mdb","make_EE","E","EE","keys","ee","sbcs_encode","make_sbcs_encode","cp","sbcs_e","ofmt","sbcs_decode","make_sbcs_decode","DD","sbcs_d","dbcs_encode","make_dbcs_encode","dbcs_e","jj","dbcs_decode","make_dbcs_decode","dbcs_d","utf8_d","ww","utf8_e","direct","encache","cp_decache","decache","forEach","last_enc","last_cp","cache","sbcs","dbcs","BM","SetD","tt","C","M","map","F","dash","o64","c1","c3","e1","e2","e3","e4","hascp","XLSX","make_xlsx","current_codepage","current_cptable","reset_cp","set_cp","char_codes","debom_xml","_getchar","_gc1","substr","_gc2","Base64","make_b64","b64_decode","new_raw_buf","s2a","bconcat","bufs","chr0","SSF","make_ssf","_strrev","pad0","pad_","rpad_","pad0r1","round","pad0r2","p2_32","pow","pad0r","isgeneral","opts_fmt","fixopts","table_fmt",40,45,46,47,48,49,56,65535,"days","months","frac","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","abs","LOG10E","_general_num","general_fmt","_general","fix_hijri","parse_date_code","b2","dow","dout","T","H","S","date1904","setDate","getDay","write_date","fmt","ss0","ss","outl","commaify","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","period","fakee","$$","$1","$2","$3","frac1","write_num_f1","aval","sign","den","parseInt","rr","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","cc","rnd","dd","flr","write_num_flt","ffmt","oo","ri","ff","oa","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","eval_fmt","flen","lst","dt","hr","bt","ssm","nstr","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","lat","m1","m2","format","_table","load_entry","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","DO_NOT_EXPORT_CFB","CFB","_CFB","parse","mver","ssz","nmfs","ndfs","dir_start","minifat_start","difat_start","fat_addrs","prep_blob","mv","check_get_mver","check_shifts","nds","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","ENDOFCHAIN","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","root_name","find_path","make_find_path","find","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","L","R","pl","dad","UCFullPaths","UCPaths","UCPath","cnt","sector","__readInt32LE","get_sector_list","chkd","sl","buf_chain","modulus","addr","nodes","__toBuffer","minifat_store","namelen","ctime","mtime","__utf16le","color","clsid","ct","read_date","mt","storage","MSSZ","__readUInt32LE","fs","readFileSync","readSync","consts","MAXREGSECT","DIFSECT","FATSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","read","ReadShift","CheckField","isval","evert_key","key","K","evert","evert_num","evert_arr","datenum","epoch","cc2str","arr","getdata","safegetzipfile","getzipfile","getzipdata","safe","_fs","jszip","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","strip_ns","encodings",""","'",">","<","&","rencoding","rencstr","unescapexml","encregex","coderegex","decregex","charegex","escapexml","xlml_fixstr","entregex","entrepl","parsexmlbool","utf8read","utf8reada","orig","utf8readb","corpus","utf8readc","matchtag","mtcache","g","RegExp","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","baseType","wtregex","writetag","wxt_helper","writextag","write_w3cdtf","toISOString","write_vt","XML_HEADER","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","readIEEE754","isLE","nl","ml","el","eMax","eBias","NaN","Infinity","___toBuffer","toBuffer_","___utf16le","utf16le_","__readUInt16LE","__hexlify","___hexlify","hexlify_","__utf8","___utf8","__readUInt8","__lpstr","___lpstr","lpstr_","__lpwstr","___lpwstr","lpwstr_","__double","___double","is_buf","is_buf_a","utf16le_b","lpstr_b","readUInt32LE","lpwstr_b","utf8_b","double_","readDoubleLE","is_buf_b","__readInt16LE","___unhexlify","__unhexlify","oI","oR","loc","WriteShift","writeUInt16LE","writeUInt32LE","writeDoubleLE","writeInt32LE","hexstr","fld","write_shift","parsenoop","writenoop","new_buf","sz","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","ba_next","ba_end","ba_push","_bufs","write_record","ba","payload","evert_RE","shift_cell_xls","cell","tgt","cRel","rRel","shift_range_xls","range","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","createHash","update","digest","parse_StrRun","ich","ifnt","parse_RichStr","parse_XLWideString","rgsStrRun","dwSizeStrRun","write_RichStr","write_XLWideString","parse_XLSBCell","col","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","parse_XLNullableWideString","cchCharacters","write_XLNullableWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr",42,43,255,"RBErr","parse_BrtColor","fValidRGB","xColorType","nTintAndShade","bRed","bGreen","bBlue","bAlpha","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","VT_EMPTY","VT_NULL","VT_I2","VT_I4","VT_R4","VT_R8","VT_CY","VT_DATE","VT_BSTR","VT_ERROR","VT_BOOL","VT_VARIANT","VT_DECIMAL","VT_I1","VT_UI1","VT_UI2","VT_UI4","VT_I8","VT_UI8","VT_INT","VT_UINT","VT_LPSTR","VT_LPWSTR","VT_FILETIME","VT_BLOB","VT_STREAM","VT_STORAGE","VT_STREAMED_Object","VT_STORED_Object","VT_BLOB_Object","VT_CF","VT_CLSID","VT_VERSIONED_STREAM","VT_VECTOR","VT_ARRAY","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","SummaryPIDSI","SpecialProperties",2147483648,2147483651,1919054434,"CountryEnum",41,44,52,55,61,64,66,81,82,84,86,90,105,213,216,218,351,354,358,420,886,961,962,963,964,965,966,971,972,974,981,"XLSFillPattern","rgbify","XLSIcv","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.chartsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml","application/vnd.ms-excel.dialogsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml","application/vnd.ms-excel.macrosheet","application/vnd.ms-excel.macrosheet+xml","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.ms-excel.comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","sheet","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","sheets","styles","type2ct","CT","parse_ct","ctext","calcchains","themes","coreprops","extprops","custprops","comments","vba","TODO","rels","xmlns","Extension","ContentType","PartName","WTF","console","error","calcchain","sst","style","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","parse_rels","currentFilePath","hash","resolveRelativePathIntoAbsolute","toksFrom","pop","toksTo","reversed","tokTo","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","widx","Worksheets","parts","SheetNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","xmlnsvt","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","parse_ClipboardData","Size","parse_VtVector","_opts","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","parslurp","target","parslurp2","parseuint16","parseuint16a","parse_Boolean","parse_Bes","parse_ShortXLUnicodeString","cch","width","biff","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","parse_URLMoniker","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","parse_frtHeader","rt","parse_OptXLUnicodeString","HIDEOBJENUM","parse_HideObjEnum","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","parse_FtNts","fSharedNote","parse_FtCf","cf","FtTab","parse_FtArray","fts","ft","parse_FontIndex","parse_BOF","BIFFVer","parse_InterfaceHdr","parse_WriteAccess","UserName","parse_BoundSheet8","hidden","hs","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","Col","rht","parse_ForceFullCalculation","fullcalc","parse_CompressPictures","parse_RecalcId","parse_DefaultRowHeight","miyRw","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","parse_Font","parse_LabelSst","isst","parse_Label","parse_Format","ifmt","fmtstr","parse_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_CellStyleXF","patternType","icvFore","icvBack","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","parse_BoolErr","parse_Number","xnum","parse_XLHeaderFooter","parse_SupBook","ctab","virtPath","rgst","sbcch","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","parse_Lbl","chKey","cce","itab","rgce","parse_NameParsedFormula","Name","parse_ExternSheet","snames","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","row","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","cmo","parse_TxO","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","texts","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","parse_Style","parse_StyleExt","parse_ColInfo","parse_Window2","parse_Backup","parse_Blank","parse_BottomMargin","parse_BuiltInFnGroupCount","parse_CalcCount","parse_CalcDelta","parse_CalcIter","parse_CalcMode","parse_CalcPrecision","parse_CalcRefMode","parse_CalcSaveRecalc","parse_CodePage","parse_Compat12","parse_Date1904","parse_DefColWidth","parse_DSF","parse_EntExU2","parse_EOF","parse_Excel9File","parse_FeatHdr","parse_FontX","parse_Footer","parse_GridSet","parse_HCenter","parse_Header","parse_HideObj","parse_InterfaceEnd","parse_LeftMargin","parse_Mms","parse_ObjProtect","parse_Password","parse_PrintGrid","parse_PrintRowCol","parse_PrintSize","parse_Prot4Rev","parse_Prot4RevPass","parse_Protect","parse_RefreshAll","parse_RightMargin","parse_RRTabId","parse_ScenarioProtect","parse_Scl","parse_String","parse_SxBool","parse_TopMargin","parse_UsesELFs","parse_VCenter","parse_WinProtect","parse_WriteProtect","parse_VerticalPageBreaks","parse_HorizontalPageBreaks","parse_Selection","parse_Continue","parse_Pane","parse_Pls","parse_DCon","parse_DConRef","parse_DConName","parse_XCT","parse_CRN","parse_FileSharing","parse_Uncalced","parse_Template","parse_Intl","parse_WsBool","parse_Sort","parse_Sync","parse_LPr","parse_DxGCol","parse_FnGroupName","parse_FilterMode","parse_AutoFilterInfo","parse_AutoFilter","parse_Setup","parse_ScenMan","parse_SCENARIO","parse_SxView","parse_Sxvd","parse_SXVI","parse_SxIvd","parse_SXLI","parse_SXPI","parse_DocRoute","parse_RecipName","parse_MulBlank","parse_SXDI","parse_SXDB","parse_SXFDB","parse_SXDBB","parse_SXNum","parse_SxErr","parse_SXInt","parse_SXString","parse_SXDtr","parse_SxNil","parse_SXTbl","parse_SXTBRGIITM","parse_SxTbpg","parse_ObProj","parse_SXStreamID","parse_DBCell","parse_SXRng","parse_SxIsxoper","parse_BookBool","parse_DbOrParamQry","parse_OleObjectSize","parse_SXVS","parse_BkHim","parse_MsoDrawingGroup","parse_MsoDrawing","parse_MsoDrawingSelection","parse_PhoneticInfo","parse_SxRule","parse_SXEx","parse_SxFilt","parse_SxDXF","parse_SxItm","parse_SxName","parse_SxSelect","parse_SXPair","parse_SxFmla","parse_SxFormat","parse_SXVDEx","parse_SXFormula","parse_SXDBEx","parse_RRDInsDel","parse_RRDHead","parse_RRDChgCell","parse_RRDRenSheet","parse_RRSort","parse_RRDMove","parse_RRFormat","parse_RRAutoFmt","parse_RRInsertSh","parse_RRDMoveBegin","parse_RRDMoveEnd","parse_RRDInsDelBegin","parse_RRDInsDelEnd","parse_RRDConflict","parse_RRDDefName","parse_RRDRstEtxp","parse_LRng","parse_CUsr","parse_CbUsr","parse_UsrInfo","parse_UsrExcl","parse_FileLock","parse_RRDInfo","parse_BCUsrs","parse_UsrChk","parse_UserBView","parse_UserSViewBegin","parse_UserSViewEnd","parse_RRDUserView","parse_Qsi","parse_CondFmt","parse_CF","parse_DVal","parse_DConBin","parse_Lel","parse_XLSCodeName","parse_SXFDBType","parse_ObNoMacros","parse_Dv","parse_Index","parse_Table","parse_BigName","parse_ContinueBigName","parse_WebPub","parse_QsiSXTag","parse_DBQueryExt","parse_ExtString","parse_TxtQry","parse_Qsir","parse_Qsif","parse_RRDTQSIF","parse_OleDbConn","parse_WOpt","parse_SXViewEx","parse_SXTH","parse_SXPIEx","parse_SXVDTEx","parse_SXViewEx9","parse_ContinueFrt","parse_RealTimeData","parse_ChartFrtInfo","parse_FrtWrapper","parse_StartBlock","parse_EndBlock","parse_StartObject","parse_EndObject","parse_CatLab","parse_YMult","parse_SXViewLink","parse_PivotChartBits","parse_FrtFontList","parse_SheetExt","parse_BookExt","parse_SXAddl","parse_CrErr","parse_HFPicture","parse_Feat","parse_DataLabExt","parse_DataLabExtContents","parse_CellWatch","parse_FeatHdr11","parse_Feature11","parse_DropDownObjIds","parse_ContinueFrt11","parse_DConn","parse_List12","parse_Feature12","parse_CondFmt12","parse_CF12","parse_CFEx","parse_AutoFilter12","parse_ContinueFrt12","parse_MDTInfo","parse_MDXStr","parse_MDXTuple","parse_MDXSet","parse_MDXProp","parse_MDXKPI","parse_MDB","parse_PLV","parse_DXF","parse_TableStyles","parse_TableStyle","parse_TableStyleElement","parse_NamePublish","parse_NameCmt","parse_SortData","parse_GUIDTypeLib","parse_FnGrp12","parse_NameFnGrp12","parse_HeaderFooter","parse_CrtLayout12","parse_CrtMlFrt","parse_CrtMlFrtContinue","parse_ShapePropsStream","parse_TextPropsStream","parse_RichTextStream","parse_CrtLayout12A","parse_Units","parse_Chart","parse_Series","parse_DataFormat","parse_LineFormat","parse_MarkerFormat","parse_AreaFormat","parse_PieFormat","parse_AttachedLabel","parse_SeriesText","parse_ChartFormat","parse_Legend","parse_SeriesList","parse_Bar","parse_Line","parse_Pie","parse_Area","parse_Scatter","parse_CrtLine","parse_Axis","parse_Tick","parse_ValueRange","parse_CatSerRange","parse_AxisLine","parse_CrtLink","parse_DefaultText","parse_Text","parse_ObjectLink","parse_Frame","parse_Begin","parse_End","parse_PlotArea","parse_Chart3d","parse_PicF","parse_DropBar","parse_Radar","parse_Surf","parse_RadarArea","parse_AxisParent","parse_LegendException","parse_ShtProps","parse_SerToCrt","parse_AxesUsed","parse_SBaseRef","parse_SerParent","parse_SerAuxTrend","parse_IFmtRecord","parse_Pos","parse_AlRuns","parse_BRAI","parse_SerAuxErrBar","parse_SerFmt","parse_Chart3DBarShape","parse_Fbi","parse_BopPop","parse_AxcExt","parse_Dat","parse_PlotGrowth","parse_SIIndex","parse_GelFrame","parse_BopPopCustom","parse_Fbi2","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","CS2CP",77,128,129,130,134,136,161,162,163,177,178,186,204,222,238,69,"parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","font","strike","rgb","family","parse_r","terms","rs","sitregex","sirregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_Version","Major","Minor","parse_EncryptionHeader","tmp","AlgID","parse_EncryptionVerifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","Salt","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","Verifier","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","verifier","valid","insitu_decrypt","parse_FilePassHeader","Info","parse_FilePass","hex2RGB","rgb2Hex","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","width2px","px2char","px","char2width","chr","cycle_width","collw","find_mdw","coll","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_fills","Fills","bgColor","indexed","theme","fgColor","parse_numFmts","NumberFmt","formatCode","numFmtId","write_numFmts","NF","parse_cellXfs","CellXf","fillId","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","STYLES_XML_ROOT","STY","write_sty_xml","wb","parse_BrtFmt","stFmtCode","parse_BrtFont","dyHeight","grbit","bls","sss","uls","bFamily","bCharSet","brtColor","bFontScheme","Bold","Italic","Strikeout","Outline","Shadow","Condense","Extend","Sub","Sup","parse_BrtXF","ixfeParent","parse_sty_bin","hopper_sty","write_sty_bin","THEME","parse_clrScheme","themeElements","clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xf","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","encode_cell","parse_cc_bin","hopper_cc","write_cc_bin","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","safe_decode_range","thisCell","decode_cell","encoded","encode_range","author","parse_comments_xml","authors","commentList","trim","authorId","sheetRows","textMatch","write_comments_xml","parse_BrtBeginComment","iauthor","rfx","parse_BrtCommentAuthor","parse_BrtCommentText","parse_comments_bin","hopper_cmnt","write_comments_bin","rc_to_a1","rcregex","rcbase","rcfunc","$4","$5","encode_col","encode_row","fstr","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLocRel","cl","parse_PtgArea","area","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","cols","rows","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgRefErr3d","parse_PtgTbl","PtgTypes",57,58,59,60,"PtgDupes",96,65,97,98,67,99,68,100,101,70,102,71,103,72,104,73,74,106,75,107,76,108,109,89,121,122,91,123,92,124,93,125,"Ptg18","Ptg19","parse_Formula","parse_FormulaValue","chn","cbf","parse_XLSCellParsedFormula","formula","shared","parse_RgbExtra","parse_Rgce","rgcb","ptgs","mapper","stringify_formula","supbooks","_range","stack","nameidx","fflen","argc","args","lbl","XLSXFutureFunctions","bookidx","externbook","sharedf","parsedf","fnd","arrayf","parse_XLSBCellParsedFormula","PtgDataType",50,51,53,54,62,63,78,79,80,83,85,87,88,94,95,110,111,112,113,114,115,116,117,118,119,120,126,127,131,132,133,135,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,155,159,164,166,167,168,169,170,171,172,173,174,175,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,206,207,208,209,210,211,212,214,215,217,219,220,223,224,225,226,227,228,229,240,243,249,250,251,252,253,254,256,259,260,265,266,267,268,269,272,273,274,276,277,278,279,280,281,282,283,284,285,288,289,290,291,292,293,295,296,297,298,302,305,306,307,308,309,310,311,312,313,314,315,316,318,319,320,321,322,323,324,325,328,330,336,338,339,342,343,344,350,352,355,356,370,373,374,375,376,377,378,379,380,381,382,383,384,385,386,388,390,391,392,393,394,395,396,397,398,399,400,412,413,414,415,416,417,421,422,423,424,425,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,480,481,482,485,489,491,493,494,495,509,510,511,517,518,519,520,521,522,523,545,546,547,548,549,620,621,647,653,667,673,753,755,808,141,154,156,157,158,160,165,176,179,180,181,182,183,184,205,221,230,231,232,233,234,235,236,237,239,241,242,244,245,246,247,248,257,258,261,262,263,264,270,271,275,286,287,294,299,300,301,303,304,317,326,327,329,331,332,334,335,337,340,341,345,346,347,348,349,353,357,359,360,361,362,363,364,365,366,367,368,369,371,372,"_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","_ssfopts","WS","get_sst_id","get_cell_style","revssf","fontId","borderId","xfId","applyNumberFormat","safe_format","fillid","cellNF","raw_rgb","parse_ws_xml_dim","ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","parse_ws_xml","ridx","mergecells","columns","cellStyles","parse_ws_xml_cols","refguess","mtch","parse_ws_xml_data","parse_ws_xml_hlinks","tmpref","write_ws_xml_merges","Rel","rng","seencol","coli","colm","colM","wpx","wch","write_ws_xml_cols","customWidth","write_ws_xml_cell","oldt","oldv","cellDates","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","match_v","match_f","sdata","guess","cells","cref","tagr","tagc","sstr","do_format","marr","marrlen","xlen","cellFormula","sheetStubs","write_ws_xml_data","WS_XML_ROOT","xmlns:r","write_ws_xml","sidx","rdata","Sheets","parse_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","parse_BrtCellBool","fBool","parse_BrtCellError","parse_BrtCellIsst","parse_BrtCellReal","parse_BrtCellRk","parse_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","parse_BrtHLink","relId","tooltip","display","parse_ws_bin","!id","ws_parse","write_ws_bin_cell","write_CELLTABLE","write_ws_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","wbnsregex","parse_wb_xml","AppVersion","xml_wb","WB_XML_ROOT","safe1904","Workbook","write_wb_xml","sheetId","r:id","parse_BrtBundleSh","hsState","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","strName","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_wb_bin","hopper_wb","write_BUNDLESHS","write_BrtFileVersion","write_BOOKVIEWS","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_sty","parse_theme","parse_sst","parse_cc","write_wb","write_ws","write_sty","write_sst","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","Custprops","Rn","safe_format_xlml","nf","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","xml","csty","sid","StyleID","interiors","Parent","UTC","Formula","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","lastIndex","exec","HRef","HRefScreenTip","MergeAcross","MergeDown","Format","Span","Author","seen","bookSheets","bookProps","parse_xlml","fix_read_opts","write_xlml","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","XF","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","shared_formulae","array_formulae","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","icv","process_cell_style","pcs","line","xfd","addcell","rrtabid","lastuser","codepage","winlocked","wtf","objects","sbc","sbci","sbcli","last_Rn","file_depth","RecordType","Date1904","WriteProtect","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","TxO","noteobj","sheetnamesraw","sort","Number","Encryption","Metadata","Country","parse_xlscfb","cfb","CompObj","Summary","CompObjP","SummaryP","WorkbookP","parse_props","props","DocSummary","bookFiles","DSI","SI",333,387,389,401,403,404,405,406,407,408,409,410,411,418,419,426,427,428,429,457,479,483,484,486,487,488,490,492,496,497,498,499,500,501,502,503,504,505,506,507,508,512,513,514,515,516,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,550,551,552,553,554,555,556,557,558,559,560,561,562,564,565,566,569,570,572,573,574,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,648,649,650,651,652,654,655,656,657,658,659,660,661,662,663,664,665,666,668,669,671,672,674,675,676,677,678,679,680,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1061,1062,1063,1066,1067,1068,1069,1070,1071,1072,1073,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1177,1178,1180,1181,1182,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2060,2067,2068,2069,2070,2071,2072,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,402,1212,2059,2061,2062,2063,2064,2066,2137,2138,2146,2147,2148,2149,2150,2151,2152,2154,2155,2156,2161,2162,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2211,2212,2213,2214,2215,4097,4098,4099,4102,4103,4105,4106,4107,4108,4109,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4132,4133,4134,4135,4146,4147,4148,4149,4154,4156,4157,4158,4159,4160,4161,4163,4164,4165,4166,4168,4170,4171,4174,4175,4176,4177,4187,4188,4189,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,2157,2163,2177,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,"parse_ods","ODS","fix_opts_func","fix_opts","fix_write_opts","safe_parse_wbrels","wbrels","pwbr","safe_parse_ws","relsPath","nodirs","parse_zip","entries","binname","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","Themes","bookVBA","vbaraw","bin","add_rels","rId","relobj","write_zip","General","firstbyte","read_zip","isfile","write_zip_type","writeFileSync","writeSync","decode_row","rowstr","unfix_row","fix_row","cstr","decode_col","colstr","unfix_col","fix_col","split_cell","splt","fix_cell","unfix_cell","decode_range","cs","ce","safe_format_cell","format_cell","sheet_to_json","isempty","outi","defineProperty","enumerable","__rowNum__","sheet_to_row_object_array","sheet_to_csv","txt","qreg","FS","RS","make_csv","sheet_to_formulae","cmds","get_formulae","make_json","make_formulae","readFile","write","writeFile","XLS"],"mappings":"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AAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,UAAY,WAAY,WAAY,WACpC,WAAY,SAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,UAAY,WAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,SAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,UAAY,WACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,SACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY,WAAY,UACpC,WAAY,WAAY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"} \ No newline at end of file diff --git a/dist/xlsx.js b/dist/xlsx.js index 81a206c..c29f5ce 100644 --- a/dist/xlsx.js +++ b/dist/xlsx.js @@ -1,27 +1,90 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ /* vim: set ts=2: */ /*jshint -W041 */ +/*jshint funcscope:true, eqnull:true */ var XLSX = {}; -(function(XLSX){ -XLSX.version = '0.7.12'; -var current_codepage = 1252, current_cptable; +(function make_xlsx(XLSX){ +XLSX.version = '0.8.0'; +var current_codepage = 1200, current_cptable; if(typeof module !== "undefined" && typeof require !== 'undefined') { if(typeof cptable === 'undefined') cptable = require('./dist/cpexcel'); current_cptable = cptable[current_codepage]; } -function reset_cp() { set_cp(1252); } +function reset_cp() { set_cp(1200); } var set_cp = function(cp) { current_codepage = cp; }; function char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; } var debom_xml = function(data) { return data; }; +var _getchar = function _gc1(x) { return String.fromCharCode(x); }; if(typeof cptable !== 'undefined') { set_cp = function(cp) { current_codepage = cp; current_cptable = cptable[cp]; }; debom_xml = function(data) { if(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.substr(2))); } return data; }; + _getchar = function _gc2(x) { + if(current_codepage === 1200) return String.fromCharCode(x); + return cptable.utils.decode(current_codepage, [x&255,x>>8])[0]; + }; } +var Base64 = (function make_b64(){ + var map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return { + encode: function(input, utf8) { + var o = ""; + var c1, c2, c3, e1, e2, e3, e4; + for(var i = 0; i < input.length; ) { + c1 = input.charCodeAt(i++); + c2 = input.charCodeAt(i++); + c3 = input.charCodeAt(i++); + e1 = c1 >> 2; + e2 = (c1 & 3) << 4 | c2 >> 4; + e3 = (c2 & 15) << 2 | c3 >> 6; + e4 = c3 & 63; + if (isNaN(c2)) { e3 = e4 = 64; } + else if (isNaN(c3)) { e4 = 64; } + o += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4); + } + return o; + }, + decode: function b64_decode(input, utf8) { + var o = ""; + var c1, c2, c3; + var e1, e2, e3, e4; + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + for(var i = 0; i < input.length;) { + e1 = map.indexOf(input.charAt(i++)); + e2 = map.indexOf(input.charAt(i++)); + e3 = map.indexOf(input.charAt(i++)); + e4 = map.indexOf(input.charAt(i++)); + c1 = e1 << 2 | e2 >> 4; + c2 = (e2 & 15) << 4 | e3 >> 2; + c3 = (e3 & 3) << 6 | e4; + o += String.fromCharCode(c1); + if (e3 != 64) { o += String.fromCharCode(c2); } + if (e4 != 64) { o += String.fromCharCode(c3); } + } + return o; + } + }; +})(); +var has_buf = (typeof Buffer !== 'undefined'); + +function new_raw_buf(len) { + /* jshint -W056 */ + return new (has_buf ? Buffer : Array)(len); + /* jshint +W056 */ +} + +function s2a(s) { + if(has_buf) return new Buffer(s, "binary"); + return s.split("").map(function(x){ return x.charCodeAt(0) & 0xff; }); +} + +var bconcat = function(bufs) { return [].concat.apply([], bufs); }; + +var chr0 = /\u0000/g, chr1 = /[\u0001-\u0006]/; /* ssf.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ /*jshint -W041 */ var SSF = {}; @@ -787,6 +850,409 @@ SSF.get_table = function get_table() { return table_fmt; }; SSF.load_table = function load_table(tbl) { for(var i=0; i!=0x0188; ++i) if(tbl[i] !== undefined) SSF.load(tbl[i], i); }; }; make_ssf(SSF); +/* map from xlml named formats to SSF TODO: localize */ +var XLMLFormatMap = { + "General Number": "General", + "General Date": SSF._table[22], + "Long Date": "dddd, mmmm dd, yyyy", + "Medium Date": SSF._table[15], + "Short Date": SSF._table[14], + "Long Time": SSF._table[19], + "Medium Time": SSF._table[18], + "Short Time": SSF._table[20], + "Currency": '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)', + "Fixed": SSF._table[2], + "Standard": SSF._table[4], + "Percent": SSF._table[10], + "Scientific": SSF._table[11], + "Yes/No": '"Yes";"Yes";"No";@', + "True/False": '"True";"True";"False";@', + "On/Off": '"Yes";"Yes";"No";@' +}; + +var DO_NOT_EXPORT_CFB = true; +/* cfb.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* vim: set ts=2: */ +/*jshint eqnull:true */ + +/* [MS-CFB] v20130118 */ +var CFB = (function _CFB(){ +var exports = {}; +exports.version = '0.10.2'; +function parse(file) { +var mver = 3; // major version +var ssz = 512; // sector size +var nmfs = 0; // number of mini FAT sectors +var ndfs = 0; // number of DIFAT sectors +var dir_start = 0; // first directory sector location +var minifat_start = 0; // first mini FAT sector location +var difat_start = 0; // first mini FAT sector location + +var fat_addrs = []; // locations of FAT sectors + +/* [MS-CFB] 2.2 Compound File Header */ +var blob = file.slice(0,512); +prep_blob(blob, 0); + +/* major version */ +var mv = check_get_mver(blob); +mver = mv[0]; +switch(mver) { + case 3: ssz = 512; break; case 4: ssz = 4096; break; + default: throw "Major Version: Expected 3 or 4 saw " + mver; +} + +/* reprocess header */ +if(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); } +/* Save header for final object */ +var header = file.slice(0,ssz); + +check_shifts(blob, mver); + +// Number of Directory Sectors +var nds = blob.read_shift(4, 'i'); +if(mver === 3 && nds !== 0) throw '# Directory Sectors: Expected 0 saw ' + nds; + +// Number of FAT Sectors +//var nfs = blob.read_shift(4, 'i'); +blob.l += 4; + +// First Directory Sector Location +dir_start = blob.read_shift(4, 'i'); + +// Transaction Signature +blob.l += 4; + +// Mini Stream Cutoff Size +blob.chk('00100000', 'Mini Stream Cutoff Size: '); + +// First Mini FAT Sector Location +minifat_start = blob.read_shift(4, 'i'); + +// Number of Mini FAT Sectors +nmfs = blob.read_shift(4, 'i'); + +// First DIFAT sector location +difat_start = blob.read_shift(4, 'i'); + +// Number of DIFAT Sectors +ndfs = blob.read_shift(4, 'i'); + +// Grab FAT Sector Locations +for(var q, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */ + q = blob.read_shift(4, 'i'); + if(q<0) break; + fat_addrs[j] = q; +} + +/** Break the file up into sectors */ +var sectors = sectorify(file, ssz); + +sleuth_fat(difat_start, ndfs, sectors, ssz, fat_addrs); + +/** Chains */ +var sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz); + +sector_list[dir_start].name = "!Directory"; +if(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = "!MiniFAT"; +sector_list[fat_addrs[0]].name = "!FAT"; +sector_list.fat_addrs = fat_addrs; +sector_list.ssz = ssz; + +/* [MS-CFB] 2.6.1 Compound File Directory Entry */ +var files = {}, Paths = [], FileIndex = [], FullPaths = [], FullPathDir = {}; +read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex); + +build_full_paths(FileIndex, FullPathDir, FullPaths, Paths); + +var root_name = Paths.shift(); +Paths.root = root_name; + +/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */ +var find_path = make_find_path(FullPaths, Paths, FileIndex, files, root_name); + +return { + raw: {header: header, sectors: sectors}, + FileIndex: FileIndex, + FullPaths: FullPaths, + FullPathDir: FullPathDir, + find: find_path +}; +} // parse + +/* [MS-CFB] 2.2 Compound File Header -- read up to major version */ +function check_get_mver(blob) { + // header signature 8 + blob.chk(HEADER_SIGNATURE, 'Header Signature: '); + + // clsid 16 + blob.chk(HEADER_CLSID, 'CLSID: '); + + // minor version 2 + var mver = blob.read_shift(2, 'u'); + + return [blob.read_shift(2,'u'), mver]; +} +function check_shifts(blob, mver) { + var shift = 0x09; + + // Byte Order + blob.chk('feff', 'Byte Order: '); + + // Sector Shift + switch((shift = blob.read_shift(2))) { + case 0x09: if(mver !== 3) throw 'MajorVersion/SectorShift Mismatch'; break; + case 0x0c: if(mver !== 4) throw 'MajorVersion/SectorShift Mismatch'; break; + default: throw 'Sector Shift: Expected 9 or 12 saw ' + shift; + } + + // Mini Sector Shift + blob.chk('0600', 'Mini Sector Shift: '); + + // Reserved + blob.chk('000000000000', 'Reserved: '); +} + +/** Break the file up into sectors */ +function sectorify(file, ssz) { + var nsectors = Math.ceil(file.length/ssz)-1; + var sectors = new Array(nsectors); + for(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz); + sectors[nsectors-1] = file.slice(nsectors*ssz); + return sectors; +} + +/* [MS-CFB] 2.6.4 Red-Black Tree */ +function build_full_paths(FI, FPD, FP, Paths) { + var i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length; + var dad = new Array(pl), q = new Array(pl); + + for(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; } + + for(; j < q.length; ++j) { + i = q[j]; + L = FI[i].L; R = FI[i].R; C = FI[i].C; + if(dad[i] === i) { + if(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L]; + if(R !== -1 && dad[R] !== R) dad[i] = dad[R]; + } + if(C !== -1 /*NOSTREAM*/) dad[C] = i; + if(L !== -1) { dad[L] = dad[i]; q.push(L); } + if(R !== -1) { dad[R] = dad[i]; q.push(R); } + } + for(i=1; i !== pl; ++i) if(dad[i] === i) { + if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R]; + else if(L !== -1 && dad[L] !== L) dad[i] = dad[L]; + } + + for(i=1; i < pl; ++i) { + if(FI[i].type === 0 /* unknown */) continue; + j = dad[i]; + if(j === 0) FP[i] = FP[0] + "/" + FP[i]; + else while(j !== 0) { + FP[i] = FP[j] + "/" + FP[i]; + j = dad[j]; + } + dad[i] = 0; + } + + FP[0] += "/"; + for(i=1; i < pl; ++i) { + if(FI[i].type !== 2 /* stream */) FP[i] += "/"; + FPD[FP[i]] = FI[i]; + } +} + +/* [MS-CFB] 2.6.4 */ +function make_find_path(FullPaths, Paths, FileIndex, files, root_name) { + var UCFullPaths = new Array(FullPaths.length); + var UCPaths = new Array(Paths.length), i; + for(i = 0; i < FullPaths.length; ++i) UCFullPaths[i] = FullPaths[i].toUpperCase().replace(chr0,'').replace(chr1,'!'); + for(i = 0; i < Paths.length; ++i) UCPaths[i] = Paths[i].toUpperCase().replace(chr0,'').replace(chr1,'!'); + return function find_path(path) { + var k; + if(path.charCodeAt(0) === 47 /* "/" */) { k=true; path = root_name + path; } + else k = path.indexOf("/") !== -1; + var UCPath = path.toUpperCase().replace(chr0,'').replace(chr1,'!'); + var w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath); + if(w === -1) return null; + return k === true ? FileIndex[w] : files[Paths[w]]; + }; +} + +/** Chase down the rest of the DIFAT chain to build a comprehensive list + DIFAT chains by storing the next sector number as the last 32 bytes */ +function sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) { + var q; + if(idx === ENDOFCHAIN) { + if(cnt !== 0) throw "DIFAT chain shorter than expected"; + } else if(idx !== -1 /*FREESECT*/) { + var sector = sectors[idx], m = (ssz>>>2)-1; + for(var i = 0; i < m; ++i) { + if((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break; + fat_addrs.push(q); + } + sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs); + } +} + +/** Follow the linked list of sectors for a given starting point */ +function get_sector_list(sectors, start, fat_addrs, ssz, chkd) { + var sl = sectors.length; + var buf, buf_chain; + if(!chkd) chkd = new Array(sl); + var modulus = ssz - 1, j, jj; + buf = []; + buf_chain = []; + for(j=start; j>=0;) { + chkd[j] = true; + buf[buf.length] = j; + buf_chain.push(sectors[j]); + var addr = fat_addrs[Math.floor(j*4/ssz)]; + jj = ((j*4) & modulus); + if(ssz < 4 + jj) throw "FAT boundary crossed: " + j + " 4 "+ssz; + j = __readInt32LE(sectors[addr], jj); + } + return {nodes: buf, data:__toBuffer([buf_chain])}; +} + +/** Chase down the sector linked lists */ +function make_sector_list(sectors, dir_start, fat_addrs, ssz) { + var sl = sectors.length, sector_list = new Array(sl); + var chkd = new Array(sl), buf, buf_chain; + var modulus = ssz - 1, i, j, k, jj; + for(i=0; i < sl; ++i) { + buf = []; + k = (i + dir_start); if(k >= sl) k-=sl; + if(chkd[k] === true) continue; + buf_chain = []; + for(j=k; j>=0;) { + chkd[j] = true; + buf[buf.length] = j; + buf_chain.push(sectors[j]); + var addr = fat_addrs[Math.floor(j*4/ssz)]; + jj = ((j*4) & modulus); + if(ssz < 4 + jj) throw "FAT boundary crossed: " + j + " 4 "+ssz; + j = __readInt32LE(sectors[addr], jj); + } + sector_list[k] = {nodes: buf, data:__toBuffer([buf_chain])}; + } + return sector_list; +} + +/* [MS-CFB] 2.6.1 Compound File Directory Entry */ +function read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex) { + var blob; + var minifat_store = 0, pl = (Paths.length?2:0); + var sector = sector_list[dir_start].data; + var i = 0, namelen = 0, name, o, ctime, mtime; + for(; i < sector.length; i+= 128) { + blob = sector.slice(i, i+128); + prep_blob(blob, 64); + namelen = blob.read_shift(2); + if(namelen === 0) continue; + name = __utf16le(blob,0,namelen-pl); + Paths.push(name); + o = { + name: name, + type: blob.read_shift(1), + color: blob.read_shift(1), + L: blob.read_shift(4, 'i'), + R: blob.read_shift(4, 'i'), + C: blob.read_shift(4, 'i'), + clsid: blob.read_shift(16), + state: blob.read_shift(4, 'i') + }; + ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2); + if(ctime !== 0) { + o.ctime = ctime; o.ct = read_date(blob, blob.l-8); + } + mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2); + if(mtime !== 0) { + o.mtime = mtime; o.mt = read_date(blob, blob.l-8); + } + o.start = blob.read_shift(4, 'i'); + o.size = blob.read_shift(4, 'i'); + if(o.type === 5) { /* root */ + minifat_store = o.start; + if(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = "!StreamData"; + /*minifat_size = o.size;*/ + } else if(o.size >= 4096 /* MSCSZ */) { + o.storage = 'fat'; + if(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz); + sector_list[o.start].name = o.name; + o.content = sector_list[o.start].data.slice(0,o.size); + prep_blob(o.content, 0); + } else { + o.storage = 'minifat'; + if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN) { + o.content = sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size); + prep_blob(o.content, 0); + } + } + files[name] = o; + FileIndex.push(o); + } +} + +function read_date(blob, offset) { + return new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000); +} + +var fs; +function readFileSync(filename, options) { + if(fs === undefined) fs = require('fs'); + return parse(fs.readFileSync(filename), options); +} + +function readSync(blob, options) { + switch(options !== undefined && options.type !== undefined ? options.type : "base64") { + case "file": return readFileSync(blob, options); + case "base64": return parse(s2a(Base64.decode(blob)), options); + case "binary": return parse(s2a(blob), options); + } + return parse(blob); +} + +/** CFB Constants */ +var MSSZ = 64; /* Mini Sector Size = 1<<6 */ +//var MSCSZ = 4096; /* Mini Stream Cutoff Size */ +/* 2.1 Compound File Sector Numbers and Types */ +var ENDOFCHAIN = -2; +/* 2.2 Compound File Header */ +var HEADER_SIGNATURE = 'd0cf11e0a1b11ae1'; +var HEADER_CLSID = '00000000000000000000000000000000'; +var consts = { + /* 2.1 Compund File Sector Numbers and Types */ + MAXREGSECT: -6, + DIFSECT: -4, + FATSECT: -3, + ENDOFCHAIN: ENDOFCHAIN, + FREESECT: -1, + /* 2.2 Compound File Header */ + HEADER_SIGNATURE: HEADER_SIGNATURE, + HEADER_MINOR_VERSION: '3e00', + MAXREGSID: -6, + NOSTREAM: -1, + HEADER_CLSID: HEADER_CLSID, + /* 2.6.1 Compound File Directory Entry */ + EntryTypes: ['unknown','storage','stream','lockbytes','property','root'] +}; + +exports.read = readSync; +exports.parse = parse; +exports.utils = { + ReadShift: ReadShift, + CheckField: CheckField, + prep_blob: prep_blob, + bconcat: bconcat, + consts: consts +}; + +return exports; +})(); + +if(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; } function isval(x) { return x !== undefined && x !== null; } function keys(o) { return Object.keys(o); } @@ -831,7 +1297,6 @@ function cc2str(arr) { return o; } -var has_buf = (typeof Buffer !== 'undefined'); function getdata(data) { if(!data) return null; if(data.name.substr(-4) === ".bin") { @@ -875,7 +1340,7 @@ if (typeof exports !== 'undefined') { _fs = require('f'+'s'); } } -var attregexg=/\b[\w:]+=["'][^"]*['"]/g; +var attregexg=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g; var tagregex=/<[^>]*>/g; var nsregex=/<\w*:/, nsregex2 = /<(\/?)\w+:/; function parsexmltag(tag, skip_root) { @@ -908,17 +1373,27 @@ var rencoding = evert(encodings); var rencstr = "&<>'\"".split(""); // TODO: CP remap (need to read file version to determine OS) -var encregex = /&[a-z]*;/g, coderegex = /_x([\da-fA-F]+)_/g; -function unescapexml(text){ - var s = text + ''; - return s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));}); -} +var unescapexml = (function() { + var encregex = /&[a-z]*;/g, coderegex = /_x([\da-fA-F]+)_/g; + return function unescapexml(text){ + var s = text + ''; + return s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));}); + }; +})(); + var decregex=/[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f]/g; function escapexml(text){ var s = text + ''; return s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return "_x" + ("000"+s.charCodeAt(0).toString(16)).substr(-4) + "_";}); } +/* TODO: handle codepages */ +var xlml_fixstr = (function() { + var entregex = /&#(\d+);/g; + function entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); } + return function xlml_fixstr(str) { return str.replace(entregex,entrepl); }; +})(); + function parsexmlbool(value, tag) { switch(value) { case '1': case 'true': case 'TRUE': return true; @@ -1035,6 +1510,7 @@ XMLNS.main = [ 'http://schemas.microsoft.com/office/excel/2006/main', 'http://schemas.microsoft.com/office/excel/2006/2' ]; + function readIEEE754(buf, idx, isLE, nl, ml) { if(isLE === undefined) isLE = true; if(!nl) nl = 8; @@ -1055,16 +1531,39 @@ function readIEEE754(buf, idx, isLE, nl, ml) { var __toBuffer, ___toBuffer; __toBuffer = ___toBuffer = function toBuffer_(bufs) { var x = []; for(var i = 0; i < bufs[0].length; ++i) { x.push.apply(x, bufs[0][i]); } return x; }; +var __utf16le, ___utf16le; +__utf16le = ___utf16le = function utf16le_(b,s,e) { var ss=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : "";}; +var __lpwstr, ___lpwstr; +__lpwstr = ___lpwstr = function lpwstr_(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : "";}; var __double, ___double; __double = ___double = function(b, idx) { return readIEEE754(b, idx);}; var is_buf = function is_buf_a(a) { return Array.isArray(a); }; if(has_buf) { + __utf16le = function utf16le_b(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e); }; + __hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); }; + __lpstr = function lpstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : "";}; + __lpwstr = function lpwstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);}; + __utf8 = function utf8_b(s,e) { return this.toString('utf8',s,e); }; __toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);}; + bconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); }; __double = function double_(b,i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); }; is_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); }; } +/* from js-xls */ +if(typeof cptable !== 'undefined') { + __utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)); }; + __utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); }; + __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : "";}; + __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : "";}; +} var __readUInt8 = function(b, idx) { return b[idx]; }; var __readUInt16LE = function(b, idx) { return b[idx+1]*(1<<8)+b[idx]; }; @@ -1072,20 +1571,70 @@ var __readInt16LE = function(b, idx) { var u = b[idx+1]*(1<<8)+b[idx]; return (u var __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; }; var __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; }; +var ___unhexlify = function(s) { return s.match(/../g).map(function(x) { return parseInt(x,16);}); }; +var __unhexlify = typeof Buffer !== "undefined" ? function(s) { return Buffer.isBuffer(s) ? new Buffer(s, 'hex') : ___unhexlify(s); } : ___unhexlify; function ReadShift(size, t) { - var o="", oo=[], w, vv, i, loc; - if(t === 'dbcs') { - loc = this.l; - if(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString("utf16le"); - else for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; } - size *= 2; - } else switch(size) { - case 1: o = __readUInt8(this, this.l); break; - case 2: o = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); break; - case 4: o = __readUInt32LE(this, this.l); break; - case 8: if(t === 'f') { o = __double(this, this.l); break; } - } + var o="", oI, oR, oo=[], w, vv, i, loc; + switch(t) { + case 'dbcs': + loc = this.l; + if(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString("utf16le"); + else for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; } + size *= 2; + break; + + case 'utf8': o = __utf8(this, this.l, this.l + size); break; + case 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break; + + /* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */ + case 'lpstr': o = __lpstr(this, this.l); size = 5 + o.length; break; + /* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */ + case 'lpwstr': o = __lpwstr(this, this.l); size = 5 + o.length; if(o[o.length-1] == '\u0000') size += 2; break; + + case 'cstr': size = 0; o = ""; + while((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w)); + o = oo.join(""); break; + case 'wstr': size = 0; o = ""; + while((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;} + size+=2; o = oo.join(""); break; + + /* sbcs and dbcs support continue records in the SST way TODO codepages */ + case 'dbcs-cont': o = ""; loc = this.l; + for(i = 0; i != size; ++i) { + if(this.lens && this.lens.indexOf(loc) !== -1) { + w = __readUInt8(this, loc); + this.l = loc + 1; + vv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont'); + return oo.join("") + vv; + } + oo.push(_getchar(__readUInt16LE(this, loc))); + loc+=2; + } o = oo.join(""); size *= 2; break; + + case 'sbcs-cont': o = ""; loc = this.l; + for(i = 0; i != size; ++i) { + if(this.lens && this.lens.indexOf(loc) !== -1) { + w = __readUInt8(this, loc); + this.l = loc + 1; + vv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont'); + return oo.join("") + vv; + } + oo.push(_getchar(__readUInt8(this, loc))); + loc+=1; + } o = oo.join(""); break; + + default: + switch(size) { + case 1: oI = __readUInt8(this, this.l); this.l++; return oI; + case 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI; + case 4: + if(t === 'i' || (this[this.l+3] & 0x80)===0) { oI = __readInt32LE(this, this.l); this.l += 4; return oI; } + else { oR = __readUInt32LE(this, this.l); this.l += 4; return oR; } break; + case 8: if(t === 'f') { oR = __double(this, this.l); this.l += 8; return oR; } + /* falls through */ + case 16: o = __hexlify(this, this.l, size); break; + }} this.l+=size; return o; } @@ -1106,9 +1655,16 @@ function WriteShift(t, val, f) { this.l += size; return this; } +function CheckField(hexstr, fld) { + var m = __hexlify(this,this.l,hexstr.length>>1); + if(m !== hexstr) throw fld + 'Expected ' + hexstr + ' saw ' + m; + this.l += hexstr.length>>1; +} + function prep_blob(blob, pos) { blob.l = pos; blob.read_shift = ReadShift; + blob.chk = CheckField; blob.write_shift = WriteShift; } @@ -1117,7 +1673,7 @@ function parsenoop(blob, length) { blob.l += length; } function writenoop(blob, length) { blob.l += length; } function new_buf(sz) { - var o = has_buf ? new Buffer(sz) : new Array(sz); + var o = new_raw_buf(sz); prep_blob(o, 0); return o; } @@ -1129,7 +1685,7 @@ function recordhopper(data, cb, opts) { while(data.l < data.length) { var RT = data.read_shift(1); if(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7); - var R = RecordEnum[RT] || RecordEnum[0xFFFF]; + var R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF]; tmpbyte = data.read_shift(1); length = tmpbyte & 0x7F; for(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte); @@ -1173,7 +1729,7 @@ function buf_array() { function write_record(ba, type, payload, length) { var t = evert_RE[type], l; - if(!length) length = RecordEnum[t].p || (payload||[]).length || 0; + if(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0; l = 1 + (t >= 0x80 ? 1 : 0) + 1 + length; if(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l; var o = ba.next(l); @@ -1188,6 +1744,62 @@ function write_record(ba, type, payload, length) { } if(length > 0 && is_buf(payload)) ba.push(payload); } +/* XLS ranges enforced */ +function shift_cell_xls(cell, tgt) { + if(tgt.s) { + if(cell.cRel) cell.c += tgt.s.c; + if(cell.rRel) cell.r += tgt.s.r; + } else { + cell.c += tgt.c; + cell.r += tgt.r; + } + cell.cRel = cell.rRel = 0; + while(cell.c >= 0x100) cell.c -= 0x100; + while(cell.r >= 0x10000) cell.r -= 0x10000; + return cell; +} + +function shift_range_xls(cell, range) { + cell.s = shift_cell_xls(cell.s, range.s); + cell.e = shift_cell_xls(cell.e, range.s); + return cell; +} + +var OFFCRYPTO = {}; +var make_offcrypto = function(O, _crypto) { + var crypto; + if(typeof _crypto !== 'undefined') crypto = _crypto; + else if(typeof require !== 'undefined') { + try { crypto = require('cry'+'pto'); } + catch(e) { crypto = null; } + } + + O.rc4 = function(key, data) { + var S = new Array(256); + var c = 0, i = 0, j = 0, t = 0; + for(i = 0; i != 256; ++i) S[i] = i; + for(i = 0; i != 256; ++i) { + j = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255; + t = S[i]; S[i] = S[j]; S[j] = t; + } + i = j = 0; out = Buffer(data.length); + for(c = 0; c != data.length; ++c) { + i = (i + 1)&255; + j = (j + S[i])%256; + t = S[i]; S[i] = S[j]; S[j] = t; + out[c] = (data[c] ^ S[(S[i]+S[j])&255]); + } + return out; + }; + + if(crypto) { + O.md5 = function(hex) { return crypto.createHash('md5').update(hex).digest('hex'); }; + } else { + O.md5 = function(hex) { throw "unimplemented"; }; + } +}; +make_offcrypto(OFFCRYPTO, typeof crypto !== "undefined" ? crypto : undefined); + /* [MS-XLSB] 2.5.143 */ function parse_StrRun(data, length) { @@ -1223,14 +1835,14 @@ function write_RichStr(str, o) { } /* [MS-XLSB] 2.5.9 */ -function parse_Cell(data) { +function parse_XLSBCell(data) { var col = data.read_shift(4); var iStyleRef = data.read_shift(2); iStyleRef += data.read_shift(1) <<16; var fPhShow = data.read_shift(1); return { c:col, iStyleRef: iStyleRef }; } -function write_Cell(cell, o) { +function write_XLSBCell(cell, o) { if(o == null) o = new_buf(8); o.write_shift(-4, cell.c); o.write_shift(3, cell.iStyleRef === undefined ? cell.iStyleRef : cell.s); @@ -1240,7 +1852,7 @@ function write_Cell(cell, o) { /* [MS-XLSB] 2.5.21 */ -function parse_CodeName (data, length) { return parse_XLWideString(data, length); } +function parse_XLSBCodeName (data, length) { return parse_XLWideString(data, length); } /* [MS-XLSB] 2.5.166 */ function parse_XLNullableWideString(data) { @@ -1272,11 +1884,12 @@ var write_RelID = write_XLNullableWideString; /* [MS-XLSB] 2.5.122 */ +/* [MS-XLS] 2.5.217 */ function parse_RkNumber(data) { var b = data.slice(data.l, data.l+4); var fX100 = b[0] & 1, fInt = b[0] & 2; data.l+=4; - b[0] &= 0xFC; + b[0] &= 0xFC; // b[0] &= ~3; var RK = fInt === 0 ? __double([0,0,0,0,b[0],b[1],b[2],b[3]],0) : __readInt32LE(b,0)>>2; return fX100 ? RK/100 : RK; } @@ -1301,6 +1914,7 @@ function write_UncheckedRfX(r, o) { } /* [MS-XLSB] 2.5.171 */ +/* [MS-XLS] 2.5.342 */ function parse_Xnum(data, length) { return data.read_shift(8, 'f'); } function write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, 'f', data); } @@ -1346,6 +1960,271 @@ function parse_FontFlags(data, length) { }; return out; } +/* [MS-OLEPS] 2.2 PropertyType */ +{ + var VT_EMPTY = 0x0000; + var VT_NULL = 0x0001; + var VT_I2 = 0x0002; + var VT_I4 = 0x0003; + var VT_R4 = 0x0004; + var VT_R8 = 0x0005; + var VT_CY = 0x0006; + var VT_DATE = 0x0007; + var VT_BSTR = 0x0008; + var VT_ERROR = 0x000A; + var VT_BOOL = 0x000B; + var VT_VARIANT = 0x000C; + var VT_DECIMAL = 0x000E; + var VT_I1 = 0x0010; + var VT_UI1 = 0x0011; + var VT_UI2 = 0x0012; + var VT_UI4 = 0x0013; + var VT_I8 = 0x0014; + var VT_UI8 = 0x0015; + var VT_INT = 0x0016; + var VT_UINT = 0x0017; + var VT_LPSTR = 0x001E; + var VT_LPWSTR = 0x001F; + var VT_FILETIME = 0x0040; + var VT_BLOB = 0x0041; + var VT_STREAM = 0x0042; + var VT_STORAGE = 0x0043; + var VT_STREAMED_Object = 0x0044; + var VT_STORED_Object = 0x0045; + var VT_BLOB_Object = 0x0046; + var VT_CF = 0x0047; + var VT_CLSID = 0x0048; + var VT_VERSIONED_STREAM = 0x0049; + var VT_VECTOR = 0x1000; + var VT_ARRAY = 0x2000; + + var VT_STRING = 0x0050; // 2.3.3.1.11 VtString + var VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString + var VT_CUSTOM = [VT_STRING, VT_USTR]; +} + +/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */ +var DocSummaryPIDDSI = { + 0x01: { n: 'CodePage', t: VT_I2 }, + 0x02: { n: 'Category', t: VT_STRING }, + 0x03: { n: 'PresentationFormat', t: VT_STRING }, + 0x04: { n: 'ByteCount', t: VT_I4 }, + 0x05: { n: 'LineCount', t: VT_I4 }, + 0x06: { n: 'ParagraphCount', t: VT_I4 }, + 0x07: { n: 'SlideCount', t: VT_I4 }, + 0x08: { n: 'NoteCount', t: VT_I4 }, + 0x09: { n: 'HiddenCount', t: VT_I4 }, + 0x0a: { n: 'MultimediaClipCount', t: VT_I4 }, + 0x0b: { n: 'Scale', t: VT_BOOL }, + 0x0c: { n: 'HeadingPair', t: VT_VECTOR | VT_VARIANT }, + 0x0d: { n: 'DocParts', t: VT_VECTOR | VT_LPSTR }, + 0x0e: { n: 'Manager', t: VT_STRING }, + 0x0f: { n: 'Company', t: VT_STRING }, + 0x10: { n: 'LinksDirty', t: VT_BOOL }, + 0x11: { n: 'CharacterCount', t: VT_I4 }, + 0x13: { n: 'SharedDoc', t: VT_BOOL }, + 0x16: { n: 'HLinksChanged', t: VT_BOOL }, + 0x17: { n: 'AppVersion', t: VT_I4, p: 'version' }, + 0x1A: { n: 'ContentType', t: VT_STRING }, + 0x1B: { n: 'ContentStatus', t: VT_STRING }, + 0x1C: { n: 'Language', t: VT_STRING }, + 0x1D: { n: 'Version', t: VT_STRING }, + 0xFF: {} +}; + +/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */ +var SummaryPIDSI = { + 0x01: { n: 'CodePage', t: VT_I2 }, + 0x02: { n: 'Title', t: VT_STRING }, + 0x03: { n: 'Subject', t: VT_STRING }, + 0x04: { n: 'Author', t: VT_STRING }, + 0x05: { n: 'Keywords', t: VT_STRING }, + 0x06: { n: 'Comments', t: VT_STRING }, + 0x07: { n: 'Template', t: VT_STRING }, + 0x08: { n: 'LastAuthor', t: VT_STRING }, + 0x09: { n: 'RevNumber', t: VT_STRING }, + 0x0A: { n: 'EditTime', t: VT_FILETIME }, + 0x0B: { n: 'LastPrinted', t: VT_FILETIME }, + 0x0C: { n: 'CreatedDate', t: VT_FILETIME }, + 0x0D: { n: 'ModifiedDate', t: VT_FILETIME }, + 0x0E: { n: 'PageCount', t: VT_I4 }, + 0x0F: { n: 'WordCount', t: VT_I4 }, + 0x10: { n: 'CharCount', t: VT_I4 }, + 0x11: { n: 'Thumbnail', t: VT_CF }, + 0x12: { n: 'ApplicationName', t: VT_LPSTR }, + 0x13: { n: 'DocumentSecurity', t: VT_I4 }, + 0xFF: {} +}; + +/* [MS-OLEPS] 2.18 */ +var SpecialProperties = { + 0x80000000: { n: 'Locale', t: VT_UI4 }, + 0x80000003: { n: 'Behavior', t: VT_UI4 }, + 0x72627262: {} +}; + +(function() { + for(var y in SpecialProperties) if(SpecialProperties.hasOwnProperty(y)) + DocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y]; +})(); + +/* [MS-XLS] 2.4.63 Country/Region codes */ +var CountryEnum = { + 0x0001: "US", // United States + 0x0002: "CA", // Canada + 0x0003: "", // Latin America (except Brazil) + 0x0007: "RU", // Russia + 0x0014: "EG", // Egypt + 0x001E: "GR", // Greece + 0x001F: "NL", // Netherlands + 0x0020: "BE", // Belgium + 0x0021: "FR", // France + 0x0022: "ES", // Spain + 0x0024: "HU", // Hungary + 0x0027: "IT", // Italy + 0x0029: "CH", // Switzerland + 0x002B: "AT", // Austria + 0x002C: "GB", // United Kingdom + 0x002D: "DK", // Denmark + 0x002E: "SE", // Sweden + 0x002F: "NO", // Norway + 0x0030: "PL", // Poland + 0x0031: "DE", // Germany + 0x0034: "MX", // Mexico + 0x0037: "BR", // Brazil + 0x003d: "AU", // Australia + 0x0040: "NZ", // New Zealand + 0x0042: "TH", // Thailand + 0x0051: "JP", // Japan + 0x0052: "KR", // Korea + 0x0054: "VN", // Viet Nam + 0x0056: "CN", // China + 0x005A: "TR", // Turkey + 0x0069: "JS", // Ramastan + 0x00D5: "DZ", // Algeria + 0x00D8: "MA", // Morocco + 0x00DA: "LY", // Libya + 0x015F: "PT", // Portugal + 0x0162: "IS", // Iceland + 0x0166: "FI", // Finland + 0x01A4: "CZ", // Czech Republic + 0x0376: "TW", // Taiwan + 0x03C1: "LB", // Lebanon + 0x03C2: "JO", // Jordan + 0x03C3: "SY", // Syria + 0x03C4: "IQ", // Iraq + 0x03C5: "KW", // Kuwait + 0x03C6: "SA", // Saudi Arabia + 0x03CB: "AE", // United Arab Emirates + 0x03CC: "IL", // Israel + 0x03CE: "QA", // Qatar + 0x03D5: "IR", // Iran + 0xFFFF: "US" // United States +}; + +/* [MS-XLS] 2.5.127 */ +var XLSFillPattern = [ + null, + 'solid', + 'mediumGray', + 'darkGray', + 'lightGray', + 'darkHorizontal', + 'darkVertical', + 'darkDown', + 'darkUp', + 'darkGrid', + 'darkTrellis', + 'lightHorizontal', + 'lightVertical', + 'lightDown', + 'lightUp', + 'lightGrid', + 'lightTrellis', + 'gray125', + 'gray0625' +]; + +function rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); } + +/* [MS-XLS] 2.5.161 */ +var XLSIcv = rgbify([ + /* Color Constants */ + 0x000000, + 0xFFFFFF, + 0xFF0000, + 0x00FF00, + 0x0000FF, + 0xFFFF00, + 0xFF00FF, + 0x00FFFF, + + /* Defaults */ + 0x000000, + 0xFFFFFF, + 0xFF0000, + 0x00FF00, + 0x0000FF, + 0xFFFF00, + 0xFF00FF, + 0x00FFFF, + + 0x800000, + 0x008000, + 0x000080, + 0x808000, + 0x800080, + 0x008080, + 0xC0C0C0, + 0x808080, + 0x9999FF, + 0x993366, + 0xFFFFCC, + 0xCCFFFF, + 0x660066, + 0xFF8080, + 0x0066CC, + 0xCCCCFF, + + 0x000080, + 0xFF00FF, + 0xFFFF00, + 0x00FFFF, + 0x800080, + 0x800000, + 0x008080, + 0x0000FF, + 0x00CCFF, + 0xCCFFFF, + 0xCCFFCC, + 0xFFFF99, + 0x99CCFF, + 0xFF99CC, + 0xCC99FF, + 0xFFCC99, + + 0x3366FF, + 0x33CCCC, + 0x99CC00, + 0xFFCC00, + 0xFF9900, + 0xFF6600, + 0x666699, + 0x969696, + 0x003366, + 0x339966, + 0x003300, + 0x333300, + 0x993300, + 0x993366, + 0x333399, + 0x333333, + + /* Sheet */ + 0xFFFFFF, + 0x000000 +]); + /* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */ /* 12.3 Part Summary */ /* 14.2 Part Summary */ @@ -1879,6 +2758,1371 @@ function write_cust_props(cp, opts) { if(o.length>2){ o[o.length] = ''; o[1]=o[1].replace("/>",">"); } return o.join(""); } +function xlml_set_prop(Props, tag, val) { + /* TODO: Normalize the properties */ + switch(tag) { + case 'Description': tag = 'Comments'; break; + } + Props[tag] = val; +} + +/* [MS-DTYP] 2.3.3 FILETIME */ +/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */ +/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */ +function parse_FILETIME(blob) { + var dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4); + return new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\.000/,""); +} + +/* [MS-OSHARED] 2.3.3.1.4 Lpstr */ +function parse_lpstr(blob, type, pad) { + var str = blob.read_shift(0, 'lpstr'); + if(pad) blob.l += (4 - ((str.length+1) & 3)) & 3; + return str; +} + +/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */ +function parse_lpwstr(blob, type, pad) { + var str = blob.read_shift(0, 'lpwstr'); + if(pad) blob.l += (4 - ((str.length+1) & 3)) & 3; + return str; +} + + +/* [MS-OSHARED] 2.3.3.1.11 VtString */ +/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */ +function parse_VtStringBase(blob, stringType, pad) { + if(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob); + return parse_lpstr(blob, stringType, pad); +} + +function parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); } +function parse_VtUnalignedString(blob, t) { if(!t) throw new Error("dafuq?"); return parse_VtStringBase(blob, t, 0); } + +/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */ +function parse_VtVecUnalignedLpstrValue(blob) { + var length = blob.read_shift(4); + var ret = []; + for(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr'); + return ret; +} + +/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */ +function parse_VtVecUnalignedLpstr(blob) { + return parse_VtVecUnalignedLpstrValue(blob); +} + +/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */ +function parse_VtHeadingPair(blob) { + var headingString = parse_TypedPropertyValue(blob, VT_USTR); + var headerParts = parse_TypedPropertyValue(blob, VT_I4); + return [headingString, headerParts]; +} + +/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */ +function parse_VtVecHeadingPairValue(blob) { + var cElements = blob.read_shift(4); + var out = []; + for(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob)); + return out; +} + +/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */ +function parse_VtVecHeadingPair(blob) { + // NOTE: When invoked, wType & padding were already consumed + return parse_VtVecHeadingPairValue(blob); +} + +/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */ +function parse_dictionary(blob,CodePage) { + var cnt = blob.read_shift(4); + var dict = {}; + for(var j = 0; j != cnt; ++j) { + var pid = blob.read_shift(4); + var len = blob.read_shift(4); + dict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!'); + } + if(blob.l & 3) blob.l = (blob.l>>2+1)<<2; + return dict; +} + +/* [MS-OLEPS] 2.9 BLOB */ +function parse_BLOB(blob) { + var size = blob.read_shift(4); + var bytes = blob.slice(blob.l,blob.l+size); + if(size & 3 > 0) blob.l += (4 - (size & 3)) & 3; + return bytes; +} + +/* [MS-OLEPS] 2.11 ClipboardData */ +function parse_ClipboardData(blob) { + // TODO + var o = {}; + o.Size = blob.read_shift(4); + //o.Format = blob.read_shift(4); + blob.l += o.Size; + return o; +} + +/* [MS-OLEPS] 2.14 Vector and Array Property Types */ +function parse_VtVector(blob, cb) { + /* [MS-OLEPS] 2.14.2 VectorHeader */ +/* var Length = blob.read_shift(4); + var o = []; + for(var i = 0; i != Length; ++i) { + o.push(cb(blob)); + } + return o;*/ +} + +/* [MS-OLEPS] 2.15 TypedPropertyValue */ +function parse_TypedPropertyValue(blob, type, _opts) { + var t = blob.read_shift(2), ret, opts = _opts||{}; + blob.l += 2; + if(type !== VT_VARIANT) + if(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t); + switch(type === VT_VARIANT ? t : type) { + case 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret; + case 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret; + case 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0; + case 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret; + case 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,''); + case 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob); + case 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob); + case 0x41 /*VT_BLOB*/: return parse_BLOB(blob); + case 0x47 /*VT_CF*/: return parse_ClipboardData(blob); + case 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw && 4).replace(chr0,''); + case 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t, 4).replace(chr0,''); + case 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob); + case 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob); + default: throw new Error("TypedPropertyValue unrecognized type " + type + " " + t); + } +} +/* [MS-OLEPS] 2.14.2 VectorHeader */ +/*function parse_VTVectorVariant(blob) { + var Length = blob.read_shift(4); + + if(Length & 1 !== 0) throw new Error("VectorHeader Length=" + Length + " must be even"); + var o = []; + for(var i = 0; i != Length; ++i) { + o.push(parse_TypedPropertyValue(blob, VT_VARIANT)); + } + return o; +}*/ + +/* [MS-OLEPS] 2.20 PropertySet */ +function parse_PropertySet(blob, PIDSI) { + var start_addr = blob.l; + var size = blob.read_shift(4); + var NumProps = blob.read_shift(4); + var Props = [], i = 0; + var CodePage = 0; + var Dictionary = -1, DictObj; + for(i = 0; i != NumProps; ++i) { + var PropID = blob.read_shift(4); + var Offset = blob.read_shift(4); + Props[i] = [PropID, Offset + start_addr]; + } + var PropH = {}; + for(i = 0; i != NumProps; ++i) { + if(blob.l !== Props[i][1]) { + var fail = true; + if(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) { + case 0x02 /*VT_I2*/: if(blob.l +2 === Props[i][1]) { blob.l+=2; fail = false; } break; + case 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break; + case 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break; + } + if(!PIDSI && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; } + if(fail) throw new Error("Read Error: Expected address " + Props[i][1] + ' at ' + blob.l + ' :' + i); + } + if(PIDSI) { + var piddsi = PIDSI[Props[i][0]]; + PropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true}); + if(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + "." + String(PropH[piddsi.n] & 0xFFFF); + if(piddsi.n == "CodePage") switch(PropH[piddsi.n]) { + case 0: PropH[piddsi.n] = 1252; + /* falls through */ + case 10000: // OSX Roman + case 1252: // Windows Latin + + case 874: // SB Windows Thai + case 1250: // SB Windows Central Europe + case 1251: // SB Windows Cyrillic + case 1253: // SB Windows Greek + case 1254: // SB Windows Turkish + case 1255: // SB Windows Hebrew + case 1256: // SB Windows Arabic + case 1257: // SB Windows Baltic + case 1258: // SB Windows Vietnam + + case 932: // DB Windows Japanese Shift-JIS + case 936: // DB Windows Simplified Chinese GBK + case 949: // DB Windows Korean + case 950: // DB Windows Traditional Chinese Big5 + + case 1200: // UTF16LE + case 1201: // UTF16BE + case 65000: case -536: // UTF-7 + case 65001: case -535: // UTF-8 + set_cp(CodePage = PropH[piddsi.n]); break; + default: throw new Error("Unsupported CodePage: " + PropH[piddsi.n]); + } + } else { + if(Props[i][0] === 0x1) { + CodePage = PropH.CodePage = parse_TypedPropertyValue(blob, VT_I2); + set_cp(CodePage); + if(Dictionary !== -1) { + var oldpos = blob.l; + blob.l = Props[Dictionary][1]; + DictObj = parse_dictionary(blob,CodePage); + blob.l = oldpos; + } + } else if(Props[i][0] === 0) { + if(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; } + DictObj = parse_dictionary(blob,CodePage); + } else { + var name = DictObj[Props[i][0]]; + var val; + /* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */ + switch(blob[blob.l]) { + case 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break; + case 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break; + case 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break; + case 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break; + case 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break; + case 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break; + case 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break; + case 0x40 /*VT_FILETIME*/: blob.l += 4; val = new Date(parse_FILETIME(blob)); break; + default: throw new Error("unparsed value: " + blob[blob.l]); + } + PropH[name] = val; + } + } + } + blob.l = start_addr + size; /* step ahead to skip padding */ + return PropH; +} + +/* [MS-OLEPS] 2.21 PropertySetStream */ +function parse_PropertySetStream(file, PIDSI) { + var blob = file.content; + prep_blob(blob, 0); + + var NumSets, FMTID0, FMTID1, Offset0, Offset1; + blob.chk('feff', 'Byte Order: '); + + var vers = blob.read_shift(2); // TODO: check version + var SystemIdentifier = blob.read_shift(4); + blob.chk(CFB.utils.consts.HEADER_CLSID, 'CLSID: '); + NumSets = blob.read_shift(4); + if(NumSets !== 1 && NumSets !== 2) throw "Unrecognized #Sets: " + NumSets; + FMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4); + + if(NumSets === 1 && Offset0 !== blob.l) throw "Length mismatch"; + else if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); } + var PSet0 = parse_PropertySet(blob, PIDSI); + + var rval = { SystemIdentifier: SystemIdentifier }; + for(var y in PSet0) rval[y] = PSet0[y]; + //rval.blob = blob; + rval.FMTID = FMTID0; + //rval.PSet0 = PSet0; + if(NumSets === 1) return rval; + if(blob.l !== Offset1) throw "Length mismatch 2: " + blob.l + " !== " + Offset1; + var PSet1; + try { PSet1 = parse_PropertySet(blob, null); } catch(e) { } + for(y in PSet1) rval[y] = PSet1[y]; + rval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1 + return rval; +} + + +function parsenoop2(blob, length) { blob.read_shift(length); return null; } + +function parslurp(blob, length, cb) { + var arr = [], target = blob.l + length; + while(blob.l < target) arr.push(cb(blob, target - blob.l)); + if(target !== blob.l) throw new Error("Slurp error"); + return arr; +} + +function parslurp2(blob, length, cb) { + var arr = [], target = blob.l + length, len = blob.read_shift(2); + while(len-- !== 0) arr.push(cb(blob, target - blob.l)); + if(target !== blob.l) throw new Error("Slurp error"); + return arr; +} + +function parsebool(blob, length) { return blob.read_shift(length) === 0x1; } + +function parseuint16(blob) { return blob.read_shift(2, 'u'); } +function parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);} + +/* --- 2.5 Structures --- */ + +/* [MS-XLS] 2.5.14 Boolean */ +var parse_Boolean = parsebool; + +/* [MS-XLS] 2.5.10 Bes (boolean or error) */ +function parse_Bes(blob) { + var v = blob.read_shift(1), t = blob.read_shift(1); + return t === 0x01 ? v : v === 0x01; +} + +/* [MS-XLS] 2.5.240 ShortXLUnicodeString */ +function parse_ShortXLUnicodeString(blob, length, opts) { + var cch = blob.read_shift(1); + var width = 1, encoding = 'sbcs-cont'; + var cp = current_codepage; + if(opts && opts.biff >= 8) current_codepage = 1200; + if(opts === undefined || opts.biff !== 5) { + var fHighByte = blob.read_shift(1); + if(fHighByte) { width = 2; encoding = 'dbcs-cont'; } + } + var o = cch ? blob.read_shift(cch, encoding) : ""; + current_codepage = cp; + return o; +} + +/* 2.5.293 XLUnicodeRichExtendedString */ +function parse_XLUnicodeRichExtendedString(blob) { + var cp = current_codepage; + current_codepage = 1200; + var cch = blob.read_shift(2), flags = blob.read_shift(1); + var fHighByte = flags & 0x1, fExtSt = flags & 0x4, fRichSt = flags & 0x8; + var width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs + var cRun, cbExtRst; + var z = {}; + if(fRichSt) cRun = blob.read_shift(2); + if(fExtSt) cbExtRst = blob.read_shift(4); + var encoding = (flags & 0x1) ? 'dbcs-cont' : 'sbcs-cont'; + var msg = cch === 0 ? "" : blob.read_shift(cch, encoding); + if(fRichSt) blob.l += 4 * cRun; //TODO: parse this + if(fExtSt) blob.l += cbExtRst; //TODO: parse this + z.t = msg; + if(!fRichSt) { z.raw = "" + z.t + ""; z.r = z.t; } + current_codepage = cp; + return z; +} + +/* 2.5.296 XLUnicodeStringNoCch */ +function parse_XLUnicodeStringNoCch(blob, cch, opts) { + var retval; + var fHighByte = blob.read_shift(1); + if(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); } + else { retval = blob.read_shift(cch, 'dbcs-cont'); } + return retval; +} + +/* 2.5.294 XLUnicodeString */ +function parse_XLUnicodeString(blob, length, opts) { + var cch = blob.read_shift(opts !== undefined && opts.biff > 0 && opts.biff < 8 ? 1 : 2); + if(cch === 0) { blob.l++; return ""; } + return parse_XLUnicodeStringNoCch(blob, cch, opts); +} +/* BIFF5 override */ +function parse_XLUnicodeString2(blob, length, opts) { + if(opts.biff !== 5 && opts.biff !== 2) return parse_XLUnicodeString(blob, length, opts); + var cch = blob.read_shift(1); + if(cch === 0) { blob.l++; return ""; } + return blob.read_shift(cch, 'sbcs-cont'); +} + +/* [MS-XLS] 2.5.61 ControlInfo */ +var parse_ControlInfo = parsenoop; + +/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */ +var parse_URLMoniker = function(blob, length) { + var len = blob.read_shift(4), start = blob.l; + var extra = false; + if(len > 24) { + /* look ahead */ + blob.l += len - 24; + if(blob.read_shift(16) === "795881f43b1d7f48af2c825dc4852763") extra = true; + blob.l = start; + } + var url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,""); + if(extra) blob.l += 24; + return url; +}; + +/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */ +var parse_FileMoniker = function(blob, length) { + var cAnti = blob.read_shift(2); + var ansiLength = blob.read_shift(4); + var ansiPath = blob.read_shift(ansiLength, 'cstr'); + var endServer = blob.read_shift(2); + var versionNumber = blob.read_shift(2); + var cbUnicodePathSize = blob.read_shift(4); + if(cbUnicodePathSize === 0) return ansiPath.replace(/\\/g,"/"); + var cbUnicodePathBytes = blob.read_shift(4); + var usKeyValue = blob.read_shift(2); + var unicodePath = blob.read_shift(cbUnicodePathBytes>>1, 'utf16le').replace(chr0,""); + return unicodePath; +}; + +/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */ +var parse_HyperlinkMoniker = function(blob, length) { + var clsid = blob.read_shift(16); length -= 16; + switch(clsid) { + case "e0c9ea79f9bace118c8200aa004ba90b": return parse_URLMoniker(blob, length); + case "0303000000000000c000000000000046": return parse_FileMoniker(blob, length); + default: throw "unsupported moniker " + clsid; + } +}; + +/* [MS-OSHARED] 2.3.7.9 HyperlinkString */ +var parse_HyperlinkString = function(blob, length) { + var len = blob.read_shift(4); + var o = blob.read_shift(len, 'utf16le').replace(chr0, ""); + return o; +}; + +/* [MS-OSHARED] 2.3.7.1 Hyperlink Object TODO: unify params with XLSX */ +var parse_Hyperlink = function(blob, length) { + var end = blob.l + length; + var sVer = blob.read_shift(4); + if(sVer !== 2) throw new Error("Unrecognized streamVersion: " + sVer); + var flags = blob.read_shift(2); + blob.l += 2; + var displayName, targetFrameName, moniker, oleMoniker, location, guid, fileTime; + if(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l); + if(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l); + if((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l); + if((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l); + if(flags & 0x0008) location = parse_HyperlinkString(blob, end - blob.l); + if(flags & 0x0020) guid = blob.read_shift(16); + if(flags & 0x0040) fileTime = parse_FILETIME(blob, 8); + blob.l = end; + var target = (targetFrameName||moniker||oleMoniker); + if(location) target+="#"+location; + return {Target: target}; +}; + +/* 2.5.178 LongRGBA */ +function parse_LongRGBA(blob, length) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; } + +/* 2.5.177 LongRGB */ +function parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; } + + +/* --- MS-XLS --- */ + +/* 2.5.19 */ +function parse_XLSCell(blob, length) { + var rw = blob.read_shift(2); // 0-indexed + var col = blob.read_shift(2); + var ixfe = blob.read_shift(2); + return {r:rw, c:col, ixfe:ixfe}; +} + +/* 2.5.134 */ +function parse_frtHeader(blob) { + var rt = blob.read_shift(2); + var flags = blob.read_shift(2); // TODO: parse these flags + blob.l += 8; + return {type: rt, flags: flags}; +} + + + +function parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? "" : parse_XLUnicodeString2(blob, length, opts); } + +/* 2.5.158 */ +var HIDEOBJENUM = ['SHOWALL', 'SHOWPLACEHOLDER', 'HIDEALL']; +var parse_HideObjEnum = parseuint16; + +/* 2.5.344 */ +function parse_XTI(blob, length) { + var iSupBook = blob.read_shift(2), itabFirst = blob.read_shift(2,'i'), itabLast = blob.read_shift(2,'i'); + return [iSupBook, itabFirst, itabLast]; +} + +/* 2.5.218 */ +function parse_RkRec(blob, length) { + var ixfe = blob.read_shift(2); + var RK = parse_RkNumber(blob); + //console.log("::", ixfe, RK,";;"); + return [ixfe, RK]; +} + +/* 2.5.1 */ +function parse_AddinUdf(blob, length) { + blob.l += 4; length -= 4; + var l = blob.l + length; + var udfName = parse_ShortXLUnicodeString(blob, length); + var cb = blob.read_shift(2); + l -= blob.l; + if(cb !== l) throw "Malformed AddinUdf: padding = " + l + " != " + cb; + blob.l += cb; + return udfName; +} + +/* 2.5.209 TODO: Check sizes */ +function parse_Ref8U(blob, length) { + var rwFirst = blob.read_shift(2); + var rwLast = blob.read_shift(2); + var colFirst = blob.read_shift(2); + var colLast = blob.read_shift(2); + return {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}}; +} + +/* 2.5.211 */ +function parse_RefU(blob, length) { + var rwFirst = blob.read_shift(2); + var rwLast = blob.read_shift(2); + var colFirst = blob.read_shift(1); + var colLast = blob.read_shift(1); + return {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}}; +} + +/* 2.5.207 */ +var parse_Ref = parse_RefU; + +/* 2.5.143 */ +function parse_FtCmo(blob, length) { + blob.l += 4; + var ot = blob.read_shift(2); + var id = blob.read_shift(2); + var flags = blob.read_shift(2); + blob.l+=12; + return [id, ot, flags]; +} + +/* 2.5.149 */ +function parse_FtNts(blob, length) { + var out = {}; + blob.l += 4; + blob.l += 16; // GUID TODO + out.fSharedNote = blob.read_shift(2); + blob.l += 4; + return out; +} + +/* 2.5.142 */ +function parse_FtCf(blob, length) { + var out = {}; + blob.l += 4; + blob.cf = blob.read_shift(2); + return out; +} + +/* 2.5.140 - 2.5.154 and friends */ +var FtTab = { + 0x15: parse_FtCmo, + 0x13: parsenoop, /* FtLbsData */ + 0x12: function(blob, length) { blob.l += 12; }, /* FtCblsData */ + 0x11: function(blob, length) { blob.l += 8; }, /* FtRboData */ + 0x10: parsenoop, /* FtEdoData */ + 0x0F: parsenoop, /* FtGboData */ + 0x0D: parse_FtNts, /* FtNts */ + 0x0C: function(blob, length) { blob.l += 24; }, /* FtSbs */ + 0x0B: function(blob, length) { blob.l += 10; }, /* FtRbo */ + 0x0A: function(blob, length) { blob.l += 16; }, /* FtCbls */ + 0x09: parsenoop, /* FtPictFmla */ + 0x08: function(blob, length) { blob.l += 6; }, /* FtPioGrbit */ + 0x07: parse_FtCf, /* FtCf */ + 0x06: function(blob, length) { blob.l += 6; }, /* FtGmo */ + 0x04: parsenoop, /* FtMacro */ + 0x00: function(blob, length) { blob.l += 4; } /* FtEnding */ +}; +function parse_FtArray(blob, length, ot) { + var s = blob.l; + var fts = []; + while(blob.l < s + length) { + var ft = blob.read_shift(2); + blob.l-=2; + try { + fts.push(FtTab[ft](blob, s + length - blob.l)); + } catch(e) { blob.l = s + length; return fts; } + } + if(blob.l != s + length) blob.l = s + length; //throw "bad Object Ft-sequence"; + return fts; +} + +/* 2.5.129 */ +var parse_FontIndex = parseuint16; + +/* --- 2.4 Records --- */ + +/* 2.4.21 */ +function parse_BOF(blob, length) { + var o = {}; + o.BIFFVer = blob.read_shift(2); length -= 2; + switch(o.BIFFVer) { + case 0x0600: /* BIFF8 */ + case 0x0500: /* BIFF5 */ + case 0x0002: case 0x0007: /* BIFF2 */ + break; + default: throw "Unexpected BIFF Ver " + o.BIFFVer; + } + blob.read_shift(length); + return o; +} + + +/* 2.4.146 */ +function parse_InterfaceHdr(blob, length) { + if(length === 0) return 0x04b0; + var q; + if((q=blob.read_shift(2))!==0x04b0) throw 'InterfaceHdr codePage ' + q; + return 0x04b0; +} + + +/* 2.4.349 */ +function parse_WriteAccess(blob, length, opts) { + if(opts.enc) { blob.l += length; return ""; } + var l = blob.l; + // TODO: make sure XLUnicodeString doesnt overrun + var UserName = parse_XLUnicodeString(blob, 0, opts); + blob.read_shift(length + l - blob.l); + return UserName; +} + +/* 2.4.28 */ +function parse_BoundSheet8(blob, length, opts) { + var pos = blob.read_shift(4); + var hidden = blob.read_shift(1) >> 6; + var dt = blob.read_shift(1); + switch(dt) { + case 0: dt = 'Worksheet'; break; + case 1: dt = 'Macrosheet'; break; + case 2: dt = 'Chartsheet'; break; + case 6: dt = 'VBAModule'; break; + } + var name = parse_ShortXLUnicodeString(blob, 0, opts); + if(name.length === 0) name = "Sheet1"; + return { pos:pos, hs:hidden, dt:dt, name:name }; +} + +/* 2.4.265 TODO */ +function parse_SST(blob, length) { + var cnt = blob.read_shift(4); + var ucnt = blob.read_shift(4); + var strs = []; + for(var i = 0; i != ucnt; ++i) { + strs.push(parse_XLUnicodeRichExtendedString(blob)); + } + strs.Count = cnt; strs.Unique = ucnt; + return strs; +} + +/* 2.4.107 */ +function parse_ExtSST(blob, length) { + var extsst = {}; + extsst.dsst = blob.read_shift(2); + blob.l += length-2; + return extsst; +} + + +/* 2.4.221 TODO*/ +function parse_Row(blob, length) { + var rw = blob.read_shift(2), col = blob.read_shift(2), Col = blob.read_shift(2), rht = blob.read_shift(2); + blob.read_shift(4); // reserved(2), unused(2) + var flags = blob.read_shift(1); // various flags + blob.read_shift(1); // reserved + blob.read_shift(2); //ixfe, other flags + return {r:rw, c:col, cnt:Col-col}; +} + + +/* 2.4.125 */ +function parse_ForceFullCalculation(blob, length) { + var header = parse_frtHeader(blob); + if(header.type != 0x08A3) throw "Invalid Future Record " + header.type; + var fullcalc = blob.read_shift(4); + return fullcalc !== 0x0; +} + + +var parse_CompressPictures = parsenoop2; /* 2.4.55 Not interesting */ + + + +/* 2.4.215 rt */ +function parse_RecalcId(blob, length) { + blob.read_shift(2); + return blob.read_shift(4); +} + +/* 2.4.87 */ +function parse_DefaultRowHeight (blob, length) { + var f = blob.read_shift(2), miyRw; + miyRw = blob.read_shift(2); // flags & 0x02 -> hidden, else empty + var fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3}; + return [fl, miyRw]; +} + +/* 2.4.345 TODO */ +function parse_Window1(blob, length) { + var xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2); + var flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2); + var ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2); + return { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur, + FirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio }; +} + +/* 2.4.122 TODO */ +function parse_Font(blob, length, opts) { + blob.l += 14; + var name = parse_ShortXLUnicodeString(blob, 0, opts); + return name; +} + +/* 2.4.149 */ +function parse_LabelSst(blob, length) { + var cell = parse_XLSCell(blob); + cell.isst = blob.read_shift(4); + return cell; +} + +/* 2.4.148 */ +function parse_Label(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + var str = parse_XLUnicodeString(blob, length-6, opts); + cell.val = str; + return cell; +} + +/* 2.4.126 Number Formats */ +function parse_Format(blob, length, opts) { + var ifmt = blob.read_shift(2); + var fmtstr = parse_XLUnicodeString2(blob, 0, opts); + return [ifmt, fmtstr]; +} + +/* 2.4.90 */ +function parse_Dimensions(blob, length) { + var w = length === 10 ? 2 : 4; + var r = blob.read_shift(w), R = blob.read_shift(w), + c = blob.read_shift(2), C = blob.read_shift(2); + blob.l += 2; + return {s: {r:r, c:c}, e: {r:R, c:C}}; +} + +/* 2.4.220 */ +function parse_RK(blob, length) { + var rw = blob.read_shift(2), col = blob.read_shift(2); + var rkrec = parse_RkRec(blob); + return {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]}; +} + +/* 2.4.175 */ +function parse_MulRk(blob, length) { + var target = blob.l + length - 2; + var rw = blob.read_shift(2), col = blob.read_shift(2); + var rkrecs = []; + while(blob.l < target) rkrecs.push(parse_RkRec(blob)); + if(blob.l !== target) throw "MulRK read error"; + var lastcol = blob.read_shift(2); + if(rkrecs.length != lastcol - col + 1) throw "MulRK length mismatch"; + return {r:rw, c:col, C:lastcol, rkrec:rkrecs}; +} + +/* 2.5.20 2.5.249 TODO */ +function parse_CellStyleXF(blob, length, style) { + var o = {}; + var a = blob.read_shift(4), b = blob.read_shift(4); + var c = blob.read_shift(4), d = blob.read_shift(2); + o.patternType = XLSFillPattern[c >> 26]; + o.icvFore = d & 0x7F; + o.icvBack = (d >> 7) & 0x7F; + return o; +} +function parse_CellXF(blob, length) {return parse_CellStyleXF(blob,length,0);} +function parse_StyleXF(blob, length) {return parse_CellStyleXF(blob,length,1);} + +/* 2.4.353 TODO: actually do this right */ +function parse_XF(blob, length) { + var o = {}; + o.ifnt = blob.read_shift(2); o.ifmt = blob.read_shift(2); o.flags = blob.read_shift(2); + o.fStyle = (o.flags >> 2) & 0x01; + length -= 6; + o.data = parse_CellStyleXF(blob, length, o.fStyle); + return o; +} + +/* 2.4.134 */ +function parse_Guts(blob, length) { + blob.l += 4; + var out = [blob.read_shift(2), blob.read_shift(2)]; + if(out[0] !== 0) out[0]--; + if(out[1] !== 0) out[1]--; + if(out[0] > 7 || out[1] > 7) throw "Bad Gutters: " + out; + return out; +} + +/* 2.4.24 */ +function parse_BoolErr(blob, length) { + var cell = parse_XLSCell(blob, 6); + var val = parse_Bes(blob, 2); + cell.val = val; + cell.t = (val === true || val === false) ? 'b' : 'e'; + return cell; +} + +/* 2.4.180 Number */ +function parse_Number(blob, length) { + var cell = parse_XLSCell(blob, 6); + var xnum = parse_Xnum(blob, 8); + cell.val = xnum; + return cell; +} + +var parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136 + +/* 2.4.271 */ +function parse_SupBook(blob, length, opts) { + var end = blob.l + length; + var ctab = blob.read_shift(2); + var cch = blob.read_shift(2); + var virtPath; + if(cch >=0x01 && cch <=0xff) virtPath = parse_XLUnicodeStringNoCch(blob, cch); + var rgst = blob.read_shift(end - blob.l); + opts.sbcch = cch; + return [cch, ctab, virtPath, rgst]; +} + +/* 2.4.105 TODO */ +function parse_ExternName(blob, length, opts) { + var flags = blob.read_shift(2); + var body; + var o = { + fBuiltIn: flags & 0x01, + fWantAdvise: (flags >>> 1) & 0x01, + fWantPict: (flags >>> 2) & 0x01, + fOle: (flags >>> 3) & 0x01, + fOleLink: (flags >>> 4) & 0x01, + cf: (flags >>> 5) & 0x3FF, + fIcon: flags >>> 15 & 0x01 + }; + if(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2); + //else throw new Error("unsupported SupBook cch: " + opts.sbcch); + o.body = body || blob.read_shift(length-2); + return o; +} + +/* 2.4.150 TODO */ +function parse_Lbl(blob, length, opts) { + if(opts.biff < 8) return parse_Label(blob, length, opts); + var target = blob.l + length; + var flags = blob.read_shift(2); + var chKey = blob.read_shift(1); + var cch = blob.read_shift(1); + var cce = blob.read_shift(2); + blob.l += 2; + var itab = blob.read_shift(2); + blob.l += 4; + var name = parse_XLUnicodeStringNoCch(blob, cch, opts); + var rgce = parse_NameParsedFormula(blob, target - blob.l, opts, cce); + return { + chKey: chKey, + Name: name, + rgce: rgce + }; +} + +/* 2.4.106 TODO: verify supbook manipulation */ +function parse_ExternSheet(blob, length, opts) { + if(opts.biff < 8) return parse_ShortXLUnicodeString(blob, length, opts); + var o = parslurp2(blob,length,parse_XTI); + var oo = []; + if(opts.sbcch === 0x0401) { + for(var i = 0; i != o.length; ++i) oo.push(opts.snames[o[i][1]]); + return oo; + } + else return o; +} + +/* 2.4.260 */ +function parse_ShrFmla(blob, length, opts) { + var ref = parse_RefU(blob, 6); + blob.l++; + var cUse = blob.read_shift(1); + length -= 8; + return [parse_SharedParsedFormula(blob, length, opts), cUse]; +} + +/* 2.4.4 TODO */ +function parse_Array(blob, length, opts) { + var ref = parse_Ref(blob, 6); + blob.l += 6; length -= 12; /* TODO: fAlwaysCalc */ + return [ref, parse_ArrayParsedFormula(blob, length, opts, ref)]; +} + +/* 2.4.173 */ +function parse_MTRSettings(blob, length) { + var fMTREnabled = blob.read_shift(4) !== 0x00; + var fUserSetThreadCount = blob.read_shift(4) !== 0x00; + var cUserThreadCount = blob.read_shift(4); + return [fMTREnabled, fUserSetThreadCount, cUserThreadCount]; +} + +/* 2.5.186 TODO: BIFF5 */ +function parse_NoteSh(blob, length, opts) { + if(opts.biff < 8) return; + var row = blob.read_shift(2), col = blob.read_shift(2); + var flags = blob.read_shift(2), idObj = blob.read_shift(2); + var stAuthor = parse_XLUnicodeString2(blob, 0, opts); + if(opts.biff < 8) blob.read_shift(1); + return [{r:row,c:col}, stAuthor, idObj, flags]; +} + +/* 2.4.179 */ +function parse_Note(blob, length, opts) { + /* TODO: Support revisions */ + return parse_NoteSh(blob, length, opts); +} + +/* 2.4.168 */ +function parse_MergeCells(blob, length) { + var merges = []; + var cmcs = blob.read_shift(2); + while (cmcs--) merges.push(parse_Ref8U(blob,length)); + return merges; +} + +/* 2.4.181 TODO: parse all the things! */ +function parse_Obj(blob, length) { + var cmo = parse_FtCmo(blob, 22); // id, ot, flags + var fts = parse_FtArray(blob, length-22, cmo[1]); + return { cmo: cmo, ft:fts }; +} + +/* 2.4.329 TODO: parse properly */ +function parse_TxO(blob, length, opts) { + var s = blob.l; +try { + blob.l += 4; + var ot = (opts.lastobj||{cmo:[0,0]}).cmo[1]; + var controlInfo; + if([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6; + else controlInfo = parse_ControlInfo(blob, 6, opts); + var cchText = blob.read_shift(2); + var cbRuns = blob.read_shift(2); + var ifntEmpty = parse_FontIndex(blob, 2); + var len = blob.read_shift(2); + blob.l += len; + //var fmla = parse_ObjFmla(blob, s + length - blob.l); + + var texts = ""; + for(var i = 1; i < blob.lens.length-1; ++i) { + if(blob.l-s != blob.lens[i]) throw "TxO: bad continue record"; + var hdr = blob[blob.l]; + var t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1); + texts += t; + if(texts.length >= (hdr ? cchText : 2*cchText)) break; + } + if(texts.length !== cchText && texts.length !== cchText*2) { + throw "cchText: " + cchText + " != " + texts.length; + } + + blob.l = s + length; + /* 2.5.272 TxORuns */ +// var rgTxoRuns = []; +// for(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8; +// var cchText2 = blob.read_shift(2); +// if(cchText2 !== cchText) throw "TxOLastRun mismatch: " + cchText2 + " " + cchText; +// blob.l += 6; +// if(s + length != blob.l) throw "TxO " + (s + length) + ", at " + blob.l; + return { t: texts }; +} catch(e) { blob.l = s + length; return { t: texts||"" }; } +} + +/* 2.4.140 */ +var parse_HLink = function(blob, length) { + var ref = parse_Ref8U(blob, 8); + blob.l += 16; /* CLSID */ + var hlink = parse_Hyperlink(blob, length-24); + return [ref, hlink]; +}; + +/* 2.4.141 */ +var parse_HLinkTooltip = function(blob, length) { + var end = blob.l + length; + blob.read_shift(2); + var ref = parse_Ref8U(blob, 8); + var wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont'); + wzTooltip = wzTooltip.replace(chr0,""); + return [ref, wzTooltip]; +}; + +/* 2.4.63 */ +function parse_Country(blob, length) { + var o = [], d; + d = blob.read_shift(2); o[0] = CountryEnum[d] || d; + d = blob.read_shift(2); o[1] = CountryEnum[d] || d; + return o; +} + +/* 2.4.50 ClrtClient */ +function parse_ClrtClient(blob, length) { + var ccv = blob.read_shift(2); + var o = []; + while(ccv-->0) o.push(parse_LongRGB(blob, 8)); + return o; +} + +/* 2.4.188 */ +function parse_Palette(blob, length) { + var ccv = blob.read_shift(2); + var o = []; + while(ccv-->0) o.push(parse_LongRGB(blob, 8)); + return o; +} + +/* 2.4.354 */ +function parse_XFCRC(blob, length) { + blob.l += 2; + var o = {cxfs:0, crc:0}; + o.cxfs = blob.read_shift(2); + o.crc = blob.read_shift(4); + return o; +} + + +var parse_Style = parsenoop; +var parse_StyleExt = parsenoop; + +var parse_ColInfo = parsenoop; + +var parse_Window2 = parsenoop; + + +var parse_Backup = parsebool; /* 2.4.14 */ +var parse_Blank = parse_XLSCell; /* 2.4.20 Just the cell */ +var parse_BottomMargin = parse_Xnum; /* 2.4.27 */ +var parse_BuiltInFnGroupCount = parseuint16; /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ +var parse_CalcCount = parseuint16; /* 2.4.31 #Iterations */ +var parse_CalcDelta = parse_Xnum; /* 2.4.32 */ +var parse_CalcIter = parsebool; /* 2.4.33 1=iterative calc */ +var parse_CalcMode = parseuint16; /* 2.4.34 0=manual, 1=auto (def), 2=table */ +var parse_CalcPrecision = parsebool; /* 2.4.35 */ +var parse_CalcRefMode = parsenoop2; /* 2.4.36 */ +var parse_CalcSaveRecalc = parsebool; /* 2.4.37 */ +var parse_CodePage = parseuint16; /* 2.4.52 */ +var parse_Compat12 = parsebool; /* 2.4.54 true = no compatibility check */ +var parse_Date1904 = parsebool; /* 2.4.77 - 1=1904,0=1900 */ +var parse_DefColWidth = parseuint16; /* 2.4.89 */ +var parse_DSF = parsenoop2; /* 2.4.94 -- MUST be ignored */ +var parse_EntExU2 = parsenoop2; /* 2.4.102 -- Explicitly says to ignore */ +var parse_EOF = parsenoop2; /* 2.4.103 */ +var parse_Excel9File = parsenoop2; /* 2.4.104 -- Optional and unused */ +var parse_FeatHdr = parsenoop2; /* 2.4.112 */ +var parse_FontX = parseuint16; /* 2.4.123 */ +var parse_Footer = parse_XLHeaderFooter; /* 2.4.124 */ +var parse_GridSet = parseuint16; /* 2.4.132, =1 */ +var parse_HCenter = parsebool; /* 2.4.135 sheet centered horizontal on print */ +var parse_Header = parse_XLHeaderFooter; /* 2.4.136 */ +var parse_HideObj = parse_HideObjEnum; /* 2.4.139 */ +var parse_InterfaceEnd = parsenoop2; /* 2.4.145 -- noop */ +var parse_LeftMargin = parse_Xnum; /* 2.4.151 */ +var parse_Mms = parsenoop2; /* 2.4.169 -- Explicitly says to ignore */ +var parse_ObjProtect = parsebool; /* 2.4.183 -- must be 1 if present */ +var parse_Password = parseuint16; /* 2.4.191 */ +var parse_PrintGrid = parsebool; /* 2.4.202 */ +var parse_PrintRowCol = parsebool; /* 2.4.203 */ +var parse_PrintSize = parseuint16; /* 2.4.204 0:3 */ +var parse_Prot4Rev = parsebool; /* 2.4.205 */ +var parse_Prot4RevPass = parseuint16; /* 2.4.206 */ +var parse_Protect = parsebool; /* 2.4.207 */ +var parse_RefreshAll = parsebool; /* 2.4.217 -- must be 0 if not template */ +var parse_RightMargin = parse_Xnum; /* 2.4.219 */ +var parse_RRTabId = parseuint16a; /* 2.4.241 */ +var parse_ScenarioProtect = parsebool; /* 2.4.245 */ +var parse_Scl = parseuint16a; /* 2.4.247 num, den */ +var parse_String = parse_XLUnicodeString; /* 2.4.268 */ +var parse_SxBool = parsebool; /* 2.4.274 */ +var parse_TopMargin = parse_Xnum; /* 2.4.328 */ +var parse_UsesELFs = parsebool; /* 2.4.337 -- should be 0 */ +var parse_VCenter = parsebool; /* 2.4.342 */ +var parse_WinProtect = parsebool; /* 2.4.347 */ +var parse_WriteProtect = parsenoop; /* 2.4.350 empty record */ + + +/* ---- */ +var parse_VerticalPageBreaks = parsenoop; +var parse_HorizontalPageBreaks = parsenoop; +var parse_Selection = parsenoop; +var parse_Continue = parsenoop; +var parse_Pane = parsenoop; +var parse_Pls = parsenoop; +var parse_DCon = parsenoop; +var parse_DConRef = parsenoop; +var parse_DConName = parsenoop; +var parse_XCT = parsenoop; +var parse_CRN = parsenoop; +var parse_FileSharing = parsenoop; +var parse_Uncalced = parsenoop; +var parse_Template = parsenoop; +var parse_Intl = parsenoop; +var parse_WsBool = parsenoop; +var parse_Sort = parsenoop; +var parse_Sync = parsenoop; +var parse_LPr = parsenoop; +var parse_DxGCol = parsenoop; +var parse_FnGroupName = parsenoop; +var parse_FilterMode = parsenoop; +var parse_AutoFilterInfo = parsenoop; +var parse_AutoFilter = parsenoop; +var parse_Setup = parsenoop; +var parse_ScenMan = parsenoop; +var parse_SCENARIO = parsenoop; +var parse_SxView = parsenoop; +var parse_Sxvd = parsenoop; +var parse_SXVI = parsenoop; +var parse_SxIvd = parsenoop; +var parse_SXLI = parsenoop; +var parse_SXPI = parsenoop; +var parse_DocRoute = parsenoop; +var parse_RecipName = parsenoop; +var parse_MulBlank = parsenoop; +var parse_SXDI = parsenoop; +var parse_SXDB = parsenoop; +var parse_SXFDB = parsenoop; +var parse_SXDBB = parsenoop; +var parse_SXNum = parsenoop; +var parse_SxErr = parsenoop; +var parse_SXInt = parsenoop; +var parse_SXString = parsenoop; +var parse_SXDtr = parsenoop; +var parse_SxNil = parsenoop; +var parse_SXTbl = parsenoop; +var parse_SXTBRGIITM = parsenoop; +var parse_SxTbpg = parsenoop; +var parse_ObProj = parsenoop; +var parse_SXStreamID = parsenoop; +var parse_DBCell = parsenoop; +var parse_SXRng = parsenoop; +var parse_SxIsxoper = parsenoop; +var parse_BookBool = parsenoop; +var parse_DbOrParamQry = parsenoop; +var parse_OleObjectSize = parsenoop; +var parse_SXVS = parsenoop; +var parse_BkHim = parsenoop; +var parse_MsoDrawingGroup = parsenoop; +var parse_MsoDrawing = parsenoop; +var parse_MsoDrawingSelection = parsenoop; +var parse_PhoneticInfo = parsenoop; +var parse_SxRule = parsenoop; +var parse_SXEx = parsenoop; +var parse_SxFilt = parsenoop; +var parse_SxDXF = parsenoop; +var parse_SxItm = parsenoop; +var parse_SxName = parsenoop; +var parse_SxSelect = parsenoop; +var parse_SXPair = parsenoop; +var parse_SxFmla = parsenoop; +var parse_SxFormat = parsenoop; +var parse_SXVDEx = parsenoop; +var parse_SXFormula = parsenoop; +var parse_SXDBEx = parsenoop; +var parse_RRDInsDel = parsenoop; +var parse_RRDHead = parsenoop; +var parse_RRDChgCell = parsenoop; +var parse_RRDRenSheet = parsenoop; +var parse_RRSort = parsenoop; +var parse_RRDMove = parsenoop; +var parse_RRFormat = parsenoop; +var parse_RRAutoFmt = parsenoop; +var parse_RRInsertSh = parsenoop; +var parse_RRDMoveBegin = parsenoop; +var parse_RRDMoveEnd = parsenoop; +var parse_RRDInsDelBegin = parsenoop; +var parse_RRDInsDelEnd = parsenoop; +var parse_RRDConflict = parsenoop; +var parse_RRDDefName = parsenoop; +var parse_RRDRstEtxp = parsenoop; +var parse_LRng = parsenoop; +var parse_CUsr = parsenoop; +var parse_CbUsr = parsenoop; +var parse_UsrInfo = parsenoop; +var parse_UsrExcl = parsenoop; +var parse_FileLock = parsenoop; +var parse_RRDInfo = parsenoop; +var parse_BCUsrs = parsenoop; +var parse_UsrChk = parsenoop; +var parse_UserBView = parsenoop; +var parse_UserSViewBegin = parsenoop; // overloaded +var parse_UserSViewEnd = parsenoop; +var parse_RRDUserView = parsenoop; +var parse_Qsi = parsenoop; +var parse_CondFmt = parsenoop; +var parse_CF = parsenoop; +var parse_DVal = parsenoop; +var parse_DConBin = parsenoop; +var parse_Lel = parsenoop; +var parse_XLSCodeName = parse_XLUnicodeString; +var parse_SXFDBType = parsenoop; +var parse_ObNoMacros = parsenoop; +var parse_Dv = parsenoop; +var parse_Index = parsenoop; +var parse_Table = parsenoop; +var parse_BigName = parsenoop; +var parse_ContinueBigName = parsenoop; +var parse_WebPub = parsenoop; +var parse_QsiSXTag = parsenoop; +var parse_DBQueryExt = parsenoop; +var parse_ExtString = parsenoop; +var parse_TxtQry = parsenoop; +var parse_Qsir = parsenoop; +var parse_Qsif = parsenoop; +var parse_RRDTQSIF = parsenoop; +var parse_OleDbConn = parsenoop; +var parse_WOpt = parsenoop; +var parse_SXViewEx = parsenoop; +var parse_SXTH = parsenoop; +var parse_SXPIEx = parsenoop; +var parse_SXVDTEx = parsenoop; +var parse_SXViewEx9 = parsenoop; +var parse_ContinueFrt = parsenoop; +var parse_RealTimeData = parsenoop; +var parse_ChartFrtInfo = parsenoop; +var parse_FrtWrapper = parsenoop; +var parse_StartBlock = parsenoop; +var parse_EndBlock = parsenoop; +var parse_StartObject = parsenoop; +var parse_EndObject = parsenoop; +var parse_CatLab = parsenoop; +var parse_YMult = parsenoop; +var parse_SXViewLink = parsenoop; +var parse_PivotChartBits = parsenoop; +var parse_FrtFontList = parsenoop; +var parse_SheetExt = parsenoop; +var parse_BookExt = parsenoop; +var parse_SXAddl = parsenoop; +var parse_CrErr = parsenoop; +var parse_HFPicture = parsenoop; +var parse_Feat = parsenoop; +var parse_DataLabExt = parsenoop; +var parse_DataLabExtContents = parsenoop; +var parse_CellWatch = parsenoop; +var parse_FeatHdr11 = parsenoop; +var parse_Feature11 = parsenoop; +var parse_DropDownObjIds = parsenoop; +var parse_ContinueFrt11 = parsenoop; +var parse_DConn = parsenoop; +var parse_List12 = parsenoop; +var parse_Feature12 = parsenoop; +var parse_CondFmt12 = parsenoop; +var parse_CF12 = parsenoop; +var parse_CFEx = parsenoop; +var parse_AutoFilter12 = parsenoop; +var parse_ContinueFrt12 = parsenoop; +var parse_MDTInfo = parsenoop; +var parse_MDXStr = parsenoop; +var parse_MDXTuple = parsenoop; +var parse_MDXSet = parsenoop; +var parse_MDXProp = parsenoop; +var parse_MDXKPI = parsenoop; +var parse_MDB = parsenoop; +var parse_PLV = parsenoop; +var parse_DXF = parsenoop; +var parse_TableStyles = parsenoop; +var parse_TableStyle = parsenoop; +var parse_TableStyleElement = parsenoop; +var parse_NamePublish = parsenoop; +var parse_NameCmt = parsenoop; +var parse_SortData = parsenoop; +var parse_GUIDTypeLib = parsenoop; +var parse_FnGrp12 = parsenoop; +var parse_NameFnGrp12 = parsenoop; +var parse_HeaderFooter = parsenoop; +var parse_CrtLayout12 = parsenoop; +var parse_CrtMlFrt = parsenoop; +var parse_CrtMlFrtContinue = parsenoop; +var parse_ShapePropsStream = parsenoop; +var parse_TextPropsStream = parsenoop; +var parse_RichTextStream = parsenoop; +var parse_CrtLayout12A = parsenoop; +var parse_Units = parsenoop; +var parse_Chart = parsenoop; +var parse_Series = parsenoop; +var parse_DataFormat = parsenoop; +var parse_LineFormat = parsenoop; +var parse_MarkerFormat = parsenoop; +var parse_AreaFormat = parsenoop; +var parse_PieFormat = parsenoop; +var parse_AttachedLabel = parsenoop; +var parse_SeriesText = parsenoop; +var parse_ChartFormat = parsenoop; +var parse_Legend = parsenoop; +var parse_SeriesList = parsenoop; +var parse_Bar = parsenoop; +var parse_Line = parsenoop; +var parse_Pie = parsenoop; +var parse_Area = parsenoop; +var parse_Scatter = parsenoop; +var parse_CrtLine = parsenoop; +var parse_Axis = parsenoop; +var parse_Tick = parsenoop; +var parse_ValueRange = parsenoop; +var parse_CatSerRange = parsenoop; +var parse_AxisLine = parsenoop; +var parse_CrtLink = parsenoop; +var parse_DefaultText = parsenoop; +var parse_Text = parsenoop; +var parse_ObjectLink = parsenoop; +var parse_Frame = parsenoop; +var parse_Begin = parsenoop; +var parse_End = parsenoop; +var parse_PlotArea = parsenoop; +var parse_Chart3d = parsenoop; +var parse_PicF = parsenoop; +var parse_DropBar = parsenoop; +var parse_Radar = parsenoop; +var parse_Surf = parsenoop; +var parse_RadarArea = parsenoop; +var parse_AxisParent = parsenoop; +var parse_LegendException = parsenoop; +var parse_ShtProps = parsenoop; +var parse_SerToCrt = parsenoop; +var parse_AxesUsed = parsenoop; +var parse_SBaseRef = parsenoop; +var parse_SerParent = parsenoop; +var parse_SerAuxTrend = parsenoop; +var parse_IFmtRecord = parsenoop; +var parse_Pos = parsenoop; +var parse_AlRuns = parsenoop; +var parse_BRAI = parsenoop; +var parse_SerAuxErrBar = parsenoop; +var parse_SerFmt = parsenoop; +var parse_Chart3DBarShape = parsenoop; +var parse_Fbi = parsenoop; +var parse_BopPop = parsenoop; +var parse_AxcExt = parsenoop; +var parse_Dat = parsenoop; +var parse_PlotGrowth = parsenoop; +var parse_SIIndex = parsenoop; +var parse_GelFrame = parsenoop; +var parse_BopPopCustom = parsenoop; +var parse_Fbi2 = parsenoop; + +/* --- Specific to versions before BIFF8 --- */ +function parse_BIFF5String(blob) { + var len = blob.read_shift(1); + return blob.read_shift(len, 'sbcs-cont'); +} + +/* BIFF2_??? where ??? is the name from [XLS] */ +function parse_BIFF2STR(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + ++blob.l; + var str = parse_XLUnicodeString2(blob, length-7, opts); + cell.val = str; + return cell; +} + +function parse_BIFF2NUM(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + ++blob.l; + var num = parse_Xnum(blob, 8); + cell.val = num; + return cell; +} + /* 18.4.1 charset to codepage mapping */ var CS2CP = { 0: 1252, /* ANSI */ @@ -2122,6 +4366,186 @@ function write_sst_bin(sst, opts) { write_record(ba, "BrtEndSst"); return ba.end(); } +function _JS2ANSI(str) { if(typeof cptable !== 'undefined') return cptable.utils.encode(1252, str); return str.split("").map(function(x) { return x.charCodeAt(0); }); } + +/* [MS-OFFCRYPTO] 2.1.4 Version */ +function parse_Version(blob, length) { + var o = {}; + o.Major = blob.read_shift(2); + o.Minor = blob.read_shift(2); + return o; +} +/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */ +function parse_EncryptionHeader(blob, length) { + var o = {}; + o.Flags = blob.read_shift(4); + + // Check if SizeExtra is 0x00000000 + var tmp = blob.read_shift(4); + if(tmp !== 0) throw 'Unrecognized SizeExtra: ' + tmp; + + o.AlgID = blob.read_shift(4); + switch(o.AlgID) { + case 0: case 0x6801: case 0x660E: case 0x660F: case 0x6610: break; + default: throw 'Unrecognized encryption algorithm: ' + o.AlgID; + } + parsenoop(blob, length-12); + return o; +} + +/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */ +function parse_EncryptionVerifier(blob, length) { + return parsenoop(blob, length); +} +/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */ +function parse_RC4CryptoHeader(blob, length) { + var o = {}; + var vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4; + if(vers.Minor != 2) throw 'unrecognized minor version code: ' + vers.Minor; + if(vers.Major > 4 || vers.Major < 2) throw 'unrecognized major version code: ' + vers.Major; + o.Flags = blob.read_shift(4); length -= 4; + var sz = blob.read_shift(4); length -= 4; + o.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz; + o.EncryptionVerifier = parse_EncryptionVerifier(blob, length); + return o; +} +/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */ +function parse_RC4Header(blob, length) { + var o = {}; + var vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4; + if(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor; + o.Salt = blob.read_shift(16); + o.EncryptedVerifier = blob.read_shift(16); + o.EncryptedVerifierHash = blob.read_shift(16); + return o; +} + +/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */ +function crypto_CreatePasswordVerifier_Method1(Password) { + var Verifier = 0x0000, PasswordArray; + var PasswordDecoded = _JS2ANSI(Password); + var len = PasswordDecoded.length + 1, i, PasswordByte; + var Intermediate1, Intermediate2, Intermediate3; + PasswordArray = new_raw_buf(len); + PasswordArray[0] = PasswordDecoded.length; + for(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1]; + for(i = len-1; i >= 0; --i) { + PasswordByte = PasswordArray[i]; + Intermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1; + Intermediate2 = (Verifier << 1) & 0x7FFF; + Intermediate3 = Intermediate1 | Intermediate2; + Verifier = Intermediate3 ^ PasswordByte; + } + return Verifier ^ 0xCE4B; +} + +/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */ +var crypto_CreateXorArray_Method1 = (function() { + var PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00]; + var InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3]; + var XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4]; + var Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; }; + var XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); }; + var CreateXorKey_Method1 = function(Password) { + var XorKey = InitialCode[Password.length - 1]; + var CurrentElement = 0x68; + for(var i = Password.length-1; i >= 0; --i) { + var Char = Password[i]; + for(var j = 0; j != 7; ++j) { + if(Char & 0x40) XorKey ^= XorMatrix[CurrentElement]; + Char *= 2; --CurrentElement; + } + } + return XorKey; + }; + return function(password) { + var Password = _JS2ANSI(password); + var XorKey = CreateXorKey_Method1(Password); + var Index = Password.length; + var ObfuscationArray = new_raw_buf(16); + for(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00; + var Temp, PasswordLastChar, PadIndex; + if((Index & 1) === 1) { + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(PadArray[0], Temp); + --Index; + Temp = XorKey & 0xFF; + PasswordLastChar = Password[Password.length - 1]; + ObfuscationArray[Index] = XorRor(PasswordLastChar, Temp); + } + while(Index > 0) { + --Index; + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + --Index; + Temp = XorKey & 0xFF; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + } + Index = 15; + PadIndex = 15 - Password.length; + while(PadIndex > 0) { + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp); + --Index; + --PadIndex; + Temp = XorKey & 0xFF; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + --Index; + --PadIndex; + } + return ObfuscationArray; + }; +})(); + +/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */ +var crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) { + /* If XorArray is set, use it; if O is not set, make changes in-place */ + if(!O) O = Data; + if(!XorArray) XorArray = crypto_CreateXorArray_Method1(password); + var Index, Value; + for(Index = 0; Index != Data.length; ++Index) { + Value = Data[Index]; + Value ^= XorArray[XorArrayIndex]; + Value = ((Value>>5) | (Value<<3)) & 0xFF; + O[Index] = Value; + ++XorArrayIndex; + } + return [O, XorArrayIndex, XorArray]; +}; + +var crypto_MakeXorDecryptor = function(password) { + var XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password); + return function(Data) { + var O = crypto_DecryptData_Method1(null, Data, XorArrayIndex, XorArray); + XorArrayIndex = O[1]; + return O[0]; + }; +}; + +/* 2.5.343 */ +function parse_XORObfuscation(blob, length, opts, out) { + var o = { key: parseuint16(blob), verificationBytes: parseuint16(blob) }; + if(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password); + out.valid = o.verificationBytes === o.verifier; + if(out.valid) out.insitu_decrypt = crypto_MakeXorDecryptor(opts.password); + return o; +} + +/* 2.4.117 */ +function parse_FilePassHeader(blob, length, oo) { + var o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2; + if(o.Info === 1) o.Data = parse_RC4Header(blob, length); + else o.Data = parse_RC4CryptoHeader(blob, length); + return o; +} +function parse_FilePass(blob, length, opts) { + var o = { Type: blob.read_shift(2) }; /* wEncryptionType */ + if(o.Type) parse_FilePassHeader(blob, length-2, o); + else parse_XORObfuscation(blob, length-2, opts, o); + return o; +} + + function hex2RGB(h) { var o = h.substr(h[0]==="#"?1:0,6); return [parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16)]; @@ -2186,6 +4610,26 @@ function find_mdw(collw, coll) { if(MDW === MAX_MDW) MDW = DEF_MDW; } } + +/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */ +var XLMLPatternTypeMap = { + "None": "none", + "Solid": "solid", + "Gray50": "mediumGray", + "Gray75": "darkGray", + "Gray25": "lightGray", + "HorzStripe": "darkHorizontal", + "VertStripe": "darkVertical", + "ReverseDiagStripe": "darkDown", + "DiagStripe": "darkUp", + "DiagCross": "darkGrid", + "ThickDiagCross": "darkTrellis", + "ThinHorzStripe": "lightHorizontal", + "ThinVertStripe": "lightVertical", + "ThinReverseDiagStripe": "lightDown", + "ThinHorzCross": "lightGrid" +}; + var styles = {}; // shared styles var themes = {}; // shared themes @@ -2604,6 +5048,84 @@ function parse_theme_xml(data, opts) { } function write_theme() { return '\n'; } +/* [MS-XLS] 2.4.326 TODO: payload is a zip file */ +function parse_Theme(blob, length) { + var dwThemeVersion = blob.read_shift(4); + if(dwThemeVersion === 124226) return; + blob.l += length-4; +} + +/* 2.5.49 */ +function parse_ColorTheme(blob, length) { return blob.read_shift(4); } + +/* 2.5.155 */ +function parse_FullColorExt(blob, length) { + var o = {}; + o.xclrType = blob.read_shift(2); + o.nTintShade = blob.read_shift(2); + switch(o.xclrType) { + case 0: blob.l += 4; break; + case 1: o.xclrValue = parse_IcvXF(blob, 4); break; + case 2: o.xclrValue = parse_LongRGBA(blob, 4); break; + case 3: o.xclrValue = parse_ColorTheme(blob, 4); break; + case 4: blob.l += 4; break; + } + blob.l += 8; + return o; +} + +/* 2.5.164 TODO: read 7 bits*/ +function parse_IcvXF(blob, length) { + return parsenoop(blob, length); +} + +/* 2.5.280 */ +function parse_XFExtGradient(blob, length) { + return parsenoop(blob, length); +} + +/* 2.5.108 */ +function parse_ExtProp(blob, length) { + var extType = blob.read_shift(2); + var cb = blob.read_shift(2); + var o = [extType]; + switch(extType) { + case 0x04: case 0x05: case 0x07: case 0x08: + case 0x09: case 0x0A: case 0x0B: case 0x0D: + o[1] = parse_FullColorExt(blob, cb); break; + case 0x06: o[1] = parse_XFExtGradient(blob, cb); break; + case 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 5 ? 1 : 2); break; + default: throw new Error("Unrecognized ExtProp type: " + extType + " " + cb); + } + return o; +} + +/* 2.4.355 */ +function parse_XFExt(blob, length) { + var end = blob.l + length; + blob.l += 2; + var ixfe = blob.read_shift(2); + blob.l += 2; + var cexts = blob.read_shift(2); + var ext = []; + while(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l)); + return {ixfe:ixfe, ext:ext}; +} + +/* xf is an XF, see parse_XFExt for xfext */ +function update_xfext(xf, xfext) { + xfext.forEach(function(xfe) { + switch(xfe[0]) { /* 2.5.108 extPropData */ + case 0x04: break; /* foreground color */ + case 0x05: break; /* background color */ + case 0x07: case 0x08: case 0x09: case 0x0a: break; + case 0x0d: break; /* text color */ + case 0x0e: break; /* font scheme */ + default: throw "bafuq" + xfe[0].toString(16); + } + }); +} + /* 18.6 Calculation Chain */ function parse_cc_xml(data, opts) { var d = []; @@ -2767,11 +5289,1921 @@ function parse_comments_bin(data, opts) { } function write_comments_bin(data, opts) { } +/* TODO: it will be useful to parse the function str */ +var rc_to_a1 = (function(){ + var rcregex = /(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g; + var rcbase; + function rcfunc($$,$1,$2,$3,$4,$5) { + var R = $3.length>0?parseInt($3,10)|0:0, C = $5.length>0?parseInt($5,10)|0:0; + if(C<0 && $4.length === 0) C=0; + if($4.length > 0) C += rcbase.c; + if($2.length > 0) R += rcbase.r; + return $1 + encode_col(C) + encode_row(R); + } + return function rc_to_a1(fstr, base) { + rcbase = base; + return fstr.replace(rcregex, rcfunc); + }; +})(); + +/* --- formula references point to MS-XLS --- */ +/* Small helpers */ +function parseread(l) { return function(blob, length) { blob.l+=l; return; }; } +function parseread1(blob, length) { blob.l+=1; return; } + +/* Rgce Helpers */ + +/* 2.5.51 */ +function parse_ColRelU(blob, length) { + var c = blob.read_shift(2); + return [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1]; +} + +/* 2.5.198.105 */ +function parse_RgceArea(blob, length) { + var r=blob.read_shift(2), R=blob.read_shift(2); + var c=parse_ColRelU(blob, 2); + var C=parse_ColRelU(blob, 2); + return { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} }; +} + +/* 2.5.198.105 TODO */ +function parse_RgceAreaRel(blob, length) { + var r=blob.read_shift(2), R=blob.read_shift(2); + var c=parse_ColRelU(blob, 2); + var C=parse_ColRelU(blob, 2); + return { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} }; +} + +/* 2.5.198.109 */ +function parse_RgceLoc(blob, length) { + var r = blob.read_shift(2); + var c = parse_ColRelU(blob, 2); + return {r:r, c:c[0], cRel:c[1], rRel:c[2]}; +} + +/* 2.5.198.111 */ +function parse_RgceLocRel(blob, length) { + var r = blob.read_shift(2); + var cl = blob.read_shift(2); + var cRel = (cl & 0x8000) >> 15, rRel = (cl & 0x4000) >> 14; + cl &= 0x3FFF; + if(cRel !== 0) while(cl >= 0x100) cl -= 0x100; + return {r:r,c:cl,cRel:cRel,rRel:rRel}; +} + +/* Ptg Tokens */ + +/* 2.5.198.27 */ +function parse_PtgArea(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var area = parse_RgceArea(blob, 8); + return [type, area]; +} + +/* 2.5.198.28 */ +function parse_PtgArea3d(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var ixti = blob.read_shift(2); + var area = parse_RgceArea(blob, 8); + return [type, ixti, area]; +} + +/* 2.5.198.29 */ +function parse_PtgAreaErr(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + blob.l += 8; + return [type]; +} +/* 2.5.198.30 */ +function parse_PtgAreaErr3d(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var ixti = blob.read_shift(2); + blob.l += 8; + return [type, ixti]; +} + +/* 2.5.198.31 */ +function parse_PtgAreaN(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var area = parse_RgceAreaRel(blob, 8); + return [type, area]; +} + +/* 2.5.198.32 -- ignore this and look in PtgExtraArray for shape + values */ +function parse_PtgArray(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + blob.l += 7; + return [type]; +} + +/* 2.5.198.33 */ +function parse_PtgAttrBaxcel(blob, length) { + var bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */ + var bitBaxcel = 1; + blob.l += 4; + return [bitSemi, bitBaxcel]; +} + +/* 2.5.198.34 */ +function parse_PtgAttrChoose(blob, length) { + blob.l +=2; + var offset = blob.read_shift(2); + var o = []; + /* offset is 1 less than the number of elements */ + for(var i = 0; i <= offset; ++i) o.push(blob.read_shift(2)); + return o; +} + +/* 2.5.198.35 */ +function parse_PtgAttrGoto(blob, length) { + var bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 2; + return [bitGoto, blob.read_shift(2)]; +} + +/* 2.5.198.36 */ +function parse_PtgAttrIf(blob, length) { + var bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 2; + return [bitIf, blob.read_shift(2)]; +} + +/* 2.5.198.37 */ +function parse_PtgAttrSemi(blob, length) { + var bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 4; + return [bitSemi]; +} + +/* 2.5.198.40 (used by PtgAttrSpace and PtgAttrSpaceSemi) */ +function parse_PtgAttrSpaceType(blob, length) { + var type = blob.read_shift(1), cch = blob.read_shift(1); + return [type, cch]; +} + +/* 2.5.198.38 */ +function parse_PtgAttrSpace(blob, length) { + blob.read_shift(2); + return parse_PtgAttrSpaceType(blob, 2); +} + +/* 2.5.198.39 */ +function parse_PtgAttrSpaceSemi(blob, length) { + blob.read_shift(2); + return parse_PtgAttrSpaceType(blob, 2); +} + +/* 2.5.198.84 TODO */ +function parse_PtgRef(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var loc = parse_RgceLoc(blob,4); + return [type, loc]; +} + +/* 2.5.198.88 TODO */ +function parse_PtgRefN(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var loc = parse_RgceLocRel(blob,4); + return [type, loc]; +} + +/* 2.5.198.85 TODO */ +function parse_PtgRef3d(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var ixti = blob.read_shift(2); // XtiIndex + var loc = parse_RgceLoc(blob,4); + return [type, ixti, loc]; +} + + +/* 2.5.198.62 TODO */ +function parse_PtgFunc(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var iftab = blob.read_shift(2); + return [FtabArgc[iftab], Ftab[iftab]]; +} +/* 2.5.198.63 TODO */ +function parse_PtgFuncVar(blob, length) { + blob.l++; + var cparams = blob.read_shift(1), tab = parsetab(blob); + return [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]]; +} + +function parsetab(blob, length) { + return [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF]; +} + +/* 2.5.198.41 */ +var parse_PtgAttrSum = parseread(4); +/* 2.5.198.43 */ +var parse_PtgConcat = parseread1; + +/* 2.5.198.58 */ +function parse_PtgExp(blob, length) { + blob.l++; + var row = blob.read_shift(2); + var col = blob.read_shift(2); + return [row, col]; +} + +/* 2.5.198.57 */ +function parse_PtgErr(blob, length) { blob.l++; return BErr[blob.read_shift(1)]; } + +/* 2.5.198.66 TODO */ +function parse_PtgInt(blob, length) { blob.l++; return blob.read_shift(2); } + +/* 2.5.198.42 */ +function parse_PtgBool(blob, length) { blob.l++; return blob.read_shift(1)!==0;} + +/* 2.5.198.79 */ +function parse_PtgNum(blob, length) { blob.l++; return parse_Xnum(blob, 8); } + +/* 2.5.198.89 */ +function parse_PtgStr(blob, length) { blob.l++; return parse_ShortXLUnicodeString(blob); } + +/* 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */ +function parse_SerAr(blob) { + var val = []; + switch((val[0] = blob.read_shift(1))) { + /* 2.5.192.113 */ + case 0x04: /* SerBool -- boolean */ + val[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE'; + blob.l += 7; break; + /* 2.5.192.114 */ + case 0x10: /* SerErr -- error */ + val[1] = BErr[blob[blob.l]]; + blob.l += 8; break; + /* 2.5.192.115 */ + case 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */ + blob.l += 8; break; + /* 2.5.192.116 */ + case 0x01: /* SerNum -- Xnum */ + val[1] = parse_Xnum(blob, 8); break; + /* 2.5.192.117 */ + case 0x02: /* SerStr -- XLUnicodeString (<256 chars) */ + val[1] = parse_XLUnicodeString(blob); break; + // default: throw "Bad SerAr: " + val[0]; /* Unreachable */ + } + return val; +} + +/* 2.5.198.61 */ +function parse_PtgExtraMem(blob, cce) { + var count = blob.read_shift(2); + var out = []; + for(var i = 0; i != count; ++i) out.push(parse_Ref8U(blob, 8)); + return out; +} + +/* 2.5.198.59 */ +function parse_PtgExtraArray(blob) { + var cols = 1 + blob.read_shift(1); //DColByteU + var rows = 1 + blob.read_shift(2); //DRw + for(var i = 0, o=[]; i != rows && (o[i] = []); ++i) + for(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob); + return o; +} + +/* 2.5.198.76 */ +function parse_PtgName(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var nameindex = blob.read_shift(4); + return [type, 0, nameindex]; +} + +/* 2.5.198.77 */ +function parse_PtgNameX(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var ixti = blob.read_shift(2); // XtiIndex + var nameindex = blob.read_shift(4); + return [type, ixti, nameindex]; +} + +/* 2.5.198.70 */ +function parse_PtgMemArea(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + blob.l += 4; + var cce = blob.read_shift(2); + return [type, cce]; +} + +/* 2.5.198.72 */ +function parse_PtgMemFunc(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var cce = blob.read_shift(2); + return [type, cce]; +} + + +/* 2.5.198.86 */ +function parse_PtgRefErr(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + blob.l += 4; + return [type]; +} + +/* 2.5.198.26 */ +var parse_PtgAdd = parseread1; +/* 2.5.198.45 */ +var parse_PtgDiv = parseread1; +/* 2.5.198.56 */ +var parse_PtgEq = parseread1; +/* 2.5.198.64 */ +var parse_PtgGe = parseread1; +/* 2.5.198.65 */ +var parse_PtgGt = parseread1; +/* 2.5.198.67 */ +var parse_PtgIsect = parseread1; +/* 2.5.198.68 */ +var parse_PtgLe = parseread1; +/* 2.5.198.69 */ +var parse_PtgLt = parseread1; +/* 2.5.198.74 */ +var parse_PtgMissArg = parseread1; +/* 2.5.198.75 */ +var parse_PtgMul = parseread1; +/* 2.5.198.78 */ +var parse_PtgNe = parseread1; +/* 2.5.198.80 */ +var parse_PtgParen = parseread1; +/* 2.5.198.81 */ +var parse_PtgPercent = parseread1; +/* 2.5.198.82 */ +var parse_PtgPower = parseread1; +/* 2.5.198.83 */ +var parse_PtgRange = parseread1; +/* 2.5.198.90 */ +var parse_PtgSub = parseread1; +/* 2.5.198.93 */ +var parse_PtgUminus = parseread1; +/* 2.5.198.94 */ +var parse_PtgUnion = parseread1; +/* 2.5.198.95 */ +var parse_PtgUplus = parseread1; + +/* 2.5.198.71 */ +var parse_PtgMemErr = parsenoop; +/* 2.5.198.73 */ +var parse_PtgMemNoMem = parsenoop; +/* 2.5.198.87 */ +var parse_PtgRefErr3d = parsenoop; +/* 2.5.198.92 */ +var parse_PtgTbl = parsenoop; + +/* 2.5.198.25 */ +var PtgTypes = { + 0x01: { n:'PtgExp', f:parse_PtgExp }, + 0x02: { n:'PtgTbl', f:parse_PtgTbl }, + 0x03: { n:'PtgAdd', f:parse_PtgAdd }, + 0x04: { n:'PtgSub', f:parse_PtgSub }, + 0x05: { n:'PtgMul', f:parse_PtgMul }, + 0x06: { n:'PtgDiv', f:parse_PtgDiv }, + 0x07: { n:'PtgPower', f:parse_PtgPower }, + 0x08: { n:'PtgConcat', f:parse_PtgConcat }, + 0x09: { n:'PtgLt', f:parse_PtgLt }, + 0x0A: { n:'PtgLe', f:parse_PtgLe }, + 0x0B: { n:'PtgEq', f:parse_PtgEq }, + 0x0C: { n:'PtgGe', f:parse_PtgGe }, + 0x0D: { n:'PtgGt', f:parse_PtgGt }, + 0x0E: { n:'PtgNe', f:parse_PtgNe }, + 0x0F: { n:'PtgIsect', f:parse_PtgIsect }, + 0x10: { n:'PtgUnion', f:parse_PtgUnion }, + 0x11: { n:'PtgRange', f:parse_PtgRange }, + 0x12: { n:'PtgUplus', f:parse_PtgUplus }, + 0x13: { n:'PtgUminus', f:parse_PtgUminus }, + 0x14: { n:'PtgPercent', f:parse_PtgPercent }, + 0x15: { n:'PtgParen', f:parse_PtgParen }, + 0x16: { n:'PtgMissArg', f:parse_PtgMissArg }, + 0x17: { n:'PtgStr', f:parse_PtgStr }, + 0x1C: { n:'PtgErr', f:parse_PtgErr }, + 0x1D: { n:'PtgBool', f:parse_PtgBool }, + 0x1E: { n:'PtgInt', f:parse_PtgInt }, + 0x1F: { n:'PtgNum', f:parse_PtgNum }, + 0x20: { n:'PtgArray', f:parse_PtgArray }, + 0x21: { n:'PtgFunc', f:parse_PtgFunc }, + 0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar }, + 0x23: { n:'PtgName', f:parse_PtgName }, + 0x24: { n:'PtgRef', f:parse_PtgRef }, + 0x25: { n:'PtgArea', f:parse_PtgArea }, + 0x26: { n:'PtgMemArea', f:parse_PtgMemArea }, + 0x27: { n:'PtgMemErr', f:parse_PtgMemErr }, + 0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem }, + 0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc }, + 0x2A: { n:'PtgRefErr', f:parse_PtgRefErr }, + 0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr }, + 0x2C: { n:'PtgRefN', f:parse_PtgRefN }, + 0x2D: { n:'PtgAreaN', f:parse_PtgAreaN }, + 0x39: { n:'PtgNameX', f:parse_PtgNameX }, + 0x3A: { n:'PtgRef3d', f:parse_PtgRef3d }, + 0x3B: { n:'PtgArea3d', f:parse_PtgArea3d }, + 0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d }, + 0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d }, + 0xFF: {} +}; +/* These are duplicated in the PtgTypes table */ +var PtgDupes = { + 0x40: 0x20, 0x60: 0x20, + 0x41: 0x21, 0x61: 0x21, + 0x42: 0x22, 0x62: 0x22, + 0x43: 0x23, 0x63: 0x23, + 0x44: 0x24, 0x64: 0x24, + 0x45: 0x25, 0x65: 0x25, + 0x46: 0x26, 0x66: 0x26, + 0x47: 0x27, 0x67: 0x27, + 0x48: 0x28, 0x68: 0x28, + 0x49: 0x29, 0x69: 0x29, + 0x4A: 0x2A, 0x6A: 0x2A, + 0x4B: 0x2B, 0x6B: 0x2B, + 0x4C: 0x2C, 0x6C: 0x2C, + 0x4D: 0x2D, 0x6D: 0x2D, + 0x59: 0x39, 0x79: 0x39, + 0x5A: 0x3A, 0x7A: 0x3A, + 0x5B: 0x3B, 0x7B: 0x3B, + 0x5C: 0x3C, 0x7C: 0x3C, + 0x5D: 0x3D, 0x7D: 0x3D +}; +(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})(); + +var Ptg18 = {}; +var Ptg19 = { + 0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi }, + 0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf }, + 0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose }, + 0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto }, + 0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum }, + 0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel }, + 0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace }, + 0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi }, + 0xFF: {} +}; + +/* 2.4.127 TODO */ +function parse_Formula(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + var val = parse_FormulaValue(blob,8); + var flags = blob.read_shift(1); + blob.read_shift(1); + var chn = blob.read_shift(4); + var cbf = ""; + if(opts.biff === 5) blob.l += length-20; + else cbf = parse_XLSCellParsedFormula(blob, length-20, opts); + return {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]}; +} + +/* 2.5.133 TODO: how to emit empty strings? */ +function parse_FormulaValue(blob) { + var b; + if(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n']; + switch(blob[blob.l]) { + case 0x00: blob.l += 8; return ["String", 's']; + case 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b']; + case 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e']; + case 0x03: blob.l += 8; return ["",'s']; + } +} + +/* 2.5.198.103 */ +function parse_RgbExtra(blob, length, rgce, opts) { + if(opts.biff < 8) return parsenoop(blob, length); + var target = blob.l + length; + var o = []; + for(var i = 0; i !== rgce.length; ++i) { + switch(rgce[i][0]) { + case 'PtgArray': /* PtgArray -> PtgExtraArray */ + rgce[i][1] = parse_PtgExtraArray(blob); + o.push(rgce[i][1]); + break; + case 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */ + rgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1]); + o.push(rgce[i][2]); + break; + default: break; + } + } + length = target - blob.l; + if(length !== 0) o.push(parsenoop(blob, length)); + return o; +} + +/* 2.5.198.21 */ +function parse_NameParsedFormula(blob, length, opts, cce) { + var target = blob.l + length; + var rgce = parse_Rgce(blob, cce); + var rgcb; + if(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.3 TODO */ +function parse_XLSCellParsedFormula(blob, length, opts) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce); + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, length - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.118 TODO */ +function parse_SharedParsedFormula(blob, length, opts) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + var rgce = parse_Rgce(blob, cce); + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.1 TODO */ +function parse_ArrayParsedFormula(blob, length, opts, ref) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce); + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.104 */ +function parse_Rgce(blob, length) { + var target = blob.l + length; + var R, id, ptgs = []; + while(target != blob.l) { + length = target - blob.l; + id = blob[blob.l]; + R = PtgTypes[id]; + //console.log("ptg", id, R) + if(id === 0x18 || id === 0x19) { + id = blob[blob.l + 1]; + R = (id === 0x18 ? Ptg18 : Ptg19)[id]; + } + if(!R || !R.f) { ptgs.push(parsenoop(blob, length)); } + else { ptgs.push([R.n, R.f(blob, length)]); } + } + return ptgs; +} + +function mapper(x) { return x.map(function f2(y) { return y[1];}).join(",");} + +/* 2.2.2 + Magic TODO */ +function stringify_formula(formula, range, cell, supbooks, opts) { + if(opts !== undefined && opts.biff === 5) return "BIFF5??"; + var _range = range !== undefined ? range : {s:{c:0, r:0}}; + var stack = [], e1, e2, type, c, ixti, nameidx, r; + if(!formula[0] || !formula[0][0]) return ""; + //console.log("--",cell,formula[0]) + for(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) { + var f = formula[0][ff]; + //console.log("++",f, stack) + switch(f[0]) { + /* 2.2.2.1 Unary Operator Tokens */ + /* 2.5.198.93 */ + case 'PtgUminus': stack.push("-" + stack.pop()); break; + /* 2.5.198.95 */ + case 'PtgUplus': stack.push("+" + stack.pop()); break; + /* 2.5.198.81 */ + case 'PtgPercent': stack.push(stack.pop() + "%"); break; + + /* 2.2.2.1 Binary Value Operator Token */ + /* 2.5.198.26 */ + case 'PtgAdd': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"+"+e1); + break; + /* 2.5.198.90 */ + case 'PtgSub': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"-"+e1); + break; + /* 2.5.198.75 */ + case 'PtgMul': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"*"+e1); + break; + /* 2.5.198.45 */ + case 'PtgDiv': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"/"+e1); + break; + /* 2.5.198.82 */ + case 'PtgPower': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"^"+e1); + break; + /* 2.5.198.43 */ + case 'PtgConcat': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"&"+e1); + break; + /* 2.5.198.69 */ + case 'PtgLt': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<"+e1); + break; + /* 2.5.198.68 */ + case 'PtgLe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<="+e1); + break; + /* 2.5.198.56 */ + case 'PtgEq': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"="+e1); + break; + /* 2.5.198.64 */ + case 'PtgGe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+">="+e1); + break; + /* 2.5.198.65 */ + case 'PtgGt': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+">"+e1); + break; + /* 2.5.198.78 */ + case 'PtgNe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<>"+e1); + break; + + /* 2.2.2.1 Binary Reference Operator Token */ + /* 2.5.198.67 */ + case 'PtgIsect': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+" "+e1); + break; + case 'PtgUnion': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+","+e1); + break; + case 'PtgRange': break; + + /* 2.2.2.3 Control Tokens "can be ignored" */ + /* 2.5.198.34 */ + case 'PtgAttrChoose': break; + /* 2.5.198.35 */ + case 'PtgAttrGoto': break; + /* 2.5.198.36 */ + case 'PtgAttrIf': break; + + + /* 2.5.198.84 */ + case 'PtgRef': + type = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), _range); + stack.push(encode_cell(c)); + break; + /* 2.5.198.88 */ + case 'PtgRefN': + type = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), cell); + stack.push(encode_cell(c)); + break; + case 'PtgRef3d': // TODO: lots of stuff + type = f[1][0]; ixti = f[1][1]; c = shift_cell_xls(f[1][2], _range); + stack.push(supbooks[1][ixti+1]+"!"+encode_cell(c)); + break; + + /* Function Call */ + /* 2.5.198.62 */ + case 'PtgFunc': + /* 2.5.198.63 */ + case 'PtgFuncVar': + /* f[1] = [argc, func] */ + var argc = f[1][0], func = f[1][1]; + if(!argc) argc = 0; + var args = stack.slice(-argc); + stack.length -= argc; + if(func === 'User') func = args.shift(); + stack.push(func + "(" + args.join(",") + ")"); + break; + + /* 2.5.198.42 */ + case 'PtgBool': stack.push(f[1] ? "TRUE" : "FALSE"); break; + /* 2.5.198.66 */ + case 'PtgInt': stack.push(f[1]); break; + /* 2.5.198.79 TODO: precision? */ + case 'PtgNum': stack.push(String(f[1])); break; + /* 2.5.198.89 */ + case 'PtgStr': stack.push('"' + f[1] + '"'); break; + /* 2.5.198.57 */ + case 'PtgErr': stack.push(f[1]); break; + /* 2.5.198.27 TODO: fixed points */ + case 'PtgArea': + type = f[1][0]; r = shift_range_xls(f[1][1], _range); + stack.push(encode_range(r)); + break; + /* 2.5.198.28 */ + case 'PtgArea3d': // TODO: lots of stuff + type = f[1][0]; ixti = f[1][1]; r = f[1][2]; + stack.push(supbooks[1][ixti+1]+"!"+encode_range(r)); + break; + /* 2.5.198.41 */ + case 'PtgAttrSum': + stack.push("SUM(" + stack.pop() + ")"); + break; + + /* Expression Prefixes */ + /* 2.5.198.37 */ + case 'PtgAttrSemi': break; + + /* 2.5.97.60 TODO: do something different for revisions */ + case 'PtgName': + /* f[1] = type, 0, nameindex */ + nameidx = f[1][2]; + var lbl = supbooks[0][nameidx]; + var name = lbl.Name; + if(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name]; + stack.push(name); + break; + + /* 2.5.97.61 TODO: do something different for revisions */ + case 'PtgNameX': + /* f[1] = type, ixti, nameindex */ + var bookidx = f[1][1]; nameidx = f[1][2]; var externbook; + /* TODO: Properly handle missing values */ + if(supbooks[bookidx+1]) externbook = supbooks[bookidx+1][nameidx]; + else if(supbooks[bookidx-1]) externbook = supbooks[bookidx-1][nameidx]; + if(!externbook) externbook = {body: "??NAMEX??"}; + stack.push(externbook.body); + break; + + /* 2.2.2.4 Display Tokens */ + /* 2.5.198.80 */ + case 'PtgParen': stack.push('(' + stack.pop() + ')'); break; + + /* 2.5.198.86 */ + case 'PtgRefErr': stack.push('#REF!'); break; + + /* */ + /* 2.5.198.58 TODO */ + case 'PtgExp': + c = {c:f[1][1],r:f[1][0]}; + var q = {c: cell.c, r:cell.r}; + if(supbooks.sharedf[encode_cell(c)]) { + var parsedf = (supbooks.sharedf[encode_cell(c)]); + stack.push(stringify_formula(parsedf, _range, q, supbooks, opts)); + } + else { + var fnd = false; + for(e1=0;e1!=supbooks.arrayf.length; ++e1) { + /* TODO: should be something like range_has */ + e2 = supbooks.arrayf[e1]; + if(c.c < e2[0].s.c || c.c > e2[0].e.c) continue; + if(c.r < e2[0].s.r || c.r > e2[0].e.r) continue; + stack.push(stringify_formula(e2[1], _range, q, supbooks, opts)); + } + if(!fnd) stack.push(f[1]); + } + break; + + /* 2.5.198.32 TODO */ + case 'PtgArray': + stack.push("{" + f[1].map(mapper).join(";") + "}"); + break; + + /* 2.2.2.5 Mem Tokens */ + /* 2.5.198.70 TODO: confirm this is a non-display */ + case 'PtgMemArea': + //stack.push("(" + f[2].map(encode_range).join(",") + ")"); + break; + + /* 2.5.198.38 TODO */ + case 'PtgAttrSpace': break; + + /* 2.5.198.92 TODO */ + case 'PtgTbl': break; + + /* 2.5.198.71 */ + case 'PtgMemErr': break; + + /* 2.5.198.74 */ + case 'PtgMissArg': + stack.push(""); + break; + + /* 2.5.198.29 TODO */ + case 'PtgAreaErr': break; + + /* 2.5.198.31 TODO */ + case 'PtgAreaN': stack.push(""); break; + + /* 2.5.198.87 TODO */ + case 'PtgRefErr3d': break; + + /* 2.5.198.72 TODO */ + case 'PtgMemFunc': break; + + default: throw 'Unrecognized Formula Token: ' + f; + } + //console.log("::",f, stack) + } + //console.log("--",stack); + return stack[0]; +} + /* [MS-XLSB] 2.5.97.4 CellParsedFormula TODO: use similar logic to js-xls */ -function parse_CellParsedFormula(data, length) { +function parse_XLSBCellParsedFormula(data, length) { var cce = data.read_shift(4); return parsenoop(data, length-4); } +/* [MS-XLS] 2.5.198.44 */ +var PtgDataType = { + 0x1: "REFERENCE", // reference to range + 0x2: "VALUE", // single value + 0x3: "ARRAY" // array of values +}; + +/* [MS-XLS] 2.5.198.4 */ +var Cetab = { + 0x0000: 'BEEP', + 0x0001: 'OPEN', + 0x0002: 'OPEN.LINKS', + 0x0003: 'CLOSE.ALL', + 0x0004: 'SAVE', + 0x0005: 'SAVE.AS', + 0x0006: 'FILE.DELETE', + 0x0007: 'PAGE.SETUP', + 0x0008: 'PRINT', + 0x0009: 'PRINTER.SETUP', + 0x000A: 'QUIT', + 0x000B: 'NEW.WINDOW', + 0x000C: 'ARRANGE.ALL', + 0x000D: 'WINDOW.SIZE', + 0x000E: 'WINDOW.MOVE', + 0x000F: 'FULL', + 0x0010: 'CLOSE', + 0x0011: 'RUN', + 0x0016: 'SET.PRINT.AREA', + 0x0017: 'SET.PRINT.TITLES', + 0x0018: 'SET.PAGE.BREAK', + 0x0019: 'REMOVE.PAGE.BREAK', + 0x001A: 'FONT', + 0x001B: 'DISPLAY', + 0x001C: 'PROTECT.DOCUMENT', + 0x001D: 'PRECISION', + 0x001E: 'A1.R1C1', + 0x001F: 'CALCULATE.NOW', + 0x0020: 'CALCULATION', + 0x0022: 'DATA.FIND', + 0x0023: 'EXTRACT', + 0x0024: 'DATA.DELETE', + 0x0025: 'SET.DATABASE', + 0x0026: 'SET.CRITERIA', + 0x0027: 'SORT', + 0x0028: 'DATA.SERIES', + 0x0029: 'TABLE', + 0x002A: 'FORMAT.NUMBER', + 0x002B: 'ALIGNMENT', + 0x002C: 'STYLE', + 0x002D: 'BORDER', + 0x002E: 'CELL.PROTECTION', + 0x002F: 'COLUMN.WIDTH', + 0x0030: 'UNDO', + 0x0031: 'CUT', + 0x0032: 'COPY', + 0x0033: 'PASTE', + 0x0034: 'CLEAR', + 0x0035: 'PASTE.SPECIAL', + 0x0036: 'EDIT.DELETE', + 0x0037: 'INSERT', + 0x0038: 'FILL.RIGHT', + 0x0039: 'FILL.DOWN', + 0x003D: 'DEFINE.NAME', + 0x003E: 'CREATE.NAMES', + 0x003F: 'FORMULA.GOTO', + 0x0040: 'FORMULA.FIND', + 0x0041: 'SELECT.LAST.CELL', + 0x0042: 'SHOW.ACTIVE.CELL', + 0x0043: 'GALLERY.AREA', + 0x0044: 'GALLERY.BAR', + 0x0045: 'GALLERY.COLUMN', + 0x0046: 'GALLERY.LINE', + 0x0047: 'GALLERY.PIE', + 0x0048: 'GALLERY.SCATTER', + 0x0049: 'COMBINATION', + 0x004A: 'PREFERRED', + 0x004B: 'ADD.OVERLAY', + 0x004C: 'GRIDLINES', + 0x004D: 'SET.PREFERRED', + 0x004E: 'AXES', + 0x004F: 'LEGEND', + 0x0050: 'ATTACH.TEXT', + 0x0051: 'ADD.ARROW', + 0x0052: 'SELECT.CHART', + 0x0053: 'SELECT.PLOT.AREA', + 0x0054: 'PATTERNS', + 0x0055: 'MAIN.CHART', + 0x0056: 'OVERLAY', + 0x0057: 'SCALE', + 0x0058: 'FORMAT.LEGEND', + 0x0059: 'FORMAT.TEXT', + 0x005A: 'EDIT.REPEAT', + 0x005B: 'PARSE', + 0x005C: 'JUSTIFY', + 0x005D: 'HIDE', + 0x005E: 'UNHIDE', + 0x005F: 'WORKSPACE', + 0x0060: 'FORMULA', + 0x0061: 'FORMULA.FILL', + 0x0062: 'FORMULA.ARRAY', + 0x0063: 'DATA.FIND.NEXT', + 0x0064: 'DATA.FIND.PREV', + 0x0065: 'FORMULA.FIND.NEXT', + 0x0066: 'FORMULA.FIND.PREV', + 0x0067: 'ACTIVATE', + 0x0068: 'ACTIVATE.NEXT', + 0x0069: 'ACTIVATE.PREV', + 0x006A: 'UNLOCKED.NEXT', + 0x006B: 'UNLOCKED.PREV', + 0x006C: 'COPY.PICTURE', + 0x006D: 'SELECT', + 0x006E: 'DELETE.NAME', + 0x006F: 'DELETE.FORMAT', + 0x0070: 'VLINE', + 0x0071: 'HLINE', + 0x0072: 'VPAGE', + 0x0073: 'HPAGE', + 0x0074: 'VSCROLL', + 0x0075: 'HSCROLL', + 0x0076: 'ALERT', + 0x0077: 'NEW', + 0x0078: 'CANCEL.COPY', + 0x0079: 'SHOW.CLIPBOARD', + 0x007A: 'MESSAGE', + 0x007C: 'PASTE.LINK', + 0x007D: 'APP.ACTIVATE', + 0x007E: 'DELETE.ARROW', + 0x007F: 'ROW.HEIGHT', + 0x0080: 'FORMAT.MOVE', + 0x0081: 'FORMAT.SIZE', + 0x0082: 'FORMULA.REPLACE', + 0x0083: 'SEND.KEYS', + 0x0084: 'SELECT.SPECIAL', + 0x0085: 'APPLY.NAMES', + 0x0086: 'REPLACE.FONT', + 0x0087: 'FREEZE.PANES', + 0x0088: 'SHOW.INFO', + 0x0089: 'SPLIT', + 0x008A: 'ON.WINDOW', + 0x008B: 'ON.DATA', + 0x008C: 'DISABLE.INPUT', + 0x008E: 'OUTLINE', + 0x008F: 'LIST.NAMES', + 0x0090: 'FILE.CLOSE', + 0x0091: 'SAVE.WORKBOOK', + 0x0092: 'DATA.FORM', + 0x0093: 'COPY.CHART', + 0x0094: 'ON.TIME', + 0x0095: 'WAIT', + 0x0096: 'FORMAT.FONT', + 0x0097: 'FILL.UP', + 0x0098: 'FILL.LEFT', + 0x0099: 'DELETE.OVERLAY', + 0x009B: 'SHORT.MENUS', + 0x009F: 'SET.UPDATE.STATUS', + 0x00A1: 'COLOR.PALETTE', + 0x00A2: 'DELETE.STYLE', + 0x00A3: 'WINDOW.RESTORE', + 0x00A4: 'WINDOW.MAXIMIZE', + 0x00A6: 'CHANGE.LINK', + 0x00A7: 'CALCULATE.DOCUMENT', + 0x00A8: 'ON.KEY', + 0x00A9: 'APP.RESTORE', + 0x00AA: 'APP.MOVE', + 0x00AB: 'APP.SIZE', + 0x00AC: 'APP.MINIMIZE', + 0x00AD: 'APP.MAXIMIZE', + 0x00AE: 'BRING.TO.FRONT', + 0x00AF: 'SEND.TO.BACK', + 0x00B9: 'MAIN.CHART.TYPE', + 0x00BA: 'OVERLAY.CHART.TYPE', + 0x00BB: 'SELECT.END', + 0x00BC: 'OPEN.MAIL', + 0x00BD: 'SEND.MAIL', + 0x00BE: 'STANDARD.FONT', + 0x00BF: 'CONSOLIDATE', + 0x00C0: 'SORT.SPECIAL', + 0x00C1: 'GALLERY.3D.AREA', + 0x00C2: 'GALLERY.3D.COLUMN', + 0x00C3: 'GALLERY.3D.LINE', + 0x00C4: 'GALLERY.3D.PIE', + 0x00C5: 'VIEW.3D', + 0x00C6: 'GOAL.SEEK', + 0x00C7: 'WORKGROUP', + 0x00C8: 'FILL.GROUP', + 0x00C9: 'UPDATE.LINK', + 0x00CA: 'PROMOTE', + 0x00CB: 'DEMOTE', + 0x00CC: 'SHOW.DETAIL', + 0x00CE: 'UNGROUP', + 0x00CF: 'OBJECT.PROPERTIES', + 0x00D0: 'SAVE.NEW.OBJECT', + 0x00D1: 'SHARE', + 0x00D2: 'SHARE.NAME', + 0x00D3: 'DUPLICATE', + 0x00D4: 'APPLY.STYLE', + 0x00D5: 'ASSIGN.TO.OBJECT', + 0x00D6: 'OBJECT.PROTECTION', + 0x00D7: 'HIDE.OBJECT', + 0x00D8: 'SET.EXTRACT', + 0x00D9: 'CREATE.PUBLISHER', + 0x00DA: 'SUBSCRIBE.TO', + 0x00DB: 'ATTRIBUTES', + 0x00DC: 'SHOW.TOOLBAR', + 0x00DE: 'PRINT.PREVIEW', + 0x00DF: 'EDIT.COLOR', + 0x00E0: 'SHOW.LEVELS', + 0x00E1: 'FORMAT.MAIN', + 0x00E2: 'FORMAT.OVERLAY', + 0x00E3: 'ON.RECALC', + 0x00E4: 'EDIT.SERIES', + 0x00E5: 'DEFINE.STYLE', + 0x00F0: 'LINE.PRINT', + 0x00F3: 'ENTER.DATA', + 0x00F9: 'GALLERY.RADAR', + 0x00FA: 'MERGE.STYLES', + 0x00FB: 'EDITION.OPTIONS', + 0x00FC: 'PASTE.PICTURE', + 0x00FD: 'PASTE.PICTURE.LINK', + 0x00FE: 'SPELLING', + 0x0100: 'ZOOM', + 0x0103: 'INSERT.OBJECT', + 0x0104: 'WINDOW.MINIMIZE', + 0x0109: 'SOUND.NOTE', + 0x010A: 'SOUND.PLAY', + 0x010B: 'FORMAT.SHAPE', + 0x010C: 'EXTEND.POLYGON', + 0x010D: 'FORMAT.AUTO', + 0x0110: 'GALLERY.3D.BAR', + 0x0111: 'GALLERY.3D.SURFACE', + 0x0112: 'FILL.AUTO', + 0x0114: 'CUSTOMIZE.TOOLBAR', + 0x0115: 'ADD.TOOL', + 0x0116: 'EDIT.OBJECT', + 0x0117: 'ON.DOUBLECLICK', + 0x0118: 'ON.ENTRY', + 0x0119: 'WORKBOOK.ADD', + 0x011A: 'WORKBOOK.MOVE', + 0x011B: 'WORKBOOK.COPY', + 0x011C: 'WORKBOOK.OPTIONS', + 0x011D: 'SAVE.WORKSPACE', + 0x0120: 'CHART.WIZARD', + 0x0121: 'DELETE.TOOL', + 0x0122: 'MOVE.TOOL', + 0x0123: 'WORKBOOK.SELECT', + 0x0124: 'WORKBOOK.ACTIVATE', + 0x0125: 'ASSIGN.TO.TOOL', + 0x0127: 'COPY.TOOL', + 0x0128: 'RESET.TOOL', + 0x0129: 'CONSTRAIN.NUMERIC', + 0x012A: 'PASTE.TOOL', + 0x012E: 'WORKBOOK.NEW', + 0x0131: 'SCENARIO.CELLS', + 0x0132: 'SCENARIO.DELETE', + 0x0133: 'SCENARIO.ADD', + 0x0134: 'SCENARIO.EDIT', + 0x0135: 'SCENARIO.SHOW', + 0x0136: 'SCENARIO.SHOW.NEXT', + 0x0137: 'SCENARIO.SUMMARY', + 0x0138: 'PIVOT.TABLE.WIZARD', + 0x0139: 'PIVOT.FIELD.PROPERTIES', + 0x013A: 'PIVOT.FIELD', + 0x013B: 'PIVOT.ITEM', + 0x013C: 'PIVOT.ADD.FIELDS', + 0x013E: 'OPTIONS.CALCULATION', + 0x013F: 'OPTIONS.EDIT', + 0x0140: 'OPTIONS.VIEW', + 0x0141: 'ADDIN.MANAGER', + 0x0142: 'MENU.EDITOR', + 0x0143: 'ATTACH.TOOLBARS', + 0x0144: 'VBAActivate', + 0x0145: 'OPTIONS.CHART', + 0x0148: 'VBA.INSERT.FILE', + 0x014A: 'VBA.PROCEDURE.DEFINITION', + 0x0150: 'ROUTING.SLIP', + 0x0152: 'ROUTE.DOCUMENT', + 0x0153: 'MAIL.LOGON', + 0x0156: 'INSERT.PICTURE', + 0x0157: 'EDIT.TOOL', + 0x0158: 'GALLERY.DOUGHNUT', + 0x015E: 'CHART.TREND', + 0x0160: 'PIVOT.ITEM.PROPERTIES', + 0x0162: 'WORKBOOK.INSERT', + 0x0163: 'OPTIONS.TRANSITION', + 0x0164: 'OPTIONS.GENERAL', + 0x0172: 'FILTER.ADVANCED', + 0x0175: 'MAIL.ADD.MAILER', + 0x0176: 'MAIL.DELETE.MAILER', + 0x0177: 'MAIL.REPLY', + 0x0178: 'MAIL.REPLY.ALL', + 0x0179: 'MAIL.FORWARD', + 0x017A: 'MAIL.NEXT.LETTER', + 0x017B: 'DATA.LABEL', + 0x017C: 'INSERT.TITLE', + 0x017D: 'FONT.PROPERTIES', + 0x017E: 'MACRO.OPTIONS', + 0x017F: 'WORKBOOK.HIDE', + 0x0180: 'WORKBOOK.UNHIDE', + 0x0181: 'WORKBOOK.DELETE', + 0x0182: 'WORKBOOK.NAME', + 0x0184: 'GALLERY.CUSTOM', + 0x0186: 'ADD.CHART.AUTOFORMAT', + 0x0187: 'DELETE.CHART.AUTOFORMAT', + 0x0188: 'CHART.ADD.DATA', + 0x0189: 'AUTO.OUTLINE', + 0x018A: 'TAB.ORDER', + 0x018B: 'SHOW.DIALOG', + 0x018C: 'SELECT.ALL', + 0x018D: 'UNGROUP.SHEETS', + 0x018E: 'SUBTOTAL.CREATE', + 0x018F: 'SUBTOTAL.REMOVE', + 0x0190: 'RENAME.OBJECT', + 0x019C: 'WORKBOOK.SCROLL', + 0x019D: 'WORKBOOK.NEXT', + 0x019E: 'WORKBOOK.PREV', + 0x019F: 'WORKBOOK.TAB.SPLIT', + 0x01A0: 'FULL.SCREEN', + 0x01A1: 'WORKBOOK.PROTECT', + 0x01A4: 'SCROLLBAR.PROPERTIES', + 0x01A5: 'PIVOT.SHOW.PAGES', + 0x01A6: 'TEXT.TO.COLUMNS', + 0x01A7: 'FORMAT.CHARTTYPE', + 0x01A8: 'LINK.FORMAT', + 0x01A9: 'TRACER.DISPLAY', + 0x01AE: 'TRACER.NAVIGATE', + 0x01AF: 'TRACER.CLEAR', + 0x01B0: 'TRACER.ERROR', + 0x01B1: 'PIVOT.FIELD.GROUP', + 0x01B2: 'PIVOT.FIELD.UNGROUP', + 0x01B3: 'CHECKBOX.PROPERTIES', + 0x01B4: 'LABEL.PROPERTIES', + 0x01B5: 'LISTBOX.PROPERTIES', + 0x01B6: 'EDITBOX.PROPERTIES', + 0x01B7: 'PIVOT.REFRESH', + 0x01B8: 'LINK.COMBO', + 0x01B9: 'OPEN.TEXT', + 0x01BA: 'HIDE.DIALOG', + 0x01BB: 'SET.DIALOG.FOCUS', + 0x01BC: 'ENABLE.OBJECT', + 0x01BD: 'PUSHBUTTON.PROPERTIES', + 0x01BE: 'SET.DIALOG.DEFAULT', + 0x01BF: 'FILTER', + 0x01C0: 'FILTER.SHOW.ALL', + 0x01C1: 'CLEAR.OUTLINE', + 0x01C2: 'FUNCTION.WIZARD', + 0x01C3: 'ADD.LIST.ITEM', + 0x01C4: 'SET.LIST.ITEM', + 0x01C5: 'REMOVE.LIST.ITEM', + 0x01C6: 'SELECT.LIST.ITEM', + 0x01C7: 'SET.CONTROL.VALUE', + 0x01C8: 'SAVE.COPY.AS', + 0x01CA: 'OPTIONS.LISTS.ADD', + 0x01CB: 'OPTIONS.LISTS.DELETE', + 0x01CC: 'SERIES.AXES', + 0x01CD: 'SERIES.X', + 0x01CE: 'SERIES.Y', + 0x01CF: 'ERRORBAR.X', + 0x01D0: 'ERRORBAR.Y', + 0x01D1: 'FORMAT.CHART', + 0x01D2: 'SERIES.ORDER', + 0x01D3: 'MAIL.LOGOFF', + 0x01D4: 'CLEAR.ROUTING.SLIP', + 0x01D5: 'APP.ACTIVATE.MICROSOFT', + 0x01D6: 'MAIL.EDIT.MAILER', + 0x01D7: 'ON.SHEET', + 0x01D8: 'STANDARD.WIDTH', + 0x01D9: 'SCENARIO.MERGE', + 0x01DA: 'SUMMARY.INFO', + 0x01DB: 'FIND.FILE', + 0x01DC: 'ACTIVE.CELL.FONT', + 0x01DD: 'ENABLE.TIPWIZARD', + 0x01DE: 'VBA.MAKE.ADDIN', + 0x01E0: 'INSERTDATATABLE', + 0x01E1: 'WORKGROUP.OPTIONS', + 0x01E2: 'MAIL.SEND.MAILER', + 0x01E5: 'AUTOCORRECT', + 0x01E9: 'POST.DOCUMENT', + 0x01EB: 'PICKLIST', + 0x01ED: 'VIEW.SHOW', + 0x01EE: 'VIEW.DEFINE', + 0x01EF: 'VIEW.DELETE', + 0x01FD: 'SHEET.BACKGROUND', + 0x01FE: 'INSERT.MAP.OBJECT', + 0x01FF: 'OPTIONS.MENONO', + 0x0205: 'MSOCHECKS', + 0x0206: 'NORMAL', + 0x0207: 'LAYOUT', + 0x0208: 'RM.PRINT.AREA', + 0x0209: 'CLEAR.PRINT.AREA', + 0x020A: 'ADD.PRINT.AREA', + 0x020B: 'MOVE.BRK', + 0x0221: 'HIDECURR.NOTE', + 0x0222: 'HIDEALL.NOTES', + 0x0223: 'DELETE.NOTE', + 0x0224: 'TRAVERSE.NOTES', + 0x0225: 'ACTIVATE.NOTES', + 0x026C: 'PROTECT.REVISIONS', + 0x026D: 'UNPROTECT.REVISIONS', + 0x0287: 'OPTIONS.ME', + 0x028D: 'WEB.PUBLISH', + 0x029B: 'NEWWEBQUERY', + 0x02A1: 'PIVOT.TABLE.CHART', + 0x02F1: 'OPTIONS.SAVE', + 0x02F3: 'OPTIONS.SPELL', + 0x0328: 'HIDEALL.INKANNOTS' +}; + +/* [MS-XLS] 2.5.198.17 */ +var Ftab = { + 0x0000: 'COUNT', + 0x0001: 'IF', + 0x0002: 'ISNA', + 0x0003: 'ISERROR', + 0x0004: 'SUM', + 0x0005: 'AVERAGE', + 0x0006: 'MIN', + 0x0007: 'MAX', + 0x0008: 'ROW', + 0x0009: 'COLUMN', + 0x000A: 'NA', + 0x000B: 'NPV', + 0x000C: 'STDEV', + 0x000D: 'DOLLAR', + 0x000E: 'FIXED', + 0x000F: 'SIN', + 0x0010: 'COS', + 0x0011: 'TAN', + 0x0012: 'ATAN', + 0x0013: 'PI', + 0x0014: 'SQRT', + 0x0015: 'EXP', + 0x0016: 'LN', + 0x0017: 'LOG10', + 0x0018: 'ABS', + 0x0019: 'INT', + 0x001A: 'SIGN', + 0x001B: 'ROUND', + 0x001C: 'LOOKUP', + 0x001D: 'INDEX', + 0x001E: 'REPT', + 0x001F: 'MID', + 0x0020: 'LEN', + 0x0021: 'VALUE', + 0x0022: 'TRUE', + 0x0023: 'FALSE', + 0x0024: 'AND', + 0x0025: 'OR', + 0x0026: 'NOT', + 0x0027: 'MOD', + 0x0028: 'DCOUNT', + 0x0029: 'DSUM', + 0x002A: 'DAVERAGE', + 0x002B: 'DMIN', + 0x002C: 'DMAX', + 0x002D: 'DSTDEV', + 0x002E: 'VAR', + 0x002F: 'DVAR', + 0x0030: 'TEXT', + 0x0031: 'LINEST', + 0x0032: 'TREND', + 0x0033: 'LOGEST', + 0x0034: 'GROWTH', + 0x0035: 'GOTO', + 0x0036: 'HALT', + 0x0037: 'RETURN', + 0x0038: 'PV', + 0x0039: 'FV', + 0x003A: 'NPER', + 0x003B: 'PMT', + 0x003C: 'RATE', + 0x003D: 'MIRR', + 0x003E: 'IRR', + 0x003F: 'RAND', + 0x0040: 'MATCH', + 0x0041: 'DATE', + 0x0042: 'TIME', + 0x0043: 'DAY', + 0x0044: 'MONTH', + 0x0045: 'YEAR', + 0x0046: 'WEEKDAY', + 0x0047: 'HOUR', + 0x0048: 'MINUTE', + 0x0049: 'SECOND', + 0x004A: 'NOW', + 0x004B: 'AREAS', + 0x004C: 'ROWS', + 0x004D: 'COLUMNS', + 0x004E: 'OFFSET', + 0x004F: 'ABSREF', + 0x0050: 'RELREF', + 0x0051: 'ARGUMENT', + 0x0052: 'SEARCH', + 0x0053: 'TRANSPOSE', + 0x0054: 'ERROR', + 0x0055: 'STEP', + 0x0056: 'TYPE', + 0x0057: 'ECHO', + 0x0058: 'SET.NAME', + 0x0059: 'CALLER', + 0x005A: 'DEREF', + 0x005B: 'WINDOWS', + 0x005C: 'SERIES', + 0x005D: 'DOCUMENTS', + 0x005E: 'ACTIVE.CELL', + 0x005F: 'SELECTION', + 0x0060: 'RESULT', + 0x0061: 'ATAN2', + 0x0062: 'ASIN', + 0x0063: 'ACOS', + 0x0064: 'CHOOSE', + 0x0065: 'HLOOKUP', + 0x0066: 'VLOOKUP', + 0x0067: 'LINKS', + 0x0068: 'INPUT', + 0x0069: 'ISREF', + 0x006A: 'GET.FORMULA', + 0x006B: 'GET.NAME', + 0x006C: 'SET.VALUE', + 0x006D: 'LOG', + 0x006E: 'EXEC', + 0x006F: 'CHAR', + 0x0070: 'LOWER', + 0x0071: 'UPPER', + 0x0072: 'PROPER', + 0x0073: 'LEFT', + 0x0074: 'RIGHT', + 0x0075: 'EXACT', + 0x0076: 'TRIM', + 0x0077: 'REPLACE', + 0x0078: 'SUBSTITUTE', + 0x0079: 'CODE', + 0x007A: 'NAMES', + 0x007B: 'DIRECTORY', + 0x007C: 'FIND', + 0x007D: 'CELL', + 0x007E: 'ISERR', + 0x007F: 'ISTEXT', + 0x0080: 'ISNUMBER', + 0x0081: 'ISBLANK', + 0x0082: 'T', + 0x0083: 'N', + 0x0084: 'FOPEN', + 0x0085: 'FCLOSE', + 0x0086: 'FSIZE', + 0x0087: 'FREADLN', + 0x0088: 'FREAD', + 0x0089: 'FWRITELN', + 0x008A: 'FWRITE', + 0x008B: 'FPOS', + 0x008C: 'DATEVALUE', + 0x008D: 'TIMEVALUE', + 0x008E: 'SLN', + 0x008F: 'SYD', + 0x0090: 'DDB', + 0x0091: 'GET.DEF', + 0x0092: 'REFTEXT', + 0x0093: 'TEXTREF', + 0x0094: 'INDIRECT', + 0x0095: 'REGISTER', + 0x0096: 'CALL', + 0x0097: 'ADD.BAR', + 0x0098: 'ADD.MENU', + 0x0099: 'ADD.COMMAND', + 0x009A: 'ENABLE.COMMAND', + 0x009B: 'CHECK.COMMAND', + 0x009C: 'RENAME.COMMAND', + 0x009D: 'SHOW.BAR', + 0x009E: 'DELETE.MENU', + 0x009F: 'DELETE.COMMAND', + 0x00A0: 'GET.CHART.ITEM', + 0x00A1: 'DIALOG.BOX', + 0x00A2: 'CLEAN', + 0x00A3: 'MDETERM', + 0x00A4: 'MINVERSE', + 0x00A5: 'MMULT', + 0x00A6: 'FILES', + 0x00A7: 'IPMT', + 0x00A8: 'PPMT', + 0x00A9: 'COUNTA', + 0x00AA: 'CANCEL.KEY', + 0x00AB: 'FOR', + 0x00AC: 'WHILE', + 0x00AD: 'BREAK', + 0x00AE: 'NEXT', + 0x00AF: 'INITIATE', + 0x00B0: 'REQUEST', + 0x00B1: 'POKE', + 0x00B2: 'EXECUTE', + 0x00B3: 'TERMINATE', + 0x00B4: 'RESTART', + 0x00B5: 'HELP', + 0x00B6: 'GET.BAR', + 0x00B7: 'PRODUCT', + 0x00B8: 'FACT', + 0x00B9: 'GET.CELL', + 0x00BA: 'GET.WORKSPACE', + 0x00BB: 'GET.WINDOW', + 0x00BC: 'GET.DOCUMENT', + 0x00BD: 'DPRODUCT', + 0x00BE: 'ISNONTEXT', + 0x00BF: 'GET.NOTE', + 0x00C0: 'NOTE', + 0x00C1: 'STDEVP', + 0x00C2: 'VARP', + 0x00C3: 'DSTDEVP', + 0x00C4: 'DVARP', + 0x00C5: 'TRUNC', + 0x00C6: 'ISLOGICAL', + 0x00C7: 'DCOUNTA', + 0x00C8: 'DELETE.BAR', + 0x00C9: 'UNREGISTER', + 0x00CC: 'USDOLLAR', + 0x00CD: 'FINDB', + 0x00CE: 'SEARCHB', + 0x00CF: 'REPLACEB', + 0x00D0: 'LEFTB', + 0x00D1: 'RIGHTB', + 0x00D2: 'MIDB', + 0x00D3: 'LENB', + 0x00D4: 'ROUNDUP', + 0x00D5: 'ROUNDDOWN', + 0x00D6: 'ASC', + 0x00D7: 'DBCS', + 0x00D8: 'RANK', + 0x00DB: 'ADDRESS', + 0x00DC: 'DAYS360', + 0x00DD: 'TODAY', + 0x00DE: 'VDB', + 0x00DF: 'ELSE', + 0x00E0: 'ELSE.IF', + 0x00E1: 'END.IF', + 0x00E2: 'FOR.CELL', + 0x00E3: 'MEDIAN', + 0x00E4: 'SUMPRODUCT', + 0x00E5: 'SINH', + 0x00E6: 'COSH', + 0x00E7: 'TANH', + 0x00E8: 'ASINH', + 0x00E9: 'ACOSH', + 0x00EA: 'ATANH', + 0x00EB: 'DGET', + 0x00EC: 'CREATE.OBJECT', + 0x00ED: 'VOLATILE', + 0x00EE: 'LAST.ERROR', + 0x00EF: 'CUSTOM.UNDO', + 0x00F0: 'CUSTOM.REPEAT', + 0x00F1: 'FORMULA.CONVERT', + 0x00F2: 'GET.LINK.INFO', + 0x00F3: 'TEXT.BOX', + 0x00F4: 'INFO', + 0x00F5: 'GROUP', + 0x00F6: 'GET.OBJECT', + 0x00F7: 'DB', + 0x00F8: 'PAUSE', + 0x00FB: 'RESUME', + 0x00FC: 'FREQUENCY', + 0x00FD: 'ADD.TOOLBAR', + 0x00FE: 'DELETE.TOOLBAR', + 0x00FF: 'User', + 0x0100: 'RESET.TOOLBAR', + 0x0101: 'EVALUATE', + 0x0102: 'GET.TOOLBAR', + 0x0103: 'GET.TOOL', + 0x0104: 'SPELLING.CHECK', + 0x0105: 'ERROR.TYPE', + 0x0106: 'APP.TITLE', + 0x0107: 'WINDOW.TITLE', + 0x0108: 'SAVE.TOOLBAR', + 0x0109: 'ENABLE.TOOL', + 0x010A: 'PRESS.TOOL', + 0x010B: 'REGISTER.ID', + 0x010C: 'GET.WORKBOOK', + 0x010D: 'AVEDEV', + 0x010E: 'BETADIST', + 0x010F: 'GAMMALN', + 0x0110: 'BETAINV', + 0x0111: 'BINOMDIST', + 0x0112: 'CHIDIST', + 0x0113: 'CHIINV', + 0x0114: 'COMBIN', + 0x0115: 'CONFIDENCE', + 0x0116: 'CRITBINOM', + 0x0117: 'EVEN', + 0x0118: 'EXPONDIST', + 0x0119: 'FDIST', + 0x011A: 'FINV', + 0x011B: 'FISHER', + 0x011C: 'FISHERINV', + 0x011D: 'FLOOR', + 0x011E: 'GAMMADIST', + 0x011F: 'GAMMAINV', + 0x0120: 'CEILING', + 0x0121: 'HYPGEOMDIST', + 0x0122: 'LOGNORMDIST', + 0x0123: 'LOGINV', + 0x0124: 'NEGBINOMDIST', + 0x0125: 'NORMDIST', + 0x0126: 'NORMSDIST', + 0x0127: 'NORMINV', + 0x0128: 'NORMSINV', + 0x0129: 'STANDARDIZE', + 0x012A: 'ODD', + 0x012B: 'PERMUT', + 0x012C: 'POISSON', + 0x012D: 'TDIST', + 0x012E: 'WEIBULL', + 0x012F: 'SUMXMY2', + 0x0130: 'SUMX2MY2', + 0x0131: 'SUMX2PY2', + 0x0132: 'CHITEST', + 0x0133: 'CORREL', + 0x0134: 'COVAR', + 0x0135: 'FORECAST', + 0x0136: 'FTEST', + 0x0137: 'INTERCEPT', + 0x0138: 'PEARSON', + 0x0139: 'RSQ', + 0x013A: 'STEYX', + 0x013B: 'SLOPE', + 0x013C: 'TTEST', + 0x013D: 'PROB', + 0x013E: 'DEVSQ', + 0x013F: 'GEOMEAN', + 0x0140: 'HARMEAN', + 0x0141: 'SUMSQ', + 0x0142: 'KURT', + 0x0143: 'SKEW', + 0x0144: 'ZTEST', + 0x0145: 'LARGE', + 0x0146: 'SMALL', + 0x0147: 'QUARTILE', + 0x0148: 'PERCENTILE', + 0x0149: 'PERCENTRANK', + 0x014A: 'MODE', + 0x014B: 'TRIMMEAN', + 0x014C: 'TINV', + 0x014E: 'MOVIE.COMMAND', + 0x014F: 'GET.MOVIE', + 0x0150: 'CONCATENATE', + 0x0151: 'POWER', + 0x0152: 'PIVOT.ADD.DATA', + 0x0153: 'GET.PIVOT.TABLE', + 0x0154: 'GET.PIVOT.FIELD', + 0x0155: 'GET.PIVOT.ITEM', + 0x0156: 'RADIANS', + 0x0157: 'DEGREES', + 0x0158: 'SUBTOTAL', + 0x0159: 'SUMIF', + 0x015A: 'COUNTIF', + 0x015B: 'COUNTBLANK', + 0x015C: 'SCENARIO.GET', + 0x015D: 'OPTIONS.LISTS.GET', + 0x015E: 'ISPMT', + 0x015F: 'DATEDIF', + 0x0160: 'DATESTRING', + 0x0161: 'NUMBERSTRING', + 0x0162: 'ROMAN', + 0x0163: 'OPEN.DIALOG', + 0x0164: 'SAVE.DIALOG', + 0x0165: 'VIEW.GET', + 0x0166: 'GETPIVOTDATA', + 0x0167: 'HYPERLINK', + 0x0168: 'PHONETIC', + 0x0169: 'AVERAGEA', + 0x016A: 'MAXA', + 0x016B: 'MINA', + 0x016C: 'STDEVPA', + 0x016D: 'VARPA', + 0x016E: 'STDEVA', + 0x016F: 'VARA', + 0x0170: 'BAHTTEXT', + 0x0171: 'THAIDAYOFWEEK', + 0x0172: 'THAIDIGIT', + 0x0173: 'THAIMONTHOFYEAR', + 0x0174: 'THAINUMSOUND', + 0x0175: 'THAINUMSTRING', + 0x0176: 'THAISTRINGLENGTH', + 0x0177: 'ISTHAIDIGIT', + 0x0178: 'ROUNDBAHTDOWN', + 0x0179: 'ROUNDBAHTUP', + 0x017A: 'THAIYEAR', + 0x017B: 'RTD' +}; +var FtabArgc = { + 0x0002: 1, /* ISNA */ + 0x0003: 1, /* ISERROR */ + 0x000F: 1, /* SIN */ + 0x0010: 1, /* COS */ + 0x0011: 1, /* TAN */ + 0x0012: 1, /* ATAN */ + 0x0014: 1, /* SQRT */ + 0x0015: 1, /* EXP */ + 0x0016: 1, /* LN */ + 0x0017: 1, /* LOG10 */ + 0x0018: 1, /* ABS */ + 0x0019: 1, /* INT */ + 0x001A: 1, /* SIGN */ + 0x001B: 2, /* ROUND */ + 0x001E: 2, /* REPT */ + 0x001F: 3, /* MID */ + 0x0020: 1, /* LEN */ + 0x0021: 1, /* VALUE */ + 0x0026: 1, /* NOT */ + 0x0027: 2, /* MOD */ + 0x0028: 3, /* DCOUNT */ + 0x0029: 3, /* DSUM */ + 0x002A: 3, /* DAVERAGE */ + 0x002B: 3, /* DMIN */ + 0x002C: 3, /* DMAX */ + 0x002D: 3, /* DSTDEV */ + 0x002F: 3, /* DVAR */ + 0x0030: 2, /* TEXT */ + 0x0035: 1, /* GOTO */ + 0x003D: 3, /* MIRR */ + 0x0041: 3, /* DATE */ + 0x0042: 3, /* TIME */ + 0x0043: 1, /* DAY */ + 0x0044: 1, /* MONTH */ + 0x0045: 1, /* YEAR */ + 0x0047: 1, /* HOUR */ + 0x0048: 1, /* MINUTE */ + 0x0049: 1, /* SECOND */ + 0x004B: 1, /* AREAS */ + 0x004C: 1, /* ROWS */ + 0x004D: 1, /* COLUMNS */ + 0x004F: 2, /* ABSREF */ + 0x0050: 2, /* RELREF */ + 0x0053: 1, /* TRANSPOSE */ + 0x0056: 1, /* TYPE */ + 0x005A: 1, /* DEREF */ + 0x0061: 2, /* ATAN2 */ + 0x0062: 1, /* ASIN */ + 0x0063: 1, /* ACOS */ + 0x0069: 1, /* ISREF */ + 0x006F: 1, /* CHAR */ + 0x0070: 1, /* LOWER */ + 0x0071: 1, /* UPPER */ + 0x0072: 1, /* PROPER */ + 0x0075: 2, /* EXACT */ + 0x0076: 1, /* TRIM */ + 0x0077: 4, /* REPLACE */ + 0x0079: 1, /* CODE */ + 0x007E: 1, /* ISERR */ + 0x007F: 1, /* ISTEXT */ + 0x0080: 1, /* ISNUMBER */ + 0x0081: 1, /* ISBLANK */ + 0x0082: 1, /* T */ + 0x0083: 1, /* N */ + 0x0085: 1, /* FCLOSE */ + 0x0086: 1, /* FSIZE */ + 0x0087: 1, /* FREADLN */ + 0x0088: 2, /* FREAD */ + 0x0089: 2, /* FWRITELN */ + 0x008A: 2, /* FWRITE */ + 0x008C: 1, /* DATEVALUE */ + 0x008D: 1, /* TIMEVALUE */ + 0x008E: 3, /* SLN */ + 0x008F: 4, /* SYD */ + 0x00A2: 1, /* CLEAN */ + 0x00A3: 1, /* MDETERM */ + 0x00A4: 1, /* MINVERSE */ + 0x00A5: 2, /* MMULT */ + 0x00AC: 1, /* WHILE */ + 0x00AF: 2, /* INITIATE */ + 0x00B0: 2, /* REQUEST */ + 0x00B1: 3, /* POKE */ + 0x00B2: 2, /* EXECUTE */ + 0x00B3: 1, /* TERMINATE */ + 0x00B8: 1, /* FACT */ + 0x00BD: 3, /* DPRODUCT */ + 0x00BE: 1, /* ISNONTEXT */ + 0x00C3: 3, /* DSTDEVP */ + 0x00C4: 3, /* DVARP */ + 0x00C6: 1, /* ISLOGICAL */ + 0x00C7: 3, /* DCOUNTA */ + 0x00C9: 1, /* UNREGISTER */ + 0x00CF: 4, /* REPLACEB */ + 0x00D2: 3, /* MIDB */ + 0x00D3: 1, /* LENB */ + 0x00D4: 2, /* ROUNDUP */ + 0x00D5: 2, /* ROUNDDOWN */ + 0x00D6: 1, /* ASC */ + 0x00D7: 1, /* DBCS */ + 0x00E5: 1, /* SINH */ + 0x00E6: 1, /* COSH */ + 0x00E7: 1, /* TANH */ + 0x00E8: 1, /* ASINH */ + 0x00E9: 1, /* ACOSH */ + 0x00EA: 1, /* ATANH */ + 0x00EB: 3, /* DGET */ + 0x00F4: 1, /* INFO */ + 0x00FC: 2, /* FREQUENCY */ + 0x0101: 1, /* EVALUATE */ + 0x0105: 1, /* ERROR.TYPE */ + 0x010F: 1, /* GAMMALN */ + 0x0111: 4, /* BINOMDIST */ + 0x0112: 2, /* CHIDIST */ + 0x0113: 2, /* CHIINV */ + 0x0114: 2, /* COMBIN */ + 0x0115: 3, /* CONFIDENCE */ + 0x0116: 3, /* CRITBINOM */ + 0x0117: 1, /* EVEN */ + 0x0118: 3, /* EXPONDIST */ + 0x0119: 3, /* FDIST */ + 0x011A: 3, /* FINV */ + 0x011B: 1, /* FISHER */ + 0x011C: 1, /* FISHERINV */ + 0x011D: 2, /* FLOOR */ + 0x011E: 4, /* GAMMADIST */ + 0x011F: 3, /* GAMMAINV */ + 0x0120: 2, /* CEILING */ + 0x0121: 4, /* HYPGEOMDIST */ + 0x0122: 3, /* LOGNORMDIST */ + 0x0123: 3, /* LOGINV */ + 0x0124: 3, /* NEGBINOMDIST */ + 0x0125: 4, /* NORMDIST */ + 0x0126: 1, /* NORMSDIST */ + 0x0127: 3, /* NORMINV */ + 0x0128: 1, /* NORMSINV */ + 0x0129: 3, /* STANDARDIZE */ + 0x012A: 1, /* ODD */ + 0x012B: 2, /* PERMUT */ + 0x012C: 3, /* POISSON */ + 0x012D: 3, /* TDIST */ + 0x012E: 4, /* WEIBULL */ + 0x012F: 2, /* SUMXMY2 */ + 0x0130: 2, /* SUMX2MY2 */ + 0x0131: 2, /* SUMX2PY2 */ + 0x0132: 2, /* CHITEST */ + 0x0133: 2, /* CORREL */ + 0x0134: 2, /* COVAR */ + 0x0135: 3, /* FORECAST */ + 0x0136: 2, /* FTEST */ + 0x0137: 2, /* INTERCEPT */ + 0x0138: 2, /* PEARSON */ + 0x0139: 2, /* RSQ */ + 0x013A: 2, /* STEYX */ + 0x013B: 2, /* SLOPE */ + 0x013C: 4, /* TTEST */ + 0x0145: 2, /* LARGE */ + 0x0146: 2, /* SMALL */ + 0x0147: 2, /* QUARTILE */ + 0x0148: 2, /* PERCENTILE */ + 0x014B: 2, /* TRIMMEAN */ + 0x014C: 2, /* TINV */ + 0x0151: 2, /* POWER */ + 0x0156: 1, /* RADIANS */ + 0x0157: 1, /* DEGREES */ + 0x015A: 2, /* COUNTIF */ + 0x015B: 1, /* COUNTBLANK */ + 0x015E: 4, /* ISPMT */ + 0x015F: 3, /* DATEDIF */ + 0x0160: 1, /* DATESTRING */ + 0x0161: 2, /* NUMBERSTRING */ + 0x0168: 1, /* PHONETIC */ + 0x0170: 1, /* BAHTTEXT */ + 0x0171: 1, /* THAIDAYOFWEEK */ + 0x0172: 1, /* THAIDIGIT */ + 0x0173: 1, /* THAIMONTHOFYEAR */ + 0x0174: 1, /* THAINUMSOUND */ + 0x0175: 1, /* THAINUMSTRING */ + 0x0176: 1, /* THAISTRINGLENGTH */ + 0x0177: 1, /* ISTHAIDIGIT */ + 0x0178: 1, /* ROUNDBAHTDOWN */ + 0x0179: 1, /* ROUNDBAHTUP */ + 0x017A: 1, /* THAIYEAR */ + 0xFFFF: 0 +}; +/* [MS-XLSX] 2.2.3 Functions */ +var XLSXFutureFunctions = { + "_xlfn.ACOT": "ACOT", + "_xlfn.ACOTH": "ACOTH", + "_xlfn.AGGREGATE": "AGGREGATE", + "_xlfn.ARABIC": "ARABIC", + "_xlfn.AVERAGEIF": "AVERAGEIF", + "_xlfn.AVERAGEIFS": "AVERAGEIFS", + "_xlfn.BASE": "BASE", + "_xlfn.BETA.DIST": "BETA.DIST", + "_xlfn.BETA.INV": "BETA.INV", + "_xlfn.BINOM.DIST": "BINOM.DIST", + "_xlfn.BINOM.DIST.RANGE": "BINOM.DIST.RANGE", + "_xlfn.BINOM.INV": "BINOM.INV", + "_xlfn.BITAND": "BITAND", + "_xlfn.BITLSHIFT": "BITLSHIFT", + "_xlfn.BITOR": "BITOR", + "_xlfn.BITRSHIFT": "BITRSHIFT", + "_xlfn.BITXOR": "BITXOR", + "_xlfn.CEILING.MATH": "CEILING.MATH", + "_xlfn.CEILING.PRECISE": "CEILING.PRECISE", + "_xlfn.CHISQ.DIST": "CHISQ.DIST", + "_xlfn.CHISQ.DIST.RT": "CHISQ.DIST.RT", + "_xlfn.CHISQ.INV": "CHISQ.INV", + "_xlfn.CHISQ.INV.RT": "CHISQ.INV.RT", + "_xlfn.CHISQ.TEST": "CHISQ.TEST", + "_xlfn.COMBINA": "COMBINA", + "_xlfn.CONFIDENCE.NORM": "CONFIDENCE.NORM", + "_xlfn.CONFIDENCE.T": "CONFIDENCE.T", + "_xlfn.COT": "COT", + "_xlfn.COTH": "COTH", + "_xlfn.COUNTIFS": "COUNTIFS", + "_xlfn.COVARIANCE.P": "COVARIANCE.P", + "_xlfn.COVARIANCE.S": "COVARIANCE.S", + "_xlfn.CSC": "CSC", + "_xlfn.CSCH": "CSCH", + "_xlfn.DAYS": "DAYS", + "_xlfn.DECIMAL": "DECIMAL", + "_xlfn.ECMA.CEILING": "ECMA.CEILING", + "_xlfn.ERF.PRECISE": "ERF.PRECISE", + "_xlfn.ERFC.PRECISE": "ERFC.PRECISE", + "_xlfn.EXPON.DIST": "EXPON.DIST", + "_xlfn.F.DIST": "F.DIST", + "_xlfn.F.DIST.RT": "F.DIST.RT", + "_xlfn.F.INV": "F.INV", + "_xlfn.F.INV.RT": "F.INV.RT", + "_xlfn.F.TEST": "F.TEST", + "_xlfn.FILTERXML": "FILTERXML", + "_xlfn.FLOOR.MATH": "FLOOR.MATH", + "_xlfn.FLOOR.PRECISE": "FLOOR.PRECISE", + "_xlfn.FORMULATEXT": "FORMULATEXT", + "_xlfn.GAMMA": "GAMMA", + "_xlfn.GAMMA.DIST": "GAMMA.DIST", + "_xlfn.GAMMA.INV": "GAMMA.INV", + "_xlfn.GAMMALN.PRECISE": "GAMMALN.PRECISE", + "_xlfn.GAUSS": "GAUSS", + "_xlfn.HYPGEOM.DIST": "HYPGEOM.DIST", + "_xlfn.IFNA": "IFNA", + "_xlfn.IFERROR": "IFERROR", + "_xlfn.IMCOSH": "IMCOSH", + "_xlfn.IMCOT": "IMCOT", + "_xlfn.IMCSC": "IMCSC", + "_xlfn.IMCSCH": "IMCSCH", + "_xlfn.IMSEC": "IMSEC", + "_xlfn.IMSECH": "IMSECH", + "_xlfn.IMSINH": "IMSINH", + "_xlfn.IMTAN": "IMTAN", + "_xlfn.ISFORMULA": "ISFORMULA", + "_xlfn.ISO.CEILING": "ISO.CEILING", + "_xlfn.ISOWEEKNUM": "ISOWEEKNUM", + "_xlfn.LOGNORM.DIST": "LOGNORM.DIST", + "_xlfn.LOGNORM.INV": "LOGNORM.INV", + "_xlfn.MODE.MULT": "MODE.MULT", + "_xlfn.MODE.SNGL": "MODE.SNGL", + "_xlfn.MUNIT": "MUNIT", + "_xlfn.NEGBINOM.DIST": "NEGBINOM.DIST", + "_xlfn.NETWORKDAYS.INTL": "NETWORKDAYS.INTL", + "_xlfn.NIGBINOM": "NIGBINOM", + "_xlfn.NORM.DIST": "NORM.DIST", + "_xlfn.NORM.INV": "NORM.INV", + "_xlfn.NORM.S.DIST": "NORM.S.DIST", + "_xlfn.NORM.S.INV": "NORM.S.INV", + "_xlfn.NUMBERVALUE": "NUMBERVALUE", + "_xlfn.PDURATION": "PDURATION", + "_xlfn.PERCENTILE.EXC": "PERCENTILE.EXC", + "_xlfn.PERCENTILE.INC": "PERCENTILE.INC", + "_xlfn.PERCENTRANK.EXC": "PERCENTRANK.EXC", + "_xlfn.PERCENTRANK.INC": "PERCENTRANK.INC", + "_xlfn.PERMUTATIONA": "PERMUTATIONA", + "_xlfn.PHI": "PHI", + "_xlfn.POISSON.DIST": "POISSON.DIST", + "_xlfn.QUARTILE.EXC": "QUARTILE.EXC", + "_xlfn.QUARTILE.INC": "QUARTILE.INC", + "_xlfn.QUERYSTRING": "QUERYSTRING", + "_xlfn.RANK.AVG": "RANK.AVG", + "_xlfn.RANK.EQ": "RANK.EQ", + "_xlfn.RRI": "RRI", + "_xlfn.SEC": "SEC", + "_xlfn.SECH": "SECH", + "_xlfn.SHEET": "SHEET", + "_xlfn.SHEETS": "SHEETS", + "_xlfn.SKEW.P": "SKEW.P", + "_xlfn.STDEV.P": "STDEV.P", + "_xlfn.STDEV.S": "STDEV.S", + "_xlfn.SUMIFS": "SUMIFS", + "_xlfn.T.DIST": "T.DIST", + "_xlfn.T.DIST.2T": "T.DIST.2T", + "_xlfn.T.DIST.RT": "T.DIST.RT", + "_xlfn.T.INV": "T.INV", + "_xlfn.T.INV.2T": "T.INV.2T", + "_xlfn.T.TEST": "T.TEST", + "_xlfn.UNICHAR": "UNICHAR", + "_xlfn.UNICODE": "UNICODE", + "_xlfn.VAR.P": "VAR.P", + "_xlfn.VAR.S": "VAR.S", + "_xlfn.WEBSERVICE": "WEBSERVICE", + "_xlfn.WEIBULL.DIST": "WEIBULL.DIST", + "_xlfn.WORKDAY.INTL": "WORKDAY.INTL", + "_xlfn.XOR": "XOR", + "_xlfn.Z.TEST": "Z.TEST" +}; + var strs = {}; // shared strings var _ssfopts = {}; // spreadsheet formatting options @@ -2904,11 +7336,15 @@ function parse_ws_xml_hlinks(s, data, rels) { for(var i = 0; i != data.length; ++i) { var val = parsexmltag(data[i], true); if(!val.ref) return; - var rel = rels['!id'][val.id]; + var rel = rels ? rels['!id'][val.id] : null; if(rel) { val.Target = rel.Target; if(val.location) val.Target += "#"+val.location; val.Rel = rel; + } else { + val.Target = val.location; + rel = {Target: val.location, TargetMode: 'Internal'}; + val.Rel = rel; } var rng = safe_decode_range(val.ref); for(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) { @@ -3147,70 +7583,70 @@ function parse_BrtWsProp(data, length) { var z = {}; /* TODO: pull flags */ data.l += 19; - z.name = parse_CodeName(data, length - 19); + z.name = parse_XLSBCodeName(data, length - 19); return z; } /* [MS-XLSB] 2.4.303 BrtCellBlank */ function parse_BrtCellBlank(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); return [cell]; } function write_BrtCellBlank(cell, val, o) { if(o == null) o = new_buf(8); - return write_Cell(val, o); + return write_XLSBCell(val, o); } /* [MS-XLSB] 2.4.304 BrtCellBool */ function parse_BrtCellBool(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var fBool = data.read_shift(1); return [cell, fBool, 'b']; } /* [MS-XLSB] 2.4.305 BrtCellError */ function parse_BrtCellError(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var fBool = data.read_shift(1); return [cell, fBool, 'e']; } /* [MS-XLSB] 2.4.308 BrtCellIsst */ function parse_BrtCellIsst(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var isst = data.read_shift(4); return [cell, isst, 's']; } /* [MS-XLSB] 2.4.310 BrtCellReal */ function parse_BrtCellReal(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_Xnum(data); return [cell, value, 'n']; } /* [MS-XLSB] 2.4.311 BrtCellRk */ function parse_BrtCellRk(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_RkNumber(data); return [cell, value, 'n']; } /* [MS-XLSB] 2.4.314 BrtCellSt */ function parse_BrtCellSt(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_XLWideString(data); return [cell, value, 'str']; } /* [MS-XLSB] 2.4.647 BrtFmlaBool */ function parse_BrtFmlaBool(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = data.read_shift(1); var o = [cell, value, 'b']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length-9); + var formula = parse_XLSBCellParsedFormula(data, length-9); o[3] = ""; /* TODO */ } else data.l += length-9; @@ -3219,11 +7655,11 @@ function parse_BrtFmlaBool(data, length, opts) { /* [MS-XLSB] 2.4.648 BrtFmlaError */ function parse_BrtFmlaError(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = data.read_shift(1); var o = [cell, value, 'e']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length-9); + var formula = parse_XLSBCellParsedFormula(data, length-9); o[3] = ""; /* TODO */ } else data.l += length-9; @@ -3232,11 +7668,11 @@ function parse_BrtFmlaError(data, length, opts) { /* [MS-XLSB] 2.4.649 BrtFmlaNum */ function parse_BrtFmlaNum(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_Xnum(data); var o = [cell, value, 'n']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length - 16); + var formula = parse_XLSBCellParsedFormula(data, length - 16); o[3] = ""; /* TODO */ } else data.l += length-16; @@ -3246,11 +7682,11 @@ function parse_BrtFmlaNum(data, length, opts) { /* [MS-XLSB] 2.4.650 BrtFmlaString */ function parse_BrtFmlaString(data, length, opts) { var start = data.l; - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_XLWideString(data); var o = [cell, value, 'str']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, start + length - data.l); + var formula = parse_XLSBCellParsedFormula(data, start + length - data.l); } else data.l = start + length; return o; @@ -4040,8 +8476,1382 @@ function write_cc(data, name, opts) { return (name.substr(-4)===".bin" ? write_cc_bin : write_cc_xml)(data, opts); } */ +var attregexg2=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g; +var attregex2=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/; +var _chr = function(c) { return String.fromCharCode(c); }; +function xlml_parsexmltag(tag, skip_root) { + var words = tag.split(/\s+/); + var z = []; if(!skip_root) z[0] = words[0]; + if(words.length === 1) return z; + var m = tag.match(attregexg2), y, j, w, i; + if(m) for(i = 0; i != m.length; ++i) { + y = m[i].match(attregex2); + if((j=y[1].indexOf(":")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2); + else { + if(y[1].substr(0,6) === "xmlns:") w = "xmlns"+y[1].substr(6); + else w = y[1].substr(j+1); + z[w] = y[2].substr(1,y[2].length-2); + } + } + return z; +} +function xlml_parsexmltagobj(tag) { + var words = tag.split(/\s+/); + var z = {}; + if(words.length === 1) return z; + var m = tag.match(attregexg2), y, j, w, i; + if(m) for(i = 0; i != m.length; ++i) { + y = m[i].match(attregex2); + if((j=y[1].indexOf(":")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2); + else { + if(y[1].substr(0,6) === "xmlns:") w = "xmlns"+y[1].substr(6); + else w = y[1].substr(j+1); + z[w] = y[2].substr(1,y[2].length-2); + } + } + return z; +} + +// ---- + +function xlml_format(format, value) { + var fmt = XLMLFormatMap[format] || unescapexml(format); + if(fmt === "General") return SSF._general(value); + return SSF.format(fmt, value); +} + +function xlml_set_custprop(Custprops, Rn, cp, val) { + switch((cp[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]) { + case "boolean": val = parsexmlbool(val); break; + case "i2": case "int": val = parseInt(val, 10); break; + case "r4": case "float": val = parseFloat(val); break; + case "date": case "dateTime.tz": val = new Date(val); break; + case "i8": case "string": case "fixed": case "uuid": case "bin.base64": break; + default: throw "bad custprop:" + cp[0]; + } + Custprops[unescapexml(Rn[3])] = val; +} + +function safe_format_xlml(cell, nf, o) { + try { + if(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; } + else if(nf === "General") { + if(cell.t === 'n') { + if((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v); + else cell.w = SSF._general_num(cell.v); + } + else cell.w = SSF._general(cell.v); + } + else cell.w = xlml_format(nf||"General", cell.v); + if(o.cellNF) cell.z = XLMLFormatMap[nf]||nf||"General"; + } catch(e) { if(o.WTF) throw e; } +} + +function process_style_xlml(styles, stag, opts) { + if(opts.cellStyles) { + if(stag.Interior) { + var I = stag.Interior; + if(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern; + } + } + styles[stag.ID] = stag; +} + +/* TODO: there must exist some form of OSP-blessed spec */ +function parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, o) { + var nf = "General", sid = cell.StyleID, S = {}; o = o || {}; + var interiors = []; + if(sid === undefined && row) sid = row.StyleID; + if(sid === undefined && csty) sid = csty.StyleID; + while(styles[sid] !== undefined) { + if(styles[sid].nf) nf = styles[sid].nf; + if(styles[sid].Interior) interiors.push(styles[sid].Interior); + if(!styles[sid].Parent) break; + sid = styles[sid].Parent; + } + switch(data.Type) { + case 'Boolean': + cell.t = 'b'; + cell.v = parsexmlbool(xml); + break; + case 'String': + cell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml)); + cell.v = xml.indexOf("<") > -1 ? ss : cell.r; + break; + case 'DateTime': + cell.v = (Date.parse(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); + if(cell.v !== cell.v) cell.v = unescapexml(xml); + else if(cell.v >= 1 && cell.v<60) cell.v = cell.v -1; + if(!nf || nf == "General") nf = "yyyy-mm-dd"; + /* falls through */ + case 'Number': + if(cell.v === undefined) cell.v=+xml; + if(!cell.t) cell.t = 'n'; + break; + case 'Error': cell.t = 'e'; cell.v = RBErr[xml]; cell.w = xml; break; + default: cell.t = 's'; cell.v = xlml_fixstr(ss); break; + } + safe_format_xlml(cell, nf, o); + if(o.cellFormula != null && cell.Formula) { + cell.f = rc_to_a1(unescapexml(cell.Formula), base); + cell.Formula = undefined; + } + if(o.cellStyles) { + interiors.forEach(function(x) { + if(!S.patternType && x.patternType) S.patternType = x.patternType; + }); + cell.s = S; + } + cell.ixfe = cell.StyleID !== undefined ? cell.StyleID : 'Default'; +} + +function xlml_clean_comment(comment) { + comment.t = comment.v; + comment.v = comment.w = comment.ixfe = undefined; +} + +function xlml_normalize(d) { + if(has_buf && Buffer.isBuffer(d)) return d.toString('utf8'); + if(typeof d === 'string') return d; + throw "badf"; +} + +/* TODO: Everything */ +var xlmlregex = /<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/mg; +function parse_xlml_xml(d, opts) { + var str = xlml_normalize(d); + var Rn; + var state = [], tmp; + var sheets = {}, sheetnames = [], cursheet = {}, sheetname = ""; + var table = {}, cell = {}, row = {}, dtag, didx; + var c = 0, r = 0; + var refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} }; + var styles = {}, stag = {}; + var ss = "", fidx = 0; + var mergecells = []; + var Props = {}, Custprops = {}, pidx = 0, cp = {}; + var comments = [], comment = {}; + var cstys = [], csty; + xlmlregex.lastIndex = 0; + while((Rn = xlmlregex.exec(str))) switch(Rn[3]) { + case 'Data': + if(state[state.length-1][1]) break; + if(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]=="Comment"?comment:cell, {c:c,r:r}, styles, cstys[c], row, opts); + else { ss = ""; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; } + break; + case 'Cell': + if(Rn[1]==='/'){ + if(comments.length > 0) cell.c = comments; + if((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) cursheet[encode_col(c) + encode_row(r)] = cell; + if(cell.HRef) { + cell.l = {Target:cell.HRef, tooltip:cell.HRefScreenTip}; + cell.HRef = cell.HRefScreenTip = undefined; + } + if(cell.MergeAcross || cell.MergeDown) { + var cc = c + (parseInt(cell.MergeAcross,10)|0); + var rr = r + (parseInt(cell.MergeDown,10)|0); + mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}}); + } + ++c; + if(cell.MergeAcross) c += +cell.MergeAcross; + } else { + cell = xlml_parsexmltagobj(Rn[0]); + if(cell.Index) c = +cell.Index - 1; + if(c < refguess.s.c) refguess.s.c = c; + if(c > refguess.e.c) refguess.e.c = c; + if(Rn[0].substr(-2) === "/>") ++c; + comments = []; + } + break; + case 'Row': + if(Rn[1]==='/' || Rn[0].substr(-2) === "/>") { + if(r < refguess.s.r) refguess.s.r = r; + if(r > refguess.e.r) refguess.e.r = r; + if(Rn[0].substr(-2) === "/>") { + row = xlml_parsexmltag(Rn[0]); + if(row.Index) r = +row.Index - 1; + } + c = 0; ++r; + } else { + row = xlml_parsexmltag(Rn[0]); + if(row.Index) r = +row.Index - 1; + } + break; + case 'Worksheet': /* TODO: read range from FullRows/FullColumns */ + if(Rn[1]==='/'){ + if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp; + sheetnames.push(sheetname); + if(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) cursheet["!ref"] = encode_range(refguess); + if(mergecells.length) cursheet["!merges"] = mergecells; + sheets[sheetname] = cursheet; + } else { + refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} }; + r = c = 0; + state.push([Rn[3], false]); + tmp = xlml_parsexmltag(Rn[0]); + sheetname = tmp.Name; + cursheet = {}; + mergecells = []; + } + break; + case 'Table': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else if(Rn[0].slice(-2) == "/>") break; + else { + table = xlml_parsexmltag(Rn[0]); + state.push([Rn[3], false]); + cstys = []; + } + break; + + case 'Style': + if(Rn[1]==='/') process_style_xlml(styles, stag, opts); + else stag = xlml_parsexmltag(Rn[0]); + break; + + case 'NumberFormat': + stag.nf = xlml_parsexmltag(Rn[0]).Format || "General"; + break; + + case 'Column': + if(state[state.length-1][0] !== 'Table') break; + csty = xlml_parsexmltag(Rn[0]); + cstys[(csty.Index-1||cstys.length)] = csty; + for(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = csty; + break; + + case 'NamedRange': break; + case 'NamedCell': break; + case 'B': break; + case 'I': break; + case 'U': break; + case 'S': break; + case 'Sub': break; + case 'Sup': break; + case 'Span': break; + case 'Border': break; + case 'Alignment': break; + case 'Borders': break; + case 'Font': + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") ss += str.slice(fidx, Rn.index); + else fidx = Rn.index + Rn[0].length; + break; + case 'Interior': + if(!opts.cellStyles) break; + stag.Interior = xlml_parsexmltag(Rn[0]); + break; + case 'Protection': break; + + case 'Author': + case 'Title': + case 'Description': + case 'Created': + case 'Keywords': + case 'Subject': + case 'Category': + case 'Company': + case 'LastAuthor': + case 'LastSaved': + case 'LastPrinted': + case 'Version': + case 'Revision': + case 'TotalTime': + case 'HyperlinkBase': + case 'Manager': + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index)); + else pidx = Rn.index + Rn[0].length; + break; + case 'Paragraphs': break; + + case 'Styles': + case 'Workbook': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else state.push([Rn[3], false]); + break; + + case 'Comment': + if(Rn[1]==='/'){ + if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp; + xlml_clean_comment(comment); + comments.push(comment); + } else { + state.push([Rn[3], false]); + tmp = xlml_parsexmltag(Rn[0]); + comment = {a:tmp.Author}; + } + break; + + case 'Name': break; + + case 'ComponentOptions': + case 'DocumentProperties': + case 'CustomDocumentProperties': + case 'OfficeDocumentSettings': + case 'PivotTable': + case 'PivotCache': + case 'Names': + case 'MapInfo': + case 'PageBreaks': + case 'QueryTable': + case 'DataValidation': + case 'AutoFilter': + case 'Sorting': + case 'Schema': + case 'data': + case 'ConditionalFormatting': + case 'SmartTagType': + case 'SmartTags': + case 'ExcelWorkbook': + case 'WorkbookOptions': + case 'WorksheetOptions': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]); + break; + + default: + var seen = true; + switch(state[state.length-1][0]) { + /* OfficeDocumentSettings */ + case 'OfficeDocumentSettings': switch(Rn[3]) { + case 'AllowPNG': break; + case 'RemovePersonalInformation': break; + case 'DownloadComponents': break; + case 'LocationOfComponents': break; + case 'Colors': break; + case 'Color': break; + case 'Index': break; + case 'RGB': break; + case 'PixelsPerInch': break; + case 'TargetScreenSize': break; + case 'ReadOnlyRecommended': break; + default: seen = false; + } break; + + /* ComponentOptions */ + case 'ComponentOptions': switch(Rn[3]) { + case 'Toolbar': break; + case 'HideOfficeLogo': break; + case 'SpreadsheetAutoFit': break; + case 'Label': break; + case 'Caption': break; + case 'MaxHeight': break; + case 'MaxWidth': break; + case 'NextSheetNumber': break; + default: seen = false; + } break; + + /* ExcelWorkbook */ + case 'ExcelWorkbook': switch(Rn[3]) { + case 'WindowHeight': break; + case 'WindowWidth': break; + case 'WindowTopX': break; + case 'WindowTopY': break; + case 'TabRatio': break; + case 'ProtectStructure': break; + case 'ProtectWindows': break; + case 'ActiveSheet': break; + case 'DisplayInkNotes': break; + case 'FirstVisibleSheet': break; + case 'SupBook': break; + case 'SheetName': break; + case 'SheetIndex': break; + case 'SheetIndexFirst': break; + case 'SheetIndexLast': break; + case 'Dll': break; + case 'AcceptLabelsInFormulas': break; + case 'DoNotSaveLinkValues': break; + case 'Date1904': break; + case 'Iteration': break; + case 'MaxIterations': break; + case 'MaxChange': break; + case 'Path': break; + case 'Xct': break; + case 'Count': break; + case 'SelectedSheets': break; + case 'Calculation': break; + case 'Uncalced': break; + case 'StartupPrompt': break; + case 'Crn': break; + case 'ExternName': break; + case 'Formula': break; + case 'ColFirst': break; + case 'ColLast': break; + case 'WantAdvise': break; + case 'Boolean': break; + case 'Error': break; + case 'Text': break; + case 'OLE': break; + case 'NoAutoRecover': break; + case 'PublishObjects': break; + case 'DoNotCalculateBeforeSave': break; + case 'Number': break; + case 'RefModeR1C1': break; + case 'EmbedSaveSmartTags': break; + default: seen = false; + } break; + + /* WorkbookOptions */ + case 'WorkbookOptions': switch(Rn[3]) { + case 'OWCVersion': break; + case 'Height': break; + case 'Width': break; + default: seen = false; + } break; + + /* WorksheetOptions */ + case 'WorksheetOptions': switch(Rn[3]) { + case 'Unsynced': break; + case 'Visible': break; + case 'Print': break; + case 'Panes': break; + case 'Scale': break; + case 'Pane': break; + case 'Number': break; + case 'Layout': break; + case 'Header': break; + case 'Footer': break; + case 'PageSetup': break; + case 'PageMargins': break; + case 'Selected': break; + case 'ProtectObjects': break; + case 'EnableSelection': break; + case 'ProtectScenarios': break; + case 'ValidPrinterInfo': break; + case 'HorizontalResolution': break; + case 'VerticalResolution': break; + case 'NumberofCopies': break; + case 'ActiveRow': break; + case 'ActiveCol': break; + case 'ActivePane': break; + case 'TopRowVisible': break; + case 'TopRowBottomPane': break; + case 'LeftColumnVisible': break; + case 'LeftColumnRightPane': break; + case 'FitToPage': break; + case 'RangeSelection': break; + case 'PaperSizeIndex': break; + case 'PageLayoutZoom': break; + case 'PageBreakZoom': break; + case 'FilterOn': break; + case 'DoNotDisplayGridlines': break; + case 'SplitHorizontal': break; + case 'SplitVertical': break; + case 'FreezePanes': break; + case 'FrozenNoSplit': break; + case 'FitWidth': break; + case 'FitHeight': break; + case 'CommentsLayout': break; + case 'Zoom': break; + case 'LeftToRight': break; + case 'Gridlines': break; + case 'AllowSort': break; + case 'AllowFilter': break; + case 'AllowInsertRows': break; + case 'AllowDeleteRows': break; + case 'AllowInsertCols': break; + case 'AllowDeleteCols': break; + case 'AllowInsertHyperlinks': break; + case 'AllowFormatCells': break; + case 'AllowSizeCols': break; + case 'AllowSizeRows': break; + case 'NoSummaryRowsBelowDetail': break; + case 'TabColorIndex': break; + case 'DoNotDisplayHeadings': break; + case 'ShowPageLayoutZoom': break; + case 'NoSummaryColumnsRightDetail': break; + case 'BlackAndWhite': break; + case 'DoNotDisplayZeros': break; + case 'DisplayPageBreak': break; + case 'RowColHeadings': break; + case 'DoNotDisplayOutline': break; + case 'NoOrientation': break; + case 'AllowUsePivotTables': break; + case 'ZeroHeight': break; + case 'ViewableRange': break; + case 'Selection': break; + case 'ProtectContents': break; + default: seen = false; + } break; + + /* PivotTable */ + case 'PivotTable': case 'PivotCache': switch(Rn[3]) { + case 'ImmediateItemsOnDrop': break; + case 'ShowPageMultipleItemLabel': break; + case 'CompactRowIndent': break; + case 'Location': break; + case 'PivotField': break; + case 'Orientation': break; + case 'LayoutForm': break; + case 'LayoutSubtotalLocation': break; + case 'LayoutCompactRow': break; + case 'Position': break; + case 'PivotItem': break; + case 'DataType': break; + case 'DataField': break; + case 'SourceName': break; + case 'ParentField': break; + case 'PTLineItems': break; + case 'PTLineItem': break; + case 'CountOfSameItems': break; + case 'Item': break; + case 'ItemType': break; + case 'PTSource': break; + case 'CacheIndex': break; + case 'ConsolidationReference': break; + case 'FileName': break; + case 'Reference': break; + case 'NoColumnGrand': break; + case 'NoRowGrand': break; + case 'BlankLineAfterItems': break; + case 'Hidden': break; + case 'Subtotal': break; + case 'BaseField': break; + case 'MapChildItems': break; + case 'Function': break; + case 'RefreshOnFileOpen': break; + case 'PrintSetTitles': break; + case 'MergeLabels': break; + case 'DefaultVersion': break; + case 'RefreshName': break; + case 'RefreshDate': break; + case 'RefreshDateCopy': break; + case 'VersionLastRefresh': break; + case 'VersionLastUpdate': break; + case 'VersionUpdateableMin': break; + case 'VersionRefreshableMin': break; + case 'Calculation': break; + default: seen = false; + } break; + + /* PageBreaks */ + case 'PageBreaks': switch(Rn[3]) { + case 'ColBreaks': break; + case 'ColBreak': break; + case 'RowBreaks': break; + case 'RowBreak': break; + case 'ColStart': break; + case 'ColEnd': break; + case 'RowEnd': break; + default: seen = false; + } break; + + /* AutoFilter */ + case 'AutoFilter': switch(Rn[3]) { + case 'AutoFilterColumn': break; + case 'AutoFilterCondition': break; + case 'AutoFilterAnd': break; + case 'AutoFilterOr': break; + default: seen = false; + } break; + + /* QueryTable */ + case 'QueryTable': switch(Rn[3]) { + case 'Id': break; + case 'AutoFormatFont': break; + case 'AutoFormatPattern': break; + case 'QuerySource': break; + case 'QueryType': break; + case 'EnableRedirections': break; + case 'RefreshedInXl9': break; + case 'URLString': break; + case 'HTMLTables': break; + case 'Connection': break; + case 'CommandText': break; + case 'RefreshInfo': break; + case 'NoTitles': break; + case 'NextId': break; + case 'ColumnInfo': break; + case 'OverwriteCells': break; + case 'DoNotPromptForFile': break; + case 'TextWizardSettings': break; + case 'Source': break; + case 'Number': break; + case 'Decimal': break; + case 'ThousandSeparator': break; + case 'TrailingMinusNumbers': break; + case 'FormatSettings': break; + case 'FieldType': break; + case 'Delimiters': break; + case 'Tab': break; + case 'Comma': break; + case 'AutoFormatName': break; + case 'VersionLastEdit': break; + case 'VersionLastRefresh': break; + default: seen = false; + } break; + + /* Sorting */ + case 'Sorting': + /* ConditionalFormatting */ + case 'ConditionalFormatting': + /* DataValidation */ + case 'DataValidation': switch(Rn[3]) { + case 'Range': break; + case 'Type': break; + case 'Min': break; + case 'Max': break; + case 'Sort': break; + case 'Descending': break; + case 'Order': break; + case 'CaseSensitive': break; + case 'Value': break; + case 'ErrorStyle': break; + case 'ErrorMessage': break; + case 'ErrorTitle': break; + case 'CellRangeList': break; + case 'InputMessage': break; + case 'InputTitle': break; + case 'ComboHide': break; + case 'InputHide': break; + case 'Condition': break; + case 'Qualifier': break; + case 'UseBlank': break; + case 'Value1': break; + case 'Value2': break; + case 'Format': break; + default: seen = false; + } break; + + /* MapInfo (schema) */ + case 'MapInfo': case 'Schema': case 'data': switch(Rn[3]) { + case 'Map': break; + case 'Entry': break; + case 'Range': break; + case 'XPath': break; + case 'Field': break; + case 'XSDType': break; + case 'FilterOn': break; + case 'Aggregate': break; + case 'ElementType': break; + case 'AttributeType': break; + /* These are from xsd (XML Schema Definition) */ + case 'schema': + case 'element': + case 'complexType': + case 'datatype': + case 'all': + case 'attribute': + case 'extends': break; + + case 'row': break; + default: seen = false; + } break; + + /* SmartTags (can be anything) */ + case 'SmartTags': break; + + default: seen = false; break; + } + if(seen) break; + /* CustomDocumentProperties */ + if(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + "|" + state.join("|"); + if(state[state.length-1][0]==='CustomDocumentProperties') { + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") xlml_set_custprop(Custprops, Rn, cp, str.slice(pidx, Rn.index)); + else { cp = Rn; pidx = Rn.index + Rn[0].length; } + break; + } + if(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + "|" + state.join("|"); + } + var out = {}; + if(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets; + out.SheetNames = sheetnames; + out.SSF = SSF.get_table(); + out.Props = Props; + out.Custprops = Custprops; + return out; +} + +function parse_xlml(data, opts) { + fix_read_opts(opts=opts||{}); + switch(opts.type||"base64") { + case "base64": return parse_xlml_xml(Base64.decode(data), opts); + case "binary": case "buffer": case "file": return parse_xlml_xml(data, opts); + case "array": return parse_xlml_xml(data.map(_chr).join(""), opts); + } +} + +function write_xlml(wb, opts) { } + +/* [MS-OLEDS] 2.3.8 CompObjStream */ +function parse_compobj(obj) { + var v = {}; + var o = obj.content; + + /* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */ + var l = 28, m; + m = __lpstr(o, l); + l += 4 + __readUInt32LE(o,l); + v.UserType = m; + + /* [MS-OLEDS] 2.3.1 ClipboardFormatOrAnsiString */ + m = __readUInt32LE(o,l); l+= 4; + switch(m) { + case 0x00000000: break; + case 0xffffffff: case 0xfffffffe: l+=4; break; + default: + if(m > 0x190) throw new Error("Unsupported Clipboard: " + m.toString(16)); + l += m; + } + + m = __lpstr(o, l); l += m.length === 0 ? 0 : 5 + m.length; v.Reserved1 = m; + + if((m = __readUInt32LE(o,l)) !== 0x71b2e9f4) return v; + throw "Unsupported Unicode Extension"; +} + +/* 2.4.58 Continue logic */ +function slurp(R, blob, length, opts) { + var l = length; + var bufs = []; + var d = blob.slice(blob.l,blob.l+l); + if(opts && opts.enc && opts.enc.insitu_decrypt) switch(R.n) { + case 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break; + default: + if(d.length === 0) break; + opts.enc.insitu_decrypt(d); + } + bufs.push(d); + blob.l += l; + var next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]); + while(next != null && next.n === 'Continue') { + l = __readUInt16LE(blob,blob.l+2); + bufs.push(blob.slice(blob.l+4,blob.l+4+l)); + blob.l += 4+l; + next = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]); + } + var b = bconcat(bufs); + prep_blob(b, 0); + var ll = 0; b.lens = []; + for(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; } + return R.f(b, b.length, opts); +} + +function safe_format_xf(p, opts, date1904) { + if(!p.XF) return; + try { + var fmtid = p.XF.ifmt||0; + if(p.t === 'e') { p.w = p.w || BErr[p.v]; } + else if(fmtid === 0) { + if(p.t === 'n') { + if((p.v|0) === p.v) p.w = SSF._general_int(p.v); + else p.w = SSF._general_num(p.v); + } + else p.w = SSF._general(p.v); + } + else p.w = SSF.format(fmtid,p.v, {date1904:date1904||false}); + if(opts.cellNF) p.z = SSF._table[fmtid]; + } catch(e) { if(opts.WTF) throw e; } +} + +function make_cell(val, ixfe, t) { + return {v:val, ixfe:ixfe, t:t}; +} + +// 2.3.2 +function parse_workbook(blob, options) { + var wb = {opts:{}}; + var Sheets = {}; + var out = {}; + var Directory = {}; + var found_sheet = false; + var range = {}; + var last_formula = null; + var sst = []; + var cur_sheet = ""; + var Preamble = {}; + var lastcell, last_cell, cc, cmnt, rng, rngC, rngR; + var shared_formulae = {}; + var array_formulae = []; /* TODO: something more clever */ + var temp_val; + var country; + var cell_valid = true; + var XFs = []; /* XF records */ + var palette = []; + var get_rgb = function getrgb(icv) { + if(icv < 8) return XLSIcv[icv]; + if(icv < 64) return palette[icv-8] || XLSIcv[icv]; + return XLSIcv[icv]; + }; + var process_cell_style = function pcs(cell, line) { + var xfd = line.XF.data; + if(!xfd || !xfd.patternType) return; + line.s = {}; + line.s.patternType = xfd.patternType; + var t; + if((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; } + if((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; } + }; + var addcell = function addcell(cell, line, options) { + if(!cell_valid) return; + if(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line); + lastcell = cell; + last_cell = encode_cell(cell); + if(range.s) { + if(cell.r < range.s.r) range.s.r = cell.r; + if(cell.c < range.s.c) range.s.c = cell.c; + } + if(range.e) { + if(cell.r + 1 > range.e.r) range.e.r = cell.r + 1; + if(cell.c + 1 > range.e.c) range.e.c = cell.c + 1; + } + if(options.sheetRows && lastcell.r >= options.sheetRows) cell_valid = false; + else out[last_cell] = line; + }; + var opts = { + enc: false, // encrypted + sbcch: 0, // cch in the preceding SupBook + snames: [], // sheetnames + sharedf: shared_formulae, // shared formulae by address + arrayf: array_formulae, // array formulae array + rrtabid: [], // RRTabId + lastuser: "", // Last User from WriteAccess + biff: 8, // BIFF version + codepage: 0, // CP from CodePage record + winlocked: 0, // fLockWn from WinProtect + wtf: false + }; + if(options.password) opts.password = options.password; + var mergecells = []; + var objects = []; + var supbooks = [[]]; // 1-indexed, will hold extern names + var sbc = 0, sbci = 0, sbcli = 0; + supbooks.SheetNames = opts.snames; + supbooks.sharedf = opts.sharedf; + supbooks.arrayf = opts.arrayf; + var last_Rn = ''; + var file_depth = 0; /* TODO: make a real stack */ + + /* explicit override for some broken writers */ + opts.codepage = 1200; + set_cp(1200); + + while(blob.l < blob.length - 1) { + var s = blob.l; + var RecordType = blob.read_shift(2); + if(RecordType === 0 && last_Rn === 'EOF') break; + var length = (blob.l === blob.length ? 0 : blob.read_shift(2)), y; + var R = XLSRecordEnum[RecordType]; + if(R && R.f) { + if(options.bookSheets) { + if(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break; + } + last_Rn = R.n; + if(R.r === 2 || R.r == 12) { + var rt = blob.read_shift(2); length -= 2; + if(!opts.enc && rt !== RecordType) throw "rt mismatch"; + if(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT + } + //console.error(R,blob.l,length,blob.length); + var val; + if(R.n === 'EOF') val = R.f(blob, length, opts); + else val = slurp(R, blob, length, opts); + var Rn = R.n; + /* BIFF5 overrides */ + if(opts.biff === 5 || opts.biff === 2) switch(Rn) { + case 'Lbl': Rn = 'Label'; break; + } + /* nested switch statements to workaround V8 128 limit */ + switch(Rn) { + /* Workbook Options */ + case 'Date1904': wb.opts.Date1904 = val; break; + case 'WriteProtect': wb.opts.WriteProtect = true; break; + case 'FilePass': + if(!opts.enc) blob.l = 0; + opts.enc = val; + if(opts.WTF) console.error(val); + if(!options.password) throw new Error("File is password-protected"); + if(val.Type !== 0) throw new Error("Encryption scheme unsupported"); + if(!val.valid) throw new Error("Password is incorrect"); + break; + case 'WriteAccess': opts.lastuser = val; break; + case 'FileSharing': break; //TODO + case 'CodePage': + /* overrides based on test cases */ + if(val === 0x5212) val = 1200; + else if(val === 0x8001) val = 1252; + opts.codepage = val; + set_cp(val); + break; + case 'RRTabId': opts.rrtabid = val; break; + case 'WinProtect': opts.winlocked = val; break; + case 'Template': break; // TODO + case 'RefreshAll': wb.opts.RefreshAll = val; break; + case 'BookBool': break; // TODO + case 'UsesELFs': /* if(val) console.error("Unsupported ELFs"); */ break; + case 'MTRSettings': { + if(val[0] && val[1]) throw "Unsupported threads: " + val; + } break; // TODO: actually support threads + case 'CalcCount': wb.opts.CalcCount = val; break; + case 'CalcDelta': wb.opts.CalcDelta = val; break; + case 'CalcIter': wb.opts.CalcIter = val; break; + case 'CalcMode': wb.opts.CalcMode = val; break; + case 'CalcPrecision': wb.opts.CalcPrecision = val; break; + case 'CalcSaveRecalc': wb.opts.CalcSaveRecalc = val; break; + case 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1 + case 'Uncalced': break; + case 'ForceFullCalculation': wb.opts.FullCalc = val; break; + case 'WsBool': break; // TODO + case 'XF': XFs.push(val); break; + case 'ExtSST': break; // TODO + case 'BookExt': break; // TODO + case 'RichTextStream': break; + case 'BkHim': break; + + case 'SupBook': supbooks[++sbc] = [val]; sbci = 0; break; + case 'ExternName': supbooks[sbc][++sbci] = val; break; + case 'Index': break; // TODO + case 'Lbl': supbooks[0][++sbcli] = val; break; + case 'ExternSheet': supbooks[sbc] = supbooks[sbc].concat(val); sbci += val.length; break; + + case 'Protect': out["!protect"] = val; break; /* for sheet or book */ + case 'Password': if(val !== 0 && opts.WTF) console.error("Password verifier: " + val); break; + case 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/ + + case 'BoundSheet8': { + Directory[val.pos] = val; + opts.snames.push(val.name); + } break; + case 'EOF': { + if(--file_depth) break; + if(range.e) { + out["!range"] = range; + if(range.e.r > 0 && range.e.c > 0) { + range.e.r--; range.e.c--; + out["!ref"] = encode_range(range); + range.e.r++; range.e.c++; + } + if(mergecells.length > 0) out["!merges"] = mergecells; + if(objects.length > 0) out["!objects"] = objects; + } + if(cur_sheet === "") Preamble = out; else Sheets[cur_sheet] = out; + out = {}; + } break; + case 'BOF': { + if(opts.biff !== 8); + else if(val.BIFFVer === 0x0500) opts.biff = 5; + else if(val.BIFFVer === 0x0002) opts.biff = 2; + else if(val.BIFFVer === 0x0007) opts.biff = 2; + if(file_depth++) break; + cell_valid = true; + out = {}; + if(opts.biff === 2) { + if(cur_sheet === "") cur_sheet = "Sheet1"; + range = {s:{r:0,c:0},e:{r:0,c:0}}; + } + else cur_sheet = (Directory[s] || {name:""}).name; + mergecells = []; + objects = []; + } break; + case 'Number': case 'BIFF2NUM': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'BoolErr': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'RK': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'MulRk': { + for(var j = val.c; j <= val.C; ++j) { + var ixfe = val.rkrec[j-val.c][0]; + temp_val= {ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:j, r:val.r}, temp_val, options); + } + } break; + case 'Formula': { + switch(val.val) { + case 'String': last_formula = val; break; + case 'Array Formula': throw "Array Formula unsupported"; + default: + temp_val = {v:val.val, ixfe:val.cell.ixfe, t:val.tt}; + temp_val.XF = XFs[temp_val.ixfe]; + if(options.cellFormula) temp_val.f = "="+stringify_formula(val.formula,range,val.cell,supbooks, opts); + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell(val.cell, temp_val, options); + last_formula = val; + } + } break; + case 'String': { + if(last_formula) { + last_formula.val = val; + temp_val = {v:last_formula.val, ixfe:last_formula.cell.ixfe, t:'s'}; + temp_val.XF = XFs[temp_val.ixfe]; + if(options.cellFormula) temp_val.f = "="+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts); + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell(last_formula.cell, temp_val, options); + last_formula = null; + } + } break; + case 'Array': { + array_formulae.push(val); + } break; + case 'ShrFmla': { + if(!cell_valid) break; + //if(options.cellFormula) out[last_cell].f = stringify_formula(val[0], range, lastcell, supbooks, opts); + /* TODO: capture range */ + shared_formulae[encode_cell(last_formula.cell)]= val[0]; + } break; + case 'LabelSst': + //temp_val={v:sst[val.isst].t, ixfe:val.ixfe, t:'s'}; + temp_val=make_cell(sst[val.isst].t, val.ixfe, 's'); + temp_val.XF = XFs[temp_val.ixfe]; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + break; + case 'Label': case 'BIFF2STR': + /* Some writers erroneously write Label */ + temp_val=make_cell(val.val, val.ixfe, 's'); + temp_val.XF = XFs[temp_val.ixfe]; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + break; + case 'Dimensions': { + if(file_depth === 1) range = val; /* TODO: stack */ + } break; + case 'SST': { + sst = val; + } break; + case 'Format': { /* val = [id, fmt] */ + SSF.load(val[1], val[0]); + } break; + + case 'MergeCells': mergecells = mergecells.concat(val); break; + + case 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break; + case 'TxO': opts.lastobj.TxO = val; break; + + case 'HLink': { + for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR) + for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) + if(out[encode_cell({c:rngC,r:rngR})]) + out[encode_cell({c:rngC,r:rngR})].l = val[1]; + } break; + case 'HLinkTooltip': { + for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR) + for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) + if(out[encode_cell({c:rngC,r:rngR})]) + out[encode_cell({c:rngC,r:rngR})].l.tooltip = val[1]; + } break; + + /* Comments */ + case 'Note': { + if(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */ + cc = out[encode_cell(val[0])]; + var noteobj = objects[val[2]]; + if(!cc) break; + if(!cc.c) cc.c = []; + cmnt = {a:val[1],t:noteobj.TxO.t}; + cc.c.push(cmnt); + } break; + + default: switch(R.n) { /* nested */ + case 'ClrtClient': break; + case 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break; + + case 'NameCmt': break; + case 'Header': break; // TODO + case 'Footer': break; // TODO + case 'HCenter': break; // TODO + case 'VCenter': break; // TODO + case 'Pls': break; // TODO + case 'Setup': break; // TODO + case 'DefColWidth': break; // TODO + case 'GCW': break; + case 'LHRecord': break; + case 'ColInfo': break; // TODO + case 'Row': break; // TODO + case 'DBCell': break; // TODO + case 'MulBlank': break; // TODO + case 'EntExU2': break; // TODO + case 'SxView': break; // TODO + case 'Sxvd': break; // TODO + case 'SXVI': break; // TODO + case 'SXVDEx': break; // TODO + case 'SxIvd': break; // TODO + case 'SXDI': break; // TODO + case 'SXLI': break; // TODO + case 'SXEx': break; // TODO + case 'QsiSXTag': break; // TODO + case 'Selection': break; + case 'Feat': break; + case 'FeatHdr': case 'FeatHdr11': break; + case 'Feature11': case 'Feature12': case 'List12': break; + case 'Blank': break; + case 'Country': country = val; break; + case 'RecalcId': break; + case 'DefaultRowHeight': case 'DxGCol': break; // TODO: htmlify + case 'Fbi': case 'Fbi2': case 'GelFrame': break; + case 'Font': break; // TODO + case 'XFCRC': break; // TODO + case 'Style': break; // TODO + case 'StyleExt': break; // TODO + case 'Palette': palette = val; break; // TODO + case 'Theme': break; // TODO + /* Protection */ + case 'ScenarioProtect': break; + case 'ObjProtect': break; + + /* Conditional Formatting */ + case 'CondFmt12': break; + + /* Table */ + case 'Table': break; // TODO + case 'TableStyles': break; // TODO + case 'TableStyle': break; // TODO + case 'TableStyleElement': break; // TODO + + /* PivotTable */ + case 'SXStreamID': break; // TODO + case 'SXVS': break; // TODO + case 'DConRef': break; // TODO + case 'SXAddl': break; // TODO + case 'DConBin': break; // TODO + case 'DConName': break; // TODO + case 'SXPI': break; // TODO + case 'SxFormat': break; // TODO + case 'SxSelect': break; // TODO + case 'SxRule': break; // TODO + case 'SxFilt': break; // TODO + case 'SxItm': break; // TODO + case 'SxDXF': break; // TODO + + /* Scenario Manager */ + case 'ScenMan': break; + + /* Data Consolidation */ + case 'DCon': break; + + /* Watched Cell */ + case 'CellWatch': break; + + /* Print Settings */ + case 'PrintRowCol': break; + case 'PrintGrid': break; + case 'PrintSize': break; + + case 'XCT': break; + case 'CRN': break; + + case 'Scl': { + //console.log("Zoom Level:", val[0]/val[1],val); + } break; + case 'SheetExt': { + + } break; + case 'SheetExtOptional': { + + } break; + + /* VBA */ + case 'ObNoMacros': { + + } break; + case 'ObProj': { + + } break; + case 'CodeName': { + + } break; + case 'GUIDTypeLib': { + + } break; + + case 'WOpt': break; // TODO: WTF? + case 'PhoneticInfo': break; + + case 'OleObjectSize': break; + + /* Differential Formatting */ + case 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break; + + /* Data Validation */ + case 'Dv': case 'DVal': break; + + /* Data Series */ + case 'BRAI': case 'Series': case 'SeriesText': break; + + /* Data Connection */ + case 'DConn': break; + case 'DbOrParamQry': break; + case 'DBQueryExt': break; + + /* Formatting */ + case 'IFmtRecord': break; + case 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break; + + /* Explicitly Ignored */ + case 'Excel9File': break; + case 'Units': break; + case 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': case 'BuiltInFnGroupCount': + /* View Stuff */ + case 'Window1': case 'Window2': case 'HideObj': case 'GridSet': case 'Guts': + case 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': + case 'Pane': break; + default: switch(R.n) { /* nested */ + /* Chart */ + case 'Dat': + case 'Begin': case 'End': + case 'StartBlock': case 'EndBlock': + case 'Frame': case 'Area': + case 'Axis': case 'AxisLine': case 'Tick': break; + case 'AxesUsed': + case 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break; + case 'LineFormat': case 'AreaFormat': + case 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break; + case 'PlotArea': case 'PlotGrowth': break; + case 'SeriesList': case 'SerParent': case 'SerAuxTrend': break; + case 'DataFormat': case 'SerToCrt': case 'FontX': break; + case 'CatSerRange': case 'AxcExt': case 'SerFmt': break; + case 'ShtProps': break; + case 'DefaultText': case 'Text': case 'CatLab': break; + case 'DataLabExtContents': break; + case 'Legend': case 'LegendException': break; + case 'Pie': case 'Scatter': break; + case 'PieFormat': case 'MarkerFormat': break; + case 'StartObject': case 'EndObject': break; + case 'AlRuns': case 'ObjectLink': break; + case 'SIIndex': break; + case 'AttachedLabel': case 'YMult': break; + + /* Chart Group */ + case 'Line': case 'Bar': break; + case 'Surf': break; + + /* Axis Group */ + case 'AxisParent': break; + case 'Pos': break; + case 'ValueRange': break; + + /* Pivot Chart */ + case 'SXViewEx9': break; // TODO + case 'SXViewLink': break; + case 'PivotChartBits': break; + case 'SBaseRef': break; + case 'TextPropsStream': break; + + /* Chart Misc */ + case 'LnExt': break; + case 'MkrExt': break; + case 'CrtCoopt': break; + + /* Query Table */ + case 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break; + case 'TxtQry': break; + + /* Filter */ + case 'FilterMode': break; + case 'AutoFilter': case 'AutoFilterInfo': break; + case 'AutoFilter12': break; + case 'DropDownObjIds': break; + case 'Sort': break; + case 'SortData': break; + + /* Drawing */ + case 'ShapePropsStream': break; + case 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break; + case 'ImData': break; + /* Pub Stuff */ + case 'WebPub': case 'AutoWebPub': + + /* Print Stuff */ + case 'RightMargin': case 'LeftMargin': case 'TopMargin': case 'BottomMargin': + case 'HeaderFooter': case 'HFPicture': case 'PLV': + case 'HorizontalPageBreaks': case 'VerticalPageBreaks': + /* Behavioral */ + case 'Backup': case 'CompressPictures': case 'Compat12': break; + + /* Should not Happen */ + case 'Continue': case 'ContinueFrt12': break; + + /* Future Records */ + case 'FrtFontList': case 'FrtWrapper': break; + + /* BIFF5 records */ + case 'ExternCount': break; + case 'RString': break; + case 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break; + + default: switch(R.n) { /* nested */ + /* Miscellaneous */ + case 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt': + case 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData': + case 'Name': break; + default: if(options.WTF) throw 'Unrecognized Record ' + R.n; + }}}} + } else blob.l += length; + } + var sheetnamesraw = opts.biff === 2 ? ['Sheet1'] : Object.keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;}); + var sheetnames = sheetnamesraw.slice(); + wb.Directory=sheetnamesraw; + wb.SheetNames=sheetnamesraw; + if(!options.bookSheets) wb.Sheets=Sheets; + wb.Preamble=Preamble; + wb.Strings = sst; + wb.SSF = SSF.get_table(); + if(opts.enc) wb.Encryption = opts.enc; + wb.Metadata = {}; + if(country !== undefined) wb.Metadata.Country = country; + return wb; +} + +function parse_xlscfb(cfb, options) { +if(!options) options = {}; +fix_read_opts(options); +reset_cp(); +var CompObj, Summary, Workbook; +if(cfb.find) { + CompObj = cfb.find('!CompObj'); + Summary = cfb.find('!SummaryInformation'); + Workbook = cfb.find('/Workbook'); +} else { + prep_blob(cfb, 0); + Workbook = {content: cfb}; +} + +if(!Workbook) Workbook = cfb.find('/Book'); +var CompObjP, SummaryP, WorkbookP; + +if(CompObj) CompObjP = parse_compobj(CompObj); +if(options.bookProps && !options.bookSheets) WorkbookP = {}; +else { + if(Workbook) WorkbookP = parse_workbook(Workbook.content, options, !!Workbook.find); + else throw new Error("Cannot find Workbook stream"); +} + +if(cfb.find) parse_props(cfb); + +var props = {}; +for(var y in cfb.Summary) props[y] = cfb.Summary[y]; +for(y in cfb.DocSummary) props[y] = cfb.DocSummary[y]; +WorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */ +if(options.bookFiles) WorkbookP.cfb = cfb; +WorkbookP.CompObjP = CompObjP; +return WorkbookP; +} + +/* TODO: WTF */ +function parse_props(cfb) { + /* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */ + var DSI = cfb.find('!DocumentSummaryInformation'); + if(DSI) try { cfb.DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI); } catch(e) {} + + /* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/ + var SI = cfb.find('!SummaryInformation'); + if(SI) try { cfb.Summary = parse_PropertySetStream(SI, SummaryPIDSI); } catch(e) {} +} + /* [MS-XLSB] 2.3 Record Enumeration */ -var RecordEnum = { +var XLSBRecordEnum = { 0x0000: { n:"BrtRowHdr", f:parse_BrtRowHdr }, 0x0001: { n:"BrtCellBlank", f:parse_BrtCellBlank }, 0x0002: { n:"BrtCellRk", f:parse_BrtCellRk }, @@ -4864,10 +10674,415 @@ var RecordEnum = { 0xFFFF: { n:"", f:parsenoop } }; -var evert_RE = evert_key(RecordEnum, 'n'); +var evert_RE = evert_key(XLSBRecordEnum, 'n'); + +/* [MS-XLS] 2.3 Record Enumeration */ +var XLSRecordEnum = { + 0x0003: { n:"BIFF2NUM", f:parse_BIFF2NUM }, + 0x0004: { n:"BIFF2STR", f:parse_BIFF2STR }, + 0x0006: { n:"Formula", f:parse_Formula }, + 0x0009: { n:'BOF', f:parse_BOF }, + 0x000a: { n:'EOF', f:parse_EOF }, + 0x000c: { n:"CalcCount", f:parse_CalcCount }, + 0x000d: { n:"CalcMode", f:parse_CalcMode }, + 0x000e: { n:"CalcPrecision", f:parse_CalcPrecision }, + 0x000f: { n:"CalcRefMode", f:parse_CalcRefMode }, + 0x0010: { n:"CalcDelta", f:parse_CalcDelta }, + 0x0011: { n:"CalcIter", f:parse_CalcIter }, + 0x0012: { n:"Protect", f:parse_Protect }, + 0x0013: { n:"Password", f:parse_Password }, + 0x0014: { n:"Header", f:parse_Header }, + 0x0015: { n:"Footer", f:parse_Footer }, + 0x0017: { n:"ExternSheet", f:parse_ExternSheet }, + 0x0018: { n:"Lbl", f:parse_Lbl }, + 0x0019: { n:"WinProtect", f:parse_WinProtect }, + 0x001a: { n:"VerticalPageBreaks", f:parse_VerticalPageBreaks }, + 0x001b: { n:"HorizontalPageBreaks", f:parse_HorizontalPageBreaks }, + 0x001c: { n:"Note", f:parse_Note }, + 0x001d: { n:"Selection", f:parse_Selection }, + 0x0022: { n:"Date1904", f:parse_Date1904 }, + 0x0023: { n:"ExternName", f:parse_ExternName }, + 0x0026: { n:"LeftMargin", f:parse_LeftMargin }, + 0x0027: { n:"RightMargin", f:parse_RightMargin }, + 0x0028: { n:"TopMargin", f:parse_TopMargin }, + 0x0029: { n:"BottomMargin", f:parse_BottomMargin }, + 0x002a: { n:"PrintRowCol", f:parse_PrintRowCol }, + 0x002b: { n:"PrintGrid", f:parse_PrintGrid }, + 0x002f: { n:"FilePass", f:parse_FilePass }, + 0x0031: { n:"Font", f:parse_Font }, + 0x0033: { n:"PrintSize", f:parse_PrintSize }, + 0x003c: { n:"Continue", f:parse_Continue }, + 0x003d: { n:"Window1", f:parse_Window1 }, + 0x0040: { n:"Backup", f:parse_Backup }, + 0x0041: { n:"Pane", f:parse_Pane }, + 0x0042: { n:'CodePage', f:parse_CodePage }, + 0x004d: { n:"Pls", f:parse_Pls }, + 0x0050: { n:"DCon", f:parse_DCon }, + 0x0051: { n:"DConRef", f:parse_DConRef }, + 0x0052: { n:"DConName", f:parse_DConName }, + 0x0055: { n:"DefColWidth", f:parse_DefColWidth }, + 0x0059: { n:"XCT", f:parse_XCT }, + 0x005a: { n:"CRN", f:parse_CRN }, + 0x005b: { n:"FileSharing", f:parse_FileSharing }, + 0x005c: { n:'WriteAccess', f:parse_WriteAccess }, + 0x005d: { n:"Obj", f:parse_Obj }, + 0x005e: { n:"Uncalced", f:parse_Uncalced }, + 0x005f: { n:"CalcSaveRecalc", f:parse_CalcSaveRecalc }, + 0x0060: { n:"Template", f:parse_Template }, + 0x0061: { n:"Intl", f:parse_Intl }, + 0x0063: { n:"ObjProtect", f:parse_ObjProtect }, + 0x007d: { n:"ColInfo", f:parse_ColInfo }, + 0x0080: { n:"Guts", f:parse_Guts }, + 0x0081: { n:"WsBool", f:parse_WsBool }, + 0x0082: { n:"GridSet", f:parse_GridSet }, + 0x0083: { n:"HCenter", f:parse_HCenter }, + 0x0084: { n:"VCenter", f:parse_VCenter }, + 0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 }, + 0x0086: { n:"WriteProtect", f:parse_WriteProtect }, + 0x008c: { n:"Country", f:parse_Country }, + 0x008d: { n:"HideObj", f:parse_HideObj }, + 0x0090: { n:"Sort", f:parse_Sort }, + 0x0092: { n:"Palette", f:parse_Palette }, + 0x0097: { n:"Sync", f:parse_Sync }, + 0x0098: { n:"LPr", f:parse_LPr }, + 0x0099: { n:"DxGCol", f:parse_DxGCol }, + 0x009a: { n:"FnGroupName", f:parse_FnGroupName }, + 0x009b: { n:"FilterMode", f:parse_FilterMode }, + 0x009c: { n:"BuiltInFnGroupCount", f:parse_BuiltInFnGroupCount }, + 0x009d: { n:"AutoFilterInfo", f:parse_AutoFilterInfo }, + 0x009e: { n:"AutoFilter", f:parse_AutoFilter }, + 0x00a0: { n:"Scl", f:parse_Scl }, + 0x00a1: { n:"Setup", f:parse_Setup }, + 0x00ae: { n:"ScenMan", f:parse_ScenMan }, + 0x00af: { n:"SCENARIO", f:parse_SCENARIO }, + 0x00b0: { n:"SxView", f:parse_SxView }, + 0x00b1: { n:"Sxvd", f:parse_Sxvd }, + 0x00b2: { n:"SXVI", f:parse_SXVI }, + 0x00b4: { n:"SxIvd", f:parse_SxIvd }, + 0x00b5: { n:"SXLI", f:parse_SXLI }, + 0x00b6: { n:"SXPI", f:parse_SXPI }, + 0x00b8: { n:"DocRoute", f:parse_DocRoute }, + 0x00b9: { n:"RecipName", f:parse_RecipName }, + 0x00bd: { n:"MulRk", f:parse_MulRk }, + 0x00be: { n:"MulBlank", f:parse_MulBlank }, + 0x00c1: { n:'Mms', f:parse_Mms }, + 0x00c5: { n:"SXDI", f:parse_SXDI }, + 0x00c6: { n:"SXDB", f:parse_SXDB }, + 0x00c7: { n:"SXFDB", f:parse_SXFDB }, + 0x00c8: { n:"SXDBB", f:parse_SXDBB }, + 0x00c9: { n:"SXNum", f:parse_SXNum }, + 0x00ca: { n:"SxBool", f:parse_SxBool }, + 0x00cb: { n:"SxErr", f:parse_SxErr }, + 0x00cc: { n:"SXInt", f:parse_SXInt }, + 0x00cd: { n:"SXString", f:parse_SXString }, + 0x00ce: { n:"SXDtr", f:parse_SXDtr }, + 0x00cf: { n:"SxNil", f:parse_SxNil }, + 0x00d0: { n:"SXTbl", f:parse_SXTbl }, + 0x00d1: { n:"SXTBRGIITM", f:parse_SXTBRGIITM }, + 0x00d2: { n:"SxTbpg", f:parse_SxTbpg }, + 0x00d3: { n:"ObProj", f:parse_ObProj }, + 0x00d5: { n:"SXStreamID", f:parse_SXStreamID }, + 0x00d7: { n:"DBCell", f:parse_DBCell }, + 0x00d8: { n:"SXRng", f:parse_SXRng }, + 0x00d9: { n:"SxIsxoper", f:parse_SxIsxoper }, + 0x00da: { n:"BookBool", f:parse_BookBool }, + 0x00dc: { n:"DbOrParamQry", f:parse_DbOrParamQry }, + 0x00dd: { n:"ScenarioProtect", f:parse_ScenarioProtect }, + 0x00de: { n:"OleObjectSize", f:parse_OleObjectSize }, + 0x00e0: { n:"XF", f:parse_XF }, + 0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr }, + 0x00e2: { n:'InterfaceEnd', f:parse_InterfaceEnd }, + 0x00e3: { n:"SXVS", f:parse_SXVS }, + 0x00e5: { n:"MergeCells", f:parse_MergeCells }, + 0x00e9: { n:"BkHim", f:parse_BkHim }, + 0x00eb: { n:"MsoDrawingGroup", f:parse_MsoDrawingGroup }, + 0x00ec: { n:"MsoDrawing", f:parse_MsoDrawing }, + 0x00ed: { n:"MsoDrawingSelection", f:parse_MsoDrawingSelection }, + 0x00ef: { n:"PhoneticInfo", f:parse_PhoneticInfo }, + 0x00f0: { n:"SxRule", f:parse_SxRule }, + 0x00f1: { n:"SXEx", f:parse_SXEx }, + 0x00f2: { n:"SxFilt", f:parse_SxFilt }, + 0x00f4: { n:"SxDXF", f:parse_SxDXF }, + 0x00f5: { n:"SxItm", f:parse_SxItm }, + 0x00f6: { n:"SxName", f:parse_SxName }, + 0x00f7: { n:"SxSelect", f:parse_SxSelect }, + 0x00f8: { n:"SXPair", f:parse_SXPair }, + 0x00f9: { n:"SxFmla", f:parse_SxFmla }, + 0x00fb: { n:"SxFormat", f:parse_SxFormat }, + 0x00fc: { n:"SST", f:parse_SST }, + 0x00fd: { n:"LabelSst", f:parse_LabelSst }, + 0x00ff: { n:"ExtSST", f:parse_ExtSST }, + 0x0100: { n:"SXVDEx", f:parse_SXVDEx }, + 0x0103: { n:"SXFormula", f:parse_SXFormula }, + 0x0122: { n:"SXDBEx", f:parse_SXDBEx }, + 0x0137: { n:"RRDInsDel", f:parse_RRDInsDel }, + 0x0138: { n:"RRDHead", f:parse_RRDHead }, + 0x013b: { n:"RRDChgCell", f:parse_RRDChgCell }, + 0x013d: { n:"RRTabId", f:parse_RRTabId }, + 0x013e: { n:"RRDRenSheet", f:parse_RRDRenSheet }, + 0x013f: { n:"RRSort", f:parse_RRSort }, + 0x0140: { n:"RRDMove", f:parse_RRDMove }, + 0x014a: { n:"RRFormat", f:parse_RRFormat }, + 0x014b: { n:"RRAutoFmt", f:parse_RRAutoFmt }, + 0x014d: { n:"RRInsertSh", f:parse_RRInsertSh }, + 0x014e: { n:"RRDMoveBegin", f:parse_RRDMoveBegin }, + 0x014f: { n:"RRDMoveEnd", f:parse_RRDMoveEnd }, + 0x0150: { n:"RRDInsDelBegin", f:parse_RRDInsDelBegin }, + 0x0151: { n:"RRDInsDelEnd", f:parse_RRDInsDelEnd }, + 0x0152: { n:"RRDConflict", f:parse_RRDConflict }, + 0x0153: { n:"RRDDefName", f:parse_RRDDefName }, + 0x0154: { n:"RRDRstEtxp", f:parse_RRDRstEtxp }, + 0x015f: { n:"LRng", f:parse_LRng }, + 0x0160: { n:"UsesELFs", f:parse_UsesELFs }, + 0x0161: { n:"DSF", f:parse_DSF }, + 0x0191: { n:"CUsr", f:parse_CUsr }, + 0x0192: { n:"CbUsr", f:parse_CbUsr }, + 0x0193: { n:"UsrInfo", f:parse_UsrInfo }, + 0x0194: { n:"UsrExcl", f:parse_UsrExcl }, + 0x0195: { n:"FileLock", f:parse_FileLock }, + 0x0196: { n:"RRDInfo", f:parse_RRDInfo }, + 0x0197: { n:"BCUsrs", f:parse_BCUsrs }, + 0x0198: { n:"UsrChk", f:parse_UsrChk }, + 0x01a9: { n:"UserBView", f:parse_UserBView }, + 0x01aa: { n:"UserSViewBegin", f:parse_UserSViewBegin }, + 0x01ab: { n:"UserSViewEnd", f:parse_UserSViewEnd }, + 0x01ac: { n:"RRDUserView", f:parse_RRDUserView }, + 0x01ad: { n:"Qsi", f:parse_Qsi }, + 0x01ae: { n:"SupBook", f:parse_SupBook }, + 0x01af: { n:"Prot4Rev", f:parse_Prot4Rev }, + 0x01b0: { n:"CondFmt", f:parse_CondFmt }, + 0x01b1: { n:"CF", f:parse_CF }, + 0x01b2: { n:"DVal", f:parse_DVal }, + 0x01b5: { n:"DConBin", f:parse_DConBin }, + 0x01b6: { n:"TxO", f:parse_TxO }, + 0x01b7: { n:"RefreshAll", f:parse_RefreshAll }, + 0x01b8: { n:"HLink", f:parse_HLink }, + 0x01b9: { n:"Lel", f:parse_Lel }, + 0x01ba: { n:"CodeName", f:parse_XLSCodeName }, + 0x01bb: { n:"SXFDBType", f:parse_SXFDBType }, + 0x01bc: { n:"Prot4RevPass", f:parse_Prot4RevPass }, + 0x01bd: { n:"ObNoMacros", f:parse_ObNoMacros }, + 0x01be: { n:"Dv", f:parse_Dv }, + 0x01c0: { n:"Excel9File", f:parse_Excel9File }, + 0x01c1: { n:"RecalcId", f:parse_RecalcId, r:2}, + 0x01c2: { n:"EntExU2", f:parse_EntExU2 }, + 0x0200: { n:"Dimensions", f:parse_Dimensions }, + 0x0201: { n:"Blank", f:parse_Blank }, + 0x0203: { n:"Number", f:parse_Number }, + 0x0204: { n:"Label", f:parse_Label }, + 0x0205: { n:"BoolErr", f:parse_BoolErr }, + 0x0207: { n:"String", f:parse_String }, + 0x0208: { n:'Row', f:parse_Row }, + 0x020b: { n:"Index", f:parse_Index }, + 0x0221: { n:"Array", f:parse_Array }, + 0x0225: { n:"DefaultRowHeight", f:parse_DefaultRowHeight }, + 0x0236: { n:"Table", f:parse_Table }, + 0x023e: { n:"Window2", f:parse_Window2 }, + 0x027e: { n:"RK", f:parse_RK }, + 0x0293: { n:"Style", f:parse_Style }, + 0x0418: { n:"BigName", f:parse_BigName }, + 0x041e: { n:"Format", f:parse_Format }, + 0x043c: { n:"ContinueBigName", f:parse_ContinueBigName }, + 0x04bc: { n:"ShrFmla", f:parse_ShrFmla }, + 0x0800: { n:"HLinkTooltip", f:parse_HLinkTooltip }, + 0x0801: { n:"WebPub", f:parse_WebPub }, + 0x0802: { n:"QsiSXTag", f:parse_QsiSXTag }, + 0x0803: { n:"DBQueryExt", f:parse_DBQueryExt }, + 0x0804: { n:"ExtString", f:parse_ExtString }, + 0x0805: { n:"TxtQry", f:parse_TxtQry }, + 0x0806: { n:"Qsir", f:parse_Qsir }, + 0x0807: { n:"Qsif", f:parse_Qsif }, + 0x0808: { n:"RRDTQSIF", f:parse_RRDTQSIF }, + 0x0809: { n:'BOF', f:parse_BOF }, + 0x080a: { n:"OleDbConn", f:parse_OleDbConn }, + 0x080b: { n:"WOpt", f:parse_WOpt }, + 0x080c: { n:"SXViewEx", f:parse_SXViewEx }, + 0x080d: { n:"SXTH", f:parse_SXTH }, + 0x080e: { n:"SXPIEx", f:parse_SXPIEx }, + 0x080f: { n:"SXVDTEx", f:parse_SXVDTEx }, + 0x0810: { n:"SXViewEx9", f:parse_SXViewEx9 }, + 0x0812: { n:"ContinueFrt", f:parse_ContinueFrt }, + 0x0813: { n:"RealTimeData", f:parse_RealTimeData }, + 0x0850: { n:"ChartFrtInfo", f:parse_ChartFrtInfo }, + 0x0851: { n:"FrtWrapper", f:parse_FrtWrapper }, + 0x0852: { n:"StartBlock", f:parse_StartBlock }, + 0x0853: { n:"EndBlock", f:parse_EndBlock }, + 0x0854: { n:"StartObject", f:parse_StartObject }, + 0x0855: { n:"EndObject", f:parse_EndObject }, + 0x0856: { n:"CatLab", f:parse_CatLab }, + 0x0857: { n:"YMult", f:parse_YMult }, + 0x0858: { n:"SXViewLink", f:parse_SXViewLink }, + 0x0859: { n:"PivotChartBits", f:parse_PivotChartBits }, + 0x085a: { n:"FrtFontList", f:parse_FrtFontList }, + 0x0862: { n:"SheetExt", f:parse_SheetExt }, + 0x0863: { n:"BookExt", f:parse_BookExt, r:12}, + 0x0864: { n:"SXAddl", f:parse_SXAddl }, + 0x0865: { n:"CrErr", f:parse_CrErr }, + 0x0866: { n:"HFPicture", f:parse_HFPicture }, + 0x0867: { n:'FeatHdr', f:parse_FeatHdr }, + 0x0868: { n:"Feat", f:parse_Feat }, + 0x086a: { n:"DataLabExt", f:parse_DataLabExt }, + 0x086b: { n:"DataLabExtContents", f:parse_DataLabExtContents }, + 0x086c: { n:"CellWatch", f:parse_CellWatch }, + 0x0871: { n:"FeatHdr11", f:parse_FeatHdr11 }, + 0x0872: { n:"Feature11", f:parse_Feature11 }, + 0x0874: { n:"DropDownObjIds", f:parse_DropDownObjIds }, + 0x0875: { n:"ContinueFrt11", f:parse_ContinueFrt11 }, + 0x0876: { n:"DConn", f:parse_DConn }, + 0x0877: { n:"List12", f:parse_List12 }, + 0x0878: { n:"Feature12", f:parse_Feature12 }, + 0x0879: { n:"CondFmt12", f:parse_CondFmt12 }, + 0x087a: { n:"CF12", f:parse_CF12 }, + 0x087b: { n:"CFEx", f:parse_CFEx }, + 0x087c: { n:"XFCRC", f:parse_XFCRC, r:12 }, + 0x087d: { n:"XFExt", f:parse_XFExt, r:12 }, + 0x087e: { n:"AutoFilter12", f:parse_AutoFilter12 }, + 0x087f: { n:"ContinueFrt12", f:parse_ContinueFrt12 }, + 0x0884: { n:"MDTInfo", f:parse_MDTInfo }, + 0x0885: { n:"MDXStr", f:parse_MDXStr }, + 0x0886: { n:"MDXTuple", f:parse_MDXTuple }, + 0x0887: { n:"MDXSet", f:parse_MDXSet }, + 0x0888: { n:"MDXProp", f:parse_MDXProp }, + 0x0889: { n:"MDXKPI", f:parse_MDXKPI }, + 0x088a: { n:"MDB", f:parse_MDB }, + 0x088b: { n:"PLV", f:parse_PLV }, + 0x088c: { n:"Compat12", f:parse_Compat12, r:12 }, + 0x088d: { n:"DXF", f:parse_DXF }, + 0x088e: { n:"TableStyles", f:parse_TableStyles, r:12 }, + 0x088f: { n:"TableStyle", f:parse_TableStyle }, + 0x0890: { n:"TableStyleElement", f:parse_TableStyleElement }, + 0x0892: { n:"StyleExt", f:parse_StyleExt }, + 0x0893: { n:"NamePublish", f:parse_NamePublish }, + 0x0894: { n:"NameCmt", f:parse_NameCmt }, + 0x0895: { n:"SortData", f:parse_SortData }, + 0x0896: { n:"Theme", f:parse_Theme, r:12 }, + 0x0897: { n:"GUIDTypeLib", f:parse_GUIDTypeLib }, + 0x0898: { n:"FnGrp12", f:parse_FnGrp12 }, + 0x0899: { n:"NameFnGrp12", f:parse_NameFnGrp12 }, + 0x089a: { n:"MTRSettings", f:parse_MTRSettings, r:12 }, + 0x089b: { n:"CompressPictures", f:parse_CompressPictures }, + 0x089c: { n:"HeaderFooter", f:parse_HeaderFooter }, + 0x089d: { n:"CrtLayout12", f:parse_CrtLayout12 }, + 0x089e: { n:"CrtMlFrt", f:parse_CrtMlFrt }, + 0x089f: { n:"CrtMlFrtContinue", f:parse_CrtMlFrtContinue }, + 0x08a3: { n:"ForceFullCalculation", f:parse_ForceFullCalculation }, + 0x08a4: { n:"ShapePropsStream", f:parse_ShapePropsStream }, + 0x08a5: { n:"TextPropsStream", f:parse_TextPropsStream }, + 0x08a6: { n:"RichTextStream", f:parse_RichTextStream }, + 0x08a7: { n:"CrtLayout12A", f:parse_CrtLayout12A }, + 0x1001: { n:"Units", f:parse_Units }, + 0x1002: { n:"Chart", f:parse_Chart }, + 0x1003: { n:"Series", f:parse_Series }, + 0x1006: { n:"DataFormat", f:parse_DataFormat }, + 0x1007: { n:"LineFormat", f:parse_LineFormat }, + 0x1009: { n:"MarkerFormat", f:parse_MarkerFormat }, + 0x100a: { n:"AreaFormat", f:parse_AreaFormat }, + 0x100b: { n:"PieFormat", f:parse_PieFormat }, + 0x100c: { n:"AttachedLabel", f:parse_AttachedLabel }, + 0x100d: { n:"SeriesText", f:parse_SeriesText }, + 0x1014: { n:"ChartFormat", f:parse_ChartFormat }, + 0x1015: { n:"Legend", f:parse_Legend }, + 0x1016: { n:"SeriesList", f:parse_SeriesList }, + 0x1017: { n:"Bar", f:parse_Bar }, + 0x1018: { n:"Line", f:parse_Line }, + 0x1019: { n:"Pie", f:parse_Pie }, + 0x101a: { n:"Area", f:parse_Area }, + 0x101b: { n:"Scatter", f:parse_Scatter }, + 0x101c: { n:"CrtLine", f:parse_CrtLine }, + 0x101d: { n:"Axis", f:parse_Axis }, + 0x101e: { n:"Tick", f:parse_Tick }, + 0x101f: { n:"ValueRange", f:parse_ValueRange }, + 0x1020: { n:"CatSerRange", f:parse_CatSerRange }, + 0x1021: { n:"AxisLine", f:parse_AxisLine }, + 0x1022: { n:"CrtLink", f:parse_CrtLink }, + 0x1024: { n:"DefaultText", f:parse_DefaultText }, + 0x1025: { n:"Text", f:parse_Text }, + 0x1026: { n:"FontX", f:parse_FontX }, + 0x1027: { n:"ObjectLink", f:parse_ObjectLink }, + 0x1032: { n:"Frame", f:parse_Frame }, + 0x1033: { n:"Begin", f:parse_Begin }, + 0x1034: { n:"End", f:parse_End }, + 0x1035: { n:"PlotArea", f:parse_PlotArea }, + 0x103a: { n:"Chart3d", f:parse_Chart3d }, + 0x103c: { n:"PicF", f:parse_PicF }, + 0x103d: { n:"DropBar", f:parse_DropBar }, + 0x103e: { n:"Radar", f:parse_Radar }, + 0x103f: { n:"Surf", f:parse_Surf }, + 0x1040: { n:"RadarArea", f:parse_RadarArea }, + 0x1041: { n:"AxisParent", f:parse_AxisParent }, + 0x1043: { n:"LegendException", f:parse_LegendException }, + 0x1044: { n:"ShtProps", f:parse_ShtProps }, + 0x1045: { n:"SerToCrt", f:parse_SerToCrt }, + 0x1046: { n:"AxesUsed", f:parse_AxesUsed }, + 0x1048: { n:"SBaseRef", f:parse_SBaseRef }, + 0x104a: { n:"SerParent", f:parse_SerParent }, + 0x104b: { n:"SerAuxTrend", f:parse_SerAuxTrend }, + 0x104e: { n:"IFmtRecord", f:parse_IFmtRecord }, + 0x104f: { n:"Pos", f:parse_Pos }, + 0x1050: { n:"AlRuns", f:parse_AlRuns }, + 0x1051: { n:"BRAI", f:parse_BRAI }, + 0x105b: { n:"SerAuxErrBar", f:parse_SerAuxErrBar }, + 0x105c: { n:"ClrtClient", f:parse_ClrtClient }, + 0x105d: { n:"SerFmt", f:parse_SerFmt }, + 0x105f: { n:"Chart3DBarShape", f:parse_Chart3DBarShape }, + 0x1060: { n:"Fbi", f:parse_Fbi }, + 0x1061: { n:"BopPop", f:parse_BopPop }, + 0x1062: { n:"AxcExt", f:parse_AxcExt }, + 0x1063: { n:"Dat", f:parse_Dat }, + 0x1064: { n:"PlotGrowth", f:parse_PlotGrowth }, + 0x1065: { n:"SIIndex", f:parse_SIIndex }, + 0x1066: { n:"GelFrame", f:parse_GelFrame }, + 0x1067: { n:"BopPopCustom", f:parse_BopPopCustom }, + 0x1068: { n:"Fbi2", f:parse_Fbi2 }, + + /* These are specified in an older version of the spec */ + 0x0016: { n:"ExternCount", f:parsenoop }, + 0x007e: { n:"RK", f:parsenoop }, /* Not necessarily same as 0x027e */ + 0x007f: { n:"ImData", f:parsenoop }, + 0x0087: { n:"Addin", f:parsenoop }, + 0x0088: { n:"Edg", f:parsenoop }, + 0x0089: { n:"Pub", f:parsenoop }, + 0x0091: { n:"Sub", f:parsenoop }, + 0x0094: { n:"LHRecord", f:parsenoop }, + 0x0095: { n:"LHNGraph", f:parsenoop }, + 0x0096: { n:"Sound", f:parsenoop }, + 0x00a9: { n:"CoordList", f:parsenoop }, + 0x00ab: { n:"GCW", f:parsenoop }, + 0x00bc: { n:"ShrFmla", f:parsenoop }, /* Not necessarily same as 0x04bc */ + 0x00c2: { n:"AddMenu", f:parsenoop }, + 0x00c3: { n:"DelMenu", f:parsenoop }, + 0x00d6: { n:"RString", f:parsenoop }, + 0x00df: { n:"UDDesc", f:parsenoop }, + 0x00ea: { n:"TabIdConf", f:parsenoop }, + 0x0162: { n:"XL5Modify", f:parsenoop }, + 0x01a5: { n:"FileSharing2", f:parsenoop }, + 0x0218: { n:"Name", f:parsenoop }, + 0x0223: { n:"ExternName", f:parse_ExternName }, + 0x0231: { n:"Font", f:parsenoop }, + 0x0406: { n:"Formula", f:parse_Formula }, + 0x086d: { n:"FeatInfo", f:parsenoop }, + 0x0873: { n:"FeatInfo11", f:parsenoop }, + 0x0881: { n:"SXAddl12", f:parsenoop }, + 0x08c0: { n:"AutoWebPub", f:parsenoop }, + 0x08c1: { n:"ListObj", f:parsenoop }, + 0x08c2: { n:"ListField", f:parsenoop }, + 0x08c3: { n:"ListDV", f:parsenoop }, + 0x08c4: { n:"ListCondFmt", f:parsenoop }, + 0x08c5: { n:"ListCF", f:parsenoop }, + 0x08c6: { n:"FMQry", f:parsenoop }, + 0x08c7: { n:"FMSQry", f:parsenoop }, + 0x08c8: { n:"PLV", f:parsenoop }, /* supposedly PLV for Excel 11 */ + 0x08c9: { n:"LnExt", f:parsenoop }, + 0x08ca: { n:"MkrExt", f:parsenoop }, + 0x08cb: { n:"CrtCoopt", f:parsenoop }, + + 0x0000: {} +}; + + /* Helper function to call out to ODS parser */ function parse_ods(zip, opts) { - if(typeof module !== "undefined" && typeof require !== 'undefined' && typeof ODS === 'undefined') ODS = require('./dist/od' + 's'); + if(typeof module !== "undefined" && typeof require !== 'undefined' && typeof ODS === 'undefined') ODS = require('./od' + 's'); if(typeof ODS === 'undefined' || !ODS.parse_ods) throw new Error("Unsupported ODS"); return ODS.parse_ods(zip, opts); } @@ -4894,9 +11109,10 @@ var fix_read_opts = fix_opts_func([ ['bookDeps', false], /* parse calculation chains */ ['bookSheets', false], /* only try to get sheet names (no Sheets) */ ['bookProps', false], /* only try to get properties (no Sheets) */ - ['bookFiles', false], /* include raw file structure (keys, files) */ + ['bookFiles', false], /* include raw file structure (keys, files, cfb) */ ['bookVBA', false], /* include vba raw data (vbaraw) */ + ['password',''], /* password */ ['WTF', false] /* WTF mode (throws errors) */ ]); @@ -5140,13 +11356,23 @@ function write_zip(wb, opts) { zip.file('xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels)); return zip; } -function readSync(data, opts) { +function firstbyte(f,o) { + switch((o||{}).type || "base64") { + case 'buffer': return f[0]; + case 'base64': return Base64.decode(f.substr(0,12)).charCodeAt(0); + case 'binary': return f.charCodeAt(0); + case 'array': return f[0]; + default: throw new Error("Unrecognized type " + o.type); + } +} + +function read_zip(data, opts) { var zip, d = data; var o = opts||{}; if(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? "buffer" : "base64"; switch(o.type) { case "base64": zip = new jszip(d, { base64:true }); break; - case "binary": zip = new jszip(d, { base64:false }); break; + case "binary": case "array": zip = new jszip(d, { base64:false }); break; case "buffer": zip = new jszip(d); break; case "file": zip=new jszip(d=_fs.readFileSync(data)); break; default: throw new Error("Unrecognized type " + o.type); @@ -5154,12 +11380,29 @@ function readSync(data, opts) { return parse_zip(zip, o); } +function readSync(data, opts) { + var zip, d = data, isfile = false, n; + var o = opts||{}; + if(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? "buffer" : "base64"; + if(o.type == "file") { isfile = true; o.type = "buffer"; d = _fs.readFileSync(data); } + switch((n = firstbyte(d, o))) { + case 0xD0: + if(isfile) o.type = "file"; + return parse_xlscfb(CFB.read(data, o), o); + case 0x09: return parse_xlscfb(s2a(o.type === 'base64' ? Base64.decode(data) : data), o); + case 0x3C: return parse_xlml(d, o); + case 0x50: + if(isfile) o.type = "file"; + return read_zip(data, opts); + default: throw new Error("Unsupported file " + n); + } +} + function readFileSync(data, opts) { var o = opts||{}; o.type = 'file'; return readSync(data, o); } - -function writeSync(wb, opts) { +function write_zip_type(wb, opts) { var o = opts||{}; var z = write_zip(wb, o); switch(o.type) { @@ -5171,13 +11414,25 @@ function writeSync(wb, opts) { } } +function writeSync(wb, opts) { + var o = opts||{}; + switch(o.bookType) { + case 'xml': return write_xlml(wb, o); + default: return write_zip_type(wb, o); + } +} + function writeFileSync(wb, filename, opts) { var o = opts||{}; o.type = 'file'; o.file = filename; switch(o.file.substr(-5).toLowerCase()) { + case '.xlsx': o.bookType = 'xlsx'; break; case '.xlsm': o.bookType = 'xlsm'; break; case '.xlsb': o.bookType = 'xlsb'; break; - } + default: switch(o.file.substr(-4).toLowerCase()) { + case '.xls': o.bookType = 'xls'; break; + case '.xml': o.bookType = 'xml'; break; + }} return writeSync(wb, o); } @@ -5283,7 +11538,12 @@ function sheet_to_json(sheet, opts){ for (R = r.s.r + offset; R <= r.e.r; ++R) { rr = encode_row(R); isempty = true; - row = header === 1 ? [] : Object.create({ __rowNum__ : R }); + if(header === 1) row = []; + else { + row = {}; + if(Object.defineProperty) Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); + else row.__rowNum__ = R; + } for (C = r.s.c; C <= r.e.c; ++C) { val = sheet[cols[C] + rr]; if(val === undefined || val.t === undefined) continue; @@ -5299,7 +11559,7 @@ function sheet_to_json(sheet, opts){ isempty = false; } } - if(isempty === false) out[outi++] = row; + if(isempty === false || header === 1) out[outi++] = row; } out.length = outi; return out; @@ -5379,11 +11639,16 @@ var utils = { sheet_to_formulae: sheet_to_formulae, sheet_to_row_object_array: sheet_to_row_object_array }; -XLSX.parseZip = parse_zip; -XLSX.read = readSync; -XLSX.readFile = readFileSync; +XLSX.parse_xlscfb = parse_xlscfb; +XLSX.parse_zip = parse_zip; +XLSX.read = readSync; //xlsread +XLSX.readFile = readFileSync; //readFile +XLSX.readFileSync = readFileSync; XLSX.write = writeSync; XLSX.writeFile = writeFileSync; +XLSX.writeFileSync = writeFileSync; XLSX.utils = utils; +XLSX.CFB = CFB; XLSX.SSF = SSF; })(typeof exports !== 'undefined' ? exports : XLSX); +var XLS = XLSX; diff --git a/dist/xlsx.min.js b/dist/xlsx.min.js index 51c56b4..b329047 100644 --- a/dist/xlsx.min.js +++ b/dist/xlsx.min.js @@ -1,7 +1,9 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ -var XLSX={};(function(XLSX){XLSX.version="0.7.12";var current_codepage=1252,current_cptable;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")cptable=require("./dist/cpexcel");current_cptable=cptable[current_codepage]}function reset_cp(){set_cp(1252)}var set_cp=function(cp){current_codepage=cp};function char_codes(data){var o=[];for(var i=0,len=data.length;i=0)o+=x.charAt(i--);return o}function fill(c,l){var o="";while(o.length=d?t:fill("0",d-t.length)+t}function pad_(v,d){var t=""+v;return t.length>=d?t:fill(" ",d-t.length)+t}function rpad_(v,d){var t=""+v;return t.length>=d?t:t+fill(" ",d-t.length)}function pad0r1(v,d){var t=""+Math.round(v);return t.length>=d?t:fill("0",d-t.length)+t}function pad0r2(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}var p2_32=Math.pow(2,32);function pad0r(v,d){if(v>p2_32||v<-p2_32)return pad0r1(v,d);var i=Math.round(v);return pad0r2(i,d)}function isgeneral(s,i){return s.length>=7+i&&(s.charCodeAt(i)|32)===103&&(s.charCodeAt(i+1)|32)===101&&(s.charCodeAt(i+2)|32)===110&&(s.charCodeAt(i+3)|32)===101&&(s.charCodeAt(i+4)|32)===114&&(s.charCodeAt(i+5)|32)===97&&(s.charCodeAt(i+6)|32)===108}var opts_fmt=[["date1904",0],["output",""],["WTF",false]];function fixopts(o){for(var y=0;y!=opts_fmt.length;++y)if(o[opts_fmt[y][0]]===undefined)o[opts_fmt[y][0]]=opts_fmt[y][1]}SSF.opts=opts_fmt;var table_fmt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "',65535:"General"};var days=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var months=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function frac(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){Q=Q_1;P=P_1}if(Q>D){Q=Q_2;P=P_2}if(!mixed)return[0,sgn*P,Q];if(Q===0)throw"Unexpected state: "+P+" "+P_1+" "+P_2+" "+Q+" "+Q_1+" "+Q_2;var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}function general_fmt_int(v,opts){return""+v}SSF._general_int=general_fmt_int;var general_fmt_num=function make_general_fmt_num(){var gnr1=/\.(\d*[1-9])0+$/,gnr2=/\.0*$/,gnr4=/\.(\d*[1-9])0+/,gnr5=/\.0*[Ee]/,gnr6=/(E[+-])(\d)$/;function gfn2(v){var w=v<0?12:11;var o=gfn5(v.toFixed(12));if(o.length<=w)return o;o=v.toPrecision(10);if(o.length<=w)return o;return v.toExponential(5)}function gfn3(v){var o=v.toFixed(11).replace(gnr1,".$1");if(o.length>(v<0?12:11))o=v.toPrecision(6);return o}function gfn4(o){for(var i=0;i!=o.length;++i)if((o.charCodeAt(i)|32)===101)return o.replace(gnr4,".$1").replace(gnr5,"E").replace("e","E").replace(gnr6,"$10$2");return o}function gfn5(o){return o.indexOf(".")>-1?o.replace(gnr2,"").replace(gnr1,".$1"):o}return function general_fmt_num(v,opts){var V=Math.floor(Math.log(Math.abs(v))*Math.LOG10E),o;if(V>=-4&&V<=-1)o=v.toPrecision(10+V);else if(Math.abs(V)<=9)o=gfn2(v);else if(V===10)o=v.toFixed(10).substr(0,12);else o=gfn3(v);return gfn5(gfn4(o))}}();SSF._general_num=general_fmt_num;function general_fmt(v,opts){switch(typeof v){case"string":return v;case"boolean":return v?"TRUE":"FALSE";case"number":return(v|0)===v?general_fmt_int(v,opts):general_fmt_num(v,opts)}throw new Error("unsupported value in General format: "+v)}SSF._general=general_fmt;function fix_hijri(date,o){return 0}function parse_date_code(v,opts,b2){if(v>2958465||v<0)return null;var date=v|0,time=Math.floor(86400*(v-date)),dow=0;var dout=[];var out={D:date,T:time,u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(out.u)<1e-6)out.u=0;fixopts(opts!=null?opts:opts=[]);if(opts.date1904)date+=1462;if(out.u>.999){out.u=0;if(++time==86400){time=0;++date}}if(date===60){dout=b2?[1317,10,29]:[1900,2,29];dow=3}else if(date===0){dout=b2?[1317,8,29]:[1900,1,0];dow=6}else{if(date>60)--date;var d=new Date(1900,0,1);d.setDate(d.getDate()+date-1);dout=[d.getFullYear(),d.getMonth()+1,d.getDate()];dow=d.getDay();if(date<60)dow=(dow+6)%7;if(b2)dow=fix_hijri(d,dout)}out.y=dout[0];out.m=dout[1];out.d=dout[2];out.S=time%60;time=Math.floor(time/60);out.M=time%60;time=Math.floor(time/60);out.H=time;out.q=dow;return out}SSF.parse_date_code=parse_date_code;function write_date(type,fmt,val,ss0){var o="",ss=0,tt=0,y=val.y,out,outl=0;switch(type){case 98:y=val.y+543;case 121:switch(fmt.length){case 1:case 2:out=y%100;outl=2;break;default:out=y%1e4;outl=4;break}break;case 109:switch(fmt.length){case 1:case 2:out=val.m;outl=fmt.length;break;case 3:return months[val.m-1][1];case 5:return months[val.m-1][0];default:return months[val.m-1][2]}break;case 100:switch(fmt.length){case 1:case 2:out=val.d;outl=fmt.length;break;case 3:return days[val.q][0];default:return days[val.q][1]}break;case 104:switch(fmt.length){case 1:case 2:out=1+(val.H+11)%12;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 72:switch(fmt.length){case 1:case 2:out=val.H;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 77:switch(fmt.length){case 1:case 2:out=val.M;outl=fmt.length;break;default:throw"bad minute format: "+fmt}break;case 115:if(val.u===0)switch(fmt){case"s":case"ss":return pad0(val.S,fmt.length);case".0":case".00":case".000":}switch(fmt){case"s":case"ss":case".0":case".00":case".000":if(ss0>=2)tt=ss0===3?1e3:100;else tt=ss0===1?10:1;ss=Math.round(tt*(val.S+val.u));if(ss>=60*tt)ss=0;if(fmt==="s")return ss===0?"0":""+ss/tt;o=pad0(ss,2+ss0);if(fmt==="ss")return o.substr(0,2);return"."+o.substr(2,fmt.length-1);default:throw"bad second format: "+fmt}case 90:switch(fmt){case"[h]":case"[hh]":out=val.D*24+val.H;break;case"[m]":case"[mm]":out=(val.D*24+val.H)*60+val.M;break;case"[s]":case"[ss]":out=((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u);break;default:throw"bad abstime format: "+fmt}outl=fmt.length===3?1:2;break;case 101:out=y;outl=1}if(outl>0)return pad0(out,outl);else return""}function commaify(s){if(s.length<=3)return s;var j=s.length%3,o=s.substr(0,j);for(;j!=s.length;j+=3)o+=(o.length>0?",":"")+s.substr(j,3);return o}var write_num=function make_write_num(){var pct1=/%/g;function write_num_pct(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_cm(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_exp(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(o.indexOf("e")===-1){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);while(o.substr(0,2)==="0."){o=o[0]+o.substr(2,period)+"."+o.substr(2+period);o=o.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}var frac1=/# (\?+)( ?)\/( ?)(\d+)/;function write_num_f1(r,aval,sign){var den=parseInt(r[4]),rr=Math.round(aval*den),base=Math.floor(rr/den);var myn=rr-base*den,myd=den;return sign+(base===0?"":""+base)+" "+(myn===0?fill(" ",r[1].length+1+r[4].length):pad_(myn,r[1].length)+r[2]+"/"+r[3]+pad0(myd,r[4].length))}function write_num_f2(r,aval,sign){return sign+(aval===0?"":""+aval)+fill(" ",r[1].length+2+r[4].length)}var dec1=/^#*0*\.(0+)/;var closeparen=/\).*[0#]/;var phone=/\(###\) ###\\?-####/;function hashq(str){var o="",cc;for(var i=0;i!=str.length;++i)switch(cc=str.charCodeAt(i)){case 35:break;case 63:o+=" ";break;case 48:o+="0";break;default:o+=String.fromCharCode(cc)}return o}function rnd(val,d){var dd=Math.pow(10,d);return""+Math.round(val*dd)/dd}function dec(val,d){return Math.round((val-Math.floor(val))*Math.pow(10,d))}function flr(val){if(val<2147483647&&val>-2147483648)return""+(val>=0?val|0:val-1|0);return""+Math.floor(val)}function write_num_flt(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_flt("n",ffmt,val);return"("+write_num_flt("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_flt(type,fmt.substr(fmt[1]==" "?2:1),val);var o,oo;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0r(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=pad0r(val,0);if(o==="0")o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f1(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0r(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=rnd(val,r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+rnd(aval,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(pad0r(aval,0));if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_flt(type,fmt,-val):commaify(""+Math.floor(val))+"."+pad0(dec(val,r[1].length),r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_flt(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=0)return write_num_int("n",ffmt,val);return"("+write_num_int("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm2(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct2(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp2(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_int(type,fmt.substr(fmt[1]==" "?2:1),val);var o;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=""+val;if(val===0)o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f2(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=(""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+(""+aval).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(""+aval);if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val)+"."+fill("0",r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_int(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_int(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=12?"P":"A";q.t="T";hr="h";i+=3}else if(fmt.substr(i,5)==="AM/PM"){if(dt!=null)q.v=dt.H>=12?"PM":"AM";q.t="T";i+=5;hr="h"}else{q.t="t";++i}if(dt==null&&q.t==="T")return"";out[out.length]=q;lst=c;break;case"[":o=c;while(fmt[i++]!=="]"&&i-1||c=="\\"&&fmt[i+1]=="-"&&"0#".indexOf(fmt[i+2])>-1)o+=c;out[out.length]={t:"n",v:o};break;case"?":o=c;while(fmt[++i]===c)o+=c;q={t:c,v:o};out[out.length]=q;lst=c;break;case"*":++i;if(fmt[i]==" "||fmt[i]=="*")++i;break;case"(":case")":out[out.length]={t:flen===1?"t":c,v:c};++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=c;while("0123456789".indexOf(fmt[++i])>-1)o+=fmt[i];out[out.length]={t:"D",v:o};break;case" ":out[out.length]={t:c,v:c};++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"t",v:c};++i;break}}var bt=0,ss0=0,ssm;for(i=out.length-1,lst="t";i>=0;--i){switch(out[i].t){case"h":case"H":out[i].t=hr;lst="h";if(bt<1)bt=1;break;case"s":if(ssm=out[i].v.match(/\.0+$/))ss0=Math.max(ss0,ssm[0].length-1);if(bt<3)bt=3;case"d":case"y":case"M":case"e":lst=out[i].t;break;case"m":if(lst==="s"){out[i].t="M";if(bt<2)bt=2}break;case"X":if(out[i].v==="B2");break;case"Z":if(bt<1&&out[i].v.match(/[Hh]/))bt=1;if(bt<2&&out[i].v.match(/[Mm]/))bt=2;if(bt<3&&out[i].v.match(/[Ss]/))bt=3}}switch(bt){case 0:break;case 1:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}if(dt.M>=60){dt.M=0;++dt.H}break;case 2:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}break}var nstr="",jj;for(i=0;i-1||out[jj].v===" "&&out[jj+1]!=null&&out[jj+1].t=="?"))){out[i].v+=out[jj].v;out[jj]=undefined;++jj}nstr+=out[i].v;i=jj-1;break;case"G":out[i].t="t";out[i].v=general_fmt(v,opts);break}}var vv="",myv,ostr;if(nstr.length>0){myv=v<0&&nstr.charCodeAt(0)===45?-v:v;ostr=write_num(nstr.charCodeAt(0)===40?"(":"n",nstr,myv);jj=ostr.length-1;var decpt=out.length;for(i=0;i-1){decpt=i;break}var lasti=out.length;if(decpt===out.length&&ostr.indexOf("E")===-1){for(i=out.length-1;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;if(jj>=out[i].v.length-1){jj-=out[i].v.length;out[i].v=ostr.substr(jj+1,out[i].v.length)}else if(jj<0)out[i].v="";else{out[i].v=ostr.substr(0,jj+1);jj=-1}out[i].t="t";lasti=i}if(jj>=0&&lasti=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")-1:out[i].v.length-1;vv=out[i].v.substr(j+1);for(;j>=0;--j){if(jj>=0&&(out[i].v[j]==="0"||out[i].v[j]==="#"))vv=ostr[jj--]+vv}out[i].v=vv;out[i].t="t";lasti=i}if(jj>=0&&lasti-1&&i===decpt?out[i].v.indexOf(".")+1:0;vv=out[i].v.substr(0,j);for(;j-1){myv=flen>1&&v<0&&i>0&&out[i-1].v==="-"?-v:v;out[i].v=write_num(out[i].t,out[i].v,myv);out[i].t="t"}var retval="";for(i=0;i!==out.length;++i)if(out[i]!=null)retval+=out[i].v;return retval}SSF._eval=eval_fmt;var cfregex=/\[[=<>]/;var cfregex2=/\[([=<>]*)(-?\d+\.?\d*)\]/;function chkcond(v,rr){if(rr==null)return false;var thresh=parseFloat(rr[2]);switch(rr[1]){case"=":if(v==thresh)return true;break;case">":if(v>thresh)return true;break;case"<":if(v":if(v!=thresh)return true;break;case">=":if(v>=thresh)return true;break;case"<=":if(v<=thresh)return true;break}return false}function choose_fmt(f,v){var fmt=split_fmt(f);var l=fmt.length,lat=fmt[l-1].indexOf("@");if(l<4&&lat>-1)--l;if(fmt.length>4)throw"cannot find right format for |"+fmt+"|";if(typeof v!=="number")return[4,fmt.length===4||lat>-1?fmt[fmt.length-1]:"@"];switch(fmt.length){case 1:fmt=lat>-1?["General","General","General",fmt[0]]:[fmt[0],fmt[0],fmt[0],"@"];break;case 2:fmt=lat>-1?[fmt[0],fmt[0],fmt[0],fmt[1]]:[fmt[0],fmt[1],fmt[0],"@"];break;case 3:fmt=lat>-1?[fmt[0],fmt[1],fmt[0],fmt[2]]:[fmt[0],fmt[1],fmt[2],"@"];break;case 4:break}var ff=v>0?fmt[0]:v<0?fmt[1]:fmt[2];if(fmt[0].indexOf("[")===-1&&fmt[1].indexOf("[")===-1)return[l,ff];if(fmt[0].match(cfregex)!=null||fmt[1].match(cfregex)!=null){var m1=fmt[0].match(cfregex2);var m2=fmt[1].match(cfregex2);return chkcond(v,m1)?[l,fmt[0]]:chkcond(v,m2)?[l,fmt[1]]:[l,fmt[m1!=null&&m2!=null?2:1]]}return[l,ff]}function format(fmt,v,o){fixopts(o!=null?o:o=[]);var sfmt="";switch(typeof fmt){case"string":sfmt=fmt;break;case"number":sfmt=(o.table!=null?o.table:table_fmt)[fmt];break}if(isgeneral(sfmt,0))return general_fmt(v,o);var f=choose_fmt(sfmt,v);if(isgeneral(f[1]))return general_fmt(v,o);if(v===true)v="TRUE";else if(v===false)v="FALSE";else if(v===""||v==null)return"";return eval_fmt(f[1],v,o,f[0])}SSF._table=table_fmt;SSF.load=function load_entry(fmt,idx){table_fmt[idx]=fmt};SSF.format=format;SSF.get_table=function get_table(){return table_fmt};SSF.load_table=function load_table(tbl){for(var i=0;i!=392;++i)if(tbl[i]!==undefined)SSF.load(tbl[i],i)}};make_ssf(SSF);function isval(x){return x!==undefined&&x!==null}function keys(o){return Object.keys(o)}function evert_key(obj,key){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]][key]]=K[i];return o}function evert(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=K[i];return o}function evert_num(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=parseInt(K[i],10);return o}function evert_arr(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i){if(o[obj[K[i]]]==null)o[obj[K[i]]]=[];o[obj[K[i]]].push(K[i])}return o}function datenum(v,date1904){if(date1904)v+=1462;var epoch=Date.parse(v);return(epoch+22091616e5)/(24*60*60*1e3)}function cc2str(arr){var o="";for(var i=0;i!=arr.length;++i)o+=String.fromCharCode(arr[i]);return o}var has_buf=typeof Buffer!=="undefined";function getdata(data){if(!data)return null;if(data.name.substr(-4)===".bin"){if(data.data)return char_codes(data.data);if(data.asNodeBuffer&&has_buf)return data.asNodeBuffer();if(data._data&&data._data.getContent)return Array.prototype.slice.call(data._data.getContent())}else{if(data.data)return data.name.substr(-4)!==".bin"?debom_xml(data.data):char_codes(data.data);if(data.asNodeBuffer&&has_buf)return debom_xml(data.asNodeBuffer().toString("binary"));if(data.asBinary)return debom_xml(data.asBinary());if(data._data&&data._data.getContent)return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)))}return null}function safegetzipfile(zip,file){var f=file;if(zip.files[f])return zip.files[f];f=file.toLowerCase();if(zip.files[f])return zip.files[f];f=f.replace(/\//g,"\\");if(zip.files[f])return zip.files[f];return null}function getzipfile(zip,file){var o=safegetzipfile(zip,file);if(o==null)throw new Error("Cannot find file "+file+" in zip");return o}function getzipdata(zip,file,safe){if(!safe)return getdata(getzipfile(zip,file));if(!file)return null;try{return getzipdata(zip,file)}catch(e){return null}}var _fs,jszip;if(typeof JSZip!=="undefined")jszip=JSZip;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){if(has_buf&&typeof jszip==="undefined")jszip=require("js"+"zip");if(typeof jszip==="undefined")jszip=require("./js"+"zip").JSZip;_fs=require("f"+"s")}}var attregexg=/\b[\w:]+=["'][^"]*['"]/g;var tagregex=/<[^>]*>/g;var nsregex=/<\w*:/,nsregex2=/<(\/?)\w+:/;function parsexmltag(tag,skip_root){var z=[];var eq=0,c=0;for(;eq!==tag.length;++eq)if((c=tag.charCodeAt(eq))===32||c===10||c===13)break;if(!skip_root)z[0]=tag.substr(0,eq);if(eq===tag.length)return z;var m=tag.match(attregexg),j=0,w="",v="",i=0,q="",cc="";if(m)for(i=0;i!=m.length;++i){cc=m[i];for(c=0;c!=cc.length;++c)if(cc.charCodeAt(c)===61)break;q=cc.substr(0,c);v=cc.substring(c+2,cc.length-1);for(j=0;j!=q.length;++j)if(q.charCodeAt(j)===58)break;if(j===q.length)z[q]=v;else z[(j===5&&q.substr(0,5)==="xmlns"?"xmlns":"")+q.substr(j+1)]=v}return z}function strip_ns(x){return x.replace(nsregex2,"<$1")}var encodings={""":'"',"'":"'",">":">","<":"<","&":"&"};var rencoding=evert(encodings);var rencstr="&<>'\"".split("");var encregex=/&[a-z]*;/g,coderegex=/_x([\da-fA-F]+)_/g;function unescapexml(text){var s=text+"";return s.replace(encregex,function($$){return encodings[$$]}).replace(coderegex,function(m,c){return String.fromCharCode(parseInt(c,16))})}var decregex=/[&<>'"]/g,charegex=/[\u0000-\u0008\u000b-\u001f]/g;function escapexml(text){var s=text+"";return s.replace(decregex,function(y){return rencoding[y]}).replace(charegex,function(s){return"_x"+("000"+s.charCodeAt(0).toString(16)).substr(-4)+"_"})}function parsexmlbool(value,tag){switch(value){case"1":case"true":case"TRUE":return true;default:return false}}var utf8read=function utf8reada(orig){var out="",i=0,c=0,d=0,e=0,f=0,w=0;while(i191&&c<224){out+=String.fromCharCode((c&31)<<6|d&63);continue}e=orig.charCodeAt(i++);if(c<240){out+=String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);continue}f=orig.charCodeAt(i++);w=((c&7)<<18|(d&63)<<12|(e&63)<<6|f&63)-65536;out+=String.fromCharCode(55296+(w>>>10&1023));out+=String.fromCharCode(56320+(w&1023))}return out};if(has_buf){var utf8readb=function utf8readb(data){var out=new Buffer(2*data.length),w,i,j=1,k=0,ww=0,c;for(i=0;i>>10&1023);w=56320+(w&1023)}if(ww!==0){out[k++]=ww&255;out[k++]=ww>>>8;ww=0}out[k++]=w%256;out[k++]=w>>>8}out.length=k;return out.toString("ucs2")};var corpus="foo bar baz☃🍣";if(utf8read(corpus)==utf8readb(corpus))utf8read=utf8readb;var utf8readc=function utf8readc(data){return Buffer(data,"binary").toString("utf8")};if(utf8read(corpus)==utf8readc(corpus))utf8read=utf8readc}var matchtag=function(){var mtcache={};return function matchtag(f,g){var t=f+"|"+g;if(mtcache[t]!==undefined)return mtcache[t];return mtcache[t]=new RegExp("<(?:\\w+:)?"+f+'(?: xml:space="preserve")?(?:[^>]*)>([^☃]*)",g||"")}}();var vtregex=function(){var vt_cache={};return function vt_regex(bt){if(vt_cache[bt]!==undefined)return vt_cache[bt];return vt_cache[bt]=new RegExp("(.*?)","g")}}();var vtvregex=/<\/?vt:variant>/g,vtmregex=/]*)>(.*)"+g+""}function wxt_helper(h){return keys(h).map(function(k){return" "+k+'="'+h[k]+'"'}).join("")}function writextag(f,g,h){return"<"+f+(isval(h)?wxt_helper(h):"")+(isval(g)?(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+""}function write_w3cdtf(d,t){try{return d.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}}function write_vt(s){switch(typeof s){case"string":return writextag("vt:lpwstr",s);case"number":return writextag((s|0)==s?"vt:i4":"vt:r8",String(s));case"boolean":return writextag("vt:bool",s?"true":"false") -}if(s instanceof Date)return writextag("vt:filetime",write_w3cdtf(s));throw new Error("Unable to serialize "+s)}var XML_HEADER='\r\n';var XMLNS={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};XMLNS.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function readIEEE754(buf,idx,isLE,nl,ml){if(isLE===undefined)isLE=true;if(!nl)nl=8;if(!ml&&nl===8)ml=52;var e,m,el=nl*8-ml-1,eMax=(1<>1;var bits=-7,d=isLE?-1:1,i=isLE?nl-1:0,s=buf[idx+i];i+=d;e=s&(1<<-bits)-1;s>>>=-bits;bits+=el;for(;bits>0;e=e*256+buf[idx+i],i+=d,bits-=8);m=e&(1<<-bits)-1;e>>>=-bits;bits+=ml;for(;bits>0;m=m*256+buf[idx+i],i+=d,bits-=8);if(e===eMax)return m?NaN:(s?-1:1)*Infinity;else if(e===0)e=1-eBias;else{m=m+Math.pow(2,ml);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-ml)}var __toBuffer,___toBuffer;__toBuffer=___toBuffer=function toBuffer_(bufs){var x=[];for(var i=0;i0&&Buffer.isBuffer(bufs[0][0])?Buffer.concat(bufs[0]):___toBuffer(bufs)};__double=function double_(b,i){if(Buffer.isBuffer(b))return b.readDoubleLE(i);return ___double(b,i)};is_buf=function is_buf_b(a){return Buffer.isBuffer(a)||Array.isArray(a)}}var __readUInt8=function(b,idx){return b[idx]};var __readUInt16LE=function(b,idx){return b[idx+1]*(1<<8)+b[idx]};var __readInt16LE=function(b,idx){var u=b[idx+1]*(1<<8)+b[idx];return u<32768?u:(65535-u+1)*-1};var __readUInt32LE=function(b,idx){return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]};var __readInt32LE=function(b,idx){return b[idx+3]<<24|b[idx+2]<<16|b[idx+1]<<8|b[idx]};function ReadShift(size,t){var o="",oo=[],w,vv,i,loc;if(t==="dbcs"){loc=this.l;if(has_buf&&Buffer.isBuffer(this))o=this.slice(this.l,this.l+2*size).toString("utf16le");else for(i=0;i!=size;++i){o+=String.fromCharCode(__readUInt16LE(this,loc));loc+=2}size*=2}else switch(size){case 1:o=__readUInt8(this,this.l);break;case 2:o=(t==="i"?__readInt16LE:__readUInt16LE)(this,this.l);break;case 4:o=__readUInt32LE(this,this.l);break;case 8:if(t==="f"){o=__double(this,this.l);break}}this.l+=size;return o}function WriteShift(t,val,f){var size,i;if(f==="dbcs"){for(i=0;i!=val.length;++i)this.writeUInt16LE(val.charCodeAt(i),this.l+2*i);size=2*val.length}else switch(t){case 1:size=1;this[this.l]=val&255;break;case 3:size=3;this[this.l+2]=val&255;val>>>=8;this[this.l+1]=val&255;val>>>=8;this[this.l]=val&255;break;case 4:size=4;this.writeUInt32LE(val,this.l);break;case 8:size=8;if(f==="f"){this.writeDoubleLE(val,this.l);break}case 16:break;case-4:size=4;this.writeInt32LE(val,this.l);break}this.l+=size;return this}function prep_blob(blob,pos){blob.l=pos;blob.read_shift=ReadShift;blob.write_shift=WriteShift}function parsenoop(blob,length){blob.l+=length}function writenoop(blob,length){blob.l+=length}function new_buf(sz){var o=has_buf?new Buffer(sz):new Array(sz);prep_blob(o,0);return o}function recordhopper(data,cb,opts){var tmpbyte,cntbyte,length;prep_blob(data,data.l||0);while(data.l0)bufs.push(curbuf);curbuf=null};var next=function ba_next(sz){if(sz=128?1:0)+1+length;if(length>=128)++l;if(length>=16384)++l;if(length>=2097152)++l;var o=ba.next(l);if(t<=127)o.write_shift(1,t);else{o.write_shift(1,(t&127)+128);o.write_shift(1,t>>7)}for(var i=0;i!=4;++i){if(length>=128){o.write_shift(1,(length&127)+128);length>>=7}else{o.write_shift(1,length);break}}if(length>0&&is_buf(payload))ba.push(payload)}function parse_StrRun(data,length){return{ich:data.read_shift(2),ifnt:data.read_shift(2)}}function parse_RichStr(data,length){var start=data.l;var flags=data.read_shift(1);var str=parse_XLWideString(data);var rgsStrRun=[];var z={t:str,h:str};if((flags&1)!==0){var dwSizeStrRun=data.read_shift(4);for(var i=0;i!=dwSizeStrRun;++i)rgsStrRun.push(parse_StrRun(data));z.r=rgsStrRun}else z.r=""+escapexml(str)+"";if((flags&2)!==0){}data.l=start+length;return z}function write_RichStr(str,o){if(o==null)o=new_buf(5+2*str.t.length);o.write_shift(1,0);write_XLWideString(str.t,o);return o}function parse_Cell(data){var col=data.read_shift(4);var iStyleRef=data.read_shift(2);iStyleRef+=data.read_shift(1)<<16;var fPhShow=data.read_shift(1);return{c:col,iStyleRef:iStyleRef}}function write_Cell(cell,o){if(o==null)o=new_buf(8);o.write_shift(-4,cell.c);o.write_shift(3,cell.iStyleRef===undefined?cell.iStyleRef:cell.s);o.write_shift(1,0);return o}function parse_CodeName(data,length){return parse_XLWideString(data,length)}function parse_XLNullableWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0||cchCharacters===4294967295?"":data.read_shift(cchCharacters,"dbcs")}function write_XLNullableWideString(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.length>0?data.length:4294967295);if(data.length>0)o.write_shift(0,data,"dbcs");return o}function parse_XLWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0?"":data.read_shift(cchCharacters,"dbcs")}function write_XLWideString(data,o){if(o==null)o=new_buf(4+2*data.length);o.write_shift(4,data.length);if(data.length>0)o.write_shift(0,data,"dbcs");return o}var parse_RelID=parse_XLNullableWideString;var write_RelID=write_XLNullableWideString;function parse_RkNumber(data){var b=data.slice(data.l,data.l+4);var fX100=b[0]&1,fInt=b[0]&2;data.l+=4;b[0]&=252;var RK=fInt===0?__double([0,0,0,0,b[0],b[1],b[2],b[3]],0):__readInt32LE(b,0)>>2;return fX100?RK/100:RK}function parse_UncheckedRfX(data){var cell={s:{},e:{}};cell.s.r=data.read_shift(4);cell.e.r=data.read_shift(4);cell.s.c=data.read_shift(4);cell.e.c=data.read_shift(4);return cell}function write_UncheckedRfX(r,o){if(!o)o=new_buf(16);o.write_shift(4,r.s.r);o.write_shift(4,r.e.r);o.write_shift(4,r.s.c);o.write_shift(4,r.e.c);return o}function parse_Xnum(data,length){return data.read_shift(8,"f")}function write_Xnum(data,o){return(o||new_buf(8)).write_shift(8,"f",data)}var BErr={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var RBErr=evert_num(BErr);function parse_BrtColor(data,length){var out={};var d=data.read_shift(1);out.fValidRGB=d&1;out.xColorType=d>>>1;out.index=data.read_shift(1);out.nTintAndShade=data.read_shift(2,"i");out.bRed=data.read_shift(1);out.bGreen=data.read_shift(1);out.bBlue=data.read_shift(1);out.bAlpha=data.read_shift(1)}function parse_FontFlags(data,length){var d=data.read_shift(1);data.l++;var out={fItalic:d&2,fStrikeout:d&8,fOutline:d&16,fShadow:d&32,fCondense:d&64,fExtend:d&128};return out}var ct2type={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.chartsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"TODO","application/vnd.ms-excel.dialogsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"TODO","application/vnd.ms-excel.macrosheet":"TODO","application/vnd.ms-excel.macrosheet+xml":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.ms-excel.comments":"comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"TODO","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO",sheet:"js"};var CT_LIST=function(){var o={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};keys(o).forEach(function(k){if(!o[k].xlsm)o[k].xlsm=o[k].xlsx});keys(o).forEach(function(k){keys(o[k]).forEach(function(v){ct2type[o[k][v]]=k})});return o}();var type2ct=evert_arr(ct2type);XMLNS.CT="http://schemas.openxmlformats.org/package/2006/content-types";function parse_ct(data,opts){var ctext={};if(!data||!data.match)return data;var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0].replace(nsregex,"<")){case"0?ct.calcchains[0]:"";ct.sst=ct.strs.length>0?ct.strs[0]:"";ct.style=ct.styles.length>0?ct.styles[0]:"";ct.defaults=ctext;delete ct.calcchains;return ct}var CTYPE_XML_ROOT=writextag("Types",null,{xmlns:XMLNS.CT,"xmlns:xsd":XMLNS.xsd,"xmlns:xsi":XMLNS.xsi});var CTYPE_DEFAULTS=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["rels",type2ct.rels[0]]].map(function(x){return writextag("Default",null,{Extension:x[0],ContentType:x[1]})});function write_ct(ct,opts){var o=[],v;o[o.length]=XML_HEADER;o[o.length]=CTYPE_XML_ROOT;o=o.concat(CTYPE_DEFAULTS);var f1=function(w){if(ct[w]&&ct[w].length>0){v=ct[w][0];o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})}};var f2=function(w){ct[w].forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})})};var f3=function(t){(ct[t]||[]).forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:type2ct[t][0]})})};f1("workbooks");f2("sheets");f3("themes");["strs","styles"].forEach(f1);["coreprops","extprops","custprops"].forEach(f3);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var RELS={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument"};function parse_rels(data,currentFilePath){if(!data)return data;if(currentFilePath.charAt(0)!=="/"){currentFilePath="/"+currentFilePath}var rels={};var hash={};var resolveRelativePathIntoAbsolute=function(to){var toksFrom=currentFilePath.split("/");toksFrom.pop();var toksTo=to.split("/");var reversed=[];while(toksTo.length!==0){var tokTo=toksTo.shift();if(tokTo===".."){toksFrom.pop()}else if(tokTo!=="."){toksFrom.push(tokTo)}}return toksFrom.join("/")};data.match(tagregex).forEach(function(x){var y=parsexmltag(x);if(y[0]==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CORE_PROPS=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];XMLNS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";RELS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var CORE_PROPS_REGEX=function(){var r=new Array(CORE_PROPS.length);for(var i=0;i]*>(.*)")}return r}();function parse_core_props(data){var p={};for(var i=0;i0)p[f[1]]=cur[1];if(f[2]==="date"&&p[f[1]])p[f[1]]=new Date(p[f[1]])}return p}var CORE_PROPS_XML_ROOT=writextag("cp:coreProperties",null,{"xmlns:cp":XMLNS.CORE_PROPS,"xmlns:dc":XMLNS.dc,"xmlns:dcterms":XMLNS.dcterms,"xmlns:dcmitype":XMLNS.dcmitype,"xmlns:xsi":XMLNS.xsi});function cp_doit(f,g,h,o,p){if(p[f]!=null||g==null||g==="")return;p[f]=g;o[o.length]=h?writextag(f,g,h):writetag(f,g)}function write_core_props(cp,opts){var o=[XML_HEADER,CORE_PROPS_XML_ROOT],p={};if(!cp)return o.join("");if(cp.CreatedDate!=null)cp_doit("dcterms:created",typeof cp.CreatedDate==="string"?cp.CreatedDate:write_w3cdtf(cp.CreatedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);if(cp.ModifiedDate!=null)cp_doit("dcterms:modified",typeof cp.ModifiedDate==="string"?cp.ModifiedDate:write_w3cdtf(cp.ModifiedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);for(var i=0;i!=CORE_PROPS.length;++i){var f=CORE_PROPS[i];cp_doit(f[0],cp[f[1]],null,o,p)}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var EXT_PROPS=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];XMLNS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";RELS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function parse_ext_props(data,p){var q={};if(!p)p={};EXT_PROPS.forEach(function(f){switch(f[2]){case"string":p[f[1]]=(data.match(matchtag(f[0]))||[])[1];break;case"bool":p[f[1]]=(data.match(matchtag(f[0]))||[])[1]==="true";break;case"raw":var cur=data.match(new RegExp("<"+f[0]+"[^>]*>(.*)"));if(cur&&cur.length>0)q[f[1]]=cur[1];break}});if(q.HeadingPairs&&q.TitlesOfParts){var v=parseVector(q.HeadingPairs);var j=0,widx=0;for(var i=0;i!==v.length;++i){switch(v[i].v){case"Worksheets":widx=j;p.Worksheets=+v[++i].v;break;case"Named Ranges":++i;break}}var parts=parseVector(q.TitlesOfParts).map(function(x){return utf8read(x.v)});p.SheetNames=parts.slice(widx,widx+p.Worksheets)}return p}var EXT_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.EXT_PROPS,"xmlns:vt":XMLNS.vt});function write_ext_props(cp,opts){var o=[],p={},W=writextag;if(!cp)cp={};cp.Application="SheetJS";o[o.length]=XML_HEADER;o[o.length]=EXT_PROPS_XML_ROOT;EXT_PROPS.forEach(function(f){if(cp[f[1]]===undefined)return;var v;switch(f[2]){case"string":v=cp[f[1]];break;case"bool":v=cp[f[1]]?"true":"false";break}if(v!==undefined)o[o.length]=W(f[0],v)});o[o.length]=W("HeadingPairs",W("vt:vector",W("vt:variant","Worksheets")+W("vt:variant",W("vt:i4",String(cp.Worksheets))),{size:2,baseType:"variant"}));o[o.length]=W("TitlesOfParts",W("vt:vector",cp.SheetNames.map(function(s){return""+s+""}).join(""),{size:cp.Worksheets,baseType:"lpstr"}));if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}XMLNS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";RELS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var custregex=/<[^>]+>[^<]*/g;function parse_cust_props(data,opts){var p={},name;var m=data.match(custregex);if(m)for(var i=0;i!=m.length;++i){var x=m[i],y=parsexmltag(x);switch(y[0]){case"":name=null;break;default:if(x.indexOf("");var type=toks[0].substring(4),text=toks[1];switch(type){case"lpstr":case"lpwstr":case"bstr":case"lpwstr":p[name]=unescapexml(text);break;case"bool":p[name]=parsexmlbool(text,"");break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":p[name]=parseInt(text,10);break;case"r4":case"r8":case"decimal":p[name]=parseFloat(text);break;case"filetime":case"date":p[name]=new Date(text);break;case"cy":case"error":p[name]=unescapexml(text);break;default:if(typeof console!=="undefined")console.warn("Unexpected",x,type,toks)}}else if(x.substr(0,2)==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CS2CP={0:1252,1:65001,2:65001,77:1e4,128:932,129:949,130:1361,134:936,136:950,161:1253,162:1254,163:1258,177:1255,178:1256,186:1257,204:1251,222:874,238:1250,255:1252,69:6969};var parse_rs=function parse_rs_factory(){var tregex=matchtag("t"),rpregex=matchtag("rPr"),rregex=//g,rend=/<\/r>/,nlregex=/\r\n/g;var parse_rpr=function parse_rpr(rpr,intro,outro){var font={},cp=65001;var m=rpr.match(tagregex),i=0;if(m)for(;i!=m.length;++i){var y=parsexmltag(m[i]);switch(y[0]){case"":break;case"":break;case"":font.strike=1;break;case"":break;case"":font.u=1;break;case"":break;case"":font.b=1;break;case"":break;case"":font.i=1;break;case"":break;case"');outro.push("");return cp};function parse_r(r){var terms=[[],"",[]];var t=r.match(tregex),cp=65001;if(!isval(t))return"";terms[1]=t[1];var rpr=r.match(rpregex);if(isval(rpr))cp=parse_rpr(rpr[1],terms[0],terms[2]);return terms[0].join("")+terms[1].replace(nlregex,"
")+terms[2].join("")}return function parse_rs(rs){return rs.replace(rregex,"").split(rend).map(parse_r).join("")}}();var sitregex=/]*>([^<]*)<\/t>/g,sirregex=//;function parse_si(x,opts){var html=opts?opts.cellHTML:true;var z={};if(!x)return null;var y;if(x.charCodeAt(1)===116){z.t=utf8read(unescapexml(x.substr(x.indexOf(">")+1).split(/<\/t>/)[0]));z.r=x;if(html)z.h=z.t}else if(y=x.match(sirregex)){z.r=x;z.t=utf8read(unescapexml(x.match(sitregex).join("").replace(tagregex,"")));if(html)z.h=parse_rs(x)}return z}var sstr0=/]*)>([\s\S]*)<\/sst>/;var sstr1=/<(?:si|sstItem)>/g;var sstr2=/<\/(?:si|sstItem)>/;function parse_sst_xml(data,opts){var s=[],ss;var sst=data.match(sstr0);if(isval(sst)){ss=sst[2].replace(sstr1,"").split(sstr2);for(var i=0;i!=ss.length;++i){var o=parse_si(ss[i],opts);if(o!=null)s[s.length]=o}sst=parsexmltag(sst[1]);s.Count=sst.count;s.Unique=sst.uniqueCount}return s}RELS.SST="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings";var straywsregex=/^\s|\s$|[\t\n\r]/;function write_sst_xml(sst,opts){if(!opts.bookSST)return"";var o=[XML_HEADER];o[o.length]=writextag("sst",null,{xmlns:XMLNS.main[0],count:sst.Count,uniqueCount:sst.Unique});for(var i=0;i!=sst.length;++i){if(sst[i]==null)continue;var s=sst[i];var sitag="";if(s.r)sitag+=s.r;else{sitag+=""}sitag+="";o[o.length]=sitag}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBeginSst(data,length){return[data.read_shift(4),data.read_shift(4)]}function parse_sst_bin(data,opts){var s=[];var pass=false;recordhopper(data,function hopper_sst(val,R,RT){switch(R.n){case"BrtBeginSst":s.Count=val[0];s.Unique=val[1];break;case"BrtSSTItem":s.push(val);break;case"BrtEndSst":return true;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return s}function write_BrtBeginSst(sst,o){if(!o)o=new_buf(8);o.write_shift(4,sst.Count);o.write_shift(4,sst.Unique);return o}var write_BrtSSTItem=write_RichStr;function write_sst_bin(sst,opts){var ba=buf_array();write_record(ba,"BrtBeginSst",write_BrtBeginSst(sst));for(var i=0;i255?255:rgb[i]<0?0:rgb[i]);return o.toString(16).toUpperCase().substr(1)}function rgb2HSL(rgb){var R=rgb[0]/255,G=rgb[1]/255,B=rgb[2]/255;var M=Math.max(R,G,B),m=Math.min(R,G,B),C=M-m;if(C===0)return[0,0,R];var H6=0,S=0,L2=M+m;S=C/(L2>1?2-L2:L2);switch(M){case R:H6=((G-B)/C+6)%6;break;case G:H6=(B-R)/C+2;break;case B:H6=(R-G)/C+4;break}return[H6/6,S,L2/2]}function hsl2RGB(hsl){var H=hsl[0],S=hsl[1],L=hsl[2];var C=S*2*(L<.5?L:1-L),m=L-C/2;var rgb=[m,m,m],h6=6*H;var X;if(S!==0)switch(h6|0){case 0:case 6:X=C*h6;rgb[0]+=C;rgb[1]+=X;break;case 1:X=C*(2-h6);rgb[0]+=X;rgb[1]+=C;break;case 2:X=C*(h6-2);rgb[1]+=C;rgb[2]+=X;break;case 3:X=C*(4-h6);rgb[1]+=X;rgb[2]+=C;break;case 4:X=C*(h6-4);rgb[2]+=C;rgb[0]+=X;break;case 5:X=C*(6-h6);rgb[2]+=X;rgb[0]+=C;break}for(var i=0;i!=3;++i)rgb[i]=Math.round(rgb[i]*255);return rgb}function rgb_tint(hex,tint){if(tint===0)return hex;var hsl=rgb2HSL(hex2RGB(hex));if(tint<0)hsl[2]=hsl[2]*(1+tint);else hsl[2]=1-(1-hsl[2])*(1-tint);return rgb2Hex(hsl2RGB(hsl))}var DEF_MDW=7,MAX_MDW=15,MIN_MDW=1,MDW=DEF_MDW;function width2px(width){return(width+(128/MDW|0)/256)*MDW|0}function px2char(px){return((px-5)/MDW*100+.5|0)/100}function char2width(chr){return((chr*MDW+5)/MDW*256|0)/256}function cycle_width(collw){return char2width(px2char(width2px(collw)))}function find_mdw(collw,coll){if(cycle_width(collw)!=collw){for(MDW=DEF_MDW;MDW>MIN_MDW;--MDW)if(cycle_width(collw)===collw)break;if(MDW===MIN_MDW)for(MDW=DEF_MDW+1;MDW":case"":break;case"":break;case"":styles.Fills.push(fill);fill={};break;case"":case"":break;case"":case"":break;case"":case"":break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in fills"}})}function parse_numFmts(t,opts){styles.NumberFmt=[];var k=keys(SSF._table);for(var i=0;i":case"":case"":break;case"0)SSF.load(f,j)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in numFmts"}}}function write_numFmts(NF,opts){var o=[""];[[5,8],[23,26],[41,44],[63,66],[164,392]].forEach(function(r){for(var i=r[0];i<=r[1];++i)if(NF[i]!==undefined)o[o.length]=writextag("numFmt",null,{numFmtId:i,formatCode:escapexml(NF[i])})});if(o.length===1)return"";o[o.length]="";o[0]=writextag("numFmts",null,{count:o.length-2}).replace("/>",">");return o.join("")}function parse_cellXfs(t,opts){styles.CellXf=[];t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":case"":case"":break;case"":break;case"":break;case"":case"":break;case"":break;case"";if(o.length===2)return"";o[0]=writextag("cellXfs",null,{count:o.length-2}).replace("/>",">");return o.join("")}var parse_sty_xml=function make_pstyx(){var numFmtRegex=/]*)>.*<\/numFmts>/;var cellXfRegex=/]*)>.*<\/cellXfs>/;var fillsRegex=/]*)>.*<\/fills>/; -return function parse_sty_xml(data,opts){var t;if(t=data.match(numFmtRegex))parse_numFmts(t,opts);if(t=data.match(fillsRegex))parse_fills(t,opts);if(t=data.match(cellXfRegex))parse_cellXfs(t,opts);return styles}}();var STYLES_XML_ROOT=writextag("styleSheet",null,{xmlns:XMLNS.main[0],"xmlns:vt":XMLNS.vt});RELS.STY="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles";function write_sty_xml(wb,opts){var o=[XML_HEADER,STYLES_XML_ROOT],w;if((w=write_numFmts(wb.SSF))!=null)o[o.length]=w;o[o.length]='';o[o.length]='';o[o.length]='';o[o.length]='';if(w=write_cellXfs(opts.cellXfs))o[o.length]=w;o[o.length]='';o[o.length]='';o[o.length]='';if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtFmt(data,length){var ifmt=data.read_shift(2);var stFmtCode=parse_XLWideString(data,length-2);return[ifmt,stFmtCode]}function parse_BrtFont(data,length){var out={flags:{}};out.dyHeight=data.read_shift(2);out.grbit=parse_FontFlags(data,2);out.bls=data.read_shift(2);out.sss=data.read_shift(2);out.uls=data.read_shift(1);out.bFamily=data.read_shift(1);out.bCharSet=data.read_shift(1);data.l++;out.brtColor=parse_BrtColor(data,8);out.bFontScheme=data.read_shift(1);out.name=parse_XLWideString(data,length-21);out.flags.Bold=out.bls===700;out.flags.Italic=out.grbit.fItalic;out.flags.Strikeout=out.grbit.fStrikeout;out.flags.Outline=out.grbit.fOutline;out.flags.Shadow=out.grbit.fShadow;out.flags.Condense=out.grbit.fCondense;out.flags.Extend=out.grbit.fExtend;out.flags.Sub=out.sss&2;out.flags.Sup=out.sss&1;return out}function parse_BrtXF(data,length){var ixfeParent=data.read_shift(2);var ifmt=data.read_shift(2);parsenoop(data,length-4);return{ixfe:ixfeParent,ifmt:ifmt}}function parse_sty_bin(data,opts){styles.NumberFmt=[];for(var y in SSF._table)styles.NumberFmt[y]=SSF._table[y];styles.CellXf=[];var state="";var pass=false;recordhopper(data,function hopper_sty(val,R,RT){switch(R.n){case"BrtFmt":styles.NumberFmt[val[0]]=val[1];SSF.load(val[1],val[0]);break;case"BrtFont":break;case"BrtKnownFonts":break;case"BrtFill":break;case"BrtBorder":break;case"BrtXF":if(state==="CELLXFS"){styles.CellXf.push(val)}break;case"BrtStyle":break;case"BrtDXF":break;case"BrtMRUColor":break;case"BrtIndexedColor":break;case"BrtBeginStyleSheet":break;case"BrtEndStyleSheet":break;case"BrtBeginTableStyle":break;case"BrtTableStyleElement":break;case"BrtEndTableStyle":break;case"BrtBeginFmts":state="FMTS";break;case"BrtEndFmts":state="";break;case"BrtBeginFonts":state="FONTS";break;case"BrtEndFonts":state="";break;case"BrtACBegin":state="ACFONTS";break;case"BrtACEnd":state="";break;case"BrtBeginFills":state="FILLS";break;case"BrtEndFills":state="";break;case"BrtBeginBorders":state="BORDERS";break;case"BrtEndBorders":state="";break;case"BrtBeginCellStyleXFs":state="CELLSTYLEXFS";break;case"BrtEndCellStyleXFs":state="";break;case"BrtBeginCellXFs":state="CELLXFS";break;case"BrtEndCellXFs":state="";break;case"BrtBeginStyles":state="STYLES";break;case"BrtEndStyles":state="";break;case"BrtBeginDXFs":state="DXFS";break;case"BrtEndDXFs":state="";break;case"BrtBeginTableStyles":state="TABLESTYLES";break;case"BrtEndTableStyles":state="";break;case"BrtBeginColorPalette":state="COLORPALETTE";break;case"BrtEndColorPalette":state="";break;case"BrtBeginIndexedColors":state="INDEXEDCOLORS";break;case"BrtEndIndexedColors":state="";break;case"BrtBeginMRUColors":state="MRUCOLORS";break;case"BrtEndMRUColors":state="";break;case"BrtFRTBegin":pass=true;break;case"BrtFRTEnd":pass=false;break;case"BrtBeginStyleSheetExt14":break;case"BrtBeginSlicerStyles":break;case"BrtEndSlicerStyles":break;case"BrtBeginTimelineStylesheetExt15":break;case"BrtEndTimelineStylesheetExt15":break;case"BrtBeginTimelineStyles":break;case"BrtEndTimelineStyles":break;case"BrtEndStyleSheetExt14":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return styles}function write_sty_bin(data,opts){var ba=buf_array();write_record(ba,"BrtBeginStyleSheet");write_record(ba,"BrtEndStyleSheet");return ba.end()}RELS.THEME="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme";function parse_clrScheme(t,opts){themes.themeElements.clrScheme=[];var color={};t[0].match(tagregex).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":break;case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":case"":if(y[0][1]==="/"){themes.themeElements.clrScheme.push(color);color={}}else{color.name=y[0].substring(3,y[0].length-1)}break;default:if(opts.WTF)throw"unrecognized "+y[0]+" in clrScheme"}})}function parse_fontScheme(t,opts){}function parse_fmtScheme(t,opts){}var clrsregex=/]*)>[^\u2603]*<\/a:clrScheme>/;var fntsregex=/]*)>[^\u2603]*<\/a:fontScheme>/;var fmtsregex=/]*)>[^\u2603]*<\/a:fmtScheme>/;function parse_themeElements(data,opts){themes.themeElements={};var t;[["clrScheme",clrsregex,parse_clrScheme],["fontScheme",fntsregex,parse_fontScheme],["fmtScheme",fmtsregex,parse_fmtScheme]].forEach(function(m){if(!(t=data.match(m[1])))throw m[0]+" not found in themeElements";m[2](t,opts)})}var themeltregex=/]*)>[^\u2603]*<\/a:themeElements>/;function parse_theme_xml(data,opts){if(!data||data.length===0)return themes;var t;if(!(t=data.match(themeltregex)))throw"themeElements not found in theme";parse_themeElements(t[0],opts);return themes}function write_theme(){return'\n'}function parse_cc_xml(data,opts){var d=[];var l=0,i=1;(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0]){case"":case"":break;case"thisCell.r)range.s.r=thisCell.r;if(range.e.rthisCell.c)range.s.c=thisCell.c;if(range.e.c/))return[];var authors=[];var commentList=[];data.match(/<(?:\w+:)?authors>([^\u2603]*)<\/(?:\w+:)?authors>/)[1].split(/<\/\w*:?author>/).forEach(function(x){if(x===""||x.trim()==="")return;authors.push(x.match(/<(?:\w+:)?author[^>]*>(.*)/)[1])});(data.match(/<(?:\w+:)?commentList>([^\u2603]*)<\/(?:\w+:)?commentList>/)||["",""])[1].split(/<\/\w*:?comment>/).forEach(function(x,index){if(x===""||x.trim()==="")return;var y=parsexmltag(x.match(/<(?:\w+:)?comment[^>]*>/)[0]);var comment={author:y.authorId&&authors[y.authorId]?authors[y.authorId]:undefined,ref:y.ref,guid:y.guid};var cell=decode_cell(y.ref);if(opts.sheetRows&&opts.sheetRows<=cell.r)return;var textMatch=x.match(/([^\u2603]*)<\/text>/);if(!textMatch||!textMatch[1])return;var rt=parse_si(textMatch[1]);comment.r=rt.r;comment.t=rt.t;if(opts.cellHTML)comment.h=rt.h;commentList.push(comment)});return commentList}function write_comments_xml(data,opts){}function parse_BrtBeginComment(data,length){var out={};out.iauthor=data.read_shift(4);var rfx=parse_UncheckedRfX(data,16);out.rfx=rfx.s;out.ref=encode_cell(rfx.s);data.l+=16;return out}var parse_BrtCommentAuthor=parse_XLWideString;var parse_BrtCommentText=parse_RichStr;function parse_comments_bin(data,opts){var out=[];var authors=[];var c={};var pass=false;recordhopper(data,function hopper_cmnt(val,R,RT){switch(R.n){case"BrtCommentAuthor":authors.push(val);break;case"BrtBeginComment":c=val;break;case"BrtCommentText":c.t=val.t;c.h=val.h;c.r=val.r;break;case"BrtEndComment":c.author=authors[c.iauthor];delete c.iauthor;if(opts.sheetRows&&opts.sheetRows<=c.rfx.r)break;delete c.rfx;out.push(c);break;case"BrtBeginComments":break;case"BrtEndComments":break;case"BrtBeginCommentAuthors":break;case"BrtEndCommentAuthors":break;case"BrtBeginCommentList":break;case"BrtEndCommentList":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+RT+" "+R.n)}});return out}function write_comments_bin(data,opts){}function parse_CellParsedFormula(data,length){var cce=data.read_shift(4);return parsenoop(data,length-4)}var strs={};var _ssfopts={};RELS.WS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet";function get_sst_id(sst,str){for(var i=0,len=sst.length;i=0&&d.s.c>=0)ws["!ref"]=encode_range(d)}var mergecregex=//g;var sheetdataregex=/<(?:\w+:)?sheetData>([^\u2603]*)<\/(?:\w+:)?sheetData>/;var hlinkregex=/]*\/>/g;var dimregex=/"(\w*:\w*)"/;var colregex=/]*\/>/g;function parse_ws_xml(data,opts,rels){if(!data)return data;var s={};var ridx=data.indexOf("0){var ref=data.substr(ridx,50).match(dimregex);if(ref!=null)parse_ws_xml_dim(s,ref[1])}var mergecells=[];if(data.indexOf("")!==-1){var merges=data.match(mergecregex);for(ridx=0;ridx!=merges.length;++ridx)mergecells[ridx]=safe_decode_range(merges[ridx].substr(merges[ridx].indexOf('"')+1))}var columns=[];if(opts.cellStyles&&data.indexOf("")!==-1){var cols=data.match(colregex);parse_ws_xml_cols(columns,cols)}var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var mtch=data.match(sheetdataregex);if(mtch)parse_ws_xml_data(mtch[1],s,opts,refguess);if(data.indexOf("")!==-1)parse_ws_xml_hlinks(s,data.match(hlinkregex),rels);if(!s["!ref"]&&refguess.e.c>=refguess.s.c&&refguess.e.r>=refguess.s.r)s["!ref"]=encode_range(refguess);if(opts.sheetRows>0&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.rrefguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c0)s["!merges"]=mergecells;if(columns.length>0)s["!cols"]=columns;return s}function write_ws_xml_merges(merges){if(merges.length==0)return"";var o='';for(var i=0;i!=merges.length;++i)o+='';return o+""}function parse_ws_xml_hlinks(s,data,rels){for(var i=0;i!=data.length;++i){var val=parsexmltag(data[i],true);if(!val.ref)return;var rel=rels["!id"][val.id];if(rel){val.Target=rel.Target;if(val.location)val.Target+="#"+val.location;val.Rel=rel}var rng=safe_decode_range(val.ref);for(var R=rng.s.r;R<=rng.e.r;++R)for(var C=rng.s.c;C<=rng.e.c;++C){var addr=encode_cell({c:C,r:R});if(!s[addr])s[addr]={t:"stub",v:undefined};s[addr].l=val}}}function parse_ws_xml_cols(columns,cols){var seencol=false;for(var coli=0;coli!=cols.length;++coli){var coll=parsexmltag(cols[coli],true);var colm=parseInt(coll.min,10)-1,colM=parseInt(coll.max,10)-1;delete coll.min;delete coll.max;if(!seencol&&coll.width){seencol=true;find_mdw(+coll.width,coll)}if(coll.width){coll.wpx=width2px(+coll.width);coll.wch=px2char(coll.wpx);coll.MDW=MDW}while(colm<=colM)columns[colm++]=coll}}function write_ws_xml_cols(ws,cols){var o=[""],col,width;for(var i=0;i!=cols.length;++i){if(!(col=cols[i]))continue;var p={min:i+1,max:i+1};width=-1;if(col.wpx)width=px2char(col.wpx);else if(col.wch)width=col.wch;if(width>-1){p.width=char2width(width);p.customWidth=1}o[o.length]=writextag("col",null,p)}o[o.length]="";return o.join("")}function write_ws_xml_cell(cell,ref,ws,opts,idx,wb){if(cell.v===undefined)return"";var vv="";var oldt=cell.t,oldv=cell.v;switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":vv=""+cell.v;break;case"e":vv=BErr[cell.v];break;case"d":if(opts.cellDates)vv=new Date(cell.v).toISOString();else{cell.t="n";vv=""+(cell.v=datenum(cell.v));if(typeof cell.z==="undefined")cell.z=SSF._table[14]}break;default:vv=cell.v;break}var v=writetag("v",escapexml(vv)),o={r:ref};var os=get_cell_style(opts.cellXfs,cell,opts);if(os!==0)o.s=os;switch(cell.t){case"n":break;case"d":o.t="d";break;case"b":o.t="b";break;case"e":o.t="e";break;default:if(opts.bookSST){v=writetag("v",""+get_sst_id(opts.Strings,cell.v));o.t="s";break}o.t="str";break}if(cell.t!=oldt){cell.t=oldt;cell.v=oldv}return writextag("c",v,o)}var parse_ws_xml_data=function parse_ws_xml_data_factory(){var cellregex=/<(?:\w+:)?c[ >]/,rowregex=/<\/(?:\w+:)?row>/;var rregex=/r=["']([^"']*)["']/,isregex=/([\S\s]*?)<\/is>/;var match_v=matchtag("v"),match_f=matchtag("f");return function parse_ws_xml_data(sdata,s,opts,guess){var ri=0,x="",cells=[],cref=[],idx=0,i=0,cc=0,d="",p;var tag,tagr=0,tagc=0;var sstr;var fmtid=0,fillid=0,do_format=Array.isArray(styles.CellXf),cf;for(var marr=sdata.split(rowregex),mt=0,marrlen=marr.length;mt!=marrlen;++mt){x=marr[mt].trim();var xlen=x.length;if(xlen===0)continue;for(ri=0;ritagr-1)guess.s.r=tagr-1;if(guess.e.r":"")+x;if(cref!==null&&cref.length===2){idx=0;d=cref[1];for(i=0;i!=d.length;++i){if((cc=d.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}--idx;tagc=idx}else++tagc;for(i=0;i!=x.length;++i)if(x.charCodeAt(i)===62)break;++i;tag=parsexmltag(x.substr(0,i),true);if(!tag.r)tag.r=utils.encode_cell({r:tagr-1,c:tagc});d=x.substr(i);p={t:""};if((cref=d.match(match_v))!==null&&cref[1]!=="")p.v=unescapexml(cref[1]);if(opts.cellFormula&&(cref=d.match(match_f))!==null)p.f=unescapexml(cref[1]);if(tag.t===undefined&&p.v===undefined){if(!opts.sheetStubs)continue;p.t="stub"}else p.t=tag.t||"n";if(guess.s.c>idx)guess.s.c=idx;if(guess.e.c0)o[o.length]=writextag("row",r.join(""),{r:rr})}return o.join("")}var WS_XML_ROOT=writextag("worksheet",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function write_ws_xml(idx,opts,wb){var o=[XML_HEADER,WS_XML_ROOT];var s=wb.SheetNames[idx],sidx=0,rdata="";var ws=wb.Sheets[s];if(ws===undefined)ws={};var ref=ws["!ref"];if(ref===undefined)ref="A1";o[o.length]=writextag("dimension",null,{ref:ref});if(ws["!cols"]!==undefined&&ws["!cols"].length>0)o[o.length]=write_ws_xml_cols(ws,ws["!cols"]);o[sidx=o.length]="";if(ws["!ref"]!==undefined){rdata=write_ws_xml_data(ws,opts,idx,wb);if(rdata.length>0)o[o.length]=rdata}if(o.length>sidx+1){o[o.length]="";o[sidx]=o[sidx].replace("/>",">")}if(ws["!merges"]!==undefined&&ws["!merges"].length>0)o[o.length]=write_ws_xml_merges(ws["!merges"]);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtRowHdr(data,length){var z=[];z.r=data.read_shift(4);data.l+=length-4;return z}var parse_BrtWsDim=parse_UncheckedRfX;var write_BrtWsDim=write_UncheckedRfX;function parse_BrtWsProp(data,length){var z={};data.l+=19;z.name=parse_CodeName(data,length-19);return z}function parse_BrtCellBlank(data,length){var cell=parse_Cell(data);return[cell]}function write_BrtCellBlank(cell,val,o){if(o==null)o=new_buf(8);return write_Cell(val,o)}function parse_BrtCellBool(data,length){var cell=parse_Cell(data);var fBool=data.read_shift(1);return[cell,fBool,"b"]}function parse_BrtCellError(data,length){var cell=parse_Cell(data);var fBool=data.read_shift(1);return[cell,fBool,"e"]}function parse_BrtCellIsst(data,length){var cell=parse_Cell(data);var isst=data.read_shift(4);return[cell,isst,"s"]}function parse_BrtCellReal(data,length){var cell=parse_Cell(data);var value=parse_Xnum(data);return[cell,value,"n"]}function parse_BrtCellRk(data,length){var cell=parse_Cell(data);var value=parse_RkNumber(data);return[cell,value,"n"]}function parse_BrtCellSt(data,length){var cell=parse_Cell(data);var value=parse_XLWideString(data);return[cell,value,"str"]}function parse_BrtFmlaBool(data,length,opts){var cell=parse_Cell(data);var value=data.read_shift(1);var o=[cell,value,"b"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaError(data,length,opts){var cell=parse_Cell(data);var value=data.read_shift(1);var o=[cell,value,"e"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-9);o[3]=""}else data.l+=length-9;return o}function parse_BrtFmlaNum(data,length,opts){var cell=parse_Cell(data);var value=parse_Xnum(data);var o=[cell,value,"n"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,length-16);o[3]=""}else data.l+=length-16;return o}function parse_BrtFmlaString(data,length,opts){var start=data.l;var cell=parse_Cell(data);var value=parse_XLWideString(data);var o=[cell,value,"str"];if(opts.cellFormula){var formula=parse_CellParsedFormula(data,start+length-data.l)}else data.l=start+length;return o}var parse_BrtMergeCell=parse_UncheckedRfX;function parse_BrtHLink(data,length,opts){var end=data.l+length;var rfx=parse_UncheckedRfX(data,16);var relId=parse_XLNullableWideString(data);var loc=parse_XLWideString(data);var tooltip=parse_XLWideString(data);var display=parse_XLWideString(data);data.l=end;return{rfx:rfx,relId:relId,loc:loc,tooltip:tooltip,display:display}}function parse_ws_bin(data,opts,rels){if(!data)return data;if(!rels)rels={"!id":{}};var s={};var ref;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var pass=false,end=false;var row,p,cf,R,C,addr,sstr,rr;var mergecells=[];recordhopper(data,function ws_parse(val,R){if(end)return;switch(R.n){case"BrtWsDim":ref=val;break;case"BrtRowHdr":row=val;if(opts.sheetRows&&opts.sheetRows<=row.r)end=true;rr=encode_row(row.r);break;case"BrtFmlaBool":case"BrtFmlaError":case"BrtFmlaNum":case"BrtFmlaString":case"BrtCellBool":case"BrtCellError":case"BrtCellIsst":case"BrtCellReal":case"BrtCellRk":case"BrtCellSt":p={t:val[2]};switch(val[2]){case"n":p.v=val[1];break;case"s":sstr=strs[val[1]];p.v=sstr.t;p.r=sstr.r;break;case"b":p.v=val[1]?true:false;break;case"e":p.v=val[1];p.w=BErr[p.v];break;case"str":p.t="s";p.v=utf8read(val[1]);break}if(opts.cellFormula&&val.length>3)p.f=val[3];if(cf=styles.CellXf[val[0].iStyleRef])safe_format(p,cf.ifmt,null,opts);s[encode_col(C=val[0].c)+rr]=p;if(refguess.s.r>row.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.rrow.r)refguess.s.r=row.r;if(refguess.s.c>C)refguess.s.c=C;if(refguess.e.r0||ref.e.c>0||ref.s.r>0||ref.s.c>0))s["!ref"]=encode_range(ref);if(opts.sheetRows&&s["!ref"]){var tmpref=safe_decode_range(s["!ref"]);if(opts.sheetRows<+tmpref.e.r){tmpref.e.r=opts.sheetRows-1;if(tmpref.e.r>refguess.e.r)tmpref.e.r=refguess.e.r;if(tmpref.e.rrefguess.e.c)tmpref.e.c=refguess.e.c;if(tmpref.e.c0)s["!merges"]=mergecells;return s}function write_ws_bin_cell(ba,cell,R,C,opts){if(cell.v===undefined)return"";var vv="";switch(cell.t){case"b":vv=cell.v?"1":"0";break;case"n":case"e":vv=""+cell.v;break;default:vv=cell.v;break}var o={r:R,c:C};o.s=get_cell_style(opts.cellXfs,cell,opts);switch(cell.t){case"s":case"str":if(opts.bookSST){vv=get_sst_id(opts.Strings,cell.v);o.t="s";break}o.t="str";break;case"n":break;case"b":o.t="b";break;case"e":o.t="e";break}write_record(ba,"BrtCellBlank",write_BrtCellBlank(cell,o))}function write_CELLTABLE(ba,ws,idx,opts,wb){var range=safe_decode_range(ws["!ref"]||"A1"),ref,rr="",cols=[];write_record(ba,"BrtBeginSheetData");for(var R=range.s.r;R<=range.e.r;++R){rr=encode_row(R);for(var C=range.s.c;C<=range.e.c;++C){if(R===range.s.r)cols[C]=encode_col(C);ref=cols[C]+rr;if(!ws[ref])continue;write_ws_bin_cell(ba,ws[ref],R,C,opts)}}write_record(ba,"BrtEndSheetData")}function write_ws_bin(idx,opts,wb){var ba=buf_array();var s=wb.SheetNames[idx],ws=wb.Sheets[s]||{};var r=safe_decode_range(ws["!ref"]||"A1");write_record(ba,"BrtBeginSheet");write_record(ba,"BrtWsDim",write_BrtWsDim(r));write_CELLTABLE(ba,ws,idx,opts,wb);write_record(ba,"BrtEndSheet");return ba.end()}var WBPropsDef=[["allowRefreshQuery","0"],["autoCompressPictures","1"],["backupFile","0"],["checkCompatibility","0"],["codeName",""],["date1904","0"],["dateCompatibility","1"],["filterPrivacy","0"],["hidePivotFieldList","0"],["promptedSolutions","0"],["publishItems","0"],["refreshAllConnections",false],["saveExternalLinkValues","1"],["showBorderUnselectedTables","1"],["showInkAnnotation","1"],["showObjects","all"],["showPivotChartFilter","0"]];var WBViewDef=[["activeTab","0"],["autoFilterDateGrouping","1"],["firstSheet","0"],["minimized","0"],["showHorizontalScroll","1"],["showSheetTabs","1"],["showVerticalScroll","1"],["tabRatio","600"],["visibility","visible"]];var SheetDef=[["state","visible"]];var CalcPrDef=[["calcCompleted","true"],["calcMode","auto"],["calcOnSave","true"],["concurrentCalc","true"],["fullCalcOnLoad","false"],["fullPrecision","true"],["iterate","false"],["iterateCount","100"],["iterateDelta","0.001"],["refMode","A1"]];var CustomWBViewDef=[["autoUpdate","false"],["changesSavedWin","false"],["includeHiddenRowCol","true"],["includePrintSettings","true"],["maximized","false"],["minimized","false"],["onlySync","false"],["personalView","false"],["showComments","commIndicator"],["showFormulaBar","true"],["showHorizontalScroll","true"],["showObjects","all"],["showSheetTabs","true"],["showStatusbar","true"],["showVerticalScroll","true"],["tabRatio","600"],["xWindow","0"],["yWindow","0"]];function push_defaults_array(target,defaults){for(var j=0;j!=target.length;++j){var w=target[j];for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(w[z[0]]==null)w[z[0]]=z[1]}}}function push_defaults(target,defaults){for(var i=0;i!=defaults.length;++i){var z=defaults[i];if(target[z[0]]==null)target[z[0]]=z[1]}}function parse_wb_defaults(wb){push_defaults(wb.WBProps,WBPropsDef);push_defaults(wb.CalcPr,CalcPrDef);push_defaults_array(wb.WBView,WBViewDef);push_defaults_array(wb.Sheets,SheetDef);_ssfopts.date1904=parsexmlbool(wb.WBProps.date1904,"date1904")}var wbnsregex=/<\w+:workbook/;function parse_wb_xml(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,xmlns="xmlns";data.match(tagregex).forEach(function xml_wb(x){var y=parsexmltag(x);switch(strip_ns(y[0])){case"":break;case"":break;case"":break;case"":delete y[0];wb.WBProps=y;break;case"":break;case"":case"":break;case"":case"":break;case"":break;case"":case"":break;case"":break;case"":case"":pass=false;break;case"":case"":break;case"":delete y[0];wb.CalcPr=y;break;case"":case"":case"":break;case"":case"":case"":break;case"":case"":break;case"":break;case"":break;case"":case"":break;case"":case"
":case"":break;case"":pass=false;break;case"":pass=false;break;default:if(!pass&&opts.WTF)throw"unrecognized "+y[0]+" in workbook"}});if(XMLNS.main.indexOf(wb.xmlns)===-1)throw new Error("Unknown Namespace: "+wb.xmlns);parse_wb_defaults(wb);return wb}var WB_XML_ROOT=writextag("workbook",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function safe1904(wb){try{return parsexmlbool(wb.Workbook.WBProps.date1904)?"true":"false"}catch(e){return"false"}}function write_wb_xml(wb,opts){var o=[XML_HEADER];o[o.length]=WB_XML_ROOT;o[o.length]=writextag("workbookPr",null,{date1904:safe1904(wb)});o[o.length]="";for(var i=0;i!=wb.SheetNames.length;++i)o[o.length]=writextag("sheet",null,{name:wb.SheetNames[i].substr(0,31),sheetId:""+(i+1),"r:id":"rId"+(i+1)});o[o.length]="";if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBundleSh(data,length){var z={};z.hsState=data.read_shift(4);z.iTabID=data.read_shift(4);z.strRelID=parse_RelID(data,length-8);z.name=parse_XLWideString(data);return z}function write_BrtBundleSh(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.hsState);o.write_shift(4,data.iTabID);write_RelID(data.strRelID,o);write_XLWideString(data.name.substr(0,31),o);return o}function parse_BrtWbProp(data,length){data.read_shift(4);var dwThemeVersion=data.read_shift(4);var strName=length>8?parse_XLWideString(data):"";return[dwThemeVersion,strName]}function write_BrtWbProp(data,o){if(!o)o=new_buf(8);o.write_shift(4,0);o.write_shift(4,0);return o}function parse_BrtFRTArchID$(data,length){var o={};data.read_shift(4);o.ArchID=data.read_shift(4);data.l+=length-8;return o}function parse_wb_bin(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,z;recordhopper(data,function hopper_wb(val,R){switch(R.n){case"BrtBundleSh":wb.Sheets.push(val);break;case"BrtBeginBook":break;case"BrtFileVersion":break;case"BrtWbProp":break;case"BrtACBegin":break;case"BrtAbsPath15":break;case"BrtACEnd":break;case"BrtWbFactoid":break;case"BrtBookProtection":break;case"BrtBeginBookViews":break;case"BrtBookView":break;case"BrtEndBookViews":break;case"BrtBeginBundleShs":break;case"BrtEndBundleShs":break;case"BrtBeginFnGroup":break;case"BrtEndFnGroup":break;case"BrtBeginExternals":break;case"BrtSupSelf":break;case"BrtSupBookSrc":break;case"BrtExternSheet":break;case"BrtEndExternals":break;case"BrtName":break;case"BrtCalcProp":break;case"BrtUserBookView":break;case"BrtBeginPivotCacheIDs":break;case"BrtBeginPivotCacheID":break;case"BrtEndPivotCacheID":break;case"BrtEndPivotCacheIDs":break;case"BrtWebOpt":break;case"BrtFileRecover":break;case"BrtFileSharing":break;case"BrtBeginSmartTagTypes":break;case"BrtSmartTagType":break;case"BrtEndSmartTagTypes":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTArchID$":break;case"BrtWorkBookPr15":break;case"BrtFRTEnd":pass=false;break;case"BrtEndBook":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}});parse_wb_defaults(wb);return wb}function write_BUNDLESHS(ba,wb,opts){write_record(ba,"BrtBeginBundleShs");for(var idx=0;idx!=wb.SheetNames.length;++idx){var d={hsState:0,iTabID:idx+1,strRelID:"rId"+(idx+1),name:wb.SheetNames[idx]};write_record(ba,"BrtBundleSh",write_BrtBundleSh(d))}write_record(ba,"BrtEndBundleShs")}function write_BrtFileVersion(data,o){if(!o)o=new_buf(127);for(var i=0;i!=4;++i)o.write_shift(4,0);write_XLWideString("SheetJS",o);write_XLWideString(XLSX.version,o);write_XLWideString(XLSX.version,o);write_XLWideString("7262",o);o.length=o.l;return o}function write_BOOKVIEWS(ba,wb,opts){write_record(ba,"BrtBeginBookViews");write_record(ba,"BrtEndBookViews")}function write_BrtCalcProp(data,o){if(!o)o=new_buf(26);o.write_shift(4,0);o.write_shift(4,1);o.write_shift(4,0);write_Xnum(0,o);o.write_shift(-4,1023);o.write_shift(1,51);o.write_shift(1,0);return o}function write_BrtFileRecover(data,o){if(!o)o=new_buf(1);o.write_shift(1,0);return o}function write_wb_bin(wb,opts){var ba=buf_array();write_record(ba,"BrtBeginBook");write_record(ba,"BrtFileVersion",write_BrtFileVersion());write_record(ba,"BrtWbProp",write_BrtWbProp());write_BOOKVIEWS(ba,wb,opts);write_BUNDLESHS(ba,wb,opts);write_record(ba,"BrtCalcProp",write_BrtCalcProp());write_record(ba,"BrtFileRecover",write_BrtFileRecover());write_record(ba,"BrtEndBook");return ba.end()}function parse_wb(data,name,opts){return(name.substr(-4)===".bin"?parse_wb_bin:parse_wb_xml)(data,opts)}function parse_ws(data,name,opts,rels){return(name.substr(-4)===".bin"?parse_ws_bin:parse_ws_xml)(data,opts,rels)}function parse_sty(data,name,opts){return(name.substr(-4)===".bin"?parse_sty_bin:parse_sty_xml)(data,opts)}function parse_theme(data,name,opts){return parse_theme_xml(data,opts)}function parse_sst(data,name,opts){return(name.substr(-4)===".bin"?parse_sst_bin:parse_sst_xml)(data,opts)}function parse_cmnt(data,name,opts){return(name.substr(-4)===".bin"?parse_comments_bin:parse_comments_xml)(data,opts)}function parse_cc(data,name,opts){return(name.substr(-4)===".bin"?parse_cc_bin:parse_cc_xml)(data,opts)}function write_wb(wb,name,opts){return(name.substr(-4)===".bin"?write_wb_bin:write_wb_xml)(wb,opts)}function write_ws(data,name,opts,wb){return(name.substr(-4)===".bin"?write_ws_bin:write_ws_xml)(data,opts,wb)}function write_sty(data,name,opts){return(name.substr(-4)===".bin"?write_sty_bin:write_sty_xml)(data,opts)}function write_sst(data,name,opts){return(name.substr(-4)===".bin"?write_sst_bin:write_sst_xml)(data,opts)}var RecordEnum={0:{n:"BrtRowHdr",f:parse_BrtRowHdr},1:{n:"BrtCellBlank",f:parse_BrtCellBlank},2:{n:"BrtCellRk",f:parse_BrtCellRk},3:{n:"BrtCellError",f:parse_BrtCellError},4:{n:"BrtCellBool",f:parse_BrtCellBool},5:{n:"BrtCellReal",f:parse_BrtCellReal},6:{n:"BrtCellSt",f:parse_BrtCellSt},7:{n:"BrtCellIsst",f:parse_BrtCellIsst},8:{n:"BrtFmlaString",f:parse_BrtFmlaString},9:{n:"BrtFmlaNum",f:parse_BrtFmlaNum},10:{n:"BrtFmlaBool",f:parse_BrtFmlaBool},11:{n:"BrtFmlaError",f:parse_BrtFmlaError},16:{n:"BrtFRTArchID$",f:parse_BrtFRTArchID$},19:{n:"BrtSSTItem",f:parse_RichStr},20:{n:"BrtPCDIMissing",f:parsenoop},21:{n:"BrtPCDINumber",f:parsenoop},22:{n:"BrtPCDIBoolean",f:parsenoop},23:{n:"BrtPCDIError",f:parsenoop},24:{n:"BrtPCDIString",f:parsenoop},25:{n:"BrtPCDIDatetime",f:parsenoop},26:{n:"BrtPCDIIndex",f:parsenoop},27:{n:"BrtPCDIAMissing",f:parsenoop},28:{n:"BrtPCDIANumber",f:parsenoop},29:{n:"BrtPCDIABoolean",f:parsenoop},30:{n:"BrtPCDIAError",f:parsenoop},31:{n:"BrtPCDIAString",f:parsenoop},32:{n:"BrtPCDIADatetime",f:parsenoop},33:{n:"BrtPCRRecord",f:parsenoop},34:{n:"BrtPCRRecordDt",f:parsenoop},35:{n:"BrtFRTBegin",f:parsenoop},36:{n:"BrtFRTEnd",f:parsenoop},37:{n:"BrtACBegin",f:parsenoop},38:{n:"BrtACEnd",f:parsenoop},39:{n:"BrtName",f:parsenoop},40:{n:"BrtIndexRowBlock",f:parsenoop},42:{n:"BrtIndexBlock",f:parsenoop},43:{n:"BrtFont",f:parse_BrtFont},44:{n:"BrtFmt",f:parse_BrtFmt},45:{n:"BrtFill",f:parsenoop},46:{n:"BrtBorder",f:parsenoop},47:{n:"BrtXF",f:parse_BrtXF},48:{n:"BrtStyle",f:parsenoop},49:{n:"BrtCellMeta",f:parsenoop},50:{n:"BrtValueMeta",f:parsenoop},51:{n:"BrtMdb",f:parsenoop},52:{n:"BrtBeginFmd",f:parsenoop},53:{n:"BrtEndFmd",f:parsenoop},54:{n:"BrtBeginMdx",f:parsenoop},55:{n:"BrtEndMdx",f:parsenoop},56:{n:"BrtBeginMdxTuple",f:parsenoop},57:{n:"BrtEndMdxTuple",f:parsenoop},58:{n:"BrtMdxMbrIstr",f:parsenoop},59:{n:"BrtStr",f:parsenoop},60:{n:"BrtColInfo",f:parsenoop},62:{n:"BrtCellRString",f:parsenoop},63:{n:"BrtCalcChainItem$",f:parse_BrtCalcChainItem$},64:{n:"BrtDVal",f:parsenoop},65:{n:"BrtSxvcellNum",f:parsenoop},66:{n:"BrtSxvcellStr",f:parsenoop},67:{n:"BrtSxvcellBool",f:parsenoop},68:{n:"BrtSxvcellErr",f:parsenoop},69:{n:"BrtSxvcellDate",f:parsenoop},70:{n:"BrtSxvcellNil",f:parsenoop},128:{n:"BrtFileVersion",f:parsenoop},129:{n:"BrtBeginSheet",f:parsenoop},130:{n:"BrtEndSheet",f:parsenoop},131:{n:"BrtBeginBook",f:parsenoop,p:0},132:{n:"BrtEndBook",f:parsenoop},133:{n:"BrtBeginWsViews",f:parsenoop},134:{n:"BrtEndWsViews",f:parsenoop},135:{n:"BrtBeginBookViews",f:parsenoop},136:{n:"BrtEndBookViews",f:parsenoop},137:{n:"BrtBeginWsView",f:parsenoop},138:{n:"BrtEndWsView",f:parsenoop},139:{n:"BrtBeginCsViews",f:parsenoop},140:{n:"BrtEndCsViews",f:parsenoop},141:{n:"BrtBeginCsView",f:parsenoop},142:{n:"BrtEndCsView",f:parsenoop},143:{n:"BrtBeginBundleShs",f:parsenoop},144:{n:"BrtEndBundleShs",f:parsenoop},145:{n:"BrtBeginSheetData",f:parsenoop},146:{n:"BrtEndSheetData",f:parsenoop},147:{n:"BrtWsProp",f:parse_BrtWsProp},148:{n:"BrtWsDim",f:parse_BrtWsDim,p:16},151:{n:"BrtPane",f:parsenoop},152:{n:"BrtSel",f:parsenoop},153:{n:"BrtWbProp",f:parse_BrtWbProp},154:{n:"BrtWbFactoid",f:parsenoop},155:{n:"BrtFileRecover",f:parsenoop},156:{n:"BrtBundleSh",f:parse_BrtBundleSh},157:{n:"BrtCalcProp",f:parsenoop},158:{n:"BrtBookView",f:parsenoop},159:{n:"BrtBeginSst",f:parse_BrtBeginSst},160:{n:"BrtEndSst",f:parsenoop},161:{n:"BrtBeginAFilter",f:parsenoop},162:{n:"BrtEndAFilter",f:parsenoop},163:{n:"BrtBeginFilterColumn",f:parsenoop},164:{n:"BrtEndFilterColumn",f:parsenoop},165:{n:"BrtBeginFilters",f:parsenoop},166:{n:"BrtEndFilters",f:parsenoop},167:{n:"BrtFilter",f:parsenoop},168:{n:"BrtColorFilter",f:parsenoop},169:{n:"BrtIconFilter",f:parsenoop},170:{n:"BrtTop10Filter",f:parsenoop},171:{n:"BrtDynamicFilter",f:parsenoop},172:{n:"BrtBeginCustomFilters",f:parsenoop},173:{n:"BrtEndCustomFilters",f:parsenoop},174:{n:"BrtCustomFilter",f:parsenoop},175:{n:"BrtAFilterDateGroupItem",f:parsenoop},176:{n:"BrtMergeCell",f:parse_BrtMergeCell},177:{n:"BrtBeginMergeCells",f:parsenoop},178:{n:"BrtEndMergeCells",f:parsenoop},179:{n:"BrtBeginPivotCacheDef",f:parsenoop},180:{n:"BrtEndPivotCacheDef",f:parsenoop},181:{n:"BrtBeginPCDFields",f:parsenoop},182:{n:"BrtEndPCDFields",f:parsenoop},183:{n:"BrtBeginPCDField",f:parsenoop},184:{n:"BrtEndPCDField",f:parsenoop},185:{n:"BrtBeginPCDSource",f:parsenoop},186:{n:"BrtEndPCDSource",f:parsenoop},187:{n:"BrtBeginPCDSRange",f:parsenoop},188:{n:"BrtEndPCDSRange",f:parsenoop},189:{n:"BrtBeginPCDFAtbl",f:parsenoop},190:{n:"BrtEndPCDFAtbl",f:parsenoop},191:{n:"BrtBeginPCDIRun",f:parsenoop},192:{n:"BrtEndPCDIRun",f:parsenoop},193:{n:"BrtBeginPivotCacheRecords",f:parsenoop},194:{n:"BrtEndPivotCacheRecords",f:parsenoop},195:{n:"BrtBeginPCDHierarchies",f:parsenoop},196:{n:"BrtEndPCDHierarchies",f:parsenoop},197:{n:"BrtBeginPCDHierarchy",f:parsenoop},198:{n:"BrtEndPCDHierarchy",f:parsenoop},199:{n:"BrtBeginPCDHFieldsUsage",f:parsenoop},200:{n:"BrtEndPCDHFieldsUsage",f:parsenoop},201:{n:"BrtBeginExtConnection",f:parsenoop},202:{n:"BrtEndExtConnection",f:parsenoop},203:{n:"BrtBeginECDbProps",f:parsenoop},204:{n:"BrtEndECDbProps",f:parsenoop},205:{n:"BrtBeginECOlapProps",f:parsenoop},206:{n:"BrtEndECOlapProps",f:parsenoop},207:{n:"BrtBeginPCDSConsol",f:parsenoop},208:{n:"BrtEndPCDSConsol",f:parsenoop},209:{n:"BrtBeginPCDSCPages",f:parsenoop},210:{n:"BrtEndPCDSCPages",f:parsenoop},211:{n:"BrtBeginPCDSCPage",f:parsenoop},212:{n:"BrtEndPCDSCPage",f:parsenoop},213:{n:"BrtBeginPCDSCPItem",f:parsenoop},214:{n:"BrtEndPCDSCPItem",f:parsenoop},215:{n:"BrtBeginPCDSCSets",f:parsenoop},216:{n:"BrtEndPCDSCSets",f:parsenoop},217:{n:"BrtBeginPCDSCSet",f:parsenoop},218:{n:"BrtEndPCDSCSet",f:parsenoop},219:{n:"BrtBeginPCDFGroup",f:parsenoop},220:{n:"BrtEndPCDFGroup",f:parsenoop},221:{n:"BrtBeginPCDFGItems",f:parsenoop},222:{n:"BrtEndPCDFGItems",f:parsenoop},223:{n:"BrtBeginPCDFGRange",f:parsenoop},224:{n:"BrtEndPCDFGRange",f:parsenoop},225:{n:"BrtBeginPCDFGDiscrete",f:parsenoop},226:{n:"BrtEndPCDFGDiscrete",f:parsenoop},227:{n:"BrtBeginPCDSDTupleCache",f:parsenoop},228:{n:"BrtEndPCDSDTupleCache",f:parsenoop},229:{n:"BrtBeginPCDSDTCEntries",f:parsenoop},230:{n:"BrtEndPCDSDTCEntries",f:parsenoop},231:{n:"BrtBeginPCDSDTCEMembers",f:parsenoop},232:{n:"BrtEndPCDSDTCEMembers",f:parsenoop},233:{n:"BrtBeginPCDSDTCEMember",f:parsenoop},234:{n:"BrtEndPCDSDTCEMember",f:parsenoop},235:{n:"BrtBeginPCDSDTCQueries",f:parsenoop},236:{n:"BrtEndPCDSDTCQueries",f:parsenoop},237:{n:"BrtBeginPCDSDTCQuery",f:parsenoop},238:{n:"BrtEndPCDSDTCQuery",f:parsenoop},239:{n:"BrtBeginPCDSDTCSets",f:parsenoop},240:{n:"BrtEndPCDSDTCSets",f:parsenoop},241:{n:"BrtBeginPCDSDTCSet",f:parsenoop},242:{n:"BrtEndPCDSDTCSet",f:parsenoop},243:{n:"BrtBeginPCDCalcItems",f:parsenoop},244:{n:"BrtEndPCDCalcItems",f:parsenoop},245:{n:"BrtBeginPCDCalcItem",f:parsenoop},246:{n:"BrtEndPCDCalcItem",f:parsenoop},247:{n:"BrtBeginPRule",f:parsenoop},248:{n:"BrtEndPRule",f:parsenoop},249:{n:"BrtBeginPRFilters",f:parsenoop},250:{n:"BrtEndPRFilters",f:parsenoop},251:{n:"BrtBeginPRFilter",f:parsenoop},252:{n:"BrtEndPRFilter",f:parsenoop},253:{n:"BrtBeginPNames",f:parsenoop},254:{n:"BrtEndPNames",f:parsenoop},255:{n:"BrtBeginPName",f:parsenoop},256:{n:"BrtEndPName",f:parsenoop},257:{n:"BrtBeginPNPairs",f:parsenoop},258:{n:"BrtEndPNPairs",f:parsenoop},259:{n:"BrtBeginPNPair",f:parsenoop},260:{n:"BrtEndPNPair",f:parsenoop},261:{n:"BrtBeginECWebProps",f:parsenoop},262:{n:"BrtEndECWebProps",f:parsenoop},263:{n:"BrtBeginEcWpTables",f:parsenoop},264:{n:"BrtEndECWPTables",f:parsenoop},265:{n:"BrtBeginECParams",f:parsenoop},266:{n:"BrtEndECParams",f:parsenoop},267:{n:"BrtBeginECParam",f:parsenoop},268:{n:"BrtEndECParam",f:parsenoop},269:{n:"BrtBeginPCDKPIs",f:parsenoop},270:{n:"BrtEndPCDKPIs",f:parsenoop},271:{n:"BrtBeginPCDKPI",f:parsenoop},272:{n:"BrtEndPCDKPI",f:parsenoop},273:{n:"BrtBeginDims",f:parsenoop},274:{n:"BrtEndDims",f:parsenoop},275:{n:"BrtBeginDim",f:parsenoop},276:{n:"BrtEndDim",f:parsenoop},277:{n:"BrtIndexPartEnd",f:parsenoop},278:{n:"BrtBeginStyleSheet",f:parsenoop},279:{n:"BrtEndStyleSheet",f:parsenoop},280:{n:"BrtBeginSXView",f:parsenoop},281:{n:"BrtEndSXVI",f:parsenoop},282:{n:"BrtBeginSXVI",f:parsenoop},283:{n:"BrtBeginSXVIs",f:parsenoop},284:{n:"BrtEndSXVIs",f:parsenoop},285:{n:"BrtBeginSXVD",f:parsenoop},286:{n:"BrtEndSXVD",f:parsenoop},287:{n:"BrtBeginSXVDs",f:parsenoop},288:{n:"BrtEndSXVDs",f:parsenoop},289:{n:"BrtBeginSXPI",f:parsenoop},290:{n:"BrtEndSXPI",f:parsenoop},291:{n:"BrtBeginSXPIs",f:parsenoop},292:{n:"BrtEndSXPIs",f:parsenoop},293:{n:"BrtBeginSXDI",f:parsenoop},294:{n:"BrtEndSXDI",f:parsenoop},295:{n:"BrtBeginSXDIs",f:parsenoop},296:{n:"BrtEndSXDIs",f:parsenoop},297:{n:"BrtBeginSXLI",f:parsenoop},298:{n:"BrtEndSXLI",f:parsenoop},299:{n:"BrtBeginSXLIRws",f:parsenoop},300:{n:"BrtEndSXLIRws",f:parsenoop},301:{n:"BrtBeginSXLICols",f:parsenoop},302:{n:"BrtEndSXLICols",f:parsenoop},303:{n:"BrtBeginSXFormat",f:parsenoop},304:{n:"BrtEndSXFormat",f:parsenoop},305:{n:"BrtBeginSXFormats",f:parsenoop},306:{n:"BrtEndSxFormats",f:parsenoop},307:{n:"BrtBeginSxSelect",f:parsenoop},308:{n:"BrtEndSxSelect",f:parsenoop},309:{n:"BrtBeginISXVDRws",f:parsenoop},310:{n:"BrtEndISXVDRws",f:parsenoop},311:{n:"BrtBeginISXVDCols",f:parsenoop},312:{n:"BrtEndISXVDCols",f:parsenoop},313:{n:"BrtEndSXLocation",f:parsenoop},314:{n:"BrtBeginSXLocation",f:parsenoop},315:{n:"BrtEndSXView",f:parsenoop},316:{n:"BrtBeginSXTHs",f:parsenoop},317:{n:"BrtEndSXTHs",f:parsenoop},318:{n:"BrtBeginSXTH",f:parsenoop},319:{n:"BrtEndSXTH",f:parsenoop},320:{n:"BrtBeginISXTHRws",f:parsenoop},321:{n:"BrtEndISXTHRws",f:parsenoop},322:{n:"BrtBeginISXTHCols",f:parsenoop},323:{n:"BrtEndISXTHCols",f:parsenoop},324:{n:"BrtBeginSXTDMPS",f:parsenoop},325:{n:"BrtEndSXTDMPs",f:parsenoop},326:{n:"BrtBeginSXTDMP",f:parsenoop},327:{n:"BrtEndSXTDMP",f:parsenoop},328:{n:"BrtBeginSXTHItems",f:parsenoop},329:{n:"BrtEndSXTHItems",f:parsenoop},330:{n:"BrtBeginSXTHItem",f:parsenoop},331:{n:"BrtEndSXTHItem",f:parsenoop},332:{n:"BrtBeginMetadata",f:parsenoop},333:{n:"BrtEndMetadata",f:parsenoop},334:{n:"BrtBeginEsmdtinfo",f:parsenoop},335:{n:"BrtMdtinfo",f:parsenoop},336:{n:"BrtEndEsmdtinfo",f:parsenoop},337:{n:"BrtBeginEsmdb",f:parsenoop},338:{n:"BrtEndEsmdb",f:parsenoop},339:{n:"BrtBeginEsfmd",f:parsenoop},340:{n:"BrtEndEsfmd",f:parsenoop},341:{n:"BrtBeginSingleCells",f:parsenoop},342:{n:"BrtEndSingleCells",f:parsenoop},343:{n:"BrtBeginList",f:parsenoop},344:{n:"BrtEndList",f:parsenoop},345:{n:"BrtBeginListCols",f:parsenoop},346:{n:"BrtEndListCols",f:parsenoop},347:{n:"BrtBeginListCol",f:parsenoop},348:{n:"BrtEndListCol",f:parsenoop},349:{n:"BrtBeginListXmlCPr",f:parsenoop},350:{n:"BrtEndListXmlCPr",f:parsenoop},351:{n:"BrtListCCFmla",f:parsenoop},352:{n:"BrtListTrFmla",f:parsenoop},353:{n:"BrtBeginExternals",f:parsenoop},354:{n:"BrtEndExternals",f:parsenoop},355:{n:"BrtSupBookSrc",f:parsenoop},357:{n:"BrtSupSelf",f:parsenoop},358:{n:"BrtSupSame",f:parsenoop},359:{n:"BrtSupTabs",f:parsenoop},360:{n:"BrtBeginSupBook",f:parsenoop},361:{n:"BrtPlaceholderName",f:parsenoop},362:{n:"BrtExternSheet",f:parsenoop},363:{n:"BrtExternTableStart",f:parsenoop},364:{n:"BrtExternTableEnd",f:parsenoop},366:{n:"BrtExternRowHdr",f:parsenoop},367:{n:"BrtExternCellBlank",f:parsenoop},368:{n:"BrtExternCellReal",f:parsenoop},369:{n:"BrtExternCellBool",f:parsenoop},370:{n:"BrtExternCellError",f:parsenoop},371:{n:"BrtExternCellString",f:parsenoop},372:{n:"BrtBeginEsmdx",f:parsenoop},373:{n:"BrtEndEsmdx",f:parsenoop},374:{n:"BrtBeginMdxSet",f:parsenoop},375:{n:"BrtEndMdxSet",f:parsenoop},376:{n:"BrtBeginMdxMbrProp",f:parsenoop},377:{n:"BrtEndMdxMbrProp",f:parsenoop},378:{n:"BrtBeginMdxKPI",f:parsenoop},379:{n:"BrtEndMdxKPI",f:parsenoop},380:{n:"BrtBeginEsstr",f:parsenoop},381:{n:"BrtEndEsstr",f:parsenoop},382:{n:"BrtBeginPRFItem",f:parsenoop},383:{n:"BrtEndPRFItem",f:parsenoop},384:{n:"BrtBeginPivotCacheIDs",f:parsenoop},385:{n:"BrtEndPivotCacheIDs",f:parsenoop},386:{n:"BrtBeginPivotCacheID",f:parsenoop},387:{n:"BrtEndPivotCacheID",f:parsenoop},388:{n:"BrtBeginISXVIs",f:parsenoop},389:{n:"BrtEndISXVIs",f:parsenoop},390:{n:"BrtBeginColInfos",f:parsenoop},391:{n:"BrtEndColInfos",f:parsenoop},392:{n:"BrtBeginRwBrk",f:parsenoop},393:{n:"BrtEndRwBrk",f:parsenoop},394:{n:"BrtBeginColBrk",f:parsenoop},395:{n:"BrtEndColBrk",f:parsenoop},396:{n:"BrtBrk",f:parsenoop},397:{n:"BrtUserBookView",f:parsenoop},398:{n:"BrtInfo",f:parsenoop},399:{n:"BrtCUsr",f:parsenoop},400:{n:"BrtUsr",f:parsenoop},401:{n:"BrtBeginUsers",f:parsenoop},403:{n:"BrtEOF",f:parsenoop},404:{n:"BrtUCR",f:parsenoop},405:{n:"BrtRRInsDel",f:parsenoop},406:{n:"BrtRREndInsDel",f:parsenoop},407:{n:"BrtRRMove",f:parsenoop},408:{n:"BrtRREndMove",f:parsenoop},409:{n:"BrtRRChgCell",f:parsenoop},410:{n:"BrtRREndChgCell",f:parsenoop},411:{n:"BrtRRHeader",f:parsenoop},412:{n:"BrtRRUserView",f:parsenoop},413:{n:"BrtRRRenSheet",f:parsenoop},414:{n:"BrtRRInsertSh",f:parsenoop},415:{n:"BrtRRDefName",f:parsenoop},416:{n:"BrtRRNote",f:parsenoop},417:{n:"BrtRRConflict",f:parsenoop},418:{n:"BrtRRTQSIF",f:parsenoop},419:{n:"BrtRRFormat",f:parsenoop},420:{n:"BrtRREndFormat",f:parsenoop},421:{n:"BrtRRAutoFmt",f:parsenoop},422:{n:"BrtBeginUserShViews",f:parsenoop},423:{n:"BrtBeginUserShView",f:parsenoop},424:{n:"BrtEndUserShView",f:parsenoop},425:{n:"BrtEndUserShViews",f:parsenoop},426:{n:"BrtArrFmla",f:parsenoop},427:{n:"BrtShrFmla",f:parsenoop},428:{n:"BrtTable",f:parsenoop},429:{n:"BrtBeginExtConnections",f:parsenoop},430:{n:"BrtEndExtConnections",f:parsenoop},431:{n:"BrtBeginPCDCalcMems",f:parsenoop},432:{n:"BrtEndPCDCalcMems",f:parsenoop},433:{n:"BrtBeginPCDCalcMem",f:parsenoop},434:{n:"BrtEndPCDCalcMem",f:parsenoop},435:{n:"BrtBeginPCDHGLevels",f:parsenoop},436:{n:"BrtEndPCDHGLevels",f:parsenoop},437:{n:"BrtBeginPCDHGLevel",f:parsenoop},438:{n:"BrtEndPCDHGLevel",f:parsenoop},439:{n:"BrtBeginPCDHGLGroups",f:parsenoop},440:{n:"BrtEndPCDHGLGroups",f:parsenoop},441:{n:"BrtBeginPCDHGLGroup",f:parsenoop},442:{n:"BrtEndPCDHGLGroup",f:parsenoop},443:{n:"BrtBeginPCDHGLGMembers",f:parsenoop},444:{n:"BrtEndPCDHGLGMembers",f:parsenoop},445:{n:"BrtBeginPCDHGLGMember",f:parsenoop},446:{n:"BrtEndPCDHGLGMember",f:parsenoop},447:{n:"BrtBeginQSI",f:parsenoop},448:{n:"BrtEndQSI",f:parsenoop},449:{n:"BrtBeginQSIR",f:parsenoop},450:{n:"BrtEndQSIR",f:parsenoop},451:{n:"BrtBeginDeletedNames",f:parsenoop},452:{n:"BrtEndDeletedNames",f:parsenoop},453:{n:"BrtBeginDeletedName",f:parsenoop},454:{n:"BrtEndDeletedName",f:parsenoop},455:{n:"BrtBeginQSIFs",f:parsenoop},456:{n:"BrtEndQSIFs",f:parsenoop},457:{n:"BrtBeginQSIF",f:parsenoop},458:{n:"BrtEndQSIF",f:parsenoop},459:{n:"BrtBeginAutoSortScope",f:parsenoop},460:{n:"BrtEndAutoSortScope",f:parsenoop},461:{n:"BrtBeginConditionalFormatting",f:parsenoop},462:{n:"BrtEndConditionalFormatting",f:parsenoop},463:{n:"BrtBeginCFRule",f:parsenoop},464:{n:"BrtEndCFRule",f:parsenoop},465:{n:"BrtBeginIconSet",f:parsenoop},466:{n:"BrtEndIconSet",f:parsenoop},467:{n:"BrtBeginDatabar",f:parsenoop},468:{n:"BrtEndDatabar",f:parsenoop},469:{n:"BrtBeginColorScale",f:parsenoop},470:{n:"BrtEndColorScale",f:parsenoop},471:{n:"BrtCFVO",f:parsenoop},472:{n:"BrtExternValueMeta",f:parsenoop},473:{n:"BrtBeginColorPalette",f:parsenoop},474:{n:"BrtEndColorPalette",f:parsenoop},475:{n:"BrtIndexedColor",f:parsenoop},476:{n:"BrtMargins",f:parsenoop},477:{n:"BrtPrintOptions",f:parsenoop},478:{n:"BrtPageSetup",f:parsenoop},479:{n:"BrtBeginHeaderFooter",f:parsenoop},480:{n:"BrtEndHeaderFooter",f:parsenoop},481:{n:"BrtBeginSXCrtFormat",f:parsenoop},482:{n:"BrtEndSXCrtFormat",f:parsenoop},483:{n:"BrtBeginSXCrtFormats",f:parsenoop},484:{n:"BrtEndSXCrtFormats",f:parsenoop},485:{n:"BrtWsFmtInfo",f:parsenoop},486:{n:"BrtBeginMgs",f:parsenoop},487:{n:"BrtEndMGs",f:parsenoop},488:{n:"BrtBeginMGMaps",f:parsenoop},489:{n:"BrtEndMGMaps",f:parsenoop},490:{n:"BrtBeginMG",f:parsenoop},491:{n:"BrtEndMG",f:parsenoop},492:{n:"BrtBeginMap",f:parsenoop},493:{n:"BrtEndMap",f:parsenoop},494:{n:"BrtHLink",f:parse_BrtHLink},495:{n:"BrtBeginDCon",f:parsenoop},496:{n:"BrtEndDCon",f:parsenoop},497:{n:"BrtBeginDRefs",f:parsenoop},498:{n:"BrtEndDRefs",f:parsenoop},499:{n:"BrtDRef",f:parsenoop},500:{n:"BrtBeginScenMan",f:parsenoop},501:{n:"BrtEndScenMan",f:parsenoop},502:{n:"BrtBeginSct",f:parsenoop},503:{n:"BrtEndSct",f:parsenoop},504:{n:"BrtSlc",f:parsenoop},505:{n:"BrtBeginDXFs",f:parsenoop},506:{n:"BrtEndDXFs",f:parsenoop},507:{n:"BrtDXF",f:parsenoop},508:{n:"BrtBeginTableStyles",f:parsenoop},509:{n:"BrtEndTableStyles",f:parsenoop},510:{n:"BrtBeginTableStyle",f:parsenoop},511:{n:"BrtEndTableStyle",f:parsenoop},512:{n:"BrtTableStyleElement",f:parsenoop},513:{n:"BrtTableStyleClient",f:parsenoop},514:{n:"BrtBeginVolDeps",f:parsenoop},515:{n:"BrtEndVolDeps",f:parsenoop},516:{n:"BrtBeginVolType",f:parsenoop},517:{n:"BrtEndVolType",f:parsenoop},518:{n:"BrtBeginVolMain",f:parsenoop},519:{n:"BrtEndVolMain",f:parsenoop},520:{n:"BrtBeginVolTopic",f:parsenoop},521:{n:"BrtEndVolTopic",f:parsenoop},522:{n:"BrtVolSubtopic",f:parsenoop},523:{n:"BrtVolRef",f:parsenoop},524:{n:"BrtVolNum",f:parsenoop},525:{n:"BrtVolErr",f:parsenoop},526:{n:"BrtVolStr",f:parsenoop},527:{n:"BrtVolBool",f:parsenoop},528:{n:"BrtBeginCalcChain$",f:parsenoop},529:{n:"BrtEndCalcChain$",f:parsenoop},530:{n:"BrtBeginSortState",f:parsenoop},531:{n:"BrtEndSortState",f:parsenoop},532:{n:"BrtBeginSortCond",f:parsenoop},533:{n:"BrtEndSortCond",f:parsenoop},534:{n:"BrtBookProtection",f:parsenoop},535:{n:"BrtSheetProtection",f:parsenoop},536:{n:"BrtRangeProtection",f:parsenoop},537:{n:"BrtPhoneticInfo",f:parsenoop},538:{n:"BrtBeginECTxtWiz",f:parsenoop},539:{n:"BrtEndECTxtWiz",f:parsenoop},540:{n:"BrtBeginECTWFldInfoLst",f:parsenoop},541:{n:"BrtEndECTWFldInfoLst",f:parsenoop},542:{n:"BrtBeginECTwFldInfo",f:parsenoop},548:{n:"BrtFileSharing",f:parsenoop},549:{n:"BrtOleSize",f:parsenoop},550:{n:"BrtDrawing",f:parsenoop},551:{n:"BrtLegacyDrawing",f:parsenoop},552:{n:"BrtLegacyDrawingHF",f:parsenoop},553:{n:"BrtWebOpt",f:parsenoop},554:{n:"BrtBeginWebPubItems",f:parsenoop},555:{n:"BrtEndWebPubItems",f:parsenoop},556:{n:"BrtBeginWebPubItem",f:parsenoop},557:{n:"BrtEndWebPubItem",f:parsenoop},558:{n:"BrtBeginSXCondFmt",f:parsenoop},559:{n:"BrtEndSXCondFmt",f:parsenoop},560:{n:"BrtBeginSXCondFmts",f:parsenoop},561:{n:"BrtEndSXCondFmts",f:parsenoop},562:{n:"BrtBkHim",f:parsenoop},564:{n:"BrtColor",f:parsenoop},565:{n:"BrtBeginIndexedColors",f:parsenoop},566:{n:"BrtEndIndexedColors",f:parsenoop},569:{n:"BrtBeginMRUColors",f:parsenoop},570:{n:"BrtEndMRUColors",f:parsenoop},572:{n:"BrtMRUColor",f:parsenoop},573:{n:"BrtBeginDVals",f:parsenoop},574:{n:"BrtEndDVals",f:parsenoop},577:{n:"BrtSupNameStart",f:parsenoop},578:{n:"BrtSupNameValueStart",f:parsenoop},579:{n:"BrtSupNameValueEnd",f:parsenoop},580:{n:"BrtSupNameNum",f:parsenoop},581:{n:"BrtSupNameErr",f:parsenoop},582:{n:"BrtSupNameSt",f:parsenoop},583:{n:"BrtSupNameNil",f:parsenoop},584:{n:"BrtSupNameBool",f:parsenoop},585:{n:"BrtSupNameFmla",f:parsenoop},586:{n:"BrtSupNameBits",f:parsenoop},587:{n:"BrtSupNameEnd",f:parsenoop},588:{n:"BrtEndSupBook",f:parsenoop},589:{n:"BrtCellSmartTagProperty",f:parsenoop},590:{n:"BrtBeginCellSmartTag",f:parsenoop},591:{n:"BrtEndCellSmartTag",f:parsenoop},592:{n:"BrtBeginCellSmartTags",f:parsenoop},593:{n:"BrtEndCellSmartTags",f:parsenoop},594:{n:"BrtBeginSmartTags",f:parsenoop},595:{n:"BrtEndSmartTags",f:parsenoop},596:{n:"BrtSmartTagType",f:parsenoop},597:{n:"BrtBeginSmartTagTypes",f:parsenoop},598:{n:"BrtEndSmartTagTypes",f:parsenoop},599:{n:"BrtBeginSXFilters",f:parsenoop},600:{n:"BrtEndSXFilters",f:parsenoop},601:{n:"BrtBeginSXFILTER",f:parsenoop},602:{n:"BrtEndSXFilter",f:parsenoop},603:{n:"BrtBeginFills",f:parsenoop},604:{n:"BrtEndFills",f:parsenoop},605:{n:"BrtBeginCellWatches",f:parsenoop},606:{n:"BrtEndCellWatches",f:parsenoop},607:{n:"BrtCellWatch",f:parsenoop},608:{n:"BrtBeginCRErrs",f:parsenoop},609:{n:"BrtEndCRErrs",f:parsenoop},610:{n:"BrtCrashRecErr",f:parsenoop},611:{n:"BrtBeginFonts",f:parsenoop},612:{n:"BrtEndFonts",f:parsenoop},613:{n:"BrtBeginBorders",f:parsenoop},614:{n:"BrtEndBorders",f:parsenoop},615:{n:"BrtBeginFmts",f:parsenoop},616:{n:"BrtEndFmts",f:parsenoop},617:{n:"BrtBeginCellXFs",f:parsenoop},618:{n:"BrtEndCellXFs",f:parsenoop},619:{n:"BrtBeginStyles",f:parsenoop},620:{n:"BrtEndStyles",f:parsenoop},625:{n:"BrtBigName",f:parsenoop},626:{n:"BrtBeginCellStyleXFs",f:parsenoop},627:{n:"BrtEndCellStyleXFs",f:parsenoop},628:{n:"BrtBeginComments",f:parsenoop},629:{n:"BrtEndComments",f:parsenoop},630:{n:"BrtBeginCommentAuthors",f:parsenoop},631:{n:"BrtEndCommentAuthors",f:parsenoop},632:{n:"BrtCommentAuthor",f:parse_BrtCommentAuthor},633:{n:"BrtBeginCommentList",f:parsenoop},634:{n:"BrtEndCommentList",f:parsenoop},635:{n:"BrtBeginComment",f:parse_BrtBeginComment},636:{n:"BrtEndComment",f:parsenoop},637:{n:"BrtCommentText",f:parse_BrtCommentText},638:{n:"BrtBeginOleObjects",f:parsenoop},639:{n:"BrtOleObject",f:parsenoop},640:{n:"BrtEndOleObjects",f:parsenoop},641:{n:"BrtBeginSxrules",f:parsenoop},642:{n:"BrtEndSxRules",f:parsenoop},643:{n:"BrtBeginActiveXControls",f:parsenoop},644:{n:"BrtActiveX",f:parsenoop},645:{n:"BrtEndActiveXControls",f:parsenoop},646:{n:"BrtBeginPCDSDTCEMembersSortBy",f:parsenoop},648:{n:"BrtBeginCellIgnoreECs",f:parsenoop},649:{n:"BrtCellIgnoreEC",f:parsenoop},650:{n:"BrtEndCellIgnoreECs",f:parsenoop},651:{n:"BrtCsProp",f:parsenoop},652:{n:"BrtCsPageSetup",f:parsenoop},653:{n:"BrtBeginUserCsViews",f:parsenoop},654:{n:"BrtEndUserCsViews",f:parsenoop},655:{n:"BrtBeginUserCsView",f:parsenoop},656:{n:"BrtEndUserCsView",f:parsenoop},657:{n:"BrtBeginPcdSFCIEntries",f:parsenoop},658:{n:"BrtEndPCDSFCIEntries",f:parsenoop},659:{n:"BrtPCDSFCIEntry",f:parsenoop},660:{n:"BrtBeginListParts",f:parsenoop},661:{n:"BrtListPart",f:parsenoop},662:{n:"BrtEndListParts",f:parsenoop},663:{n:"BrtSheetCalcProp",f:parsenoop},664:{n:"BrtBeginFnGroup",f:parsenoop},665:{n:"BrtFnGroup",f:parsenoop},666:{n:"BrtEndFnGroup",f:parsenoop},667:{n:"BrtSupAddin",f:parsenoop},668:{n:"BrtSXTDMPOrder",f:parsenoop},669:{n:"BrtCsProtection",f:parsenoop},671:{n:"BrtBeginWsSortMap",f:parsenoop},672:{n:"BrtEndWsSortMap",f:parsenoop},673:{n:"BrtBeginRRSort",f:parsenoop},674:{n:"BrtEndRRSort",f:parsenoop},675:{n:"BrtRRSortItem",f:parsenoop},676:{n:"BrtFileSharingIso",f:parsenoop},677:{n:"BrtBookProtectionIso",f:parsenoop},678:{n:"BrtSheetProtectionIso",f:parsenoop},679:{n:"BrtCsProtectionIso",f:parsenoop},680:{n:"BrtRangeProtectionIso",f:parsenoop},1024:{n:"BrtRwDescent",f:parsenoop},1025:{n:"BrtKnownFonts",f:parsenoop},1026:{n:"BrtBeginSXTupleSet",f:parsenoop},1027:{n:"BrtEndSXTupleSet",f:parsenoop},1028:{n:"BrtBeginSXTupleSetHeader",f:parsenoop},1029:{n:"BrtEndSXTupleSetHeader",f:parsenoop},1030:{n:"BrtSXTupleSetHeaderItem",f:parsenoop},1031:{n:"BrtBeginSXTupleSetData",f:parsenoop},1032:{n:"BrtEndSXTupleSetData",f:parsenoop},1033:{n:"BrtBeginSXTupleSetRow",f:parsenoop},1034:{n:"BrtEndSXTupleSetRow",f:parsenoop},1035:{n:"BrtSXTupleSetRowItem",f:parsenoop},1036:{n:"BrtNameExt",f:parsenoop},1037:{n:"BrtPCDH14",f:parsenoop},1038:{n:"BrtBeginPCDCalcMem14",f:parsenoop},1039:{n:"BrtEndPCDCalcMem14",f:parsenoop},1040:{n:"BrtSXTH14",f:parsenoop},1041:{n:"BrtBeginSparklineGroup",f:parsenoop},1042:{n:"BrtEndSparklineGroup",f:parsenoop},1043:{n:"BrtSparkline",f:parsenoop},1044:{n:"BrtSXDI14",f:parsenoop},1045:{n:"BrtWsFmtInfoEx14",f:parsenoop},1046:{n:"BrtBeginConditionalFormatting14",f:parsenoop},1047:{n:"BrtEndConditionalFormatting14",f:parsenoop},1048:{n:"BrtBeginCFRule14",f:parsenoop},1049:{n:"BrtEndCFRule14",f:parsenoop},1050:{n:"BrtCFVO14",f:parsenoop},1051:{n:"BrtBeginDatabar14",f:parsenoop},1052:{n:"BrtBeginIconSet14",f:parsenoop},1053:{n:"BrtDVal14",f:parsenoop},1054:{n:"BrtBeginDVals14",f:parsenoop},1055:{n:"BrtColor14",f:parsenoop},1056:{n:"BrtBeginSparklines",f:parsenoop},1057:{n:"BrtEndSparklines",f:parsenoop},1058:{n:"BrtBeginSparklineGroups",f:parsenoop},1059:{n:"BrtEndSparklineGroups",f:parsenoop},1061:{n:"BrtSXVD14",f:parsenoop},1062:{n:"BrtBeginSxview14",f:parsenoop},1063:{n:"BrtEndSxview14",f:parsenoop},1066:{n:"BrtBeginPCD14",f:parsenoop},1067:{n:"BrtEndPCD14",f:parsenoop},1068:{n:"BrtBeginExtConn14",f:parsenoop},1069:{n:"BrtEndExtConn14",f:parsenoop},1070:{n:"BrtBeginSlicerCacheIDs",f:parsenoop},1071:{n:"BrtEndSlicerCacheIDs",f:parsenoop},1072:{n:"BrtBeginSlicerCacheID",f:parsenoop},1073:{n:"BrtEndSlicerCacheID",f:parsenoop},1075:{n:"BrtBeginSlicerCache",f:parsenoop},1076:{n:"BrtEndSlicerCache",f:parsenoop},1077:{n:"BrtBeginSlicerCacheDef",f:parsenoop},1078:{n:"BrtEndSlicerCacheDef",f:parsenoop},1079:{n:"BrtBeginSlicersEx",f:parsenoop},1080:{n:"BrtEndSlicersEx",f:parsenoop},1081:{n:"BrtBeginSlicerEx",f:parsenoop},1082:{n:"BrtEndSlicerEx",f:parsenoop},1083:{n:"BrtBeginSlicer",f:parsenoop},1084:{n:"BrtEndSlicer",f:parsenoop},1085:{n:"BrtSlicerCachePivotTables",f:parsenoop},1086:{n:"BrtBeginSlicerCacheOlapImpl",f:parsenoop},1087:{n:"BrtEndSlicerCacheOlapImpl",f:parsenoop},1088:{n:"BrtBeginSlicerCacheLevelsData",f:parsenoop},1089:{n:"BrtEndSlicerCacheLevelsData",f:parsenoop},1090:{n:"BrtBeginSlicerCacheLevelData",f:parsenoop},1091:{n:"BrtEndSlicerCacheLevelData",f:parsenoop},1092:{n:"BrtBeginSlicerCacheSiRanges",f:parsenoop},1093:{n:"BrtEndSlicerCacheSiRanges",f:parsenoop},1094:{n:"BrtBeginSlicerCacheSiRange",f:parsenoop},1095:{n:"BrtEndSlicerCacheSiRange",f:parsenoop},1096:{n:"BrtSlicerCacheOlapItem",f:parsenoop},1097:{n:"BrtBeginSlicerCacheSelections",f:parsenoop},1098:{n:"BrtSlicerCacheSelection",f:parsenoop},1099:{n:"BrtEndSlicerCacheSelections",f:parsenoop},1100:{n:"BrtBeginSlicerCacheNative",f:parsenoop},1101:{n:"BrtEndSlicerCacheNative",f:parsenoop},1102:{n:"BrtSlicerCacheNativeItem",f:parsenoop},1103:{n:"BrtRangeProtection14",f:parsenoop},1104:{n:"BrtRangeProtectionIso14",f:parsenoop},1105:{n:"BrtCellIgnoreEC14",f:parsenoop},1111:{n:"BrtList14",f:parsenoop},1112:{n:"BrtCFIcon",f:parsenoop},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs",f:parsenoop},1114:{n:"BrtEndSlicerCachesPivotCacheIDs",f:parsenoop},1115:{n:"BrtBeginSlicers",f:parsenoop},1116:{n:"BrtEndSlicers",f:parsenoop},1117:{n:"BrtWbProp14",f:parsenoop},1118:{n:"BrtBeginSXEdit",f:parsenoop},1119:{n:"BrtEndSXEdit",f:parsenoop},1120:{n:"BrtBeginSXEdits",f:parsenoop},1121:{n:"BrtEndSXEdits",f:parsenoop},1122:{n:"BrtBeginSXChange",f:parsenoop},1123:{n:"BrtEndSXChange",f:parsenoop},1124:{n:"BrtBeginSXChanges",f:parsenoop},1125:{n:"BrtEndSXChanges",f:parsenoop},1126:{n:"BrtSXTupleItems",f:parsenoop},1128:{n:"BrtBeginSlicerStyle",f:parsenoop},1129:{n:"BrtEndSlicerStyle",f:parsenoop},1130:{n:"BrtSlicerStyleElement",f:parsenoop},1131:{n:"BrtBeginStyleSheetExt14",f:parsenoop},1132:{n:"BrtEndStyleSheetExt14",f:parsenoop},1133:{n:"BrtBeginSlicerCachesPivotCacheID",f:parsenoop},1134:{n:"BrtEndSlicerCachesPivotCacheID",f:parsenoop},1135:{n:"BrtBeginConditionalFormattings",f:parsenoop},1136:{n:"BrtEndConditionalFormattings",f:parsenoop},1137:{n:"BrtBeginPCDCalcMemExt",f:parsenoop},1138:{n:"BrtEndPCDCalcMemExt",f:parsenoop},1139:{n:"BrtBeginPCDCalcMemsExt",f:parsenoop},1140:{n:"BrtEndPCDCalcMemsExt",f:parsenoop},1141:{n:"BrtPCDField14",f:parsenoop},1142:{n:"BrtBeginSlicerStyles",f:parsenoop},1143:{n:"BrtEndSlicerStyles",f:parsenoop},1144:{n:"BrtBeginSlicerStyleElements",f:parsenoop},1145:{n:"BrtEndSlicerStyleElements",f:parsenoop},1146:{n:"BrtCFRuleExt",f:parsenoop},1147:{n:"BrtBeginSXCondFmt14",f:parsenoop},1148:{n:"BrtEndSXCondFmt14",f:parsenoop},1149:{n:"BrtBeginSXCondFmts14",f:parsenoop},1150:{n:"BrtEndSXCondFmts14",f:parsenoop},1152:{n:"BrtBeginSortCond14",f:parsenoop},1153:{n:"BrtEndSortCond14",f:parsenoop},1154:{n:"BrtEndDVals14",f:parsenoop},1155:{n:"BrtEndIconSet14",f:parsenoop},1156:{n:"BrtEndDatabar14",f:parsenoop},1157:{n:"BrtBeginColorScale14",f:parsenoop},1158:{n:"BrtEndColorScale14",f:parsenoop},1159:{n:"BrtBeginSxrules14",f:parsenoop},1160:{n:"BrtEndSxrules14",f:parsenoop},1161:{n:"BrtBeginPRule14",f:parsenoop},1162:{n:"BrtEndPRule14",f:parsenoop},1163:{n:"BrtBeginPRFilters14",f:parsenoop},1164:{n:"BrtEndPRFilters14",f:parsenoop},1165:{n:"BrtBeginPRFilter14",f:parsenoop},1166:{n:"BrtEndPRFilter14",f:parsenoop},1167:{n:"BrtBeginPRFItem14",f:parsenoop},1168:{n:"BrtEndPRFItem14",f:parsenoop},1169:{n:"BrtBeginCellIgnoreECs14",f:parsenoop},1170:{n:"BrtEndCellIgnoreECs14",f:parsenoop},1171:{n:"BrtDxf14",f:parsenoop},1172:{n:"BrtBeginDxF14s",f:parsenoop},1173:{n:"BrtEndDxf14s",f:parsenoop},1177:{n:"BrtFilter14",f:parsenoop},1178:{n:"BrtBeginCustomFilters14",f:parsenoop},1180:{n:"BrtCustomFilter14",f:parsenoop},1181:{n:"BrtIconFilter14",f:parsenoop},1182:{n:"BrtPivotCacheConnectionName",f:parsenoop},2048:{n:"BrtBeginDecoupledPivotCacheIDs",f:parsenoop},2049:{n:"BrtEndDecoupledPivotCacheIDs",f:parsenoop},2050:{n:"BrtDecoupledPivotCacheID",f:parsenoop},2051:{n:"BrtBeginPivotTableRefs",f:parsenoop},2052:{n:"BrtEndPivotTableRefs",f:parsenoop},2053:{n:"BrtPivotTableRef",f:parsenoop},2054:{n:"BrtSlicerCacheBookPivotTables",f:parsenoop},2055:{n:"BrtBeginSxvcells",f:parsenoop},2056:{n:"BrtEndSxvcells",f:parsenoop},2057:{n:"BrtBeginSxRow",f:parsenoop},2058:{n:"BrtEndSxRow",f:parsenoop},2060:{n:"BrtPcdCalcMem15",f:parsenoop},2067:{n:"BrtQsi15",f:parsenoop},2068:{n:"BrtBeginWebExtensions",f:parsenoop},2069:{n:"BrtEndWebExtensions",f:parsenoop},2070:{n:"BrtWebExtension",f:parsenoop},2071:{n:"BrtAbsPath15",f:parsenoop},2072:{n:"BrtBeginPivotTableUISettings",f:parsenoop},2073:{n:"BrtEndPivotTableUISettings",f:parsenoop},2075:{n:"BrtTableSlicerCacheIDs",f:parsenoop},2076:{n:"BrtTableSlicerCacheID",f:parsenoop},2077:{n:"BrtBeginTableSlicerCache",f:parsenoop},2078:{n:"BrtEndTableSlicerCache",f:parsenoop},2079:{n:"BrtSxFilter15",f:parsenoop},2080:{n:"BrtBeginTimelineCachePivotCacheIDs",f:parsenoop},2081:{n:"BrtEndTimelineCachePivotCacheIDs",f:parsenoop},2082:{n:"BrtTimelineCachePivotCacheID",f:parsenoop},2083:{n:"BrtBeginTimelineCacheIDs",f:parsenoop},2084:{n:"BrtEndTimelineCacheIDs",f:parsenoop},2085:{n:"BrtBeginTimelineCacheID",f:parsenoop},2086:{n:"BrtEndTimelineCacheID",f:parsenoop},2087:{n:"BrtBeginTimelinesEx",f:parsenoop},2088:{n:"BrtEndTimelinesEx",f:parsenoop},2089:{n:"BrtBeginTimelineEx",f:parsenoop},2090:{n:"BrtEndTimelineEx",f:parsenoop},2091:{n:"BrtWorkBookPr15",f:parsenoop},2092:{n:"BrtPCDH15",f:parsenoop},2093:{n:"BrtBeginTimelineStyle",f:parsenoop},2094:{n:"BrtEndTimelineStyle",f:parsenoop},2095:{n:"BrtTimelineStyleElement",f:parsenoop},2096:{n:"BrtBeginTimelineStylesheetExt15",f:parsenoop},2097:{n:"BrtEndTimelineStylesheetExt15",f:parsenoop},2098:{n:"BrtBeginTimelineStyles",f:parsenoop},2099:{n:"BrtEndTimelineStyles",f:parsenoop},2100:{n:"BrtBeginTimelineStyleElements",f:parsenoop},2101:{n:"BrtEndTimelineStyleElements",f:parsenoop},2102:{n:"BrtDxf15",f:parsenoop},2103:{n:"BrtBeginDxfs15",f:parsenoop},2104:{n:"brtEndDxfs15",f:parsenoop},2105:{n:"BrtSlicerCacheHideItemsWithNoData",f:parsenoop},2106:{n:"BrtBeginItemUniqueNames",f:parsenoop},2107:{n:"BrtEndItemUniqueNames",f:parsenoop},2108:{n:"BrtItemUniqueName",f:parsenoop},2109:{n:"BrtBeginExtConn15",f:parsenoop},2110:{n:"BrtEndExtConn15",f:parsenoop},2111:{n:"BrtBeginOledbPr15",f:parsenoop},2112:{n:"BrtEndOledbPr15",f:parsenoop},2113:{n:"BrtBeginDataFeedPr15",f:parsenoop},2114:{n:"BrtEndDataFeedPr15",f:parsenoop},2115:{n:"BrtTextPr15",f:parsenoop},2116:{n:"BrtRangePr15",f:parsenoop},2117:{n:"BrtDbCommand15",f:parsenoop},2118:{n:"BrtBeginDbTables15",f:parsenoop},2119:{n:"BrtEndDbTables15",f:parsenoop},2120:{n:"BrtDbTable15",f:parsenoop},2121:{n:"BrtBeginDataModel",f:parsenoop},2122:{n:"BrtEndDataModel",f:parsenoop},2123:{n:"BrtBeginModelTables",f:parsenoop},2124:{n:"BrtEndModelTables",f:parsenoop},2125:{n:"BrtModelTable",f:parsenoop},2126:{n:"BrtBeginModelRelationships",f:parsenoop},2127:{n:"BrtEndModelRelationships",f:parsenoop},2128:{n:"BrtModelRelationship",f:parsenoop},2129:{n:"BrtBeginECTxtWiz15",f:parsenoop},2130:{n:"BrtEndECTxtWiz15",f:parsenoop},2131:{n:"BrtBeginECTWFldInfoLst15",f:parsenoop},2132:{n:"BrtEndECTWFldInfoLst15",f:parsenoop},2133:{n:"BrtBeginECTWFldInfo15",f:parsenoop},2134:{n:"BrtFieldListActiveItem",f:parsenoop},2135:{n:"BrtPivotCacheIdVersion",f:parsenoop},2136:{n:"BrtSXDI15",f:parsenoop},65535:{n:"",f:parsenoop}}; -var evert_RE=evert_key(RecordEnum,"n");function parse_ods(zip,opts){if(typeof module!=="undefined"&&typeof require!=="undefined"&&typeof ODS==="undefined")ODS=require("./dist/od"+"s");if(typeof ODS==="undefined"||!ODS.parse_ods)throw new Error("Unsupported ODS");return ODS.parse_ods(zip,opts)}function fix_opts_func(defaults){return function fix_opts(opts){for(var i=0;i!=defaults.length;++i){var d=defaults[i];if(opts[d[0]]===undefined)opts[d[0]]=d[1];if(d[2]==="n")opts[d[0]]=Number(opts[d[0]])}}}var fix_read_opts=fix_opts_func([["cellNF",false],["cellHTML",true],["cellFormula",true],["cellStyles",false],["cellDates",false],["sheetStubs",false],["sheetRows",0,"n"],["bookDeps",false],["bookSheets",false],["bookProps",false],["bookFiles",false],["bookVBA",false],["WTF",false]]);var fix_write_opts=fix_opts_func([["cellDates",false],["bookSST",false],["bookType","xlsx"],["WTF",false]]);function safe_parse_wbrels(wbrels,sheets){if(!wbrels)return 0;try{wbrels=sheets.map(function pwbr(w){return[w.name,wbrels["!id"][w.id].Target]})}catch(e){return null}return!wbrels||wbrels.length===0?null:wbrels}function safe_parse_ws(zip,path,relsPath,sheet,sheetRels,sheets,opts){try{sheetRels[sheet]=parse_rels(getzipdata(zip,relsPath,true),path);sheets[sheet]=parse_ws(getzipdata(zip,path),path,opts,sheetRels[sheet])}catch(e){if(opts.WTF)throw e}}var nodirs=function nodirs(x){return x.substr(-1)!="/"};function parse_zip(zip,opts){make_ssf(SSF);opts=opts||{};fix_read_opts(opts);reset_cp();if(safegetzipfile(zip,"META-INF/manifest.xml"))return parse_ods(zip,opts);var entries=keys(zip.files).filter(nodirs).sort();var dir=parse_ct(getzipdata(zip,"[Content_Types].xml"),opts);var xlsb=false;var sheets,binname;if(dir.workbooks.length===0){binname="xl/workbook.xml";if(getzipdata(zip,binname,true))dir.workbooks.push(binname)}if(dir.workbooks.length===0){binname="xl/workbook.bin";if(!getzipfile(zip,binname,true))throw new Error("Could not find workbook");dir.workbooks.push(binname);xlsb=true}if(dir.workbooks[0].substr(-3)=="bin")xlsb=true;if(xlsb)set_cp(1200);if(!opts.bookSheets&&!opts.bookProps){strs=[];if(dir.sst)strs=parse_sst(getzipdata(zip,dir.sst.replace(/^\//,"")),dir.sst,opts);styles={};if(dir.style)styles=parse_sty(getzipdata(zip,dir.style.replace(/^\//,"")),dir.style,opts);themes={};if(opts.cellStyles&&dir.themes.length)themes=parse_theme(getzipdata(zip,dir.themes[0].replace(/^\//,""),true),dir.themes[0],opts)}var wb=parse_wb(getzipdata(zip,dir.workbooks[0].replace(/^\//,"")),dir.workbooks[0],opts);var props={},propdata="";if(dir.coreprops.length!==0){propdata=getzipdata(zip,dir.coreprops[0].replace(/^\//,""),true);if(propdata)props=parse_core_props(propdata);if(dir.extprops.length!==0){propdata=getzipdata(zip,dir.extprops[0].replace(/^\//,""),true);if(propdata)parse_ext_props(propdata,props)}}var custprops={};if(!opts.bookSheets||opts.bookProps){if(dir.custprops.length!==0){propdata=getzipdata(zip,dir.custprops[0].replace(/^\//,""),true);if(propdata)custprops=parse_cust_props(propdata,opts)}}var out={};if(opts.bookSheets||opts.bookProps){if(props.Worksheets&&props.SheetNames.length>0)sheets=props.SheetNames;else if(wb.Sheets)sheets=wb.Sheets.map(function pluck(x){return x.name});if(opts.bookProps){out.Props=props;out.Custprops=custprops}if(typeof sheets!=="undefined")out.SheetNames=sheets;if(opts.bookSheets?out.SheetNames:opts.bookProps)return out}sheets={};var deps={};if(opts.bookDeps&&dir.calcchain)deps=parse_cc(getzipdata(zip,dir.calcchain.replace(/^\//,"")),dir.calcchain,opts);var i=0;var sheetRels={};var path,relsPath;if(!props.Worksheets){var wbsheets=wb.Sheets;props.Worksheets=wbsheets.length;props.SheetNames=[];for(var j=0;j!=wbsheets.length;++j){props.SheetNames[j]=wbsheets[j].name}}var wbext=xlsb?"bin":"xml";var wbrelsfile="xl/_rels/workbook."+wbext+".rels";var wbrels=parse_rels(getzipdata(zip,wbrelsfile,true),wbrelsfile);if(wbrels)wbrels=safe_parse_wbrels(wbrels,wb.Sheets);var nmode=getzipdata(zip,"xl/worksheets/sheet.xml",true)?1:0;for(i=0;i!=props.Worksheets;++i){if(wbrels)path="xl/"+wbrels[i][1].replace(/[\/]?xl\//,"");else{path="xl/worksheets/sheet"+(i+1-nmode)+"."+wbext;path=path.replace(/sheet0\./,"sheet.")}relsPath=path.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");safe_parse_ws(zip,path,relsPath,props.SheetNames[i],sheetRels,sheets,opts)}if(dir.comments)parse_comments(zip,dir.comments,sheets,sheetRels,opts);out={Directory:dir,Workbook:wb,Props:props,Custprops:custprops,Deps:deps,Sheets:sheets,SheetNames:props.SheetNames,Strings:strs,Styles:styles,Themes:themes,SSF:SSF.get_table()};if(opts.bookFiles){out.keys=entries;out.files=zip.files}if(opts.bookVBA){if(dir.vba.length>0)out.vbaraw=getzipdata(zip,dir.vba[0],true);else if(dir.defaults.bin==="application/vnd.ms-office.vbaProject")out.vbaraw=getzipdata(zip,"xl/vbaProject.bin",true)}return out}function add_rels(rels,rId,f,type,relobj){if(!relobj)relobj={};if(!rels["!id"])rels["!id"]={};relobj.Id="rId"+rId;relobj.Type=type;relobj.Target=f;if(rels["!id"][relobj.Id])throw new Error("Cannot rewrite rId "+rId);rels["!id"][relobj.Id]=relobj;rels[("/"+relobj.Target).replace("//","/")]=relobj}function write_zip(wb,opts){if(wb&&!wb.SSF){wb.SSF=SSF.get_table()}if(wb&&wb.SSF){make_ssf(SSF);SSF.load_table(wb.SSF);opts.revssf=evert_num(wb.SSF);opts.revssf[wb.SSF[65535]]=0}opts.rels={};opts.wbrels={};opts.Strings=[];opts.Strings.Count=0;opts.Strings.Unique=0;var wbext=opts.bookType=="xlsb"?"bin":"xml";var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};fix_write_opts(opts=opts||{});var zip=new jszip;var f="",rId=0;opts.cellXfs=[];get_cell_style(opts.cellXfs,{},{revssf:{General:0}});f="docProps/core.xml";zip.file(f,write_core_props(wb.Props,opts));ct.coreprops.push(f);add_rels(opts.rels,2,f,RELS.CORE_PROPS);f="docProps/app.xml";if(!wb.Props)wb.Props={};wb.Props.SheetNames=wb.SheetNames;wb.Props.Worksheets=wb.SheetNames.length;zip.file(f,write_ext_props(wb.Props,opts));ct.extprops.push(f);add_rels(opts.rels,3,f,RELS.EXT_PROPS);if(wb.Custprops!==wb.Props&&keys(wb.Custprops||{}).length>0){f="docProps/custom.xml";zip.file(f,write_cust_props(wb.Custprops,opts));ct.custprops.push(f);add_rels(opts.rels,4,f,RELS.CUST_PROPS)}f="xl/workbook."+wbext;zip.file(f,write_wb(wb,f,opts));ct.workbooks.push(f);add_rels(opts.rels,1,f,RELS.WB);for(rId=1;rId<=wb.SheetNames.length;++rId){f="xl/worksheets/sheet"+rId+"."+wbext;zip.file(f,write_ws(rId-1,f,opts,wb));ct.sheets.push(f);add_rels(opts.wbrels,rId,"worksheets/sheet"+rId+"."+wbext,RELS.WS)}if(opts.Strings!=null&&opts.Strings.length>0){f="xl/sharedStrings."+wbext;zip.file(f,write_sst(opts.Strings,f,opts));ct.strs.push(f);add_rels(opts.wbrels,++rId,"sharedStrings."+wbext,RELS.SST)}f="xl/theme/theme1.xml";zip.file(f,write_theme());ct.themes.push(f);add_rels(opts.wbrels,++rId,"theme/theme1.xml",RELS.THEME);f="xl/styles."+wbext;zip.file(f,write_sty(wb,f,opts));ct.styles.push(f);add_rels(opts.wbrels,++rId,"styles."+wbext,RELS.STY);zip.file("[Content_Types].xml",write_ct(ct,opts));zip.file("_rels/.rels",write_rels(opts.rels));zip.file("xl/_rels/workbook."+wbext+".rels",write_rels(opts.wbrels));return zip}function readSync(data,opts){var zip,d=data;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";switch(o.type){case"base64":zip=new jszip(d,{base64:true});break;case"binary":zip=new jszip(d,{base64:false});break;case"buffer":zip=new jszip(d);break;case"file":zip=new jszip(d=_fs.readFileSync(data));break;default:throw new Error("Unrecognized type "+o.type)}return parse_zip(zip,o)}function readFileSync(data,opts){var o=opts||{};o.type="file";return readSync(data,o)}function writeSync(wb,opts){var o=opts||{};var z=write_zip(wb,o);switch(o.type){case"base64":return z.generate({type:"base64"});case"binary":return z.generate({type:"string"});case"buffer":return z.generate({type:"nodebuffer"});case"file":return _fs.writeFileSync(o.file,z.generate({type:"nodebuffer"}));default:throw new Error("Unrecognized type "+o.type)}}function writeFileSync(wb,filename,opts){var o=opts||{};o.type="file";o.file=filename;switch(o.file.substr(-5).toLowerCase()){case".xlsm":o.bookType="xlsm";break;case".xlsb":o.bookType="xlsb";break}return writeSync(wb,o)}function decode_row(rowstr){return parseInt(unfix_row(rowstr),10)-1}function encode_row(row){return""+(row+1)}function fix_row(cstr){return cstr.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function unfix_row(cstr){return cstr.replace(/\$(\d+)$/,"$1")}function decode_col(colstr){var c=unfix_col(colstr),d=0,i=0;for(;i!==c.length;++i)d=26*d+c.charCodeAt(i)-64;return d-1}function encode_col(col){var s="";for(++col;col;col=Math.floor((col-1)/26))s=String.fromCharCode((col-1)%26+65)+s;return s}function fix_col(cstr){return cstr.replace(/^([A-Z])/,"$$$1")}function unfix_col(cstr){return cstr.replace(/^\$([A-Z])/,"$1")}function split_cell(cstr){return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function decode_cell(cstr){var splt=split_cell(cstr);return{c:decode_col(splt[0]),r:decode_row(splt[1])}}function encode_cell(cell){return encode_col(cell.c)+encode_row(cell.r)}function fix_cell(cstr){return fix_col(fix_row(cstr))}function unfix_cell(cstr){return unfix_col(unfix_row(cstr))}function decode_range(range){var x=range.split(":").map(decode_cell);return{s:x[0],e:x[x.length-1]}}function encode_range(cs,ce){if(ce===undefined||typeof ce==="number")return encode_range(cs.s,cs.e);if(typeof cs!=="string")cs=encode_cell(cs);if(typeof ce!=="string")ce=encode_cell(ce);return cs==ce?cs:cs+":"+ce}function safe_decode_range(range){var o={s:{c:0,r:0},e:{c:0,r:0}};var idx=0,i=0,cc=0;var len=range.length;for(idx=0;i26)break;idx=26*idx+cc}o.s.c=--idx;for(idx=0;i9)break;idx=10*idx+cc}o.s.r=--idx;if(i===len||range.charCodeAt(++i)===58){o.e.c=o.s.c;o.e.r=o.s.r;return o}for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.e.c=--idx;for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.e.r=--idx;return o}function safe_format_cell(cell,v){if(cell.z!==undefined)try{return cell.w=SSF.format(cell.z,v)}catch(e){}if(!cell.XF)return v;try{return cell.w=SSF.format(cell.XF.ifmt||0,v)}catch(e){return""+v}}function format_cell(cell,v){if(cell==null||cell.t==null)return"";if(cell.w!==undefined)return cell.w;if(v===undefined)return safe_format_cell(cell,cell.v);return safe_format_cell(cell,v)}function sheet_to_json(sheet,opts){var val,row,range,header=0,offset=1,r,hdr=[],isempty,R,C,v;var o=opts!=null?opts:{};var raw=o.raw;if(sheet==null||sheet["!ref"]==null)return[];range=o.range!==undefined?o.range:sheet["!ref"];if(o.header===1)header=1;else if(o.header==="A")header=2;else if(Array.isArray(o.header))header=3;switch(typeof range){case"string":r=safe_decode_range(range);break;case"number":r=safe_decode_range(sheet["!ref"]);r.s.r=range;break;default:r=range}if(header>0)offset=0;var rr=encode_row(r.s.r);var cols=new Array(r.e.c-r.s.c+1);var out=new Array(r.e.r-r.s.r-offset+1);var outi=0;for(C=r.s.c;C<=r.e.c;++C){cols[C]=encode_col(C);val=sheet[cols[C]+rr];switch(header){case 1:hdr[C]=C;break;case 2:hdr[C]=cols[C];break;case 3:hdr[C]=o.header[C-r.s.c];break;default:if(val===undefined)continue;hdr[C]=format_cell(val)}}for(R=r.s.r+offset;R<=r.e.r;++R){rr=encode_row(R);isempty=true;row=header===1?[]:Object.create({__rowNum__:R});for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];if(val===undefined||val.t===undefined)continue;v=val.v;switch(val.t){case"e":continue;case"s":break;case"b":case"n":break;default:throw"unrecognized type "+val.t}if(v!==undefined){row[hdr[C]]=raw?v:format_cell(val,v);isempty=false}}if(isempty===false)out[outi++]=row}out.length=outi;return out}function sheet_to_row_object_array(sheet,opts){return sheet_to_json(sheet,opts!=null?opts:{})}function sheet_to_csv(sheet,opts){var out="",txt="",qreg=/"/g;var o=opts==null?{}:opts;if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]);var FS=o.FS!==undefined?o.FS:",",fs=FS.charCodeAt(0);var RS=o.RS!==undefined?o.RS:"\n",rs=RS.charCodeAt(0);var row="",rr="",cols=[];var i=0,cc=0,val;var R=0,C=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(R=r.s.r;R<=r.e.r;++R){row="";rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];txt=val!==undefined?""+format_cell(val):"";for(i=0,cc=0;i!==txt.length;++i)if((cc=txt.charCodeAt(i))===fs||cc===rs||cc===34){txt='"'+txt.replace(qreg,'""')+'"';break}row+=(C===r.s.c?"":FS)+txt}out+=row+RS}return out}var make_csv=sheet_to_csv;function sheet_to_formulae(sheet){var cmds,y="",x,val="";if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]),rr="",cols=[],C;cmds=new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));var i=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(var R=r.s.r;R<=r.e.r;++R){rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){y=cols[C]+rr;x=sheet[y];val="";if(x===undefined)continue;if(x.f!=null)val=x.f;else if(x.w!==undefined)val="'"+x.w;else if(x.v===undefined)continue;else val=""+x.v;cmds[i++]=y+"="+val}}cmds.length=i;return cmds}var utils={encode_col:encode_col,encode_row:encode_row,encode_cell:encode_cell,encode_range:encode_range,decode_col:decode_col,decode_row:decode_row,split_cell:split_cell,decode_cell:decode_cell,decode_range:decode_range,format_cell:format_cell,get_formulae:sheet_to_formulae,make_csv:sheet_to_csv,make_json:sheet_to_json,make_formulae:sheet_to_formulae,sheet_to_csv:sheet_to_csv,sheet_to_json:sheet_to_json,sheet_to_formulae:sheet_to_formulae,sheet_to_row_object_array:sheet_to_row_object_array};XLSX.parseZip=parse_zip;XLSX.read=readSync;XLSX.readFile=readFileSync;XLSX.write=writeSync;XLSX.writeFile=writeFileSync;XLSX.utils=utils;XLSX.SSF=SSF})(typeof exports!=="undefined"?exports:XLSX); -//# sourceMappingURL=dist/xlsx.min.map \ No newline at end of file +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ +var XLSX={};(function make_xlsx(XLSX){XLSX.version="0.8.0";var current_codepage=1200,current_cptable;if(typeof module!=="undefined"&&typeof require!=="undefined"){if(typeof cptable==="undefined")cptable=require("./dist/cpexcel");current_cptable=cptable[current_codepage]}function reset_cp(){set_cp(1200)}var set_cp=function(cp){current_codepage=cp};function char_codes(data){var o=[];for(var i=0,len=data.length;i>8])[0]}}var Base64=function make_b64(){var map="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";return{encode:function(input,utf8){var o="";var c1,c2,c3,e1,e2,e3,e4;for(var i=0;i>2;e2=(c1&3)<<4|c2>>4;e3=(c2&15)<<2|c3>>6;e4=c3&63;if(isNaN(c2)){e3=e4=64}else if(isNaN(c3)){e4=64}o+=map.charAt(e1)+map.charAt(e2)+map.charAt(e3)+map.charAt(e4)}return o},decode:function b64_decode(input,utf8){var o="";var c1,c2,c3;var e1,e2,e3,e4;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var i=0;i>4;c2=(e2&15)<<4|e3>>2;c3=(e3&3)<<6|e4;o+=String.fromCharCode(c1);if(e3!=64){o+=String.fromCharCode(c2)}if(e4!=64){o+=String.fromCharCode(c3)}}return o}}}();var has_buf=typeof Buffer!=="undefined";function new_raw_buf(len){return new(has_buf?Buffer:Array)(len)}function s2a(s){if(has_buf)return new Buffer(s,"binary");return s.split("").map(function(x){return x.charCodeAt(0)&255})}var bconcat=function(bufs){return[].concat.apply([],bufs)};var chr0=/\u0000/g,chr1=/[\u0001-\u0006]/;var SSF={};var make_ssf=function make_ssf(SSF){SSF.version="0.8.1";function _strrev(x){var o="",i=x.length-1;while(i>=0)o+=x.charAt(i--);return o}function fill(c,l){var o="";while(o.length=d?t:fill("0",d-t.length)+t}function pad_(v,d){var t=""+v;return t.length>=d?t:fill(" ",d-t.length)+t}function rpad_(v,d){var t=""+v;return t.length>=d?t:t+fill(" ",d-t.length)}function pad0r1(v,d){var t=""+Math.round(v);return t.length>=d?t:fill("0",d-t.length)+t}function pad0r2(v,d){var t=""+v;return t.length>=d?t:fill("0",d-t.length)+t}var p2_32=Math.pow(2,32);function pad0r(v,d){if(v>p2_32||v<-p2_32)return pad0r1(v,d);var i=Math.round(v);return pad0r2(i,d)}function isgeneral(s,i){return s.length>=7+i&&(s.charCodeAt(i)|32)===103&&(s.charCodeAt(i+1)|32)===101&&(s.charCodeAt(i+2)|32)===110&&(s.charCodeAt(i+3)|32)===101&&(s.charCodeAt(i+4)|32)===114&&(s.charCodeAt(i+5)|32)===97&&(s.charCodeAt(i+6)|32)===108}var opts_fmt=[["date1904",0],["output",""],["WTF",false]];function fixopts(o){for(var y=0;y!=opts_fmt.length;++y)if(o[opts_fmt[y][0]]===undefined)o[opts_fmt[y][0]]=opts_fmt[y][1]}SSF.opts=opts_fmt;var table_fmt={0:"General",1:"0",2:"0.00",3:"#,##0",4:"#,##0.00",9:"0%",10:"0.00%",11:"0.00E+00",12:"# ?/?",13:"# ??/??",14:"m/d/yy",15:"d-mmm-yy",16:"d-mmm",17:"mmm-yy",18:"h:mm AM/PM",19:"h:mm:ss AM/PM",20:"h:mm",21:"h:mm:ss",22:"m/d/yy h:mm",37:"#,##0 ;(#,##0)",38:"#,##0 ;[Red](#,##0)",39:"#,##0.00;(#,##0.00)",40:"#,##0.00;[Red](#,##0.00)",45:"mm:ss",46:"[h]:mm:ss",47:"mmss.0",48:"##0.0E+0",49:"@",56:'"上午/下午 "hh"時"mm"分"ss"秒 "',65535:"General"};var days=[["Sun","Sunday"],["Mon","Monday"],["Tue","Tuesday"],["Wed","Wednesday"],["Thu","Thursday"],["Fri","Friday"],["Sat","Saturday"]];var months=[["J","Jan","January"],["F","Feb","February"],["M","Mar","March"],["A","Apr","April"],["M","May","May"],["J","Jun","June"],["J","Jul","July"],["A","Aug","August"],["S","Sep","September"],["O","Oct","October"],["N","Nov","November"],["D","Dec","December"]];function frac(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1D){Q=Q_1;P=P_1}if(Q>D){Q=Q_2;P=P_2}if(!mixed)return[0,sgn*P,Q];if(Q===0)throw"Unexpected state: "+P+" "+P_1+" "+P_2+" "+Q+" "+Q_1+" "+Q_2;var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]}function general_fmt_int(v,opts){return""+v}SSF._general_int=general_fmt_int;var general_fmt_num=function make_general_fmt_num(){var gnr1=/\.(\d*[1-9])0+$/,gnr2=/\.0*$/,gnr4=/\.(\d*[1-9])0+/,gnr5=/\.0*[Ee]/,gnr6=/(E[+-])(\d)$/;function gfn2(v){var w=v<0?12:11;var o=gfn5(v.toFixed(12));if(o.length<=w)return o;o=v.toPrecision(10);if(o.length<=w)return o;return v.toExponential(5)}function gfn3(v){var o=v.toFixed(11).replace(gnr1,".$1");if(o.length>(v<0?12:11))o=v.toPrecision(6);return o}function gfn4(o){for(var i=0;i!=o.length;++i)if((o.charCodeAt(i)|32)===101)return o.replace(gnr4,".$1").replace(gnr5,"E").replace("e","E").replace(gnr6,"$10$2");return o}function gfn5(o){return o.indexOf(".")>-1?o.replace(gnr2,"").replace(gnr1,".$1"):o}return function general_fmt_num(v,opts){var V=Math.floor(Math.log(Math.abs(v))*Math.LOG10E),o;if(V>=-4&&V<=-1)o=v.toPrecision(10+V);else if(Math.abs(V)<=9)o=gfn2(v);else if(V===10)o=v.toFixed(10).substr(0,12);else o=gfn3(v);return gfn5(gfn4(o))}}();SSF._general_num=general_fmt_num;function general_fmt(v,opts){switch(typeof v){case"string":return v;case"boolean":return v?"TRUE":"FALSE";case"number":return(v|0)===v?general_fmt_int(v,opts):general_fmt_num(v,opts)}throw new Error("unsupported value in General format: "+v)}SSF._general=general_fmt;function fix_hijri(date,o){return 0}function parse_date_code(v,opts,b2){if(v>2958465||v<0)return null;var date=v|0,time=Math.floor(86400*(v-date)),dow=0;var dout=[];var out={D:date,T:time,u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};if(Math.abs(out.u)<1e-6)out.u=0;fixopts(opts!=null?opts:opts=[]);if(opts.date1904)date+=1462;if(out.u>.999){out.u=0;if(++time==86400){time=0;++date}}if(date===60){dout=b2?[1317,10,29]:[1900,2,29];dow=3}else if(date===0){dout=b2?[1317,8,29]:[1900,1,0];dow=6}else{if(date>60)--date;var d=new Date(1900,0,1);d.setDate(d.getDate()+date-1);dout=[d.getFullYear(),d.getMonth()+1,d.getDate()];dow=d.getDay();if(date<60)dow=(dow+6)%7;if(b2)dow=fix_hijri(d,dout)}out.y=dout[0];out.m=dout[1];out.d=dout[2];out.S=time%60;time=Math.floor(time/60);out.M=time%60;time=Math.floor(time/60);out.H=time;out.q=dow;return out}SSF.parse_date_code=parse_date_code;function write_date(type,fmt,val,ss0){var o="",ss=0,tt=0,y=val.y,out,outl=0;switch(type){case 98:y=val.y+543;case 121:switch(fmt.length){case 1:case 2:out=y%100;outl=2;break;default:out=y%1e4;outl=4;break}break;case 109:switch(fmt.length){case 1:case 2:out=val.m;outl=fmt.length;break;case 3:return months[val.m-1][1];case 5:return months[val.m-1][0];default:return months[val.m-1][2]}break;case 100:switch(fmt.length){case 1:case 2:out=val.d;outl=fmt.length;break;case 3:return days[val.q][0];default:return days[val.q][1]}break;case 104:switch(fmt.length){case 1:case 2:out=1+(val.H+11)%12;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 72:switch(fmt.length){case 1:case 2:out=val.H;outl=fmt.length;break;default:throw"bad hour format: "+fmt}break;case 77:switch(fmt.length){case 1:case 2:out=val.M;outl=fmt.length;break;default:throw"bad minute format: "+fmt}break;case 115:if(val.u===0)switch(fmt){case"s":case"ss":return pad0(val.S,fmt.length);case".0":case".00":case".000":}switch(fmt){case"s":case"ss":case".0":case".00":case".000":if(ss0>=2)tt=ss0===3?1e3:100;else tt=ss0===1?10:1;ss=Math.round(tt*(val.S+val.u));if(ss>=60*tt)ss=0;if(fmt==="s")return ss===0?"0":""+ss/tt;o=pad0(ss,2+ss0);if(fmt==="ss")return o.substr(0,2);return"."+o.substr(2,fmt.length-1);default:throw"bad second format: "+fmt}case 90:switch(fmt){case"[h]":case"[hh]":out=val.D*24+val.H;break;case"[m]":case"[mm]":out=(val.D*24+val.H)*60+val.M;break;case"[s]":case"[ss]":out=((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u);break;default:throw"bad abstime format: "+fmt}outl=fmt.length===3?1:2;break;case 101:out=y;outl=1}if(outl>0)return pad0(out,outl);else return""}function commaify(s){if(s.length<=3)return s;var j=s.length%3,o=s.substr(0,j);for(;j!=s.length;j+=3)o+=(o.length>0?",":"")+s.substr(j,3);return o}var write_num=function make_write_num(){var pct1=/%/g;function write_num_pct(type,fmt,val){var sfmt=fmt.replace(pct1,""),mul=fmt.length-sfmt.length;return write_num(type,sfmt,val*Math.pow(10,2*mul))+fill("%",mul)}function write_num_cm(type,fmt,val){var idx=fmt.length-1;while(fmt.charCodeAt(idx-1)===44)--idx;return write_num(type,fmt.substr(0,idx),val/Math.pow(10,3*(fmt.length-idx)))}function write_num_exp(fmt,val){var o;var idx=fmt.indexOf("E")-fmt.indexOf(".")-1;if(fmt.match(/^#+0.0E\+0$/)){var period=fmt.indexOf(".");if(period===-1)period=fmt.indexOf("E");var ee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;if(ee<0)ee+=period;o=(val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);if(o.indexOf("e")===-1){var fakee=Math.floor(Math.log(Math.abs(val))*Math.LOG10E);if(o.indexOf(".")===-1)o=o[0]+"."+o.substr(1)+"E+"+(fakee-o.length+ee);else o+="E+"+(fakee-ee);while(o.substr(0,2)==="0."){o=o[0]+o.substr(2,period)+"."+o.substr(2+period);o=o.replace(/^0+([1-9])/,"$1").replace(/^0+\./,"0.")}o=o.replace(/\+-/,"-")}o=o.replace(/^([+-]?)(\d*)\.(\d*)[Ee]/,function($$,$1,$2,$3){return $1+$2+$3.substr(0,(period+ee)%period)+"."+$3.substr(ee)+"E"})}else o=val.toExponential(idx);if(fmt.match(/E\+00$/)&&o.match(/e[+-]\d$/))o=o.substr(0,o.length-1)+"0"+o[o.length-1];if(fmt.match(/E\-/)&&o.match(/e\+/))o=o.replace(/e\+/,"e");return o.replace("e","E")}var frac1=/# (\?+)( ?)\/( ?)(\d+)/;function write_num_f1(r,aval,sign){var den=parseInt(r[4]),rr=Math.round(aval*den),base=Math.floor(rr/den);var myn=rr-base*den,myd=den;return sign+(base===0?"":""+base)+" "+(myn===0?fill(" ",r[1].length+1+r[4].length):pad_(myn,r[1].length)+r[2]+"/"+r[3]+pad0(myd,r[4].length))}function write_num_f2(r,aval,sign){return sign+(aval===0?"":""+aval)+fill(" ",r[1].length+2+r[4].length)}var dec1=/^#*0*\.(0+)/;var closeparen=/\).*[0#]/;var phone=/\(###\) ###\\?-####/;function hashq(str){var o="",cc;for(var i=0;i!=str.length;++i)switch(cc=str.charCodeAt(i)){case 35:break;case 63:o+=" ";break;case 48:o+="0";break;default:o+=String.fromCharCode(cc)}return o}function rnd(val,d){var dd=Math.pow(10,d);return""+Math.round(val*dd)/dd}function dec(val,d){return Math.round((val-Math.floor(val))*Math.pow(10,d))}function flr(val){if(val<2147483647&&val>-2147483648)return""+(val>=0?val|0:val-1|0);return""+Math.floor(val)}function write_num_flt(type,fmt,val){if(type.charCodeAt(0)===40&&!fmt.match(closeparen)){var ffmt=fmt.replace(/\( */,"").replace(/ \)/,"").replace(/\)/,"");if(val>=0)return write_num_flt("n",ffmt,val);return"("+write_num_flt("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_flt(type,fmt.substr(fmt[1]==" "?2:1),val);var o,oo;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0r(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=pad0r(val,0);if(o==="0")o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f1(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0r(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=rnd(val,r[1].length).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+rnd(aval,r[2].length).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(pad0r(aval,0));if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_flt(type,fmt,-val):commaify(""+Math.floor(val))+"."+pad0(dec(val,r[1].length),r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_flt(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_flt(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=0)return write_num_int("n",ffmt,val);return"("+write_num_int("n",ffmt,-val)+")"}if(fmt.charCodeAt(fmt.length-1)===44)return write_num_cm2(type,fmt,val);if(fmt.indexOf("%")!==-1)return write_num_pct2(type,fmt,val);if(fmt.indexOf("E")!==-1)return write_num_exp2(fmt,val);if(fmt.charCodeAt(0)===36)return"$"+write_num_int(type,fmt.substr(fmt[1]==" "?2:1),val);var o;var r,ri,ff,aval=Math.abs(val),sign=val<0?"-":"";if(fmt.match(/^00+$/))return sign+pad0(aval,fmt.length);if(fmt.match(/^[#?]+$/)){o=""+val;if(val===0)o="";return o.length>fmt.length?o:hashq(fmt.substr(0,fmt.length-o.length))+o}if((r=fmt.match(frac1))!==null)return write_num_f2(r,aval,sign);if(fmt.match(/^#+0+$/)!==null)return sign+pad0(aval,fmt.length-fmt.indexOf("0"));if((r=fmt.match(dec1))!==null){o=(""+val).replace(/^([^\.]+)$/,"$1."+r[1]).replace(/\.$/,"."+r[1]).replace(/\.(\d*)$/,function($$,$1){return"."+$1+fill("0",r[1].length-$1.length)});return fmt.indexOf("0.")!==-1?o:o.replace(/^0\./,".")}fmt=fmt.replace(/^#+([0.])/,"$1");if((r=fmt.match(/^(0*)\.(#*)$/))!==null){return sign+(""+aval).replace(/\.(\d*[1-9])0*$/,".$1").replace(/^(-?\d*)$/,"$1.").replace(/^0\./,r[1].length?"0.":".")}if((r=fmt.match(/^#,##0(\.?)$/))!==null)return sign+commaify(""+aval);if((r=fmt.match(/^#,##0\.([#0]*0)$/))!==null){return val<0?"-"+write_num_int(type,fmt,-val):commaify(""+val)+"."+fill("0",r[1].length)}if((r=fmt.match(/^#,#*,#0/))!==null)return write_num_int(type,fmt.replace(/^#,#*,/,""),val);if((r=fmt.match(/^([0#]+)(\\?-([0#]+))+$/))!==null){o=_strrev(write_num_int(type,fmt.replace(/[\\-]/g,""),val));ri=0;return _strrev(_strrev(fmt.replace(/\\/g,"")).replace(/[0#]/g,function(x){return ri=12?"P":"A";q.t="T";hr="h";i+=3}else if(fmt.substr(i,5)==="AM/PM"){if(dt!=null)q.v=dt.H>=12?"PM":"AM";q.t="T";i+=5;hr="h"}else{q.t="t";++i}if(dt==null&&q.t==="T")return"";out[out.length]=q;lst=c;break;case"[":o=c;while(fmt[i++]!=="]"&&i-1||c=="\\"&&fmt[i+1]=="-"&&"0#".indexOf(fmt[i+2])>-1)o+=c;out[out.length]={t:"n",v:o};break;case"?":o=c;while(fmt[++i]===c)o+=c;q={t:c,v:o};out[out.length]=q;lst=c;break;case"*":++i;if(fmt[i]==" "||fmt[i]=="*")++i;break;case"(":case")":out[out.length]={t:flen===1?"t":c,v:c};++i;break;case"1":case"2":case"3":case"4":case"5":case"6":case"7":case"8":case"9":o=c;while("0123456789".indexOf(fmt[++i])>-1)o+=fmt[i];out[out.length]={t:"D",v:o};break;case" ":out[out.length]={t:c,v:c};++i;break;default:if(",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz".indexOf(c)===-1)throw new Error("unrecognized character "+c+" in "+fmt);out[out.length]={t:"t",v:c};++i;break}}var bt=0,ss0=0,ssm;for(i=out.length-1,lst="t";i>=0;--i){switch(out[i].t){case"h":case"H":out[i].t=hr;lst="h";if(bt<1)bt=1;break;case"s":if(ssm=out[i].v.match(/\.0+$/))ss0=Math.max(ss0,ssm[0].length-1);if(bt<3)bt=3;case"d":case"y":case"M":case"e":lst=out[i].t;break;case"m":if(lst==="s"){out[i].t="M";if(bt<2)bt=2}break;case"X":if(out[i].v==="B2");break;case"Z":if(bt<1&&out[i].v.match(/[Hh]/))bt=1;if(bt<2&&out[i].v.match(/[Mm]/))bt=2;if(bt<3&&out[i].v.match(/[Ss]/))bt=3}}switch(bt){case 0:break;case 1:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}if(dt.M>=60){dt.M=0;++dt.H}break;case 2:if(dt.u>=.5){dt.u=0;++dt.S}if(dt.S>=60){dt.S=0;++dt.M}break}var nstr="",jj;for(i=0;i-1||out[jj].v===" "&&out[jj+1]!=null&&out[jj+1].t=="?"))){out[i].v+=out[jj].v;out[jj]=undefined;++jj}nstr+=out[i].v;i=jj-1;break;case"G":out[i].t="t";out[i].v=general_fmt(v,opts);break}}var vv="",myv,ostr;if(nstr.length>0){myv=v<0&&nstr.charCodeAt(0)===45?-v:v;ostr=write_num(nstr.charCodeAt(0)===40?"(":"n",nstr,myv);jj=ostr.length-1;var decpt=out.length;for(i=0;i-1){decpt=i;break}var lasti=out.length;if(decpt===out.length&&ostr.indexOf("E")===-1){for(i=out.length-1;i>=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;if(jj>=out[i].v.length-1){jj-=out[i].v.length;out[i].v=ostr.substr(jj+1,out[i].v.length)}else if(jj<0)out[i].v="";else{out[i].v=ostr.substr(0,jj+1);jj=-1}out[i].t="t";lasti=i}if(jj>=0&&lasti=0;--i){if(out[i]==null||"n?(".indexOf(out[i].t)===-1)continue;j=out[i].v.indexOf(".")>-1&&i===decpt?out[i].v.indexOf(".")-1:out[i].v.length-1;vv=out[i].v.substr(j+1);for(;j>=0;--j){if(jj>=0&&(out[i].v[j]==="0"||out[i].v[j]==="#"))vv=ostr[jj--]+vv}out[i].v=vv;out[i].t="t";lasti=i}if(jj>=0&&lasti-1&&i===decpt?out[i].v.indexOf(".")+1:0;vv=out[i].v.substr(0,j);for(;j-1){myv=flen>1&&v<0&&i>0&&out[i-1].v==="-"?-v:v;out[i].v=write_num(out[i].t,out[i].v,myv);out[i].t="t"}var retval="";for(i=0;i!==out.length;++i)if(out[i]!=null)retval+=out[i].v;return retval}SSF._eval=eval_fmt;var cfregex=/\[[=<>]/;var cfregex2=/\[([=<>]*)(-?\d+\.?\d*)\]/;function chkcond(v,rr){if(rr==null)return false;var thresh=parseFloat(rr[2]);switch(rr[1]){case"=":if(v==thresh)return true;break;case">":if(v>thresh)return true;break;case"<":if(v":if(v!=thresh)return true;break;case">=":if(v>=thresh)return true;break;case"<=":if(v<=thresh)return true;break}return false}function choose_fmt(f,v){var fmt=split_fmt(f);var l=fmt.length,lat=fmt[l-1].indexOf("@");if(l<4&&lat>-1)--l;if(fmt.length>4)throw"cannot find right format for |"+fmt+"|";if(typeof v!=="number")return[4,fmt.length===4||lat>-1?fmt[fmt.length-1]:"@"];switch(fmt.length){case 1:fmt=lat>-1?["General","General","General",fmt[0]]:[fmt[0],fmt[0],fmt[0],"@"];break;case 2:fmt=lat>-1?[fmt[0],fmt[0],fmt[0],fmt[1]]:[fmt[0],fmt[1],fmt[0],"@"];break;case 3:fmt=lat>-1?[fmt[0],fmt[1],fmt[0],fmt[2]]:[fmt[0],fmt[1],fmt[2],"@"];break;case 4:break}var ff=v>0?fmt[0]:v<0?fmt[1]:fmt[2];if(fmt[0].indexOf("[")===-1&&fmt[1].indexOf("[")===-1)return[l,ff];if(fmt[0].match(cfregex)!=null||fmt[1].match(cfregex)!=null){var m1=fmt[0].match(cfregex2);var m2=fmt[1].match(cfregex2);return chkcond(v,m1)?[l,fmt[0]]:chkcond(v,m2)?[l,fmt[1]]:[l,fmt[m1!=null&&m2!=null?2:1]]}return[l,ff]}function format(fmt,v,o){fixopts(o!=null?o:o=[]);var sfmt="";switch(typeof fmt){case"string":sfmt=fmt;break;case"number":sfmt=(o.table!=null?o.table:table_fmt)[fmt];break}if(isgeneral(sfmt,0))return general_fmt(v,o);var f=choose_fmt(sfmt,v);if(isgeneral(f[1]))return general_fmt(v,o);if(v===true)v="TRUE";else if(v===false)v="FALSE";else if(v===""||v==null)return"";return eval_fmt(f[1],v,o,f[0])}SSF._table=table_fmt;SSF.load=function load_entry(fmt,idx){table_fmt[idx]=fmt};SSF.format=format;SSF.get_table=function get_table(){return table_fmt};SSF.load_table=function load_table(tbl){for(var i=0;i!=392;++i)if(tbl[i]!==undefined)SSF.load(tbl[i],i)}};make_ssf(SSF);var XLMLFormatMap={"General Number":"General","General Date":SSF._table[22],"Long Date":"dddd, mmmm dd, yyyy","Medium Date":SSF._table[15],"Short Date":SSF._table[14],"Long Time":SSF._table[19],"Medium Time":SSF._table[18],"Short Time":SSF._table[20],Currency:'"$"#,##0.00_);[Red]\\("$"#,##0.00\\)',Fixed:SSF._table[2],Standard:SSF._table[4],Percent:SSF._table[10],Scientific:SSF._table[11],"Yes/No":'"Yes";"Yes";"No";@',"True/False":'"True";"True";"False";@',"On/Off":'"Yes";"Yes";"No";@'};var DO_NOT_EXPORT_CFB=true;var CFB=function _CFB(){var exports={};exports.version="0.10.2";function parse(file){var mver=3;var ssz=512;var nmfs=0;var ndfs=0;var dir_start=0;var minifat_start=0;var difat_start=0;var fat_addrs=[];var blob=file.slice(0,512);prep_blob(blob,0);var mv=check_get_mver(blob);mver=mv[0];switch(mver){case 3:ssz=512;break;case 4:ssz=4096;break;default:throw"Major Version: Expected 3 or 4 saw "+mver}if(ssz!==512){blob=file.slice(0,ssz);prep_blob(blob,28)}var header=file.slice(0,ssz);check_shifts(blob,mver);var nds=blob.read_shift(4,"i");if(mver===3&&nds!==0)throw"# Directory Sectors: Expected 0 saw "+nds;blob.l+=4;dir_start=blob.read_shift(4,"i");blob.l+=4;blob.chk("00100000","Mini Stream Cutoff Size: ");minifat_start=blob.read_shift(4,"i");nmfs=blob.read_shift(4,"i");difat_start=blob.read_shift(4,"i");ndfs=blob.read_shift(4,"i");for(var q,j=0;j<109;++j){q=blob.read_shift(4,"i");if(q<0)break;fat_addrs[j]=q}var sectors=sectorify(file,ssz);sleuth_fat(difat_start,ndfs,sectors,ssz,fat_addrs);var sector_list=make_sector_list(sectors,dir_start,fat_addrs,ssz);sector_list[dir_start].name="!Directory";if(nmfs>0&&minifat_start!==ENDOFCHAIN)sector_list[minifat_start].name="!MiniFAT";sector_list[fat_addrs[0]].name="!FAT";sector_list.fat_addrs=fat_addrs;sector_list.ssz=ssz;var files={},Paths=[],FileIndex=[],FullPaths=[],FullPathDir={};read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex);build_full_paths(FileIndex,FullPathDir,FullPaths,Paths);var root_name=Paths.shift();Paths.root=root_name;var find_path=make_find_path(FullPaths,Paths,FileIndex,files,root_name);return{raw:{header:header,sectors:sectors},FileIndex:FileIndex,FullPaths:FullPaths,FullPathDir:FullPathDir,find:find_path}}function check_get_mver(blob){blob.chk(HEADER_SIGNATURE,"Header Signature: ");blob.chk(HEADER_CLSID,"CLSID: ");var mver=blob.read_shift(2,"u");return[blob.read_shift(2,"u"),mver]}function check_shifts(blob,mver){var shift=9;blob.chk("feff","Byte Order: ");switch(shift=blob.read_shift(2)){case 9:if(mver!==3)throw"MajorVersion/SectorShift Mismatch";break;case 12:if(mver!==4)throw"MajorVersion/SectorShift Mismatch";break;default:throw"Sector Shift: Expected 9 or 12 saw "+shift}blob.chk("0600","Mini Sector Shift: ");blob.chk("000000000000","Reserved: ")}function sectorify(file,ssz){var nsectors=Math.ceil(file.length/ssz)-1;var sectors=new Array(nsectors);for(var i=1;i>>2)-1;for(var i=0;i=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)]; +jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}return{nodes:buf,data:__toBuffer([buf_chain])}}function make_sector_list(sectors,dir_start,fat_addrs,ssz){var sl=sectors.length,sector_list=new Array(sl);var chkd=new Array(sl),buf,buf_chain;var modulus=ssz-1,i,j,k,jj;for(i=0;i=sl)k-=sl;if(chkd[k]===true)continue;buf_chain=[];for(j=k;j>=0;){chkd[j]=true;buf[buf.length]=j;buf_chain.push(sectors[j]);var addr=fat_addrs[Math.floor(j*4/ssz)];jj=j*4&modulus;if(ssz<4+jj)throw"FAT boundary crossed: "+j+" 4 "+ssz;j=__readInt32LE(sectors[addr],jj)}sector_list[k]={nodes:buf,data:__toBuffer([buf_chain])}}return sector_list}function read_directory(dir_start,sector_list,sectors,Paths,nmfs,files,FileIndex){var blob;var minifat_store=0,pl=Paths.length?2:0;var sector=sector_list[dir_start].data;var i=0,namelen=0,name,o,ctime,mtime;for(;i0&&minifat_store!==ENDOFCHAIN)sector_list[minifat_store].name="!StreamData"}else if(o.size>=4096){o.storage="fat";if(sector_list[o.start]===undefined)sector_list[o.start]=get_sector_list(sectors,o.start,sector_list.fat_addrs,sector_list.ssz);sector_list[o.start].name=o.name;o.content=sector_list[o.start].data.slice(0,o.size);prep_blob(o.content,0)}else{o.storage="minifat";if(minifat_store!==ENDOFCHAIN&&o.start!==ENDOFCHAIN){o.content=sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size);prep_blob(o.content,0)}}files[name]=o;FileIndex.push(o)}}function read_date(blob,offset){return new Date((__readUInt32LE(blob,offset+4)/1e7*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7-11644473600)*1e3)}var fs;function readFileSync(filename,options){if(fs===undefined)fs=require("fs");return parse(fs.readFileSync(filename),options)}function readSync(blob,options){switch(options!==undefined&&options.type!==undefined?options.type:"base64"){case"file":return readFileSync(blob,options);case"base64":return parse(s2a(Base64.decode(blob)),options);case"binary":return parse(s2a(blob),options)}return parse(blob)}var MSSZ=64;var ENDOFCHAIN=-2;var HEADER_SIGNATURE="d0cf11e0a1b11ae1";var HEADER_CLSID="00000000000000000000000000000000";var consts={MAXREGSECT:-6,DIFSECT:-4,FATSECT:-3,ENDOFCHAIN:ENDOFCHAIN,FREESECT:-1,HEADER_SIGNATURE:HEADER_SIGNATURE,HEADER_MINOR_VERSION:"3e00",MAXREGSID:-6,NOSTREAM:-1,HEADER_CLSID:HEADER_CLSID,EntryTypes:["unknown","storage","stream","lockbytes","property","root"]};exports.read=readSync;exports.parse=parse;exports.utils={ReadShift:ReadShift,CheckField:CheckField,prep_blob:prep_blob,bconcat:bconcat,consts:consts};return exports}();if(typeof require!=="undefined"&&typeof module!=="undefined"&&typeof DO_NOT_EXPORT_CFB==="undefined"){module.exports=CFB}function isval(x){return x!==undefined&&x!==null}function keys(o){return Object.keys(o)}function evert_key(obj,key){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]][key]]=K[i];return o}function evert(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=K[i];return o}function evert_num(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i)o[obj[K[i]]]=parseInt(K[i],10);return o}function evert_arr(obj){var o=[],K=keys(obj);for(var i=0;i!==K.length;++i){if(o[obj[K[i]]]==null)o[obj[K[i]]]=[];o[obj[K[i]]].push(K[i])}return o}function datenum(v,date1904){if(date1904)v+=1462;var epoch=Date.parse(v);return(epoch+22091616e5)/(24*60*60*1e3)}function cc2str(arr){var o="";for(var i=0;i!=arr.length;++i)o+=String.fromCharCode(arr[i]);return o}function getdata(data){if(!data)return null;if(data.name.substr(-4)===".bin"){if(data.data)return char_codes(data.data);if(data.asNodeBuffer&&has_buf)return data.asNodeBuffer();if(data._data&&data._data.getContent)return Array.prototype.slice.call(data._data.getContent())}else{if(data.data)return data.name.substr(-4)!==".bin"?debom_xml(data.data):char_codes(data.data);if(data.asNodeBuffer&&has_buf)return debom_xml(data.asNodeBuffer().toString("binary"));if(data.asBinary)return debom_xml(data.asBinary());if(data._data&&data._data.getContent)return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)))}return null}function safegetzipfile(zip,file){var f=file;if(zip.files[f])return zip.files[f];f=file.toLowerCase();if(zip.files[f])return zip.files[f];f=f.replace(/\//g,"\\");if(zip.files[f])return zip.files[f];return null}function getzipfile(zip,file){var o=safegetzipfile(zip,file);if(o==null)throw new Error("Cannot find file "+file+" in zip");return o}function getzipdata(zip,file,safe){if(!safe)return getdata(getzipfile(zip,file));if(!file)return null;try{return getzipdata(zip,file)}catch(e){return null}}var _fs,jszip;if(typeof JSZip!=="undefined")jszip=JSZip;if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){if(has_buf&&typeof jszip==="undefined")jszip=require("js"+"zip");if(typeof jszip==="undefined")jszip=require("./js"+"zip").JSZip;_fs=require("f"+"s")}}var attregexg=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var tagregex=/<[^>]*>/g;var nsregex=/<\w*:/,nsregex2=/<(\/?)\w+:/;function parsexmltag(tag,skip_root){var z=[];var eq=0,c=0;for(;eq!==tag.length;++eq)if((c=tag.charCodeAt(eq))===32||c===10||c===13)break;if(!skip_root)z[0]=tag.substr(0,eq);if(eq===tag.length)return z;var m=tag.match(attregexg),j=0,w="",v="",i=0,q="",cc="";if(m)for(i=0;i!=m.length;++i){cc=m[i];for(c=0;c!=cc.length;++c)if(cc.charCodeAt(c)===61)break;q=cc.substr(0,c);v=cc.substring(c+2,cc.length-1);for(j=0;j!=q.length;++j)if(q.charCodeAt(j)===58)break;if(j===q.length)z[q]=v;else z[(j===5&&q.substr(0,5)==="xmlns"?"xmlns":"")+q.substr(j+1)]=v}return z}function strip_ns(x){return x.replace(nsregex2,"<$1")}var encodings={""":'"',"'":"'",">":">","<":"<","&":"&"};var rencoding=evert(encodings);var rencstr="&<>'\"".split("");var unescapexml=function(){var encregex=/&[a-z]*;/g,coderegex=/_x([\da-fA-F]+)_/g;return function unescapexml(text){var s=text+"";return s.replace(encregex,function($$){return encodings[$$]}).replace(coderegex,function(m,c){return String.fromCharCode(parseInt(c,16))})}}();var decregex=/[&<>'"]/g,charegex=/[\u0000-\u0008\u000b-\u001f]/g;function escapexml(text){var s=text+"";return s.replace(decregex,function(y){return rencoding[y]}).replace(charegex,function(s){return"_x"+("000"+s.charCodeAt(0).toString(16)).substr(-4)+"_"})}var xlml_fixstr=function(){var entregex=/&#(\d+);/g;function entrepl($$,$1){return String.fromCharCode(parseInt($1,10))}return function xlml_fixstr(str){return str.replace(entregex,entrepl)}}();function parsexmlbool(value,tag){switch(value){case"1":case"true":case"TRUE":return true;default:return false}}var utf8read=function utf8reada(orig){var out="",i=0,c=0,d=0,e=0,f=0,w=0;while(i191&&c<224){out+=String.fromCharCode((c&31)<<6|d&63);continue}e=orig.charCodeAt(i++);if(c<240){out+=String.fromCharCode((c&15)<<12|(d&63)<<6|e&63);continue}f=orig.charCodeAt(i++);w=((c&7)<<18|(d&63)<<12|(e&63)<<6|f&63)-65536;out+=String.fromCharCode(55296+(w>>>10&1023));out+=String.fromCharCode(56320+(w&1023))}return out};if(has_buf){var utf8readb=function utf8readb(data){var out=new Buffer(2*data.length),w,i,j=1,k=0,ww=0,c;for(i=0;i>>10&1023);w=56320+(w&1023)}if(ww!==0){out[k++]=ww&255;out[k++]=ww>>>8;ww=0}out[k++]=w%256;out[k++]=w>>>8}out.length=k;return out.toString("ucs2")};var corpus="foo bar baz☃🍣";if(utf8read(corpus)==utf8readb(corpus))utf8read=utf8readb;var utf8readc=function utf8readc(data){return Buffer(data,"binary").toString("utf8")};if(utf8read(corpus)==utf8readc(corpus))utf8read=utf8readc}var matchtag=function(){var mtcache={};return function matchtag(f,g){var t=f+"|"+g;if(mtcache[t]!==undefined)return mtcache[t];return mtcache[t]=new RegExp("<(?:\\w+:)?"+f+'(?: xml:space="preserve")?(?:[^>]*)>([^☃]*)",g||"")}}();var vtregex=function(){var vt_cache={};return function vt_regex(bt){if(vt_cache[bt]!==undefined)return vt_cache[bt];return vt_cache[bt]=new RegExp("(.*?)","g")}}();var vtvregex=/<\/?vt:variant>/g,vtmregex=/]*)>(.*)"+g+""}function wxt_helper(h){return keys(h).map(function(k){return" "+k+'="'+h[k]+'"'}).join("")}function writextag(f,g,h){return"<"+f+(isval(h)?wxt_helper(h):"")+(isval(g)?(g.match(wtregex)?' xml:space="preserve"':"")+">"+g+""}function write_w3cdtf(d,t){try{return d.toISOString().replace(/\.\d*/,"")}catch(e){if(t)throw e}}function write_vt(s){switch(typeof s){case"string":return writextag("vt:lpwstr",s);case"number":return writextag((s|0)==s?"vt:i4":"vt:r8",String(s));case"boolean":return writextag("vt:bool",s?"true":"false")}if(s instanceof Date)return writextag("vt:filetime",write_w3cdtf(s));throw new Error("Unable to serialize "+s)}var XML_HEADER='\r\n';var XMLNS={dc:"http://purl.org/dc/elements/1.1/",dcterms:"http://purl.org/dc/terms/",dcmitype:"http://purl.org/dc/dcmitype/",mx:"http://schemas.microsoft.com/office/mac/excel/2008/main",r:"http://schemas.openxmlformats.org/officeDocument/2006/relationships",sjs:"http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties",vt:"http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",xsd:"http://www.w3.org/2001/XMLSchema"};XMLNS.main=["http://schemas.openxmlformats.org/spreadsheetml/2006/main","http://purl.oclc.org/ooxml/spreadsheetml/main","http://schemas.microsoft.com/office/excel/2006/main","http://schemas.microsoft.com/office/excel/2006/2"];function readIEEE754(buf,idx,isLE,nl,ml){if(isLE===undefined)isLE=true;if(!nl)nl=8;if(!ml&&nl===8)ml=52;var e,m,el=nl*8-ml-1,eMax=(1<>1;var bits=-7,d=isLE?-1:1,i=isLE?nl-1:0,s=buf[idx+i];i+=d;e=s&(1<<-bits)-1;s>>>=-bits;bits+=el;for(;bits>0;e=e*256+buf[idx+i],i+=d,bits-=8);m=e&(1<<-bits)-1;e>>>=-bits;bits+=ml;for(;bits>0;m=m*256+buf[idx+i],i+=d,bits-=8);if(e===eMax)return m?NaN:(s?-1:1)*Infinity;else if(e===0)e=1-eBias;else{m=m+Math.pow(2,ml);e=e-eBias}return(s?-1:1)*m*Math.pow(2,e-ml)}var __toBuffer,___toBuffer;__toBuffer=___toBuffer=function toBuffer_(bufs){var x=[];for(var i=0;i0?__utf8(b,i+4,i+4+len-1):""};var __lpwstr,___lpwstr;__lpwstr=___lpwstr=function lpwstr_(b,i){var len=2*__readUInt32LE(b,i);return len>0?__utf8(b,i+4,i+4+len-1):""};var __double,___double;__double=___double=function(b,idx){return readIEEE754(b,idx)};var is_buf=function is_buf_a(a){return Array.isArray(a)};if(has_buf){__utf16le=function utf16le_b(b,s,e){if(!Buffer.isBuffer(b))return ___utf16le(b,s,e);return b.toString("utf16le",s,e)};__hexlify=function(b,s,l){return Buffer.isBuffer(b)?b.toString("hex",s,s+l):___hexlify(b,s,l)};__lpstr=function lpstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpstr(b,i);var len=b.readUInt32LE(i);return len>0?b.toString("utf8",i+4,i+4+len-1):""};__lpwstr=function lpwstr_b(b,i){if(!Buffer.isBuffer(b))return ___lpwstr(b,i);var len=2*b.readUInt32LE(i);return b.toString("utf16le",i+4,i+4+len-1)};__utf8=function utf8_b(s,e){return this.toString("utf8",s,e)};__toBuffer=function(bufs){return bufs[0].length>0&&Buffer.isBuffer(bufs[0][0])?Buffer.concat(bufs[0]):___toBuffer(bufs)};bconcat=function(bufs){return Buffer.isBuffer(bufs[0])?Buffer.concat(bufs):[].concat.apply([],bufs)};__double=function double_(b,i){if(Buffer.isBuffer(b))return b.readDoubleLE(i);return ___double(b,i)};is_buf=function is_buf_b(a){return Buffer.isBuffer(a)||Array.isArray(a)}}if(typeof cptable!=="undefined"){__utf16le=function(b,s,e){return cptable.utils.decode(1200,b.slice(s,e))};__utf8=function(b,s,e){return cptable.utils.decode(65001,b.slice(s,e))};__lpstr=function(b,i){var len=__readUInt32LE(b,i);return len>0?cptable.utils.decode(current_codepage,b.slice(i+4,i+4+len-1)):""};__lpwstr=function(b,i){var len=2*__readUInt32LE(b,i);return len>0?cptable.utils.decode(1200,b.slice(i+4,i+4+len-1)):""}}var __readUInt8=function(b,idx){return b[idx]};var __readUInt16LE=function(b,idx){return b[idx+1]*(1<<8)+b[idx]};var __readInt16LE=function(b,idx){var u=b[idx+1]*(1<<8)+b[idx];return u<32768?u:(65535-u+1)*-1};var __readUInt32LE=function(b,idx){return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]};var __readInt32LE=function(b,idx){return b[idx+3]<<24|b[idx+2]<<16|b[idx+1]<<8|b[idx]};var ___unhexlify=function(s){return s.match(/../g).map(function(x){return parseInt(x,16)})};var __unhexlify=typeof Buffer!=="undefined"?function(s){return Buffer.isBuffer(s)?new Buffer(s,"hex"):___unhexlify(s)}:___unhexlify;function ReadShift(size,t){var o="",oI,oR,oo=[],w,vv,i,loc;switch(t){case"dbcs":loc=this.l;if(has_buf&&Buffer.isBuffer(this))o=this.slice(this.l,this.l+2*size).toString("utf16le");else for(i=0;i!=size;++i){o+=String.fromCharCode(__readUInt16LE(this,loc));loc+=2}size*=2;break;case"utf8":o=__utf8(this,this.l,this.l+size);break;case"utf16le":size*=2;o=__utf16le(this,this.l,this.l+size);break;case"lpstr":o=__lpstr(this,this.l);size=5+o.length;break;case"lpwstr":o=__lpwstr(this,this.l);size=5+o.length;if(o[o.length-1]=="\x00")size+=2;break;case"cstr":size=0;o="";while((w=__readUInt8(this,this.l+size++))!==0)oo.push(_getchar(w));o=oo.join("");break;case"wstr":size=0;o="";while((w=__readUInt16LE(this,this.l+size))!==0){oo.push(_getchar(w));size+=2}size+=2;o=oo.join("");break;case"dbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt16LE(this,loc)));loc+=2}o=oo.join("");size*=2;break;case"sbcs-cont":o="";loc=this.l;for(i=0;i!=size;++i){if(this.lens&&this.lens.indexOf(loc)!==-1){w=__readUInt8(this,loc);this.l=loc+1;vv=ReadShift.call(this,size-i,w?"dbcs-cont":"sbcs-cont");return oo.join("")+vv}oo.push(_getchar(__readUInt8(this,loc)));loc+=1}o=oo.join("");break;default:switch(size){case 1:oI=__readUInt8(this,this.l);this.l++;return oI;case 2:oI=(t==="i"?__readInt16LE:__readUInt16LE)(this,this.l);this.l+=2;return oI;case 4:if(t==="i"||(this[this.l+3]&128)===0){oI=__readInt32LE(this,this.l);this.l+=4;return oI}else{oR=__readUInt32LE(this,this.l);this.l+=4;return oR}break;case 8:if(t==="f"){oR=__double(this,this.l);this.l+=8;return oR}case 16:o=__hexlify(this,this.l,size);break}}this.l+=size;return o}function WriteShift(t,val,f){var size,i;if(f==="dbcs"){for(i=0;i!=val.length;++i)this.writeUInt16LE(val.charCodeAt(i),this.l+2*i);size=2*val.length}else switch(t){case 1:size=1;this[this.l]=val&255;break;case 3:size=3;this[this.l+2]=val&255;val>>>=8;this[this.l+1]=val&255;val>>>=8;this[this.l]=val&255;break;case 4:size=4;this.writeUInt32LE(val,this.l);break;case 8:size=8;if(f==="f"){this.writeDoubleLE(val,this.l);break}case 16:break;case-4:size=4;this.writeInt32LE(val,this.l);break}this.l+=size;return this}function CheckField(hexstr,fld){var m=__hexlify(this,this.l,hexstr.length>>1);if(m!==hexstr)throw fld+"Expected "+hexstr+" saw "+m;this.l+=hexstr.length>>1}function prep_blob(blob,pos){blob.l=pos;blob.read_shift=ReadShift;blob.chk=CheckField;blob.write_shift=WriteShift}function parsenoop(blob,length){blob.l+=length}function writenoop(blob,length){blob.l+=length}function new_buf(sz){var o=new_raw_buf(sz);prep_blob(o,0);return o}function recordhopper(data,cb,opts){var tmpbyte,cntbyte,length;prep_blob(data,data.l||0);while(data.l0)bufs.push(curbuf);curbuf=null};var next=function ba_next(sz){if(sz=128?1:0)+1+length;if(length>=128)++l;if(length>=16384)++l;if(length>=2097152)++l;var o=ba.next(l);if(t<=127)o.write_shift(1,t);else{o.write_shift(1,(t&127)+128);o.write_shift(1,t>>7)}for(var i=0;i!=4;++i){if(length>=128){o.write_shift(1,(length&127)+128);length>>=7}else{o.write_shift(1,length);break}}if(length>0&&is_buf(payload))ba.push(payload)}function shift_cell_xls(cell,tgt){if(tgt.s){if(cell.cRel)cell.c+=tgt.s.c;if(cell.rRel)cell.r+=tgt.s.r}else{cell.c+=tgt.c;cell.r+=tgt.r}cell.cRel=cell.rRel=0;while(cell.c>=256)cell.c-=256;while(cell.r>=65536)cell.r-=65536;return cell}function shift_range_xls(cell,range){cell.s=shift_cell_xls(cell.s,range.s);cell.e=shift_cell_xls(cell.e,range.s);return cell}var OFFCRYPTO={};var make_offcrypto=function(O,_crypto){var crypto;if(typeof _crypto!=="undefined")crypto=_crypto;else if(typeof require!=="undefined"){try{crypto=require("cry"+"pto")}catch(e){crypto=null}}O.rc4=function(key,data){var S=new Array(256);var c=0,i=0,j=0,t=0;for(i=0;i!=256;++i)S[i]=i;for(i=0;i!=256;++i){j=j+S[i]+key[i%key.length].charCodeAt(0)&255;t=S[i];S[i]=S[j];S[j]=t}i=j=0;out=Buffer(data.length);for(c=0;c!=data.length;++c){i=i+1&255;j=(j+S[i])%256;t=S[i];S[i]=S[j];S[j]=t;out[c]=data[c]^S[S[i]+S[j]&255]}return out};if(crypto){O.md5=function(hex){return crypto.createHash("md5").update(hex).digest("hex")}}else{O.md5=function(hex){throw"unimplemented"}}};make_offcrypto(OFFCRYPTO,typeof crypto!=="undefined"?crypto:undefined);function parse_StrRun(data,length){return{ich:data.read_shift(2),ifnt:data.read_shift(2)}}function parse_RichStr(data,length){var start=data.l;var flags=data.read_shift(1);var str=parse_XLWideString(data);var rgsStrRun=[];var z={t:str,h:str};if((flags&1)!==0){var dwSizeStrRun=data.read_shift(4);for(var i=0;i!=dwSizeStrRun;++i)rgsStrRun.push(parse_StrRun(data));z.r=rgsStrRun}else z.r=""+escapexml(str)+"";if((flags&2)!==0){}data.l=start+length;return z}function write_RichStr(str,o){if(o==null)o=new_buf(5+2*str.t.length);o.write_shift(1,0);write_XLWideString(str.t,o);return o}function parse_XLSBCell(data){var col=data.read_shift(4);var iStyleRef=data.read_shift(2);iStyleRef+=data.read_shift(1)<<16;var fPhShow=data.read_shift(1);return{c:col,iStyleRef:iStyleRef}}function write_XLSBCell(cell,o){if(o==null)o=new_buf(8);o.write_shift(-4,cell.c);o.write_shift(3,cell.iStyleRef===undefined?cell.iStyleRef:cell.s);o.write_shift(1,0);return o}function parse_XLSBCodeName(data,length){return parse_XLWideString(data,length)}function parse_XLNullableWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0||cchCharacters===4294967295?"":data.read_shift(cchCharacters,"dbcs")}function write_XLNullableWideString(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.length>0?data.length:4294967295);if(data.length>0)o.write_shift(0,data,"dbcs");return o}function parse_XLWideString(data){var cchCharacters=data.read_shift(4);return cchCharacters===0?"":data.read_shift(cchCharacters,"dbcs")}function write_XLWideString(data,o){if(o==null)o=new_buf(4+2*data.length);o.write_shift(4,data.length);if(data.length>0)o.write_shift(0,data,"dbcs");return o}var parse_RelID=parse_XLNullableWideString;var write_RelID=write_XLNullableWideString;function parse_RkNumber(data){var b=data.slice(data.l,data.l+4);var fX100=b[0]&1,fInt=b[0]&2;data.l+=4;b[0]&=252;var RK=fInt===0?__double([0,0,0,0,b[0],b[1],b[2],b[3]],0):__readInt32LE(b,0)>>2;return fX100?RK/100:RK}function parse_UncheckedRfX(data){var cell={s:{},e:{}};cell.s.r=data.read_shift(4);cell.e.r=data.read_shift(4);cell.s.c=data.read_shift(4);cell.e.c=data.read_shift(4);return cell}function write_UncheckedRfX(r,o){if(!o)o=new_buf(16);o.write_shift(4,r.s.r);o.write_shift(4,r.e.r);o.write_shift(4,r.s.c);o.write_shift(4,r.e.c);return o}function parse_Xnum(data,length){return data.read_shift(8,"f")}function write_Xnum(data,o){return(o||new_buf(8)).write_shift(8,"f",data)}var BErr={0:"#NULL!",7:"#DIV/0!",15:"#VALUE!",23:"#REF!",29:"#NAME?",36:"#NUM!",42:"#N/A",43:"#GETTING_DATA",255:"#WTF?"};var RBErr=evert_num(BErr);function parse_BrtColor(data,length){var out={};var d=data.read_shift(1);out.fValidRGB=d&1;out.xColorType=d>>>1;out.index=data.read_shift(1);out.nTintAndShade=data.read_shift(2,"i");out.bRed=data.read_shift(1);out.bGreen=data.read_shift(1);out.bBlue=data.read_shift(1);out.bAlpha=data.read_shift(1)}function parse_FontFlags(data,length){var d=data.read_shift(1);data.l++;var out={fItalic:d&2,fStrikeout:d&8,fOutline:d&16,fShadow:d&32,fCondense:d&64,fExtend:d&128};return out}{var VT_EMPTY=0;var VT_NULL=1;var VT_I2=2;var VT_I4=3;var VT_R4=4;var VT_R8=5;var VT_CY=6;var VT_DATE=7;var VT_BSTR=8;var VT_ERROR=10;var VT_BOOL=11;var VT_VARIANT=12;var VT_DECIMAL=14;var VT_I1=16;var VT_UI1=17;var VT_UI2=18;var VT_UI4=19;var VT_I8=20;var VT_UI8=21;var VT_INT=22;var VT_UINT=23;var VT_LPSTR=30;var VT_LPWSTR=31;var VT_FILETIME=64;var VT_BLOB=65;var VT_STREAM=66;var VT_STORAGE=67;var VT_STREAMED_Object=68;var VT_STORED_Object=69;var VT_BLOB_Object=70;var VT_CF=71;var VT_CLSID=72;var VT_VERSIONED_STREAM=73;var VT_VECTOR=4096;var VT_ARRAY=8192;var VT_STRING=80;var VT_USTR=81;var VT_CUSTOM=[VT_STRING,VT_USTR]}var DocSummaryPIDDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Category",t:VT_STRING},3:{n:"PresentationFormat",t:VT_STRING},4:{n:"ByteCount",t:VT_I4},5:{n:"LineCount",t:VT_I4},6:{n:"ParagraphCount",t:VT_I4},7:{n:"SlideCount",t:VT_I4},8:{n:"NoteCount",t:VT_I4},9:{n:"HiddenCount",t:VT_I4},10:{n:"MultimediaClipCount",t:VT_I4},11:{n:"Scale",t:VT_BOOL},12:{n:"HeadingPair",t:VT_VECTOR|VT_VARIANT},13:{n:"DocParts",t:VT_VECTOR|VT_LPSTR},14:{n:"Manager",t:VT_STRING},15:{n:"Company",t:VT_STRING},16:{n:"LinksDirty",t:VT_BOOL},17:{n:"CharacterCount",t:VT_I4},19:{n:"SharedDoc",t:VT_BOOL},22:{n:"HLinksChanged",t:VT_BOOL},23:{n:"AppVersion",t:VT_I4,p:"version"},26:{n:"ContentType",t:VT_STRING},27:{n:"ContentStatus",t:VT_STRING},28:{n:"Language",t:VT_STRING},29:{n:"Version",t:VT_STRING},255:{}};var SummaryPIDSI={1:{n:"CodePage",t:VT_I2},2:{n:"Title",t:VT_STRING},3:{n:"Subject",t:VT_STRING},4:{n:"Author",t:VT_STRING},5:{n:"Keywords",t:VT_STRING},6:{n:"Comments",t:VT_STRING},7:{n:"Template",t:VT_STRING},8:{n:"LastAuthor",t:VT_STRING},9:{n:"RevNumber",t:VT_STRING},10:{n:"EditTime",t:VT_FILETIME},11:{n:"LastPrinted",t:VT_FILETIME},12:{n:"CreatedDate",t:VT_FILETIME},13:{n:"ModifiedDate",t:VT_FILETIME},14:{n:"PageCount",t:VT_I4},15:{n:"WordCount",t:VT_I4},16:{n:"CharCount",t:VT_I4},17:{n:"Thumbnail",t:VT_CF},18:{n:"ApplicationName",t:VT_LPSTR},19:{n:"DocumentSecurity",t:VT_I4},255:{}};var SpecialProperties={2147483648:{n:"Locale",t:VT_UI4},2147483651:{n:"Behavior",t:VT_UI4},1919054434:{}};(function(){for(var y in SpecialProperties)if(SpecialProperties.hasOwnProperty(y))DocSummaryPIDDSI[y]=SummaryPIDSI[y]=SpecialProperties[y]})();var CountryEnum={1:"US",2:"CA",3:"",7:"RU",20:"EG",30:"GR",31:"NL",32:"BE",33:"FR",34:"ES",36:"HU",39:"IT",41:"CH",43:"AT",44:"GB",45:"DK",46:"SE",47:"NO",48:"PL",49:"DE",52:"MX",55:"BR",61:"AU",64:"NZ",66:"TH",81:"JP",82:"KR",84:"VN",86:"CN",90:"TR",105:"JS",213:"DZ",216:"MA",218:"LY",351:"PT",354:"IS",358:"FI",420:"CZ",886:"TW",961:"LB",962:"JO",963:"SY",964:"IQ",965:"KW",966:"SA",971:"AE",972:"IL",974:"QA",981:"IR",65535:"US"};var XLSFillPattern=[null,"solid","mediumGray","darkGray","lightGray","darkHorizontal","darkVertical","darkDown","darkUp","darkGrid","darkTrellis","lightHorizontal","lightVertical","lightDown","lightUp","lightGrid","lightTrellis","gray125","gray0625"];function rgbify(arr){return arr.map(function(x){return[x>>16&255,x>>8&255,x&255]})}var XLSIcv=rgbify([0,16777215,16711680,65280,255,16776960,16711935,65535,0,16777215,16711680,65280,255,16776960,16711935,65535,8388608,32768,128,8421376,8388736,32896,12632256,8421504,10066431,10040166,16777164,13434879,6684774,16744576,26316,13421823,128,16711935,16776960,65535,8388736,8388608,32896,255,52479,13434879,13434828,16777113,10079487,16751052,13408767,16764057,3368703,3394764,10079232,16763904,16750848,16737792,6710937,9868950,13158,3381606,13056,3355392,10040064,10040166,3355545,3355443,16777215,0]);var ct2type={"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml":"workbooks","application/vnd.ms-excel.binIndexWs":"TODO","application/vnd.ms-excel.chartsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml":"TODO","application/vnd.ms-excel.dialogsheet":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml":"TODO","application/vnd.ms-excel.macrosheet":"TODO","application/vnd.ms-excel.macrosheet+xml":"TODO","application/vnd.ms-excel.intlmacrosheet":"TODO","application/vnd.ms-excel.binIndexMs":"TODO","application/vnd.openxmlformats-package.core-properties+xml":"coreprops","application/vnd.openxmlformats-officedocument.custom-properties+xml":"custprops","application/vnd.openxmlformats-officedocument.extended-properties+xml":"extprops","application/vnd.openxmlformats-officedocument.customXmlProperties+xml":"TODO","application/vnd.ms-excel.comments":"comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml":"comments","application/vnd.ms-excel.pivotTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml":"TODO","application/vnd.ms-excel.calcChain":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml":"calcchains","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings":"TODO","application/vnd.ms-office.activeX":"TODO","application/vnd.ms-office.activeX+xml":"TODO","application/vnd.ms-excel.attachedToolbars":"TODO","application/vnd.ms-excel.connections":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml":"TODO","application/vnd.ms-excel.externalLink":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml":"TODO","application/vnd.ms-excel.sheetMetadata":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml":"TODO","application/vnd.ms-excel.pivotCacheDefinition":"TODO","application/vnd.ms-excel.pivotCacheRecords":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml":"TODO","application/vnd.ms-excel.queryTable":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml":"TODO","application/vnd.ms-excel.userNames":"TODO","application/vnd.ms-excel.revisionHeaders":"TODO","application/vnd.ms-excel.revisionLog":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml":"TODO","application/vnd.ms-excel.tableSingleCells":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml":"TODO","application/vnd.ms-excel.slicer":"TODO","application/vnd.ms-excel.slicerCache":"TODO","application/vnd.ms-excel.slicer+xml":"TODO","application/vnd.ms-excel.slicerCache+xml":"TODO","application/vnd.ms-excel.wsSortMap":"TODO","application/vnd.ms-excel.table":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml":"TODO","application/vnd.openxmlformats-officedocument.theme+xml":"themes","application/vnd.ms-excel.Timeline+xml":"TODO","application/vnd.ms-excel.TimelineCache+xml":"TODO","application/vnd.ms-office.vbaProject":"vba","application/vnd.ms-office.vbaProjectSignature":"vba","application/vnd.ms-office.volatileDependencies":"TODO","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml":"TODO","application/vnd.ms-excel.controlproperties+xml":"TODO","application/vnd.openxmlformats-officedocument.model+data":"TODO","application/vnd.ms-excel.Survey+xml":"TODO","application/vnd.openxmlformats-officedocument.drawing+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chart+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml":"TODO","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml":"TODO","application/vnd.openxmlformats-officedocument.vmlDrawing":"TODO","application/vnd.openxmlformats-package.relationships+xml":"rels","application/vnd.openxmlformats-officedocument.oleObject":"TODO",sheet:"js"};var CT_LIST=function(){var o={workbooks:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml",xlsm:"application/vnd.ms-excel.sheet.macroEnabled.main+xml",xlsb:"application/vnd.ms-excel.sheet.binary.macroEnabled.main",xltx:"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml"},strs:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml",xlsb:"application/vnd.ms-excel.sharedStrings"},sheets:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml",xlsb:"application/vnd.ms-excel.worksheet"},styles:{xlsx:"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml",xlsb:"application/vnd.ms-excel.styles"}};keys(o).forEach(function(k){if(!o[k].xlsm)o[k].xlsm=o[k].xlsx});keys(o).forEach(function(k){keys(o[k]).forEach(function(v){ct2type[o[k][v]]=k +})});return o}();var type2ct=evert_arr(ct2type);XMLNS.CT="http://schemas.openxmlformats.org/package/2006/content-types";function parse_ct(data,opts){var ctext={};if(!data||!data.match)return data;var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};(data.match(tagregex)||[]).forEach(function(x){var y=parsexmltag(x);switch(y[0].replace(nsregex,"<")){case"0?ct.calcchains[0]:"";ct.sst=ct.strs.length>0?ct.strs[0]:"";ct.style=ct.styles.length>0?ct.styles[0]:"";ct.defaults=ctext;delete ct.calcchains;return ct}var CTYPE_XML_ROOT=writextag("Types",null,{xmlns:XMLNS.CT,"xmlns:xsd":XMLNS.xsd,"xmlns:xsi":XMLNS.xsi});var CTYPE_DEFAULTS=[["xml","application/xml"],["bin","application/vnd.ms-excel.sheet.binary.macroEnabled.main"],["rels",type2ct.rels[0]]].map(function(x){return writextag("Default",null,{Extension:x[0],ContentType:x[1]})});function write_ct(ct,opts){var o=[],v;o[o.length]=XML_HEADER;o[o.length]=CTYPE_XML_ROOT;o=o.concat(CTYPE_DEFAULTS);var f1=function(w){if(ct[w]&&ct[w].length>0){v=ct[w][0];o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})}};var f2=function(w){ct[w].forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:CT_LIST[w][opts.bookType||"xlsx"]})})};var f3=function(t){(ct[t]||[]).forEach(function(v){o[o.length]=writextag("Override",null,{PartName:(v[0]=="/"?"":"/")+v,ContentType:type2ct[t][0]})})};f1("workbooks");f2("sheets");f3("themes");["strs","styles"].forEach(f1);["coreprops","extprops","custprops"].forEach(f3);if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var RELS={WB:"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument",SHEET:"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument"};function parse_rels(data,currentFilePath){if(!data)return data;if(currentFilePath.charAt(0)!=="/"){currentFilePath="/"+currentFilePath}var rels={};var hash={};var resolveRelativePathIntoAbsolute=function(to){var toksFrom=currentFilePath.split("/");toksFrom.pop();var toksTo=to.split("/");var reversed=[];while(toksTo.length!==0){var tokTo=toksTo.shift();if(tokTo===".."){toksFrom.pop()}else if(tokTo!=="."){toksFrom.push(tokTo)}}return toksFrom.join("/")};data.match(tagregex).forEach(function(x){var y=parsexmltag(x);if(y[0]==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var CORE_PROPS=[["cp:category","Category"],["cp:contentStatus","ContentStatus"],["cp:keywords","Keywords"],["cp:lastModifiedBy","LastAuthor"],["cp:lastPrinted","LastPrinted"],["cp:revision","RevNumber"],["cp:version","Version"],["dc:creator","Author"],["dc:description","Comments"],["dc:identifier","Identifier"],["dc:language","Language"],["dc:subject","Subject"],["dc:title","Title"],["dcterms:created","CreatedDate","date"],["dcterms:modified","ModifiedDate","date"]];XMLNS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/metadata/core-properties";RELS.CORE_PROPS="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties";var CORE_PROPS_REGEX=function(){var r=new Array(CORE_PROPS.length);for(var i=0;i]*>(.*)")}return r}();function parse_core_props(data){var p={};for(var i=0;i0)p[f[1]]=cur[1];if(f[2]==="date"&&p[f[1]])p[f[1]]=new Date(p[f[1]])}return p}var CORE_PROPS_XML_ROOT=writextag("cp:coreProperties",null,{"xmlns:cp":XMLNS.CORE_PROPS,"xmlns:dc":XMLNS.dc,"xmlns:dcterms":XMLNS.dcterms,"xmlns:dcmitype":XMLNS.dcmitype,"xmlns:xsi":XMLNS.xsi});function cp_doit(f,g,h,o,p){if(p[f]!=null||g==null||g==="")return;p[f]=g;o[o.length]=h?writextag(f,g,h):writetag(f,g)}function write_core_props(cp,opts){var o=[XML_HEADER,CORE_PROPS_XML_ROOT],p={};if(!cp)return o.join("");if(cp.CreatedDate!=null)cp_doit("dcterms:created",typeof cp.CreatedDate==="string"?cp.CreatedDate:write_w3cdtf(cp.CreatedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);if(cp.ModifiedDate!=null)cp_doit("dcterms:modified",typeof cp.ModifiedDate==="string"?cp.ModifiedDate:write_w3cdtf(cp.ModifiedDate,opts.WTF),{"xsi:type":"dcterms:W3CDTF"},o,p);for(var i=0;i!=CORE_PROPS.length;++i){var f=CORE_PROPS[i];cp_doit(f[0],cp[f[1]],null,o,p)}if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}var EXT_PROPS=[["Application","Application","string"],["AppVersion","AppVersion","string"],["Company","Company","string"],["DocSecurity","DocSecurity","string"],["Manager","Manager","string"],["HyperlinksChanged","HyperlinksChanged","bool"],["SharedDoc","SharedDoc","bool"],["LinksUpToDate","LinksUpToDate","bool"],["ScaleCrop","ScaleCrop","bool"],["HeadingPairs","HeadingPairs","raw"],["TitlesOfParts","TitlesOfParts","raw"]];XMLNS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/extended-properties";RELS.EXT_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties";function parse_ext_props(data,p){var q={};if(!p)p={};EXT_PROPS.forEach(function(f){switch(f[2]){case"string":p[f[1]]=(data.match(matchtag(f[0]))||[])[1];break;case"bool":p[f[1]]=(data.match(matchtag(f[0]))||[])[1]==="true";break;case"raw":var cur=data.match(new RegExp("<"+f[0]+"[^>]*>(.*)"));if(cur&&cur.length>0)q[f[1]]=cur[1];break}});if(q.HeadingPairs&&q.TitlesOfParts){var v=parseVector(q.HeadingPairs);var j=0,widx=0;for(var i=0;i!==v.length;++i){switch(v[i].v){case"Worksheets":widx=j;p.Worksheets=+v[++i].v;break;case"Named Ranges":++i;break}}var parts=parseVector(q.TitlesOfParts).map(function(x){return utf8read(x.v)});p.SheetNames=parts.slice(widx,widx+p.Worksheets)}return p}var EXT_PROPS_XML_ROOT=writextag("Properties",null,{xmlns:XMLNS.EXT_PROPS,"xmlns:vt":XMLNS.vt});function write_ext_props(cp,opts){var o=[],p={},W=writextag;if(!cp)cp={};cp.Application="SheetJS";o[o.length]=XML_HEADER;o[o.length]=EXT_PROPS_XML_ROOT;EXT_PROPS.forEach(function(f){if(cp[f[1]]===undefined)return;var v;switch(f[2]){case"string":v=cp[f[1]];break;case"bool":v=cp[f[1]]?"true":"false";break}if(v!==undefined)o[o.length]=W(f[0],v)});o[o.length]=W("HeadingPairs",W("vt:vector",W("vt:variant","Worksheets")+W("vt:variant",W("vt:i4",String(cp.Worksheets))),{size:2,baseType:"variant"}));o[o.length]=W("TitlesOfParts",W("vt:vector",cp.SheetNames.map(function(s){return""+s+""}).join(""),{size:cp.Worksheets,baseType:"lpstr"}));if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}XMLNS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/custom-properties";RELS.CUST_PROPS="http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties";var custregex=/<[^>]+>[^<]*/g;function parse_cust_props(data,opts){var p={},name;var m=data.match(custregex);if(m)for(var i=0;i!=m.length;++i){var x=m[i],y=parsexmltag(x);switch(y[0]){case"":name=null;break;default:if(x.indexOf("");var type=toks[0].substring(4),text=toks[1];switch(type){case"lpstr":case"lpwstr":case"bstr":case"lpwstr":p[name]=unescapexml(text);break;case"bool":p[name]=parsexmlbool(text,"");break;case"i1":case"i2":case"i4":case"i8":case"int":case"uint":p[name]=parseInt(text,10);break;case"r4":case"r8":case"decimal":p[name]=parseFloat(text);break;case"filetime":case"date":p[name]=new Date(text);break;case"cy":case"error":p[name]=unescapexml(text);break;default:if(typeof console!=="undefined")console.warn("Unexpected",x,type,toks)}}else if(x.substr(0,2)==="2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function xlml_set_prop(Props,tag,val){switch(tag){case"Description":tag="Comments";break}Props[tag]=val}function parse_FILETIME(blob){var dwLowDateTime=blob.read_shift(4),dwHighDateTime=blob.read_shift(4);return new Date((dwHighDateTime/1e7*Math.pow(2,32)+dwLowDateTime/1e7-11644473600)*1e3).toISOString().replace(/\.000/,"")}function parse_lpstr(blob,type,pad){var str=blob.read_shift(0,"lpstr");if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_lpwstr(blob,type,pad){var str=blob.read_shift(0,"lpwstr");if(pad)blob.l+=4-(str.length+1&3)&3;return str}function parse_VtStringBase(blob,stringType,pad){if(stringType===31)return parse_lpwstr(blob);return parse_lpstr(blob,stringType,pad)}function parse_VtString(blob,t,pad){return parse_VtStringBase(blob,t,pad===false?0:4)}function parse_VtUnalignedString(blob,t){if(!t)throw new Error("dafuq?");return parse_VtStringBase(blob,t,0)}function parse_VtVecUnalignedLpstrValue(blob){var length=blob.read_shift(4);var ret=[];for(var i=0;i!=length;++i)ret[i]=blob.read_shift(0,"lpstr");return ret}function parse_VtVecUnalignedLpstr(blob){return parse_VtVecUnalignedLpstrValue(blob)}function parse_VtHeadingPair(blob){var headingString=parse_TypedPropertyValue(blob,VT_USTR);var headerParts=parse_TypedPropertyValue(blob,VT_I4);return[headingString,headerParts]}function parse_VtVecHeadingPairValue(blob){var cElements=blob.read_shift(4);var out=[];for(var i=0;i!=cElements/2;++i)out.push(parse_VtHeadingPair(blob));return out}function parse_VtVecHeadingPair(blob){return parse_VtVecHeadingPairValue(blob)}function parse_dictionary(blob,CodePage){var cnt=blob.read_shift(4);var dict={};for(var j=0;j!=cnt;++j){var pid=blob.read_shift(4);var len=blob.read_shift(4);dict[pid]=blob.read_shift(len,CodePage===1200?"utf16le":"utf8").replace(chr0,"").replace(chr1,"!")}if(blob.l&3)blob.l=blob.l>>2+1<<2;return dict}function parse_BLOB(blob){var size=blob.read_shift(4);var bytes=blob.slice(blob.l,blob.l+size);if(size&3>0)blob.l+=4-(size&3)&3;return bytes}function parse_ClipboardData(blob){var o={};o.Size=blob.read_shift(4);blob.l+=o.Size;return o}function parse_VtVector(blob,cb){}function parse_TypedPropertyValue(blob,type,_opts){var t=blob.read_shift(2),ret,opts=_opts||{};blob.l+=2;if(type!==VT_VARIANT)if(t!==type&&VT_CUSTOM.indexOf(type)===-1)throw new Error("Expected type "+type+" saw "+t);switch(type===VT_VARIANT?t:type){case 2:ret=blob.read_shift(2,"i");if(!opts.raw)blob.l+=2;return ret;case 3:ret=blob.read_shift(4,"i");return ret;case 11:return blob.read_shift(4)!==0;case 19:ret=blob.read_shift(4);return ret;case 30:return parse_lpstr(blob,t,4).replace(chr0,"");case 31:return parse_lpwstr(blob);case 64:return parse_FILETIME(blob);case 65:return parse_BLOB(blob);case 71:return parse_ClipboardData(blob);case 80:return parse_VtString(blob,t,!opts.raw&&4).replace(chr0,"");case 81:return parse_VtUnalignedString(blob,t,4).replace(chr0,"");case 4108:return parse_VtVecHeadingPair(blob);case 4126:return parse_VtVecUnalignedLpstr(blob);default:throw new Error("TypedPropertyValue unrecognized type "+type+" "+t)}}function parse_PropertySet(blob,PIDSI){var start_addr=blob.l;var size=blob.read_shift(4);var NumProps=blob.read_shift(4);var Props=[],i=0;var CodePage=0;var Dictionary=-1,DictObj;for(i=0;i!=NumProps;++i){var PropID=blob.read_shift(4);var Offset=blob.read_shift(4);Props[i]=[PropID,Offset+start_addr]}var PropH={};for(i=0;i!=NumProps;++i){if(blob.l!==Props[i][1]){var fail=true;if(i>0&&PIDSI)switch(PIDSI[Props[i-1][0]].t){case 2:if(blob.l+2===Props[i][1]){blob.l+=2;fail=false}break;case 80:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break;case 4108:if(blob.l<=Props[i][1]){blob.l=Props[i][1];fail=false}break}if(!PIDSI&&blob.l<=Props[i][1]){fail=false;blob.l=Props[i][1]}if(fail)throw new Error("Read Error: Expected address "+Props[i][1]+" at "+blob.l+" :"+i)}if(PIDSI){var piddsi=PIDSI[Props[i][0]];PropH[piddsi.n]=parse_TypedPropertyValue(blob,piddsi.t,{raw:true});if(piddsi.p==="version")PropH[piddsi.n]=String(PropH[piddsi.n]>>16)+"."+String(PropH[piddsi.n]&65535);if(piddsi.n=="CodePage")switch(PropH[piddsi.n]){case 0:PropH[piddsi.n]=1252;case 1e4:case 1252:case 874:case 1250:case 1251:case 1253:case 1254:case 1255:case 1256:case 1257:case 1258:case 932:case 936:case 949:case 950:case 1200:case 1201:case 65e3:case-536:case 65001:case-535:set_cp(CodePage=PropH[piddsi.n]);break;default:throw new Error("Unsupported CodePage: "+PropH[piddsi.n])}}else{if(Props[i][0]===1){CodePage=PropH.CodePage=parse_TypedPropertyValue(blob,VT_I2);set_cp(CodePage);if(Dictionary!==-1){var oldpos=blob.l;blob.l=Props[Dictionary][1];DictObj=parse_dictionary(blob,CodePage);blob.l=oldpos}}else if(Props[i][0]===0){if(CodePage===0){Dictionary=i;blob.l=Props[i+1][1];continue}DictObj=parse_dictionary(blob,CodePage)}else{var name=DictObj[Props[i][0]];var val;switch(blob[blob.l]){case 65:blob.l+=4;val=parse_BLOB(blob);break;case 30:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 31:blob.l+=4;val=parse_VtString(blob,blob[blob.l-4]);break;case 3:blob.l+=4;val=blob.read_shift(4,"i");break;case 19:blob.l+=4;val=blob.read_shift(4);break;case 5:blob.l+=4;val=blob.read_shift(8,"f");break;case 11:blob.l+=4;val=parsebool(blob,4);break;case 64:blob.l+=4;val=new Date(parse_FILETIME(blob));break;default:throw new Error("unparsed value: "+blob[blob.l])}PropH[name]=val}}}blob.l=start_addr+size;return PropH}function parse_PropertySetStream(file,PIDSI){var blob=file.content;prep_blob(blob,0);var NumSets,FMTID0,FMTID1,Offset0,Offset1;blob.chk("feff","Byte Order: ");var vers=blob.read_shift(2);var SystemIdentifier=blob.read_shift(4);blob.chk(CFB.utils.consts.HEADER_CLSID,"CLSID: ");NumSets=blob.read_shift(4);if(NumSets!==1&&NumSets!==2)throw"Unrecognized #Sets: "+NumSets;FMTID0=blob.read_shift(16);Offset0=blob.read_shift(4);if(NumSets===1&&Offset0!==blob.l)throw"Length mismatch";else if(NumSets===2){FMTID1=blob.read_shift(16);Offset1=blob.read_shift(4)}var PSet0=parse_PropertySet(blob,PIDSI);var rval={SystemIdentifier:SystemIdentifier};for(var y in PSet0)rval[y]=PSet0[y];rval.FMTID=FMTID0;if(NumSets===1)return rval;if(blob.l!==Offset1)throw"Length mismatch 2: "+blob.l+" !== "+Offset1;var PSet1;try{PSet1=parse_PropertySet(blob,null)}catch(e){}for(y in PSet1)rval[y]=PSet1[y];rval.FMTID=[FMTID0,FMTID1];return rval}function parsenoop2(blob,length){blob.read_shift(length);return null}function parslurp(blob,length,cb){var arr=[],target=blob.l+length;while(blob.l=8)current_codepage=1200;if(opts===undefined||opts.biff!==5){var fHighByte=blob.read_shift(1);if(fHighByte){width=2;encoding="dbcs-cont"}}var o=cch?blob.read_shift(cch,encoding):"";current_codepage=cp;return o}function parse_XLUnicodeRichExtendedString(blob){var cp=current_codepage;current_codepage=1200;var cch=blob.read_shift(2),flags=blob.read_shift(1);var fHighByte=flags&1,fExtSt=flags&4,fRichSt=flags&8;var width=1+(flags&1);var cRun,cbExtRst;var z={};if(fRichSt)cRun=blob.read_shift(2);if(fExtSt)cbExtRst=blob.read_shift(4);var encoding=flags&1?"dbcs-cont":"sbcs-cont";var msg=cch===0?"":blob.read_shift(cch,encoding);if(fRichSt)blob.l+=4*cRun;if(fExtSt)blob.l+=cbExtRst;z.t=msg;if(!fRichSt){z.raw=""+z.t+"";z.r=z.t}current_codepage=cp;return z}function parse_XLUnicodeStringNoCch(blob,cch,opts){var retval;var fHighByte=blob.read_shift(1);if(fHighByte===0){retval=blob.read_shift(cch,"sbcs-cont")}else{retval=blob.read_shift(cch,"dbcs-cont")}return retval}function parse_XLUnicodeString(blob,length,opts){var cch=blob.read_shift(opts!==undefined&&opts.biff>0&&opts.biff<8?1:2);if(cch===0){blob.l++;return""}return parse_XLUnicodeStringNoCch(blob,cch,opts)}function parse_XLUnicodeString2(blob,length,opts){if(opts.biff!==5&&opts.biff!==2)return parse_XLUnicodeString(blob,length,opts);var cch=blob.read_shift(1);if(cch===0){blob.l++;return""}return blob.read_shift(cch,"sbcs-cont")}var parse_ControlInfo=parsenoop;var parse_URLMoniker=function(blob,length){var len=blob.read_shift(4),start=blob.l;var extra=false;if(len>24){blob.l+=len-24;if(blob.read_shift(16)==="795881f43b1d7f48af2c825dc4852763")extra=true;blob.l=start}var url=blob.read_shift((extra?len-24:len)>>1,"utf16le").replace(chr0,"");if(extra)blob.l+=24;return url};var parse_FileMoniker=function(blob,length){var cAnti=blob.read_shift(2);var ansiLength=blob.read_shift(4);var ansiPath=blob.read_shift(ansiLength,"cstr");var endServer=blob.read_shift(2);var versionNumber=blob.read_shift(2);var cbUnicodePathSize=blob.read_shift(4);if(cbUnicodePathSize===0)return ansiPath.replace(/\\/g,"/");var cbUnicodePathBytes=blob.read_shift(4);var usKeyValue=blob.read_shift(2);var unicodePath=blob.read_shift(cbUnicodePathBytes>>1,"utf16le").replace(chr0,"");return unicodePath};var parse_HyperlinkMoniker=function(blob,length){var clsid=blob.read_shift(16);length-=16;switch(clsid){case"e0c9ea79f9bace118c8200aa004ba90b":return parse_URLMoniker(blob,length);case"0303000000000000c000000000000046":return parse_FileMoniker(blob,length);default:throw"unsupported moniker "+clsid}};var parse_HyperlinkString=function(blob,length){var len=blob.read_shift(4);var o=blob.read_shift(len,"utf16le").replace(chr0,"");return o};var parse_Hyperlink=function(blob,length){var end=blob.l+length;var sVer=blob.read_shift(4);if(sVer!==2)throw new Error("Unrecognized streamVersion: "+sVer);var flags=blob.read_shift(2);blob.l+=2;var displayName,targetFrameName,moniker,oleMoniker,location,guid,fileTime;if(flags&16)displayName=parse_HyperlinkString(blob,end-blob.l);if(flags&128)targetFrameName=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===257)moniker=parse_HyperlinkString(blob,end-blob.l);if((flags&257)===1)oleMoniker=parse_HyperlinkMoniker(blob,end-blob.l);if(flags&8)location=parse_HyperlinkString(blob,end-blob.l);if(flags&32)guid=blob.read_shift(16);if(flags&64)fileTime=parse_FILETIME(blob,8);blob.l=end;var target=targetFrameName||moniker||oleMoniker;if(location)target+="#"+location;return{Target:target}};function parse_LongRGBA(blob,length){var r=blob.read_shift(1),g=blob.read_shift(1),b=blob.read_shift(1),a=blob.read_shift(1);return[r,g,b,a]}function parse_LongRGB(blob,length){var x=parse_LongRGBA(blob,length);x[3]=0;return x}function parse_XLSCell(blob,length){var rw=blob.read_shift(2);var col=blob.read_shift(2);var ixfe=blob.read_shift(2);return{r:rw,c:col,ixfe:ixfe}}function parse_frtHeader(blob){var rt=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=8;return{type:rt,flags:flags}}function parse_OptXLUnicodeString(blob,length,opts){return length===0?"":parse_XLUnicodeString2(blob,length,opts)}var HIDEOBJENUM=["SHOWALL","SHOWPLACEHOLDER","HIDEALL"];var parse_HideObjEnum=parseuint16;function parse_XTI(blob,length){var iSupBook=blob.read_shift(2),itabFirst=blob.read_shift(2,"i"),itabLast=blob.read_shift(2,"i");return[iSupBook,itabFirst,itabLast]}function parse_RkRec(blob,length){var ixfe=blob.read_shift(2);var RK=parse_RkNumber(blob);return[ixfe,RK]}function parse_AddinUdf(blob,length){blob.l+=4;length-=4;var l=blob.l+length;var udfName=parse_ShortXLUnicodeString(blob,length);var cb=blob.read_shift(2);l-=blob.l;if(cb!==l)throw"Malformed AddinUdf: padding = "+l+" != "+cb;blob.l+=cb;return udfName}function parse_Ref8U(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(2);var colLast=blob.read_shift(2);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}function parse_RefU(blob,length){var rwFirst=blob.read_shift(2);var rwLast=blob.read_shift(2);var colFirst=blob.read_shift(1);var colLast=blob.read_shift(1);return{s:{c:colFirst,r:rwFirst},e:{c:colLast,r:rwLast}}}var parse_Ref=parse_RefU;function parse_FtCmo(blob,length){blob.l+=4;var ot=blob.read_shift(2);var id=blob.read_shift(2);var flags=blob.read_shift(2);blob.l+=12;return[id,ot,flags]}function parse_FtNts(blob,length){var out={};blob.l+=4;blob.l+=16;out.fSharedNote=blob.read_shift(2);blob.l+=4;return out}function parse_FtCf(blob,length){var out={};blob.l+=4;blob.cf=blob.read_shift(2);return out}var FtTab={21:parse_FtCmo,19:parsenoop,18:function(blob,length){blob.l+=12},17:function(blob,length){blob.l+=8},16:parsenoop,15:parsenoop,13:parse_FtNts,12:function(blob,length){blob.l+=24},11:function(blob,length){blob.l+=10},10:function(blob,length){blob.l+=16},9:parsenoop,8:function(blob,length){blob.l+=6},7:parse_FtCf,6:function(blob,length){blob.l+=6},4:parsenoop,0:function(blob,length){blob.l+=4}};function parse_FtArray(blob,length,ot){var s=blob.l;var fts=[];while(blob.l":case"":break;case"":pass=false;break;case"":pass=false;break;default:if(!pass&&opts.WTF)throw"unrecognized "+y[0]+" in workbook"}});if(XMLNS.main.indexOf(wb.xmlns)===-1)throw new Error("Unknown Namespace: "+wb.xmlns);parse_wb_defaults(wb);return wb}var WB_XML_ROOT=writextag("workbook",null,{xmlns:XMLNS.main[0],"xmlns:r":XMLNS.r});function safe1904(wb){try{return parsexmlbool(wb.Workbook.WBProps.date1904)?"true":"false"}catch(e){return"false"}}function write_wb_xml(wb,opts){var o=[XML_HEADER];o[o.length]=WB_XML_ROOT;o[o.length]=writextag("workbookPr",null,{date1904:safe1904(wb)});o[o.length]="";for(var i=0;i!=wb.SheetNames.length;++i)o[o.length]=writextag("sheet",null,{name:wb.SheetNames[i].substr(0,31),sheetId:""+(i+1),"r:id":"rId"+(i+1)});o[o.length]="";if(o.length>2){o[o.length]="";o[1]=o[1].replace("/>",">")}return o.join("")}function parse_BrtBundleSh(data,length){var z={};z.hsState=data.read_shift(4);z.iTabID=data.read_shift(4);z.strRelID=parse_RelID(data,length-8);z.name=parse_XLWideString(data);return z}function write_BrtBundleSh(data,o){if(!o)o=new_buf(127);o.write_shift(4,data.hsState);o.write_shift(4,data.iTabID);write_RelID(data.strRelID,o);write_XLWideString(data.name.substr(0,31),o);return o}function parse_BrtWbProp(data,length){data.read_shift(4);var dwThemeVersion=data.read_shift(4);var strName=length>8?parse_XLWideString(data):"";return[dwThemeVersion,strName]}function write_BrtWbProp(data,o){if(!o)o=new_buf(8);o.write_shift(4,0);o.write_shift(4,0);return o}function parse_BrtFRTArchID$(data,length){var o={};data.read_shift(4);o.ArchID=data.read_shift(4);data.l+=length-8;return o}function parse_wb_bin(data,opts){var wb={AppVersion:{},WBProps:{},WBView:[],Sheets:[],CalcPr:{},xmlns:""};var pass=false,z;recordhopper(data,function hopper_wb(val,R){switch(R.n){case"BrtBundleSh":wb.Sheets.push(val);break;case"BrtBeginBook":break;case"BrtFileVersion":break;case"BrtWbProp":break;case"BrtACBegin":break;case"BrtAbsPath15":break;case"BrtACEnd":break;case"BrtWbFactoid":break;case"BrtBookProtection":break;case"BrtBeginBookViews":break;case"BrtBookView":break;case"BrtEndBookViews":break;case"BrtBeginBundleShs":break;case"BrtEndBundleShs":break;case"BrtBeginFnGroup":break;case"BrtEndFnGroup":break;case"BrtBeginExternals":break;case"BrtSupSelf":break;case"BrtSupBookSrc":break;case"BrtExternSheet":break;case"BrtEndExternals":break;case"BrtName":break;case"BrtCalcProp":break;case"BrtUserBookView":break;case"BrtBeginPivotCacheIDs":break;case"BrtBeginPivotCacheID":break;case"BrtEndPivotCacheID":break;case"BrtEndPivotCacheIDs":break;case"BrtWebOpt":break;case"BrtFileRecover":break;case"BrtFileSharing":break;case"BrtBeginSmartTagTypes":break;case"BrtSmartTagType":break;case"BrtEndSmartTagTypes":break;case"BrtFRTBegin":pass=true;break;case"BrtFRTArchID$":break;case"BrtWorkBookPr15":break;case"BrtFRTEnd":pass=false;break;case"BrtEndBook":break;default:if(!pass||opts.WTF)throw new Error("Unexpected record "+R.n)}});parse_wb_defaults(wb);return wb}function write_BUNDLESHS(ba,wb,opts){write_record(ba,"BrtBeginBundleShs");for(var idx=0;idx!=wb.SheetNames.length;++idx){var d={hsState:0,iTabID:idx+1,strRelID:"rId"+(idx+1),name:wb.SheetNames[idx]};write_record(ba,"BrtBundleSh",write_BrtBundleSh(d))}write_record(ba,"BrtEndBundleShs")}function write_BrtFileVersion(data,o){if(!o)o=new_buf(127);for(var i=0;i!=4;++i)o.write_shift(4,0);write_XLWideString("SheetJS",o);write_XLWideString(XLSX.version,o);write_XLWideString(XLSX.version,o);write_XLWideString("7262",o);o.length=o.l;return o}function write_BOOKVIEWS(ba,wb,opts){write_record(ba,"BrtBeginBookViews");write_record(ba,"BrtEndBookViews")}function write_BrtCalcProp(data,o){if(!o)o=new_buf(26);o.write_shift(4,0);o.write_shift(4,1);o.write_shift(4,0);write_Xnum(0,o);o.write_shift(-4,1023);o.write_shift(1,51);o.write_shift(1,0);return o}function write_BrtFileRecover(data,o){if(!o)o=new_buf(1);o.write_shift(1,0);return o}function write_wb_bin(wb,opts){var ba=buf_array();write_record(ba,"BrtBeginBook");write_record(ba,"BrtFileVersion",write_BrtFileVersion());write_record(ba,"BrtWbProp",write_BrtWbProp());write_BOOKVIEWS(ba,wb,opts);write_BUNDLESHS(ba,wb,opts);write_record(ba,"BrtCalcProp",write_BrtCalcProp());write_record(ba,"BrtFileRecover",write_BrtFileRecover());write_record(ba,"BrtEndBook");return ba.end()}function parse_wb(data,name,opts){return(name.substr(-4)===".bin"?parse_wb_bin:parse_wb_xml)(data,opts)}function parse_ws(data,name,opts,rels){return(name.substr(-4)===".bin"?parse_ws_bin:parse_ws_xml)(data,opts,rels)}function parse_sty(data,name,opts){return(name.substr(-4)===".bin"?parse_sty_bin:parse_sty_xml)(data,opts)}function parse_theme(data,name,opts){return parse_theme_xml(data,opts)}function parse_sst(data,name,opts){return(name.substr(-4)===".bin"?parse_sst_bin:parse_sst_xml)(data,opts)}function parse_cmnt(data,name,opts){return(name.substr(-4)===".bin"?parse_comments_bin:parse_comments_xml)(data,opts)}function parse_cc(data,name,opts){return(name.substr(-4)===".bin"?parse_cc_bin:parse_cc_xml)(data,opts)}function write_wb(wb,name,opts){return(name.substr(-4)===".bin"?write_wb_bin:write_wb_xml)(wb,opts)}function write_ws(data,name,opts,wb){return(name.substr(-4)===".bin"?write_ws_bin:write_ws_xml)(data,opts,wb) +}function write_sty(data,name,opts){return(name.substr(-4)===".bin"?write_sty_bin:write_sty_xml)(data,opts)}function write_sst(data,name,opts){return(name.substr(-4)===".bin"?write_sst_bin:write_sst_xml)(data,opts)}var attregexg2=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g;var attregex2=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/;var _chr=function(c){return String.fromCharCode(c)};function xlml_parsexmltag(tag,skip_root){var words=tag.split(/\s+/);var z=[];if(!skip_root)z[0]=words[0];if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_parsexmltagobj(tag){var words=tag.split(/\s+/);var z={};if(words.length===1)return z;var m=tag.match(attregexg2),y,j,w,i;if(m)for(i=0;i!=m.length;++i){y=m[i].match(attregex2);if((j=y[1].indexOf(":"))===-1)z[y[1]]=y[2].substr(1,y[2].length-2);else{if(y[1].substr(0,6)==="xmlns:")w="xmlns"+y[1].substr(6);else w=y[1].substr(j+1);z[w]=y[2].substr(1,y[2].length-2)}}return z}function xlml_format(format,value){var fmt=XLMLFormatMap[format]||unescapexml(format);if(fmt==="General")return SSF._general(value);return SSF.format(fmt,value)}function xlml_set_custprop(Custprops,Rn,cp,val){switch((cp[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]){case"boolean":val=parsexmlbool(val);break;case"i2":case"int":val=parseInt(val,10);break;case"r4":case"float":val=parseFloat(val);break;case"date":case"dateTime.tz":val=new Date(val);break;case"i8":case"string":case"fixed":case"uuid":case"bin.base64":break;default:throw"bad custprop:"+cp[0]}Custprops[unescapexml(Rn[3])]=val}function safe_format_xlml(cell,nf,o){try{if(cell.t==="e"){cell.w=cell.w||BErr[cell.v]}else if(nf==="General"){if(cell.t==="n"){if((cell.v|0)===cell.v)cell.w=SSF._general_int(cell.v);else cell.w=SSF._general_num(cell.v)}else cell.w=SSF._general(cell.v)}else cell.w=xlml_format(nf||"General",cell.v);if(o.cellNF)cell.z=XLMLFormatMap[nf]||nf||"General"}catch(e){if(o.WTF)throw e}}function process_style_xlml(styles,stag,opts){if(opts.cellStyles){if(stag.Interior){var I=stag.Interior;if(I.Pattern)I.patternType=XLMLPatternTypeMap[I.Pattern]||I.Pattern}}styles[stag.ID]=stag}function parse_xlml_data(xml,ss,data,cell,base,styles,csty,row,o){var nf="General",sid=cell.StyleID,S={};o=o||{};var interiors=[];if(sid===undefined&&row)sid=row.StyleID;if(sid===undefined&&csty)sid=csty.StyleID;while(styles[sid]!==undefined){if(styles[sid].nf)nf=styles[sid].nf;if(styles[sid].Interior)interiors.push(styles[sid].Interior);if(!styles[sid].Parent)break;sid=styles[sid].Parent}switch(data.Type){case"Boolean":cell.t="b";cell.v=parsexmlbool(xml);break;case"String":cell.t="s";cell.r=xlml_fixstr(unescapexml(xml));cell.v=xml.indexOf("<")>-1?ss:cell.r;break;case"DateTime":cell.v=(Date.parse(xml)-new Date(Date.UTC(1899,11,30)))/(24*60*60*1e3);if(cell.v!==cell.v)cell.v=unescapexml(xml);else if(cell.v>=1&&cell.v<60)cell.v=cell.v-1;if(!nf||nf=="General")nf="yyyy-mm-dd";case"Number":if(cell.v===undefined)cell.v=+xml;if(!cell.t)cell.t="n";break;case"Error":cell.t="e";cell.v=RBErr[xml];cell.w=xml;break;default:cell.t="s";cell.v=xlml_fixstr(ss);break}safe_format_xlml(cell,nf,o);if(o.cellFormula!=null&&cell.Formula){cell.f=rc_to_a1(unescapexml(cell.Formula),base);cell.Formula=undefined}if(o.cellStyles){interiors.forEach(function(x){if(!S.patternType&&x.patternType)S.patternType=x.patternType});cell.s=S}cell.ixfe=cell.StyleID!==undefined?cell.StyleID:"Default"}function xlml_clean_comment(comment){comment.t=comment.v;comment.v=comment.w=comment.ixfe=undefined}function xlml_normalize(d){if(has_buf&&Buffer.isBuffer(d))return d.toString("utf8");if(typeof d==="string")return d;throw"badf"}var xlmlregex=/<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/gm;function parse_xlml_xml(d,opts){var str=xlml_normalize(d);var Rn;var state=[],tmp;var sheets={},sheetnames=[],cursheet={},sheetname="";var table={},cell={},row={},dtag,didx;var c=0,r=0;var refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};var styles={},stag={};var ss="",fidx=0;var mergecells=[];var Props={},Custprops={},pidx=0,cp={};var comments=[],comment={};var cstys=[],csty;xlmlregex.lastIndex=0;while(Rn=xlmlregex.exec(str))switch(Rn[3]){case"Data":if(state[state.length-1][1])break;if(Rn[1]==="/")parse_xlml_data(str.slice(didx,Rn.index),ss,dtag,state[state.length-1][0]=="Comment"?comment:cell,{c:c,r:r},styles,cstys[c],row,opts);else{ss="";dtag=xlml_parsexmltag(Rn[0]);didx=Rn.index+Rn[0].length}break;case"Cell":if(Rn[1]==="/"){if(comments.length>0)cell.c=comments;if((!opts.sheetRows||opts.sheetRows>r)&&cell.v!==undefined)cursheet[encode_col(c)+encode_row(r)]=cell;if(cell.HRef){cell.l={Target:cell.HRef,tooltip:cell.HRefScreenTip};cell.HRef=cell.HRefScreenTip=undefined}if(cell.MergeAcross||cell.MergeDown){var cc=c+(parseInt(cell.MergeAcross,10)|0);var rr=r+(parseInt(cell.MergeDown,10)|0);mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}})}++c;if(cell.MergeAcross)c+=+cell.MergeAcross}else{cell=xlml_parsexmltagobj(Rn[0]);if(cell.Index)c=+cell.Index-1;if(crefguess.e.c)refguess.e.c=c;if(Rn[0].substr(-2)==="/>")++c;comments=[]}break;case"Row":if(Rn[1]==="/"||Rn[0].substr(-2)==="/>"){if(rrefguess.e.r)refguess.e.r=r;if(Rn[0].substr(-2)==="/>"){row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}c=0;++r}else{row=xlml_parsexmltag(Rn[0]);if(row.Index)r=+row.Index-1}break;case"Worksheet":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;sheetnames.push(sheetname);if(refguess.s.r<=refguess.e.r&&refguess.s.c<=refguess.e.c)cursheet["!ref"]=encode_range(refguess);if(mergecells.length)cursheet["!merges"]=mergecells;sheets[sheetname]=cursheet}else{refguess={s:{r:1e6,c:1e6},e:{r:0,c:0}};r=c=0;state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);sheetname=tmp.Name;cursheet={};mergecells=[]}break;case"Table":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].slice(-2)=="/>")break;else{table=xlml_parsexmltag(Rn[0]);state.push([Rn[3],false]);cstys=[]}break;case"Style":if(Rn[1]==="/")process_style_xlml(styles,stag,opts);else stag=xlml_parsexmltag(Rn[0]);break;case"NumberFormat":stag.nf=xlml_parsexmltag(Rn[0]).Format||"General";break;case"Column":if(state[state.length-1][0]!=="Table")break;csty=xlml_parsexmltag(Rn[0]);cstys[csty.Index-1||cstys.length]=csty;for(var i=0;i<+csty.Span;++i)cstys[cstys.length]=csty;break;case"NamedRange":break;case"NamedCell":break;case"B":break;case"I":break;case"U":break;case"S":break;case"Sub":break;case"Sup":break;case"Span":break;case"Border":break;case"Alignment":break;case"Borders":break;case"Font":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")ss+=str.slice(fidx,Rn.index);else fidx=Rn.index+Rn[0].length;break;case"Interior":if(!opts.cellStyles)break;stag.Interior=xlml_parsexmltag(Rn[0]);break;case"Protection":break;case"Author":case"Title":case"Description":case"Created":case"Keywords":case"Subject":case"Category":case"Company":case"LastAuthor":case"LastSaved":case"LastPrinted":case"Version":case"Revision":case"TotalTime":case"HyperlinkBase":case"Manager":if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_prop(Props,Rn[3],str.slice(pidx,Rn.index));else pidx=Rn.index+Rn[0].length;break;case"Paragraphs":break;case"Styles":case"Workbook":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else state.push([Rn[3],false]);break;case"Comment":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp;xlml_clean_comment(comment);comments.push(comment)}else{state.push([Rn[3],false]);tmp=xlml_parsexmltag(Rn[0]);comment={a:tmp.Author}}break;case"Name":break;case"ComponentOptions":case"DocumentProperties":case"CustomDocumentProperties":case"OfficeDocumentSettings":case"PivotTable":case"PivotCache":case"Names":case"MapInfo":case"PageBreaks":case"QueryTable":case"DataValidation":case"AutoFilter":case"Sorting":case"Schema":case"data":case"ConditionalFormatting":case"SmartTagType":case"SmartTags":case"ExcelWorkbook":case"WorkbookOptions":case"WorksheetOptions":if(Rn[1]==="/"){if((tmp=state.pop())[0]!==Rn[3])throw"Bad state: "+tmp}else if(Rn[0].charAt(Rn[0].length-2)!=="/")state.push([Rn[3],true]);break;default:var seen=true;switch(state[state.length-1][0]){case"OfficeDocumentSettings":switch(Rn[3]){case"AllowPNG":break;case"RemovePersonalInformation":break;case"DownloadComponents":break;case"LocationOfComponents":break;case"Colors":break;case"Color":break;case"Index":break;case"RGB":break;case"PixelsPerInch":break;case"TargetScreenSize":break;case"ReadOnlyRecommended":break;default:seen=false}break;case"ComponentOptions":switch(Rn[3]){case"Toolbar":break;case"HideOfficeLogo":break;case"SpreadsheetAutoFit":break;case"Label":break;case"Caption":break;case"MaxHeight":break;case"MaxWidth":break;case"NextSheetNumber":break;default:seen=false}break;case"ExcelWorkbook":switch(Rn[3]){case"WindowHeight":break;case"WindowWidth":break;case"WindowTopX":break;case"WindowTopY":break;case"TabRatio":break;case"ProtectStructure":break;case"ProtectWindows":break;case"ActiveSheet":break;case"DisplayInkNotes":break;case"FirstVisibleSheet":break;case"SupBook":break;case"SheetName":break;case"SheetIndex":break;case"SheetIndexFirst":break;case"SheetIndexLast":break;case"Dll":break;case"AcceptLabelsInFormulas":break;case"DoNotSaveLinkValues":break;case"Date1904":break;case"Iteration":break;case"MaxIterations":break;case"MaxChange":break;case"Path":break;case"Xct":break;case"Count":break;case"SelectedSheets":break;case"Calculation":break;case"Uncalced":break;case"StartupPrompt":break;case"Crn":break;case"ExternName":break;case"Formula":break;case"ColFirst":break;case"ColLast":break;case"WantAdvise":break;case"Boolean":break;case"Error":break;case"Text":break;case"OLE":break;case"NoAutoRecover":break;case"PublishObjects":break;case"DoNotCalculateBeforeSave":break;case"Number":break;case"RefModeR1C1":break;case"EmbedSaveSmartTags":break;default:seen=false}break;case"WorkbookOptions":switch(Rn[3]){case"OWCVersion":break;case"Height":break;case"Width":break;default:seen=false}break;case"WorksheetOptions":switch(Rn[3]){case"Unsynced":break;case"Visible":break;case"Print":break;case"Panes":break;case"Scale":break;case"Pane":break;case"Number":break;case"Layout":break;case"Header":break;case"Footer":break;case"PageSetup":break;case"PageMargins":break;case"Selected":break;case"ProtectObjects":break;case"EnableSelection":break;case"ProtectScenarios":break;case"ValidPrinterInfo":break;case"HorizontalResolution":break;case"VerticalResolution":break;case"NumberofCopies":break;case"ActiveRow":break;case"ActiveCol":break;case"ActivePane":break;case"TopRowVisible":break;case"TopRowBottomPane":break;case"LeftColumnVisible":break;case"LeftColumnRightPane":break;case"FitToPage":break;case"RangeSelection":break;case"PaperSizeIndex":break;case"PageLayoutZoom":break;case"PageBreakZoom":break;case"FilterOn":break;case"DoNotDisplayGridlines":break;case"SplitHorizontal":break;case"SplitVertical":break;case"FreezePanes":break;case"FrozenNoSplit":break;case"FitWidth":break;case"FitHeight":break;case"CommentsLayout":break;case"Zoom":break;case"LeftToRight":break;case"Gridlines":break;case"AllowSort":break;case"AllowFilter":break;case"AllowInsertRows":break;case"AllowDeleteRows":break;case"AllowInsertCols":break;case"AllowDeleteCols":break;case"AllowInsertHyperlinks":break;case"AllowFormatCells":break;case"AllowSizeCols":break;case"AllowSizeRows":break;case"NoSummaryRowsBelowDetail":break;case"TabColorIndex":break;case"DoNotDisplayHeadings":break;case"ShowPageLayoutZoom":break;case"NoSummaryColumnsRightDetail":break;case"BlackAndWhite":break;case"DoNotDisplayZeros":break;case"DisplayPageBreak":break;case"RowColHeadings":break;case"DoNotDisplayOutline":break;case"NoOrientation":break;case"AllowUsePivotTables":break;case"ZeroHeight":break;case"ViewableRange":break;case"Selection":break;case"ProtectContents":break;default:seen=false}break;case"PivotTable":case"PivotCache":switch(Rn[3]){case"ImmediateItemsOnDrop":break;case"ShowPageMultipleItemLabel":break;case"CompactRowIndent":break;case"Location":break;case"PivotField":break;case"Orientation":break;case"LayoutForm":break;case"LayoutSubtotalLocation":break;case"LayoutCompactRow":break;case"Position":break;case"PivotItem":break;case"DataType":break;case"DataField":break;case"SourceName":break;case"ParentField":break;case"PTLineItems":break;case"PTLineItem":break;case"CountOfSameItems":break;case"Item":break;case"ItemType":break;case"PTSource":break;case"CacheIndex":break;case"ConsolidationReference":break;case"FileName":break;case"Reference":break;case"NoColumnGrand":break;case"NoRowGrand":break;case"BlankLineAfterItems":break;case"Hidden":break;case"Subtotal":break;case"BaseField":break;case"MapChildItems":break;case"Function":break;case"RefreshOnFileOpen":break;case"PrintSetTitles":break;case"MergeLabels":break;case"DefaultVersion":break;case"RefreshName":break;case"RefreshDate":break;case"RefreshDateCopy":break;case"VersionLastRefresh":break;case"VersionLastUpdate":break;case"VersionUpdateableMin":break;case"VersionRefreshableMin":break;case"Calculation":break;default:seen=false}break;case"PageBreaks":switch(Rn[3]){case"ColBreaks":break;case"ColBreak":break;case"RowBreaks":break;case"RowBreak":break;case"ColStart":break;case"ColEnd":break;case"RowEnd":break;default:seen=false}break;case"AutoFilter":switch(Rn[3]){case"AutoFilterColumn":break;case"AutoFilterCondition":break;case"AutoFilterAnd":break;case"AutoFilterOr":break;default:seen=false}break;case"QueryTable":switch(Rn[3]){case"Id":break;case"AutoFormatFont":break;case"AutoFormatPattern":break;case"QuerySource":break;case"QueryType":break;case"EnableRedirections":break;case"RefreshedInXl9":break;case"URLString":break;case"HTMLTables":break;case"Connection":break;case"CommandText":break;case"RefreshInfo":break;case"NoTitles":break;case"NextId":break;case"ColumnInfo":break;case"OverwriteCells":break;case"DoNotPromptForFile":break;case"TextWizardSettings":break;case"Source":break;case"Number":break;case"Decimal":break;case"ThousandSeparator":break;case"TrailingMinusNumbers":break;case"FormatSettings":break;case"FieldType":break;case"Delimiters":break;case"Tab":break;case"Comma":break;case"AutoFormatName":break;case"VersionLastEdit":break;case"VersionLastRefresh":break;default:seen=false}break;case"Sorting":case"ConditionalFormatting":case"DataValidation":switch(Rn[3]){case"Range":break;case"Type":break;case"Min":break;case"Max":break;case"Sort":break;case"Descending":break;case"Order":break;case"CaseSensitive":break;case"Value":break;case"ErrorStyle":break;case"ErrorMessage":break;case"ErrorTitle":break;case"CellRangeList":break;case"InputMessage":break;case"InputTitle":break;case"ComboHide":break;case"InputHide":break;case"Condition":break;case"Qualifier":break;case"UseBlank":break;case"Value1":break;case"Value2":break;case"Format":break;default:seen=false}break;case"MapInfo":case"Schema":case"data":switch(Rn[3]){case"Map":break;case"Entry":break;case"Range":break;case"XPath":break;case"Field":break;case"XSDType":break;case"FilterOn":break;case"Aggregate":break;case"ElementType":break;case"AttributeType":break;case"schema":case"element":case"complexType":case"datatype":case"all":case"attribute":case"extends":break;case"row":break;default:seen=false}break;case"SmartTags":break;default:seen=false;break}if(seen)break;if(!state[state.length-1][1])throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|");if(state[state.length-1][0]==="CustomDocumentProperties"){if(Rn[0].substr(-2)==="/>")break;else if(Rn[1]==="/")xlml_set_custprop(Custprops,Rn,cp,str.slice(pidx,Rn.index));else{cp=Rn;pidx=Rn.index+Rn[0].length}break}if(opts.WTF)throw"Unrecognized tag: "+Rn[3]+"|"+state.join("|")}var out={};if(!opts.bookSheets&&!opts.bookProps)out.Sheets=sheets;out.SheetNames=sheetnames;out.SSF=SSF.get_table();out.Props=Props;out.Custprops=Custprops;return out}function parse_xlml(data,opts){fix_read_opts(opts=opts||{});switch(opts.type||"base64"){case"base64":return parse_xlml_xml(Base64.decode(data),opts);case"binary":case"buffer":case"file":return parse_xlml_xml(data,opts);case"array":return parse_xlml_xml(data.map(_chr).join(""),opts)}}function write_xlml(wb,opts){}function parse_compobj(obj){var v={};var o=obj.content;var l=28,m;m=__lpstr(o,l);l+=4+__readUInt32LE(o,l);v.UserType=m;m=__readUInt32LE(o,l);l+=4;switch(m){case 0:break;case 4294967295:case 4294967294:l+=4;break;default:if(m>400)throw new Error("Unsupported Clipboard: "+m.toString(16));l+=m}m=__lpstr(o,l);l+=m.length===0?0:5+m.length;v.Reserved1=m;if((m=__readUInt32LE(o,l))!==1907550708)return v;throw"Unsupported Unicode Extension"}function slurp(R,blob,length,opts){var l=length;var bufs=[];var d=blob.slice(blob.l,blob.l+l);if(opts&&opts.enc&&opts.enc.insitu_decrypt)switch(R.n){case"BOF":case"FilePass":case"FileLock":case"InterfaceHdr":case"RRDInfo":case"RRDHead":case"UsrExcl":break;default:if(d.length===0)break;opts.enc.insitu_decrypt(d)}bufs.push(d);blob.l+=l;var next=XLSRecordEnum[__readUInt16LE(blob,blob.l)];while(next!=null&&next.n==="Continue"){l=__readUInt16LE(blob,blob.l+2);bufs.push(blob.slice(blob.l+4,blob.l+4+l));blob.l+=4+l;next=XLSRecordEnum[__readUInt16LE(blob,blob.l)]}var b=bconcat(bufs);prep_blob(b,0);var ll=0;b.lens=[];for(var j=0;jrange.e.r)range.e.r=cell.r+1;if(cell.c+1>range.e.c)range.e.c=cell.c+1}if(options.sheetRows&&lastcell.r>=options.sheetRows)cell_valid=false;else out[last_cell]=line};var opts={enc:false,sbcch:0,snames:[],sharedf:shared_formulae,arrayf:array_formulae,rrtabid:[],lastuser:"",biff:8,codepage:0,winlocked:0,wtf:false};if(options.password)opts.password=options.password;var mergecells=[];var objects=[];var supbooks=[[]];var sbc=0,sbci=0,sbcli=0;supbooks.SheetNames=opts.snames;supbooks.sharedf=opts.sharedf;supbooks.arrayf=opts.arrayf;var last_Rn="";var file_depth=0;opts.codepage=1200;set_cp(1200);while(blob.l0&&range.e.c>0){range.e.r--;range.e.c--;out["!ref"]=encode_range(range);range.e.r++;range.e.c++}if(mergecells.length>0)out["!merges"]=mergecells;if(objects.length>0)out["!objects"]=objects}if(cur_sheet==="")Preamble=out;else Sheets[cur_sheet]=out;out={}}break;case"BOF":{if(opts.biff!==8);else if(val.BIFFVer===1280)opts.biff=5;else if(val.BIFFVer===2)opts.biff=2;else if(val.BIFFVer===7)opts.biff=2;if(file_depth++)break;cell_valid=true;out={};if(opts.biff===2){if(cur_sheet==="")cur_sheet="Sheet1";range={s:{r:0,c:0},e:{r:0,c:0}}}else cur_sheet=(Directory[s]||{name:""}).name;mergecells=[];objects=[]}break;case"Number":case"BIFF2NUM":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"BoolErr":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.val,t:val.t};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"RK":{temp_val={ixfe:val.ixfe,XF:XFs[val.ixfe],v:val.rknum,t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options)}break;case"MulRk":{for(var j=val.c;j<=val.C;++j){var ixfe=val.rkrec[j-val.c][0];temp_val={ixfe:ixfe,XF:XFs[ixfe],v:val.rkrec[j-val.c][1],t:"n"};if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:j,r:val.r},temp_val,options)}}break;case"Formula":{switch(val.val){case"String":last_formula=val;break;case"Array Formula":throw"Array Formula unsupported";default:temp_val={v:val.val,ixfe:val.cell.ixfe,t:val.tt};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(val.formula,range,val.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(val.cell,temp_val,options);last_formula=val}}break;case"String":{if(last_formula){last_formula.val=val;temp_val={v:last_formula.val,ixfe:last_formula.cell.ixfe,t:"s"};temp_val.XF=XFs[temp_val.ixfe];if(options.cellFormula)temp_val.f="="+stringify_formula(last_formula.formula,range,last_formula.cell,supbooks,opts);if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell(last_formula.cell,temp_val,options);last_formula=null}}break;case"Array":{array_formulae.push(val)}break;case"ShrFmla":{if(!cell_valid)break;shared_formulae[encode_cell(last_formula.cell)]=val[0]}break;case"LabelSst":temp_val=make_cell(sst[val.isst].t,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Label":case"BIFF2STR":temp_val=make_cell(val.val,val.ixfe,"s");temp_val.XF=XFs[temp_val.ixfe];if(temp_val.XF)safe_format_xf(temp_val,options,wb.opts.Date1904);addcell({c:val.c,r:val.r},temp_val,options);break;case"Dimensions":{if(file_depth===1)range=val}break;case"SST":{sst=val}break;case"Format":{SSF.load(val[1],val[0])}break;case"MergeCells":mergecells=mergecells.concat(val);break;case"Obj":objects[val.cmo[0]]=opts.lastobj=val;break;case"TxO":opts.lastobj.TxO=val;break;case"HLink":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l=val[1]}break;case"HLinkTooltip":{for(rngR=val[0].s.r;rngR<=val[0].e.r;++rngR)for(rngC=val[0].s.c;rngC<=val[0].e.c;++rngC)if(out[encode_cell({c:rngC,r:rngR})])out[encode_cell({c:rngC,r:rngR})].l.tooltip=val[1]}break;case"Note":{if(opts.biff<=5&&opts.biff>=2)break;cc=out[encode_cell(val[0])];var noteobj=objects[val[2]];if(!cc)break;if(!cc.c)cc.c=[];cmnt={a:val[1],t:noteobj.TxO.t};cc.c.push(cmnt)}break;default:switch(R.n){case"ClrtClient":break;case"XFExt":update_xfext(XFs[val.ixfe],val.ext);break;case"NameCmt":break;case"Header":break;case"Footer":break;case"HCenter":break;case"VCenter":break;case"Pls":break;case"Setup":break;case"DefColWidth":break;case"GCW":break;case"LHRecord":break;case"ColInfo":break;case"Row":break;case"DBCell":break;case"MulBlank":break;case"EntExU2":break;case"SxView":break;case"Sxvd":break;case"SXVI":break;case"SXVDEx":break;case"SxIvd":break;case"SXDI":break;case"SXLI":break;case"SXEx":break;case"QsiSXTag":break;case"Selection":break;case"Feat":break;case"FeatHdr":case"FeatHdr11":break;case"Feature11":case"Feature12":case"List12":break;case"Blank":break;case"Country":country=val;break;case"RecalcId":break;case"DefaultRowHeight":case"DxGCol":break;case"Fbi":case"Fbi2":case"GelFrame":break;case"Font":break;case"XFCRC":break;case"Style":break;case"StyleExt":break;case"Palette":palette=val;break;case"Theme":break;case"ScenarioProtect":break;case"ObjProtect":break;case"CondFmt12":break;case"Table":break;case"TableStyles":break;case"TableStyle":break;case"TableStyleElement":break;case"SXStreamID":break;case"SXVS":break;case"DConRef":break;case"SXAddl":break;case"DConBin":break;case"DConName":break;case"SXPI":break;case"SxFormat":break;case"SxSelect":break;case"SxRule":break;case"SxFilt":break;case"SxItm":break;case"SxDXF":break;case"ScenMan":break;case"DCon":break;case"CellWatch":break;case"PrintRowCol":break;case"PrintGrid":break;case"PrintSize":break;case"XCT":break;case"CRN":break;case"Scl":{}break;case"SheetExt":{}break;case"SheetExtOptional":{}break;case"ObNoMacros":{}break;case"ObProj":{}break;case"CodeName":{}break;case"GUIDTypeLib":{}break;case"WOpt":break;case"PhoneticInfo":break;case"OleObjectSize":break;case"DXF":case"DXFN":case"DXFN12":case"DXFN12List":case"DXFN12NoCB":break;case"Dv":case"DVal":break;case"BRAI":case"Series":case"SeriesText":break;case"DConn":break;case"DbOrParamQry":break;case"DBQueryExt":break;case"IFmtRecord":break;case"CondFmt":case"CF":case"CF12":case"CFEx":break;case"Excel9File":break;case"Units":break;case"InterfaceHdr":case"Mms":case"InterfaceEnd":case"DSF":case"BuiltInFnGroupCount":case"Window1":case"Window2":case"HideObj":case"GridSet":case"Guts":case"UserBView":case"UserSViewBegin":case"UserSViewEnd":case"Pane":break;default:switch(R.n){case"Dat":case"Begin":case"End":case"StartBlock":case"EndBlock":case"Frame":case"Area":case"Axis":case"AxisLine":case"Tick":break;case"AxesUsed":case"CrtLayout12":case"CrtLayout12A":case"CrtLink":case"CrtLine":case"CrtMlFrt":case"CrtMlFrtContinue":break;case"LineFormat":case"AreaFormat":case"Chart":case"Chart3d":case"Chart3DBarShape":case"ChartFormat":case"ChartFrtInfo":break;case"PlotArea":case"PlotGrowth":break;case"SeriesList":case"SerParent":case"SerAuxTrend":break;case"DataFormat":case"SerToCrt":case"FontX":break;case"CatSerRange":case"AxcExt":case"SerFmt":break;case"ShtProps":break;case"DefaultText":case"Text":case"CatLab":break;case"DataLabExtContents":break;case"Legend":case"LegendException":break;case"Pie":case"Scatter":break;case"PieFormat":case"MarkerFormat":break;case"StartObject":case"EndObject":break;case"AlRuns":case"ObjectLink":break;case"SIIndex":break;case"AttachedLabel":case"YMult":break;case"Line":case"Bar":break;case"Surf":break;case"AxisParent":break;case"Pos":break;case"ValueRange":break;case"SXViewEx9":break;case"SXViewLink":break;case"PivotChartBits":break;case"SBaseRef":break;case"TextPropsStream":break;case"LnExt":break;case"MkrExt":break;case"CrtCoopt":break;case"Qsi":case"Qsif":case"Qsir":case"QsiSXTag":break;case"TxtQry":break;case"FilterMode":break;case"AutoFilter":case"AutoFilterInfo":break;case"AutoFilter12":break;case"DropDownObjIds":break;case"Sort":break;case"SortData":break;case"ShapePropsStream":break;case"MsoDrawing":case"MsoDrawingGroup":case"MsoDrawingSelection":break;case"ImData":break;case"WebPub":case"AutoWebPub":case"RightMargin":case"LeftMargin":case"TopMargin":case"BottomMargin":case"HeaderFooter":case"HFPicture":case"PLV":case"HorizontalPageBreaks":case"VerticalPageBreaks":case"Backup":case"CompressPictures":case"Compat12":break;case"Continue":case"ContinueFrt12":break;case"FrtFontList":case"FrtWrapper":break;case"ExternCount":break;case"RString":break;case"TabIdConf":case"Radar":case"RadarArea":case"DropBar":case"Intl":case"CoordList":case"SerAuxErrBar":break;default:switch(R.n){case"SCENARIO":case"DConBin":case"PicF":case"DataLabExt":case"Lel":case"BopPop":case"BopPopCustom":case"RealTimeData":case"Name":break;default:if(options.WTF)throw"Unrecognized Record "+R.n}}}}}else blob.l+=length}var sheetnamesraw=opts.biff===2?["Sheet1"]:Object.keys(Directory).sort(function(a,b){return Number(a)-Number(b)}).map(function(x){return Directory[x].name});var sheetnames=sheetnamesraw.slice();wb.Directory=sheetnamesraw;wb.SheetNames=sheetnamesraw;if(!options.bookSheets)wb.Sheets=Sheets;wb.Preamble=Preamble;wb.Strings=sst;wb.SSF=SSF.get_table();if(opts.enc)wb.Encryption=opts.enc;wb.Metadata={};if(country!==undefined)wb.Metadata.Country=country;return wb}function parse_xlscfb(cfb,options){if(!options)options={};fix_read_opts(options);reset_cp();var CompObj,Summary,Workbook;if(cfb.find){CompObj=cfb.find("!CompObj");Summary=cfb.find("!SummaryInformation");Workbook=cfb.find("/Workbook")}else{prep_blob(cfb,0);Workbook={content:cfb}}if(!Workbook)Workbook=cfb.find("/Book");var CompObjP,SummaryP,WorkbookP;if(CompObj)CompObjP=parse_compobj(CompObj);if(options.bookProps&&!options.bookSheets)WorkbookP={};else{if(Workbook)WorkbookP=parse_workbook(Workbook.content,options,!!Workbook.find);else throw new Error("Cannot find Workbook stream")}if(cfb.find)parse_props(cfb);var props={};for(var y in cfb.Summary)props[y]=cfb.Summary[y];for(y in cfb.DocSummary)props[y]=cfb.DocSummary[y];WorkbookP.Props=WorkbookP.Custprops=props;if(options.bookFiles)WorkbookP.cfb=cfb;WorkbookP.CompObjP=CompObjP;return WorkbookP}function parse_props(cfb){var DSI=cfb.find("!DocumentSummaryInformation");if(DSI)try{cfb.DocSummary=parse_PropertySetStream(DSI,DocSummaryPIDDSI)}catch(e){}var SI=cfb.find("!SummaryInformation");if(SI)try{cfb.Summary=parse_PropertySetStream(SI,SummaryPIDSI)}catch(e){}}var XLSBRecordEnum={0:{n:"BrtRowHdr",f:parse_BrtRowHdr},1:{n:"BrtCellBlank",f:parse_BrtCellBlank},2:{n:"BrtCellRk",f:parse_BrtCellRk},3:{n:"BrtCellError",f:parse_BrtCellError},4:{n:"BrtCellBool",f:parse_BrtCellBool},5:{n:"BrtCellReal",f:parse_BrtCellReal},6:{n:"BrtCellSt",f:parse_BrtCellSt},7:{n:"BrtCellIsst",f:parse_BrtCellIsst},8:{n:"BrtFmlaString",f:parse_BrtFmlaString},9:{n:"BrtFmlaNum",f:parse_BrtFmlaNum},10:{n:"BrtFmlaBool",f:parse_BrtFmlaBool},11:{n:"BrtFmlaError",f:parse_BrtFmlaError},16:{n:"BrtFRTArchID$",f:parse_BrtFRTArchID$},19:{n:"BrtSSTItem",f:parse_RichStr},20:{n:"BrtPCDIMissing",f:parsenoop},21:{n:"BrtPCDINumber",f:parsenoop},22:{n:"BrtPCDIBoolean",f:parsenoop},23:{n:"BrtPCDIError",f:parsenoop},24:{n:"BrtPCDIString",f:parsenoop},25:{n:"BrtPCDIDatetime",f:parsenoop},26:{n:"BrtPCDIIndex",f:parsenoop},27:{n:"BrtPCDIAMissing",f:parsenoop},28:{n:"BrtPCDIANumber",f:parsenoop},29:{n:"BrtPCDIABoolean",f:parsenoop},30:{n:"BrtPCDIAError",f:parsenoop},31:{n:"BrtPCDIAString",f:parsenoop},32:{n:"BrtPCDIADatetime",f:parsenoop},33:{n:"BrtPCRRecord",f:parsenoop},34:{n:"BrtPCRRecordDt",f:parsenoop},35:{n:"BrtFRTBegin",f:parsenoop},36:{n:"BrtFRTEnd",f:parsenoop},37:{n:"BrtACBegin",f:parsenoop},38:{n:"BrtACEnd",f:parsenoop},39:{n:"BrtName",f:parsenoop},40:{n:"BrtIndexRowBlock",f:parsenoop},42:{n:"BrtIndexBlock",f:parsenoop},43:{n:"BrtFont",f:parse_BrtFont},44:{n:"BrtFmt",f:parse_BrtFmt},45:{n:"BrtFill",f:parsenoop},46:{n:"BrtBorder",f:parsenoop},47:{n:"BrtXF",f:parse_BrtXF},48:{n:"BrtStyle",f:parsenoop},49:{n:"BrtCellMeta",f:parsenoop},50:{n:"BrtValueMeta",f:parsenoop},51:{n:"BrtMdb",f:parsenoop},52:{n:"BrtBeginFmd",f:parsenoop},53:{n:"BrtEndFmd",f:parsenoop},54:{n:"BrtBeginMdx",f:parsenoop},55:{n:"BrtEndMdx",f:parsenoop},56:{n:"BrtBeginMdxTuple",f:parsenoop},57:{n:"BrtEndMdxTuple",f:parsenoop},58:{n:"BrtMdxMbrIstr",f:parsenoop},59:{n:"BrtStr",f:parsenoop},60:{n:"BrtColInfo",f:parsenoop},62:{n:"BrtCellRString",f:parsenoop},63:{n:"BrtCalcChainItem$",f:parse_BrtCalcChainItem$},64:{n:"BrtDVal",f:parsenoop},65:{n:"BrtSxvcellNum",f:parsenoop},66:{n:"BrtSxvcellStr",f:parsenoop},67:{n:"BrtSxvcellBool",f:parsenoop},68:{n:"BrtSxvcellErr",f:parsenoop},69:{n:"BrtSxvcellDate",f:parsenoop},70:{n:"BrtSxvcellNil",f:parsenoop},128:{n:"BrtFileVersion",f:parsenoop},129:{n:"BrtBeginSheet",f:parsenoop},130:{n:"BrtEndSheet",f:parsenoop},131:{n:"BrtBeginBook",f:parsenoop,p:0},132:{n:"BrtEndBook",f:parsenoop},133:{n:"BrtBeginWsViews",f:parsenoop},134:{n:"BrtEndWsViews",f:parsenoop},135:{n:"BrtBeginBookViews",f:parsenoop},136:{n:"BrtEndBookViews",f:parsenoop},137:{n:"BrtBeginWsView",f:parsenoop},138:{n:"BrtEndWsView",f:parsenoop},139:{n:"BrtBeginCsViews",f:parsenoop},140:{n:"BrtEndCsViews",f:parsenoop},141:{n:"BrtBeginCsView",f:parsenoop},142:{n:"BrtEndCsView",f:parsenoop},143:{n:"BrtBeginBundleShs",f:parsenoop},144:{n:"BrtEndBundleShs",f:parsenoop},145:{n:"BrtBeginSheetData",f:parsenoop},146:{n:"BrtEndSheetData",f:parsenoop},147:{n:"BrtWsProp",f:parse_BrtWsProp},148:{n:"BrtWsDim",f:parse_BrtWsDim,p:16},151:{n:"BrtPane",f:parsenoop},152:{n:"BrtSel",f:parsenoop},153:{n:"BrtWbProp",f:parse_BrtWbProp},154:{n:"BrtWbFactoid",f:parsenoop},155:{n:"BrtFileRecover",f:parsenoop},156:{n:"BrtBundleSh",f:parse_BrtBundleSh},157:{n:"BrtCalcProp",f:parsenoop},158:{n:"BrtBookView",f:parsenoop},159:{n:"BrtBeginSst",f:parse_BrtBeginSst},160:{n:"BrtEndSst",f:parsenoop},161:{n:"BrtBeginAFilter",f:parsenoop},162:{n:"BrtEndAFilter",f:parsenoop},163:{n:"BrtBeginFilterColumn",f:parsenoop},164:{n:"BrtEndFilterColumn",f:parsenoop},165:{n:"BrtBeginFilters",f:parsenoop},166:{n:"BrtEndFilters",f:parsenoop},167:{n:"BrtFilter",f:parsenoop},168:{n:"BrtColorFilter",f:parsenoop},169:{n:"BrtIconFilter",f:parsenoop},170:{n:"BrtTop10Filter",f:parsenoop},171:{n:"BrtDynamicFilter",f:parsenoop},172:{n:"BrtBeginCustomFilters",f:parsenoop},173:{n:"BrtEndCustomFilters",f:parsenoop},174:{n:"BrtCustomFilter",f:parsenoop},175:{n:"BrtAFilterDateGroupItem",f:parsenoop},176:{n:"BrtMergeCell",f:parse_BrtMergeCell},177:{n:"BrtBeginMergeCells",f:parsenoop},178:{n:"BrtEndMergeCells",f:parsenoop},179:{n:"BrtBeginPivotCacheDef",f:parsenoop},180:{n:"BrtEndPivotCacheDef",f:parsenoop},181:{n:"BrtBeginPCDFields",f:parsenoop},182:{n:"BrtEndPCDFields",f:parsenoop},183:{n:"BrtBeginPCDField",f:parsenoop},184:{n:"BrtEndPCDField",f:parsenoop},185:{n:"BrtBeginPCDSource",f:parsenoop},186:{n:"BrtEndPCDSource",f:parsenoop},187:{n:"BrtBeginPCDSRange",f:parsenoop},188:{n:"BrtEndPCDSRange",f:parsenoop},189:{n:"BrtBeginPCDFAtbl",f:parsenoop},190:{n:"BrtEndPCDFAtbl",f:parsenoop},191:{n:"BrtBeginPCDIRun",f:parsenoop},192:{n:"BrtEndPCDIRun",f:parsenoop},193:{n:"BrtBeginPivotCacheRecords",f:parsenoop},194:{n:"BrtEndPivotCacheRecords",f:parsenoop},195:{n:"BrtBeginPCDHierarchies",f:parsenoop},196:{n:"BrtEndPCDHierarchies",f:parsenoop},197:{n:"BrtBeginPCDHierarchy",f:parsenoop},198:{n:"BrtEndPCDHierarchy",f:parsenoop},199:{n:"BrtBeginPCDHFieldsUsage",f:parsenoop},200:{n:"BrtEndPCDHFieldsUsage",f:parsenoop},201:{n:"BrtBeginExtConnection",f:parsenoop},202:{n:"BrtEndExtConnection",f:parsenoop},203:{n:"BrtBeginECDbProps",f:parsenoop},204:{n:"BrtEndECDbProps",f:parsenoop},205:{n:"BrtBeginECOlapProps",f:parsenoop},206:{n:"BrtEndECOlapProps",f:parsenoop},207:{n:"BrtBeginPCDSConsol",f:parsenoop},208:{n:"BrtEndPCDSConsol",f:parsenoop},209:{n:"BrtBeginPCDSCPages",f:parsenoop},210:{n:"BrtEndPCDSCPages",f:parsenoop},211:{n:"BrtBeginPCDSCPage",f:parsenoop},212:{n:"BrtEndPCDSCPage",f:parsenoop},213:{n:"BrtBeginPCDSCPItem",f:parsenoop},214:{n:"BrtEndPCDSCPItem",f:parsenoop},215:{n:"BrtBeginPCDSCSets",f:parsenoop},216:{n:"BrtEndPCDSCSets",f:parsenoop},217:{n:"BrtBeginPCDSCSet",f:parsenoop},218:{n:"BrtEndPCDSCSet",f:parsenoop},219:{n:"BrtBeginPCDFGroup",f:parsenoop},220:{n:"BrtEndPCDFGroup",f:parsenoop},221:{n:"BrtBeginPCDFGItems",f:parsenoop},222:{n:"BrtEndPCDFGItems",f:parsenoop},223:{n:"BrtBeginPCDFGRange",f:parsenoop},224:{n:"BrtEndPCDFGRange",f:parsenoop},225:{n:"BrtBeginPCDFGDiscrete",f:parsenoop},226:{n:"BrtEndPCDFGDiscrete",f:parsenoop},227:{n:"BrtBeginPCDSDTupleCache",f:parsenoop},228:{n:"BrtEndPCDSDTupleCache",f:parsenoop},229:{n:"BrtBeginPCDSDTCEntries",f:parsenoop},230:{n:"BrtEndPCDSDTCEntries",f:parsenoop},231:{n:"BrtBeginPCDSDTCEMembers",f:parsenoop},232:{n:"BrtEndPCDSDTCEMembers",f:parsenoop},233:{n:"BrtBeginPCDSDTCEMember",f:parsenoop},234:{n:"BrtEndPCDSDTCEMember",f:parsenoop},235:{n:"BrtBeginPCDSDTCQueries",f:parsenoop},236:{n:"BrtEndPCDSDTCQueries",f:parsenoop},237:{n:"BrtBeginPCDSDTCQuery",f:parsenoop},238:{n:"BrtEndPCDSDTCQuery",f:parsenoop},239:{n:"BrtBeginPCDSDTCSets",f:parsenoop},240:{n:"BrtEndPCDSDTCSets",f:parsenoop},241:{n:"BrtBeginPCDSDTCSet",f:parsenoop},242:{n:"BrtEndPCDSDTCSet",f:parsenoop},243:{n:"BrtBeginPCDCalcItems",f:parsenoop},244:{n:"BrtEndPCDCalcItems",f:parsenoop},245:{n:"BrtBeginPCDCalcItem",f:parsenoop},246:{n:"BrtEndPCDCalcItem",f:parsenoop},247:{n:"BrtBeginPRule",f:parsenoop},248:{n:"BrtEndPRule",f:parsenoop},249:{n:"BrtBeginPRFilters",f:parsenoop},250:{n:"BrtEndPRFilters",f:parsenoop},251:{n:"BrtBeginPRFilter",f:parsenoop},252:{n:"BrtEndPRFilter",f:parsenoop},253:{n:"BrtBeginPNames",f:parsenoop},254:{n:"BrtEndPNames",f:parsenoop},255:{n:"BrtBeginPName",f:parsenoop},256:{n:"BrtEndPName",f:parsenoop},257:{n:"BrtBeginPNPairs",f:parsenoop},258:{n:"BrtEndPNPairs",f:parsenoop},259:{n:"BrtBeginPNPair",f:parsenoop},260:{n:"BrtEndPNPair",f:parsenoop},261:{n:"BrtBeginECWebProps",f:parsenoop},262:{n:"BrtEndECWebProps",f:parsenoop},263:{n:"BrtBeginEcWpTables",f:parsenoop},264:{n:"BrtEndECWPTables",f:parsenoop},265:{n:"BrtBeginECParams",f:parsenoop},266:{n:"BrtEndECParams",f:parsenoop},267:{n:"BrtBeginECParam",f:parsenoop},268:{n:"BrtEndECParam",f:parsenoop},269:{n:"BrtBeginPCDKPIs",f:parsenoop},270:{n:"BrtEndPCDKPIs",f:parsenoop},271:{n:"BrtBeginPCDKPI",f:parsenoop},272:{n:"BrtEndPCDKPI",f:parsenoop},273:{n:"BrtBeginDims",f:parsenoop},274:{n:"BrtEndDims",f:parsenoop},275:{n:"BrtBeginDim",f:parsenoop},276:{n:"BrtEndDim",f:parsenoop},277:{n:"BrtIndexPartEnd",f:parsenoop},278:{n:"BrtBeginStyleSheet",f:parsenoop},279:{n:"BrtEndStyleSheet",f:parsenoop},280:{n:"BrtBeginSXView",f:parsenoop},281:{n:"BrtEndSXVI",f:parsenoop},282:{n:"BrtBeginSXVI",f:parsenoop},283:{n:"BrtBeginSXVIs",f:parsenoop},284:{n:"BrtEndSXVIs",f:parsenoop},285:{n:"BrtBeginSXVD",f:parsenoop},286:{n:"BrtEndSXVD",f:parsenoop},287:{n:"BrtBeginSXVDs",f:parsenoop},288:{n:"BrtEndSXVDs",f:parsenoop},289:{n:"BrtBeginSXPI",f:parsenoop},290:{n:"BrtEndSXPI",f:parsenoop},291:{n:"BrtBeginSXPIs",f:parsenoop},292:{n:"BrtEndSXPIs",f:parsenoop},293:{n:"BrtBeginSXDI",f:parsenoop},294:{n:"BrtEndSXDI",f:parsenoop},295:{n:"BrtBeginSXDIs",f:parsenoop},296:{n:"BrtEndSXDIs",f:parsenoop},297:{n:"BrtBeginSXLI",f:parsenoop},298:{n:"BrtEndSXLI",f:parsenoop},299:{n:"BrtBeginSXLIRws",f:parsenoop},300:{n:"BrtEndSXLIRws",f:parsenoop},301:{n:"BrtBeginSXLICols",f:parsenoop},302:{n:"BrtEndSXLICols",f:parsenoop},303:{n:"BrtBeginSXFormat",f:parsenoop},304:{n:"BrtEndSXFormat",f:parsenoop},305:{n:"BrtBeginSXFormats",f:parsenoop},306:{n:"BrtEndSxFormats",f:parsenoop},307:{n:"BrtBeginSxSelect",f:parsenoop},308:{n:"BrtEndSxSelect",f:parsenoop},309:{n:"BrtBeginISXVDRws",f:parsenoop},310:{n:"BrtEndISXVDRws",f:parsenoop},311:{n:"BrtBeginISXVDCols",f:parsenoop},312:{n:"BrtEndISXVDCols",f:parsenoop},313:{n:"BrtEndSXLocation",f:parsenoop},314:{n:"BrtBeginSXLocation",f:parsenoop},315:{n:"BrtEndSXView",f:parsenoop},316:{n:"BrtBeginSXTHs",f:parsenoop},317:{n:"BrtEndSXTHs",f:parsenoop},318:{n:"BrtBeginSXTH",f:parsenoop},319:{n:"BrtEndSXTH",f:parsenoop},320:{n:"BrtBeginISXTHRws",f:parsenoop},321:{n:"BrtEndISXTHRws",f:parsenoop},322:{n:"BrtBeginISXTHCols",f:parsenoop},323:{n:"BrtEndISXTHCols",f:parsenoop},324:{n:"BrtBeginSXTDMPS",f:parsenoop},325:{n:"BrtEndSXTDMPs",f:parsenoop},326:{n:"BrtBeginSXTDMP",f:parsenoop},327:{n:"BrtEndSXTDMP",f:parsenoop},328:{n:"BrtBeginSXTHItems",f:parsenoop},329:{n:"BrtEndSXTHItems",f:parsenoop},330:{n:"BrtBeginSXTHItem",f:parsenoop},331:{n:"BrtEndSXTHItem",f:parsenoop},332:{n:"BrtBeginMetadata",f:parsenoop},333:{n:"BrtEndMetadata",f:parsenoop},334:{n:"BrtBeginEsmdtinfo",f:parsenoop},335:{n:"BrtMdtinfo",f:parsenoop},336:{n:"BrtEndEsmdtinfo",f:parsenoop},337:{n:"BrtBeginEsmdb",f:parsenoop},338:{n:"BrtEndEsmdb",f:parsenoop},339:{n:"BrtBeginEsfmd",f:parsenoop},340:{n:"BrtEndEsfmd",f:parsenoop},341:{n:"BrtBeginSingleCells",f:parsenoop},342:{n:"BrtEndSingleCells",f:parsenoop},343:{n:"BrtBeginList",f:parsenoop},344:{n:"BrtEndList",f:parsenoop},345:{n:"BrtBeginListCols",f:parsenoop},346:{n:"BrtEndListCols",f:parsenoop},347:{n:"BrtBeginListCol",f:parsenoop},348:{n:"BrtEndListCol",f:parsenoop},349:{n:"BrtBeginListXmlCPr",f:parsenoop},350:{n:"BrtEndListXmlCPr",f:parsenoop},351:{n:"BrtListCCFmla",f:parsenoop},352:{n:"BrtListTrFmla",f:parsenoop},353:{n:"BrtBeginExternals",f:parsenoop},354:{n:"BrtEndExternals",f:parsenoop},355:{n:"BrtSupBookSrc",f:parsenoop},357:{n:"BrtSupSelf",f:parsenoop},358:{n:"BrtSupSame",f:parsenoop},359:{n:"BrtSupTabs",f:parsenoop},360:{n:"BrtBeginSupBook",f:parsenoop},361:{n:"BrtPlaceholderName",f:parsenoop},362:{n:"BrtExternSheet",f:parsenoop},363:{n:"BrtExternTableStart",f:parsenoop},364:{n:"BrtExternTableEnd",f:parsenoop},366:{n:"BrtExternRowHdr",f:parsenoop},367:{n:"BrtExternCellBlank",f:parsenoop},368:{n:"BrtExternCellReal",f:parsenoop},369:{n:"BrtExternCellBool",f:parsenoop},370:{n:"BrtExternCellError",f:parsenoop},371:{n:"BrtExternCellString",f:parsenoop},372:{n:"BrtBeginEsmdx",f:parsenoop},373:{n:"BrtEndEsmdx",f:parsenoop},374:{n:"BrtBeginMdxSet",f:parsenoop},375:{n:"BrtEndMdxSet",f:parsenoop},376:{n:"BrtBeginMdxMbrProp",f:parsenoop},377:{n:"BrtEndMdxMbrProp",f:parsenoop},378:{n:"BrtBeginMdxKPI",f:parsenoop},379:{n:"BrtEndMdxKPI",f:parsenoop},380:{n:"BrtBeginEsstr",f:parsenoop},381:{n:"BrtEndEsstr",f:parsenoop},382:{n:"BrtBeginPRFItem",f:parsenoop},383:{n:"BrtEndPRFItem",f:parsenoop},384:{n:"BrtBeginPivotCacheIDs",f:parsenoop},385:{n:"BrtEndPivotCacheIDs",f:parsenoop},386:{n:"BrtBeginPivotCacheID",f:parsenoop},387:{n:"BrtEndPivotCacheID",f:parsenoop},388:{n:"BrtBeginISXVIs",f:parsenoop},389:{n:"BrtEndISXVIs",f:parsenoop},390:{n:"BrtBeginColInfos",f:parsenoop},391:{n:"BrtEndColInfos",f:parsenoop},392:{n:"BrtBeginRwBrk",f:parsenoop},393:{n:"BrtEndRwBrk",f:parsenoop},394:{n:"BrtBeginColBrk",f:parsenoop},395:{n:"BrtEndColBrk",f:parsenoop},396:{n:"BrtBrk",f:parsenoop},397:{n:"BrtUserBookView",f:parsenoop},398:{n:"BrtInfo",f:parsenoop},399:{n:"BrtCUsr",f:parsenoop},400:{n:"BrtUsr",f:parsenoop},401:{n:"BrtBeginUsers",f:parsenoop},403:{n:"BrtEOF",f:parsenoop},404:{n:"BrtUCR",f:parsenoop},405:{n:"BrtRRInsDel",f:parsenoop},406:{n:"BrtRREndInsDel",f:parsenoop},407:{n:"BrtRRMove",f:parsenoop},408:{n:"BrtRREndMove",f:parsenoop},409:{n:"BrtRRChgCell",f:parsenoop},410:{n:"BrtRREndChgCell",f:parsenoop},411:{n:"BrtRRHeader",f:parsenoop},412:{n:"BrtRRUserView",f:parsenoop},413:{n:"BrtRRRenSheet",f:parsenoop},414:{n:"BrtRRInsertSh",f:parsenoop},415:{n:"BrtRRDefName",f:parsenoop},416:{n:"BrtRRNote",f:parsenoop},417:{n:"BrtRRConflict",f:parsenoop},418:{n:"BrtRRTQSIF",f:parsenoop},419:{n:"BrtRRFormat",f:parsenoop},420:{n:"BrtRREndFormat",f:parsenoop},421:{n:"BrtRRAutoFmt",f:parsenoop},422:{n:"BrtBeginUserShViews",f:parsenoop},423:{n:"BrtBeginUserShView",f:parsenoop},424:{n:"BrtEndUserShView",f:parsenoop},425:{n:"BrtEndUserShViews",f:parsenoop},426:{n:"BrtArrFmla",f:parsenoop},427:{n:"BrtShrFmla",f:parsenoop},428:{n:"BrtTable",f:parsenoop},429:{n:"BrtBeginExtConnections",f:parsenoop},430:{n:"BrtEndExtConnections",f:parsenoop},431:{n:"BrtBeginPCDCalcMems",f:parsenoop},432:{n:"BrtEndPCDCalcMems",f:parsenoop},433:{n:"BrtBeginPCDCalcMem",f:parsenoop},434:{n:"BrtEndPCDCalcMem",f:parsenoop},435:{n:"BrtBeginPCDHGLevels",f:parsenoop},436:{n:"BrtEndPCDHGLevels",f:parsenoop},437:{n:"BrtBeginPCDHGLevel",f:parsenoop},438:{n:"BrtEndPCDHGLevel",f:parsenoop},439:{n:"BrtBeginPCDHGLGroups",f:parsenoop},440:{n:"BrtEndPCDHGLGroups",f:parsenoop},441:{n:"BrtBeginPCDHGLGroup",f:parsenoop},442:{n:"BrtEndPCDHGLGroup",f:parsenoop},443:{n:"BrtBeginPCDHGLGMembers",f:parsenoop},444:{n:"BrtEndPCDHGLGMembers",f:parsenoop},445:{n:"BrtBeginPCDHGLGMember",f:parsenoop},446:{n:"BrtEndPCDHGLGMember",f:parsenoop},447:{n:"BrtBeginQSI",f:parsenoop},448:{n:"BrtEndQSI",f:parsenoop},449:{n:"BrtBeginQSIR",f:parsenoop},450:{n:"BrtEndQSIR",f:parsenoop},451:{n:"BrtBeginDeletedNames",f:parsenoop},452:{n:"BrtEndDeletedNames",f:parsenoop},453:{n:"BrtBeginDeletedName",f:parsenoop},454:{n:"BrtEndDeletedName",f:parsenoop},455:{n:"BrtBeginQSIFs",f:parsenoop},456:{n:"BrtEndQSIFs",f:parsenoop},457:{n:"BrtBeginQSIF",f:parsenoop},458:{n:"BrtEndQSIF",f:parsenoop},459:{n:"BrtBeginAutoSortScope",f:parsenoop},460:{n:"BrtEndAutoSortScope",f:parsenoop},461:{n:"BrtBeginConditionalFormatting",f:parsenoop},462:{n:"BrtEndConditionalFormatting",f:parsenoop},463:{n:"BrtBeginCFRule",f:parsenoop},464:{n:"BrtEndCFRule",f:parsenoop},465:{n:"BrtBeginIconSet",f:parsenoop},466:{n:"BrtEndIconSet",f:parsenoop},467:{n:"BrtBeginDatabar",f:parsenoop},468:{n:"BrtEndDatabar",f:parsenoop},469:{n:"BrtBeginColorScale",f:parsenoop},470:{n:"BrtEndColorScale",f:parsenoop},471:{n:"BrtCFVO",f:parsenoop},472:{n:"BrtExternValueMeta",f:parsenoop},473:{n:"BrtBeginColorPalette",f:parsenoop},474:{n:"BrtEndColorPalette",f:parsenoop},475:{n:"BrtIndexedColor",f:parsenoop},476:{n:"BrtMargins",f:parsenoop},477:{n:"BrtPrintOptions",f:parsenoop},478:{n:"BrtPageSetup",f:parsenoop},479:{n:"BrtBeginHeaderFooter",f:parsenoop},480:{n:"BrtEndHeaderFooter",f:parsenoop},481:{n:"BrtBeginSXCrtFormat",f:parsenoop},482:{n:"BrtEndSXCrtFormat",f:parsenoop},483:{n:"BrtBeginSXCrtFormats",f:parsenoop},484:{n:"BrtEndSXCrtFormats",f:parsenoop},485:{n:"BrtWsFmtInfo",f:parsenoop},486:{n:"BrtBeginMgs",f:parsenoop},487:{n:"BrtEndMGs",f:parsenoop},488:{n:"BrtBeginMGMaps",f:parsenoop},489:{n:"BrtEndMGMaps",f:parsenoop},490:{n:"BrtBeginMG",f:parsenoop},491:{n:"BrtEndMG",f:parsenoop},492:{n:"BrtBeginMap",f:parsenoop},493:{n:"BrtEndMap",f:parsenoop},494:{n:"BrtHLink",f:parse_BrtHLink},495:{n:"BrtBeginDCon",f:parsenoop},496:{n:"BrtEndDCon",f:parsenoop},497:{n:"BrtBeginDRefs",f:parsenoop},498:{n:"BrtEndDRefs",f:parsenoop},499:{n:"BrtDRef",f:parsenoop},500:{n:"BrtBeginScenMan",f:parsenoop},501:{n:"BrtEndScenMan",f:parsenoop},502:{n:"BrtBeginSct",f:parsenoop},503:{n:"BrtEndSct",f:parsenoop},504:{n:"BrtSlc",f:parsenoop},505:{n:"BrtBeginDXFs",f:parsenoop},506:{n:"BrtEndDXFs",f:parsenoop},507:{n:"BrtDXF",f:parsenoop},508:{n:"BrtBeginTableStyles",f:parsenoop},509:{n:"BrtEndTableStyles",f:parsenoop},510:{n:"BrtBeginTableStyle",f:parsenoop},511:{n:"BrtEndTableStyle",f:parsenoop},512:{n:"BrtTableStyleElement",f:parsenoop},513:{n:"BrtTableStyleClient",f:parsenoop},514:{n:"BrtBeginVolDeps",f:parsenoop},515:{n:"BrtEndVolDeps",f:parsenoop},516:{n:"BrtBeginVolType",f:parsenoop},517:{n:"BrtEndVolType",f:parsenoop},518:{n:"BrtBeginVolMain",f:parsenoop},519:{n:"BrtEndVolMain",f:parsenoop},520:{n:"BrtBeginVolTopic",f:parsenoop},521:{n:"BrtEndVolTopic",f:parsenoop},522:{n:"BrtVolSubtopic",f:parsenoop},523:{n:"BrtVolRef",f:parsenoop},524:{n:"BrtVolNum",f:parsenoop},525:{n:"BrtVolErr",f:parsenoop},526:{n:"BrtVolStr",f:parsenoop},527:{n:"BrtVolBool",f:parsenoop},528:{n:"BrtBeginCalcChain$",f:parsenoop},529:{n:"BrtEndCalcChain$",f:parsenoop},530:{n:"BrtBeginSortState",f:parsenoop},531:{n:"BrtEndSortState",f:parsenoop},532:{n:"BrtBeginSortCond",f:parsenoop},533:{n:"BrtEndSortCond",f:parsenoop},534:{n:"BrtBookProtection",f:parsenoop},535:{n:"BrtSheetProtection",f:parsenoop},536:{n:"BrtRangeProtection",f:parsenoop},537:{n:"BrtPhoneticInfo",f:parsenoop},538:{n:"BrtBeginECTxtWiz",f:parsenoop},539:{n:"BrtEndECTxtWiz",f:parsenoop},540:{n:"BrtBeginECTWFldInfoLst",f:parsenoop},541:{n:"BrtEndECTWFldInfoLst",f:parsenoop},542:{n:"BrtBeginECTwFldInfo",f:parsenoop},548:{n:"BrtFileSharing",f:parsenoop},549:{n:"BrtOleSize",f:parsenoop},550:{n:"BrtDrawing",f:parsenoop},551:{n:"BrtLegacyDrawing",f:parsenoop},552:{n:"BrtLegacyDrawingHF",f:parsenoop},553:{n:"BrtWebOpt",f:parsenoop},554:{n:"BrtBeginWebPubItems",f:parsenoop},555:{n:"BrtEndWebPubItems",f:parsenoop},556:{n:"BrtBeginWebPubItem",f:parsenoop},557:{n:"BrtEndWebPubItem",f:parsenoop},558:{n:"BrtBeginSXCondFmt",f:parsenoop},559:{n:"BrtEndSXCondFmt",f:parsenoop},560:{n:"BrtBeginSXCondFmts",f:parsenoop},561:{n:"BrtEndSXCondFmts",f:parsenoop},562:{n:"BrtBkHim",f:parsenoop},564:{n:"BrtColor",f:parsenoop},565:{n:"BrtBeginIndexedColors",f:parsenoop},566:{n:"BrtEndIndexedColors",f:parsenoop},569:{n:"BrtBeginMRUColors",f:parsenoop},570:{n:"BrtEndMRUColors",f:parsenoop},572:{n:"BrtMRUColor",f:parsenoop},573:{n:"BrtBeginDVals",f:parsenoop},574:{n:"BrtEndDVals",f:parsenoop},577:{n:"BrtSupNameStart",f:parsenoop},578:{n:"BrtSupNameValueStart",f:parsenoop},579:{n:"BrtSupNameValueEnd",f:parsenoop},580:{n:"BrtSupNameNum",f:parsenoop},581:{n:"BrtSupNameErr",f:parsenoop},582:{n:"BrtSupNameSt",f:parsenoop},583:{n:"BrtSupNameNil",f:parsenoop},584:{n:"BrtSupNameBool",f:parsenoop},585:{n:"BrtSupNameFmla",f:parsenoop},586:{n:"BrtSupNameBits",f:parsenoop},587:{n:"BrtSupNameEnd",f:parsenoop},588:{n:"BrtEndSupBook",f:parsenoop},589:{n:"BrtCellSmartTagProperty",f:parsenoop},590:{n:"BrtBeginCellSmartTag",f:parsenoop},591:{n:"BrtEndCellSmartTag",f:parsenoop},592:{n:"BrtBeginCellSmartTags",f:parsenoop},593:{n:"BrtEndCellSmartTags",f:parsenoop},594:{n:"BrtBeginSmartTags",f:parsenoop},595:{n:"BrtEndSmartTags",f:parsenoop},596:{n:"BrtSmartTagType",f:parsenoop},597:{n:"BrtBeginSmartTagTypes",f:parsenoop},598:{n:"BrtEndSmartTagTypes",f:parsenoop},599:{n:"BrtBeginSXFilters",f:parsenoop},600:{n:"BrtEndSXFilters",f:parsenoop},601:{n:"BrtBeginSXFILTER",f:parsenoop},602:{n:"BrtEndSXFilter",f:parsenoop},603:{n:"BrtBeginFills",f:parsenoop},604:{n:"BrtEndFills",f:parsenoop},605:{n:"BrtBeginCellWatches",f:parsenoop},606:{n:"BrtEndCellWatches",f:parsenoop},607:{n:"BrtCellWatch",f:parsenoop},608:{n:"BrtBeginCRErrs",f:parsenoop},609:{n:"BrtEndCRErrs",f:parsenoop},610:{n:"BrtCrashRecErr",f:parsenoop},611:{n:"BrtBeginFonts",f:parsenoop},612:{n:"BrtEndFonts",f:parsenoop},613:{n:"BrtBeginBorders",f:parsenoop},614:{n:"BrtEndBorders",f:parsenoop},615:{n:"BrtBeginFmts",f:parsenoop},616:{n:"BrtEndFmts",f:parsenoop},617:{n:"BrtBeginCellXFs",f:parsenoop},618:{n:"BrtEndCellXFs",f:parsenoop},619:{n:"BrtBeginStyles",f:parsenoop},620:{n:"BrtEndStyles",f:parsenoop},625:{n:"BrtBigName",f:parsenoop},626:{n:"BrtBeginCellStyleXFs",f:parsenoop},627:{n:"BrtEndCellStyleXFs",f:parsenoop},628:{n:"BrtBeginComments",f:parsenoop},629:{n:"BrtEndComments",f:parsenoop},630:{n:"BrtBeginCommentAuthors",f:parsenoop},631:{n:"BrtEndCommentAuthors",f:parsenoop},632:{n:"BrtCommentAuthor",f:parse_BrtCommentAuthor},633:{n:"BrtBeginCommentList",f:parsenoop},634:{n:"BrtEndCommentList",f:parsenoop},635:{n:"BrtBeginComment",f:parse_BrtBeginComment},636:{n:"BrtEndComment",f:parsenoop},637:{n:"BrtCommentText",f:parse_BrtCommentText},638:{n:"BrtBeginOleObjects",f:parsenoop},639:{n:"BrtOleObject",f:parsenoop},640:{n:"BrtEndOleObjects",f:parsenoop},641:{n:"BrtBeginSxrules",f:parsenoop},642:{n:"BrtEndSxRules",f:parsenoop},643:{n:"BrtBeginActiveXControls",f:parsenoop},644:{n:"BrtActiveX",f:parsenoop},645:{n:"BrtEndActiveXControls",f:parsenoop},646:{n:"BrtBeginPCDSDTCEMembersSortBy",f:parsenoop},648:{n:"BrtBeginCellIgnoreECs",f:parsenoop},649:{n:"BrtCellIgnoreEC",f:parsenoop},650:{n:"BrtEndCellIgnoreECs",f:parsenoop},651:{n:"BrtCsProp",f:parsenoop},652:{n:"BrtCsPageSetup",f:parsenoop},653:{n:"BrtBeginUserCsViews",f:parsenoop},654:{n:"BrtEndUserCsViews",f:parsenoop},655:{n:"BrtBeginUserCsView",f:parsenoop},656:{n:"BrtEndUserCsView",f:parsenoop},657:{n:"BrtBeginPcdSFCIEntries",f:parsenoop},658:{n:"BrtEndPCDSFCIEntries",f:parsenoop},659:{n:"BrtPCDSFCIEntry",f:parsenoop},660:{n:"BrtBeginListParts",f:parsenoop},661:{n:"BrtListPart",f:parsenoop},662:{n:"BrtEndListParts",f:parsenoop},663:{n:"BrtSheetCalcProp",f:parsenoop},664:{n:"BrtBeginFnGroup",f:parsenoop},665:{n:"BrtFnGroup",f:parsenoop},666:{n:"BrtEndFnGroup",f:parsenoop},667:{n:"BrtSupAddin",f:parsenoop},668:{n:"BrtSXTDMPOrder",f:parsenoop},669:{n:"BrtCsProtection",f:parsenoop},671:{n:"BrtBeginWsSortMap",f:parsenoop},672:{n:"BrtEndWsSortMap",f:parsenoop},673:{n:"BrtBeginRRSort",f:parsenoop},674:{n:"BrtEndRRSort",f:parsenoop},675:{n:"BrtRRSortItem",f:parsenoop},676:{n:"BrtFileSharingIso",f:parsenoop},677:{n:"BrtBookProtectionIso",f:parsenoop},678:{n:"BrtSheetProtectionIso",f:parsenoop},679:{n:"BrtCsProtectionIso",f:parsenoop},680:{n:"BrtRangeProtectionIso",f:parsenoop},1024:{n:"BrtRwDescent",f:parsenoop},1025:{n:"BrtKnownFonts",f:parsenoop},1026:{n:"BrtBeginSXTupleSet",f:parsenoop},1027:{n:"BrtEndSXTupleSet",f:parsenoop},1028:{n:"BrtBeginSXTupleSetHeader",f:parsenoop},1029:{n:"BrtEndSXTupleSetHeader",f:parsenoop},1030:{n:"BrtSXTupleSetHeaderItem",f:parsenoop},1031:{n:"BrtBeginSXTupleSetData",f:parsenoop},1032:{n:"BrtEndSXTupleSetData",f:parsenoop},1033:{n:"BrtBeginSXTupleSetRow",f:parsenoop},1034:{n:"BrtEndSXTupleSetRow",f:parsenoop},1035:{n:"BrtSXTupleSetRowItem",f:parsenoop},1036:{n:"BrtNameExt",f:parsenoop},1037:{n:"BrtPCDH14",f:parsenoop},1038:{n:"BrtBeginPCDCalcMem14",f:parsenoop},1039:{n:"BrtEndPCDCalcMem14",f:parsenoop},1040:{n:"BrtSXTH14",f:parsenoop},1041:{n:"BrtBeginSparklineGroup",f:parsenoop},1042:{n:"BrtEndSparklineGroup",f:parsenoop},1043:{n:"BrtSparkline",f:parsenoop},1044:{n:"BrtSXDI14",f:parsenoop},1045:{n:"BrtWsFmtInfoEx14",f:parsenoop},1046:{n:"BrtBeginConditionalFormatting14",f:parsenoop},1047:{n:"BrtEndConditionalFormatting14",f:parsenoop},1048:{n:"BrtBeginCFRule14",f:parsenoop},1049:{n:"BrtEndCFRule14",f:parsenoop},1050:{n:"BrtCFVO14",f:parsenoop},1051:{n:"BrtBeginDatabar14",f:parsenoop},1052:{n:"BrtBeginIconSet14",f:parsenoop},1053:{n:"BrtDVal14",f:parsenoop},1054:{n:"BrtBeginDVals14",f:parsenoop},1055:{n:"BrtColor14",f:parsenoop},1056:{n:"BrtBeginSparklines",f:parsenoop},1057:{n:"BrtEndSparklines",f:parsenoop},1058:{n:"BrtBeginSparklineGroups",f:parsenoop},1059:{n:"BrtEndSparklineGroups",f:parsenoop},1061:{n:"BrtSXVD14",f:parsenoop},1062:{n:"BrtBeginSxview14",f:parsenoop},1063:{n:"BrtEndSxview14",f:parsenoop},1066:{n:"BrtBeginPCD14",f:parsenoop},1067:{n:"BrtEndPCD14",f:parsenoop},1068:{n:"BrtBeginExtConn14",f:parsenoop},1069:{n:"BrtEndExtConn14",f:parsenoop},1070:{n:"BrtBeginSlicerCacheIDs",f:parsenoop},1071:{n:"BrtEndSlicerCacheIDs",f:parsenoop},1072:{n:"BrtBeginSlicerCacheID",f:parsenoop},1073:{n:"BrtEndSlicerCacheID",f:parsenoop},1075:{n:"BrtBeginSlicerCache",f:parsenoop},1076:{n:"BrtEndSlicerCache",f:parsenoop},1077:{n:"BrtBeginSlicerCacheDef",f:parsenoop},1078:{n:"BrtEndSlicerCacheDef",f:parsenoop},1079:{n:"BrtBeginSlicersEx",f:parsenoop},1080:{n:"BrtEndSlicersEx",f:parsenoop},1081:{n:"BrtBeginSlicerEx",f:parsenoop},1082:{n:"BrtEndSlicerEx",f:parsenoop},1083:{n:"BrtBeginSlicer",f:parsenoop},1084:{n:"BrtEndSlicer",f:parsenoop},1085:{n:"BrtSlicerCachePivotTables",f:parsenoop},1086:{n:"BrtBeginSlicerCacheOlapImpl",f:parsenoop},1087:{n:"BrtEndSlicerCacheOlapImpl",f:parsenoop},1088:{n:"BrtBeginSlicerCacheLevelsData",f:parsenoop},1089:{n:"BrtEndSlicerCacheLevelsData",f:parsenoop},1090:{n:"BrtBeginSlicerCacheLevelData",f:parsenoop},1091:{n:"BrtEndSlicerCacheLevelData",f:parsenoop},1092:{n:"BrtBeginSlicerCacheSiRanges",f:parsenoop},1093:{n:"BrtEndSlicerCacheSiRanges",f:parsenoop},1094:{n:"BrtBeginSlicerCacheSiRange",f:parsenoop},1095:{n:"BrtEndSlicerCacheSiRange",f:parsenoop},1096:{n:"BrtSlicerCacheOlapItem",f:parsenoop},1097:{n:"BrtBeginSlicerCacheSelections",f:parsenoop},1098:{n:"BrtSlicerCacheSelection",f:parsenoop},1099:{n:"BrtEndSlicerCacheSelections",f:parsenoop},1100:{n:"BrtBeginSlicerCacheNative",f:parsenoop},1101:{n:"BrtEndSlicerCacheNative",f:parsenoop},1102:{n:"BrtSlicerCacheNativeItem",f:parsenoop},1103:{n:"BrtRangeProtection14",f:parsenoop},1104:{n:"BrtRangeProtectionIso14",f:parsenoop},1105:{n:"BrtCellIgnoreEC14",f:parsenoop},1111:{n:"BrtList14",f:parsenoop},1112:{n:"BrtCFIcon",f:parsenoop},1113:{n:"BrtBeginSlicerCachesPivotCacheIDs",f:parsenoop},1114:{n:"BrtEndSlicerCachesPivotCacheIDs",f:parsenoop},1115:{n:"BrtBeginSlicers",f:parsenoop},1116:{n:"BrtEndSlicers",f:parsenoop},1117:{n:"BrtWbProp14",f:parsenoop},1118:{n:"BrtBeginSXEdit",f:parsenoop},1119:{n:"BrtEndSXEdit",f:parsenoop},1120:{n:"BrtBeginSXEdits",f:parsenoop},1121:{n:"BrtEndSXEdits",f:parsenoop},1122:{n:"BrtBeginSXChange",f:parsenoop},1123:{n:"BrtEndSXChange",f:parsenoop},1124:{n:"BrtBeginSXChanges",f:parsenoop},1125:{n:"BrtEndSXChanges",f:parsenoop},1126:{n:"BrtSXTupleItems",f:parsenoop},1128:{n:"BrtBeginSlicerStyle",f:parsenoop},1129:{n:"BrtEndSlicerStyle",f:parsenoop},1130:{n:"BrtSlicerStyleElement",f:parsenoop},1131:{n:"BrtBeginStyleSheetExt14",f:parsenoop},1132:{n:"BrtEndStyleSheetExt14",f:parsenoop},1133:{n:"BrtBeginSlicerCachesPivotCacheID",f:parsenoop},1134:{n:"BrtEndSlicerCachesPivotCacheID",f:parsenoop},1135:{n:"BrtBeginConditionalFormattings",f:parsenoop},1136:{n:"BrtEndConditionalFormattings",f:parsenoop},1137:{n:"BrtBeginPCDCalcMemExt",f:parsenoop},1138:{n:"BrtEndPCDCalcMemExt",f:parsenoop},1139:{n:"BrtBeginPCDCalcMemsExt",f:parsenoop},1140:{n:"BrtEndPCDCalcMemsExt",f:parsenoop},1141:{n:"BrtPCDField14",f:parsenoop},1142:{n:"BrtBeginSlicerStyles",f:parsenoop},1143:{n:"BrtEndSlicerStyles",f:parsenoop},1144:{n:"BrtBeginSlicerStyleElements",f:parsenoop},1145:{n:"BrtEndSlicerStyleElements",f:parsenoop},1146:{n:"BrtCFRuleExt",f:parsenoop},1147:{n:"BrtBeginSXCondFmt14",f:parsenoop},1148:{n:"BrtEndSXCondFmt14",f:parsenoop},1149:{n:"BrtBeginSXCondFmts14",f:parsenoop},1150:{n:"BrtEndSXCondFmts14",f:parsenoop},1152:{n:"BrtBeginSortCond14",f:parsenoop},1153:{n:"BrtEndSortCond14",f:parsenoop},1154:{n:"BrtEndDVals14",f:parsenoop},1155:{n:"BrtEndIconSet14",f:parsenoop},1156:{n:"BrtEndDatabar14",f:parsenoop},1157:{n:"BrtBeginColorScale14",f:parsenoop},1158:{n:"BrtEndColorScale14",f:parsenoop},1159:{n:"BrtBeginSxrules14",f:parsenoop},1160:{n:"BrtEndSxrules14",f:parsenoop},1161:{n:"BrtBeginPRule14",f:parsenoop},1162:{n:"BrtEndPRule14",f:parsenoop},1163:{n:"BrtBeginPRFilters14",f:parsenoop},1164:{n:"BrtEndPRFilters14",f:parsenoop},1165:{n:"BrtBeginPRFilter14",f:parsenoop},1166:{n:"BrtEndPRFilter14",f:parsenoop},1167:{n:"BrtBeginPRFItem14",f:parsenoop},1168:{n:"BrtEndPRFItem14",f:parsenoop},1169:{n:"BrtBeginCellIgnoreECs14",f:parsenoop},1170:{n:"BrtEndCellIgnoreECs14",f:parsenoop},1171:{n:"BrtDxf14",f:parsenoop},1172:{n:"BrtBeginDxF14s",f:parsenoop},1173:{n:"BrtEndDxf14s",f:parsenoop},1177:{n:"BrtFilter14",f:parsenoop},1178:{n:"BrtBeginCustomFilters14",f:parsenoop},1180:{n:"BrtCustomFilter14",f:parsenoop},1181:{n:"BrtIconFilter14",f:parsenoop},1182:{n:"BrtPivotCacheConnectionName",f:parsenoop},2048:{n:"BrtBeginDecoupledPivotCacheIDs",f:parsenoop},2049:{n:"BrtEndDecoupledPivotCacheIDs",f:parsenoop},2050:{n:"BrtDecoupledPivotCacheID",f:parsenoop},2051:{n:"BrtBeginPivotTableRefs",f:parsenoop},2052:{n:"BrtEndPivotTableRefs",f:parsenoop},2053:{n:"BrtPivotTableRef",f:parsenoop},2054:{n:"BrtSlicerCacheBookPivotTables",f:parsenoop},2055:{n:"BrtBeginSxvcells",f:parsenoop},2056:{n:"BrtEndSxvcells",f:parsenoop},2057:{n:"BrtBeginSxRow",f:parsenoop},2058:{n:"BrtEndSxRow",f:parsenoop},2060:{n:"BrtPcdCalcMem15",f:parsenoop},2067:{n:"BrtQsi15",f:parsenoop},2068:{n:"BrtBeginWebExtensions",f:parsenoop},2069:{n:"BrtEndWebExtensions",f:parsenoop},2070:{n:"BrtWebExtension",f:parsenoop},2071:{n:"BrtAbsPath15",f:parsenoop},2072:{n:"BrtBeginPivotTableUISettings",f:parsenoop},2073:{n:"BrtEndPivotTableUISettings",f:parsenoop},2075:{n:"BrtTableSlicerCacheIDs",f:parsenoop},2076:{n:"BrtTableSlicerCacheID",f:parsenoop},2077:{n:"BrtBeginTableSlicerCache",f:parsenoop},2078:{n:"BrtEndTableSlicerCache",f:parsenoop},2079:{n:"BrtSxFilter15",f:parsenoop},2080:{n:"BrtBeginTimelineCachePivotCacheIDs",f:parsenoop},2081:{n:"BrtEndTimelineCachePivotCacheIDs",f:parsenoop},2082:{n:"BrtTimelineCachePivotCacheID",f:parsenoop},2083:{n:"BrtBeginTimelineCacheIDs",f:parsenoop},2084:{n:"BrtEndTimelineCacheIDs",f:parsenoop},2085:{n:"BrtBeginTimelineCacheID",f:parsenoop},2086:{n:"BrtEndTimelineCacheID",f:parsenoop},2087:{n:"BrtBeginTimelinesEx",f:parsenoop},2088:{n:"BrtEndTimelinesEx",f:parsenoop},2089:{n:"BrtBeginTimelineEx",f:parsenoop},2090:{n:"BrtEndTimelineEx",f:parsenoop},2091:{n:"BrtWorkBookPr15",f:parsenoop},2092:{n:"BrtPCDH15",f:parsenoop},2093:{n:"BrtBeginTimelineStyle",f:parsenoop},2094:{n:"BrtEndTimelineStyle",f:parsenoop},2095:{n:"BrtTimelineStyleElement",f:parsenoop},2096:{n:"BrtBeginTimelineStylesheetExt15",f:parsenoop},2097:{n:"BrtEndTimelineStylesheetExt15",f:parsenoop},2098:{n:"BrtBeginTimelineStyles",f:parsenoop},2099:{n:"BrtEndTimelineStyles",f:parsenoop},2100:{n:"BrtBeginTimelineStyleElements",f:parsenoop},2101:{n:"BrtEndTimelineStyleElements",f:parsenoop},2102:{n:"BrtDxf15",f:parsenoop},2103:{n:"BrtBeginDxfs15",f:parsenoop},2104:{n:"brtEndDxfs15",f:parsenoop},2105:{n:"BrtSlicerCacheHideItemsWithNoData",f:parsenoop},2106:{n:"BrtBeginItemUniqueNames",f:parsenoop},2107:{n:"BrtEndItemUniqueNames",f:parsenoop},2108:{n:"BrtItemUniqueName",f:parsenoop},2109:{n:"BrtBeginExtConn15",f:parsenoop},2110:{n:"BrtEndExtConn15",f:parsenoop},2111:{n:"BrtBeginOledbPr15",f:parsenoop},2112:{n:"BrtEndOledbPr15",f:parsenoop},2113:{n:"BrtBeginDataFeedPr15",f:parsenoop},2114:{n:"BrtEndDataFeedPr15",f:parsenoop},2115:{n:"BrtTextPr15",f:parsenoop},2116:{n:"BrtRangePr15",f:parsenoop},2117:{n:"BrtDbCommand15",f:parsenoop},2118:{n:"BrtBeginDbTables15",f:parsenoop},2119:{n:"BrtEndDbTables15",f:parsenoop},2120:{n:"BrtDbTable15",f:parsenoop},2121:{n:"BrtBeginDataModel",f:parsenoop},2122:{n:"BrtEndDataModel",f:parsenoop},2123:{n:"BrtBeginModelTables",f:parsenoop},2124:{n:"BrtEndModelTables",f:parsenoop},2125:{n:"BrtModelTable",f:parsenoop},2126:{n:"BrtBeginModelRelationships",f:parsenoop},2127:{n:"BrtEndModelRelationships",f:parsenoop},2128:{n:"BrtModelRelationship",f:parsenoop},2129:{n:"BrtBeginECTxtWiz15",f:parsenoop},2130:{n:"BrtEndECTxtWiz15",f:parsenoop},2131:{n:"BrtBeginECTWFldInfoLst15",f:parsenoop},2132:{n:"BrtEndECTWFldInfoLst15",f:parsenoop},2133:{n:"BrtBeginECTWFldInfo15",f:parsenoop},2134:{n:"BrtFieldListActiveItem",f:parsenoop},2135:{n:"BrtPivotCacheIdVersion",f:parsenoop},2136:{n:"BrtSXDI15",f:parsenoop},65535:{n:"",f:parsenoop}}; +var evert_RE=evert_key(XLSBRecordEnum,"n");var XLSRecordEnum={3:{n:"BIFF2NUM",f:parse_BIFF2NUM},4:{n:"BIFF2STR",f:parse_BIFF2STR},6:{n:"Formula",f:parse_Formula},9:{n:"BOF",f:parse_BOF},10:{n:"EOF",f:parse_EOF},12:{n:"CalcCount",f:parse_CalcCount},13:{n:"CalcMode",f:parse_CalcMode},14:{n:"CalcPrecision",f:parse_CalcPrecision},15:{n:"CalcRefMode",f:parse_CalcRefMode},16:{n:"CalcDelta",f:parse_CalcDelta},17:{n:"CalcIter",f:parse_CalcIter},18:{n:"Protect",f:parse_Protect},19:{n:"Password",f:parse_Password},20:{n:"Header",f:parse_Header},21:{n:"Footer",f:parse_Footer},23:{n:"ExternSheet",f:parse_ExternSheet},24:{n:"Lbl",f:parse_Lbl},25:{n:"WinProtect",f:parse_WinProtect},26:{n:"VerticalPageBreaks",f:parse_VerticalPageBreaks},27:{n:"HorizontalPageBreaks",f:parse_HorizontalPageBreaks},28:{n:"Note",f:parse_Note},29:{n:"Selection",f:parse_Selection},34:{n:"Date1904",f:parse_Date1904},35:{n:"ExternName",f:parse_ExternName},38:{n:"LeftMargin",f:parse_LeftMargin},39:{n:"RightMargin",f:parse_RightMargin},40:{n:"TopMargin",f:parse_TopMargin},41:{n:"BottomMargin",f:parse_BottomMargin},42:{n:"PrintRowCol",f:parse_PrintRowCol},43:{n:"PrintGrid",f:parse_PrintGrid},47:{n:"FilePass",f:parse_FilePass},49:{n:"Font",f:parse_Font},51:{n:"PrintSize",f:parse_PrintSize},60:{n:"Continue",f:parse_Continue},61:{n:"Window1",f:parse_Window1},64:{n:"Backup",f:parse_Backup},65:{n:"Pane",f:parse_Pane},66:{n:"CodePage",f:parse_CodePage},77:{n:"Pls",f:parse_Pls},80:{n:"DCon",f:parse_DCon},81:{n:"DConRef",f:parse_DConRef},82:{n:"DConName",f:parse_DConName},85:{n:"DefColWidth",f:parse_DefColWidth},89:{n:"XCT",f:parse_XCT},90:{n:"CRN",f:parse_CRN},91:{n:"FileSharing",f:parse_FileSharing},92:{n:"WriteAccess",f:parse_WriteAccess},93:{n:"Obj",f:parse_Obj},94:{n:"Uncalced",f:parse_Uncalced},95:{n:"CalcSaveRecalc",f:parse_CalcSaveRecalc},96:{n:"Template",f:parse_Template},97:{n:"Intl",f:parse_Intl},99:{n:"ObjProtect",f:parse_ObjProtect},125:{n:"ColInfo",f:parse_ColInfo},128:{n:"Guts",f:parse_Guts},129:{n:"WsBool",f:parse_WsBool},130:{n:"GridSet",f:parse_GridSet},131:{n:"HCenter",f:parse_HCenter},132:{n:"VCenter",f:parse_VCenter},133:{n:"BoundSheet8",f:parse_BoundSheet8},134:{n:"WriteProtect",f:parse_WriteProtect},140:{n:"Country",f:parse_Country},141:{n:"HideObj",f:parse_HideObj},144:{n:"Sort",f:parse_Sort},146:{n:"Palette",f:parse_Palette},151:{n:"Sync",f:parse_Sync},152:{n:"LPr",f:parse_LPr},153:{n:"DxGCol",f:parse_DxGCol},154:{n:"FnGroupName",f:parse_FnGroupName},155:{n:"FilterMode",f:parse_FilterMode},156:{n:"BuiltInFnGroupCount",f:parse_BuiltInFnGroupCount},157:{n:"AutoFilterInfo",f:parse_AutoFilterInfo},158:{n:"AutoFilter",f:parse_AutoFilter},160:{n:"Scl",f:parse_Scl},161:{n:"Setup",f:parse_Setup},174:{n:"ScenMan",f:parse_ScenMan},175:{n:"SCENARIO",f:parse_SCENARIO},176:{n:"SxView",f:parse_SxView},177:{n:"Sxvd",f:parse_Sxvd},178:{n:"SXVI",f:parse_SXVI},180:{n:"SxIvd",f:parse_SxIvd},181:{n:"SXLI",f:parse_SXLI},182:{n:"SXPI",f:parse_SXPI},184:{n:"DocRoute",f:parse_DocRoute},185:{n:"RecipName",f:parse_RecipName},189:{n:"MulRk",f:parse_MulRk},190:{n:"MulBlank",f:parse_MulBlank},193:{n:"Mms",f:parse_Mms},197:{n:"SXDI",f:parse_SXDI},198:{n:"SXDB",f:parse_SXDB},199:{n:"SXFDB",f:parse_SXFDB},200:{n:"SXDBB",f:parse_SXDBB},201:{n:"SXNum",f:parse_SXNum},202:{n:"SxBool",f:parse_SxBool},203:{n:"SxErr",f:parse_SxErr},204:{n:"SXInt",f:parse_SXInt},205:{n:"SXString",f:parse_SXString},206:{n:"SXDtr",f:parse_SXDtr},207:{n:"SxNil",f:parse_SxNil},208:{n:"SXTbl",f:parse_SXTbl},209:{n:"SXTBRGIITM",f:parse_SXTBRGIITM},210:{n:"SxTbpg",f:parse_SxTbpg},211:{n:"ObProj",f:parse_ObProj},213:{n:"SXStreamID",f:parse_SXStreamID},215:{n:"DBCell",f:parse_DBCell},216:{n:"SXRng",f:parse_SXRng},217:{n:"SxIsxoper",f:parse_SxIsxoper},218:{n:"BookBool",f:parse_BookBool},220:{n:"DbOrParamQry",f:parse_DbOrParamQry},221:{n:"ScenarioProtect",f:parse_ScenarioProtect},222:{n:"OleObjectSize",f:parse_OleObjectSize},224:{n:"XF",f:parse_XF},225:{n:"InterfaceHdr",f:parse_InterfaceHdr},226:{n:"InterfaceEnd",f:parse_InterfaceEnd},227:{n:"SXVS",f:parse_SXVS},229:{n:"MergeCells",f:parse_MergeCells},233:{n:"BkHim",f:parse_BkHim},235:{n:"MsoDrawingGroup",f:parse_MsoDrawingGroup},236:{n:"MsoDrawing",f:parse_MsoDrawing},237:{n:"MsoDrawingSelection",f:parse_MsoDrawingSelection},239:{n:"PhoneticInfo",f:parse_PhoneticInfo},240:{n:"SxRule",f:parse_SxRule},241:{n:"SXEx",f:parse_SXEx},242:{n:"SxFilt",f:parse_SxFilt},244:{n:"SxDXF",f:parse_SxDXF},245:{n:"SxItm",f:parse_SxItm},246:{n:"SxName",f:parse_SxName},247:{n:"SxSelect",f:parse_SxSelect},248:{n:"SXPair",f:parse_SXPair},249:{n:"SxFmla",f:parse_SxFmla},251:{n:"SxFormat",f:parse_SxFormat},252:{n:"SST",f:parse_SST},253:{n:"LabelSst",f:parse_LabelSst},255:{n:"ExtSST",f:parse_ExtSST},256:{n:"SXVDEx",f:parse_SXVDEx},259:{n:"SXFormula",f:parse_SXFormula},290:{n:"SXDBEx",f:parse_SXDBEx},311:{n:"RRDInsDel",f:parse_RRDInsDel},312:{n:"RRDHead",f:parse_RRDHead},315:{n:"RRDChgCell",f:parse_RRDChgCell},317:{n:"RRTabId",f:parse_RRTabId},318:{n:"RRDRenSheet",f:parse_RRDRenSheet},319:{n:"RRSort",f:parse_RRSort},320:{n:"RRDMove",f:parse_RRDMove},330:{n:"RRFormat",f:parse_RRFormat},331:{n:"RRAutoFmt",f:parse_RRAutoFmt},333:{n:"RRInsertSh",f:parse_RRInsertSh},334:{n:"RRDMoveBegin",f:parse_RRDMoveBegin},335:{n:"RRDMoveEnd",f:parse_RRDMoveEnd},336:{n:"RRDInsDelBegin",f:parse_RRDInsDelBegin},337:{n:"RRDInsDelEnd",f:parse_RRDInsDelEnd},338:{n:"RRDConflict",f:parse_RRDConflict},339:{n:"RRDDefName",f:parse_RRDDefName},340:{n:"RRDRstEtxp",f:parse_RRDRstEtxp},351:{n:"LRng",f:parse_LRng},352:{n:"UsesELFs",f:parse_UsesELFs},353:{n:"DSF",f:parse_DSF},401:{n:"CUsr",f:parse_CUsr},402:{n:"CbUsr",f:parse_CbUsr},403:{n:"UsrInfo",f:parse_UsrInfo},404:{n:"UsrExcl",f:parse_UsrExcl},405:{n:"FileLock",f:parse_FileLock},406:{n:"RRDInfo",f:parse_RRDInfo},407:{n:"BCUsrs",f:parse_BCUsrs},408:{n:"UsrChk",f:parse_UsrChk},425:{n:"UserBView",f:parse_UserBView},426:{n:"UserSViewBegin",f:parse_UserSViewBegin},427:{n:"UserSViewEnd",f:parse_UserSViewEnd},428:{n:"RRDUserView",f:parse_RRDUserView},429:{n:"Qsi",f:parse_Qsi},430:{n:"SupBook",f:parse_SupBook},431:{n:"Prot4Rev",f:parse_Prot4Rev},432:{n:"CondFmt",f:parse_CondFmt},433:{n:"CF",f:parse_CF},434:{n:"DVal",f:parse_DVal},437:{n:"DConBin",f:parse_DConBin},438:{n:"TxO",f:parse_TxO},439:{n:"RefreshAll",f:parse_RefreshAll},440:{n:"HLink",f:parse_HLink},441:{n:"Lel",f:parse_Lel},442:{n:"CodeName",f:parse_XLSCodeName},443:{n:"SXFDBType",f:parse_SXFDBType},444:{n:"Prot4RevPass",f:parse_Prot4RevPass},445:{n:"ObNoMacros",f:parse_ObNoMacros},446:{n:"Dv",f:parse_Dv},448:{n:"Excel9File",f:parse_Excel9File},449:{n:"RecalcId",f:parse_RecalcId,r:2},450:{n:"EntExU2",f:parse_EntExU2},512:{n:"Dimensions",f:parse_Dimensions},513:{n:"Blank",f:parse_Blank},515:{n:"Number",f:parse_Number},516:{n:"Label",f:parse_Label},517:{n:"BoolErr",f:parse_BoolErr},519:{n:"String",f:parse_String},520:{n:"Row",f:parse_Row},523:{n:"Index",f:parse_Index},545:{n:"Array",f:parse_Array},549:{n:"DefaultRowHeight",f:parse_DefaultRowHeight},566:{n:"Table",f:parse_Table},574:{n:"Window2",f:parse_Window2},638:{n:"RK",f:parse_RK},659:{n:"Style",f:parse_Style},1048:{n:"BigName",f:parse_BigName},1054:{n:"Format",f:parse_Format},1084:{n:"ContinueBigName",f:parse_ContinueBigName},1212:{n:"ShrFmla",f:parse_ShrFmla},2048:{n:"HLinkTooltip",f:parse_HLinkTooltip},2049:{n:"WebPub",f:parse_WebPub},2050:{n:"QsiSXTag",f:parse_QsiSXTag},2051:{n:"DBQueryExt",f:parse_DBQueryExt},2052:{n:"ExtString",f:parse_ExtString},2053:{n:"TxtQry",f:parse_TxtQry},2054:{n:"Qsir",f:parse_Qsir},2055:{n:"Qsif",f:parse_Qsif},2056:{n:"RRDTQSIF",f:parse_RRDTQSIF},2057:{n:"BOF",f:parse_BOF},2058:{n:"OleDbConn",f:parse_OleDbConn},2059:{n:"WOpt",f:parse_WOpt},2060:{n:"SXViewEx",f:parse_SXViewEx},2061:{n:"SXTH",f:parse_SXTH},2062:{n:"SXPIEx",f:parse_SXPIEx},2063:{n:"SXVDTEx",f:parse_SXVDTEx},2064:{n:"SXViewEx9",f:parse_SXViewEx9},2066:{n:"ContinueFrt",f:parse_ContinueFrt},2067:{n:"RealTimeData",f:parse_RealTimeData},2128:{n:"ChartFrtInfo",f:parse_ChartFrtInfo},2129:{n:"FrtWrapper",f:parse_FrtWrapper},2130:{n:"StartBlock",f:parse_StartBlock},2131:{n:"EndBlock",f:parse_EndBlock},2132:{n:"StartObject",f:parse_StartObject},2133:{n:"EndObject",f:parse_EndObject},2134:{n:"CatLab",f:parse_CatLab},2135:{n:"YMult",f:parse_YMult},2136:{n:"SXViewLink",f:parse_SXViewLink},2137:{n:"PivotChartBits",f:parse_PivotChartBits},2138:{n:"FrtFontList",f:parse_FrtFontList},2146:{n:"SheetExt",f:parse_SheetExt},2147:{n:"BookExt",f:parse_BookExt,r:12},2148:{n:"SXAddl",f:parse_SXAddl},2149:{n:"CrErr",f:parse_CrErr},2150:{n:"HFPicture",f:parse_HFPicture},2151:{n:"FeatHdr",f:parse_FeatHdr},2152:{n:"Feat",f:parse_Feat},2154:{n:"DataLabExt",f:parse_DataLabExt},2155:{n:"DataLabExtContents",f:parse_DataLabExtContents},2156:{n:"CellWatch",f:parse_CellWatch},2161:{n:"FeatHdr11",f:parse_FeatHdr11},2162:{n:"Feature11",f:parse_Feature11},2164:{n:"DropDownObjIds",f:parse_DropDownObjIds},2165:{n:"ContinueFrt11",f:parse_ContinueFrt11},2166:{n:"DConn",f:parse_DConn},2167:{n:"List12",f:parse_List12},2168:{n:"Feature12",f:parse_Feature12},2169:{n:"CondFmt12",f:parse_CondFmt12},2170:{n:"CF12",f:parse_CF12},2171:{n:"CFEx",f:parse_CFEx},2172:{n:"XFCRC",f:parse_XFCRC,r:12},2173:{n:"XFExt",f:parse_XFExt,r:12},2174:{n:"AutoFilter12",f:parse_AutoFilter12},2175:{n:"ContinueFrt12",f:parse_ContinueFrt12},2180:{n:"MDTInfo",f:parse_MDTInfo},2181:{n:"MDXStr",f:parse_MDXStr},2182:{n:"MDXTuple",f:parse_MDXTuple},2183:{n:"MDXSet",f:parse_MDXSet},2184:{n:"MDXProp",f:parse_MDXProp},2185:{n:"MDXKPI",f:parse_MDXKPI},2186:{n:"MDB",f:parse_MDB},2187:{n:"PLV",f:parse_PLV},2188:{n:"Compat12",f:parse_Compat12,r:12},2189:{n:"DXF",f:parse_DXF},2190:{n:"TableStyles",f:parse_TableStyles,r:12},2191:{n:"TableStyle",f:parse_TableStyle},2192:{n:"TableStyleElement",f:parse_TableStyleElement},2194:{n:"StyleExt",f:parse_StyleExt},2195:{n:"NamePublish",f:parse_NamePublish},2196:{n:"NameCmt",f:parse_NameCmt},2197:{n:"SortData",f:parse_SortData},2198:{n:"Theme",f:parse_Theme,r:12},2199:{n:"GUIDTypeLib",f:parse_GUIDTypeLib},2200:{n:"FnGrp12",f:parse_FnGrp12},2201:{n:"NameFnGrp12",f:parse_NameFnGrp12},2202:{n:"MTRSettings",f:parse_MTRSettings,r:12},2203:{n:"CompressPictures",f:parse_CompressPictures},2204:{n:"HeaderFooter",f:parse_HeaderFooter},2205:{n:"CrtLayout12",f:parse_CrtLayout12},2206:{n:"CrtMlFrt",f:parse_CrtMlFrt},2207:{n:"CrtMlFrtContinue",f:parse_CrtMlFrtContinue},2211:{n:"ForceFullCalculation",f:parse_ForceFullCalculation},2212:{n:"ShapePropsStream",f:parse_ShapePropsStream},2213:{n:"TextPropsStream",f:parse_TextPropsStream},2214:{n:"RichTextStream",f:parse_RichTextStream},2215:{n:"CrtLayout12A",f:parse_CrtLayout12A},4097:{n:"Units",f:parse_Units},4098:{n:"Chart",f:parse_Chart},4099:{n:"Series",f:parse_Series},4102:{n:"DataFormat",f:parse_DataFormat},4103:{n:"LineFormat",f:parse_LineFormat},4105:{n:"MarkerFormat",f:parse_MarkerFormat},4106:{n:"AreaFormat",f:parse_AreaFormat},4107:{n:"PieFormat",f:parse_PieFormat},4108:{n:"AttachedLabel",f:parse_AttachedLabel},4109:{n:"SeriesText",f:parse_SeriesText},4116:{n:"ChartFormat",f:parse_ChartFormat},4117:{n:"Legend",f:parse_Legend},4118:{n:"SeriesList",f:parse_SeriesList},4119:{n:"Bar",f:parse_Bar},4120:{n:"Line",f:parse_Line},4121:{n:"Pie",f:parse_Pie},4122:{n:"Area",f:parse_Area},4123:{n:"Scatter",f:parse_Scatter},4124:{n:"CrtLine",f:parse_CrtLine},4125:{n:"Axis",f:parse_Axis},4126:{n:"Tick",f:parse_Tick},4127:{n:"ValueRange",f:parse_ValueRange},4128:{n:"CatSerRange",f:parse_CatSerRange},4129:{n:"AxisLine",f:parse_AxisLine},4130:{n:"CrtLink",f:parse_CrtLink},4132:{n:"DefaultText",f:parse_DefaultText},4133:{n:"Text",f:parse_Text},4134:{n:"FontX",f:parse_FontX},4135:{n:"ObjectLink",f:parse_ObjectLink},4146:{n:"Frame",f:parse_Frame},4147:{n:"Begin",f:parse_Begin},4148:{n:"End",f:parse_End},4149:{n:"PlotArea",f:parse_PlotArea},4154:{n:"Chart3d",f:parse_Chart3d},4156:{n:"PicF",f:parse_PicF},4157:{n:"DropBar",f:parse_DropBar},4158:{n:"Radar",f:parse_Radar},4159:{n:"Surf",f:parse_Surf},4160:{n:"RadarArea",f:parse_RadarArea},4161:{n:"AxisParent",f:parse_AxisParent},4163:{n:"LegendException",f:parse_LegendException},4164:{n:"ShtProps",f:parse_ShtProps},4165:{n:"SerToCrt",f:parse_SerToCrt},4166:{n:"AxesUsed",f:parse_AxesUsed},4168:{n:"SBaseRef",f:parse_SBaseRef},4170:{n:"SerParent",f:parse_SerParent},4171:{n:"SerAuxTrend",f:parse_SerAuxTrend},4174:{n:"IFmtRecord",f:parse_IFmtRecord},4175:{n:"Pos",f:parse_Pos},4176:{n:"AlRuns",f:parse_AlRuns},4177:{n:"BRAI",f:parse_BRAI},4187:{n:"SerAuxErrBar",f:parse_SerAuxErrBar},4188:{n:"ClrtClient",f:parse_ClrtClient},4189:{n:"SerFmt",f:parse_SerFmt},4191:{n:"Chart3DBarShape",f:parse_Chart3DBarShape},4192:{n:"Fbi",f:parse_Fbi},4193:{n:"BopPop",f:parse_BopPop},4194:{n:"AxcExt",f:parse_AxcExt},4195:{n:"Dat",f:parse_Dat},4196:{n:"PlotGrowth",f:parse_PlotGrowth},4197:{n:"SIIndex",f:parse_SIIndex},4198:{n:"GelFrame",f:parse_GelFrame},4199:{n:"BopPopCustom",f:parse_BopPopCustom},4200:{n:"Fbi2",f:parse_Fbi2},22:{n:"ExternCount",f:parsenoop},126:{n:"RK",f:parsenoop},127:{n:"ImData",f:parsenoop},135:{n:"Addin",f:parsenoop},136:{n:"Edg",f:parsenoop},137:{n:"Pub",f:parsenoop},145:{n:"Sub",f:parsenoop},148:{n:"LHRecord",f:parsenoop},149:{n:"LHNGraph",f:parsenoop},150:{n:"Sound",f:parsenoop},169:{n:"CoordList",f:parsenoop},171:{n:"GCW",f:parsenoop},188:{n:"ShrFmla",f:parsenoop},194:{n:"AddMenu",f:parsenoop},195:{n:"DelMenu",f:parsenoop},214:{n:"RString",f:parsenoop},223:{n:"UDDesc",f:parsenoop},234:{n:"TabIdConf",f:parsenoop},354:{n:"XL5Modify",f:parsenoop},421:{n:"FileSharing2",f:parsenoop},536:{n:"Name",f:parsenoop},547:{n:"ExternName",f:parse_ExternName},561:{n:"Font",f:parsenoop},1030:{n:"Formula",f:parse_Formula},2157:{n:"FeatInfo",f:parsenoop},2163:{n:"FeatInfo11",f:parsenoop},2177:{n:"SXAddl12",f:parsenoop},2240:{n:"AutoWebPub",f:parsenoop},2241:{n:"ListObj",f:parsenoop},2242:{n:"ListField",f:parsenoop},2243:{n:"ListDV",f:parsenoop},2244:{n:"ListCondFmt",f:parsenoop},2245:{n:"ListCF",f:parsenoop},2246:{n:"FMQry",f:parsenoop},2247:{n:"FMSQry",f:parsenoop},2248:{n:"PLV",f:parsenoop},2249:{n:"LnExt",f:parsenoop},2250:{n:"MkrExt",f:parsenoop},2251:{n:"CrtCoopt",f:parsenoop},0:{}};function parse_ods(zip,opts){if(typeof module!=="undefined"&&typeof require!=="undefined"&&typeof ODS==="undefined")ODS=require("./od"+"s");if(typeof ODS==="undefined"||!ODS.parse_ods)throw new Error("Unsupported ODS");return ODS.parse_ods(zip,opts)}function fix_opts_func(defaults){return function fix_opts(opts){for(var i=0;i!=defaults.length;++i){var d=defaults[i];if(opts[d[0]]===undefined)opts[d[0]]=d[1];if(d[2]==="n")opts[d[0]]=Number(opts[d[0]])}}}var fix_read_opts=fix_opts_func([["cellNF",false],["cellHTML",true],["cellFormula",true],["cellStyles",false],["cellDates",false],["sheetStubs",false],["sheetRows",0,"n"],["bookDeps",false],["bookSheets",false],["bookProps",false],["bookFiles",false],["bookVBA",false],["password",""],["WTF",false]]);var fix_write_opts=fix_opts_func([["cellDates",false],["bookSST",false],["bookType","xlsx"],["WTF",false]]);function safe_parse_wbrels(wbrels,sheets){if(!wbrels)return 0;try{wbrels=sheets.map(function pwbr(w){return[w.name,wbrels["!id"][w.id].Target]})}catch(e){return null}return!wbrels||wbrels.length===0?null:wbrels}function safe_parse_ws(zip,path,relsPath,sheet,sheetRels,sheets,opts){try{sheetRels[sheet]=parse_rels(getzipdata(zip,relsPath,true),path);sheets[sheet]=parse_ws(getzipdata(zip,path),path,opts,sheetRels[sheet])}catch(e){if(opts.WTF)throw e}}var nodirs=function nodirs(x){return x.substr(-1)!="/"};function parse_zip(zip,opts){make_ssf(SSF);opts=opts||{};fix_read_opts(opts);reset_cp();if(safegetzipfile(zip,"META-INF/manifest.xml"))return parse_ods(zip,opts);var entries=keys(zip.files).filter(nodirs).sort();var dir=parse_ct(getzipdata(zip,"[Content_Types].xml"),opts);var xlsb=false;var sheets,binname;if(dir.workbooks.length===0){binname="xl/workbook.xml";if(getzipdata(zip,binname,true))dir.workbooks.push(binname)}if(dir.workbooks.length===0){binname="xl/workbook.bin";if(!getzipfile(zip,binname,true))throw new Error("Could not find workbook");dir.workbooks.push(binname);xlsb=true}if(dir.workbooks[0].substr(-3)=="bin")xlsb=true;if(xlsb)set_cp(1200);if(!opts.bookSheets&&!opts.bookProps){strs=[];if(dir.sst)strs=parse_sst(getzipdata(zip,dir.sst.replace(/^\//,"")),dir.sst,opts);styles={};if(dir.style)styles=parse_sty(getzipdata(zip,dir.style.replace(/^\//,"")),dir.style,opts);themes={};if(opts.cellStyles&&dir.themes.length)themes=parse_theme(getzipdata(zip,dir.themes[0].replace(/^\//,""),true),dir.themes[0],opts)}var wb=parse_wb(getzipdata(zip,dir.workbooks[0].replace(/^\//,"")),dir.workbooks[0],opts);var props={},propdata="";if(dir.coreprops.length!==0){propdata=getzipdata(zip,dir.coreprops[0].replace(/^\//,""),true);if(propdata)props=parse_core_props(propdata);if(dir.extprops.length!==0){propdata=getzipdata(zip,dir.extprops[0].replace(/^\//,""),true);if(propdata)parse_ext_props(propdata,props)}}var custprops={};if(!opts.bookSheets||opts.bookProps){if(dir.custprops.length!==0){propdata=getzipdata(zip,dir.custprops[0].replace(/^\//,""),true);if(propdata)custprops=parse_cust_props(propdata,opts)}}var out={};if(opts.bookSheets||opts.bookProps){if(props.Worksheets&&props.SheetNames.length>0)sheets=props.SheetNames;else if(wb.Sheets)sheets=wb.Sheets.map(function pluck(x){return x.name});if(opts.bookProps){out.Props=props;out.Custprops=custprops}if(typeof sheets!=="undefined")out.SheetNames=sheets;if(opts.bookSheets?out.SheetNames:opts.bookProps)return out}sheets={};var deps={};if(opts.bookDeps&&dir.calcchain)deps=parse_cc(getzipdata(zip,dir.calcchain.replace(/^\//,"")),dir.calcchain,opts);var i=0;var sheetRels={};var path,relsPath;if(!props.Worksheets){var wbsheets=wb.Sheets;props.Worksheets=wbsheets.length;props.SheetNames=[];for(var j=0;j!=wbsheets.length;++j){props.SheetNames[j]=wbsheets[j].name}}var wbext=xlsb?"bin":"xml";var wbrelsfile="xl/_rels/workbook."+wbext+".rels";var wbrels=parse_rels(getzipdata(zip,wbrelsfile,true),wbrelsfile);if(wbrels)wbrels=safe_parse_wbrels(wbrels,wb.Sheets);var nmode=getzipdata(zip,"xl/worksheets/sheet.xml",true)?1:0;for(i=0;i!=props.Worksheets;++i){if(wbrels)path="xl/"+wbrels[i][1].replace(/[\/]?xl\//,"");else{path="xl/worksheets/sheet"+(i+1-nmode)+"."+wbext;path=path.replace(/sheet0\./,"sheet.")}relsPath=path.replace(/^(.*)(\/)([^\/]*)$/,"$1/_rels/$3.rels");safe_parse_ws(zip,path,relsPath,props.SheetNames[i],sheetRels,sheets,opts)}if(dir.comments)parse_comments(zip,dir.comments,sheets,sheetRels,opts);out={Directory:dir,Workbook:wb,Props:props,Custprops:custprops,Deps:deps,Sheets:sheets,SheetNames:props.SheetNames,Strings:strs,Styles:styles,Themes:themes,SSF:SSF.get_table()};if(opts.bookFiles){out.keys=entries;out.files=zip.files}if(opts.bookVBA){if(dir.vba.length>0)out.vbaraw=getzipdata(zip,dir.vba[0],true);else if(dir.defaults.bin==="application/vnd.ms-office.vbaProject")out.vbaraw=getzipdata(zip,"xl/vbaProject.bin",true)}return out}function add_rels(rels,rId,f,type,relobj){if(!relobj)relobj={};if(!rels["!id"])rels["!id"]={};relobj.Id="rId"+rId;relobj.Type=type;relobj.Target=f;if(rels["!id"][relobj.Id])throw new Error("Cannot rewrite rId "+rId);rels["!id"][relobj.Id]=relobj;rels[("/"+relobj.Target).replace("//","/")]=relobj}function write_zip(wb,opts){if(wb&&!wb.SSF){wb.SSF=SSF.get_table()}if(wb&&wb.SSF){make_ssf(SSF);SSF.load_table(wb.SSF);opts.revssf=evert_num(wb.SSF);opts.revssf[wb.SSF[65535]]=0}opts.rels={};opts.wbrels={};opts.Strings=[];opts.Strings.Count=0;opts.Strings.Unique=0;var wbext=opts.bookType=="xlsb"?"bin":"xml";var ct={workbooks:[],sheets:[],calcchains:[],themes:[],styles:[],coreprops:[],extprops:[],custprops:[],strs:[],comments:[],vba:[],TODO:[],rels:[],xmlns:""};fix_write_opts(opts=opts||{});var zip=new jszip;var f="",rId=0;opts.cellXfs=[];get_cell_style(opts.cellXfs,{},{revssf:{General:0}});f="docProps/core.xml";zip.file(f,write_core_props(wb.Props,opts));ct.coreprops.push(f);add_rels(opts.rels,2,f,RELS.CORE_PROPS);f="docProps/app.xml";if(!wb.Props)wb.Props={};wb.Props.SheetNames=wb.SheetNames;wb.Props.Worksheets=wb.SheetNames.length;zip.file(f,write_ext_props(wb.Props,opts));ct.extprops.push(f);add_rels(opts.rels,3,f,RELS.EXT_PROPS);if(wb.Custprops!==wb.Props&&keys(wb.Custprops||{}).length>0){f="docProps/custom.xml";zip.file(f,write_cust_props(wb.Custprops,opts));ct.custprops.push(f);add_rels(opts.rels,4,f,RELS.CUST_PROPS)}f="xl/workbook."+wbext;zip.file(f,write_wb(wb,f,opts));ct.workbooks.push(f);add_rels(opts.rels,1,f,RELS.WB);for(rId=1;rId<=wb.SheetNames.length;++rId){f="xl/worksheets/sheet"+rId+"."+wbext;zip.file(f,write_ws(rId-1,f,opts,wb));ct.sheets.push(f);add_rels(opts.wbrels,rId,"worksheets/sheet"+rId+"."+wbext,RELS.WS)}if(opts.Strings!=null&&opts.Strings.length>0){f="xl/sharedStrings."+wbext;zip.file(f,write_sst(opts.Strings,f,opts));ct.strs.push(f);add_rels(opts.wbrels,++rId,"sharedStrings."+wbext,RELS.SST)}f="xl/theme/theme1.xml";zip.file(f,write_theme());ct.themes.push(f);add_rels(opts.wbrels,++rId,"theme/theme1.xml",RELS.THEME);f="xl/styles."+wbext;zip.file(f,write_sty(wb,f,opts));ct.styles.push(f);add_rels(opts.wbrels,++rId,"styles."+wbext,RELS.STY);zip.file("[Content_Types].xml",write_ct(ct,opts));zip.file("_rels/.rels",write_rels(opts.rels));zip.file("xl/_rels/workbook."+wbext+".rels",write_rels(opts.wbrels));return zip}function firstbyte(f,o){switch((o||{}).type||"base64"){case"buffer":return f[0];case"base64":return Base64.decode(f.substr(0,12)).charCodeAt(0);case"binary":return f.charCodeAt(0);case"array":return f[0];default:throw new Error("Unrecognized type "+o.type)}}function read_zip(data,opts){var zip,d=data;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";switch(o.type){case"base64":zip=new jszip(d,{base64:true});break;case"binary":case"array":zip=new jszip(d,{base64:false});break;case"buffer":zip=new jszip(d);break;case"file":zip=new jszip(d=_fs.readFileSync(data));break;default:throw new Error("Unrecognized type "+o.type)}return parse_zip(zip,o)}function readSync(data,opts){var zip,d=data,isfile=false,n;var o=opts||{};if(!o.type)o.type=has_buf&&Buffer.isBuffer(data)?"buffer":"base64";if(o.type=="file"){isfile=true;o.type="buffer";d=_fs.readFileSync(data)}switch(n=firstbyte(d,o)){case 208:if(isfile)o.type="file";return parse_xlscfb(CFB.read(data,o),o);case 9:return parse_xlscfb(s2a(o.type==="base64"?Base64.decode(data):data),o);case 60:return parse_xlml(d,o);case 80:if(isfile)o.type="file";return read_zip(data,opts);default:throw new Error("Unsupported file "+n)}}function readFileSync(data,opts){var o=opts||{};o.type="file";return readSync(data,o)}function write_zip_type(wb,opts){var o=opts||{};var z=write_zip(wb,o);switch(o.type){case"base64":return z.generate({type:"base64"});case"binary":return z.generate({type:"string"});case"buffer":return z.generate({type:"nodebuffer"});case"file":return _fs.writeFileSync(o.file,z.generate({type:"nodebuffer"}));default:throw new Error("Unrecognized type "+o.type)}}function writeSync(wb,opts){var o=opts||{};switch(o.bookType){case"xml":return write_xlml(wb,o);default:return write_zip_type(wb,o)}}function writeFileSync(wb,filename,opts){var o=opts||{};o.type="file";o.file=filename;switch(o.file.substr(-5).toLowerCase()){case".xlsx":o.bookType="xlsx";break;case".xlsm":o.bookType="xlsm";break;case".xlsb":o.bookType="xlsb";break;default:switch(o.file.substr(-4).toLowerCase()){case".xls":o.bookType="xls";break;case".xml":o.bookType="xml";break}}return writeSync(wb,o)}function decode_row(rowstr){return parseInt(unfix_row(rowstr),10)-1}function encode_row(row){return""+(row+1)}function fix_row(cstr){return cstr.replace(/([A-Z]|^)(\d+)$/,"$1$$$2")}function unfix_row(cstr){return cstr.replace(/\$(\d+)$/,"$1")}function decode_col(colstr){var c=unfix_col(colstr),d=0,i=0;for(;i!==c.length;++i)d=26*d+c.charCodeAt(i)-64;return d-1}function encode_col(col){var s="";for(++col;col;col=Math.floor((col-1)/26))s=String.fromCharCode((col-1)%26+65)+s;return s}function fix_col(cstr){return cstr.replace(/^([A-Z])/,"$$$1")}function unfix_col(cstr){return cstr.replace(/^\$([A-Z])/,"$1")}function split_cell(cstr){return cstr.replace(/(\$?[A-Z]*)(\$?\d*)/,"$1,$2").split(",")}function decode_cell(cstr){var splt=split_cell(cstr);return{c:decode_col(splt[0]),r:decode_row(splt[1])}}function encode_cell(cell){return encode_col(cell.c)+encode_row(cell.r)}function fix_cell(cstr){return fix_col(fix_row(cstr))}function unfix_cell(cstr){return unfix_col(unfix_row(cstr))}function decode_range(range){var x=range.split(":").map(decode_cell);return{s:x[0],e:x[x.length-1]}}function encode_range(cs,ce){if(ce===undefined||typeof ce==="number")return encode_range(cs.s,cs.e);if(typeof cs!=="string")cs=encode_cell(cs);if(typeof ce!=="string")ce=encode_cell(ce);return cs==ce?cs:cs+":"+ce}function safe_decode_range(range){var o={s:{c:0,r:0},e:{c:0,r:0}};var idx=0,i=0,cc=0;var len=range.length;for(idx=0;i26)break;idx=26*idx+cc}o.s.c=--idx;for(idx=0;i9)break;idx=10*idx+cc}o.s.r=--idx;if(i===len||range.charCodeAt(++i)===58){o.e.c=o.s.c;o.e.r=o.s.r;return o}for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-64)<1||cc>26)break;idx=26*idx+cc}o.e.c=--idx;for(idx=0;i!=len;++i){if((cc=range.charCodeAt(i)-48)<0||cc>9)break;idx=10*idx+cc}o.e.r=--idx;return o}function safe_format_cell(cell,v){if(cell.z!==undefined)try{return cell.w=SSF.format(cell.z,v)}catch(e){}if(!cell.XF)return v;try{return cell.w=SSF.format(cell.XF.ifmt||0,v)}catch(e){return""+v}}function format_cell(cell,v){if(cell==null||cell.t==null)return"";if(cell.w!==undefined)return cell.w;if(v===undefined)return safe_format_cell(cell,cell.v);return safe_format_cell(cell,v)}function sheet_to_json(sheet,opts){var val,row,range,header=0,offset=1,r,hdr=[],isempty,R,C,v;var o=opts!=null?opts:{};var raw=o.raw;if(sheet==null||sheet["!ref"]==null)return[];range=o.range!==undefined?o.range:sheet["!ref"];if(o.header===1)header=1;else if(o.header==="A")header=2;else if(Array.isArray(o.header))header=3;switch(typeof range){case"string":r=safe_decode_range(range);break;case"number":r=safe_decode_range(sheet["!ref"]);r.s.r=range;break;default:r=range}if(header>0)offset=0;var rr=encode_row(r.s.r);var cols=new Array(r.e.c-r.s.c+1);var out=new Array(r.e.r-r.s.r-offset+1);var outi=0;for(C=r.s.c;C<=r.e.c;++C){cols[C]=encode_col(C);val=sheet[cols[C]+rr];switch(header){case 1:hdr[C]=C;break;case 2:hdr[C]=cols[C];break;case 3:hdr[C]=o.header[C-r.s.c];break;default:if(val===undefined)continue;hdr[C]=format_cell(val)}}for(R=r.s.r+offset;R<=r.e.r;++R){rr=encode_row(R);isempty=true;if(header===1)row=[];else{row={};if(Object.defineProperty)Object.defineProperty(row,"__rowNum__",{value:R,enumerable:false});else row.__rowNum__=R}for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];if(val===undefined||val.t===undefined)continue;v=val.v;switch(val.t){case"e":continue;case"s":break;case"b":case"n":break;default:throw"unrecognized type "+val.t}if(v!==undefined){row[hdr[C]]=raw?v:format_cell(val,v);isempty=false}}if(isempty===false||header===1)out[outi++]=row}out.length=outi;return out}function sheet_to_row_object_array(sheet,opts){return sheet_to_json(sheet,opts!=null?opts:{})}function sheet_to_csv(sheet,opts){var out="",txt="",qreg=/"/g;var o=opts==null?{}:opts;if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]);var FS=o.FS!==undefined?o.FS:",",fs=FS.charCodeAt(0);var RS=o.RS!==undefined?o.RS:"\n",rs=RS.charCodeAt(0);var row="",rr="",cols=[];var i=0,cc=0,val;var R=0,C=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(R=r.s.r;R<=r.e.r;++R){row="";rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){val=sheet[cols[C]+rr];txt=val!==undefined?""+format_cell(val):"";for(i=0,cc=0;i!==txt.length;++i)if((cc=txt.charCodeAt(i))===fs||cc===rs||cc===34){txt='"'+txt.replace(qreg,'""')+'"';break}row+=(C===r.s.c?"":FS)+txt}out+=row+RS}return out}var make_csv=sheet_to_csv;function sheet_to_formulae(sheet){var cmds,y="",x,val="";if(sheet==null||sheet["!ref"]==null)return"";var r=safe_decode_range(sheet["!ref"]),rr="",cols=[],C;cmds=new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));var i=0;for(C=r.s.c;C<=r.e.c;++C)cols[C]=encode_col(C);for(var R=r.s.r;R<=r.e.r;++R){rr=encode_row(R);for(C=r.s.c;C<=r.e.c;++C){y=cols[C]+rr;x=sheet[y];val="";if(x===undefined)continue;if(x.f!=null)val=x.f;else if(x.w!==undefined)val="'"+x.w;else if(x.v===undefined)continue;else val=""+x.v;cmds[i++]=y+"="+val}}cmds.length=i;return cmds}var utils={encode_col:encode_col,encode_row:encode_row,encode_cell:encode_cell,encode_range:encode_range,decode_col:decode_col,decode_row:decode_row,split_cell:split_cell,decode_cell:decode_cell,decode_range:decode_range,format_cell:format_cell,get_formulae:sheet_to_formulae,make_csv:sheet_to_csv,make_json:sheet_to_json,make_formulae:sheet_to_formulae,sheet_to_csv:sheet_to_csv,sheet_to_json:sheet_to_json,sheet_to_formulae:sheet_to_formulae,sheet_to_row_object_array:sheet_to_row_object_array};XLSX.parse_xlscfb=parse_xlscfb;XLSX.parse_zip=parse_zip;XLSX.read=readSync;XLSX.readFile=readFileSync;XLSX.readFileSync=readFileSync;XLSX.write=writeSync;XLSX.writeFile=writeFileSync;XLSX.writeFileSync=writeFileSync;XLSX.utils=utils;XLSX.CFB=CFB;XLSX.SSF=SSF})(typeof exports!=="undefined"?exports:XLSX);var XLS=XLSX; diff --git a/dist/xlsx.min.map b/dist/xlsx.min.map index 09cec0d..f9f4e55 100644 --- a/dist/xlsx.min.map +++ b/dist/xlsx.min.map @@ -1 +1 @@ -{"version":3,"file":"dist/xlsx.min.js","sources":["xlsx.js"],"names":["XLSX","version","current_codepage","current_cptable","module","require","cptable","reset_cp","set_cp","cp","char_codes","data","o","i","len","length","charCodeAt","debom_xml","utils","decode","substr","SSF","make_ssf","_strrev","x","charAt","fill","c","l","pad0","v","d","t","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","isgeneral","s","opts_fmt","fixopts","y","undefined","opts","table_fmt",1,2,3,4,9,10,11,12,13,14,15,16,17,18,19,20,21,22,37,38,39,40,45,46,47,48,49,56,65535,"days","months","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","floor","q","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","toFixed","toPrecision","toExponential","gfn3","replace","gfn4","indexOf","V","log","abs","LOG10E","_general_num","general_fmt","Error","_general","fix_hijri","date","parse_date_code","b2","time","dow","dout","out","T","u","m","H","M","S","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","write_date","type","fmt","val","ss0","ss","tt","outl","commaify","j","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","String","fromCharCode","rnd","dd","dec","flr","write_num_flt","ffmt","oo","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","eval_fmt","flen","lst","dt","hr","toLowerCase","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","f","lat","m1","m2","format","table","_table","load","load_entry","get_table","load_table","tbl","isval","keys","Object","evert_key","obj","key","K","evert","evert_num","evert_arr","push","datenum","epoch","parse","cc2str","arr","has_buf","Buffer","getdata","name","asNodeBuffer","_data","getContent","Array","prototype","slice","call","toString","asBinary","safegetzipfile","zip","file","files","getzipfile","getzipdata","safe","e","_fs","jszip","JSZip","exports","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","substring","strip_ns","encodings",""","'",">","<","&","rencoding","rencstr","split","encregex","coderegex","unescapexml","text","decregex","charegex","escapexml","parsexmlbool","value","utf8read","utf8reada","orig","utf8readb","k","ww","corpus","utf8readc","matchtag","mtcache","g","RegExp","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","h","matches","baseType","size","res","forEach","wtregex","writetag","wxt_helper","map","join","writextag","write_w3cdtf","toISOString","write_vt","XML_HEADER","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","readIEEE754","buf","isLE","nl","ml","el","eMax","eBias","bits","NaN","Infinity","__toBuffer","___toBuffer","toBuffer_","bufs","apply","__double","___double","b","is_buf","is_buf_a","a","isArray","isBuffer","concat","double_","readDoubleLE","is_buf_b","__readUInt8","__readUInt16LE","__readInt16LE","__readUInt32LE","__readInt32LE","ReadShift","loc","this","WriteShift","writeUInt16LE","writeUInt32LE","writeDoubleLE","writeInt32LE","prep_blob","blob","pos","read_shift","write_shift","parsenoop","writenoop","new_buf","sz","recordhopper","cb","tmpbyte","cntbyte","RT","R","RecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","next","ba_next","end","ba_end","ba_push","_bufs","write_record","ba","payload","evert_RE","p","parse_StrRun","ich","ifnt","parse_RichStr","start","flags","parse_XLWideString","rgsStrRun","dwSizeStrRun","write_RichStr","write_XLWideString","parse_Cell","col","iStyleRef","fPhShow","write_Cell","cell","parse_CodeName","parse_XLNullableWideString","cchCharacters","write_XLNullableWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr",7,23,29,36,42,43,255,"RBErr","parse_BrtColor","fValidRGB","xColorType","index","nTintAndShade","bRed","bGreen","bBlue","bAlpha","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.chartsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml","application/vnd.ms-excel.dialogsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml","application/vnd.ms-excel.macrosheet","application/vnd.ms-excel.macrosheet+xml","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.ms-excel.comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","sheet","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","sheets","styles","type2ct","CT","parse_ct","ctext","ct","calcchains","themes","coreprops","extprops","custprops","comments","vba","TODO","rels","xmlns","Extension","ContentType","PartName","WTF","console","error","calcchain","sst","style","defaults","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","parse_rels","currentFilePath","hash","resolveRelativePathIntoAbsolute","to","toksFrom","pop","toksTo","reversed","tokTo","shift","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","widx","Worksheets","parts","SheetNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","xmlnsvt","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","CS2CP",77,128,129,130,134,136,161,162,163,177,178,186,204,222,238,69,"parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","font","strike","rgb","color","family","parse_r","terms","rs","sitregex","sirregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","Count","count","Unique","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","n","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","hex2RGB","rgb2Hex","toUpperCase","rgb2HSL","G","C","H6","L2","hsl2RGB","hsl","L","h6","X","rgb_tint","hex","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","width2px","width","px2char","px","char2width","chr","cycle_width","collw","find_mdw","coll","parse_fills","Fills","patternType","bgColor","indexed","theme","fgColor","parse_numFmts","NumberFmt","formatCode","numFmtId","write_numFmts","NF","parse_cellXfs","CellXf","fillId","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","STYLES_XML_ROOT","STY","write_sty_xml","wb","parse_BrtFmt","ifmt","stFmtCode","parse_BrtFont","dyHeight","grbit","bls","sss","uls","bFamily","bCharSet","brtColor","bFontScheme","Bold","Italic","Strikeout","Outline","Shadow","Condense","Extend","Sub","Sup","parse_BrtXF","ixfeParent","ixfe","parse_sty_bin","state","hopper_sty","write_sty_bin","THEME","parse_clrScheme","themeElements","clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","encode_cell","parse_cc_bin","hopper_cc","write_cc_bin","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","comment","ref","range","safe_decode_range","thisCell","decode_cell","encoded","encode_range","author","parse_comments_xml","authors","commentList","trim","authorId","guid","sheetRows","textMatch","rt","write_comments_xml","parse_BrtBeginComment","iauthor","rfx","parse_BrtCommentAuthor","parse_BrtCommentText","parse_comments_bin","hopper_cmnt","write_comments_bin","parse_CellParsedFormula","cce","_ssfopts","WS","get_sst_id","get_cell_style","revssf","fontId","borderId","xfId","applyNumberFormat","safe_format","fillid","cellNF","raw_rgb","parse_ws_xml_dim","ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","parse_ws_xml","ridx","mergecells","merges","columns","cellStyles","cols","parse_ws_xml_cols","refguess","mtch","parse_ws_xml_data","parse_ws_xml_hlinks","tmpref","write_ws_xml_merges","id","location","Rel","rng","addr","seencol","coli","colm","colM","wpx","wch","write_ws_xml_cols","customWidth","write_ws_xml_cell","oldt","oldv","cellDates","os","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","match_v","match_f","sdata","guess","cells","cref","tagr","tagc","sstr","do_format","cf","marr","mt","marrlen","xlen","cellFormula","sheetStubs","write_ws_xml_data","encode_col","encode_row","WS_XML_ROOT","xmlns:r","write_ws_xml","sidx","rdata","Sheets","parse_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","parse_BrtCellBool","fBool","parse_BrtCellError","parse_BrtCellIsst","isst","parse_BrtCellReal","parse_BrtCellRk","parse_BrtCellSt","parse_BrtFmlaBool","formula","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","parse_BrtHLink","relId","tooltip","display","parse_ws_bin","!id","row","ws_parse","write_ws_bin_cell","write_CELLTABLE","write_ws_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","target","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","wbnsregex","parse_wb_xml","AppVersion","xml_wb","WB_XML_ROOT","safe1904","Workbook","write_wb_xml","sheetId","r:id","parse_BrtBundleSh","hsState","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","dwThemeVersion","strName","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_wb_bin","hopper_wb","write_BUNDLESHS","write_BrtFileVersion","write_BOOKVIEWS","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_sty","parse_theme","parse_sst","parse_cc","write_wb","write_ws","write_sty","write_sst",5,6,8,24,25,26,27,28,30,31,32,33,34,35,44,50,51,52,53,54,55,57,58,59,60,62,63,64,65,66,67,68,70,131,132,133,135,137,138,139,140,141,142,143,144,145,146,147,148,151,152,153,154,155,156,157,158,159,160,164,165,166,167,168,169,170,171,172,173,174,175,176,179,180,181,182,183,184,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,256,257,258,259,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276,277,278,279,280,281,282,283,284,285,286,287,288,289,290,291,292,293,294,295,296,297,298,299,300,301,302,303,304,305,306,307,308,309,310,311,312,313,314,315,316,317,318,319,320,321,322,323,324,325,326,327,328,329,330,331,332,333,334,335,336,337,338,339,340,341,342,343,344,345,346,347,348,349,350,351,352,353,354,355,357,358,359,360,361,362,363,364,366,367,368,369,370,371,372,373,374,375,376,377,378,379,380,381,382,383,384,385,386,387,388,389,390,391,392,393,394,395,396,397,398,399,400,401,403,404,405,406,407,408,409,410,411,412,413,414,415,416,417,418,419,420,421,422,423,424,425,426,427,428,429,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,457,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,479,480,481,482,483,484,485,486,487,488,489,490,491,492,493,494,495,496,497,498,499,500,501,502,503,504,505,506,507,508,509,510,511,512,513,514,515,516,517,518,519,520,521,522,523,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,548,549,550,551,552,553,554,555,556,557,558,559,560,561,562,564,565,566,569,570,572,573,574,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,620,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,648,649,650,651,652,653,654,655,656,657,658,659,660,661,662,663,664,665,666,667,668,669,671,672,673,674,675,676,677,678,679,680,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1061,1062,1063,1066,1067,1068,1069,1070,1071,1072,1073,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1177,1178,1180,1181,1182,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2060,2067,2068,2069,2070,2071,2072,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,"parse_ods","ODS","fix_opts_func","fix_opts","Number","fix_read_opts","fix_write_opts","safe_parse_wbrels","wbrels","pwbr","safe_parse_ws","path","relsPath","nodirs","parse_zip","entries","filter","sort","dir","binname","bookSheets","bookProps","props","propdata","pluck","Props","Custprops","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Directory","Deps","Styles","Themes","bookFiles","bookVBA","vbaraw","bin","add_rels","rId","relobj","write_zip","General","readSync","base64","readFileSync","writeSync","generate","writeFileSync","filename","decode_row","rowstr","unfix_row","fix_row","cstr","decode_col","colstr","unfix_col","fix_col","split_cell","splt","fix_cell","unfix_cell","decode_range","cs","ce","safe_format_cell","XF","format_cell","sheet_to_json","header","offset","hdr","isempty","raw","outi","create","__rowNum__","sheet_to_row_object_array","sheet_to_csv","txt","qreg","FS","fs","RS","make_csv","sheet_to_formulae","cmds","get_formulae","make_json","make_formulae","parseZip","read","readFile","write","writeFile"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"dist/xlsx.min.js","sources":["xlsx.js"],"names":["XLSX","make_xlsx","version","current_codepage","current_cptable","module","require","cptable","reset_cp","set_cp","cp","char_codes","data","o","i","len","length","charCodeAt","debom_xml","_getchar","_gc1","x","String","fromCharCode","utils","decode","substr","_gc2","Base64","make_b64","map","encode","input","utf8","c1","c2","c3","e1","e2","e3","e4","isNaN","charAt","b64_decode","replace","indexOf","has_buf","Buffer","new_raw_buf","Array","s2a","s","split","bconcat","bufs","concat","apply","chr0","chr1","SSF","make_ssf","_strrev","fill","c","l","pad0","v","d","t","pad_","rpad_","pad0r1","Math","round","pad0r2","p2_32","pow","pad0r","isgeneral","opts_fmt","fixopts","y","undefined","opts","table_fmt",1,2,3,4,9,10,11,12,13,14,15,16,17,18,19,20,21,22,37,38,39,40,45,46,47,48,49,56,65535,"days","months","frac","D","mixed","sgn","B","P_2","P_1","P","Q_2","Q_1","Q","A","floor","q","general_fmt_int","_general_int","general_fmt_num","make_general_fmt_num","gnr1","gnr2","gnr4","gnr5","gnr6","gfn2","w","gfn5","toFixed","toPrecision","toExponential","gfn3","gfn4","V","log","abs","LOG10E","_general_num","general_fmt","Error","_general","fix_hijri","date","parse_date_code","b2","time","dow","dout","out","T","u","m","H","M","S","date1904","Date","setDate","getDate","getFullYear","getMonth","getDay","write_date","type","fmt","val","ss0","ss","tt","outl","commaify","j","write_num","make_write_num","pct1","write_num_pct","sfmt","mul","write_num_cm","idx","write_num_exp","match","period","ee","fakee","$$","$1","$2","$3","frac1","write_num_f1","r","aval","sign","den","parseInt","rr","base","myn","myd","write_num_f2","dec1","closeparen","phone","hashq","str","cc","rnd","dd","dec","flr","write_num_flt","ffmt","oo","ri","ff","oa","min","max","lres","rres","write_num_cm2","write_num_pct2","write_num_exp2","write_num_int","split_fmt","in_str","_split","abstime","eval_fmt","flen","lst","dt","hr","toLowerCase","bt","ssm","nstr","jj","vv","myv","ostr","decpt","lasti","retval","_eval","cfregex","cfregex2","chkcond","thresh","parseFloat","choose_fmt","f","lat","m1","m2","format","table","_table","load","load_entry","get_table","load_table","tbl","XLMLFormatMap","General Number","General Date","Long Date","Medium Date","Short Date","Long Time","Medium Time","Short Time","Currency","Fixed","Standard","Percent","Scientific","Yes/No","True/False","On/Off","DO_NOT_EXPORT_CFB","CFB","_CFB","exports","parse","file","mver","ssz","nmfs","ndfs","dir_start","minifat_start","difat_start","fat_addrs","blob","slice","prep_blob","mv","check_get_mver","header","check_shifts","nds","read_shift","chk","sectors","sectorify","sleuth_fat","sector_list","make_sector_list","name","ENDOFCHAIN","files","Paths","FileIndex","FullPaths","FullPathDir","read_directory","build_full_paths","root_name","shift","root","find_path","make_find_path","raw","find","HEADER_SIGNATURE","HEADER_CLSID","nsectors","ceil","FI","FPD","FP","L","R","C","pl","dad","push","UCFullPaths","UCPaths","toUpperCase","path","k","UCPath","cnt","sector","__readInt32LE","get_sector_list","start","chkd","sl","buf","buf_chain","modulus","addr","nodes","__toBuffer","minifat_store","namelen","ctime","mtime","__utf16le","color","clsid","state","ct","read_date","mt","size","storage","content","MSSZ","offset","__readUInt32LE","fs","readFileSync","filename","options","readSync","consts","MAXREGSECT","DIFSECT","FATSECT","FREESECT","HEADER_MINOR_VERSION","MAXREGSID","NOSTREAM","EntryTypes","read","ReadShift","CheckField","isval","keys","Object","evert_key","obj","key","K","evert","evert_num","evert_arr","datenum","epoch","cc2str","arr","getdata","asNodeBuffer","_data","getContent","prototype","call","toString","asBinary","safegetzipfile","zip","getzipfile","getzipdata","safe","e","_fs","jszip","JSZip","attregexg","tagregex","nsregex","nsregex2","parsexmltag","tag","skip_root","z","eq","substring","strip_ns","encodings",""","'",">","<","&","rencoding","rencstr","unescapexml","encregex","coderegex","text","decregex","charegex","escapexml","xlml_fixstr","entregex","entrepl","parsexmlbool","value","utf8read","utf8reada","orig","utf8readb","ww","corpus","utf8readc","matchtag","mtcache","g","RegExp","vtregex","vt_cache","vt_regex","vtvregex","vtmregex","parseVector","h","matches","baseType","res","forEach","wtregex","writetag","wxt_helper","join","writextag","write_w3cdtf","toISOString","write_vt","XML_HEADER","XMLNS","dc","dcterms","dcmitype","mx","sjs","vt","xsi","xsd","main","readIEEE754","isLE","nl","ml","el","eMax","eBias","bits","NaN","Infinity","___toBuffer","toBuffer_","___utf16le","utf16le_","b","__readUInt16LE","__hexlify","___hexlify","hexlify_","__utf8","___utf8","__readUInt8","__lpstr","___lpstr","lpstr_","__lpwstr","___lpwstr","lpwstr_","__double","___double","is_buf","is_buf_a","a","isArray","utf16le_b","isBuffer","lpstr_b","readUInt32LE","lpwstr_b","utf8_b","this","double_","readDoubleLE","is_buf_b","__readInt16LE","___unhexlify","__unhexlify","oI","oR","loc","lens","WriteShift","writeUInt16LE","writeUInt32LE","writeDoubleLE","writeInt32LE","hexstr","fld","pos","write_shift","parsenoop","writenoop","new_buf","sz","recordhopper","cb","tmpbyte","cntbyte","RT","XLSBRecordEnum","buf_array","blksz","newblk","ba_newblk","curbuf","endbuf","ba_endbuf","next","ba_next","end","ba_end","ba_push","_bufs","write_record","ba","payload","evert_RE","p","shift_cell_xls","cell","tgt","cRel","rRel","shift_range_xls","range","OFFCRYPTO","make_offcrypto","O","_crypto","crypto","rc4","md5","hex","createHash","update","digest","parse_StrRun","ich","ifnt","parse_RichStr","flags","parse_XLWideString","rgsStrRun","dwSizeStrRun","write_RichStr","write_XLWideString","parse_XLSBCell","col","iStyleRef","fPhShow","write_XLSBCell","parse_XLSBCodeName","parse_XLNullableWideString","cchCharacters","write_XLNullableWideString","parse_RelID","write_RelID","parse_RkNumber","fX100","fInt","RK","parse_UncheckedRfX","write_UncheckedRfX","parse_Xnum","write_Xnum","BErr",7,23,29,36,42,43,255,"RBErr","parse_BrtColor","fValidRGB","xColorType","index","nTintAndShade","bRed","bGreen","bBlue","bAlpha","parse_FontFlags","fItalic","fStrikeout","fOutline","fShadow","fCondense","fExtend","VT_EMPTY","VT_NULL","VT_I2","VT_I4","VT_R4","VT_R8","VT_CY","VT_DATE","VT_BSTR","VT_ERROR","VT_BOOL","VT_VARIANT","VT_DECIMAL","VT_I1","VT_UI1","VT_UI2","VT_UI4","VT_I8","VT_UI8","VT_INT","VT_UINT","VT_LPSTR","VT_LPWSTR","VT_FILETIME","VT_BLOB","VT_STREAM","VT_STORAGE","VT_STREAMED_Object","VT_STORED_Object","VT_BLOB_Object","VT_CF","VT_CLSID","VT_VERSIONED_STREAM","VT_VECTOR","VT_ARRAY","VT_STRING","VT_USTR","VT_CUSTOM","DocSummaryPIDDSI","n",5,6,8,26,27,28,"SummaryPIDSI","SpecialProperties",2147483648,2147483651,1919054434,"hasOwnProperty","CountryEnum",30,31,32,33,34,41,44,52,55,61,64,66,81,82,84,86,90,105,213,216,218,351,354,358,420,886,961,962,963,964,965,966,971,972,974,981,"XLSFillPattern","rgbify","XLSIcv","ct2type","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml","application/vnd.ms-excel.binIndexWs","application/vnd.ms-excel.chartsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml","application/vnd.ms-excel.dialogsheet","application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml","application/vnd.ms-excel.macrosheet","application/vnd.ms-excel.macrosheet+xml","application/vnd.ms-excel.intlmacrosheet","application/vnd.ms-excel.binIndexMs","application/vnd.openxmlformats-package.core-properties+xml","application/vnd.openxmlformats-officedocument.custom-properties+xml","application/vnd.openxmlformats-officedocument.extended-properties+xml","application/vnd.openxmlformats-officedocument.customXmlProperties+xml","application/vnd.ms-excel.comments","application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml","application/vnd.ms-excel.pivotTable","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml","application/vnd.ms-excel.calcChain","application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings","application/vnd.ms-office.activeX","application/vnd.ms-office.activeX+xml","application/vnd.ms-excel.attachedToolbars","application/vnd.ms-excel.connections","application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml","application/vnd.ms-excel.externalLink","application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml","application/vnd.ms-excel.sheetMetadata","application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml","application/vnd.ms-excel.pivotCacheDefinition","application/vnd.ms-excel.pivotCacheRecords","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml","application/vnd.ms-excel.queryTable","application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml","application/vnd.ms-excel.userNames","application/vnd.ms-excel.revisionHeaders","application/vnd.ms-excel.revisionLog","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml","application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml","application/vnd.ms-excel.tableSingleCells","application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml","application/vnd.ms-excel.slicer","application/vnd.ms-excel.slicerCache","application/vnd.ms-excel.slicer+xml","application/vnd.ms-excel.slicerCache+xml","application/vnd.ms-excel.wsSortMap","application/vnd.ms-excel.table","application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml","application/vnd.openxmlformats-officedocument.theme+xml","application/vnd.ms-excel.Timeline+xml","application/vnd.ms-excel.TimelineCache+xml","application/vnd.ms-office.vbaProject","application/vnd.ms-office.vbaProjectSignature","application/vnd.ms-office.volatileDependencies","application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml","application/vnd.ms-excel.controlproperties+xml","application/vnd.openxmlformats-officedocument.model+data","application/vnd.ms-excel.Survey+xml","application/vnd.openxmlformats-officedocument.drawing+xml","application/vnd.openxmlformats-officedocument.drawingml.chart+xml","application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml","application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml","application/vnd.openxmlformats-officedocument.vmlDrawing","application/vnd.openxmlformats-package.relationships+xml","application/vnd.openxmlformats-officedocument.oleObject","sheet","CT_LIST","workbooks","xlsx","xlsm","xlsb","xltx","strs","sheets","styles","type2ct","CT","parse_ct","ctext","calcchains","themes","coreprops","extprops","custprops","comments","vba","TODO","rels","xmlns","Extension","ContentType","PartName","WTF","console","error","calcchain","sst","style","defaults","CTYPE_XML_ROOT","xmlns:xsd","xmlns:xsi","CTYPE_DEFAULTS","write_ct","f1","bookType","f2","f3","RELS","WB","SHEET","parse_rels","currentFilePath","hash","resolveRelativePathIntoAbsolute","to","toksFrom","pop","toksTo","reversed","tokTo","rel","Type","Target","Id","TargetMode","canonictarget","RELS_ROOT","write_rels","rid","CORE_PROPS","CORE_PROPS_REGEX","parse_core_props","cur","CORE_PROPS_XML_ROOT","xmlns:cp","xmlns:dc","xmlns:dcterms","xmlns:dcmitype","cp_doit","write_core_props","CreatedDate","xsi:type","ModifiedDate","EXT_PROPS","parse_ext_props","HeadingPairs","TitlesOfParts","widx","Worksheets","parts","SheetNames","EXT_PROPS_XML_ROOT","xmlns:vt","write_ext_props","W","Application","CUST_PROPS","custregex","parse_cust_props","xmlnsvt","toks","warn","CUST_PROPS_XML_ROOT","write_cust_props","pid","custprop","fmtid","xlml_set_prop","Props","parse_FILETIME","dwLowDateTime","dwHighDateTime","parse_lpstr","pad","parse_lpwstr","parse_VtStringBase","stringType","parse_VtString","parse_VtUnalignedString","parse_VtVecUnalignedLpstrValue","ret","parse_VtVecUnalignedLpstr","parse_VtHeadingPair","headingString","parse_TypedPropertyValue","headerParts","parse_VtVecHeadingPairValue","cElements","parse_VtVecHeadingPair","parse_dictionary","CodePage","dict","parse_BLOB","bytes","parse_ClipboardData","Size","parse_VtVector","_opts","parse_PropertySet","PIDSI","start_addr","NumProps","Dictionary","DictObj","PropID","Offset","PropH","fail","piddsi","oldpos","parsebool","parse_PropertySetStream","NumSets","FMTID0","FMTID1","Offset0","Offset1","vers","SystemIdentifier","PSet0","rval","FMTID","PSet1","parsenoop2","parslurp","target","parslurp2","parseuint16","parseuint16a","parse_Boolean","parse_Bes","parse_ShortXLUnicodeString","cch","width","encoding","biff","fHighByte","parse_XLUnicodeRichExtendedString","fExtSt","fRichSt","cRun","cbExtRst","msg","parse_XLUnicodeStringNoCch","parse_XLUnicodeString","parse_XLUnicodeString2","parse_ControlInfo","parse_URLMoniker","extra","url","parse_FileMoniker","cAnti","ansiLength","ansiPath","endServer","versionNumber","cbUnicodePathSize","cbUnicodePathBytes","usKeyValue","unicodePath","parse_HyperlinkMoniker","parse_HyperlinkString","parse_Hyperlink","sVer","displayName","targetFrameName","moniker","oleMoniker","location","guid","fileTime","parse_LongRGBA","parse_LongRGB","parse_XLSCell","rw","ixfe","parse_frtHeader","rt","parse_OptXLUnicodeString","HIDEOBJENUM","parse_HideObjEnum","parse_XTI","iSupBook","itabFirst","itabLast","parse_RkRec","parse_AddinUdf","udfName","parse_Ref8U","rwFirst","rwLast","colFirst","colLast","parse_RefU","parse_Ref","parse_FtCmo","ot","id","parse_FtNts","fSharedNote","parse_FtCf","cf","FtTab","parse_FtArray","fts","ft","parse_FontIndex","parse_BOF","BIFFVer","parse_InterfaceHdr","parse_WriteAccess","enc","UserName","parse_BoundSheet8","hidden","hs","parse_SST","ucnt","Count","Unique","parse_ExtSST","extsst","dsst","parse_Row","Col","rht","parse_ForceFullCalculation","fullcalc","parse_CompressPictures","parse_RecalcId","parse_DefaultRowHeight","miyRw","fl","Unsynced","DyZero","ExAsc","ExDsc","parse_Window1","xWn","yWn","dxWn","dyWn","iTabCur","iTabFirst","ctabSel","wTabRatio","Pos","Dim","Flags","CurTab","FirstTab","Selected","TabRatio","parse_Font","parse_LabelSst","isst","parse_Label","parse_Format","ifmt","fmtstr","parse_Dimensions","parse_RK","rkrec","rknum","parse_MulRk","rkrecs","lastcol","parse_CellStyleXF","patternType","icvFore","icvBack","parse_CellXF","parse_StyleXF","parse_XF","fStyle","parse_Guts","parse_BoolErr","parse_Number","xnum","parse_XLHeaderFooter","parse_SupBook","ctab","virtPath","rgst","sbcch","parse_ExternName","body","fBuiltIn","fWantAdvise","fWantPict","fOle","fOleLink","fIcon","parse_Lbl","chKey","cce","itab","rgce","parse_NameParsedFormula","Name","parse_ExternSheet","snames","parse_ShrFmla","ref","cUse","parse_SharedParsedFormula","parse_Array","parse_ArrayParsedFormula","parse_MTRSettings","fMTREnabled","fUserSetThreadCount","cUserThreadCount","parse_NoteSh","row","idObj","stAuthor","parse_Note","parse_MergeCells","merges","cmcs","parse_Obj","cmo","parse_TxO","lastobj","controlInfo","cchText","cbRuns","ifntEmpty","texts","hdr","parse_HLink","hlink","parse_HLinkTooltip","wzTooltip","parse_Country","parse_ClrtClient","ccv","parse_Palette","parse_XFCRC","cxfs","crc","parse_Style","parse_StyleExt","parse_ColInfo","parse_Window2","parse_Backup","parse_Blank","parse_BottomMargin","parse_BuiltInFnGroupCount","parse_CalcCount","parse_CalcDelta","parse_CalcIter","parse_CalcMode","parse_CalcPrecision","parse_CalcRefMode","parse_CalcSaveRecalc","parse_CodePage","parse_Compat12","parse_Date1904","parse_DefColWidth","parse_DSF","parse_EntExU2","parse_EOF","parse_Excel9File","parse_FeatHdr","parse_FontX","parse_Footer","parse_GridSet","parse_HCenter","parse_Header","parse_HideObj","parse_InterfaceEnd","parse_LeftMargin","parse_Mms","parse_ObjProtect","parse_Password","parse_PrintGrid","parse_PrintRowCol","parse_PrintSize","parse_Prot4Rev","parse_Prot4RevPass","parse_Protect","parse_RefreshAll","parse_RightMargin","parse_RRTabId","parse_ScenarioProtect","parse_Scl","parse_String","parse_SxBool","parse_TopMargin","parse_UsesELFs","parse_VCenter","parse_WinProtect","parse_WriteProtect","parse_VerticalPageBreaks","parse_HorizontalPageBreaks","parse_Selection","parse_Continue","parse_Pane","parse_Pls","parse_DCon","parse_DConRef","parse_DConName","parse_XCT","parse_CRN","parse_FileSharing","parse_Uncalced","parse_Template","parse_Intl","parse_WsBool","parse_Sort","parse_Sync","parse_LPr","parse_DxGCol","parse_FnGroupName","parse_FilterMode","parse_AutoFilterInfo","parse_AutoFilter","parse_Setup","parse_ScenMan","parse_SCENARIO","parse_SxView","parse_Sxvd","parse_SXVI","parse_SxIvd","parse_SXLI","parse_SXPI","parse_DocRoute","parse_RecipName","parse_MulBlank","parse_SXDI","parse_SXDB","parse_SXFDB","parse_SXDBB","parse_SXNum","parse_SxErr","parse_SXInt","parse_SXString","parse_SXDtr","parse_SxNil","parse_SXTbl","parse_SXTBRGIITM","parse_SxTbpg","parse_ObProj","parse_SXStreamID","parse_DBCell","parse_SXRng","parse_SxIsxoper","parse_BookBool","parse_DbOrParamQry","parse_OleObjectSize","parse_SXVS","parse_BkHim","parse_MsoDrawingGroup","parse_MsoDrawing","parse_MsoDrawingSelection","parse_PhoneticInfo","parse_SxRule","parse_SXEx","parse_SxFilt","parse_SxDXF","parse_SxItm","parse_SxName","parse_SxSelect","parse_SXPair","parse_SxFmla","parse_SxFormat","parse_SXVDEx","parse_SXFormula","parse_SXDBEx","parse_RRDInsDel","parse_RRDHead","parse_RRDChgCell","parse_RRDRenSheet","parse_RRSort","parse_RRDMove","parse_RRFormat","parse_RRAutoFmt","parse_RRInsertSh","parse_RRDMoveBegin","parse_RRDMoveEnd","parse_RRDInsDelBegin","parse_RRDInsDelEnd","parse_RRDConflict","parse_RRDDefName","parse_RRDRstEtxp","parse_LRng","parse_CUsr","parse_CbUsr","parse_UsrInfo","parse_UsrExcl","parse_FileLock","parse_RRDInfo","parse_BCUsrs","parse_UsrChk","parse_UserBView","parse_UserSViewBegin","parse_UserSViewEnd","parse_RRDUserView","parse_Qsi","parse_CondFmt","parse_CF","parse_DVal","parse_DConBin","parse_Lel","parse_XLSCodeName","parse_SXFDBType","parse_ObNoMacros","parse_Dv","parse_Index","parse_Table","parse_BigName","parse_ContinueBigName","parse_WebPub","parse_QsiSXTag","parse_DBQueryExt","parse_ExtString","parse_TxtQry","parse_Qsir","parse_Qsif","parse_RRDTQSIF","parse_OleDbConn","parse_WOpt","parse_SXViewEx","parse_SXTH","parse_SXPIEx","parse_SXVDTEx","parse_SXViewEx9","parse_ContinueFrt","parse_RealTimeData","parse_ChartFrtInfo","parse_FrtWrapper","parse_StartBlock","parse_EndBlock","parse_StartObject","parse_EndObject","parse_CatLab","parse_YMult","parse_SXViewLink","parse_PivotChartBits","parse_FrtFontList","parse_SheetExt","parse_BookExt","parse_SXAddl","parse_CrErr","parse_HFPicture","parse_Feat","parse_DataLabExt","parse_DataLabExtContents","parse_CellWatch","parse_FeatHdr11","parse_Feature11","parse_DropDownObjIds","parse_ContinueFrt11","parse_DConn","parse_List12","parse_Feature12","parse_CondFmt12","parse_CF12","parse_CFEx","parse_AutoFilter12","parse_ContinueFrt12","parse_MDTInfo","parse_MDXStr","parse_MDXTuple","parse_MDXSet","parse_MDXProp","parse_MDXKPI","parse_MDB","parse_PLV","parse_DXF","parse_TableStyles","parse_TableStyle","parse_TableStyleElement","parse_NamePublish","parse_NameCmt","parse_SortData","parse_GUIDTypeLib","parse_FnGrp12","parse_NameFnGrp12","parse_HeaderFooter","parse_CrtLayout12","parse_CrtMlFrt","parse_CrtMlFrtContinue","parse_ShapePropsStream","parse_TextPropsStream","parse_RichTextStream","parse_CrtLayout12A","parse_Units","parse_Chart","parse_Series","parse_DataFormat","parse_LineFormat","parse_MarkerFormat","parse_AreaFormat","parse_PieFormat","parse_AttachedLabel","parse_SeriesText","parse_ChartFormat","parse_Legend","parse_SeriesList","parse_Bar","parse_Line","parse_Pie","parse_Area","parse_Scatter","parse_CrtLine","parse_Axis","parse_Tick","parse_ValueRange","parse_CatSerRange","parse_AxisLine","parse_CrtLink","parse_DefaultText","parse_Text","parse_ObjectLink","parse_Frame","parse_Begin","parse_End","parse_PlotArea","parse_Chart3d","parse_PicF","parse_DropBar","parse_Radar","parse_Surf","parse_RadarArea","parse_AxisParent","parse_LegendException","parse_ShtProps","parse_SerToCrt","parse_AxesUsed","parse_SBaseRef","parse_SerParent","parse_SerAuxTrend","parse_IFmtRecord","parse_Pos","parse_AlRuns","parse_BRAI","parse_SerAuxErrBar","parse_SerFmt","parse_Chart3DBarShape","parse_Fbi","parse_BopPop","parse_AxcExt","parse_Dat","parse_PlotGrowth","parse_SIIndex","parse_GelFrame","parse_BopPopCustom","parse_Fbi2","parse_BIFF5String","parse_BIFF2STR","parse_BIFF2NUM","num","CS2CP",77,128,129,130,134,136,161,162,163,177,178,186,204,222,238,69,"parse_rs","parse_rs_factory","tregex","rpregex","rregex","rend","nlregex","parse_rpr","rpr","intro","outro","font","strike","rgb","family","parse_r","terms","rs","sitregex","sirregex","parse_si","html","cellHTML","sstr0","sstr1","sstr2","parse_sst_xml","count","uniqueCount","SST","straywsregex","write_sst_xml","bookSST","sitag","parse_BrtBeginSst","parse_sst_bin","pass","hopper_sst","write_BrtBeginSst","write_BrtSSTItem","write_sst_bin","_JS2ANSI","parse_Version","Major","Minor","parse_EncryptionHeader","tmp","AlgID","parse_EncryptionVerifier","parse_RC4CryptoHeader","EncryptionVersionInfo","EncryptionHeader","EncryptionVerifier","parse_RC4Header","Salt","EncryptedVerifier","EncryptedVerifierHash","crypto_CreatePasswordVerifier_Method1","Password","Verifier","PasswordArray","PasswordDecoded","PasswordByte","Intermediate1","Intermediate2","Intermediate3","crypto_CreateXorArray_Method1","PadArray","InitialCode","XorMatrix","Ror","Byte","XorRor","byte1","byte2","CreateXorKey_Method1","XorKey","CurrentElement","Char","password","Index","ObfuscationArray","Temp","PasswordLastChar","PadIndex","crypto_DecryptData_Method1","Data","XorArrayIndex","XorArray","Value","crypto_MakeXorDecryptor","parse_XORObfuscation","verificationBytes","verifier","valid","insitu_decrypt","parse_FilePassHeader","Info","parse_FilePass","hex2RGB","rgb2Hex","rgb2HSL","G","H6","L2","hsl2RGB","hsl","h6","X","rgb_tint","tint","DEF_MDW","MAX_MDW","MIN_MDW","MDW","width2px","px2char","px","char2width","chr","cycle_width","collw","find_mdw","coll","XLMLPatternTypeMap","None","Solid","Gray50","Gray75","Gray25","HorzStripe","VertStripe","ReverseDiagStripe","DiagStripe","DiagCross","ThickDiagCross","ThinHorzStripe","ThinVertStripe","ThinReverseDiagStripe","ThinHorzCross","parse_fills","Fills","bgColor","indexed","theme","fgColor","parse_numFmts","NumberFmt","formatCode","numFmtId","write_numFmts","NF","parse_cellXfs","CellXf","fillId","write_cellXfs","cellXfs","parse_sty_xml","make_pstyx","numFmtRegex","cellXfRegex","fillsRegex","STYLES_XML_ROOT","STY","write_sty_xml","wb","parse_BrtFmt","stFmtCode","parse_BrtFont","dyHeight","grbit","bls","sss","uls","bFamily","bCharSet","brtColor","bFontScheme","Bold","Italic","Strikeout","Outline","Shadow","Condense","Extend","Sub","Sup","parse_BrtXF","ixfeParent","parse_sty_bin","hopper_sty","write_sty_bin","THEME","parse_clrScheme","themeElements","clrScheme","lastClr","parse_fontScheme","parse_fmtScheme","clrsregex","fntsregex","fmtsregex","parse_themeElements","themeltregex","parse_theme_xml","write_theme","parse_Theme","dwThemeVersion","parse_ColorTheme","parse_FullColorExt","xclrType","nTintShade","xclrValue","parse_IcvXF","parse_XFExtGradient","parse_ExtProp","extType","parse_XFExt","cexts","ext","update_xfext","xf","xfext","xfe","parse_cc_xml","write_cc_xml","parse_BrtCalcChainItem$","encode_cell","parse_cc_bin","hopper_cc","write_cc_bin","parse_comments","dirComments","sheetRels","canonicalpath","parse_cmnt","sheetNames","sheetName","insertCommentsIntoSheet","comment","safe_decode_range","thisCell","decode_cell","encoded","encode_range","author","parse_comments_xml","authors","commentList","trim","authorId","sheetRows","textMatch","write_comments_xml","parse_BrtBeginComment","iauthor","rfx","parse_BrtCommentAuthor","parse_BrtCommentText","parse_comments_bin","hopper_cmnt","write_comments_bin","rc_to_a1","rcregex","rcbase","rcfunc","$4","$5","encode_col","encode_row","fstr","parseread","parseread1","parse_ColRelU","parse_RgceArea","parse_RgceAreaRel","parse_RgceLoc","parse_RgceLocRel","cl","parse_PtgArea","area","parse_PtgArea3d","ixti","parse_PtgAreaErr","parse_PtgAreaErr3d","parse_PtgAreaN","parse_PtgArray","parse_PtgAttrBaxcel","bitSemi","bitBaxcel","parse_PtgAttrChoose","parse_PtgAttrGoto","bitGoto","parse_PtgAttrIf","bitIf","parse_PtgAttrSemi","parse_PtgAttrSpaceType","parse_PtgAttrSpace","parse_PtgAttrSpaceSemi","parse_PtgRef","ptg","parse_PtgRefN","parse_PtgRef3d","parse_PtgFunc","iftab","FtabArgc","Ftab","parse_PtgFuncVar","cparams","tab","parsetab","Cetab","parse_PtgAttrSum","parse_PtgConcat","parse_PtgExp","parse_PtgErr","parse_PtgInt","parse_PtgBool","parse_PtgNum","parse_PtgStr","parse_SerAr","parse_PtgExtraMem","parse_PtgExtraArray","cols","rows","parse_PtgName","nameindex","parse_PtgNameX","parse_PtgMemArea","parse_PtgMemFunc","parse_PtgRefErr","parse_PtgAdd","parse_PtgDiv","parse_PtgEq","parse_PtgGe","parse_PtgGt","parse_PtgIsect","parse_PtgLe","parse_PtgLt","parse_PtgMissArg","parse_PtgMul","parse_PtgNe","parse_PtgParen","parse_PtgPercent","parse_PtgPower","parse_PtgRange","parse_PtgSub","parse_PtgUminus","parse_PtgUnion","parse_PtgUplus","parse_PtgMemErr","parse_PtgMemNoMem","parse_PtgRefErr3d","parse_PtgTbl","PtgTypes",35,57,58,59,60,"PtgDupes",96,65,97,98,67,99,68,100,101,70,102,71,103,72,104,73,74,106,75,107,76,108,109,89,121,122,91,123,92,124,93,125,"Ptg18","Ptg19","parse_Formula","parse_FormulaValue","chn","cbf","parse_XLSCellParsedFormula","formula","shared","parse_RgbExtra","parse_Rgce","rgcb","ptgs","mapper","stringify_formula","supbooks","_range","stack","nameidx","fflen","argc","func","args","lbl","XLSXFutureFunctions","bookidx","externbook","sharedf","parsedf","fnd","arrayf","parse_XLSBCellParsedFormula","PtgDataType",24,25,50,51,53,54,62,63,78,79,80,83,85,87,88,94,95,110,111,112,113,114,115,116,117,118,119,120,126,127,131,132,133,135,137,138,139,140,142,143,144,145,146,147,148,149,150,151,152,153,155,159,164,166,167,168,169,170,171,172,173,174,175,185,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,206,207,208,209,210,211,212,214,215,217,219,220,223,224,225,226,227,228,229,240,243,249,250,251,252,253,254,256,259,260,265,266,267,268,269,272,273,274,276,277,278,279,280,281,282,283,284,285,288,289,290,291,292,293,295,296,297,298,302,305,306,307,308,309,310,311,312,313,314,315,316,318,319,320,321,322,323,324,325,328,330,336,338,339,342,343,344,350,352,355,356,370,373,374,375,376,377,378,379,380,381,382,383,384,385,386,388,390,391,392,393,394,395,396,397,398,399,400,412,413,414,415,416,417,421,422,423,424,425,430,431,432,433,434,435,436,437,438,439,440,441,442,443,444,445,446,447,448,449,450,451,452,453,454,455,456,458,459,460,461,462,463,464,465,466,467,468,469,470,471,472,473,474,475,476,477,478,480,481,482,485,489,491,493,494,495,509,510,511,517,518,519,520,521,522,523,545,546,547,548,549,620,621,647,653,667,673,753,755,808,141,154,156,157,158,160,165,176,179,180,181,182,183,184,205,221,230,231,232,233,234,235,236,237,239,241,242,244,245,246,247,248,257,258,261,262,263,264,270,271,275,286,287,294,299,300,301,303,304,317,326,327,329,331,332,334,335,337,340,341,345,346,347,348,349,353,357,359,360,361,362,363,364,365,366,367,368,369,371,372,"_xlfn.ACOT","_xlfn.ACOTH","_xlfn.AGGREGATE","_xlfn.ARABIC","_xlfn.AVERAGEIF","_xlfn.AVERAGEIFS","_xlfn.BASE","_xlfn.BETA.DIST","_xlfn.BETA.INV","_xlfn.BINOM.DIST","_xlfn.BINOM.DIST.RANGE","_xlfn.BINOM.INV","_xlfn.BITAND","_xlfn.BITLSHIFT","_xlfn.BITOR","_xlfn.BITRSHIFT","_xlfn.BITXOR","_xlfn.CEILING.MATH","_xlfn.CEILING.PRECISE","_xlfn.CHISQ.DIST","_xlfn.CHISQ.DIST.RT","_xlfn.CHISQ.INV","_xlfn.CHISQ.INV.RT","_xlfn.CHISQ.TEST","_xlfn.COMBINA","_xlfn.CONFIDENCE.NORM","_xlfn.CONFIDENCE.T","_xlfn.COT","_xlfn.COTH","_xlfn.COUNTIFS","_xlfn.COVARIANCE.P","_xlfn.COVARIANCE.S","_xlfn.CSC","_xlfn.CSCH","_xlfn.DAYS","_xlfn.DECIMAL","_xlfn.ECMA.CEILING","_xlfn.ERF.PRECISE","_xlfn.ERFC.PRECISE","_xlfn.EXPON.DIST","_xlfn.F.DIST","_xlfn.F.DIST.RT","_xlfn.F.INV","_xlfn.F.INV.RT","_xlfn.F.TEST","_xlfn.FILTERXML","_xlfn.FLOOR.MATH","_xlfn.FLOOR.PRECISE","_xlfn.FORMULATEXT","_xlfn.GAMMA","_xlfn.GAMMA.DIST","_xlfn.GAMMA.INV","_xlfn.GAMMALN.PRECISE","_xlfn.GAUSS","_xlfn.HYPGEOM.DIST","_xlfn.IFNA","_xlfn.IFERROR","_xlfn.IMCOSH","_xlfn.IMCOT","_xlfn.IMCSC","_xlfn.IMCSCH","_xlfn.IMSEC","_xlfn.IMSECH","_xlfn.IMSINH","_xlfn.IMTAN","_xlfn.ISFORMULA","_xlfn.ISO.CEILING","_xlfn.ISOWEEKNUM","_xlfn.LOGNORM.DIST","_xlfn.LOGNORM.INV","_xlfn.MODE.MULT","_xlfn.MODE.SNGL","_xlfn.MUNIT","_xlfn.NEGBINOM.DIST","_xlfn.NETWORKDAYS.INTL","_xlfn.NIGBINOM","_xlfn.NORM.DIST","_xlfn.NORM.INV","_xlfn.NORM.S.DIST","_xlfn.NORM.S.INV","_xlfn.NUMBERVALUE","_xlfn.PDURATION","_xlfn.PERCENTILE.EXC","_xlfn.PERCENTILE.INC","_xlfn.PERCENTRANK.EXC","_xlfn.PERCENTRANK.INC","_xlfn.PERMUTATIONA","_xlfn.PHI","_xlfn.POISSON.DIST","_xlfn.QUARTILE.EXC","_xlfn.QUARTILE.INC","_xlfn.QUERYSTRING","_xlfn.RANK.AVG","_xlfn.RANK.EQ","_xlfn.RRI","_xlfn.SEC","_xlfn.SECH","_xlfn.SHEET","_xlfn.SHEETS","_xlfn.SKEW.P","_xlfn.STDEV.P","_xlfn.STDEV.S","_xlfn.SUMIFS","_xlfn.T.DIST","_xlfn.T.DIST.2T","_xlfn.T.DIST.RT","_xlfn.T.INV","_xlfn.T.INV.2T","_xlfn.T.TEST","_xlfn.UNICHAR","_xlfn.UNICODE","_xlfn.VAR.P","_xlfn.VAR.S","_xlfn.WEBSERVICE","_xlfn.WEIBULL.DIST","_xlfn.WORKDAY.INTL","_xlfn.XOR","_xlfn.Z.TEST","_ssfopts","WS","get_sst_id","get_cell_style","revssf","fontId","borderId","xfId","applyNumberFormat","safe_format","fillid","cellNF","raw_rgb","parse_ws_xml_dim","ws","mergecregex","sheetdataregex","hlinkregex","dimregex","colregex","parse_ws_xml","ridx","mergecells","columns","cellStyles","parse_ws_xml_cols","refguess","mtch","parse_ws_xml_data","parse_ws_xml_hlinks","tmpref","write_ws_xml_merges","Rel","rng","seencol","coli","colm","colM","wpx","wch","write_ws_xml_cols","customWidth","write_ws_xml_cell","oldt","oldv","cellDates","os","Strings","parse_ws_xml_data_factory","cellregex","rowregex","isregex","match_v","match_f","sdata","guess","cells","cref","tagr","tagc","sstr","do_format","marr","marrlen","xlen","cellFormula","sheetStubs","write_ws_xml_data","WS_XML_ROOT","xmlns:r","write_ws_xml","sidx","rdata","Sheets","parse_BrtRowHdr","parse_BrtWsDim","write_BrtWsDim","parse_BrtWsProp","parse_BrtCellBlank","write_BrtCellBlank","parse_BrtCellBool","fBool","parse_BrtCellError","parse_BrtCellIsst","parse_BrtCellReal","parse_BrtCellRk","parse_BrtCellSt","parse_BrtFmlaBool","parse_BrtFmlaError","parse_BrtFmlaNum","parse_BrtFmlaString","parse_BrtMergeCell","parse_BrtHLink","relId","tooltip","display","parse_ws_bin","!id","ws_parse","write_ws_bin_cell","write_CELLTABLE","write_ws_bin","WBPropsDef","WBViewDef","SheetDef","CalcPrDef","CustomWBViewDef","push_defaults_array","push_defaults","parse_wb_defaults","WBProps","CalcPr","WBView","wbnsregex","parse_wb_xml","AppVersion","xml_wb","WB_XML_ROOT","safe1904","Workbook","write_wb_xml","sheetId","r:id","parse_BrtBundleSh","hsState","iTabID","strRelID","write_BrtBundleSh","parse_BrtWbProp","strName","write_BrtWbProp","parse_BrtFRTArchID$","ArchID","parse_wb_bin","hopper_wb","write_BUNDLESHS","write_BrtFileVersion","write_BOOKVIEWS","write_BrtCalcProp","write_BrtFileRecover","write_wb_bin","parse_wb","parse_ws","parse_sty","parse_theme","parse_sst","parse_cc","write_wb","write_ws","write_sty","write_sst","attregexg2","attregex2","_chr","xlml_parsexmltag","words","xlml_parsexmltagobj","xlml_format","xlml_set_custprop","Custprops","Rn","safe_format_xlml","nf","process_style_xlml","stag","Interior","I","Pattern","ID","parse_xlml_data","xml","csty","sid","StyleID","interiors","Parent","UTC","Formula","xlml_clean_comment","xlml_normalize","xlmlregex","parse_xlml_xml","sheetnames","cursheet","sheetname","dtag","didx","fidx","pidx","cstys","lastIndex","exec","HRef","HRefScreenTip","MergeAcross","MergeDown","Format","Span","Author","seen","bookSheets","bookProps","parse_xlml","fix_read_opts","write_xlml","parse_compobj","UserType","Reserved1","slurp","XLSRecordEnum","ll","safe_format_xf","XF","make_cell","parse_workbook","Directory","found_sheet","last_formula","cur_sheet","Preamble","lastcell","last_cell","cmnt","rngC","rngR","shared_formulae","array_formulae","temp_val","country","cell_valid","XFs","palette","get_rgb","getrgb","icv","process_cell_style","pcs","line","xfd","addcell","rrtabid","lastuser","codepage","winlocked","wtf","objects","sbc","sbci","sbcli","last_Rn","file_depth","RecordType","Date1904","WriteProtect","RefreshAll","CalcCount","CalcDelta","CalcIter","CalcMode","CalcPrecision","CalcSaveRecalc","CalcRefMode","FullCalc","TxO","noteobj","sheetnamesraw","sort","Number","Encryption","Metadata","Country","parse_xlscfb","cfb","CompObj","Summary","CompObjP","SummaryP","WorkbookP","parse_props","props","DocSummary","bookFiles","DSI","SI",333,387,389,401,403,404,405,406,407,408,409,410,411,418,419,426,427,428,429,457,479,483,484,486,487,488,490,492,496,497,498,499,500,501,502,503,504,505,506,507,508,512,513,514,515,516,524,525,526,527,528,529,530,531,532,533,534,535,536,537,538,539,540,541,542,550,551,552,553,554,555,556,557,558,559,560,561,562,564,565,566,569,570,572,573,574,577,578,579,580,581,582,583,584,585,586,587,588,589,590,591,592,593,594,595,596,597,598,599,600,601,602,603,604,605,606,607,608,609,610,611,612,613,614,615,616,617,618,619,625,626,627,628,629,630,631,632,633,634,635,636,637,638,639,640,641,642,643,644,645,646,648,649,650,651,652,654,655,656,657,658,659,660,661,662,663,664,665,666,668,669,671,672,674,675,676,677,678,679,680,1024,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1037,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1061,1062,1063,1066,1067,1068,1069,1070,1071,1072,1073,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1104,1105,1111,1112,1113,1114,1115,1116,1117,1118,1119,1120,1121,1122,1123,1124,1125,1126,1128,1129,1130,1131,1132,1133,1134,1135,1136,1137,1138,1139,1140,1141,1142,1143,1144,1145,1146,1147,1148,1149,1150,1152,1153,1154,1155,1156,1157,1158,1159,1160,1161,1162,1163,1164,1165,1166,1167,1168,1169,1170,1171,1172,1173,1177,1178,1180,1181,1182,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2060,2067,2068,2069,2070,2071,2072,2073,2075,2076,2077,2078,2079,2080,2081,2082,2083,2084,2085,2086,2087,2088,2089,2090,2091,2092,2093,2094,2095,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2111,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,402,1212,2059,2061,2062,2063,2064,2066,2137,2138,2146,2147,2148,2149,2150,2151,2152,2154,2155,2156,2161,2162,2164,2165,2166,2167,2168,2169,2170,2171,2172,2173,2174,2175,2180,2181,2182,2183,2184,2185,2186,2187,2188,2189,2190,2191,2192,2194,2195,2196,2197,2198,2199,2200,2201,2202,2203,2204,2205,2206,2207,2211,2212,2213,2214,2215,4097,4098,4099,4102,4103,4105,4106,4107,4108,4109,4116,4117,4118,4119,4120,4121,4122,4123,4124,4125,4126,4127,4128,4129,4130,4132,4133,4134,4135,4146,4147,4148,4149,4154,4156,4157,4158,4159,4160,4161,4163,4164,4165,4166,4168,4170,4171,4174,4175,4176,4177,4187,4188,4189,4191,4192,4193,4194,4195,4196,4197,4198,4199,4200,2157,2163,2177,2240,2241,2242,2243,2244,2245,2246,2247,2248,2249,2250,2251,"parse_ods","ODS","fix_opts_func","fix_opts","fix_write_opts","safe_parse_wbrels","wbrels","pwbr","safe_parse_ws","relsPath","nodirs","parse_zip","entries","filter","dir","binname","propdata","pluck","deps","bookDeps","wbsheets","wbext","wbrelsfile","nmode","Deps","Styles","Themes","bookVBA","vbaraw","bin","add_rels","rId","relobj","write_zip","General","firstbyte","read_zip","base64","isfile","write_zip_type","generate","writeFileSync","writeSync","decode_row","rowstr","unfix_row","fix_row","cstr","decode_col","colstr","unfix_col","fix_col","split_cell","splt","fix_cell","unfix_cell","decode_range","cs","ce","safe_format_cell","format_cell","sheet_to_json","isempty","outi","defineProperty","enumerable","__rowNum__","sheet_to_row_object_array","sheet_to_csv","txt","qreg","FS","RS","make_csv","sheet_to_formulae","cmds","get_formulae","make_json","make_formulae","readFile","write","writeFile","XLS"],"mappings":";AAIA,GAAIA,UACJ,QAAUC,WAAUD,MACpBA,KAAKE,QAAU,OACf,IAAIC,kBAAmB,KAAMC,eAC7B,UAAUC,UAAW,mBAAsBC,WAAY,YAAa,CACnE,SAAUC,WAAY,YAAaA,QAAUD,QAAQ,iBACrDF,iBAAkBG,QAAQJ,kBAE3B,QAASK,YAAaC,OAAO,MAC7B,GAAIA,QAAS,SAASC,IAAMP,iBAAmBO,GAE/C,SAASC,YAAWC,MAAQ,GAAIC,KAAQ,KAAI,GAAIC,GAAI,EAAGC,IAAMH,KAAKI,OAAQF,EAAIC,MAAOD,EAAGD,EAAEC,GAAKF,KAAKK,WAAWH,EAAI,OAAOD,GAC1H,GAAIK,WAAY,SAASN,MAAQ,MAAOA,MAExC,IAAIO,UAAW,QAASC,MAAKC,GAAK,MAAOC,QAAOC,aAAaF,GAC7D,UAAUd,WAAY,YAAa,CAClCE,OAAS,SAASC,IAAMP,iBAAmBO,EAAIN,iBAAkBG,QAAQG,IACzEQ,WAAY,SAASN,MACpB,GAAGA,KAAKK,WAAW,KAAO,KAAQL,KAAKK,WAAW,KAAO,IAAM,CAAE,MAAOV,SAAQiB,MAAMC,OAAO,KAAMd,WAAWC,KAAKc,OAAO,KAC1H,MAAOd,MAERO,UAAW,QAASQ,MAAKN,GACxB,GAAGlB,mBAAqB,KAAM,MAAOmB,QAAOC,aAAaF,EACzD,OAAOd,SAAQiB,MAAMC,OAAOtB,kBAAmBkB,EAAE,IAAIA,GAAG,IAAI,IAG9D,GAAIO,QAAS,QAAUC,YACtB,GAAIC,KAAM,mEACV,QACCC,OAAQ,SAASC,MAAOC,MACvB,GAAIpB,GAAI,EACR,IAAIqB,IAAIC,GAAIC,GAAIC,GAAIC,GAAIC,GAAIC,EAC5B,KAAI,GAAI1B,GAAI,EAAGA,EAAIkB,MAAMhB,QAAU,CAClCkB,GAAKF,MAAMf,WAAWH,IACtBqB,IAAKH,MAAMf,WAAWH,IACtBsB,IAAKJ,MAAMf,WAAWH,IACtBuB,IAAKH,IAAM,CACXI,KAAMJ,GAAK,IAAM,EAAIC,IAAM,CAC3BI,KAAMJ,GAAK,KAAO,EAAIC,IAAM,CAC5BI,IAAKJ,GAAK,EACV,IAAIK,MAAMN,IAAK,CAAEI,GAAKC,GAAK,OACtB,IAAIC,MAAML,IAAK,CAAEI,GAAK,GAC3B3B,GAAKiB,IAAIY,OAAOL,IAAMP,IAAIY,OAAOJ,IAAMR,IAAIY,OAAOH,IAAMT,IAAIY,OAAOF,IAEpE,MAAO3B,IAERY,OAAQ,QAASkB,YAAWX,MAAOC,MAClC,GAAIpB,GAAI,EACR,IAAIqB,IAAIC,GAAIC,EACZ,IAAIC,IAAIC,GAAIC,GAAIC,EAChBR,OAAQA,MAAMY,QAAQ,sBAAuB,GAC7C,KAAI,GAAI9B,GAAI,EAAGA,EAAIkB,MAAMhB,QAAS,CACjCqB,GAAKP,IAAIe,QAAQb,MAAMU,OAAO5B,KAC9BwB,IAAKR,IAAIe,QAAQb,MAAMU,OAAO5B,KAC9ByB,IAAKT,IAAIe,QAAQb,MAAMU,OAAO5B,KAC9B0B,IAAKV,IAAIe,QAAQb,MAAMU,OAAO5B,KAC9BoB,IAAKG,IAAM,EAAIC,IAAM,CACrBH,KAAMG,GAAK,KAAO,EAAIC,IAAM,CAC5BH,KAAMG,GAAK,IAAM,EAAIC,EACrB3B,IAAKS,OAAOC,aAAaW,GACzB,IAAIK,IAAM,GAAI,CAAE1B,GAAKS,OAAOC,aAAaY,IACzC,GAAIK,IAAM,GAAI,CAAE3B,GAAKS,OAAOC,aAAaa,KAE1C,MAAOvB,OAIV,IAAIiC,eAAkBC,UAAW,WAEjC,SAASC,aAAYjC,KAEpB,MAAO,KAAK+B,QAAUC,OAASE,OAAOlC,KAIvC,QAASmC,KAAIC,GACZ,GAAGL,QAAS,MAAO,IAAIC,QAAOI,EAAG,SACjC,OAAOA,GAAEC,MAAM,IAAItB,IAAI,SAAST,GAAI,MAAOA,GAAEJ,WAAW,GAAK,MAG9D,GAAIoC,SAAU,SAASC,MAAQ,SAAUC,OAAOC,SAAUF,MAE1D,IAAIG,MAAO,UAAWC,KAAO,iBAG7B,IAAIC,OACJ,IAAIC,UAAW,QAASA,UAASD,KACjCA,IAAIzD,QAAU,OACd,SAAS2D,SAAQxC,GAAK,GAAIR,GAAI,GAAIC,EAAIO,EAAEL,OAAO,CAAG,OAAMF,GAAG,EAAGD,GAAKQ,EAAEqB,OAAO5B,IAAM,OAAOD,GACzF,QAASiD,MAAKC,EAAEC,GAAK,GAAInD,GAAI,EAAI,OAAMA,EAAEG,OAASgD,EAAGnD,GAAGkD,CAAG,OAAOlD,GAClE,QAASoD,MAAKC,EAAEC,GAAG,GAAIC,GAAE,GAAGF,CAAG,OAAOE,GAAEpD,QAAQmD,EAAEC,EAAEN,KAAK,IAAIK,EAAEC,EAAEpD,QAAQoD,EACzE,QAASC,MAAKH,EAAEC,GAAG,GAAIC,GAAE,GAAGF,CAAE,OAAOE,GAAEpD,QAAQmD,EAAEC,EAAEN,KAAK,IAAIK,EAAEC,EAAEpD,QAAQoD,EACxE,QAASE,OAAMJ,EAAEC,GAAG,GAAIC,GAAE,GAAGF,CAAG,OAAOE,GAAEpD,QAAQmD,EAAEC,EAAEA,EAAEN,KAAK,IAAIK,EAAEC,EAAEpD,QACpE,QAASuD,QAAOL,EAAEC,GAAG,GAAIC,GAAE,GAAGI,KAAKC,MAAMP,EAAI,OAAOE,GAAEpD,QAAQmD,EAAEC,EAAEN,KAAK,IAAIK,EAAEC,EAAEpD,QAAQoD,EACvF,QAASM,QAAOR,EAAEC,GAAG,GAAIC,GAAE,GAAGF,CAAG,OAAOE,GAAEpD,QAAQmD,EAAEC,EAAEN,KAAK,IAAIK,EAAEC,EAAEpD,QAAQoD,EAC3E,GAAIO,OAAQH,KAAKI,IAAI,EAAE,GACvB,SAASC,OAAMX,EAAEC,GAAG,GAAGD,EAAES,OAAOT,GAAGS,MAAO,MAAOJ,QAAOL,EAAEC,EAAI,IAAIrD,GAAI0D,KAAKC,MAAMP,EAAI,OAAOQ,QAAO5D,EAAEqD,GACrG,QAASW,WAAU3B,EAAGrC,GAAK,MAAOqC,GAAEnC,QAAU,EAAIF,IAAMqC,EAAElC,WAAWH,GAAG,MAAQ,MAAQqC,EAAElC,WAAWH,EAAE,GAAG,MAAQ,MAAQqC,EAAElC,WAAWH,EAAE,GAAG,MAAQ,MAAQqC,EAAElC,WAAWH,EAAE,GAAG,MAAQ,MAAQqC,EAAElC,WAAWH,EAAE,GAAG,MAAQ,MAAQqC,EAAElC,WAAWH,EAAE,GAAG,MAAQ,KAAOqC,EAAElC,WAAWH,EAAE,GAAG,MAAQ,IAE3R,GAAIiE,YACF,WAAY,IACZ,SAAU,KACV,MAAO,OAET,SAASC,SAAQnE,GAChB,IAAI,GAAIoE,GAAI,EAAGA,GAAKF,SAAS/D,SAAUiE,EAAG,GAAGpE,EAAEkE,SAASE,GAAG,MAAMC,UAAWrE,EAAEkE,SAASE,GAAG,IAAIF,SAASE,GAAG,GAE3GtB,IAAIwB,KAAOJ,QACX,IAAIK,YACH,EAAI,UACJC,EAAI,IACJC,EAAI,OACJC,EAAI,QACJC,EAAI,WACJC,EAAI,KACJC,GAAI,QACJC,GAAI,WACJC,GAAI,QACJC,GAAI,UACJC,GAAI,SACJC,GAAI,WACJC,GAAI,QACJC,GAAI,SACJC,GAAI,aACJC,GAAI,gBACJC,GAAI,OACJC,GAAI,UACJC,GAAI,cACJC,GAAI,iBACJC,GAAI,sBACJC,GAAI,sBACJC,GAAI,2BACJC,GAAI,QACJC,GAAI,YACJC,GAAI,SACJC,GAAI,WACJC,GAAI,IACJC,GAAI,2BACJC,MAAO,UAER,IAAIC,QACF,MAAO,WACP,MAAO,WACP,MAAO,YACP,MAAO,cACP,MAAO,aACP,MAAO,WACP,MAAO,YAET,IAAIC,UACF,IAAK,MAAO,YACZ,IAAK,MAAO,aACZ,IAAK,MAAO,UACZ,IAAK,MAAO,UACZ,IAAK,MAAO,QACZ,IAAK,MAAO,SACZ,IAAK,MAAO,SACZ,IAAK,MAAO,WACZ,IAAK,MAAO,cACZ,IAAK,MAAO,YACZ,IAAK,MAAO,aACZ,IAAK,MAAO,YAEd,SAASC,MAAK/F,EAAGgG,EAAGC,OACnB,GAAIC,KAAMlG,EAAI,GAAK,EAAI,CACvB,IAAImG,GAAInG,EAAIkG,GACZ,IAAIE,KAAM,EAAGC,IAAM,EAAGC,EAAI,CAC1B,IAAIC,KAAM,EAAGC,IAAM,EAAGC,EAAI,CAC1B,IAAIC,GAAIvD,KAAKwD,MAAMR,EACnB,OAAMK,IAAMR,EAAG,CACdU,EAAIvD,KAAKwD,MAAMR,EACfG,GAAII,EAAIL,IAAMD,GACdK,GAAIC,EAAIF,IAAMD,GACd,IAAIJ,EAAIO,EAAK,MAAc,KAC3BP,GAAI,GAAKA,EAAIO,EACbN,KAAMC,GAAKA,KAAMC,CACjBC,KAAMC,GAAKA,KAAMC,EAElB,GAAGA,EAAIT,EAAG,CAAES,EAAID,GAAKF,GAAID,IACzB,GAAGI,EAAIT,EAAG,CAAES,EAAIF,GAAKD,GAAIF,IACzB,IAAIH,MAAO,OAAQ,EAAGC,IAAMI,EAAGG,EAC/B,IAAGA,IAAI,EAAG,KAAM,qBAAqBH,EAAE,IAAID,IAAI,IAAID,IAAI,IAAIK,EAAE,IAAID,IAAI,IAAID,GACzE,IAAIK,GAAIzD,KAAKwD,MAAMT,IAAMI,EAAEG,EAC3B,QAAQG,EAAGV,IAAII,EAAIM,EAAEH,EAAGA,GAEzB,QAASI,iBAAgBhE,EAAGiB,MAAQ,MAAO,GAAGjB,EAC9CP,IAAIwE,aAAeD,eACnB,IAAIE,iBAAkB,QAAUC,wBAChC,GAAIC,MAAO,kBAAmBC,KAAO,QAASC,KAAO,iBAAkBC,KAAO,WAAYC,KAAO,cACjG,SAASC,MAAKzE,GACb,GAAI0E,GAAK1E,EAAE,EAAE,GAAG,EAChB,IAAIrD,GAAIgI,KAAK3E,EAAE4E,QAAQ,IAAM,IAAGjI,EAAEG,QAAU4H,EAAG,MAAO/H,EACtDA,GAAIqD,EAAE6E,YAAY,GAAK,IAAGlI,EAAEG,QAAU4H,EAAG,MAAO/H,EAChD,OAAOqD,GAAE8E,cAAc,GAExB,QAASC,MAAK/E,GACb,GAAIrD,GAAIqD,EAAE4E,QAAQ,IAAIlG,QAAQ0F,KAAK,MACnC,IAAGzH,EAAEG,QAAUkD,EAAE,EAAE,GAAG,IAAKrD,EAAIqD,EAAE6E,YAAY,EAC7C,OAAOlI,GAER,QAASqI,MAAKrI,GACb,IAAI,GAAIC,GAAI,EAAGA,GAAKD,EAAEG,SAAUF,EAAG,IAAID,EAAEI,WAAWH,GAAK,MAAU,IAAK,MAAOD,GAAE+B,QAAQ4F,KAAK,OAAO5F,QAAQ6F,KAAK,KAAK7F,QAAQ,IAAI,KAAKA,QAAQ8F,KAAK,QACrJ,OAAO7H,GAER,QAASgI,MAAKhI,GAGb,MAAOA,GAAEgC,QAAQ,MAAQ,EAAIhC,EAAE+B,QAAQ2F,KAAK,IAAI3F,QAAQ0F,KAAK,OAASzH,EAEvE,MAAO,SAASuH,iBAAgBlE,EAAGiB,MAClC,GAAIgE,GAAI3E,KAAKwD,MAAMxD,KAAK4E,IAAI5E,KAAK6E,IAAInF,IAAIM,KAAK8E,QAASzI,CACvD,IAAGsI,IAAM,GAAKA,IAAM,EAAGtI,EAAIqD,EAAE6E,YAAY,GAAGI,OACvC,IAAG3E,KAAK6E,IAAIF,IAAM,EAAGtI,EAAI8H,KAAKzE,OAC9B,IAAGiF,IAAM,GAAItI,EAAIqD,EAAE4E,QAAQ,IAAIpH,OAAO,EAAE,QACxCb,GAAIoI,KAAK/E,EACd,OAAO2E,MAAKK,KAAKrI,OAElB8C,KAAI4F,aAAenB,eACnB,SAASoB,aAAYtF,EAAGiB,MACvB,aAAcjB,IACb,IAAK,SAAU,MAAOA,EACtB,KAAK,UAAW,MAAOA,GAAI,OAAS,OACpC,KAAK,SAAU,OAAQA,EAAE,KAAOA,EAAIgE,gBAAgBhE,EAAGiB,MAAQiD,gBAAgBlE,EAAGiB,MAEnF,KAAM,IAAIsE,OAAM,wCAA0CvF,GAE3DP,IAAI+F,SAAWF,WACf,SAASG,WAAUC,KAAM/I,GAAK,MAAO,GACrC,QAASgJ,iBAAgB3F,EAAEiB,KAAK2E,IAC/B,GAAG5F,EAAI,SAAWA,EAAI,EAAG,MAAO,KAChC,IAAI0F,MAAQ1F,EAAE,EAAI6F,KAAOvF,KAAKwD,MAAM,OAAS9D,EAAI0F,OAAQI,IAAI,CAC7D,IAAIC,QACJ,IAAIC,MAAK7C,EAAEuC,KAAMO,EAAEJ,KAAMK,EAAE,OAAOlG,EAAE0F,MAAMG,KAAK9E,EAAE,EAAEoF,EAAE,EAAElG,EAAE,EAAEmG,EAAE,EAAEC,EAAE,EAAEC,EAAE,EAAEvC,EAAE,EACzE,IAAGzD,KAAK6E,IAAIa,IAAIE,GAAK,KAAMF,IAAIE,EAAI,CACnCpF,SAAQG,MAAQ,KAAOA,KAAQA,QAC/B,IAAGA,KAAKsF,SAAUb,MAAQ,IAC1B,IAAGM,IAAIE,EAAI,KAAO,CACjBF,IAAIE,EAAI,CACR,MAAKL,MAAQ,MAAO,CAAEA,KAAO,IAAKH,MAEnC,GAAGA,OAAS,GAAI,CAACK,KAAOH,IAAM,KAAK,GAAG,KAAO,KAAK,EAAE,GAAKE,KAAI,MACxD,IAAGJ,OAAS,EAAG,CAACK,KAAOH,IAAM,KAAK,EAAE,KAAO,KAAK,EAAE,EAAIE,KAAI,MAC1D,CACJ,GAAGJ,KAAO,KAAMA,IAEhB,IAAIzF,GAAI,GAAIuG,MAAK,KAAK,EAAE,EACxBvG,GAAEwG,QAAQxG,EAAEyG,UAAYhB,KAAO,EAC/BK,OAAQ9F,EAAE0G,cAAe1G,EAAE2G,WAAW,EAAE3G,EAAEyG,UAC1CZ,KAAM7F,EAAE4G,QACR,IAAGnB,KAAO,GAAII,KAAOA,IAAM,GAAK,CAChC,IAAGF,GAAIE,IAAML,UAAUxF,EAAG8F,MAE3BC,IAAIjF,EAAIgF,KAAK,EAAIC,KAAIG,EAAIJ,KAAK,EAAIC,KAAI/F,EAAI8F,KAAK,EAC/CC,KAAIM,EAAIT,KAAO,EAAIA,MAAOvF,KAAKwD,MAAM+B,KAAO,GAC5CG,KAAIK,EAAIR,KAAO,EAAIA,MAAOvF,KAAKwD,MAAM+B,KAAO,GAC5CG,KAAII,EAAIP,IACRG,KAAIjC,EAAI+B,GACR,OAAOE,KAERvG,IAAIkG,gBAAkBA,eAEtB,SAASmB,YAAWC,KAAMC,IAAKC,IAAKC,KACnC,GAAIvK,GAAE,GAAIwK,GAAG,EAAGC,GAAG,EAAGrG,EAAIkG,IAAIlG,EAAGiF,IAAKqB,KAAO,CAC7C,QAAON,MACN,IAAK,IACJhG,EAAIkG,IAAIlG,EAAI,GAEb,KAAK,KACL,OAAOiG,IAAIlK,QACV,IAAK,GAAG,IAAK,GAAGkJ,IAAMjF,EAAI,GAAKsG,MAAO,CAAG,MACzC,SAASrB,IAAMjF,EAAI,GAAOsG,MAAO,CAAG,OACnC,KACF,KAAK,KACL,OAAOL,IAAIlK,QACV,IAAK,GAAG,IAAK,GAAGkJ,IAAMiB,IAAId,CAAGkB,MAAOL,IAAIlK,MAAQ,MAChD,KAAK,GAAG,MAAOmG,QAAOgE,IAAId,EAAE,GAAG,EAC/B,KAAK,GAAG,MAAOlD,QAAOgE,IAAId,EAAE,GAAG,EAC/B,SAAS,MAAOlD,QAAOgE,IAAId,EAAE,GAAG,GAC/B,KACF,KAAK,KACL,OAAOa,IAAIlK,QACV,IAAK,GAAG,IAAK,GAAGkJ,IAAMiB,IAAIhH,CAAGoH,MAAOL,IAAIlK,MAAQ,MAChD,KAAK,GAAG,MAAOkG,MAAKiE,IAAIlD,GAAG,EAC3B,SAAS,MAAOf,MAAKiE,IAAIlD,GAAG,GAC3B,KACF,KAAK,KACL,OAAOiD,IAAIlK,QACV,IAAK,GAAG,IAAK,GAAGkJ,IAAM,GAAGiB,IAAIb,EAAE,IAAI,EAAIiB,MAAOL,IAAIlK,MAAQ,MAC1D,SAAS,KAAM,oBAAsBkK,IACpC,KACF,KAAK,IACL,OAAOA,IAAIlK,QACV,IAAK,GAAG,IAAK,GAAGkJ,IAAMiB,IAAIb,CAAGiB,MAAOL,IAAIlK,MAAQ,MAChD,SAAS,KAAM,oBAAsBkK,IACpC,KACF,KAAK,IACL,OAAOA,IAAIlK,QACV,IAAK,GAAG,IAAK,GAAGkJ,IAAMiB,IAAIZ,CAAGgB,MAAOL,IAAIlK,MAAQ,MAChD,SAAS,KAAM,sBAAwBkK,IACtC,KACF,KAAK,KACL,GAAGC,IAAIf,IAAM,EAAG,OAAOc,KACtB,IAAK,IAAK,IAAK,KAAM,MAAOjH,MAAKkH,IAAIX,EAAGU,IAAIlK,OAC5C,KAAK,KAAM,IAAK,MAAO,IAAK,QAE7B,OAAOkK,KACN,IAAK,IAAK,IAAK,KAAM,IAAK,KAAM,IAAK,MAAO,IAAK,OAChD,GAAGE,KAAO,EAAGE,GAAKF,MAAQ,EAAI,IAAO,QAChCE,IAAKF,MAAQ,EAAI,GAAK,CAC3BC,IAAK7G,KAAKC,MAAM,IAAM0G,IAAIX,EAAIW,IAAIf,GAClC,IAAGiB,IAAM,GAAGC,GAAID,GAAK,CACrB,IAAGH,MAAQ,IAAK,MAAOG,MAAO,EAAI,IAAM,GAAGA,GAAGC,EAC9CzK,GAAIoD,KAAKoH,GAAG,EAAID,IAChB,IAAGF,MAAQ,KAAM,MAAOrK,GAAEa,OAAO,EAAE,EACnC,OAAO,IAAMb,EAAEa,OAAO,EAAEwJ,IAAIlK,OAAO,EACpC,SAAS,KAAM,sBAAwBkK,IAExC,IAAK,IACL,OAAOA,KACN,IAAK,MAAO,IAAK,OAAQhB,IAAMiB,IAAI9D,EAAE,GAAG8D,IAAIb,CAAG,MAC/C,KAAK,MAAO,IAAK,OAAQJ,KAAOiB,IAAI9D,EAAE,GAAG8D,IAAIb,GAAG,GAAGa,IAAIZ,CAAG,MAC1D,KAAK,MAAO,IAAK,OAAQL,MAAQiB,IAAI9D,EAAE,GAAG8D,IAAIb,GAAG,GAAGa,IAAIZ,GAAG,GAAG/F,KAAKC,MAAM0G,IAAIX,EAAEW,IAAIf,EAAI,MACvF,SAAS,KAAM,uBAAyBc,IACvCK,KAAOL,IAAIlK,SAAW,EAAI,EAAI,CAAG,MACnC,KAAK,KACJkJ,IAAMjF,CAAGsG,MAAO,EAElB,GAAGA,KAAO,EAAG,MAAOtH,MAAKiG,IAAKqB,UAAY,OAAO,GAGlD,QAASC,UAASrI,GACjB,GAAGA,EAAEnC,QAAU,EAAG,MAAOmC,EACzB,IAAIsI,GAAKtI,EAAEnC,OAAS,EAAIH,EAAIsC,EAAEzB,OAAO,EAAE+J,EACvC,MAAMA,GAAGtI,EAAEnC,OAAQyK,GAAG,EAAG5K,IAAIA,EAAEG,OAAS,EAAI,IAAM,IAAMmC,EAAEzB,OAAO+J,EAAE,EACnE,OAAO5K,GAER,GAAI6K,WAAY,QAAUC,kBAC1B,GAAIC,MAAO,IACX,SAASC,eAAcZ,KAAMC,IAAKC,KACjC,GAAIW,MAAOZ,IAAItI,QAAQgJ,KAAK,IAAKG,IAAMb,IAAIlK,OAAS8K,KAAK9K,MACzD,OAAO0K,WAAUT,KAAMa,KAAMX,IAAM3G,KAAKI,IAAI,GAAG,EAAEmH,MAAQjI,KAAK,IAAIiI,KAEnE,QAASC,cAAaf,KAAMC,IAAKC,KAChC,GAAIc,KAAMf,IAAIlK,OAAS,CACvB,OAAMkK,IAAIjK,WAAWgL,IAAI,KAAO,KAAMA,GACtC,OAAOP,WAAUT,KAAMC,IAAIxJ,OAAO,EAAEuK,KAAMd,IAAM3G,KAAKI,IAAI,GAAG,GAAGsG,IAAIlK,OAAOiL,OAE3E,QAASC,eAAchB,IAAKC,KAC3B,GAAItK,EACJ,IAAIoL,KAAMf,IAAIrI,QAAQ,KAAOqI,IAAIrI,QAAQ,KAAO,CAChD,IAAGqI,IAAIiB,MAAM,eAAgB,CAC5B,GAAIC,QAASlB,IAAIrI,QAAQ,IAAM,IAAGuJ,UAAY,EAAGA,OAAOlB,IAAIrI,QAAQ,IACpE,IAAIwJ,IAAK7H,KAAKwD,MAAMxD,KAAK4E,IAAI5E,KAAK6E,IAAI8B,MAAM3G,KAAK8E,QAAQ8C,MACzD,IAAGC,GAAK,EAAGA,IAAMD,MACjBvL,IAAKsK,IAAI3G,KAAKI,IAAI,GAAGyH,KAAKtD,YAAYkD,IAAI,GAAGG,OAAOC,IAAID,OACxD,IAAGvL,EAAEgC,QAAQ,QAAU,EAAG,CACzB,GAAIyJ,OAAQ9H,KAAKwD,MAAMxD,KAAK4E,IAAI5E,KAAK6E,IAAI8B,MAAM3G,KAAK8E,OACpD,IAAGzI,EAAEgC,QAAQ,QAAU,EAAGhC,EAAIA,EAAE,GAAK,IAAMA,EAAEa,OAAO,GAAK,MAAQ4K,MAAQzL,EAAEG,OAAOqL,QAC7ExL,IAAK,MAAQyL,MAAQD,GAC1B,OAAMxL,EAAEa,OAAO,EAAE,KAAO,KAAM,CAC7Bb,EAAIA,EAAE,GAAKA,EAAEa,OAAO,EAAE0K,QAAU,IAAMvL,EAAEa,OAAO,EAAE0K,OACjDvL,GAAIA,EAAE+B,QAAQ,aAAa,MAAMA,QAAQ,QAAQ,MAElD/B,EAAIA,EAAE+B,QAAQ,MAAM,KAErB/B,EAAIA,EAAE+B,QAAQ,2BAA2B,SAAS2J,GAAGC,GAAGC,GAAGC,IAAM,MAAOF,IAAKC,GAAKC,GAAGhL,OAAO,GAAG0K,OAAOC,IAAID,QAAU,IAAMM,GAAGhL,OAAO2K,IAAM,UACpIxL,GAAIsK,IAAInC,cAAciD,IAC7B,IAAGf,IAAIiB,MAAM,WAAatL,EAAEsL,MAAM,YAAatL,EAAIA,EAAEa,OAAO,EAAEb,EAAEG,OAAO,GAAK,IAAMH,EAAEA,EAAEG,OAAO,EAC7F,IAAGkK,IAAIiB,MAAM,QAAUtL,EAAEsL,MAAM,OAAQtL,EAAIA,EAAE+B,QAAQ,MAAM,IAC3D,OAAO/B,GAAE+B,QAAQ,IAAI,KAEtB,GAAI+J,OAAQ,wBACZ,SAASC,cAAaC,EAAGC,KAAMC,MAC9B,GAAIC,KAAMC,SAASJ,EAAE,IAAKK,GAAK1I,KAAKC,MAAMqI,KAAOE,KAAMG,KAAO3I,KAAKwD,MAAMkF,GAAGF,IAC5E,IAAII,KAAOF,GAAKC,KAAKH,IAAMK,IAAML,GACjC,OAAOD,OAAQI,OAAS,EAAI,GAAK,GAAGA,MAAQ,KAAOC,MAAQ,EAAItJ,KAAK,IAAK+I,EAAE,GAAG7L,OAAS,EAAI6L,EAAE,GAAG7L,QAAUqD,KAAK+I,IAAIP,EAAE,GAAG7L,QAAU6L,EAAE,GAAK,IAAMA,EAAE,GAAK5I,KAAKoJ,IAAIR,EAAE,GAAG7L,SAErK,QAASsM,cAAaT,EAAGC,KAAMC,MAC9B,MAAOA,OAAQD,OAAS,EAAI,GAAK,GAAGA,MAAQhJ,KAAK,IAAK+I,EAAE,GAAG7L,OAAS,EAAI6L,EAAE,GAAG7L,QAE9E,GAAIuM,MAAO,aACX,IAAIC,YAAa,UACjB,IAAIC,OAAQ,qBACZ,SAASC,OAAMC,KACd,GAAI9M,GAAI,GAAI+M,EACZ,KAAI,GAAI9M,GAAI,EAAGA,GAAK6M,IAAI3M,SAAUF,EAAG,OAAQ8M,GAAGD,IAAI1M,WAAWH,IAC9D,IAAK,IAAI,KACT,KAAK,IAAID,GAAI,GAAK,MAClB,KAAK,IAAIA,GAAI,GAAK,MAClB,SAASA,GAAIS,OAAOC,aAAaqM,IAElC,MAAO/M,GAER,QAASgN,KAAI1C,IAAKhH,GAAK,GAAI2J,IAAKtJ,KAAKI,IAAI,GAAGT,EAAI,OAAO,GAAIK,KAAKC,MAAM0G,IAAM2C,IAAIA,GAChF,QAASC,KAAI5C,IAAKhH,GAAK,MAAOK,MAAKC,OAAO0G,IAAI3G,KAAKwD,MAAMmD,MAAM3G,KAAKI,IAAI,GAAGT,IAC3E,QAAS6J,KAAI7C,KAAO,GAAGA,IAAM,YAAcA,KAAO,WAAY,MAAO,IAAIA,KAAO,EAAKA,IAAI,EAAMA,IAAI,EAAE,EAAK,OAAO,GAAG3G,KAAKwD,MAAMmD,KAC/H,QAAS8C,eAAchD,KAAMC,IAAKC,KACjC,GAAGF,KAAKhK,WAAW,KAAO,KAAOiK,IAAIiB,MAAMqB,YAAa,CACvD,GAAIU,MAAOhD,IAAItI,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,GACjE,IAAGuI,KAAO,EAAG,MAAO8C,eAAc,IAAKC,KAAM/C,IAC7C,OAAO,IAAM8C,cAAc,IAAKC,MAAO/C,KAAO,IAE/C,GAAGD,IAAIjK,WAAWiK,IAAIlK,OAAS,KAAO,GAAI,MAAOgL,cAAaf,KAAMC,IAAKC,IACzE,IAAGD,IAAIrI,QAAQ,QAAU,EAAG,MAAOgJ,eAAcZ,KAAMC,IAAKC,IAC5D,IAAGD,IAAIrI,QAAQ,QAAU,EAAG,MAAOqJ,eAAchB,IAAKC,IACtD,IAAGD,IAAIjK,WAAW,KAAO,GAAI,MAAO,IAAIgN,cAAchD,KAAKC,IAAIxJ,OAAOwJ,IAAI,IAAI,IAAI,EAAE,GAAGC,IACvF,IAAItK,GAAGsN,EACP,IAAItB,GAAGuB,GAAIC,GAAIvB,KAAOtI,KAAK6E,IAAI8B,KAAM4B,KAAO5B,IAAM,EAAI,IAAM,EAC5D,IAAGD,IAAIiB,MAAM,SAAU,MAAOY,MAAOlI,MAAMiI,KAAK5B,IAAIlK,OACpD,IAAGkK,IAAIiB,MAAM,WAAY,CACxBtL,EAAIgE,MAAMsG,IAAI,EAAI,IAAGtK,IAAM,IAAKA,EAAI,EACpC,OAAOA,GAAEG,OAASkK,IAAIlK,OAASH,EAAI6M,MAAMxC,IAAIxJ,OAAO,EAAEwJ,IAAIlK,OAAOH,EAAEG,SAAWH,EAE/E,IAAIgM,EAAI3B,IAAIiB,MAAMQ,UAAY,KAAM,MAAOC,cAAaC,EAAGC,KAAMC,KACjE,IAAG7B,IAAIiB,MAAM,YAAc,KAAM,MAAOY,MAAOlI,MAAMiI,KAAK5B,IAAIlK,OAASkK,IAAIrI,QAAQ,KACnF,KAAIgK,EAAI3B,IAAIiB,MAAMoB,SAAW,KAAM,CAClC1M,EAAIgN,IAAI1C,IAAK0B,EAAE,GAAG7L,QAAQ4B,QAAQ,aAAa,MAAMiK,EAAE,IAAIjK,QAAQ,MAAM,IAAIiK,EAAE,IAAIjK,QAAQ,WAAW,SAAS2J,GAAIC,IAAM,MAAO,IAAMA,GAAK1I,KAAK,IAAK+I,EAAE,GAAG7L,OAAOwL,GAAGxL,SACpK,OAAOkK,KAAIrI,QAAQ,SAAW,EAAIhC,EAAIA,EAAE+B,QAAQ,OAAO,KAExDsI,IAAMA,IAAItI,QAAQ,YAAa,KAC/B,KAAIiK,EAAI3B,IAAIiB,MAAM,mBAAqB,KAAM,CAC5C,MAAOY,MAAOc,IAAIf,KAAMD,EAAE,GAAG7L,QAAQ4B,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOiK,EAAE,GAAG7L,OAAO,KAAK,KAElI,IAAI6L,EAAI3B,IAAIiB,MAAM,mBAAqB,KAAM,MAAOY,MAAOvB,SAAS3G,MAAMiI,KAAK,GAC/E,KAAID,EAAI3B,IAAIiB,MAAM,wBAA0B,KAAM,CACjD,MAAOhB,KAAM,EAAI,IAAM8C,cAAchD,KAAMC,KAAMC,KAAOK,SAAS,GAAIhH,KAAKwD,MAAMmD,MAAS,IAAMlH,KAAK8J,IAAI5C,IAAK0B,EAAE,GAAG7L,QAAQ6L,EAAE,GAAG7L,QAEhI,IAAI6L,EAAI3B,IAAIiB,MAAM,eAAiB,KAAM,MAAO8B,eAAchD,KAAKC,IAAItI,QAAQ,SAAS,IAAIuI,IAC5F,KAAI0B,EAAI3B,IAAIiB,MAAM,8BAAgC,KAAM,CACvDtL,EAAIgD,QAAQoK,cAAchD,KAAMC,IAAItI,QAAQ,SAAS,IAAKuI,KAC1DiD,IAAK,CACL,OAAOvK,SAAQA,QAAQqH,IAAItI,QAAQ,MAAM,KAAKA,QAAQ,QAAQ,SAASvB,GAAG,MAAO+M,IAAGvN,EAAEG,OAAOH,EAAEuN,MAAM/M,IAAI,IAAI,IAAI,MAElH,GAAG6J,IAAIiB,MAAMsB,SAAW,KAAM,CAC7B5M,EAAIoN,cAAchD,KAAM,aAAcE,IACtC,OAAO,IAAMtK,EAAEa,OAAO,EAAE,GAAK,KAAOb,EAAEa,OAAO,EAAG,GAAK,IAAMb,EAAEa,OAAO,GAErE,GAAI4M,IAAK,EACT,KAAIzB,EAAI3B,IAAIiB,MAAM,kCAAoC,KAAM,CAC3DiC,GAAK5J,KAAK+J,IAAI1B,EAAE,GAAG7L,OAAO,EAC1BqN,IAAKjH,KAAK0F,KAAMtI,KAAKI,IAAI,GAAGwJ,IAAI,EAAG,MACnCvN,GAAI,GAAKkM,IACTuB,IAAK5C,UAAU,IAAKmB,EAAE,GAAIwB,GAAG,GAC7B,IAAGC,GAAGA,GAAGtN,OAAO,IAAM,IAAKsN,GAAKA,GAAG5M,OAAO,EAAE4M,GAAGtN,OAAO,GAAK,GAC3DH,IAAKyN,GAAKzB,EAAE,GAAK,IAAMA,EAAE,EACzByB,IAAKhK,MAAM+J,GAAG,GAAGD,GACjB,IAAGE,GAAGtN,OAAS6L,EAAE,GAAG7L,OAAQsN,GAAKZ,MAAMb,EAAE,GAAGnL,OAAOmL,EAAE,GAAG7L,OAAOsN,GAAGtN,SAAWsN,EAC7EzN,IAAKyN,EACL,OAAOzN,GAER,IAAIgM,EAAI3B,IAAIiB,MAAM,oCAAsC,KAAM,CAC7DiC,GAAK5J,KAAK+J,IAAI/J,KAAKgK,IAAI3B,EAAE,GAAG7L,OAAQ6L,EAAE,GAAG7L,QAAQ,EACjDqN,IAAKjH,KAAK0F,KAAMtI,KAAKI,IAAI,GAAGwJ,IAAI,EAAG,KACnC,OAAOrB,OAAQsB,GAAG,KAAKA,GAAG,GAAK,GAAK,MAAQ,KAAOA,GAAG,GAAKhK,KAAKgK,GAAG,GAAGD,IAAMvB,EAAE,GAAK,IAAMA,EAAE,GAAKvI,MAAM+J,GAAG,GAAGD,IAAKtK,KAAK,IAAK,EAAEsK,GAAG,EAAIvB,EAAE,GAAG7L,OAAS6L,EAAE,GAAG7L,SAExJ,IAAI6L,EAAI3B,IAAIiB,MAAM,eAAiB,KAAM,CACxCtL,EAAIgE,MAAMsG,IAAK,EACf,IAAGD,IAAIlK,QAAUH,EAAEG,OAAQ,MAAOH,EAClC,OAAO6M,OAAMxC,IAAIxJ,OAAO,EAAEwJ,IAAIlK,OAAOH,EAAEG,SAAWH,EAElD,IAAIgM,EAAI3B,IAAIiB,MAAM,0BAA4B,KAAM,CACpDtL,EAAI,GAAKsK,IAAIrC,QAAQtE,KAAK+J,IAAI1B,EAAE,GAAG7L,OAAO,KAAK4B,QAAQ,YAAY,KACnEwL,IAAKvN,EAAEgC,QAAQ,IACf,IAAI4L,MAAOvD,IAAIrI,QAAQ,KAAOuL,GAAIM,KAAOxD,IAAIlK,OAASH,EAAEG,OAASyN,IACjE,OAAOf,OAAMxC,IAAIxJ,OAAO,EAAE+M,MAAQ5N,EAAIqK,IAAIxJ,OAAOwJ,IAAIlK,OAAO0N,OAE7D,IAAI7B,EAAI3B,IAAIiB,MAAM,yBAA2B,KAAM,CAClDiC,GAAKL,IAAI5C,IAAK0B,EAAE,GAAG7L,OACnB,OAAOmK,KAAM,EAAI,IAAM8C,cAAchD,KAAMC,KAAMC,KAAOK,SAASwC,IAAI7C,MAAMvI,QAAQ,aAAa,OAAOA,QAAQ,QAAQ,SAAS2J,IAAM,MAAO,OAASA,GAAGvL,OAAS,EAAIiD,KAAK,EAAE,EAAEsI,GAAGvL,QAAU,IAAMuL,KAAS,IAAMtI,KAAKmK,GAAGvB,EAAE,GAAG7L,QAE/N,OAAOkK,KACN,IAAK,QAAS,GAAI7J,GAAImK,SAAS3G,MAAMiI,KAAK,GAAK,OAAOzL,KAAM,IAAM0L,KAAO1L,EAAI,EAC7E,UAED,KAAM,IAAIoI,OAAM,uBAAyByB,IAAM,KAEhD,QAASyD,eAAc1D,KAAMC,IAAKC,KACjC,GAAIc,KAAMf,IAAIlK,OAAS,CACvB,OAAMkK,IAAIjK,WAAWgL,IAAI,KAAO,KAAMA,GACtC,OAAOP,WAAUT,KAAMC,IAAIxJ,OAAO,EAAEuK,KAAMd,IAAM3G,KAAKI,IAAI,GAAG,GAAGsG,IAAIlK,OAAOiL,OAE3E,QAAS2C,gBAAe3D,KAAMC,IAAKC,KAClC,GAAIW,MAAOZ,IAAItI,QAAQgJ,KAAK,IAAKG,IAAMb,IAAIlK,OAAS8K,KAAK9K,MACzD,OAAO0K,WAAUT,KAAMa,KAAMX,IAAM3G,KAAKI,IAAI,GAAG,EAAEmH,MAAQjI,KAAK,IAAIiI,KAEnE,QAAS8C,gBAAe3D,IAAKC,KAC5B,GAAItK,EACJ,IAAIoL,KAAMf,IAAIrI,QAAQ,KAAOqI,IAAIrI,QAAQ,KAAO,CAChD,IAAGqI,IAAIiB,MAAM,eAAgB,CAC5B,GAAIC,QAASlB,IAAIrI,QAAQ,IAAM,IAAGuJ,UAAY,EAAGA,OAAOlB,IAAIrI,QAAQ,IACpE,IAAIwJ,IAAK7H,KAAKwD,MAAMxD,KAAK4E,IAAI5E,KAAK6E,IAAI8B,MAAM3G,KAAK8E,QAAQ8C,MACzD,IAAGC,GAAK,EAAGA,IAAMD,MACjBvL,IAAKsK,IAAI3G,KAAKI,IAAI,GAAGyH,KAAKtD,YAAYkD,IAAI,GAAGG,OAAOC,IAAID,OACxD,KAAIvL,EAAEsL,MAAM,QAAS,CACpB,GAAIG,OAAQ9H,KAAKwD,MAAMxD,KAAK4E,IAAI5E,KAAK6E,IAAI8B,MAAM3G,KAAK8E,OACpD,IAAGzI,EAAEgC,QAAQ,QAAU,EAAGhC,EAAIA,EAAE,GAAK,IAAMA,EAAEa,OAAO,GAAK,MAAQ4K,MAAQzL,EAAEG,OAAOqL,QAC7ExL,IAAK,MAAQyL,MAAQD,GAC1BxL,GAAIA,EAAE+B,QAAQ,MAAM,KAErB/B,EAAIA,EAAE+B,QAAQ,2BAA2B,SAAS2J,GAAGC,GAAGC,GAAGC,IAAM,MAAOF,IAAKC,GAAKC,GAAGhL,OAAO,GAAG0K,OAAOC,IAAID,QAAU,IAAMM,GAAGhL,OAAO2K,IAAM,UACpIxL,GAAIsK,IAAInC,cAAciD,IAC7B,IAAGf,IAAIiB,MAAM,WAAatL,EAAEsL,MAAM,YAAatL,EAAIA,EAAEa,OAAO,EAAEb,EAAEG,OAAO,GAAK,IAAMH,EAAEA,EAAEG,OAAO,EAC7F,IAAGkK,IAAIiB,MAAM,QAAUtL,EAAEsL,MAAM,OAAQtL,EAAIA,EAAE+B,QAAQ,MAAM,IAC3D,OAAO/B,GAAE+B,QAAQ,IAAI,KAEtB,QAASkM,eAAc7D,KAAMC,IAAKC,KACjC,GAAGF,KAAKhK,WAAW,KAAO,KAAOiK,IAAIiB,MAAMqB,YAAa,CACvD,GAAIU,MAAOhD,IAAItI,QAAQ,OAAO,IAAIA,QAAQ,MAAM,IAAIA,QAAQ,KAAK,GACjE,IAAGuI,KAAO,EAAG,MAAO2D,eAAc,IAAKZ,KAAM/C,IAC7C,OAAO,IAAM2D,cAAc,IAAKZ,MAAO/C,KAAO,IAE/C,GAAGD,IAAIjK,WAAWiK,IAAIlK,OAAS,KAAO,GAAI,MAAO2N,eAAc1D,KAAMC,IAAKC,IAC1E,IAAGD,IAAIrI,QAAQ,QAAU,EAAG,MAAO+L,gBAAe3D,KAAMC,IAAKC,IAC7D,IAAGD,IAAIrI,QAAQ,QAAU,EAAG,MAAOgM,gBAAe3D,IAAKC,IACvD,IAAGD,IAAIjK,WAAW,KAAO,GAAI,MAAO,IAAI6N,cAAc7D,KAAKC,IAAIxJ,OAAOwJ,IAAI,IAAI,IAAI,EAAE,GAAGC,IACvF,IAAItK,EACJ,IAAIgM,GAAGuB,GAAIC,GAAIvB,KAAOtI,KAAK6E,IAAI8B,KAAM4B,KAAO5B,IAAM,EAAI,IAAM,EAC5D,IAAGD,IAAIiB,MAAM,SAAU,MAAOY,MAAO9I,KAAK6I,KAAK5B,IAAIlK,OACnD,IAAGkK,IAAIiB,MAAM,WAAY,CACxBtL,EAAK,GAAGsK,GAAM,IAAGA,MAAQ,EAAGtK,EAAI,EAChC,OAAOA,GAAEG,OAASkK,IAAIlK,OAASH,EAAI6M,MAAMxC,IAAIxJ,OAAO,EAAEwJ,IAAIlK,OAAOH,EAAEG,SAAWH,EAE/E,IAAIgM,EAAI3B,IAAIiB,MAAMQ,UAAY,KAAM,MAAOW,cAAaT,EAAGC,KAAMC,KACjE,IAAG7B,IAAIiB,MAAM,YAAc,KAAM,MAAOY,MAAO9I,KAAK6I,KAAK5B,IAAIlK,OAASkK,IAAIrI,QAAQ,KAClF,KAAIgK,EAAI3B,IAAIiB,MAAMoB,SAAW,KAAM,CAClC1M,GAAK,GAAGsK,KAAKvI,QAAQ,aAAa,MAAMiK,EAAE,IAAIjK,QAAQ,MAAM,IAAIiK,EAAE,IAAIjK,QAAQ,WAAW,SAAS2J,GAAIC,IAAM,MAAO,IAAMA,GAAK1I,KAAK,IAAK+I,EAAE,GAAG7L,OAAOwL,GAAGxL,SACvJ,OAAOkK,KAAIrI,QAAQ,SAAW,EAAIhC,EAAIA,EAAE+B,QAAQ,OAAO,KAExDsI,IAAMA,IAAItI,QAAQ,YAAa,KAC/B,KAAIiK,EAAI3B,IAAIiB,MAAM,mBAAqB,KAAM,CAC5C,MAAOY,OAAQ,GAAGD,MAAMlK,QAAQ,kBAAkB,OAAOA,QAAQ,YAAY,OAAOA,QAAQ,OAAOiK,EAAE,GAAG7L,OAAO,KAAK,KAErH,IAAI6L,EAAI3B,IAAIiB,MAAM,mBAAqB,KAAM,MAAOY,MAAOvB,SAAU,GAAGsB,KACxE,KAAID,EAAI3B,IAAIiB,MAAM,wBAA0B,KAAM,CACjD,MAAOhB,KAAM,EAAI,IAAM2D,cAAc7D,KAAMC,KAAMC,KAAOK,SAAU,GAAGL,KAAQ,IAAMrH,KAAK,IAAI+I,EAAE,GAAG7L,QAElG,IAAI6L,EAAI3B,IAAIiB,MAAM,eAAiB,KAAM,MAAO2C,eAAc7D,KAAKC,IAAItI,QAAQ,SAAS,IAAIuI,IAC5F,KAAI0B,EAAI3B,IAAIiB,MAAM,8BAAgC,KAAM,CACvDtL,EAAIgD,QAAQiL,cAAc7D,KAAMC,IAAItI,QAAQ,SAAS,IAAKuI,KAC1DiD,IAAK,CACL,OAAOvK,SAAQA,QAAQqH,IAAItI,QAAQ,MAAM,KAAKA,QAAQ,QAAQ,SAASvB,GAAG,MAAO+M,IAAGvN,EAAEG,OAAOH,EAAEuN,MAAM/M,IAAI,IAAI,IAAI,MAElH,GAAG6J,IAAIiB,MAAMsB,SAAW,KAAM,CAC7B5M,EAAIiO,cAAc7D,KAAM,aAAcE,IACtC,OAAO,IAAMtK,EAAEa,OAAO,EAAE,GAAK,KAAOb,EAAEa,OAAO,EAAG,GAAK,IAAMb,EAAEa,OAAO,GAErE,GAAI4M,IAAK,EACT,KAAIzB,EAAI3B,IAAIiB,MAAM,kCAAoC,KAAM,CAC3DiC,GAAK5J,KAAK+J,IAAI1B,EAAE,GAAG7L,OAAO,EAC1BqN,IAAKjH,KAAK0F,KAAMtI,KAAKI,IAAI,GAAGwJ,IAAI,EAAG,MACnCvN,GAAI,GAAKkM,IACTuB,IAAK5C,UAAU,IAAKmB,EAAE,GAAIwB,GAAG,GAC7B,IAAGC,GAAGA,GAAGtN,OAAO,IAAM,IAAKsN,GAAKA,GAAG5M,OAAO,EAAE4M,GAAGtN,OAAO,GAAK,GAC3DH,IAAKyN,GAAKzB,EAAE,GAAK,IAAMA,EAAE,EACzByB,IAAKhK,MAAM+J,GAAG,GAAGD,GACjB,IAAGE,GAAGtN,OAAS6L,EAAE,GAAG7L,OAAQsN,GAAKZ,MAAMb,EAAE,GAAGnL,OAAOmL,EAAE,GAAG7L,OAAOsN,GAAGtN,SAAWsN,EAC7EzN,IAAKyN,EACL,OAAOzN,GAER,IAAIgM,EAAI3B,IAAIiB,MAAM,oCAAsC,KAAM,CAC7DiC,GAAK5J,KAAK+J,IAAI/J,KAAKgK,IAAI3B,EAAE,GAAG7L,OAAQ6L,EAAE,GAAG7L,QAAQ,EACjDqN,IAAKjH,KAAK0F,KAAMtI,KAAKI,IAAI,GAAGwJ,IAAI,EAAG,KACnC,OAAOrB,OAAQsB,GAAG,KAAKA,GAAG,GAAK,GAAK,MAAQ,KAAOA,GAAG,GAAKhK,KAAKgK,GAAG,GAAGD,IAAMvB,EAAE,GAAK,IAAMA,EAAE,GAAKvI,MAAM+J,GAAG,GAAGD,IAAKtK,KAAK,IAAK,EAAEsK,GAAG,EAAIvB,EAAE,GAAG7L,OAAS6L,EAAE,GAAG7L,SAExJ,IAAI6L,EAAI3B,IAAIiB,MAAM,eAAiB,KAAM,CACxCtL,EAAI,GAAKsK,GACT,IAAGD,IAAIlK,QAAUH,EAAEG,OAAQ,MAAOH,EAClC,OAAO6M,OAAMxC,IAAIxJ,OAAO,EAAEwJ,IAAIlK,OAAOH,EAAEG,SAAWH,EAEnD,IAAIgM,EAAI3B,IAAIiB,MAAM,yBAA2B,KAAM,CAClDtL,EAAI,GAAKsK,IAAIrC,QAAQtE,KAAK+J,IAAI1B,EAAE,GAAG7L,OAAO,KAAK4B,QAAQ,YAAY,KACnEwL,IAAKvN,EAAEgC,QAAQ,IACf,IAAI4L,MAAOvD,IAAIrI,QAAQ,KAAOuL,GAAIM,KAAOxD,IAAIlK,OAASH,EAAEG,OAASyN,IACjE,OAAOf,OAAMxC,IAAIxJ,OAAO,EAAE+M,MAAQ5N,EAAIqK,IAAIxJ,OAAOwJ,IAAIlK,OAAO0N,OAE7D,IAAI7B,EAAI3B,IAAIiB,MAAM,yBAA2B,KAAM,CAClD,MAAOhB,KAAM,EAAI,IAAM2D,cAAc7D,KAAMC,KAAMC,KAAOK,SAAS,GAAGL,KAAKvI,QAAQ,aAAa,OAAOA,QAAQ,QAAQ,SAAS2J,IAAM,MAAO,OAASA,GAAGvL,OAAS,EAAIiD,KAAK,EAAE,EAAEsI,GAAGvL,QAAU,IAAMuL,KAAS,IAAMtI,KAAK,EAAE4I,EAAE,GAAG7L,QAE5N,OAAOkK,KACN,IAAK,QAAS,GAAI7J,GAAImK,SAAS,GAAGsB,KAAO,OAAOzL,KAAM,IAAM0L,KAAO1L,EAAI,EACvE,UAED,KAAM,IAAIoI,OAAM,uBAAyByB,IAAM,KAEhD,MAAO,SAASQ,WAAUT,KAAMC,IAAKC,KACpC,OAAQA,IAAI,KAAOA,IAAM2D,cAAc7D,KAAMC,IAAKC,KAAO8C,cAAchD,KAAMC,IAAKC,QAEnF,SAAS4D,WAAU7D,KAClB,GAAIhB,OACJ,IAAI8E,QAAS,MAAOpB,EACpB,KAAI,GAAI9M,GAAI,EAAG2K,EAAI,EAAG3K,EAAIoK,IAAIlK,SAAUF,EAAG,OAAQ8M,GAAG1C,IAAIjK,WAAWH,IACpE,IAAK,IACJkO,QAAUA,MAAQ,MACnB,KAAK,IAAI,IAAK,IAAI,IAAK,MACpBlO,CAAG,MACN,KAAK,IACJoJ,IAAIA,IAAIlJ,QAAUkK,IAAIxJ,OAAO+J,EAAE3K,EAAE2K,EACjCA,GAAI3K,EAAE,EAERoJ,IAAIA,IAAIlJ,QAAUkK,IAAIxJ,OAAO+J,EAC7B,IAAGuD,SAAW,KAAM,KAAM,IAAIvF,OAAM,WAAayB,IAAM,yBACvD,OAAOhB,KAERvG,IAAIsL,OAASF,SACb,IAAIG,SAAU,eACd,SAASC,UAASjE,IAAKhH,EAAGiB,KAAMiK,MAC/B,GAAIlF,QAAUrJ,EAAI,GAAIC,EAAI,EAAGiD,EAAI,GAAIsL,IAAI,IAAKpH,EAAGqH,GAAI7D,EAAGmC,EACxD,IAAI2B,IAAG,GAEP,OAAMzO,EAAIoK,IAAIlK,OAAQ,CACrB,OAAQ+C,EAAImH,IAAIpK,IACf,IAAK,IACJ,IAAIgE,UAAUoG,IAAKpK,GAAI,KAAM,IAAI2I,OAAM,0BAA4B1F,EAAI,OAAQmH,IAC/EhB,KAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAE,UAAYpD,IAAG,CAAG,MAC/C,KAAK,IACJ,IAAID,EAAE,IAAI+M,GAAG1C,IAAIjK,aAAaH,MAAQ,IAAMA,EAAIoK,IAAIlK,QAASH,GAAKS,OAAOC,aAAaqM,GACtF1D,KAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAErD,KAAMC,CAAG,MACtC,KAAK,KAAM,GAAI8H,GAAIsC,MAAMpK,GAAIsD,EAAKwE,IAAM,KAAOA,IAAM,IAAOA,EAAI,GAC/DsB,KAAIA,IAAIlJ,SAAWoD,EAAEA,EAAGF,EAAE0E,KAAM9H,CAAG,MACpC,KAAK,IAAKoJ,IAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAE,IAAMpD,IAAG,CAAG,MAClD,KAAK,IACJoJ,IAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAEA,KAAMpD,CAAG,MACtC,KAAK,IAAK,IAAK,IACd,GAAGoK,IAAIpK,EAAE,KAAO,KAAOoK,IAAIpK,EAAE,KAAO,IAAK,CACnC,GAAGwO,IAAI,KAAM,CAAEA,GAAGzF,gBAAgB3F,EAAGiB,KAAM+F,IAAIpK,EAAE,KAAO,IAAM,IAAGwO,IAAI,KAAM,MAAO,GACvFpF,IAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAEgH,IAAIxJ,OAAOZ,EAAE,GAAKuO,KAAMtL,CAAGjD,IAAG,CAAG,OAG/D,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACtDiD,EAAIA,EAAEyL,aAEP,KAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChE,GAAGtL,EAAI,EAAG,MAAO,EACjB,IAAGoL,IAAI,KAAM,CAAEA,GAAGzF,gBAAgB3F,EAAGiB,KAAO,IAAGmK,IAAI,KAAM,MAAO,GAChEzO,EAAIkD,CAAG,SAAQjD,EAAEoK,IAAIlK,QAAUkK,IAAIpK,GAAG0O,gBAAkBzL,EAAGlD,GAAGkD,CAC9D,IAAGA,IAAM,KAAOsL,IAAIG,gBAAkB,IAAKzL,EAAI,GAC/C,IAAGA,IAAM,IAAKA,EAAIwL,EAClBrF,KAAIA,IAAIlJ,SAAWoD,EAAEL,EAAGG,EAAErD,EAAIwO,KAAMtL,CAAG,MACxC,KAAK,IACJkE,GAAG7D,EAAEL,EAAGG,EAAE,IACV,IAAGoL,IAAI,KAAMA,GAAGzF,gBAAgB3F,EAAGiB,KAC/B,IAAG+F,IAAIxJ,OAAOZ,EAAG,KAAO,MAAO,CAAE,GAAGwO,IAAI,KAAMrH,EAAE/D,EAAIoL,GAAGhF,GAAK,GAAK,IAAM,GAAKrC,GAAE7D,EAAI,GAAKmL,IAAG,GAAIzO,IAAG,MAC5F,IAAGoK,IAAIxJ,OAAOZ,EAAE,KAAO,QAAS,CAAE,GAAGwO,IAAI,KAAMrH,EAAE/D,EAAIoL,GAAGhF,GAAK,GAAK,KAAO,IAAMrC,GAAE7D,EAAI,GAAKtD,IAAG,CAAGyO,IAAG,QACvG,CAAEtH,EAAE7D,EAAI,MAAOtD,EACpB,GAAGwO,IAAI,MAAQrH,EAAE7D,IAAM,IAAK,MAAO,EACnC8F,KAAIA,IAAIlJ,QAAUiH,CAAGoH,KAAMtL,CAAG,MAC/B,KAAK,IACJlD,EAAIkD,CACJ,OAAMmH,IAAIpK,OAAS,KAAOA,EAAIoK,IAAIlK,OAAQH,GAAKqK,IAAIpK,EACnD,IAAGD,EAAEa,QAAQ,KAAO,IAAK,KAAM,4BAA8Bb,EAAI,GACjE,IAAGA,EAAEsL,MAAM+C,SAAU,CACpB,GAAGI,IAAI,KAAM,CAAEA,GAAGzF,gBAAgB3F,EAAGiB,KAAO,IAAGmK,IAAI,KAAM,MAAO,GAChEpF,IAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAErD,EAAE2O,mBACxB,CAAE3O,EAAE,GACX,KAED,KAAK,IACJ,GAAGyO,IAAM,KAAM,CACdzO,EAAIkD,CAAG,QAAOA,EAAEmH,MAAMpK,MAAQ,IAAKD,GAAKkD,CACxCmG,KAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAErD,EAAI,OAGlC,IAAK,IAAK,IAAK,IACdA,EAAIkD,CAAG,OAAM,YAAYlB,QAAQkB,EAAEmH,MAAMpK,KAAO,GAAKiD,GAAG,MAAQmH,IAAIpK,EAAE,IAAM,KAAO,KAAK+B,QAAQqI,IAAIpK,EAAE,KAAK,EAAGD,GAAKkD,CACnHmG,KAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAErD,EAAI,MACjC,KAAK,IACJA,EAAIkD,CAAG,OAAMmH,MAAMpK,KAAOiD,EAAGlD,GAAGkD,CAChCkE,IAAG7D,EAAEL,EAAGG,EAAErD,EAAIqJ,KAAIA,IAAIlJ,QAAUiH,CAAGoH,KAAMtL,CAAG,MAC7C,KAAK,MAAOjD,CAAG,IAAGoK,IAAIpK,IAAM,KAAOoK,IAAIpK,IAAM,MAAOA,CAAG,MACvD,KAAK,IAAK,IAAK,IAAKoJ,IAAIA,IAAIlJ,SAAWoD,EAAGgL,OAAO,EAAE,IAAIrL,EAAIG,EAAEH,KAAMjD,CAAG,MACtE,KAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACpFD,EAAIkD,CAAG,OAAM,aAAalB,QAAQqI,MAAMpK,KAAO,EAAGD,GAAGqK,IAAIpK,EACzDoJ,KAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAErD,EAAI,MACjC,KAAK,IAAKqJ,IAAIA,IAAIlJ,SAAWoD,EAAEL,EAAGG,EAAEH,KAAMjD,CAAG,MAC7C,SACC,GAAG,uCAAuC+B,QAAQkB,MAAQ,EAAG,KAAM,IAAI0F,OAAM,0BAA4B1F,EAAI,OAASmH,IACtHhB,KAAIA,IAAIlJ,SAAWoD,EAAE,IAAKF,EAAEH,KAAMjD,CAAG,QAGxC,GAAI2O,IAAK,EAAGrE,IAAM,EAAGsE,GACrB,KAAI5O,EAAEoJ,IAAIlJ,OAAO,EAAGqO,IAAI,IAAKvO,GAAK,IAAKA,EAAG,CACzC,OAAOoJ,IAAIpJ,GAAGsD,GACb,IAAK,IAAK,IAAK,IAAK8F,IAAIpJ,GAAGsD,EAAImL,EAAIF,KAAI,GAAK,IAAGI,GAAK,EAAGA,GAAK,CAAG,MAC/D,KAAK,IACJ,GAAIC,IAAIxF,IAAIpJ,GAAGoD,EAAEiI,MAAM,SAAWf,IAAI5G,KAAKgK,IAAIpD,IAAIsE,IAAI,GAAG1O,OAAO,EACjE,IAAGyO,GAAK,EAAGA,GAAK,CAEjB,KAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAKJ,IAAInF,IAAIpJ,GAAGsD,CAAG,MACtD,KAAK,IAAK,GAAGiL,MAAQ,IAAK,CAAEnF,IAAIpJ,GAAGsD,EAAI,GAAK,IAAGqL,GAAK,EAAGA,GAAK,EAAK,KACjE,KAAK,IAAK,GAAGvF,IAAIpJ,GAAGoD,IAAM,MACzB,KACD,KAAK,IACJ,GAAGuL,GAAK,GAAKvF,IAAIpJ,GAAGoD,EAAEiI,MAAM,QAASsD,GAAK,CAC1C,IAAGA,GAAK,GAAKvF,IAAIpJ,GAAGoD,EAAEiI,MAAM,QAASsD,GAAK,CAC1C,IAAGA,GAAK,GAAKvF,IAAIpJ,GAAGoD,EAAEiI,MAAM,QAASsD,GAAK,GAG7C,OAAOA,IACN,IAAK,GAAG,KACR,KAAK,GACJ,GAAGH,GAAGlF,GAAK,GAAK,CAAEkF,GAAGlF,EAAI,IAAKkF,GAAG9E,EACjC,GAAG8E,GAAG9E,GAAM,GAAI,CAAE8E,GAAG9E,EAAI,IAAK8E,GAAG/E,EACjC,GAAG+E,GAAG/E,GAAM,GAAI,CAAE+E,GAAG/E,EAAI,IAAK+E,GAAGhF,EACjC,KACD,KAAK,GACJ,GAAGgF,GAAGlF,GAAK,GAAK,CAAEkF,GAAGlF,EAAI,IAAKkF,GAAG9E,EACjC,GAAG8E,GAAG9E,GAAM,GAAI,CAAE8E,GAAG9E,EAAI,IAAK8E,GAAG/E,EACjC,MAGF,GAAIoF,MAAO,GAAIC,EACf,KAAI9O,EAAE,EAAGA,EAAIoJ,IAAIlJ,SAAUF,EAAG,CAC7B,OAAOoJ,IAAIpJ,GAAGsD,GACb,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KACxC,KAAK,IAAK8F,IAAIpJ,GAAKoE,SAAW,MAC9B,KAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC9FgF,IAAIpJ,GAAGoD,EAAI8G,WAAWd,IAAIpJ,GAAGsD,EAAEnD,WAAW,GAAIiJ,IAAIpJ,GAAGoD,EAAGoL,GAAIlE,IAC5DlB,KAAIpJ,GAAGsD,EAAI,GAAK,MACjB,KAAK,IAAK,IAAK,IAAK,IAAK,IACxBwL,GAAK9O,EAAE,CACP,OAAMoJ,IAAI0F,KAAO,QACf7L,EAAEmG,IAAI0F,IAAIxL,KAAO,KAAOL,IAAM,MAC9BA,IAAM,KAAOA,IAAM,MAAQmG,IAAI0F,GAAG,IAAM,OAAS1F,IAAI0F,GAAG,GAAGxL,IAAM,KAAO8F,IAAI0F,GAAG,GAAGxL,IAAM,KAAO8F,IAAI0F,GAAG,GAAG1L,IAAM,MAChHgG,IAAIpJ,GAAGsD,IAAM,MAAQL,IAAM,KAAOA,IAAM,KAAOA,IAAM,MACrDA,IAAM,MAAQmG,IAAI0F,IAAI1L,IAAM,KAAO,KAAKrB,QAAQqH,IAAI0F,IAAI1L,IAAM,GAAKgG,IAAI0F,IAAI1L,IAAM,KAAOgG,IAAI0F,GAAG,IAAM,MAAQ1F,IAAI0F,GAAG,GAAGxL,GAAK,MAC1H,CACF8F,IAAIpJ,GAAGoD,GAAKgG,IAAI0F,IAAI1L,CACpBgG,KAAI0F,IAAM1K,YAAa0K,GAExBD,MAAQzF,IAAIpJ,GAAGoD,CACfpD,GAAI8O,GAAG,CAAG,MACX,KAAK,IAAK1F,IAAIpJ,GAAGsD,EAAI,GAAK8F,KAAIpJ,GAAGoD,EAAIsF,YAAYtF,EAAEiB,KAAO,QAG5D,GAAI0K,IAAK,GAAIC,IAAKC,IAClB,IAAGJ,KAAK3O,OAAS,EAAG,CACnB8O,IAAO5L,EAAE,GAAGyL,KAAK1O,WAAW,KAAO,IAAMiD,EAAIA,CAC7C6L,MAAOrE,UAAUiE,KAAK1O,WAAW,KAAO,GAAK,IAAM,IAAK0O,KAAMG,IAC9DF,IAAGG,KAAK/O,OAAO,CACf,IAAIgP,OAAQ9F,IAAIlJ,MAChB,KAAIF,EAAE,EAAGA,EAAIoJ,IAAIlJ,SAAUF,EAAG,GAAGoJ,IAAIpJ,IAAM,MAAQoJ,IAAIpJ,GAAGoD,EAAErB,QAAQ,MAAQ,EAAG,CAAEmN,MAAQlP,CAAG,OAC5F,GAAImP,OAAM/F,IAAIlJ,MACd,IAAGgP,QAAU9F,IAAIlJ,QAAU+O,KAAKlN,QAAQ,QAAU,EAAG,CACpD,IAAI/B,EAAEoJ,IAAIlJ,OAAO,EAAGF,GAAI,IAAIA,EAAG,CAC9B,GAAGoJ,IAAIpJ,IAAM,MAAQ,MAAM+B,QAAQqH,IAAIpJ,GAAGsD,MAAQ,EAAG,QACrD,IAAGwL,IAAI1F,IAAIpJ,GAAGoD,EAAElD,OAAO,EAAG,CAAE4O,IAAM1F,IAAIpJ,GAAGoD,EAAElD,MAAQkJ,KAAIpJ,GAAGoD,EAAI6L,KAAKrO,OAAOkO,GAAG,EAAG1F,IAAIpJ,GAAGoD,EAAElD,YACpF,IAAG4O,GAAK,EAAG1F,IAAIpJ,GAAGoD,EAAI,OACtB,CAAEgG,IAAIpJ,GAAGoD,EAAI6L,KAAKrO,OAAO,EAAGkO,GAAG,EAAIA,KAAM,EAC9C1F,IAAIpJ,GAAGsD,EAAI,GACX6L,OAAQnP,EAET,GAAG8O,IAAI,GAAKK,MAAM/F,IAAIlJ,OAAQkJ,IAAI+F,OAAO/L,EAAI6L,KAAKrO,OAAO,EAAEkO,GAAG,GAAK1F,IAAI+F,OAAO/L,MAE1E,IAAG8L,QAAU9F,IAAIlJ,QAAU+O,KAAKlN,QAAQ,QAAU,EAAG,CACzD+M,GAAKG,KAAKlN,QAAQ,KAAK,CACvB,KAAI/B,EAAEkP,MAAOlP,GAAI,IAAKA,EAAG,CACxB,GAAGoJ,IAAIpJ,IAAM,MAAQ,MAAM+B,QAAQqH,IAAIpJ,GAAGsD,MAAQ,EAAG,QACrDqH,GAAEvB,IAAIpJ,GAAGoD,EAAErB,QAAQ,MAAM,GAAG/B,IAAIkP,MAAM9F,IAAIpJ,GAAGoD,EAAErB,QAAQ,KAAK,EAAEqH,IAAIpJ,GAAGoD,EAAElD,OAAO,CAC9E6O,IAAK3F,IAAIpJ,GAAGoD,EAAExC,OAAO+J,EAAE,EACvB,MAAMA,GAAG,IAAKA,EAAG,CAChB,GAAGmE,IAAI,IAAM1F,IAAIpJ,GAAGoD,EAAEuH,KAAO,KAAOvB,IAAIpJ,GAAGoD,EAAEuH,KAAO,KAAMoE,GAAKE,KAAKH,MAAQC,GAE7E3F,IAAIpJ,GAAGoD,EAAI2L,EACX3F,KAAIpJ,GAAGsD,EAAI,GACX6L,OAAQnP,EAET,GAAG8O,IAAI,GAAKK,MAAM/F,IAAIlJ,OAAQkJ,IAAI+F,OAAO/L,EAAI6L,KAAKrO,OAAO,EAAEkO,GAAG,GAAK1F,IAAI+F,OAAO/L,CAC9E0L,IAAKG,KAAKlN,QAAQ,KAAK,CACvB,KAAI/B,EAAEkP,MAAOlP,EAAEoJ,IAAIlJ,SAAUF,EAAG,CAC/B,GAAGoJ,IAAIpJ,IAAM,MAAQ,MAAM+B,QAAQqH,IAAIpJ,GAAGsD,MAAQ,GAAKtD,IAAMkP,MAAQ,QACrEvE,GAAEvB,IAAIpJ,GAAGoD,EAAErB,QAAQ,MAAM,GAAG/B,IAAIkP,MAAM9F,IAAIpJ,GAAGoD,EAAErB,QAAQ,KAAK,EAAE,CAC9DgN,IAAK3F,IAAIpJ,GAAGoD,EAAExC,OAAO,EAAE+J,EACvB,MAAMA,EAAEvB,IAAIpJ,GAAGoD,EAAElD,SAAUyK,EAAG,CAC7B,GAAGmE,GAAGG,KAAK/O,OAAQ6O,IAAME,KAAKH,MAE/B1F,IAAIpJ,GAAGoD,EAAI2L,EACX3F,KAAIpJ,GAAGsD,EAAI,GACX6L,OAAQnP,IAIX,IAAIA,EAAE,EAAGA,EAAEoJ,IAAIlJ,SAAUF,EAAG,GAAGoJ,IAAIpJ,IAAM,MAAQ,MAAM+B,QAAQqH,IAAIpJ,GAAGsD,IAAI,EAAG,CAC5E0L,IAAOV,KAAM,GAAKlL,EAAI,GAAKpD,EAAE,GAAKoJ,IAAIpJ,EAAE,GAAGoD,IAAM,KAAOA,EAAEA,CAC1DgG,KAAIpJ,GAAGoD,EAAIwH,UAAUxB,IAAIpJ,GAAGsD,EAAG8F,IAAIpJ,GAAGoD,EAAG4L,IACzC5F,KAAIpJ,GAAGsD,EAAI,IAEZ,GAAI8L,QAAS,EACb,KAAIpP,EAAE,EAAGA,IAAMoJ,IAAIlJ,SAAUF,EAAG,GAAGoJ,IAAIpJ,IAAM,KAAMoP,QAAUhG,IAAIpJ,GAAGoD,CACpE,OAAOgM,QAERvM,IAAIwM,MAAQhB,QACZ,IAAIiB,SAAU,SACd,IAAIC,UAAW,2BACf,SAASC,SAAQpM,EAAGgJ,IACnB,GAAGA,IAAM,KAAM,MAAO,MACtB,IAAIqD,QAASC,WAAWtD,GAAG,GAC3B,QAAOA,GAAG,IACT,IAAK,IAAM,GAAGhJ,GAAKqM,OAAQ,MAAO,KAAM,MACxC,KAAK,IAAM,GAAGrM,EAAKqM,OAAQ,MAAO,KAAM,MACxC,KAAK,IAAM,GAAGrM,EAAKqM,OAAQ,MAAO,KAAM,MACxC,KAAK,KAAM,GAAGrM,GAAKqM,OAAQ,MAAO,KAAM,MACxC,KAAK,KAAM,GAAGrM,GAAKqM,OAAQ,MAAO,KAAM,MACxC,KAAK,KAAM,GAAGrM,GAAKqM,OAAQ,MAAO,KAAM,OAEzC,MAAO,OAER,QAASE,YAAWC,EAAGxM,GACtB,GAAIgH,KAAM6D,UAAU2B,EACpB,IAAI1M,GAAIkH,IAAIlK,OAAQ2P,IAAMzF,IAAIlH,EAAE,GAAGnB,QAAQ,IAC3C,IAAGmB,EAAE,GAAK2M,KAAK,IAAK3M,CACpB,IAAGkH,IAAIlK,OAAS,EAAG,KAAM,iCAAmCkK,IAAM,GAClE,UAAUhH,KAAM,SAAU,OAAQ,EAAGgH,IAAIlK,SAAW,GAAK2P,KAAK,EAAEzF,IAAIA,IAAIlK,OAAO,GAAG,IAClF,QAAOkK,IAAIlK,QACV,IAAK,GAAGkK,IAAMyF,KAAK,GAAK,UAAW,UAAW,UAAWzF,IAAI,KAAOA,IAAI,GAAIA,IAAI,GAAIA,IAAI,GAAI,IAAM,MAClG,KAAK,GAAGA,IAAMyF,KAAK,GAAKzF,IAAI,GAAIA,IAAI,GAAIA,IAAI,GAAIA,IAAI,KAAOA,IAAI,GAAIA,IAAI,GAAIA,IAAI,GAAI,IAAM,MACzF,KAAK,GAAGA,IAAMyF,KAAK,GAAKzF,IAAI,GAAIA,IAAI,GAAIA,IAAI,GAAIA,IAAI,KAAOA,IAAI,GAAIA,IAAI,GAAIA,IAAI,GAAI,IAAM,MACzF,KAAK,GAAG,MAET,GAAImD,IAAKnK,EAAI,EAAIgH,IAAI,GAAKhH,EAAI,EAAIgH,IAAI,GAAKA,IAAI,EAC/C,IAAGA,IAAI,GAAGrI,QAAQ,QAAU,GAAKqI,IAAI,GAAGrI,QAAQ,QAAU,EAAG,OAAQmB,EAAGqK,GACxE,IAAGnD,IAAI,GAAGiB,MAAMiE,UAAY,MAAQlF,IAAI,GAAGiB,MAAMiE,UAAY,KAAM,CAClE,GAAIQ,IAAK1F,IAAI,GAAGiB,MAAMkE,SACtB,IAAIQ,IAAK3F,IAAI,GAAGiB,MAAMkE,SACtB,OAAOC,SAAQpM,EAAG0M,KAAO5M,EAAGkH,IAAI,IAAMoF,QAAQpM,EAAG2M,KAAO7M,EAAGkH,IAAI,KAAOlH,EAAGkH,IAAI0F,IAAM,MAAQC,IAAM,KAAO,EAAI,IAE7G,OAAQ7M,EAAGqK,IAEZ,QAASyC,QAAO5F,IAAIhH,EAAErD,GACrBmE,QAAQnE,GAAK,KAAOA,EAAKA,KACzB,IAAIiL,MAAO,EACX,cAAcZ,MACb,IAAK,SAAUY,KAAOZ,GAAK,MAC3B,KAAK,SAAUY,MAAQjL,EAAEkQ,OAAS,KAAOlQ,EAAEkQ,MAAQ3L,WAAW8F,IAAM,OAErE,GAAGpG,UAAUgH,KAAK,GAAI,MAAOtC,aAAYtF,EAAGrD,EAC5C,IAAI6P,GAAID,WAAW3E,KAAM5H,EACzB,IAAGY,UAAU4L,EAAE,IAAK,MAAOlH,aAAYtF,EAAGrD,EAC1C,IAAGqD,IAAM,KAAMA,EAAI,WAAa,IAAGA,IAAM,MAAOA,EAAI,YAC/C,IAAGA,IAAM,IAAMA,GAAK,KAAM,MAAO,EACtC,OAAOiL,UAASuB,EAAE,GAAIxM,EAAGrD,EAAG6P,EAAE,IAE/B/M,IAAIqN,OAAS5L,SACbzB,KAAIsN,KAAO,QAASC,YAAWhG,IAAKe,KAAO7G,UAAU6G,KAAOf,IAC5DvH,KAAImN,OAASA,MACbnN,KAAIwN,UAAY,QAASA,aAAc,MAAO/L,WAC9CzB,KAAIyN,WAAa,QAASA,YAAWC,KAAO,IAAI,GAAIvQ,GAAE,EAAGA,GAAG,MAAUA,EAAG,GAAGuQ,IAAIvQ,KAAOoE,UAAWvB,IAAIsN,KAAKI,IAAIvQ,GAAIA,IAEnH8C,UAASD,IAET,IAAI2N,gBACHC,iBAAkB,UAClBC,eAAgB7N,IAAIqN,OAAO,IAC3BS,YAAa,sBACbC,cAAe/N,IAAIqN,OAAO,IAC1BW,aAAchO,IAAIqN,OAAO,IACzBY,YAAajO,IAAIqN,OAAO,IACxBa,cAAelO,IAAIqN,OAAO,IAC1Bc,aAAcnO,IAAIqN,OAAO,IACzBe,SAAY,uCACZC,MAASrO,IAAIqN,OAAO,GACpBiB,SAAYtO,IAAIqN,OAAO,GACvBkB,QAAWvO,IAAIqN,OAAO,IACtBmB,WAAcxO,IAAIqN,OAAO,IACzBoB,SAAU,qBACVC,aAAc,0BACdC,SAAU,qBAGX,IAAIC,mBAAoB,IAMxB,IAAIC,KAAM,QAAUC,QACpB,GAAIC,WACJA,SAAQxS,QAAU,QAClB,SAASyS,OAAMC,MACf,GAAIC,MAAO,CACX,IAAIC,KAAM,GACV,IAAIC,MAAO,CACX,IAAIC,MAAO,CACX,IAAIC,WAAY,CAChB,IAAIC,eAAgB,CACpB,IAAIC,aAAc,CAElB,IAAIC,aAGJ,IAAIC,MAAOT,KAAKU,MAAM,EAAE,IACxBC,WAAUF,KAAM,EAGhB,IAAIG,IAAKC,eAAeJ,KACxBR,MAAOW,GAAG,EACV,QAAOX,MACN,IAAK,GAAGC,IAAM,GAAK,MAAO,KAAK,GAAGA,IAAM,IAAM,MAC9C,SAAS,KAAM,sCAAwCD,KAIxD,GAAGC,MAAQ,IAAK,CAAEO,KAAOT,KAAKU,MAAM,EAAER,IAAMS,WAAUF,KAAM,IAE5D,GAAIK,QAASd,KAAKU,MAAM,EAAER,IAE1Ba,cAAaN,KAAMR,KAGnB,IAAIe,KAAMP,KAAKQ,WAAW,EAAG,IAC7B,IAAGhB,OAAS,GAAKe,MAAQ,EAAG,KAAM,uCAAyCA,GAI3EP,MAAKrP,GAAK,CAGViP,WAAYI,KAAKQ,WAAW,EAAG,IAG/BR,MAAKrP,GAAK,CAGVqP,MAAKS,IAAI,WAAY,4BAGrBZ,eAAgBG,KAAKQ,WAAW,EAAG,IAGnCd,MAAOM,KAAKQ,WAAW,EAAG,IAG1BV,aAAcE,KAAKQ,WAAW,EAAG,IAGjCb,MAAOK,KAAKQ,WAAW,EAAG,IAG1B,KAAI,GAAI5L,GAAGwD,EAAI,EAAGA,EAAI,MAAOA,EAAG,CAC/BxD,EAAIoL,KAAKQ,WAAW,EAAG,IACvB,IAAG5L,EAAE,EAAG,KACRmL,WAAU3H,GAAKxD,EAIhB,GAAI8L,SAAUC,UAAUpB,KAAME,IAE9BmB,YAAWd,YAAaH,KAAMe,QAASjB,IAAKM,UAG5C,IAAIc,aAAcC,iBAAiBJ,QAASd,UAAWG,UAAWN,IAElEoB,aAAYjB,WAAWmB,KAAO,YAC9B,IAAGrB,KAAO,GAAKG,gBAAkBmB,WAAYH,YAAYhB,eAAekB,KAAO,UAC/EF,aAAYd,UAAU,IAAIgB,KAAO,MACjCF,aAAYd,UAAYA,SACxBc,aAAYpB,IAAMA,GAGlB,IAAIwB,UAAYC,SAAYC,aAAgBC,aAAgBC,cAC5DC,gBAAe1B,UAAWiB,YAAaH,QAASQ,MAAOxB,KAAMuB,MAAOE,UAEpEI,kBAAiBJ,UAAWE,YAAaD,UAAWF,MAEpD,IAAIM,WAAYN,MAAMO,OACtBP,OAAMQ,KAAOF,SAGb,IAAIG,WAAYC,eAAeR,UAAWF,MAAOC,UAAWF,MAAOO,UAEnE,QACCK,KAAMxB,OAAQA,OAAQK,QAASA,SAC/BS,UAAWA,UACXC,UAAWA,UACXC,YAAaA,YACbS,KAAMH,WAKP,QAASvB,gBAAeJ,MAEvBA,KAAKS,IAAIsB,iBAAkB,qBAG3B/B,MAAKS,IAAIuB,aAAc,UAGvB,IAAIxC,MAAOQ,KAAKQ,WAAW,EAAG,IAE9B,QAAQR,KAAKQ,WAAW,EAAE,KAAMhB,MAEjC,QAASc,cAAaN,KAAMR,MAC3B,GAAIiC,OAAQ,CAGZzB,MAAKS,IAAI,OAAQ,eAGjB,QAAQgB,MAAQzB,KAAKQ,WAAW,IAC/B,IAAK,GAAM,GAAGhB,OAAS,EAAG,KAAM,mCAAqC,MACrE,KAAK,IAAM,GAAGA,OAAS,EAAG,KAAM,mCAAqC,MACrE,SAAS,KAAM,sCAAwCiC,MAIxDzB,KAAKS,IAAI,OAAQ,sBAGjBT,MAAKS,IAAI,eAAgB,cAI1B,QAASE,WAAUpB,KAAME,KACxB,GAAIwC,UAAW9Q,KAAK+Q,KAAK3C,KAAK5R,OAAO8R,KAAK,CAC1C,IAAIiB,SAAU,GAAI9Q,OAAMqS,SACxB,KAAI,GAAIxU,GAAE,EAAGA,EAAIwU,WAAYxU,EAAGiT,QAAQjT,EAAE,GAAK8R,KAAKU,MAAMxS,EAAEgS,KAAKhS,EAAE,GAAGgS,IACtEiB,SAAQuB,SAAS,GAAK1C,KAAKU,MAAMgC,SAASxC,IAC1C,OAAOiB,SAIR,QAASa,kBAAiBY,GAAIC,IAAKC,GAAInB,OACtC,GAAIzT,GAAI,EAAG6U,EAAI,EAAGC,EAAI,EAAGC,EAAI,EAAGpK,EAAI,EAAGqK,GAAKvB,MAAMvT,MAClD,IAAI+U,KAAM,GAAI9S,OAAM6S,IAAK7N,EAAI,GAAIhF,OAAM6S,GAEvC,MAAMhV,EAAIgV,KAAMhV,EAAG,CAAEiV,IAAIjV,GAAGmH,EAAEnH,GAAGA,CAAG4U,IAAG5U,GAAGyT,MAAMzT,GAEhD,KAAM2K,EAAIxD,EAAEjH,SAAUyK,EAAG,CACxB3K,EAAImH,EAAEwD,EACNkK,GAAIH,GAAG1U,GAAG6U,CAAGC,GAAIJ,GAAG1U,GAAG8U,CAAGC,GAAIL,GAAG1U,GAAG+U,CACpC,IAAGE,IAAIjV,KAAOA,EAAG,CAChB,GAAG6U,KAAO,GAAkBI,IAAIJ,KAAOA,EAAGI,IAAIjV,GAAKiV,IAAIJ,EACvD,IAAGC,KAAO,GAAKG,IAAIH,KAAOA,EAAGG,IAAIjV,GAAKiV,IAAIH,GAE3C,GAAGC,KAAO,EAAgBE,IAAIF,GAAK/U,CACnC,IAAG6U,KAAO,EAAG,CAAEI,IAAIJ,GAAKI,IAAIjV,EAAImH,GAAE+N,KAAKL,GACvC,GAAGC,KAAO,EAAG,CAAEG,IAAIH,GAAKG,IAAIjV,EAAImH,GAAE+N,KAAKJ,IAExC,IAAI9U,EAAE,EAAGA,IAAMgV,KAAMhV,EAAG,GAAGiV,IAAIjV,KAAOA,EAAG,CACxC,GAAG8U,KAAO,GAAkBG,IAAIH,KAAOA,EAAGG,IAAIjV,GAAKiV,IAAIH,OAClD,IAAGD,KAAO,GAAKI,IAAIJ,KAAOA,EAAGI,IAAIjV,GAAKiV,IAAIJ,GAGhD,IAAI7U,EAAE,EAAGA,EAAIgV,KAAMhV,EAAG,CACrB,GAAG0U,GAAG1U,GAAGmK,OAAS,EAAiB,QACnCQ,GAAIsK,IAAIjV,EACR,IAAG2K,IAAM,EAAGiK,GAAG5U,GAAK4U,GAAG,GAAK,IAAMA,GAAG5U,OAChC,OAAM2K,IAAM,EAAG,CACnBiK,GAAG5U,GAAK4U,GAAGjK,GAAK,IAAMiK,GAAG5U,EACzB2K,GAAIsK,IAAItK,GAETsK,IAAIjV,GAAK,EAGV4U,GAAG,IAAM,GACT,KAAI5U,EAAE,EAAGA,EAAIgV,KAAMhV,EAAG,CACrB,GAAG0U,GAAG1U,GAAGmK,OAAS,EAAgByK,GAAG5U,IAAM,GAC3C2U,KAAIC,GAAG5U,IAAM0U,GAAG1U,IAKlB,QAASmU,gBAAeR,UAAWF,MAAOC,UAAWF,MAAOO,WAC3D,GAAIoB,aAAc,GAAIhT,OAAMwR,UAAUzT,OACtC,IAAIkV,SAAU,GAAIjT,OAAMsR,MAAMvT,QAASF,CACvC,KAAIA,EAAI,EAAGA,EAAI2T,UAAUzT,SAAUF,EAAGmV,YAAYnV,GAAK2T,UAAU3T,GAAGqV,cAAcvT,QAAQa,KAAK,IAAIb,QAAQc,KAAK,IAChH,KAAI5C,EAAI,EAAGA,EAAIyT,MAAMvT,SAAUF,EAAGoV,QAAQpV,GAAKyT,MAAMzT,GAAGqV,cAAcvT,QAAQa,KAAK,IAAIb,QAAQc,KAAK,IACpG,OAAO,SAASsR,WAAUoB,MACzB,GAAIC,EACJ,IAAGD,KAAKnV,WAAW,KAAO,GAAc,CAAEoV,EAAE,IAAMD,MAAOvB,UAAYuB,SAChEC,GAAID,KAAKvT,QAAQ,QAAU,CAChC,IAAIyT,QAASF,KAAKD,cAAcvT,QAAQa,KAAK,IAAIb,QAAQc,KAAK,IAC9D,IAAIkF,GAAIyN,IAAM,KAAOJ,YAAYpT,QAAQyT,QAAUJ,QAAQrT,QAAQyT,OACnE,IAAG1N,KAAO,EAAG,MAAO,KACpB,OAAOyN,KAAM,KAAO7B,UAAU5L,GAAK0L,MAAMC,MAAM3L,KAMjD,QAASqL,YAAWhI,IAAKsK,IAAKxC,QAASjB,IAAKM,WAC3C,GAAInL,EACJ,IAAGgE,MAAQoI,WAAY,CACtB,GAAGkC,MAAQ,EAAG,KAAM,wCACd,IAAGtK,OAAS,EAAgB,CAClC,GAAIuK,QAASzC,QAAQ9H,KAAM5B,GAAKyI,MAAM,GAAG,CACzC,KAAI,GAAIhS,GAAI,EAAGA,EAAIuJ,IAAKvJ,EAAG,CAC1B,IAAImH,EAAIwO,cAAcD,OAAO1V,EAAE,MAAQuT,WAAY,KACnDjB,WAAU4C,KAAK/N,GAEhBgM,WAAWwC,cAAcD,OAAO1D,IAAI,GAAGyD,IAAM,EAAGxC,QAASjB,IAAKM,YAKhE,QAASsD,iBAAgB3C,QAAS4C,MAAOvD,UAAWN,IAAK8D,MACxD,GAAIC,IAAK9C,QAAQ/S,MACjB,IAAI8V,KAAKC,SACT,KAAIH,KAAMA,KAAO,GAAI3T,OAAM4T,GAC3B,IAAIG,SAAUlE,IAAM,EAAGrH,EAAGmE,EAC1BkH,OACAC,aACA,KAAItL,EAAEkL,MAAOlL,GAAG,GAAI,CACnBmL,KAAKnL,GAAK,IACVqL,KAAIA,IAAI9V,QAAUyK,CAClBsL,WAAUf,KAAKjC,QAAQtI,GACvB,IAAIwL,MAAO7D,UAAU5O,KAAKwD,MAAMyD,EAAE,EAAEqH,KACpClD;GAAOnE,EAAE,EAAKuL,OACd,IAAGlE,IAAM,EAAIlD,GAAI,KAAM,yBAA2BnE,EAAI,MAAMqH,GAC5DrH,GAAIgL,cAAc1C,QAAQkD,MAAOrH,IAElC,OAAQsH,MAAOJ,IAAKlW,KAAKuW,YAAYJ,aAItC,QAAS5C,kBAAiBJ,QAASd,UAAWG,UAAWN,KACxD,GAAI+D,IAAK9C,QAAQ/S,OAAQkT,YAAc,GAAIjR,OAAM4T,GACjD,IAAID,MAAO,GAAI3T,OAAM4T,IAAKC,IAAKC,SAC/B,IAAIC,SAAUlE,IAAM,EAAGhS,EAAG2K,EAAG4K,EAAGzG,EAChC,KAAI9O,EAAE,EAAGA,EAAI+V,KAAM/V,EAAG,CACrBgW,MACAT,GAAKvV,EAAImS,SAAY,IAAGoD,GAAKQ,GAAIR,GAAGQ,EACpC,IAAGD,KAAKP,KAAO,KAAM,QACrBU,aACA,KAAItL,EAAE4K,EAAG5K,GAAG,GAAI,CACfmL,KAAKnL,GAAK,IACVqL,KAAIA,IAAI9V,QAAUyK,CAClBsL,WAAUf,KAAKjC,QAAQtI,GACvB,IAAIwL,MAAO7D,UAAU5O,KAAKwD,MAAMyD,EAAE,EAAEqH,KACpClD,IAAOnE,EAAE,EAAKuL,OACd,IAAGlE,IAAM,EAAIlD,GAAI,KAAM,yBAA2BnE,EAAI,MAAMqH,GAC5DrH,GAAIgL,cAAc1C,QAAQkD,MAAOrH,IAElCsE,YAAYmC,IAAMa,MAAOJ,IAAKlW,KAAKuW,YAAYJ,aAEhD,MAAO7C,aAIR,QAASS,gBAAe1B,UAAWiB,YAAaH,QAASQ,MAAOxB,KAAMuB,MAAOE,WAC5E,GAAInB,KACJ,IAAI+D,eAAgB,EAAGtB,GAAMvB,MAAMvT,OAAO,EAAE,CAC5C,IAAIwV,QAAStC,YAAYjB,WAAWrS,IACpC,IAAIE,GAAI,EAAGuW,QAAU,EAAGjD,KAAMvT,EAAGyW,MAAOC,KACxC,MAAMzW,EAAI0V,OAAOxV,OAAQF,GAAI,IAAK,CACjCuS,KAAOmD,OAAOlD,MAAMxS,EAAGA,EAAE,IACzByS,WAAUF,KAAM,GAChBgE,SAAUhE,KAAKQ,WAAW,EAC1B,IAAGwD,UAAY,EAAG,QAClBjD,MAAOoD,UAAUnE,KAAK,EAAEgE,QAAQvB,GAChCvB,OAAMyB,KAAK5B,KACXvT,IACCuT,KAAOA,KACPnJ,KAAOoI,KAAKQ,WAAW,GACvB4D,MAAOpE,KAAKQ,WAAW,GACvB8B,EAAOtC,KAAKQ,WAAW,EAAG,KAC1B+B,EAAOvC,KAAKQ,WAAW,EAAG,KAC1BgC,EAAOxC,KAAKQ,WAAW,EAAG,KAC1B6D,MAAOrE,KAAKQ,WAAW,IACvB8D,MAAOtE,KAAKQ,WAAW,EAAG,KAE3ByD,OAAQjE,KAAKQ,WAAW,GAAKR,KAAKQ,WAAW,GAAKR,KAAKQ,WAAW,GAAKR,KAAKQ,WAAW,EACvF,IAAGyD,QAAU,EAAG,CACfzW,EAAEyW,MAAQA,KAAOzW,GAAE+W,GAAKC,UAAUxE,KAAMA,KAAKrP,EAAE,GAEhDuT,MAAQlE,KAAKQ,WAAW,GAAKR,KAAKQ,WAAW,GAAKR,KAAKQ,WAAW,GAAKR,KAAKQ,WAAW,EACvF,IAAG0D,QAAU,EAAG,CACf1W,EAAE0W,MAAQA,KAAO1W,GAAEiX,GAAKD,UAAUxE,KAAMA,KAAKrP,EAAE,GAEhDnD,EAAE8V,MAAQtD,KAAKQ,WAAW,EAAG,IAC7BhT,GAAEkX,KAAO1E,KAAKQ,WAAW,EAAG,IAC5B,IAAGhT,EAAEoK,OAAS,EAAG,CAChBmM,cAAgBvW,EAAE8V,KAClB,IAAG5D,KAAO,GAAKqE,gBAAkB/C,WAAYH,YAAYkD,eAAehD,KAAO,kBAEzE,IAAGvT,EAAEkX,MAAQ,KAAkB,CACrClX,EAAEmX,QAAU,KACZ,IAAG9D,YAAYrT,EAAE8V,SAAWzR,UAAWgP,YAAYrT,EAAE8V,OAASD,gBAAgB3C,QAASlT,EAAE8V,MAAOzC,YAAYd,UAAWc,YAAYpB,IACnIoB,aAAYrT,EAAE8V,OAAOvC,KAAOvT,EAAEuT,IAC9BvT,GAAEoX,QAAU/D,YAAYrT,EAAE8V,OAAO/V,KAAK0S,MAAM,EAAEzS,EAAEkX,KAChDxE,WAAU1S,EAAEoX,QAAS,OACf,CACNpX,EAAEmX,QAAU,SACZ,IAAGZ,gBAAkB/C,YAAcxT,EAAE8V,QAAUtC,WAAY,CAC1DxT,EAAEoX,QAAU/D,YAAYkD,eAAexW,KAAK0S,MAAMzS,EAAE8V,MAAMuB,KAAKrX,EAAE8V,MAAMuB,KAAKrX,EAAEkX,KAC9ExE,WAAU1S,EAAEoX,QAAS,IAGvB3D,MAAMF,MAAQvT,CACd2T,WAAUwB,KAAKnV,IAIjB,QAASgX,WAAUxE,KAAM8E,QACxB,MAAO,IAAIzN,OAAU0N,eAAe/E,KAAK8E,OAAO,GAAG,IAAK3T,KAAKI,IAAI,EAAE,IAAIwT,eAAe/E,KAAK8E,QAAQ,IAAQ,aAAa,KAGzH,GAAIE,GACJ,SAASC,cAAaC,SAAUC,SAC/B,GAAGH,KAAOnT,UAAWmT,GAAK/X,QAAQ,KAClC,OAAOqS,OAAM0F,GAAGC,aAAaC,UAAWC,SAGzC,QAASC,UAASpF,KAAMmF,SACvB,OAAOA,UAAYtT,WAAasT,QAAQvN,OAAS/F,UAAYsT,QAAQvN,KAAO,UAC3E,IAAK,OAAQ,MAAOqN,cAAajF,KAAMmF,QACvC,KAAK,SAAU,MAAO7F,OAAMzP,IAAItB,OAAOH,OAAO4R,OAAQmF,QACtD,KAAK,SAAU,MAAO7F,OAAMzP,IAAImQ,MAAOmF,SAExC,MAAO7F,OAAMU,MAId,GAAI6E,MAAO,EAGX,IAAI7D,aAAc,CAElB,IAAIe,kBAAmB,kBACvB,IAAIC,cAAe,kCACnB,IAAIqD,SAEHC,YAAa,EACbC,SAAU,EACVC,SAAU,EACVxE,WAAYA,WACZyE,UAAW,EAEX1D,iBAAkBA,iBAClB2D,qBAAsB,OACtBC,WAAY,EACZC,UAAW,EACX5D,aAAcA,aAEd6D,YAAa,UAAU,UAAU,SAAS,YAAY,WAAW,QAGlExG,SAAQyG,KAAOV,QACf/F,SAAQC,MAAQA,KAChBD,SAAQlR,OACP4X,UAAWA,UACXC,WAAYA,WACZ9F,UAAWA,UACXlQ,QAASA,QACTqV,OAAQA,OAGT,OAAOhG,WAGP,UAAUpS,WAAY,mBAAsBD,UAAW,mBAAsBkS,qBAAsB,YAAa,CAAElS,OAAOqS,QAAUF,IACnI,QAAS8G,OAAMjY,GAAK,MAAOA,KAAM6D,WAAa7D,IAAM,KAEpD,QAASkY,MAAK1Y,GAAK,MAAO2Y,QAAOD,KAAK1Y,GAEtC,QAAS4Y,WAAUC,IAAKC,KACvB,GAAI9Y,MAAQ+Y,EAAIL,KAAKG,IACrB,KAAI,GAAI5Y,GAAI,EAAGA,IAAM8Y,EAAE5Y,SAAUF,EAAGD,EAAE6Y,IAAIE,EAAE9Y,IAAI6Y,MAAQC,EAAE9Y,EAC1D,OAAOD,GAGR,QAASgZ,OAAMH,KACd,GAAI7Y,MAAQ+Y,EAAIL,KAAKG,IACrB,KAAI,GAAI5Y,GAAI,EAAGA,IAAM8Y,EAAE5Y,SAAUF,EAAGD,EAAE6Y,IAAIE,EAAE9Y,KAAO8Y,EAAE9Y,EACrD,OAAOD,GAGR,QAASiZ,WAAUJ,KAClB,GAAI7Y,MAAQ+Y,EAAIL,KAAKG,IACrB,KAAI,GAAI5Y,GAAI,EAAGA,IAAM8Y,EAAE5Y,SAAUF,EAAGD,EAAE6Y,IAAIE,EAAE9Y,KAAOmM,SAAS2M,EAAE9Y,GAAG,GACjE,OAAOD,GAGR,QAASkZ,WAAUL,KAClB,GAAI7Y,MAAQ+Y,EAAIL,KAAKG,IACrB,KAAI,GAAI5Y,GAAI,EAAGA,IAAM8Y,EAAE5Y,SAAUF,EAAG,CACnC,GAAGD,EAAE6Y,IAAIE,EAAE9Y,MAAQ,KAAMD,EAAE6Y,IAAIE,EAAE9Y,OACjCD,GAAE6Y,IAAIE,EAAE9Y,KAAKkV,KAAK4D,EAAE9Y,IAErB,MAAOD,GAIR,QAASmZ,SAAQ9V,EAAGuG,UACnB,GAAGA,SAAUvG,GAAG,IAChB,IAAI+V,OAAQvP,KAAKiI,MAAMzO,EACvB,QAAQ+V,MAAQ,aAAkB,GAAK,GAAK,GAAK,KAGlD,QAASC,QAAOC,KACf,GAAItZ,GAAI,EACR,KAAI,GAAIC,GAAI,EAAGA,GAAKqZ,IAAInZ,SAAUF,EAAGD,GAAKS,OAAOC,aAAa4Y,IAAIrZ,GAClE,OAAOD,GAGR,QAASuZ,SAAQxZ,MAChB,IAAIA,KAAM,MAAO,KACjB,IAAGA,KAAKwT,KAAK1S,QAAQ,KAAO,OAAQ,CACnC,GAAGd,KAAKA,KAAM,MAAOD,YAAWC,KAAKA,KACrC,IAAGA,KAAKyZ,cAAgBvX,QAAS,MAAOlC,MAAKyZ,cAC7C,IAAGzZ,KAAK0Z,OAAS1Z,KAAK0Z,MAAMC,WAAY,MAAOtX,OAAMuX,UAAUlH,MAAMmH,KAAK7Z,KAAK0Z,MAAMC,kBAC/E,CACN,GAAG3Z,KAAKA,KAAM,MAAOA,MAAKwT,KAAK1S,QAAQ,KAAO,OAASR,UAAUN,KAAKA,MAAQD,WAAWC,KAAKA,KAC9F,IAAGA,KAAKyZ,cAAgBvX,QAAS,MAAO5B,WAAUN,KAAKyZ,eAAeK,SAAS,UAC/E,IAAG9Z,KAAK+Z,SAAU,MAAOzZ,WAAUN,KAAK+Z,WACxC,IAAG/Z,KAAK0Z,OAAS1Z,KAAK0Z,MAAMC,WAAY,MAAOrZ,WAAUgZ,OAAOjX,MAAMuX,UAAUlH,MAAMmH,KAAK7Z,KAAK0Z,MAAMC,aAAa,KAEpH,MAAO,MAGR,QAASK,gBAAeC,IAAKjI,MAC5B,GAAIlC,GAAIkC,IAAM,IAAGiI,IAAIvG,MAAM5D,GAAI,MAAOmK,KAAIvG,MAAM5D,EAChDA,GAAIkC,KAAKpD,aAAe,IAAGqL,IAAIvG,MAAM5D,GAAI,MAAOmK,KAAIvG,MAAM5D,EAC1DA,GAAIA,EAAE9N,QAAQ,MAAM,KAAO,IAAGiY,IAAIvG,MAAM5D,GAAI,MAAOmK,KAAIvG,MAAM5D,EAC7D,OAAO,MAGR,QAASoK,YAAWD,IAAKjI,MACxB,GAAI/R,GAAI+Z,eAAeC,IAAKjI,KAC5B,IAAG/R,GAAK,KAAM,KAAM,IAAI4I,OAAM,oBAAsBmJ,KAAO,UAC3D,OAAO/R,GAGR,QAASka,YAAWF,IAAKjI,KAAMoI,MAC9B,IAAIA,KAAM,MAAOZ,SAAQU,WAAWD,IAAKjI,MACzC,KAAIA,KAAM,MAAO,KACjB,KAAM,MAAOmI,YAAWF,IAAKjI,MAAS,MAAMqI,GAAK,MAAO,OAGzD,GAAIC,KAAKC,KACT,UAAUC,SAAU,YAAaD,MAAQC,KACzC,UAAW1I,WAAY,YAAa,CACnC,SAAWrS,UAAW,aAAeA,OAAOqS,QAAS,CACpD,GAAG5P,eAAkBqY,SAAU,YAAaA,MAAQ7a,QAAQ,KAAK,MACjE,UAAU6a,SAAU,YAAaA,MAAQ7a,QAAQ,OAAO,OAAO8a,KAC/DF,KAAM5a,QAAQ,IAAI,MAGpB,GAAI+a,WAAU,iDACd,IAAIC,UAAS,UACb,IAAIC,SAAQ,QAASC,SAAW,YAChC,SAASC,aAAYC,IAAKC,WACzB,GAAIC,KACJ,IAAIC,IAAK,EAAG9X,EAAI,CAChB,MAAM8X,KAAOH,IAAI1a,SAAU6a,GAAI,IAAI9X,EAAI2X,IAAIza,WAAW4a,OAAS,IAAM9X,IAAM,IAAMA,IAAM,GAAI,KAC3F,KAAI4X,UAAWC,EAAE,GAAKF,IAAIha,OAAO,EAAGma,GACpC,IAAGA,KAAOH,IAAI1a,OAAQ,MAAO4a,EAC7B,IAAIvR,GAAIqR,IAAIvP,MAAMkP,WAAY5P,EAAE,EAAG7C,EAAE,GAAI1E,EAAE,GAAIpD,EAAE,EAAGmH,EAAE,GAAI2F,GAAG,EAC7D,IAAGvD,EAAG,IAAIvJ,EAAI,EAAGA,GAAKuJ,EAAErJ,SAAUF,EAAG,CACpC8M,GAAKvD,EAAEvJ,EACP,KAAIiD,EAAE,EAAGA,GAAK6J,GAAG5M,SAAU+C,EAAG,GAAG6J,GAAG3M,WAAW8C,KAAO,GAAI,KAC1DkE,GAAI2F,GAAGlM,OAAO,EAAEqC,EAAIG,GAAI0J,GAAGkO,UAAU/X,EAAE,EAAG6J,GAAG5M,OAAO,EACpD,KAAIyK,EAAE,EAAEA,GAAGxD,EAAEjH,SAASyK,EAAG,GAAGxD,EAAEhH,WAAWwK,KAAO,GAAI,KACpD,IAAGA,IAAIxD,EAAEjH,OAAQ4a,EAAE3T,GAAK/D,MACnB0X,IAAGnQ,IAAI,GAAKxD,EAAEvG,OAAO,EAAE,KAAK,QAAQ,QAAQ,IAAIuG,EAAEvG,OAAO+J,EAAE,IAAMvH,EAEvE,MAAO0X,GAER,QAASG,UAAS1a,GAAK,MAAOA,GAAEuB,QAAQ4Y,SAAU,OAElD,GAAIQ,YACHC,SAAU,IACVC,SAAU,IACVC,OAAQ,IACRC,OAAQ,IACRC,QAAS,IAEV,IAAIC,WAAYzC,MAAMmC,UACtB,IAAIO,SAAU,SAASnZ,MAAM,GAG7B,IAAIoZ,aAAc,WACjB,GAAIC,UAAW,YAAaC,UAAY,mBACxC,OAAO,SAASF,aAAYG,MAC3B,GAAIxZ,GAAIwZ,KAAO,EACf,OAAOxZ,GAAEP,QAAQ6Z,SAAU,SAASlQ,IAAM,MAAOyP,WAAUzP,MAAQ3J,QAAQ8Z,UAAU,SAASrS,EAAEtG,GAAI,MAAOzC,QAAOC,aAAa0L,SAASlJ,EAAE,UAI5I,IAAI6Y,UAAS,WAAYC,SAAW,+BACpC,SAASC,WAAUH,MAClB,GAAIxZ,GAAIwZ,KAAO,EACf,OAAOxZ,GAAEP,QAAQga,SAAU,SAAS3X,GAAK,MAAOqX,WAAUrX,KAAOrC,QAAQia,SAAS,SAAS1Z,GAAK,MAAO,MAAQ,MAAMA,EAAElC,WAAW,GAAGyZ,SAAS,KAAKhZ,QAAQ,GAAK,MAIjK,GAAIqb,aAAc,WACjB,GAAIC,UAAW,WACf,SAASC,SAAQ1Q,GAAGC,IAAM,MAAOlL,QAAOC,aAAa0L,SAAST,GAAG,KACjE,MAAO,SAASuQ,aAAYpP,KAAO,MAAOA,KAAI/K,QAAQoa,SAASC,YAGhE,SAASC,cAAaC,MAAOzB,KAC5B,OAAOyB,OACN,IAAK,IAAK,IAAK,OAAQ,IAAK,OAAQ,MAAO,KAE3C,SAAS,MAAO,QAIlB,GAAIC,UAAW,QAASC,WAAUC,MACjC,GAAIpT,KAAM,GAAIpJ,EAAI,EAAGiD,EAAI,EAAGI,EAAI,EAAG8W,EAAI,EAAGvK,EAAI,EAAG9H,EAAI,CACrD,OAAO9H,EAAIwc,KAAKtc,OAAQ,CACvB+C,EAAIuZ,KAAKrc,WAAWH,IACpB,IAAIiD,EAAI,IAAK,CAAEmG,KAAO5I,OAAOC,aAAawC,EAAI,UAC9CI,EAAImZ,KAAKrc,WAAWH,IACpB,IAAIiD,EAAE,KAAOA,EAAE,IAAK,CAAEmG,KAAO5I,OAAOC,cAAewC,EAAI,KAAO,EAAMI,EAAI,GAAM,UAC9E8W,EAAIqC,KAAKrc,WAAWH,IACpB,IAAIiD,EAAI,IAAK,CAAEmG,KAAO5I,OAAOC,cAAewC,EAAI,KAAO,IAAQI,EAAI,KAAO,EAAM8W,EAAI,GAAM,UAC1FvK,EAAI4M,KAAKrc,WAAWH,IACpB8H,KAAO7E,EAAI,IAAM,IAAQI,EAAI,KAAO,IAAQ8W,EAAI,KAAO,EAAMvK,EAAI,IAAK,KACtExG,MAAO5I,OAAOC,aAAa,OAAWqH,IAAI,GAAI,MAC9CsB,MAAO5I,OAAOC,aAAa,OAAUqH,EAAE,OAExC,MAAOsB,KAIR,IAAGpH,QAAS,CACX,GAAIya,WAAY,QAASA,WAAU3c,MAClC,GAAIsJ,KAAM,GAAInH,QAAO,EAAEnC,KAAKI,QAAS4H,EAAG9H,EAAG2K,EAAI,EAAG4K,EAAI,EAAGmH,GAAG,EAAGzZ,CAC/D,KAAIjD,EAAI,EAAGA,EAAIF,KAAKI,OAAQF,GAAG2K,EAAG,CACjCA,EAAI,CACJ,KAAI1H,EAAEnD,KAAKK,WAAWH,IAAM,IAAK8H,EAAI7E,MAChC,IAAGA,EAAI,IAAK,CAAE6E,GAAK7E,EAAE,IAAI,IAAInD,KAAKK,WAAWH,EAAE,GAAG,GAAK2K,GAAE,MACzD,IAAG1H,EAAI,IAAK,CAAE6E,GAAG7E,EAAE,IAAI,MAAMnD,KAAKK,WAAWH,EAAE,GAAG,IAAI,IAAIF,KAAKK,WAAWH,EAAE,GAAG,GAAK2K,GAAE,MACtF,CAAEA,EAAI,CACV7C,IAAK7E,EAAI,GAAG,QAAQnD,KAAKK,WAAWH,EAAE,GAAG,IAAI,MAAMF,KAAKK,WAAWH,EAAE,GAAG,IAAI,IAAIF,KAAKK,WAAWH,EAAE,GAAG,GACrG8H,IAAK,KAAO4U,IAAK,OAAW5U,IAAI,GAAI,KAAOA,GAAI,OAAUA,EAAE,MAE5D,GAAG4U,KAAO,EAAG,CAAEtT,IAAImM,KAAOmH,GAAG,GAAKtT,KAAImM,KAAOmH,KAAK,CAAGA,IAAK,EAC1DtT,IAAImM,KAAOzN,EAAE,GAAKsB,KAAImM,KAAOzN,IAAI,EAElCsB,IAAIlJ,OAASqV,CACb,OAAOnM,KAAIwQ,SAAS,QAErB,IAAI+C,QAAS,oBACb,IAAGL,SAASK,SAAWF,UAAUE,QAASL,SAAWG,SACrD,IAAIG,WAAY,QAASA,WAAU9c,MAAQ,MAAOmC,QAAOnC,KAAM,UAAU8Z,SAAS,QAClF,IAAG0C,SAASK,SAAWC,UAAUD,QAASL,SAAWM,UAItD,GAAIC,UAAW,WACd,GAAIC,WACJ,OAAO,SAASD,UAASjN,EAAEmN,GAC1B,GAAIzZ,GAAIsM,EAAE,IAAImN,CACd,IAAGD,QAAQxZ,KAAOc,UAAW,MAAO0Y,SAAQxZ,EAC5C,OAAQwZ,SAAQxZ,GAAK,GAAI0Z,QAAO,cAAcpN,EAAE,0DAA+DA,EAAE,IAAKmN,GAAG,OAI3H,IAAIE,SAAU,WAAa,GAAIC,YAC9B,OAAO,SAASC,UAASxO,IACxB,GAAGuO,SAASvO,MAAQvK,UAAW,MAAO8Y,UAASvO,GAC/C,OAAQuO,UAASvO,IAAM,GAAIqO,QAAO,OAASrO,GAAK,cAAgBA,GAAK,IAAK,QAE5E,IAAIyO,UAAW,mBAAoBC,SAAW,mBAC9C,SAASC,aAAYxd,MACpB,GAAIyd,GAAI5C,YAAY7a,KAEpB,IAAI0d,SAAU1d,KAAKuL,MAAM4R,QAAQM,EAAEE,cACnC,IAAGD,QAAQtd,QAAUqd,EAAEtG,KAAM,KAAM,4BAA8BuG,QAAQtd,OAAS,OAASqd,EAAEtG,IAC7F,IAAIyG,OACJF,SAAQG,QAAQ,SAASpd,GACxB,GAAI6C,GAAI7C,EAAEuB,QAAQsb,SAAS,IAAI/R,MAAMgS,SACrCK,KAAIxI,MAAM9R,EAAEA,EAAE,GAAIE,EAAEF,EAAE,MAEvB,OAAOsa,KAGR,GAAIE,SAAU,cACd,SAASC,UAASjO,EAAEmN,GAAI,MAAO,IAAMnN,GAAKmN,EAAE1R,MAAMuS,SAAS,wBAA0B,IAAM,IAAMb,EAAI,KAAOnN,EAAI,IAEhH,QAASkO,YAAWP,GAAK,MAAO9E,MAAK8E,GAAGvc,IAAI,SAASuU,GAAK,MAAO,IAAMA,EAAI,KAAOgI,EAAEhI,GAAK,MAAOwI,KAAK,IACrG,QAASC,WAAUpO,EAAEmN,EAAEQ,GAAK,MAAO,IAAM3N,GAAK4I,MAAM+E,GAAKO,WAAWP,GAAK,KAAO/E,MAAMuE,IAAMA,EAAE1R,MAAMuS,SAAS,wBAA0B,IAAM,IAAMb,EAAI,KAAOnN,EAAI,KAAO,IAEzK,QAASqO,cAAa5a,EAAGC,GAAK,IAAM,MAAOD,GAAE6a,cAAcpc,QAAQ,QAAQ,IAAO,MAAMqY,GAAK,GAAG7W,EAAG,KAAM6W,IAEzG,QAASgE,UAAS9b,GACjB,aAAcA,IACb,IAAK,SAAU,MAAO2b,WAAU,YAAa3b,EAC7C,KAAK,SAAU,MAAO2b,YAAW3b,EAAE,IAAIA,EAAE,QAAQ,QAAS7B,OAAO6B,GACjE,KAAK,UAAW,MAAO2b,WAAU,UAAU3b,EAAE,OAAO,SAErD,GAAGA,YAAauH,MAAM,MAAOoU,WAAU,cAAeC,aAAa5b,GACnE,MAAM,IAAIsG,OAAM,uBAAyBtG,GAG1C,GAAI+b,YAAa,6DACjB,IAAIC,QACHC,GAAM,mCACNC,QAAW,4BACXC,SAAY,+BACZC,GAAM,0DACN1S,EAAK,sEACL2S,IAAO,yEACPC,GAAM,uEACNC,IAAO,4CACPC,IAAO,mCAGRR,OAAMS,MACL,4DACA,gDACA,sDACA,mDAGD,SAASC,aAAY/I,IAAK7K,IAAK6T,KAAMC,GAAIC,IACxC,GAAGF,OAAS5a,UAAW4a,KAAO,IAC9B,KAAIC,GAAIA,GAAK,CACb,KAAIC,IAAMD,KAAO,EAAGC,GAAK,EACzB,IAAI/E,GAAG5Q,EAAG4V,GAAKF,GAAK,EAAIC,GAAK,EAAGE,MAAQ,GAAKD,IAAM,EAAGE,MAAQD,MAAQ,CACtE,IAAIE,OAAQ,EAAGjc,EAAI2b,MAAQ,EAAI,EAAGhf,EAAIgf,KAAQC,GAAK,EAAK,EAAG5c,EAAI2T,IAAI7K,IAAMnL,EAEzEA,IAAKqD,CACL8W,GAAI9X,GAAM,IAAOid,MAAS,CAAIjd,OAASid,IAAOA,OAAQH,EACtD,MAAOG,KAAO,EAAGnF,EAAIA,EAAI,IAAMnE,IAAI7K,IAAMnL,GAAIA,GAAKqD,EAAGic,MAAQ,GAC7D/V,EAAI4Q,GAAM,IAAOmF,MAAS,CAAInF,OAASmF,IAAOA,OAAQJ,EACtD,MAAOI,KAAO,EAAG/V,EAAIA,EAAI,IAAMyM,IAAI7K,IAAMnL,GAAIA,GAAKqD,EAAGic,MAAQ,GAC7D,GAAInF,IAAMiF,KAAM,MAAO7V,GAAIgW,KAAQld,GAAK,EAAI,GAAKmd,aAC5C,IAAIrF,IAAM,EAAGA,EAAI,EAAIkF,UACrB,CAAE9V,EAAIA,EAAI7F,KAAKI,IAAI,EAAGob,GAAK/E,GAAIA,EAAIkF,MACxC,OAAQhd,GAAK,EAAI,GAAKkH,EAAI7F,KAAKI,IAAI,EAAGqW,EAAI+E,IAG3C,GAAI7I,YAAYoJ,WAChBpJ,YAAaoJ,YAAc,QAASC,WAAUld,MAAQ,GAAIjC,KAAQ,KAAI,GAAIP,GAAI,EAAGA,EAAIwC,KAAK,GAAGtC,SAAUF,EAAG,CAAEO,EAAE2U,KAAKxS,MAAMnC,EAAGiC,KAAK,GAAGxC,IAAO,MAAOO,GAClJ,IAAImW,WAAWiJ,UACfjJ,WAAYiJ,WAAa,QAASC,UAASC,EAAExd,EAAE8X,GAAK,GAAI5P,MAAO,KAAI,GAAIvK,GAAEqC,EAAGrC,EAAEma,EAAGna,GAAG,EAAGuK,GAAG2K,KAAK1U,OAAOC,aAAaqf,eAAeD,EAAE7f,IAAM,OAAOuK,IAAGwT,KAAK,IACzJ,IAAIgC,WAAWC,UACfD,WAAYC,WAAa,QAASC,UAASJ,EAAExd,EAAEa,GAAK,MAAO2c,GAAErN,MAAMnQ,EAAGA,EAAEa,GAAIlC,IAAI,SAAST,GAAG,OAAQA,EAAE,GAAG,IAAI,IAAMA,EAAEqZ,SAAS,MAAOmE,KAAK,IAC1I,IAAImC,QAAQC,OACZD,QAASC,QAAU,SAASN,EAAExd,EAAE8X,GAAK,GAAI5P,MAAO,KAAI,GAAIvK,GAAEqC,EAAGrC,EAAEma,EAAGna,IAAKuK,GAAG2K,KAAK1U,OAAOC,aAAa2f,YAAYP,EAAE7f,IAAM,OAAOuK,IAAGwT,KAAK,IACtI,IAAIsC,SAASC,QACbD,SAAUC,SAAW,QAASC,QAAOV,EAAE7f,GAAK,GAAIC,KAAMqX,eAAeuI,EAAE7f,EAAI,OAAOC,KAAM,EAAIigB,OAAOL,EAAG7f,EAAE,EAAEA,EAAE,EAAEC,IAAI,GAAK,GACvH,IAAIugB,UAAUC,SACdD,UAAWC,UAAY,QAASC,SAAQb,EAAE7f,GAAK,GAAIC,KAAM,EAAEqX,eAAeuI,EAAE7f,EAAI,OAAOC,KAAM,EAAIigB,OAAOL,EAAG7f,EAAE,EAAEA,EAAE,EAAEC,IAAI,GAAK,GAC5H,IAAI0gB,UAAUC,SACdD,UAAWC,UAAY,SAASf,EAAG1U,KAAO,MAAO4T,aAAYc,EAAG1U,KAEhE,IAAI0V,QAAS,QAASC,UAASC,GAAK,MAAO5e,OAAM6e,QAAQD,GACzD,IAAG/e,QAAS,CACX0U,UAAY,QAASuK,WAAUpB,EAAExd,EAAE8X,GAAK,IAAIlY,OAAOif,SAASrB,GAAI,MAAOF,YAAWE,EAAExd,EAAE8X,EAAI,OAAO0F,GAAEjG,SAAS,UAAUvX,EAAE8X,GACxH4F,WAAY,SAASF,EAAExd,EAAEa,GAAK,MAAOjB,QAAOif,SAASrB,GAAKA,EAAEjG,SAAS,MAAMvX,EAAEA,EAAEa,GAAK8c,WAAWH,EAAExd,EAAEa,GACnGmd,SAAU,QAASc,SAAQtB,EAAE7f,GAAK,IAAIiC,OAAOif,SAASrB,GAAI,MAAOS,UAAST,EAAG7f,EAAI,IAAIC,KAAM4f,EAAEuB,aAAaphB,EAAI,OAAOC,KAAM,EAAI4f,EAAEjG,SAAS,OAAO5Z,EAAE,EAAEA,EAAE,EAAEC,IAAI,GAAK,GAClKugB,UAAW,QAASa,UAASxB,EAAE7f,GAAK,IAAIiC,OAAOif,SAASrB,GAAI,MAAOY,WAAUZ,EAAG7f,EAAI,IAAIC,KAAM,EAAE4f,EAAEuB,aAAaphB,EAAI,OAAO6f,GAAEjG,SAAS,UAAU5Z,EAAE,EAAEA,EAAE,EAAEC,IAAI,GAC3JigB,QAAS,QAASoB,QAAOjf,EAAE8X,GAAK,MAAOoH,MAAK3H,SAAS,OAAOvX,EAAE8X,GAC9D9D,YAAa,SAAS7T,MAAQ,MAAQA,MAAK,GAAGtC,OAAS,GAAK+B,OAAOif,SAAS1e,KAAK,GAAG,IAAOP,OAAOQ,OAAOD,KAAK,IAAMid,YAAYjd,MAChID,SAAU,SAASC,MAAQ,MAAOP,QAAOif,SAAS1e,KAAK,IAAMP,OAAOQ,OAAOD,SAAWC,OAAOC,SAAUF,MACvGme,UAAW,QAASa,SAAQ3B,EAAE7f,GAAK,GAAGiC,OAAOif,SAASrB,GAAI,MAAOA,GAAE4B,aAAazhB,EAAI,OAAO4gB,WAAUf,EAAE7f,GACvG6gB,QAAS,QAASa,UAASX,GAAK,MAAO9e,QAAOif,SAASH,IAAM5e,MAAM6e,QAAQD,IAI5E,SAAUthB,WAAY,YAAa,CAClCiX,UAAY,SAASmJ,EAAExd,EAAE8X,GAAK,MAAO1a,SAAQiB,MAAMC,OAAO,KAAMkf,EAAErN,MAAMnQ,EAAE8X,IAC1E+F,QAAS,SAASL,EAAExd,EAAE8X,GAAK,MAAO1a,SAAQiB,MAAMC,OAAO,MAAOkf,EAAErN,MAAMnQ,EAAE8X,IACxEkG,SAAU,SAASR,EAAE7f,GAAK,GAAIC,KAAMqX,eAAeuI,EAAE7f,EAAI,OAAOC,KAAM,EAAIR,QAAQiB,MAAMC,OAAOtB,iBAAkBwgB,EAAErN,MAAMxS,EAAE,EAAGA,EAAE,EAAEC,IAAI,IAAM,GAC5IugB,UAAW,SAASX,EAAE7f,GAAK,GAAIC,KAAM,EAAEqX,eAAeuI,EAAE7f,EAAI,OAAOC,KAAM,EAAIR,QAAQiB,MAAMC,OAAO,KAAMkf,EAAErN,MAAMxS,EAAE,EAAEA,EAAE,EAAEC,IAAI,IAAM,IAGnI,GAAImgB,aAAc,SAASP,EAAG1U,KAAO,MAAO0U,GAAE1U,KAC9C,IAAI2U,gBAAiB,SAASD,EAAG1U,KAAO,MAAO0U,GAAE1U,IAAI,IAAI,GAAG,GAAG0U,EAAE1U,KACjE,IAAIwW,eAAgB,SAAS9B,EAAG1U,KAAO,GAAI7B,GAAIuW,EAAE1U,IAAI,IAAI,GAAG,GAAG0U,EAAE1U,IAAM,OAAQ7B,GAAI,MAAUA,GAAK,MAASA,EAAI,IAAM,EACrH,IAAIgO,gBAAiB,SAASuI,EAAG1U,KAAO,MAAO0U,GAAE1U,IAAI,IAAI,GAAG,KAAK0U,EAAE1U,IAAI,IAAI,KAAK0U,EAAE1U,IAAI,IAAI,GAAG0U,EAAE1U,KAC/F,IAAIwK,eAAgB,SAASkK,EAAG1U,KAAO,MAAQ0U,GAAE1U,IAAI,IAAI,GAAK0U,EAAE1U,IAAI,IAAI,GAAK0U,EAAE1U,IAAI,IAAI,EAAG0U,EAAE1U,KAE5F,IAAIyW,cAAe,SAASvf,GAAK,MAAOA,GAAEgJ,MAAM,OAAOrK,IAAI,SAAST,GAAK,MAAO4L,UAAS5L,EAAE,MAC3F,IAAIshB,mBAAqB5f,UAAW,YAAc,SAASI,GAAK,MAAOJ,QAAOif,SAAS7e,GAAK,GAAIJ,QAAOI,EAAG,OAASuf,aAAavf,IAAQuf,YAExI,SAAStJ,WAAUrB,KAAM3T,GACxB,GAAIvD,GAAE,GAAI+hB,GAAIC,GAAI1U,MAAOvF,EAAGiH,GAAI/O,EAAGgiB,GACnC,QAAO1e,GACN,IAAK,OACJ0e,IAAMT,KAAKre,CACX,IAAGlB,SAAWC,OAAOif,SAASK,MAAOxhB,EAAIwhB,KAAK/O,MAAM+O,KAAKre,EAAGqe,KAAKre,EAAE,EAAE+T,MAAM2C,SAAS,eAC/E,KAAI5Z,EAAI,EAAGA,GAAKiX,OAAQjX,EAAG,CAAED,GAAGS,OAAOC,aAAaqf,eAAeyB,KAAMS,KAAOA,MAAK,EAC1F/K,MAAQ,CACR,MAED,KAAK,OAAQlX,EAAImgB,OAAOqB,KAAMA,KAAKre,EAAGqe,KAAKre,EAAI+T,KAAO,MACtD,KAAK,UAAWA,MAAQ,CAAGlX,GAAI2W,UAAU6K,KAAMA,KAAKre,EAAGqe,KAAKre,EAAI+T,KAAO,MAGvE,KAAK,QAASlX,EAAIsgB,QAAQkB,KAAMA,KAAKre,EAAI+T,MAAO,EAAIlX,EAAEG,MAAQ,MAE9D,KAAK,SAAUH,EAAIygB,SAASe,KAAMA,KAAKre,EAAI+T,MAAO,EAAIlX,EAAEG,MAAQ,IAAGH,EAAEA,EAAEG,OAAO,IAAM,OAAU+W,MAAQ,CAAG,MAEzG,KAAK,OAAQA,KAAO,CAAGlX,GAAI,EAC1B,QAAO+H,EAAEsY,YAAYmB,KAAMA,KAAKre,EAAI+T,WAAW,EAAG5J,GAAG6H,KAAK7U,SAASyH,GACnE/H,GAAIsN,GAAG0Q,KAAK,GAAK,MAClB,KAAK,OAAQ9G,KAAO,CAAGlX,GAAI,EAC1B,QAAO+H,EAAEgY,eAAeyB,KAAKA,KAAKre,EAAG+T,SAAS,EAAE,CAAC5J,GAAG6H,KAAK7U,SAASyH,GAAImP,OAAM,EAC5EA,MAAM,CAAGlX,GAAIsN,GAAG0Q,KAAK,GAAK,MAG3B,KAAK,YAAahe,EAAI,EAAIiiB,KAAMT,KAAKre,CACpC,KAAIlD,EAAI,EAAGA,GAAKiX,OAAQjX,EAAG,CAC1B,GAAGuhB,KAAKU,MAAQV,KAAKU,KAAKlgB,QAAQigB,QAAU,EAAG,CAC9Cla,EAAIsY,YAAYmB,KAAMS,IACtBT,MAAKre,EAAI8e,IAAM,CACfjT,IAAKuJ,UAAUqB,KAAK4H,KAAMtK,KAAKjX,EAAG8H,EAAI,YAAc,YACpD,OAAOuF,IAAG0Q,KAAK,IAAMhP,GAEtB1B,GAAG6H,KAAK7U,SAASyf,eAAeyB,KAAMS,MACtCA,MAAK,EACJjiB,EAAIsN,GAAG0Q,KAAK,GAAK9G,OAAQ,CAAG,MAE/B,KAAK,YAAalX,EAAI,EAAIiiB,KAAMT,KAAKre,CACpC,KAAIlD,EAAI,EAAGA,GAAKiX,OAAQjX,EAAG,CAC1B,GAAGuhB,KAAKU,MAAQV,KAAKU,KAAKlgB,QAAQigB,QAAU,EAAG,CAC9Cla,EAAIsY,YAAYmB,KAAMS,IACtBT,MAAKre,EAAI8e,IAAM,CACfjT,IAAKuJ,UAAUqB,KAAK4H,KAAMtK,KAAKjX,EAAG8H,EAAI,YAAc,YACpD,OAAOuF,IAAG0Q,KAAK,IAAMhP,GAEtB1B,GAAG6H,KAAK7U,SAAS+f,YAAYmB,KAAMS,MACnCA,MAAK,EACJjiB,EAAIsN,GAAG0Q,KAAK,GAAK,MAEpB,SACD,OAAO9G,MACN,IAAK,GAAG6K,GAAK1B,YAAYmB,KAAMA,KAAKre,EAAIqe,MAAKre,GAAK,OAAO4e,GACzD,KAAK,GAAGA,IAAMxe,IAAM,IAAMqe,cAAgB7B,gBAAgByB,KAAMA,KAAKre,EAAIqe,MAAKre,GAAK,CAAG,OAAO4e,GAC7F,KAAK,GACJ,GAAGxe,IAAM,MAAQie,KAAKA,KAAKre,EAAE,GAAK,OAAQ,EAAG,CAAE4e,GAAKnM,cAAc4L,KAAMA,KAAKre,EAAIqe,MAAKre,GAAK,CAAG,OAAO4e,QAChG,CAAEC,GAAKzK,eAAeiK,KAAMA,KAAKre,EAAIqe,MAAKre,GAAK,CAAG,OAAO6e,IAAM,KACrE,KAAK,GAAG,GAAGze,IAAM,IAAK,CAAEye,GAAKpB,SAASY,KAAMA,KAAKre,EAAIqe,MAAKre,GAAK,CAAG,OAAO6e,IAEzE,IAAK,IAAIhiB,EAAIggB,UAAUwB,KAAMA,KAAKre,EAAG+T,KAAO,QAE7CsK,KAAKre,GAAG+T,IAAM,OAAOlX,GAGtB,QAASmiB,YAAW5e,EAAG+G,IAAKuF,GAC3B,GAAIqH,MAAMjX,CACV,IAAG4P,IAAM,OAAQ,CAChB,IAAI5P,EAAI,EAAGA,GAAKqK,IAAInK,SAAUF,EAAGuhB,KAAKY,cAAc9X,IAAIlK,WAAWH,GAAIuhB,KAAKre,EAAI,EAAIlD,EACpFiX,MAAO,EAAI5M,IAAInK,WACT,QAAOoD,GACb,IAAM,GAAG2T,KAAO,CAAGsK,MAAKA,KAAKre,GAAKmH,IAAI,GAAK,MAC3C,KAAM,GAAG4M,KAAO,CAAGsK,MAAKA,KAAKre,EAAE,GAAKmH,IAAM,GAAKA,QAAS,CAAGkX,MAAKA,KAAKre,EAAE,GAAKmH,IAAI,GAAKA,QAAS,CAAGkX,MAAKA,KAAKre,GAAKmH,IAAI,GAAK,MACzH,KAAM,GAAG4M,KAAO,CAAGsK,MAAKa,cAAc/X,IAAKkX,KAAKre,EAAI,MACpD,KAAM,GAAG+T,KAAO,CAAG,IAAGrH,IAAM,IAAK,CAAE2R,KAAKc,cAAchY,IAAKkX,KAAKre,EAAI,OAEpE,IAAK,IAAI,KACT,MAAM,EAAG+T,KAAO,CAAGsK,MAAKe,aAAajY,IAAKkX,KAAKre,EAAI,OAEpDqe,KAAKre,GAAK+T,IAAM,OAAOsK,MAGxB,QAAShJ,YAAWgK,OAAQC,KAC3B,GAAIjZ,GAAIwW,UAAUwB,KAAKA,KAAKre,EAAEqf,OAAOriB,QAAQ,EAC7C,IAAGqJ,IAAMgZ,OAAQ,KAAMC,KAAM,YAAcD,OAAS,QAAUhZ,CAC9DgY,MAAKre,GAAKqf,OAAOriB,QAAQ,EAG1B,QAASuS,WAAUF,KAAMkQ,KACxBlQ,KAAKrP,EAAIuf,GACTlQ,MAAKQ,WAAauF,SAClB/F,MAAKS,IAAMuF,UACXhG,MAAKmQ,YAAcR,WAGpB,QAASS,WAAUpQ,KAAMrS,QAAUqS,KAAKrP,GAAKhD,OAE7C,QAAS0iB,WAAUrQ,KAAMrS,QAAUqS,KAAKrP,GAAKhD,OAE7C,QAAS2iB,SAAQC,IAChB,GAAI/iB,GAAImC,YAAY4gB,GACpBrQ,WAAU1S,EAAG,EACb,OAAOA,GAIR,QAASgjB,cAAajjB,KAAMkjB,GAAI3e,MAC/B,GAAI4e,SAASC,QAAShjB,MACtBuS,WAAU3S,KAAMA,KAAKoD,GAAK,EAC1B,OAAMpD,KAAKoD,EAAIpD,KAAKI,OAAQ,CAC3B,GAAIijB,IAAKrjB,KAAKiT,WAAW,EACzB,IAAGoQ,GAAK,IAAMA,IAAMA,GAAK,OAAUrjB,KAAKiT,WAAW,GAAK,MAAO,EAC/D,IAAI+B,GAAIsO,eAAeD,KAAOC,eAAe,MAC7CH,SAAUnjB,KAAKiT,WAAW,EAC1B7S,QAAS+iB,QAAU,GACnB,KAAIC,QAAU,EAAGA,QAAS,GAAMD,QAAU,MAASC,QAAShjB,UAAY+iB,QAAUnjB,KAAKiT,WAAW,IAAM,MAAQ,EAAEmQ,OAClH,IAAI7f,GAAIyR,EAAElF,EAAE9P,KAAMI,OAAQmE,KAC1B,IAAG2e,GAAG3f,EAAGyR,EAAGqO,IAAK,QAKnB,QAASE,aACR,GAAI7gB,SAAW8gB,MAAQ,IACvB,IAAIC,QAAS,QAASC,WAAUV,IAC/B,GAAI/iB,GAAI8iB,QAAQC,GAChBrQ,WAAU1S,EAAG,EACb,OAAOA,GAGR,IAAI0jB,QAASF,OAAOD,MAEpB,IAAII,QAAS,QAASC,aACrBF,OAAOvjB,OAASujB,OAAOvgB,CACvB,IAAGugB,OAAOvjB,OAAS,EAAGsC,KAAK0S,KAAKuO,OAChCA,QAAS,KAGV,IAAIG,MAAO,QAASC,SAAQf,IAC3B,GAAGA,GAAKW,OAAOvjB,OAASujB,OAAOvgB,EAAG,MAAOugB,OACzCC,SACA,OAAQD,QAASF,OAAO7f,KAAKgK,IAAIoV,GAAG,EAAGQ,QAGxC,IAAIQ,KAAM,QAASC,UAClBL,QACA,OAAOrN,aAAY7T,OAGpB,IAAI0S,MAAO,QAAS8O,SAAQhO,KAAO0N,QAAUD,QAASzN,GAAK4N,MAAKN,OAEhE,QAASM,KAAKA,KAAM1O,KAAKA,KAAM4O,IAAIA,IAAKG,MAAMzhB,MAG/C,QAAS0hB,cAAaC,GAAIha,KAAMia,QAASlkB,QACxC,GAAIoD,GAAI+gB,SAASla,MAAOjH,CACxB,KAAIhD,OAAQA,OAASkjB,eAAe9f,GAAGghB,IAAMF,aAAalkB,QAAU,CACpEgD,GAAI,GAAKI,GAAK,IAAO,EAAI,GAAK,EAAIpD,MAClC,IAAGA,QAAU,MAAQgD,CAAG,IAAGhD,QAAU,QAAUgD,CAAG,IAAGhD,QAAU,UAAYgD,CAC3E,IAAInD,GAAIokB,GAAGP,KAAK1gB,EAChB,IAAGI,GAAK,IAAMvD,EAAE2iB,YAAY,EAAGpf,OAC1B,CACJvD,EAAE2iB,YAAY,GAAIpf,EAAI,KAAQ,IAC9BvD,GAAE2iB,YAAY,EAAIpf,GAAK,GAExB,IAAI,GAAItD,GAAI,EAAGA,GAAK,IAAKA,EAAG,CAC3B,GAAGE,QAAU,IAAM,CAAEH,EAAE2iB,YAAY,GAAIxiB,OAAS,KAAM,IAAOA,UAAW,MACnE,CAAEH,EAAE2iB,YAAY,EAAGxiB,OAAS,QAElC,GAAGA,OAAS,GAAK2gB,OAAOuD,SAAUD,GAAGjP,KAAKkP,SAG3C,QAASG,gBAAeC,KAAMC,KAC7B,GAAGA,IAAIpiB,EAAG,CACT,GAAGmiB,KAAKE,KAAMF,KAAKvhB,GAAKwhB,IAAIpiB,EAAEY,CAC9B,IAAGuhB,KAAKG,KAAMH,KAAKzY,GAAK0Y,IAAIpiB,EAAE0J,MACxB,CACNyY,KAAKvhB,GAAKwhB,IAAIxhB,CACduhB,MAAKzY,GAAK0Y,IAAI1Y,EAEfyY,KAAKE,KAAOF,KAAKG,KAAO,CACxB,OAAMH,KAAKvhB,GAAK,IAAOuhB,KAAKvhB,GAAK,GACjC,OAAMuhB,KAAKzY,GAAK,MAASyY,KAAKzY,GAAK,KACnC,OAAOyY,MAGR,QAASI,iBAAgBJ,KAAMK,OAC9BL,KAAKniB,EAAIkiB,eAAeC,KAAKniB,EAAGwiB,MAAMxiB,EACtCmiB,MAAKrK,EAAIoK,eAAeC,KAAKrK,EAAG0K,MAAMxiB,EACtC,OAAOmiB,MAGR,GAAIM,aACJ,IAAIC,gBAAiB,SAASC,EAAGC,SAChC,GAAIC,OACJ,UAAUD,WAAY,YAAaC,OAASD,YACvC,UAAUzlB,WAAY,YAAa,CACvC,IAAM0lB,OAAS1lB,QAAQ,MAAM,OAC7B,MAAM2a,GAAK+K,OAAS,MAGrBF,EAAEG,IAAM,SAAStM,IAAK/Y,MACrB,GAAI4J,GAAI,GAAIvH,OAAM,IAClB,IAAIc,GAAI,EAAGjD,EAAI,EAAG2K,EAAI,EAAGrH,EAAI,CAC7B,KAAItD,EAAI,EAAGA,GAAK,MAAOA,EAAG0J,EAAE1J,GAAKA,CACjC,KAAIA,EAAI,EAAGA,GAAK,MAAOA,EAAG,CACzB2K,EAAKA,EAAIjB,EAAE1J,GAAM6Y,IAAI7Y,EAAE6Y,IAAI3Y,QAASC,WAAW,GAAI,GACnDmD,GAAIoG,EAAE1J,EAAI0J,GAAE1J,GAAK0J,EAAEiB,EAAIjB,GAAEiB,GAAKrH,EAE/BtD,EAAI2K,EAAI,CAAGvB,KAAMnH,OAAOnC,KAAKI,OAC7B,KAAI+C,EAAI,EAAGA,GAAKnD,KAAKI,SAAU+C,EAAG,CACjCjD,EAAKA,EAAI,EAAG,GACZ2K,IAAKA,EAAIjB,EAAE1J,IAAI,GACfsD,GAAIoG,EAAE1J,EAAI0J,GAAE1J,GAAK0J,EAAEiB,EAAIjB,GAAEiB,GAAKrH,CAC9B8F,KAAInG,GAAMnD,KAAKmD,GAAKyG,EAAGA,EAAE1J,GAAG0J,EAAEiB,GAAI,KAEnC,MAAOvB,KAGR,IAAG8b,OAAQ,CACVF,EAAEI,IAAM,SAASC,KAAO,MAAOH,QAAOI,WAAW,OAAOC,OAAOF,KAAKG,OAAO,YACrE,CACNR,EAAEI,IAAM,SAASC,KAAO,KAAM,kBAGhCN,gBAAeD,gBAAkBI,UAAW,YAAcA,OAAS9gB,UAInE,SAASqhB,cAAa3lB,KAAMI,QAC3B,OAASwlB,IAAK5lB,KAAKiT,WAAW,GAAI4S,KAAM7lB,KAAKiT,WAAW,IAIzD,QAAS6S,eAAc9lB,KAAMI,QAC5B,GAAI2V,OAAQ/V,KAAKoD,CACjB,IAAI2iB,OAAQ/lB,KAAKiT,WAAW,EAC5B,IAAIlG,KAAMiZ,mBAAmBhmB,KAC7B,IAAIimB,aACJ,IAAIjL,IAAMxX,EAAGuJ,IAAK0Q,EAAG1Q,IACrB,KAAIgZ,MAAQ,KAAO,EAAG,CAErB,GAAIG,cAAelmB,KAAKiT,WAAW,EACnC,KAAI,GAAI/S,GAAI,EAAGA,GAAKgmB,eAAgBhmB,EAAG+lB,UAAU7Q,KAAKuQ,aAAa3lB,MACnEgb,GAAE/O,EAAIga,cAEFjL,GAAE/O,EAAI,MAAQiQ,UAAUnP,KAAO,MACpC,KAAIgZ,MAAQ,KAAO,EAAG,EAGtB/lB,KAAKoD,EAAI2S,MAAQ3V,MACjB,OAAO4a,GAER,QAASmL,eAAcpZ,IAAK9M,GAE3B,GAAGA,GAAK,KAAMA,EAAI8iB,QAAQ,EAAE,EAAEhW,IAAIvJ,EAAEpD,OACpCH,GAAE2iB,YAAY,EAAE,EAChBwD,oBAAmBrZ,IAAIvJ,EAAGvD,EAC1B,OAAOA,GAIR,QAASomB,gBAAermB,MACvB,GAAIsmB,KAAMtmB,KAAKiT,WAAW,EAC1B,IAAIsT,WAAYvmB,KAAKiT,WAAW,EAChCsT,YAAavmB,KAAKiT,WAAW,IAAK,EAClC,IAAIuT,SAAUxmB,KAAKiT,WAAW,EAC9B,QAAS9P,EAAEmjB,IAAKC,UAAWA,WAE5B,QAASE,gBAAe/B,KAAMzkB,GAC7B,GAAGA,GAAK,KAAMA,EAAI8iB,QAAQ,EAC1B9iB,GAAE2iB,aAAa,EAAG8B,KAAKvhB,EACvBlD,GAAE2iB,YAAY,EAAG8B,KAAK6B,YAAcjiB,UAAYogB,KAAK6B,UAAY7B,KAAKniB,EACtEtC,GAAE2iB,YAAY,EAAG,EACjB,OAAO3iB,GAKR,QAASymB,oBAAoB1mB,KAAMI,QAAU,MAAO4lB,oBAAmBhmB,KAAMI,QAG7E,QAASumB,4BAA2B3mB,MACnC,GAAI4mB,eAAgB5mB,KAAKiT,WAAW,EACpC,OAAO2T,iBAAkB,GAAKA,gBAAkB,WAAa,GAAK5mB,KAAKiT,WAAW2T,cAAe,QAElG,QAASC,4BAA2B7mB,KAAMC,GACzC,IAAIA,EAAGA,EAAI8iB,QAAQ,IACnB9iB,GAAE2iB,YAAY,EAAG5iB,KAAKI,OAAS,EAAIJ,KAAKI,OAAS,WACjD,IAAGJ,KAAKI,OAAS,EAAGH,EAAE2iB,YAAY,EAAG5iB,KAAM,OAC3C,OAAOC,GAIR,QAAS+lB,oBAAmBhmB,MAC3B,GAAI4mB,eAAgB5mB,KAAKiT,WAAW,EACpC,OAAO2T,iBAAkB,EAAI,GAAK5mB,KAAKiT,WAAW2T,cAAe,QAElE,QAASR,oBAAmBpmB,KAAMC,GACjC,GAAGA,GAAK,KAAMA,EAAI8iB,QAAQ,EAAE,EAAE/iB,KAAKI,OACnCH,GAAE2iB,YAAY,EAAG5iB,KAAKI,OACtB,IAAGJ,KAAKI,OAAS,EAAGH,EAAE2iB,YAAY,EAAG5iB,KAAM,OAC3C,OAAOC,GAIR,GAAI6mB,aAAcH,0BAClB,IAAII,aAAcF,0BAKlB,SAASG,gBAAehnB,MACvB,GAAI+f,GAAI/f,KAAK0S,MAAM1S,KAAKoD,EAAGpD,KAAKoD,EAAE,EAClC,IAAI6jB,OAAQlH,EAAE,GAAK,EAAGmH,KAAOnH,EAAE,GAAK,CACpC/f,MAAKoD,GAAG,CACR2c,GAAE,IAAM,GACR,IAAIoH,IAAKD,OAAS,EAAIrG,UAAU,EAAE,EAAE,EAAE,EAAEd,EAAE,GAAGA,EAAE,GAAGA,EAAE,GAAGA,EAAE,IAAI,GAAKlK,cAAckK,EAAE,IAAI,CACtF,OAAOkH,OAAQE,GAAG,IAAMA,GAIzB,QAASC,oBAAmBpnB,MAC3B,GAAI0kB,OAAQniB,KAAO8X,KACnBqK,MAAKniB,EAAE0J,EAAIjM,KAAKiT,WAAW,EAC3ByR,MAAKrK,EAAEpO,EAAIjM,KAAKiT,WAAW,EAC3ByR,MAAKniB,EAAEY,EAAInD,KAAKiT,WAAW,EAC3ByR,MAAKrK,EAAElX,EAAInD,KAAKiT,WAAW,EAC3B,OAAOyR,MAGR,QAAS2C,oBAAmBpb,EAAGhM,GAC9B,IAAIA,EAAGA,EAAI8iB,QAAQ,GACnB9iB,GAAE2iB,YAAY,EAAG3W,EAAE1J,EAAE0J,EACrBhM,GAAE2iB,YAAY,EAAG3W,EAAEoO,EAAEpO,EACrBhM,GAAE2iB,YAAY,EAAG3W,EAAE1J,EAAEY,EACrBlD,GAAE2iB,YAAY,EAAG3W,EAAEoO,EAAElX,EACrB,OAAOlD,GAKR,QAASqnB,YAAWtnB,KAAMI,QAAU,MAAOJ,MAAKiT,WAAW,EAAG,KAC9D,QAASsU,YAAWvnB,KAAMC,GAAK,OAAQA,GAAK8iB,QAAQ,IAAIH,YAAY,EAAG,IAAK5iB,MAG5E,GAAIwnB,OACH,EAAM,SACNC,EAAM,UACNtiB,GAAM,UACNuiB,GAAM,QACNC,GAAM,SACNC,GAAM,QACNC,GAAM,OACNC,GAAM,gBACNC,IAAM,QAEP,IAAIC,OAAQ9O,UAAUsO,KAGtB,SAASS,gBAAejoB,KAAMI,QAC7B,GAAIkJ,OACJ,IAAI/F,GAAIvD,KAAKiT,WAAW,EACxB3J,KAAI4e,UAAY3kB,EAAI,CACpB+F,KAAI6e,WAAa5kB,IAAM,CACvB+F,KAAI8e,MAAQpoB,KAAKiT,WAAW,EAC5B3J,KAAI+e,cAAgBroB,KAAKiT,WAAW,EAAG,IACvC3J,KAAIgf,KAAStoB,KAAKiT,WAAW,EAC7B3J,KAAIif,OAASvoB,KAAKiT,WAAW,EAC7B3J,KAAIkf,MAASxoB,KAAKiT,WAAW,EAC7B3J,KAAImf,OAASzoB,KAAKiT,WAAW,GAI9B,QAASyV,iBAAgB1oB,KAAMI,QAC9B,GAAImD,GAAIvD,KAAKiT,WAAW,EACxBjT,MAAKoD,GACL,IAAIkG,MACHqf,QAASplB,EAAI,EACbqlB,WAAYrlB,EAAI,EAChBslB,SAAUtlB,EAAI,GACdulB,QAASvlB,EAAI,GACbwlB,UAAWxlB,EAAI,GACfylB,QAASzlB,EAAI,IAEd,OAAO+F,KAGR,CACC,GAAI2f,UAAc,CAClB,IAAIC,SAAc,CAClB,IAAIC,OAAc,CAClB,IAAIC,OAAc,CAClB,IAAIC,OAAc,CAClB,IAAIC,OAAc,CAClB,IAAIC,OAAc,CAClB,IAAIC,SAAc,CAClB,IAAIC,SAAc,CAClB,IAAIC,UAAc,EAClB,IAAIC,SAAc,EAClB,IAAIC,YAAc,EAClB,IAAIC,YAAc,EAClB,IAAIC,OAAc,EAClB,IAAIC,QAAc,EAClB,IAAIC,QAAc,EAClB,IAAIC,QAAc,EAClB,IAAIC,OAAc,EAClB,IAAIC,QAAc,EAClB,IAAIC,QAAc,EAClB,IAAIC,SAAc,EAClB,IAAIC,UAAc,EAClB,IAAIC,WAAc,EAClB,IAAIC,aAAc,EAClB,IAAIC,SAAc,EAClB,IAAIC,WAAc,EAClB,IAAIC,YAAc,EAClB,IAAIC,oBAAsB,EAC1B,IAAIC,kBAAsB,EAC1B,IAAIC,gBAAsB,EAC1B,IAAIC,OAAc,EAClB,IAAIC,UAAc,EAClB,IAAIC,qBAAsB,EAC1B,IAAIC,WAAc,IAClB,IAAIC,UAAc,IAElB,IAAIC,WAAc,EAClB,IAAIC,SAAc,EAClB,IAAIC,YAAeF,UAAWC,SAI/B,GAAIE,mBACH9mB,GAAQ+mB,EAAG,WAAYhoB,EAAG2lB,OAC1BzkB,GAAQ8mB,EAAG,WAAYhoB,EAAG4nB,WAC1BzmB,GAAQ6mB,EAAG,qBAAsBhoB,EAAG4nB,WACpCxmB,GAAQ4mB,EAAG,YAAahoB,EAAG4lB,OAC3BqC,GAAQD,EAAG,YAAahoB,EAAG4lB,OAC3BsC,GAAQF,EAAG,iBAAkBhoB,EAAG4lB,OAChC3B,GAAQ+D,EAAG,aAAchoB,EAAG4lB,OAC5BuC,GAAQH,EAAG,YAAahoB,EAAG4lB,OAC3BvkB,GAAQ2mB,EAAG,cAAehoB,EAAG4lB,OAC7BtkB,IAAQ0mB,EAAG,sBAAuBhoB,EAAG4lB,OACrCrkB,IAAQymB,EAAG,QAAShoB,EAAGmmB,SACvB3kB,IAAQwmB,EAAG,cAAehoB,EAAG0nB,UAAYtB,YACzC3kB,IAAQumB,EAAG,WAAYhoB,EAAG0nB,UAAYZ,UACtCplB,IAAQsmB,EAAG,UAAWhoB,EAAG4nB,WACzBjmB,IAAQqmB,EAAG,UAAWhoB,EAAG4nB,WACzBhmB,IAAQomB,EAAG,aAAchoB,EAAGmmB,SAC5BtkB,IAAQmmB,EAAG,iBAAkBhoB,EAAG4lB,OAChC7jB,IAAQimB,EAAG,YAAahoB,EAAGmmB,SAC3BjkB,IAAQ8lB,EAAG,gBAAiBhoB,EAAGmmB,SAC/BjC,IAAQ8D,EAAG,aAAchoB,EAAG4lB,MAAO5E,EAAG,WACtCoH,IAAQJ,EAAG,cAAehoB,EAAG4nB,WAC7BS,IAAQL,EAAG,gBAAiBhoB,EAAG4nB,WAC/BU,IAAQN,EAAG,WAAYhoB,EAAG4nB,WAC1BzD,IAAQ6D,EAAG,UAAWhoB,EAAG4nB,WACzBrD,OAID,IAAIgE,eACHtnB,GAAQ+mB,EAAG,WAAYhoB,EAAG2lB,OAC1BzkB,GAAQ8mB,EAAG,QAAShoB,EAAG4nB,WACvBzmB,GAAQ6mB,EAAG,UAAWhoB,EAAG4nB,WACzBxmB,GAAQ4mB,EAAG,SAAUhoB,EAAG4nB,WACxBK,GAAQD,EAAG,WAAYhoB,EAAG4nB,WAC1BM,GAAQF,EAAG,WAAYhoB,EAAG4nB,WAC1B3D,GAAQ+D,EAAG,WAAYhoB,EAAG4nB,WAC1BO,GAAQH,EAAG,aAAchoB,EAAG4nB,WAC5BvmB,GAAQ2mB,EAAG,YAAahoB,EAAG4nB,WAC3BtmB,IAAQ0mB,EAAG,WAAYhoB,EAAGgnB,aAC1BzlB,IAAQymB,EAAG,cAAehoB,EAAGgnB,aAC7BxlB,IAAQwmB,EAAG,cAAehoB,EAAGgnB,aAC7BvlB,IAAQumB,EAAG,eAAgBhoB,EAAGgnB,aAC9BtlB,IAAQsmB,EAAG,YAAahoB,EAAG4lB,OAC3BjkB,IAAQqmB,EAAG,YAAahoB,EAAG4lB,OAC3BhkB,IAAQomB,EAAG,YAAahoB,EAAG4lB,OAC3B/jB,IAAQmmB,EAAG,YAAahoB,EAAGunB,OAC3BzlB,IAAQkmB,EAAG,kBAAmBhoB,EAAG8mB,UACjC/kB,IAAQimB,EAAG,mBAAoBhoB,EAAG4lB,OAClCrB,OAID,IAAIiE,oBACHC,YAAcT,EAAG,SAAUhoB,EAAGymB,QAC9BiC,YAAcV,EAAG,WAAYhoB,EAAGymB,QAChCkC,gBAGD,WACC,IAAI,GAAI9nB,KAAK2nB,mBAAmB,GAAGA,kBAAkBI,eAAe/nB,GACpEknB,iBAAiBlnB,GAAK0nB,aAAa1nB,GAAK2nB,kBAAkB3nB,MAI3D,IAAIgoB,cACH5nB,EAAQ,KACRC,EAAQ,KACRC,EAAQ,GACR8iB,EAAQ,KACRjiB,GAAQ,KACR8mB,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACR9E,GAAQ,KACR/hB,GAAQ,KACR8mB,GAAQ,KACR7E,GAAQ,KACR8E,GAAQ,KACR7mB,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACR0mB,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,GAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRC,IAAQ,KACRpoB,MAAQ,KAIT,IAAIqoB,iBACH,KACA,QACA,aACA,WACA,YACA,iBACA,eACA,WACA,SACA,WACA,cACA,kBACA,gBACA,YACA,UACA,YACA,eACA,UACA,WAGD,SAASC,QAAOpV,KAAO,MAAOA,KAAIrY,IAAI,SAAST,GAAK,OAASA,GAAG,GAAI,IAAKA,GAAG,EAAG,IAAIA,EAAE,OAGrF,GAAImuB,QAASD,QAEZ,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAGA,EACA,SACA,SACA,MACA,IACA,SACA,SACA,MAEA,QACA,MACA,IACA,QACA,QACA,MACA,SACA,QACA,SACA,SACA,SACA,SACA,QACA,SACA,MACA,SAEA,IACA,SACA,SACA,MACA,QACA,QACA,MACA,IACA,MACA,SACA,SACA,SACA,SACA,SACA,SACA,SAEA,QACA,QACA,SACA,SACA,SACA,SACA,QACA,QACA,MACA,QACA,MACA,QACA,SACA,SACA,QACA,QAGA,SACA,GAQD,IAAIE,UAEHC,6EAA8E,YAG9EC,sCAAuC,OAGvCC,sCAAuC,OACvCC,6EAA8E,OAG9EC,uCAAwC,OACxCC,8EAA+E,OAG/EC,sCAAuC,OACvCC,0CAA2C,OAC3CC,0CAA2C,OAC3CC,sCAAuC,OAGvCC,6DAA8D,YAC9DC,sEAAuE,YACvEC,wEAAyE,WAGzEC,wEAAyE,OAGzEC,oCAAqC,WACrCC,2EAA4E,WAG5EC,sCAAuC,OACvCC,6EAA8E,OAG9EC,qCAAsC,aACtCC,4EAA6E,aAG7EC,8EAA+E,OAG/EC,oCAAqC,OACrCC,wCAAyC,OAGzCC,4CAA6C,OAG7CC,uCAAwC,OACxCC,8EAA+E,OAG/EC,wCAAyC,OACzCC,+EAAgF,OAGhFC,yCAA0C,OAC1CC,gFAAiF,OAGjFC,gDAAiD,OACjDC,6CAA8C,OAC9CC,uFAAwF,OACxFC,oFAAqF,OAGrFC,sCAAuC,OACvCC,6EAA8E,OAG9EC,qCAAsC,OACtCC,2CAA4C,OAC5CC,uCAAwC,OACxCC,kFAAmF,OACnFC,8EAA+E,OAC/EC,4EAA6E,OAG7EC,4CAA6C,OAC7CC,mFAAoF,OAGpFC,kCAAmC,OACnCC,uCAAwC,OACxCC,sCAAuC,OACvCC,2CAA4C,OAG5CC,qCAAsC,OAGtCC,iCAAkC,OAClCC,wEAAyE,OAGzEC,0DAA2D,SAG3DC,wCAAyC,OACzCC,6CAA8C,OAG9CC,uCAAwC,MACxCC,gDAAiD,MAGjDC,iDAAkD,OAClDC,uFAAwF,OAGxFC,iDAAkD,OAGlDC,2DAA4D,OAG5DC,sCAAuC,OAGvCC,4DAA6D,OAC7DC,oEAAqE,OACrEC,0EAA2E,OAC3EC,4EAA6E,OAC7EC,0EAA2E,OAC3EC,4EAA6E,OAC7EC,2EAA4E,OAG5EC,2DAA4D,OAE5DC,2DAA4D,OAC5DC,0DAA2D,OAE3DC,MAAS,KAGV,IAAIC,SAAU,WACb,GAAIrzB,IACHszB,WACCC,KAAM,6EACNC,KAAM,uDACNC,KAAM,0DACNC,KAAM,iFAEPC,MACCJ,KAAM,gFACNE,KAAM,0CAEPG,QACCL,KAAM,4EACNE,KAAM,sCAEPI,QACCN,KAAM,yEACNE,KAAM,mCAGR/a,MAAK1Y,GAAG4d,QAAQ,SAASpI,GAAK,IAAIxV,EAAEwV,GAAGge,KAAMxzB,EAAEwV,GAAGge,KAAOxzB,EAAEwV,GAAG+d,MAC9D7a,MAAK1Y,GAAG4d,QAAQ,SAASpI,GAAIkD,KAAK1Y,EAAEwV,IAAIoI,QAAQ,SAASva,GAAKurB,QAAQ5uB,EAAEwV,GAAGnS,IAAMmS;IACjF,OAAOxV,KAGR,IAAI8zB,SAAU5a,UAAU0V,QAExBtQ,OAAMyV,GAAK,8DAEX,SAASC,UAASj0B,KAAMuE,MACvB,GAAI2vB,SACJ,KAAIl0B,OAASA,KAAKuL,MAAO,MAAOvL,KAChC,IAAIgX,KAAOuc,aAAeM,UAAYM,cAAgBC,UAAYN,UACjEO,aAAeC,YAAcC,aAAeX,QAASY,YAAcC,OACnEC,QAASC,QAASC,MAAO,KACzB50B,KAAKuL,MAAMmP,eAAemD,QAAQ,SAASpd,GAC3C,GAAI4D,GAAIwW,YAAYpa,EACpB,QAAO4D,EAAE,GAAGrC,QAAQ2Y,QAAQ,MAC3B,IAAK,QAAS,KACd,KAAK,SAAU3D,GAAG4d,MAAQvwB,EAAE,SAAWA,EAAE,GAAGkH,MAAM,aAAa,GAAG,KAAK,GAAM,MAC7E,KAAK,WAAY2oB,MAAM7vB,EAAEwwB,WAAaxwB,EAAEywB,WAAa,MACrD,KAAK,YACJ,GAAG9d,GAAG6X,QAAQxqB,EAAEywB,gBAAkBxwB,UAAW0S,GAAG6X,QAAQxqB,EAAEywB,cAAc1f,KAAK/Q,EAAE0wB,cAC1E,IAAGxwB,KAAKywB,IAAKC,QAAQC,MAAM7wB,EAChC,SAGH,IAAG2S,GAAG4d,QAAUrW,MAAMyV,GAAI,KAAM,IAAInrB,OAAM,sBAAwBmO,GAAG4d,MACrE5d,IAAGme,UAAYne,GAAGmd,WAAW/zB,OAAS,EAAI4W,GAAGmd,WAAW,GAAK,EAC7Dnd,IAAGoe,IAAMpe,GAAG4c,KAAKxzB,OAAS,EAAI4W,GAAG4c,KAAK,GAAK,EAC3C5c,IAAGqe,MAAQre,GAAG8c,OAAO1zB,OAAS,EAAI4W,GAAG8c,OAAO,GAAK,EACjD9c,IAAGse,SAAWpB,YACPld,IAAGmd,UACV,OAAOnd,IAGR,GAAIue,gBAAiBrX,UAAU,QAAS,MACvC0W,MAASrW,MAAMyV,GACfwB,YAAajX,MAAMQ,IACnB0W,YAAalX,MAAMO,KAGpB,IAAI4W,kBACF,MAAO,oBACP,MAAO,4DACP,OAAQ3B,QAAQY,KAAK,KACrBzzB,IAAI,SAAST,GACd,MAAOyd,WAAU,UAAW,MAAO2W,UAAYp0B,EAAE,GAAIq0B,YAAer0B,EAAE,MAGvE,SAASk1B,UAAS3e,GAAIzS,MACrB,GAAItE,MAAQqD,CACZrD,GAAEA,EAAEG,QAAU,UACdH,GAAEA,EAAEG,QAAU,cACdH,GAAIA,EAAE0C,OAAO+yB,eACb,IAAIE,IAAK,SAAS5tB,GACjB,GAAGgP,GAAGhP,IAAMgP,GAAGhP,GAAG5H,OAAS,EAAG,CAC7BkD,EAAI0T,GAAGhP,GAAG,EACV/H,GAAEA,EAAEG,QAAW8d,UAAU,WAAY,MACpC6W,UAAazxB,EAAE,IAAM,IAAM,GAAG,KAAOA,EACrCwxB,YAAexB,QAAQtrB,GAAGzD,KAAKsxB,UAAY,WAI9C,IAAIC,IAAK,SAAS9tB,GACjBgP,GAAGhP,GAAG6V,QAAQ,SAASva,GACtBrD,EAAEA,EAAEG,QAAW8d,UAAU,WAAY,MACpC6W,UAAazxB,EAAE,IAAM,IAAM,GAAG,KAAOA,EACrCwxB,YAAexB,QAAQtrB,GAAGzD,KAAKsxB,UAAY,YAI9C,IAAIE,IAAK,SAASvyB,IAChBwT,GAAGxT,QAAQqa,QAAQ,SAASva,GAC5BrD,EAAEA,EAAEG,QAAW8d,UAAU,WAAY,MACpC6W,UAAazxB,EAAE,IAAM,IAAM,GAAG,KAAOA,EACrCwxB,YAAef,QAAQvwB,GAAG,OAI7BoyB,IAAG,YACHE,IAAG,SACHC,IAAG,WACF,OAAQ,UAAUlY,QAAQ+X,KAC1B,YAAa,WAAY,aAAa/X,QAAQkY,GAC/C,IAAG91B,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,UAAcH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KACnE,MAAO/B,GAAEge,KAAK,IAGf,GAAI+X,OACHC,GAAI,qFACJC,MAAO,qFAGR,SAASC,YAAWn2B,KAAMo2B,iBACzB,IAAKp2B,KAAM,MAAOA,KAClB,IAAIo2B,gBAAgBt0B,OAAO,KAAO,IAAK,CACtCs0B,gBAAkB,IAAIA,gBAEvB,GAAIzB,QACJ,IAAI0B,QACJ,IAAIC,iCAAkC,SAAUC,IAC/C,GAAIC,UAAWJ,gBAAgB5zB,MAAM,IACrCg0B,UAASC,KACT,IAAIC,QAASH,GAAG/zB,MAAM,IACtB,IAAIm0B,YACJ,OAAOD,OAAOt2B,SAAW,EAAG,CAC3B,GAAIw2B,OAAQF,OAAOxiB,OACnB,IAAI0iB,QAAU,KAAM,CACnBJ,SAASC,UACH,IAAIG,QAAU,IAAK,CACzBJ,SAASphB,KAAKwhB,QAGhB,MAAOJ,UAASvY,KAAK,KAGtBje,MAAKuL,MAAMmP,UAAUmD,QAAQ,SAASpd,GACrC,GAAI4D,GAAIwW,YAAYpa,EAEpB,IAAI4D,EAAE,KAAO,gBAAiB,CAC7B,GAAIwyB,OAAUA,KAAIC,KAAOzyB,EAAEyyB,IAAMD,KAAIE,OAAS1yB,EAAE0yB,MAAQF,KAAIG,GAAK3yB,EAAE2yB,EAAIH,KAAII,WAAa5yB,EAAE4yB,UAC1F,IAAIC,eAAgB7yB,EAAE4yB,aAAe,WAAa5yB,EAAE0yB,OAAST,gCAAgCjyB,EAAE0yB,OAC/FpC,MAAKuC,eAAiBL,GACtBR,MAAKhyB,EAAE2yB,IAAMH,MAGflC,MAAK,OAAS0B,IACd,OAAO1B,MAGRpW,MAAMyX,KAAO,8DAEb,IAAImB,WAAYjZ,UAAU,gBAAiB,MAE1C0W,MAASrW,MAAMyX,MAIhB,SAASoB,YAAWzC,MACnB,GAAI10B,KACJA,GAAEA,EAAEG,QAAU,UACdH,GAAEA,EAAEG,QAAU,SACduY,MAAKgc,KAAK,QAAQ9W,QAAQ,SAASwZ,KAAO,GAAIR,KAAMlC,KAAK,OAAO0C,IAC/Dp3B,GAAEA,EAAEG,QAAW8d,UAAU,eAAgB,KAAM2Y,MAEhD,IAAG52B,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,kBAAsBH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KAC3E,MAAO/B,GAAEge,KAAK,IAIf,GAAIqZ,cACF,cAAe,aACf,mBAAoB,kBACpB,cAAe,aACf,oBAAqB,eACrB,iBAAkB,gBAClB,cAAe,cACf,aAAc,YACd,aAAc,WACd,iBAAkB,aAClB,gBAAiB,eACjB,cAAe,aACf,aAAc,YACd,WAAY,UACZ,kBAAmB,cAAe,SAClC,mBAAoB,eAAgB,QAGtC/Y,OAAM+Y,WAAa,yEACnBtB,MAAKsB,WAAc,uFAEnB,IAAIC,kBAAmB,WACtB,GAAItrB,GAAI,GAAI5J,OAAMi1B,WAAWl3B,OAC7B,KAAI,GAAIF,GAAI,EAAGA,EAAIo3B,WAAWl3B,SAAUF,EAAG,CAC1C,GAAI4P,GAAIwnB,WAAWp3B,EACnB,IAAI+c,GAAI,MAAOnN,EAAE,GAAGhP,OAAO,EAAEgP,EAAE,GAAG7N,QAAQ,MAAO,KAAM6N,EAAE,GAAGhP,OAAOgP,EAAE,GAAG7N,QAAQ,KAAK,EACrFgK,GAAE/L,GAAK,GAAIgd,QAAO,IAAMD,EAAI,eAAkBA,EAAI,KAEnD,MAAOhR,KAGR,SAASurB,kBAAiBx3B,MACzB,GAAIwkB,KAEJ,KAAI,GAAItkB,GAAI,EAAGA,EAAIo3B,WAAWl3B,SAAUF,EAAG,CAC1C,GAAI4P,GAAIwnB,WAAWp3B,GAAIu3B,IAAMz3B,KAAKuL,MAAMgsB,iBAAiBr3B,GACzD,IAAGu3B,KAAO,MAAQA,IAAIr3B,OAAS,EAAGokB,EAAE1U,EAAE,IAAM2nB,IAAI,EAChD,IAAG3nB,EAAE,KAAO,QAAU0U,EAAE1U,EAAE,IAAK0U,EAAE1U,EAAE,IAAM,GAAIhG,MAAK0a,EAAE1U,EAAE,KAGvD,MAAO0U,GAGR,GAAIkT,qBAAsBxZ,UAAU,oBAAqB,MAExDyZ,WAAYpZ,MAAM+Y,WAClBM,WAAYrZ,MAAMC,GAClBqZ,gBAAiBtZ,MAAME,QACvBqZ,iBAAkBvZ,MAAMG,SACxB+W,YAAalX,MAAMO,KAGpB,SAASiZ,SAAQjoB,EAAGmN,EAAGQ,EAAGxd,EAAGukB,GAC5B,GAAGA,EAAE1U,IAAM,MAAQmN,GAAK,MAAQA,IAAM,GAAI,MAC1CuH,GAAE1U,GAAKmN,CACPhd,GAAEA,EAAEG,QAAWqd,EAAIS,UAAUpO,EAAEmN,EAAEQ,GAAKM,SAASjO,EAAEmN,GAGlD,QAAS+a,kBAAiBl4B,GAAIyE,MAC7B,GAAItE,IAAKqe,WAAYoZ,qBAAsBlT,IAC3C,KAAI1kB,GAAI,MAAOG,GAAEge,KAAK,GAGtB,IAAGne,GAAGm4B,aAAe,KAAMF,QAAQ,wBAA0Bj4B,IAAGm4B,cAAgB,SAAWn4B,GAAGm4B,YAAc9Z,aAAare,GAAGm4B,YAAa1zB,KAAKywB,MAAOkD,WAAW,kBAAmBj4B,EAAGukB,EACtL,IAAG1kB,GAAGq4B,cAAgB,KAAMJ,QAAQ,yBAA2Bj4B,IAAGq4B,eAAiB,SAAWr4B,GAAGq4B,aAAeha,aAAare,GAAGq4B,aAAc5zB,KAAKywB,MAAOkD,WAAW,kBAAmBj4B,EAAGukB,EAE3L,KAAI,GAAItkB,GAAI,EAAGA,GAAKo3B,WAAWl3B,SAAUF,EAAG,CAAE,GAAI4P,GAAIwnB,WAAWp3B,EAAI63B,SAAQjoB,EAAE,GAAIhQ,GAAGgQ,EAAE,IAAK,KAAM7P,EAAGukB,GACtG,GAAGvkB,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,sBAA0BH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KAC/E,MAAO/B,GAAEge,KAAK,IAIf,GAAIma,aACF,cAAe,cAAe,WAC9B,aAAc,aAAc,WAC5B,UAAW,UAAW,WACtB,cAAe,cAAe,WAC9B,UAAW,UAAW,WACtB,oBAAqB,oBAAqB,SAC1C,YAAa,YAAa,SAC1B,gBAAiB,gBAAiB,SAClC,YAAa,YAAa,SAC1B,eAAgB,eAAgB,QAChC,gBAAiB,gBAAiB,OAGpC7Z,OAAM6Z,UAAY,2EAClBpC,MAAKoC,UAAa,yFAElB,SAASC,iBAAgBr4B,KAAMwkB,GAC9B,GAAInd,KAAQ,KAAImd,EAAGA,IAEnB4T,WAAUva,QAAQ,SAAS/N,GAC1B,OAAOA,EAAE,IACR,IAAK,SAAU0U,EAAE1U,EAAE,KAAO9P,KAAKuL,MAAMwR,SAASjN,EAAE,UAAU,EAAI,MAC9D,KAAK,OAAQ0U,EAAE1U,EAAE,KAAO9P,KAAKuL,MAAMwR,SAASjN,EAAE,UAAU,KAAO,MAAQ,MACvE,KAAK,MACJ,GAAI2nB,KAAMz3B,KAAKuL,MAAM,GAAI2R,QAAO,IAAMpN,EAAE,GAAK,eAAkBA,EAAE,GAAK,KACtE,IAAG2nB,KAAOA,IAAIr3B,OAAS,EAAGiH,EAAEyI,EAAE,IAAM2nB,IAAI,EACxC,SAIH,IAAGpwB,EAAEixB,cAAgBjxB,EAAEkxB,cAAe,CACrC,GAAIj1B,GAAIka,YAAYnW,EAAEixB,aACtB,IAAIztB,GAAI,EAAG2tB,KAAO,CAClB,KAAI,GAAIt4B,GAAI,EAAGA,IAAMoD,EAAElD,SAAUF,EAAG,CACnC,OAAOoD,EAAEpD,GAAGoD,GACX,IAAK,aAAck1B,KAAO3tB,CAAG2Z,GAAEiU,YAAen1B,IAAIpD,GAAI,CAAG,MACzD,KAAK,iBAAkBA,CAAG,QAG5B,GAAIw4B,OAAQlb,YAAYnW,EAAEkxB,eAAer3B,IAAI,SAAST,GAAK,MAAO+b,UAAS/b,EAAE6C,IAC7EkhB,GAAEmU,WAAaD,MAAMhmB,MAAM8lB,KAAMA,KAAOhU,EAAEiU,YAE3C,MAAOjU,GAGR,GAAIoU,oBAAqB1a,UAAU,aAAc,MAChD0W,MAASrW,MAAM6Z,UACfS,WAAYta,MAAMM,IAGnB,SAASia,iBAAgBh5B,GAAIyE,MAC5B,GAAItE,MAAQukB,KAAQuU,EAAI7a,SACxB,KAAIpe,GAAIA,KACRA,IAAGk5B,YAAc,SACjB/4B,GAAEA,EAAEG,QAAU,UACdH,GAAEA,EAAEG,QAAU,kBAEdg4B,WAAUva,QAAQ,SAAS/N,GAC1B,GAAGhQ,GAAGgQ,EAAE,MAAQxL,UAAW,MAC3B,IAAIhB,EACJ,QAAOwM,EAAE,IACR,IAAK,SAAUxM,EAAIxD,GAAGgQ,EAAE,GAAK,MAC7B,KAAK,OAAQxM,EAAIxD,GAAGgQ,EAAE,IAAM,OAAS,OAAS,OAE/C,GAAGxM,IAAMgB,UAAWrE,EAAEA,EAAEG,QAAW24B,EAAEjpB,EAAE,GAAIxM,IAI5CrD,GAAEA,EAAEG,QAAW24B,EAAE,eAAgBA,EAAE,YAAaA,EAAE,aAAc,mCAAmCA,EAAE,aAAcA,EAAE,QAASr4B,OAAOZ,GAAG24B,eAAgBthB,KAAK,EAAGwG,SAAS,YACzK1d,GAAEA,EAAEG,QAAW24B,EAAE,gBAAiBA,EAAE,YAAaj5B,GAAG64B,WAAWz3B,IAAI,SAASqB,GAAK,MAAO,aAAeA,EAAI,gBAAkB0b,KAAK,KAAM9G,KAAMrX,GAAG24B,WAAY9a,SAAS,UACtK,IAAG1d,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,eAAmBH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KACxE,MAAO/B,GAAEge,KAAK,IAGfM,MAAM0a,WAAa,yEACnBjD,MAAKiD,WAAc,uFAEnB,IAAIC,WAAY,eAChB,SAASC,kBAAiBn5B,KAAMuE,MAC/B,GAAIigB,MAAQhR,IACZ,IAAI/J,GAAIzJ,KAAKuL,MAAM2tB,UACnB,IAAGzvB,EAAG,IAAI,GAAIvJ,GAAI,EAAGA,GAAKuJ,EAAErJ,SAAUF,EAAG,CACxC,GAAIO,GAAIgJ,EAAEvJ,GAAImE,EAAIwW,YAAYpa,EAC9B,QAAO4D,EAAE,IACR,IAAK,QAAS,KACd,KAAK,cACJ,GAAGA,EAAEuwB,QAAUrW,MAAM0a,WAAY,KAAM,sBAAwB50B,EAAEuwB,KACjE,IAAGvwB,EAAE+0B,SAAW/0B,EAAE+0B,UAAY7a,MAAMM,GAAI,KAAM,mBAAqBxa,EAAE+0B,OACrE,MACD,KAAK,YAAa5lB,KAAOnP,EAAEmP,IAAM,MACjC,KAAK,cAAeA,KAAO,IAAM,MACjC,SAAS,GAAI/S,EAAEwB,QAAQ,UAAY,EAAG,CACrC,GAAIo3B,MAAO54B,EAAE+B,MAAM,IACnB,IAAI6H,MAAOgvB,KAAK,GAAGne,UAAU,GAAIa,KAAOsd,KAAK,EAE7C,QAAOhvB,MACN,IAAK,QAAS,IAAK,SAAU,IAAK,OAAQ,IAAK,SAC9Cma,EAAEhR,MAAQoI,YAAYG,KACtB,MACD,KAAK,OACJyI,EAAEhR,MAAQ8I,aAAaP,KAAM,YAC7B,MACD,KAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,KAAM,IAAK,MAAO,IAAK,OAC5DyI,EAAEhR,MAAQnH,SAAS0P,KAAM,GACzB,MACD,KAAK,KAAM,IAAK,KAAM,IAAK,UAC1ByI,EAAEhR,MAAQ5D,WAAWmM,KACrB,MACD,KAAK,WAAY,IAAK,OACrByI,EAAEhR,MAAQ,GAAI1J,MAAKiS,KACnB,MACD,KAAK,KAAM,IAAK,QACfyI,EAAEhR,MAAQoI,YAAYG,KACtB,MACD,SACC,SAAUkZ,WAAY,YAAaA,QAAQqE,KAAK,aAAc74B,EAAG4J,KAAMgvB,WAEnE,IAAG54B,EAAEK,OAAO,EAAE,KAAO,KAAM,MAC3B,IAAGyD,KAAKywB,IAAK,KAAM,IAAInsB,OAAMpI,IAGtC,MAAO+jB,GAGR,GAAI+U,qBAAsBrb,UAAU,aAAc,MACjD0W,MAASrW,MAAM0a,WACfJ,WAAYta,MAAMM,IAGnB,SAAS2a,kBAAiB15B,GAAIyE,MAC7B,GAAItE,IAAKqe,WAAYib,oBACrB,KAAIz5B,GAAI,MAAOG,GAAEge,KAAK,GACtB,IAAIwb,KAAM,CACV9gB,MAAK7Y,IAAI+d,QAAQ,QAAS6b,UAASjkB,KAAOgkB,GACzCx5B,GAAEA,EAAEG,QAAW8d,UAAU,WAAYG,SAASve,GAAG2V,KAChDkkB,MAAS,yCACTF,IAAOA,IACPjmB,KAAQiC,KAGV,IAAGxV,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,eAAiBH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KACtE,MAAO/B,GAAEge,KAAK,IAEf,QAAS2b,eAAcC,MAAO/e,IAAKvQ,KAElC,OAAOuQ,KACN,IAAK,cAAeA,IAAM,UAAY,OAEvC+e,MAAM/e,KAAOvQ,IAMd,QAASuvB,gBAAernB,MACvB,GAAIsnB,eAAgBtnB,KAAKQ,WAAW,GAAI+mB,eAAiBvnB,KAAKQ,WAAW,EACzE,OAAO,IAAInJ,OAAOkwB,eAAe,IAAIp2B,KAAKI,IAAI,EAAE,IAAM+1B,cAAc,IAAO,aAAa,KAAM3b,cAAcpc,QAAQ,QAAQ,IAI7H,QAASi4B,aAAYxnB,KAAMpI,KAAM6vB,KAChC,GAAIntB,KAAM0F,KAAKQ,WAAW,EAAG,QAC7B,IAAGinB,IAAKznB,KAAKrP,GAAM,GAAM2J,IAAI3M,OAAO,EAAK,GAAM,CAC/C,OAAO2M,KAIR,QAASotB,cAAa1nB,KAAMpI,KAAM6vB,KACjC,GAAIntB,KAAM0F,KAAKQ,WAAW,EAAG,SAC7B,IAAGinB,IAAKznB,KAAKrP,GAAM,GAAM2J,IAAI3M,OAAO,EAAK,GAAM,CAC/C,OAAO2M,KAMR,QAASqtB,oBAAmB3nB,KAAM4nB,WAAYH,KAC7C,GAAGG,aAAe,GAAoB,MAAOF,cAAa1nB,KAC1D,OAAOwnB,aAAYxnB,KAAM4nB,WAAYH,KAGtC,QAASI,gBAAe7nB,KAAMjP,EAAG02B,KAAO,MAAOE,oBAAmB3nB,KAAMjP,EAAG02B,MAAQ,MAAQ,EAAG,GAC9F,QAASK,yBAAwB9nB,KAAMjP,GAAK,IAAIA,EAAG,KAAM,IAAIqF,OAAM,SAAW,OAAOuxB,oBAAmB3nB,KAAMjP,EAAG,GAGjH,QAASg3B,gCAA+B/nB,MACvC,GAAIrS,QAASqS,KAAKQ,WAAW,EAC7B,IAAIwnB,OACJ,KAAI,GAAIv6B,GAAI,EAAGA,GAAKE,SAAUF,EAAGu6B,IAAIv6B,GAAKuS,KAAKQ,WAAW,EAAG,QAC7D,OAAOwnB,KAIR,QAASC,2BAA0BjoB,MAClC,MAAO+nB,gCAA+B/nB,MAIvC,QAASkoB,qBAAoBloB,MAC5B,GAAImoB,eAAgBC,yBAAyBpoB,KAAM4Y,QACnD,IAAIyP,aAAcD,yBAAyBpoB,KAAM2W,MACjD,QAAQwR,cAAeE,aAIxB,QAASC,6BAA4BtoB,MACpC,GAAIuoB,WAAYvoB,KAAKQ,WAAW,EAChC,IAAI3J,OACJ,KAAI,GAAIpJ,GAAI,EAAGA,GAAK86B,UAAY,IAAK96B,EAAGoJ,IAAI8L,KAAKulB,oBAAoBloB,MACrE,OAAOnJ,KAIR,QAAS2xB,wBAAuBxoB,MAE/B,MAAOsoB,6BAA4BtoB,MAIpC,QAASyoB,kBAAiBzoB,KAAK0oB,UAC9B,GAAIxlB,KAAMlD,KAAKQ,WAAW,EAC1B,IAAImoB,QACJ,KAAI,GAAIvwB,GAAI,EAAGA,GAAK8K,MAAO9K,EAAG,CAC7B,GAAI4uB,KAAMhnB,KAAKQ,WAAW,EAC1B,IAAI9S,KAAMsS,KAAKQ,WAAW,EAC1BmoB,MAAK3B,KAAOhnB,KAAKQ,WAAW9S,IAAMg7B,WAAa,KAAO,UAAU,QAASn5B,QAAQa,KAAK,IAAIb,QAAQc,KAAK,KAExG,GAAG2P,KAAKrP,EAAI,EAAGqP,KAAKrP,EAAKqP,KAAKrP,GAAG,EAAE,GAAI,CACvC,OAAOg4B,MAIR,QAASC,YAAW5oB,MACnB,GAAI0E,MAAO1E,KAAKQ,WAAW,EAC3B,IAAIqoB,OAAQ7oB,KAAKC,MAAMD,KAAKrP,EAAEqP,KAAKrP,EAAE+T,KACrC,IAAGA,KAAO,EAAI,EAAG1E,KAAKrP,GAAM,GAAK+T,KAAO,GAAM,CAC9C,OAAOmkB,OAIR,QAASC,qBAAoB9oB,MAE5B,GAAIxS,KACJA,GAAEu7B,KAAO/oB,KAAKQ,WAAW,EAEzBR,MAAKrP,GAAKnD,EAAEu7B,IACZ,OAAOv7B,GAIR,QAASw7B,gBAAehpB,KAAMyQ,KAW9B,QAAS2X,0BAAyBpoB,KAAMpI,KAAMqxB,OAC7C,GAAIl4B,GAAIiP,KAAKQ,WAAW,GAAIwnB,IAAKl2B,KAAOm3B,SACxCjpB,MAAKrP,GAAK,CACV,IAAGiH,OAASuf,WACZ,GAAGpmB,IAAM6G,MAAQihB,UAAUrpB,QAAQoI,SAAS,EAAG,KAAM,IAAIxB,OAAM,iBAAmBwB,KAAO,QAAU7G,EACnG,QAAO6G,OAASuf,WAAapmB,EAAI6G,MAChC,IAAK,GAAgBowB,IAAMhoB,KAAKQ,WAAW,EAAG,IAAM,KAAI1O,KAAK+P,IAAK7B,KAAKrP,GAAK,CAAG,OAAOq3B,IACtF,KAAK,GAAgBA,IAAMhoB,KAAKQ,WAAW,EAAG,IAAM,OAAOwnB,IAC3D,KAAK,IAAkB,MAAOhoB,MAAKQ,WAAW,KAAO,CACrD,KAAK,IAAiBwnB,IAAMhoB,KAAKQ,WAAW,EAAI,OAAOwnB,IACvD,KAAK,IAAmB,MAAOR,aAAYxnB,KAAMjP,EAAG,GAAGxB,QAAQa,KAAK,GACpE,KAAK,IAAoB,MAAOs3B,cAAa1nB,KAC7C,KAAK,IAAsB,MAAOqnB,gBAAernB,KACjD,KAAK,IAAkB,MAAO4oB,YAAW5oB,KACzC,KAAK,IAAgB,MAAO8oB,qBAAoB9oB,KAChD,KAAK,IAAoB,MAAO6nB,gBAAe7nB,KAAMjP,GAAIe,KAAK+P,KAAO,GAAGtS,QAAQa,KAAK,GACrF,KAAK,IAAkB,MAAO03B,yBAAwB9nB,KAAMjP,EAAG,GAAGxB,QAAQa,KAAK,GAC/E,KAAK,MAAiC,MAAOo4B,wBAAuBxoB,KACpE,KAAK,MAAqB,MAAOioB,2BAA0BjoB,KAC3D,SAAS,KAAM,IAAI5J,OAAM,wCAA0CwB,KAAO,IAAM7G,IAgBlF,QAASm4B,mBAAkBlpB,KAAMmpB,OAChC,GAAIC,YAAappB,KAAKrP,CACtB,IAAI+T,MAAO1E,KAAKQ,WAAW,EAC3B,IAAI6oB,UAAWrpB,KAAKQ,WAAW,EAC/B,IAAI4mB,UAAY35B,EAAI,CACpB,IAAIi7B,UAAW,CACf,IAAIY,aAAc,EAAGC,OACrB,KAAI97B,EAAI,EAAGA,GAAK47B,WAAY57B,EAAG,CAC9B,GAAI+7B,QAASxpB,KAAKQ,WAAW,EAC7B,IAAIipB,QAASzpB,KAAKQ,WAAW,EAC7B4mB,OAAM35B,IAAM+7B,OAAQC,OAASL,YAE9B,GAAIM,SACJ,KAAIj8B,EAAI,EAAGA,GAAK47B,WAAY57B,EAAG,CAC9B,GAAGuS,KAAKrP,IAAMy2B,MAAM35B,GAAG,GAAI,CAC1B,GAAIk8B,MAAO,IACX,IAAGl8B,EAAE,GAAK07B,MAAO,OAAOA,MAAM/B,MAAM35B,EAAE,GAAG,IAAIsD,GAC5C,IAAK,GAAgB,GAAGiP,KAAKrP,EAAG,IAAMy2B,MAAM35B,GAAG,GAAI,CAAEuS,KAAKrP,GAAG,CAAGg5B,MAAO,MAAS,KAChF,KAAK,IAAoB,GAAG3pB,KAAKrP,GAAKy2B,MAAM35B,GAAG,GAAI,CAAEuS,KAAKrP,EAAEy2B,MAAM35B,GAAG,EAAIk8B,MAAO,MAAS,KACzF,KAAK,MAAiC,GAAG3pB,KAAKrP,GAAKy2B,MAAM35B,GAAG,GAAI,CAAEuS,KAAKrP,EAAEy2B,MAAM35B,GAAG,EAAIk8B,MAAO,MAAS,MAEvG,IAAIR,OAASnpB,KAAKrP,GAAKy2B,MAAM35B,GAAG,GAAI,CAAEk8B,KAAK,KAAO3pB,MAAKrP,EAAIy2B,MAAM35B,GAAG,GACpE,GAAGk8B,KAAM,KAAM,IAAIvzB,OAAM,gCAAkCgxB,MAAM35B,GAAG,GAAK,OAASuS,KAAKrP,EAAI,KAAOlD,GAEnG,GAAG07B,MAAO,CACT,GAAIS,QAAST,MAAM/B,MAAM35B,GAAG,GAC5Bi8B,OAAME,OAAO7Q,GAAKqP,yBAAyBpoB,KAAM4pB,OAAO74B,GAAI8Q,IAAI,MAChE,IAAG+nB,OAAO7X,IAAM,UAAW2X,MAAME,OAAO7Q,GAAK9qB,OAAOy7B,MAAME,OAAO7Q,IAAM,IAAM,IAAM9qB,OAAOy7B,MAAME,OAAO7Q,GAAK,MAC5G,IAAG6Q,OAAO7Q,GAAK,WAAY,OAAO2Q,MAAME,OAAO7Q,IAC9C,IAAK,GAAG2Q,MAAME,OAAO7Q,GAAK,IAE1B,KAAK,KACL,IAAK,MAEL,IAAK,KACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MACL,IAAK,MAEL,IAAK,KACL,IAAK,KACL,IAAK,KACL,IAAK,KAEL,IAAK,MACL,IAAK,MACL,IAAK,MAAO,KAAM,IAClB,IAAK,OAAO,KAAM,IACjB3rB,OAAOs7B,SAAWgB,MAAME,OAAO7Q,GAAK,MACrC,SAAS,KAAM,IAAI3iB,OAAM,yBAA2BszB,MAAME,OAAO7Q,SAE5D,CACN,GAAGqO,MAAM35B,GAAG,KAAO,EAAK,CACvBi7B,SAAWgB,MAAMhB,SAAWN,yBAAyBpoB,KAAM0W,MAC3DtpB,QAAOs7B,SACP,IAAGY,cAAgB,EAAG,CACrB,GAAIO,QAAS7pB,KAAKrP,CAClBqP,MAAKrP,EAAIy2B,MAAMkC,YAAY,EAC3BC,SAAUd,iBAAiBzoB,KAAK0oB,SAChC1oB,MAAKrP,EAAIk5B,YAEJ,IAAGzC,MAAM35B,GAAG,KAAO,EAAG,CAC5B,GAAGi7B,WAAa,EAAG,CAAEY,WAAa77B,CAAGuS,MAAKrP,EAAIy2B,MAAM35B,EAAE,GAAG,EAAI,UAC7D87B,QAAUd,iBAAiBzoB,KAAK0oB,cAC1B,CACN,GAAI3nB,MAAOwoB,QAAQnC,MAAM35B,GAAG,GAC5B,IAAIqK,IAEJ,QAAOkI,KAAKA,KAAKrP,IAChB,IAAK,IAAkBqP,KAAKrP,GAAK,CAAGmH,KAAM8wB,WAAW5oB,KAAO,MAC5D,KAAK,IAAmBA,KAAKrP,GAAK,CAAGmH,KAAM+vB,eAAe7nB,KAAMA,KAAKA,KAAKrP,EAAE,GAAK,MACjF,KAAK,IAAoBqP,KAAKrP,GAAK,CAAGmH,KAAM+vB,eAAe7nB,KAAMA,KAAKA,KAAKrP,EAAE,GAAK,MAClF,KAAK,GAAgBqP,KAAKrP,GAAK,CAAGmH,KAAMkI,KAAKQ,WAAW,EAAG,IAAM,MACjE,KAAK,IAAiBR,KAAKrP,GAAK,CAAGmH,KAAMkI,KAAKQ,WAAW,EAAI,MAC7D,KAAK,GAAgBR,KAAKrP,GAAK,CAAGmH,KAAMkI,KAAKQ,WAAW,EAAG,IAAM,MACjE,KAAK,IAAkBR,KAAKrP,GAAK,CAAGmH,KAAMgyB,UAAU9pB,KAAM,EAAI,MAC9D,KAAK,IAAsBA,KAAKrP,GAAK,CAAGmH,KAAM,GAAIT,MAAKgwB,eAAernB,MAAQ,MAC9E,SAAS,KAAM,IAAI5J,OAAM,mBAAqB4J,KAAKA,KAAKrP,IAEzD+4B,MAAM3oB,MAAQjJ,MAIjBkI,KAAKrP,EAAIy4B,WAAa1kB,IACtB,OAAOglB,OAIR,QAASK,yBAAwBxqB,KAAM4pB,OACtC,GAAInpB,MAAOT,KAAKqF,OAChB1E,WAAUF,KAAM,EAEhB,IAAIgqB,SAASC,OAAQC,OAAQC,QAASC,OACtCpqB,MAAKS,IAAI,OAAQ,eAEjB,IAAI4pB,MAAOrqB,KAAKQ,WAAW,EAC3B,IAAI8pB,kBAAmBtqB,KAAKQ,WAAW,EACvCR,MAAKS,IAAItB,IAAIhR,MAAMkX,OAAOrD,aAAc,UACxCgoB,SAAUhqB,KAAKQ,WAAW,EAC1B,IAAGwpB,UAAY,GAAKA,UAAY,EAAG,KAAM,uBAAyBA,OAClEC,QAASjqB,KAAKQ,WAAW,GAAK2pB,SAAUnqB,KAAKQ,WAAW,EAExD,IAAGwpB,UAAY,GAAKG,UAAYnqB,KAAKrP,EAAG,KAAM,sBACzC,IAAGq5B,UAAY,EAAG,CAAEE,OAASlqB,KAAKQ,WAAW,GAAK4pB,SAAUpqB,KAAKQ,WAAW,GACjF,GAAI+pB,OAAQrB,kBAAkBlpB,KAAMmpB,MAEpC,IAAIqB,OAASF,iBAAkBA,iBAC/B,KAAI,GAAI14B,KAAK24B,OAAOC,KAAK54B,GAAK24B,MAAM34B,EAEpC44B,MAAKC,MAAQR,MAEb,IAAGD,UAAY,EAAG,MAAOQ,KACzB,IAAGxqB,KAAKrP,IAAMy5B,QAAS,KAAM,sBAAwBpqB,KAAKrP,EAAI,QAAUy5B,OACxE,IAAIM,MACJ,KAAMA,MAAQxB,kBAAkBlpB,KAAM,MAAS,MAAM4H,IACrD,IAAIhW,IAAK84B,OAAOF,KAAK54B,GAAK84B,MAAM94B,EAChC44B,MAAKC,OAASR,OAAQC,OACtB,OAAOM,MAIR,QAASG,YAAW3qB,KAAMrS,QAAUqS,KAAKQ,WAAW7S,OAAS,OAAO,MAEpE,QAASi9B,UAAS5qB,KAAMrS,OAAQ8iB,IAC/B,GAAI3J,QAAU+jB,OAAS7qB,KAAKrP,EAAIhD,MAChC,OAAMqS,KAAKrP,EAAIk6B,OAAQ/jB,IAAInE,KAAK8N,GAAGzQ,KAAM6qB,OAAS7qB,KAAKrP,GACvD,IAAGk6B,SAAW7qB,KAAKrP,EAAG,KAAM,IAAIyF,OAAM,cACtC,OAAO0Q,KAGR,QAASgkB,WAAU9qB,KAAMrS,OAAQ8iB,IAChC,GAAI3J,QAAU+jB,OAAS7qB,KAAKrP,EAAIhD,OAAQD,IAAMsS,KAAKQ,WAAW,EAC9D,OAAM9S,QAAU,EAAGoZ,IAAInE,KAAK8N,GAAGzQ,KAAM6qB,OAAS7qB,KAAKrP,GACnD,IAAGk6B,SAAW7qB,KAAKrP,EAAG,KAAM,IAAIyF,OAAM,cACtC,OAAO0Q,KAGR,QAASgjB,WAAU9pB,KAAMrS,QAAU,MAAOqS,MAAKQ,WAAW7S,UAAY,EAEtE,QAASo9B,aAAY/qB,MAAQ,MAAOA,MAAKQ,WAAW,EAAG,KACvD,QAASwqB,cAAahrB,KAAMrS,QAAU,MAAOi9B,UAAS5qB,KAAKrS,OAAOo9B,aAKlE,GAAIE,eAAgBnB,SAGpB,SAASoB,WAAUlrB,MAClB,GAAInP,GAAImP,KAAKQ,WAAW,GAAIzP,EAAIiP,KAAKQ,WAAW,EAChD,OAAOzP,KAAM,EAAOF,EAAIA,IAAM,EAI/B,QAASs6B,4BAA2BnrB,KAAMrS,OAAQmE,MACjD,GAAIs5B,KAAMprB,KAAKQ,WAAW,EAC1B,IAAI6qB,OAAQ,EAAGC,SAAW,WAC1B,IAAIj+B,IAAKP,gBACT,IAAGgF,MAAQA,KAAKy5B,MAAQ,EAAGz+B,iBAAmB,IAC9C,IAAGgF,OAASD,WAAaC,KAAKy5B,OAAS,EAAG,CACzC,GAAIC,WAAYxrB,KAAKQ,WAAW,EAChC,IAAGgrB,UAAW,CAAEH,MAAQ,CAAGC,UAAW,aAEvC,GAAI99B,GAAI49B,IAAMprB,KAAKQ,WAAW4qB,IAAKE,UAAY,EAC/Cx+B,kBAAmBO,EACnB,OAAOG,GAIR,QAASi+B,mCAAkCzrB,MAC1C,GAAI3S,IAAKP,gBACTA,kBAAmB,IACnB,IAAIs+B,KAAMprB,KAAKQ,WAAW,GAAI8S,MAAQtT,KAAKQ,WAAW,EACtD,IAAIgrB,WAAYlY,MAAQ,EAAKoY,OAASpY,MAAQ,EAAKqY,QAAUrY,MAAQ,CACrE,IAAI+X,OAAQ,GAAK/X,MAAQ,EACzB,IAAIsY,MAAMC,QACV,IAAItjB,KACJ,IAAGojB,QAASC,KAAO5rB,KAAKQ,WAAW,EACnC,IAAGkrB,OAAQG,SAAW7rB,KAAKQ,WAAW,EACtC,IAAI8qB,UAAYhY,MAAQ,EAAO,YAAc,WAC7C,IAAIwY,KAAMV,MAAQ,EAAI,GAAKprB,KAAKQ,WAAW4qB,IAAKE,SAChD,IAAGK,QAAS3rB,KAAKrP,GAAK,EAAIi7B,IAC1B,IAAGF,OAAQ1rB,KAAKrP,GAAKk7B,QACrBtjB,GAAExX,EAAI+6B,GACN,KAAIH,QAAS,CAAEpjB,EAAE1G,IAAM,MAAQ0G,EAAExX,EAAI,MAAQwX,GAAE/O,EAAI+O,EAAExX,EACrDjE,iBAAmBO,EACnB,OAAOkb,GAIR,QAASwjB,4BAA2B/rB,KAAMorB,IAAKt5B,MAC9C,GAAI+K,OACJ,IAAI2uB,WAAYxrB,KAAKQ,WAAW,EAChC,IAAGgrB,YAAY,EAAG,CAAE3uB,OAASmD,KAAKQ,WAAW4qB,IAAK,iBAC7C,CAAEvuB,OAASmD,KAAKQ,WAAW4qB,IAAK,aACrC,MAAOvuB,QAIR,QAASmvB,uBAAsBhsB,KAAMrS,OAAQmE,MAC5C,GAAIs5B,KAAMprB,KAAKQ,WAAW1O,OAASD,WAAaC,KAAKy5B,KAAO,GAAKz5B,KAAKy5B,KAAO,EAAI,EAAI,EACrF,IAAGH,MAAQ,EAAG,CAAEprB,KAAKrP,GAAK,OAAO,GACjC,MAAOo7B,4BAA2B/rB,KAAMorB,IAAKt5B,MAG9C,QAASm6B,wBAAuBjsB,KAAMrS,OAAQmE,MAC7C,GAAGA,KAAKy5B,OAAS,GAAKz5B,KAAKy5B,OAAS,EAAG,MAAOS,uBAAsBhsB,KAAMrS,OAAQmE,KAClF,IAAIs5B,KAAMprB,KAAKQ,WAAW,EAC1B,IAAG4qB,MAAQ,EAAG,CAAEprB,KAAKrP,GAAK,OAAO,GACjC,MAAOqP,MAAKQ,WAAW4qB,IAAK,aAI7B,GAAIc,mBAAoB9b,SAGxB,IAAI+b,kBAAmB,SAASnsB,KAAMrS,QACrC,GAAID,KAAMsS,KAAKQ,WAAW,GAAI8C,MAAQtD,KAAKrP,CAC3C,IAAIy7B,OAAQ,KACZ,IAAG1+B,IAAM,GAAI,CAEZsS,KAAKrP,GAAKjD,IAAM,EAChB,IAAGsS,KAAKQ,WAAW,MAAQ,mCAAoC4rB,MAAQ,IACvEpsB,MAAKrP,EAAI2S,MAEV,GAAI+oB,KAAMrsB,KAAKQ,YAAY4rB,MAAM1+B,IAAI,GAAGA,MAAM,EAAG,WAAW6B,QAAQa,KAAK,GACzE,IAAGg8B,MAAOpsB,KAAKrP,GAAK,EACpB,OAAO07B,KAIR,IAAIC,mBAAoB,SAAStsB,KAAMrS,QACtC,GAAI4+B,OAAQvsB,KAAKQ,WAAW,EAC5B,IAAIgsB,YAAaxsB,KAAKQ,WAAW,EACjC,IAAIisB,UAAWzsB,KAAKQ,WAAWgsB,WAAY,OAC3C,IAAIE,WAAY1sB,KAAKQ,WAAW,EAChC,IAAImsB,eAAgB3sB,KAAKQ,WAAW,EACpC,IAAIosB,mBAAoB5sB,KAAKQ,WAAW,EACxC,IAAGosB,oBAAsB,EAAG,MAAOH,UAASl9B,QAAQ,MAAM,IAC1D,IAAIs9B,oBAAqB7sB,KAAKQ,WAAW,EACzC,IAAIssB,YAAa9sB,KAAKQ,WAAW,EACjC,IAAIusB,aAAc/sB,KAAKQ,WAAWqsB,oBAAoB,EAAG,WAAWt9B,QAAQa,KAAK,GACjF,OAAO28B,aAIR,IAAIC,wBAAyB,SAAShtB,KAAMrS,QAC3C,GAAI0W,OAAQrE,KAAKQ,WAAW,GAAK7S,SAAU,EAC3C,QAAO0W,OACN,IAAK,mCAAoC,MAAO8nB,kBAAiBnsB,KAAMrS,OACvE,KAAK,mCAAoC,MAAO2+B,mBAAkBtsB,KAAMrS,OACxE,SAAS,KAAM,uBAAyB0W,OAK1C,IAAI4oB,uBAAwB,SAASjtB,KAAMrS,QAC1C,GAAID,KAAMsS,KAAKQ,WAAW,EAC1B,IAAIhT,GAAIwS,KAAKQ,WAAW9S,IAAK,WAAW6B,QAAQa,KAAM,GACtD,OAAO5C,GAIR,IAAI0/B,iBAAkB,SAASltB,KAAMrS,QACpC,GAAI4jB,KAAMvR,KAAKrP,EAAIhD,MACnB,IAAIw/B,MAAOntB,KAAKQ,WAAW,EAC3B,IAAG2sB,OAAS,EAAG,KAAM,IAAI/2B,OAAM,+BAAiC+2B,KAChE,IAAI7Z,OAAQtT,KAAKQ,WAAW,EAC5BR,MAAKrP,GAAK,CACV,IAAIy8B,aAAaC,gBAAiBC,QAASC,WAAYC,SAAUC,KAAMC,QACvE,IAAGpa,MAAQ,GAAQ8Z,YAAcH,sBAAsBjtB,KAAMuR,IAAMvR,KAAKrP,EACxE,IAAG2iB,MAAQ,IAAQ+Z,gBAAkBJ,sBAAsBjtB,KAAMuR,IAAMvR,KAAKrP,EAC5E,KAAI2iB,MAAQ,OAAY,IAAQga,QAAUL,sBAAsBjtB,KAAMuR,IAAMvR,KAAKrP,EACjF,KAAI2iB,MAAQ,OAAY,EAAQia,WAAaP,uBAAuBhtB,KAAMuR,IAAMvR,KAAKrP,EACrF,IAAG2iB,MAAQ,EAAQka,SAAWP,sBAAsBjtB,KAAMuR,IAAMvR,KAAKrP,EACrE,IAAG2iB,MAAQ,GAAQma,KAAOztB,KAAKQ,WAAW,GAC1C,IAAG8S,MAAQ,GAAQoa,SAAWrG,eAAernB,KAAM,EACnDA,MAAKrP,EAAI4gB,GACT,IAAIsZ,QAAUwC,iBAAiBC,SAASC,UACxC,IAAGC,SAAU3C,QAAQ,IAAI2C,QACzB,QAAQlJ,OAAQuG,QAIjB,SAAS8C,gBAAe3tB,KAAMrS,QAAU,GAAI6L,GAAIwG,KAAKQ,WAAW,GAAIgK,EAAIxK,KAAKQ,WAAW,GAAI8M,EAAItN,KAAKQ,WAAW,GAAIgO,EAAIxO,KAAKQ,WAAW,EAAI,QAAQhH,EAAEgR,EAAE8C,EAAEkB,GAG1J,QAASof,eAAc5tB,KAAMrS,QAAU,GAAIK,GAAI2/B,eAAe3tB,KAAMrS,OAASK,GAAE,GAAK,CAAG,OAAOA,GAM9F,QAAS6/B,eAAc7tB,KAAMrS,QAC5B,GAAImgC,IAAK9tB,KAAKQ,WAAW,EACzB,IAAIqT,KAAM7T,KAAKQ,WAAW,EAC1B,IAAIutB,MAAO/tB,KAAKQ,WAAW,EAC3B,QAAQhH,EAAEs0B,GAAIp9B,EAAEmjB,IAAKka,KAAKA,MAI3B,QAASC,iBAAgBhuB,MACxB,GAAIiuB,IAAKjuB,KAAKQ,WAAW,EACzB,IAAI8S,OAAQtT,KAAKQ,WAAW,EAC5BR,MAAKrP,GAAK,CACV,QAAQiH,KAAMq2B,GAAI3a,MAAOA,OAK1B,QAAS4a,0BAAyBluB,KAAMrS,OAAQmE,MAAQ,MAAOnE,UAAW,EAAI,GAAKs+B,uBAAuBjsB,KAAMrS,OAAQmE,MAGxH,GAAIq8B,cAAe,UAAW,kBAAmB,UACjD,IAAIC,mBAAoBrD,WAGxB,SAASsD,WAAUruB,KAAMrS,QACxB,GAAI2gC,UAAWtuB,KAAKQ,WAAW,GAAI+tB,UAAYvuB,KAAKQ,WAAW,EAAE,KAAMguB,SAAWxuB,KAAKQ,WAAW,EAAE,IACpG,QAAQ8tB,SAAUC,UAAWC,UAI9B,QAASC,aAAYzuB,KAAMrS,QAC1B,GAAIogC,MAAO/tB,KAAKQ,WAAW,EAC3B,IAAIkU,IAAKH,eAAevU,KAExB,QAAQ+tB,KAAMrZ,IAIf,QAASga,gBAAe1uB,KAAMrS,QAC7BqS,KAAKrP,GAAK,CAAGhD,SAAU,CACvB,IAAIgD,GAAIqP,KAAKrP,EAAIhD,MACjB,IAAIghC,SAAUxD,2BAA2BnrB,KAAMrS,OAC/C,IAAI8iB,IAAKzQ,KAAKQ,WAAW,EACzB7P,IAAKqP,KAAKrP,CACV,IAAG8f,KAAO9f,EAAG,KAAM,iCAAmCA,EAAI,OAAS8f,EACnEzQ,MAAKrP,GAAK8f,EACV,OAAOke,SAIR,QAASC,aAAY5uB,KAAMrS,QAC1B,GAAIkhC,SAAU7uB,KAAKQ,WAAW,EAC9B,IAAIsuB,QAAS9uB,KAAKQ,WAAW,EAC7B,IAAIuuB,UAAW/uB,KAAKQ,WAAW,EAC/B,IAAIwuB,SAAUhvB,KAAKQ,WAAW,EAC9B,QAAQ1Q,GAAGY,EAAEq+B,SAAUv1B,EAAEq1B,SAAUjnB,GAAGlX,EAAEs+B,QAAQx1B,EAAEs1B,SAInD,QAASG,YAAWjvB,KAAMrS,QACzB,GAAIkhC,SAAU7uB,KAAKQ,WAAW,EAC9B,IAAIsuB,QAAS9uB,KAAKQ,WAAW,EAC7B,IAAIuuB,UAAW/uB,KAAKQ,WAAW,EAC/B,IAAIwuB,SAAUhvB,KAAKQ,WAAW,EAC9B,QAAQ1Q,GAAGY,EAAEq+B,SAAUv1B,EAAEq1B,SAAUjnB,GAAGlX,EAAEs+B,QAAQx1B,EAAEs1B,SAInD,GAAII,WAAYD,UAGhB,SAASE,aAAYnvB,KAAMrS,QAC1BqS,KAAKrP,GAAK,CACV,IAAIy+B,IAAKpvB,KAAKQ,WAAW,EACzB,IAAI6uB,IAAKrvB,KAAKQ,WAAW,EACzB,IAAI8S,OAAQtT,KAAKQ,WAAW,EAC5BR,MAAKrP,GAAG,EACR,QAAQ0+B,GAAID,GAAI9b,OAIjB,QAASgc,aAAYtvB,KAAMrS,QAC1B,GAAIkJ,OACJmJ,MAAKrP,GAAK,CACVqP,MAAKrP,GAAK,EACVkG,KAAI04B,YAAcvvB,KAAKQ,WAAW,EAClCR,MAAKrP,GAAK,CACV,OAAOkG,KAIR,QAAS24B,YAAWxvB,KAAMrS,QACzB,GAAIkJ,OACJmJ,MAAKrP,GAAK,CACVqP,MAAKyvB,GAAKzvB,KAAKQ,WAAW,EAC1B,OAAO3J,KAIR,GAAI64B,QACH18B,GAAMm8B,YACNr8B,GAAMsd,UACNvd,GAAM,SAASmN,KAAMrS,QAAUqS,KAAKrP,GAAK,IACzCiC,GAAM,SAASoN,KAAMrS,QAAUqS,KAAKrP,GAAK,GACzCgC,GAAMyd,UACN1d,GAAM0d,UACN5d,GAAM88B,YACN/8B,GAAM,SAASyN,KAAMrS,QAAUqS,KAAKrP,GAAK,IACzC2B,GAAM,SAAS0N,KAAMrS,QAAUqS,KAAKrP,GAAK,IACzC0B,GAAM,SAAS2N,KAAMrS,QAAUqS,KAAKrP,GAAK,IACzCyB,EAAMge,UACN8I,EAAM,SAASlZ,KAAMrS,QAAUqS,KAAKrP,GAAK,GACzCqkB,EAAMwa,WACNvW,EAAM,SAASjZ,KAAMrS,QAAUqS,KAAKrP,GAAK,GACzCwB,EAAMie,UACN,EAAM,SAASpQ,KAAMrS,QAAUqS,KAAKrP,GAAK,GAE1C,SAASg/B,eAAc3vB,KAAMrS,OAAQyhC,IACpC,GAAIt/B,GAAIkQ,KAAKrP,CACb,IAAIi/B,OACJ,OAAM5vB,KAAKrP,EAAIb,EAAInC,OAAQ,CAC1B,GAAIkiC,IAAK7vB,KAAKQ,WAAW,EACzBR,MAAKrP,GAAG,CACR,KACCi/B,IAAIjtB,KAAK+sB,MAAMG,IAAI7vB,KAAMlQ,EAAInC,OAASqS,KAAKrP,IAC1C,MAAMiX,GAAK5H,KAAKrP,EAAIb,EAAInC,MAAQ,OAAOiiC,MAE1C,GAAG5vB,KAAKrP,GAAKb,EAAInC,OAAQqS,KAAKrP,EAAIb,EAAInC,MACtC,OAAOiiC,KAIR,GAAIE,iBAAkB/E,WAKtB,SAASgF,WAAU/vB,KAAMrS,QACxB,GAAIH,KACJA,GAAEwiC,QAAUhwB,KAAKQ,WAAW,EAAI7S,SAAU,CAC1C,QAAOH,EAAEwiC,SACR,IAAK,MACL,IAAK,MACL,IAAK,GAAQ,IAAK,GACjB,KACD,SAAS,KAAM,uBAAyBxiC,EAAEwiC,QAE3ChwB,KAAKQ,WAAW7S,OAChB,OAAOH,GAKR,QAASyiC,oBAAmBjwB,KAAMrS,QACjC,GAAGA,SAAW,EAAG,MAAO,KACxB,IAAIiH,EACJ,KAAIA,EAAEoL,KAAKQ,WAAW,MAAM,KAAQ,KAAM,yBAA2B5L,CACrE,OAAO,MAKR,QAASs7B,mBAAkBlwB,KAAMrS,OAAQmE,MACxC,GAAGA,KAAKq+B,IAAK,CAAEnwB,KAAKrP,GAAKhD,MAAQ,OAAO,GACxC,GAAIgD,GAAIqP,KAAKrP,CAEb,IAAIy/B,UAAWpE,sBAAsBhsB,KAAM,EAAGlO,KAC9CkO,MAAKQ,WAAW7S,OAASgD,EAAIqP,KAAKrP,EAClC,OAAOy/B,UAIR,QAASC,mBAAkBrwB,KAAMrS,OAAQmE,MACxC,GAAIoe,KAAMlQ,KAAKQ,WAAW,EAC1B,IAAI8vB,QAAStwB,KAAKQ,WAAW,IAAM,CACnC,IAAIvE,IAAK+D,KAAKQ,WAAW,EACzB,QAAOvE,IACN,IAAK,GAAGA,GAAK,WAAa,MAC1B,KAAK,GAAGA,GAAK,YAAc,MAC3B,KAAK,GAAGA,GAAK,YAAc,MAC3B,KAAK,GAAGA,GAAK,WAAa,OAE3B,GAAI8E,MAAOoqB,2BAA2BnrB,KAAM,EAAGlO,KAC/C,IAAGiP,KAAKpT,SAAW,EAAGoT,KAAO,QAC7B,QAASmP,IAAIA,IAAKqgB,GAAGD,OAAQr0B,GAAGA,GAAI8E,KAAKA,MAI1C,QAASyvB,WAAUxwB,KAAMrS,QACxB,GAAIuV,KAAMlD,KAAKQ,WAAW,EAC1B,IAAIiwB,MAAOzwB,KAAKQ,WAAW,EAC3B,IAAI2gB,QACJ,KAAI,GAAI1zB,GAAI,EAAGA,GAAKgjC,OAAQhjC,EAAG,CAC9B0zB,KAAKxe,KAAK8oB,kCAAkCzrB,OAE7CmhB,KAAKuP,MAAQxtB,GAAKie,MAAKwP,OAASF,IAChC,OAAOtP,MAIR,QAASyP,cAAa5wB,KAAMrS,QAC3B,GAAIkjC,UACJA,QAAOC,KAAO9wB,KAAKQ,WAAW,EAC9BR,MAAKrP,GAAKhD,OAAO,CACjB,OAAOkjC,QAKR,QAASE,WAAU/wB,KAAMrS,QACxB,GAAImgC,IAAK9tB,KAAKQ,WAAW,GAAIqT,IAAM7T,KAAKQ,WAAW,GAAIwwB,IAAMhxB,KAAKQ,WAAW,GAAIywB,IAAMjxB,KAAKQ,WAAW,EACvGR,MAAKQ,WAAW,EAChB,IAAI8S,OAAQtT,KAAKQ,WAAW,EAC5BR,MAAKQ,WAAW,EAChBR,MAAKQ,WAAW,EAChB,QAAQhH,EAAEs0B,GAAIp9B,EAAEmjB,IAAK3Q,IAAI8tB,IAAInd,KAK9B,QAASqd,4BAA2BlxB,KAAMrS,QACzC,GAAI0S,QAAS2tB,gBAAgBhuB,KAC7B,IAAGK,OAAOzI,MAAQ,KAAQ,KAAM,yBAA2ByI,OAAOzI,IAClE,IAAIu5B,UAAWnxB,KAAKQ,WAAW,EAC/B,OAAO2wB,YAAa,EAIrB,GAAIC,wBAAyBzG,UAK7B,SAAS0G,gBAAerxB,KAAMrS,QAC7BqS,KAAKQ,WAAW,EAChB,OAAOR,MAAKQ,WAAW,GAIxB,QAAS8wB,wBAAwBtxB,KAAMrS,QACtC,GAAI0P,GAAI2C,KAAKQ,WAAW,GAAI+wB,KAC5BA,OAAQvxB,KAAKQ,WAAW,EACxB,IAAIgxB,KAAMC,SAASp0B,EAAE,EAAEq0B,QAAQr0B,EAAE,IAAI,EAAEs0B,OAAOt0B,EAAE,IAAI,EAAEu0B,OAAOv0B,EAAE,IAAI,EACnE,QAAQm0B,GAAID,OAIb,QAASM,eAAc7xB,KAAMrS,QAC5B,GAAImkC,KAAM9xB,KAAKQ,WAAW,GAAIuxB,IAAM/xB,KAAKQ,WAAW,GAAIwxB,KAAOhyB,KAAKQ,WAAW,GAAIyxB,KAAOjyB,KAAKQ,WAAW,EAC1G,IAAI8S,OAAQtT,KAAKQ,WAAW,GAAI0xB,QAAUlyB,KAAKQ,WAAW,GAAI2xB,UAAYnyB,KAAKQ,WAAW,EAC1F,IAAI4xB,SAAUpyB,KAAKQ,WAAW,GAAI6xB,UAAYryB,KAAKQ,WAAW,EAC9D,QAAS8xB,KAAMR,IAAKC,KAAMQ,KAAMP,KAAMC,MAAOO,MAAOlf,MAAOmf,OAAQP,QAClEQ,SAAUP,UAAWQ,SAAUP,QAASQ,SAAUP,WAIpD,QAASQ,YAAW7yB,KAAMrS,OAAQmE,MACjCkO,KAAKrP,GAAK,EACV,IAAIoQ,MAAOoqB,2BAA2BnrB,KAAM,EAAGlO,KAC/C,OAAOiP,MAIR,QAAS+xB,gBAAe9yB,KAAMrS,QAC7B,GAAIskB,MAAO4b,cAAc7tB,KACzBiS,MAAK8gB,KAAO/yB,KAAKQ,WAAW,EAC5B,OAAOyR,MAIR,QAAS+gB,aAAYhzB,KAAMrS,OAAQmE,MAClC,GAAImgB,MAAO4b,cAAc7tB,KAAM,EAC/B,IAAI1F,KAAM0xB,sBAAsBhsB,KAAMrS,OAAO,EAAGmE,KAChDmgB,MAAKna,IAAMwC,GACX,OAAO2X,MAIR,QAASghB,cAAajzB,KAAMrS,OAAQmE,MACnC,GAAIohC,MAAOlzB,KAAKQ,WAAW,EAC3B,IAAI2yB,QAASlH,uBAAuBjsB,KAAM,EAAGlO,KAC7C,QAAQohC,KAAMC,QAIf,QAASC,kBAAiBpzB,KAAMrS,QAC/B,GAAI4H,GAAI5H,SAAW,GAAK,EAAI,CAC5B,IAAI6L,GAAIwG,KAAKQ,WAAWjL,GAAIgN,EAAIvC,KAAKQ,WAAWjL,GAC5C7E,EAAIsP,KAAKQ,WAAW,GAAIgC,EAAIxC,KAAKQ,WAAW,EAChDR,MAAKrP,GAAK,CACV,QAAQb,GAAI0J,EAAEA,EAAG9I,EAAEA,GAAIkX,GAAIpO,EAAE+I,EAAG7R,EAAE8R,IAInC,QAAS6wB,UAASrzB,KAAMrS,QACvB,GAAImgC,IAAK9tB,KAAKQ,WAAW,GAAIqT,IAAM7T,KAAKQ,WAAW,EACnD,IAAI8yB,OAAQ7E,YAAYzuB,KACxB,QAAQxG,EAAEs0B,GAAIp9B,EAAEmjB,IAAKka,KAAKuF,MAAM,GAAIC,MAAMD,MAAM,IAIjD,QAASE,aAAYxzB,KAAMrS,QAC1B,GAAIk9B,QAAS7qB,KAAKrP,EAAIhD,OAAS,CAC/B,IAAImgC,IAAK9tB,KAAKQ,WAAW,GAAIqT,IAAM7T,KAAKQ,WAAW,EACnD,IAAIizB,UACJ,OAAMzzB,KAAKrP,EAAIk6B,OAAQ4I,OAAO9wB,KAAK8rB,YAAYzuB,MAC/C,IAAGA,KAAKrP,IAAMk6B,OAAQ,KAAM,kBAC5B,IAAI6I,SAAU1zB,KAAKQ,WAAW,EAC9B,IAAGizB,OAAO9lC,QAAU+lC,QAAU7f,IAAM,EAAG,KAAM,uBAC7C,QAAQra,EAAEs0B,GAAIp9B,EAAEmjB,IAAKrR,EAAEkxB,QAASJ,MAAMG,QAIvC,QAASE,mBAAkB3zB,KAAMrS,OAAQi1B,OACxC,GAAIp1B,KACJ,IAAIghB,GAAIxO,KAAKQ,WAAW,GAAI8M,EAAItN,KAAKQ,WAAW,EAChD,IAAI9P,GAAIsP,KAAKQ,WAAW,GAAI1P,EAAIkP,KAAKQ,WAAW,EAChDhT,GAAEomC,YAAc3X,eAAevrB,GAAK,GACpClD,GAAEqmC,QAAU/iC,EAAI,GAChBtD,GAAEsmC,QAAWhjC,GAAK,EAAK,GACvB,OAAOtD,GAER,QAASumC,cAAa/zB,KAAMrS,QAAS,MAAOgmC,mBAAkB3zB,KAAKrS,OAAO,GAC1E,QAASqmC,eAAch0B,KAAMrS,QAAS,MAAOgmC,mBAAkB3zB,KAAKrS,OAAO,GAG3E,QAASsmC,UAASj0B,KAAMrS,QACvB,GAAIH,KACJA,GAAE4lB,KAAOpT,KAAKQ,WAAW,EAAIhT,GAAE0lC,KAAOlzB,KAAKQ,WAAW,EAAIhT,GAAE8lB,MAAQtT,KAAKQ,WAAW,EACpFhT,GAAE0mC,OAAU1mC,EAAE8lB,OAAS,EAAK,CAC5B3lB,SAAU,CACVH,GAAED,KAAOomC,kBAAkB3zB,KAAMrS,OAAQH,EAAE0mC,OAC3C,OAAO1mC,GAIR,QAAS2mC,YAAWn0B,KAAMrS,QACzBqS,KAAKrP,GAAK,CACV,IAAIkG,MAAOmJ,KAAKQ,WAAW,GAAIR,KAAKQ,WAAW,GAC/C,IAAG3J,IAAI,KAAO,EAAGA,IAAI,IACrB,IAAGA,IAAI,KAAO,EAAGA,IAAI,IACrB,IAAGA,IAAI,GAAK,GAAKA,IAAI,GAAK,EAAG,KAAM,gBAAkBA,GACrD,OAAOA,KAIR,QAASu9B,eAAcp0B,KAAMrS,QAC5B,GAAIskB,MAAO4b,cAAc7tB,KAAM,EAC/B,IAAIlI,KAAMozB,UAAUlrB,KAAM,EAC1BiS,MAAKna,IAAMA,GACXma,MAAKlhB,EAAK+G,MAAQ,MAAQA,MAAQ,MAAS,IAAM,GACjD,OAAOma,MAIR,QAASoiB,cAAar0B,KAAMrS,QAC3B,GAAIskB,MAAO4b,cAAc7tB,KAAM,EAC/B,IAAIs0B,MAAOzf,WAAW7U,KAAM,EAC5BiS,MAAKna,IAAMw8B,IACX,OAAOriB,MAGR,GAAIsiB,sBAAuBrG,wBAG3B,SAASsG,eAAcx0B,KAAMrS,OAAQmE,MACpC,GAAIyf,KAAMvR,KAAKrP,EAAIhD,MACnB,IAAI8mC,MAAOz0B,KAAKQ,WAAW,EAC3B,IAAI4qB,KAAMprB,KAAKQ,WAAW,EAC1B,IAAIk0B,SACJ,IAAGtJ,KAAM,GAAQA,KAAM,IAAMsJ,SAAW3I,2BAA2B/rB,KAAMorB,IACzE,IAAIuJ,MAAO30B,KAAKQ,WAAW+Q,IAAMvR,KAAKrP,EACtCmB,MAAK8iC,MAAQxJ,GACb,QAAQA,IAAKqJ,KAAMC,SAAUC,MAI9B,QAASE,kBAAiB70B,KAAMrS,OAAQmE,MACvC,GAAIwhB,OAAQtT,KAAKQ,WAAW,EAC5B,IAAIs0B,KACJ,IAAItnC,IACHunC,SAAUzhB,MAAQ,EAClB0hB,YAAc1hB,QAAU,EAAK,EAC7B2hB,UAAY3hB,QAAU,EAAK,EAC3B4hB,KAAO5hB,QAAU,EAAK,EACtB6hB,SAAW7hB,QAAU,EAAK,EAC1Bmc,GAAKnc,QAAU,EAAK,KACpB8hB,MAAO9hB,QAAU,GAAK,EAEvB,IAAGxhB,KAAK8iC,QAAU,MAAQE,KAAOpG,eAAe1uB,KAAMrS,OAAO,EAE7DH,GAAEsnC,KAAOA,MAAQ90B,KAAKQ,WAAW7S,OAAO,EACxC,OAAOH,GAIR,QAAS6nC,WAAUr1B,KAAMrS,OAAQmE,MAChC,GAAGA,KAAKy5B,KAAO,EAAG,MAAOyH,aAAYhzB,KAAMrS,OAAQmE,KACnD,IAAI+4B,QAAS7qB,KAAKrP,EAAIhD,MACtB,IAAI2lB,OAAQtT,KAAKQ,WAAW,EAC5B,IAAI80B,OAAQt1B,KAAKQ,WAAW,EAC5B,IAAI4qB,KAAMprB,KAAKQ,WAAW,EAC1B,IAAI+0B,KAAMv1B,KAAKQ,WAAW,EAC1BR,MAAKrP,GAAK,CACV,IAAI6kC,MAAOx1B,KAAKQ,WAAW,EAC3BR,MAAKrP,GAAK,CACV,IAAIoQ,MAAOgrB,2BAA2B/rB,KAAMorB,IAAKt5B,KACjD,IAAI2jC,MAAOC,wBAAwB11B,KAAM6qB,OAAS7qB,KAAKrP,EAAGmB,KAAMyjC,IAChE,QACCD,MAAOA,MACPK,KAAM50B,KACN00B,KAAMA,MAKR,QAASG,mBAAkB51B,KAAMrS,OAAQmE,MACxC,GAAGA,KAAKy5B,KAAO,EAAG,MAAOJ,4BAA2BnrB,KAAMrS,OAAQmE,KAClE,IAAItE,GAAIs9B,UAAU9qB,KAAKrS,OAAO0gC,UAC9B,IAAIvzB,MACJ,IAAGhJ,KAAK8iC,QAAU,KAAQ,CACzB,IAAI,GAAInnC,GAAI,EAAGA,GAAKD,EAAEG,SAAUF,EAAGqN,GAAG6H,KAAK7Q,KAAK+jC,OAAOroC,EAAEC,GAAG,IAC5D,OAAOqN,QAEH,OAAOtN,GAIb,QAASsoC,eAAc91B,KAAMrS,OAAQmE,MACpC,GAAIikC,KAAM9G,WAAWjvB,KAAM,EAC3BA,MAAKrP,GACL,IAAIqlC,MAAOh2B,KAAKQ,WAAW,EAC3B7S,SAAU,CACV,QAAQsoC,0BAA0Bj2B,KAAMrS,OAAQmE,MAAOkkC,MAIxD,QAASE,aAAYl2B,KAAMrS,OAAQmE,MAClC,GAAIikC,KAAM7G,UAAUlvB,KAAM,EAC1BA,MAAKrP,GAAK,CAAGhD,SAAU,EACvB,QAAQooC,IAAKI,yBAAyBn2B,KAAMrS,OAAQmE,KAAMikC,MAI3D,QAASK,mBAAkBp2B,KAAMrS,QAChC,GAAI0oC,aAAcr2B,KAAKQ,WAAW,KAAO,CACzC,IAAI81B,qBAAsBt2B,KAAKQ,WAAW,KAAO,CACjD,IAAI+1B,kBAAmBv2B,KAAKQ,WAAW,EACvC,QAAQ61B,YAAaC,oBAAqBC,kBAI3C,QAASC,cAAax2B,KAAMrS,OAAQmE,MACnC,GAAGA,KAAKy5B,KAAO,EAAG,MAClB,IAAIkL,KAAMz2B,KAAKQ,WAAW,GAAIqT,IAAM7T,KAAKQ,WAAW,EACpD,IAAI8S,OAAQtT,KAAKQ,WAAW,GAAIk2B,MAAQ12B,KAAKQ,WAAW,EACxD,IAAIm2B,UAAW1K,uBAAuBjsB,KAAM,EAAGlO,KAC/C,IAAGA,KAAKy5B,KAAO,EAAGvrB,KAAKQ,WAAW,EAClC,SAAShH,EAAEi9B,IAAI/lC,EAAEmjB,KAAM8iB,SAAUD,MAAOpjB,OAIzC,QAASsjB,YAAW52B,KAAMrS,OAAQmE,MAEjC,MAAO0kC,cAAax2B,KAAMrS,OAAQmE,MAInC,QAAS+kC,kBAAiB72B,KAAMrS,QAC/B,GAAImpC,UACJ,IAAIC,MAAO/2B,KAAKQ,WAAW,EAC3B,OAAOu2B,OAAQD,OAAOn0B,KAAKisB,YAAY5uB,KAAKrS,QAC5C,OAAOmpC,QAIR,QAASE,WAAUh3B,KAAMrS,QACxB,GAAIspC,KAAM9H,YAAYnvB,KAAM,GAC5B,IAAI4vB,KAAMD,cAAc3vB,KAAMrS,OAAO,GAAIspC,IAAI,GAC7C,QAASA,IAAKA,IAAKpH,GAAGD,KAIvB,QAASsH,WAAUl3B,KAAMrS,OAAQmE,MAChC,GAAIhC,GAAIkQ,KAAKrP,CACd,KACCqP,KAAKrP,GAAK,CACV,IAAIy+B,KAAMt9B,KAAKqlC,UAAUF,KAAK,EAAE,KAAKA,IAAI,EACzC,IAAIG,YACJ,KAAI,EAAE,EAAE,EAAE,GAAG,GAAG,IAAI5nC,QAAQ4/B,MAAQ,EAAGpvB,KAAKrP,GAAK,MAC5CymC,aAAclL,kBAAkBlsB,KAAM,EAAGlO,KAC9C,IAAIulC,SAAUr3B,KAAKQ,WAAW,EAC9B,IAAI82B,QAASt3B,KAAKQ,WAAW,EAC7B,IAAI+2B,WAAYzH,gBAAgB9vB,KAAM,EACtC,IAAItS,KAAMsS,KAAKQ,WAAW,EAC1BR,MAAKrP,GAAKjD,GAGV,IAAI8pC,OAAQ,EACZ,KAAI,GAAI/pC,GAAI,EAAGA,EAAIuS,KAAK0P,KAAK/hB,OAAO,IAAKF,EAAG,CAC3C,GAAGuS,KAAKrP,EAAEb,GAAKkQ,KAAK0P,KAAKjiB,GAAI,KAAM,0BACnC,IAAIgqC,KAAMz3B,KAAKA,KAAKrP,EACpB,IAAII,GAAIg7B,2BAA2B/rB,KAAMA,KAAK0P,KAAKjiB,EAAE,GAAGuS,KAAK0P,KAAKjiB,GAAG,EACrE+pC,QAASzmC,CACT,IAAGymC,MAAM7pC,SAAW8pC,IAAMJ,QAAU,EAAEA,SAAU,MAEjD,GAAGG,MAAM7pC,SAAW0pC,SAAWG,MAAM7pC,SAAW0pC,QAAQ,EAAG,CAC1D,KAAM,YAAcA,QAAU,OAASG,MAAM7pC,OAG9CqS,KAAKrP,EAAIb,EAAInC,MAQb,QAASoD,EAAGymC,OACX,MAAM5vB,GAAK5H,KAAKrP,EAAIb,EAAInC,MAAQ,QAASoD,EAAGymC,OAAO,KAIrD,GAAIE,aAAc,SAAS13B,KAAMrS,QAChC,GAAIooC,KAAMnH,YAAY5uB,KAAM,EAC5BA,MAAKrP,GAAK,EACV,IAAIgnC,OAAQzK,gBAAgBltB,KAAMrS,OAAO,GACzC,QAAQooC,IAAK4B,OAId,IAAIC,oBAAqB,SAAS53B,KAAMrS,QACvC,GAAI4jB,KAAMvR,KAAKrP,EAAIhD,MACnBqS,MAAKQ,WAAW,EAChB,IAAIu1B,KAAMnH,YAAY5uB,KAAM,EAC5B,IAAI63B,WAAY73B,KAAKQ,YAAY7S,OAAO,IAAI,EAAG,YAC/CkqC,WAAYA,UAAUtoC,QAAQa,KAAK,GACnC,QAAQ2lC,IAAK8B,WAId,SAASC,eAAc93B,KAAMrS,QAC5B,GAAIH,MAAQsD,CACZA,GAAIkP,KAAKQ,WAAW,EAAIhT,GAAE,GAAKosB,YAAY9oB,IAAMA,CACjDA,GAAIkP,KAAKQ,WAAW,EAAIhT,GAAE,GAAKosB,YAAY9oB,IAAMA,CACjD,OAAOtD,GAIR,QAASuqC,kBAAiB/3B,KAAMrS,QAC/B,GAAIqqC,KAAMh4B,KAAKQ,WAAW,EAC1B,IAAIhT,KACJ,OAAMwqC,MAAM,EAAGxqC,EAAEmV,KAAKirB,cAAc5tB,KAAM,GAC1C,OAAOxS,GAIR,QAASyqC,eAAcj4B,KAAMrS,QAC5B,GAAIqqC,KAAMh4B,KAAKQ,WAAW,EAC1B,IAAIhT,KACJ,OAAMwqC,MAAM,EAAGxqC,EAAEmV,KAAKirB,cAAc5tB,KAAM,GAC1C,OAAOxS,GAIR,QAAS0qC,aAAYl4B,KAAMrS,QAC1BqS,KAAKrP,GAAK,CACV,IAAInD,IAAK2qC,KAAK,EAAGC,IAAI,EACrB5qC,GAAE2qC,KAAOn4B,KAAKQ,WAAW,EACzBhT,GAAE4qC,IAAMp4B,KAAKQ,WAAW,EACxB,OAAOhT,GAIR,GAAI6qC,aAAcjoB,SAClB,IAAIkoB,gBAAiBloB,SAErB,IAAImoB,eAAgBnoB,SAEpB;GAAIooB,eAAgBpoB,SAGpB,IAAIqoB,cAAe3O,SACnB,IAAI4O,aAAc7K,aAClB,IAAI8K,oBAAqB9jB,UACzB,IAAI+jB,2BAA4B7N,WAChC,IAAI8N,iBAAkB9N,WACtB,IAAI+N,iBAAkBjkB,UACtB,IAAIkkB,gBAAiBjP,SACrB,IAAIkP,gBAAiBjO,WACrB,IAAIkO,qBAAsBnP,SAC1B,IAAIoP,mBAAoBvO,UACxB,IAAIwO,sBAAuBrP,SAC3B,IAAIsP,gBAAiBrO,WACrB,IAAIsO,gBAAiBvP,SACrB,IAAIwP,gBAAiBxP,SACrB,IAAIyP,mBAAoBxO,WACxB,IAAIyO,WAAY7O,UAChB,IAAI8O,eAAgB9O,UACpB,IAAI+O,WAAY/O,UAChB,IAAIgP,kBAAmBhP,UACvB,IAAIiP,eAAgBjP,UACpB,IAAIkP,aAAc9O,WAClB,IAAI+O,cAAevF,oBACnB,IAAIwF,eAAgBhP,WACpB,IAAIiP,eAAgBlQ,SACpB,IAAImQ,cAAe1F,oBACnB,IAAI2F,eAAgB9L,iBACpB,IAAI+L,oBAAqBxP,UACzB,IAAIyP,kBAAmBvlB,UACvB,IAAIwlB,WAAY1P,UAChB,IAAI2P,kBAAmBxQ,SACvB,IAAIyQ,gBAAiBxP,WACrB,IAAIyP,iBAAkB1Q,SACtB,IAAI2Q,mBAAoB3Q,SACxB,IAAI4Q,iBAAkB3P,WACtB,IAAI4P,gBAAiB7Q,SACrB,IAAI8Q,oBAAqB7P,WACzB,IAAI8P,eAAgB/Q,SACpB,IAAIgR,kBAAmBhR,SACvB,IAAIiR,mBAAoBlmB,UACxB,IAAImmB,eAAgBhQ,YACpB,IAAIiQ,uBAAwBnR,SAC5B,IAAIoR,WAAYlQ,YAChB,IAAImQ,cAAenP,qBACnB,IAAIoP,cAAetR,SACnB,IAAIuR,iBAAkBxmB,UACtB,IAAIymB,gBAAiBxR,SACrB,IAAIyR,eAAgBzR,SACpB,IAAI0R,kBAAmB1R,SACvB,IAAI2R,oBAAqBrrB,SAIzB,IAAIsrB,0BAA2BtrB,SAC/B,IAAIurB,4BAA6BvrB,SACjC,IAAIwrB,iBAAkBxrB,SACtB,IAAIyrB,gBAAiBzrB,SACrB,IAAI0rB,YAAa1rB,SACjB,IAAI2rB,WAAY3rB,SAChB,IAAI4rB,YAAa5rB,SACjB,IAAI6rB,eAAgB7rB,SACpB,IAAI8rB,gBAAiB9rB,SACrB,IAAI+rB,WAAY/rB,SAChB,IAAIgsB,WAAYhsB,SAChB,IAAIisB,mBAAoBjsB,SACxB,IAAIksB,gBAAiBlsB,SACrB,IAAImsB,gBAAiBnsB,SACrB,IAAIosB,YAAapsB,SACjB,IAAIqsB,cAAersB,SACnB,IAAIssB,YAAatsB,SACjB,IAAIusB,YAAavsB,SACjB,IAAIwsB,WAAYxsB,SAChB,IAAIysB,cAAezsB,SACnB,IAAI0sB,mBAAoB1sB,SACxB,IAAI2sB,kBAAmB3sB,SACvB,IAAI4sB,sBAAuB5sB,SAC3B,IAAI6sB,kBAAmB7sB,SACvB,IAAI8sB,aAAc9sB,SAClB,IAAI+sB,eAAgB/sB,SACpB,IAAIgtB,gBAAiBhtB,SACrB,IAAIitB,cAAejtB,SACnB,IAAIktB,YAAaltB,SACjB,IAAImtB,YAAantB,SACjB,IAAIotB,aAAcptB,SAClB,IAAIqtB,YAAartB,SACjB,IAAIstB,YAAattB,SACjB,IAAIutB,gBAAiBvtB,SACrB,IAAIwtB,iBAAkBxtB,SACtB,IAAIytB,gBAAiBztB,SACrB,IAAI0tB,YAAa1tB,SACjB,IAAI2tB,YAAa3tB,SACjB,IAAI4tB,aAAc5tB,SAClB,IAAI6tB,aAAc7tB,SAClB,IAAI8tB,aAAc9tB,SAClB,IAAI+tB,aAAc/tB,SAClB,IAAIguB,aAAchuB,SAClB,IAAIiuB,gBAAiBjuB,SACrB,IAAIkuB,aAAcluB,SAClB,IAAImuB,aAAcnuB,SAClB,IAAIouB,aAAcpuB,SAClB,IAAIquB,kBAAmBruB,SACvB,IAAIsuB,cAAetuB,SACnB,IAAIuuB,cAAevuB,SACnB,IAAIwuB,kBAAmBxuB,SACvB,IAAIyuB,cAAezuB,SACnB,IAAI0uB,aAAc1uB,SAClB,IAAI2uB,iBAAkB3uB,SACtB,IAAI4uB,gBAAiB5uB,SACrB,IAAI6uB,oBAAqB7uB,SACzB,IAAI8uB,qBAAsB9uB,SAC1B,IAAI+uB,YAAa/uB,SACjB,IAAIgvB,aAAchvB,SAClB,IAAIivB,uBAAwBjvB,SAC5B,IAAIkvB,kBAAmBlvB,SACvB,IAAImvB,2BAA4BnvB,SAChC,IAAIovB,oBAAqBpvB,SACzB,IAAIqvB,cAAervB,SACnB,IAAIsvB,YAAatvB,SACjB,IAAIuvB,cAAevvB,SACnB,IAAIwvB,aAAcxvB,SAClB,IAAIyvB,aAAczvB,SAClB,IAAI0vB,cAAe1vB,SACnB,IAAI2vB,gBAAiB3vB,SACrB,IAAI4vB,cAAe5vB,SACnB,IAAI6vB,cAAe7vB,SACnB,IAAI8vB,gBAAiB9vB,SACrB,IAAI+vB,cAAe/vB,SACnB,IAAIgwB,iBAAkBhwB,SACtB,IAAIiwB,cAAejwB,SACnB,IAAIkwB,iBAAkBlwB,SACtB,IAAImwB,eAAgBnwB,SACpB,IAAIowB,kBAAmBpwB,SACvB,IAAIqwB,mBAAoBrwB,SACxB,IAAIswB,cAAetwB,SACnB,IAAIuwB,eAAgBvwB,SACpB,IAAIwwB,gBAAiBxwB,SACrB,IAAIywB,iBAAkBzwB,SACtB,IAAI0wB,kBAAmB1wB,SACvB,IAAI2wB,oBAAqB3wB,SACzB,IAAI4wB,kBAAmB5wB,SACvB,IAAI6wB,sBAAuB7wB,SAC3B,IAAI8wB,oBAAqB9wB,SACzB,IAAI+wB,mBAAoB/wB,SACxB,IAAIgxB,kBAAmBhxB,SACvB,IAAIixB,kBAAmBjxB,SACvB,IAAIkxB,YAAalxB,SACjB,IAAImxB,YAAanxB,SACjB,IAAIoxB,aAAcpxB,SAClB,IAAIqxB,eAAgBrxB,SACpB,IAAIsxB,eAAgBtxB,SACpB,IAAIuxB,gBAAiBvxB,SACrB,IAAIwxB,eAAgBxxB,SACpB,IAAIyxB,cAAezxB,SACnB,IAAI0xB,cAAe1xB,SACnB,IAAI2xB,iBAAkB3xB,SACtB,IAAI4xB,sBAAuB5xB,SAC3B,IAAI6xB,oBAAqB7xB,SACzB,IAAI8xB,mBAAoB9xB,SACxB,IAAI+xB,WAAY/xB,SAChB,IAAIgyB,eAAgBhyB,SACpB,IAAIiyB,UAAWjyB,SACf,IAAIkyB,YAAalyB,SACjB,IAAImyB,eAAgBnyB,SACpB,IAAIoyB,WAAYpyB,SAChB,IAAIqyB,mBAAoBzW,qBACxB,IAAI0W,iBAAkBtyB,SACtB,IAAIuyB,kBAAmBvyB,SACvB,IAAIwyB,UAAWxyB,SACf,IAAIyyB,aAAczyB,SAClB,IAAI0yB,aAAc1yB,SAClB,IAAI2yB,eAAgB3yB,SACpB,IAAI4yB,uBAAwB5yB,SAC5B,IAAI6yB,cAAe7yB,SACnB,IAAI8yB,gBAAiB9yB,SACrB,IAAI+yB,kBAAmB/yB,SACvB,IAAIgzB,iBAAkBhzB,SACtB,IAAIizB,cAAejzB,SACnB,IAAIkzB,YAAalzB,SACjB,IAAImzB,YAAanzB,SACjB,IAAIozB,gBAAiBpzB,SACrB,IAAIqzB,iBAAkBrzB,SACtB,IAAIszB,YAAatzB,SACjB,IAAIuzB,gBAAiBvzB,SACrB,IAAIwzB,YAAaxzB,SACjB,IAAIyzB,cAAezzB,SACnB,IAAI0zB,eAAgB1zB,SACpB,IAAI2zB,iBAAkB3zB,SACtB,IAAI4zB,mBAAoB5zB,SACxB,IAAI6zB,oBAAqB7zB,SACzB,IAAI8zB,oBAAqB9zB,SACzB,IAAI+zB,kBAAmB/zB,SACvB,IAAIg0B,kBAAmBh0B,SACvB,IAAIi0B,gBAAiBj0B,SACrB,IAAIk0B,mBAAoBl0B,SACxB,IAAIm0B,iBAAkBn0B,SACtB,IAAIo0B,cAAep0B,SACnB,IAAIq0B,aAAcr0B,SAClB,IAAIs0B,kBAAmBt0B,SACvB,IAAIu0B,sBAAuBv0B,SAC3B,IAAIw0B,mBAAoBx0B,SACxB,IAAIy0B,gBAAiBz0B,SACrB,IAAI00B,eAAgB10B,SACpB,IAAI20B,cAAe30B,SACnB,IAAI40B,aAAc50B,SAClB,IAAI60B,iBAAkB70B,SACtB,IAAI80B,YAAa90B,SACjB,IAAI+0B,kBAAmB/0B,SACvB,IAAIg1B,0BAA2Bh1B,SAC/B,IAAIi1B,iBAAkBj1B,SACtB,IAAIk1B,iBAAkBl1B,SACtB,IAAIm1B,iBAAkBn1B,SACtB,IAAIo1B,sBAAuBp1B,SAC3B,IAAIq1B,qBAAsBr1B,SAC1B,IAAIs1B,aAAct1B,SAClB,IAAIu1B,cAAev1B,SACnB,IAAIw1B,iBAAkBx1B,SACtB,IAAIy1B,iBAAkBz1B,SACtB,IAAI01B,YAAa11B,SACjB,IAAI21B,YAAa31B,SACjB,IAAI41B,oBAAqB51B,SACzB,IAAI61B,qBAAsB71B,SAC1B,IAAI81B,eAAgB91B,SACpB,IAAI+1B,cAAe/1B,SACnB,IAAIg2B,gBAAiBh2B,SACrB,IAAIi2B,cAAej2B,SACnB,IAAIk2B,eAAgBl2B,SACpB,IAAIm2B,cAAen2B,SACnB,IAAIo2B,WAAYp2B,SAChB,IAAIq2B,WAAYr2B,SAChB,IAAIs2B,WAAYt2B,SAChB,IAAIu2B,mBAAoBv2B,SACxB,IAAIw2B,kBAAmBx2B,SACvB,IAAIy2B,yBAA0Bz2B,SAC9B,IAAI02B,mBAAoB12B,SACxB,IAAI22B,eAAgB32B,SACpB,IAAI42B,gBAAiB52B,SACrB,IAAI62B,mBAAoB72B,SACxB,IAAI82B,eAAgB92B,SACpB,IAAI+2B,mBAAoB/2B,SACxB,IAAIg3B,oBAAqBh3B,SACzB,IAAIi3B,mBAAoBj3B,SACxB,IAAIk3B,gBAAiBl3B,SACrB,IAAIm3B,wBAAyBn3B,SAC7B,IAAIo3B,wBAAyBp3B,SAC7B,IAAIq3B,uBAAwBr3B,SAC5B,IAAIs3B,sBAAuBt3B,SAC3B,IAAIu3B,oBAAqBv3B,SACzB,IAAIw3B,aAAcx3B,SAClB,IAAIy3B,aAAcz3B,SAClB,IAAI03B,cAAe13B,SACnB,IAAI23B,kBAAmB33B,SACvB,IAAI43B,kBAAmB53B,SACvB,IAAI63B,oBAAqB73B,SACzB,IAAI83B,kBAAmB93B,SACvB,IAAI+3B,iBAAkB/3B,SACtB,IAAIg4B,qBAAsBh4B,SAC1B,IAAIi4B,kBAAmBj4B,SACvB,IAAIk4B,mBAAoBl4B,SACxB,IAAIm4B,cAAen4B,SACnB,IAAIo4B,kBAAmBp4B,SACvB,IAAIq4B,WAAYr4B,SAChB,IAAIs4B,YAAat4B,SACjB,IAAIu4B,WAAYv4B,SAChB,IAAIw4B,YAAax4B,SACjB,IAAIy4B,eAAgBz4B,SACpB,IAAI04B,eAAgB14B,SACpB,IAAI24B,YAAa34B,SACjB,IAAI44B,YAAa54B,SACjB,IAAI64B,kBAAmB74B,SACvB,IAAI84B,mBAAoB94B,SACxB,IAAI+4B,gBAAiB/4B,SACrB,IAAIg5B,eAAgBh5B,SACpB,IAAIi5B,mBAAoBj5B,SACxB,IAAIk5B,YAAal5B,SACjB,IAAIm5B,kBAAmBn5B,SACvB,IAAIo5B,aAAcp5B,SAClB,IAAIq5B,aAAcr5B,SAClB,IAAIs5B,WAAYt5B,SAChB,IAAIu5B,gBAAiBv5B,SACrB,IAAIw5B,eAAgBx5B,SACpB,IAAIy5B,YAAaz5B,SACjB,IAAI05B,eAAgB15B,SACpB,IAAI25B,aAAc35B,SAClB,IAAI45B,YAAa55B,SACjB,IAAI65B,iBAAkB75B,SACtB,IAAI85B,kBAAmB95B,SACvB,IAAI+5B,uBAAwB/5B,SAC5B,IAAIg6B,gBAAiBh6B,SACrB,IAAIi6B,gBAAiBj6B,SACrB,IAAIk6B,gBAAiBl6B,SACrB,IAAIm6B,gBAAiBn6B,SACrB,IAAIo6B,iBAAkBp6B,SACtB,IAAIq6B,mBAAoBr6B,SACxB,IAAIs6B,kBAAmBt6B,SACvB,IAAIu6B,WAAYv6B,SAChB,IAAIw6B,cAAex6B,SACnB,IAAIy6B,YAAaz6B,SACjB,IAAI06B,oBAAqB16B,SACzB,IAAI26B,cAAe36B,SACnB,IAAI46B,uBAAwB56B,SAC5B,IAAI66B,WAAY76B,SAChB,IAAI86B,cAAe96B,SACnB,IAAI+6B,cAAe/6B,SACnB,IAAIg7B,WAAYh7B,SAChB,IAAIi7B,kBAAmBj7B,SACvB,IAAIk7B,eAAgBl7B,SACpB,IAAIm7B,gBAAiBn7B,SACrB,IAAIo7B,oBAAqBp7B,SACzB,IAAIq7B,YAAar7B,SAGjB,SAASs7B,mBAAkB1rC,MAC1B,GAAItS,KAAMsS,KAAKQ,WAAW,EAC1B,OAAOR,MAAKQ,WAAW9S,IAAK,aAI7B,QAASi+C,gBAAe3rC,KAAMrS,OAAQmE,MACrC,GAAImgB,MAAO4b,cAAc7tB,KAAM,KAC7BA,KAAKrP,CACP,IAAI2J,KAAM2xB,uBAAuBjsB,KAAMrS,OAAO,EAAGmE,KACjDmgB,MAAKna,IAAMwC,GACX,OAAO2X,MAGR,QAAS25B,gBAAe5rC,KAAMrS,OAAQmE,MACrC,GAAImgB,MAAO4b,cAAc7tB,KAAM,KAC7BA,KAAKrP,CACP,IAAIk7C,KAAMh3B,WAAW7U,KAAM,EAC3BiS,MAAKna,IAAM+zC,GACX,OAAO55B,MAIR,GAAI65B,QACH,EAAM,KACN95C,EAAK,MACLC,EAAK,MACL85C,GAAK,IACLC,IAAO,IACPC,IAAO,IACPC,IAAM,KACNC,IAAO,IACPC,IAAO,IACPC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAM,KACNC,IAAO,IACPC,IAAM,KACNv3B,IAAM,KACNw3B,GAAM,KAIP,IAAIC,UAAW,QAAUC,oBACxB,GAAIC,QAAS3iC,SAAS,KAAM4iC,QAAU5iC,SAAS,OAAQ6iC,OAAS,OAAQC,KAAO,QAASC,QAAU,OAElG,IAAIC,WAAY,QAASA,WAAUC,IAAKC,MAAOC,OAC9C,GAAIC,SAAWrgD,GAAK,KACpB,IAAI2J,GAAIu2C,IAAIz0C,MAAMmP,UAAWxa,EAAI,CACjC,IAAGuJ,EAAG,KAAKvJ,GAAGuJ,EAAErJ,SAAUF,EAAG,CAC5B,GAAImE,GAAIwW,YAAYpR,EAAEvJ,GACtB,QAAOmE,EAAE,IAGR,IAAK,YAAa,KAGlB,KAAK,UAAW,KAGhB,KAAK,UAEL,IAAK,YAAa,KAGlB,KAAK,WACJ,GAAGA,EAAEkG,KAAO,IAAK,KACjBzK,IAAKy+C,MAAMlyC,SAAShI,EAAEkG,IAAK,IAC3B,MAGD,KAAK,WAEL,IAAK,aAAc,KAGnB,KAAK,SAAU41C,KAAK3sC,KAAOnP,EAAEkG,GAAK,MAGlC,KAAK,MAAO41C,KAAKn9B,GAAK3e,EAAEkG,GAAK,MAG7B,KAAK,UACJ,IAAIlG,EAAEkG,IAAK,KAEZ,KAAK,YAAa41C,KAAKC,OAAS,CAAG,MACnC,KAAK,YAAa,KAGlB,KAAK,KACJ,IAAI/7C,EAAEkG,IAAK,KAEZ,KAAK,OAAQ41C,KAAK32C,EAAI,CAAG,MACzB,KAAK,OAAQ,KAGb,KAAK,KACJ,IAAInF,EAAEkG,IAAK,KAEZ,KAAK,OAAQ41C,KAAKpgC,EAAI,CAAG,MACzB,KAAK,OAAQ,KAGb,KAAK,KACJ,IAAI1b,EAAEkG,IAAK,KAEZ,KAAK,OAAQ41C,KAAKjgD,EAAI,CAAG,MACzB,KAAK,OAAQ,KAGb,KAAK,SACJ,GAAGmE,EAAEg8C,IAAKF,KAAKtpC,MAAQxS,EAAEg8C,IAAIv/C,OAAO,EAAE,EACtC,MAGD,KAAK,UAAWq/C,KAAKG,OAASj8C,EAAEkG,GAAK,MAGrC,KAAK,aAAc,KAGnB,KAAK,UAAW,KAEhB,SACC,GAAGlG,EAAE,GAAGhE,WAAW,KAAO,GAAI,KAAM,4BAA8BgE,EAAE,IAIvE,GAAIgxB,SACJ,IAAG8qB,KAAKpgC,EAAGsV,MAAMjgB,KAAK,qBACtB,IAAG+qC,KAAKjgD,EAAGm1B,MAAMjgB,KAAK,sBACtB6qC,OAAM7qC,KAAK,gBAAkBigB,MAAMpX,KAAK,IAAM,KAC9CiiC,OAAM9qC,KAAK,UACX,OAAOtV,IAIR,SAASygD,SAAQt0C,GAChB,GAAIu0C,WAAY,MAEhB,IAAIh9C,GAAIyI,EAAEV,MAAMm0C,QAAS5/C,GAAK,KAC9B,KAAI4Y,MAAMlV,GAAI,MAAO,EACrBg9C,OAAM,GAAKh9C,EAAE,EAEb,IAAIw8C,KAAM/zC,EAAEV,MAAMo0C,QAClB,IAAGjnC,MAAMsnC,KAAMlgD,GAAKigD,UAAUC,IAAI,GAAIQ,MAAM,GAAIA,MAAM,GAEtD,OAAOA,OAAM,GAAGviC,KAAK,IAAMuiC,MAAM,GAAGx+C,QAAQ89C,QAAQ,SAAWU,MAAM,GAAGviC,KAAK,IAE9E,MAAO,SAASuhC,UAASiB,IACxB,MAAOA,IAAGz+C,QAAQ49C,OAAO,IAAIp9C,MAAMq9C,MAAM3+C,IAAIq/C,SAAStiC,KAAK,OAK7D,IAAIyiC,UAAW,wBAAyBC,SAAW,KACnD,SAASC,UAASngD,EAAG8D,MACpB,GAAIs8C,MAAOt8C,KAAOA,KAAKu8C,SAAW,IAClC,IAAI9lC,KACJ,KAAIva,EAAG,MAAO,KACd,IAAI4D,EAEJ,IAAG5D,EAAEJ,WAAW,KAAO,IAAK,CAC3B2a,EAAExX,EAAIgZ,SAASZ,YAAYnb,EAAEK,OAAOL,EAAEwB,QAAQ,KAAK,GAAGO,MAAM,SAAS,IACrEwY,GAAE/O,EAAIxL,CACN,IAAGogD,KAAM7lC,EAAEyC,EAAIzC,EAAExX,MAGb,IAAIa,EAAI5D,EAAE8K,MAAMo1C,UAAY,CAChC3lC,EAAE/O,EAAIxL,CACNua,GAAExX,EAAIgZ,SAASZ,YAAYnb,EAAE8K,MAAMm1C,UAAUziC,KAAK,IAAIjc,QAAQ0Y,SAAS,KACvE,IAAGmmC,KAAM7lC,EAAEyC,EAAI+hC,SAAS/+C,GAIzB,MAAOua,GAIR,GAAI+lC,OAAQ,8BACZ,IAAIC,OAAQ,mBACZ,IAAIC,OAAQ,oBACZ,SAASC,eAAclhD,KAAMuE,MAC5B,GAAIhC,MAAQkI,EAEZ,IAAI2qB,KAAMp1B,KAAKuL,MAAMw1C,MACrB,IAAGroC,MAAM0c,KAAM,CACd3qB,GAAK2qB,IAAI,GAAGpzB,QAAQg/C,MAAM,IAAIx+C,MAAMy+C,MACpC,KAAI,GAAI/gD,GAAI,EAAGA,GAAKuK,GAAGrK,SAAUF,EAAG,CACnC,GAAID,GAAI2gD,SAASn2C,GAAGvK,GAAIqE,KACxB,IAAGtE,GAAK,KAAMsC,EAAEA,EAAEnC,QAAUH,EAE7Bm1B,IAAMva,YAAYua,IAAI,GAAK7yB,GAAE4gC,MAAQ/N,IAAI+rB,KAAO5+C,GAAE6gC,OAAShO,IAAIgsB,YAEhE,MAAO7+C,GAGRyzB,KAAKqrB,IAAM,mFACX,IAAIC,cAAe,kBACnB,SAASC,eAAcnsB,IAAK7wB,MAC3B,IAAIA,KAAKi9C,QAAS,MAAO,EACzB,IAAIvhD,IAAKqe,WACTre,GAAEA,EAAEG,QAAW8d,UAAU,MAAO,MAC/B0W,MAAOrW,MAAMS,KAAK,GAClBmiC,MAAO/rB,IAAI+N,MACXie,YAAahsB,IAAIgO,QAElB,KAAI,GAAIljC,GAAI,EAAGA,GAAKk1B,IAAIh1B,SAAUF,EAAG,CAAE,GAAGk1B,IAAIl1B,IAAM,KAAM,QACzD,IAAIqC,GAAI6yB,IAAIl1B,EACZ,IAAIuhD,OAAQ,MACZ,IAAGl/C,EAAE0J,EAAGw1C,OAASl/C,EAAE0J,MACd,CACJw1C,OAAS,IACT,IAAGl/C,EAAEiB,EAAE+H,MAAM+1C,cAAeG,OAAS,uBACrCA,QAAS,IAAMvlC,UAAU3Z,EAAEiB,GAAK,OAEjCi+C,OAAS,OACTxhD,GAAEA,EAAEG,QAAU,MAEf,GAAGH,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,QAAYH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KACjE,MAAO/B,GAAEge,KAAK,IAGf,QAASyjC,mBAAkB1hD,KAAMI,QAChC,OAAQJ,KAAKiT,WAAW,GAAIjT,KAAKiT,WAAW,IAI7C,QAAS0uC,eAAc3hD,KAAMuE,MAC5B,GAAIhC,KACJ,IAAIq/C,MAAO,KACX3+B,cAAajjB,KAAM,QAAS6hD,YAAWt3C,IAAKyK,EAAGqO,IAC9C,OAAOrO,EAAEwW,GACR,IAAK,cAAejpB,EAAE4gC,MAAQ54B,IAAI,EAAIhI,GAAE6gC,OAAS74B,IAAI,EAAI,MACzD,KAAK,aAAchI,EAAE6S,KAAK7K,IAAM,MAChC,KAAK,YAAa,MAAO,KAEzB,KAAK,cAAeq3C,KAAO,IAAM,MACjC,KAAK,YAAaA,KAAO,KAAO,MAChC,SAAS,IAAIA,MAAQr9C,KAAKywB,IAAK,KAAM,IAAInsB,OAAM,qBAAuBwa,GAAK,IAAMrO,EAAEwW,KAGrF,OAAOjpB,GAGR,QAASu/C,mBAAkB1sB,IAAKn1B,GAC/B,IAAIA,EAAGA,EAAI8iB,QAAQ,EACnB9iB,GAAE2iB,YAAY,EAAGwS,IAAI+N,MACrBljC,GAAE2iB,YAAY,EAAGwS,IAAIgO,OACrB,OAAOnjC,GAGR,GAAI8hD,kBAAmB57B,aAEvB,SAAS67B,eAAc5sB,IAAK7wB,MAC3B,GAAI8f,IAAKd,WACTa,cAAaC,GAAI,cAAey9B,kBAAkB1sB,KAClD,KAAI,GAAIl1B,GAAI,EAAGA,EAAIk1B,IAAIh1B,SAAUF,EAAGkkB,aAAaC,GAAI,aAAc09B,iBAAiB3sB,IAAIl1B,IACxFkkB,cAAaC,GAAI,YACjB,OAAOA,IAAGL,MAEX,QAASi+B,UAASl1C,KAAO,SAAUpN,WAAY,YAAa,MAAOA,SAAQiB,MAAMO,OAAO,KAAM4L,IAAM,OAAOA,KAAIvK,MAAM,IAAItB,IAAI,SAAST,GAAK,MAAOA,GAAEJ,WAAW,KAG/J,QAAS6hD,eAAczvC,KAAMrS,QAC5B,GAAIH,KACJA,GAAEkiD,MAAQ1vC,KAAKQ,WAAW,EAC1BhT,GAAEmiD,MAAQ3vC,KAAKQ,WAAW,EAC1B,OAAOhT,GAGR,QAASoiD,wBAAuB5vC,KAAMrS,QACrC,GAAIH,KACJA,GAAEglC,MAAQxyB,KAAKQ,WAAW,EAG1B,IAAIqvC,KAAM7vC,KAAKQ,WAAW,EAC1B,IAAGqvC,MAAQ,EAAG,KAAM,2BAA6BA,GAEjDriD,GAAEsiD,MAAQ9vC,KAAKQ,WAAW,EAC1B,QAAOhT,EAAEsiD,OACR,IAAK,GAAG,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,IAAK,OAAQ,KAC5D,SAAS,KAAM,sCAAwCtiD,EAAEsiD,MAE1D1/B,UAAUpQ,KAAMrS,OAAO,GACvB,OAAOH,GAIR,QAASuiD,0BAAyB/vC,KAAMrS,QACvC,MAAOyiB,WAAUpQ,KAAMrS,QAGxB,QAASqiD,uBAAsBhwC,KAAMrS,QACpC,GAAIH,KACJ,IAAI68B,MAAO78B,EAAEyiD,sBAAwBR,cAAczvC,KAAM,EAAIrS,SAAU,CACvE,IAAG08B,KAAKslB,OAAS,EAAG,KAAM,oCAAsCtlB,KAAKslB,KACrE,IAAGtlB,KAAKqlB,MAAQ,GAAKrlB,KAAKqlB,MAAQ,EAAG,KAAM,oCAAsCrlB,KAAKqlB,KACtFliD,GAAEglC,MAAQxyB,KAAKQ,WAAW,EAAI7S,SAAU,CACxC,IAAI4iB,IAAKvQ,KAAKQ,WAAW,EAAI7S,SAAU,CACvCH,GAAE0iD,iBAAmBN,uBAAuB5vC,KAAMuQ,GAAK5iB,SAAU4iB,EACjE/iB,GAAE2iD,mBAAqBJ,yBAAyB/vC,KAAMrS,OACtD,OAAOH,GAGR,QAAS4iD,iBAAgBpwC,KAAMrS,QAC9B,GAAIH,KACJ,IAAI68B,MAAO78B,EAAEyiD,sBAAwBR,cAAczvC,KAAM,EAAIrS,SAAU,CACvE,IAAG08B,KAAKqlB,OAAS,GAAKrlB,KAAKslB,OAAS,EAAG,KAAM,6BAA+BtlB,KAAKqlB,MAAQ,MAAQrlB,KAAKslB,KACtGniD,GAAE6iD,KAAOrwC,KAAKQ,WAAW,GACzBhT,GAAE8iD,kBAAoBtwC,KAAKQ,WAAW,GACtChT,GAAE+iD,sBAAwBvwC,KAAKQ,WAAW,GAC1C,OAAOhT,GAIR,QAASgjD,uCAAsCC,UAC9C,GAAIC,UAAW,EAAQC,aACvB,IAAIC,iBAAkBpB,SAASiB,SAC/B,IAAI/iD,KAAMkjD,gBAAgBjjD,OAAS,EAAGF,EAAGojD,YACzC,IAAIC,eAAeC,cAAeC,aAClCL,eAAgBhhD,YAAYjC,IAC5BijD,eAAc,GAAKC,gBAAgBjjD,MACnC,KAAIF,EAAI,EAAGA,GAAKC,MAAOD,EAAGkjD,cAAcljD,GAAKmjD,gBAAgBnjD,EAAE,EAC/D,KAAIA,EAAIC,IAAI,EAAGD,GAAK,IAAKA,EAAG,CAC3BojD,aAAeF,cAAcljD,EAC7BqjD,gBAAkBJ,SAAW,SAAY,EAAU,EAAI,CACvDK,eAAiBL,UAAY,EAAK,KAClCM,eAAgBF,cAAgBC,aAChCL,UAAWM,cAAgBH,aAE5B,MAAOH,UAAW,MAInB,GAAIO,+BAAgC,WACnC,GAAIC,WAAY,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,IAAM,EAAM,IAAM,GAAM,EAAM,IAAM,GAAM,EACpG,IAAIC,cAAe,MAAQ,KAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MACnI,IAAIC,YAAa,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,MAAQ,KAAQ,MAAQ,MAAQ,MAAQ,MAAQ,IAAQ,KAAQ,KAAQ,KAAQ,KAAQ,MAAQ,MAAQ,KAAQ,KAAQ,MACj1B,IAAIC,KAAM,SAASC,MAAQ,OAASA,KAAK,EAAMA,KAAK,KAAQ,IAC5D,IAAIC,QAAS,SAASC,MAAOC,OAAS,MAAOJ,KAAIG,MAAQC,OACzD,IAAIC,sBAAuB,SAASjB,UACnC,GAAIkB,QAASR,YAAYV,SAAS9iD,OAAS,EAC3C,IAAIikD,gBAAiB,GACrB,KAAI,GAAInkD,GAAIgjD,SAAS9iD,OAAO,EAAGF,GAAK,IAAKA,EAAG,CAC3C,GAAIokD,MAAOpB,SAAShjD,EACpB,KAAI,GAAI2K,GAAI,EAAGA,GAAK,IAAKA,EAAG,CAC3B,GAAGy5C,KAAO,GAAMF,QAAUP,UAAUQ,eACpCC,OAAQ,IAAKD,gBAGf,MAAOD,QAER,OAAO,UAASG,UACf,GAAIrB,UAAWjB,SAASsC,SACxB,IAAIH,QAASD,qBAAqBjB,SAClC,IAAIsB,OAAQtB,SAAS9iD,MACrB,IAAIqkD,kBAAmBriD,YAAY,GACnC,KAAI,GAAIlC,GAAI,EAAGA,GAAK,KAAMA,EAAGukD,iBAAiBvkD,GAAK,CACnD,IAAIwkD,MAAMC,iBAAkBC,QAC5B,KAAIJ,MAAQ,KAAO,EAAG,CACrBE,KAAON,QAAU,CACjBK,kBAAiBD,OAASR,OAAOL,SAAS,GAAIe,QAC5CF,KACFE,MAAON,OAAS,GAChBO,kBAAmBzB,SAASA,SAAS9iD,OAAS,EAC9CqkD,kBAAiBD,OAASR,OAAOW,iBAAkBD,MAEpD,MAAMF,MAAQ,EAAG,GACdA,KACFE,MAAON,QAAU,CACjBK,kBAAiBD,OAASR,OAAOd,SAASsB,OAAQE,QAChDF,KACFE,MAAON,OAAS,GAChBK,kBAAiBD,OAASR,OAAOd,SAASsB,OAAQE,MAEnDF,MAAQ,EACRI,UAAW,GAAK1B,SAAS9iD,MACzB,OAAMwkD,SAAW,EAAG,CACnBF,KAAON,QAAU,CACjBK,kBAAiBD,OAASR,OAAOL,SAASiB,UAAWF,QACnDF,QACAI,QACFF,MAAON,OAAS,GAChBK,kBAAiBD,OAASR,OAAOd,SAASsB,OAAQE,QAChDF,QACAI,SAEH,MAAOH,qBAKT,IAAII,4BAA6B,SAASN,SAAUO,KAAMC,cAAeC,SAAU9/B,GAElF,IAAIA,EAAGA,EAAI4/B,IACX,KAAIE,SAAUA,SAAWtB,8BAA8Ba,SACvD,IAAIC,OAAOS,KACX,KAAIT,MAAQ,EAAGA,OAASM,KAAK1kD,SAAUokD,MAAO,CAC7CS,MAAQH,KAAKN,MACbS,QAASD,SAASD,cAClBE,QAAUA,OAAO,EAAMA,OAAO,GAAM,GACpC//B,GAAEs/B,OAASS,QACTF,cAEH,OAAQ7/B,EAAG6/B,cAAeC,UAG3B,IAAIE,yBAA0B,SAASX,UACtC,GAAIQ,eAAgB,EAAGC,SAAWtB,8BAA8Ba,SAChE,OAAO,UAASO,MACf,GAAI5/B,GAAI2/B,2BAA2B,KAAMC,KAAMC,cAAeC,SAC9DD,eAAgB7/B,EAAE,EAClB,OAAOA,GAAE,IAKX,SAASigC,sBAAqB1yC,KAAMrS,OAAQmE,KAAM+E,KACjD,GAAIrJ,IAAM8Y,IAAKykB,YAAY/qB,MAAO2yC,kBAAmB5nB,YAAY/qB,MACjE,IAAGlO,KAAKggD,SAAUtkD,EAAEolD,SAAWpC,sCAAsC1+C,KAAKggD,SAC1Ej7C,KAAIg8C,MAAQrlD,EAAEmlD,oBAAsBnlD,EAAEolD,QACtC,IAAG/7C,IAAIg8C,MAAOh8C,IAAIi8C,eAAiBL,wBAAwB3gD,KAAKggD,SAChE,OAAOtkD,GAIR,QAASulD,sBAAqB/yC,KAAMrS,OAAQmN,IAC3C,GAAItN,GAAIsN,MAAUtN,GAAEwlD,KAAOhzC,KAAKQ,WAAW,EAAIR,MAAKrP,GAAK,CACzD,IAAGnD,EAAEwlD,OAAS,EAAGxlD,EAAE6kD,KAAOjC,gBAAgBpwC,KAAMrS,YAC3CH,GAAE6kD,KAAOrC,sBAAsBhwC,KAAMrS,OAC1C,OAAOH,GAER,QAASylD,gBAAejzC,KAAMrS,OAAQmE,MACrC,GAAItE,IAAM62B,KAAMrkB,KAAKQ,WAAW,GAChC,IAAGhT,EAAE62B,KAAM0uB,qBAAqB/yC,KAAMrS,OAAO,EAAGH,OAC3CklD,sBAAqB1yC,KAAMrS,OAAO,EAAGmE,KAAMtE,EAChD,OAAOA,GAIR,QAAS0lD,SAAQloC,GAChB,GAAIxd,GAAIwd,EAAE3c,OAAO2c,EAAE,KAAK,IAAI,EAAE,EAAE,EAChC,QAAQpR,SAASpM,EAAEa,OAAO,EAAE,GAAG,IAAIuL,SAASpM,EAAEa,OAAO,EAAE,GAAG,IAAIuL,SAASpM,EAAEa,OAAO,EAAE,GAAG,KAEtF,QAAS8kD,SAAQvF,KAChB,IAAI,GAAIngD,GAAE,EAAED,EAAE,EAAGC,GAAG,IAAKA,EAAGD,EAAIA,EAAE,KAAOogD,IAAIngD,GAAG,IAAI,IAAImgD,IAAIngD,GAAG,EAAE,EAAEmgD,IAAIngD,GACvE,OAAOD,GAAE6Z,SAAS,IAAIvE,cAAczU,OAAO,GAG5C,QAAS+kD,SAAQxF,KAChB,GAAIrrC,GAAIqrC,IAAI,GAAG,IAAKyF,EAAIzF,IAAI,GAAG,IAAKz5C,EAAEy5C,IAAI,GAAG,GAC7C,IAAI12C,GAAI/F,KAAKgK,IAAIoH,EAAG8wC,EAAGl/C,GAAI6C,EAAI7F,KAAK+J,IAAIqH,EAAG8wC,EAAGl/C,GAAIqO,EAAItL,EAAIF,CAC1D,IAAGwL,IAAM,EAAG,OAAQ,EAAG,EAAGD,EAE1B,IAAI+wC,IAAK,EAAGn8C,EAAI,EAAGo8C,GAAMr8C,EAAIF,CAC7BG,GAAIqL,GAAK+wC,GAAK,EAAI,EAAIA,GAAKA,GAC3B,QAAOr8C,GACN,IAAKqL,GAAG+wC,KAAOD,EAAIl/C,GAAKqO,EAAI,GAAG,CAAG,MAClC,KAAK6wC,GAAGC,IAAOn/C,EAAIoO,GAAKC,EAAI,CAAI,MAChC,KAAKrO,GAAGm/C,IAAO/wC,EAAI8wC,GAAK7wC,EAAI,CAAI,OAEjC,OAAQ8wC,GAAK,EAAGn8C,EAAGo8C,GAAK,GAGzB,QAASC,SAAQC,KAChB,GAAIx8C,GAAIw8C,IAAI,GAAIt8C,EAAIs8C,IAAI,GAAInxC,EAAImxC,IAAI,EACpC,IAAIjxC,GAAIrL,EAAI,GAAKmL,EAAI,GAAMA,EAAI,EAAIA,GAAItL,EAAIsL,EAAIE,EAAE,CACjD,IAAIorC,MAAO52C,EAAEA,EAAEA,GAAI08C,GAAK,EAAEz8C,CAE1B,IAAI08C,EACJ,IAAGx8C,IAAM,EAAG,OAAOu8C,GAAG,GACrB,IAAK,GAAG,IAAK,GAAGC,EAAInxC,EAAIkxC,EAAI9F,KAAI,IAAMprC,CAAGorC,KAAI,IAAM+F,CAAG,MACtD,KAAK,GAAGA,EAAInxC,GAAK,EAAIkxC,GAAO9F,KAAI,IAAM+F,CAAG/F,KAAI,IAAMprC,CAAG,MACtD,KAAK,GAAGmxC,EAAInxC,GAAKkxC,GAAK,EAAM9F,KAAI,IAAMprC,CAAGorC,KAAI,IAAM+F,CAAG,MACtD,KAAK,GAAGA,EAAInxC,GAAK,EAAIkxC,GAAO9F,KAAI,IAAM+F,CAAG/F,KAAI,IAAMprC,CAAG,MACtD,KAAK,GAAGmxC,EAAInxC,GAAKkxC,GAAK,EAAM9F,KAAI,IAAMprC,CAAGorC,KAAI,IAAM+F,CAAG,MACtD,KAAK,GAAGA,EAAInxC,GAAK,EAAIkxC,GAAO9F,KAAI,IAAM+F,CAAG/F,KAAI,IAAMprC,CAAG,OAEvD,IAAI,GAAI/U,GAAI,EAAGA,GAAK,IAAKA,EAAGmgD,IAAIngD,GAAK0D,KAAKC,MAAMw8C,IAAIngD,GAAG,IACvD,OAAOmgD,KAIR,QAASgG,UAAS9gC,IAAK+gC,MACtB,GAAGA,OAAS,EAAG,MAAO/gC,IACtB,IAAI2gC,KAAML,QAAQF,QAAQpgC,KAC1B,IAAI+gC,KAAO,EAAGJ,IAAI,GAAKA,IAAI,IAAM,EAAII,UAChCJ,KAAI,GAAK,GAAK,EAAIA,IAAI,KAAO,EAAII,KACtC,OAAOV,SAAQK,QAAQC,MAIxB,GAAIK,SAAU,EAAGC,QAAU,GAAIC,QAAU,EAAGC,IAAMH,OAClD,SAASI,UAAS7oB,OAAS,OAAUA,OAAU,IAAI4oB,IAAK,GAAG,KAAOA,IAAM,EACxE,QAASE,SAAQC,IAAM,QAAUA,GAAK,GAAGH,IAAM,IAAM,GAAK,GAAG,IAC7D,QAASI,YAAWC,KAAO,QAAUA,IAAML,IAAM,GAAGA,IAAI,IAAK,GAAG,IAChE,QAASM,aAAYC,OAAS,MAAOH,YAAWF,QAAQD,SAASM,SACjE,QAASC,UAASD,MAAOE,MACxB,GAAGH,YAAYC,QAAUA,MAAO,CAC/B,IAAIP,IAAIH,QAASG,IAAID,UAAWC,IAAK,GAAGM,YAAYC,SAAWA,MAAO,KACtE,IAAGP,MAAQD,QAAS,IAAIC,IAAIH,QAAQ,EAAGG,IAAIF,UAAWE,IAAK,GAAGM,YAAYC,SAAWA,MAAO,KAC5F,IAAGP,MAAQF,QAASE,IAAMH,SAK5B,GAAIa,qBACHC,KAAQ,OACRC,MAAS,QACTC,OAAU,aACVC,OAAU,WACVC,OAAU,YACVC,WAAc,iBACdC,WAAc,eACdC,kBAAqB,WACrBC,WAAc,SACdC,UAAa,WACbC,eAAkB,cAClBC,eAAkB,kBAClBC,eAAkB,gBAClBC,sBAAyB,YACzBC,cAAiB,YAGlB,IAAIr0B,UAEJ,IAAIM,UAGJ,SAASg0B,aAAY5kD,EAAGe,MACvBuvB,OAAOu0B,QACP,IAAInlD,QACJM,GAAE,GAAG+H,MAAMmP,UAAUmD,QAAQ,SAASpd,GACrC,GAAI4D,GAAIwW,YAAYpa,EACpB,QAAO4D,EAAE,IACR,IAAK,SAAU,IAAK,UAAW,IAAK,WAAY,KAGhD,KAAK,SAAU,KACf,KAAK,UAAWyvB,OAAOu0B,MAAMjzC,KAAKlS,KAAOA,QAAW,MAGpD,KAAK,eACJ,GAAGmB,EAAEgiC,YAAanjC,KAAKmjC,YAAchiC,EAAEgiC,WACvC,MACD,KAAK,iBAAkB,IAAK,iBAAkB,KAG9C,KAAK,WACJ,IAAInjC,KAAKolD,QAASplD,KAAKolD,UACvB,IAAGjkD,EAAEkkD,QAASrlD,KAAKolD,QAAQC,QAAUl8C,SAAShI,EAAEkkD,QAAS,GACzD,IAAGlkD,EAAEmkD,MAAOtlD,KAAKolD,QAAQE,MAAQn8C,SAAShI,EAAEmkD,MAAO,GACnD,IAAGnkD,EAAEiiD,KAAMpjD,KAAKolD,QAAQhC,KAAO12C,WAAWvL,EAAEiiD,KAE5C,IAAGjiD,EAAEg8C,IAAKn9C,KAAKolD,QAAQjI,IAAMh8C,EAAEg8C,IAAInlC,UAAU7W,EAAEg8C,IAAIjgD,OAAS,EAC5D,MACD,KAAK,aAAc,IAAK,aAAc,KAGtC,KAAK,WACJ,IAAI8C,KAAKulD,QAASvlD,KAAKulD,UACvB,IAAGpkD,EAAEmkD,MAAOtlD,KAAKulD,QAAQD,MAAQn8C,SAAShI,EAAEmkD,MAAO,GACnD,IAAGnkD,EAAEiiD,KAAMpjD,KAAKulD,QAAQnC,KAAO12C,WAAWvL,EAAEiiD,KAE5C,IAAGjiD,EAAEg8C,IAAKn9C,KAAKulD,QAAQpI,IAAMh8C,EAAEg8C,IAAInlC,UAAU7W,EAAEg8C,IAAIjgD,OAAS,EAC5D,MACD,KAAK,aAAc,IAAK,aAAc,KAEtC,SAAS,GAAGmE,KAAKywB,IAAK,KAAM,gBAAkB3wB,EAAE,GAAK,eAMxD,QAASqkD,eAAcllD,EAAGe,MACzBuvB,OAAO60B,YACP,IAAIlzC,GAAIkD,KAAK5V,IAAIqN,OACjB,KAAI,GAAIlQ,GAAE,EAAGA,EAAIuV,EAAErV,SAAUF,EAAG4zB,OAAO60B,UAAUlzC,EAAEvV,IAAM6C,IAAIqN,OAAOqF,EAAEvV,GACtE,IAAIuJ,GAAIjG,EAAE,GAAG+H,MAAMmP,SACnB,KAAIxa,EAAE,EAAGA,EAAIuJ,EAAErJ,SAAUF,EAAG,CAC3B,GAAImE,GAAIwW,YAAYpR,EAAEvJ,GACtB,QAAOmE,EAAE,IACR,IAAK,WAAY,IAAK,aAAc,IAAK,aAAc,IAAK,YAAa,KACzE,KAAK,UAAW,CACf,GAAIyL,GAAE8L,YAAYY,SAASnY,EAAEukD,aAAc/9C,EAAEwB,SAAShI,EAAEwkD,SAAS,GACjE/0B,QAAO60B,UAAU99C,GAAKiF,CAAG,IAAGjF,EAAE,EAAG9H,IAAIsN,KAAKP,EAAEjF,GAC3C,KACF,SAAS,GAAGtG,KAAKywB,IAAK,KAAM,gBAAkB3wB,EAAE,GAAK,gBAKxD,QAASykD,eAAcC,GAAIxkD,MAC1B,GAAItE,IAAK,eACP,EAAE,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,KAAK,IAAI,MAAM4d,QAAQ,SAAS5R,GAC1D,IAAI,GAAI/L,GAAI+L,EAAE,GAAI/L,GAAK+L,EAAE,KAAM/L,EAAG,GAAG6oD,GAAG7oD,KAAOoE,UAAWrE,EAAEA,EAAEG,QAAW8d,UAAU,SAAS,MAAM2qC,SAAS3oD,EAAE0oD,WAAW1sC,UAAU6sC,GAAG7oD,OAEtI,IAAGD,EAAEG,SAAW,EAAG,MAAO,EAC1BH,GAAEA,EAAEG,QAAU,YACdH,GAAE,GAAKie,UAAU,UAAW,MAAQijC,MAAMlhD,EAAEG,OAAO,IAAK4B,QAAQ,KAAM,IACtE,OAAO/B,GAAEge,KAAK,IAIf,QAAS+qC,eAAcxlD,EAAGe,MACzBuvB,OAAOm1B,SACPzlD,GAAE,GAAG+H,MAAMmP,UAAUmD,QAAQ,SAASpd,GACrC,GAAI4D,GAAIwW,YAAYpa,EACpB,QAAO4D,EAAE,IACR,IAAK,WAAY,IAAK,YAAa,IAAK,aAAc,IAAK,aAAc,KAGzE,KAAK,YAAcA,GAAE,EACpB,IAAGA,EAAEwkD,SAAUxkD,EAAEwkD,SAAWx8C,SAAShI,EAAEwkD,SAAU,GACjD,IAAGxkD,EAAE6kD,OAAQ7kD,EAAE6kD,OAAS78C,SAAShI,EAAE6kD,OAAQ,GAC3Cp1B,QAAOm1B,OAAO7zC,KAAK/Q,EAAI,MACxB,KAAK,QAAS,KAGd,KAAK,aAAc,IAAK,eAAgB,KAGxC,KAAK,cAAe,IAAK,gBAAiB,IAAK,gBAAiB,KAEhE,KAAK,UAAW,IAAK,YAAa,KAClC,KAAK,OAAQ,KACb,SAAS,GAAGE,KAAKywB,IAAK,KAAM,gBAAkB3wB,EAAE,GAAK,iBAKxD,QAAS8kD,eAAcC,SACtB,GAAInpD,KACJA,GAAEA,EAAEG,QAAW8d,UAAU,UAAU,KACnCkrC,SAAQvrC,QAAQ,SAAS1a,GAAKlD,EAAEA,EAAEG,QAAW8d,UAAU,KAAM,KAAM/a,IACnElD,GAAEA,EAAEG,QAAU,YACd,IAAGH,EAAEG,SAAW,EAAG,MAAO,EAC1BH,GAAE,GAAKie,UAAU,UAAU,MAAOijC,MAAMlhD,EAAEG,OAAO,IAAI4B,QAAQ,KAAK,IAClE,OAAO/B,GAAEge,KAAK,IAIf,GAAIorC,eAAe,QAAUC,cAC7B,GAAIC,aAAc,+BAClB,IAAIC,aAAc,+BAClB,IAAIC,YAAa,2BAEjB,OAAO,SAASJ,eAAcrpD,KAAMuE,MAEnC,GAAIf,EAGJ,IAAIA,EAAExD,KAAKuL,MAAMg+C,aAAeb,cAAcllD,EAAGe,KAMjD,IAAIf,EAAExD,KAAKuL,MAAMk+C,YAAcrB,YAAY5kD,EAAGe,KAM9C,IAAIf,EAAExD,KAAKuL,MAAMi+C,aAAeR,cAAcxlD,EAAGe,KAOjD,OAAOuvB,WAIR,IAAI41B,iBAAkBxrC,UAAU,aAAc,MAC7C0W,MAASrW,MAAMS,KAAK,GACpB6Z,WAAYta,MAAMM,IAGnBmX,MAAK2zB,IAAM,4EAEX,SAASC,eAAcC,GAAItlD,MAC1B,GAAItE,IAAKqe,WAAYorC,iBAAkB1hD,CACvC,KAAIA,EAAI8gD,cAAce,GAAG9mD,OAAS,KAAM9C,EAAEA,EAAEG,QAAU4H,CACtD/H,GAAEA,EAAEG,QAAU,mIACdH,GAAEA,EAAEG,QAAU,0HACdH,GAAEA,EAAEG,QAAU,yFACdH,GAAEA,EAAEG,QAAU,8FACd,IAAI4H,EAAImhD,cAAc5kD,KAAK6kD,SAAWnpD,EAAEA,EAAEG,QAAU,CACpDH,GAAEA,EAAEG,QAAU,sFACdH,GAAEA,EAAEG,QAAU,mBACdH,GAAEA,EAAEG,QAAU,sGAEd,IAAGH,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,eAAmBH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KACxE,MAAO/B,GAAEge,KAAK,IAGf,QAAS6rC,cAAa9pD,KAAMI,QAC3B,GAAIulC,MAAO3lC,KAAKiT,WAAW,EAC3B,IAAI82C,WAAY/jC,mBAAmBhmB,KAAKI,OAAO,EAC/C,QAAQulC,KAAMokB,WAIf,QAASC,eAAchqD,KAAMI,QAC5B,GAAIkJ,MAAOyc,SACXzc,KAAI2gD,SAAWjqD,KAAKiT,WAAW,EAC/B3J,KAAI4gD,MAAQxhC,gBAAgB1oB,KAAM,EAClCsJ,KAAI6gD,IAAMnqD,KAAKiT,WAAW,EAC1B3J,KAAI8gD,IAAMpqD,KAAKiT,WAAW,EAC1B3J,KAAI+gD,IAAMrqD,KAAKiT,WAAW,EAC1B3J,KAAIghD,QAAUtqD,KAAKiT,WAAW,EAC9B3J,KAAIihD,SAAWvqD,KAAKiT,WAAW,EAC/BjT,MAAKoD,GACLkG,KAAIkhD,SAAWviC,eAAejoB,KAAM,EACpCsJ,KAAImhD,YAAczqD,KAAKiT,WAAW,EAClC3J,KAAIkK,KAAOwS,mBAAmBhmB,KAAMI,OAAS,GAE7CkJ,KAAIyc,MAAM2kC,KAAOphD,IAAI6gD,MAAQ,GAC7B7gD,KAAIyc,MAAM4kC,OAASrhD,IAAI4gD,MAAMvhC,OAC7Brf,KAAIyc,MAAM6kC,UAAYthD,IAAI4gD,MAAMthC,UAChCtf,KAAIyc,MAAM8kC,QAAUvhD,IAAI4gD,MAAMrhC,QAC9Bvf,KAAIyc,MAAM+kC,OAASxhD,IAAI4gD,MAAMphC,OAC7Bxf,KAAIyc,MAAMglC,SAAWzhD,IAAI4gD,MAAMnhC,SAC/Bzf,KAAIyc,MAAMilC,OAAS1hD,IAAI4gD,MAAMlhC,OAC7B1f,KAAIyc,MAAMklC,IAAM3hD,IAAI8gD,IAAM,CAC1B9gD,KAAIyc,MAAMmlC,IAAM5hD,IAAI8gD,IAAM,CAC1B,OAAO9gD,KAIR,QAAS6hD,aAAYnrD,KAAMI,QAC1B,GAAIgrD,YAAaprD,KAAKiT,WAAW,EACjC,IAAI0yB,MAAO3lC,KAAKiT,WAAW,EAC3B4P,WAAU7iB,KAAMI,OAAO,EACvB,QAAQogC,KAAK4qB,WAAYzlB,KAAKA,MAI/B,QAAS0lB,eAAcrrD,KAAMuE,MAC5BuvB,OAAO60B,YACP,KAAI,GAAItkD,KAAKtB,KAAIqN,OAAQ0jB,OAAO60B,UAAUtkD,GAAKtB,IAAIqN,OAAO/L,EAE1DyvB,QAAOm1B,SACP,IAAIlyC,OAAQ,EACZ,IAAI6qC,MAAO,KACX3+B,cAAajjB,KAAM,QAASsrD,YAAW/gD,IAAKyK,EAAGqO,IAC9C,OAAOrO,EAAEwW,GACR,IAAK,SACJsI,OAAO60B,UAAUp+C,IAAI,IAAMA,IAAI,EAAIxH,KAAIsN,KAAK9F,IAAI,GAAIA,IAAI,GACxD,MACD,KAAK,UAAW,KAChB,KAAK,gBAAiB,KACtB,KAAK,UAAW,KAChB,KAAK,YAAa,KAClB,KAAK,QACJ,GAAGwM,QAAU,UAAW,CACvB+c,OAAOm1B,OAAO7zC,KAAK7K,KAEpB,KACD,KAAK,WAAY,KACjB,KAAK,SAAU,KACf,KAAK,cAAe,KACpB,KAAK,kBAAmB,KACxB,KAAK,qBAAsB,KAC3B,KAAK,mBAAoB,KACzB,KAAK,qBAAsB,KAC3B,KAAK,uBAAwB,KAC7B,KAAK,mBAAoB,KACzB,KAAK,eAAgBwM,MAAQ,MAAQ,MACrC,KAAK,aAAcA,MAAQ,EAAI,MAC/B,KAAK,gBAAiBA,MAAQ,OAAS,MACvC,KAAK,cAAeA,MAAQ,EAAI,MAChC,KAAK,aAAcA,MAAQ,SAAW,MACtC,KAAK,WAAYA,MAAQ,EAAI,MAC7B,KAAK,gBAAiBA,MAAQ,OAAS,MACvC,KAAK,cAAeA,MAAQ,EAAI,MAChC,KAAK,kBAAmBA,MAAQ,SAAW,MAC3C,KAAK,gBAAiBA,MAAQ,EAAI,MAClC,KAAK,uBAAwBA,MAAQ,cAAgB,MACrD,KAAK,qBAAsBA,MAAQ,EAAI,MACvC,KAAK,kBAAmBA,MAAQ,SAAW,MAC3C,KAAK,gBAAiBA,MAAQ,EAAI,MAClC,KAAK,iBAAkBA,MAAQ,QAAU,MACzC,KAAK,eAAgBA,MAAQ,EAAI,MACjC,KAAK,eAAgBA,MAAQ,MAAQ,MACrC,KAAK,aAAcA,MAAQ,EAAI,MAC/B,KAAK,sBAAuBA,MAAQ,aAAe,MACnD,KAAK,oBAAqBA,MAAQ,EAAI,MACtC,KAAK,uBAAwBA,MAAQ,cAAgB,MACrD,KAAK,qBAAsBA,MAAQ,EAAI,MACvC,KAAK,wBAAyBA,MAAQ,eAAiB,MACvD,KAAK,sBAAuBA,MAAQ,EAAI,MACxC,KAAK,oBAAqBA,MAAQ,WAAa,MAC/C,KAAK,kBAAmBA,MAAQ,EAAI,MACpC,KAAK,cAAe6qC,KAAO,IAAM,MACjC,KAAK,YAAaA,KAAO,KAAO,MAChC,KAAK,0BAA2B,KAChC,KAAK,uBAAwB,KAC7B,KAAK,qBAAsB,KAC3B,KAAK,kCAAmC,KACxC,KAAK,gCAAiC,KACtC,KAAK,yBAA0B,KAC/B,KAAK,uBAAwB,KAC7B,KAAK,wBAAyB,KAC9B,SAAS,IAAIA,MAAQr9C,KAAKywB,IAAK,KAAM,IAAInsB,OAAM,qBAAuBwa,GAAK,IAAMrO,EAAEwW,KAGrF,OAAOsI,QAIR,QAASy3B,eAAcvrD,KAAMuE,MAC5B,GAAI8f,IAAKd,WACTa,cAAaC,GAAI,qBAYjBD,cAAaC,GAAI,mBACjB,OAAOA,IAAGL,MAEXgS,KAAKw1B,MAAQ,2EAGb,SAASC,iBAAgBjoD,EAAGe,MAC3B6vB,OAAOs3B,cAAcC,YACrB,IAAI90C,SACJrT,GAAE,GAAG+H,MAAMmP,UAAUmD,QAAQ,SAASpd,GACrC,GAAI4D,GAAIwW,YAAYpa,EACpB,QAAO4D,EAAE,IACR,IAAK,eAAgB,IAAK,iBAAkB,KAG5C,KAAK,aAAcwS,MAAMwpC,IAAMh8C,EAAEkG,GAAK,MAGtC,KAAK,YAAasM,MAAMwpC,IAAMh8C,EAAEunD,OAAS,MAGzC,KAAK,UACL,IAAK,WAEL,IAAK,UACL,IAAK,WAEL,IAAK,UACL,IAAK,WAEL,IAAK,UACL,IAAK,WAEL,IAAK,cACL,IAAK,eAEL,IAAK,cACL,IAAK,eAEL,IAAK,cACL,IAAK,eAEL,IAAK,cACL,IAAK,eAEL,IAAK,cACL,IAAK,eAEL,IAAK,cACL,IAAK,eAEL,IAAK,YACL,IAAK,aAEL,IAAK,eACL,IAAK,gBACJ,GAAIvnD,EAAE,GAAG,KAAO,IAAK,CACpB+vB,OAAOs3B,cAAcC,UAAUv2C,KAAKyB,MACpCA,cACM,CACNA,MAAMrD,KAAOnP,EAAE,GAAG6W,UAAU,EAAG7W,EAAE,GAAGjE,OAAS,GAE9C,KAED,SAAS,GAAGmE,KAAKywB,IAAK,KAAM,gBAAkB3wB,EAAE,GAAK,mBAMxD,QAASwnD,kBAAiBroD,EAAGe,OAG7B,QAASunD,iBAAgBtoD,EAAGe,OAE5B,GAAIwnD,WAAY,+CAChB,IAAIC,WAAY,iDAChB,IAAIC,WAAY,+CAGhB,SAASC,qBAAoBlsD,KAAMuE,MAClC6vB,OAAOs3B,gBAEP,IAAIloD,KAIF,YAAauoD,UAAWN,kBAExB,aAAcO,UAAWH,mBAEzB,YAAaI,UAAWH,kBACxBjuC,QAAQ,SAASpU,GAClB,KAAKjG,EAAExD,KAAKuL,MAAM9B,EAAE,KAAM,KAAMA,GAAE,GAAK,6BACvCA,GAAE,GAAGjG,EAAGe,QAIV,GAAI4nD,cAAe,uDAGnB,SAASC,iBAAgBpsD,KAAMuE,MAE9B,IAAIvE,MAAQA,KAAKI,SAAW,EAAG,MAAOg0B,OAEtC,IAAI5wB,EAGJ,MAAKA,EAAExD,KAAKuL,MAAM4gD,eAAgB,KAAM,kCACxCD,qBAAoB1oD,EAAE,GAAIe,KAE1B,OAAO6vB,QAGR,QAASi4B,eAAgB,MAAO;CAEhC,QAASC,aAAY75C,KAAMrS,QAC1B,GAAImsD,gBAAiB95C,KAAKQ,WAAW,EACrC,IAAGs5C,iBAAmB,OAAQ,MAC9B95C,MAAKrP,GAAKhD,OAAO,EAIlB,QAASosD,kBAAiB/5C,KAAMrS,QAAU,MAAOqS,MAAKQ,WAAW,GAGjE,QAASw5C,oBAAmBh6C,KAAMrS,QACjC,GAAIH,KACJA,GAAEysD,SAAWj6C,KAAKQ,WAAW,EAC7BhT,GAAE0sD,WAAal6C,KAAKQ,WAAW,EAC/B,QAAOhT,EAAEysD,UACR,IAAK,GAAGj6C,KAAKrP,GAAK,CAAG,MACrB,KAAK,GAAGnD,EAAE2sD,UAAYC,YAAYp6C,KAAM,EAAI,MAC5C,KAAK,GAAGxS,EAAE2sD,UAAYxsB,eAAe3tB,KAAM,EAAI,MAC/C,KAAK,GAAGxS,EAAE2sD,UAAYJ,iBAAiB/5C,KAAM,EAAI,MACjD,KAAK,GAAGA,KAAKrP,GAAK,CAAG,OAEtBqP,KAAKrP,GAAK,CACV,OAAOnD,GAIR,QAAS4sD,aAAYp6C,KAAMrS,QAC1B,MAAOyiB,WAAUpQ,KAAMrS,QAIxB,QAAS0sD,qBAAoBr6C,KAAMrS,QAClC,MAAOyiB,WAAUpQ,KAAMrS,QAIxB,QAAS2sD,eAAct6C,KAAMrS,QAC5B,GAAI4sD,SAAUv6C,KAAKQ,WAAW,EAC9B,IAAIiQ,IAAKzQ,KAAKQ,WAAW,EACzB,IAAIhT,IAAK+sD,QACT,QAAOA,SACN,IAAK,GAAM,IAAK,GAAM,IAAK,GAAM,IAAK,GACtC,IAAK,GAAM,IAAK,IAAM,IAAK,IAAM,IAAK,IACrC/sD,EAAE,GAAKwsD,mBAAmBh6C,KAAMyQ,GAAK,MACtC,KAAK,GAAMjjB,EAAE,GAAK6sD,oBAAoBr6C,KAAMyQ,GAAK,MACjD,KAAK,IAAM,IAAK,IAAMjjB,EAAE,GAAKwS,KAAKQ,WAAWiQ,KAAO,EAAI,EAAI,EAAI,MAChE,SAAS,KAAM,IAAIra,OAAM,8BAAgCmkD,QAAU,IAAM9pC,IAE1E,MAAOjjB,GAIR,QAASgtD,aAAYx6C,KAAMrS,QAC1B,GAAI4jB,KAAMvR,KAAKrP,EAAIhD,MACnBqS,MAAKrP,GAAK,CACV,IAAIo9B,MAAO/tB,KAAKQ,WAAW,EAC3BR,MAAKrP,GAAK,CACV,IAAI8pD,OAAQz6C,KAAKQ,WAAW,EAC5B,IAAIk6C,OACJ,OAAMD,QAAU,EAAGC,IAAI/3C,KAAK23C,cAAct6C,KAAMuR,IAAIvR,KAAKrP,GACzD,QAAQo9B,KAAKA,KAAM2sB,IAAIA,KAIxB,QAASC,cAAaC,GAAIC,OACzBA,MAAMzvC,QAAQ,SAAS0vC,KACtB,OAAOA,IAAI,IACV,IAAK,GAAM,KACX,KAAK,GAAM,KACX,KAAK,GAAM,IAAK,GAAM,IAAK,GAAM,IAAK,IAAM,KAC5C,KAAK,IAAM,KACX,KAAK,IAAM,KACX,SAAS,KAAM,QAAUA,IAAI,GAAGzzC,SAAS,OAM5C,QAAS0zC,cAAaxtD,KAAMuE,MAC3B,GAAIhB,KACJ,IAAIH,GAAI,EAAGlD,EAAI,GACdF,KAAKuL,MAAMmP,eAAemD,QAAQ,SAASpd,GAC3C,GAAI4D,GAAIwW,YAAYpa,EACpB,QAAO4D,EAAE,IACR,IAAK,QAAS,KAEd,KAAK,aAAc,IAAK,cAAe,IAAK,eAAgB,KAE5D,KAAK,WAAaA,GAAE,EAAI,IAAGA,EAAEnE,EAAGA,EAAImE,EAAEnE,MAAQmE,GAAEnE,EAAIA,CAAGqD,GAAE6R,KAAK/Q,EAAI,SAGpE,OAAOd,GAGR,QAASkqD,cAAaztD,KAAMuE,OAE5B,QAASmpD,yBAAwB1tD,KAAMI,QACtC,GAAIkJ,OACJA,KAAIpJ,EAAIF,KAAKiT,WAAW,EACxB,IAAIyR,QACJA,MAAKzY,EAAIjM,KAAKiT,WAAW,EACzByR,MAAKvhB,EAAInD,KAAKiT,WAAW,EACzB3J,KAAI2C,EAAI0hD,YAAYjpC,KACpB,IAAIqB,OAAQ/lB,KAAKiT,WAAW,EAC5B,IAAG8S,MAAQ,EAAKzc,IAAIlG,EAAI,GACxB,IAAG2iB,MAAQ,EAAKzc,IAAI2X,EAAI,GACxB,OAAO3X,KAIR,QAASskD,cAAa5tD,KAAMuE,MAC3B,GAAI+E,OACJ,IAAIs4C,MAAO,KACX3+B,cAAajjB,KAAM,QAAS6tD,WAAUtjD,IAAKyK,EAAGqO,IAC7C,OAAOrO,EAAEwW,GACR,IAAK,oBAAqBliB,IAAI8L,KAAK7K,IAAM,MACzC,KAAK,qBAAsB,KAC3B,KAAK,mBAAoB,KACzB,SAAS,IAAIq3C,MAAQr9C,KAAKywB,IAAK,KAAM,IAAInsB,OAAM,qBAAuBwa,GAAK,IAAMrO,EAAEwW,KAGrF,OAAOliB,KAGR,QAASwkD,cAAa9tD,KAAMuE,OAE5B,QAASwpD,gBAAe9zC,IAAK+zC,YAAan6B,OAAQo6B,UAAW1pD,MAC5D,IAAI,GAAIrE,GAAI,EAAGA,GAAK8tD,YAAY5tD,SAAUF,EAAG,CAC5C,GAAIguD,eAAcF,YAAY9tD,EAC9B,IAAIs0B,UAAS25B,WAAWh0C,WAAWF,IAAKi0C,cAAclsD,QAAQ,MAAM,IAAK,MAAOksD,cAAe3pD,KAC/F,KAAIiwB,WAAaA,SAASp0B,OAAQ,QAElC,IAAIguD,YAAaz1C,KAAKkb,OACtB,KAAI,GAAIhpB,GAAI,EAAGA,GAAKujD,WAAWhuD,SAAUyK,EAAG,CAC3C,GAAIwjD,WAAYD,WAAWvjD,EAC3B,IAAI8pB,MAAOs5B,UAAUI,UACrB,IAAG15B,KAAM,CACR,GAAIkC,KAAMlC,KAAKu5B,cACf,IAAGr3B,IAAKy3B,wBAAwBD,UAAWx6B,OAAOw6B,WAAY75B,aAMlE,QAAS85B,yBAAwBD,UAAWh7B,MAAOmB,UAClDA,SAAS3W,QAAQ,SAAS0wC,SACzB,GAAI7pC,MAAO2O,MAAMk7B,QAAQ/lB,IACzB,KAAK9jB,KAAM,CACVA,OACA2O,OAAMk7B,QAAQ/lB,KAAO9jB,IACrB,IAAIK,OAAQypC,kBAAkBn7B,MAAM,SAAS,kBAC7C,IAAIo7B,UAAWC,YAAYH,QAAQ/lB,IACnC,IAAGzjB,MAAMxiB,EAAE0J,EAAIwiD,SAASxiD,EAAG8Y,MAAMxiB,EAAE0J,EAAIwiD,SAASxiD,CAChD,IAAG8Y,MAAM1K,EAAEpO,EAAIwiD,SAASxiD,EAAG8Y,MAAM1K,EAAEpO,EAAIwiD,SAASxiD,CAChD,IAAG8Y,MAAMxiB,EAAEY,EAAIsrD,SAAStrD,EAAG4hB,MAAMxiB,EAAEY,EAAIsrD,SAAStrD,CAChD,IAAG4hB,MAAM1K,EAAElX,EAAIsrD,SAAStrD,EAAG4hB,MAAM1K,EAAElX,EAAIsrD,SAAStrD,CAChD,IAAIwrD,SAAUC,aAAa7pC,MAC3B,IAAI4pC,UAAYt7B,MAAM,QAASA,MAAM,QAAUs7B,QAGhD,IAAKjqC,KAAKvhB,EAAGuhB,KAAKvhB,IAClB,IAAIlD,IAAKghB,EAAGstC,QAAQM,OAAQrrD,EAAG+qD,QAAQ/qD,EAAGyI,EAAGsiD,QAAQtiD,EACrD,IAAGsiD,QAAQ9wC,EAAGxd,EAAEwd,EAAI8wC,QAAQ9wC,CAC5BiH,MAAKvhB,EAAEiS,KAAKnV,KAKd,QAAS6uD,oBAAmB9uD,KAAMuE,MACjC,GAAGvE,KAAKuL,MAAM,2BAA4B,QAC1C,IAAIwjD,WACJ,IAAIC,eACJhvD,MAAKuL,MAAM,sDAAsD,GAAG/I,MAAM,mBAAmBqb,QAAQ,SAASpd,GAC7G,GAAGA,IAAM,IAAMA,EAAEwuD,SAAW,GAAI,MAChCF,SAAQ35C,KAAK3U,EAAE8K,MAAM,8BAA8B,OAEnDvL,KAAKuL,MAAM,gEAAgE,GAAG,KAAK,GAAG/I,MAAM,oBAAoBqb,QAAQ,SAASpd,EAAG2nB,OACpI,GAAG3nB,IAAM,IAAMA,EAAEwuD,SAAW,GAAI,MAChC,IAAI5qD,GAAIwW,YAAYpa,EAAE8K,MAAM,2BAA2B,GACvD,IAAIgjD,UAAYM,OAAQxqD,EAAE6qD,UAAYH,QAAQ1qD,EAAE6qD,UAAYH,QAAQ1qD,EAAE6qD,UAAY5qD,UAAWkkC,IAAKnkC,EAAEmkC,IAAKtI,KAAM77B,EAAE67B,KACjH,IAAIxb,MAAOgqC,YAAYrqD,EAAEmkC,IACzB,IAAGjkC,KAAK4qD,WAAa5qD,KAAK4qD,WAAazqC,KAAKzY,EAAG,MAC/C,IAAImjD,WAAY3uD,EAAE8K,MAAM,6BACxB,KAAK6jD,YAAcA,UAAU,GAAI,MACjC,IAAI1uB,IAAKkgB,SAASwO,UAAU,GAC5Bb,SAAQtiD,EAAIy0B,GAAGz0B,CACfsiD,SAAQ/qD,EAAIk9B,GAAGl9B,CACf,IAAGe,KAAKu8C,SAAUyN,QAAQ9wC,EAAIijB,GAAGjjB,CACjCuxC,aAAY55C,KAAKm5C,UAElB,OAAOS,aAGR,QAASK,oBAAmBrvD,KAAMuE,OAElC,QAAS+qD,uBAAsBtvD,KAAMI,QACpC,GAAIkJ,OACJA,KAAIimD,QAAUvvD,KAAKiT,WAAW,EAC9B,IAAIu8C,KAAMpoC,mBAAmBpnB,KAAM,GACnCsJ,KAAIkmD,IAAMA,IAAIjtD,CACd+G,KAAIk/B,IAAMmlB,YAAY6B,IAAIjtD,EAC1BvC,MAAKoD,GAAK,EACV,OAAOkG,KAIR,GAAImmD,wBAAyBzpC,kBAG7B,IAAI0pC,sBAAuB5pC,aAG3B,SAAS6pC,oBAAmB3vD,KAAMuE,MACjC,GAAI+E,OACJ,IAAIylD,WACJ,IAAI5rD,KACJ,IAAIy+C,MAAO,KACX3+B,cAAajjB,KAAM,QAAS4vD,aAAYrlD,IAAKyK,EAAGqO,IAC/C,OAAOrO,EAAEwW,GACR,IAAK,mBAAoBujC,QAAQ35C,KAAK7K,IAAM,MAC5C,KAAK,kBAAmBpH,EAAIoH,GAAK,MACjC,KAAK,iBAAkBpH,EAAEK,EAAI+G,IAAI/G,CAAGL,GAAEsa,EAAIlT,IAAIkT,CAAGta,GAAE8I,EAAI1B,IAAI0B,CAAG,MAC9D,KAAK,gBACJ9I,EAAE0rD,OAASE,QAAQ5rD,EAAEosD,eACdpsD,GAAEosD,OACT,IAAGhrD,KAAK4qD,WAAa5qD,KAAK4qD,WAAahsD,EAAEqsD,IAAIvjD,EAAG,YACzC9I,GAAEqsD,GAAKlmD,KAAI8L,KAAKjS,EAAI,MAC5B,KAAK,mBAAoB,KACzB,KAAK,iBAAkB,KACvB,KAAK,yBAA0B,KAC/B,KAAK,uBAAwB,KAC7B,KAAK,sBAAuB,KAC5B,KAAK,oBAAqB,KAC1B,SAAS,IAAIy+C,MAAQr9C,KAAKywB,IAAK,KAAM,IAAInsB,OAAM,qBAAuBwa,GAAK,IAAMrO,EAAEwW,KAGrF,OAAOliB,KAGR,QAASumD,oBAAmB7vD,KAAMuE,OAElC,GAAIurD,UAAW,WACd,GAAIC,SAAU,kDACd,IAAIC,OACJ,SAASC,QAAOtkD,GAAGC,GAAGC,GAAGC,GAAGokD,GAAGC,IAC9B,GAAIn7C,GAAIlJ,GAAG1L,OAAO,EAAEiM,SAASP,GAAG,IAAI,EAAE,EAAGmJ,EAAIk7C,GAAG/vD,OAAO,EAAEiM,SAAS8jD,GAAG,IAAI,EAAE,CAC3E,IAAGl7C,EAAE,GAAKi7C,GAAG9vD,SAAW,EAAG6U,EAAE,CAC7B,IAAGi7C,GAAG9vD,OAAS,EAAG6U,GAAK+6C,OAAO7sD,CAC9B,IAAG0I,GAAGzL,OAAS,EAAG4U,GAAKg7C,OAAO/jD,CAC9B,OAAOL,IAAKwkD,WAAWn7C,GAAKo7C,WAAWr7C,GAExC,MAAO,SAAS86C,UAASQ,KAAM/jD,MAC9ByjD,OAASzjD,IACT,OAAO+jD,MAAKtuD,QAAQ+tD,QAASE,WAM/B,SAASM,WAAUntD,GAAK,MAAO,UAASqP,KAAMrS,QAAUqS,KAAKrP,GAAGA,CAAG,SACnE,QAASotD,YAAW/9C,KAAMrS,QAAUqS,KAAKrP,GAAG,CAAG,QAK/C,QAASqtD,eAAch+C,KAAMrS,QAC5B,GAAI+C,GAAIsP,KAAKQ,WAAW,EACxB,QAAQ9P,EAAI,MAASA,GAAK,GAAM,EAAIA,GAAK,GAAM,GAIhD,QAASutD,gBAAej+C,KAAMrS,QAC7B,GAAI6L,GAAEwG,KAAKQ,WAAW,GAAI+B,EAAEvC,KAAKQ,WAAW,EAC5C,IAAI9P,GAAEstD,cAAch+C,KAAM,EAC1B,IAAIwC,GAAEw7C,cAAch+C,KAAM,EAC1B,QAASlQ,GAAG0J,EAAEA,EAAG9I,EAAEA,EAAE,GAAIyhB,KAAKzhB,EAAE,GAAI0hB,KAAK1hB,EAAE,IAAKkX,GAAGpO,EAAE+I,EAAG7R,EAAE8R,EAAE,GAAI2P,KAAK3P,EAAE,GAAI4P,KAAK5P,EAAE,KAInF,QAAS07C,mBAAkBl+C,KAAMrS,QAChC,GAAI6L,GAAEwG,KAAKQ,WAAW,GAAI+B,EAAEvC,KAAKQ,WAAW,EAC5C,IAAI9P,GAAEstD,cAAch+C,KAAM,EAC1B,IAAIwC,GAAEw7C,cAAch+C,KAAM,EAC1B,QAASlQ,GAAG0J,EAAEA,EAAG9I,EAAEA,EAAE,GAAIyhB,KAAKzhB,EAAE,GAAI0hB,KAAK1hB,EAAE,IAAKkX,GAAGpO,EAAE+I,EAAG7R,EAAE8R,EAAE,GAAI2P,KAAK3P,EAAE,GAAI4P,KAAK5P,EAAE,KAInF,QAAS27C,eAAcn+C,KAAMrS,QAC5B,GAAI6L,GAAIwG,KAAKQ,WAAW,EACxB,IAAI9P,GAAIstD,cAAch+C,KAAM,EAC5B,QAAQxG,EAAEA,EAAG9I,EAAEA,EAAE,GAAIyhB,KAAKzhB,EAAE,GAAI0hB,KAAK1hB,EAAE,IAIxC,QAAS0tD,kBAAiBp+C,KAAMrS,QAC/B,GAAI6L,GAAIwG,KAAKQ,WAAW,EACxB,IAAI69C,IAAKr+C,KAAKQ,WAAW,EACzB,IAAI2R,OAAQksC,GAAK,QAAW,GAAIjsC,MAAQisC,GAAK,QAAW,EACxDA,KAAM,KACN,IAAGlsC,OAAS,EAAG,MAAMksC,IAAM,IAAOA,IAAM,GACxC,QAAQ7kD,EAAEA,EAAE9I,EAAE2tD,GAAGlsC,KAAKA,KAAKC,KAAKA,MAMjC,QAASksC,eAAct+C,KAAMrS,QAC5B,GAAIiK,OAAQoI,KAAKA,KAAKrP,KAAO,KAAS,CACtC,IAAI4tD,MAAON,eAAej+C,KAAM,EAChC,QAAQpI,KAAM2mD,MAIf,QAASC,iBAAgBx+C,KAAMrS,QAC9B,GAAIiK,OAAQoI,KAAKA,KAAKrP,KAAO,KAAS,CACtC,IAAI8tD,MAAOz+C,KAAKQ,WAAW,EAC3B,IAAI+9C,MAAON,eAAej+C,KAAM,EAChC,QAAQpI,KAAM6mD,KAAMF,MAIrB,QAASG,kBAAiB1+C,KAAMrS,QAC/B,GAAIiK,OAAQoI,KAAKA,KAAKrP,KAAO,KAAS,CACtCqP,MAAKrP,GAAK,CACV,QAAQiH,MAGT,QAAS+mD,oBAAmB3+C,KAAMrS,QACjC,GAAIiK,OAAQoI,KAAKA,KAAKrP,KAAO,KAAS,CACtC,IAAI8tD,MAAOz+C,KAAKQ,WAAW,EAC3BR,MAAKrP,GAAK,CACV,QAAQiH,KAAM6mD,MAIf,QAASG,gBAAe5+C,KAAMrS,QAC7B,GAAIiK,OAAQoI,KAAKA,KAAKrP,KAAO,KAAS,CACtC,IAAI4tD,MAAOL,kBAAkBl+C,KAAM,EACnC,QAAQpI,KAAM2mD,MAIf,QAASM,gBAAe7+C,KAAMrS,QAC7B,GAAIiK,OAAQoI,KAAKA,KAAKrP,KAAO,KAAS,CACtCqP,MAAKrP,GAAK,CACV,QAAQiH,MAIT,QAASknD,qBAAoB9+C,KAAMrS,QAClC,GAAIoxD,SAAU/+C,KAAKA,KAAKrP,EAAE,GAAK,CAC/B,IAAIquD,WAAY,CAChBh/C,MAAKrP,GAAK,CACV,QAAQouD,QAASC,WAIlB,QAASC,qBAAoBj/C,KAAMrS,QAClCqS,KAAKrP,GAAI,CACT,IAAImU,QAAS9E,KAAKQ,WAAW,EAC7B,IAAIhT,KAEJ,KAAI,GAAIC,GAAI,EAAGA,GAAKqX,SAAUrX,EAAGD,EAAEmV,KAAK3C,KAAKQ,WAAW,GACxD,OAAOhT,GAIR,QAAS0xD,mBAAkBl/C,KAAMrS,QAChC,GAAIwxD,SAAWn/C,KAAKA,KAAKrP,EAAE,GAAK,IAAQ,EAAI,CAC5CqP,MAAKrP,GAAK,CACV,QAAQwuD,QAASn/C,KAAKQ,WAAW,IAIlC,QAAS4+C,iBAAgBp/C,KAAMrS,QAC9B,GAAI0xD,OAASr/C,KAAKA,KAAKrP,EAAE,GAAK,IAAQ,EAAI,CAC1CqP,MAAKrP,GAAK,CACV,QAAQ0uD,MAAOr/C,KAAKQ,WAAW,IAIhC,QAAS8+C,mBAAkBt/C,KAAMrS,QAChC,GAAIoxD,SAAW/+C,KAAKA,KAAKrP,EAAE,GAAK,IAAQ,EAAI,CAC5CqP,MAAKrP,GAAK,CACV,QAAQouD,SAIT,QAASQ,wBAAuBv/C,KAAMrS,QACrC,GAAIiK,MAAOoI,KAAKQ,WAAW,GAAI4qB,IAAMprB,KAAKQ,WAAW,EACrD,QAAQ5I,KAAMwzB,KAIf,QAASo0B,oBAAmBx/C,KAAMrS,QACjCqS,KAAKQ,WAAW,EAChB,OAAO++C,wBAAuBv/C,KAAM,GAIrC,QAASy/C,wBAAuBz/C,KAAMrS,QACrCqS,KAAKQ,WAAW,EAChB,OAAO++C,wBAAuBv/C,KAAM,GAIrC,QAAS0/C,cAAa1/C,KAAMrS,QAC3B,GAAIgyD,KAAM3/C,KAAKA,KAAKrP,GAAK,EACzB,IAAIiH,OAAQoI,KAAKA,KAAKrP,GAAK,KAAO,CAClCqP,MAAKrP,GAAK,CACV,IAAI8e,KAAM0uC,cAAcn+C,KAAK,EAC7B,QAAQpI,KAAM6X,KAIf,QAASmwC,eAAc5/C,KAAMrS,QAC5B,GAAIgyD,KAAM3/C,KAAKA,KAAKrP,GAAK,EACzB,IAAIiH,OAAQoI,KAAKA,KAAKrP,GAAK,KAAO,CAClCqP,MAAKrP,GAAK,CACV,IAAI8e,KAAM2uC,iBAAiBp+C,KAAK,EAChC,QAAQpI,KAAM6X,KAIf,QAASowC,gBAAe7/C,KAAMrS,QAC7B,GAAIgyD,KAAM3/C,KAAKA,KAAKrP,GAAK,EACzB,IAAIiH,OAAQoI,KAAKA,KAAKrP,GAAK,KAAO,CAClCqP,MAAKrP,GAAK,CACV,IAAI8tD,MAAOz+C,KAAKQ,WAAW,EAC3B,IAAIiP,KAAM0uC,cAAcn+C,KAAK,EAC7B,QAAQpI,KAAM6mD,KAAMhvC,KAKrB,QAASqwC,eAAc9/C,KAAMrS,QAC5B,GAAIgyD,KAAM3/C,KAAKA,KAAKrP,GAAK,EACzB,IAAIiH,OAAQoI,KAAKA,KAAKrP,GAAK,KAAO,CAClCqP,MAAKrP,GAAK,CACV,IAAIovD,OAAQ//C,KAAKQ,WAAW,EAC5B,QAAQw/C,SAASD,OAAQE,KAAKF,QAG/B,QAASG,kBAAiBlgD,KAAMrS,QAC/BqS,KAAKrP,GACL,IAAIwvD,SAAUngD,KAAKQ,WAAW,GAAI4/C,IAAMC,SAASrgD,KACjD,QAAQmgD,SAAUC,IAAI,KAAO,EAAIH,KAAOK,OAAOF,IAAI,KAGpD,QAASC,UAASrgD,KAAMrS,QACvB,OAAQqS,KAAKA,KAAKrP,EAAE,IAAI,EAAGqP,KAAKQ,WAAW,GAAK,OAIjD,GAAI+/C,kBAAmBzC,UAAU,EAEjC,IAAI0C,iBAAkBzC,UAGtB,SAAS0C,cAAazgD,KAAMrS,QAC3BqS,KAAKrP,GACL,IAAI8lC,KAAMz2B,KAAKQ,WAAW,EAC1B,IAAIqT,KAAM7T,KAAKQ,WAAW,EAC1B,QAAQi2B,IAAK5iB,KAId,QAAS6sC,cAAa1gD,KAAMrS,QAAUqS,KAAKrP,GAAK,OAAOokB,MAAK/U,KAAKQ,WAAW,IAG5E,QAASmgD,cAAa3gD,KAAMrS,QAAUqS,KAAKrP,GAAK,OAAOqP,MAAKQ,WAAW,GAGvE,QAASogD,eAAc5gD,KAAMrS,QAAUqS,KAAKrP,GAAK,OAAOqP,MAAKQ,WAAW,KAAK,EAG7E,QAASqgD,cAAa7gD,KAAMrS,QAAUqS,KAAKrP,GAAK,OAAOkkB,YAAW7U,KAAM,GAGxE,QAAS8gD,cAAa9gD,KAAMrS,QAAUqS,KAAKrP,GAAK,OAAOw6B,4BAA2BnrB,MAGlF,QAAS+gD,aAAY/gD,MACpB,GAAIlI,OACJ,QAAQA,IAAI,GAAKkI,KAAKQ,WAAW,IAEhC,IAAK,GACJ1I,IAAI,GAAKgyB,UAAU9pB,KAAM,GAAK,OAAS,OACvCA,MAAKrP,GAAK,CAAG,MAEd,KAAK,IACJmH,IAAI,GAAKid,KAAK/U,KAAKA,KAAKrP,GACxBqP,MAAKrP,GAAK,CAAG,MAEd,KAAK,GACJqP,KAAKrP,GAAK,CAAG,MAEd,KAAK,GACJmH,IAAI,GAAK+c,WAAW7U,KAAM,EAAI,MAE/B,KAAK,GACJlI,IAAI,GAAKk0B,sBAAsBhsB,KAAO,OAGxC,MAAOlI,KAIR,QAASkpD,mBAAkBhhD,KAAMu1B,KAChC,GAAImZ,OAAQ1uC,KAAKQ,WAAW,EAC5B,IAAI3J,OACJ,KAAI,GAAIpJ,GAAI,EAAGA,GAAKihD,QAASjhD,EAAGoJ,IAAI8L,KAAKisB,YAAY5uB,KAAM,GAC3D,OAAOnJ,KAIR,QAASoqD,qBAAoBjhD,MAC5B,GAAIkhD,MAAO,EAAIlhD,KAAKQ,WAAW,EAC/B,IAAI2gD,MAAO,EAAInhD,KAAKQ,WAAW,EAC/B,KAAI,GAAI/S,GAAI,EAAGD,KAAMC,GAAK0zD,OAAS3zD,EAAEC,SAAYA,EAChD,IAAI,GAAI2K,GAAI,EAAGA,GAAK8oD,OAAQ9oD,EAAG5K,EAAEC,GAAG2K,GAAK2oD,YAAY/gD,KACtD,OAAOxS,GAIR,QAAS4zD,eAAcphD,KAAMrS,QAC5B,GAAIiK,MAAQoI,KAAKQ,WAAW,KAAO,EAAK,CACxC,IAAI6gD,WAAYrhD,KAAKQ,WAAW,EAChC,QAAQ5I,KAAM,EAAGypD,WAIlB,QAASC,gBAAethD,KAAMrS,QAC7B,GAAIiK,MAAQoI,KAAKQ,WAAW,KAAO,EAAK,CACxC,IAAIi+C,MAAOz+C,KAAKQ,WAAW,EAC3B,IAAI6gD,WAAYrhD,KAAKQ,WAAW,EAChC,QAAQ5I,KAAM6mD,KAAM4C,WAIrB,QAASE,kBAAiBvhD,KAAMrS,QAC/B,GAAIiK,MAAQoI,KAAKQ,WAAW,KAAO,EAAK,CACxCR,MAAKrP,GAAK,CACV,IAAI4kC,KAAMv1B,KAAKQ,WAAW,EAC1B,QAAQ5I,KAAM29B,KAIf,QAASisB,kBAAiBxhD,KAAMrS,QAC/B,GAAIiK,MAAQoI,KAAKQ,WAAW,KAAO,EAAK,CACxC,IAAI+0B,KAAMv1B,KAAKQ,WAAW,EAC1B,QAAQ5I,KAAM29B,KAKf,QAASksB,iBAAgBzhD,KAAMrS,QAC9B,GAAIiK,MAAQoI,KAAKQ,WAAW,KAAO,EAAK,CACxCR,MAAKrP,GAAK,CACV,QAAQiH,MAIT,GAAI8pD,cAAe3D,UAEnB,IAAI4D,cAAe5D,UAEnB,IAAI6D,aAAc7D,UAElB,IAAI8D,aAAc9D,UAElB,IAAI+D,aAAc/D,UAElB,IAAIgE,gBAAiBhE,UAErB,IAAIiE,aAAcjE,UAElB,IAAIkE,aAAclE,UAElB,IAAImE,kBAAmBnE,UAEvB,IAAIoE,cAAepE,UAEnB,IAAIqE,aAAcrE,UAElB,IAAIsE,gBAAiBtE,UAErB,IAAIuE,kBAAmBvE,UAEvB,IAAIwE,gBAAiBxE,UAErB,IAAIyE,gBAAiBzE,UAErB,IAAI0E,cAAe1E,UAEnB,IAAI2E,iBAAkB3E,UAEtB,IAAI4E,gBAAiB5E,UAErB,IAAI6E,gBAAiB7E,UAGrB,IAAI8E,iBAAkBzyC,SAEtB,IAAI0yC,mBAAoB1yC,SAExB,IAAI2yC,mBAAoB3yC,SAExB,IAAI4yC,cAAe5yC,SAGnB,IAAI6yC,WACHjxD,GAAQ+mB,EAAE,SAAU1b,EAAEojD,cACtBxuD,GAAQ8mB,EAAE,SAAU1b,EAAE2lD,cACtB9wD,GAAQ6mB,EAAE,SAAU1b,EAAEqkD,cACtBvvD,GAAQ4mB,EAAE,SAAU1b,EAAEolD,cACtBzpC,GAAQD,EAAE,SAAU1b,EAAE8kD,cACtBlpC,GAAQF,EAAE,SAAU1b,EAAEskD,cACtB3sC,GAAQ+D,EAAE,WAAY1b,EAAEklD,gBACxBrpC,GAAQH,EAAE,YAAa1b,EAAEmjD,iBACzBpuD,GAAQ2mB,EAAE,QAAS1b,EAAE4kD,aACrB5vD,IAAQ0mB,EAAE,QAAS1b,EAAE2kD,aACrB1vD,IAAQymB,EAAE,QAAS1b,EAAEukD,aACrBrvD,IAAQwmB,EAAE,QAAS1b,EAAEwkD,aACrBrvD,IAAQumB,EAAE,QAAS1b,EAAEykD,aACrBrvD,IAAQsmB,EAAE,QAAS1b,EAAE+kD,aACrB1vD,IAAQqmB,EAAE,WAAY1b,EAAE0kD,gBACxBpvD,IAAQomB,EAAE,WAAY1b,EAAEslD,gBACxB/vD,IAAQmmB,EAAE,WAAY1b,EAAEmlD,gBACxB3vD,IAAQkmB,EAAE,WAAY1b,EAAEulD,gBACxB9vD,IAAQimB,EAAE,YAAa1b,EAAEqlD,iBACzB3vD,IAAQgmB,EAAE,aAAc1b,EAAEilD,kBAC1BtvD,IAAQ+lB,EAAE,WAAY1b,EAAEglD,gBACxBpvD,IAAQ8lB,EAAE,aAAc1b,EAAE6kD,kBAC1BjtC,IAAQ8D,EAAE,SAAU1b,EAAEyjD,cACtBznC,IAAQN,EAAE,SAAU1b,EAAEqjD,cACtBxrC,IAAQ6D,EAAE,UAAW1b,EAAEujD,eACvB/mC,IAAQd,EAAE,SAAU1b,EAAEsjD,cACtB7mC,IAAQf,EAAE,SAAU1b,EAAEwjD,cACtB9mC,IAAQhB,EAAE,WAAY1b,EAAEwhD,gBACxB7kC,IAAQjB,EAAE,UAAW1b,EAAEyiD,eACvB7lC,IAAQlB,EAAE,aAAc1b,EAAE6iD,kBAC1BgD,IAAQnqC,EAAE,UAAW1b,EAAE+jD,eACvBjsC,IAAQ4D,EAAE,SAAU1b,EAAEqiD,cACtBxsD,IAAQ6lB,EAAE,UAAW1b,EAAEihD,eACvBnrD,IAAQ4lB,EAAE,aAAc1b,EAAEkkD,kBAC1BnuD,IAAQ2lB,EAAE,YAAa1b,EAAEwlD,iBACzBxvD,IAAQ0lB,EAAE,cAAe1b,EAAEylD,mBAC3B5oC,IAAQnB,EAAE,aAAc1b,EAAEmkD,kBAC1BpsC,IAAQ2D,EAAE,YAAa1b,EAAEokD,iBACzBpsC,IAAQ0D,EAAE,aAAc1b,EAAEqhD,kBAC1BvkC,IAAQpB,EAAE,UAAW1b,EAAEuiD,eACvBtsD,IAAQylB,EAAE,WAAY1b,EAAEuhD,gBACxBuE,IAAQpqC,EAAE,WAAY1b,EAAEikD,gBACxB8B,IAAQrqC,EAAE,WAAY1b,EAAEwiD,gBACxBwD,IAAQtqC,EAAE,YAAa1b,EAAEmhD,iBACzB8E,IAAQvqC,EAAE,cAAe1b,EAAE0lD,mBAC3BzoC,IAAQvB,EAAE,eAAgB1b,EAAEshD,oBAC5BrpC,OAGD,IAAIiuC,WACHhpC,GAAM,GAAMipC,GAAM,GAClBC,GAAM,GAAMC,GAAM,GAClBlpC,GAAM,GAAMmpC,GAAM,GAClBC,GAAM,GAAMC,GAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBjX,GAAM,GAAMkX,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBC,GAAM,GAAMzpC,IAAM,GAClB0pC,GAAM,GAAMC,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClB9Y,GAAM,GAAM+Y,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBnqC,GAAM,GAAMoqC,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBC,GAAM,GAAMC,IAAM,GAClBC,GAAM,GAAMC,IAAM,KAEnB,WAAY,IAAI,GAAI3zD,KAAK2xD,UAAUN,SAASrxD,GAAKqxD,SAASM,SAAS3xD,OAEnE,IAAI4zD,SACJ,IAAIC,QACHzzD,GAAQ+mB,EAAE,cAAe1b,EAAEiiD,mBAC3BrtD,GAAQ8mB,EAAE,YAAa1b,EAAE+hD,iBACzBjtD,GAAQ4mB,EAAE,gBAAiB1b,EAAE4hD,qBAC7B/lC,GAAQH,EAAE,cAAe1b,EAAE6hD,mBAC3BvsD,IAAQomB,EAAE,aAAc1b,EAAEkjD,kBAC1BxmC,IAAQhB,EAAE,gBAAiB1b,EAAEyhD,qBAC7BvkC,IAAQxB,EAAE,eAAgB1b,EAAEmiD,oBAC5BiE,IAAQ1qC,EAAE,mBAAoB1b,EAAEoiD,wBAChCnqC,OAID,SAASowC,eAAc1lD,KAAMrS,OAAQmE,MACpC,GAAImgB,MAAO4b,cAAc7tB,KAAM,EAC/B,IAAIlI,KAAM6tD,mBAAmB3lD,KAAK,EAClC,IAAIsT,OAAQtT,KAAKQ,WAAW,EAC5BR,MAAKQ,WAAW,EAChB,IAAIolD,KAAM5lD,KAAKQ,WAAW,EAC1B,IAAIqlD,KAAM,EACV,IAAG/zD,KAAKy5B,OAAS,EAAGvrB,KAAKrP,GAAKhD,OAAO,OAChCk4D,KAAMC,2BAA2B9lD,KAAMrS,OAAO,GAAImE,KACvD,QAAQmgB,KAAKA,KAAMna,IAAIA,IAAI,GAAIiuD,QAAQF,IAAKG,OAAS1yC,OAAS,EAAK,EAAGrb,GAAGH,IAAI,IAI9E,QAAS6tD,oBAAmB3lD,MAC3B,GAAIsN,EACJ,IAAGC,eAAevN,KAAKA,KAAKrP,EAAI,KAAO,MAAQ,OAAQkkB,WAAW7U,MAAM,IACxE,QAAOA,KAAKA,KAAKrP,IAChB,IAAK,GAAMqP,KAAKrP,GAAK,CAAG,QAAQ,SAAU,IAC1C,KAAK,GAAM2c,EAAItN,KAAKA,KAAKrP,EAAE,KAAO,CAAKqP,MAAKrP,GAAK,CAAG,QAAQ2c,EAAE,IAC9D,KAAK,GAAMA,EAAItN,KAAKA,KAAKrP,EAAE,EAAIqP,MAAKrP,GAAK,CAAG,QAAQ2c,EAAE,IACtD,KAAK,GAAMtN,KAAKrP,GAAK,CAAG,QAAQ,GAAG,MAKrC,QAASs1D,gBAAejmD,KAAMrS,OAAQ8nC,KAAM3jC,MAC3C,GAAGA,KAAKy5B,KAAO,EAAG,MAAOnb,WAAUpQ,KAAMrS,OACzC,IAAIk9B,QAAS7qB,KAAKrP,EAAIhD,MACtB,IAAIH,KACJ,KAAI,GAAIC,GAAI,EAAGA,IAAMgoC,KAAK9nC,SAAUF,EAAG,CACtC,OAAOgoC,KAAKhoC,GAAG,IACd,IAAK,WACJgoC,KAAKhoC,GAAG,GAAKwzD,oBAAoBjhD,KACjCxS,GAAEmV,KAAK8yB,KAAKhoC,GAAG,GACf,MACD,KAAK,aACJgoC,KAAKhoC,GAAG,GAAKuzD,kBAAkBhhD,KAAMy1B,KAAKhoC,GAAG,GAC7CD,GAAEmV,KAAK8yB,KAAKhoC,GAAG,GACf,MACD,SAAS,OAGXE,OAASk9B,OAAS7qB,KAAKrP,CACvB,IAAGhD,SAAW,EAAGH,EAAEmV,KAAKyN,UAAUpQ,KAAMrS,QACxC,OAAOH,GAIR,QAASkoC,yBAAwB11B,KAAMrS,OAAQmE,KAAMyjC,KACpD,GAAI1K,QAAS7qB,KAAKrP,EAAIhD,MACtB,IAAI8nC,MAAOywB,WAAWlmD,KAAMu1B,IAC5B,IAAI4wB,KACJ,IAAGt7B,SAAW7qB,KAAKrP,EAAGw1D,KAAOF,eAAejmD,KAAM6qB,OAAS7qB,KAAKrP,EAAG8kC,KAAM3jC,KACzE,QAAQ2jC,KAAM0wB,MAIf,QAASL,4BAA2B9lD,KAAMrS,OAAQmE,MACjD,GAAI+4B,QAAS7qB,KAAKrP,EAAIhD,MACtB,IAAIw4D,MAAM5wB,IAAMv1B,KAAKQ,WAAW,EAChC,IAAG+0B,KAAO,MAAQ,UAAWnlB,UAAUpQ,KAAMrS,OAAO,GACpD,IAAI8nC,MAAOywB,WAAWlmD,KAAMu1B,IAC5B,IAAG5nC,SAAW4nC,IAAM,EAAG4wB,KAAOF,eAAejmD,KAAMrS,OAAS4nC,IAAM,EAAGE,KAAM3jC,KAC3E,QAAQ2jC,KAAM0wB,MAIf,QAASlwB,2BAA0Bj2B,KAAMrS,OAAQmE,MAChD,GAAI+4B,QAAS7qB,KAAKrP,EAAIhD,MACtB,IAAIw4D,MAAM5wB,IAAMv1B,KAAKQ,WAAW,EAChC,IAAIi1B,MAAOywB,WAAWlmD,KAAMu1B,IAC5B,IAAGA,KAAO,MAAQ,UAAWnlB,UAAUpQ,KAAMrS,OAAO,GACpD,IAAGA,SAAW4nC,IAAM,EAAG4wB,KAAOF,eAAejmD,KAAM6qB,OAAS0K,IAAM,EAAGE,KAAM3jC,KAC3E,QAAQ2jC,KAAM0wB,MAIf,QAAShwB,0BAAyBn2B,KAAMrS,OAAQmE,KAAMikC,KACrD,GAAIlL,QAAS7qB,KAAKrP,EAAIhD,MACtB,IAAIw4D,MAAM5wB,IAAMv1B,KAAKQ,WAAW,EAChC,IAAG+0B,KAAO,MAAQ,UAAWnlB,UAAUpQ,KAAMrS,OAAO,GACpD,IAAI8nC,MAAOywB,WAAWlmD,KAAMu1B,IAC5B,IAAG5nC,SAAW4nC,IAAM,EAAG4wB,KAAOF,eAAejmD,KAAM6qB,OAAS0K,IAAM,EAAGE,KAAM3jC,KAC3E,QAAQ2jC,KAAM0wB,MAIf,QAASD,YAAWlmD,KAAMrS,QACzB,GAAIk9B,QAAS7qB,KAAKrP,EAAIhD,MACtB,IAAI4U,GAAG8sB,GAAI+2B,OACX,OAAMv7B,QAAU7qB,KAAKrP,EAAG,CACvBhD,OAASk9B,OAAS7qB,KAAKrP,CACvB0+B,IAAKrvB,KAAKA,KAAKrP,EACf4R,GAAI0gD,SAAS5zB,GAEb,IAAGA,KAAO,IAAQA,KAAO,GAAM,CAC9BA,GAAKrvB,KAAKA,KAAKrP,EAAI,EACnB4R,IAAK8sB,KAAO,GAAOm2B,MAAQC,OAAOp2B,IAEnC,IAAI9sB,IAAMA,EAAElF,EAAG,CAAE+oD,KAAKzjD,KAAKyN,UAAUpQ,KAAMrS,aACtC,CAAEy4D,KAAKzjD,MAAMJ,EAAEwW,EAAGxW,EAAElF,EAAE2C,KAAMrS,WAElC,MAAOy4D,MAGR,QAASC,QAAOr4D,GAAK,MAAOA,GAAES,IAAI,QAAS40B,IAAGzxB,GAAK,MAAOA,GAAE,KAAM4Z,KAAK,KAGvE,QAAS86C,mBAAkBP,QAASzzC,MAAOL,KAAMs0C,SAAUz0D,MAC1D,GAAGA,OAASD,WAAaC,KAAKy5B,OAAS,EAAG,MAAO,SACjD,IAAIi7B,QAASl0C,QAAUzgB,UAAYygB,OAASxiB,GAAGY,EAAE,EAAG8I,EAAE,GACtD,IAAIitD,UAAYz3D,GAAIC,GAAI2I,KAAMlH,EAAG+tD,KAAMiI,QAASltD,CAChD,KAAIusD,QAAQ,KAAOA,QAAQ,GAAG,GAAI,MAAO,EAEzC,KAAI,GAAI/qD,IAAK,EAAG2rD,MAAQZ,QAAQ,GAAGp4D,OAAQqN,GAAK2rD,QAAS3rD,GAAI,CAC5D,GAAIqC,GAAI0oD,QAAQ,GAAG/qD,GAEnB,QAAOqC,EAAE,IAGR,IAAK,YAAaopD,MAAM9jD,KAAK,IAAM8jD,MAAMziC,MAAQ,MAEjD,KAAK,WAAYyiC,MAAM9jD,KAAK,IAAM8jD,MAAMziC,MAAQ,MAEhD,KAAK,aAAcyiC,MAAM9jD,KAAK8jD,MAAMziC,MAAQ,IAAM,MAIlD,KAAK,SACJh1B,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,SACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,SACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,SACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,WACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,YACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,QACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,QACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,KAAKD,GACnB,MAED,KAAK,QACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,QACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,KAAKD,GACnB,MAED,KAAK,QACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MAED,KAAK,QACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,KAAKD,GACnB,MAID,KAAK,WACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MACD,KAAK,WACJA,GAAKy3D,MAAMziC,KAAO/0B,IAAKw3D,MAAMziC,KAC7ByiC,OAAM9jD,KAAK1T,GAAG,IAAID,GAClB,MACD,KAAK,WAAY,KAIjB,KAAK,gBAAiB,KAEtB,KAAK,cAAe,KAEpB,KAAK,YAAa,KAIlB,KAAK,SACJ4I,KAAOyF,EAAE,GAAG,EAAI3M,GAAIshB,eAAeiqC,YAAYf,YAAY79C,EAAE,GAAG,KAAMmpD,OACtEC,OAAM9jD,KAAKu4C,YAAYxqD,GACvB,MAED,KAAK,UACJkH,KAAOyF,EAAE,GAAG,EAAI3M,GAAIshB,eAAeiqC,YAAYf,YAAY79C,EAAE,GAAG,KAAM4U,KACtEw0C,OAAM9jD,KAAKu4C,YAAYxqD,GACvB,MACD,KAAK,WACJkH,KAAOyF,EAAE,GAAG,EAAIohD,MAAOphD,EAAE,GAAG,EAAI3M,GAAIshB,eAAe3U,EAAE,GAAG,GAAImpD,OAC5DC,OAAM9jD,KAAK4jD,SAAS,GAAG9H,KAAK,GAAG,IAAIvD,YAAYxqD,GAC/C,MAID,KAAK,UAEL,IAAK,aAEJ,GAAIk2D,MAAOvpD,EAAE,GAAG,GAAIwpD,KAAOxpD,EAAE,GAAG,EAChC,KAAIupD,KAAMA,KAAO,CACjB,IAAIE,MAAOL,MAAMxmD,OAAO2mD,KACxBH,OAAM94D,QAAUi5D,IAChB,IAAGC,OAAS,OAAQA,KAAOC,KAAKrlD,OAChCglD,OAAM9jD,KAAKkkD,KAAO,IAAMC,KAAKt7C,KAAK,KAAO,IACzC,MAGD,KAAK,UAAWi7C,MAAM9jD,KAAKtF,EAAE,GAAK,OAAS,QAAU,MAErD,KAAK,SAAUopD,MAAM9jD,KAAKtF,EAAE,GAAK,MAEjC,KAAK,SAAUopD,MAAM9jD,KAAK1U,OAAOoP,EAAE,IAAM,MAEzC,KAAK,SAAUopD,MAAM9jD,KAAK,IAAMtF,EAAE,GAAK,IAAM,MAE7C,KAAK,SAAUopD,MAAM9jD,KAAKtF,EAAE,GAAK,MAEjC,KAAK,UACJzF,KAAOyF,EAAE,GAAG,EAAI7D,GAAI6Y,gBAAgBhV,EAAE,GAAG,GAAImpD,OAC7CC,OAAM9jD,KAAKw5C,aAAa3iD,GACxB,MAED,KAAK,YACJ5B,KAAOyF,EAAE,GAAG,EAAIohD,MAAOphD,EAAE,GAAG,EAAI7D,GAAI6D,EAAE,GAAG,EACzCopD,OAAM9jD,KAAK4jD,SAAS,GAAG9H,KAAK,GAAG,IAAItC,aAAa3iD,GAChD,MAED,KAAK,aACJitD,MAAM9jD,KAAK,OAAS8jD,MAAMziC,MAAQ,IAClC,MAID,KAAK,cAAe,KAGpB,KAAK,UAEJ0iC,QAAUrpD,EAAE,GAAG,EACf,IAAI0pD,KAAMR,SAAS,GAAGG,QACtB,IAAI3lD,MAAOgmD,IAAIpxB,IACf,IAAG50B,OAAQimD,qBAAqBjmD,KAAOimD,oBAAoBjmD,KAC3D0lD,OAAM9jD,KAAK5B,KACX,MAGD,KAAK,WAEJ,GAAIkmD,SAAU5pD,EAAE,GAAG,EAAIqpD,SAAUrpD,EAAE,GAAG,EAAI,IAAI6pD,WAE9C,IAAGX,SAASU,QAAQ,GAAIC,WAAaX,SAASU,QAAQ,GAAGP,aACpD,IAAGH,SAASU,QAAQ,GAAIC,WAAaX,SAASU,QAAQ,GAAGP,QAC9D,KAAIQ,WAAYA,YAAcpyB,KAAM,YACpC2xB,OAAM9jD,KAAKukD,WAAWpyB,KACtB,MAID,KAAK,WAAY2xB,MAAM9jD,KAAK,IAAM8jD,MAAMziC,MAAQ,IAAM,MAGtD,KAAK,YAAayiC,MAAM9jD,KAAK,QAAU,MAIvC,KAAK,SACJjS,GAAKA,EAAE2M,EAAE,GAAG,GAAG7D,EAAE6D,EAAE,GAAG,GACtB,IAAIzI,IAAKlE,EAAGuhB,KAAKvhB,EAAG8I,EAAEyY,KAAKzY,EAC3B,IAAG+sD,SAASY,QAAQjM,YAAYxqD,IAAK,CACpC,GAAI02D,SAAWb,SAASY,QAAQjM,YAAYxqD,GAC5C+1D,OAAM9jD,KAAK2jD,kBAAkBc,QAASZ,OAAQ5xD,EAAG2xD,SAAUz0D,WAEvD,CACJ,GAAIu1D,KAAM,KACV,KAAIr4D,GAAG,EAAEA,IAAIu3D,SAASe,OAAO35D,SAAUqB,GAAI,CAE1CC,GAAKs3D,SAASe,OAAOt4D,GACrB,IAAG0B,EAAEA,EAAIzB,GAAG,GAAGa,EAAEY,GAAKA,EAAEA,EAAIzB,GAAG,GAAG2Y,EAAElX,EAAG,QACvC,IAAGA,EAAE8I,EAAIvK,GAAG,GAAGa,EAAE0J,GAAK9I,EAAE8I,EAAIvK,GAAG,GAAG2Y,EAAEpO,EAAG,QACvCitD,OAAM9jD,KAAK2jD,kBAAkBr3D,GAAG,GAAIu3D,OAAQ5xD,EAAG2xD,SAAUz0D,OAE1D,IAAIu1D,IAAKZ,MAAM9jD,KAAKtF,EAAE,IAEvB,KAGD,KAAK,WACJopD,MAAM9jD,KAAK,IAAMtF,EAAE,GAAG5O,IAAI43D,QAAQ76C,KAAK,KAAO,IAC9C,MAID,KAAK,aAEJ,KAGD,KAAK,eAAgB,KAGrB,KAAK,SAAU,KAGf,KAAK,YAAa,KAGlB,KAAK,aACJi7C,MAAM9jD,KAAK,GACX,MAGD,KAAK,aAAc,KAGnB,KAAK,WAAY8jD,MAAM9jD,KAAK,GAAK,MAGjC,KAAK,cAAe,KAGpB,KAAK,aAAc,KAEnB,SAAS,KAAM,+BAAiCtF,GAKlD,MAAOopD,OAAM,GAId,QAASc,6BAA4Bh6D,KAAMI,QAC1C,GAAI4nC,KAAMhoC,KAAKiT,WAAW,EAC1B,OAAO4P,WAAU7iB,KAAMI,OAAO,GAG/B,GAAI65D,cACHx1D,EAAK,YACLC,EAAK,QACLC,EAAK,QAIN,IAAIouD,QACH,EAAQ,OACRtuD,EAAQ,OACRC,EAAQ,aACRC,EAAQ,YACRC,EAAQ,OACR6mB,EAAQ,UACRC,EAAQ,cACRjE,EAAQ,aACRkE,EAAQ,QACR9mB,EAAQ,gBACRC,GAAQ,OACRC,GAAQ,aACRC,GAAQ,cACRC,GAAQ,cACRC,GAAQ,cACRC,GAAQ,OACRC,GAAQ,QACRC,GAAQ,MACRK,GAAQ,iBACRgiB,GAAQ,mBACRwyC,GAAQ,iBACRC,GAAQ,oBACRvuC,GAAQ,OACRC,GAAQ,UACRC,GAAQ,mBACRnE,GAAQ,YACR2E,GAAQ,UACRC,GAAQ,gBACRC,GAAQ,cACRE,GAAQ,YACRipC,GAAQ,UACR/tC,GAAQ,cACRjiB,GAAQ,eACRC,GAAQ,eACRC,GAAQ,OACRC,GAAQ,cACR6mB,GAAQ,QACR9E,GAAQ,gBACRC,GAAQ,YACR8E,GAAQ,QACR7mB,GAAQ,SACRC,GAAQ,kBACRC,GAAQ,eACRC,GAAQ,OACRC,GAAQ,MACRi0D,GAAQ,OACRC,GAAQ,QACRxtC,GAAQ,QACRytC,GAAQ,gBACRC,GAAQ,cACRztC,GAAQ,SACR1mB,GAAQ,aACRwvD,GAAQ,YACR7oC,GAAQ,cACRytC,GAAQ,eACRC,GAAQ,eACRztC,GAAQ,eACRkpC,GAAQ,mBACRjpC,GAAQ,mBACRopC,GAAQ,eACRE,GAAQ,cACRhX,GAAQ,iBACRmX,GAAQ,eACRE,GAAQ,cACRE,GAAQ,kBACRE,GAAQ,cACRC,GAAQ,YACRE,GAAQ,cACRE,GAAQ,YACR7Y,GAAQ,gBACRkc,GAAQ,OACRC,GAAQ,SACRC,GAAQ,cACR1tC,GAAQ,YACRC,GAAQ,eACR0tC,GAAQ,mBACRztC,GAAQ,WACR0tC,GAAQ,aACRztC,GAAQ,UACR0tC,GAAQ,QACRC,GAAQ,gBACRxD,GAAQ,cACRlqC,GAAQ,cACRqqC,GAAQ,QACRE,GAAQ,UACRE,GAAQ,OACRkD,GAAQ,SACRC,GAAQ,YACRjF,GAAQ,UACRE,GAAQ,eACRC,GAAQ,gBACRE,GAAQ,iBACRE,IAAQ,iBACRC,IAAQ,oBACRE,IAAQ,oBACRE,IAAQ,WACRE,IAAQ,gBACRxpC,IAAQ,gBACR2pC,IAAQ,gBACRE,IAAQ,gBACRE,IAAQ,eACRC,IAAQ,SACR4D,IAAQ,cACRC,IAAQ,gBACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,UACRC,IAAQ,UACRC,IAAQ,QACRC,IAAQ,MACRC,IAAQ,cACRpE,IAAQ,iBACRC,IAAQ,UACRI,IAAQ,aACRE,IAAQ,eACR8D,IAAQ,eACRC,IAAQ,aACRtd,IAAQ,cACRC,IAAQ,cACRC,IAAQ,kBACRqd,IAAQ,YACRC,IAAQ,iBACRC,IAAQ,cACRtd,IAAQ,eACRud,IAAQ,eACRtd,IAAQ,YACRud,IAAQ,QACRC,IAAQ,YACRC,IAAQ,UACRC,IAAQ,gBACRC,IAAQ,UACRC,IAAQ,aACRC,IAAQ,aACRC,IAAQ,gBACRC,IAAQ,YACRC,IAAQ,aACRC,IAAQ,UACRC,IAAQ,OACRC,IAAQ,cACRC,IAAQ,UACRC,IAAQ,YACRC,IAAQ,iBACRC,IAAQ,cACRC,IAAQ,oBACRve,IAAQ,gBACRC,IAAQ,eACRC,IAAQ,iBACRse,IAAQ,kBACRC,IAAQ,cACRC,IAAQ,qBACRC,IAAQ,SACRC,IAAQ,cACRC,IAAQ,WACRC,IAAQ,WACRC,IAAQ,eACRC,IAAQ,eACRC,IAAQ,iBACRC,IAAQ,eACRC,IAAQ,kBACR9e,IAAQ,qBACR+e,IAAQ,aACRC,IAAQ,YACRC,IAAQ,YACRC,IAAQ,gBACRC,IAAQ,cACRC,IAAQ,eACRC,IAAQ,kBACRC,IAAQ,oBACRC,IAAQ,kBACRC,IAAQ,iBACRC,IAAQ,UACRC,IAAQ,YACRC,IAAQ,YACRC,IAAQ,aACRC,IAAQ,cACRC,IAAQ,UACRC,IAAQ,SACR9f,IAAQ,cACR+f,IAAQ,UACRC,IAAQ,oBACRC,IAAQ,kBACRC,IAAQ,QACRC,IAAQ,aACRC,IAAQ,YACRC,IAAQ,cACRjyC,IAAQ,mBACRkyC,IAAQ,oBACRC,IAAQ,cACRlyC,IAAQ,cACRmyC,IAAQ,mBACRlyC,IAAQ,eACRmyC,IAAQ,aACRC,IAAQ,eACRzgB,IAAQ,gBACR0gB,IAAQ,aACRC,IAAQ,cACRC,IAAQ,cACRC,IAAQ,iBACRC,IAAQ,YACRC,IAAQ,cACRC,IAAQ,eACRC,IAAQ,aACRC,IAAQ,aACRC,IAAQ,gBACRC,IAAQ,eACRC,IAAQ,kBACRC,IAAQ,gBACRC,IAAQ,qBACRC,IAAQ,WACRC,IAAQ,OACRC,IAAQ,gBACRC,IAAQ,kBACRC,IAAQ,aACRC,IAAQ,aACRC,IAAQ,eACRC,IAAQ,iBACRC,IAAQ,cACRC,IAAQ,iBACRC,IAAQ,qBACRC,IAAQ,YACRC,IAAQ,oBACRC,IAAQ,WACRC,IAAQ,cACRC,IAAQ,iBACRC,IAAQ,WACRC,IAAQ,eACRC,IAAQ,gBACRC,IAAQ,gBACRC,IAAQ,mBACRC,IAAQ,iBACRC,IAAQ,eACRC,IAAQ,cACRC,IAAQ,YACRC,IAAQ,kBACRC,IAAQ,oBACRC,IAAQ,iBACRC,IAAQ,YACRC,IAAQ,aACRC,IAAQ,oBACRC,IAAQ,aACRC,IAAQ,eACRC,IAAQ,iBACRC,IAAQ,kBACRC,IAAQ,eACRC,IAAQ,gBACRC,IAAQ,gBACRC,IAAQ,qBACRC,IAAQ,mBACRC,IAAQ,qBACRC,IAAQ,yBACRC,IAAQ,cACRC,IAAQ,aACRC,IAAQ,mBACRC,IAAQ,sBACRC,IAAQ,eACRC,IAAQ,eACRC,IAAQ,gBACRC,IAAQ,cACRC,IAAQ,kBACRC,IAAQ,cACRC,IAAQ,gBACRC,IAAQ,kBACRC,IAAQ,2BACRC,IAAQ,eACRC,IAAQ,iBACRC,IAAQ,aACRC,IAAQ,iBACRC,IAAQ,YACRC,IAAQ,mBACRC,IAAQ,cACRC,IAAQ,wBACR/2C,IAAQ,kBACRg3C,IAAQ,qBACRC,IAAQ,kBACRC,IAAQ,kBACRC,IAAQ,kBACRC,IAAQ,qBACRC,IAAQ,aACRC,IAAQ,iBACRC,IAAQ,eACRC,IAAQ,mBACRC,IAAQ,aACRC,IAAQ,eACRC,IAAQ,kBACRC,IAAQ,gBACRC,IAAQ,gBACRC,IAAQ,kBACRC,IAAQ,kBACRC,IAAQ,gBACRC,IAAQ,iBACRC,IAAQ,uBACRC,IAAQ,0BACRC,IAAQ,iBACRC,IAAQ,eACRC,IAAQ,YACRC,IAAQ,cACRC,IAAQ,aACRC,IAAQ,iBACRC,IAAQ,kBACRC,IAAQ,kBACRC,IAAQ,gBACRC,IAAQ,kBACRC,IAAQ,gBACRC,IAAQ,gBACRC,IAAQ,qBACRC,IAAQ,cACRC,IAAQ,mBACRh5C,IAAQ,uBACRi5C,IAAQ,mBACRC,IAAQ,kBACRC,IAAQ,mBACRC,IAAQ,cACRC,IAAQ,iBACRC,IAAQ,kBACRC,IAAQ,eACRC,IAAQ,eACRC,IAAQ,oBACRC,IAAQ,sBACRC,IAAQ,sBACRC,IAAQ,mBACRC,IAAQ,qBACRC,IAAQ,qBACRC,IAAQ,gBACRC,IAAQ,aACRC,IAAQ,YACRC,IAAQ,cACRC,IAAQ,mBACRC,IAAQ,gBACRC,IAAQ,wBACRC,IAAQ,qBACRC,IAAQ,SACRC,IAAQ,kBACRC,IAAQ,gBACRC,IAAQ,kBACRC,IAAQ,gBACRC,IAAQ,gBACRC,IAAQ,mBACRC,IAAQ,mBACRC,IAAQ,oBACRC,IAAQ,eACRC,IAAQ,oBACRC,IAAQ,uBACRC,IAAQ,cACRC,IAAQ,WACRC,IAAQ,WACRC,IAAQ,aACRC,IAAQ,aACRC,IAAQ,eACRC,IAAQ,eACRC,IAAQ,cACRC,IAAQ,qBACRC,IAAQ,yBACRC,IAAQ,mBACRC,IAAQ,WACRC,IAAQ,iBACRC,IAAQ,iBACRC,IAAQ,eACRC,IAAQ,YACRC,IAAQ,mBACRC,IAAQ,mBACRC,IAAQ,iBACRC,IAAQ,kBACRC,IAAQ,oBACRC,IAAQ,mBACRC,IAAQ,cACRC,IAAQ,gBACRC,IAAQ,WACRC,IAAQ,YACRC,IAAQ,cACRC,IAAQ,cACRC,IAAQ,mBACRC,IAAQ,oBACRC,IAAQ,iBACRC,IAAQ,YACRC,IAAQ,SACRC,IAAQ,SACRC,IAAQ,gBACRC,IAAQ,mBACRC,IAAQ,iBACRC,IAAQ,WACRC,IAAQ,gBACRC,IAAQ,gBACRC,IAAQ,cACRC,IAAQ,iBACRC,IAAQ,iBACRC,IAAQ,oBACRC,IAAQ,sBACRC,IAAQ,aACRC,IAAQ,cACRC,IAAQ,cACRC,IAAQ,oBACRC,IAAQ,eACRC,IAAQ,gBACRC,IAAQ,oBAIT,IAAI1Z,OACH,EAAQ,QACRjuD,EAAQ,KACRC,EAAQ,OACRC,EAAQ,UACRC,EAAQ,MACR6mB,EAAQ,UACRC,EAAQ,MACRjE,EAAQ,MACRkE,EAAQ,MACR9mB,EAAQ,SACRC,GAAQ,KACRC,GAAQ,MACRC,GAAQ,QACRC,GAAQ,SACRC,GAAQ,QACRC,GAAQ,MACRC,GAAQ,MACRC,GAAQ,MACRC,GAAQ,OACRC,GAAQ,KACRC,GAAQ,OACRC,GAAQ,MACRC,GAAQ,KACRgiB,GAAQ,QACRwyC,GAAQ,MACRC,GAAQ,MACRvuC,GAAQ,OACRC,GAAQ,QACRC,GAAQ,SACRnE,GAAQ,QACR2E,GAAQ,OACRC,GAAQ,MACRC,GAAQ,MACRC,GAAQ,QACRC,GAAQ,OACRipC,GAAQ,QACR/tC,GAAQ,MACRjiB,GAAQ,KACRC,GAAQ,MACRC,GAAQ,MACRC,GAAQ,SACR6mB,GAAQ,OACR9E,GAAQ,WACRC,GAAQ,OACR8E,GAAQ,OACR7mB,GAAQ,SACRC,GAAQ,MACRC,GAAQ,OACRC,GAAQ,OACRC,GAAQ,SACRi0D,GAAQ,QACRC,GAAQ,SACRxtC,GAAQ,SACRytC,GAAQ,OACRC,GAAQ,OACRztC,GAAQ,SACR1mB,GAAQ,KACRwvD,GAAQ,KACRC,GAAQ,OACRC,GAAQ,MACRC,GAAQ,OACRhpC,GAAQ,OACRytC,GAAQ,MACRC,GAAQ,OACRztC,GAAQ,QACRkpC,GAAQ,OACRjpC,GAAQ,OACRopC,GAAQ,MACRE,GAAQ,QACRhX,GAAQ,OACRmX,GAAQ,UACRE,GAAQ,OACRE,GAAQ,SACRE,GAAQ,SACRC,GAAQ,MACRE,GAAQ,QACRE,GAAQ,OACR7Y,GAAQ,UACRkc,GAAQ,SACRC,GAAQ,SACRC,GAAQ,SACR1tC,GAAQ,WACRC,GAAQ,SACR0tC,GAAQ,YACRztC,GAAQ,QACR0tC,GAAQ,OACRztC,GAAQ,OACR0tC,GAAQ,OACRC,GAAQ,WACRxD,GAAQ,SACRlqC,GAAQ,QACRqqC,GAAQ,UACRE,GAAQ,SACRE,GAAQ,YACRkD,GAAQ,cACRC,GAAQ,YACRjF,GAAQ,SACRE,GAAQ,QACRC,GAAQ,OACRE,GAAQ,OACRE,IAAQ,SACRC,IAAQ,UACRE,IAAQ,UACRE,IAAQ,QACRE,IAAQ,QACRxpC,IAAQ,QACR2pC,IAAQ,cACRE,IAAQ,WACRE,IAAQ,YACRC,IAAQ,MACR4D,IAAQ,OACRC,IAAQ,OACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,SACRC,IAAQ,OACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,OACRC,IAAQ,UACRC,IAAQ,aACRpE,IAAQ,OACRC,IAAQ,QACRE,IAAQ,YACRE,IAAQ,OACRE,IAAQ,OACR8D,IAAQ,QACRC,IAAQ,SACRtd,IAAQ,WACRC,IAAQ,UACRC,IAAQ,IACRqd,IAAQ,IACRC,IAAQ,QACRC,IAAQ,SACRtd,IAAQ,QACRud,IAAQ,UACRtd,IAAQ,QACRud,IAAQ,WACRC,IAAQ,SACRC,IAAQ,OACRC,IAAQ,YACR8P,IAAQ,YACR7P,IAAQ,MACRC,IAAQ,MACRC,IAAQ,MACRC,IAAQ,UACRC,IAAQ,UACRC,IAAQ,UACRC,IAAQ,WACRC,IAAQ,WACRC,IAAQ,OACRC,IAAQ,UACRC,IAAQ,WACRC,IAAQ,cACRmP,IAAQ,iBACRlP,IAAQ,gBACRmP,IAAQ,iBACRC,IAAQ,WACRC,IAAQ,cACRpP,IAAQ,iBACRqP,IAAQ,iBACR5tB,IAAQ,aACRC,IAAQ,QACRC,IAAQ,UACRse,IAAQ,WACRqP,IAAQ,QACRpP,IAAQ,QACRC,IAAQ,OACRC,IAAQ,OACRC,IAAQ,SACRC,IAAQ,aACRC,IAAQ,MACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,OACRC,IAAQ,WACR4O,IAAQ,UACR3tB,IAAQ,OACRC,IAAQ,UACR2tB,IAAQ,YACRC,IAAQ,UACRC,IAAQ,OACRC,IAAQ,UACRC,IAAQ,UACRC,IAAQ,OACRjP,IAAQ,WACR9e,IAAQ,gBACR+e,IAAQ,aACRC,IAAQ,eACRC,IAAQ,WACRC,IAAQ,YACRC,IAAQ,WACRC,IAAQ,OACRC,IAAQ,SACRC,IAAQ,OACRC,IAAQ,UACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,YACRC,IAAQ,UACRC,IAAQ,aACRC,IAAQ,aACR5f,IAAQ,WACR+tB,IAAQ,QACRhO,IAAQ,UACRC,IAAQ,WACRC,IAAQ,QACRC,IAAQ,SACRC,IAAQ,OACRC,IAAQ,OACRC,IAAQ,UACRjyC,IAAQ,YACRkyC,IAAQ,MACRC,IAAQ,OACRlyC,IAAQ,OACRoyC,IAAQ,UACRC,IAAQ,UACRsN,IAAQ,QACR/tB,IAAQ,MACR0gB,IAAQ,OACRC,IAAQ,UACRC,IAAQ,SACRC,IAAQ,WACRC,IAAQ,SACRC,IAAQ,aACRC,IAAQ,OACRgN,IAAQ,OACRC,IAAQ,OACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,OACRC,IAAQ,gBACRC,IAAQ,WACRtuB,IAAQ,aACRuuB,IAAQ,cACRvN,IAAQ,gBACRwN,IAAQ,kBACRC,IAAQ,gBACRxN,IAAQ,WACRyN,IAAQ,OACRC,IAAQ,QACRC,IAAQ,aACRC,IAAQ,KACRC,IAAQ,QACR1N,IAAQ,SACRC,IAAQ,YACRC,IAAQ,cACRC,IAAQ,iBACR94C,IAAQ,OACR+4C,IAAQ,gBACRuN,IAAQ,WACRC,IAAQ,cACRvN,IAAQ,WACRC,IAAQ,iBACRuN,IAAQ,aACRC,IAAQ,YACRC,IAAQ,eACRC,IAAQ,eACRzN,IAAQ,cACRC,IAAQ,aACRC,IAAQ,cACRC,IAAQ,eACRC,IAAQ,SACRsN,IAAQ,WACRC,IAAQ,UACRtN,IAAQ,UACRC,IAAQ,YACRC,IAAQ,UACRqN,IAAQ,SACRpN,IAAQ,SACRC,IAAQ,aACRC,IAAQ,YACRC,IAAQ,OACRC,IAAQ,YACRC,IAAQ,QACRC,IAAQ,OACRC,IAAQ,SACRC,IAAQ,YACRC,IAAQ,QACR4M,IAAQ,YACRC,IAAQ,WACR5M,IAAQ,UACRC,IAAQ,cACRC,IAAQ,cACRC,IAAQ,SACRC,IAAQ,eACRC,IAAQ,WACRwM,IAAQ,YACRvM,IAAQ,UACRC,IAAQ,WACRC,IAAQ,cACRC,IAAQ,MACRqM,IAAQ,SACRC,IAAQ,UACRC,IAAQ,QACRtM,IAAQ,UACRuM,IAAQ,UACRC,IAAQ,WACRvM,IAAQ,WACRC,IAAQ,UACRC,IAAQ,SACRC,IAAQ,QACRC,IAAQ,WACRC,IAAQ,QACRC,IAAQ,YACRC,IAAQ,UACRC,IAAQ,MACRC,IAAQ,QACRC,IAAQ,QACRC,IAAQ,QACR6L,IAAQ,OACR5L,IAAQ,QACRC,IAAQ,UACRC,IAAQ,UACRC,IAAQ,QACRC,IAAQ,OACRC,IAAQ,OACRC,IAAQ,QACRC,IAAQ,QACRsL,IAAQ,QACRC,IAAQ,WACRtL,IAAQ,aACRuL,IAAQ,cACRtL,IAAQ,OACRuL,IAAQ,WACRC,IAAQ,OACRC,IAAQ,gBACRC,IAAQ,YACRzL,IAAQ,cACR0L,IAAQ,QACRzL,IAAQ,iBACRC,IAAQ,kBACRyL,IAAQ,kBACRC,IAAQ,iBACRzL,IAAQ,UACRC,IAAQ,UACRC,IAAQ,WACRwL,IAAQ,QACRC,IAAQ,UACRC,IAAQ,aACRC,IAAQ,eACRC,IAAQ,oBACR3L,IAAQ,QACR/2C,IAAQ,UACRg3C,IAAQ,aACR2L,IAAQ,eACR1iD,IAAQ,QACRg3C,IAAQ,cACRC,IAAQ,cACR0L,IAAQ,WACR1iD,IAAQ,eACR2iD,IAAQ,YACRC,IAAQ,WACRC,IAAQ,WACRC,IAAQ,OACRC,IAAQ,OACRC,IAAQ,UACRC,IAAQ,QACRC,IAAQ,SACRC,IAAQ,OACRC,IAAQ,WACRC,IAAQ,gBACRpM,IAAQ,YACRqM,IAAQ,kBACRC,IAAQ,eACRrM,IAAQ,gBACRC,IAAQ,mBACRC,IAAQ,cACRC,IAAQ,gBACRC,IAAQ,cACRC,IAAQ,WACRC,IAAQ,MAET;GAAI5S,WACH/tD,EAAQ,EACRC,EAAQ,EACRQ,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EACRE,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EACRgiB,GAAQ,EACRwyC,GAAQ,EACRC,GAAQ,EACRvuC,GAAQ,EACRC,GAAQ,EACRS,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EACR7mB,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EACR6mB,GAAQ,EACR9E,GAAQ,EACRC,GAAQ,EACR8E,GAAQ,EACR7mB,GAAQ,EACRE,GAAQ,EACRC,GAAQ,EACRo0D,GAAQ,EACRvtC,GAAQ,EACRmpC,GAAQ,EACRjpC,GAAQ,EACRopC,GAAQ,EACRE,GAAQ,EACRhX,GAAQ,EACRqX,GAAQ,EACRE,GAAQ,EACRE,GAAQ,EACRG,GAAQ,EACRE,GAAQ,EACR7Y,GAAQ,EACRmc,GAAQ,EACRC,GAAQ,EACRC,GAAQ,EACRxtC,GAAQ,EACRC,GAAQ,EACR6oC,GAAQ,EACRC,GAAQ,EACRE,GAAQ,EACR/oC,IAAQ,EACR6tC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRG,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRnE,IAAQ,EACRqE,IAAQ,EACRC,IAAQ,EACRtd,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRqd,IAAQ,EACRE,IAAQ,EACRtd,IAAQ,EACRud,IAAQ,EACRtd,IAAQ,EACRud,IAAQ,EACRC,IAAQ,EACRE,IAAQ,EACR8P,IAAQ,EACR7P,IAAQ,EACRC,IAAQ,EACR1d,IAAQ,EACRC,IAAQ,EACRse,IAAQ,EACRqP,IAAQ,EACR9O,IAAQ,EACRG,IAAQ,EACR4O,IAAQ,EACR3tB,IAAQ,EACRC,IAAQ,EACR2tB,IAAQ,EACRK,IAAQ,EACR9O,IAAQ,EACRC,IAAQ,EACRK,IAAQ,EACRC,IAAQ,EACRE,IAAQ,EACRC,IAAQ,EACRE,IAAQ,EACRI,IAAQ,EACRG,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRjyC,IAAQ,EACRkyC,IAAQ,EACRC,IAAQ,EACRU,IAAQ,EACRgN,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRM,IAAQ,EACRrN,IAAQ,EACR0N,IAAQ,EACRE,IAAQ,EACRK,IAAQ,EACRrN,IAAQ,EACRC,IAAQ,EACRqN,IAAQ,EACRpN,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACR4M,IAAQ,EACRC,IAAQ,EACR5M,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRwM,IAAQ,EACRvM,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRqM,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRtM,IAAQ,EACRuM,IAAQ,EACRC,IAAQ,EACRvM,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRQ,IAAQ,EACRsL,IAAQ,EACRC,IAAQ,EACRtL,IAAQ,EACRwL,IAAQ,EACRC,IAAQ,EACRG,IAAQ,EACRvL,IAAQ,EACRC,IAAQ,EACR0L,IAAQ,EACRC,IAAQ,EACRzL,IAAQ,EACR/2C,IAAQ,EACRg3C,IAAQ,EACR2L,IAAQ,EACRG,IAAQ,EACRQ,IAAQ,EACRC,IAAQ,EACRpM,IAAQ,EACRqM,IAAQ,EACRC,IAAQ,EACRrM,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACRC,IAAQ,EACR/+D,MAAQ,EAGT,IAAIozD,sBACH4X,aAAc,OACdC,cAAe,QACfC,kBAAmB,YACnBC,eAAgB,SAChBC,kBAAmB,YACnBC,mBAAoB,aACpBC,aAAc,OACdC,kBAAmB,YACnBC,iBAAkB,WAClBC,mBAAoB,aACpBC,yBAA0B,mBAC1BC,kBAAmB,YACnBC,eAAgB,SAChBC,kBAAmB,YACnBC,cAAe,QACfC,kBAAmB,YACnBC,eAAgB,SAChBC,qBAAsB,eACtBC,wBAAyB,kBACzBC,mBAAoB,aACpBC,sBAAuB,gBACvBC,kBAAmB,YACnBC,qBAAsB,eACtBC,mBAAoB,aACpBC,gBAAiB,UACjBC,wBAAyB,kBACzBC,qBAAsB,eACtBC,YAAa,MACbC,aAAc,OACdC,iBAAkB,WAClBC,qBAAsB,eACtBC,qBAAsB,eACtBC,YAAa,MACbC,aAAc,OACdC,aAAc,OACdC,gBAAiB,UACjBC,qBAAsB,eACtBC,oBAAqB,cACrBC,qBAAsB,eACtBC,mBAAoB,aACpBC,eAAgB,SAChBC,kBAAmB,YACnBC,cAAe,QACfC,iBAAkB,WAClBC,eAAgB,SAChBC,kBAAmB,YACnBC,mBAAoB,aACpBC,sBAAuB,gBACvBC,oBAAqB,cACrBC,cAAe,QACfC,mBAAoB,aACpBC,kBAAmB,YACnBC,wBAAyB,kBACzBC,cAAe,QACfC,qBAAsB,eACtBC,aAAc,OACdC,gBAAiB,UACjBC,eAAgB,SAChBC,cAAe,QACfC,cAAe,QACfC,eAAgB,SAChBC,cAAe,QACfC,eAAgB,SAChBC,eAAgB,SAChBC,cAAe,QACfC,kBAAmB,YACnBC,oBAAqB,cACrBC,mBAAoB,aACpBC,qBAAsB,eACtBC,oBAAqB,cACrBC,kBAAmB,YACnBC,kBAAmB,YACnBC,cAAe,QACfC,sBAAuB,gBACvBC,yBAA0B,mBAC1BC,iBAAkB,WAClBC,kBAAmB,YACnBC,iBAAkB,WAClBC,oBAAqB,cACrBC,mBAAoB,aACpBC,oBAAqB,cACrBC,kBAAmB,YACnBC,uBAAwB,iBACxBC,uBAAwB,iBACxBC,wBAAyB,kBACzBC,wBAAyB,kBACzBC,qBAAsB,eACtBC,YAAa,MACbC,qBAAsB,eACtBC,qBAAsB,eACtBC,qBAAsB,eACtBC,oBAAqB,cACrBC,iBAAkB,WAClBC,gBAAiB,UACjBC,YAAa,MACbC,YAAa,MACbC,aAAc,OACdC,cAAe,QACfC,eAAgB,SAChBC,eAAgB,SAChBC,gBAAiB,UACjBC,gBAAiB,UACjBC,eAAgB,SAChBC,eAAgB,SAChBC,kBAAmB,YACnBC,kBAAmB,YACnBC,cAAe,QACfC,iBAAkB,WAClBC,eAAgB,SAChBC,gBAAiB,UACjBC,gBAAiB,UACjBC,cAAe,QACfC,cAAe,QACfC,mBAAoB,aACpBC,qBAAsB,eACtBC,qBAAsB,eACtBC,YAAa,MACbC,eAAgB,SAGjB,IAAI9kD,QACJ,IAAI+kD,YAEJ3iD,MAAK4iD,GAAK,+EAEV,SAASC,YAAWzjD,IAAKroB,KACxB,IAAI,GAAI7M,GAAI,EAAGC,IAAMi1B,IAAIh1B,OAAQF,EAAIC,MAAOD,EAAG,GAAGk1B,IAAIl1B,GAAGsD,IAAMuJ,IAAK,CAAEqoB,IAAI+N,OAAU,OAAOjjC,GAC3Fk1B,IAAIj1B,MAAQqD,EAAEuJ,IAAMqoB,KAAI+N,OAAU/N,KAAIgO,QAAW,OAAOjjC,KAGzD,QAAS24E,gBAAehlD,OAAQpP,KAAMngB,MACrC,GAAIyW,GAAIzW,KAAKw0E,OAAOr0D,KAAK1J,GAAK,KAAO0J,KAAK1J,EAAI,UAC9C,KAAI,GAAI9a,GAAI,EAAGC,IAAM2zB,OAAO1zB,OAAQF,GAAKC,MAAOD,EAAG,GAAG4zB,OAAO5zB,GAAG2oD,WAAa7tC,EAAG,MAAO9a,EACvF4zB,QAAO3zB,MACN0oD,SAAS7tC,EACTg+D,OAAO,EACP9vB,OAAO,EACP+vB,SAAS,EACTC,KAAK,EACLC,kBAAkB,EAEnB,OAAOh5E,KAGR,QAASi5E,aAAY50D,EAAGmV,MAAO0/C,OAAQ90E,MACtC,IACC,GAAGigB,EAAEhhB,IAAM,IAAKghB,EAAExc,EAAIwc,EAAExc,GAAKwf,KAAKhD,EAAElhB,OAC/B,IAAGq2B,QAAU,EAAG,CACpB,GAAGnV,EAAEhhB,IAAM,IAAK,CACf,IAAIghB,EAAElhB,EAAE,KAAOkhB,EAAElhB,EAAGkhB,EAAExc,EAAIjF,IAAIwE,aAAaid,EAAElhB,EAAEq1E,cAC1Cn0D,GAAExc,EAAIjF,IAAI4F,aAAa6b,EAAElhB,EAAEq1E,cAE5B,IAAGn0D,EAAEhhB,IAAM,IAAK,CACpB,GAAI0J,IAAKkM,QAAQoL,EAAElhB,EACnB,KAAI4J,GAAG,KAAOA,GAAIsX,EAAExc,EAAIjF,IAAIwE,aAAa2F,GAAGyrE,cACvCn0D,GAAExc,EAAIjF,IAAI4F,aAAauE,GAAGyrE,cAE3B,IAAGn0D,EAAElhB,IAAMgB,UAAW,MAAO,OAC7BkgB,GAAExc,EAAIjF,IAAI+F,SAAS0b,EAAElhB,EAAEq1E,cAExB,IAAGn0D,EAAEhhB,IAAM,IAAKghB,EAAExc,EAAIjF,IAAImN,OAAOypB,MAAMvgB,QAAQoL,EAAElhB,GAAGq1E,cACpDn0D,GAAExc,EAAIjF,IAAImN,OAAOypB,MAAMnV,EAAElhB,EAAEq1E,SAChC,IAAGp0E,KAAK+0E,OAAQ90D,EAAExJ,EAAIjY,IAAIqN,OAAOupB,OAChC,MAAMtf,GAAK,GAAG9V,KAAKywB,IAAK,KAAM3a,GAChC,GAAGg/D,OAAQ,IACV70D,EAAEjiB,EAAIuxB,OAAOu0B,MAAMgxB,OACnB,IAAI70D,EAAEjiB,EAAEkmD,SAAWjkC,EAAEjiB,EAAEkmD,QAAQD,MAAO,CACrChkC,EAAEjiB,EAAEkmD,QAAQpI,IAAMgG,SAASjyB,OAAOs3B,cAAcC,UAAUnnC,EAAEjiB,EAAEkmD,QAAQD,OAAOnI,IAAK77B,EAAEjiB,EAAEkmD,QAAQnC,MAAQ,EACtG,IAAG/hD,KAAKywB,IAAKxQ,EAAEjiB,EAAEkmD,QAAQ8wB,QAAUnlD,OAAOs3B,cAAcC,UAAUnnC,EAAEjiB,EAAEkmD,QAAQD,OAAOnI,IAEtF,GAAI77B,EAAEjiB,EAAE+lD,SAAW9jC,EAAEjiB,EAAE+lD,QAAQE,MAAO,CACrChkC,EAAEjiB,EAAE+lD,QAAQjI,IAAMgG,SAASjyB,OAAOs3B,cAAcC,UAAUnnC,EAAEjiB,EAAE+lD,QAAQE,OAAOnI,IAAK77B,EAAEjiB,EAAE+lD,QAAQhC,MAAQ,EACtG,IAAG/hD,KAAKywB,IAAKxQ,EAAEjiB,EAAE+lD,QAAQixB,QAAUnlD,OAAOs3B,cAAcC,UAAUnnC,EAAEjiB,EAAE+lD,QAAQE,OAAOnI,KAErF,MAAMhmC,GAAK,GAAG9V,KAAKywB,IAAK,KAAM3a,IAEjC,QAASm/D,kBAAiBC,GAAIl3E,GAC7B,GAAIgB,GAAIirD,kBAAkBjsD,EAC1B,IAAGgB,EAAEhB,EAAE0J,GAAG1I,EAAE8W,EAAEpO,GAAK1I,EAAEhB,EAAEY,GAAGI,EAAE8W,EAAElX,GAAKI,EAAEhB,EAAE0J,GAAG,GAAK1I,EAAEhB,EAAEY,GAAG,EAAGs2E,GAAG,QAAU7qB,aAAarrD,GAEpF,GAAIm2E,aAAc,oCAClB,IAAIC,gBAAiB,wDACrB,IAAIC,YAAa,qBACjB,IAAIC,UAAW,aACf,IAAIC,UAAW,eAEf,SAASC,cAAa/5E,KAAMuE,KAAMowB,MACjC,IAAI30B,KAAM,MAAOA,KAEjB,IAAIuC,KAGJ,IAAIy3E,MAAOh6E,KAAKiC,QAAQ,aACxB,IAAG+3E,KAAO,EAAG,CACZ,GAAIxxC,KAAMxoC,KAAKc,OAAOk5E,KAAK,IAAIzuE,MAAMsuE,SACrC,IAAGrxC,KAAO,KAAMgxC,iBAAiBj3E,EAAGimC,IAAI,IAIzC,GAAIyxC,cACJ,IAAGj6E,KAAKiC,QAAQ,oBAAoB,EAAG,CACtC,GAAIsnC,QAASvpC,KAAKuL,MAAMmuE,YACxB,KAAIM,KAAO,EAAGA,MAAQzwC,OAAOnpC,SAAU45E,KACtCC,WAAWD,MAAQxrB,kBAAkBjlB,OAAOywC,MAAMl5E,OAAOyoC,OAAOywC,MAAM/3E,QAAQ,KAAM,IAItF,GAAIi4E,WACJ,IAAG31E,KAAK41E,YAAcn6E,KAAKiC,QAAQ,cAAc,EAAG,CAEnD,GAAI0xD,MAAO3zD,KAAKuL,MAAMuuE,SACtBM,mBAAkBF,QAASvmB,MAG5B,GAAI0mB,WAAY93E,GAAI0J,EAAE,IAAS9I,EAAE,KAAUkX,GAAIpO,EAAE,EAAG9I,EAAE,GAGtD,IAAIm3E,MAAKt6E,KAAKuL,MAAMouE,eACpB,IAAGW,KAAMC,kBAAkBD,KAAK,GAAI/3E,EAAGgC,KAAM81E,SAG7C,IAAGr6E,KAAKiC,QAAQ,oBAAoB,EAAGu4E,oBAAoBj4E,EAAGvC,KAAKuL,MAAMquE,YAAajlD,KAEtF,KAAIpyB,EAAE,SAAW83E,SAAShgE,EAAElX,GAAKk3E,SAAS93E,EAAEY,GAAKk3E,SAAShgE,EAAEpO,GAAKouE,SAAS93E,EAAE0J,EAAG1J,EAAE,QAAUqsD,aAAayrB,SACxG,IAAG91E,KAAK4qD,UAAY,GAAK5sD,EAAE,QAAS,CACnC,GAAIk4E,QAASjsB,kBAAkBjsD,EAAE,QACjC,IAAGgC,KAAK4qD,WAAasrB,OAAOpgE,EAAEpO,EAAG,CAChCwuE,OAAOpgE,EAAEpO,EAAI1H,KAAK4qD,UAAY,CAC9B,IAAGsrB,OAAOpgE,EAAEpO,EAAIouE,SAAShgE,EAAEpO,EAAGwuE,OAAOpgE,EAAEpO,EAAIouE,SAAShgE,EAAEpO,CACtD,IAAGwuE,OAAOpgE,EAAEpO,EAAIwuE,OAAOl4E,EAAE0J,EAAGwuE,OAAOl4E,EAAE0J,EAAIwuE,OAAOpgE,EAAEpO,CAClD,IAAGwuE,OAAOpgE,EAAElX,EAAIk3E,SAAShgE,EAAElX,EAAGs3E,OAAOpgE,EAAElX,EAAIk3E,SAAShgE,EAAElX,CACtD,IAAGs3E,OAAOpgE,EAAElX,EAAIs3E,OAAOl4E,EAAEY,EAAGs3E,OAAOl4E,EAAEY,EAAIs3E,OAAOpgE,EAAElX,CAClDZ,GAAE,YAAcA,EAAE,OAClBA,GAAE,QAAUqsD,aAAa6rB,SAG3B,GAAGR,WAAW75E,OAAS,EAAGmC,EAAE,WAAa03E,UACzC,IAAGC,QAAQ95E,OAAS,EAAGmC,EAAE,SAAW23E,OACpC,OAAO33E,GAGR,QAASm4E,qBAAoBnxC,QAC5B,GAAGA,OAAOnpC,QAAU,EAAG,MAAO,EAC9B,IAAIH,GAAI,sBAAwBspC,OAAOnpC,OAAS,IAChD,KAAI,GAAIF,GAAI,EAAGA,GAAKqpC,OAAOnpC,SAAUF,EAAGD,GAAK,mBAAqB2uD,aAAarlB,OAAOrpC,IAAM,KAC5F,OAAOD,GAAI,gBAGZ,QAASu6E,qBAAoBj4E,EAAGvC,KAAM20B,MACrC,IAAI,GAAIz0B,GAAI,EAAGA,GAAKF,KAAKI,SAAUF,EAAG,CACrC,GAAIqK,KAAMsQ,YAAY7a,KAAKE,GAAI,KAC/B,KAAIqK,IAAIi+B,IAAK,MACb,IAAI3R,KAAMlC,KAAOA,KAAK,OAAOpqB,IAAIu3B,IAAM,IACvC,IAAGjL,IAAK,CACPtsB,IAAIwsB,OAASF,IAAIE,MACjB,IAAGxsB,IAAI01B,SAAU11B,IAAIwsB,QAAU,IAAIxsB,IAAI01B,QACvC11B,KAAIowE,IAAM9jD,QACJ,CACNtsB,IAAIwsB,OAASxsB,IAAI01B,QACjBpJ,MAAOE,OAAQxsB,IAAI01B,SAAUhJ,WAAY,WACzC1sB,KAAIowE,IAAM9jD,IAEX,GAAI+jD,KAAMpsB,kBAAkBjkD,IAAIi+B,IAChC,KAAI,GAAIxzB,GAAE4lE,IAAIr4E,EAAE0J,EAAE+I,GAAG4lE,IAAIvgE,EAAEpO,IAAI+I,EAAG,IAAI,GAAIC,GAAE2lE,IAAIr4E,EAAEY,EAAE8R,GAAG2lE,IAAIvgE,EAAElX,IAAI8R,EAAG,CACnE,GAAIoB,MAAOs3C,aAAaxqD,EAAE8R,EAAEhJ,EAAE+I,GAC9B,KAAIzS,EAAE8T,MAAO9T,EAAE8T,OAAS7S,EAAE,OAAOF,EAAEgB,UACnC/B,GAAE8T,MAAMjT,EAAImH,MAKf,QAAS6vE,mBAAkBF,QAASvmB,MACnC,GAAIknB,SAAU,KACd,KAAI,GAAIC,MAAO,EAAGA,MAAQnnB,KAAKvzD,SAAU06E,KAAM,CAC9C,GAAI3zB,MAAOtsC,YAAY84C,KAAKmnB,MAAO,KACnC,IAAIC,MAAK1uE,SAAS86C,KAAKx5C,IAAK,IAAI,EAAGqtE,KAAK3uE,SAAS86C,KAAKv5C,IAAI,IAAI,QACvDu5C,MAAKx5C,UAAYw5C,MAAKv5C,GAC7B,KAAIitE,SAAW1zB,KAAKrpB,MAAO,CAAE+8C,QAAU,IAAM3zB,WAAUC,KAAKrpB,MAAOqpB,MACnE,GAAGA,KAAKrpB,MAAO,CACdqpB,KAAK8zB,IAAMt0B,UAAUQ,KAAKrpB,MAC1BqpB,MAAK+zB,IAAMt0B,QAAQO,KAAK8zB,IACxB9zB,MAAKT,IAAMA,IAEZ,MAAMq0B,MAAQC,KAAMd,QAAQa,QAAU5zB,MAIxC,QAASg0B,mBAAkB1B,GAAI9lB,MAC9B,GAAI1zD,IAAK,UAAWqmB,IAAKwX,KACzB,KAAI,GAAI59B,GAAI,EAAGA,GAAKyzD,KAAKvzD,SAAUF,EAAG,CACrC,KAAKomB,IAAMqtC,KAAKzzD,IAAK,QACrB,IAAIskB,IAAK7W,IAAIzN,EAAE,EAAE0N,IAAI1N,EAAE,EAEvB49B,QAAS,CACT,IAAGxX,IAAI20D,IAAKn9C,MAAQ8oB,QAAQtgC,IAAI20D,SAC3B,IAAG30D,IAAI40D,IAAKp9C,MAAQxX,IAAI40D,GAC7B,IAAGp9C,OAAS,EAAG,CAAEtZ,EAAEsZ,MAAQgpB,WAAWhpB,MAAQtZ,GAAE42D,YAAa,EAC7Dn7E,EAAEA,EAAEG,QAAW8d,UAAU,MAAO,KAAMsG,GAEvCvkB,EAAEA,EAAEG,QAAU,SACd,OAAOH,GAAEge,KAAK,IAGf,QAASo9D,mBAAkB32D,KAAM8jB,IAAKixC,GAAIl1E,KAAM8G,IAAKw+C,IACpD,GAAGnlC,KAAKphB,IAAMgB,UAAW,MAAO,EAChC,IAAI2K,IAAK,EACT,IAAIqsE,MAAO52D,KAAKlhB,EAAG+3E,KAAO72D,KAAKphB,CAC/B,QAAOohB,KAAKlhB,GACX,IAAK,IAAKyL,GAAKyV,KAAKphB,EAAI,IAAM,GAAK,MACnC,KAAK,IAAK2L,GAAK,GAAGyV,KAAKphB,CAAG,MAC1B,KAAK,IAAK2L,GAAKuY,KAAK9C,KAAKphB,EAAI,MAC7B,KAAK,IACJ,GAAGiB,KAAKi3E,UAAWvsE,GAAK,GAAInF,MAAK4a,KAAKphB,GAAG8a,kBACpC,CACJsG,KAAKlhB,EAAI,GACTyL,IAAK,IAAIyV,KAAKphB,EAAI8V,QAAQsL,KAAKphB,GAC/B,UAAUohB,MAAK1J,IAAM,YAAa0J,KAAK1J,EAAIjY,IAAIqN,OAAO,IAEvD,KACD,SAASnB,GAAKyV,KAAKphB,CAAG,OAEvB,GAAIA,GAAIya,SAAS,IAAK7B,UAAUjN,KAAMhP,GAAKgM,EAAEu8B,IAE7C,IAAIizC,IAAK3C,eAAev0E,KAAK6kD,QAAS1kC,KAAMngB,KAC5C,IAAGk3E,KAAO,EAAGx7E,EAAEsC,EAAIk5E,EACnB,QAAO/2D,KAAKlhB,GACX,IAAK,IAAK,KACV,KAAK,IAAKvD,EAAEuD,EAAI,GAAK,MACrB,KAAK,IAAKvD,EAAEuD,EAAI,GAAK,MACrB,KAAK,IAAKvD,EAAEuD,EAAI,GAAK,MACrB,SACC,GAAGe,KAAKi9C,QAAS,CAChBl+C,EAAIya,SAAS,IAAK,GAAG86D,WAAWt0E,KAAKm3E,QAASh3D,KAAKphB,GACnDrD,GAAEuD,EAAI,GAAK,OAEZvD,EAAEuD,EAAI,KAAO,OAEf,GAAGkhB,KAAKlhB,GAAK83E,KAAM,CAAE52D,KAAKlhB,EAAI83E,IAAM52D,MAAKphB,EAAIi4E,KAC7C,MAAOr9D,WAAU,IAAK5a,EAAGrD,GAG1B,GAAIs6E,mBAAoB,QAAUoB,6BACjC,GAAIC,WAAY,kBAAmBC,SAAW,kBAC9C,IAAIj8B,QAAS,qBAAsBk8B,QAAU,sBAC7C,IAAIC,SAAUh/D,SAAS,KAAMi/D,QAAUj/D,SAAS,IAEjD,OAAO,SAASw9D,mBAAkB0B,MAAO15E,EAAGgC,KAAM23E,OACjD,GAAI1uE,IAAK,EAAG/M,EAAI,GAAI07E,SAAYC,QAAW/wE,IAAM,EAAGnL,EAAE,EAAG8M,GAAG,EAAGzJ,EAAE,GAAIihB,CACrE,IAAI1J,KAAKuhE,KAAO,EAAGC,KAAO,CAC1B,IAAIC,KACJ,IAAI5iD,OAAQ,EAAG0/C,OAAS,EAAGmD,UAAYn6E,MAAM6e,QAAQ4S,OAAOm1B,QAAS/mB,EACrE,KAAI,GAAIu6C,MAAOR,MAAMz5E,MAAMq5E,UAAW3kE,GAAK,EAAGwlE,QAAUD,KAAKr8E,OAAQ8W,IAAMwlE,UAAWxlE,GAAI,CACzFzW,EAAIg8E,KAAKvlE,IAAI+3C,MACb,IAAI0tB,MAAOl8E,EAAEL,MACb,IAAGu8E,OAAS,EAAG,QAGf,KAAInvE,GAAK,EAAGA,GAAKmvE,OAAQnvE,GAAI,GAAG/M,EAAEJ,WAAWmN,MAAQ,GAAI,QAASA,EAClEsN,KAAMD,YAAYpa,EAAEK,OAAO,EAAE0M,IAAK,KAElC6uE,YAAcvhE,KAAI7O,IAAM,YAAcI,SAASyO,IAAI7O,EAAG,IAAMowE,KAAK,CAAGC,OAAQ,CAC5E,IAAG/3E,KAAK4qD,WAAa5qD,KAAK4qD,UAAYktB,KAAM,QAC5C,IAAGH,MAAM35E,EAAE0J,EAAIowE,KAAO,EAAGH,MAAM35E,EAAE0J,EAAIowE,KAAO,CAC5C,IAAGH,MAAM7hE,EAAEpO,EAAIowE,KAAO,EAAGH,MAAM7hE,EAAEpO,EAAIowE,KAAO,CAG5CF,OAAQ17E,EAAEK,OAAO0M,IAAIhL,MAAMo5E,UAC3B,KAAIpuE,SAAYsN,KAAI7O,IAAM,YAAc,EAAI,EAAGuB,IAAM2uE,MAAM/7E,SAAUoN,GAAI,CACxE/M,EAAI07E,MAAM3uE,IAAIyhD,MACd,IAAGxuD,EAAEL,SAAW,EAAG,QACnBg8E,MAAO37E,EAAE8K,MAAMq0C,OAASv0C,KAAMmC,EAAItN,GAAE,CAAG8M,IAAG,CAC1CvM,GAAI,OAASA,EAAEK,OAAO,EAAE,IAAI,IAAI,IAAI,IAAML,CAC1C,IAAG27E,OAAS,MAAQA,KAAKh8E,SAAW,EAAG,CACtCiL,IAAM,CAAG9H,GAAE64E,KAAK,EAChB,KAAIl8E,EAAE,EAAGA,GAAKqD,EAAEnD,SAAUF,EAAG,CAC5B,IAAI8M,GAAGzJ,EAAElD,WAAWH,GAAG,IAAM,GAAK8M,GAAK,GAAI,KAC3C3B,KAAM,GAAGA,IAAM2B,KAEd3B,GACFixE,MAAOjxE,UACCixE,IACT,KAAIp8E,EAAI,EAAGA,GAAKO,EAAEL,SAAUF,EAAG,GAAGO,EAAEJ,WAAWH,KAAO,GAAI,QAASA,CACnE4a,KAAMD,YAAYpa,EAAEK,OAAO,EAAEZ,GAAI,KACjC,KAAI4a,IAAI7O,EAAG6O,IAAI7O,EAAIrL,MAAM+sD,aAAa1hD,EAAEowE,KAAK,EAAGl5E,EAAEm5E,MAClD/4E,GAAI9C,EAAEK,OAAOZ,EACbskB,IAAKhhB,EAAE,GAEP,KAAI44E,KAAK74E,EAAEgI,MAAMwwE,YAAa,MAAQK,KAAK,KAAO,GAAI53D,EAAElhB,EAAEsY,YAAYwgE,KAAK,GAC3E,IAAG73E,KAAKq4E,cAAgBR,KAAK74E,EAAEgI,MAAMywE,YAAa,KAAMx3D,EAAE1U,EAAE8L,YAAYwgE,KAAK,GAG7E,IAAGthE,IAAItX,IAAMc,WAAakgB,EAAElhB,IAAMgB,UAAW,CAC5C,IAAIC,KAAKs4E,WAAY,QACrBr4D,GAAEhhB,EAAI,WAEFghB,GAAEhhB,EAAIsX,IAAItX,GAAK,GACpB,IAAG04E,MAAM35E,EAAEY,EAAIkI,IAAK6wE,MAAM35E,EAAEY,EAAIkI,GAChC,IAAG6wE,MAAM7hE,EAAElX,EAAIkI,IAAK6wE,MAAM7hE,EAAElX,EAAIkI,GAEhC,QAAOmZ,EAAEhhB,GACR,IAAK,IAAKghB,EAAElhB,EAAIsM,WAAW4U,EAAElhB,EAAI,MACjC,KAAK,IACJi5E,KAAO3oD,KAAKvnB,SAASmY,EAAElhB,EAAG,IAC1BkhB,GAAElhB,EAAIi5E,KAAK/4E,CACXghB,GAAEvY,EAAIswE,KAAKtwE,CACX,IAAG1H,KAAKu8C,SAAUt8B,EAAE/G,EAAI8+D,KAAK9+D,CAC7B,MACD,KAAK,MACJ+G,EAAEhhB,EAAI,GACNghB,GAAElhB,EAAKkhB,EAAElhB,GAAG,KAAQkZ,SAASgI,EAAElhB,GAAK,EACpC,IAAGiB,KAAKu8C,SAAUt8B,EAAE/G,EAAI+G,EAAElhB,CAC1B,MACD,KAAK,YACJ84E,KAAO74E,EAAEgI,MAAMuwE,QACft3D,GAAEhhB,EAAI,GACN,IAAG44E,OAAS,KAAM,CAAEG,KAAO37B,SAASw7B,KAAK,GAAK53D,GAAElhB,EAAIi5E,KAAK/4E,MAAUghB,GAAElhB,EAAI,EACzE,MACD,KAAK,IAAKkhB,EAAElhB,EAAIgZ,aAAakI,EAAElhB,EAAI,MACnC,KAAK,IACJ,IAAIiB,KAAKi3E,UAAW,CAAEh3D,EAAElhB,EAAI8V,QAAQoL,EAAElhB,EAAIkhB,GAAEhhB,EAAI,IAChD,KAED,KAAK,IAAKghB,EAAExc,EAAIwc,EAAElhB,CAAGkhB,GAAElhB,EAAI0kB,MAAMxD,EAAElhB,EAAI,OAGxCq2B,MAAQ0/C,OAAS,CACjB,IAAGmD,WAAa1hE,IAAIvY,IAAM+B,UAAW,CACpC49B,GAAKpO,OAAOm1B,OAAOnuC,IAAIvY,EACvB,IAAG2/B,IAAM,KAAM,CACd,GAAGA,GAAG2mB,UAAY,KAAMlvB,MAAQuI,GAAG2mB,QACnC,IAAGtkD,KAAK41E,YAAcj4C,GAAGgnB,QAAU,KAAMmwB,OAASn3C,GAAGgnB,QAGvDkwB,YAAY50D,EAAGmV,MAAO0/C,OAAQ90E,KAC9BhC,GAAEuY,IAAI7O,GAAKuY,OAKd,SAASs4D,mBAAkBrD,GAAIl1E,KAAM8G,IAAKw+C,IACzC,GAAI5pD,MAAQgM,KAAQ8Y,MAAQypC,kBAAkBirB,GAAG,SAAU/0D,KAAM8jB,IAAKl8B,GAAK,GAAIqnD,QAAW3+C,EAAGC,CAC7F,KAAIA,EAAI8P,MAAMxiB,EAAEY,EAAG8R,GAAK8P,MAAM1K,EAAElX,IAAK8R,EAAG0+C,KAAK1+C,GAAKm7C,WAAWn7C,EAC7D,KAAID,EAAI+P,MAAMxiB,EAAE0J,EAAG+I,GAAK+P,MAAM1K,EAAEpO,IAAK+I,EAAG,CACvC/I,IACAK,IAAK+jD,WAAWr7C,EAChB,KAAIC,EAAI8P,MAAMxiB,EAAEY,EAAG8R,GAAK8P,MAAM1K,EAAElX,IAAK8R,EAAG,CACvCuzB,IAAMmrB,KAAK1+C,GAAK3I,EAChB,IAAGmtE,GAAGjxC,OAASlkC,UAAW,QAC1B,KAAIogB,KAAO22D,kBAAkB5B,GAAGjxC,KAAMA,IAAKixC,GAAIl1E,KAAM8G,IAAKw+C,MAAQ,KAAM59C,EAAEmJ,KAAKsP,MAEhF,GAAGzY,EAAE7L,OAAS,EAAGH,EAAEA,EAAEG,QAAW8d,UAAU,MAAOjS,EAAEgS,KAAK,KAAMhS,EAAEK,KAEjE,MAAOrM,GAAEge,KAAK,IAGf,GAAI8+D,aAAc7+D,UAAU,YAAa,MACxC0W,MAASrW,MAAMS,KAAK,GACpBg+D,UAAWz+D,MAAMtS,GAGlB,SAASgxE,cAAa5xE,IAAK9G,KAAMslD,IAChC,GAAI5pD,IAAKqe,WAAYy+D,YACrB,IAAIx6E,GAAIsnD,GAAGlxB,WAAWttB,KAAM6xE,KAAO,EAAGC,MAAQ,EAC9C,IAAI1D,IAAK5vB,GAAGuzB,OAAO76E,EACnB,IAAGk3E,KAAOn1E,UAAWm1E,KACrB,IAAIjxC,KAAMixC,GAAG,OAAS,IAAGjxC,MAAQlkC,UAAWkkC,IAAM,IAClDvoC,GAAEA,EAAEG,QAAW8d,UAAU,YAAa,MAAOsqB,IAAOA,KAEpD,IAAGixC,GAAG,WAAan1E,WAAam1E,GAAG,SAASr5E,OAAS,EAAGH,EAAEA,EAAEG,QAAW+6E,kBAAkB1B,GAAIA,GAAG,SAChGx5E,GAAEi9E,KAAOj9E,EAAEG,QAAU,cACrB,IAAGq5E,GAAG,UAAYn1E,UAAW,CAC5B64E,MAAQL,kBAAkBrD,GAAIl1E,KAAM8G,IAAKw+C,GACzC,IAAGszB,MAAM/8E,OAAS,EAAGH,EAAEA,EAAEG,QAAU,MAEpC,GAAGH,EAAEG,OAAO88E,KAAK,EAAG,CAAEj9E,EAAEA,EAAEG,QAAU,cAAkBH,GAAEi9E,MAAMj9E,EAAEi9E,MAAMl7E,QAAQ,KAAK,KAEnF,GAAGy3E,GAAG,aAAen1E,WAAam1E,GAAG,WAAWr5E,OAAS,EAAGH,EAAEA,EAAEG,QAAWs6E,oBAAoBjB,GAAG,WAElG,IAAGx5E,EAAEG,OAAO,EAAG,CAAEH,EAAEA,EAAEG,QAAU,cAAkBH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KACxE,MAAO/B,GAAEge,KAAK,IAIf,QAASo/D,iBAAgBr9E,KAAMI,QAC9B,GAAI4a,KACJA,GAAE/O,EAAIjM,KAAKiT,WAAW,EACtBjT,MAAKoD,GAAKhD,OAAO,CACjB,OAAO4a,GAIR,GAAIsiE,gBAAiBl2D,kBACrB,IAAIm2D,gBAAiBl2D,kBAGrB,SAASm2D,iBAAgBx9E,KAAMI,QAC9B,GAAI4a,KAEJhb,MAAKoD,GAAK,EACV4X,GAAExH,KAAOkT,mBAAmB1mB,KAAMI,OAAS,GAC3C,OAAO4a,GAIR,QAASyiE,oBAAmBz9E,KAAMI,QACjC,GAAIskB,MAAO2B,eAAermB,KAC1B,QAAQ0kB,MAET,QAASg5D,oBAAmBh5D,KAAMna,IAAKtK,GACtC,GAAGA,GAAK,KAAMA,EAAI8iB,QAAQ,EAC1B,OAAO0D,gBAAelc,IAAKtK,GAK5B,QAAS09E,mBAAkB39E,KAAMI,QAChC,GAAIskB,MAAO2B,eAAermB,KAC1B,IAAI49E,OAAQ59E,KAAKiT,WAAW,EAC5B,QAAQyR,KAAMk5D,MAAO,KAItB,QAASC,oBAAmB79E,KAAMI,QACjC,GAAIskB,MAAO2B,eAAermB,KAC1B,IAAI49E,OAAQ59E,KAAKiT,WAAW,EAC5B,QAAQyR,KAAMk5D,MAAO,KAItB,QAASE,mBAAkB99E,KAAMI,QAChC,GAAIskB,MAAO2B,eAAermB,KAC1B,IAAIwlC,MAAOxlC,KAAKiT,WAAW,EAC3B,QAAQyR,KAAM8gB,KAAM,KAIrB,QAASu4C,mBAAkB/9E,KAAMI,QAChC,GAAIskB,MAAO2B,eAAermB,KAC1B,IAAIuc,OAAQ+K,WAAWtnB,KACvB,QAAQ0kB,KAAMnI,MAAO,KAItB,QAASyhE,iBAAgBh+E,KAAMI,QAC9B,GAAIskB,MAAO2B,eAAermB,KAC1B,IAAIuc,OAAQyK,eAAehnB,KAC3B,QAAQ0kB,KAAMnI,MAAO,KAItB,QAAS0hE,iBAAgBj+E,KAAMI,QAC9B,GAAIskB,MAAO2B,eAAermB,KAC1B,IAAIuc,OAAQyJ,mBAAmBhmB,KAC/B,QAAQ0kB,KAAMnI,MAAO,OAItB,QAAS2hE,mBAAkBl+E,KAAMI,OAAQmE,MACxC,GAAImgB,MAAO2B,eAAermB,KAC1B,IAAIuc,OAAQvc,KAAKiT,WAAW,EAC5B,IAAIhT,IAAKykB,KAAMnI,MAAO,IACtB,IAAGhY,KAAKq4E,YAAa,CACpB,GAAIpkB,SAAUwB,4BAA4Bh6D,KAAMI,OAAO,EACvDH,GAAE,GAAK,OAEHD,MAAKoD,GAAKhD,OAAO,CACtB,OAAOH,GAIR,QAASk+E,oBAAmBn+E,KAAMI,OAAQmE,MACzC,GAAImgB,MAAO2B,eAAermB,KAC1B,IAAIuc,OAAQvc,KAAKiT,WAAW,EAC5B,IAAIhT,IAAKykB,KAAMnI,MAAO,IACtB,IAAGhY,KAAKq4E,YAAa,CACpB,GAAIpkB,SAAUwB,4BAA4Bh6D,KAAMI,OAAO,EACvDH,GAAE,GAAK,OAEHD,MAAKoD,GAAKhD,OAAO,CACtB,OAAOH,GAIR,QAASm+E,kBAAiBp+E,KAAMI,OAAQmE,MACvC,GAAImgB,MAAO2B,eAAermB,KAC1B,IAAIuc,OAAQ+K,WAAWtnB,KACvB,IAAIC,IAAKykB,KAAMnI,MAAO,IACtB,IAAGhY,KAAKq4E,YAAa,CACpB,GAAIpkB,SAAUwB,4BAA4Bh6D,KAAMI,OAAS,GACzDH,GAAE,GAAK,OAEHD,MAAKoD,GAAKhD,OAAO,EACtB,OAAOH,GAIR,QAASo+E,qBAAoBr+E,KAAMI,OAAQmE,MAC1C,GAAIwR,OAAQ/V,KAAKoD,CACjB,IAAIshB,MAAO2B,eAAermB,KAC1B,IAAIuc,OAAQyJ,mBAAmBhmB,KAC/B,IAAIC,IAAKykB,KAAMnI,MAAO,MACtB,IAAGhY,KAAKq4E,YAAa,CACpB,GAAIpkB,SAAUwB,4BAA4Bh6D,KAAM+V,MAAQ3V,OAASJ,KAAKoD,OAElEpD,MAAKoD,EAAI2S,MAAQ3V,MACtB,OAAOH,GAIR,GAAIq+E,oBAAqBl3D,kBAGzB,SAASm3D,gBAAev+E,KAAMI,OAAQmE,MACrC,GAAIyf,KAAMhkB,KAAKoD,EAAIhD,MACnB,IAAIovD,KAAMpoC,mBAAmBpnB,KAAM,GACnC,IAAIw+E,OAAQ73D,2BAA2B3mB,KACvC,IAAIkiB,KAAM8D,mBAAmBhmB,KAC7B,IAAIy+E,SAAUz4D,mBAAmBhmB,KACjC,IAAI0+E,SAAU14D,mBAAmBhmB,KACjCA,MAAKoD,EAAI4gB,GACT,QAAQwrC,IAAIA,IAAKgvB,MAAMA,MAAOt8D,IAAIA,IAAKu8D,QAAQA,QAASC,QAAQA,SAIjE,QAASC,cAAa3+E,KAAMuE,KAAMowB,MACjC,IAAI30B,KAAM,MAAOA,KACjB,KAAI20B,KAAMA,MAAQiqD,SAClB,IAAIr8E,KAEJ,IAAIimC,IACJ,IAAI6xC,WAAY93E,GAAI0J,EAAE,IAAS9I,EAAE,KAAUkX,GAAIpO,EAAE,EAAG9I,EAAE,GAEtD,IAAIy+C,MAAO,MAAO59B,IAAM,KACxB,IAAIklB,KAAK1kB,EAAG0d,GAAIltB,EAAGC,EAAGoB,KAAMkmE,KAAMjwE,EAClC,IAAI2tE,cACJh3D,cAAajjB,KAAM,QAAS6+E,UAASt0E,IAAKyK,GACzC,GAAGgP,IAAK,MACR,QAAOhP,EAAEwW,GACR,IAAK,WAAYgd,IAAMj+B,GAAK,MAC5B,KAAK,YACJ2+B,IAAM3+B,GACN,IAAGhG,KAAK4qD,WAAa5qD,KAAK4qD,WAAajmB,IAAIj9B,EAAG+X,IAAI,IAClD1X,IAAK+jD,WAAWnnB,IAAIj9B,EACpB,MAED,KAAK,cACL,IAAK,eACL,IAAK,aACL,IAAK,gBACL,IAAK,cACL,IAAK,eACL,IAAK,cACL,IAAK,cACL,IAAK,YACL,IAAK,YACJuY,GAAKhhB,EAAE+G,IAAI,GACX,QAAOA,IAAI,IACV,IAAK,IAAKia,EAAElhB,EAAIiH,IAAI,EAAI,MACxB,KAAK,IAAKgyE,KAAO3oD,KAAKrpB,IAAI,GAAKia,GAAElhB,EAAIi5E,KAAK/4E,CAAGghB,GAAEvY,EAAIswE,KAAKtwE,CAAG,MAC3D,KAAK,IAAKuY,EAAElhB,EAAIiH,IAAI,GAAK,KAAO,KAAO,MACvC,KAAK,IAAKia,EAAElhB,EAAIiH,IAAI,EAAIia,GAAExc,EAAIwf,KAAKhD,EAAElhB,EAAI,MACzC,KAAK,MAAOkhB,EAAEhhB,EAAI,GAAKghB,GAAElhB,EAAIkZ,SAASjS,IAAI,GAAK,OAEhD,GAAGhG,KAAKq4E,aAAeryE,IAAInK,OAAS,EAAGokB,EAAE1U,EAAIvF,IAAI,EACjD,IAAI23B,GAAKpO,OAAOm1B,OAAO1+C,IAAI,GAAGgc,WAAa6yD,YAAY50D,EAAE0d,GAAGyD,KAAK,KAAKphC,KACtEhC,GAAE6tD,WAAWn7C,EAAE1K,IAAI,GAAGpH,GAAKmJ,IAAMkY,CACjC,IAAG61D,SAAS93E,EAAE0J,EAAIi9B,IAAIj9B,EAAGouE,SAAS93E,EAAE0J,EAAIi9B,IAAIj9B,CAC5C,IAAGouE,SAAS93E,EAAEY,EAAI8R,EAAGolE,SAAS93E,EAAEY,EAAI8R,CACpC,IAAGolE,SAAShgE,EAAEpO,EAAIi9B,IAAIj9B,EAAGouE,SAAShgE,EAAEpO,EAAIi9B,IAAIj9B,CAC5C,IAAGouE,SAAShgE,EAAElX,EAAI8R,EAAGolE,SAAShgE,EAAElX,EAAI8R,CACpC,MAED,KAAK,eAAgB,IAAI1Q,KAAKs4E,WAAY,KACzCr4D,IAAKhhB,EAAE,IAAIF,EAAEgB,UACb/B,GAAE6tD,WAAWn7C,EAAE1K,IAAI,GAAGpH,GAAKmJ,IAAMkY,CACjC,IAAG61D,SAAS93E,EAAE0J,EAAIi9B,IAAIj9B,EAAGouE,SAAS93E,EAAE0J,EAAIi9B,IAAIj9B,CAC5C,IAAGouE,SAAS93E,EAAEY,EAAI8R,EAAGolE,SAAS93E,EAAEY,EAAI8R,CACpC,IAAGolE,SAAShgE,EAAEpO,EAAIi9B,IAAIj9B,EAAGouE,SAAShgE,EAAEpO,EAAIi9B,IAAIj9B,CAC5C,IAAGouE,SAAShgE,EAAElX,EAAI8R,EAAGolE,SAAShgE,EAAElX,EAAI8R,CACpC,MAGD,KAAK,qBAAsB,KAC3B,KAAK,mBAAoB,KACzB,KAAK,eAAgBglE,WAAW7kE,KAAK7K,IAAM,MAE3C,KAAK,WACJ,GAAIssB,KAAMlC,KAAK,OAAOpqB,IAAIi0E,MAC1B,IAAG3nD,IAAK,CACPtsB,IAAIwsB,OAASF,IAAIE,MACjB,IAAGxsB,IAAI2X,IAAK3X,IAAIwsB,QAAU,IAAIxsB,IAAI2X,GAClC3X,KAAIowE,IAAM9jD,IAEX,IAAI7hB,EAAEzK,IAAIilD,IAAIjtD,EAAE0J,EAAE+I,GAAGzK,IAAIilD,IAAIn1C,EAAEpO,IAAI+I,EAAG,IAAIC,EAAE1K,IAAIilD,IAAIjtD,EAAEY,EAAE8R,GAAG1K,IAAIilD,IAAIn1C,EAAElX,IAAI8R,EAAG,CAC3EoB,KAAOs3C,aAAaxqD,EAAE8R,EAAEhJ,EAAE+I,GAC1B,KAAIzS,EAAE8T,MAAO9T,EAAE8T,OAAS7S,EAAE,IAAIF,EAAEgB,UAChC/B,GAAE8T,MAAMjT,EAAImH,IAEb,KAED,KAAK,aAAc,KACnB,KAAK,aAAc,KACnB,KAAK,gBAAiB,KACtB,KAAK,YAAa,KAClB,KAAK,mBAAoB,KACzB,KAAK,kBAAmB,KACxB,KAAK,iBAAkB,KACvB,KAAK,UAAW,KAChB,KAAK,SAAU,KACf,KAAK,eAAgB,KACrB,KAAK,gBAAiB,KACtB,KAAK,aAAc,KACnB,KAAK,eAAgB,KACrB,KAAK,WAAY,KACjB,KAAK,mBAAoB,KACzB,KAAK,eAAgB,KACrB,KAAK,mBAAoB,KACzB,KAAK,aAAc,KACnB,KAAK,iBAAkB,KACvB,KAAK,oBAAqB,KAC1B,KAAK,kBAAmB,KACxB,KAAK,qBAAsB,KAC3B,KAAK,kBAAmB,KACxB,KAAK,aAAc,KACnB,KAAK,eAAgB,KACrB,KAAK,cAAeq3C,KAAO,IAAM,MACjC,KAAK,YAAaA,KAAO,KAAO,MAChC,KAAK,cAAe,KACpB,KAAK,aAAc,KACnB,KAAK,mBAAoB,KACzB,KAAK,qBAAsB,KAC3B,KAAK,kBAAmB,KACxB,KAAK,uBAAwB,KAC7B,KAAK,qBAAsB,KAC3B,KAAK,SAAU,KACf,KAAK,gBAAiB,KACtB,KAAK,cAAe,KACpB,KAAK,iBAAkB,KACvB,KAAK,eAAgB,KACrB,KAAK,sBAAuB,KAC5B,KAAK,qBAAsB,KAC3B,KAAK,mBAAoB,KACzB,KAAK,oBAAqB,KAC1B,KAAK,WAAY,KACjB,KAAK,qBAAsB,KAC3B,KAAK,eAAgB,KACrB,KAAK,mBAAoB,KACzB,KAAK,oBAAqB,KAC1B,KAAK,cAAe,KACpB,KAAK,kBAAmB,KACxB,KAAK,oBAAqB,KAC1B,KAAK,mBAAoB,KACzB,KAAK,iBAAkB,KACvB,KAAK,kBAAmB,KACxB,KAAK,gCAAiC,KACtC,KAAK,8BAA+B,KACpC,KAAK,iBAAkB,KACvB,KAAK,eAAgB,KACrB,KAAK,gBAAiB,KACtB,KAAK,UAAW,KAChB,KAAK,cAAe,KACpB,KAAK,qBAAsB,KAC3B,KAAK,eAAgB,KACrB,KAAK,aAAc,KACnB,KAAK,gBAAiB,KACtB,KAAK,UAAW,KAChB,KAAK,cAAe,KAGpB,KAAK,0BAA2B,KAChC,KAAK,aAAc,KACnB,KAAK,wBAAyB,KAG9B,KAAK,kBAAmB,KACxB,KAAK,gBAAiB,KACtB,KAAK,uBAAwB,KAC7B,KAAK,kBAAmB,KACxB,KAAK,YAAa,KAClB,KAAK,gBAAiB,KACtB,KAAK,qBAAsB,KAC3B,KAAK,mBAAoB,KACzB,KAAK,iBAAkB,KACvB,KAAK,wBAAyB,KAC9B,KAAK,kBAAmB,KACxB,KAAK,sBAAuB,KAG5B,KAAK,oBAAqB,KAC1B,KAAK,wBAAyB,KAC9B,KAAK,uBAAwB,KAC7B,KAAK,0BAA2B,KAChC,KAAK,qBAAsB,KAC3B,KAAK,sBAAuB,KAC5B,KAAK,kBAAmB,KAGxB,KAAK,sBAAuB,KAC5B,KAAK,eAAgB,KACrB,KAAK,oBAAqB,KAG1B,KAAK,WAAY,KAGjB,KAAK,wBAAyB,KAC9B,KAAK,kBAAmB,KACxB,KAAK,sBAAuB,KAE5B,SAAS,IAAIA,MAAQr9C,KAAKywB,IAAK,KAAM,IAAInsB,OAAM,qBAAuBmM,EAAEwW,KAEvEjnB,KACH,KAAIhC,EAAE,UAAY83E,SAAS93E,EAAE0J,EAAI,KAAWu8B,IAAInuB,EAAEpO,EAAI,GAAKu8B,IAAInuB,EAAElX,EAAI,GAAKqlC,IAAIjmC,EAAE0J,EAAI,GAAKu8B,IAAIjmC,EAAEY,EAAI,GAAIZ,EAAE,QAAUqsD,aAAapmB,IAChI,IAAGjkC,KAAK4qD,WAAa5sD,EAAE,QAAS,CAC/B,GAAIk4E,QAASjsB,kBAAkBjsD,EAAE,QACjC,IAAGgC,KAAK4qD,WAAasrB,OAAOpgE,EAAEpO,EAAG,CAChCwuE,OAAOpgE,EAAEpO,EAAI1H,KAAK4qD,UAAY,CAC9B,IAAGsrB,OAAOpgE,EAAEpO,EAAIouE,SAAShgE,EAAEpO,EAAGwuE,OAAOpgE,EAAEpO,EAAIouE,SAAShgE,EAAEpO,CACtD,IAAGwuE,OAAOpgE,EAAEpO,EAAIwuE,OAAOl4E,EAAE0J,EAAGwuE,OAAOl4E,EAAE0J,EAAIwuE,OAAOpgE,EAAEpO,CAClD,IAAGwuE,OAAOpgE,EAAElX,EAAIk3E,SAAShgE,EAAElX,EAAGs3E,OAAOpgE,EAAElX,EAAIk3E,SAAShgE,EAAElX,CACtD,IAAGs3E,OAAOpgE,EAAElX,EAAIs3E,OAAOl4E,EAAEY,EAAGs3E,OAAOl4E,EAAEY,EAAIs3E,OAAOpgE,EAAElX,CAClDZ,GAAE,YAAcA,EAAE,OAClBA,GAAE,QAAUqsD,aAAa6rB,SAG3B,GAAGR,WAAW75E,OAAS,EAAGmC,EAAE,WAAa03E,UACzC,OAAO13E,GAIR,QAASu8E,mBAAkBz6D,GAAIK,KAAM1P,EAAGC,EAAG1Q,MAC1C,GAAGmgB,KAAKphB,IAAMgB,UAAW,MAAO,EAChC,IAAI2K,IAAK,EACT,QAAOyV,KAAKlhB,GACX,IAAK,IAAKyL,GAAKyV,KAAKphB,EAAI,IAAM,GAAK,MACnC,KAAK,IAAK,IAAK,IAAK2L,GAAK,GAAGyV,KAAKphB,CAAG,MACpC,SAAS2L,GAAKyV,KAAKphB,CAAG,OAEvB,GAAIrD,IAAKgM,EAAE+I,EAAG7R,EAAE8R,EAEhBhV,GAAEsC,EAAIu2E,eAAev0E,KAAK6kD,QAAS1kC,KAAMngB,KACzC,QAAOmgB,KAAKlhB,GACX,IAAK,IAAK,IAAK,MACd,GAAGe,KAAKi9C,QAAS,CAChBvyC,GAAK4pE,WAAWt0E,KAAKm3E,QAASh3D,KAAKphB,EACnCrD,GAAEuD,EAAI,GAAK,OAEZvD,EAAEuD,EAAI,KAAO,MACd,KAAK,IAAK,KACV,KAAK,IAAKvD,EAAEuD,EAAI,GAAK,MACrB,KAAK,IAAKvD,EAAEuD,EAAI,GAAK,OAEtB4gB,aAAaC,GAAI,eAAgBq5D,mBAAmBh5D,KAAMzkB,IAG3D,QAAS8+E,iBAAgB16D,GAAIo1D,GAAIpuE,IAAK9G,KAAMslD,IAC3C,GAAI9kC,OAAQypC,kBAAkBirB,GAAG,SAAW,MAAOjxC,IAAKl8B,GAAK,GAAIqnD,OACjEvvC,cAAaC,GAAI,oBACjB,KAAI,GAAIrP,GAAI+P,MAAMxiB,EAAE0J,EAAG+I,GAAK+P,MAAM1K,EAAEpO,IAAK+I,EAAG,CAC3C1I,GAAK+jD,WAAWr7C,EAGhB,KAAI,GAAIC,GAAI8P,MAAMxiB,EAAEY,EAAG8R,GAAK8P,MAAM1K,EAAElX,IAAK8R,EAAG,CAE3C,GAAGD,IAAM+P,MAAMxiB,EAAE0J,EAAG0nD,KAAK1+C,GAAKm7C,WAAWn7C,EACzCuzB,KAAMmrB,KAAK1+C,GAAK3I,EAChB,KAAImtE,GAAGjxC,KAAM,QAEbs2C,mBAAkBz6D,GAAIo1D,GAAGjxC,KAAMxzB,EAAGC,EAAG1Q,OAGvC6f,aAAaC,GAAI,mBAGlB,QAAS26D,cAAa3zE,IAAK9G,KAAMslD,IAChC,GAAIxlC,IAAKd,WACT,IAAIhhB,GAAIsnD,GAAGlxB,WAAWttB,KAAMouE,GAAK5vB,GAAGuzB,OAAO76E,MAC3C,IAAI0J,GAAIuiD,kBAAkBirB,GAAG,SAAW,KACxCr1D,cAAaC,GAAI,gBAEjBD,cAAaC,GAAI,WAAYk5D,eAAetxE,GAI5C8yE,iBAAgB16D,GAAIo1D,GAAIpuE,IAAK9G,KAAMslD,GAiCnCzlC,cAAaC,GAAI,cACjB,OAAOA,IAAGL,MAGX,GAAIi7D,cACF,oBAAqB,MACrB,uBAAwB,MACxB,aAAc,MACd,qBAAsB,MACtB,WAAY,KACZ,WAAY,MACZ,oBAAqB,MAErB,gBAAiB,MACjB,qBAAsB,MACtB,oBAAqB,MACrB,eAAgB,MAChB,wBAAyB,QACzB,yBAA0B,MAC1B,6BAA8B,MAC9B,oBAAqB,MACrB,cAAe,QACf,uBAAwB,KAK1B,IAAIC,aACF,YAAa,MACb,yBAA0B,MAC1B,aAAc,MACd,YAAa,MACb,uBAAwB,MACxB,gBAAiB,MACjB,qBAAsB,MACtB,WAAY,QACZ,aAAc,WAKhB,IAAIC,YACF,QAAS,WAIX,IAAIC,aACF,gBAAiB,SACjB,WAAY,SACZ,aAAc,SACd,iBAAkB,SAClB,iBAAkB,UAClB,gBAAiB,SACjB,UAAW,UACX,eAAgB,QAChB,eAAgB,UAChB,UAAW,MAIb,IAAIC,mBACF,aAAc,UACd,kBAAmB,UACnB,sBAAuB,SACvB,uBAAwB,SACxB,YAAa,UACb,YAAa,UACb,WAAY,UACZ,eAAgB,UAChB,eAAgB,kBAChB,iBAAkB,SAClB,uBAAwB,SACxB,cAAe,QACf,gBAAiB,SACjB,gBAAiB,SACjB,qBAAsB,SACtB,WAAY,QACZ,UAAW,MACX,UAAW,KAGb,SAASC,qBAAoBhiD,OAAQhI,UACpC,IAAI,GAAIzqB,GAAI,EAAGA,GAAKyyB,OAAOl9B,SAAUyK,EAAG,CAAE,GAAI7C,GAAIs1B,OAAOzyB,EACxD,KAAI,GAAI3K,GAAE,EAAGA,GAAKo1B,SAASl1B,SAAUF,EAAG,CAAE,GAAI8a,GAAIsa,SAASp1B,EAC1D,IAAG8H,EAAEgT,EAAE,KAAO,KAAMhT,EAAEgT,EAAE,IAAMA,EAAE,KAInC,QAASukE,eAAcjiD,OAAQhI,UAC9B,IAAI,GAAIp1B,GAAI,EAAGA,GAAKo1B,SAASl1B,SAAUF,EAAG,CAAE,GAAI8a,GAAIsa,SAASp1B,EAC5D,IAAGo9B,OAAOtiB,EAAE,KAAO,KAAMsiB,OAAOtiB,EAAE,IAAMA,EAAE,IAI5C,QAASwkE,mBAAkB31B,IAC1B01B,cAAc11B,GAAG41B,QAASR,WAC1BM,eAAc11B,GAAG61B,OAAQN,UAEzBE,qBAAoBz1B,GAAG81B,OAAQT,UAC/BI,qBAAoBz1B,GAAGuzB,OAAQ+B,SAE/BxG,UAAS9uE,SAAWyS,aAAautC,GAAG41B,QAAQ51E,SAAU,YAGvD,GAAI+1E,WAAY,eAChB,SAASC,cAAa7/E,KAAMuE,MAC3B,GAAIslD,KAAOi2B,cAAeL,WAAYE,UAAWvC,UAAWsC,UAAW9qD,MAAO,GAC9E,IAAIgtB,MAAO,MAAOhtB,MAAQ,OAC1B50B,MAAKuL,MAAMmP,UAAUmD,QAAQ,QAASkiE,QAAOt/E,GAC5C,GAAI4D,GAAIwW,YAAYpa,EACpB,QAAO0a,SAAS9W,EAAE,KACjB,IAAK,QAAS,KAGd,KAAK,YACJ,GAAG5D,EAAE8K,MAAMq0E,WAAYhrD,MAAQ,QAAUn0B,EAAE8K,MAAM,WAAW,EAC5Ds+C,IAAGj1B,MAAQvwB,EAAEuwB,MACb,MACD,KAAK,cAAe,KAGpB,KAAK,qBAAuBvwB,GAAE,EAAIwlD,IAAGi2B,WAAaz7E,CAAG,MACrD,KAAK,iBAAkB,KAGvB,KAAK,eAAgB,IAAK,iBAAkB,KAG5C,KAAK,oBAAsBA,GAAE,EAAIwlD,IAAG41B,QAAUp7E,CAAG,MACjD,KAAK,sBAAwBA,GAAE,EAAIwlD,IAAG41B,QAAUp7E,CAAG,MAGnD,KAAK,sBAAuB,KAC5B,KAAK,wBAAyB,KAG9B,KAAK,cAAe,IAAK,eAAgB,KAEzC,KAAK,sBAAwBA,GAAE,EAAIwlD,IAAG81B,OAAOvqE,KAAK/Q,EAAI,MAGtD,KAAK,WAAY,IAAK,YAAa,KAEnC,KAAK,eAAiBA,GAAE,EAAIA,GAAEmP,KAAOgJ,SAASnY,EAAEmP,KAAOq2C,IAAGuzB,OAAOhoE,KAAK/Q,EAAI,MAG1E,KAAK,kBAAmB,IAAK,oBAAqB,KAElD,KAAK,iBAAkB,KAGvB,KAAK,sBAAuB,IAAK,wBAAyB,IAAK,uBAAwB,KAEvF,KAAK,qBAAsB,KAG3B,KAAK,kBAAmB,KACxB,KAAK,iBAAkB,IAAK,gBAAiBu9C,KAAK,IAAM,MACxD,KAAK,kBAAmBA,KAAK,KAAO,MAEpC,KAAK,eAAgB,IAAK,iBAAkB,IAAK,iBAAkB,KAGnE,KAAK,gBAAkBv9C,GAAE,EAAIwlD,IAAG61B,OAASr7E,CAAG,MAC5C,KAAK,kBAAoBA,GAAE,EAAIwlD,IAAG61B,OAASr7E,CAAG,MAG9C,KAAK,WAAY,KAGjB,KAAK,wBAAyB,IAAK,yBAA0B,IAAK,uBAAwB,KAE1F,KAAK,sBAAuB,IAAK,wBAAyB,KAG1D,KAAK,gBAAiB,IAAK,iBAAkB,IAAK,eAAgB,KAElE,KAAK,cAAe,KAGpB,KAAK,cAAe,IAAK,gBAAiB,KAG1C,KAAK,iBAAkB,IAAK,kBAAmB,IAAK,mBAAoB,KAExE,KAAK,gBAAiB,KAGtB,KAAK,iBAAkB,IAAK,mBAAoB,KAGhD,KAAK,kBAAmB,IAAK,oBAAqB,KAGlD,KAAK,sBAAuB,IAAK,qBAAsB,IAAK,uBAAwB,KAEpF,KAAK,oBAAqB,KAG1B,KAAK,WAAY,IAAK,YAAa,IAAK,YAAa,KAErD,KAAK,OAAQu9C,KAAK,IAAM,MACxB,KAAK,SAAUA,KAAK,KAAO,MAG3B,KAAK,UAAW,KAChB,KAAK,oBAAqBA,KAAK,IAAM,MACrC,KAAK,sBAAuBA,KAAK,KAAO,MAExC,SAAS,IAAIA,MAAQr9C,KAAKywB,IAAK,KAAM,gBAAkB3wB,EAAE,GAAK,iBAGhE,IAAGka,MAAMS,KAAK/c,QAAQ4nD,GAAGj1B,UAAY,EAAG,KAAM,IAAI/rB,OAAM,sBAAwBghD,GAAGj1B,MAEnF4qD,mBAAkB31B,GAElB,OAAOA,IAGR,GAAIm2B,aAAc9hE,UAAU,WAAY,MACvC0W,MAASrW,MAAMS,KAAK,GAGpBg+D,UAAWz+D,MAAMtS,GAGlB,SAASg0E,UAASp2B,IAEjB,IAAM,MAAOvtC,cAAautC,GAAGq2B,SAAST,QAAQ51E,UAAY,OAAS,QAAW,MAAMwQ,GAAK,MAAO,SAGjG,QAAS8lE,cAAat2B,GAAItlD,MACzB,GAAItE,IAAKqe,WACTre,GAAEA,EAAEG,QAAU4/E,WACd//E,GAAEA,EAAEG,QAAW8d,UAAU,aAAc,MAAOrU,SAASo2E,SAASp2B,KAChE5pD,GAAEA,EAAEG,QAAU,UACd,KAAI,GAAIF,GAAI,EAAGA,GAAK2pD,GAAGlxB,WAAWv4B,SAAUF,EAC3CD,EAAEA,EAAEG,QAAW8d,UAAU,QAAQ,MAAM1K,KAAKq2C,GAAGlxB,WAAWz4B,GAAGY,OAAO,EAAE,IAAKs/E,QAAQ,IAAIlgF,EAAE,GAAImgF,OAAO,OAAOngF,EAAE,IAC9GD,GAAEA,EAAEG,QAAU,WACd,IAAGH,EAAEG,OAAO,EAAE,CAAEH,EAAEA,EAAEG,QAAU,aAAeH,GAAE,GAAGA,EAAE,GAAG+B,QAAQ,KAAK,KACpE,MAAO/B,GAAEge,KAAK,IAGf,QAASqiE,mBAAkBtgF,KAAMI,QAChC,GAAI4a,KACJA,GAAEulE,QAAUvgF,KAAKiT,WAAW,EAC5B+H,GAAEwlE,OAASxgF,KAAKiT,WAAW,EAC3B+H,GAAEylE,SAAW35D,YAAY9mB,KAAKI,OAAO,EACrC4a,GAAExH,KAAOwS,mBAAmBhmB,KAC5B,OAAOgb,GAER,QAAS0lE,mBAAkB1gF,KAAMC,GAChC,IAAIA,EAAGA,EAAI8iB,QAAQ,IACnB9iB,GAAE2iB,YAAY,EAAG5iB,KAAKugF,QACtBtgF,GAAE2iB,YAAY,EAAG5iB,KAAKwgF,OACtBz5D,aAAY/mB,KAAKygF,SAAUxgF,EAC3BmmB,oBAAmBpmB,KAAKwT,KAAK1S,OAAO,EAAE,IAAKb,EAC3C,OAAOA,GAIR,QAAS0gF,iBAAgB3gF,KAAMI,QAC9BJ,KAAKiT,WAAW,EAChB,IAAIs5C,gBAAiBvsD,KAAKiT,WAAW,EACrC,IAAI2tE,SAAWxgF,OAAS,EAAK4lB,mBAAmBhmB,MAAQ,EACxD,QAAQusD,eAAgBq0B,SAEzB,QAASC,iBAAgB7gF,KAAMC,GAC9B,IAAIA,EAAGA,EAAI8iB,QAAQ,EACnB9iB,GAAE2iB,YAAY,EAAG,EACjB3iB,GAAE2iB,YAAY,EAAG,EACjB,OAAO3iB,GAGR,QAAS6gF,qBAAoB9gF,KAAMI,QAClC,GAAIH,KACJD,MAAKiT,WAAW,EAChBhT,GAAE8gF,OAAS/gF,KAAKiT,WAAW,EAC3BjT,MAAKoD,GAAKhD,OAAS,CACnB,OAAOH,GAIR,QAAS+gF,cAAahhF,KAAMuE,MAC3B,GAAIslD,KAAOi2B,cAAeL,WAAYE,UAAWvC,UAAWsC,UAAW9qD,MAAO,GAC9E,IAAIgtB,MAAO,MAAO5mC,CAElBiI,cAAajjB,KAAM,QAASihF,WAAU12E,IAAKyK,GAC1C,OAAOA,EAAEwW,GACR,IAAK,cAAeq+B,GAAGuzB,OAAOhoE,KAAK7K,IAAM,MAEzC,KAAK,eAAgB,KACrB,KAAK,iBAAkB,KACvB,KAAK,YAAa,KAClB,KAAK,aAAc,KACnB,KAAK,eAAgB,KACrB,KAAK,WAAY,KACjB,KAAK,eAAgB,KAErB,KAAK,oBAAqB,KAC1B,KAAK,oBAAqB,KAC1B,KAAK,cAAe,KACpB,KAAK,kBAAmB,KACxB,KAAK,oBAAqB,KAC1B,KAAK,kBAAmB,KACxB,KAAK,kBAAmB,KACxB,KAAK,gBAAiB,KACtB,KAAK,oBAAqB,KAC1B,KAAK,aAAc,KACnB,KAAK,gBAAiB,KACtB,KAAK,iBAAkB,KACvB,KAAK,kBAAmB,KACxB,KAAK,UAAW,KAChB,KAAK,cAAe,KACpB,KAAK,kBAAmB,KACxB,KAAK,wBAAyB,KAC9B,KAAK,uBAAwB,KAC7B,KAAK,qBAAsB,KAC3B,KAAK,sBAAuB,KAC5B,KAAK,YAAa,KAClB,KAAK,iBAAkB,KACvB,KAAK,iBAAkB,KAOvB,KAAK,wBAAyB,KAC9B,KAAK,kBAAmB,KACxB,KAAK,sBAAuB,KAE5B,KAAK,cAAeq3C,KAAO,IAAM,MACjC,KAAK,gBAAiB,KACtB,KAAK,kBAAmB,KACxB,KAAK,YAAaA,KAAO,KAAO,MAChC,KAAK,aAAc,KACnB,SAAS,IAAIA,MAAQr9C,KAAKywB,IAAK,KAAM,IAAInsB,OAAM,qBAAuBmM,EAAEwW,KAI1Eg0D,mBAAkB31B,GAElB,OAAOA,IAIR,QAASq3B,iBAAgB78D,GAAIwlC,GAAItlD,MAChC6f,aAAaC,GAAI,oBACjB,KAAI,GAAIhZ,KAAM,EAAGA,KAAOw+C,GAAGlxB,WAAWv4B,SAAUiL,IAAK,CACpD,GAAI9H,IAAMg9E,QAAS,EAAGC,OAAQn1E,IAAI,EAAGo1E,SAAU,OAASp1E,IAAI,GAAImI,KAAMq2C,GAAGlxB,WAAWttB,KACpF+Y,cAAaC,GAAI,cAAeq8D,kBAAkBn9E,IAEnD6gB,aAAaC,GAAI,mBAIlB,QAAS88D,sBAAqBnhF,KAAMC,GACnC,IAAIA,EAAGA,EAAI8iB,QAAQ,IACnB,KAAI,GAAI7iB,GAAI,EAAGA,GAAK,IAAKA,EAAGD,EAAE2iB,YAAY,EAAG,EAC7CwD,oBAAmB,UAAWnmB,EAC9BmmB,oBAAmBhnB,KAAKE,QAASW,EACjCmmB,oBAAmBhnB,KAAKE,QAASW,EACjCmmB,oBAAmB,OAAQnmB,EAC3BA,GAAEG,OAASH,EAAEmD,CACb,OAAOnD,GAIR,QAASmhF,iBAAgB/8D,GAAIwlC,GAAItlD,MAChC6f,aAAaC,GAAI,oBAEjBD,cAAaC,GAAI,mBAIlB,QAASg9D,mBAAkBrhF,KAAMC,GAChC,IAAIA,EAAGA,EAAI8iB,QAAQ,GACnB9iB,GAAE2iB,YAAY,EAAE,EAChB3iB,GAAE2iB,YAAY,EAAE,EAChB3iB,GAAE2iB,YAAY,EAAE,EAChB2E,YAAW,EAAGtnB,EACdA,GAAE2iB,aAAa,EAAG,KAClB3iB,GAAE2iB,YAAY,EAAG,GACjB3iB,GAAE2iB,YAAY,EAAG,EACjB,OAAO3iB,GAGR,QAASqhF,sBAAqBthF,KAAMC,GACnC,IAAIA,EAAGA,EAAI8iB,QAAQ,EACnB9iB,GAAE2iB,YAAY,EAAE,EAChB,OAAO3iB,GAIR,QAASshF,cAAa13B,GAAItlD,MACzB,GAAI8f,IAAKd,WACTa,cAAaC,GAAI,eACjBD,cAAaC,GAAI,iBAAkB88D,uBAEnC/8D,cAAaC,GAAI,YAAaw8D,kBAG9BO,iBAAgB/8D,GAAIwlC,GAAItlD,KACxB28E,iBAAgB78D,GAAIwlC,GAAItlD,KAIxB6f,cAAaC,GAAI,cAAeg9D,oBAOhCj9D,cAAaC,GAAI,iBAAkBi9D,uBAInCl9D,cAAaC,GAAI,aAEjB,OAAOA,IAAGL,MAEX,QAASw9D,UAASxhF,KAAMwT,KAAMjP,MAC7B,OAAQiP,KAAK1S,QAAQ,KAAK,OAASkgF,aAAenB,cAAc7/E,KAAMuE,MAGvE,QAASk9E,UAASzhF,KAAMwT,KAAMjP,KAAMowB,MACnC,OAAQnhB,KAAK1S,QAAQ,KAAK,OAAS69E,aAAe5E,cAAc/5E,KAAMuE,KAAMowB,MAG7E,QAAS+sD,WAAU1hF,KAAMwT,KAAMjP,MAC9B,OAAQiP,KAAK1S,QAAQ,KAAK,OAASuqD,cAAgBhC,eAAerpD,KAAMuE,MAGzE,QAASo9E,aAAY3hF,KAAMwT,KAAMjP,MAChC,MAAO6nD,iBAAgBpsD,KAAMuE,MAG9B,QAASq9E,WAAU5hF,KAAMwT,KAAMjP,MAC9B,OAAQiP,KAAK1S,QAAQ,KAAK,OAAS6gD,cAAgBT,eAAelhD,KAAMuE,MAGzE,QAAS4pD,YAAWnuD,KAAMwT,KAAMjP,MAC/B,OAAQiP,KAAK1S,QAAQ,KAAK,OAAS6uD,mBAAqBb,oBAAoB9uD,KAAMuE,MAGnF,QAASs9E,UAAS7hF,KAAMwT,KAAMjP,MAC7B,OAAQiP,KAAK1S,QAAQ,KAAK,OAAS8sD,aAAeJ,cAAcxtD,KAAMuE,MAGvE,QAASu9E,UAASj4B,GAAIr2C,KAAMjP,MAC3B,OAAQiP,KAAK1S,QAAQ,KAAK,OAASygF,aAAepB,cAAct2B,GAAItlD,MAGrE,QAASw9E,UAAS/hF,KAAMwT,KAAMjP,KAAMslD,IACnC,OAAQr2C,KAAK1S,QAAQ,KAAK,OAASk+E,aAAe/B,cAAcj9E,KAAMuE,KAAMslD;CAG7E,QAASm4B,WAAUhiF,KAAMwT,KAAMjP,MAC9B,OAAQiP,KAAK1S,QAAQ,KAAK,OAASyqD,cAAgB3B,eAAe5pD,KAAMuE,MAGzE,QAAS09E,WAAUjiF,KAAMwT,KAAMjP,MAC9B,OAAQiP,KAAK1S,QAAQ,KAAK,OAASkhD,cAAgBT,eAAevhD,KAAMuE,MAWzE,GAAI29E,YAAW,iDACf,IAAIC,WAAU,oDACd,IAAIC,MAAO,SAASj/E,GAAK,MAAOzC,QAAOC,aAAawC,GACpD,SAASk/E,kBAAiBvnE,IAAKC,WAC9B,GAAIunE,OAAQxnE,IAAItY,MAAM,MACtB,IAAIwY,KAAQ,KAAID,UAAWC,EAAE,GAAKsnE,MAAM,EACxC,IAAGA,MAAMliF,SAAW,EAAG,MAAO4a,EAC9B,IAAIvR,GAAIqR,IAAIvP,MAAM22E,YAAa79E,EAAGwG,EAAG7C,EAAG9H,CACxC,IAAGuJ,EAAG,IAAIvJ,EAAI,EAAGA,GAAKuJ,EAAErJ,SAAUF,EAAG,CACpCmE,EAAIoF,EAAEvJ,GAAGqL,MAAM42E,UACf,KAAIt3E,EAAExG,EAAE,GAAGpC,QAAQ,SAAW,EAAG+Y,EAAE3W,EAAE,IAAMA,EAAE,GAAGvD,OAAO,EAAEuD,EAAE,GAAGjE,OAAO,OAChE,CACJ,GAAGiE,EAAE,GAAGvD,OAAO,EAAE,KAAO,SAAUkH,EAAI,QAAQ3D,EAAE,GAAGvD,OAAO,OACrDkH,GAAI3D,EAAE,GAAGvD,OAAO+J,EAAE,EACvBmQ,GAAEhT,GAAK3D,EAAE,GAAGvD,OAAO,EAAEuD,EAAE,GAAGjE,OAAO,IAGnC,MAAO4a,GAER,QAASunE,qBAAoBznE,KAC5B,GAAIwnE,OAAQxnE,IAAItY,MAAM,MACtB,IAAIwY,KACJ,IAAGsnE,MAAMliF,SAAW,EAAG,MAAO4a,EAC9B,IAAIvR,GAAIqR,IAAIvP,MAAM22E,YAAa79E,EAAGwG,EAAG7C,EAAG9H,CACxC,IAAGuJ,EAAG,IAAIvJ,EAAI,EAAGA,GAAKuJ,EAAErJ,SAAUF,EAAG,CACpCmE,EAAIoF,EAAEvJ,GAAGqL,MAAM42E,UACf,KAAIt3E,EAAExG,EAAE,GAAGpC,QAAQ,SAAW,EAAG+Y,EAAE3W,EAAE,IAAMA,EAAE,GAAGvD,OAAO,EAAEuD,EAAE,GAAGjE,OAAO,OAChE,CACJ,GAAGiE,EAAE,GAAGvD,OAAO,EAAE,KAAO,SAAUkH,EAAI,QAAQ3D,EAAE,GAAGvD,OAAO,OACrDkH,GAAI3D,EAAE,GAAGvD,OAAO+J,EAAE,EACvBmQ,GAAEhT,GAAK3D,EAAE,GAAGvD,OAAO,EAAEuD,EAAE,GAAGjE,OAAO,IAGnC,MAAO4a,GAKR,QAASwnE,aAAYtyE,OAAQqM,OAC5B,GAAIjS,KAAMoG,cAAcR,SAAW0L,YAAY1L,OAC/C,IAAG5F,MAAQ,UAAW,MAAOvH,KAAI+F,SAASyT,MAC1C,OAAOxZ,KAAImN,OAAO5F,IAAKiS,OAGxB,QAASkmE,mBAAkBC,UAAWC,GAAI7iF,GAAIyK,KAC7C,QAAQzK,GAAG,GAAGyL,MAAM,sBAAsB,GAAG,KAAK,IACjD,IAAK,UAAWhB,IAAM+R,aAAa/R,IAAM,MACzC,KAAK,KAAM,IAAK,MAAOA,IAAM8B,SAAS9B,IAAK,GAAK,MAChD,KAAK,KAAM,IAAK,QAASA,IAAMqF,WAAWrF,IAAM,MAChD,KAAK,OAAQ,IAAK,cAAeA,IAAM,GAAIT,MAAKS,IAAM,MACtD,KAAK,KAAM,IAAK,SAAU,IAAK,QAAS,IAAK,OAAQ,IAAK,aAAc,KACxE,SAAS,KAAM,gBAAkBzK,GAAG,GAErC4iF,UAAU9mE,YAAY+mE,GAAG,KAAOp4E,IAGjC,QAASq4E,kBAAiBl+D,KAAMm+D,GAAI5iF,GACnC,IACC,GAAGykB,KAAKlhB,IAAM,IAAK,CAAEkhB,KAAK1c,EAAI0c,KAAK1c,GAAKwf,KAAK9C,KAAKphB,OAC7C,IAAGu/E,KAAO,UAAW,CACzB,GAAGn+D,KAAKlhB,IAAM,IAAK,CAClB,IAAIkhB,KAAKphB,EAAE,KAAOohB,KAAKphB,EAAGohB,KAAK1c,EAAIjF,IAAIwE,aAAamd,KAAKphB,OACpDohB,MAAK1c,EAAIjF,IAAI4F,aAAa+b,KAAKphB,OAEhCohB,MAAK1c,EAAIjF,IAAI+F,SAAS4b,KAAKphB,OAE5BohB,MAAK1c,EAAIw6E,YAAYK,IAAI,UAAWn+D,KAAKphB,EAC9C,IAAGrD,EAAEq5E,OAAQ50D,KAAK1J,EAAItK,cAAcmyE,KAAKA,IAAI,UAC5C,MAAMxoE,GAAK,GAAGpa,EAAE+0B,IAAK,KAAM3a,IAG9B,QAASyoE,oBAAmBhvD,OAAQivD,KAAMx+E,MACzC,GAAGA,KAAK41E,WAAY,CACnB,GAAG4I,KAAKC,SAAU,CACjB,GAAIC,GAAIF,KAAKC,QACb,IAAGC,EAAEC,QAASD,EAAE58C,YAAc+gB,mBAAmB67B,EAAEC,UAAYD,EAAEC,SAGnEpvD,OAAOivD,KAAKI,IAAMJ,KAInB,QAASK,iBAAgBC,IAAK54E,GAAIzK,KAAM0kB,KAAMnY,KAAMunB,OAAQwvD,KAAMp6C,IAAKjpC,GACtE,GAAI4iF,IAAK,UAAWU,IAAM7+D,KAAK8+D,QAAS55E,IAAQ3J,GAAIA,KACpD,IAAIwjF,aACJ,IAAGF,MAAQj/E,WAAa4kC,IAAKq6C,IAAMr6C,IAAIs6C,OACvC,IAAGD,MAAQj/E,WAAag/E,KAAMC,IAAMD,KAAKE,OACzC,OAAM1vD,OAAOyvD,OAASj/E,UAAW,CAChC,GAAGwvB,OAAOyvD,KAAKV,GAAIA,GAAK/uD,OAAOyvD,KAAKV,EACpC,IAAG/uD,OAAOyvD,KAAKP,SAAUS,UAAUruE,KAAK0e,OAAOyvD,KAAKP,SACpD,KAAIlvD,OAAOyvD,KAAKG,OAAQ,KACxBH,KAAMzvD,OAAOyvD,KAAKG,OAEnB,OAAO1jF,KAAK82B,MACX,IAAK,UACJpS,KAAKlhB,EAAI,GACTkhB,MAAKphB,EAAIgZ,aAAa+mE,IACtB,MACD,KAAK,SACJ3+D,KAAKlhB,EAAI,GAAKkhB,MAAKzY,EAAIkQ,YAAYP,YAAYynE,KAC/C3+D,MAAKphB,EAAI+/E,IAAIphF,QAAQ,MAAQ,EAAIwI,GAAKia,KAAKzY,CAC3C,MACD,KAAK,WACJyY,KAAKphB,GAAKwG,KAAKiI,MAAMsxE,KAAO,GAAIv5E,MAAKA,KAAK65E,IAAI,KAAM,GAAI,OAAS,GAAK,GAAK,GAAK,IAChF,IAAGj/D,KAAKphB,IAAMohB,KAAKphB,EAAGohB,KAAKphB,EAAIsY,YAAYynE,SACtC,IAAG3+D,KAAKphB,GAAK,GAAKohB,KAAKphB,EAAE,GAAIohB,KAAKphB,EAAIohB,KAAKphB,EAAG,CACnD,KAAIu/E,IAAMA,IAAM,UAAWA,GAAK,YAEjC,KAAK,SACJ,GAAGn+D,KAAKphB,IAAMgB,UAAWogB,KAAKphB,GAAG+/E,GACjC,KAAI3+D,KAAKlhB,EAAGkhB,KAAKlhB,EAAI,GACrB,MACD,KAAK,QAASkhB,KAAKlhB,EAAI,GAAKkhB,MAAKphB,EAAI0kB,MAAMq7D,IAAM3+D,MAAK1c,EAAIq7E,GAAK,MAC/D,SAAS3+D,KAAKlhB,EAAI,GAAKkhB,MAAKphB,EAAI6Y,YAAY1R,GAAK,OAElDm4E,iBAAiBl+D,KAAMm+D,GAAI5iF,EAC3B,IAAGA,EAAE28E,aAAe,MAAQl4D,KAAKk/D,QAAS,CACzCl/D,KAAK5U,EAAIggD,SAASl0C,YAAY8I,KAAKk/D,SAAUr3E,KAC7CmY,MAAKk/D,QAAUt/E,UAEhB,GAAGrE,EAAEk6E,WAAY,CAChBsJ,UAAU5lE,QAAQ,SAASpd,GAC1B,IAAImJ,EAAEy8B,aAAe5lC,EAAE4lC,YAAaz8B,EAAEy8B,YAAc5lC,EAAE4lC,aAEvD3hB,MAAKniB,EAAIqH,EAEV8a,KAAK8b,KAAO9b,KAAK8+D,UAAYl/E,UAAYogB,KAAK8+D,QAAU,UAGzD,QAASK,oBAAmBt1B,SAC3BA,QAAQ/qD,EAAI+qD,QAAQjrD,CACpBirD,SAAQjrD,EAAIirD,QAAQvmD,EAAIumD,QAAQ/tB,KAAOl8B,UAGxC,QAASw/E,gBAAevgF,GACvB,GAAGrB,SAAWC,OAAOif,SAAS7d,GAAI,MAAOA,GAAEuW,SAAS,OACpD,UAAUvW,KAAM,SAAU,MAAOA,EACjC,MAAM,OAIP,GAAIwgF,WAAY,kCAChB,SAASC,gBAAezgF,EAAGgB,MAC1B,GAAIwI,KAAM+2E,eAAevgF,EACzB,IAAIo/E,GACJ,IAAI5rE,UAAYurC,GAChB,IAAIzuB,WAAaowD,cAAiBC,YAAeC,UAAY,EAC7D,IAAIh0E,UAAYuU,QAAWwkB,OAAUk7C,KAAMC,IAC3C,IAAIlhF,GAAI,EAAG8I,EAAI,CACf,IAAIouE,WAAY93E,GAAI0J,EAAE,IAAS9I,EAAE,KAAUkX,GAAIpO,EAAE,EAAG9I,EAAE,GACtD,IAAI2wB,WAAaivD,OACjB,IAAIt4E,IAAK,GAAI65E,KAAO,CACpB,IAAIrK,cACJ,IAAIpgD,UAAY6oD,aAAgB6B,KAAO,EAAGzkF,KAC1C,IAAI00B,aAAe+5B,UACnB,IAAIi2B,UAAYlB,IAChBS,WAAUU,UAAY,CACtB,OAAO9B,GAAKoB,UAAUW,KAAK33E,KAAO,OAAO41E,GAAG,IAC3C,IAAK,OACJ,GAAG5rE,MAAMA,MAAM3W,OAAO,GAAG,GAAI,KAC7B,IAAGuiF,GAAG,KAAK,IAAKS,gBAAgBr2E,IAAI2F,MAAM2xE,KAAM1B,GAAGv6D,OAAQ3d,GAAI25E,KAAMrtE,MAAMA,MAAM3W,OAAO,GAAG,IAAI,UAAUmuD,QAAQ7pC,MAAOvhB,EAAEA,EAAE8I,EAAEA,GAAI6nB,OAAQ0wD,MAAMrhF,GAAI+lC,IAAK3kC,UACpJ,CAAEkG,GAAK,EAAI25E,MAAO/B,iBAAiBM,GAAG,GAAK0B,MAAO1B,GAAGv6D,MAAQu6D,GAAG,GAAGviF,OACxE,KACD,KAAK,OACJ,GAAGuiF,GAAG,KAAK,IAAI,CACd,GAAGnuD,SAASp0B,OAAS,EAAGskB,KAAKvhB,EAAIqxB,QACjC,MAAKjwB,KAAK4qD,WAAa5qD,KAAK4qD,UAAYljD,IAAMyY,KAAKphB,IAAMgB,UAAW4/E,SAAS9zB,WAAWjtD,GAAKktD,WAAWpkD,IAAMyY,IAC9G,IAAGA,KAAKigE,KAAM,CACbjgE,KAAKthB,GAAK2zB,OAAOrS,KAAKigE,KAAMlG,QAAQ/5D,KAAKkgE,cACzClgE,MAAKigE,KAAOjgE,KAAKkgE,cAAgBtgF,UAElC,GAAGogB,KAAKmgE,aAAengE,KAAKogE,UAAW,CACtC,GAAI93E,IAAK7J,GAAKkJ,SAASqY,KAAKmgE,YAAY,IAAI,EAC5C,IAAIv4E,IAAKL,GAAKI,SAASqY,KAAKogE,UAAU,IAAI,EAC1C7K,YAAW7kE,MAAM7S,GAAGY,EAAEA,EAAE8I,EAAEA,GAAGoO,GAAGlX,EAAE6J,GAAGf,EAAEK,QAEtCnJ,CACF,IAAGuhB,KAAKmgE,YAAa1hF,IAAMuhB,KAAKmgE,gBAC1B,CACNngE,KAAO69D,oBAAoBI,GAAG,GAC9B,IAAGj+D,KAAK8/B,MAAOrhD,GAAKuhB,KAAK8/B,MAAQ,CACjC,IAAGrhD,EAAIk3E,SAAS93E,EAAEY,EAAGk3E,SAAS93E,EAAEY,EAAIA,CACpC,IAAGA,EAAIk3E,SAAShgE,EAAElX,EAAGk3E,SAAShgE,EAAElX,EAAIA,CACpC,IAAGw/E,GAAG,GAAG7hF,QAAQ,KAAO,OAAQqC,CAChCqxB,aAED,KACD,KAAK,MACJ,GAAGmuD,GAAG,KAAK,KAAOA,GAAG,GAAG7hF,QAAQ,KAAO,KAAM,CAC5C,GAAGmL,EAAIouE,SAAS93E,EAAE0J,EAAGouE,SAAS93E,EAAE0J,EAAIA,CACpC,IAAGA,EAAIouE,SAAShgE,EAAEpO,EAAGouE,SAAShgE,EAAEpO,EAAIA,CACpC,IAAG02E,GAAG,GAAG7hF,QAAQ,KAAO,KAAM,CAC7BooC,IAAMm5C,iBAAiBM,GAAG,GAC1B,IAAGz5C,IAAIsb,MAAOv4C,GAAKi9B,IAAIsb,MAAQ,EAEhCrhD,EAAI,IAAK8I,MACH,CACNi9B,IAAMm5C,iBAAiBM,GAAG,GAC1B,IAAGz5C,IAAIsb,MAAOv4C,GAAKi9B,IAAIsb,MAAQ,EAEhC,KACD,KAAK,YACJ,GAAGm+B,GAAG,KAAK,IAAI,CACd,IAAIrgC,IAAIvrC,MAAM0f,OAAO,KAAKksD,GAAG,GAAI,KAAM,cAAcrgC,GACrD2hC,YAAW7uE,KAAK+uE,UAChB,IAAG9J,SAAS93E,EAAE0J,GAAKouE,SAAShgE,EAAEpO,GAAKouE,SAAS93E,EAAEY,GAAKk3E,SAAShgE,EAAElX,EAAG+gF,SAAS,QAAUt1B,aAAayrB,SACjG,IAAGJ,WAAW75E,OAAQ8jF,SAAS,WAAajK,UAC5CpmD,QAAOswD,WAAaD,aACd,CACN7J,UAAY93E,GAAI0J,EAAE,IAAS9I,EAAE,KAAUkX,GAAIpO,EAAE,EAAG9I,EAAE,GAClD8I,GAAI9I,EAAI,CACR4T,OAAM3B,MAAMutE,GAAG,GAAI,OACnBrgC,KAAM+/B,iBAAiBM,GAAG,GAC1BwB,WAAY7hC,IAAIla,IAChB87C,YACAjK,eAED,KACD,KAAK,QACJ,GAAG0I,GAAG,KAAK,IAAI,CAAC,IAAIrgC,IAAIvrC,MAAM0f,OAAO,KAAKksD,GAAG,GAAI,KAAM,cAAcrgC,QAChE,IAAGqgC,GAAG,GAAGjwE,OAAO,IAAM,KAAM,UAC5B,CACJvC,MAAQkyE,iBAAiBM,GAAG,GAC5B5rE,OAAM3B,MAAMutE,GAAG,GAAI,OACnB6B,UAED,KAED,KAAK,QACJ,GAAG7B,GAAG,KAAK,IAAKG,mBAAmBhvD,OAAQivD,KAAMx+E,UAC5Cw+E,MAAOV,iBAAiBM,GAAG,GAChC,MAED,KAAK,eACJI,KAAKF,GAAKR,iBAAiBM,GAAG,IAAIoC,QAAU,SAC5C,MAED,KAAK,SACJ,GAAGhuE,MAAMA,MAAM3W,OAAO,GAAG,KAAO,QAAS,KACzCkjF,MAAOjB,iBAAiBM,GAAG,GAC3B6B,OAAOlB,KAAK9+B,MAAM,GAAGggC,MAAMpkF,QAAWkjF,IACtC,KAAI,GAAIpjF,GAAI,EAAGA,GAAKojF,KAAK0B,OAAQ9kF,EAAGskF,MAAMA,MAAMpkF,QAAUkjF,IAC1D,MAED,KAAK,aAAc,KACnB,KAAK,YAAa,KAClB,KAAK,IAAK,KACV,KAAK,IAAK,KACV,KAAK,IAAK,KACV,KAAK,IAAK,KACV,KAAK,MAAO,KACZ,KAAK,MAAO,KACZ,KAAK,OAAQ,KACb,KAAK,SAAU,KACf,KAAK,YAAa,KAClB,KAAK,UAAW,KAChB,KAAK,OACJ,GAAGX,GAAG,GAAG7hF,QAAQ,KAAO,KAAM,UACzB,IAAG6hF,GAAG,KAAK,IAAKl4E,IAAMsC,IAAI2F,MAAM4xE,KAAM3B,GAAGv6D,WACzCk8D,MAAO3B,GAAGv6D,MAAQu6D,GAAG,GAAGviF,MAC7B,MACD,KAAK,WACJ,IAAImE,KAAK41E,WAAY,KACrB4I,MAAKC,SAAWX,iBAAiBM,GAAG,GACpC,MACD,KAAK,aAAc,KAEnB,KAAK,SACL,IAAK,QACL,IAAK,cACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,WACL,IAAK,UACL,IAAK,aACL,IAAK,YACL,IAAK,cACL,IAAK,UACL,IAAK,WACL,IAAK,YACL,IAAK,gBACL,IAAK,UACJ,GAAGA,GAAG,GAAG7hF,QAAQ,KAAO,KAAM,UACzB,IAAG6hF,GAAG,KAAK,IAAK/oD,cAAcC,MAAO8oD,GAAG,GAAI51E,IAAI2F,MAAM6xE,KAAM5B,GAAGv6D,YAC/Dm8D,MAAO5B,GAAGv6D,MAAQu6D,GAAG,GAAGviF,MAC7B,MACD,KAAK,aAAc,KAEnB,KAAK,SACL,IAAK,WACJ,GAAGuiF,GAAG,KAAK,IAAI,CAAC,IAAIrgC,IAAIvrC,MAAM0f,OAAO,KAAKksD,GAAG,GAAI,KAAM,cAAcrgC,QAChEvrC,OAAM3B,MAAMutE,GAAG,GAAI,OACxB,MAED,KAAK,UACJ,GAAGA,GAAG,KAAK,IAAI,CACd,IAAIrgC,IAAIvrC,MAAM0f,OAAO,KAAKksD,GAAG,GAAI,KAAM,cAAcrgC,GACrDuhC,oBAAmBt1B,QACnB/5B,UAASpf,KAAKm5C,aACR,CACNx3C,MAAM3B,MAAMutE,GAAG,GAAI,OACnBrgC,KAAM+/B,iBAAiBM,GAAG,GAC1Bp0B,UAAWttC,EAAEqhC,IAAI2iC,QAElB,KAED,KAAK,OAAQ,KAEb,KAAK,mBACL,IAAK,qBACL,IAAK,2BACL,IAAK,yBACL,IAAK,aACL,IAAK,aACL,IAAK,QACL,IAAK,UACL,IAAK,aACL,IAAK,aACL,IAAK,iBACL,IAAK,aACL,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,wBACL,IAAK,eACL,IAAK,YACL,IAAK,gBACL,IAAK,kBACL,IAAK,mBACJ,GAAGtC,GAAG,KAAK,IAAI,CAAC,IAAIrgC,IAAIvrC,MAAM0f,OAAO,KAAKksD,GAAG,GAAI,KAAM,cAAcrgC,QAChE,IAAGqgC,GAAG,GAAG7gF,OAAO6gF,GAAG,GAAGviF,OAAO,KAAO,IAAK2W,MAAM3B,MAAMutE,GAAG,GAAI,MACjE,MAED,SACC,GAAIuC,MAAO,IACX,QAAOnuE,MAAMA,MAAM3W,OAAO,GAAG,IAE5B,IAAK,yBAA0B,OAAOuiF,GAAG,IACxC,IAAK,WAAY,KACjB,KAAK,4BAA6B,KAClC,KAAK,qBAAsB,KAC3B,KAAK,uBAAwB,KAC7B,KAAK,SAAU,KACf,KAAK,QAAS,KACd,KAAK,QAAS,KACd,KAAK,MAAO,KACZ,KAAK,gBAAiB,KACtB,KAAK,mBAAoB,KACzB,KAAK,sBAAuB,KAC5B,SAASuC,KAAO,MACf,KAGF,KAAK,mBAAoB,OAAOvC,GAAG,IAClC,IAAK,UAAW,KAChB,KAAK,iBAAkB,KACvB,KAAK,qBAAsB,KAC3B,KAAK,QAAS,KACd,KAAK,UAAW,KAChB,KAAK,YAAa,KAClB,KAAK,WAAY,KACjB,KAAK,kBAAmB,KACxB,SAASuC,KAAO,MACf,KAGF,KAAK,gBAAiB,OAAOvC,GAAG,IAC/B,IAAK,eAAgB,KACrB,KAAK,cAAe,KACpB,KAAK,aAAc,KACnB,KAAK,aAAc,KACnB,KAAK,WAAY,KACjB,KAAK,mBAAoB,KACzB,KAAK,iBAAkB,KACvB,KAAK,cAAe,KACpB,KAAK,kBAAmB,KACxB,KAAK,oBAAqB,KAC1B,KAAK,UAAW,KAChB,KAAK,YAAa,KAClB,KAAK,aAAc,KACnB,KAAK,kBAAmB,KACxB,KAAK,iBAAkB,KACvB,KAAK,MAAO,KACZ,KAAK,yBAA0B,KAC/B,KAAK,sBAAuB,KAC5B,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,gBAAiB,KACtB,KAAK,YAAa,KAClB,KAAK,OAAQ,KACb,KAAK,MAAO,KACZ,KAAK,QAAS,KACd,KAAK,iBAAkB,KACvB,KAAK,cAAe,KACpB,KAAK,WAAY,KACjB,KAAK,gBAAiB,KACtB,KAAK,MAAO,KACZ,KAAK,aAAc,KACnB,KAAK,UAAW,KAChB,KAAK,WAAY,KACjB,KAAK,UAAW,KAChB,KAAK,aAAc,KACnB,KAAK,UAAW,KAChB,KAAK,QAAS,KACd,KAAK,OAAQ,KACb,KAAK,MAAO,KACZ,KAAK,gBAAiB,KACtB,KAAK,iBAAkB,KACvB,KAAK,2BAA4B,KACjC,KAAK,SAAU,KACf,KAAK,cAAe,KACpB,KAAK,qBAAsB,KAC3B,SAASuC,KAAO,MACf,KAGF,KAAK,kBAAmB,OAAOvC,GAAG,IACjC,IAAK,aAAc,KACnB,KAAK,SAAU,KACf,KAAK,QAAS,KACd,SAASuC,KAAO,MACf,KAGF,KAAK,mBAAoB,OAAOvC,GAAG,IAClC,IAAK,WAAY,KACjB,KAAK,UAAW,KAChB,KAAK,QAAS,KACd,KAAK,QAAS,KACd,KAAK,QAAS,KACd,KAAK,OAAQ,KACb,KAAK,SAAU,KACf,KAAK,SAAU,KACf,KAAK,SAAU,KACf,KAAK,SAAU,KACf,KAAK,YAAa,KAClB,KAAK,cAAe,KACpB,KAAK,WAAY,KACjB,KAAK,iBAAkB,KACvB,KAAK,kBAAmB,KACxB,KAAK,mBAAoB,KACzB,KAAK,mBAAoB,KACzB,KAAK,uBAAwB,KAC7B,KAAK,qBAAsB,KAC3B,KAAK,iBAAkB,KACvB,KAAK,YAAa,KAClB,KAAK,YAAa,KAClB,KAAK,aAAc,KACnB,KAAK,gBAAiB,KACtB,KAAK,mBAAoB,KACzB,KAAK,oBAAqB,KAC1B,KAAK,sBAAuB,KAC5B,KAAK,YAAa,KAClB,KAAK,iBAAkB,KACvB,KAAK,iBAAkB,KACvB,KAAK,iBAAkB,KACvB,KAAK,gBAAiB,KACtB,KAAK,WAAY,KACjB,KAAK,wBAAyB,KAC9B,KAAK,kBAAmB,KACxB,KAAK,gBAAiB,KACtB,KAAK,cAAe,KACpB,KAAK,gBAAiB,KACtB,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,iBAAkB,KACvB,KAAK,OAAQ,KACb,KAAK,cAAe,KACpB,KAAK,YAAa,KAClB,KAAK,YAAa,KAClB,KAAK,cAAe,KACpB,KAAK,kBAAmB,KACxB,KAAK,kBAAmB,KACxB,KAAK,kBAAmB,KACxB,KAAK,kBAAmB,KACxB,KAAK,wBAAyB,KAC9B,KAAK,mBAAoB,KACzB,KAAK,gBAAiB,KACtB,KAAK,gBAAiB,KACtB,KAAK,2BAA4B,KACjC,KAAK,gBAAiB,KACtB,KAAK,uBAAwB,KAC7B,KAAK,qBAAsB,KAC3B,KAAK,8BAA+B,KACpC,KAAK,gBAAiB,KACtB,KAAK,oBAAqB,KAC1B,KAAK,mBAAoB,KACzB,KAAK,iBAAkB,KACvB,KAAK,sBAAuB,KAC5B,KAAK,gBAAiB,KACtB,KAAK,sBAAuB,KAC5B,KAAK,aAAc,KACnB,KAAK,gBAAiB,KACtB,KAAK,YAAa,KAClB,KAAK,kBAAmB,KACxB,SAASuC,KAAO,MACf,KAGF,KAAK,aAAc,IAAK,aAAc,OAAOvC,GAAG,IAC/C,IAAK,uBAAwB,KAC7B,KAAK,4BAA6B,KAClC,KAAK,mBAAoB,KACzB,KAAK,WAAY,KACjB,KAAK,aAAc,KACnB,KAAK,cAAe,KACpB,KAAK,aAAc,KACnB,KAAK,yBAA0B,KAC/B,KAAK,mBAAoB,KACzB,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,aAAc,KACnB,KAAK,cAAe,KACpB,KAAK,cAAe,KACpB,KAAK,aAAc,KACnB,KAAK,mBAAoB,KACzB,KAAK,OAAQ,KACb,KAAK,WAAY,KACjB,KAAK,WAAY,KACjB,KAAK,aAAc,KACnB,KAAK,yBAA0B,KAC/B,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,gBAAiB,KACtB,KAAK,aAAc,KACnB,KAAK,sBAAuB,KAC5B,KAAK,SAAU,KACf,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,gBAAiB,KACtB,KAAK,WAAY,KACjB,KAAK,oBAAqB,KAC1B,KAAK,iBAAkB,KACvB,KAAK,cAAe,KACpB,KAAK,iBAAkB,KACvB,KAAK,cAAe,KACpB,KAAK,cAAe,KACpB,KAAK,kBAAmB,KACxB,KAAK,qBAAsB,KAC3B,KAAK,oBAAqB,KAC1B,KAAK,uBAAwB,KAC7B,KAAK,wBAAyB,KAC9B,KAAK,cAAe,KACpB,SAASuC,KAAO,MACf,KAGF,KAAK,aAAc,OAAOvC,GAAG,IAC5B,IAAK,YAAa,KAClB,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,WAAY,KACjB,KAAK,WAAY,KACjB,KAAK,SAAU,KACf,KAAK,SAAU,KACf,SAASuC,KAAO,MACf,KAGF,KAAK,aAAc,OAAOvC,GAAG,IAC5B,IAAK,mBAAoB,KACzB,KAAK,sBAAuB,KAC5B,KAAK,gBAAiB,KACtB,KAAK,eAAgB,KACrB,SAASuC,KAAO,MACf,KAGF,KAAK,aAAc,OAAOvC,GAAG,IAC5B,IAAK,KAAM,KACX,KAAK,iBAAkB,KACvB,KAAK,oBAAqB,KAC1B,KAAK,cAAe,KACpB,KAAK,YAAa,KAClB,KAAK,qBAAsB,KAC3B,KAAK,iBAAkB,KACvB,KAAK,YAAa,KAClB,KAAK,aAAc,KACnB,KAAK,aAAc,KACnB,KAAK,cAAe,KACpB,KAAK,cAAe,KACpB,KAAK,WAAY,KACjB,KAAK,SAAU,KACf,KAAK,aAAc,KACnB,KAAK,iBAAkB,KACvB,KAAK,qBAAsB,KAC3B,KAAK,qBAAsB,KAC3B,KAAK,SAAU,KACf,KAAK,SAAU,KACf,KAAK,UAAW,KAChB,KAAK,oBAAqB,KAC1B,KAAK,uBAAwB,KAC7B,KAAK,iBAAkB,KACvB,KAAK,YAAa,KAClB,KAAK,aAAc,KACnB,KAAK,MAAO,KACZ,KAAK,QAAS,KACd,KAAK,iBAAkB,KACvB,KAAK,kBAAmB,KACxB,KAAK,qBAAsB,KAC3B,SAASuC,KAAO,MACf,KAGF,KAAK,UAEL,IAAK,wBAEL,IAAK,iBAAkB,OAAOvC,GAAG,IAChC,IAAK,QAAS,KACd,KAAK,OAAQ,KACb,KAAK,MAAO,KACZ,KAAK,MAAO,KACZ,KAAK,OAAQ,KACb,KAAK,aAAc,KACnB,KAAK,QAAS,KACd,KAAK,gBAAiB,KACtB,KAAK,QAAS,KACd,KAAK,aAAc,KACnB,KAAK,eAAgB,KACrB,KAAK,aAAc,KACnB,KAAK,gBAAiB,KACtB,KAAK,eAAgB,KACrB,KAAK,aAAc,KACnB,KAAK,YAAa,KAClB,KAAK,YAAa,KAClB,KAAK,YAAa,KAClB,KAAK,YAAa,KAClB,KAAK,WAAY,KACjB,KAAK,SAAU,KACf,KAAK,SAAU,KACf,KAAK,SAAU,KACf,SAASuC,KAAO,MACf,KAGF,KAAK,UAAW,IAAK,SAAU,IAAK,OAAQ,OAAOvC,GAAG,IACrD,IAAK,MAAO,KACZ,KAAK,QAAS,KACd,KAAK,QAAS,KACd,KAAK,QAAS,KACd,KAAK,QAAS,KACd,KAAK,UAAW,KAChB,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,cAAe,KACpB,KAAK,gBAAiB,KAEtB,KAAK,SACL,IAAK,UACL,IAAK,cACL,IAAK,WACL,IAAK,MACL,IAAK,YACL,IAAK,UAAW,KAEhB,KAAK,MAAO,KACZ,SAASuC,KAAO,MACf,KAGF,KAAK,YAAa,KAElB,SAASA,KAAO,KAAO,OAExB,GAAGA,KAAM,KAET,KAAInuE,MAAMA,MAAM3W,OAAO,GAAG,GAAI,KAAM,qBAAuBuiF,GAAG,GAAK,IAAM5rE,MAAMkH,KAAK,IACpF,IAAGlH,MAAMA,MAAM3W,OAAO,GAAG,KAAK,2BAA4B,CACzD,GAAGuiF,GAAG,GAAG7hF,QAAQ,KAAO,KAAM,UACzB,IAAG6hF,GAAG,KAAK,IAAKF,kBAAkBC,UAAWC,GAAI7iF,GAAIiN,IAAI2F,MAAM6xE,KAAM5B,GAAGv6D,YACxE,CAAEtoB,GAAK6iF,EAAI4B,MAAO5B,GAAGv6D,MAAQu6D,GAAG,GAAGviF,OACxC,MAED,GAAGmE,KAAKywB,IAAK,KAAM,qBAAuB2tD,GAAG,GAAK,IAAM5rE,MAAMkH,KAAK,KAErE,GAAI3U,OACJ,KAAI/E,KAAK4gF,aAAe5gF,KAAK6gF,UAAW97E,IAAI8zE,OAASvpD,MACrDvqB,KAAIqvB,WAAasrD,UACjB36E,KAAIvG,IAAMA,IAAIwN,WACdjH,KAAIuwB,MAAQA,KACZvwB,KAAIo5E,UAAYA,SAChB,OAAOp5E,KAGR,QAAS+7E,YAAWrlF,KAAMuE,MACzB+gF,cAAc/gF,KAAKA,SACnB,QAAOA,KAAK8F,MAAM,UACjB,IAAK,SAAU,MAAO25E,gBAAehjF,OAAOH,OAAOb,MAAOuE,KAC1D,KAAK,SAAU,IAAK,SAAU,IAAK,OAAQ,MAAOy/E,gBAAehkF,KAAMuE,KACvE,KAAK,QAAS,MAAOy/E,gBAAehkF,KAAKkB,IAAIkhF,MAAMnkE,KAAK,IAAK1Z,OAI/D,QAASghF,YAAW17B,GAAItlD,OAGxB,QAASihF,eAAc1sE,KACtB,GAAIxV,KACJ,IAAIrD,GAAI6Y,IAAIzB,OAGZ,IAAIjU,GAAI,GAAIqG,CACZA,GAAI8W,QAAQtgB,EAAGmD,EACfA,IAAK,EAAIoU,eAAevX,EAAEmD,EAC1BE,GAAEmiF,SAAWh8E,CAGbA,GAAI+N,eAAevX,EAAEmD,EAAIA,IAAI,CAC7B,QAAOqG,GACN,IAAK,GAAY,KACjB,KAAK,YAAY,IAAK,YAAYrG,GAAG,CAAG,MACxC,SACC,GAAGqG,EAAI,IAAO,KAAM,IAAIZ,OAAM,0BAA4BY,EAAEqQ,SAAS,IACrE1W,IAAKqG,EAGPA,EAAI8W,QAAQtgB,EAAGmD,EAAIA,IAAKqG,EAAErJ,SAAW,EAAI,EAAI,EAAIqJ,EAAErJ,MAAQkD,GAAEoiF,UAAYj8E,CAEzE,KAAIA,EAAI+N,eAAevX,EAAEmD,MAAQ,WAAY,MAAOE,EACpD,MAAM,gCAIP,QAASqiF,OAAM3wE,EAAGvC,KAAMrS,OAAQmE,MAC/B,GAAInB,GAAIhD,MACR,IAAIsC,QACJ,IAAIa,GAAIkP,KAAKC,MAAMD,KAAKrP,EAAEqP,KAAKrP,EAAEA,EACjC,IAAGmB,MAAQA,KAAKq+B,KAAOr+B,KAAKq+B,IAAI2iB,eAAgB,OAAOvwC,EAAEwW,GACzD,IAAK,MAAO,IAAK,WAAY,IAAK,WAAY,IAAK,eAAgB,IAAK,UAAW,IAAK,UAAW,IAAK,UAAW,KACnH,SACC,GAAGjoB,EAAEnD,SAAW,EAAG,KACnBmE,MAAKq+B,IAAI2iB,eAAehiD,GAEzBb,KAAK0S,KAAK7R,EACVkP,MAAKrP,GAAKA,CACV,IAAI0gB,MAAQ8hE,cAAc5lE,eAAevN,KAAKA,KAAKrP,GACnD,OAAM0gB,MAAQ,MAAQA,KAAK0H,IAAM,WAAY,CAC5CpoB,EAAI4c,eAAevN,KAAKA,KAAKrP,EAAE,EAC/BV,MAAK0S,KAAK3C,KAAKC,MAAMD,KAAKrP,EAAE,EAAEqP,KAAKrP,EAAE,EAAEA,GACvCqP,MAAKrP,GAAK,EAAEA,CACZ0gB,MAAQ8hE,cAAc5lE,eAAevN,KAAMA,KAAKrP,IAEjD,GAAI2c,GAAItd,QAAQC,KAChBiQ,WAAUoN,EAAG,EACb,IAAI8lE,IAAK,CAAG9lE,GAAEoC,OACd,KAAI,GAAItX,GAAI,EAAGA,EAAInI,KAAKtC,SAAUyK,EAAG,CAAEkV,EAAEoC,KAAK/M,KAAKywE,GAAKA,KAAMnjF,KAAKmI,GAAGzK,OACtE,MAAO4U,GAAElF,EAAEiQ,EAAGA,EAAE3f,OAAQmE,MAGzB,QAASuhF,gBAAethE,EAAGjgB,KAAMsF,UAChC,IAAI2a,EAAEuhE,GAAI,MACV,KACC,GAAIpsD,OAAQnV,EAAEuhE,GAAGpgD,MAAM,CACvB,IAAGnhB,EAAEhhB,IAAM,IAAK,CAAEghB,EAAExc,EAAIwc,EAAExc,GAAKwf,KAAKhD,EAAElhB,OACjC,IAAGq2B,QAAU,EAAG,CACpB,GAAGnV,EAAEhhB,IAAM,IAAK,CACf,IAAIghB,EAAElhB,EAAE,KAAOkhB,EAAElhB,EAAGkhB,EAAExc,EAAIjF,IAAIwE,aAAaid,EAAElhB,OACxCkhB,GAAExc,EAAIjF,IAAI4F,aAAa6b,EAAElhB,OAE1BkhB,GAAExc,EAAIjF,IAAI+F,SAAS0b,EAAElhB,OAEtBkhB,GAAExc,EAAIjF,IAAImN,OAAOypB,MAAMnV,EAAElhB,GAAIuG,SAASA,UAAU,OACrD,IAAGtF,KAAK+0E,OAAQ90D,EAAExJ,EAAIjY,IAAIqN,OAAOupB,OAChC,MAAMtf,GAAK,GAAG9V,KAAKywB,IAAK,KAAM3a,IAGjC,QAAS2rE,WAAUz7E,IAAKi2B,KAAMh9B,GAC7B,OAAQF,EAAEiH,IAAKi2B,KAAKA,KAAMh9B,EAAEA,GAI7B,QAASyiF,gBAAexzE,KAAMmF,SAC7B,GAAIiyC,KAAMtlD,QACV,IAAI64E,UACJ,IAAI9zE,OACJ,IAAI48E,aACJ,IAAIC,aAAc,KAClB,IAAIphE,SACJ,IAAIqhE,cAAe,IACnB,IAAIhxD,OACJ,IAAIixD,WAAY,EAChB,IAAIC,YACJ,IAAIC,UAAUC,UAAWx5E,GAAIy5E,KAAM7L,IAAK8L,KAAMC,IAC9C,IAAIC,mBACJ,IAAIC,kBACJ,IAAIC,SACJ,IAAIC,QACJ,IAAIC,YAAa,IACjB,IAAIC,OACJ,IAAIC,WACJ,IAAIC,SAAU,QAASC,QAAOC,KAC7B,GAAGA,IAAM,EAAG,MAAOz4D,QAAOy4D,IAC1B,IAAGA,IAAM,GAAI,MAAOH,SAAQG,IAAI,IAAMz4D,OAAOy4D,IAC7C,OAAOz4D,QAAOy4D,KAEf,IAAIC,oBAAqB,QAASC,KAAI7iE,KAAM8iE,MAC3C,GAAIC,KAAMD,KAAKzB,GAAG/lF,IAClB,KAAIynF,MAAQA,IAAIphD,YAAa,MAC7BmhD,MAAKjlF,IACLilF,MAAKjlF,EAAE8jC,YAAcohD,IAAIphD,WACzB,IAAI7iC,EACJ,IAAIA,EAAIoiD,QAAQuhC,QAAQM,IAAInhD,UAAY,CAAEkhD,KAAKjlF,EAAEkmD,SAAWpI,IAAI78C,GAChE,GAAIA,EAAIoiD,QAAQuhC,QAAQM,IAAIlhD,UAAY,CAAEihD,KAAKjlF,EAAE+lD,SAAWjI,IAAI78C,IAEjE,IAAIkkF,SAAU,QAASA,SAAQhjE,KAAM8iE,KAAM5vE,SAC1C,IAAIovE,WAAY,MAChB,IAAGpvE,QAAQuiE,YAAcqN,KAAKzB,IAAMyB,KAAKzB,GAAG/lF,KAAMsnF,mBAAmB5iE,KAAM8iE,KAC3EjB,UAAW7hE,IACX8hE,WAAY74B,YAAYjpC,KACxB,IAAGK,MAAMxiB,EAAG,CACX,GAAGmiB,KAAKzY,EAAI8Y,MAAMxiB,EAAE0J,EAAG8Y,MAAMxiB,EAAE0J,EAAIyY,KAAKzY,CACxC,IAAGyY,KAAKvhB,EAAI4hB,MAAMxiB,EAAEY,EAAG4hB,MAAMxiB,EAAEY,EAAIuhB,KAAKvhB,EAEzC,GAAG4hB,MAAM1K,EAAG,CACX,GAAGqK,KAAKzY,EAAI,EAAI8Y,MAAM1K,EAAEpO,EAAG8Y,MAAM1K,EAAEpO,EAAIyY,KAAKzY,EAAI,CAChD,IAAGyY,KAAKvhB,EAAI,EAAI4hB,MAAM1K,EAAElX,EAAG4hB,MAAM1K,EAAElX,EAAIuhB,KAAKvhB,EAAI,EAEjD,GAAGyU,QAAQu3C,WAAao3B,SAASt6E,GAAK2L,QAAQu3C,UAAW63B,WAAa,UACjE19E,KAAIk9E,WAAagB,KAEvB,IAAIjjF,OACHq+B,IAAK,MACLyE,MAAO,EACPiB,UACAsxB,QAASgtB,gBACT7sB,OAAQ8sB,eACRc,WACAC,SAAU,GACV5pD,KAAM,EACN6pD,SAAU,EACVC,UAAW,EACXC,IAAK,MAEN,IAAGnwE,QAAQ2sC,SAAUhgD,KAAKggD,SAAW3sC,QAAQ2sC,QAC7C,IAAI01B,cACJ,IAAI+N,WACJ,IAAIhvB,cACJ,IAAIivB,KAAM,EAAGC,KAAO,EAAGC,MAAQ,CAC/BnvB,UAASrgC,WAAap0B,KAAK+jC,MAC3B0wB,UAASY,QAAUr1D,KAAKq1D,OACxBZ,UAASe,OAASx1D,KAAKw1D,MACvB,IAAIquB,SAAU,EACd,IAAIC,YAAa,CAGjB9jF,MAAKsjF,SAAW,IAChBhoF,QAAO,KAEP,OAAM4S,KAAKrP,EAAIqP,KAAKrS,OAAS,EAAG,CAC/B,GAAImC,GAAIkQ,KAAKrP,CACb,IAAIklF,YAAa71E,KAAKQ,WAAW,EACjC,IAAGq1E,aAAe,GAAKF,UAAY,MAAO,KAC1C,IAAIhoF,QAAUqS,KAAKrP,IAAMqP,KAAKrS,OAAS,EAAIqS,KAAKQ,WAAW,GAAK5O,CAChE,IAAI2Q,GAAI4wE,cAAc0C,WACtB,IAAGtzE,GAAKA,EAAElF,EAAG,CACZ,GAAG8H,QAAQutE,WAAY,CACtB,GAAGiD,UAAY,eAAiBpzE,EAAEwW,IAAM,cAAe,MAExD48D,QAAUpzE,EAAEwW,CACZ,IAAGxW,EAAE/I,IAAM,GAAK+I,EAAE/I,GAAK,GAAI,CAC1B,GAAIy0B,IAAKjuB,KAAKQ,WAAW,EAAI7S,SAAU,CACvC,KAAImE,KAAKq+B,KAAOlC,KAAO4nD,WAAY,KAAM,aACzC,IAAGtzE,EAAE/I,GAAK,GAAG,CAAEwG,KAAKrP,GAAK,EAAIhD,SAAU,IAGxC,GAAImK,IACJ,IAAGyK,EAAEwW,IAAM,MAAOjhB,IAAMyK,EAAElF,EAAE2C,KAAMrS,OAAQmE,UACrCgG,KAAMo7E,MAAM3wE,EAAGvC,KAAMrS,OAAQmE,KAClC,IAAIo+E,IAAK3tE,EAAEwW,CAEX,IAAGjnB,KAAKy5B,OAAS,GAAKz5B,KAAKy5B,OAAS,EAAG,OAAO2kD,IAC7C,IAAK,MAAOA,GAAK,OAAS,OAG3B,OAAOA,IAEN,IAAK,WAAY94B,GAAGtlD,KAAKgkF,SAAWh+E,GAAK,MACzC,KAAK,eAAgBs/C,GAAGtlD,KAAKikF,aAAe,IAAM,MAClD,KAAK,WACJ,IAAIjkF,KAAKq+B,IAAKnwB,KAAKrP,EAAI,CACvBmB,MAAKq+B,IAAMr4B,GACX,IAAGhG,KAAKywB,IAAKC,QAAQC,MAAM3qB,IAC3B,KAAIqN,QAAQ2sC,SAAU,KAAM,IAAI17C,OAAM,6BACtC,IAAG0B,IAAIusB,OAAS,EAAG,KAAM,IAAIjuB,OAAM,gCACnC,KAAI0B,IAAI+6C,MAAO,KAAM,IAAIz8C,OAAM,wBAC/B,MACD,KAAK,cAAetE,KAAKqjF,SAAWr9E,GAAK,MACzC,KAAK,cAAe,KACpB,KAAK,WAEJ,GAAGA,MAAQ,MAAQA,IAAM,SACpB,IAAGA,MAAQ,MAAQA,IAAM,IAC9BhG,MAAKsjF,SAAWt9E,GAChB1K,QAAO0K,IACP,MACD,KAAK,UAAWhG,KAAKojF,QAAUp9E,GAAK,MACpC,KAAK,aAAchG,KAAKujF,UAAYv9E,GAAK,MACzC,KAAK,WAAY,KACjB,KAAK,aAAcs/C,GAAGtlD,KAAKkkF,WAAal+E,GAAK,MAC7C,KAAK,WAAY,KACjB,KAAK,WAA6D,KAClE,KAAK,cAAe,CACnB,GAAGA,IAAI,IAAMA,IAAI,GAAI,KAAM,wBAA0BA,IACpD,KACF,KAAK,YAAas/C,GAAGtlD,KAAKmkF,UAAYn+E,GAAK,MAC3C,KAAK,YAAas/C,GAAGtlD,KAAKokF,UAAYp+E,GAAK,MAC3C,KAAK,WAAYs/C,GAAGtlD,KAAKqkF,SAAWr+E,GAAK,MACzC,KAAK,WAAYs/C,GAAGtlD,KAAKskF,SAAWt+E,GAAK,MACzC,KAAK,gBAAiBs/C,GAAGtlD,KAAKukF,cAAgBv+E,GAAK,MACnD,KAAK,iBAAkBs/C,GAAGtlD,KAAKwkF,eAAiBx+E,GAAK,MACrD,KAAK,cAAehG,KAAKykF,YAAcz+E,GAAK,MAC5C,KAAK,WAAY,KACjB,KAAK,uBAAwBs/C,GAAGtlD,KAAK0kF,SAAW1+E,GAAK,MACrD,KAAK,SAAU,KACf,KAAK,KAAM08E,IAAI7xE,KAAK7K,IAAM,MAC1B,KAAK,SAAU,KACf,KAAK,UAAW,KAChB,KAAK,iBAAkB,KACvB,KAAK,QAAS,KAEd,KAAK,UAAWyuD,WAAWivB,MAAQ19E,IAAM29E,MAAO,CAAG,MACnD,KAAK,aAAclvB,SAASivB,OAAOC,MAAQ39E,GAAK,MAChD,KAAK,QAAS,KACd,KAAK,MAAOyuD,SAAS,KAAKmvB,OAAS59E,GAAK,MACxC,KAAK,cAAeyuD,SAASivB,KAAOjvB,SAASivB,KAAKtlF,OAAO4H,IAAM29E,OAAQ39E,IAAInK,MAAQ,MAEnF,KAAK,UAAWkJ,IAAI,YAAciB,GAAK,MACvC,KAAK,WAAY,GAAGA,MAAQ,GAAKhG,KAAKywB,IAAKC,QAAQC,MAAM,sBAAwB3qB,IAAM,MACvF,KAAK,WAAY,IAAK,eAAgB,KAEtC,KAAK,cAAe,CACnB27E,UAAU37E,IAAIoY,KAAOpY,GACrBhG,MAAK+jC,OAAOlzB,KAAK7K,IAAIiJ,MACpB,KACF,KAAK,MAAO,CACX,KAAK60E,WAAY,KACjB,IAAGtjE,MAAM1K,EAAG,CACX/Q,IAAI,UAAYyb,KAChB,IAAGA,MAAM1K,EAAEpO,EAAI,GAAK8Y,MAAM1K,EAAElX,EAAI,EAAG,CAClC4hB,MAAM1K,EAAEpO,GAAK8Y,OAAM1K,EAAElX,GACrBmG,KAAI,QAAUslD,aAAa7pC,MAC3BA,OAAM1K,EAAEpO,GAAK8Y,OAAM1K,EAAElX,IAEtB,GAAG82E,WAAW75E,OAAS,EAAGkJ,IAAI,WAAa2wE,UAC3C,IAAG+N,QAAQ5nF,OAAS,EAAGkJ,IAAI,YAAc0+E,QAE1C,GAAG3B,YAAc,GAAIC,SAAWh9E,QAAU8zE,QAAOiJ,WAAa/8E,GAC9DA,QACC,KACF,KAAK,MAAO,CACX,GAAG/E,KAAKy5B,OAAS,OACZ,IAAGzzB,IAAIk4B,UAAY,KAAQl+B,KAAKy5B,KAAO,MACvC,IAAGzzB,IAAIk4B,UAAY,EAAQl+B,KAAKy5B,KAAO,MACvC,IAAGzzB,IAAIk4B,UAAY,EAAQl+B,KAAKy5B,KAAO,CAC5C,IAAGqqD,aAAc,KACjBrB,YAAa,IACb19E,OACA,IAAG/E,KAAKy5B,OAAS,EAAG,CACnB,GAAGqoD,YAAc,GAAIA,UAAY,QACjCthE,QAASxiB,GAAG0J,EAAE,EAAE9I,EAAE,GAAGkX,GAAGpO,EAAE,EAAE9I,EAAE,QAE1BkjF,YAAaH,UAAU3jF,KAAOiR,KAAK,KAAKA,IAC7CymE,cACA+N,YACC,KACF,KAAK,SAAU,IAAK,WAAY,CAC/BlB,UAAYtmD,KAAMj2B,IAAIi2B,KAAMulD,GAAIkB,IAAI18E,IAAIi2B,MAAOl9B,EAAEiH,IAAIA,IAAK/G,EAAE,IAC5D,IAAGsjF,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,UAASvkF,EAAEoH,IAAIpH,EAAG8I,EAAE1B,IAAI0B,GAAI66E,SAAUlvE,SACrC,KACF,KAAK,UAAW,CACfkvE,UAAYtmD,KAAMj2B,IAAIi2B,KAAMulD,GAAIkB,IAAI18E,IAAIi2B,MAAOl9B,EAAEiH,IAAIA,IAAK/G,EAAE+G,IAAI/G,EAChE,IAAGsjF,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,UAASvkF,EAAEoH,IAAIpH,EAAG8I,EAAE1B,IAAI0B,GAAI66E,SAAUlvE,SACrC,KACF,KAAK,KAAM,CACVkvE,UAAYtmD,KAAMj2B,IAAIi2B,KAAMulD,GAAIkB,IAAI18E,IAAIi2B,MAAOl9B,EAAEiH,IAAIy7B,MAAOxiC,EAAE,IAC9D,IAAGsjF,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,UAASvkF,EAAEoH,IAAIpH,EAAG8I,EAAE1B,IAAI0B,GAAI66E,SAAUlvE,SACrC,KACF,KAAK,QAAS,CACb,IAAI,GAAI/M,GAAIN,IAAIpH,EAAG0H,GAAKN,IAAI0K,IAAKpK,EAAG,CACnC,GAAI21B,MAAOj2B,IAAIw7B,MAAMl7B,EAAEN,IAAIpH,GAAG,EAC9B2jF,WAAWtmD,KAAKA,KAAMulD,GAAGkB,IAAIzmD,MAAOl9B,EAAEiH,IAAIw7B,MAAMl7B,EAAEN,IAAIpH,GAAG,GAAIK,EAAE,IAC/D,IAAGsjF,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,UAASvkF,EAAE0H,EAAGoB,EAAE1B,IAAI0B,GAAI66E,SAAUlvE,UAElC,KACF,KAAK,UAAW,CACf,OAAOrN,IAAIA,KACV,IAAK,SAAU67E,aAAe77E,GAAK,MACnC,KAAK,gBAAiB,KAAM,2BAC5B,SACCu8E,UAAYxjF,EAAEiH,IAAIA,IAAKi2B,KAAKj2B,IAAIma,KAAK8b,KAAMh9B,EAAE+G,IAAIG,GACjDo8E,UAASf,GAAKkB,IAAIH,SAAStmD,KAC3B,IAAG5oB,QAAQglE,YAAakK,SAASh3E,EAAI,IAAIipD,kBAAkBxuD,IAAIiuD,QAAQzzC,MAAMxa,IAAIma,KAAKs0C,SAAUz0D,KAChG,IAAGuiF,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,SAAQn9E,IAAIma,KAAMoiE,SAAUlvE,QAC5BwuE,cAAe77E,KAEhB,KACF,KAAK,SAAU,CACd,GAAG67E,aAAc,CAChBA,aAAa77E,IAAMA,GACnBu8E,WAAYxjF,EAAE8iF,aAAa77E,IAAKi2B,KAAK4lD,aAAa1hE,KAAK8b,KAAMh9B,EAAE,IAC/DsjF,UAASf,GAAKkB,IAAIH,SAAStmD,KAC3B,IAAG5oB,QAAQglE,YAAakK,SAASh3E,EAAI,IAAIipD,kBAAkBqtB,aAAa5tB,QAASzzC,MAAOqhE,aAAa1hE,KAAMs0C,SAAUz0D,KACrH,IAAGuiF,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,SAAQtB,aAAa1hE,KAAMoiE,SAAUlvE,QACrCwuE,cAAe,MAEf,KACF,KAAK,QAAS,CACbS,eAAezxE,KAAK7K,KACnB,KACF,KAAK,UAAW,CACf,IAAIy8E,WAAY,KAGhBJ,iBAAgBj5B,YAAYy4B,aAAa1hE,OAAQna,IAAI,GACpD,KACF,KAAK,WAEJu8E,SAASd,UAAU5wD,IAAI7qB,IAAIi7B,MAAMhiC,EAAG+G,IAAIi2B,KAAM,IAC9CsmD,UAASf,GAAKkB,IAAIH,SAAStmD,KAC3B,IAAGsmD,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,UAASvkF,EAAEoH,IAAIpH,EAAG8I,EAAE1B,IAAI0B,GAAI66E,SAAUlvE,QACtC,MACD,KAAK,QAAS,IAAK,WAElBkvE,SAASd,UAAUz7E,IAAIA,IAAKA,IAAIi2B,KAAM,IACtCsmD,UAASf,GAAKkB,IAAIH,SAAStmD,KAC3B,IAAGsmD,SAASf,GAAID,eAAegB,SAAUlvE,QAASiyC,GAAGtlD,KAAKgkF,SAC1Db,UAASvkF,EAAEoH,IAAIpH,EAAG8I,EAAE1B,IAAI0B,GAAI66E,SAAUlvE,QACtC,MACD,KAAK,aAAc,CAClB,GAAGywE,aAAe,EAAGtjE,MAAQxa,IAC5B,KACF,KAAK,MAAO,CACX6qB,IAAM7qB,IACL,KACF,KAAK,SAAU,CACdxH,IAAIsN,KAAK9F,IAAI,GAAIA,IAAI,IACpB,KAEF,KAAK,aAAc0vE,WAAaA,WAAWt3E,OAAO4H,IAAM,MAExD,KAAK,MAAOy9E,QAAQz9E,IAAIm/B,IAAI,IAAMnlC,KAAKqlC,QAAUr/B,GAAK,MACtD,KAAK,MAAOhG,KAAKqlC,QAAQs/C,IAAM3+E,GAAK,MAEpC,KAAK,QAAS,CACb,IAAIo8E,KAAOp8E,IAAI,GAAGhI,EAAE0J,EAAG06E,MAAQp8E,IAAI,GAAG8P,EAAEpO,IAAK06E,KAC5C,IAAID,KAAOn8E,IAAI,GAAGhI,EAAEY,EAAGujF,MAAQn8E,IAAI,GAAG8P,EAAElX,IAAKujF,KAC5C,GAAGp9E,IAAIqkD,aAAaxqD,EAAEujF,KAAKz6E,EAAE06E,QAC5Br9E,IAAIqkD,aAAaxqD,EAAEujF,KAAKz6E,EAAE06E,QAAQvjF,EAAImH,IAAI,GAC5C,KACF,KAAK,eAAgB,CACpB,IAAIo8E,KAAOp8E,IAAI,GAAGhI,EAAE0J,EAAG06E,MAAQp8E,IAAI,GAAG8P,EAAEpO,IAAK06E,KAC5C,IAAID,KAAOn8E,IAAI,GAAGhI,EAAEY,EAAGujF,MAAQn8E,IAAI,GAAG8P,EAAElX,IAAKujF,KAC5C,GAAGp9E,IAAIqkD,aAAaxqD,EAAEujF,KAAKz6E,EAAE06E,QAC5Br9E,IAAIqkD,aAAaxqD,EAAEujF,KAAKz6E,EAAE06E,QAAQvjF,EAAEq7E,QAAUl0E,IAAI,GACpD,KAGF,KAAK,OAAQ,CACZ,GAAGhG,KAAKy5B,MAAQ,GAAKz5B,KAAKy5B,MAAQ,EAAG,KACrChxB,IAAK1D,IAAIqkD,YAAYpjD,IAAI,IACzB,IAAI4+E,SAAUnB,QAAQz9E,IAAI,GAC1B,KAAIyC,GAAI,KACR,KAAIA,GAAG7J,EAAG6J,GAAG7J,IACbsjF,OAAQxlE,EAAE1W,IAAI,GAAG/G,EAAE2lF,QAAQD,IAAI1lF,EAC/BwJ,IAAG7J,EAAEiS,KAAKqxE,MACT,KAEF,SAAS,OAAOzxE,EAAEwW,GAClB,IAAK,aAAc,KACnB,KAAK,QAAS4hC,aAAa65B,IAAI18E,IAAIi2B,MAAOj2B,IAAI4iD,IAAM,MAEpD,KAAK,UAAW,KAChB,KAAK,SAAU,KACf,KAAK,SAAU,KACf,KAAK,UAAW,KAChB,KAAK,UAAW,KAChB,KAAK,MAAO,KACZ,KAAK,QAAS,KACd,KAAK,cAAe,KACpB,KAAK,MAAO,KACZ,KAAK,WAAY,KACjB,KAAK,UAAW,KAChB,KAAK,MAAO,KACZ,KAAK,SAAU,KACf,KAAK,WAAY,KACjB,KAAK,UAAW,KAChB,KAAK,SAAU,KACf,KAAK,OAAQ,KACb,KAAK,OAAQ,KACb,KAAK,SAAU,KACf,KAAK,QAAS,KACd,KAAK,OAAQ,KACb,KAAK,OAAQ,KACb,KAAK,OAAQ,KACb,KAAK,WAAY,KACjB,KAAK,YAAa,KAClB,KAAK,OAAQ,KACb,KAAK,UAAW,IAAK,YAAa,KAClC,KAAK,YAAa,IAAK,YAAa,IAAK,SAAU,KACnD,KAAK,QAAS,KACd,KAAK,UAAW45B,QAAUx8E,GAAK,MAC/B,KAAK,WAAY,KACjB,KAAK,mBAAoB,IAAK,SAAU,KACxC,KAAK,MAAO,IAAK,OAAQ,IAAK,WAAY,KAC1C,KAAK,OAAQ,KACb,KAAK,QAAS,KACd,KAAK,QAAS,KACd,KAAK,WAAY,KACjB,KAAK,UAAW28E,QAAU38E,GAAK,MAC/B,KAAK,QAAS,KAEd,KAAK,kBAAmB,KACxB,KAAK,aAAc,KAGnB,KAAK,YAAa,KAGlB,KAAK,QAAS,KACd,KAAK,cAAe,KACpB,KAAK,aAAc,KACnB,KAAK,oBAAqB,KAG1B,KAAK,aAAc,KACnB,KAAK,OAAQ,KACb,KAAK,UAAW,KAChB,KAAK,SAAU,KACf,KAAK,UAAW,KAChB,KAAK,WAAY,KACjB,KAAK,OAAQ,KACb,KAAK,WAAY,KACjB,KAAK,WAAY,KACjB,KAAK,SAAU,KACf,KAAK,SAAU,KACf,KAAK,QAAS,KACd,KAAK,QAAS,KAGd,KAAK,UAAW,KAGhB,KAAK,OAAQ,KAGb,KAAK,YAAa,KAGlB,KAAK,cAAe,KACpB,KAAK,YAAa,KAClB,KAAK,YAAa,KAElB,KAAK,MAAO,KACZ,KAAK,MAAO,KAEZ,KAAK,MAAO,EAEV,KACF,KAAK,WAAY,EAEf,KACF,KAAK,mBAAoB,EAEvB,KAGF,KAAK,aAAc,EAEjB,KACF,KAAK,SAAU,EAEb,KACF,KAAK,WAAY,EAEf,KACF,KAAK,cAAe,EAElB,KAEF,KAAK,OAAQ,KACb,KAAK,eAAgB,KAErB,KAAK,gBAAiB,KAGtB,KAAK,MAAO,IAAK,OAAQ,IAAK,SAAU,IAAK,aAAc,IAAK,aAAc,KAG9E,KAAK,KAAM,IAAK,OAAQ,KAGxB,KAAK,OAAQ,IAAK,SAAU,IAAK,aAAc,KAG/C,KAAK,QAAS,KACd,KAAK,eAAgB,KACrB,KAAK,aAAc,KAGnB,KAAK,aAAc,KACnB,KAAK,UAAW,IAAK,KAAM,IAAK,OAAQ,IAAK,OAAQ,KAGrD,KAAK,aAAc,KACnB,KAAK,QAAS,KACd,KAAK,eAAgB,IAAK,MAAO,IAAK,eAAgB,IAAK,MAAO,IAAK,sBAEvE,IAAK,UAAW,IAAK,UAAW,IAAK,UAAW,IAAK,UAAW,IAAK,OACrE,IAAK,YAAa,IAAK,iBAAkB,IAAK,eAC9C,IAAK,OAAQ,KACb,SAAS,OAAOyK,EAAEwW,GAElB,IAAK,MACL,IAAK,QAAS,IAAK,MACnB,IAAK,aAAc,IAAK,WACxB,IAAK,QAAS,IAAK,OACnB,IAAK,OAAQ,IAAK,WAAY,IAAK,OAAQ,KAC3C,KAAK,WACL,IAAK,cAAe,IAAK,eAAgB,IAAK,UAAW,IAAK,UAAW,IAAK,WAAY,IAAK,mBAAoB,KACnH,KAAK,aAAc,IAAK,aACxB,IAAK,QAAS,IAAK,UAAW,IAAK,kBAAmB,IAAK,cAAe,IAAK,eAAgB,KAC/F,KAAK,WAAY,IAAK,aAAc,KACpC,KAAK,aAAc,IAAK,YAAa,IAAK,cAAe,KACzD,KAAK,aAAc,IAAK,WAAY,IAAK,QAAS,KAClD,KAAK,cAAe,IAAK,SAAU,IAAK,SAAU,KAClD,KAAK,WAAY,KACjB,KAAK,cAAe,IAAK,OAAQ,IAAK,SAAU,KAChD,KAAK,qBAAsB,KAC3B,KAAK,SAAU,IAAK,kBAAmB,KACvC,KAAK,MAAO,IAAK,UAAW,KAC5B,KAAK,YAAa,IAAK,eAAgB,KACvC,KAAK,cAAe,IAAK,YAAa,KACtC,KAAK,SAAU,IAAK,aAAc,KAClC,KAAK,UAAW,KAChB,KAAK,gBAAiB,IAAK,QAAS,KAGpC,KAAK,OAAQ,IAAK,MAAO,KACzB,KAAK,OAAQ,KAGb,KAAK,aAAc,KACnB,KAAK,MAAO,KACZ,KAAK,aAAc,KAGnB,KAAK,YAAa,KAClB,KAAK,aAAc,KACnB,KAAK,iBAAkB,KACvB,KAAK,WAAY,KACjB,KAAK,kBAAmB,KAGxB,KAAK,QAAS,KACd,KAAK,SAAU,KACf,KAAK,WAAY,KAGjB,KAAK,MAAO,IAAK,OAAQ,IAAK,OAAQ,IAAK,WAAY,KACvD,KAAK,SAAU,KAGf,KAAK,aAAc,KACnB,KAAK,aAAc,IAAK,iBAAkB,KAC1C,KAAK,eAAgB,KACrB,KAAK,iBAAkB,KACvB,KAAK,OAAQ,KACb,KAAK,WAAY,KAGjB,KAAK,mBAAoB,KACzB,KAAK,aAAc,IAAK,kBAAmB,IAAK,sBAAuB,KACvE,KAAK,SAAU,KAEf,KAAK,SAAU,IAAK,aAGpB,IAAK,cAAe,IAAK,aAAc,IAAK,YAAa,IAAK,eAC9D,IAAK,eAAgB,IAAK,YAAa,IAAK,MAC5C,IAAK,uBAAwB,IAAK,qBAElC,IAAK,SAAU,IAAK,mBAAoB,IAAK,WAAY,KAGzD,KAAK,WAAY,IAAK,gBAAiB,KAGvC,KAAK,cAAe,IAAK,aAAc,KAGvC,KAAK,cAAe,KACpB,KAAK,UAAW,KAChB,KAAK,YAAa,IAAK,QAAS,IAAK,YAAa,IAAK,UAAW,IAAK,OAAQ,IAAK,YAAa,IAAK,eAAgB,KAEtH,SAAS,OAAOxW,EAAEwW,GAElB,IAAK,WAAY,IAAK,UAAW,IAAK,OAAQ,IAAK,aACnD,IAAK,MAAO,IAAK,SAAU,IAAK,eAAgB,IAAK,eACrD,IAAK,OAAQ,KACb,SAAS,GAAG5T,QAAQod,IAAK,KAAM,uBAAyBhgB,EAAEwW,UAErD/Y,MAAKrP,GAAKhD,OAElB,GAAIgpF,eAAgB7kF,KAAKy5B,OAAS,GAAK,UAAYplB,OAAOD,KAAKutE,WAAWmD,KAAK,SAASpoE,EAAElB,GAAK,MAAOupE,QAAOroE,GAAKqoE,OAAOvpE,KAAO7e,IAAI,SAAST,GAAG,MAAOylF,WAAUzlF,GAAG+S,MACpK,IAAIywE,YAAamF,cAAc12E,OAC/Bm3C,IAAGq8B,UAAUkD,aACbv/B,IAAGlxB,WAAWywD,aACd,KAAIxxE,QAAQutE,WAAYt7B,GAAGuzB,OAAOA,MAClCvzB,IAAGy8B,SAASA,QACZz8B,IAAG6xB,QAAUtmD,GACby0B,IAAG9mD,IAAMA,IAAIwN,WACb,IAAGhM,KAAKq+B,IAAKinB,GAAG0/B,WAAahlF,KAAKq+B,GAClCinB,IAAG2/B,WACH,IAAGzC,UAAYziF,UAAWulD,GAAG2/B,SAASC,QAAU1C,OAChD,OAAOl9B,IAGR,QAAS6/B,cAAaC,IAAK/xE,SAC3B,IAAIA,QAASA,UACb0tE,eAAc1tE,QACdhY,WACA,IAAIgqF,SAASC,QAAS3J,QACtB,IAAGyJ,IAAIp1E,KAAM,CACZq1E,QAAUD,IAAIp1E,KAAK,WACnBs1E,SAAUF,IAAIp1E,KAAK,sBACnB2rE,UAAWyJ,IAAIp1E,KAAK,iBACd,CACN5B,UAAUg3E,IAAK,EACfzJ,WAAY7oE,QAASsyE,KAGtB,IAAIzJ,SAAUA,SAAWyJ,IAAIp1E,KAAK,QAClC,IAAIu1E,UAAUC,SAAUC,SAExB,IAAGJ,QAASE,SAAWtE,cAAcoE,QACrC,IAAGhyE,QAAQwtE,YAAcxtE,QAAQutE,WAAY6E,iBACxC,CACJ,GAAG9J,SAAU8J,UAAY/D,eAAe/F,SAAS7oE,QAASO,UAAWsoE,SAAS3rE,UACzE,MAAM,IAAI1L,OAAM,+BAGtB,GAAG8gF,IAAIp1E,KAAM01E,YAAYN,IAEzB,IAAIO,SACJ,KAAI,GAAI7lF,KAAKslF,KAAIE,QAASK,MAAM7lF,GAAKslF,IAAIE,QAAQxlF,EACjD,KAAIA,IAAKslF,KAAIQ,WAAYD,MAAM7lF,GAAKslF,IAAIQ,WAAW9lF,EACnD2lF,WAAUnwD,MAAQmwD,UAAUtH,UAAYwH,KACxC,IAAGtyE,QAAQwyE,UAAWJ,UAAUL,IAAMA,GACtCK,WAAUF,SAAWA,QACrB,OAAOE,WAIP,QAASC,aAAYN,KAEpB,GAAIU,KAAMV,IAAIp1E,KAAK,8BACnB,IAAG81E,IAAK,IAAMV,IAAIQ,WAAa3tD,wBAAwB6tD,IAAK9+D,kBAAqB,MAAMlR,IAGvF,GAAIiwE,IAAKX,IAAIp1E,KAAK,sBAClB,IAAG+1E,GAAI,IAAMX,IAAIE,QAAUrtD,wBAAwB8tD,GAAIv+D,cAAiB,MAAM1R,KAI/E,GAAIiJ,iBACH,GAAUkI,EAAE,YAAa1b,EAAEutE,iBAC3B54E,GAAU+mB,EAAE,eAAgB1b,EAAE2tE,oBAC9B/4E,GAAU8mB,EAAE,YAAa1b,EAAEkuE,iBAC3Br5E,GAAU6mB,EAAE,eAAgB1b,EAAE+tE,oBAC9Bj5E,GAAU4mB,EAAE,cAAe1b,EAAE6tE,mBAC7BlyD,GAAUD,EAAE,cAAe1b,EAAEiuE,mBAC7BryD,GAAUF,EAAE,YAAa1b,EAAEmuE,iBAC3Bx2D,GAAU+D,EAAE,cAAe1b,EAAEguE,mBAC7BnyD,GAAUH,EAAE,gBAAiB1b,EAAEuuE,qBAC/Bx5E,GAAU2mB,EAAE,aAAc1b,EAAEsuE,kBAC5Bt5E,IAAU0mB,EAAE,cAAe1b,EAAEouE,mBAC7Bn5E,IAAUymB,EAAE,eAAgB1b,EAAEquE,oBAC9B/4E,IAAUomB,EAAE,gBAAiB1b,EAAEgxE,qBAC/Bv7E,IAAUimB,EAAE,aAAc1b,EAAEgW,eAC5BtgB,IAAUgmB,EAAE,iBAAkB1b,EAAE+S,WAChCpd,IAAU+lB,EAAE,gBAAiB1b,EAAE+S,WAC/Bnd,IAAU8lB,EAAE,iBAAkB1b,EAAE+S,WAChC6E,IAAU8D,EAAE,eAAgB1b,EAAE+S,WAC9Bq3C,IAAU1uC,EAAE,gBAAiB1b,EAAE+S,WAC/Bs3C,IAAU3uC,EAAE,kBAAmB1b,EAAE+S,WACjC+I,IAAUJ,EAAE,eAAgB1b,EAAE+S,WAC9BgJ,IAAUL,EAAE,kBAAmB1b,EAAE+S,WACjCiJ,IAAUN,EAAE,iBAAkB1b,EAAE+S,WAChC8E,IAAU6D,EAAE,kBAAmB1b,EAAE+S,WACjCyJ,IAAUd,EAAE,gBAAiB1b,EAAE+S,WAC/B0J,IAAUf,EAAE,iBAAkB1b,EAAE+S,WAChC2J,IAAUhB,EAAE,mBAAoB1b,EAAE+S,WAClC4J,IAAUjB,EAAE,eAAgB1b,EAAE+S,WAC9B6J,IAAUlB,EAAE,iBAAkB1b,EAAE+S,WAChC8yC,IAAUnqC,EAAE,cAAe1b,EAAE+S,WAC7B+E,IAAU4D,EAAE,YAAa1b,EAAE+S,WAC3Bld,IAAU6lB,EAAE,aAAc1b,EAAE+S,WAC5Bjd,IAAU4lB,EAAE,WAAY1b,EAAE+S,WAC1Bhd,IAAU2lB,EAAE,UAAW1b,EAAE+S,WACzB/c,IAAU0lB,EAAE,mBAAoB1b,EAAE+S,WAClCgF,IAAU2D,EAAE,gBAAiB1b,EAAE+S,WAC/BiF,IAAU0D,EAAE,UAAW1b,EAAEk6C,eACzBp9B,IAAUpB,EAAE,SAAU1b,EAAEg6C,cACxB/jD,IAAUylB,EAAE,UAAW1b,EAAE+S,WACzB7c,IAAUwlB,EAAE,YAAa1b,EAAE+S,WAC3B5c,IAAUulB,EAAE,QAAS1b,EAAEq7C,aACvBjlD,IAAUslB,EAAE,WAAY1b,EAAE+S,WAC1B1c,IAAUqlB,EAAE,cAAe1b,EAAE+S,WAC7Bu3C,IAAU5uC,EAAE,eAAgB1b,EAAE+S,WAC9Bw3C,IAAU7uC,EAAE,SAAU1b,EAAE+S,WACxBgK,IAAUrB,EAAE,cAAe1b,EAAE+S,WAC7By3C,IAAU9uC,EAAE,YAAa1b,EAAE+S,WAC3B03C,IAAU/uC,EAAE,cAAe1b,EAAE+S,WAC7BiK,IAAUtB,EAAE,YAAa1b,EAAE+S,WAC3Bzc,IAAUolB,EAAE,mBAAoB1b,EAAE+S,WAClC+yC,IAAUpqC,EAAE,iBAAkB1b,EAAE+S,WAChCgzC,IAAUrqC,EAAE,gBAAiB1b,EAAE+S,WAC/BizC,IAAUtqC,EAAE,SAAU1b,EAAE+S,WACxBkzC,IAAUvqC,EAAE,aAAc1b,EAAE+S,WAC5B23C,IAAUhvC,EAAE,iBAAkB1b,EAAE+S,WAChC43C,IAAUjvC,EAAE,oBAAqB1b,EAAE49C,yBACnC1gC,IAAUxB,EAAE,UAAW1b,EAAE+S,WACzBqzC,IAAU1qC,EAAE,gBAAiB1b,EAAE+S,WAC/BoK,IAAUzB,EAAE,gBAAiB1b,EAAE+S,WAC/BwzC,IAAU7qC,EAAE,iBAAkB1b,EAAE+S,WAChC0zC,IAAU/qC,EAAE,gBAAiB1b,EAAE+S,WAC/B08B,IAAU/zB,EAAE,iBAAkB1b,EAAE+S,WAChC6zC,IAAUlrC,EAAE,gBAAiB1b,EAAE+S,WAC/B47B,KAAUjzB,EAAE,iBAAkB1b,EAAE+S,WAChC67B,KAAUlzB,EAAE,gBAAiB1b,EAAE+S,WAC/B87B,KAAUnzB,EAAE,cAAe1b,EAAE+S,WAC7Bm5C,KAAUxwC,EAAE,eAAgB1b,EAAE+S,UAAW2B,EAAE,GAC3Cy3C,KAAUzwC,EAAE,aAAc1b,EAAE+S,WAC5Bq5C,KAAU1wC,EAAE,kBAAmB1b,EAAE+S,WACjC+7B,KAAUpzB,EAAE,gBAAiB1b,EAAE+S,WAC/Bs5C,KAAU3wC,EAAE,oBAAqB1b,EAAE+S,WACnCg8B,KAAUrzB,EAAE,kBAAmB1b,EAAE+S,WACjCu5C,KAAU5wC,EAAE,iBAAkB1b,EAAE+S,WAChCw5C,KAAU7wC,EAAE,eAAgB1b,EAAE+S,WAC9By5C,KAAU9wC,EAAE,kBAAmB1b,EAAE+S,WACjC05C,KAAU/wC,EAAE,gBAAiB1b,EAAE+S,WAC/BwpD,KAAU7gD,EAAE,iBAAkB1b,EAAE+S,WAChC25C,KAAUhxC,EAAE,eAAgB1b,EAAE+S,WAC9B45C,KAAUjxC,EAAE,oBAAqB1b,EAAE+S,WACnC65C,KAAUlxC,EAAE,kBAAmB1b,EAAE+S,WACjC85C,KAAUnxC,EAAE,oBAAqB1b,EAAE+S,WACnC+5C,KAAUpxC,EAAE,kBAAmB1b,EAAE+S,WACjCg6C,KAAUrxC,EAAE,YAAa1b,EAAE0tE,iBAC3B1gB,KAAUtxC,EAAE,WAAY1b,EAAEwtE,eAAgB94D,EAAE,IAC5Cy4C,KAAUzxC,EAAE,UAAW1b,EAAE+S,WACzBq6C,KAAU1xC,EAAE,SAAU1b,EAAE+S,WACxBs6C,KAAU3xC,EAAE,YAAa1b,EAAE6wE,iBAC3BrU,KAAU9gD,EAAE,eAAgB1b,EAAE+S,WAC9Bu6C,KAAU5xC,EAAE,iBAAkB1b,EAAE+S,WAChC0pD,KAAU/gD,EAAE,cAAe1b,EAAEwwE,mBAC7B9T,KAAUhhD,EAAE,cAAe1b,EAAE+S,WAC7B4pD,KAAUjhD,EAAE,cAAe1b,EAAE+S,WAC7Bw6C,KAAU7xC,EAAE,cAAe1b,EAAE4xC,mBAC7BgrB,KAAUlhD,EAAE,YAAa1b,EAAE+S,WAC3Bi8B,KAAUtzB,EAAE,kBAAmB1b,EAAE+S,WACjCk8B,KAAUvzB,EAAE,gBAAiB1b,EAAE+S,WAC/Bm8B,KAAUxzB,EAAE,uBAAwB1b,EAAE+S,WACtCy6C,KAAU9xC,EAAE,qBAAsB1b,EAAE+S,WACpC8pD,KAAUnhD,EAAE,kBAAmB1b,EAAE+S,WACjC06C,KAAU/xC,EAAE,gBAAiB1b,EAAE+S,WAC/B26C,KAAUhyC,EAAE,YAAa1b,EAAE+S,WAC3B46C,KAAUjyC,EAAE,iBAAkB1b,EAAE+S,WAChC66C,KAAUlyC,EAAE,gBAAiB1b,EAAE+S,WAC/B86C,KAAUnyC,EAAE,iBAAkB1b,EAAE+S,WAChC+6C,KAAUpyC,EAAE,mBAAoB1b,EAAE+S,WAClCg7C,KAAUryC,EAAE,wBAAyB1b,EAAE+S,WACvCi7C,KAAUtyC,EAAE,sBAAuB1b,EAAE+S,WACrCk7C,KAAUvyC,EAAE,kBAAmB1b,EAAE+S,WACjCm7C,KAAUxyC,EAAE,0BAA2B1b,EAAE+S,WACzC+pD,KAAUphD,EAAE,eAAgB1b,EAAEwuE,oBAC9Br/B,KAAUzzB,EAAE,qBAAsB1b,EAAE+S,WACpCq8B,KAAU1zB,EAAE,mBAAoB1b,EAAE+S,WAClCgqD,KAAUrhD,EAAE,wBAAyB1b,EAAE+S,WACvCiqD,KAAUthD,EAAE,sBAAuB1b,EAAE+S,WACrCkqD,KAAUvhD,EAAE,oBAAqB1b,EAAE+S,WACnCmqD,KAAUxhD,EAAE,kBAAmB1b,EAAE+S,WACjCoqD,KAAUzhD,EAAE,mBAAoB1b,EAAE+S,WAClCqqD,KAAU1hD,EAAE,iBAAkB1b,EAAE+S,WAChCo7C,KAAUzyC,EAAE,oBAAqB1b,EAAE+S,WACnCs8B,KAAU3zB,EAAE,kBAAmB1b,EAAE+S,WACjCq7C,KAAU1yC,EAAE,oBAAqB1b,EAAE+S,WACnCs7C,KAAU3yC,EAAE,kBAAmB1b,EAAE+S,WACjCu7C,KAAU5yC,EAAE,mBAAoB1b,EAAE+S,WAClCw7C,KAAU7yC,EAAE,iBAAkB1b,EAAE+S,WAChCy7C,KAAU9yC,EAAE,kBAAmB1b,EAAE+S,WACjC07C,KAAU/yC,EAAE,gBAAiB1b,EAAE+S,WAC/B27C,KAAUhzC,EAAE,4BAA6B1b,EAAE+S,WAC3C47C,KAAUjzC,EAAE,0BAA2B1b,EAAE+S,WACzC67C,KAAUlzC,EAAE,yBAA0B1b,EAAE+S,WACxC87C,KAAUnzC,EAAE,uBAAwB1b,EAAE+S,WACtC+7C,KAAUpzC,EAAE,uBAAwB1b,EAAE+S,WACtCg8C,KAAUrzC,EAAE,qBAAsB1b,EAAE+S,WACpCi8C,KAAUtzC,EAAE,0BAA2B1b,EAAE+S,WACzCk8C,KAAUvzC,EAAE,wBAAyB1b,EAAE+S,WACvCm8C,KAAUxzC,EAAE,wBAAyB1b,EAAE+S,WACvCo8C,KAAUzzC,EAAE,sBAAuB1b,EAAE+S,WACrCq8C,KAAU1zC,EAAE,oBAAqB1b,EAAE+S,WACnCu8B,KAAU5zB,EAAE,kBAAmB1b,EAAE+S,WACjCsqD,KAAU3hD,EAAE,sBAAuB1b,EAAE+S,WACrCs8C,KAAU3zC,EAAE,oBAAqB1b,EAAE+S,WACnCu8C,KAAU5zC,EAAE,qBAAsB1b,EAAE+S,WACpCw8C,KAAU7zC,EAAE,mBAAoB1b,EAAE+S,WAClCy8C,KAAU9zC,EAAE,qBAAsB1b,EAAE+S,WACpC08C,KAAU/zC,EAAE,mBAAoB1b,EAAE+S,WAClC28C,KAAUh0C,EAAE,oBAAqB1b,EAAE+S,WACnC48C,KAAUj0C,EAAE,kBAAmB1b,EAAE+S,WACjC2K,KAAUhC,EAAE,qBAAsB1b,EAAE+S,WACpC68C,KAAUl0C,EAAE,mBAAoB1b,EAAE+S,WAClC88C,KAAUn0C,EAAE,oBAAqB1b,EAAE+S,WACnC4K,KAAUjC,EAAE,kBAAmB1b,EAAE+S,WACjC+8C,KAAUp0C,EAAE,mBAAoB1b,EAAE+S,WAClC6K,KAAUlC,EAAE,iBAAkB1b,EAAE+S,WAChCg9C,KAAUr0C,EAAE,oBAAqB1b,EAAE+S,WACnCi9C,KAAUt0C,EAAE,kBAAmB1b,EAAE+S,WACjCuqD,KAAU5hD,EAAE,qBAAsB1b,EAAE+S,WACpCw8B,KAAU7zB,EAAE,mBAAoB1b,EAAE+S,WAClCk9C,KAAUv0C,EAAE,qBAAsB1b,EAAE+S,WACpCm9C,KAAUx0C,EAAE,mBAAoB1b,EAAE+S,WAClCo9C,KAAUz0C,EAAE,wBAAyB1b,EAAE+S,WACvCq9C,KAAU10C,EAAE,sBAAuB1b,EAAE+S,WACrCs9C,KAAU30C,EAAE,0BAA2B1b,EAAE+S,WACzCu9C,KAAU50C,EAAE,wBAAyB1b,EAAE+S,WACvCw9C,KAAU70C,EAAE,yBAA0B1b,EAAE+S,WACxCwqD,KAAU7hD,EAAE,uBAAwB1b,EAAE+S,WACtCyqD,KAAU9hD,EAAE,0BAA2B1b,EAAE+S,WACzC0qD,KAAU/hD,EAAE,wBAAyB1b,EAAE+S,WACvC2qD,KAAUhiD,EAAE,yBAA0B1b,EAAE+S,WACxC4qD,KAAUjiD,EAAE,uBAAwB1b,EAAE+S,WACtC6qD,KAAUliD,EAAE,yBAA0B1b,EAAE+S,WACxC8qD,KAAUniD,EAAE,uBAAwB1b,EAAE+S,WACtC+qD,KAAUpiD,EAAE,uBAAwB1b,EAAE+S,WACtCy8B,KAAU9zB,EAAE,qBAAsB1b,EAAE+S,WACpCgrD,KAAUriD,EAAE,sBAAuB1b,EAAE+S,WACrCy9C,KAAU90C,EAAE,oBAAqB1b,EAAE+S,WACnCirD,KAAUtiD,EAAE,qBAAsB1b,EAAE+S,WACpCkrD,KAAUviD,EAAE,mBAAoB1b,EAAE+S,WAClC09C,KAAU/0C,EAAE,uBAAwB1b,EAAE+S,WACtCmrD,KAAUxiD,EAAE,qBAAsB1b,EAAE+S,WACpCorD,KAAUziD,EAAE,sBAAuB1b,EAAE+S,WACrCqrD,KAAU1iD,EAAE,oBAAqB1b,EAAE+S,WACnCsrD,KAAU3iD,EAAE,gBAAiB1b,EAAE+S,WAC/BurD,KAAU5iD,EAAE,cAAe1b,EAAE+S,WAC7B29C,KAAUh1C,EAAE,oBAAqB1b,EAAE+S,WACnC49C,KAAUj1C,EAAE,kBAAmB1b,EAAE+S,WACjC69C,KAAUl1C,EAAE,mBAAoB1b,EAAE+S,WAClC89C,KAAUn1C,EAAE,iBAAkB1b,EAAE+S,WAChC+9C,KAAUp1C,EAAE,iBAAkB1b,EAAE+S,WAChCg+C,KAAUr1C,EAAE,eAAgB1b,EAAE+S,WAC9BkF,KAAUyD,EAAE,gBAAiB1b,EAAE+S,WAC/Bi+C,KAAUt1C,EAAE,cAAe1b,EAAE+S,WAC7BwrD,KAAU7iD,EAAE,kBAAmB1b,EAAE+S,WACjCyrD,KAAU9iD,EAAE,gBAAiB1b,EAAE+S,WAC/Bk+C,KAAUv1C,EAAE,iBAAkB1b,EAAE+S,WAChCm+C,KAAUx1C,EAAE,eAAgB1b,EAAE+S,WAC9B0rD,KAAU/iD,EAAE,qBAAsB1b,EAAE+S,WACpC2rD,KAAUhjD,EAAE,mBAAoB1b,EAAE+S,WAClC4rD,KAAUjjD,EAAE,qBAAsB1b,EAAE+S,WACpC6rD,KAAUljD,EAAE,mBAAoB1b,EAAE+S,WAClCo+C,KAAUz1C,EAAE,mBAAoB1b,EAAE+S,WAClCq+C,KAAU11C,EAAE,iBAAkB1b,EAAE+S,WAChCs+C,KAAU31C,EAAE,kBAAmB1b,EAAE+S,WACjCu+C,KAAU51C,EAAE,gBAAiB1b,EAAE+S,WAC/Bw+C,KAAU71C,EAAE,kBAAmB1b,EAAE+S,WACjC8rD,KAAUnjD,EAAE,gBAAiB1b,EAAE+S,WAC/B+rD,KAAUpjD,EAAE,iBAAkB1b,EAAE+S,WAChCy+C,KAAU91C,EAAE,eAAgB1b,EAAE+S,WAC9B0+C,KAAU/1C,EAAE,eAAgB1b,EAAE+S,WAC9B2+C,KAAUh2C,EAAE,aAAc1b,EAAE+S,WAC5BgsD,KAAUrjD,EAAE,cAAe1b,EAAE+S,WAC7B4+C,KAAUj2C,EAAE,YAAa1b,EAAE+S,WAC3B6+C,KAAUl2C,EAAE,kBAAmB1b,EAAE+S,WACjC8+C,KAAUn2C,EAAE,qBAAsB1b,EAAE+S,WACpC++C,KAAUp2C,EAAE,mBAAoB1b,EAAE+S,WAClCg/C,KAAUr2C,EAAE,iBAAkB1b,EAAE+S,WAChCi/C,KAAUt2C,EAAE,aAAc1b,EAAE+S,WAC5Bk/C,KAAUv2C,EAAE,eAAgB1b,EAAE+S,WAC9Bm/C,KAAUx2C,EAAE,gBAAiB1b,EAAE+S,WAC/Bo/C,KAAUz2C,EAAE,cAAe1b,EAAE+S,WAC7Bq/C,KAAU12C,EAAE,eAAgB1b,EAAE+S,WAC9BisD,KAAUtjD,EAAE,aAAc1b,EAAE+S,WAC5BksD,KAAUvjD,EAAE,gBAAiB1b,EAAE+S,WAC/Bs/C,KAAU32C,EAAE,cAAe1b,EAAE+S,WAC7Bu/C,KAAU52C,EAAE,eAAgB1b,EAAE+S,WAC9Bw/C,KAAU72C,EAAE,aAAc1b,EAAE+S,WAC5By/C,KAAU92C,EAAE,gBAAiB1b,EAAE+S,WAC/B0/C,KAAU/2C,EAAE,cAAe1b,EAAE+S,WAC7B2/C,KAAUh3C,EAAE,eAAgB1b,EAAE+S,WAC9BmsD,KAAUxjD,EAAE,aAAc1b,EAAE+S,WAC5B4/C,KAAUj3C,EAAE,gBAAiB1b,EAAE+S,WAC/B6/C,KAAUl3C,EAAE,cAAe1b,EAAE+S,WAC7B8/C,KAAUn3C,EAAE,eAAgB1b,EAAE+S,WAC9B+/C,KAAUp3C,EAAE,aAAc1b,EAAE+S,WAC5BosD,KAAUzjD,EAAE,kBAAmB1b,EAAE+S,WACjCqsD,KAAU1jD,EAAE,gBAAiB1b,EAAE+S,WAC/BssD,KAAU3jD,EAAE,mBAAoB1b,EAAE+S,WAClCggD,KAAUr3C,EAAE,iBAAkB1b,EAAE+S,WAChCusD,KAAU5jD,EAAE,mBAAoB1b,EAAE+S,WAClCwsD,KAAU7jD,EAAE,iBAAkB1b,EAAE+S,WAChCigD,KAAUt3C,EAAE,oBAAqB1b,EAAE+S,WACnCkgD,KAAUv3C,EAAE,kBAAmB1b,EAAE+S,WACjCmgD,KAAUx3C,EAAE,mBAAoB1b,EAAE+S,WAClCogD,KAAUz3C,EAAE,iBAAkB1b,EAAE+S,WAChCqgD,KAAU13C,EAAE,mBAAoB1b,EAAE+S,WAClCsgD,KAAU33C,EAAE,iBAAkB1b,EAAE+S,WAChCugD,KAAU53C,EAAE,oBAAqB1b,EAAE+S,WACnCwgD,KAAU73C,EAAE,kBAAmB1b,EAAE+S,WACjCygD,KAAU93C,EAAE,mBAAoB1b,EAAE+S,WAClC0gD,KAAU/3C,EAAE,qBAAsB1b,EAAE+S,WACpC2gD,KAAUh4C,EAAE,eAAgB1b,EAAE+S,WAC9B4gD,KAAUj4C,EAAE,gBAAiB1b,EAAE+S,WAC/BysD,KAAU9jD,EAAE,cAAe1b,EAAE+S,WAC7B6gD,KAAUl4C,EAAE,eAAgB1b,EAAE+S,WAC9B8gD,KAAUn4C,EAAE,aAAc1b,EAAE+S,WAC5B+gD,KAAUp4C,EAAE,mBAAoB1b,EAAE+S,WAClCghD,KAAUr4C,EAAE,iBAAkB1b,EAAE+S,WAChCihD,KAAUt4C,EAAE,oBAAqB1b,EAAE+S,WACnCkhD,KAAUv4C,EAAE,kBAAmB1b,EAAE+S,WACjCmhD,KAAUx4C,EAAE,kBAAmB1b,EAAE+S,WACjCohD,KAAUz4C,EAAE,gBAAiB1b,EAAE+S,WAC/B0sD,KAAU/jD,EAAE,iBAAkB1b,EAAE+S,WAChC2sD,KAAUhkD,EAAE,eAAgB1b,EAAE+S,WAC9BqhD,KAAU14C,EAAE,oBAAqB1b,EAAE+S,WACnC4sD,KAAUjkD,EAAE,kBAAmB1b,EAAE+S,WACjCshD,KAAU34C,EAAE,mBAAoB1b,EAAE+S,WAClC6sD,KAAUlkD,EAAE,iBAAkB1b,EAAE+S,WAChC8sD,KAAUnkD,EAAE,mBAAoB1b,EAAE+S,WAClC0nE,KAAU/+D,EAAE,iBAAkB1b,EAAE+S,WAChC+sD,KAAUpkD,EAAE,oBAAqB1b,EAAE+S,WACnCgtD,KAAUrkD,EAAE,aAAc1b,EAAE+S,WAC5BuhD,KAAU54C,EAAE,kBAAmB1b,EAAE+S,WACjCitD,KAAUtkD,EAAE,gBAAiB1b,EAAE+S,WAC/BwhD,KAAU74C,EAAE,cAAe1b,EAAE+S,WAC7ByhD,KAAU94C,EAAE,gBAAiB1b,EAAE+S,WAC/BktD,KAAUvkD,EAAE,cAAe1b,EAAE+S,WAC7BmtD,KAAUxkD,EAAE,sBAAuB1b,EAAE+S,WACrC0hD,KAAU/4C,EAAE,oBAAqB1b,EAAE+S,WACnC2hD,KAAUh5C,EAAE,eAAgB1b,EAAE+S,WAC9B4hD,KAAUj5C,EAAE,aAAc1b,EAAE+S,WAC5BotD,KAAUzkD,EAAE,mBAAoB1b,EAAE+S,WAClCqtD,KAAU1kD,EAAE,iBAAkB1b,EAAE+S,WAChCstD,KAAU3kD,EAAE,kBAAmB1b,EAAE+S,WACjCutD,KAAU5kD,EAAE,gBAAiB1b,EAAE+S,WAC/BwtD,KAAU7kD,EAAE,qBAAsB1b,EAAE+S,WACpC6hD,KAAUl5C,EAAE,mBAAoB1b,EAAE+S,WAClC8K,KAAUnC,EAAE,gBAAiB1b,EAAE+S,WAC/B8hD,KAAUn5C,EAAE,gBAAiB1b,EAAE+S,WAC/BytD,KAAU9kD,EAAE,oBAAqB1b,EAAE+S,WACnC+K,KAAUpC,EAAE,kBAAmB1b,EAAE+S,WACjC+hD,KAAUp5C,EAAE,gBAAiB1b,EAAE+S,WAC/B0tD,KAAU/kD,EAAE,aAAc1b,EAAE+S,WAC5BgL,KAAUrC,EAAE,aAAc1b,EAAE+S,WAC5B2tD,KAAUhlD,EAAE,aAAc1b,EAAE+S,WAC5B4tD,KAAUjlD,EAAE,kBAAmB1b,EAAE+S,WACjC6tD,KAAUllD,EAAE,qBAAsB1b,EAAE+S,WACpC8tD,KAAUnlD,EAAE,iBAAkB1b,EAAE+S,WAChC+tD,KAAUplD,EAAE,sBAAuB1b,EAAE+S,WACrCguD,KAAUrlD,EAAE,oBAAqB1b,EAAE+S,WACnCkuD,KAAUvlD,EAAE,kBAAmB1b,EAAE+S,WACjCmuD,KAAUxlD,EAAE,qBAAsB1b,EAAE+S,WACpCouD,KAAUzlD,EAAE,oBAAqB1b,EAAE+S,WACnCquD,KAAU1lD,EAAE,oBAAqB1b,EAAE+S,WACnCiiD,KAAUt5C,EAAE,qBAAsB1b,EAAE+S,WACpCsuD,KAAU3lD,EAAE,sBAAuB1b,EAAE+S,WACrCuuD,KAAU5lD,EAAE,gBAAiB1b,EAAE+S,WAC/BkiD,KAAUv5C,EAAE,cAAe1b,EAAE+S,WAC7BmiD,KAAUx5C,EAAE,iBAAkB1b,EAAE+S,WAChCoiD,KAAUz5C,EAAE,eAAgB1b,EAAE+S,WAC9BqiD,KAAU15C,EAAE,qBAAsB1b,EAAE+S,WACpCsiD,KAAU35C,EAAE,mBAAoB1b,EAAE+S,WAClCuiD,KAAU55C,EAAE,iBAAkB1b,EAAE+S,WAChCwiD,KAAU75C,EAAE,eAAgB1b,EAAE+S,WAC9ByiD,KAAU95C,EAAE,gBAAiB1b,EAAE+S,WAC/B0iD,KAAU/5C,EAAE,cAAe1b,EAAE+S,WAC7B2iD,KAAUh6C,EAAE,kBAAmB1b,EAAE+S,WACjC4iD,KAAUj6C,EAAE,gBAAiB1b,EAAE+S,WAC/B6iD,KAAUl6C,EAAE,wBAAyB1b,EAAE+S,WACvC8iD,KAAUn6C,EAAE,sBAAuB1b,EAAE+S,WACrC+iD,KAAUp6C,EAAE,uBAAwB1b,EAAE+S,WACtC2nE,KAAUh/D,EAAE,qBAAsB1b,EAAE+S,WACpCgjD,KAAUr6C,EAAE,iBAAkB1b,EAAE+S,WAChC4nE,KAAUj/D,EAAE,eAAgB1b,EAAE+S,WAC9BijD,KAAUt6C,EAAE,mBAAoB1b,EAAE+S,WAClCkjD,KAAUv6C,EAAE,iBAAkB1b,EAAE+S,WAChCmjD,KAAUx6C,EAAE,gBAAiB1b,EAAE+S,WAC/BojD,KAAUz6C,EAAE,cAAe1b,EAAE+S,WAC7BqjD,KAAU16C,EAAE,iBAAkB1b,EAAE+S,WAChCsjD,KAAU36C,EAAE,eAAgB1b,EAAE+S,WAC9BujD,KAAU56C,EAAE,SAAU1b,EAAE+S,WACxBwjD,KAAU76C,EAAE,kBAAmB1b,EAAE+S,WACjCyjD,KAAU96C,EAAE,UAAW1b,EAAE+S,WACzB0jD,KAAU/6C,EAAE,UAAW1b,EAAE+S,WACzB2jD,KAAUh7C,EAAE,SAAU1b,EAAE+S,WACxB6nE,KAAUl/D,EAAE,gBAAiB1b,EAAE+S,WAC/B8nE,KAAUn/D,EAAE,SAAU1b,EAAE+S,WACxB+nE,KAAUp/D,EAAE,SAAU1b,EAAE+S,WACxBgoE,KAAUr/D,EAAE,cAAe1b,EAAE+S,WAC7BioE,KAAUt/D,EAAE,iBAAkB1b,EAAE+S,WAChCkoE,KAAUv/D,EAAE,YAAa1b,EAAE+S,WAC3BmoE,KAAUx/D,EAAE,eAAgB1b,EAAE+S,WAC9BooE,KAAUz/D,EAAE,eAAgB1b,EAAE+S,WAC9BqoE,KAAU1/D,EAAE,kBAAmB1b,EAAE+S,WACjCsoE,KAAU3/D,EAAE,cAAe1b,EAAE+S,WAC7B4jD,KAAUj7C,EAAE,gBAAiB1b,EAAE+S,WAC/B6jD,KAAUl7C,EAAE,gBAAiB1b,EAAE+S,WAC/B8jD,KAAUn7C,EAAE,gBAAiB1b,EAAE+S,WAC/B+jD,KAAUp7C,EAAE,eAAgB1b,EAAE+S,WAC9BgkD,KAAUr7C,EAAE,YAAa1b,EAAE+S,WAC3BikD,KAAUt7C,EAAE,gBAAiB1b,EAAE+S,WAC/BuoE,KAAU5/D,EAAE,aAAc1b,EAAE+S,WAC5BwoE,KAAU7/D,EAAE,cAAe1b,EAAE+S,WAC7BiL,KAAUtC,EAAE,iBAAkB1b,EAAE+S,WAChCkkD,KAAUv7C,EAAE,eAAgB1b,EAAE+S,WAC9BmkD,KAAUx7C,EAAE,sBAAuB1b,EAAE+S,WACrCokD,KAAUz7C,EAAE,qBAAsB1b,EAAE+S,WACpCqkD,KAAU17C,EAAE,mBAAoB1b,EAAE+S,WAClCskD,KAAU37C,EAAE,oBAAqB1b,EAAE+S,WACnCyoE,KAAU9/D,EAAE,aAAc1b,EAAE+S,WAC5B0oE,KAAU//D,EAAE,aAAc1b,EAAE+S,WAC5B2oE,KAAUhgE,EAAE,WAAY1b,EAAE+S,WAC1B4oE,KAAUjgE,EAAE,yBAA0B1b,EAAE+S,WACxCukD,KAAU57C,EAAE,uBAAwB1b,EAAE+S,WACtCwkD,KAAU77C,EAAE,sBAAuB1b,EAAE+S,WACrCykD,KAAU97C,EAAE,oBAAqB1b,EAAE+S,WACnC0kD,KAAU/7C,EAAE,qBAAsB1b,EAAE+S,WACpC2kD,KAAUh8C,EAAE,mBAAoB1b,EAAE+S,WAClC4kD,KAAUj8C,EAAE,sBAAuB1b,EAAE+S,WACrC6kD,KAAUl8C,EAAE,oBAAqB1b,EAAE+S,WACnC8kD,KAAUn8C,EAAE,qBAAsB1b,EAAE+S,WACpC+kD,KAAUp8C,EAAE,mBAAoB1b,EAAE+S,WAClCglD,KAAUr8C,EAAE,uBAAwB1b,EAAE+S,WACtCilD,KAAUt8C,EAAE,qBAAsB1b,EAAE+S,WACpCklD,KAAUv8C,EAAE,sBAAuB1b,EAAE+S,WACrCmlD,KAAUx8C,EAAE,oBAAqB1b,EAAE+S,WACnColD,KAAUz8C,EAAE,yBAA0B1b,EAAE+S,WACxCqlD,KAAU18C,EAAE,uBAAwB1b,EAAE+S,WACtCslD,KAAU38C,EAAE,wBAAyB1b,EAAE+S,WACvCulD,KAAU58C,EAAE,sBAAuB1b,EAAE+S,WACrCwlD,KAAU78C,EAAE,cAAe1b,EAAE+S,WAC7BylD,KAAU98C,EAAE,YAAa1b,EAAE+S,WAC3B0lD,KAAU/8C,EAAE,eAAgB1b,EAAE+S,WAC9B2lD,KAAUh9C,EAAE,aAAc1b,EAAE+S,WAC5B4lD,KAAUj9C,EAAE,uBAAwB1b,EAAE+S,WACtC6lD,KAAUl9C,EAAE,qBAAsB1b,EAAE+S,WACpC8lD,KAAUn9C,EAAE,sBAAuB1b,EAAE+S,WACrC+lD,KAAUp9C,EAAE,oBAAqB1b,EAAE+S,WACnCgmD,KAAUr9C,EAAE,gBAAiB1b,EAAE+S,WAC/BimD,KAAUt9C,EAAE,cAAe1b,EAAE+S,WAC7B6oE,KAAUlgE,EAAE,eAAgB1b,EAAE+S,WAC9BkmD,KAAUv9C,EAAE,aAAc1b,EAAE+S,WAC5BmmD,KAAUx9C,EAAE,wBAAyB1b,EAAE+S,WACvComD,KAAUz9C,EAAE,sBAAuB1b,EAAE+S,WACrCqmD,KAAU19C,EAAE,gCAAiC1b,EAAE+S,WAC/CsmD,KAAU39C,EAAE,8BAA+B1b,EAAE+S,WAC7CumD,KAAU59C,EAAE,iBAAkB1b,EAAE+S,WAChCwmD,KAAU79C,EAAE,eAAgB1b,EAAE+S,WAC9BymD,KAAU99C,EAAE,kBAAmB1b,EAAE+S,WACjC0mD,KAAU/9C,EAAE,gBAAiB1b,EAAE+S,WAC/B2mD,KAAUh+C,EAAE,kBAAmB1b,EAAE+S,WACjC4mD,KAAUj+C,EAAE,gBAAiB1b,EAAE+S,WAC/B6mD,KAAUl+C,EAAE,qBAAsB1b,EAAE+S,WACpC8mD,KAAUn+C,EAAE,mBAAoB1b,EAAE+S,WAClC+mD,KAAUp+C,EAAE,UAAW1b,EAAE+S,WACzBgnD,KAAUr+C,EAAE,qBAAsB1b,EAAE+S,WACpCinD,KAAUt+C,EAAE,uBAAwB1b,EAAE+S,WACtCknD,KAAUv+C,EAAE,qBAAsB1b,EAAE+S,WACpCmnD,KAAUx+C,EAAE,kBAAmB1b,EAAE+S,WACjConD,KAAUz+C,EAAE,aAAc1b,EAAE+S,WAC5BqnD,KAAU1+C,EAAE,kBAAmB1b,EAAE+S,WACjCsnD,KAAU3+C,EAAE,eAAgB1b,EAAE+S,WAC9B8oE,KAAUngE,EAAE,uBAAwB1b,EAAE+S,WACtCunD,KAAU5+C,EAAE,qBAAsB1b,EAAE+S,WACpCwnD,KAAU7+C,EAAE,sBAAuB1b,EAAE+S,WACrCynD,KAAU9+C,EAAE,oBAAqB1b,EAAE+S,WACnC+oE,KAAUpgE,EAAE,uBAAwB1b,EAAE+S,WACtCgpE,KAAUrgE,EAAE,qBAAsB1b,EAAE+S,WACpC0nD,KAAU/+C,EAAE,eAAgB1b,EAAE+S,WAC9BipE,KAAUtgE,EAAE,cAAe1b,EAAE+S,WAC7BkpE,KAAUvgE,EAAE,YAAa1b,EAAE+S,WAC3BmpE,KAAUxgE,EAAE,iBAAkB1b,EAAE+S,WAChC2nD,KAAUh/C,EAAE,eAAgB1b,EAAE+S,WAC9BopE,KAAUzgE,EAAE,aAAc1b,EAAE+S,WAC5B4nD,KAAUj/C,EAAE,WAAY1b,EAAE+S,WAC1BqpE,KAAU1gE,EAAE,cAAe1b,EAAE+S,WAC7B6nD,KAAUl/C,EAAE,YAAa1b,EAAE+S,WAC3B8nD,KAAUn/C,EAAE,WAAY1b,EAAEyuE,gBAC1B3T,KAAUp/C,EAAE,eAAgB1b,EAAE+S,WAC9BspE,KAAU3gE,EAAE,aAAc1b,EAAE+S,WAC5BupE,KAAU5gE,EAAE,gBAAiB1b,EAAE+S,WAC/BwpE,KAAU7gE,EAAE,cAAe1b,EAAE+S,WAC7BypE,KAAU9gE,EAAE,UAAW1b,EAAE+S,WACzB0pE,KAAU/gE,EAAE,kBAAmB1b,EAAE+S,WACjC2pE,KAAUhhE,EAAE,gBAAiB1b,EAAE+S,WAC/B4pE,KAAUjhE,EAAE,cAAe1b,EAAE+S,WAC7B6pE,KAAUlhE,EAAE,YAAa1b,EAAE+S,WAC3B8pE,KAAUnhE,EAAE,SAAU1b,EAAE+S,WACxB+pE,KAAUphE,EAAE,eAAgB1b,EAAE+S,WAC9BgqE,KAAUrhE,EAAE,aAAc1b,EAAE+S,WAC5BiqE,KAAUthE,EAAE,SAAU1b,EAAE+S,WACxBkqE,KAAUvhE,EAAE,sBAAuB1b,EAAE+S,WACrCgoD,KAAUr/C,EAAE,oBAAqB1b,EAAE+S,WACnCioD,KAAUt/C,EAAE,qBAAsB1b,EAAE+S,WACpCkoD,KAAUv/C,EAAE,mBAAoB1b,EAAE+S,WAClCmqE,KAAUxhE,EAAE,uBAAwB1b,EAAE+S,WACtCoqE,KAAUzhE,EAAE,sBAAuB1b,EAAE+S,WACrCqqE,KAAU1hE,EAAE,kBAAmB1b,EAAE+S,WACjCsqE,KAAU3hE,EAAE,gBAAiB1b,EAAE+S,WAC/BuqE,KAAU5hE,EAAE,kBAAmB1b,EAAE+S,WACjCmoD,KAAUx/C,EAAE,gBAAiB1b,EAAE+S,WAC/BooD,KAAUz/C,EAAE,kBAAmB1b,EAAE+S,WACjCqoD,KAAU1/C,EAAE,gBAAiB1b,EAAE+S,WAC/BsoD,KAAU3/C,EAAE,mBAAoB1b,EAAE+S,WAClCuoD,KAAU5/C,EAAE,iBAAkB1b,EAAE+S,WAChCwoD,KAAU7/C,EAAE,iBAAkB1b,EAAE+S,WAChCyoD,KAAU9/C,EAAE,YAAa1b,EAAE+S,WAC3BwqE,KAAU7hE,EAAE,YAAa1b,EAAE+S,WAC3ByqE,KAAU9hE,EAAE,YAAa1b,EAAE+S,WAC3B0qE,KAAU/hE,EAAE,YAAa1b,EAAE+S,WAC3B2qE,KAAUhiE,EAAE,aAAc1b,EAAE+S,WAC5B4qE,KAAUjiE,EAAE,qBAAsB1b,EAAE+S,WACpC6qE,KAAUliE,EAAE,mBAAoB1b,EAAE+S,WAClC8qE,KAAUniE,EAAE,oBAAqB1b,EAAE+S,WACnC+qE,KAAUpiE,EAAE,kBAAmB1b,EAAE+S,WACjCgrE,KAAUriE,EAAE,mBAAoB1b,EAAE+S,WAClCirE,KAAUtiE,EAAE,iBAAkB1b,EAAE+S,WAChCkrE,KAAUviE,EAAE,oBAAqB1b,EAAE+S,WACnCmrE,KAAUxiE,EAAE,qBAAsB1b,EAAE+S,WACpCorE,KAAUziE,EAAE,qBAAsB1b,EAAE+S,WACpCqrE,KAAU1iE,EAAE,kBAAmB1b,EAAE+S,WACjCsrE,KAAU3iE,EAAE,mBAAoB1b,EAAE+S,WAClCurE,KAAU5iE,EAAE,iBAAkB1b,EAAE+S,WAChCwrE,KAAU7iE,EAAE,yBAA0B1b,EAAE+S,WACxCyrE,KAAU9iE,EAAE,uBAAwB1b,EAAE+S,WACtC0rE,KAAU/iE,EAAE,sBAAuB1b,EAAE+S,WACrC6oD,KAAUlgD,EAAE,iBAAkB1b,EAAE+S,WAChC8oD,KAAUngD,EAAE,aAAc1b,EAAE+S,WAC5B2rE,KAAUhjE,EAAE,aAAc1b,EAAE+S,WAC5B4rE,KAAUjjE,EAAE,mBAAoB1b,EAAE+S,WAClC6rE,KAAUljE,EAAE,qBAAsB1b,EAAE+S,WACpC8rE,KAAUnjE,EAAE,YAAa1b,EAAE+S,WAC3B+rE,KAAUpjE,EAAE,sBAAuB1b,EAAE+S,WACrCgsE,KAAUrjE,EAAE,oBAAqB1b,EAAE+S,WACnCisE,KAAUtjE,EAAE,qBAAsB1b,EAAE+S,WACpCksE,KAAUvjE,EAAE,mBAAoB1b,EAAE+S,WAClCmsE,KAAUxjE,EAAE,oBAAqB1b,EAAE+S,WACnCosE,KAAUzjE,EAAE,kBAAmB1b,EAAE+S,WACjCqsE,KAAU1jE,EAAE,qBAAsB1b,EAAE+S,WACpCssE,KAAU3jE,EAAE,mBAAoB1b,EAAE+S,WAClCusE,KAAU5jE,EAAE,WAAY1b,EAAE+S,WAC1BwsE,KAAU7jE,EAAE,WAAY1b,EAAE+S,WAC1BysE,KAAU9jE,EAAE,wBAAyB1b,EAAE+S,WACvC0sE,KAAU/jE,EAAE,sBAAuB1b,EAAE+S,WACrC2sE,KAAUhkE,EAAE,oBAAqB1b,EAAE+S,WACnC4sE,KAAUjkE,EAAE,kBAAmB1b,EAAE+S,WACjC6sE,KAAUlkE,EAAE,cAAe1b,EAAE+S,WAC7B8sE,KAAUnkE,EAAE,gBAAiB1b,EAAE+S,WAC/B+sE,KAAUpkE,EAAE,cAAe1b,EAAE+S,WAC7BgtE,KAAUrkE,EAAE,kBAAmB1b,EAAE+S,WACjCitE,KAAUtkE,EAAE,uBAAwB1b,EAAE+S,WACtCktE,KAAUvkE,EAAE,qBAAsB1b,EAAE+S,WACpCmtE,KAAUxkE,EAAE,gBAAiB1b,EAAE+S,WAC/BotE,KAAUzkE,EAAE,gBAAiB1b,EAAE+S,WAC/BqtE,KAAU1kE,EAAE,eAAgB1b,EAAE+S,WAC9BstE,KAAU3kE,EAAE,gBAAiB1b,EAAE+S,WAC/ButE,KAAU5kE,EAAE,iBAAkB1b,EAAE+S,WAChCwtE,KAAU7kE,EAAE,iBAAkB1b,EAAE+S,WAChCytE,KAAU9kE,EAAE,iBAAkB1b,EAAE+S,WAChC0tE,KAAU/kE,EAAE,gBAAiB1b,EAAE+S,WAC/B2tE,KAAUhlE,EAAE,gBAAiB1b,EAAE+S,WAC/B4tE,KAAUjlE,EAAE,0BAA2B1b,EAAE+S,WACzC6tE,KAAUllE,EAAE,uBAAwB1b,EAAE+S,WACtC8tE,KAAUnlE,EAAE,qBAAsB1b,EAAE+S,WACpC+tE,KAAUplE,EAAE,wBAAyB1b,EAAE+S,WACvCguE,KAAUrlE,EAAE,sBAAuB1b,EAAE+S,WACrCiuE,KAAUtlE,EAAE,oBAAqB1b,EAAE+S,WACnCkuE,KAAUvlE,EAAE,kBAAmB1b,EAAE+S,WACjCmuE,KAAUxlE,EAAE,kBAAmB1b,EAAE+S,WACjCouE,KAAUzlE,EAAE,wBAAyB1b,EAAE+S,WACvCquE,KAAU1lE,EAAE,sBAAuB1b,EAAE+S,WACrCsuE,KAAU3lE,EAAE,oBAAqB1b,EAAE+S,WACnCuuE,KAAU5lE,EAAE,kBAAmB1b,EAAE+S,WACjCwuE,KAAU7lE,EAAE,mBAAoB1b,EAAE+S,WAClCyuE,KAAU9lE,EAAE,iBAAkB1b,EAAE+S,WAChC0uE,KAAU/lE,EAAE,gBAAiB1b,EAAE+S,WAC/B2uE,KAAUhmE,EAAE,cAAe1b,EAAE+S,WAC7B4uE,KAAUjmE,EAAE,sBAAuB1b,EAAE+S,WACrC6uE,KAAUlmE,EAAE,oBAAqB1b,EAAE+S,WACnC8uE,KAAUnmE,EAAE,eAAgB1b,EAAE+S,WAC9B+uE,KAAUpmE,EAAE,iBAAkB1b,EAAE+S,WAChCgvE,KAAUrmE,EAAE,eAAgB1b,EAAE+S,WAC9BivE,KAAUtmE,EAAE,iBAAkB1b,EAAE+S,WAChCkvE,KAAUvmE,EAAE,gBAAiB1b,EAAE+S,WAC/BmvE,KAAUxmE,EAAE,cAAe1b,EAAE+S,WAC7BovE,KAAUzmE,EAAE,kBAAmB1b,EAAE+S,WACjCqvE,KAAU1mE,EAAE,gBAAiB1b,EAAE+S,WAC/BsvE,KAAU3mE,EAAE,eAAgB1b,EAAE+S,WAC9BuvE,KAAU5mE,EAAE,aAAc1b,EAAE+S,WAC5BwvE,KAAU7mE,EAAE,kBAAmB1b,EAAE+S,WACjCyvE,KAAU9mE,EAAE,gBAAiB1b,EAAE+S,WAC/B0vE,KAAU/mE,EAAE,iBAAkB1b,EAAE+S,WAChC+oD,KAAUpgD,EAAE,eAAgB1b,EAAE+S,WAC9B2vE,KAAUhnE,EAAE,aAAc1b,EAAE+S,WAC5B4vE,KAAUjnE,EAAE,uBAAwB1b,EAAE+S,WACtC6vE,KAAUlnE,EAAE,qBAAsB1b,EAAE+S,WACpC8vE,KAAUnnE,EAAE,mBAAoB1b,EAAE+S,WAClC+vE,KAAUpnE,EAAE,iBAAkB1b,EAAE+S,WAChCgwE,KAAUrnE,EAAE,yBAA0B1b,EAAE+S,WACxCiwE,KAAUtnE,EAAE,uBAAwB1b,EAAE+S,WACtCkwE,KAAUvnE,EAAE,mBAAoB1b,EAAE2/C,wBAClCujC,KAAUxnE,EAAE,sBAAuB1b,EAAE+S,WACrCowE,KAAUznE,EAAE,oBAAqB1b,EAAE+S,WACnCqwE,KAAU1nE,EAAE,kBAAmB1b,EAAEw/C,uBACjC6jC,KAAU3nE,EAAE,gBAAiB1b,EAAE+S,WAC/BuwE,KAAU5nE,EAAE,iBAAkB1b,EAAE4/C,sBAChC2jC,KAAU7nE,EAAE,qBAAsB1b,EAAE+S,WACpCywE,KAAU9nE,EAAE,eAAgB1b,EAAE+S,WAC9B0wE,KAAU/nE,EAAE,mBAAoB1b,EAAE+S,WAClC2wE,KAAUhoE,EAAE,kBAAmB1b,EAAE+S,WACjC4wE,KAAUjoE,EAAE,gBAAiB1b,EAAE+S,WAC/B6wE,KAAUloE,EAAE,0BAA2B1b,EAAE+S,WACzC8wE,KAAUnoE,EAAE,aAAc1b,EAAE+S,WAC5B+wE,KAAUpoE,EAAE,wBAAyB1b,EAAE+S,WACvCgxE,KAAUroE,EAAE,gCAAiC1b,EAAE+S,WAC/CixE,KAAUtoE,EAAE,wBAAyB1b,EAAE+S,WACvCkxE,KAAUvoE,EAAE,kBAAmB1b,EAAE+S,WACjCmxE,KAAUxoE,EAAE,sBAAuB1b,EAAE+S,WACrCoxE,KAAUzoE,EAAE,YAAa1b,EAAE+S,WAC3BqxE,KAAU1oE,EAAE,iBAAkB1b,EAAE+S,WAChCkpD,KAAUvgD,EAAE,sBAAuB1b,EAAE+S,WACrCsxE,KAAU3oE,EAAE,oBAAqB1b,EAAE+S,WACnCuxE,KAAU5oE,EAAE,qBAAsB1b,EAAE+S,WACpCwxE,KAAU7oE,EAAE,mBAAoB1b,EAAE+S,WAClCyxE,KAAU9oE,EAAE,yBAA0B1b,EAAE+S,WACxC0xE,KAAU/oE,EAAE,uBAAwB1b,EAAE+S,WACtC2xE,KAAUhpE,EAAE,kBAAmB1b,EAAE+S,WACjC4xE,KAAUjpE,EAAE,oBAAqB1b,EAAE+S,WACnC6xE,KAAUlpE,EAAE,cAAe1b,EAAE+S,WAC7B8xE,KAAUnpE,EAAE,kBAAmB1b,EAAE+S,WACjC+xE,KAAUppE,EAAE,mBAAoB1b,EAAE+S,WAClCgyE,KAAUrpE,EAAE,kBAAmB1b,EAAE+S,WACjCiyE,KAAUtpE,EAAE,aAAc1b,EAAE+S,WAC5BkyE,KAAUvpE,EAAE,gBAAiB1b,EAAE+S,WAC/BmpD,KAAUxgD,EAAE,cAAe1b,EAAE+S,WAC7BmyE,KAAUxpE,EAAE,iBAAkB1b,EAAE+S,WAChCoyE,KAAUzpE,EAAE,kBAAmB1b,EAAE+S,WACjCqyE,KAAU1pE,EAAE,oBAAqB1b,EAAE+S,WACnCsyE,KAAU3pE,EAAE,kBAAmB1b,EAAE+S,WACjCopD,KAAUzgD,EAAE,iBAAkB1b,EAAE+S,WAChCuyE,KAAU5pE,EAAE,eAAgB1b,EAAE+S,WAC9BwyE,KAAU7pE,EAAE,gBAAiB1b,EAAE+S,WAC/ByyE,KAAU9pE,EAAE,oBAAqB1b,EAAE+S,WACnC0yE,KAAU/pE,EAAE,uBAAwB1b,EAAE+S,WACtC2yE,KAAUhqE,EAAE,wBAAyB1b,EAAE+S,WACvC4yE,KAAUjqE,EAAE,qBAAsB1b,EAAE+S,WACpC6yE,KAAUlqE,EAAE,wBAAyB1b,EAAE+S,WACvC8yE,MAAUnqE,EAAE,eAAgB1b,EAAE+S,WAC9B+yE,MAAUpqE,EAAE,gBAAiB1b,EAAE+S,WAC/BgzE,MAAUrqE,EAAE,qBAAsB1b,EAAE+S,WACpCizE,MAAUtqE,EAAE,mBAAoB1b,EAAE+S,WAClCkzE,MAAUvqE,EAAE,2BAA4B1b,EAAE+S,WAC1CmzE,MAAUxqE,EAAE,yBAA0B1b,EAAE+S,WACxCozE,MAAUzqE,EAAE,0BAA2B1b,EAAE+S,WACzCqzE,MAAU1qE,EAAE,yBAA0B1b,EAAE+S,WACxCszE,MAAU3qE,EAAE,uBAAwB1b,EAAE+S,WACtCuzE,MAAU5qE,EAAE,wBAAyB1b,EAAE+S,WACvCwzE,MAAU7qE,EAAE,sBAAuB1b,EAAE+S,WACrCyzE,MAAU9qE,EAAE,uBAAwB1b,EAAE+S,WACtC0zE,MAAU/qE,EAAE,aAAc1b,EAAE+S,WAC5B2zE,MAAUhrE,EAAE,YAAa1b,EAAE+S,WAC3B4zE,MAAUjrE,EAAE,uBAAwB1b,EAAE+S,WACtC6zE,MAAUlrE,EAAE,qBAAsB1b,EAAE+S,WACpC8zE,MAAUnrE,EAAE,YAAa1b,EAAE+S,WAC3B+zE,MAAUprE,EAAE,yBAA0B1b,EAAE+S,WACxCg0E,MAAUrrE,EAAE,uBAAwB1b,EAAE+S,WACtCi0E,MAAUtrE,EAAE,eAAgB1b,EAAE+S,WAC9Bk0E,MAAUvrE,EAAE,YAAa1b,EAAE+S,WAC3Bm0E,MAAUxrE,EAAE,mBAAoB1b,EAAE+S,WAClCo0E,MAAUzrE,EAAE,kCAAmC1b,EAAE+S,WACjDq0E,MAAU1rE,EAAE,gCAAiC1b,EAAE+S,WAC/Cs0E,MAAU3rE,EAAE,mBAAoB1b,EAAE+S,WAClCu0E,MAAU5rE,EAAE,iBAAkB1b,EAAE+S,WAChCw0E,MAAU7rE,EAAE,YAAa1b,EAAE+S,WAC3By0E,MAAU9rE,EAAE,oBAAqB1b,EAAE+S,WACnC00E,MAAU/rE,EAAE,oBAAqB1b,EAAE+S,WACnC20E,MAAUhsE,EAAE,YAAa1b,EAAE+S,WAC3B40E,MAAUjsE,EAAE,kBAAmB1b,EAAE+S,WACjC60E,MAAUlsE,EAAE,aAAc1b,EAAE+S,WAC5B80E,MAAUnsE,EAAE,qBAAsB1b,EAAE+S,WACpC+0E,MAAUpsE,EAAE,mBAAoB1b,EAAE+S,WAClCg1E,MAAUrsE,EAAE,0BAA2B1b,EAAE+S,WACzCi1E,MAAUtsE,EAAE,wBAAyB1b,EAAE+S,WACvCk1E,MAAUvsE,EAAE,YAAa1b,EAAE+S,WAC3Bm1E,MAAUxsE,EAAE,mBAAoB1b,EAAE+S,WAClCo1E,MAAUzsE,EAAE,iBAAkB1b,EAAE+S,WAChCq1E,MAAU1sE,EAAE,gBAAiB1b,EAAE+S,WAC/Bs1E,MAAU3sE,EAAE,cAAe1b,EAAE+S,WAC7Bu1E,MAAU5sE,EAAE,oBAAqB1b,EAAE+S,WACnCw1E,MAAU7sE,EAAE,kBAAmB1b,EAAE+S,WACjCy1E,MAAU9sE,EAAE,yBAA0B1b,EAAE+S,WACxC01E,MAAU/sE,EAAE,uBAAwB1b,EAAE+S,WACtC21E,MAAUhtE,EAAE,wBAAyB1b,EAAE+S,WACvC41E,MAAUjtE,EAAE,sBAAuB1b,EAAE+S,WACrC61E,MAAUltE,EAAE,sBAAuB1b,EAAE+S,WACrC81E,MAAUntE,EAAE,oBAAqB1b,EAAE+S,WACnC+1E,MAAUptE,EAAE,yBAA0B1b,EAAE+S,WACxCg2E,MAAUrtE,EAAE,uBAAwB1b,EAAE+S,WACtCi2E,MAAUttE,EAAE,oBAAqB1b,EAAE+S,WACnCk2E,MAAUvtE,EAAE,kBAAmB1b,EAAE+S,WACjCm2E,MAAUxtE,EAAE,mBAAoB1b,EAAE+S,WAClCo2E,MAAUztE,EAAE,iBAAkB1b,EAAE+S,WAChCq2E,MAAU1tE,EAAE,iBAAkB1b,EAAE+S,WAChCs2E,MAAU3tE,EAAE,eAAgB1b,EAAE+S,WAC9Bu2E,MAAU5tE,EAAE,4BAA6B1b,EAAE+S,WAC3Cw2E,MAAU7tE,EAAE,8BAA+B1b,EAAE+S,WAC7Cy2E,MAAU9tE,EAAE,4BAA6B1b,EAAE+S,WAC3C02E,MAAU/tE,EAAE,gCAAiC1b,EAAE+S,WAC/C22E,MAAUhuE,EAAE,8BAA+B1b,EAAE+S,WAC7C42E,MAAUjuE,EAAE,+BAAgC1b,EAAE+S,WAC9C62E,MAAUluE,EAAE,6BAA8B1b,EAAE+S,WAC5C82E,MAAUnuE,EAAE,8BAA+B1b,EAAE+S,WAC7C+2E,MAAUpuE,EAAE,4BAA6B1b,EAAE+S,WAC3Cg3E,MAAUruE,EAAE,6BAA8B1b,EAAE+S,WAC5Ci3E,MAAUtuE,EAAE,2BAA4B1b,EAAE+S,WAC1Ck3E,MAAUvuE,EAAE,yBAA0B1b,EAAE+S,WACxCm3E,MAAUxuE,EAAE,gCAAiC1b,EAAE+S,WAC/Co3E,MAAUzuE,EAAE,0BAA2B1b,EAAE+S,WACzCq3E,MAAU1uE,EAAE,8BAA+B1b,EAAE+S,WAC7Cs3E,MAAU3uE,EAAE,4BAA6B1b,EAAE+S,WAC3Cu3E,MAAU5uE,EAAE,0BAA2B1b,EAAE+S,WACzCw3E,MAAU7uE,EAAE,2BAA4B1b,EAAE+S,WAC1Cy3E,MAAU9uE,EAAE,uBAAwB1b,EAAE+S,WACtC03E,MAAU/uE,EAAE,0BAA2B1b,EAAE+S,WACzC23E,MAAUhvE,EAAE,oBAAqB1b,EAAE+S,WACnC43E,MAAUjvE,EAAE,YAAa1b,EAAE+S,WAC3B63E,MAAUlvE,EAAE,YAAa1b,EAAE+S,WAC3B83E,MAAUnvE,EAAE,oCAAqC1b,EAAE+S,WACnD+3E,MAAUpvE,EAAE,kCAAmC1b,EAAE+S,WACjDg4E,MAAUrvE,EAAE,kBAAmB1b,EAAE+S,WACjCi4E,MAAUtvE,EAAE,gBAAiB1b,EAAE+S,WAC/Bk4E,MAAUvvE,EAAE,cAAe1b,EAAE+S,WAC7Bm4E,MAAUxvE,EAAE,iBAAkB1b,EAAE+S,WAChCo4E,MAAUzvE,EAAE,eAAgB1b,EAAE+S,WAC9Bq4E,MAAU1vE,EAAE,kBAAmB1b,EAAE+S,WACjCs4E,MAAU3vE,EAAE,gBAAiB1b,EAAE+S,WAC/Bu4E,MAAU5vE,EAAE,mBAAoB1b,EAAE+S,WAClCw4E,MAAU7vE,EAAE,iBAAkB1b,EAAE+S,WAChCy4E,MAAU9vE,EAAE,oBAAqB1b,EAAE+S,WACnC04E,MAAU/vE,EAAE,kBAAmB1b,EAAE+S,WACjC24E,MAAUhwE,EAAE,kBAAmB1b,EAAE+S,WACjC44E,MAAUjwE,EAAE,sBAAuB1b,EAAE+S,WACrC64E,MAAUlwE,EAAE,oBAAqB1b,EAAE+S,WACnC84E,MAAUnwE,EAAE,wBAAyB1b,EAAE+S,WACvC+4E,MAAUpwE,EAAE,0BAA2B1b,EAAE+S,WACzCg5E,MAAUrwE,EAAE,wBAAyB1b,EAAE+S,WACvCi5E,MAAUtwE,EAAE,mCAAoC1b,EAAE+S,WAClDk5E,MAAUvwE,EAAE,iCAAkC1b,EAAE+S,WAChDm5E,MAAUxwE,EAAE,iCAAkC1b,EAAE+S,WAChDo5E,MAAUzwE,EAAE,+BAAgC1b,EAAE+S,WAC9Cq5E,MAAU1wE,EAAE,wBAAyB1b,EAAE+S,WACvCs5E,MAAU3wE,EAAE,sBAAuB1b,EAAE+S,WACrCu5E,MAAU5wE,EAAE,yBAA0B1b,EAAE+S,WACxCw5E,MAAU7wE,EAAE,uBAAwB1b,EAAE+S,WACtCy5E,MAAU9wE,EAAE,gBAAiB1b,EAAE+S,WAC/B05E,MAAU/wE,EAAE,uBAAwB1b,EAAE+S,WACtC25E,MAAUhxE,EAAE,qBAAsB1b,EAAE+S,WACpC45E,MAAUjxE,EAAE,8BAA+B1b,EAAE+S,WAC7C65E,MAAUlxE,EAAE,4BAA6B1b,EAAE+S,WAC3C85E,MAAUnxE,EAAE,eAAgB1b,EAAE+S,WAC9B+5E,MAAUpxE,EAAE,sBAAuB1b,EAAE+S,WACrCg6E,MAAUrxE,EAAE,oBAAqB1b,EAAE+S,WACnCi6E,MAAUtxE,EAAE,uBAAwB1b,EAAE+S,WACtCk6E,MAAUvxE,EAAE,qBAAsB1b,EAAE+S,WACpCm6E,MAAUxxE,EAAE,qBAAsB1b,EAAE+S,WACpCo6E,MAAUzxE,EAAE,mBAAoB1b,EAAE+S,WAClCq6E,MAAU1xE,EAAE,gBAAiB1b,EAAE+S,WAC/Bs6E,MAAU3xE,EAAE,kBAAmB1b,EAAE+S,WACjCu6E,MAAU5xE,EAAE,kBAAmB1b,EAAE+S,WACjCw6E,MAAU7xE,EAAE,uBAAwB1b,EAAE+S,WACtCy6E,MAAU9xE,EAAE,qBAAsB1b,EAAE+S,WACpC06E,MAAU/xE,EAAE,oBAAqB1b,EAAE+S,WACnC26E,MAAUhyE,EAAE,kBAAmB1b,EAAE+S,WACjC46E,MAAUjyE,EAAE,kBAAmB1b,EAAE+S,WACjC66E,MAAUlyE,EAAE,gBAAiB1b,EAAE+S,WAC/B86E,MAAUnyE,EAAE,sBAAuB1b,EAAE+S,WACrC+6E,MAAUpyE,EAAE,oBAAqB1b,EAAE+S,WACnCg7E,MAAUryE,EAAE,qBAAsB1b,EAAE+S,WACpCi7E,MAAUtyE,EAAE,mBAAoB1b,EAAE+S,WAClCk7E,MAAUvyE,EAAE,oBAAqB1b,EAAE+S,WACnCm7E,MAAUxyE,EAAE,kBAAmB1b,EAAE+S,WACjCo7E,MAAUzyE,EAAE,0BAA2B1b,EAAE+S,WACzCq7E,MAAU1yE,EAAE,wBAAyB1b,EAAE+S,WACvCs7E,MAAU3yE,EAAE,WAAY1b,EAAE+S,WAC1Bu7E,MAAU5yE,EAAE,iBAAkB1b,EAAE+S,WAChCw7E,MAAU7yE,EAAE,eAAgB1b,EAAE+S,WAC9By7E,MAAU9yE,EAAE,cAAe1b,EAAE+S,WAC7B07E,MAAU/yE,EAAE,0BAA2B1b,EAAE+S,WACzC27E,MAAUhzE,EAAE,oBAAqB1b,EAAE+S,WACnC47E,MAAUjzE,EAAE,kBAAmB1b,EAAE+S,WACjC67E,MAAUlzE,EAAE,8BAA+B1b,EAAE+S,WAC7C87E,MAAUnzE,EAAE,iCAAkC1b,EAAE+S,WAChD+7E,MAAUpzE,EAAE,+BAAgC1b,EAAE+S,WAC9Cg8E,MAAUrzE,EAAE,2BAA4B1b,EAAE+S,WAC1Ci8E,MAAUtzE,EAAE,yBAA0B1b,EAAE+S,WACxCk8E,MAAUvzE,EAAE,uBAAwB1b,EAAE+S,WACtCm8E,MAAUxzE,EAAE,mBAAoB1b,EAAE+S,WAClCo8E,MAAUzzE,EAAE,gCAAiC1b,EAAE+S,WAC/Cq8E,MAAU1zE,EAAE,mBAAoB1b,EAAE+S,WAClCs8E,MAAU3zE,EAAE,iBAAkB1b,EAAE+S,WAChCu8E,MAAU5zE,EAAE,gBAAiB1b,EAAE+S,WAC/Bw8E,MAAU7zE,EAAE,cAAe1b,EAAE+S,WAC7By8E,MAAU9zE,EAAE,kBAAmB1b,EAAE+S,WACjC08E,MAAU/zE,EAAE,WAAY1b,EAAE+S,WAC1B28E,MAAUh0E,EAAE,wBAAyB1b,EAAE+S,WACvC48E,MAAUj0E,EAAE,sBAAuB1b,EAAE+S,WACrC68E,MAAUl0E,EAAE,kBAAmB1b,EAAE+S,WACjC88E,MAAUn0E,EAAE,eAAgB1b,EAAE+S,WAC9B+8E,MAAUp0E,EAAE,+BAAgC1b,EAAE+S,WAC9Cg9E,MAAUr0E,EAAE,6BAA8B1b,EAAE+S,WAC5Ci9E,MAAUt0E,EAAE,yBAA0B1b,EAAE+S,WACxCk9E,MAAUv0E,EAAE,wBAAyB1b,EAAE+S,WACvCm9E,MAAUx0E,EAAE,2BAA4B1b,EAAE+S,WAC1Co9E,MAAUz0E,EAAE,yBAA0B1b,EAAE+S,WACxCq9E,MAAU10E,EAAE,gBAAiB1b,EAAE+S,WAC/Bs9E,MAAU30E,EAAE,qCAAsC1b,EAAE+S,WACpDu9E,MAAU50E,EAAE,mCAAoC1b,EAAE+S,WAClDw9E,MAAU70E,EAAE,+BAAgC1b,EAAE+S,WAC9Cy9E,MAAU90E,EAAE,2BAA4B1b,EAAE+S,WAC1C09E,MAAU/0E,EAAE,yBAA0B1b,EAAE+S,WACxC29E,MAAUh1E,EAAE,0BAA2B1b,EAAE+S,WACzC49E,MAAUj1E,EAAE,wBAAyB1b,EAAE+S,WACvC69E,MAAUl1E,EAAE,sBAAuB1b,EAAE+S,WACrC89E,MAAUn1E,EAAE,oBAAqB1b,EAAE+S,WACnC+9E,MAAUp1E,EAAE,qBAAsB1b,EAAE+S,WACpCg+E,MAAUr1E,EAAE,mBAAoB1b,EAAE+S,WAClCi+E,MAAUt1E,EAAE,kBAAmB1b,EAAE+S,WACjCk+E,MAAUv1E,EAAE,YAAa1b,EAAE+S,WAC3Bm+E,MAAUx1E,EAAE,wBAAyB1b,EAAE+S,WACvCo+E,MAAUz1E,EAAE,sBAAuB1b,EAAE+S,WACrCq+E,MAAU11E,EAAE,0BAA2B1b,EAAE+S,WACzCs+E,MAAU31E,EAAE,kCAAmC1b,EAAE+S,WACjDu+E,MAAU51E,EAAE,gCAAiC1b,EAAE+S,WAC/Cw+E,MAAU71E,EAAE,yBAA0B1b,EAAE+S,WACxCy+E,MAAU91E,EAAE,uBAAwB1b,EAAE+S,WACtC0+E,MAAU/1E,EAAE,gCAAiC1b,EAAE+S,WAC/C2+E,MAAUh2E,EAAE,8BAA+B1b,EAAE+S,WAC7C4+E,MAAUj2E,EAAE,WAAY1b,EAAE+S,WAC1B6+E,MAAUl2E,EAAE,iBAAkB1b,EAAE+S,WAChC8+E,MAAUn2E,EAAE,eAAgB1b,EAAE+S,WAC9B++E,MAAUp2E,EAAE,oCAAqC1b,EAAE+S,WACnDg/E,MAAUr2E,EAAE,0BAA2B1b,EAAE+S,WACzCi/E,MAAUt2E,EAAE,wBAAyB1b,EAAE+S,WACvCk/E,MAAUv2E,EAAE,oBAAqB1b,EAAE+S,WACnCm/E,MAAUx2E,EAAE,oBAAqB1b,EAAE+S,WACnCo/E,MAAUz2E,EAAE,kBAAmB1b,EAAE+S,WACjCq/E,MAAU12E,EAAE,oBAAqB1b,EAAE+S,WACnCs/E,MAAU32E,EAAE,kBAAmB1b,EAAE+S,WACjCu/E,MAAU52E,EAAE,uBAAwB1b,EAAE+S,WACtCw/E,MAAU72E,EAAE,qBAAsB1b,EAAE+S,WACpCy/E,MAAU92E,EAAE,cAAe1b,EAAE+S,WAC7B0/E,MAAU/2E,EAAE,eAAgB1b,EAAE+S,WAC9B2/E,MAAUh3E,EAAE,iBAAkB1b,EAAE+S,WAChC4/E,MAAUj3E,EAAE,qBAAsB1b,EAAE+S,WACpC6/E,MAAUl3E,EAAE,mBAAoB1b,EAAE+S,WAClC8/E,MAAUn3E,EAAE,eAAgB1b,EAAE+S,WAC9B+/E,MAAUp3E,EAAE,oBAAqB1b,EAAE+S,WACnCggF,MAAUr3E,EAAE,kBAAmB1b,EAAE+S,WACjCigF,MAAUt3E,EAAE,sBAAuB1b,EAAE+S,WACrCkgF,MAAUv3E,EAAE,oBAAqB1b,EAAE+S,WACnCmgF,MAAUx3E,EAAE,gBAAiB1b,EAAE+S,WAC/BogF,MAAUz3E,EAAE,6BAA8B1b,EAAE+S,WAC5CqgF,MAAU13E,EAAE,2BAA4B1b,EAAE+S,WAC1CsgF,MAAU33E,EAAE,uBAAwB1b,EAAE+S,WACtCugF,MAAU53E,EAAE,qBAAsB1b,EAAE+S,WACpCwgF,MAAU73E,EAAE,mBAAoB1b,EAAE+S,WAClCygF,MAAU93E,EAAE,2BAA4B1b,EAAE+S,WAC1C0gF,MAAU/3E,EAAE,yBAA0B1b,EAAE+S,WACxC2gF,MAAUh4E,EAAE,wBAAyB1b,EAAE+S,WACvC4gF,MAAUj4E,EAAE,yBAA0B1b,EAAE+S,WACxC6gF,MAAUl4E,EAAE,yBAA0B1b,EAAE+S,WACxC8gF,MAAUn4E,EAAE,YAAa1b,EAAE+S,WAC3Bxc,OAAUmlB,EAAE,GAAI1b,EAAE+S,WAGnB;GAAI0B,UAAW1L,UAAUyK,eAAgB,IAGzC,IAAIsiE,gBACHjhF,GAAU6mB,EAAE,WAAY1b,EAAEuuC,gBAC1Bz5C,GAAU4mB,EAAE,WAAY1b,EAAEsuC,gBAC1B1yB,GAAUF,EAAE,UAAW1b,EAAEqoD,eACzBtzD,GAAU2mB,EAAE,MAAO1b,EAAE0yB,WACrB19B,IAAU0mB,EAAE,MAAO1b,EAAEq8B,WACrBnnC,IAAUwmB,EAAE,YAAa1b,EAAEw7B,iBAC3BrmC,IAAUumB,EAAE,WAAY1b,EAAE27B,gBAC1BvmC,IAAUsmB,EAAE,gBAAiB1b,EAAE47B,qBAC/BvmC,IAAUqmB,EAAE,cAAe1b,EAAE67B,mBAC7BvmC,IAAUomB,EAAE,YAAa1b,EAAEy7B,iBAC3BlmC,IAAUmmB,EAAE,WAAY1b,EAAE07B,gBAC1BlmC,IAAUkmB,EAAE,UAAW1b,EAAEw9B,eACzB/nC,IAAUimB,EAAE,WAAY1b,EAAEk9B,gBAC1BxnC,IAAUgmB,EAAE,SAAU1b,EAAE48B,cACxBjnC,IAAU+lB,EAAE,SAAU1b,EAAEy8B,cACxB7kB,IAAU8D,EAAE,cAAe1b,EAAEu4B,mBAC7B6xB,IAAU1uC,EAAE,MAAO1b,EAAEg4B,WACrBqyB,IAAU3uC,EAAE,aAAc1b,EAAEm+B,kBAC5BriB,IAAUJ,EAAE,qBAAsB1b,EAAEq+B,0BACpCtiB,IAAUL,EAAE,uBAAwB1b,EAAEs+B,4BACtCtiB,IAAUN,EAAE,OAAQ1b,EAAEu5B,YACtB1hB,IAAU6D,EAAE,YAAa1b,EAAEu+B,iBAC3B3hB,IAAUlB,EAAE,WAAY1b,EAAEi8B,gBAC1B4pB,IAAUnqC,EAAE,aAAc1b,EAAEw3B,kBAC5B1hC,IAAU4lB,EAAE,aAAc1b,EAAE+8B,kBAC5BhnC,IAAU2lB,EAAE,cAAe1b,EAAE09B,mBAC7B1nC,IAAU0lB,EAAE,YAAa1b,EAAEg+B,iBAC3BnhB,IAAUnB,EAAE,eAAgB1b,EAAEs7B,oBAC9BvjB,IAAU2D,EAAE,cAAe1b,EAAEo9B,mBAC7BplB,IAAU0D,EAAE,YAAa1b,EAAEm9B,iBAC3BhnC,IAAUulB,EAAE,WAAY1b,EAAE41C,gBAC1Bv/C,IAAUqlB,EAAE,OAAQ1b,EAAEw1B,YACtB+0B,IAAU7uC,EAAE,YAAa1b,EAAEq9B,iBAC3B4oB,IAAUvqC,EAAE,WAAY1b,EAAEw+B,gBAC1BvhB,IAAUvB,EAAE,UAAW1b,EAAEw0B,eACzBtX,IAAUxB,EAAE,SAAU1b,EAAEo7B,cACxBgrB,IAAU1qC,EAAE,OAAQ1b,EAAEy+B,YACtBthB,IAAUzB,EAAE,WAAY1b,EAAE+7B,gBAC1B2S,IAAUhzB,EAAE,MAAO1b,EAAE0+B,WACrBosB,IAAUpvC,EAAE,OAAQ1b,EAAE2+B,YACtBvhB,IAAU1B,EAAE,UAAW1b,EAAE4+B,eACzBvhB,IAAU3B,EAAE,WAAY1b,EAAE6+B,gBAC1BmsB,IAAUtvC,EAAE,cAAe1b,EAAEk8B,mBAC7BwrB,IAAUhsC,EAAE,MAAO1b,EAAE8+B,WACrBthB,IAAU9B,EAAE,MAAO1b,EAAE++B,WACrB8oB,IAAUnsC,EAAE,cAAe1b,EAAEg/B,mBAC7B+oB,IAAUrsC,EAAE,cAAe1b,EAAE6yB,mBAC7Bo1B,IAAUvsC,EAAE,MAAO1b,EAAE25B,WACrBwxB,IAAUzvC,EAAE,WAAY1b,EAAEi/B,gBAC1BmsB,IAAU1vC,EAAE,iBAAkB1b,EAAE87B,sBAChCqqB,IAAUzqC,EAAE,WAAY1b,EAAEk/B,gBAC1BmnB,IAAU3qC,EAAE,OAAQ1b,EAAEm/B,YACtBqnB,IAAU9qC,EAAE,aAAc1b,EAAEi9B,kBAC5BirB,KAAUxsC,EAAE,UAAW1b,EAAEk7B,eACzByT,KAAUjzB,EAAE,OAAQ1b,EAAE82B,YACtB8X,KAAUlzB,EAAE,SAAU1b,EAAEo/B,cACxByP,KAAUnzB,EAAE,UAAW1b,EAAE08B,eACzBwvB,KAAUxwC,EAAE,UAAW1b,EAAE28B,eACzBwvB,KAAUzwC,EAAE,UAAW1b,EAAEk+B,eACzBkuB,KAAU1wC,EAAE,cAAe1b,EAAEgzB,mBAC7B8b,KAAUpzB,EAAE,eAAgB1b,EAAEo+B,oBAC9BquB,KAAU/wC,EAAE,UAAW1b,EAAEy6B,eACzB8hC,KAAU7gD,EAAE,UAAW1b,EAAE68B,eACzB+vB,KAAUlxC,EAAE,OAAQ1b,EAAEq/B,YACtBytB,KAAUpxC,EAAE,UAAW1b,EAAE46B,eACzBuyB,KAAUzxC,EAAE,OAAQ1b,EAAEs/B,YACtB8tB,KAAU1xC,EAAE,MAAO1b,EAAEu/B,WACrB8tB,KAAU3xC,EAAE,SAAU1b,EAAEw/B,cACxBg9B,KAAU9gD,EAAE,cAAe1b,EAAEy/B,mBAC7B6tB,KAAU5xC,EAAE,aAAc1b,EAAE0/B,kBAC5B+8B,KAAU/gD,EAAE,sBAAuB1b,EAAEu7B,2BACrCmhC,KAAUhhD,EAAE,iBAAkB1b,EAAE2/B,sBAChCg9B,KAAUjhD,EAAE,aAAc1b,EAAE4/B,kBAC5Bg9B,KAAUlhD,EAAE,MAAO1b,EAAE69B,WACrBmR,KAAUtzB,EAAE,QAAS1b,EAAE6/B,aACvBouB,KAAUvyC,EAAE,UAAW1b,EAAE8/B,eACzBouB,KAAUxyC,EAAE,WAAY1b,EAAE+/B,gBAC1B+8B,KAAUphD,EAAE,SAAU1b,EAAEggC,cACxBmP,KAAUzzB,EAAE,OAAQ1b,EAAEigC,YACtBmP,KAAU1zB,EAAE,OAAQ1b,EAAEkgC,YACtB88B,KAAUthD,EAAE,QAAS1b,EAAEmgC,aACvB88B,KAAUvhD,EAAE,OAAQ1b,EAAEogC,YACtB88B,KAAUxhD,EAAE,OAAQ1b,EAAEqgC,YACtB+8B,KAAU1hD,EAAE,WAAY1b,EAAEsgC,gBAC1B6tB,KAAUzyC,EAAE,YAAa1b,EAAEugC,iBAC3B+tB,KAAU5yC,EAAE,QAAS1b,EAAEm2B,aACvBo4B,KAAU7yC,EAAE,WAAY1b,EAAEwgC,gBAC1BkuB,KAAUhzC,EAAE,MAAO1b,EAAEg9B,WACrB8xB,KAAUpzC,EAAE,OAAQ1b,EAAEygC,YACtBsuB,KAAUrzC,EAAE,OAAQ1b,EAAE0gC,YACtBsuB,KAAUtzC,EAAE,QAAS1b,EAAE2gC,aACvBsuB,KAAUvzC,EAAE,QAAS1b,EAAE4gC,aACvBsuB,KAAUxzC,EAAE,QAAS1b,EAAE6gC,aACvBsuB,KAAUzzC,EAAE,SAAU1b,EAAE+9B,cACxBqxB,KAAU1zC,EAAE,QAAS1b,EAAE8gC,aACvBwO,KAAU5zB,EAAE,QAAS1b,EAAE+gC,aACvBs8B,KAAU3hD,EAAE,WAAY1b,EAAEghC,gBAC1BquB,KAAU3zC,EAAE,QAAS1b,EAAEihC,aACvBquB,KAAU5zC,EAAE,QAAS1b,EAAEkhC,aACvBquB,KAAU7zC,EAAE,QAAS1b,EAAEmhC,aACvBquB,KAAU9zC,EAAE,aAAc1b,EAAEohC,kBAC5BquB,KAAU/zC,EAAE,SAAU1b,EAAEqhC,cACxBquB,KAAUh0C,EAAE,SAAU1b,EAAEshC,cACxB5jB,KAAUhC,EAAE,aAAc1b,EAAEuhC,kBAC5BsuB,KAAUn0C,EAAE,SAAU1b,EAAEwhC,cACxB7jB,KAAUjC,EAAE,QAAS1b,EAAEyhC,aACvBquB,KAAUp0C,EAAE,YAAa1b,EAAE0hC,iBAC3B9jB,KAAUlC,EAAE,WAAY1b,EAAE2hC,gBAC1BquB,KAAUt0C,EAAE,eAAgB1b,EAAE4hC,oBAC9B07B,KAAU5hD,EAAE,kBAAmB1b,EAAE49B,uBACjC2R,KAAU7zB,EAAE,gBAAiB1b,EAAE6hC,qBAC/BquB,KAAUx0C,EAAE,KAAM1b,EAAE42B,UACpBu5B,KAAUz0C,EAAE,eAAgB1b,EAAE4yB,oBAC9Bw9B,KAAU10C,EAAE,eAAgB1b,EAAE88B,oBAC9BuzB,KAAU30C,EAAE,OAAQ1b,EAAE8hC,YACtByuB,KAAU70C,EAAE,aAAc1b,EAAEw5B,kBAC5BkkC,KAAUhiD,EAAE,QAAS1b,EAAE+hC,aACvB67B,KAAUliD,EAAE,kBAAmB1b,EAAEgiC,uBACjC67B,KAAUniD,EAAE,aAAc1b,EAAEiiC,kBAC5B67B,KAAUpiD,EAAE,sBAAuB1b,EAAEkiC,2BACrC67B,KAAUriD,EAAE,eAAgB1b,EAAEmiC,oBAC9BquB,KAAU90C,EAAE,SAAU1b,EAAEoiC,cACxB47B,KAAUtiD,EAAE,OAAQ1b,EAAEqiC,YACtB47B,KAAUviD,EAAE,SAAU1b,EAAEsiC,cACxB47B,KAAUxiD,EAAE,QAAS1b,EAAEuiC,aACvB47B,KAAUziD,EAAE,QAAS1b,EAAEwiC,aACvB47B,KAAU1iD,EAAE,SAAU1b,EAAEyiC,cACxB47B,KAAU3iD,EAAE,WAAY1b,EAAE0iC,gBAC1B47B,KAAU5iD,EAAE,SAAU1b,EAAE2iC,cACxB+tB,KAAUh1C,EAAE,SAAU1b,EAAE4iC,cACxBguB,KAAUl1C,EAAE,WAAY1b,EAAE6iC,gBAC1BguB,KAAUn1C,EAAE,MAAO1b,EAAEmzB,WACrB29B,KAAUp1C,EAAE,WAAY1b,EAAEy1B,gBAC1Bxd,KAAUyD,EAAE,SAAU1b,EAAEuzB,cACxBy9B,KAAUt1C,EAAE,SAAU1b,EAAE8iC,cACxBmuB,KAAUv1C,EAAE,YAAa1b,EAAE+iC,iBAC3BwvB,KAAU72C,EAAE,SAAU1b,EAAEgjC,cACxBswB,KAAU53C,EAAE,YAAa1b,EAAEijC,iBAC3BswB,KAAU73C,EAAE,UAAW1b,EAAEkjC,eACzBwwB,KAAUh4C,EAAE,aAAc1b,EAAEmjC,kBAC5Bq8B,KAAU9jD,EAAE,UAAW1b,EAAE29B,eACzBi2B,KAAUl4C,EAAE,cAAe1b,EAAEojC,mBAC7BywB,KAAUn4C,EAAE,SAAU1b,EAAEqjC,cACxBywB,KAAUp4C,EAAE,UAAW1b,EAAEsjC,eACzB+wB,KAAU34C,EAAE,WAAY1b,EAAEujC,gBAC1Bq8B,KAAUlkD,EAAE,YAAa1b,EAAEwjC,iBAC3Bi3C,KAAU/+D,EAAE,aAAc1b,EAAEyjC,kBAC5Bq8B,KAAUpkD,EAAE,eAAgB1b,EAAE0jC,oBAC9Bq8B,KAAUrkD,EAAE,aAAc1b,EAAE2jC,kBAC5B2wB,KAAU54C,EAAE,iBAAkB1b,EAAE4jC,sBAChCo8B,KAAUtkD,EAAE,eAAgB1b,EAAE6jC,oBAC9B0wB,KAAU74C,EAAE,cAAe1b,EAAE8jC,mBAC7B0wB,KAAU94C,EAAE,aAAc1b,EAAE+jC,kBAC5Bk8B,KAAUvkD,EAAE,aAAc1b,EAAEgkC,kBAC5BnmB,KAAUnC,EAAE,OAAQ1b,EAAEikC,YACtB4wB,KAAUn5C,EAAE,WAAY1b,EAAEi+B,gBAC1BuiC,KAAU9kD,EAAE,MAAO1b,EAAEm8B,WACrBy+C,KAAUl/D,EAAE,OAAQ1b,EAAEkkC,YACtB4vD,KAAUp4E,EAAE,QAAS1b,EAAEmkC,aACvB02C,KAAUn/D,EAAE,UAAW1b,EAAEokC,eACzB02C,KAAUp/D,EAAE,UAAW1b,EAAEqkC,eACzB02C,KAAUr/D,EAAE,WAAY1b,EAAEskC,gBAC1B02C,KAAUt/D,EAAE,UAAW1b,EAAEukC,eACzB02C,KAAUv/D,EAAE,SAAU1b,EAAEwkC,cACxB02C,KAAUx/D,EAAE,SAAU1b,EAAEykC,cACxB4yB,KAAU37C,EAAE,YAAa1b,EAAE0kC,iBAC3B82C,KAAU9/D,EAAE,iBAAkB1b,EAAE2kC,sBAChC82C,KAAU//D,EAAE,eAAgB1b,EAAE4kC,oBAC9B82C,KAAUhgE,EAAE,cAAe1b,EAAE6kC,mBAC7B82C,KAAUjgE,EAAE,MAAO1b,EAAE8kC,WACrBwyB,KAAU57C,EAAE,UAAW1b,EAAEm3B,eACzBogC,KAAU77C,EAAE,WAAY1b,EAAEs9B,gBAC1Bk6B,KAAU97C,EAAE,UAAW1b,EAAE+kC,eACzB0yB,KAAU/7C,EAAE,KAAM1b,EAAEglC,UACpB0yB,KAAUh8C,EAAE,OAAQ1b,EAAEilC,YACtB4yB,KAAUn8C,EAAE,UAAW1b,EAAEklC,eACzB4yB,KAAUp8C,EAAE,MAAO1b,EAAE65B,WACrBk+B,KAAUr8C,EAAE,aAAc1b,EAAEy9B,kBAC5Bu6B,KAAUt8C,EAAE,QAAS1b,EAAEq6B,aACvB49B,KAAUv8C,EAAE,MAAO1b,EAAEmlC,WACrB+yB,KAAUx8C,EAAE,WAAY1b,EAAEolC,mBAC1B+yB,KAAUz8C,EAAE,YAAa1b,EAAEqlC,iBAC3B+yB,KAAU18C,EAAE,eAAgB1b,EAAEu9B,oBAC9B86B,KAAU38C,EAAE,aAAc1b,EAAEslC,kBAC5BgzB,KAAU58C,EAAE,KAAM1b,EAAEulC,UACpBizB,KAAU98C,EAAE,aAAc1b,EAAEs8B,kBAC5Bm8B,KAAU/8C,EAAE,WAAY1b,EAAEg0B,eAAgB73B,EAAE,GAC5Cu8D,KAAUh9C,EAAE,UAAW1b,EAAEo8B,eACzB8gD,KAAUxhE,EAAE,aAAc1b,EAAE+1B,kBAC5BonD,KAAUzhE,EAAE,QAAS1b,EAAEq7B,aACvBgiD,KAAU3hE,EAAE,SAAU1b,EAAEg3B,cACxBsmD,KAAU5hE,EAAE,QAAS1b,EAAE21B,aACvBulC,KAAUx/C,EAAE,UAAW1b,EAAE+2B,eACzBqkC,KAAU1/C,EAAE,SAAU1b,EAAE89B,cACxBu9B,KAAU3/C,EAAE,MAAO1b,EAAE0zB,WACrB8nC,KAAU9/C,EAAE,QAAS1b,EAAEwlC,aACvBi2B,KAAU//C,EAAE,QAAS1b,EAAE64B,aACvBgjC,KAAUngD,EAAE,mBAAoB1b,EAAEi0B,wBAClCwrD,KAAU/jE,EAAE,QAAS1b,EAAEylC,aACvBq6C,KAAUpkE,EAAE,UAAW1b,EAAEm7B,eACzBooD,KAAU7nE,EAAE,KAAM1b,EAAEg2B,UACpB0uD,KAAUhpE,EAAE,QAAS1b,EAAEg7B,aACvBqsD,MAAU3rE,EAAE,UAAW1b,EAAE0lC,eACzBiiD,MAAUjsE,EAAE,SAAU1b,EAAE41B,cACxByzD,MAAU3tE,EAAE,kBAAmB1b,EAAE2lC,uBACjCouD,MAAUr4E,EAAE,UAAW1b,EAAEy4B,eACzBo2D,MAAUnzE,EAAE,eAAgB1b,EAAEu6B,oBAC9Bu0D,MAAUpzE,EAAE,SAAU1b,EAAE4lC,cACxBmpD,MAAUrzE,EAAE,WAAY1b,EAAE6lC,gBAC1BmpD,MAAUtzE,EAAE,aAAc1b,EAAE8lC,kBAC5BmpD,MAAUvzE,EAAE,YAAa1b,EAAE+lC,iBAC3BmpD,MAAUxzE,EAAE,SAAU1b,EAAEgmC,cACxBmpD,MAAUzzE,EAAE,OAAQ1b,EAAEimC,YACtBmpD,MAAU1zE,EAAE,OAAQ1b,EAAEkmC,YACtBmpD,MAAU3zE,EAAE,WAAY1b,EAAEmmC,gBAC1BmpD,MAAU5zE,EAAE,MAAO1b,EAAE0yB,WACrB68D,MAAU7zE,EAAE,YAAa1b,EAAEomC,iBAC3B4tD,MAAUt4E,EAAE,OAAQ1b,EAAEqmC,YACtBmpD,MAAU9zE,EAAE,WAAY1b,EAAEsmC,gBAC1B2tD,MAAUv4E,EAAE,OAAQ1b,EAAEumC,YACtB2tD,MAAUx4E,EAAE,SAAU1b,EAAEwmC,cACxB2tD,MAAUz4E,EAAE,UAAW1b,EAAEymC,eACzB2tD,MAAU14E,EAAE,YAAa1b,EAAE0mC,iBAC3B2tD,MAAU34E,EAAE,cAAe1b,EAAE2mC,mBAC7B8oD,MAAU/zE,EAAE,eAAgB1b,EAAE4mC,oBAC9BysD,MAAU33E,EAAE,eAAgB1b,EAAE6mC,oBAC9BysD,MAAU53E,EAAE,aAAc1b,EAAE8mC,kBAC5BysD,MAAU73E,EAAE,aAAc1b,EAAE+mC,kBAC5BysD,MAAU93E,EAAE,WAAY1b,EAAEgnC,gBAC1BysD,MAAU/3E,EAAE,cAAe1b,EAAEinC,mBAC7BysD,MAAUh4E,EAAE,YAAa1b,EAAEknC,iBAC3BysD,MAAUj4E,EAAE,SAAU1b,EAAEmnC,cACxBysD,MAAUl4E,EAAE,QAAS1b,EAAEonC,aACvBysD,MAAUn4E,EAAE,aAAc1b,EAAEqnC,kBAC5BitD,MAAU54E,EAAE,iBAAkB1b,EAAEsnC,sBAChCitD,MAAU74E,EAAE,cAAe1b,EAAEunC,mBAC7BitD,MAAU94E,EAAE,WAAY1b,EAAEwnC,gBAC1BitD,MAAU/4E,EAAE,UAAW1b,EAAEynC,cAAetrC,EAAE,IAC1Cu4F,MAAUh5E,EAAE,SAAU1b,EAAE0nC,cACxBitD,MAAUj5E,EAAE,QAAS1b,EAAE2nC,aACvBitD,MAAUl5E,EAAE,YAAa1b,EAAE4nC,iBAC3BitD,MAAUn5E,EAAE,UAAW1b,EAAEu8B,eACzBu4D,MAAUp5E,EAAE,OAAQ1b,EAAE6nC,YACtBktD,MAAUr5E,EAAE,aAAc1b,EAAE8nC,kBAC5BktD,MAAUt5E,EAAE,qBAAsB1b,EAAE+nC,0BACpCktD,MAAUv5E,EAAE,YAAa1b,EAAEgoC,iBAC3BktD,MAAUx5E,EAAE,YAAa1b,EAAEioC,iBAC3BktD,MAAUz5E,EAAE,YAAa1b,EAAEkoC,iBAC3BktD,MAAU15E,EAAE,iBAAkB1b,EAAEmoC,sBAChCktD,MAAU35E,EAAE,gBAAiB1b,EAAEooC,qBAC/BktD,MAAU55E,EAAE,QAAS1b,EAAEqoC,aACvBktD,MAAU75E,EAAE,SAAU1b,EAAEsoC,cACxBktD,MAAU95E,EAAE,YAAa1b,EAAEuoC,iBAC3BktD,MAAU/5E,EAAE,YAAa1b,EAAEwoC,iBAC3BktD,MAAUh6E,EAAE,OAAQ1b,EAAEyoC,YACtBktD,MAAUj6E,EAAE,OAAQ1b,EAAE0oC,YACtBktD,MAAUl6E,EAAE,QAAS1b,EAAE66B,YAAa1+B,EAAE,IACtC05F,MAAUn6E,EAAE,QAAS1b,EAAEm9C,YAAahhD,EAAE,IACtC25F,MAAUp6E,EAAE,eAAgB1b,EAAE2oC,oBAC9BotD,MAAUr6E,EAAE,gBAAiB1b,EAAE4oC,qBAC/BotD,MAAUt6E,EAAE,UAAW1b,EAAE6oC,eACzBotD,MAAUv6E,EAAE,SAAU1b,EAAE8oC,cACxBotD,MAAUx6E,EAAE,WAAY1b,EAAE+oC,gBAC1BotD,MAAUz6E,EAAE,SAAU1b,EAAEgpC,cACxBotD,MAAU16E,EAAE,UAAW1b,EAAEipC,eACzBotD,MAAU36E,EAAE,SAAU1b,EAAEkpC,cACxBotD,MAAU56E,EAAE,MAAO1b,EAAEmpC,WACrBotD,MAAU76E,EAAE,MAAO1b,EAAEopC,WACrBotD,MAAU96E,EAAE,WAAY1b,EAAEg8B,eAAgB7/B,EAAE,IAC5Cs6F,MAAU/6E,EAAE,MAAO1b,EAAEqpC,WACrBqtD,MAAUh7E,EAAE,cAAe1b,EAAEspC,kBAAmBntC,EAAE,IAClDw6F,MAAUj7E,EAAE,aAAc1b,EAAEupC,kBAC5BqtD,MAAUl7E,EAAE,oBAAqB1b,EAAEwpC,yBACnCqtD,MAAUn7E,EAAE,WAAY1b,EAAEi7B,gBAC1B67D,MAAUp7E,EAAE,cAAe1b,EAAEypC,mBAC7BstD,MAAUr7E,EAAE,UAAW1b,EAAE0pC,eACzBstD,MAAUt7E,EAAE,WAAY1b,EAAE2pC,gBAC1BstD,MAAUv7E,EAAE,QAAS1b,EAAEw8C,YAAargD,EAAE,IACtC+6F,MAAUx7E,EAAE,cAAe1b,EAAE4pC,mBAC7ButD,MAAUz7E,EAAE,UAAW1b,EAAE6pC,eACzButD,MAAU17E,EAAE,cAAe1b,EAAE8pC,mBAC7ButD,MAAU37E,EAAE,cAAe1b,EAAE+4B,kBAAmB58B,EAAE,IAClDm7F,MAAU57E,EAAE,mBAAoB1b,EAAE+zB,wBAClCwjE,MAAU77E,EAAE,eAAgB1b,EAAE+pC,oBAC9BytD,MAAU97E,EAAE,cAAe1b,EAAEgqC,mBAC7BytD,MAAU/7E,EAAE,WAAY1b,EAAEiqC,gBAC1BytD,MAAUh8E,EAAE,mBAAoB1b,EAAEkqC,wBAClCytD,MAAUj8E,EAAE,uBAAwB1b,EAAE6zB,4BACtC+jE,MAAUl8E,EAAE,mBAAoB1b,EAAEmqC,wBAClC0tD,MAAUn8E,EAAE,kBAAmB1b,EAAEoqC,uBACjC0tD,MAAUp8E,EAAE,iBAAkB1b,EAAEqqC,sBAChC0tD,MAAUr8E,EAAE,eAAgB1b,EAAEsqC,oBAC9B0tD,MAAUt8E,EAAE,QAAS1b,EAAEuqC,aACvB0tD,MAAUv8E,EAAE,QAAS1b,EAAEwqC,aACvB0tD,MAAUx8E,EAAE,SAAU1b,EAAEyqC,cACxB0tD,MAAUz8E,EAAE,aAAc1b,EAAE0qC,kBAC5B0tD,MAAU18E,EAAE,aAAc1b,EAAE2qC,kBAC5B0tD,MAAU38E,EAAE,eAAgB1b,EAAE4qC,oBAC9B0tD,MAAU58E,EAAE,aAAc1b,EAAE6qC,kBAC5B0tD,MAAU78E,EAAE,YAAa1b,EAAE8qC,iBAC3B0tD,MAAU98E,EAAE,gBAAiB1b,EAAE+qC,qBAC/B0tD,MAAU/8E,EAAE,aAAc1b,EAAEgrC,kBAC5B0tD,MAAUh9E,EAAE,cAAe1b,EAAEirC,mBAC7B0tD,MAAUj9E,EAAE,SAAU1b,EAAEkrC,cACxB0tD,MAAUl9E,EAAE,aAAc1b,EAAEmrC,kBAC5B0tD,MAAUn9E,EAAE,MAAO1b,EAAEorC,WACrB0tD,MAAUp9E,EAAE,OAAQ1b,EAAEqrC,YACtB0tD,MAAUr9E,EAAE,MAAO1b,EAAEsrC,WACrB0tD,MAAUt9E,EAAE,OAAQ1b,EAAEurC,YACtB0tD,MAAUv9E,EAAE,UAAW1b,EAAEwrC,eACzB0tD,MAAUx9E,EAAE,UAAW1b,EAAEyrC,eACzB0tD,MAAUz9E,EAAE,OAAQ1b,EAAE0rC,YACtB0tD,MAAU19E,EAAE,OAAQ1b,EAAE2rC,YACtB0tD,MAAU39E,EAAE,aAAc1b,EAAE4rC,kBAC5B0tD,MAAU59E,EAAE,cAAe1b,EAAE6rC,mBAC7B0tD,MAAU79E,EAAE,WAAY1b,EAAE8rC,gBAC1B0tD,MAAU99E,EAAE,UAAW1b,EAAE+rC,eACzB0tD,MAAU/9E,EAAE,cAAe1b,EAAEgsC,mBAC7B0tD,MAAUh+E,EAAE,OAAQ1b,EAAEisC,YACtB0tD,MAAUj+E,EAAE,QAAS1b,EAAEw8B,aACvBo9D,MAAUl+E,EAAE,aAAc1b,EAAEksC,kBAC5B2tD,MAAUn+E,EAAE,QAAS1b,EAAEmsC,aACvB2tD,MAAUp+E,EAAE,QAAS1b,EAAEosC,aACvB2tD,MAAUr+E,EAAE,MAAO1b,EAAEqsC,WACrB2tD,MAAUt+E,EAAE,WAAY1b,EAAEssC,gBAC1B2tD,MAAUv+E,EAAE,UAAW1b,EAAEusC,eACzB2tD,MAAUx+E,EAAE,OAAQ1b,EAAEwsC,YACtB2tD,MAAUz+E,EAAE,UAAW1b,EAAEysC,eACzB2tD,MAAU1+E,EAAE,QAAS1b,EAAE0sC,aACvB2tD,MAAU3+E,EAAE,OAAQ1b,EAAE2sC,YACtB2tD,MAAU5+E,EAAE,YAAa1b,EAAE4sC,iBAC3B2tD,MAAU7+E,EAAE,aAAc1b,EAAE6sC,kBAC5B2tD,MAAU9+E,EAAE,kBAAmB1b,EAAE8sC,uBACjC2tD,MAAU/+E,EAAE,WAAY1b,EAAE+sC,gBAC1B2tD,MAAUh/E,EAAE,WAAY1b,EAAEgtC,gBAC1B2tD,MAAUj/E,EAAE,WAAY1b,EAAEitC,gBAC1B2tD,MAAUl/E,EAAE,WAAY1b,EAAEktC,gBAC1B2tD,MAAUn/E,EAAE,YAAa1b,EAAEmtC,iBAC3B2tD,MAAUp/E,EAAE,cAAe1b,EAAEotC,mBAC7B2tD,MAAUr/E,EAAE,aAAc1b,EAAEqtC,kBAC5B2tD,MAAUt/E,EAAE,MAAO1b,EAAEstC,WACrB2tD,MAAUv/E,EAAE,SAAU1b,EAAEutC,cACxB2tD,MAAUx/E,EAAE,OAAQ1b,EAAEwtC,YACtB2tD,MAAUz/E,EAAE,eAAgB1b,EAAEytC,oBAC9B2tD,MAAU1/E,EAAE,aAAc1b,EAAE06B,kBAC5B2gE,MAAU3/E,EAAE,SAAU1b,EAAE0tC,cACxB4tD,MAAU5/E,EAAE,kBAAmB1b,EAAE2tC,uBACjC4tD,MAAU7/E,EAAE,MAAO1b,EAAE4tC,WACrB4tD,MAAU9/E,EAAE,SAAU1b,EAAE6tC,cACxB4tD,MAAU//E,EAAE,SAAU1b,EAAE8tC,cACxB4tD,MAAUhgF,EAAE,MAAO1b,EAAE+tC,WACrB4tD,MAAUjgF,EAAE,aAAc1b,EAAEguC,kBAC5B4tD,MAAUlgF,EAAE,UAAW1b,EAAEiuC,eACzB4tD,MAAUngF,EAAE,WAAY1b,EAAEkuC,gBAC1B4tD,MAAUpgF,EAAE,eAAgB1b,EAAEmuC,oBAC9B4tD,MAAUrgF,EAAE,OAAQ1b,EAAEouC,YAGtBx4C,IAAU8lB,EAAE,cAAe1b,EAAE+S,WAC7Bi5C,KAAUtwC,EAAE,KAAM1b,EAAE+S,WACpBk5C,KAAUvwC,EAAE,SAAU1b,EAAE+S,WACxBs5C,KAAU3wC,EAAE,QAAS1b,EAAE+S,WACvBg8B,KAAUrzB,EAAE,MAAO1b,EAAE+S,WACrBu5C,KAAU5wC,EAAE,MAAO1b,EAAE+S,WACrB85C,KAAUnxC,EAAE,MAAO1b,EAAE+S,WACrBi6C,KAAUtxC,EAAE,WAAY1b,EAAE+S,WAC1Bk6C,KAAUvxC,EAAE,WAAY1b,EAAE+S,WAC1Bm6C,KAAUxxC,EAAE,QAAS1b,EAAE+S,WACvB66C,KAAUlyC,EAAE,YAAa1b,EAAE+S,WAC3B+6C,KAAUpyC,EAAE,MAAO1b,EAAE+S,WACrBs7C,KAAU3yC,EAAE,UAAW1b,EAAE+S,WACzB47C,KAAUjzC,EAAE,UAAW1b,EAAE+S,WACzB67C,KAAUlzC,EAAE,UAAW1b,EAAE+S,WACzB68C,KAAUl0C,EAAE,UAAW1b,EAAE+S,WACzBk9C,KAAUv0C,EAAE,SAAU1b,EAAE+S,WACxB4qD,KAAUjiD,EAAE,YAAa1b,EAAE+S,WAC3B+K,KAAUpC,EAAE,YAAa1b,EAAE+S,WAC3BkkD,KAAUv7C,EAAE,eAAgB1b,EAAE+S,WAC9BorE,KAAUziE,EAAE,OAAQ1b,EAAE+S,WACtB4oD,KAAUjgD,EAAE,aAAc1b,EAAEw3B,kBAC5B6nD,KAAU3jE,EAAE,OAAQ1b,EAAE+S,WACtBozE,MAAUzqE,EAAE,UAAW1b,EAAEqoD,eACzB2zC,MAAUtgF,EAAE,WAAY1b,EAAE+S,WAC1BkpF,MAAUvgF,EAAE,aAAc1b,EAAE+S,WAC5BmpF,MAAUxgF,EAAE,WAAY1b,EAAE+S,WAC1BopF,MAAUzgF,EAAE,aAAc1b,EAAE+S,WAC5BqpF,MAAU1gF,EAAE,UAAW1b,EAAE+S,WACzBspF,MAAU3gF,EAAE,YAAa1b,EAAE+S,WAC3BupF,MAAU5gF,EAAE,SAAU1b,EAAE+S,WACxBwpF,MAAU7gF,EAAE,cAAe1b,EAAE+S,WAC7BypF,MAAU9gF,EAAE,SAAU1b,EAAE+S,WACxB0pF,MAAU/gF,EAAE,QAAS1b,EAAE+S,WACvB2pF,MAAUhhF,EAAE,SAAU1b,EAAE+S,WACxB4pF,MAAUjhF,EAAE,MAAO1b,EAAE+S,WACrB6pF,MAAUlhF,EAAE,QAAS1b,EAAE+S,WACvB8pF,MAAUnhF,EAAE,SAAU1b,EAAE+S,WACxB+pF,MAAUphF,EAAE,WAAY1b,EAAE+S,WAE1B,KAKD,SAASgqF,WAAU5yF,IAAK1V,MACvB,SAAU9E,UAAW,mBAAsBC,WAAY,mBAAsBotG,OAAQ,YAAaA,IAAMptG,QAAQ,OAAS,IACzH,UAAUotG,OAAQ,cAAgBA,IAAID,UAAW,KAAM,IAAIhkG,OAAM,kBACjE,OAAOikG,KAAID,UAAU5yF,IAAK1V,MAE3B,QAASwoG,eAAcz3E,UACtB,MAAO,SAAS03E,UAASzoG,MACxB,IAAI,GAAIrE,GAAI,EAAGA,GAAKo1B,SAASl1B,SAAUF,EAAG,CACzC,GAAIqD,GAAI+xB,SAASp1B,EACjB,IAAGqE,KAAKhB,EAAE,MAAQe,UAAWC,KAAKhB,EAAE,IAAMA,EAAE,EAC5C,IAAGA,EAAE,KAAO,IAAKgB,KAAKhB,EAAE,IAAM+lF,OAAO/kF,KAAKhB,EAAE,OAK/C,GAAI+hF,eAAgBynB,gBAClB,SAAU,QACV,WAAY,OACZ,cAAe,OACf,aAAc,QACd,YAAa,QAEb,aAAc,QACd,YAAa,EAAG,MAEhB,WAAY,QACZ,aAAc,QACd,YAAa,QACb,YAAa,QACb,UAAW,QAEX,WAAW,KACX,MAAO,QAIT,IAAIE,gBAAiBF,gBACnB,YAAa,QAEb,UAAW,QAEX,WAAY,SAEZ,MAAO,QAET,SAASG,mBAAkBC,OAAQt5E,QAClC,IAAIs5E,OAAQ,MAAO,EACnB,KACCA,OAASt5E,OAAO3yB,IAAI,QAASksG,MAAKplG,GAAK,OAAQA,EAAEwL,KAAM25F,OAAO,OAAOnlG,EAAE85B,IAAI/K,UAC1E,MAAM1c,GAAK,MAAO,MACpB,OAAQ8yF,QAAUA,OAAO/sG,SAAW,EAAI,KAAO+sG,OAGhD,QAASE,eAAcpzF,IAAKzE,KAAM83F,SAAUj6E,MAAO46B,UAAWp6B,OAAQtvB,MACrE,IACC0pD,UAAU56B,OAAO8C,WAAWhc,WAAWF,IAAKqzF,SAAU,MAAO93F,KAC7Dqe,QAAOR,OAAOouD,SAAStnE,WAAWF,IAAKzE,MAAMA,KAAKjR,KAAK0pD,UAAU56B,QAChE,MAAMhZ,GAAK,GAAG9V,KAAKywB,IAAK,KAAM3a,IAGjC,GAAIkzF,QAAS,QAASA,QAAO9sG,GAAG,MAAOA,GAAEK,QAAQ,IAAM,IACvD,SAAS0sG,WAAUvzF,IAAK1V,MACvBvB,SAASD,IACTwB,MAAOA,QACP+gF,eAAc/gF,KACd3E,WAGA,IAAGoa,eAAeC,IAAK,yBAA0B,MAAO4yF,WAAU5yF,IAAK1V,KAEvE,IAAIkpG,SAAU90F,KAAKsB,IAAIvG,OAAOg6F,OAAOH,QAAQlkB,MAC7C,IAAIskB,KAAM15E,SAAS9Z,WAAWF,IAAK,uBAAwB1V,KAC3D,IAAImvB,MAAO,KACX,IAAIG,QAAQ+5E,OACZ,IAAGD,IAAIp6E,UAAUnzB,SAAW,EAAG,CAC9BwtG,QAAU,iBACV,IAAGzzF,WAAWF,IAAI2zF,QAAS,MAAOD,IAAIp6E,UAAUne,KAAKw4F,SAEtD,GAAGD,IAAIp6E,UAAUnzB,SAAW,EAAG,CAC9BwtG,QAAU,iBACV,KAAI1zF,WAAWD,IAAI2zF,QAAQ,MAAO,KAAM,IAAI/kG,OAAM,0BAClD8kG,KAAIp6E,UAAUne,KAAKw4F,QACnBl6E,MAAO,KAER,GAAGi6E,IAAIp6E,UAAU,GAAGzyB,QAAQ,IAAM,MAAO4yB,KAAO,IAChD,IAAGA,KAAM7zB,OAAO,KAEhB,KAAI0E,KAAK4gF,aAAe5gF,KAAK6gF,UAAW,CACvCxxD,OACA,IAAG+5E,IAAIv4E,IAAKxB,KAAKguD,UAAUznE,WAAWF,IAAK0zF,IAAIv4E,IAAIpzB,QAAQ,MAAM,KAAM2rG,IAAIv4E,IAAK7wB,KAEhFuvB,UACA,IAAG65E,IAAIt4E,MAAOvB,OAAS4tD,UAAUvnE,WAAWF,IAAK0zF,IAAIt4E,MAAMrzB,QAAQ,MAAM,KAAK2rG,IAAIt4E,MAAO9wB,KAEzF6vB,UACA,IAAG7vB,KAAK41E,YAAcwzB,IAAIv5E,OAAOh0B,OAAQg0B,OAASutD,YAAYxnE,WAAWF,IAAK0zF,IAAIv5E,OAAO,GAAGpyB,QAAQ,MAAM,IAAK,MAAM2rG,IAAIv5E,OAAO,GAAI7vB,MAGrI,GAAIslD,IAAK23B,SAASrnE,WAAWF,IAAK0zF,IAAIp6E,UAAU,GAAGvxB,QAAQ,MAAM,KAAM2rG,IAAIp6E,UAAU,GAAIhvB,KAEzF,IAAI2lF,UAAY2jB,SAAW,EAE3B,IAAGF,IAAIt5E,UAAUj0B,SAAW,EAAG,CAC9BytG,SAAW1zF,WAAWF,IAAK0zF,IAAIt5E,UAAU,GAAGryB,QAAQ,MAAM,IAAK,KAC/D,IAAG6rG,SAAU3jB,MAAQ1yD,iBAAiBq2E,SACtC,IAAGF,IAAIr5E,SAASl0B,SAAW,EAAG,CAC7BytG,SAAW1zF,WAAWF,IAAK0zF,IAAIr5E,SAAS,GAAGtyB,QAAQ,MAAM,IAAK,KAC9D,IAAG6rG,SAAUx1E,gBAAgBw1E,SAAU3jB,QAIzC,GAAI31D,aACJ,KAAIhwB,KAAK4gF,YAAc5gF,KAAK6gF,UAAW,CACtC,GAAIuoB,IAAIp5E,UAAUn0B,SAAW,EAAG,CAC/BytG,SAAW1zF,WAAWF,IAAK0zF,IAAIp5E,UAAU,GAAGvyB,QAAQ,MAAM,IAAK,KAC/D,IAAG6rG,SAAUt5E,UAAY4E,iBAAiB00E,SAAUtpG,OAItD,GAAI+E,OACJ,IAAG/E,KAAK4gF,YAAc5gF,KAAK6gF,UAAW,CACrC,GAAG8E,MAAMzxD,YAAcyxD,MAAMvxD,WAAWv4B,OAAS,EAAGyzB,OAAOq2D,MAAMvxD,eAC5D,IAAGkxB,GAAGuzB,OAAQvpD,OAASg2B,GAAGuzB,OAAOl8E,IAAI,QAAS4sG,OAAMrtG,GAAI,MAAOA,GAAE+S,MACtE,IAAGjP,KAAK6gF,UAAW,CAAE97E,IAAIuwB,MAAQqwD,KAAO5gF,KAAIo5E,UAAYnuD,UACxD,SAAUV,UAAW,YAAavqB,IAAIqvB,WAAa9E,MACnD,IAAGtvB,KAAK4gF,WAAa77E,IAAIqvB,WAAap0B,KAAK6gF,UAAW,MAAO97E,KAE9DuqB,SAEA,IAAIk6E,QACJ,IAAGxpG,KAAKypG,UAAYL,IAAIx4E,UAAW44E,KAAKlsB,SAAS1nE,WAAWF,IAAK0zF,IAAIx4E,UAAUnzB,QAAQ,MAAM,KAAK2rG,IAAIx4E,UAAU5wB,KAEhH,IAAIrE,GAAE,CACN,IAAI+tD,aACJ,IAAIz4C,MAAM83F,QACV,KAAIpjB,MAAMzxD,WAAY,CACrB,GAAIw1E,UAAWpkD,GAAGuzB,MAClB8M,OAAMzxD,WAAaw1E,SAAS7tG,MAC5B8pF,OAAMvxD,aACN,KAAI,GAAI9tB,GAAI,EAAGA,GAAKojG,SAAS7tG,SAAUyK,EAAG,CACzCq/E,MAAMvxD,WAAW9tB,GAAKojG,SAASpjG,GAAG2I,MAIpC,GAAI06F,OAAQx6E,KAAO,MAAQ,KAC3B,IAAIy6E,YAAa,qBAAuBD,MAAQ,OAChD,IAAIf,QAASh3E,WAAWhc,WAAWF,IAAKk0F,WAAY,MAAOA,WAC3D,IAAGhB,OAAQA,OAASD,kBAAkBC,OAAQtjD,GAAGuzB,OAEjD,IAAIgxB,OAASj0F,WAAWF,IAAI,0BAA0B,MAAO,EAAE,CAC/D,KAAI/Z,EAAI,EAAGA,GAAKgqF,MAAMzxD,aAAcv4B,EAAG,CACtC,GAAGitG,OAAQ33F,KAAO,MAAS23F,OAAOjtG,GAAG,GAAI8B,QAAQ,YAAa,QACzD,CACJwT,KAAO,uBAAuBtV,EAAE,EAAEkuG,OAAO,IAAMF,KAC/C14F,MAAOA,KAAKxT,QAAQ,WAAW,UAEhCsrG,SAAW93F,KAAKxT,QAAQ,qBAAsB,mBAC9CqrG,eAAcpzF,IAAKzE,KAAM83F,SAAUpjB,MAAMvxD,WAAWz4B,GAAI+tD,UAAWp6B,OAAQtvB,MAG5E,GAAGopG,IAAIn5E,SAAUu5B,eAAe9zC,IAAK0zF,IAAIn5E,SAAUX,OAAQo6B,UAAW1pD,KAEtE+E,MACC48E,UAAWynB,IACXztB,SAAUr2B,GACVhwB,MAAOqwD,MACPxH,UAAWnuD,UACX85E,KAAMN,KACN3wB,OAAQvpD,OACR8E,WAAYuxD,MAAMvxD,WAClB+iD,QAAS9nD,KACT06E,OAAQx6E,OACRy6E,OAAQn6E,OACRrxB,IAAKA,IAAIwN,YAEV,IAAGhM,KAAK6lF,UAAW,CAClB9gF,IAAIqP,KAAO80F,OACXnkG,KAAIoK,MAAQuG,IAAIvG,MAEjB,GAAGnP,KAAKiqG,QAAS,CAChB,GAAGb,IAAIl5E,IAAIr0B,OAAS,EAAGkJ,IAAImlG,OAASt0F,WAAWF,IAAI0zF,IAAIl5E,IAAI,GAAG,UACzD,IAAGk5E,IAAIr4E,SAASo5E,MAAQ,uCAAwCplG,IAAImlG,OAASt0F,WAAWF,IAAI,oBAAoB,MAEtH,MAAO3Q,KAER,QAASqlG,UAASh6E,KAAMi6E,IAAK9+F,EAAGzF,KAAMwkG,QACrC,IAAIA,OAAQA,SACZ,KAAIl6E,KAAK,OAAQA,KAAK,SACtBk6E,QAAO73E,GAAK,MAAQ43E,GACpBC,QAAO/3E,KAAOzsB,IACdwkG,QAAO93E,OAASjnB,CAChB,IAAG6kB,KAAK,OAAOk6E,OAAO73E,IAAK,KAAM,IAAInuB,OAAM,sBAAwB+lG,IACnEj6E,MAAK,OAAOk6E,OAAO73E,IAAM63E,MACzBl6E,OAAM,IAAMk6E,OAAO93E,QAAQ/0B,QAAQ,KAAK,MAAQ6sG,OAGjD,QAASC,WAAUjlD,GAAItlD,MACtB,GAAGslD,KAAOA,GAAG9mD,IAAK,CACjB8mD,GAAG9mD,IAAMA,IAAIwN,YAEd,GAAGs5C,IAAMA,GAAG9mD,IAAK,CAChBC,SAASD,IAAMA,KAAIyN,WAAWq5C,GAAG9mD,IACjCwB,MAAKw0E,OAAS7/D,UAAU2wC,GAAG9mD,IAAMwB,MAAKw0E,OAAOlvB,GAAG9mD,IAAI,QAAU,EAE/DwB,KAAKowB,OAAWpwB,MAAK4oG,SACrB5oG,MAAKm3E,UAAcn3E,MAAKm3E,QAAQv4C,MAAQ,CAAG5+B,MAAKm3E,QAAQt4C,OAAS,CACjE,IAAI8qE,OAAQ3pG,KAAKsxB,UAAY,OAAS,MAAQ,KAC9C,IAAI7e,KAAOuc,aAAeM,UAAYM,cAAgBC,UAAYN,UACjEO,aAAeC,YAAcC,aAAeX,QAASY,YAAcC,OACnEC,QAASC,QAASC,MAAO,GAC1Bq4E,gBAAe1oG,KAAOA,SACtB,IAAI0V,KAAM,GAAIM,MACd,IAAIzK,GAAI,GAAI8+F,IAAM,CAElBrqG,MAAK6kD,UACL0vB,gBAAev0E,KAAK6kD,YAAc2vB,QAAQg2B,QAAU,IAEpDj/F,GAAI,mBACJmK,KAAIjI,KAAKlC,EAAGkoB,iBAAiB6xB,GAAGhwB,MAAOt1B,MACvCyS,IAAGqd,UAAUjf,KAAKtF,EAClB6+F,UAASpqG,KAAKowB,KAAM,EAAG7kB,EAAGkmB,KAAKsB,WAE/BxnB,GAAI,kBACJ,KAAI+5C,GAAGhwB,MAAOgwB,GAAGhwB,QACjBgwB,IAAGhwB,MAAMlB,WAAakxB,GAAGlxB,UACzBkxB,IAAGhwB,MAAMpB,WAAaoxB,GAAGlxB,WAAWv4B,MACpC6Z,KAAIjI,KAAKlC,EAAGgpB,gBAAgB+wB,GAAGhwB,MAAOt1B,MACtCyS,IAAGsd,SAASlf,KAAKtF,EACjB6+F,UAASpqG,KAAKowB,KAAM,EAAG7kB,EAAGkmB,KAAKoC,UAE/B,IAAGyxB,GAAG64B,YAAc74B,GAAGhwB,OAASlhB,KAAKkxC,GAAG64B,eAAetiF,OAAS,EAAG,CAClE0P,EAAI,qBACJmK,KAAIjI,KAAKlC,EAAG0pB,iBAAiBqwB,GAAG64B,UAAWn+E,MAC3CyS,IAAGud,UAAUnf,KAAKtF,EAClB6+F,UAASpqG,KAAKowB,KAAM,EAAG7kB,EAAGkmB,KAAKiD,YAGhCnpB,EAAI,eAAiBo+F,KACrBj0F,KAAIjI,KAAKlC,EAAGgyE,SAASj4B,GAAI/5C,EAAGvL,MAC5ByS,IAAGuc,UAAUne,KAAKtF,EAClB6+F,UAASpqG,KAAKowB,KAAM,EAAG7kB,EAAGkmB,KAAKC,GAE/B,KAAI24E,IAAI,EAAEA,KAAO/kD,GAAGlxB,WAAWv4B,SAAUwuG,IAAK,CAC7C9+F,EAAI,sBAAwB8+F,IAAM,IAAMV,KACxCj0F,KAAIjI,KAAKlC,EAAGiyE,SAAS6sB,IAAI,EAAG9+F,EAAGvL,KAAMslD,IACrC7yC,IAAG6c,OAAOze,KAAKtF,EACf6+F,UAASpqG,KAAK4oG,OAAQyB,IAAK,mBAAqBA,IAAM,IAAMV,MAAOl4E,KAAK4iD,IAGzE,GAAGr0E,KAAKm3E,SAAW,MAAQn3E,KAAKm3E,QAAQt7E,OAAS,EAAG,CACnD0P,EAAI,oBAAsBo+F,KAC1Bj0F,KAAIjI,KAAKlC,EAAGmyE,UAAU19E,KAAKm3E,QAAS5rE,EAAGvL,MACvCyS,IAAG4c,KAAKxe,KAAKtF,EACb6+F,UAASpqG,KAAK4oG,SAAUyB,IAAK,iBAAmBV,MAAOl4E,KAAKqrB,KAK7DvxC,EAAI,qBACJmK,KAAIjI,KAAKlC,EAAGu8C,cACZr1C,IAAGod,OAAOhf,KAAKtF,EACf6+F,UAASpqG,KAAK4oG,SAAUyB,IAAK,mBAAoB54E,KAAKw1B,MAItD17C,GAAI,aAAeo+F,KACnBj0F,KAAIjI,KAAKlC,EAAGkyE,UAAUn4B,GAAI/5C,EAAGvL,MAC7ByS,IAAG8c,OAAO1e,KAAKtF,EACf6+F,UAASpqG,KAAK4oG,SAAUyB,IAAK,UAAYV,MAAOl4E,KAAK2zB,IAErD1vC,KAAIjI,KAAK,sBAAuB2jB,SAAS3e,GAAIzS,MAC7C0V,KAAIjI,KAAK,cAAeolB,WAAW7yB,KAAKowB,MACxC1a,KAAIjI,KAAK,qBAAuBk8F,MAAQ,QAAS92E,WAAW7yB,KAAK4oG,QACjE,OAAOlzF,KAER,QAAS+0F,WAAUl/F,EAAE7P,GACpB,QAAQA,OAAOoK,MAAQ,UACtB,IAAK,SAAU,MAAOyF,GAAE,EACxB,KAAK,SAAU,MAAO9O,QAAOH,OAAOiP,EAAEhP,OAAO,EAAE,KAAKT,WAAW,EAC/D,KAAK,SAAU,MAAOyP,GAAEzP,WAAW,EACnC,KAAK,QAAS,MAAOyP,GAAE,EACvB,SAAS,KAAM,IAAIjH,OAAM,qBAAuB5I,EAAEoK,OAIpD,QAAS4kG,UAASjvG,KAAMuE,MACvB,GAAI0V,KAAK1W,EAAIvD,IACb,IAAIC,GAAIsE,QACR,KAAItE,EAAEoK,KAAMpK,EAAEoK,KAAQnI,SAAWC,OAAOif,SAASphB,MAAS,SAAW,QACrE,QAAOC,EAAEoK,MACR,IAAK,SAAU4P,IAAM,GAAIM,OAAMhX,GAAK2rG,OAAO,MAAS,MACpD,KAAK,SAAU,IAAK,QAASj1F,IAAM,GAAIM,OAAMhX,GAAK2rG,OAAO,OAAU,MACnE,KAAK,SAAUj1F,IAAM,GAAIM,OAAMhX,EAAI,MACnC,KAAK,OAAQ0W,IAAI,GAAIM,OAAMhX,EAAE+W,IAAI5C,aAAa1X,MAAQ,MACtD,SAAS,KAAM,IAAI6I,OAAM,qBAAuB5I,EAAEoK,MAEnD,MAAOmjG,WAAUvzF,IAAKha,GAGvB,QAAS4X,UAAS7X,KAAMuE,MACvB,GAAI0V,KAAK1W,EAAIvD,KAAMmvG,OAAS,MAAO3jF,CACnC,IAAIvrB,GAAIsE,QACR,KAAItE,EAAEoK,KAAMpK,EAAEoK,KAAQnI,SAAWC,OAAOif,SAASphB,MAAS,SAAW,QACrE,IAAGC,EAAEoK,MAAQ,OAAQ,CAAE8kG,OAAS,IAAMlvG,GAAEoK,KAAO,QAAU9G,GAAI+W,IAAI5C,aAAa1X,MAC9E,OAAQwrB,EAAIwjF,UAAUzrG,EAAGtD,IACxB,IAAK,KACJ,GAAGkvG,OAAQlvG,EAAEoK,KAAO,MACpB,OAAOq/E,cAAa93E,IAAI2G,KAAKvY,KAAMC,GAAIA,EACxC,KAAK,GAAM,MAAOypF,cAAapnF,IAAIrC,EAAEoK,OAAS,SAAWrJ,OAAOH,OAAOb,MAAQA,MAAOC,EACtF,KAAK,IAAM,MAAOolF,YAAW9hF,EAAGtD,EAChC,KAAK,IACJ,GAAGkvG,OAAQlvG,EAAEoK,KAAO,MACpB,OAAO4kG,UAASjvG,KAAMuE,KACvB,SAAS,KAAM,IAAIsE,OAAM,oBAAsB2iB,IAIjD,QAAS9T,cAAa1X,KAAMuE,MAC3B,GAAItE,GAAIsE,QAAUtE,GAAEoK,KAAO,MAC3B,OAAOwN,UAAS7X,KAAMC,GAEvB,QAASmvG,gBAAevlD,GAAItlD,MAC3B,GAAItE,GAAIsE,QACR,IAAIyW,GAAI8zF,UAAUjlD,GAAI5pD,EACtB,QAAOA,EAAEoK,MACR,IAAK,SAAU,MAAO2Q,GAAEq0F,UAAUhlG,KAAK,UACvC,KAAK,SAAU,MAAO2Q,GAAEq0F,UAAUhlG,KAAK,UACvC,KAAK,SAAU,MAAO2Q,GAAEq0F,UAAUhlG,KAAK,cACvC,KAAK,OAAQ,MAAOiQ,KAAIg1F,cAAcrvG,EAAE+R,KAAMgJ,EAAEq0F,UAAUhlG,KAAK,eAC/D,SAAS,KAAM,IAAIxB,OAAM,qBAAuB5I,EAAEoK,OAIpD,QAASklG,WAAU1lD,GAAItlD,MACtB,GAAItE,GAAIsE,QACR,QAAOtE,EAAE41B,UACR,IAAK,MAAO,MAAO0vD,YAAW17B,GAAI5pD,EAClC,SAAS,MAAOmvG,gBAAevlD,GAAI5pD,IAIrC,QAASqvG,eAAczlD,GAAIlyC,SAAUpT,MACpC,GAAItE,GAAIsE,QAAUtE,GAAEoK,KAAO,MAC3BpK,GAAE+R,KAAO2F,QACT,QAAO1X,EAAE+R,KAAKlR,QAAQ,GAAG8N,eACxB,IAAK,QAAS3O,EAAE41B,SAAW,MAAQ,MACnC,KAAK,QAAS51B,EAAE41B,SAAW,MAAQ,MACnC,KAAK,QAAS51B,EAAE41B,SAAW,MAAQ,MACpC,SAAS,OAAO51B,EAAE+R,KAAKlR,QAAQ,GAAG8N,eACjC,IAAK,OAAQ3O,EAAE41B,SAAW,KAAO,MACjC,KAAK,OAAQ51B,EAAE41B,SAAW,KAAO,QAElC,MAAO05E,WAAU1lD,GAAI5pD,GAGtB,QAASuvG,YAAWC,QAAU,MAAOpjG,UAASqjG,UAAUD,QAAQ,IAAM,EACtE,QAASp/C,YAAWnnB,KAAO,MAAO,IAAMA,IAAM,GAC9C,QAASymE,SAAQC,MAAQ,MAAOA,MAAK5tG,QAAQ,kBAAkB,UAC/D,QAAS0tG,WAAUE,MAAQ,MAAOA,MAAK5tG,QAAQ,WAAW,MAE1D,QAAS6tG,YAAWC,QAAU,GAAI3sG,GAAI4sG,UAAUD,QAASvsG,EAAI,EAAGrD,EAAI,CAAG,MAAMA,IAAMiD,EAAE/C,SAAUF,EAAGqD,EAAI,GAAGA,EAAIJ,EAAE9C,WAAWH,GAAK,EAAI,OAAOqD,GAAI,EAC9I,QAAS6sD,YAAW9pC,KAAO,GAAI/jB,GAAE,EAAI,OAAM+jB,IAAKA,IAAKA,IAAI1iB,KAAKwD,OAAOkf,IAAI,GAAG,IAAK/jB,EAAI7B,OAAOC,cAAe2lB,IAAI,GAAG,GAAM,IAAM/jB,CAAG,OAAOA,GACxI,QAASytG,SAAQJ,MAAQ,MAAOA,MAAK5tG,QAAQ,WAAW,QACxD,QAAS+tG,WAAUH,MAAQ,MAAOA,MAAK5tG,QAAQ,aAAa,MAE5D,QAASiuG,YAAWL,MAAQ,MAAOA,MAAK5tG,QAAQ,sBAAsB,SAASQ,MAAM,KACrF,QAASksD,aAAYkhD,MAAQ,GAAIM,MAAOD,WAAWL,KAAO,QAASzsG,EAAE0sG,WAAWK,KAAK,IAAKjkG,EAAEujG,WAAWU,KAAK,KAC5G,QAASviD,aAAYjpC,MAAQ,MAAO0rC,YAAW1rC,KAAKvhB,GAAKktD,WAAW3rC,KAAKzY,GACzE,QAASkkG,UAASP,MAAQ,MAAOI,SAAQL,QAAQC,OACjD,QAASQ,YAAWR,MAAQ,MAAOG,WAAUL,UAAUE,OACvD,QAASS,cAAatrF,OAAS,GAAItkB,GAAGskB,MAAMviB,MAAM,KAAKtB,IAAIwtD,YAAc,QAAQnsD,EAAE9B,EAAE,GAAG4Z,EAAE5Z,EAAEA,EAAEL,OAAO,IACrG,QAASwuD,cAAa0hD,GAAGC,IACxB,GAAGA,KAAOjsG,iBAAoBisG,MAAO,SAAU,MAAO3hD,cAAa0hD,GAAG/tG,EAAG+tG,GAAGj2F,EAC5E,UAAUi2F,MAAO,SAAUA,GAAK3iD,YAAY2iD,GAAK,UAAUC,MAAO,SAAUA,GAAK5iD,YAAY4iD,GAC7F,OAAOD,KAAMC,GAAKD,GAAKA,GAAK,IAAMC,GAGnC,QAAS/hD,mBAAkBzpC,OAC1B,GAAI9kB,IAAKsC,GAAGY,EAAE,EAAE8I,EAAE,GAAGoO,GAAGlX,EAAE,EAAE8I,EAAE,GAC9B,IAAIZ,KAAM,EAAGnL,EAAI,EAAG8M,GAAK,CACzB,IAAI7M,KAAM4kB,MAAM3kB,MAChB,KAAIiL,IAAM,EAAGnL,EAAIC,MAAOD,EAAG,CAC1B,IAAI8M,GAAG+X,MAAM1kB,WAAWH,GAAG,IAAM,GAAK8M,GAAK,GAAI,KAC/C3B,KAAM,GAAGA,IAAM2B,GAEhB/M,EAAEsC,EAAEY,IAAMkI,GAEV,KAAIA,IAAM,EAAGnL,EAAIC,MAAOD,EAAG,CAC1B,IAAI8M,GAAG+X,MAAM1kB,WAAWH,GAAG,IAAM,GAAK8M,GAAK,EAAG,KAC9C3B,KAAM,GAAGA,IAAM2B,GAEhB/M,EAAEsC,EAAE0J,IAAMZ,GAEV,IAAGnL,IAAMC,KAAO4kB,MAAM1kB,aAAaH,KAAO,GAAI,CAAED,EAAEoa,EAAElX,EAAElD,EAAEsC,EAAEY,CAAGlD,GAAEoa,EAAEpO,EAAEhM,EAAEsC,EAAE0J,CAAG,OAAOhM,GAEjF,IAAIoL,IAAM,EAAGnL,GAAKC,MAAOD,EAAG,CAC3B,IAAI8M,GAAG+X,MAAM1kB,WAAWH,GAAG,IAAM,GAAK8M,GAAK,GAAI,KAC/C3B,KAAM,GAAGA,IAAM2B,GAEhB/M,EAAEoa,EAAElX,IAAMkI,GAEV,KAAIA,IAAM,EAAGnL,GAAKC,MAAOD,EAAG,CAC3B,IAAI8M,GAAG+X,MAAM1kB,WAAWH,GAAG,IAAM,GAAK8M,GAAK,EAAG,KAC9C3B,KAAM,GAAGA,IAAM2B,GAEhB/M,EAAEoa,EAAEpO,IAAMZ,GACV,OAAOpL,GAGR,QAASuwG,kBAAiB9rF,KAAMphB,GAC/B,GAAGohB,KAAK1J,IAAM1W,UAAW,IAAM,MAAQogB,MAAK1c,EAAIjF,IAAImN,OAAOwU,KAAK1J,EAAG1X,GAAO,MAAM+W,IAChF,IAAIqK,KAAKqhE,GAAI,MAAOziF,EACpB,KAAM,MAAQohB,MAAK1c,EAAIjF,IAAImN,OAAOwU,KAAKqhE,GAAGpgD,MAAM,EAAGriC,GAAO,MAAM+W,GAAK,MAAO,GAAG/W,GAGhF,QAASmtG,aAAY/rF,KAAMphB,GAC1B,GAAGohB,MAAQ,MAAQA,KAAKlhB,GAAK,KAAM,MAAO,EAC1C,IAAGkhB,KAAK1c,IAAM1D,UAAW,MAAOogB,MAAK1c,CACrC,IAAG1E,IAAMgB,UAAW,MAAOksG,kBAAiB9rF,KAAMA,KAAKphB,EACvD,OAAOktG,kBAAiB9rF,KAAMphB,GAG/B,QAASotG,eAAcr9E,MAAO9uB,MAC7B,GAAIgG,KAAK2+B,IAAKnkB,MAAOjS,OAAS,EAAGyE,OAAS,EAAGtL,EAAGi+B,OAAUymE,QAAS37F,EAAGC,EAAG3R,CACzE,IAAIrD,GAAIsE,MAAQ,KAAOA,OACvB,IAAI+P,KAAMrU,EAAEqU,GACZ,IAAG+e,OAAS,MAAQA,MAAM,SAAW,KAAM,QAC3CtO,OAAQ9kB,EAAE8kB,QAAUzgB,UAAYrE,EAAE8kB,MAAQsO,MAAM,OAChD,IAAGpzB,EAAE6S,SAAW,EAAGA,OAAS,MACvB,IAAG7S,EAAE6S,SAAW,IAAKA,OAAS,MAC9B,IAAGzQ,MAAM6e,QAAQjhB,EAAE6S,QAASA,OAAS,CAC1C,cAAciS,QACb,IAAK,SAAU9Y,EAAIuiD,kBAAkBzpC,MAAQ,MAC7C,KAAK,SAAU9Y,EAAIuiD,kBAAkBn7B,MAAM,QAAUpnB,GAAE1J,EAAE0J,EAAI8Y,KAAO,MACpE,SAAS9Y,EAAI8Y,MAEd,GAAGjS,OAAS,EAAGyE,OAAS,CACxB,IAAIjL,IAAK+jD,WAAWpkD,EAAE1J,EAAE0J,EACxB,IAAI0nD,MAAO,GAAItxD,OAAM4J,EAAEoO,EAAElX,EAAE8I,EAAE1J,EAAEY,EAAE,EACjC,IAAImG,KAAM,GAAIjH,OAAM4J,EAAEoO,EAAEpO,EAAEA,EAAE1J,EAAE0J,EAAEsL,OAAO,EACvC,IAAIq5F,MAAO,CACX,KAAI37F,EAAIhJ,EAAE1J,EAAEY,EAAG8R,GAAKhJ,EAAEoO,EAAElX,IAAK8R,EAAG,CAC/B0+C,KAAK1+C,GAAKm7C,WAAWn7C,EACrB1K,KAAM8oB,MAAMsgC,KAAK1+C,GAAK3I,GACtB,QAAOwG,QACN,IAAK,GAAGo3B,IAAIj1B,GAAKA,CAAG,MACpB,KAAK,GAAGi1B,IAAIj1B,GAAK0+C,KAAK1+C,EAAI,MAC1B,KAAK,GAAGi1B,IAAIj1B,GAAKhV,EAAE6S,OAAOmC,EAAIhJ,EAAE1J,EAAEY,EAAI,MACtC,SACC,GAAGoH,MAAQjG,UAAW,QACtB4lC,KAAIj1B,GAAKw7F,YAAYlmG,MAIxB,IAAKyK,EAAI/I,EAAE1J,EAAE0J,EAAIsL,OAAQvC,GAAK/I,EAAEoO,EAAEpO,IAAK+I,EAAG,CACzC1I,GAAK+jD,WAAWr7C,EAChB27F,SAAU,IACV,IAAG79F,SAAW,EAAGo2B,WACZ,CACJA,MACA,IAAGtwB,OAAOi4F,eAAgBj4F,OAAOi4F,eAAe3nE,IAAK,cAAe3sB,MAAMvH,EAAG87F,WAAW,YACnF5nE,KAAI6nE,WAAa/7F,EAEvB,IAAKC,EAAIhJ,EAAE1J,EAAEY,EAAG8R,GAAKhJ,EAAEoO,EAAElX,IAAK8R,EAAG,CAChC1K,IAAM8oB,MAAMsgC,KAAK1+C,GAAK3I,GACtB,IAAG/B,MAAQjG,WAAaiG,IAAI/G,IAAMc,UAAW,QAC7ChB,GAAIiH,IAAIjH,CACR,QAAOiH,IAAI/G,GACV,IAAK,IAAK,QACV,KAAK,IAAK,KACV,KAAK,IAAK,IAAK,IAAK,KACpB,SAAS,KAAM,qBAAuB+G,IAAI/G,EAE3C,GAAGF,IAAMgB,UAAW,CACnB4kC,IAAIgB,IAAIj1B,IAAMX,IAAMhR,EAAImtG,YAAYlmG,IAAIjH,EACxCqtG,SAAU,OAGZ,GAAGA,UAAY,OAAS79F,SAAW,EAAGxJ,IAAIsnG,QAAU1nE,IAErD5/B,IAAIlJ,OAASwwG,IACb,OAAOtnG,KAGR,QAAS0nG,2BAA0B39E,MAAO9uB,MAAQ,MAAOmsG,eAAcr9E,MAAO9uB,MAAQ,KAAOA,SAE7F,QAAS0sG,cAAa59E,MAAO9uB,MAC5B,GAAI+E,KAAM,GAAI4nG,IAAM,GAAIC,KAAO,IAC/B,IAAIlxG,GAAIsE,MAAQ,QAAYA,IAC5B,IAAG8uB,OAAS,MAAQA,MAAM,SAAW,KAAM,MAAO,EAClD,IAAIpnB,GAAIuiD,kBAAkBn7B,MAAM,QAChC,IAAI+9E,IAAKnxG,EAAEmxG,KAAO9sG,UAAYrE,EAAEmxG,GAAK,IAAK35F,GAAK25F,GAAG/wG,WAAW,EAC7D,IAAIgxG,IAAKpxG,EAAEoxG,KAAO/sG,UAAYrE,EAAEoxG,GAAK,KAAM5wD,GAAK4wD,GAAGhxG,WAAW,EAC9D,IAAI6oC,KAAM,GAAI58B,GAAK,GAAIqnD,OACvB,IAAIzzD,GAAI,EAAG8M,GAAK,EAAGzC,GACnB,IAAIyK,GAAI,EAAGC,EAAI,CACf,KAAIA,EAAIhJ,EAAE1J,EAAEY,EAAG8R,GAAKhJ,EAAEoO,EAAElX,IAAK8R,EAAG0+C,KAAK1+C,GAAKm7C,WAAWn7C,EACrD,KAAID,EAAI/I,EAAE1J,EAAE0J,EAAG+I,GAAK/I,EAAEoO,EAAEpO,IAAK+I,EAAG,CAC/Bk0B,IAAM,EACN58B,IAAK+jD,WAAWr7C,EAChB,KAAIC,EAAIhJ,EAAE1J,EAAEY,EAAG8R,GAAKhJ,EAAEoO,EAAElX,IAAK8R,EAAG,CAC/B1K,IAAM8oB,MAAMsgC,KAAK1+C,GAAK3I,GACtB4kG,KAAM3mG,MAAQjG,UAAY,GAAGmsG,YAAYlmG,KAAO,EAChD,KAAIrK,EAAI,EAAG8M,GAAK,EAAG9M,IAAMgxG,IAAI9wG,SAAUF,EAAG,IAAI8M,GAAKkkG,IAAI7wG,WAAWH,MAAQuX,IAAMzK,KAAOyzC,IAAMzzC,KAAO,GAAI,CACvGkkG,IAAM,IAAOA,IAAIlvG,QAAQmvG,KAAM,MAAQ,GAAM,OAC9CjoE,MAAQj0B,IAAMhJ,EAAE1J,EAAEY,EAAI,GAAKiuG,IAAMF,IAElC5nG,KAAO4/B,IAAMmoE,GAEd,MAAO/nG,KAER,GAAIgoG,UAAWL,YAEf,SAASM,mBAAkBl+E,OAC1B,GAAIm+E,MAAMntG,EAAI,GAAI5D,EAAG8J,IAAI,EACzB,IAAG8oB,OAAS,MAAQA,MAAM,SAAW,KAAM,MAAO,EAClD,IAAIpnB,GAAIuiD,kBAAkBn7B,MAAM,SAAU/mB,GAAK,GAAIqnD,QAAW1+C,CAC9Du8F,MAAO,GAAInvG,QAAO4J,EAAEoO,EAAEpO,EAAEA,EAAE1J,EAAE0J,EAAE,IAAIA,EAAEoO,EAAElX,EAAE8I,EAAE1J,EAAEY,EAAE,GAC9C,IAAIjD,GAAI,CACR,KAAI+U,EAAIhJ,EAAE1J,EAAEY,EAAG8R,GAAKhJ,EAAEoO,EAAElX,IAAK8R,EAAG0+C,KAAK1+C,GAAKm7C,WAAWn7C,EACrD,KAAI,GAAID,GAAI/I,EAAE1J,EAAE0J,EAAG+I,GAAK/I,EAAEoO,EAAEpO,IAAK+I,EAAG,CACnC1I,GAAK+jD,WAAWr7C,EAChB,KAAIC,EAAIhJ,EAAE1J,EAAEY,EAAG8R,GAAKhJ,EAAEoO,EAAElX,IAAK8R,EAAG,CAC/B5Q,EAAIsvD,KAAK1+C,GAAK3I,EACd7L,GAAI4yB,MAAMhvB,EACVkG,KAAM,EACN,IAAG9J,IAAM6D,UAAW,QACpB,IAAG7D,EAAEqP,GAAK,KAAMvF,IAAM9J,EAAEqP,MACnB,IAAGrP,EAAEuH,IAAM1D,UAAWiG,IAAM,IAAM9J,EAAEuH,MACpC,IAAGvH,EAAE6C,IAAMgB,UAAW,aACtBiG,KAAM,GAAG9J,EAAE6C,CAChBkuG,MAAKtxG,KAAOmE,EAAI,IAAMkG,KAGxBinG,KAAKpxG,OAASF,CACd,OAAOsxG,MAGR,GAAI5wG,QACHwvD,WAAYA,WACZC,WAAYA,WACZ1C,YAAaA,YACbiB,aAAcA,aACdihD,WAAYA,WACZL,WAAYA,WACZS,WAAYA,WACZvhD,YAAaA,YACb2hD,aAAcA,aACdI,YAAaA,YACbgB,aAAcF,kBACdD,SAAUL,aACVS,UAAWhB,cACXiB,cAAeJ,kBACfN,aAAcA,aACdP,cAAeA,cACfa,kBAAmBA,kBACnBP,0BAA2BA,0BAE5B5xG,MAAKsqF,aAAeA,YACpBtqF,MAAKouG,UAAYA,SACjBpuG,MAAKmZ,KAAOV,QACZzY,MAAKwyG,SAAWl6F,YAChBtY,MAAKsY,aAAeA,YACpBtY,MAAKyyG,MAAQtC,SACbnwG,MAAK0yG,UAAYxC,aACjBlwG,MAAKkwG,cAAgBA,aACrBlwG,MAAKwB,MAAQA,KACbxB,MAAKwS,IAAMA,GACXxS,MAAK2D,IAAMA,YACD+O,WAAY,YAAcA,QAAU1S,KAC9C,IAAI2yG,KAAM3yG"} \ No newline at end of file diff --git a/index.html b/index.html index 8ba2df2..d5013b6 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + @@ -21,7 +21,7 @@ -JS-XLSX (XLSX/XLSB/XLSM) Live Demo
+JS-XLSX (XLSX/XLSB/XLSM/XLS/XML) Live Demo
Output Format: JSON
FORMULAE
--> -
Drop an XLSX / XLSM / XLSB / ODS file here to see sheet data
+
Drop an XLSX / XLSM / XLSB / ODS / XLS / XML file here to see sheet data

... or click here to select a file


@@ -50,6 +50,16 @@ Use readAsBinaryString: (when available) - diff --git a/misc/_bower.json b/misc/_bower.json index 0d09a1b..ee37605 100644 --- a/misc/_bower.json +++ b/misc/_bower.json @@ -11,10 +11,13 @@ ], "keywords": [ "excel", + "xls", + "xml", "xlsx", "xlsm", "xlsb", "ods", + "js-xls" "js-xlsx" ] } diff --git a/misc/cfb.d.ts b/misc/cfb.d.ts new file mode 100644 index 0000000..3a46614 --- /dev/null +++ b/misc/cfb.d.ts @@ -0,0 +1,104 @@ +declare enum CFBEntryType { unknown, storage, stream, lockbytes, property, root } +declare enum CFBStorageType { fat, minifat } + +/* CFB Entry Object demanded by write functions */ +interface CFBEntryMin { + + /* Raw Content (Buffer when available, Array of bytes otherwise) */ + content:any; +} + +/* CFB Entry Object returned by parse functions */ +interface CFBEntry extends CFBEntryMin { + + /* Case-sensitive internal name */ + name:string; + + /* CFB type (salient types: stream, storage) -- see CFBEntryType */ + type:string; + + /* Creation Time */ + ct:Date; + /* Modification Time */ + mt:Date; + + + /* Raw creation time -- see [MS-DTYP] 2.3.3 FILETIME */ + mtime:string; + /* Raw modification time -- see [MS-DTYP] 2.3.3 FILETIME */ + ctime:string; + + /* RBT color: 0 = red, 1 = black */ + color:number; + + /* Class ID represented as hex string */ + clsid:string; + + /* User-Defined State Bits */ + state:number; + + /* Starting Sector */ + start:number; + + /* Data Size */ + size:number; + + /* Storage location -- see CFBStorageType */ + storage:string; +} + + +/* cfb.FullPathDir as demanded by write functions */ +interface CFBDirectoryMin { + + /* keys are unix-style paths */ + [key:string]: CFBEntryMin; +} + +/* cfb.FullPathDir Directory object */ +interface CFBDirectory extends CFBDirectoryMin { + + /* cfb.FullPathDir keys are paths; cfb.Directory keys are file names */ + [key:string]: CFBEntry; +} + + +/* cfb object demanded by write functions */ +interface CFBContainerMin { + + /* Path -> CFB object mapping */ + FullPathDir:CFBDirectoryMin; +} + +/* cfb object returned by read and parse functions */ +interface CFBContainer extends CFBContainerMin { + + /* search by path or file name */ + find(string):CFBEntry; + + /* list of streams and storages */ + FullPaths:string[]; + + /* Path -> CFB object mapping */ + FullPathDir:CFBDirectory; + + /* Array of entries in the same order as FullPaths */ + FileIndex:CFBEntry[]; + + /* Raw Content, in chunks (Buffer when available, Array of bytes otherwise) */ + raw:any[]; +} + + +interface CFB { + read(f:any, options:any):CFBContainer; + parse(f:any):CFBContainer; + utils: { + ReadShift(size:any,t?:any):any; + WarnField(hexstr:string,fld?:string); + CheckField(hexstr:string,fld?:string); + prep_blob(blob:any, pos?:number):any; + bconcat(bufs:any[]):any; + }; + main; +} diff --git a/misc/strip_sourcemap.sh b/misc/strip_sourcemap.sh new file mode 100755 index 0000000..2d0d132 --- /dev/null +++ b/misc/strip_sourcemap.sh @@ -0,0 +1,11 @@ +#!/bin/bash +# strip_sourcemap.sh -- strip sourcemaps from a JS file (missing from uglifyjs) +# Copyright (C) 2014-2015 SheetJS + +if [ $# -gt 0 ]; then + if [ -e "$1" ]; then + sed -i .sheetjs '/sourceMappingURL/d' "$1" + fi +else + cat - | sed '/sourceMappingURL/d' +fi diff --git a/misc/xl.d.ts b/misc/xl.d.ts index c699cc1..f12a4be 100644 --- a/misc/xl.d.ts +++ b/misc/xl.d.ts @@ -1,3 +1,5 @@ +/// + interface Cell { v; w?: string; @@ -7,9 +9,25 @@ interface Cell { h?: string; c?: any; z?: string; + ixfe?: number; } -interface Worksheet { +interface CellAddress { + c: number; + r: number; +} + +interface CellRange { + s: CellAddress; + e: CellAddress; +} + +interface WorksheetBase { + '!range':CellRange; + '!ref':string; +} + +interface Worksheet extends WorksheetBase { [key: string]: Cell; } @@ -23,10 +41,25 @@ interface Workbook { } interface XLSX { - verbose: Number; + parse_xlscfb(cfb:CFBContainer): Workbook; + read; readFile(filename: string): Workbook; utils: { + encode_col(col: number): string; + encode_row(row: number): string; + encode_cell(cell: CellAddress): string; + encode_range; + decode_col(col: string): number; + decode_row(row: string): number; + split_cell(cell: string): string[]; + decode_cell(cell: string): CellAddress; + decode_range(cell: string): CellRange; + sheet_to_csv(worksheet: Worksheet): string; get_formulae(worksheet: Worksheet): string[]; make_csv(worksheet: Worksheet): string; + sheet_to_row_object_array(worksheet: Worksheet): Object[]; }; + verbose: Number; + CFB:CFB; + main; } diff --git a/ods.js b/ods.js index 6851c02..9d498b0 100644 --- a/ods.js +++ b/ods.js @@ -15,6 +15,12 @@ var get_utils = function() { throw new Error("Cannot find XLSX utils"); }; var has_buf = (typeof Buffer !== 'undefined'); + +function cc2str(arr) { + var o = ""; + for(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]); + return o; +} function getdata(data) { if(!data) return null; if(data.data) return data.data; diff --git a/odsbits/20_jsutils.js b/odsbits/20_jsutils.js index dcc7b9d..e3f04f8 100644 --- a/odsbits/20_jsutils.js +++ b/odsbits/20_jsutils.js @@ -1 +1,7 @@ var has_buf = (typeof Buffer !== 'undefined'); + +function cc2str(arr) { + var o = ""; + for(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]); + return o; +} diff --git a/package.json b/package.json index 4c03a98..b1053b0 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { "name": "xlsx", - "version": "0.7.12", + "version": "0.8.0", "author": "sheetjs", - "description": "Excel 2007+ spreadsheet (XLSB/XLSX/XLSM) and ODS parser and writer", - "keywords": [ "excel", "xlsx", "xlsb", "xlsm", "ods", "office", "spreadsheet" ], + "description": "Excel (XLSB/XLSX/XLSM/XLS/XML) and ODS spreadsheet parser and writer", + "keywords": [ "excel", "xls", "xlsx", "xlsb", "xlsm", "ods", "office", "spreadsheet" ], "bin": { "xlsx": "./bin/xlsx.njs" }, @@ -20,14 +20,12 @@ "devDependencies": { "mocha":"", "xlsjs":"", - "uglify-js":"", - "jasmine-node": "x" + "uglify-js":"" }, "repository": { "type":"git", "url":"git://github.com/SheetJS/js-xlsx.git" }, "scripts": { "pretest": "git submodule init && git submodule update", - "test": "make test", - "test-jasmine": "jasmine-node --verbose tests/" + "test": "make test" }, "config": { "blanket": { diff --git a/test.js b/test.js index d4601ad..2c829e2 100644 --- a/test.js +++ b/test.js @@ -1,4 +1,5 @@ /* vim: set ts=2: */ +/*jshint loopfunc:true, eqnull:true */ var X; var modp = './'; //var modp = 'xlsx'; @@ -11,7 +12,7 @@ if(process.env.WTF) { opts.cellStyles = true; } var fullex = [".xlsb", ".xlsm", ".xlsx"]; -var ex = fullex.slice(); ex.push(".ods"); +var ex = fullex.slice(); ex.push(".ods"); ex.push(".xls"); ex.push("xml"); if(process.env.FMTS === "full") process.env.FMTS = ex.join(":"); if(process.env.FMTS) ex=process.env.FMTS.split(":").map(function(x){return x[0]==="."?x:"."+x;}); var exp = ex.map(function(x){ return x + ".pending"; }); @@ -30,38 +31,56 @@ function fixjson(x) { return x.replace(/[\r\n]+$/,""); } var dir = "./test_files/"; var paths = { - cp1: dir + 'custom_properties.xlsx', - cp2: dir + 'custom_properties.xlsb', - css1: dir + 'cell_style_simple.xlsx', - css2: dir + 'cell_style_simple.xlsb', - cst1: dir + 'comments_stress_test.xlsx', - cst2: dir + 'comments_stress_test.xlsb', - fst1: dir + 'formula_stress_test.xlsx', - fst2: dir + 'formula_stress_test.xlsb', - fst3: dir + 'formula_stress_test.ods', - fstb: dir + 'formula_stress_test.xlsb', - hl1: dir + 'hyperlink_stress_test_2011.xlsx', - hl2: dir + 'hyperlink_stress_test_2011.xlsb', - lon1: dir + 'LONumbers.xlsx', - mc1: dir + 'merge_cells.xlsx', - mc2: dir + 'merge_cells.xlsb', - mc3: dir + 'merge_cells.ods', - nf1: dir + 'number_format.xlsm', - nf2: dir + 'number_format.xlsb', - dt1: dir + 'xlsx-stream-d-date-cell.xlsx', - dt2: dir + 'xlsx-stream-d-date-cell.xlsb', - swc1: dir + 'apachepoi_SimpleWithComments.xlsx', - swc2: dir + '2013/apachepoi_SimpleWithComments.xlsx.xlsb' + cpxls: dir + 'custom_properties.xls', + cpxml: dir + 'custom_properties.xls.xml', + cpxlsx: dir + 'custom_properties.xlsx', + cpxlsb: dir + 'custom_properties.xlsb', + cssxls: dir + 'cell_style_simple.xls', + cssxml: dir + 'cell_style_simple.xml', + cssxlsx: dir + 'cell_style_simple.xlsx', + cssxlsb: dir + 'cell_style_simple.xlsb', + cstxls: dir + 'comments_stress_test.xls', + cstxml: dir + 'comments_stress_test.xls.xml', + cstxlsx: dir + 'comments_stress_test.xlsx', + cstxlsb: dir + 'comments_stress_test.xlsb', + fstxls: dir + 'formula_stress_test.xls', + fstxml: dir + 'formula_stress_test.xls.xml', + fstxlsx: dir + 'formula_stress_test.xlsx', + fstxlsb: dir + 'formula_stress_test.xlsb', + fstods: dir + 'formula_stress_test.ods', + hlxls: dir + 'hyperlink_stress_test_2011.xls', + hlxml: dir + 'hyperlink_stress_test_2011.xml', + hlxlsx: dir + 'hyperlink_stress_test_2011.xlsx', + hlxlsb: dir + 'hyperlink_stress_test_2011.xlsb', + lonxls: dir + 'LONumbers.xls', + lonxlsx: dir + 'LONumbers.xlsx', + mcxls: dir + 'merge_cells.xls', + mcxml: dir + 'merge_cells.xls.xml', + mcxlsx: dir + 'merge_cells.xlsx', + mcxlsb: dir + 'merge_cells.xlsb', + mcods: dir + 'merge_cells.ods', + nfxls: dir + 'number_format.xls', + nfxml: dir + 'number_format.xls.xml', + nfxlsx: dir + 'number_format.xlsm', + nfxlsb: dir + 'number_format.xlsb', + dtxlsx: dir + 'xlsx-stream-d-date-cell.xlsx', + dtxlsb: dir + 'xlsx-stream-d-date-cell.xlsb', + swcxls: dir + 'apachepoi_SimpleWithComments.xls', + swcxml: dir + '2011/apachepoi_SimpleWithComments.xls.xml', + swcxlsx: dir + 'apachepoi_SimpleWithComments.xlsx', + swcxlsb: dir + '2013/apachepoi_SimpleWithComments.xlsx.xlsb' }; var N1 = 'XLSX'; var N2 = 'XLSB'; +var N3 = 'XLS'; +var N4 = 'XML'; function parsetest(x, wb, full, ext) { ext = (ext ? " [" + ext + "]": ""); if(!full && ext) return; describe(x + ext + ' should have all bits', function() { - var sname = dir + '2011/' + x + '.sheetnames'; + var sname = dir + '2011/' + x.substr(x.lastIndexOf('/')+1) + '.sheetnames'; it('should have all sheets', function() { wb.SheetNames.forEach(function(y) { assert(wb.Sheets[y], 'bad sheet ' + y); }); }); @@ -101,6 +120,12 @@ function parsetest(x, wb, full, ext) { if(!fs.existsSync(name)) name=(dir + root + '.xlsm.' + i + type); if(!fs.existsSync(name)) name=(dir + root + '.xls.' + i + type); } + if(x.substr(-4) === ".xls") { + root = x.slice(0,-4); + if(!fs.existsSync(name)) name=(dir + root + '.xlsx.' + i + type); + if(!fs.existsSync(name)) name=(dir + root + '.xlsm.' + i + type); + if(!fs.existsSync(name)) name=(dir + root + '.xlsb.' + i + type); + } return name; }; describe(x + ext + ' should generate correct CSV output', function() { @@ -130,12 +155,24 @@ function parsetest(x, wb, full, ext) { }); }); }); + if(fs.existsSync(dir + '2011/' + x + '.xml')) + describe(x + ext + '.xml from 2011', function() { + it('should parse', function() { + var wb = X.readFile(dir + '2011/' + x + '.xml', opts); + }); + }); if(fs.existsSync(dir + '2013/' + x + '.xlsb')) describe(x + ext + '.xlsb from 2013', function() { it('should parse', function() { var wb = X.readFile(dir + '2013/' + x + '.xlsb', opts); }); }); + if(fs.existsSync(dir + x + '.xml' + ext)) + describe(x + '.xml', function() { + it('should parse', function() { + var wb = X.readFile(dir + x + '.xml', opts); + }); + }); } var wbtable = {}; @@ -171,16 +208,16 @@ describe('parse options', function() { X = require(modp); }); describe('cell', function() { - it('should generate HTML by default', function() { - var wb = X.readFile(paths.cst1); + it('XLSX should generate HTML by default', function() { + var wb = X.readFile(paths.cstxlsx); var ws = wb.Sheets.Sheet1; Object.keys(ws).forEach(function(addr) { if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; assert(html_cell_types.indexOf(ws[addr].t) === -1 || ws[addr].h); }); }); - it('should not generate HTML when requested', function() { - var wb = X.readFile(paths.cst1, {cellHTML:false}); + it('XLSX should not generate HTML when requested', function() { + var wb = X.readFile(paths.cstxlsx, {cellHTML:false}); var ws = wb.Sheets.Sheet1; Object.keys(ws).forEach(function(addr) { if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; @@ -188,49 +225,58 @@ describe('parse options', function() { }); }); it('should generate formulae by default', function() { - var wb = X.readFile(paths.fstb); - var found = false; - wb.SheetNames.forEach(function(s) { - var ws = wb.Sheets[s]; - Object.keys(ws).forEach(function(addr) { - if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; - if(typeof ws[addr].f !== 'undefined') return found = true; + [paths.fstxls, paths.fstxlsb].forEach(function(p) { + var wb = X.readFile(p); + var found = false; + wb.SheetNames.forEach(function(s) { + var ws = wb.Sheets[s]; + Object.keys(ws).forEach(function(addr) { + if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; + if(typeof ws[addr].f !== 'undefined') return (found = true); + }); }); + assert(found); }); - assert(found); }); it('should not generate formulae when requested', function() { - var wb =X.readFile(paths.fstb,{cellFormula:false}); - wb.SheetNames.forEach(function(s) { - var ws = wb.Sheets[s]; - Object.keys(ws).forEach(function(addr) { - if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; - assert(typeof ws[addr].f === 'undefined'); + [paths.fstxls, paths.fstxlsb].forEach(function(p) { + var wb =X.readFile(p,{cellFormula:false}); + wb.SheetNames.forEach(function(s) { + var ws = wb.Sheets[s]; + Object.keys(ws).forEach(function(addr) { + if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; + assert(typeof ws[addr].f === 'undefined'); + }); }); }); }); it('should not generate number formats by default', function() { - var wb = X.readFile(paths.nf1); - wb.SheetNames.forEach(function(s) { - var ws = wb.Sheets[s]; - Object.keys(ws).forEach(function(addr) { - if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; - assert(typeof ws[addr].z === 'undefined'); + [paths.nfxls, paths.nfxlsx].forEach(function(p) { + var wb = X.readFile(p); + wb.SheetNames.forEach(function(s) { + var ws = wb.Sheets[s]; + Object.keys(ws).forEach(function(addr) { + if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; + assert(typeof ws[addr].z === 'undefined'); + }); }); }); }); it('should generate number formats when requested', function() { - var wb = X.readFile(paths.nf1, {cellNF: true}); - wb.SheetNames.forEach(function(s) { - var ws = wb.Sheets[s]; - Object.keys(ws).forEach(function(addr) { - if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; - assert(ws[addr].t!== 'n' || typeof ws[addr].z !== 'undefined'); + [paths.nfxls, paths.nfxlsx].forEach(function(p) { + var wb = X.readFile(p, {cellNF: true}); + wb.SheetNames.forEach(function(s) { + var ws = wb.Sheets[s]; + Object.keys(ws).forEach(function(addr) { + if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; + assert(ws[addr].t!== 'n' || typeof ws[addr].z !== 'undefined'); + }); }); }); }); it('should not generate cell styles by default', function() { - var wb = X.readFile(paths.css1); + [paths.cssxlsx, paths.cssxls, paths.cssxml].forEach(function(p) { + var wb = X.readFile(p); wb.SheetNames.forEach(function(s) { var ws = wb.Sheets[s]; Object.keys(ws).forEach(function(addr) { @@ -238,21 +284,25 @@ describe('parse options', function() { assert(typeof ws[addr].s === 'undefined'); }); }); + }); }); - it('XLSX should generate cell styles when requested', function() { - var wb = X.readFile(paths.css1, {cellStyles:true}); + it('should generate cell styles when requested', function() { + /* TODO: XLS / XLML */ + [paths.cssxlsx, /*paths.cssxls, paths.cssxml*/].forEach(function(p) { + var wb = X.readFile(p, {cellStyles:true}); var found = false; wb.SheetNames.forEach(function(s) { var ws = wb.Sheets[s]; Object.keys(ws).forEach(function(addr) { if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; - if(typeof ws[addr].s !== 'undefined') return found = true; + if(typeof ws[addr].s !== 'undefined') return (found = true); }); }); assert(found); + }); }); it('should not generate cell dates by default', function() { - var wb = X.readFile(paths.dt1); + var wb = X.readFile(paths.dtxlsx); wb.SheetNames.forEach(function(s) { var ws = wb.Sheets[s]; Object.keys(ws).forEach(function(addr) { @@ -262,7 +312,7 @@ describe('parse options', function() { }); }); it('XLSB should not generate cell dates', function() { - var wb = X.readFile(paths.dt2, {cellDates: true}); + var wb = X.readFile(paths.dtxlsb, {cellDates: true}); wb.SheetNames.forEach(function(s) { var ws = wb.Sheets[s]; Object.keys(ws).forEach(function(addr) { @@ -272,13 +322,13 @@ describe('parse options', function() { }); }); it('XLSX should generate cell dates when requested', function() { - var wb = X.readFile(paths.dt1, {cellDates: true}); + var wb = X.readFile(paths.dtxlsx, {cellDates: true}); var found = false; wb.SheetNames.forEach(function(s) { var ws = wb.Sheets[s]; Object.keys(ws).forEach(function(addr) { if(addr[0] === "!" || !ws.hasOwnProperty(addr)) return; - if(ws[addr].t === 'd') return found = true; + if(ws[addr].t === 'd') return (found = true); }); }); assert(found); @@ -286,19 +336,17 @@ describe('parse options', function() { }); describe('sheet', function() { it('should not generate sheet stubs by default', function() { - var wb = X.readFile(paths.mc1); - assert.throws(function() { wb.Sheets.Merge.A2.v; }); - wb = X.readFile(paths.mc2); - assert.throws(function() { wb.Sheets.Merge.A2.v; }); - wb = X.readFile(paths.mc3); - assert.throws(function() { wb.Sheets.Merge.A2.v; }); + [paths.mcxlsx, paths.mcxlsb, paths.mcods, paths.mcxls, paths.mcxml].forEach(function(p) { + var wb = X.readFile(p); + assert.throws(function() { return wb.Sheets.Merge.A2.v; }); + }); }); it('should generate sheet stubs when requested', function() { - var wb = X.readFile(paths.mc1, {sheetStubs:true}); - assert(typeof wb.Sheets.Merge.A2.t !== 'undefined'); - wb = X.readFile(paths.mc2, {sheetStubs:true}); - assert(typeof wb.Sheets.Merge.A2.t !== 'undefined'); - /* TODO: ODS */ + /* TODO: ODS/XLS/XML */ + [paths.mcxlsx, paths.mcxlsb /*, paths.mcods, paths.mcxls, paths.mcxml*/].forEach(function(p) { + var wb = X.readFile(p, {sheetStubs:true}); + assert(typeof wb.Sheets.Merge.A2.t !== 'undefined'); + }); }); function checkcells(wb, A46, B26, C16, D2) { assert((typeof wb.Sheets.Text.A46 !== 'undefined') == A46); @@ -307,84 +355,83 @@ describe('parse options', function() { assert((typeof wb.Sheets.Text.D2 !== 'undefined') == D2); } it('should read all cells by default', function() { - var wb = X.readFile(paths.fst1); - checkcells(wb, true, true, true, true); - wb = X.readFile(paths.fst2); - checkcells(wb, true, true, true, true); - wb = X.readFile(paths.fst3); - checkcells(wb, true, true, true, true); + [paths.fstxlsx, paths.fstxlsb, paths.fstods, paths.fstxls, paths.fstxml].forEach(function(p) { + checkcells(X.readFile(p), true, true, true, true); + }); }); it('sheetRows n=20', function() { - var wb = X.readFile(paths.fst1, {sheetRows:20}); - checkcells(wb, false, false, true, true); - wb = X.readFile(paths.fst2, {sheetRows:20}); - checkcells(wb, false, false, true, true); - wb = X.readFile(paths.fst3, {sheetRows:20}); - checkcells(wb, false, false, true, true); + [paths.fstxlsx, paths.fstxlsb, paths.fstods, paths.fstxls, paths.fstxml].forEach(function(p) { + checkcells(X.readFile(p, {sheetRows:20}), false, false, true, true); + }); }); it('sheetRows n=10', function() { - var wb = X.readFile(paths.fst1, {sheetRows:10}); - checkcells(wb, false, false, false, true); - wb = X.readFile(paths.fst2, {sheetRows:10}); - checkcells(wb, false, false, false, true); - wb = X.readFile(paths.fst3, {sheetRows:10}); - checkcells(wb, false, false, false, true); + [paths.fstxlsx, paths.fstxlsb, paths.fstods, paths.fstxls, paths.fstxml].forEach(function(p) { + checkcells(X.readFile(p, {sheetRows:10}), false, false, false, true); + }); }); }); describe('book', function() { it('bookSheets should not generate sheets', function() { - var wb = X.readFile(paths.mc1, {bookSheets:true}); - assert(typeof wb.Sheets === 'undefined'); - var wb = X.readFile(paths.mc2, {bookSheets:true}); - assert(typeof wb.Sheets === 'undefined'); + [paths.mcxlsx, paths.mcxlsb, paths.mcxls, paths.mcxml].forEach(function(p) { + var wb = X.readFile(p, {bookSheets:true}); + assert(typeof wb.Sheets === 'undefined'); + }); }); it('bookProps should not generate sheets', function() { - var wb = X.readFile(paths.nf1, {bookProps:true}); - assert(typeof wb.Sheets === 'undefined'); - wb = X.readFile(paths.nf2, {bookProps:true}); - assert(typeof wb.Sheets === 'undefined'); + [paths.nfxlsx, paths.nfxlsb, paths.nfxls, paths.nfxml].forEach(function(p) { + var wb = X.readFile(p, {bookProps:true}); + assert(typeof wb.Sheets === 'undefined'); + }); }); it('bookProps && bookSheets should not generate sheets', function() { - var wb = X.readFile(paths.lon1, {bookProps:true, bookSheets:true}); - assert(typeof wb.Sheets === 'undefined'); + [paths.lonxlsx, paths.lonxls].forEach(function(p) { + var wb = X.readFile(p, {bookProps:true, bookSheets:true}); + assert(typeof wb.Sheets === 'undefined'); + }); }); it('should not generate deps by default', function() { - var wb = X.readFile(paths.fst1); - assert(typeof wb.Deps === 'undefined' || !(wb.Deps.length>0)); - wb = X.readFile(paths.fst2); - assert(typeof wb.Deps === 'undefined' || !(wb.Deps.length>0)); + [paths.fstxlsx, paths.fstxlsb, paths.fstxls, paths.fstxml].forEach(function(p) { + var wb = X.readFile(p); + assert(typeof wb.Deps === 'undefined' || !(wb.Deps && wb.Deps.length>0)); + }); }); - it('bookDeps should generate deps', function() { - var wb = X.readFile(paths.fst1, {bookDeps:true}); - assert(typeof wb.Deps !== 'undefined' && wb.Deps.length > 0); - wb = X.readFile(paths.fst2, {bookDeps:true}); - assert(typeof wb.Deps !== 'undefined' && wb.Deps.length > 0); + it('bookDeps should generate deps (XLSX/XLSB)', function() { + [paths.fstxlsx, paths.fstxlsb].forEach(function(p) { + var wb = X.readFile(p, {bookDeps:true}); + assert(typeof wb.Deps !== 'undefined' && wb.Deps.length > 0); + }); }); var ckf = function(wb, fields, exists) { fields.forEach(function(f) { assert((typeof wb[f] !== 'undefined') == exists); }); }; it('should not generate book files by default', function() { - var wb = X.readFile(paths.fst1); + var wb; + wb = X.readFile(paths.fstxlsx); ckf(wb, ['files', 'keys'], false); - wb = X.readFile(paths.fst2); + wb = X.readFile(paths.fstxlsb); ckf(wb, ['files', 'keys'], false); + wb = X.readFile(paths.fstxls); + ckf(wb, ['cfb'], false); }); it('bookFiles should generate book files', function() { - var wb = X.readFile(paths.fst1, {bookFiles:true}); + var wb; + wb = X.readFile(paths.fstxlsx, {bookFiles:true}); ckf(wb, ['files', 'keys'], true); - wb = X.readFile(paths.fst2, {bookFiles:true}); + wb = X.readFile(paths.fstxlsb, {bookFiles:true}); ckf(wb, ['files', 'keys'], true); + wb = X.readFile(paths.fstxls, {bookFiles:true}); + ckf(wb, ['cfb'], true); }); it('should not generate VBA by default', function() { - var wb = X.readFile(paths.nf1); + var wb = X.readFile(paths.nfxlsx); assert(typeof wb.vbaraw === 'undefined'); - wb = X.readFile(paths.nf2); + wb = X.readFile(paths.nfxlsb); assert(typeof wb.vbaraw === 'undefined'); }); - it('bookVBA should generate vbaraw', function() { - var wb = X.readFile(paths.nf1,{bookVBA:true}); + it('bookVBA should generate vbaraw (XLSX/XLSB)', function() { + var wb = X.readFile(paths.nfxlsx,{bookVBA:true}); assert(typeof wb.vbaraw !== 'undefined'); - wb = X.readFile(paths.nf2,{bookVBA:true}); + wb = X.readFile(paths.nfxlsb,{bookVBA:true}); assert(typeof wb.vbaraw !== 'undefined'); }); }); @@ -392,61 +439,98 @@ describe('parse options', function() { describe('input formats', function() { it('should read binary strings', function() { - X.read(fs.readFileSync(paths.cst1, 'binary'), {type: 'binary'}); - X.read(fs.readFileSync(paths.cst2, 'binary'), {type: 'binary'}); + X.read(fs.readFileSync(paths.cstxlsx, 'binary'), {type: 'binary'}); + X.read(fs.readFileSync(paths.cstxlsb, 'binary'), {type: 'binary'}); + X.read(fs.readFileSync(paths.cstxls, 'binary'), {type: 'binary'}); + X.read(fs.readFileSync(paths.cstxml, 'binary'), {type: 'binary'}); }); it('should read base64 strings', function() { - X.read(fs.readFileSync(paths.cst1, 'base64'), {type: 'base64'}); - X.read(fs.readFileSync(paths.cst2, 'base64'), {type: 'base64'}); + X.read(fs.readFileSync(paths.cstxls, 'base64'), {type: 'base64'}); + X.read(fs.readFileSync(paths.cstxml, 'base64'), {type: 'base64'}); + X.read(fs.readFileSync(paths.cstxlsx, 'base64'), {type: 'base64'}); + X.read(fs.readFileSync(paths.cstxlsb, 'base64'), {type: 'base64'}); }); it('should read buffers', function() { - X.read(fs.readFileSync(paths.cst1), {type: 'buffer'}); - X.read(fs.readFileSync(paths.cst2), {type: 'buffer'}); + X.read(fs.readFileSync(paths.cstxls), {type: 'buffer'}); + X.read(fs.readFileSync(paths.cstxml), {type: 'buffer'}); + X.read(fs.readFileSync(paths.cstxlsx), {type: 'buffer'}); + X.read(fs.readFileSync(paths.cstxlsb), {type: 'buffer'}); + }); + it('should read array', function() { + X.read(fs.readFileSync(paths.mcxls, 'binary').split("").map(function(x) { return x.charCodeAt(0); }), {type:'array'}); + X.read(fs.readFileSync(paths.mcxml, 'binary').split("").map(function(x) { return x.charCodeAt(0); }), {type:'array'}); + X.read(fs.readFileSync(paths.mcxlsx, 'binary').split("").map(function(x) { return x.charCodeAt(0); }), {type:'array'}); + X.read(fs.readFileSync(paths.mcxlsb, 'binary').split("").map(function(x) { return x.charCodeAt(0); }), {type:'array'}); + X.read(fs.readFileSync(paths.mcods, 'binary').split("").map(function(x) { return x.charCodeAt(0); }), {type:'array'}); }); it('should throw if format is unknown', function() { - assert.throws(function() { X.read(fs.readFileSync(paths.cst1), {type: 'dafuq'}); }); - assert.throws(function() { X.read(fs.readFileSync(paths.cst2), {type: 'dafuq'}); }); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxls), {type: 'dafuq'}); }); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxml), {type: 'dafuq'}); }); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxlsx), {type: 'dafuq'}); }); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxlsb), {type: 'dafuq'}); }); }); it('should infer buffer type', function() { - X.read(fs.readFileSync(paths.cst1)); - X.read(fs.readFileSync(paths.cst2)); + X.read(fs.readFileSync(paths.cstxls)); + X.read(fs.readFileSync(paths.cstxml)); + X.read(fs.readFileSync(paths.cstxlsx)); + X.read(fs.readFileSync(paths.cstxlsb)); }); it('should default to base64 type', function() { - assert.throws(function() { X.read(fs.readFileSync(paths.cst1, 'binary')); }); - assert.throws(function() { X.read(fs.readFileSync(paths.cst2, 'binary')); }); - X.read(fs.readFileSync(paths.cst1, 'base64')); - X.read(fs.readFileSync(paths.cst2, 'base64')); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxls, 'binary')); }); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxml, 'binary')); }); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxlsx, 'binary')); }); + assert.throws(function() { X.read(fs.readFileSync(paths.cstxlsb, 'binary')); }); + X.read(fs.readFileSync(paths.cstxls, 'base64')); + X.read(fs.readFileSync(paths.cstxml, 'base64')); + X.read(fs.readFileSync(paths.cstxlsx, 'base64')); + X.read(fs.readFileSync(paths.cstxlsb, 'base64')); }); }); describe('output formats', function() { - var wb1, wb2; + var wb1, wb2, wb3, wb4; before(function() { X = require(modp); - wb1 = X.readFile(paths.cp1); - wb2 = X.readFile(paths.cp2); + wb1 = X.readFile(paths.cpxlsx); + wb2 = X.readFile(paths.cpxlsb); + wb3 = X.readFile(paths.cpxls); + wb4 = X.readFile(paths.cpxml); }); it('should write binary strings', function() { X.write(wb1, {type: 'binary'}); X.write(wb2, {type: 'binary'}); + X.write(wb3, {type: 'binary'}); + X.write(wb4, {type: 'binary'}); X.read(X.write(wb1, {type: 'binary'}), {type: 'binary'}); X.read(X.write(wb2, {type: 'binary'}), {type: 'binary'}); + X.read(X.write(wb3, {type: 'binary'}), {type: 'binary'}); + X.read(X.write(wb4, {type: 'binary'}), {type: 'binary'}); }); it('should write base64 strings', function() { X.write(wb1, {type: 'base64'}); X.write(wb2, {type: 'base64'}); + X.write(wb3, {type: 'base64'}); + X.write(wb4, {type: 'base64'}); X.read(X.write(wb1, {type: 'base64'}), {type: 'base64'}); X.read(X.write(wb2, {type: 'base64'}), {type: 'base64'}); + X.read(X.write(wb3, {type: 'base64'}), {type: 'base64'}); + X.read(X.write(wb4, {type: 'base64'}), {type: 'base64'}); }); it('should write buffers', function() { X.write(wb1, {type: 'buffer'}); X.write(wb2, {type: 'buffer'}); + X.write(wb3, {type: 'buffer'}); + X.write(wb4, {type: 'buffer'}); X.read(X.write(wb1, {type: 'buffer'}), {type: 'buffer'}); X.read(X.write(wb2, {type: 'buffer'}), {type: 'buffer'}); + X.read(X.write(wb3, {type: 'buffer'}), {type: 'buffer'}); + X.read(X.write(wb4, {type: 'buffer'}), {type: 'buffer'}); }); it('should throw if format is unknown', function() { assert.throws(function() { X.write(wb1, {type: 'dafuq'}); }); assert.throws(function() { X.write(wb2, {type: 'dafuq'}); }); + assert.throws(function() { X.write(wb3, {type: 'dafuq'}); }); + assert.throws(function() { X.write(wb4, {type: 'dafuq'}); }); }); }); @@ -474,13 +558,13 @@ function deepcmp(x,y,k,m,c) { var s = k.indexOf("."); m = (m||"") + "|" + (s > -1 ? k.substr(0,s) : k); if(s < 0) return assert[c<0?'notEqual':'equal'](x[k], y[k], m); - return deepcmp(x[k.substr(0,s)],y[k.substr(0,s)],k.substr(s+1),m,c) + return deepcmp(x[k.substr(0,s)],y[k.substr(0,s)],k.substr(s+1),m,c); } var styexc = [ 'A2|H10|bgColor.rgb', 'F6|H1|patternType' -] +]; var stykeys = [ "patternType", "fgColor.rgb", @@ -500,10 +584,12 @@ describe('parse features', function() { it('should have comment as part of cell properties', function(){ var X = require(modp); var sheet = 'Sheet1'; - var wb1=X.readFile(paths.swc1); - var wb2=X.readFile(paths.swc2); + var wb1=X.readFile(paths.swcxlsx); + var wb2=X.readFile(paths.swcxlsb); + var wb3=X.readFile(paths.swcxls); + var wb4=X.readFile(paths.swcxml); - [wb1,wb2].map(function(wb) { return wb.Sheets[sheet]; }).forEach(function(ws, i) { + [wb1,wb2,wb3,wb4].map(function(wb) { return wb.Sheets[sheet]; }).forEach(function(ws, i) { assert.equal(ws.B1.c.length, 1,"must have 1 comment"); assert.equal(ws.B1.c[0].a, "Yegor Kozlov","must have the same author"); assert.equal(ws.B1.c[0].t.replace(/\r\n/g,"\n").replace(/\r/g,"\n"), "Yegor Kozlov:\nfirst cell", "must have the concatenated texts"); @@ -516,40 +602,53 @@ describe('parse features', function() { describe('should parse core properties and custom properties', function() { var wb1, wb2; before(function() { - X = require(modp); - wb1 = X.readFile(paths.cp1); - wb2 = X.readFile(paths.cp2); + wb1 = X.readFile(paths.cpxlsx); + wb2 = X.readFile(paths.cpxlsb); + wb3 = X.readFile(paths.cpxls); + wb4 = X.readFile(paths.cpxml); }); it(N1 + ' should parse core properties', function() { coreprop(wb1); }); it(N2 + ' should parse core properties', function() { coreprop(wb2); }); + it(N3 + ' should parse core properties', function() { coreprop(wb3); }); + it(N4 + ' should parse core properties', function() { coreprop(wb4); }); it(N1 + ' should parse custom properties', function() { custprop(wb1); }); it(N2 + ' should parse custom properties', function() { custprop(wb2); }); + it(N3 + ' should parse custom properties', function() { custprop(wb3); }); + it(N4 + ' should parse custom properties', function() { custprop(wb4); }); }); describe('sheetRows', function() { it('should use original range if not set', function() { var opts = {}; - var wb1 = X.readFile(paths.fst1, opts); - var wb2 = X.readFile(paths.fst2, opts); - [wb1, wb2].forEach(function(wb) { + var wb1 = X.readFile(paths.fstxlsx, opts); + var wb2 = X.readFile(paths.fstxlsb, opts); + var wb3 = X.readFile(paths.fstxls, opts); + var wb4 = X.readFile(paths.fstxml, opts); + [wb1, wb2, wb3, wb4].forEach(function(wb) { assert.equal(wb.Sheets.Text["!ref"],"A1:F49"); }); }); it('should adjust range if set', function() { var opts = {sheetRows:10}; - var wb1 = X.readFile(paths.fst1, opts); - var wb2 = X.readFile(paths.fst2, opts); - [wb1, wb2].forEach(function(wb) { + var wb1 = X.readFile(paths.fstxlsx, opts); + var wb2 = X.readFile(paths.fstxlsb, opts); + var wb3 = X.readFile(paths.fstxls, opts); + var wb4 = X.readFile(paths.fstxml, opts); + /* TODO */ + [wb1, wb2 /*, wb3, wb4 */].forEach(function(wb) { assert.equal(wb.Sheets.Text["!fullref"],"A1:F49"); assert.equal(wb.Sheets.Text["!ref"],"A1:F10"); }); }); it('should not generate comment cells', function() { var opts = {sheetRows:10}; - var wb1 = X.readFile(paths.cst1, opts); - var wb2 = X.readFile(paths.cst2, opts); - [wb1, wb2].forEach(function(wb) { + var wb1 = X.readFile(paths.cstxlsx, opts); + var wb2 = X.readFile(paths.cstxlsb, opts); + var wb3 = X.readFile(paths.cstxls, opts); + var wb4 = X.readFile(paths.cstxml, opts); + /* TODO */ + [wb1, wb2 /*, wb3, wb4 */].forEach(function(wb) { assert.equal(wb.Sheets.Sheet7["!fullref"],"A1:N34"); assert.equal(wb.Sheets.Sheet7["!ref"],"A1"); }); @@ -560,17 +659,23 @@ describe('parse features', function() { var wb1, wb2; before(function() { X = require(modp); - wb1 = X.readFile(paths.mc1); - wb2 = X.readFile(paths.mc2); - wb3 = X.readFile(paths.mc3); + wb1 = X.readFile(paths.mcxlsx); + wb2 = X.readFile(paths.mcxlsb); + wb3 = X.readFile(paths.mcods); + wb4 = X.readFile(paths.mcxls); + wb5 = X.readFile(paths.mcxml); }); it('should have !merges', function() { assert(wb1.Sheets.Merge['!merges']); assert(wb2.Sheets.Merge['!merges']); assert(wb3.Sheets.Merge['!merges']); - var m = [wb1, wb2, wb3].map(function(x) { return x.Sheets.Merge['!merges'].map(function(y) { return X.utils.encode_range(y); });}); + assert(wb4.Sheets.Merge['!merges']); + assert(wb5.Sheets.Merge['!merges']); + var m = [wb1, wb2, wb3, wb4, wb5].map(function(x) { return x.Sheets.Merge['!merges'].map(function(y) { return X.utils.encode_range(y); });}); assert.deepEqual(m[0].sort(),m[1].sort()); assert.deepEqual(m[0].sort(),m[2].sort()); + assert.deepEqual(m[0].sort(),m[3].sort()); + assert.deepEqual(m[0].sort(),m[4].sort()); }); }); @@ -578,8 +683,10 @@ describe('parse features', function() { var wb1, wb2; before(function() { X = require(modp); - wb1 = X.readFile(paths.hl1); - wb2 = X.readFile(paths.hl2); + wb1 = X.readFile(paths.hlxlsx); + wb2 = X.readFile(paths.hlxlsb); + wb3 = X.readFile(paths.hlxls); + wb4 = X.readFile(paths.hlxml); }); function hlink(wb) { @@ -595,14 +702,15 @@ describe('parse features', function() { it(N1, function() { hlink(wb1); }); it(N2, function() { hlink(wb2); }); + it(N3, function() { hlink(wb3); }); + it(N4, function() { hlink(wb4); }); }); describe('should parse cells with date type (XLSX/XLSM)', function() { it('Must have read the date', function() { var wb, ws; - X = require(modp); - wb = X.readFile(paths.dt1); var sheetName = 'Sheet1'; + wb = X.readFile(paths.dtxlsx); ws = wb.Sheets[sheetName]; var sheet = X.utils.sheet_to_row_object_array(ws); assert.equal(sheet[3]['てすと'], '2/14/14'); @@ -610,19 +718,19 @@ describe('parse features', function() { it('cellDates should not affect formatted text', function() { var wb1, ws1, wb2, ws2; var sheetName = 'Sheet1'; - X = require(modp); - wb1 = X.readFile(paths.dt1); + wb1 = X.readFile(paths.dtxlsx); ws1 = wb1.Sheets[sheetName]; - wb2 = X.readFile(paths.dt2); + wb2 = X.readFile(paths.dtxlsb); ws2 = wb2.Sheets[sheetName]; assert.equal(X.utils.sheet_to_csv(ws1),X.utils.sheet_to_csv(ws2)); }); }); describe('should correctly handle styles', function() { - var ws, rn, rn2; + var wsxls, wsxlsx, rn, rn2; before(function() { - ws=X.readFile(paths.css1, {cellStyles:true,WTF:1}).Sheets.Sheet1; + wsxls=X.readFile(paths.cssxls, {cellStyles:true,WTF:1}).Sheets.Sheet1; + wsxlsx=X.readFile(paths.cssxlsx, {cellStyles:true,WTF:1}).Sheets.Sheet1; rn = function(range) { var r = X.utils.decode_range(range); var out = []; @@ -664,23 +772,31 @@ describe('parse features', function() { bgColor: { theme: 7, raw_rgb: '8064A2' } } ]; ranges.forEach(function(rng) { - it(rng,function(){cmparr(rn2(rng).map(function(x){ return ws[x].s; }));}); + it('XLS | ' + rng,function(){cmparr(rn2(rng).map(function(x){ return wsxls[x].s; }));}); + it('XLSX | ' + rng,function(){cmparr(rn2(rng).map(function(x){ return wsxlsx[x].s; }));}); }); it('different styles', function() { for(var i = 0; i != ranges.length-1; ++i) { for(var j = i+1; j != ranges.length; ++j) { - diffsty(ws, rn2(ranges[i])[0], rn2(ranges[j])[0]); + diffsty(wsxlsx, rn2(ranges[i])[0], rn2(ranges[j])[0]); + /* TODO */ + //diffsty(wsxls, rn2(ranges[i])[0], rn2(ranges[j])[0]); } } }); it('correct styles', function() { - var styles = ranges.map(function(r) { return rn2(r)[0]}).map(function(r) { return ws[r].s}); + var stylesxls = ranges.map(function(r) { return rn2(r)[0]; }).map(function(r) { return wsxls[r].s; }); + var stylesxlsx = ranges.map(function(r) { return rn2(r)[0]; }).map(function(r) { return wsxlsx[r].s; }); for(var i = 0; i != exp.length; ++i) { [ "fgColor.theme","fgColor.raw_rgb", "bgColor.theme","bgColor.raw_rgb", "patternType" - ].forEach(function(k) { deepcmp(exp[i], styles[i], k, i + ":"+k); }); + ].forEach(function(k) { + deepcmp(exp[i], stylesxlsx[i], k, i + ":"+k); + /* TODO */ + //deepcmp(exp[i], stylesxls[i], k, i + ":"+k); + }); } }); }); @@ -700,8 +816,8 @@ describe('roundtrip features', function() { describe('should parse core properties and custom properties', function() { var wb1, wb2, base = './tmp/cp'; before(function() { - wb1 = X.readFile(paths.cp1); - wb2 = X.readFile(paths.cp2); + wb1 = X.readFile(paths.cpxlsx); + wb2 = X.readFile(paths.cpxlsb); fullex.forEach(function(p) { X.writeFile(wb1, base + '.xlsm' + p); X.writeFile(wb2, base + '.xlsb' + p); @@ -718,7 +834,7 @@ describe('roundtrip features', function() { describe('should preserve features', function() { it('merge cells', function() { - var wb1 = X.readFile(paths.mc1); + var wb1 = X.readFile(paths.mcxlsx); var wb2 = X.read(X.write(wb1, {type:'binary'}), {type:'binary'}); var m1 = wb1.Sheets.Merge['!merges'].map(X.utils.encode_range); var m2 = wb2.Sheets.Merge['!merges'].map(X.utils.encode_range); @@ -734,8 +850,8 @@ describe('roundtrip features', function() { var b = (n & 4) ? 'd' : 'n', di = b === 'd'; var a = (n & 8) ? 'd' : 'n', dh = a === 'd'; var f, sheet, addr; - if(dh) { f = paths.dt1; sheet = 'Sheet1'; addr = 'B5'; } - else { f = paths.nf1; sheet = '2011'; addr = 'J36'; } + if(dh) { f = paths.dtxlsx; sheet = 'Sheet1'; addr = 'B5'; } + else { f = paths.nfxlsx; sheet = '2011'; addr = 'J36'; } it('[' + a + '] -> (' + b + ') -> [' + c + '] -> (' + d + ')', function() { var wb1 = X.readFile(f, {cellNF: true, cellDates: di, WTF: opts.WTF}); var wb2 = X.read(X.write(wb1, {type:'binary', cellDates:dj, WTF:opts.WTF}), {type:'binary', cellDates: dk, WTF: opts.WTF}); @@ -752,24 +868,17 @@ describe('roundtrip features', function() { else assert.equal(m[1].t, 'n'); if(m[0].t === m[1].t) assert.equal(m[0].v, m[1].v); - else if(m[0].t === 'd') assert(Math.abs(datenum(new Date(m[0].v)) - m[1].v)) < .01; /* TODO: 1sec adjustment */ + else if(m[0].t === 'd') assert(Math.abs(datenum(new Date(m[0].v)) - m[1].v) < 0.01); /* TODO: 1sec adjustment */ }); }); }); - /* the XLSJS require should not cause the test suite to fail */ - var XLSJS; - try { - XLSJS = require('xlsjs'); - var xls = XLSJS.readFile('./test_files/formula_stress_test.xls'); - var xml = XLSJS.readFile('./test_files/formula_stress_test.xls.xml'); - } catch(e) { return; } - describe('xlsjs conversions', function() { [ + describe('xls to xlsx conversions', function() { [ ['XLS', 'formula_stress_test.xls'], ['XML', 'formula_stress_test.xls.xml'] ].forEach(function(w) { - it('should be able to write ' + w[0] + ' files from xlsjs', function() { - var xls = XLSJS.readFile('./test_files/' + w[1], {cellNF:true}); + it('should be able to write ' + w[0] + ' files', function() { + var xls = X.readFile('./test_files/' + w[1], {cellNF:true}); X.writeFile(xls, './tmp/' + w[1] + '.xlsx', {bookSST:true}); X.writeFile(xls, './tmp/' + w[1] + '.xlsb', {bookSST:true}); }); @@ -777,10 +886,12 @@ describe('roundtrip features', function() { }); }); +function password_file(x){return x.match(/^password.*\.xls$/); } +var password_files = fs.readdirSync('test_files').filter(password_file); describe('invalid files', function() { describe('parse', function() { [ - ['passwords', 'excel-reader-xlsx_error03.xlsx'], - ['XLS files', 'roo_type_excel.xlsx'], + ['password', 'apachepoi_password.xls'], + ['passwords', 'apachepoi_xor-encryption-abc.xls'], ['DOC files', 'word_doc.doc'] ].forEach(function(w) { it('should fail on ' + w[0], function() { assert.throws(function() { X.readFile(dir + w[1]); }); @@ -788,14 +899,19 @@ describe('invalid files', function() { }); }); }); describe('write', function() { - it('should pass', function() { X.write(X.readFile(paths.fst1), {type:'binary'}); }); + it('should pass -> XLSX', function() { + X.write(X.readFile(paths.fstxlsb), {type:'binary'}); + X.write(X.readFile(paths.fstxlsx), {type:'binary'}); + X.write(X.readFile(paths.fstxls), {type:'binary'}); + X.write(X.readFile(paths.fstxml), {type:'binary'}); + }); it('should pass if a sheet is missing', function() { - var wb = X.readFile(paths.fst1); delete wb.Sheets[wb.SheetNames[0]]; + var wb = X.readFile(paths.fstxlsx); delete wb.Sheets[wb.SheetNames[0]]; X.read(X.write(wb, {type:'binary'}), {type:'binary'}); }); ['Props', 'Custprops', 'SSF'].forEach(function(t) { it('should pass if ' + t + ' is missing', function() { - var wb = X.readFile(paths.fst1); + var wb = X.readFile(paths.fstxlsx); assert.doesNotThrow(function() { delete wb[t]; X.write(wb, {type:'binary'}); @@ -804,7 +920,7 @@ describe('invalid files', function() { }); ['SheetNames', 'Sheets'].forEach(function(t) { it('should fail if ' + t + ' is missing', function() { - var wb = X.readFile(paths.fst1); + var wb = X.readFile(paths.fstxlsx); assert.throws(function() { delete wb[t]; X.write(wb, {type:'binary'}); @@ -885,9 +1001,9 @@ describe('json output', function() { it('should use column names if header == "A"', function() { var json = X.utils.sheet_to_json(ws, {header:'A'}); assert.equal(json.length, data.length); - assert.equal(json[1]['A'], true); - assert.equal(json[2]['B'], "bar"); - assert.equal(json[3]['C'], "qux"); + assert.equal(json[1].A, true); + assert.equal(json[2].B, "bar"); + assert.equal(json[3].C, "qux"); assert.doesNotThrow(function() { seeker(json, "ABC", "sheetjs"); }); assert.throws(function() { seeker(json, "ABCD", "sheetjs"); }); assert.throws(function() { seeker(json, "ABC", "baz"); }); @@ -895,9 +1011,9 @@ describe('json output', function() { it('should use column labels if specified', function() { var json = X.utils.sheet_to_json(ws, {header:["O","D","I","N"]}); assert.equal(json.length, data.length); - assert.equal(json[1]['O'], true); - assert.equal(json[2]['D'], "bar"); - assert.equal(json[3]['I'], "qux"); + assert.equal(json[1].O, true); + assert.equal(json[2].D, "bar"); + assert.equal(json[3].I, "qux"); assert.doesNotThrow(function() { seeker(json, "ODI", "sheetjs"); }); assert.throws(function() { seeker(json, "ODIN", "sheetjs"); }); assert.throws(function() { seeker(json, "ODIN", "baz"); }); @@ -963,4 +1079,27 @@ describe('corner cases', function() { } }); }); + it('CFB', function() { + var cfb = X.CFB.read(paths.swcxls, {type:"file"}); + var xls = X.parse_xlscfb(cfb); + }); + it('codepage', function() { + X.readFile(dir + "biff5/number_format_greek.xls"); + }); +}); + +describe('encryption', function() { + password_files.forEach(function(x) { + describe(x, function() { + it('should throw with no password', function() {assert.throws(function() { X.readFile(dir + x); }); }); + it('should throw with wrong password', function() {assert.throws(function() { X.readFile(dir + x, {password:'passwor',WTF:opts.WTF}); }); }); + it('should recognize correct password', function() { + try { X.readFile(dir + x, {password:'password',WTF:opts.WTF}); } + catch(e) { if(e.message == "Password is incorrect") throw e; } + }); + it.skip('should decrypt file', function() { + var wb = X.readFile(dir + x, {password:'password',WTF:opts.WTF}); + }); + }); + }); }); diff --git a/tests.lst b/tests.lst index 6ae39f9..b13f07a 100644 --- a/tests.lst +++ b/tests.lst @@ -370,3 +370,697 @@ roo_type_excel.ods.pending roo_type_excelx.ods roo_whitespace.ods sushi.ods +biff5/NumberFormatCondition.xls +biff5/RkNumber.xls +biff5/cell_style_simple.xls +biff5/comments_stress_test.xls +biff5/custom_properties.xls +biff5/defined_names_simple.xls +biff5/hyperlink_stress_test_2011.xls +biff5/large_strings.xls.pending +biff5/merge_cells.xls +biff5/named_ranges_2011.xls +biff5/number_format.xls +biff5/number_format_estonian.xls +biff5/number_format_greek.xls.pending +biff5/number_format_vietnamese.xls +biff5/pivot_table_test.xls +biff5/rich_text_stress.xls +biff5/sushi.xls +biff5/text_and_numbers.xls +comments_stress_test.xls.b64 +formula_stress_test.xls.b64 +A4X_2013.xls +A4X_gnumeric.xls +AutoFilter.xls +BlankSheetTypes.xls +ErrorTypes.xls +LONumbers-2010.xls +LONumbers-2011.xls +LONumbers.xls +NumberFormatCondition.xls +RkNumber.xls +apachepoi_12561-1.xls +apachepoi_12561-2.xls +apachepoi_12843-1.xls +apachepoi_12843-2.xls +apachepoi_13224.xls +apachepoi_13796.xls +apachepoi_14330-1.xls +apachepoi_14330-2.xls +apachepoi_14460.xls +apachepoi_15228.xls +apachepoi_15375.xls +apachepoi_15556.xls +apachepoi_15573.xls +apachepoi_1900DateWindowing.xls +apachepoi_1904DateWindowing.xls +apachepoi_19599-1.xls +apachepoi_19599-2.xls +apachepoi_22742.xls +apachepoi_24207.xls +apachepoi_24215.xls +apachepoi_25183.xls +apachepoi_25695.xls +apachepoi_26100.xls +apachepoi_27272_1.xls +apachepoi_27272_2.xls +apachepoi_27349-vlookupAcrossSheets.xls +apachepoi_27364.xls +apachepoi_27394.xls +apachepoi_27852.xls +apachepoi_27933.xls +apachepoi_28772.xls +apachepoi_28774.xls +apachepoi_29675.xls +apachepoi_29942.xls +apachepoi_29982.xls +apachepoi_30070.xls +apachepoi_30540.xls +apachepoi_30978-alt.xls +apachepoi_30978-deleted.xls +apachepoi_31661.xls +apachepoi_31749.xls +apachepoi_31979.xls +apachepoi_32822.xls +apachepoi_33082.xls +apachepoi_34775.xls +apachepoi_35564.xls +apachepoi_35565.xls +apachepoi_36947.xls +apachepoi_37376.xls +apachepoi_37630.xls +apachepoi_37684-1.xls +apachepoi_37684-2.xls +apachepoi_37684.xls +apachepoi_39234.xls +apachepoi_39512.xls +apachepoi_39634.xls +apachepoi_3dFormulas.xls +apachepoi_40285.xls +apachepoi_41139.xls +apachepoi_41546.xls +apachepoi_42016.xls +apachepoi_42464-ExpPtg-bad.xls +apachepoi_42464-ExpPtg-ok.xls +apachepoi_42726.xls +apachepoi_42844.xls +apachepoi_43251.xls +apachepoi_43493.xls +apachepoi_43623.xls +apachepoi_43902.xls +apachepoi_44010-SingleChart.xls +apachepoi_44010-TwoCharts.xls +apachepoi_44167.xls +apachepoi_44200.xls +apachepoi_44201.xls +apachepoi_44235.xls +apachepoi_44297.xls +apachepoi_44593.xls +apachepoi_44636.xls +apachepoi_44643.xls +apachepoi_44693.xls +apachepoi_44840.xls +apachepoi_44861.xls +apachepoi_44891.xls +apachepoi_44958.xls +apachepoi_45129.xls +apachepoi_45290.xls +apachepoi_45322.xls +apachepoi_45365-2.xls +apachepoi_45365.xls +apachepoi_45492.xls +apachepoi_45538_classic_Footer.xls +apachepoi_45538_classic_Header.xls +apachepoi_45538_form_Footer.xls +apachepoi_45538_form_Header.xls +apachepoi_45672.xls +apachepoi_45720.xls +apachepoi_45761.xls +apachepoi_45784.xls +apachepoi_46136-NoWarnings.xls +apachepoi_46136-WithWarnings.xls +apachepoi_46137.xls +apachepoi_46250.xls +apachepoi_46368.xls +apachepoi_46445.xls +apachepoi_46670_http.xls +apachepoi_46670_local.xls +apachepoi_46670_ref_airline.xls +apachepoi_46904.xls +apachepoi_47034.xls +apachepoi_47154.xls +apachepoi_47251.xls +apachepoi_47251_1.xls +apachepoi_47701.xls +apachepoi_47847.xls +apachepoi_47920.xls +apachepoi_47924.xls +apachepoi_48026.xls +apachepoi_48180.xls +apachepoi_48325.xls +apachepoi_48703.xls +apachepoi_48968.xls +apachepoi_49096.xls +apachepoi_49185.xls +apachepoi_49219.xls +apachepoi_49237.xls +apachepoi_49524.xls +apachepoi_49529.xls +apachepoi_49581.xls +apachepoi_49612.xls +apachepoi_49751.xls +apachepoi_49761.xls +apachepoi_49896.xls +apachepoi_49928.xls +apachepoi_49931.xls +apachepoi_50020.xls +apachepoi_50298.xls +apachepoi_50426.xls +apachepoi_50756.xls +apachepoi_50779_1.xls +apachepoi_50779_2.xls +apachepoi_50833.xls.pending +apachepoi_50939.xls +apachepoi_51143.xls +apachepoi_51461.xls +apachepoi_51498.xls +apachepoi_51535.xls.pending +apachepoi_51670.xls +apachepoi_51675.xls +apachepoi_51832.xls.pending +apachepoi_52527.xls +apachepoi_52575_main.xls +apachepoi_52575_source.xls +apachepoi_53404.xls +apachepoi_53433.xls +apachepoi_53446.xls +apachepoi_53588.xls +apachepoi_53691.xls +apachepoi_53798_shiftNegative_TMPL.xls +apachepoi_53972.xls +apachepoi_53984.xls +apachepoi_54016.xls +apachepoi_54206.xls +apachepoi_54500.xls +apachepoi_54686_fraction_formats.xls +apachepoi_55341_CellStyleBorder.xls +apachepoi_55906-MultiSheetRefs.xls +apachepoi_56325.xls +apachepoi_56450.xls +apachepoi_56482.xls +apachepoi_56563a.xls +apachepoi_56563b.xls +apachepoi_56737.xls +apachepoi_AbnormalSharedFormulaFlag.xls +apachepoi_AreaErrPtg.xls +apachepoi_BOOK_in_capitals.xls +apachepoi_CodeFunctionTestCaseData.xls +apachepoi_ColumnStyle1dp.xls +apachepoi_ColumnStyle1dpColoured.xls +apachepoi_ColumnStyleNone.xls +apachepoi_ComplexFunctionTestCaseData.xls +apachepoi_ContinueRecordProblem.xls +apachepoi_DBCSHeader.xls +apachepoi_DBCSSheetName.xls +apachepoi_DateFormats.xls +apachepoi_DeltaFunctionTestCaseData.xls +apachepoi_DrawingAndComments.xls +apachepoi_DrawingContinue.xls +apachepoi_EmbeddedChartHeaderTest.xls +apachepoi_Employee.xls +apachepoi_ErrPtg.xls +apachepoi_FactDoubleFunctionTestCaseData.xls +apachepoi_ForShifting.xls +apachepoi_FormatChoiceTests.xls +apachepoi_Formatting.xls +apachepoi_FormulaEvalTestData.xls +apachepoi_FormulaRefs.xls +apachepoi_FormulaSheetRange.xls +apachepoi_HyperlinksOnManySheets.xls +apachepoi_IfFormulaTest.xls +apachepoi_ImRealFunctionTestCaseData.xls +apachepoi_ImaginaryFunctionTestCaseData.xls +apachepoi_IndexFunctionTestCaseData.xls +apachepoi_IndirectFunctionTestCaseData.xls +apachepoi_Intersection-52111.xls +apachepoi_IntersectionPtg.xls +apachepoi_IrrNpvTestCaseData.xls +apachepoi_LookupFunctionsTestCaseData.xls +apachepoi_MRExtraLines.xls +apachepoi_MatchFunctionTestCaseData.xls +apachepoi_MissingBits.xls +apachepoi_NoGutsRecords.xls +apachepoi_OddStyleRecord.xls +apachepoi_PercentPtg.xls +apachepoi_QuotientFunctionTestCaseData.xls +apachepoi_RangePtg.xls +apachepoi_ReadOnlyRecommended.xls +apachepoi_ReferencePtg.xls +apachepoi_RepeatingRowsCols.xls +apachepoi_ReptFunctionTestCaseData.xls +apachepoi_RomanFunctionTestCaseData.xls +apachepoi_SampleSS.xls +apachepoi_SharedFormulaTest.xls +apachepoi_SheetWithDrawing.xls +apachepoi_ShrinkToFit.xls +apachepoi_Simple.xls +apachepoi_SimpleChart.xls +apachepoi_SimpleMultiCell.xls +apachepoi_SimpleWithAutofilter.xls +apachepoi_SimpleWithChoose.xls +apachepoi_SimpleWithColours.xls +apachepoi_SimpleWithComments.xls +apachepoi_SimpleWithDataFormat.xls +apachepoi_SimpleWithFormula.xls +apachepoi_SimpleWithImages-mac.xls +apachepoi_SimpleWithImages.xls +apachepoi_SimpleWithPageBreaks.xls +apachepoi_SimpleWithPrintArea.xls +apachepoi_SimpleWithSkip.xls +apachepoi_SimpleWithStyling.xls +apachepoi_SingleLetterRanges.xls +apachepoi_SolverContainerAfterSPGR.xls +apachepoi_SquareMacro.xls +apachepoi_StringContinueRecords.xls +apachepoi_StringFormulas.xls +apachepoi_SubtotalsNested.xls +apachepoi_TestRandBetween.xls +apachepoi_TwoSheetsNoneHidden.xls +apachepoi_TwoSheetsOneHidden.xls +apachepoi_UncalcedRecord.xls +apachepoi_UnionPtg.xls +apachepoi_WORKBOOK_in_capitals.xls +apachepoi_WeekNumFunctionTestCaseData.xls +apachepoi_WeekNumFunctionTestCaseData2013.xls +apachepoi_WithChart.xls +apachepoi_WithCheckBoxes.xls +apachepoi_WithConditionalFormatting.xls +apachepoi_WithEmbeddedObjects.xls +apachepoi_WithExtendedStyles.xls +apachepoi_WithFormattedGraphTitle.xls +apachepoi_WithHyperlink.xls +apachepoi_WithThreeCharts.xls +apachepoi_WithTwoCharts.xls +apachepoi_WithTwoHyperLinks.xls +apachepoi_WrongFormulaRecordType.xls +apachepoi_XRefCalc.xls +apachepoi_XRefCalcData.xls +apachepoi_atp.xls +apachepoi_blankworkbook.xls +apachepoi_bug_42794.xls +apachepoi_colwidth.xls +apachepoi_comments.xls +apachepoi_countblankExamples.xls +apachepoi_countifExamples.xls +apachepoi_dg-text.xls +apachepoi_drawings.xls +apachepoi_duprich1.xls +apachepoi_duprich2.xls +apachepoi_dvEmpty.xls +apachepoi_empty.xls +apachepoi_ex41187-19267.xls +apachepoi_ex42564-21435.xls +apachepoi_ex42564-21503.xls +apachepoi_ex42564-elementOrder.xls +apachepoi_ex42570-20305.xls +apachepoi_ex44921-21902.xls +apachepoi_ex45046-21984.xls +apachepoi_ex45582-22397.xls +apachepoi_ex45672.xls +apachepoi_ex45698-22488.xls.pending +apachepoi_ex45978-extraLinkTableSheets.xls +apachepoi_ex46548-23133.xls +apachepoi_ex47747-sharedFormula.xls +apachepoi_excel_with_embeded.xls +apachepoi_excelant.xls.pending +apachepoi_externalFunctionExample.xls +apachepoi_finance.xls +apachepoi_intercept.xls +apachepoi_mirrTest.xls +apachepoi_missingFuncs44675.xls +apachepoi_mortgage-calculation.xls +apachepoi_multibookFormulaA.xls +apachepoi_multibookFormulaB.xls +apachepoi_namedinput.xls +apachepoi_noHeaderFooter47244.xls +apachepoi_ole2-embedding.xls +apachepoi_overlapSharedFormula.xls +apachepoi_password.xls.pending +apachepoi_rank.xls +apachepoi_rk.xls +apachepoi_shared_formulas.xls +apachepoi_sumifformula.xls +apachepoi_sumifs.xls +apachepoi_templateExcelWithAutofilter.xls +apachepoi_testArraysAndTables.xls +apachepoi_testNames.xls +apachepoi_testRRaC.xls +apachepoi_testRVA.xls +apachepoi_text.xls +apachepoi_unicodeNameRecord.xls +apachepoi_xor-encryption-abc.xls.pending +apachepoi_yearfracExamples.xls +calendar_stress_test.xls.pending +cell_style_simple.xls +comments_stress_test.xls +custom_properties.xls +defined_names_simple.xls +formula_stress_test.xls +formulae_test_simple.xls +hyperlink_stress_test_2011.xls +jxls-core_array.xls +jxls-core_beandata.xls +jxls-core_beanwithlist.xls +jxls-core_doubleForEachOneRow.xls +jxls-core_dynamicColumns.xls +jxls-core_employeeNotes.xls +jxls-core_expressions1.xls +jxls-core_fixedsizelist.xls +jxls-core_forOneRow.xls +jxls-core_forOneRowMerge.xls +jxls-core_forOneRowMerge2.xls +jxls-core_forgroup.xls +jxls-core_foriftag2.xls +jxls-core_foriftag3.xls +jxls-core_foriftag3OutTag.xls +jxls-core_foriftagHor.xls +jxls-core_foriftagOneRow.xls +jxls-core_foriftagOneRow2.xls +jxls-core_foriftagmerge.xls +jxls-core_formatterbean.xls +jxls-core_formula3.xls +jxls-core_formula4.xls +jxls-core_formulas.xls +jxls-core_formulas2.xls +jxls-core_grouping1.xls +jxls-core_grouping2.xls +jxls-core_grouping3.xls +jxls-core_grouping4.xls +jxls-core_groupingformulas.xls +jxls-core_grouptag.xls +jxls-core_hidesheets.xls +jxls-core_iftag.xls +jxls-core_iftagempty.xls +jxls-core_jexl.xls +jxls-core_mergecellslist.xls +jxls-core_mergemultiplelistrows.xls +jxls-core_multi-tab-template.xls +jxls-core_multipleSheetList.xls +jxls-core_multiplelistrows.xls +jxls-core_outline.xls +jxls-core_outtaginonerow.xls +jxls-core_paralleltables.xls +jxls-core_poiobjects.xls +jxls-core_repeatedFormula.xls +jxls-core_report.xls +jxls-core_reportTimestamp.xls +jxls-core_select.xls +jxls-core_select2.xls +jxls-core_severallistsinrow.xls +jxls-core_severalpropertiesincell.xls +jxls-core_simplebean.xls +jxls-core_sqltagreport.xls +jxls-core_stress.xls +jxls-core_syntaxerror.xls +jxls-core_twoIfTagsIn1Row.xls +jxls-core_varstatus.xls +jxls-examples_adjacentlists.xls +jxls-examples_basictags.xls +jxls-examples_chart.xls +jxls-examples_colouring.xls +jxls-examples_department.xls +jxls-examples_dynamicolumns.xls +jxls-examples_employees.xls +jxls-examples_ex_temp.xls +jxls-examples_grouping.xls +jxls-examples_multiplelistrows.xls +jxls-examples_report.xls +jxls-examples_rowstyle.xls +jxls-examples_stress1.xls +jxls-examples_stress2.xls +jxls-reader_departmentData.xls +jxls-reader_employeesData.xls +jxls-reader_emptyrowdata.xls +jxls-reader_error1.xls +jxls-reader_formulasData.xls +jxls-reader_ids.xls +jxls-src_adjacentlist_output.xls +jxls-src_adjacentlists.xls +jxls-src_basictags.xls +jxls-src_basictags_output.xls +jxls-src_chart.xls +jxls-src_chart_output.xls +jxls-src_colouring.xls +jxls-src_colouring_output.xls +jxls-src_department.xls +jxls-src_department_output.xls +jxls-src_departmentdata.xls +jxls-src_dynamiccolumns_output.xls +jxls-src_dynamiccolumns_template.xls +jxls-src_employees.xls +jxls-src_employees_output.xls +jxls-src_grouping.xls +jxls-src_grouping_output.xls +jxls-src_hiddencolumn_output.xls +jxls-src_multiplelistrows.xls +jxls-src_multiplelistrows_output.xls +jxls-src_report.xls +jxls-src_report_output.xls +jxls-src_rowstyle.xls +jxls-src_rowstyle_output.xls +large_strings.xls.pending +libreoffice_calc_cell-value-validation.xls +libreoffice_calc_chart-percent-stacked-with-line-chart.xls +libreoffice_calc_chart-update-invisible-cells.xls +libreoffice_calc_chart_complex-category-column-graph-repeating-values.xls +libreoffice_calc_chart_complex-category-column-graph.xls +libreoffice_calc_cjk-text_cell-justify-distributed-single.xls +libreoffice_calc_cjk-text_cell-justify-distributed.xls +libreoffice_calc_conditional-formatting.xls +libreoffice_calc_csv-import_malformed-quotes.xls.pending +libreoffice_calc_data-pilot_field-cell-format.xls +libreoffice_calc_data-pilot_getpivotdata-cell-function.xls +libreoffice_calc_data-pilot_named-range-as-data-source.xls +libreoffice_calc_data-pilot_simple-range-as-data-source.xls +libreoffice_calc_data-pilot_unlimited-data-fields.xls +libreoffice_calc_dbf_numeric-field-with-zero.xls +libreoffice_calc_drawing-object_connector-arrows.xls +libreoffice_calc_drawing-object_rectangle-over-sized-rows-columns.xls +libreoffice_calc_drawing-object_round-rectangle.xls +libreoffice_calc_drawing-object_shapes.xls +libreoffice_calc_equation-single.xls +libreoffice_calc_external-ref_access-basic-range-func.xls +libreoffice_calc_external-ref_access-basic-single-cell.xls +libreoffice_calc_external-ref_access-basic-single-func.xls +libreoffice_calc_external-ref_access-basic.xls +libreoffice_calc_external-ref_circular-link-doc1.xls +libreoffice_calc_external-ref_circular-link-doc2.xls +libreoffice_calc_external-ref_extdata.xls +libreoffice_calc_external-ref_range-name-extdata.xls +libreoffice_calc_external-ref_range-name.xls +libreoffice_calc_function_linest-excel.xls +libreoffice_calc_function_logest-excel.xls +libreoffice_calc_function_matrix_inline-array-single.xls +libreoffice_calc_function_matrix_inline-arrays-softmaker.xls +libreoffice_calc_function_matrix_inline-arrays.xls +libreoffice_calc_function_n.xls +libreoffice_calc_function_phonetic-richtext.xls +libreoffice_calc_function_phonetic-single.xls +libreoffice_calc_function_phonetic.xls +libreoffice_calc_function_trend-growth-excel.xls +libreoffice_calc_import-wrapped-text.xls +libreoffice_calc_named-range_sheet-local.xls +libreoffice_calc_outline_col-outline-nested.xls +libreoffice_calc_outline_col-outline-single-left-button.xls +libreoffice_calc_outline_col-outline-single.xls +libreoffice_calc_outline_row-outline-nested.xls +libreoffice_calc_outline_row-outline-single-top-button.xls +libreoffice_calc_outline_row-outline-single.xls +libreoffice_calc_print-layout_arial-10-1p.xls +libreoffice_calc_print-layout_arial-10-2p.xls +libreoffice_calc_print-layout_arial-11-1p.xls +libreoffice_calc_print-layout_arial-11-2p.xls +libreoffice_calc_print-layout_arial-12-1p.xls +libreoffice_calc_print-layout_arial-8-1p.xls +libreoffice_calc_print-layout_arial-9-1p.xls +libreoffice_calc_string-number.xls +libreoffice_calc_subtotals_two-on-one-sheet.xls +libreoffice_calc_tab-color.xls +libreoffice_calc_text-angled-with-border.xls +libreoffice_calc_xls-import_300-worksheets.xls +libreoffice_calc_xls-import_autofilter-range.xls +libreoffice_calc_xls-import_cell-border-thickness.xls +libreoffice_calc_xls-import_encryption_export-conditional-formatting.xls.pending +libreoffice_calc_xls-import_paste-link_link.xls +libreoffice_calc_xls-import_paste-link_src.xls +libreoffice_calc_xls-import_pivot-cache-has-source.xls +libreoffice_calc_xls-import_pivot-cache-no-source.xls +libreoffice_calc_xls-import_pivot-dup-data-fields.xls +libreoffice_calc_xls-import_pivot-layout-field-non-default.xls +libreoffice_calc_xls-import_row-attributes_row-all-hidden.xls +libreoffice_calc_xls-import_row-attributes_row-filtered.xls +libreoffice_calc_xls-import_row-attributes_row-heights.xls +libreoffice_calc_xls-import_row-attributes_row-tail-hidden-2.xls +libreoffice_calc_xls-import_row-attributes_row-tail-hidden-last-row-visible.xls +libreoffice_calc_xls-import_row-attributes_row-tail-hidden.xls +libreoffice_calc_xls-import_row-attributes_row-top-bottom-hidden.xls +libreoffice_calc_xls-import_shared-formula_1.xls +libreoffice_calc_xls-import_shared-formulas-simple.xls +merge_cells.xls +named_ranges_2011.xls +number_format.xls +number_format_entities.xls +number_format_russian.xls +numfmt_1_russian.xls +phonetic_text.xls +phpexcel_bad_cfb_dir.xls +pivot_table_named_range.xls +pivot_table_test.xls +pyExcelerator_P-0508-0000507647-3280-5298.xls +pyExcelerator_chart1v8.xls +pyExcelerator_excel2003.xls +pyExcelerator_frmla.xls +pyExcelerator_macro2v8.xls +pyExcelerator_mini-mini.xls +pyExcelerator_mini.xls +pyExcelerator_oo14.xls +rich_text_stress.xls +roo_1900_base.xls +roo_1904_base.xls +roo_Bibelbund.xls +roo_bad_excel_date.xls +roo_bbu.xls +roo_boolean.xls +roo_borders.xls +roo_bug-row-column-fixnum-float.xls +roo_comments.xls +roo_datetime.xls +roo_datetime_floatconv.xls +roo_emptysheets.xls +roo_false_encoding.xls +roo_formula.xls +roo_formula_parse_error.xls +roo_link.xls +roo_matrix.xls +roo_named_cells.xls +roo_numbers1.xls +roo_only_one_sheet.xls +roo_paragraph.xls +roo_prova.xls +roo_simple_spreadsheet.xls +roo_simple_spreadsheet_from_italo.xls +roo_style.xls +roo_time-test.xls +roo_type_excelx.xls.pending +roo_type_openoffice.xls.pending +roo_whitespace.xls +smart_tags_2007.xls +sushi.xls +text_and_numbers.xls +write.xls +xlrd_Formate.xls +xlrd_formula_test_names.xls +xlrd_formula_test_sjmachin.xls +xlrd_issue20.xls +xlrd_picture_in_cell.xls +xlrd_profiles.xls +xlrd_ragged.xls +xlrd_xf_class.xls +xlsx-stream-d-date-cell.xls +AutoFilter.xml +BlankSheetTypes.xml +ErrorTypes.xml +LONumbers-2010.xls.xml +LONumbers-2010.xlsx.xml +LONumbers-2011.xls.xml +LONumbers-2011.xlsx.xml +LONumbers.xls.xml +NumberFormatCondition.xml +RkNumber.xls.xml +RkNumber.xlsb.xml +RkNumber.xlsx.xml +calendar_stress_test.xml.pending +cell_style_simple.xml +comments_stress_test.xls.xml +comments_stress_test.xlsb.xml +comments_stress_test.xlsx.xml +custom_properties.xls.xml +custom_properties.xlsb.xml +custom_properties.xlsx.xml +defined_names_simple.xml +formula_stress_test.xls.xml +formula_stress_test.xlsb.xml +formula_stress_test.xlsx.xml +formulae_test_simple.xml +hyperlink_stress_test_2011.xml +interview.xlsx.xml +issue.xlsx.xml +large_strings.xls.xml +large_strings.xlsb.xml +large_strings.xlsx.xml +merge_cells.xls.xml +merge_cells.xlsb.xml +merge_cells.xlsx.xml +mixed_sheets.xlsx.xml +named_ranges_2011.xls.xml +named_ranges_2011.xlsb.xml +named_ranges_2011.xlsx.xml +number_format.xls.xml +number_format.xlsb.xml +number_format.xlsm.xml +number_format_entities.xml +number_format_russian.xml +numfmt_1_russian.xml +oo34xml_cell_pattern.xml +oo34xml_cellstyle.xml +oo34xml_conditionalformat.xml +oo34xml_dataformat.xml +oo34xml_dataformat2.xml +oo34xml_datarange.xml +oo34xml_font.xml +oo34xml_formula.xml +oo34xml_headerfooter.xml +oo34xml_merge.xml +oo34xml_pagebreak.xml +oo34xml_pagesheet.xml +oo34xml_rowcolumn.xml +oo34xml_solvsamp.xml +phonetic_text.xml +pivot_table_named_range.xml +protect_stress_test_xml.xml +rich_text_stress.xls.xml +rich_text_stress.xlsb.xml +rich_text_stress.xlsx.xml +roo_Bibelbund.xml +roo_bbu.xml +roo_boolean.xml +roo_borders.xml +roo_bug-row-column-fixnum-float.xml +roo_datetime.xml +roo_datetime_floatconv.xml +roo_emptysheets.xml +roo_excel2003.xml +roo_false_encoding.xml +roo_formula.xml +roo_formula_parse_error.xml +roo_numbers1.xml +roo_only_one_sheet.xml +roo_paragraph.xml +roo_simple_spreadsheet.xml +roo_simple_spreadsheet_from_italo.xml +roo_style.xml +roo_time-test.xml +roo_whitespace.xml +smart_tags_2007.xml +sushi.xml +text_and_numbers.xml +xlsx-stream-d-date-cell.xls.xml +xlsx-stream-d-date-cell.xlsb.xml +xlsx-stream-d-date-cell.xlsx.xml +2011/apachepoi_53568.xlsx.xls +2011/apachepoi_WithChartSheet.xlsx.xml +2011/apachepoi_picture.xlsx.xml +2011/apachepoi_styles.xlsx.xml +2011/openpyxl_r_conditional-formatting.xlsx.xls +2011/roo_file_item_error.xlsx.xml diff --git a/xlsx.js b/xlsx.js index 641f820..c29f5ce 100644 --- a/xlsx.js +++ b/xlsx.js @@ -1,27 +1,90 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ /* vim: set ts=2: */ /*jshint -W041 */ +/*jshint funcscope:true, eqnull:true */ var XLSX = {}; -(function(XLSX){ -XLSX.version = '0.7.12'; -var current_codepage = 1252, current_cptable; +(function make_xlsx(XLSX){ +XLSX.version = '0.8.0'; +var current_codepage = 1200, current_cptable; if(typeof module !== "undefined" && typeof require !== 'undefined') { if(typeof cptable === 'undefined') cptable = require('./dist/cpexcel'); current_cptable = cptable[current_codepage]; } -function reset_cp() { set_cp(1252); } +function reset_cp() { set_cp(1200); } var set_cp = function(cp) { current_codepage = cp; }; function char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; } var debom_xml = function(data) { return data; }; +var _getchar = function _gc1(x) { return String.fromCharCode(x); }; if(typeof cptable !== 'undefined') { set_cp = function(cp) { current_codepage = cp; current_cptable = cptable[cp]; }; debom_xml = function(data) { if(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.substr(2))); } return data; }; + _getchar = function _gc2(x) { + if(current_codepage === 1200) return String.fromCharCode(x); + return cptable.utils.decode(current_codepage, [x&255,x>>8])[0]; + }; } +var Base64 = (function make_b64(){ + var map = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; + return { + encode: function(input, utf8) { + var o = ""; + var c1, c2, c3, e1, e2, e3, e4; + for(var i = 0; i < input.length; ) { + c1 = input.charCodeAt(i++); + c2 = input.charCodeAt(i++); + c3 = input.charCodeAt(i++); + e1 = c1 >> 2; + e2 = (c1 & 3) << 4 | c2 >> 4; + e3 = (c2 & 15) << 2 | c3 >> 6; + e4 = c3 & 63; + if (isNaN(c2)) { e3 = e4 = 64; } + else if (isNaN(c3)) { e4 = 64; } + o += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4); + } + return o; + }, + decode: function b64_decode(input, utf8) { + var o = ""; + var c1, c2, c3; + var e1, e2, e3, e4; + input = input.replace(/[^A-Za-z0-9\+\/\=]/g, ""); + for(var i = 0; i < input.length;) { + e1 = map.indexOf(input.charAt(i++)); + e2 = map.indexOf(input.charAt(i++)); + e3 = map.indexOf(input.charAt(i++)); + e4 = map.indexOf(input.charAt(i++)); + c1 = e1 << 2 | e2 >> 4; + c2 = (e2 & 15) << 4 | e3 >> 2; + c3 = (e3 & 3) << 6 | e4; + o += String.fromCharCode(c1); + if (e3 != 64) { o += String.fromCharCode(c2); } + if (e4 != 64) { o += String.fromCharCode(c3); } + } + return o; + } + }; +})(); +var has_buf = (typeof Buffer !== 'undefined'); + +function new_raw_buf(len) { + /* jshint -W056 */ + return new (has_buf ? Buffer : Array)(len); + /* jshint +W056 */ +} + +function s2a(s) { + if(has_buf) return new Buffer(s, "binary"); + return s.split("").map(function(x){ return x.charCodeAt(0) & 0xff; }); +} + +var bconcat = function(bufs) { return [].concat.apply([], bufs); }; + +var chr0 = /\u0000/g, chr1 = /[\u0001-\u0006]/; /* ssf.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ /*jshint -W041 */ var SSF = {}; @@ -787,6 +850,409 @@ SSF.get_table = function get_table() { return table_fmt; }; SSF.load_table = function load_table(tbl) { for(var i=0; i!=0x0188; ++i) if(tbl[i] !== undefined) SSF.load(tbl[i], i); }; }; make_ssf(SSF); +/* map from xlml named formats to SSF TODO: localize */ +var XLMLFormatMap = { + "General Number": "General", + "General Date": SSF._table[22], + "Long Date": "dddd, mmmm dd, yyyy", + "Medium Date": SSF._table[15], + "Short Date": SSF._table[14], + "Long Time": SSF._table[19], + "Medium Time": SSF._table[18], + "Short Time": SSF._table[20], + "Currency": '"$"#,##0.00_);[Red]\\("$"#,##0.00\\)', + "Fixed": SSF._table[2], + "Standard": SSF._table[4], + "Percent": SSF._table[10], + "Scientific": SSF._table[11], + "Yes/No": '"Yes";"Yes";"No";@', + "True/False": '"True";"True";"False";@', + "On/Off": '"Yes";"Yes";"No";@' +}; + +var DO_NOT_EXPORT_CFB = true; +/* cfb.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* vim: set ts=2: */ +/*jshint eqnull:true */ + +/* [MS-CFB] v20130118 */ +var CFB = (function _CFB(){ +var exports = {}; +exports.version = '0.10.2'; +function parse(file) { +var mver = 3; // major version +var ssz = 512; // sector size +var nmfs = 0; // number of mini FAT sectors +var ndfs = 0; // number of DIFAT sectors +var dir_start = 0; // first directory sector location +var minifat_start = 0; // first mini FAT sector location +var difat_start = 0; // first mini FAT sector location + +var fat_addrs = []; // locations of FAT sectors + +/* [MS-CFB] 2.2 Compound File Header */ +var blob = file.slice(0,512); +prep_blob(blob, 0); + +/* major version */ +var mv = check_get_mver(blob); +mver = mv[0]; +switch(mver) { + case 3: ssz = 512; break; case 4: ssz = 4096; break; + default: throw "Major Version: Expected 3 or 4 saw " + mver; +} + +/* reprocess header */ +if(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); } +/* Save header for final object */ +var header = file.slice(0,ssz); + +check_shifts(blob, mver); + +// Number of Directory Sectors +var nds = blob.read_shift(4, 'i'); +if(mver === 3 && nds !== 0) throw '# Directory Sectors: Expected 0 saw ' + nds; + +// Number of FAT Sectors +//var nfs = blob.read_shift(4, 'i'); +blob.l += 4; + +// First Directory Sector Location +dir_start = blob.read_shift(4, 'i'); + +// Transaction Signature +blob.l += 4; + +// Mini Stream Cutoff Size +blob.chk('00100000', 'Mini Stream Cutoff Size: '); + +// First Mini FAT Sector Location +minifat_start = blob.read_shift(4, 'i'); + +// Number of Mini FAT Sectors +nmfs = blob.read_shift(4, 'i'); + +// First DIFAT sector location +difat_start = blob.read_shift(4, 'i'); + +// Number of DIFAT Sectors +ndfs = blob.read_shift(4, 'i'); + +// Grab FAT Sector Locations +for(var q, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */ + q = blob.read_shift(4, 'i'); + if(q<0) break; + fat_addrs[j] = q; +} + +/** Break the file up into sectors */ +var sectors = sectorify(file, ssz); + +sleuth_fat(difat_start, ndfs, sectors, ssz, fat_addrs); + +/** Chains */ +var sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz); + +sector_list[dir_start].name = "!Directory"; +if(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = "!MiniFAT"; +sector_list[fat_addrs[0]].name = "!FAT"; +sector_list.fat_addrs = fat_addrs; +sector_list.ssz = ssz; + +/* [MS-CFB] 2.6.1 Compound File Directory Entry */ +var files = {}, Paths = [], FileIndex = [], FullPaths = [], FullPathDir = {}; +read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex); + +build_full_paths(FileIndex, FullPathDir, FullPaths, Paths); + +var root_name = Paths.shift(); +Paths.root = root_name; + +/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */ +var find_path = make_find_path(FullPaths, Paths, FileIndex, files, root_name); + +return { + raw: {header: header, sectors: sectors}, + FileIndex: FileIndex, + FullPaths: FullPaths, + FullPathDir: FullPathDir, + find: find_path +}; +} // parse + +/* [MS-CFB] 2.2 Compound File Header -- read up to major version */ +function check_get_mver(blob) { + // header signature 8 + blob.chk(HEADER_SIGNATURE, 'Header Signature: '); + + // clsid 16 + blob.chk(HEADER_CLSID, 'CLSID: '); + + // minor version 2 + var mver = blob.read_shift(2, 'u'); + + return [blob.read_shift(2,'u'), mver]; +} +function check_shifts(blob, mver) { + var shift = 0x09; + + // Byte Order + blob.chk('feff', 'Byte Order: '); + + // Sector Shift + switch((shift = blob.read_shift(2))) { + case 0x09: if(mver !== 3) throw 'MajorVersion/SectorShift Mismatch'; break; + case 0x0c: if(mver !== 4) throw 'MajorVersion/SectorShift Mismatch'; break; + default: throw 'Sector Shift: Expected 9 or 12 saw ' + shift; + } + + // Mini Sector Shift + blob.chk('0600', 'Mini Sector Shift: '); + + // Reserved + blob.chk('000000000000', 'Reserved: '); +} + +/** Break the file up into sectors */ +function sectorify(file, ssz) { + var nsectors = Math.ceil(file.length/ssz)-1; + var sectors = new Array(nsectors); + for(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz); + sectors[nsectors-1] = file.slice(nsectors*ssz); + return sectors; +} + +/* [MS-CFB] 2.6.4 Red-Black Tree */ +function build_full_paths(FI, FPD, FP, Paths) { + var i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length; + var dad = new Array(pl), q = new Array(pl); + + for(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; } + + for(; j < q.length; ++j) { + i = q[j]; + L = FI[i].L; R = FI[i].R; C = FI[i].C; + if(dad[i] === i) { + if(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L]; + if(R !== -1 && dad[R] !== R) dad[i] = dad[R]; + } + if(C !== -1 /*NOSTREAM*/) dad[C] = i; + if(L !== -1) { dad[L] = dad[i]; q.push(L); } + if(R !== -1) { dad[R] = dad[i]; q.push(R); } + } + for(i=1; i !== pl; ++i) if(dad[i] === i) { + if(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R]; + else if(L !== -1 && dad[L] !== L) dad[i] = dad[L]; + } + + for(i=1; i < pl; ++i) { + if(FI[i].type === 0 /* unknown */) continue; + j = dad[i]; + if(j === 0) FP[i] = FP[0] + "/" + FP[i]; + else while(j !== 0) { + FP[i] = FP[j] + "/" + FP[i]; + j = dad[j]; + } + dad[i] = 0; + } + + FP[0] += "/"; + for(i=1; i < pl; ++i) { + if(FI[i].type !== 2 /* stream */) FP[i] += "/"; + FPD[FP[i]] = FI[i]; + } +} + +/* [MS-CFB] 2.6.4 */ +function make_find_path(FullPaths, Paths, FileIndex, files, root_name) { + var UCFullPaths = new Array(FullPaths.length); + var UCPaths = new Array(Paths.length), i; + for(i = 0; i < FullPaths.length; ++i) UCFullPaths[i] = FullPaths[i].toUpperCase().replace(chr0,'').replace(chr1,'!'); + for(i = 0; i < Paths.length; ++i) UCPaths[i] = Paths[i].toUpperCase().replace(chr0,'').replace(chr1,'!'); + return function find_path(path) { + var k; + if(path.charCodeAt(0) === 47 /* "/" */) { k=true; path = root_name + path; } + else k = path.indexOf("/") !== -1; + var UCPath = path.toUpperCase().replace(chr0,'').replace(chr1,'!'); + var w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath); + if(w === -1) return null; + return k === true ? FileIndex[w] : files[Paths[w]]; + }; +} + +/** Chase down the rest of the DIFAT chain to build a comprehensive list + DIFAT chains by storing the next sector number as the last 32 bytes */ +function sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) { + var q; + if(idx === ENDOFCHAIN) { + if(cnt !== 0) throw "DIFAT chain shorter than expected"; + } else if(idx !== -1 /*FREESECT*/) { + var sector = sectors[idx], m = (ssz>>>2)-1; + for(var i = 0; i < m; ++i) { + if((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break; + fat_addrs.push(q); + } + sleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs); + } +} + +/** Follow the linked list of sectors for a given starting point */ +function get_sector_list(sectors, start, fat_addrs, ssz, chkd) { + var sl = sectors.length; + var buf, buf_chain; + if(!chkd) chkd = new Array(sl); + var modulus = ssz - 1, j, jj; + buf = []; + buf_chain = []; + for(j=start; j>=0;) { + chkd[j] = true; + buf[buf.length] = j; + buf_chain.push(sectors[j]); + var addr = fat_addrs[Math.floor(j*4/ssz)]; + jj = ((j*4) & modulus); + if(ssz < 4 + jj) throw "FAT boundary crossed: " + j + " 4 "+ssz; + j = __readInt32LE(sectors[addr], jj); + } + return {nodes: buf, data:__toBuffer([buf_chain])}; +} + +/** Chase down the sector linked lists */ +function make_sector_list(sectors, dir_start, fat_addrs, ssz) { + var sl = sectors.length, sector_list = new Array(sl); + var chkd = new Array(sl), buf, buf_chain; + var modulus = ssz - 1, i, j, k, jj; + for(i=0; i < sl; ++i) { + buf = []; + k = (i + dir_start); if(k >= sl) k-=sl; + if(chkd[k] === true) continue; + buf_chain = []; + for(j=k; j>=0;) { + chkd[j] = true; + buf[buf.length] = j; + buf_chain.push(sectors[j]); + var addr = fat_addrs[Math.floor(j*4/ssz)]; + jj = ((j*4) & modulus); + if(ssz < 4 + jj) throw "FAT boundary crossed: " + j + " 4 "+ssz; + j = __readInt32LE(sectors[addr], jj); + } + sector_list[k] = {nodes: buf, data:__toBuffer([buf_chain])}; + } + return sector_list; +} + +/* [MS-CFB] 2.6.1 Compound File Directory Entry */ +function read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex) { + var blob; + var minifat_store = 0, pl = (Paths.length?2:0); + var sector = sector_list[dir_start].data; + var i = 0, namelen = 0, name, o, ctime, mtime; + for(; i < sector.length; i+= 128) { + blob = sector.slice(i, i+128); + prep_blob(blob, 64); + namelen = blob.read_shift(2); + if(namelen === 0) continue; + name = __utf16le(blob,0,namelen-pl); + Paths.push(name); + o = { + name: name, + type: blob.read_shift(1), + color: blob.read_shift(1), + L: blob.read_shift(4, 'i'), + R: blob.read_shift(4, 'i'), + C: blob.read_shift(4, 'i'), + clsid: blob.read_shift(16), + state: blob.read_shift(4, 'i') + }; + ctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2); + if(ctime !== 0) { + o.ctime = ctime; o.ct = read_date(blob, blob.l-8); + } + mtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2); + if(mtime !== 0) { + o.mtime = mtime; o.mt = read_date(blob, blob.l-8); + } + o.start = blob.read_shift(4, 'i'); + o.size = blob.read_shift(4, 'i'); + if(o.type === 5) { /* root */ + minifat_store = o.start; + if(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = "!StreamData"; + /*minifat_size = o.size;*/ + } else if(o.size >= 4096 /* MSCSZ */) { + o.storage = 'fat'; + if(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz); + sector_list[o.start].name = o.name; + o.content = sector_list[o.start].data.slice(0,o.size); + prep_blob(o.content, 0); + } else { + o.storage = 'minifat'; + if(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN) { + o.content = sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size); + prep_blob(o.content, 0); + } + } + files[name] = o; + FileIndex.push(o); + } +} + +function read_date(blob, offset) { + return new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000); +} + +var fs; +function readFileSync(filename, options) { + if(fs === undefined) fs = require('fs'); + return parse(fs.readFileSync(filename), options); +} + +function readSync(blob, options) { + switch(options !== undefined && options.type !== undefined ? options.type : "base64") { + case "file": return readFileSync(blob, options); + case "base64": return parse(s2a(Base64.decode(blob)), options); + case "binary": return parse(s2a(blob), options); + } + return parse(blob); +} + +/** CFB Constants */ +var MSSZ = 64; /* Mini Sector Size = 1<<6 */ +//var MSCSZ = 4096; /* Mini Stream Cutoff Size */ +/* 2.1 Compound File Sector Numbers and Types */ +var ENDOFCHAIN = -2; +/* 2.2 Compound File Header */ +var HEADER_SIGNATURE = 'd0cf11e0a1b11ae1'; +var HEADER_CLSID = '00000000000000000000000000000000'; +var consts = { + /* 2.1 Compund File Sector Numbers and Types */ + MAXREGSECT: -6, + DIFSECT: -4, + FATSECT: -3, + ENDOFCHAIN: ENDOFCHAIN, + FREESECT: -1, + /* 2.2 Compound File Header */ + HEADER_SIGNATURE: HEADER_SIGNATURE, + HEADER_MINOR_VERSION: '3e00', + MAXREGSID: -6, + NOSTREAM: -1, + HEADER_CLSID: HEADER_CLSID, + /* 2.6.1 Compound File Directory Entry */ + EntryTypes: ['unknown','storage','stream','lockbytes','property','root'] +}; + +exports.read = readSync; +exports.parse = parse; +exports.utils = { + ReadShift: ReadShift, + CheckField: CheckField, + prep_blob: prep_blob, + bconcat: bconcat, + consts: consts +}; + +return exports; +})(); + +if(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; } function isval(x) { return x !== undefined && x !== null; } function keys(o) { return Object.keys(o); } @@ -831,7 +1297,6 @@ function cc2str(arr) { return o; } -var has_buf = (typeof Buffer !== 'undefined'); function getdata(data) { if(!data) return null; if(data.name.substr(-4) === ".bin") { @@ -875,7 +1340,7 @@ if (typeof exports !== 'undefined') { _fs = require('f'+'s'); } } -var attregexg=/\b[\w:]+=["'][^"]*['"]/g; +var attregexg=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g; var tagregex=/<[^>]*>/g; var nsregex=/<\w*:/, nsregex2 = /<(\/?)\w+:/; function parsexmltag(tag, skip_root) { @@ -908,17 +1373,27 @@ var rencoding = evert(encodings); var rencstr = "&<>'\"".split(""); // TODO: CP remap (need to read file version to determine OS) -var encregex = /&[a-z]*;/g, coderegex = /_x([\da-fA-F]+)_/g; -function unescapexml(text){ - var s = text + ''; - return s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));}); -} +var unescapexml = (function() { + var encregex = /&[a-z]*;/g, coderegex = /_x([\da-fA-F]+)_/g; + return function unescapexml(text){ + var s = text + ''; + return s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));}); + }; +})(); + var decregex=/[&<>'"]/g, charegex = /[\u0000-\u0008\u000b-\u001f]/g; function escapexml(text){ var s = text + ''; return s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return "_x" + ("000"+s.charCodeAt(0).toString(16)).substr(-4) + "_";}); } +/* TODO: handle codepages */ +var xlml_fixstr = (function() { + var entregex = /&#(\d+);/g; + function entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); } + return function xlml_fixstr(str) { return str.replace(entregex,entrepl); }; +})(); + function parsexmlbool(value, tag) { switch(value) { case '1': case 'true': case 'TRUE': return true; @@ -1035,6 +1510,7 @@ XMLNS.main = [ 'http://schemas.microsoft.com/office/excel/2006/main', 'http://schemas.microsoft.com/office/excel/2006/2' ]; + function readIEEE754(buf, idx, isLE, nl, ml) { if(isLE === undefined) isLE = true; if(!nl) nl = 8; @@ -1055,16 +1531,39 @@ function readIEEE754(buf, idx, isLE, nl, ml) { var __toBuffer, ___toBuffer; __toBuffer = ___toBuffer = function toBuffer_(bufs) { var x = []; for(var i = 0; i < bufs[0].length; ++i) { x.push.apply(x, bufs[0][i]); } return x; }; +var __utf16le, ___utf16le; +__utf16le = ___utf16le = function utf16le_(b,s,e) { var ss=[]; for(var i=s; i 0 ? __utf8(b, i+4,i+4+len-1) : "";}; +var __lpwstr, ___lpwstr; +__lpwstr = ___lpwstr = function lpwstr_(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : "";}; var __double, ___double; __double = ___double = function(b, idx) { return readIEEE754(b, idx);}; var is_buf = function is_buf_a(a) { return Array.isArray(a); }; if(has_buf) { + __utf16le = function utf16le_b(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e); }; + __hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); }; + __lpstr = function lpstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : "";}; + __lpwstr = function lpwstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);}; + __utf8 = function utf8_b(s,e) { return this.toString('utf8',s,e); }; __toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);}; + bconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); }; __double = function double_(b,i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); }; is_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); }; } +/* from js-xls */ +if(typeof cptable !== 'undefined') { + __utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)); }; + __utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); }; + __lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : "";}; + __lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : "";}; +} var __readUInt8 = function(b, idx) { return b[idx]; }; var __readUInt16LE = function(b, idx) { return b[idx+1]*(1<<8)+b[idx]; }; @@ -1072,20 +1571,70 @@ var __readInt16LE = function(b, idx) { var u = b[idx+1]*(1<<8)+b[idx]; return (u var __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; }; var __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; }; +var ___unhexlify = function(s) { return s.match(/../g).map(function(x) { return parseInt(x,16);}); }; +var __unhexlify = typeof Buffer !== "undefined" ? function(s) { return Buffer.isBuffer(s) ? new Buffer(s, 'hex') : ___unhexlify(s); } : ___unhexlify; function ReadShift(size, t) { - var o="", oo=[], w, vv, i, loc; - if(t === 'dbcs') { - loc = this.l; - if(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString("utf16le"); - else for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; } - size *= 2; - } else switch(size) { - case 1: o = __readUInt8(this, this.l); break; - case 2: o = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); break; - case 4: o = __readUInt32LE(this, this.l); break; - case 8: if(t === 'f') { o = __double(this, this.l); break; } - } + var o="", oI, oR, oo=[], w, vv, i, loc; + switch(t) { + case 'dbcs': + loc = this.l; + if(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString("utf16le"); + else for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; } + size *= 2; + break; + + case 'utf8': o = __utf8(this, this.l, this.l + size); break; + case 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break; + + /* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */ + case 'lpstr': o = __lpstr(this, this.l); size = 5 + o.length; break; + /* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */ + case 'lpwstr': o = __lpwstr(this, this.l); size = 5 + o.length; if(o[o.length-1] == '\u0000') size += 2; break; + + case 'cstr': size = 0; o = ""; + while((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w)); + o = oo.join(""); break; + case 'wstr': size = 0; o = ""; + while((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;} + size+=2; o = oo.join(""); break; + + /* sbcs and dbcs support continue records in the SST way TODO codepages */ + case 'dbcs-cont': o = ""; loc = this.l; + for(i = 0; i != size; ++i) { + if(this.lens && this.lens.indexOf(loc) !== -1) { + w = __readUInt8(this, loc); + this.l = loc + 1; + vv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont'); + return oo.join("") + vv; + } + oo.push(_getchar(__readUInt16LE(this, loc))); + loc+=2; + } o = oo.join(""); size *= 2; break; + + case 'sbcs-cont': o = ""; loc = this.l; + for(i = 0; i != size; ++i) { + if(this.lens && this.lens.indexOf(loc) !== -1) { + w = __readUInt8(this, loc); + this.l = loc + 1; + vv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont'); + return oo.join("") + vv; + } + oo.push(_getchar(__readUInt8(this, loc))); + loc+=1; + } o = oo.join(""); break; + + default: + switch(size) { + case 1: oI = __readUInt8(this, this.l); this.l++; return oI; + case 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI; + case 4: + if(t === 'i' || (this[this.l+3] & 0x80)===0) { oI = __readInt32LE(this, this.l); this.l += 4; return oI; } + else { oR = __readUInt32LE(this, this.l); this.l += 4; return oR; } break; + case 8: if(t === 'f') { oR = __double(this, this.l); this.l += 8; return oR; } + /* falls through */ + case 16: o = __hexlify(this, this.l, size); break; + }} this.l+=size; return o; } @@ -1106,9 +1655,16 @@ function WriteShift(t, val, f) { this.l += size; return this; } +function CheckField(hexstr, fld) { + var m = __hexlify(this,this.l,hexstr.length>>1); + if(m !== hexstr) throw fld + 'Expected ' + hexstr + ' saw ' + m; + this.l += hexstr.length>>1; +} + function prep_blob(blob, pos) { blob.l = pos; blob.read_shift = ReadShift; + blob.chk = CheckField; blob.write_shift = WriteShift; } @@ -1117,7 +1673,7 @@ function parsenoop(blob, length) { blob.l += length; } function writenoop(blob, length) { blob.l += length; } function new_buf(sz) { - var o = has_buf ? new Buffer(sz) : new Array(sz); + var o = new_raw_buf(sz); prep_blob(o, 0); return o; } @@ -1129,7 +1685,7 @@ function recordhopper(data, cb, opts) { while(data.l < data.length) { var RT = data.read_shift(1); if(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7); - var R = RecordEnum[RT] || RecordEnum[0xFFFF]; + var R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF]; tmpbyte = data.read_shift(1); length = tmpbyte & 0x7F; for(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte); @@ -1173,7 +1729,7 @@ function buf_array() { function write_record(ba, type, payload, length) { var t = evert_RE[type], l; - if(!length) length = RecordEnum[t].p || (payload||[]).length || 0; + if(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0; l = 1 + (t >= 0x80 ? 1 : 0) + 1 + length; if(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l; var o = ba.next(l); @@ -1188,6 +1744,62 @@ function write_record(ba, type, payload, length) { } if(length > 0 && is_buf(payload)) ba.push(payload); } +/* XLS ranges enforced */ +function shift_cell_xls(cell, tgt) { + if(tgt.s) { + if(cell.cRel) cell.c += tgt.s.c; + if(cell.rRel) cell.r += tgt.s.r; + } else { + cell.c += tgt.c; + cell.r += tgt.r; + } + cell.cRel = cell.rRel = 0; + while(cell.c >= 0x100) cell.c -= 0x100; + while(cell.r >= 0x10000) cell.r -= 0x10000; + return cell; +} + +function shift_range_xls(cell, range) { + cell.s = shift_cell_xls(cell.s, range.s); + cell.e = shift_cell_xls(cell.e, range.s); + return cell; +} + +var OFFCRYPTO = {}; +var make_offcrypto = function(O, _crypto) { + var crypto; + if(typeof _crypto !== 'undefined') crypto = _crypto; + else if(typeof require !== 'undefined') { + try { crypto = require('cry'+'pto'); } + catch(e) { crypto = null; } + } + + O.rc4 = function(key, data) { + var S = new Array(256); + var c = 0, i = 0, j = 0, t = 0; + for(i = 0; i != 256; ++i) S[i] = i; + for(i = 0; i != 256; ++i) { + j = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255; + t = S[i]; S[i] = S[j]; S[j] = t; + } + i = j = 0; out = Buffer(data.length); + for(c = 0; c != data.length; ++c) { + i = (i + 1)&255; + j = (j + S[i])%256; + t = S[i]; S[i] = S[j]; S[j] = t; + out[c] = (data[c] ^ S[(S[i]+S[j])&255]); + } + return out; + }; + + if(crypto) { + O.md5 = function(hex) { return crypto.createHash('md5').update(hex).digest('hex'); }; + } else { + O.md5 = function(hex) { throw "unimplemented"; }; + } +}; +make_offcrypto(OFFCRYPTO, typeof crypto !== "undefined" ? crypto : undefined); + /* [MS-XLSB] 2.5.143 */ function parse_StrRun(data, length) { @@ -1223,14 +1835,14 @@ function write_RichStr(str, o) { } /* [MS-XLSB] 2.5.9 */ -function parse_Cell(data) { +function parse_XLSBCell(data) { var col = data.read_shift(4); var iStyleRef = data.read_shift(2); iStyleRef += data.read_shift(1) <<16; var fPhShow = data.read_shift(1); return { c:col, iStyleRef: iStyleRef }; } -function write_Cell(cell, o) { +function write_XLSBCell(cell, o) { if(o == null) o = new_buf(8); o.write_shift(-4, cell.c); o.write_shift(3, cell.iStyleRef === undefined ? cell.iStyleRef : cell.s); @@ -1240,7 +1852,7 @@ function write_Cell(cell, o) { /* [MS-XLSB] 2.5.21 */ -function parse_CodeName (data, length) { return parse_XLWideString(data, length); } +function parse_XLSBCodeName (data, length) { return parse_XLWideString(data, length); } /* [MS-XLSB] 2.5.166 */ function parse_XLNullableWideString(data) { @@ -1272,11 +1884,12 @@ var write_RelID = write_XLNullableWideString; /* [MS-XLSB] 2.5.122 */ +/* [MS-XLS] 2.5.217 */ function parse_RkNumber(data) { var b = data.slice(data.l, data.l+4); var fX100 = b[0] & 1, fInt = b[0] & 2; data.l+=4; - b[0] &= 0xFC; + b[0] &= 0xFC; // b[0] &= ~3; var RK = fInt === 0 ? __double([0,0,0,0,b[0],b[1],b[2],b[3]],0) : __readInt32LE(b,0)>>2; return fX100 ? RK/100 : RK; } @@ -1301,6 +1914,7 @@ function write_UncheckedRfX(r, o) { } /* [MS-XLSB] 2.5.171 */ +/* [MS-XLS] 2.5.342 */ function parse_Xnum(data, length) { return data.read_shift(8, 'f'); } function write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, 'f', data); } @@ -1346,6 +1960,271 @@ function parse_FontFlags(data, length) { }; return out; } +/* [MS-OLEPS] 2.2 PropertyType */ +{ + var VT_EMPTY = 0x0000; + var VT_NULL = 0x0001; + var VT_I2 = 0x0002; + var VT_I4 = 0x0003; + var VT_R4 = 0x0004; + var VT_R8 = 0x0005; + var VT_CY = 0x0006; + var VT_DATE = 0x0007; + var VT_BSTR = 0x0008; + var VT_ERROR = 0x000A; + var VT_BOOL = 0x000B; + var VT_VARIANT = 0x000C; + var VT_DECIMAL = 0x000E; + var VT_I1 = 0x0010; + var VT_UI1 = 0x0011; + var VT_UI2 = 0x0012; + var VT_UI4 = 0x0013; + var VT_I8 = 0x0014; + var VT_UI8 = 0x0015; + var VT_INT = 0x0016; + var VT_UINT = 0x0017; + var VT_LPSTR = 0x001E; + var VT_LPWSTR = 0x001F; + var VT_FILETIME = 0x0040; + var VT_BLOB = 0x0041; + var VT_STREAM = 0x0042; + var VT_STORAGE = 0x0043; + var VT_STREAMED_Object = 0x0044; + var VT_STORED_Object = 0x0045; + var VT_BLOB_Object = 0x0046; + var VT_CF = 0x0047; + var VT_CLSID = 0x0048; + var VT_VERSIONED_STREAM = 0x0049; + var VT_VECTOR = 0x1000; + var VT_ARRAY = 0x2000; + + var VT_STRING = 0x0050; // 2.3.3.1.11 VtString + var VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString + var VT_CUSTOM = [VT_STRING, VT_USTR]; +} + +/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */ +var DocSummaryPIDDSI = { + 0x01: { n: 'CodePage', t: VT_I2 }, + 0x02: { n: 'Category', t: VT_STRING }, + 0x03: { n: 'PresentationFormat', t: VT_STRING }, + 0x04: { n: 'ByteCount', t: VT_I4 }, + 0x05: { n: 'LineCount', t: VT_I4 }, + 0x06: { n: 'ParagraphCount', t: VT_I4 }, + 0x07: { n: 'SlideCount', t: VT_I4 }, + 0x08: { n: 'NoteCount', t: VT_I4 }, + 0x09: { n: 'HiddenCount', t: VT_I4 }, + 0x0a: { n: 'MultimediaClipCount', t: VT_I4 }, + 0x0b: { n: 'Scale', t: VT_BOOL }, + 0x0c: { n: 'HeadingPair', t: VT_VECTOR | VT_VARIANT }, + 0x0d: { n: 'DocParts', t: VT_VECTOR | VT_LPSTR }, + 0x0e: { n: 'Manager', t: VT_STRING }, + 0x0f: { n: 'Company', t: VT_STRING }, + 0x10: { n: 'LinksDirty', t: VT_BOOL }, + 0x11: { n: 'CharacterCount', t: VT_I4 }, + 0x13: { n: 'SharedDoc', t: VT_BOOL }, + 0x16: { n: 'HLinksChanged', t: VT_BOOL }, + 0x17: { n: 'AppVersion', t: VT_I4, p: 'version' }, + 0x1A: { n: 'ContentType', t: VT_STRING }, + 0x1B: { n: 'ContentStatus', t: VT_STRING }, + 0x1C: { n: 'Language', t: VT_STRING }, + 0x1D: { n: 'Version', t: VT_STRING }, + 0xFF: {} +}; + +/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */ +var SummaryPIDSI = { + 0x01: { n: 'CodePage', t: VT_I2 }, + 0x02: { n: 'Title', t: VT_STRING }, + 0x03: { n: 'Subject', t: VT_STRING }, + 0x04: { n: 'Author', t: VT_STRING }, + 0x05: { n: 'Keywords', t: VT_STRING }, + 0x06: { n: 'Comments', t: VT_STRING }, + 0x07: { n: 'Template', t: VT_STRING }, + 0x08: { n: 'LastAuthor', t: VT_STRING }, + 0x09: { n: 'RevNumber', t: VT_STRING }, + 0x0A: { n: 'EditTime', t: VT_FILETIME }, + 0x0B: { n: 'LastPrinted', t: VT_FILETIME }, + 0x0C: { n: 'CreatedDate', t: VT_FILETIME }, + 0x0D: { n: 'ModifiedDate', t: VT_FILETIME }, + 0x0E: { n: 'PageCount', t: VT_I4 }, + 0x0F: { n: 'WordCount', t: VT_I4 }, + 0x10: { n: 'CharCount', t: VT_I4 }, + 0x11: { n: 'Thumbnail', t: VT_CF }, + 0x12: { n: 'ApplicationName', t: VT_LPSTR }, + 0x13: { n: 'DocumentSecurity', t: VT_I4 }, + 0xFF: {} +}; + +/* [MS-OLEPS] 2.18 */ +var SpecialProperties = { + 0x80000000: { n: 'Locale', t: VT_UI4 }, + 0x80000003: { n: 'Behavior', t: VT_UI4 }, + 0x72627262: {} +}; + +(function() { + for(var y in SpecialProperties) if(SpecialProperties.hasOwnProperty(y)) + DocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y]; +})(); + +/* [MS-XLS] 2.4.63 Country/Region codes */ +var CountryEnum = { + 0x0001: "US", // United States + 0x0002: "CA", // Canada + 0x0003: "", // Latin America (except Brazil) + 0x0007: "RU", // Russia + 0x0014: "EG", // Egypt + 0x001E: "GR", // Greece + 0x001F: "NL", // Netherlands + 0x0020: "BE", // Belgium + 0x0021: "FR", // France + 0x0022: "ES", // Spain + 0x0024: "HU", // Hungary + 0x0027: "IT", // Italy + 0x0029: "CH", // Switzerland + 0x002B: "AT", // Austria + 0x002C: "GB", // United Kingdom + 0x002D: "DK", // Denmark + 0x002E: "SE", // Sweden + 0x002F: "NO", // Norway + 0x0030: "PL", // Poland + 0x0031: "DE", // Germany + 0x0034: "MX", // Mexico + 0x0037: "BR", // Brazil + 0x003d: "AU", // Australia + 0x0040: "NZ", // New Zealand + 0x0042: "TH", // Thailand + 0x0051: "JP", // Japan + 0x0052: "KR", // Korea + 0x0054: "VN", // Viet Nam + 0x0056: "CN", // China + 0x005A: "TR", // Turkey + 0x0069: "JS", // Ramastan + 0x00D5: "DZ", // Algeria + 0x00D8: "MA", // Morocco + 0x00DA: "LY", // Libya + 0x015F: "PT", // Portugal + 0x0162: "IS", // Iceland + 0x0166: "FI", // Finland + 0x01A4: "CZ", // Czech Republic + 0x0376: "TW", // Taiwan + 0x03C1: "LB", // Lebanon + 0x03C2: "JO", // Jordan + 0x03C3: "SY", // Syria + 0x03C4: "IQ", // Iraq + 0x03C5: "KW", // Kuwait + 0x03C6: "SA", // Saudi Arabia + 0x03CB: "AE", // United Arab Emirates + 0x03CC: "IL", // Israel + 0x03CE: "QA", // Qatar + 0x03D5: "IR", // Iran + 0xFFFF: "US" // United States +}; + +/* [MS-XLS] 2.5.127 */ +var XLSFillPattern = [ + null, + 'solid', + 'mediumGray', + 'darkGray', + 'lightGray', + 'darkHorizontal', + 'darkVertical', + 'darkDown', + 'darkUp', + 'darkGrid', + 'darkTrellis', + 'lightHorizontal', + 'lightVertical', + 'lightDown', + 'lightUp', + 'lightGrid', + 'lightTrellis', + 'gray125', + 'gray0625' +]; + +function rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); } + +/* [MS-XLS] 2.5.161 */ +var XLSIcv = rgbify([ + /* Color Constants */ + 0x000000, + 0xFFFFFF, + 0xFF0000, + 0x00FF00, + 0x0000FF, + 0xFFFF00, + 0xFF00FF, + 0x00FFFF, + + /* Defaults */ + 0x000000, + 0xFFFFFF, + 0xFF0000, + 0x00FF00, + 0x0000FF, + 0xFFFF00, + 0xFF00FF, + 0x00FFFF, + + 0x800000, + 0x008000, + 0x000080, + 0x808000, + 0x800080, + 0x008080, + 0xC0C0C0, + 0x808080, + 0x9999FF, + 0x993366, + 0xFFFFCC, + 0xCCFFFF, + 0x660066, + 0xFF8080, + 0x0066CC, + 0xCCCCFF, + + 0x000080, + 0xFF00FF, + 0xFFFF00, + 0x00FFFF, + 0x800080, + 0x800000, + 0x008080, + 0x0000FF, + 0x00CCFF, + 0xCCFFFF, + 0xCCFFCC, + 0xFFFF99, + 0x99CCFF, + 0xFF99CC, + 0xCC99FF, + 0xFFCC99, + + 0x3366FF, + 0x33CCCC, + 0x99CC00, + 0xFFCC00, + 0xFF9900, + 0xFF6600, + 0x666699, + 0x969696, + 0x003366, + 0x339966, + 0x003300, + 0x333300, + 0x993300, + 0x993366, + 0x333399, + 0x333333, + + /* Sheet */ + 0xFFFFFF, + 0x000000 +]); + /* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */ /* 12.3 Part Summary */ /* 14.2 Part Summary */ @@ -1879,6 +2758,1371 @@ function write_cust_props(cp, opts) { if(o.length>2){ o[o.length] = ''; o[1]=o[1].replace("/>",">"); } return o.join(""); } +function xlml_set_prop(Props, tag, val) { + /* TODO: Normalize the properties */ + switch(tag) { + case 'Description': tag = 'Comments'; break; + } + Props[tag] = val; +} + +/* [MS-DTYP] 2.3.3 FILETIME */ +/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */ +/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */ +function parse_FILETIME(blob) { + var dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4); + return new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\.000/,""); +} + +/* [MS-OSHARED] 2.3.3.1.4 Lpstr */ +function parse_lpstr(blob, type, pad) { + var str = blob.read_shift(0, 'lpstr'); + if(pad) blob.l += (4 - ((str.length+1) & 3)) & 3; + return str; +} + +/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */ +function parse_lpwstr(blob, type, pad) { + var str = blob.read_shift(0, 'lpwstr'); + if(pad) blob.l += (4 - ((str.length+1) & 3)) & 3; + return str; +} + + +/* [MS-OSHARED] 2.3.3.1.11 VtString */ +/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */ +function parse_VtStringBase(blob, stringType, pad) { + if(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob); + return parse_lpstr(blob, stringType, pad); +} + +function parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); } +function parse_VtUnalignedString(blob, t) { if(!t) throw new Error("dafuq?"); return parse_VtStringBase(blob, t, 0); } + +/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */ +function parse_VtVecUnalignedLpstrValue(blob) { + var length = blob.read_shift(4); + var ret = []; + for(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr'); + return ret; +} + +/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */ +function parse_VtVecUnalignedLpstr(blob) { + return parse_VtVecUnalignedLpstrValue(blob); +} + +/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */ +function parse_VtHeadingPair(blob) { + var headingString = parse_TypedPropertyValue(blob, VT_USTR); + var headerParts = parse_TypedPropertyValue(blob, VT_I4); + return [headingString, headerParts]; +} + +/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */ +function parse_VtVecHeadingPairValue(blob) { + var cElements = blob.read_shift(4); + var out = []; + for(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob)); + return out; +} + +/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */ +function parse_VtVecHeadingPair(blob) { + // NOTE: When invoked, wType & padding were already consumed + return parse_VtVecHeadingPairValue(blob); +} + +/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */ +function parse_dictionary(blob,CodePage) { + var cnt = blob.read_shift(4); + var dict = {}; + for(var j = 0; j != cnt; ++j) { + var pid = blob.read_shift(4); + var len = blob.read_shift(4); + dict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!'); + } + if(blob.l & 3) blob.l = (blob.l>>2+1)<<2; + return dict; +} + +/* [MS-OLEPS] 2.9 BLOB */ +function parse_BLOB(blob) { + var size = blob.read_shift(4); + var bytes = blob.slice(blob.l,blob.l+size); + if(size & 3 > 0) blob.l += (4 - (size & 3)) & 3; + return bytes; +} + +/* [MS-OLEPS] 2.11 ClipboardData */ +function parse_ClipboardData(blob) { + // TODO + var o = {}; + o.Size = blob.read_shift(4); + //o.Format = blob.read_shift(4); + blob.l += o.Size; + return o; +} + +/* [MS-OLEPS] 2.14 Vector and Array Property Types */ +function parse_VtVector(blob, cb) { + /* [MS-OLEPS] 2.14.2 VectorHeader */ +/* var Length = blob.read_shift(4); + var o = []; + for(var i = 0; i != Length; ++i) { + o.push(cb(blob)); + } + return o;*/ +} + +/* [MS-OLEPS] 2.15 TypedPropertyValue */ +function parse_TypedPropertyValue(blob, type, _opts) { + var t = blob.read_shift(2), ret, opts = _opts||{}; + blob.l += 2; + if(type !== VT_VARIANT) + if(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t); + switch(type === VT_VARIANT ? t : type) { + case 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret; + case 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret; + case 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0; + case 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret; + case 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,''); + case 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob); + case 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob); + case 0x41 /*VT_BLOB*/: return parse_BLOB(blob); + case 0x47 /*VT_CF*/: return parse_ClipboardData(blob); + case 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw && 4).replace(chr0,''); + case 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t, 4).replace(chr0,''); + case 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob); + case 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob); + default: throw new Error("TypedPropertyValue unrecognized type " + type + " " + t); + } +} +/* [MS-OLEPS] 2.14.2 VectorHeader */ +/*function parse_VTVectorVariant(blob) { + var Length = blob.read_shift(4); + + if(Length & 1 !== 0) throw new Error("VectorHeader Length=" + Length + " must be even"); + var o = []; + for(var i = 0; i != Length; ++i) { + o.push(parse_TypedPropertyValue(blob, VT_VARIANT)); + } + return o; +}*/ + +/* [MS-OLEPS] 2.20 PropertySet */ +function parse_PropertySet(blob, PIDSI) { + var start_addr = blob.l; + var size = blob.read_shift(4); + var NumProps = blob.read_shift(4); + var Props = [], i = 0; + var CodePage = 0; + var Dictionary = -1, DictObj; + for(i = 0; i != NumProps; ++i) { + var PropID = blob.read_shift(4); + var Offset = blob.read_shift(4); + Props[i] = [PropID, Offset + start_addr]; + } + var PropH = {}; + for(i = 0; i != NumProps; ++i) { + if(blob.l !== Props[i][1]) { + var fail = true; + if(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) { + case 0x02 /*VT_I2*/: if(blob.l +2 === Props[i][1]) { blob.l+=2; fail = false; } break; + case 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break; + case 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break; + } + if(!PIDSI && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; } + if(fail) throw new Error("Read Error: Expected address " + Props[i][1] + ' at ' + blob.l + ' :' + i); + } + if(PIDSI) { + var piddsi = PIDSI[Props[i][0]]; + PropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true}); + if(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + "." + String(PropH[piddsi.n] & 0xFFFF); + if(piddsi.n == "CodePage") switch(PropH[piddsi.n]) { + case 0: PropH[piddsi.n] = 1252; + /* falls through */ + case 10000: // OSX Roman + case 1252: // Windows Latin + + case 874: // SB Windows Thai + case 1250: // SB Windows Central Europe + case 1251: // SB Windows Cyrillic + case 1253: // SB Windows Greek + case 1254: // SB Windows Turkish + case 1255: // SB Windows Hebrew + case 1256: // SB Windows Arabic + case 1257: // SB Windows Baltic + case 1258: // SB Windows Vietnam + + case 932: // DB Windows Japanese Shift-JIS + case 936: // DB Windows Simplified Chinese GBK + case 949: // DB Windows Korean + case 950: // DB Windows Traditional Chinese Big5 + + case 1200: // UTF16LE + case 1201: // UTF16BE + case 65000: case -536: // UTF-7 + case 65001: case -535: // UTF-8 + set_cp(CodePage = PropH[piddsi.n]); break; + default: throw new Error("Unsupported CodePage: " + PropH[piddsi.n]); + } + } else { + if(Props[i][0] === 0x1) { + CodePage = PropH.CodePage = parse_TypedPropertyValue(blob, VT_I2); + set_cp(CodePage); + if(Dictionary !== -1) { + var oldpos = blob.l; + blob.l = Props[Dictionary][1]; + DictObj = parse_dictionary(blob,CodePage); + blob.l = oldpos; + } + } else if(Props[i][0] === 0) { + if(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; } + DictObj = parse_dictionary(blob,CodePage); + } else { + var name = DictObj[Props[i][0]]; + var val; + /* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */ + switch(blob[blob.l]) { + case 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break; + case 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break; + case 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break; + case 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break; + case 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break; + case 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break; + case 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break; + case 0x40 /*VT_FILETIME*/: blob.l += 4; val = new Date(parse_FILETIME(blob)); break; + default: throw new Error("unparsed value: " + blob[blob.l]); + } + PropH[name] = val; + } + } + } + blob.l = start_addr + size; /* step ahead to skip padding */ + return PropH; +} + +/* [MS-OLEPS] 2.21 PropertySetStream */ +function parse_PropertySetStream(file, PIDSI) { + var blob = file.content; + prep_blob(blob, 0); + + var NumSets, FMTID0, FMTID1, Offset0, Offset1; + blob.chk('feff', 'Byte Order: '); + + var vers = blob.read_shift(2); // TODO: check version + var SystemIdentifier = blob.read_shift(4); + blob.chk(CFB.utils.consts.HEADER_CLSID, 'CLSID: '); + NumSets = blob.read_shift(4); + if(NumSets !== 1 && NumSets !== 2) throw "Unrecognized #Sets: " + NumSets; + FMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4); + + if(NumSets === 1 && Offset0 !== blob.l) throw "Length mismatch"; + else if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); } + var PSet0 = parse_PropertySet(blob, PIDSI); + + var rval = { SystemIdentifier: SystemIdentifier }; + for(var y in PSet0) rval[y] = PSet0[y]; + //rval.blob = blob; + rval.FMTID = FMTID0; + //rval.PSet0 = PSet0; + if(NumSets === 1) return rval; + if(blob.l !== Offset1) throw "Length mismatch 2: " + blob.l + " !== " + Offset1; + var PSet1; + try { PSet1 = parse_PropertySet(blob, null); } catch(e) { } + for(y in PSet1) rval[y] = PSet1[y]; + rval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1 + return rval; +} + + +function parsenoop2(blob, length) { blob.read_shift(length); return null; } + +function parslurp(blob, length, cb) { + var arr = [], target = blob.l + length; + while(blob.l < target) arr.push(cb(blob, target - blob.l)); + if(target !== blob.l) throw new Error("Slurp error"); + return arr; +} + +function parslurp2(blob, length, cb) { + var arr = [], target = blob.l + length, len = blob.read_shift(2); + while(len-- !== 0) arr.push(cb(blob, target - blob.l)); + if(target !== blob.l) throw new Error("Slurp error"); + return arr; +} + +function parsebool(blob, length) { return blob.read_shift(length) === 0x1; } + +function parseuint16(blob) { return blob.read_shift(2, 'u'); } +function parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);} + +/* --- 2.5 Structures --- */ + +/* [MS-XLS] 2.5.14 Boolean */ +var parse_Boolean = parsebool; + +/* [MS-XLS] 2.5.10 Bes (boolean or error) */ +function parse_Bes(blob) { + var v = blob.read_shift(1), t = blob.read_shift(1); + return t === 0x01 ? v : v === 0x01; +} + +/* [MS-XLS] 2.5.240 ShortXLUnicodeString */ +function parse_ShortXLUnicodeString(blob, length, opts) { + var cch = blob.read_shift(1); + var width = 1, encoding = 'sbcs-cont'; + var cp = current_codepage; + if(opts && opts.biff >= 8) current_codepage = 1200; + if(opts === undefined || opts.biff !== 5) { + var fHighByte = blob.read_shift(1); + if(fHighByte) { width = 2; encoding = 'dbcs-cont'; } + } + var o = cch ? blob.read_shift(cch, encoding) : ""; + current_codepage = cp; + return o; +} + +/* 2.5.293 XLUnicodeRichExtendedString */ +function parse_XLUnicodeRichExtendedString(blob) { + var cp = current_codepage; + current_codepage = 1200; + var cch = blob.read_shift(2), flags = blob.read_shift(1); + var fHighByte = flags & 0x1, fExtSt = flags & 0x4, fRichSt = flags & 0x8; + var width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs + var cRun, cbExtRst; + var z = {}; + if(fRichSt) cRun = blob.read_shift(2); + if(fExtSt) cbExtRst = blob.read_shift(4); + var encoding = (flags & 0x1) ? 'dbcs-cont' : 'sbcs-cont'; + var msg = cch === 0 ? "" : blob.read_shift(cch, encoding); + if(fRichSt) blob.l += 4 * cRun; //TODO: parse this + if(fExtSt) blob.l += cbExtRst; //TODO: parse this + z.t = msg; + if(!fRichSt) { z.raw = "" + z.t + ""; z.r = z.t; } + current_codepage = cp; + return z; +} + +/* 2.5.296 XLUnicodeStringNoCch */ +function parse_XLUnicodeStringNoCch(blob, cch, opts) { + var retval; + var fHighByte = blob.read_shift(1); + if(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); } + else { retval = blob.read_shift(cch, 'dbcs-cont'); } + return retval; +} + +/* 2.5.294 XLUnicodeString */ +function parse_XLUnicodeString(blob, length, opts) { + var cch = blob.read_shift(opts !== undefined && opts.biff > 0 && opts.biff < 8 ? 1 : 2); + if(cch === 0) { blob.l++; return ""; } + return parse_XLUnicodeStringNoCch(blob, cch, opts); +} +/* BIFF5 override */ +function parse_XLUnicodeString2(blob, length, opts) { + if(opts.biff !== 5 && opts.biff !== 2) return parse_XLUnicodeString(blob, length, opts); + var cch = blob.read_shift(1); + if(cch === 0) { blob.l++; return ""; } + return blob.read_shift(cch, 'sbcs-cont'); +} + +/* [MS-XLS] 2.5.61 ControlInfo */ +var parse_ControlInfo = parsenoop; + +/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */ +var parse_URLMoniker = function(blob, length) { + var len = blob.read_shift(4), start = blob.l; + var extra = false; + if(len > 24) { + /* look ahead */ + blob.l += len - 24; + if(blob.read_shift(16) === "795881f43b1d7f48af2c825dc4852763") extra = true; + blob.l = start; + } + var url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,""); + if(extra) blob.l += 24; + return url; +}; + +/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */ +var parse_FileMoniker = function(blob, length) { + var cAnti = blob.read_shift(2); + var ansiLength = blob.read_shift(4); + var ansiPath = blob.read_shift(ansiLength, 'cstr'); + var endServer = blob.read_shift(2); + var versionNumber = blob.read_shift(2); + var cbUnicodePathSize = blob.read_shift(4); + if(cbUnicodePathSize === 0) return ansiPath.replace(/\\/g,"/"); + var cbUnicodePathBytes = blob.read_shift(4); + var usKeyValue = blob.read_shift(2); + var unicodePath = blob.read_shift(cbUnicodePathBytes>>1, 'utf16le').replace(chr0,""); + return unicodePath; +}; + +/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */ +var parse_HyperlinkMoniker = function(blob, length) { + var clsid = blob.read_shift(16); length -= 16; + switch(clsid) { + case "e0c9ea79f9bace118c8200aa004ba90b": return parse_URLMoniker(blob, length); + case "0303000000000000c000000000000046": return parse_FileMoniker(blob, length); + default: throw "unsupported moniker " + clsid; + } +}; + +/* [MS-OSHARED] 2.3.7.9 HyperlinkString */ +var parse_HyperlinkString = function(blob, length) { + var len = blob.read_shift(4); + var o = blob.read_shift(len, 'utf16le').replace(chr0, ""); + return o; +}; + +/* [MS-OSHARED] 2.3.7.1 Hyperlink Object TODO: unify params with XLSX */ +var parse_Hyperlink = function(blob, length) { + var end = blob.l + length; + var sVer = blob.read_shift(4); + if(sVer !== 2) throw new Error("Unrecognized streamVersion: " + sVer); + var flags = blob.read_shift(2); + blob.l += 2; + var displayName, targetFrameName, moniker, oleMoniker, location, guid, fileTime; + if(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l); + if(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l); + if((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l); + if((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l); + if(flags & 0x0008) location = parse_HyperlinkString(blob, end - blob.l); + if(flags & 0x0020) guid = blob.read_shift(16); + if(flags & 0x0040) fileTime = parse_FILETIME(blob, 8); + blob.l = end; + var target = (targetFrameName||moniker||oleMoniker); + if(location) target+="#"+location; + return {Target: target}; +}; + +/* 2.5.178 LongRGBA */ +function parse_LongRGBA(blob, length) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; } + +/* 2.5.177 LongRGB */ +function parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; } + + +/* --- MS-XLS --- */ + +/* 2.5.19 */ +function parse_XLSCell(blob, length) { + var rw = blob.read_shift(2); // 0-indexed + var col = blob.read_shift(2); + var ixfe = blob.read_shift(2); + return {r:rw, c:col, ixfe:ixfe}; +} + +/* 2.5.134 */ +function parse_frtHeader(blob) { + var rt = blob.read_shift(2); + var flags = blob.read_shift(2); // TODO: parse these flags + blob.l += 8; + return {type: rt, flags: flags}; +} + + + +function parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? "" : parse_XLUnicodeString2(blob, length, opts); } + +/* 2.5.158 */ +var HIDEOBJENUM = ['SHOWALL', 'SHOWPLACEHOLDER', 'HIDEALL']; +var parse_HideObjEnum = parseuint16; + +/* 2.5.344 */ +function parse_XTI(blob, length) { + var iSupBook = blob.read_shift(2), itabFirst = blob.read_shift(2,'i'), itabLast = blob.read_shift(2,'i'); + return [iSupBook, itabFirst, itabLast]; +} + +/* 2.5.218 */ +function parse_RkRec(blob, length) { + var ixfe = blob.read_shift(2); + var RK = parse_RkNumber(blob); + //console.log("::", ixfe, RK,";;"); + return [ixfe, RK]; +} + +/* 2.5.1 */ +function parse_AddinUdf(blob, length) { + blob.l += 4; length -= 4; + var l = blob.l + length; + var udfName = parse_ShortXLUnicodeString(blob, length); + var cb = blob.read_shift(2); + l -= blob.l; + if(cb !== l) throw "Malformed AddinUdf: padding = " + l + " != " + cb; + blob.l += cb; + return udfName; +} + +/* 2.5.209 TODO: Check sizes */ +function parse_Ref8U(blob, length) { + var rwFirst = blob.read_shift(2); + var rwLast = blob.read_shift(2); + var colFirst = blob.read_shift(2); + var colLast = blob.read_shift(2); + return {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}}; +} + +/* 2.5.211 */ +function parse_RefU(blob, length) { + var rwFirst = blob.read_shift(2); + var rwLast = blob.read_shift(2); + var colFirst = blob.read_shift(1); + var colLast = blob.read_shift(1); + return {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}}; +} + +/* 2.5.207 */ +var parse_Ref = parse_RefU; + +/* 2.5.143 */ +function parse_FtCmo(blob, length) { + blob.l += 4; + var ot = blob.read_shift(2); + var id = blob.read_shift(2); + var flags = blob.read_shift(2); + blob.l+=12; + return [id, ot, flags]; +} + +/* 2.5.149 */ +function parse_FtNts(blob, length) { + var out = {}; + blob.l += 4; + blob.l += 16; // GUID TODO + out.fSharedNote = blob.read_shift(2); + blob.l += 4; + return out; +} + +/* 2.5.142 */ +function parse_FtCf(blob, length) { + var out = {}; + blob.l += 4; + blob.cf = blob.read_shift(2); + return out; +} + +/* 2.5.140 - 2.5.154 and friends */ +var FtTab = { + 0x15: parse_FtCmo, + 0x13: parsenoop, /* FtLbsData */ + 0x12: function(blob, length) { blob.l += 12; }, /* FtCblsData */ + 0x11: function(blob, length) { blob.l += 8; }, /* FtRboData */ + 0x10: parsenoop, /* FtEdoData */ + 0x0F: parsenoop, /* FtGboData */ + 0x0D: parse_FtNts, /* FtNts */ + 0x0C: function(blob, length) { blob.l += 24; }, /* FtSbs */ + 0x0B: function(blob, length) { blob.l += 10; }, /* FtRbo */ + 0x0A: function(blob, length) { blob.l += 16; }, /* FtCbls */ + 0x09: parsenoop, /* FtPictFmla */ + 0x08: function(blob, length) { blob.l += 6; }, /* FtPioGrbit */ + 0x07: parse_FtCf, /* FtCf */ + 0x06: function(blob, length) { blob.l += 6; }, /* FtGmo */ + 0x04: parsenoop, /* FtMacro */ + 0x00: function(blob, length) { blob.l += 4; } /* FtEnding */ +}; +function parse_FtArray(blob, length, ot) { + var s = blob.l; + var fts = []; + while(blob.l < s + length) { + var ft = blob.read_shift(2); + blob.l-=2; + try { + fts.push(FtTab[ft](blob, s + length - blob.l)); + } catch(e) { blob.l = s + length; return fts; } + } + if(blob.l != s + length) blob.l = s + length; //throw "bad Object Ft-sequence"; + return fts; +} + +/* 2.5.129 */ +var parse_FontIndex = parseuint16; + +/* --- 2.4 Records --- */ + +/* 2.4.21 */ +function parse_BOF(blob, length) { + var o = {}; + o.BIFFVer = blob.read_shift(2); length -= 2; + switch(o.BIFFVer) { + case 0x0600: /* BIFF8 */ + case 0x0500: /* BIFF5 */ + case 0x0002: case 0x0007: /* BIFF2 */ + break; + default: throw "Unexpected BIFF Ver " + o.BIFFVer; + } + blob.read_shift(length); + return o; +} + + +/* 2.4.146 */ +function parse_InterfaceHdr(blob, length) { + if(length === 0) return 0x04b0; + var q; + if((q=blob.read_shift(2))!==0x04b0) throw 'InterfaceHdr codePage ' + q; + return 0x04b0; +} + + +/* 2.4.349 */ +function parse_WriteAccess(blob, length, opts) { + if(opts.enc) { blob.l += length; return ""; } + var l = blob.l; + // TODO: make sure XLUnicodeString doesnt overrun + var UserName = parse_XLUnicodeString(blob, 0, opts); + blob.read_shift(length + l - blob.l); + return UserName; +} + +/* 2.4.28 */ +function parse_BoundSheet8(blob, length, opts) { + var pos = blob.read_shift(4); + var hidden = blob.read_shift(1) >> 6; + var dt = blob.read_shift(1); + switch(dt) { + case 0: dt = 'Worksheet'; break; + case 1: dt = 'Macrosheet'; break; + case 2: dt = 'Chartsheet'; break; + case 6: dt = 'VBAModule'; break; + } + var name = parse_ShortXLUnicodeString(blob, 0, opts); + if(name.length === 0) name = "Sheet1"; + return { pos:pos, hs:hidden, dt:dt, name:name }; +} + +/* 2.4.265 TODO */ +function parse_SST(blob, length) { + var cnt = blob.read_shift(4); + var ucnt = blob.read_shift(4); + var strs = []; + for(var i = 0; i != ucnt; ++i) { + strs.push(parse_XLUnicodeRichExtendedString(blob)); + } + strs.Count = cnt; strs.Unique = ucnt; + return strs; +} + +/* 2.4.107 */ +function parse_ExtSST(blob, length) { + var extsst = {}; + extsst.dsst = blob.read_shift(2); + blob.l += length-2; + return extsst; +} + + +/* 2.4.221 TODO*/ +function parse_Row(blob, length) { + var rw = blob.read_shift(2), col = blob.read_shift(2), Col = blob.read_shift(2), rht = blob.read_shift(2); + blob.read_shift(4); // reserved(2), unused(2) + var flags = blob.read_shift(1); // various flags + blob.read_shift(1); // reserved + blob.read_shift(2); //ixfe, other flags + return {r:rw, c:col, cnt:Col-col}; +} + + +/* 2.4.125 */ +function parse_ForceFullCalculation(blob, length) { + var header = parse_frtHeader(blob); + if(header.type != 0x08A3) throw "Invalid Future Record " + header.type; + var fullcalc = blob.read_shift(4); + return fullcalc !== 0x0; +} + + +var parse_CompressPictures = parsenoop2; /* 2.4.55 Not interesting */ + + + +/* 2.4.215 rt */ +function parse_RecalcId(blob, length) { + blob.read_shift(2); + return blob.read_shift(4); +} + +/* 2.4.87 */ +function parse_DefaultRowHeight (blob, length) { + var f = blob.read_shift(2), miyRw; + miyRw = blob.read_shift(2); // flags & 0x02 -> hidden, else empty + var fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3}; + return [fl, miyRw]; +} + +/* 2.4.345 TODO */ +function parse_Window1(blob, length) { + var xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2); + var flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2); + var ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2); + return { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur, + FirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio }; +} + +/* 2.4.122 TODO */ +function parse_Font(blob, length, opts) { + blob.l += 14; + var name = parse_ShortXLUnicodeString(blob, 0, opts); + return name; +} + +/* 2.4.149 */ +function parse_LabelSst(blob, length) { + var cell = parse_XLSCell(blob); + cell.isst = blob.read_shift(4); + return cell; +} + +/* 2.4.148 */ +function parse_Label(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + var str = parse_XLUnicodeString(blob, length-6, opts); + cell.val = str; + return cell; +} + +/* 2.4.126 Number Formats */ +function parse_Format(blob, length, opts) { + var ifmt = blob.read_shift(2); + var fmtstr = parse_XLUnicodeString2(blob, 0, opts); + return [ifmt, fmtstr]; +} + +/* 2.4.90 */ +function parse_Dimensions(blob, length) { + var w = length === 10 ? 2 : 4; + var r = blob.read_shift(w), R = blob.read_shift(w), + c = blob.read_shift(2), C = blob.read_shift(2); + blob.l += 2; + return {s: {r:r, c:c}, e: {r:R, c:C}}; +} + +/* 2.4.220 */ +function parse_RK(blob, length) { + var rw = blob.read_shift(2), col = blob.read_shift(2); + var rkrec = parse_RkRec(blob); + return {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]}; +} + +/* 2.4.175 */ +function parse_MulRk(blob, length) { + var target = blob.l + length - 2; + var rw = blob.read_shift(2), col = blob.read_shift(2); + var rkrecs = []; + while(blob.l < target) rkrecs.push(parse_RkRec(blob)); + if(blob.l !== target) throw "MulRK read error"; + var lastcol = blob.read_shift(2); + if(rkrecs.length != lastcol - col + 1) throw "MulRK length mismatch"; + return {r:rw, c:col, C:lastcol, rkrec:rkrecs}; +} + +/* 2.5.20 2.5.249 TODO */ +function parse_CellStyleXF(blob, length, style) { + var o = {}; + var a = blob.read_shift(4), b = blob.read_shift(4); + var c = blob.read_shift(4), d = blob.read_shift(2); + o.patternType = XLSFillPattern[c >> 26]; + o.icvFore = d & 0x7F; + o.icvBack = (d >> 7) & 0x7F; + return o; +} +function parse_CellXF(blob, length) {return parse_CellStyleXF(blob,length,0);} +function parse_StyleXF(blob, length) {return parse_CellStyleXF(blob,length,1);} + +/* 2.4.353 TODO: actually do this right */ +function parse_XF(blob, length) { + var o = {}; + o.ifnt = blob.read_shift(2); o.ifmt = blob.read_shift(2); o.flags = blob.read_shift(2); + o.fStyle = (o.flags >> 2) & 0x01; + length -= 6; + o.data = parse_CellStyleXF(blob, length, o.fStyle); + return o; +} + +/* 2.4.134 */ +function parse_Guts(blob, length) { + blob.l += 4; + var out = [blob.read_shift(2), blob.read_shift(2)]; + if(out[0] !== 0) out[0]--; + if(out[1] !== 0) out[1]--; + if(out[0] > 7 || out[1] > 7) throw "Bad Gutters: " + out; + return out; +} + +/* 2.4.24 */ +function parse_BoolErr(blob, length) { + var cell = parse_XLSCell(blob, 6); + var val = parse_Bes(blob, 2); + cell.val = val; + cell.t = (val === true || val === false) ? 'b' : 'e'; + return cell; +} + +/* 2.4.180 Number */ +function parse_Number(blob, length) { + var cell = parse_XLSCell(blob, 6); + var xnum = parse_Xnum(blob, 8); + cell.val = xnum; + return cell; +} + +var parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136 + +/* 2.4.271 */ +function parse_SupBook(blob, length, opts) { + var end = blob.l + length; + var ctab = blob.read_shift(2); + var cch = blob.read_shift(2); + var virtPath; + if(cch >=0x01 && cch <=0xff) virtPath = parse_XLUnicodeStringNoCch(blob, cch); + var rgst = blob.read_shift(end - blob.l); + opts.sbcch = cch; + return [cch, ctab, virtPath, rgst]; +} + +/* 2.4.105 TODO */ +function parse_ExternName(blob, length, opts) { + var flags = blob.read_shift(2); + var body; + var o = { + fBuiltIn: flags & 0x01, + fWantAdvise: (flags >>> 1) & 0x01, + fWantPict: (flags >>> 2) & 0x01, + fOle: (flags >>> 3) & 0x01, + fOleLink: (flags >>> 4) & 0x01, + cf: (flags >>> 5) & 0x3FF, + fIcon: flags >>> 15 & 0x01 + }; + if(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2); + //else throw new Error("unsupported SupBook cch: " + opts.sbcch); + o.body = body || blob.read_shift(length-2); + return o; +} + +/* 2.4.150 TODO */ +function parse_Lbl(blob, length, opts) { + if(opts.biff < 8) return parse_Label(blob, length, opts); + var target = blob.l + length; + var flags = blob.read_shift(2); + var chKey = blob.read_shift(1); + var cch = blob.read_shift(1); + var cce = blob.read_shift(2); + blob.l += 2; + var itab = blob.read_shift(2); + blob.l += 4; + var name = parse_XLUnicodeStringNoCch(blob, cch, opts); + var rgce = parse_NameParsedFormula(blob, target - blob.l, opts, cce); + return { + chKey: chKey, + Name: name, + rgce: rgce + }; +} + +/* 2.4.106 TODO: verify supbook manipulation */ +function parse_ExternSheet(blob, length, opts) { + if(opts.biff < 8) return parse_ShortXLUnicodeString(blob, length, opts); + var o = parslurp2(blob,length,parse_XTI); + var oo = []; + if(opts.sbcch === 0x0401) { + for(var i = 0; i != o.length; ++i) oo.push(opts.snames[o[i][1]]); + return oo; + } + else return o; +} + +/* 2.4.260 */ +function parse_ShrFmla(blob, length, opts) { + var ref = parse_RefU(blob, 6); + blob.l++; + var cUse = blob.read_shift(1); + length -= 8; + return [parse_SharedParsedFormula(blob, length, opts), cUse]; +} + +/* 2.4.4 TODO */ +function parse_Array(blob, length, opts) { + var ref = parse_Ref(blob, 6); + blob.l += 6; length -= 12; /* TODO: fAlwaysCalc */ + return [ref, parse_ArrayParsedFormula(blob, length, opts, ref)]; +} + +/* 2.4.173 */ +function parse_MTRSettings(blob, length) { + var fMTREnabled = blob.read_shift(4) !== 0x00; + var fUserSetThreadCount = blob.read_shift(4) !== 0x00; + var cUserThreadCount = blob.read_shift(4); + return [fMTREnabled, fUserSetThreadCount, cUserThreadCount]; +} + +/* 2.5.186 TODO: BIFF5 */ +function parse_NoteSh(blob, length, opts) { + if(opts.biff < 8) return; + var row = blob.read_shift(2), col = blob.read_shift(2); + var flags = blob.read_shift(2), idObj = blob.read_shift(2); + var stAuthor = parse_XLUnicodeString2(blob, 0, opts); + if(opts.biff < 8) blob.read_shift(1); + return [{r:row,c:col}, stAuthor, idObj, flags]; +} + +/* 2.4.179 */ +function parse_Note(blob, length, opts) { + /* TODO: Support revisions */ + return parse_NoteSh(blob, length, opts); +} + +/* 2.4.168 */ +function parse_MergeCells(blob, length) { + var merges = []; + var cmcs = blob.read_shift(2); + while (cmcs--) merges.push(parse_Ref8U(blob,length)); + return merges; +} + +/* 2.4.181 TODO: parse all the things! */ +function parse_Obj(blob, length) { + var cmo = parse_FtCmo(blob, 22); // id, ot, flags + var fts = parse_FtArray(blob, length-22, cmo[1]); + return { cmo: cmo, ft:fts }; +} + +/* 2.4.329 TODO: parse properly */ +function parse_TxO(blob, length, opts) { + var s = blob.l; +try { + blob.l += 4; + var ot = (opts.lastobj||{cmo:[0,0]}).cmo[1]; + var controlInfo; + if([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6; + else controlInfo = parse_ControlInfo(blob, 6, opts); + var cchText = blob.read_shift(2); + var cbRuns = blob.read_shift(2); + var ifntEmpty = parse_FontIndex(blob, 2); + var len = blob.read_shift(2); + blob.l += len; + //var fmla = parse_ObjFmla(blob, s + length - blob.l); + + var texts = ""; + for(var i = 1; i < blob.lens.length-1; ++i) { + if(blob.l-s != blob.lens[i]) throw "TxO: bad continue record"; + var hdr = blob[blob.l]; + var t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1); + texts += t; + if(texts.length >= (hdr ? cchText : 2*cchText)) break; + } + if(texts.length !== cchText && texts.length !== cchText*2) { + throw "cchText: " + cchText + " != " + texts.length; + } + + blob.l = s + length; + /* 2.5.272 TxORuns */ +// var rgTxoRuns = []; +// for(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8; +// var cchText2 = blob.read_shift(2); +// if(cchText2 !== cchText) throw "TxOLastRun mismatch: " + cchText2 + " " + cchText; +// blob.l += 6; +// if(s + length != blob.l) throw "TxO " + (s + length) + ", at " + blob.l; + return { t: texts }; +} catch(e) { blob.l = s + length; return { t: texts||"" }; } +} + +/* 2.4.140 */ +var parse_HLink = function(blob, length) { + var ref = parse_Ref8U(blob, 8); + blob.l += 16; /* CLSID */ + var hlink = parse_Hyperlink(blob, length-24); + return [ref, hlink]; +}; + +/* 2.4.141 */ +var parse_HLinkTooltip = function(blob, length) { + var end = blob.l + length; + blob.read_shift(2); + var ref = parse_Ref8U(blob, 8); + var wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont'); + wzTooltip = wzTooltip.replace(chr0,""); + return [ref, wzTooltip]; +}; + +/* 2.4.63 */ +function parse_Country(blob, length) { + var o = [], d; + d = blob.read_shift(2); o[0] = CountryEnum[d] || d; + d = blob.read_shift(2); o[1] = CountryEnum[d] || d; + return o; +} + +/* 2.4.50 ClrtClient */ +function parse_ClrtClient(blob, length) { + var ccv = blob.read_shift(2); + var o = []; + while(ccv-->0) o.push(parse_LongRGB(blob, 8)); + return o; +} + +/* 2.4.188 */ +function parse_Palette(blob, length) { + var ccv = blob.read_shift(2); + var o = []; + while(ccv-->0) o.push(parse_LongRGB(blob, 8)); + return o; +} + +/* 2.4.354 */ +function parse_XFCRC(blob, length) { + blob.l += 2; + var o = {cxfs:0, crc:0}; + o.cxfs = blob.read_shift(2); + o.crc = blob.read_shift(4); + return o; +} + + +var parse_Style = parsenoop; +var parse_StyleExt = parsenoop; + +var parse_ColInfo = parsenoop; + +var parse_Window2 = parsenoop; + + +var parse_Backup = parsebool; /* 2.4.14 */ +var parse_Blank = parse_XLSCell; /* 2.4.20 Just the cell */ +var parse_BottomMargin = parse_Xnum; /* 2.4.27 */ +var parse_BuiltInFnGroupCount = parseuint16; /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */ +var parse_CalcCount = parseuint16; /* 2.4.31 #Iterations */ +var parse_CalcDelta = parse_Xnum; /* 2.4.32 */ +var parse_CalcIter = parsebool; /* 2.4.33 1=iterative calc */ +var parse_CalcMode = parseuint16; /* 2.4.34 0=manual, 1=auto (def), 2=table */ +var parse_CalcPrecision = parsebool; /* 2.4.35 */ +var parse_CalcRefMode = parsenoop2; /* 2.4.36 */ +var parse_CalcSaveRecalc = parsebool; /* 2.4.37 */ +var parse_CodePage = parseuint16; /* 2.4.52 */ +var parse_Compat12 = parsebool; /* 2.4.54 true = no compatibility check */ +var parse_Date1904 = parsebool; /* 2.4.77 - 1=1904,0=1900 */ +var parse_DefColWidth = parseuint16; /* 2.4.89 */ +var parse_DSF = parsenoop2; /* 2.4.94 -- MUST be ignored */ +var parse_EntExU2 = parsenoop2; /* 2.4.102 -- Explicitly says to ignore */ +var parse_EOF = parsenoop2; /* 2.4.103 */ +var parse_Excel9File = parsenoop2; /* 2.4.104 -- Optional and unused */ +var parse_FeatHdr = parsenoop2; /* 2.4.112 */ +var parse_FontX = parseuint16; /* 2.4.123 */ +var parse_Footer = parse_XLHeaderFooter; /* 2.4.124 */ +var parse_GridSet = parseuint16; /* 2.4.132, =1 */ +var parse_HCenter = parsebool; /* 2.4.135 sheet centered horizontal on print */ +var parse_Header = parse_XLHeaderFooter; /* 2.4.136 */ +var parse_HideObj = parse_HideObjEnum; /* 2.4.139 */ +var parse_InterfaceEnd = parsenoop2; /* 2.4.145 -- noop */ +var parse_LeftMargin = parse_Xnum; /* 2.4.151 */ +var parse_Mms = parsenoop2; /* 2.4.169 -- Explicitly says to ignore */ +var parse_ObjProtect = parsebool; /* 2.4.183 -- must be 1 if present */ +var parse_Password = parseuint16; /* 2.4.191 */ +var parse_PrintGrid = parsebool; /* 2.4.202 */ +var parse_PrintRowCol = parsebool; /* 2.4.203 */ +var parse_PrintSize = parseuint16; /* 2.4.204 0:3 */ +var parse_Prot4Rev = parsebool; /* 2.4.205 */ +var parse_Prot4RevPass = parseuint16; /* 2.4.206 */ +var parse_Protect = parsebool; /* 2.4.207 */ +var parse_RefreshAll = parsebool; /* 2.4.217 -- must be 0 if not template */ +var parse_RightMargin = parse_Xnum; /* 2.4.219 */ +var parse_RRTabId = parseuint16a; /* 2.4.241 */ +var parse_ScenarioProtect = parsebool; /* 2.4.245 */ +var parse_Scl = parseuint16a; /* 2.4.247 num, den */ +var parse_String = parse_XLUnicodeString; /* 2.4.268 */ +var parse_SxBool = parsebool; /* 2.4.274 */ +var parse_TopMargin = parse_Xnum; /* 2.4.328 */ +var parse_UsesELFs = parsebool; /* 2.4.337 -- should be 0 */ +var parse_VCenter = parsebool; /* 2.4.342 */ +var parse_WinProtect = parsebool; /* 2.4.347 */ +var parse_WriteProtect = parsenoop; /* 2.4.350 empty record */ + + +/* ---- */ +var parse_VerticalPageBreaks = parsenoop; +var parse_HorizontalPageBreaks = parsenoop; +var parse_Selection = parsenoop; +var parse_Continue = parsenoop; +var parse_Pane = parsenoop; +var parse_Pls = parsenoop; +var parse_DCon = parsenoop; +var parse_DConRef = parsenoop; +var parse_DConName = parsenoop; +var parse_XCT = parsenoop; +var parse_CRN = parsenoop; +var parse_FileSharing = parsenoop; +var parse_Uncalced = parsenoop; +var parse_Template = parsenoop; +var parse_Intl = parsenoop; +var parse_WsBool = parsenoop; +var parse_Sort = parsenoop; +var parse_Sync = parsenoop; +var parse_LPr = parsenoop; +var parse_DxGCol = parsenoop; +var parse_FnGroupName = parsenoop; +var parse_FilterMode = parsenoop; +var parse_AutoFilterInfo = parsenoop; +var parse_AutoFilter = parsenoop; +var parse_Setup = parsenoop; +var parse_ScenMan = parsenoop; +var parse_SCENARIO = parsenoop; +var parse_SxView = parsenoop; +var parse_Sxvd = parsenoop; +var parse_SXVI = parsenoop; +var parse_SxIvd = parsenoop; +var parse_SXLI = parsenoop; +var parse_SXPI = parsenoop; +var parse_DocRoute = parsenoop; +var parse_RecipName = parsenoop; +var parse_MulBlank = parsenoop; +var parse_SXDI = parsenoop; +var parse_SXDB = parsenoop; +var parse_SXFDB = parsenoop; +var parse_SXDBB = parsenoop; +var parse_SXNum = parsenoop; +var parse_SxErr = parsenoop; +var parse_SXInt = parsenoop; +var parse_SXString = parsenoop; +var parse_SXDtr = parsenoop; +var parse_SxNil = parsenoop; +var parse_SXTbl = parsenoop; +var parse_SXTBRGIITM = parsenoop; +var parse_SxTbpg = parsenoop; +var parse_ObProj = parsenoop; +var parse_SXStreamID = parsenoop; +var parse_DBCell = parsenoop; +var parse_SXRng = parsenoop; +var parse_SxIsxoper = parsenoop; +var parse_BookBool = parsenoop; +var parse_DbOrParamQry = parsenoop; +var parse_OleObjectSize = parsenoop; +var parse_SXVS = parsenoop; +var parse_BkHim = parsenoop; +var parse_MsoDrawingGroup = parsenoop; +var parse_MsoDrawing = parsenoop; +var parse_MsoDrawingSelection = parsenoop; +var parse_PhoneticInfo = parsenoop; +var parse_SxRule = parsenoop; +var parse_SXEx = parsenoop; +var parse_SxFilt = parsenoop; +var parse_SxDXF = parsenoop; +var parse_SxItm = parsenoop; +var parse_SxName = parsenoop; +var parse_SxSelect = parsenoop; +var parse_SXPair = parsenoop; +var parse_SxFmla = parsenoop; +var parse_SxFormat = parsenoop; +var parse_SXVDEx = parsenoop; +var parse_SXFormula = parsenoop; +var parse_SXDBEx = parsenoop; +var parse_RRDInsDel = parsenoop; +var parse_RRDHead = parsenoop; +var parse_RRDChgCell = parsenoop; +var parse_RRDRenSheet = parsenoop; +var parse_RRSort = parsenoop; +var parse_RRDMove = parsenoop; +var parse_RRFormat = parsenoop; +var parse_RRAutoFmt = parsenoop; +var parse_RRInsertSh = parsenoop; +var parse_RRDMoveBegin = parsenoop; +var parse_RRDMoveEnd = parsenoop; +var parse_RRDInsDelBegin = parsenoop; +var parse_RRDInsDelEnd = parsenoop; +var parse_RRDConflict = parsenoop; +var parse_RRDDefName = parsenoop; +var parse_RRDRstEtxp = parsenoop; +var parse_LRng = parsenoop; +var parse_CUsr = parsenoop; +var parse_CbUsr = parsenoop; +var parse_UsrInfo = parsenoop; +var parse_UsrExcl = parsenoop; +var parse_FileLock = parsenoop; +var parse_RRDInfo = parsenoop; +var parse_BCUsrs = parsenoop; +var parse_UsrChk = parsenoop; +var parse_UserBView = parsenoop; +var parse_UserSViewBegin = parsenoop; // overloaded +var parse_UserSViewEnd = parsenoop; +var parse_RRDUserView = parsenoop; +var parse_Qsi = parsenoop; +var parse_CondFmt = parsenoop; +var parse_CF = parsenoop; +var parse_DVal = parsenoop; +var parse_DConBin = parsenoop; +var parse_Lel = parsenoop; +var parse_XLSCodeName = parse_XLUnicodeString; +var parse_SXFDBType = parsenoop; +var parse_ObNoMacros = parsenoop; +var parse_Dv = parsenoop; +var parse_Index = parsenoop; +var parse_Table = parsenoop; +var parse_BigName = parsenoop; +var parse_ContinueBigName = parsenoop; +var parse_WebPub = parsenoop; +var parse_QsiSXTag = parsenoop; +var parse_DBQueryExt = parsenoop; +var parse_ExtString = parsenoop; +var parse_TxtQry = parsenoop; +var parse_Qsir = parsenoop; +var parse_Qsif = parsenoop; +var parse_RRDTQSIF = parsenoop; +var parse_OleDbConn = parsenoop; +var parse_WOpt = parsenoop; +var parse_SXViewEx = parsenoop; +var parse_SXTH = parsenoop; +var parse_SXPIEx = parsenoop; +var parse_SXVDTEx = parsenoop; +var parse_SXViewEx9 = parsenoop; +var parse_ContinueFrt = parsenoop; +var parse_RealTimeData = parsenoop; +var parse_ChartFrtInfo = parsenoop; +var parse_FrtWrapper = parsenoop; +var parse_StartBlock = parsenoop; +var parse_EndBlock = parsenoop; +var parse_StartObject = parsenoop; +var parse_EndObject = parsenoop; +var parse_CatLab = parsenoop; +var parse_YMult = parsenoop; +var parse_SXViewLink = parsenoop; +var parse_PivotChartBits = parsenoop; +var parse_FrtFontList = parsenoop; +var parse_SheetExt = parsenoop; +var parse_BookExt = parsenoop; +var parse_SXAddl = parsenoop; +var parse_CrErr = parsenoop; +var parse_HFPicture = parsenoop; +var parse_Feat = parsenoop; +var parse_DataLabExt = parsenoop; +var parse_DataLabExtContents = parsenoop; +var parse_CellWatch = parsenoop; +var parse_FeatHdr11 = parsenoop; +var parse_Feature11 = parsenoop; +var parse_DropDownObjIds = parsenoop; +var parse_ContinueFrt11 = parsenoop; +var parse_DConn = parsenoop; +var parse_List12 = parsenoop; +var parse_Feature12 = parsenoop; +var parse_CondFmt12 = parsenoop; +var parse_CF12 = parsenoop; +var parse_CFEx = parsenoop; +var parse_AutoFilter12 = parsenoop; +var parse_ContinueFrt12 = parsenoop; +var parse_MDTInfo = parsenoop; +var parse_MDXStr = parsenoop; +var parse_MDXTuple = parsenoop; +var parse_MDXSet = parsenoop; +var parse_MDXProp = parsenoop; +var parse_MDXKPI = parsenoop; +var parse_MDB = parsenoop; +var parse_PLV = parsenoop; +var parse_DXF = parsenoop; +var parse_TableStyles = parsenoop; +var parse_TableStyle = parsenoop; +var parse_TableStyleElement = parsenoop; +var parse_NamePublish = parsenoop; +var parse_NameCmt = parsenoop; +var parse_SortData = parsenoop; +var parse_GUIDTypeLib = parsenoop; +var parse_FnGrp12 = parsenoop; +var parse_NameFnGrp12 = parsenoop; +var parse_HeaderFooter = parsenoop; +var parse_CrtLayout12 = parsenoop; +var parse_CrtMlFrt = parsenoop; +var parse_CrtMlFrtContinue = parsenoop; +var parse_ShapePropsStream = parsenoop; +var parse_TextPropsStream = parsenoop; +var parse_RichTextStream = parsenoop; +var parse_CrtLayout12A = parsenoop; +var parse_Units = parsenoop; +var parse_Chart = parsenoop; +var parse_Series = parsenoop; +var parse_DataFormat = parsenoop; +var parse_LineFormat = parsenoop; +var parse_MarkerFormat = parsenoop; +var parse_AreaFormat = parsenoop; +var parse_PieFormat = parsenoop; +var parse_AttachedLabel = parsenoop; +var parse_SeriesText = parsenoop; +var parse_ChartFormat = parsenoop; +var parse_Legend = parsenoop; +var parse_SeriesList = parsenoop; +var parse_Bar = parsenoop; +var parse_Line = parsenoop; +var parse_Pie = parsenoop; +var parse_Area = parsenoop; +var parse_Scatter = parsenoop; +var parse_CrtLine = parsenoop; +var parse_Axis = parsenoop; +var parse_Tick = parsenoop; +var parse_ValueRange = parsenoop; +var parse_CatSerRange = parsenoop; +var parse_AxisLine = parsenoop; +var parse_CrtLink = parsenoop; +var parse_DefaultText = parsenoop; +var parse_Text = parsenoop; +var parse_ObjectLink = parsenoop; +var parse_Frame = parsenoop; +var parse_Begin = parsenoop; +var parse_End = parsenoop; +var parse_PlotArea = parsenoop; +var parse_Chart3d = parsenoop; +var parse_PicF = parsenoop; +var parse_DropBar = parsenoop; +var parse_Radar = parsenoop; +var parse_Surf = parsenoop; +var parse_RadarArea = parsenoop; +var parse_AxisParent = parsenoop; +var parse_LegendException = parsenoop; +var parse_ShtProps = parsenoop; +var parse_SerToCrt = parsenoop; +var parse_AxesUsed = parsenoop; +var parse_SBaseRef = parsenoop; +var parse_SerParent = parsenoop; +var parse_SerAuxTrend = parsenoop; +var parse_IFmtRecord = parsenoop; +var parse_Pos = parsenoop; +var parse_AlRuns = parsenoop; +var parse_BRAI = parsenoop; +var parse_SerAuxErrBar = parsenoop; +var parse_SerFmt = parsenoop; +var parse_Chart3DBarShape = parsenoop; +var parse_Fbi = parsenoop; +var parse_BopPop = parsenoop; +var parse_AxcExt = parsenoop; +var parse_Dat = parsenoop; +var parse_PlotGrowth = parsenoop; +var parse_SIIndex = parsenoop; +var parse_GelFrame = parsenoop; +var parse_BopPopCustom = parsenoop; +var parse_Fbi2 = parsenoop; + +/* --- Specific to versions before BIFF8 --- */ +function parse_BIFF5String(blob) { + var len = blob.read_shift(1); + return blob.read_shift(len, 'sbcs-cont'); +} + +/* BIFF2_??? where ??? is the name from [XLS] */ +function parse_BIFF2STR(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + ++blob.l; + var str = parse_XLUnicodeString2(blob, length-7, opts); + cell.val = str; + return cell; +} + +function parse_BIFF2NUM(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + ++blob.l; + var num = parse_Xnum(blob, 8); + cell.val = num; + return cell; +} + /* 18.4.1 charset to codepage mapping */ var CS2CP = { 0: 1252, /* ANSI */ @@ -2122,6 +4366,186 @@ function write_sst_bin(sst, opts) { write_record(ba, "BrtEndSst"); return ba.end(); } +function _JS2ANSI(str) { if(typeof cptable !== 'undefined') return cptable.utils.encode(1252, str); return str.split("").map(function(x) { return x.charCodeAt(0); }); } + +/* [MS-OFFCRYPTO] 2.1.4 Version */ +function parse_Version(blob, length) { + var o = {}; + o.Major = blob.read_shift(2); + o.Minor = blob.read_shift(2); + return o; +} +/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */ +function parse_EncryptionHeader(blob, length) { + var o = {}; + o.Flags = blob.read_shift(4); + + // Check if SizeExtra is 0x00000000 + var tmp = blob.read_shift(4); + if(tmp !== 0) throw 'Unrecognized SizeExtra: ' + tmp; + + o.AlgID = blob.read_shift(4); + switch(o.AlgID) { + case 0: case 0x6801: case 0x660E: case 0x660F: case 0x6610: break; + default: throw 'Unrecognized encryption algorithm: ' + o.AlgID; + } + parsenoop(blob, length-12); + return o; +} + +/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */ +function parse_EncryptionVerifier(blob, length) { + return parsenoop(blob, length); +} +/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */ +function parse_RC4CryptoHeader(blob, length) { + var o = {}; + var vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4; + if(vers.Minor != 2) throw 'unrecognized minor version code: ' + vers.Minor; + if(vers.Major > 4 || vers.Major < 2) throw 'unrecognized major version code: ' + vers.Major; + o.Flags = blob.read_shift(4); length -= 4; + var sz = blob.read_shift(4); length -= 4; + o.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz; + o.EncryptionVerifier = parse_EncryptionVerifier(blob, length); + return o; +} +/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */ +function parse_RC4Header(blob, length) { + var o = {}; + var vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4; + if(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor; + o.Salt = blob.read_shift(16); + o.EncryptedVerifier = blob.read_shift(16); + o.EncryptedVerifierHash = blob.read_shift(16); + return o; +} + +/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */ +function crypto_CreatePasswordVerifier_Method1(Password) { + var Verifier = 0x0000, PasswordArray; + var PasswordDecoded = _JS2ANSI(Password); + var len = PasswordDecoded.length + 1, i, PasswordByte; + var Intermediate1, Intermediate2, Intermediate3; + PasswordArray = new_raw_buf(len); + PasswordArray[0] = PasswordDecoded.length; + for(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1]; + for(i = len-1; i >= 0; --i) { + PasswordByte = PasswordArray[i]; + Intermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1; + Intermediate2 = (Verifier << 1) & 0x7FFF; + Intermediate3 = Intermediate1 | Intermediate2; + Verifier = Intermediate3 ^ PasswordByte; + } + return Verifier ^ 0xCE4B; +} + +/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */ +var crypto_CreateXorArray_Method1 = (function() { + var PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00]; + var InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3]; + var XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4]; + var Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; }; + var XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); }; + var CreateXorKey_Method1 = function(Password) { + var XorKey = InitialCode[Password.length - 1]; + var CurrentElement = 0x68; + for(var i = Password.length-1; i >= 0; --i) { + var Char = Password[i]; + for(var j = 0; j != 7; ++j) { + if(Char & 0x40) XorKey ^= XorMatrix[CurrentElement]; + Char *= 2; --CurrentElement; + } + } + return XorKey; + }; + return function(password) { + var Password = _JS2ANSI(password); + var XorKey = CreateXorKey_Method1(Password); + var Index = Password.length; + var ObfuscationArray = new_raw_buf(16); + for(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00; + var Temp, PasswordLastChar, PadIndex; + if((Index & 1) === 1) { + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(PadArray[0], Temp); + --Index; + Temp = XorKey & 0xFF; + PasswordLastChar = Password[Password.length - 1]; + ObfuscationArray[Index] = XorRor(PasswordLastChar, Temp); + } + while(Index > 0) { + --Index; + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + --Index; + Temp = XorKey & 0xFF; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + } + Index = 15; + PadIndex = 15 - Password.length; + while(PadIndex > 0) { + Temp = XorKey >> 8; + ObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp); + --Index; + --PadIndex; + Temp = XorKey & 0xFF; + ObfuscationArray[Index] = XorRor(Password[Index], Temp); + --Index; + --PadIndex; + } + return ObfuscationArray; + }; +})(); + +/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */ +var crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) { + /* If XorArray is set, use it; if O is not set, make changes in-place */ + if(!O) O = Data; + if(!XorArray) XorArray = crypto_CreateXorArray_Method1(password); + var Index, Value; + for(Index = 0; Index != Data.length; ++Index) { + Value = Data[Index]; + Value ^= XorArray[XorArrayIndex]; + Value = ((Value>>5) | (Value<<3)) & 0xFF; + O[Index] = Value; + ++XorArrayIndex; + } + return [O, XorArrayIndex, XorArray]; +}; + +var crypto_MakeXorDecryptor = function(password) { + var XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password); + return function(Data) { + var O = crypto_DecryptData_Method1(null, Data, XorArrayIndex, XorArray); + XorArrayIndex = O[1]; + return O[0]; + }; +}; + +/* 2.5.343 */ +function parse_XORObfuscation(blob, length, opts, out) { + var o = { key: parseuint16(blob), verificationBytes: parseuint16(blob) }; + if(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password); + out.valid = o.verificationBytes === o.verifier; + if(out.valid) out.insitu_decrypt = crypto_MakeXorDecryptor(opts.password); + return o; +} + +/* 2.4.117 */ +function parse_FilePassHeader(blob, length, oo) { + var o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2; + if(o.Info === 1) o.Data = parse_RC4Header(blob, length); + else o.Data = parse_RC4CryptoHeader(blob, length); + return o; +} +function parse_FilePass(blob, length, opts) { + var o = { Type: blob.read_shift(2) }; /* wEncryptionType */ + if(o.Type) parse_FilePassHeader(blob, length-2, o); + else parse_XORObfuscation(blob, length-2, opts, o); + return o; +} + + function hex2RGB(h) { var o = h.substr(h[0]==="#"?1:0,6); return [parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16)]; @@ -2186,6 +4610,26 @@ function find_mdw(collw, coll) { if(MDW === MAX_MDW) MDW = DEF_MDW; } } + +/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */ +var XLMLPatternTypeMap = { + "None": "none", + "Solid": "solid", + "Gray50": "mediumGray", + "Gray75": "darkGray", + "Gray25": "lightGray", + "HorzStripe": "darkHorizontal", + "VertStripe": "darkVertical", + "ReverseDiagStripe": "darkDown", + "DiagStripe": "darkUp", + "DiagCross": "darkGrid", + "ThickDiagCross": "darkTrellis", + "ThinHorzStripe": "lightHorizontal", + "ThinVertStripe": "lightVertical", + "ThinReverseDiagStripe": "lightDown", + "ThinHorzCross": "lightGrid" +}; + var styles = {}; // shared styles var themes = {}; // shared themes @@ -2604,6 +5048,84 @@ function parse_theme_xml(data, opts) { } function write_theme() { return '\n'; } +/* [MS-XLS] 2.4.326 TODO: payload is a zip file */ +function parse_Theme(blob, length) { + var dwThemeVersion = blob.read_shift(4); + if(dwThemeVersion === 124226) return; + blob.l += length-4; +} + +/* 2.5.49 */ +function parse_ColorTheme(blob, length) { return blob.read_shift(4); } + +/* 2.5.155 */ +function parse_FullColorExt(blob, length) { + var o = {}; + o.xclrType = blob.read_shift(2); + o.nTintShade = blob.read_shift(2); + switch(o.xclrType) { + case 0: blob.l += 4; break; + case 1: o.xclrValue = parse_IcvXF(blob, 4); break; + case 2: o.xclrValue = parse_LongRGBA(blob, 4); break; + case 3: o.xclrValue = parse_ColorTheme(blob, 4); break; + case 4: blob.l += 4; break; + } + blob.l += 8; + return o; +} + +/* 2.5.164 TODO: read 7 bits*/ +function parse_IcvXF(blob, length) { + return parsenoop(blob, length); +} + +/* 2.5.280 */ +function parse_XFExtGradient(blob, length) { + return parsenoop(blob, length); +} + +/* 2.5.108 */ +function parse_ExtProp(blob, length) { + var extType = blob.read_shift(2); + var cb = blob.read_shift(2); + var o = [extType]; + switch(extType) { + case 0x04: case 0x05: case 0x07: case 0x08: + case 0x09: case 0x0A: case 0x0B: case 0x0D: + o[1] = parse_FullColorExt(blob, cb); break; + case 0x06: o[1] = parse_XFExtGradient(blob, cb); break; + case 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 5 ? 1 : 2); break; + default: throw new Error("Unrecognized ExtProp type: " + extType + " " + cb); + } + return o; +} + +/* 2.4.355 */ +function parse_XFExt(blob, length) { + var end = blob.l + length; + blob.l += 2; + var ixfe = blob.read_shift(2); + blob.l += 2; + var cexts = blob.read_shift(2); + var ext = []; + while(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l)); + return {ixfe:ixfe, ext:ext}; +} + +/* xf is an XF, see parse_XFExt for xfext */ +function update_xfext(xf, xfext) { + xfext.forEach(function(xfe) { + switch(xfe[0]) { /* 2.5.108 extPropData */ + case 0x04: break; /* foreground color */ + case 0x05: break; /* background color */ + case 0x07: case 0x08: case 0x09: case 0x0a: break; + case 0x0d: break; /* text color */ + case 0x0e: break; /* font scheme */ + default: throw "bafuq" + xfe[0].toString(16); + } + }); +} + /* 18.6 Calculation Chain */ function parse_cc_xml(data, opts) { var d = []; @@ -2767,11 +5289,1921 @@ function parse_comments_bin(data, opts) { } function write_comments_bin(data, opts) { } +/* TODO: it will be useful to parse the function str */ +var rc_to_a1 = (function(){ + var rcregex = /(^|[^A-Za-z])R(\[?)(-?\d+|)\]?C(\[?)(-?\d+|)\]?/g; + var rcbase; + function rcfunc($$,$1,$2,$3,$4,$5) { + var R = $3.length>0?parseInt($3,10)|0:0, C = $5.length>0?parseInt($5,10)|0:0; + if(C<0 && $4.length === 0) C=0; + if($4.length > 0) C += rcbase.c; + if($2.length > 0) R += rcbase.r; + return $1 + encode_col(C) + encode_row(R); + } + return function rc_to_a1(fstr, base) { + rcbase = base; + return fstr.replace(rcregex, rcfunc); + }; +})(); + +/* --- formula references point to MS-XLS --- */ +/* Small helpers */ +function parseread(l) { return function(blob, length) { blob.l+=l; return; }; } +function parseread1(blob, length) { blob.l+=1; return; } + +/* Rgce Helpers */ + +/* 2.5.51 */ +function parse_ColRelU(blob, length) { + var c = blob.read_shift(2); + return [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1]; +} + +/* 2.5.198.105 */ +function parse_RgceArea(blob, length) { + var r=blob.read_shift(2), R=blob.read_shift(2); + var c=parse_ColRelU(blob, 2); + var C=parse_ColRelU(blob, 2); + return { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} }; +} + +/* 2.5.198.105 TODO */ +function parse_RgceAreaRel(blob, length) { + var r=blob.read_shift(2), R=blob.read_shift(2); + var c=parse_ColRelU(blob, 2); + var C=parse_ColRelU(blob, 2); + return { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} }; +} + +/* 2.5.198.109 */ +function parse_RgceLoc(blob, length) { + var r = blob.read_shift(2); + var c = parse_ColRelU(blob, 2); + return {r:r, c:c[0], cRel:c[1], rRel:c[2]}; +} + +/* 2.5.198.111 */ +function parse_RgceLocRel(blob, length) { + var r = blob.read_shift(2); + var cl = blob.read_shift(2); + var cRel = (cl & 0x8000) >> 15, rRel = (cl & 0x4000) >> 14; + cl &= 0x3FFF; + if(cRel !== 0) while(cl >= 0x100) cl -= 0x100; + return {r:r,c:cl,cRel:cRel,rRel:rRel}; +} + +/* Ptg Tokens */ + +/* 2.5.198.27 */ +function parse_PtgArea(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var area = parse_RgceArea(blob, 8); + return [type, area]; +} + +/* 2.5.198.28 */ +function parse_PtgArea3d(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var ixti = blob.read_shift(2); + var area = parse_RgceArea(blob, 8); + return [type, ixti, area]; +} + +/* 2.5.198.29 */ +function parse_PtgAreaErr(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + blob.l += 8; + return [type]; +} +/* 2.5.198.30 */ +function parse_PtgAreaErr3d(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var ixti = blob.read_shift(2); + blob.l += 8; + return [type, ixti]; +} + +/* 2.5.198.31 */ +function parse_PtgAreaN(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + var area = parse_RgceAreaRel(blob, 8); + return [type, area]; +} + +/* 2.5.198.32 -- ignore this and look in PtgExtraArray for shape + values */ +function parse_PtgArray(blob, length) { + var type = (blob[blob.l++] & 0x60) >> 5; + blob.l += 7; + return [type]; +} + +/* 2.5.198.33 */ +function parse_PtgAttrBaxcel(blob, length) { + var bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */ + var bitBaxcel = 1; + blob.l += 4; + return [bitSemi, bitBaxcel]; +} + +/* 2.5.198.34 */ +function parse_PtgAttrChoose(blob, length) { + blob.l +=2; + var offset = blob.read_shift(2); + var o = []; + /* offset is 1 less than the number of elements */ + for(var i = 0; i <= offset; ++i) o.push(blob.read_shift(2)); + return o; +} + +/* 2.5.198.35 */ +function parse_PtgAttrGoto(blob, length) { + var bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 2; + return [bitGoto, blob.read_shift(2)]; +} + +/* 2.5.198.36 */ +function parse_PtgAttrIf(blob, length) { + var bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 2; + return [bitIf, blob.read_shift(2)]; +} + +/* 2.5.198.37 */ +function parse_PtgAttrSemi(blob, length) { + var bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0; + blob.l += 4; + return [bitSemi]; +} + +/* 2.5.198.40 (used by PtgAttrSpace and PtgAttrSpaceSemi) */ +function parse_PtgAttrSpaceType(blob, length) { + var type = blob.read_shift(1), cch = blob.read_shift(1); + return [type, cch]; +} + +/* 2.5.198.38 */ +function parse_PtgAttrSpace(blob, length) { + blob.read_shift(2); + return parse_PtgAttrSpaceType(blob, 2); +} + +/* 2.5.198.39 */ +function parse_PtgAttrSpaceSemi(blob, length) { + blob.read_shift(2); + return parse_PtgAttrSpaceType(blob, 2); +} + +/* 2.5.198.84 TODO */ +function parse_PtgRef(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var loc = parse_RgceLoc(blob,4); + return [type, loc]; +} + +/* 2.5.198.88 TODO */ +function parse_PtgRefN(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var loc = parse_RgceLocRel(blob,4); + return [type, loc]; +} + +/* 2.5.198.85 TODO */ +function parse_PtgRef3d(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var ixti = blob.read_shift(2); // XtiIndex + var loc = parse_RgceLoc(blob,4); + return [type, ixti, loc]; +} + + +/* 2.5.198.62 TODO */ +function parse_PtgFunc(blob, length) { + var ptg = blob[blob.l] & 0x1F; + var type = (blob[blob.l] & 0x60)>>5; + blob.l += 1; + var iftab = blob.read_shift(2); + return [FtabArgc[iftab], Ftab[iftab]]; +} +/* 2.5.198.63 TODO */ +function parse_PtgFuncVar(blob, length) { + blob.l++; + var cparams = blob.read_shift(1), tab = parsetab(blob); + return [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]]; +} + +function parsetab(blob, length) { + return [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF]; +} + +/* 2.5.198.41 */ +var parse_PtgAttrSum = parseread(4); +/* 2.5.198.43 */ +var parse_PtgConcat = parseread1; + +/* 2.5.198.58 */ +function parse_PtgExp(blob, length) { + blob.l++; + var row = blob.read_shift(2); + var col = blob.read_shift(2); + return [row, col]; +} + +/* 2.5.198.57 */ +function parse_PtgErr(blob, length) { blob.l++; return BErr[blob.read_shift(1)]; } + +/* 2.5.198.66 TODO */ +function parse_PtgInt(blob, length) { blob.l++; return blob.read_shift(2); } + +/* 2.5.198.42 */ +function parse_PtgBool(blob, length) { blob.l++; return blob.read_shift(1)!==0;} + +/* 2.5.198.79 */ +function parse_PtgNum(blob, length) { blob.l++; return parse_Xnum(blob, 8); } + +/* 2.5.198.89 */ +function parse_PtgStr(blob, length) { blob.l++; return parse_ShortXLUnicodeString(blob); } + +/* 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */ +function parse_SerAr(blob) { + var val = []; + switch((val[0] = blob.read_shift(1))) { + /* 2.5.192.113 */ + case 0x04: /* SerBool -- boolean */ + val[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE'; + blob.l += 7; break; + /* 2.5.192.114 */ + case 0x10: /* SerErr -- error */ + val[1] = BErr[blob[blob.l]]; + blob.l += 8; break; + /* 2.5.192.115 */ + case 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */ + blob.l += 8; break; + /* 2.5.192.116 */ + case 0x01: /* SerNum -- Xnum */ + val[1] = parse_Xnum(blob, 8); break; + /* 2.5.192.117 */ + case 0x02: /* SerStr -- XLUnicodeString (<256 chars) */ + val[1] = parse_XLUnicodeString(blob); break; + // default: throw "Bad SerAr: " + val[0]; /* Unreachable */ + } + return val; +} + +/* 2.5.198.61 */ +function parse_PtgExtraMem(blob, cce) { + var count = blob.read_shift(2); + var out = []; + for(var i = 0; i != count; ++i) out.push(parse_Ref8U(blob, 8)); + return out; +} + +/* 2.5.198.59 */ +function parse_PtgExtraArray(blob) { + var cols = 1 + blob.read_shift(1); //DColByteU + var rows = 1 + blob.read_shift(2); //DRw + for(var i = 0, o=[]; i != rows && (o[i] = []); ++i) + for(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob); + return o; +} + +/* 2.5.198.76 */ +function parse_PtgName(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var nameindex = blob.read_shift(4); + return [type, 0, nameindex]; +} + +/* 2.5.198.77 */ +function parse_PtgNameX(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var ixti = blob.read_shift(2); // XtiIndex + var nameindex = blob.read_shift(4); + return [type, ixti, nameindex]; +} + +/* 2.5.198.70 */ +function parse_PtgMemArea(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + blob.l += 4; + var cce = blob.read_shift(2); + return [type, cce]; +} + +/* 2.5.198.72 */ +function parse_PtgMemFunc(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + var cce = blob.read_shift(2); + return [type, cce]; +} + + +/* 2.5.198.86 */ +function parse_PtgRefErr(blob, length) { + var type = (blob.read_shift(1) >>> 5) & 0x03; + blob.l += 4; + return [type]; +} + +/* 2.5.198.26 */ +var parse_PtgAdd = parseread1; +/* 2.5.198.45 */ +var parse_PtgDiv = parseread1; +/* 2.5.198.56 */ +var parse_PtgEq = parseread1; +/* 2.5.198.64 */ +var parse_PtgGe = parseread1; +/* 2.5.198.65 */ +var parse_PtgGt = parseread1; +/* 2.5.198.67 */ +var parse_PtgIsect = parseread1; +/* 2.5.198.68 */ +var parse_PtgLe = parseread1; +/* 2.5.198.69 */ +var parse_PtgLt = parseread1; +/* 2.5.198.74 */ +var parse_PtgMissArg = parseread1; +/* 2.5.198.75 */ +var parse_PtgMul = parseread1; +/* 2.5.198.78 */ +var parse_PtgNe = parseread1; +/* 2.5.198.80 */ +var parse_PtgParen = parseread1; +/* 2.5.198.81 */ +var parse_PtgPercent = parseread1; +/* 2.5.198.82 */ +var parse_PtgPower = parseread1; +/* 2.5.198.83 */ +var parse_PtgRange = parseread1; +/* 2.5.198.90 */ +var parse_PtgSub = parseread1; +/* 2.5.198.93 */ +var parse_PtgUminus = parseread1; +/* 2.5.198.94 */ +var parse_PtgUnion = parseread1; +/* 2.5.198.95 */ +var parse_PtgUplus = parseread1; + +/* 2.5.198.71 */ +var parse_PtgMemErr = parsenoop; +/* 2.5.198.73 */ +var parse_PtgMemNoMem = parsenoop; +/* 2.5.198.87 */ +var parse_PtgRefErr3d = parsenoop; +/* 2.5.198.92 */ +var parse_PtgTbl = parsenoop; + +/* 2.5.198.25 */ +var PtgTypes = { + 0x01: { n:'PtgExp', f:parse_PtgExp }, + 0x02: { n:'PtgTbl', f:parse_PtgTbl }, + 0x03: { n:'PtgAdd', f:parse_PtgAdd }, + 0x04: { n:'PtgSub', f:parse_PtgSub }, + 0x05: { n:'PtgMul', f:parse_PtgMul }, + 0x06: { n:'PtgDiv', f:parse_PtgDiv }, + 0x07: { n:'PtgPower', f:parse_PtgPower }, + 0x08: { n:'PtgConcat', f:parse_PtgConcat }, + 0x09: { n:'PtgLt', f:parse_PtgLt }, + 0x0A: { n:'PtgLe', f:parse_PtgLe }, + 0x0B: { n:'PtgEq', f:parse_PtgEq }, + 0x0C: { n:'PtgGe', f:parse_PtgGe }, + 0x0D: { n:'PtgGt', f:parse_PtgGt }, + 0x0E: { n:'PtgNe', f:parse_PtgNe }, + 0x0F: { n:'PtgIsect', f:parse_PtgIsect }, + 0x10: { n:'PtgUnion', f:parse_PtgUnion }, + 0x11: { n:'PtgRange', f:parse_PtgRange }, + 0x12: { n:'PtgUplus', f:parse_PtgUplus }, + 0x13: { n:'PtgUminus', f:parse_PtgUminus }, + 0x14: { n:'PtgPercent', f:parse_PtgPercent }, + 0x15: { n:'PtgParen', f:parse_PtgParen }, + 0x16: { n:'PtgMissArg', f:parse_PtgMissArg }, + 0x17: { n:'PtgStr', f:parse_PtgStr }, + 0x1C: { n:'PtgErr', f:parse_PtgErr }, + 0x1D: { n:'PtgBool', f:parse_PtgBool }, + 0x1E: { n:'PtgInt', f:parse_PtgInt }, + 0x1F: { n:'PtgNum', f:parse_PtgNum }, + 0x20: { n:'PtgArray', f:parse_PtgArray }, + 0x21: { n:'PtgFunc', f:parse_PtgFunc }, + 0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar }, + 0x23: { n:'PtgName', f:parse_PtgName }, + 0x24: { n:'PtgRef', f:parse_PtgRef }, + 0x25: { n:'PtgArea', f:parse_PtgArea }, + 0x26: { n:'PtgMemArea', f:parse_PtgMemArea }, + 0x27: { n:'PtgMemErr', f:parse_PtgMemErr }, + 0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem }, + 0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc }, + 0x2A: { n:'PtgRefErr', f:parse_PtgRefErr }, + 0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr }, + 0x2C: { n:'PtgRefN', f:parse_PtgRefN }, + 0x2D: { n:'PtgAreaN', f:parse_PtgAreaN }, + 0x39: { n:'PtgNameX', f:parse_PtgNameX }, + 0x3A: { n:'PtgRef3d', f:parse_PtgRef3d }, + 0x3B: { n:'PtgArea3d', f:parse_PtgArea3d }, + 0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d }, + 0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d }, + 0xFF: {} +}; +/* These are duplicated in the PtgTypes table */ +var PtgDupes = { + 0x40: 0x20, 0x60: 0x20, + 0x41: 0x21, 0x61: 0x21, + 0x42: 0x22, 0x62: 0x22, + 0x43: 0x23, 0x63: 0x23, + 0x44: 0x24, 0x64: 0x24, + 0x45: 0x25, 0x65: 0x25, + 0x46: 0x26, 0x66: 0x26, + 0x47: 0x27, 0x67: 0x27, + 0x48: 0x28, 0x68: 0x28, + 0x49: 0x29, 0x69: 0x29, + 0x4A: 0x2A, 0x6A: 0x2A, + 0x4B: 0x2B, 0x6B: 0x2B, + 0x4C: 0x2C, 0x6C: 0x2C, + 0x4D: 0x2D, 0x6D: 0x2D, + 0x59: 0x39, 0x79: 0x39, + 0x5A: 0x3A, 0x7A: 0x3A, + 0x5B: 0x3B, 0x7B: 0x3B, + 0x5C: 0x3C, 0x7C: 0x3C, + 0x5D: 0x3D, 0x7D: 0x3D +}; +(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})(); + +var Ptg18 = {}; +var Ptg19 = { + 0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi }, + 0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf }, + 0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose }, + 0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto }, + 0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum }, + 0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel }, + 0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace }, + 0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi }, + 0xFF: {} +}; + +/* 2.4.127 TODO */ +function parse_Formula(blob, length, opts) { + var cell = parse_XLSCell(blob, 6); + var val = parse_FormulaValue(blob,8); + var flags = blob.read_shift(1); + blob.read_shift(1); + var chn = blob.read_shift(4); + var cbf = ""; + if(opts.biff === 5) blob.l += length-20; + else cbf = parse_XLSCellParsedFormula(blob, length-20, opts); + return {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]}; +} + +/* 2.5.133 TODO: how to emit empty strings? */ +function parse_FormulaValue(blob) { + var b; + if(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n']; + switch(blob[blob.l]) { + case 0x00: blob.l += 8; return ["String", 's']; + case 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b']; + case 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e']; + case 0x03: blob.l += 8; return ["",'s']; + } +} + +/* 2.5.198.103 */ +function parse_RgbExtra(blob, length, rgce, opts) { + if(opts.biff < 8) return parsenoop(blob, length); + var target = blob.l + length; + var o = []; + for(var i = 0; i !== rgce.length; ++i) { + switch(rgce[i][0]) { + case 'PtgArray': /* PtgArray -> PtgExtraArray */ + rgce[i][1] = parse_PtgExtraArray(blob); + o.push(rgce[i][1]); + break; + case 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */ + rgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1]); + o.push(rgce[i][2]); + break; + default: break; + } + } + length = target - blob.l; + if(length !== 0) o.push(parsenoop(blob, length)); + return o; +} + +/* 2.5.198.21 */ +function parse_NameParsedFormula(blob, length, opts, cce) { + var target = blob.l + length; + var rgce = parse_Rgce(blob, cce); + var rgcb; + if(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.3 TODO */ +function parse_XLSCellParsedFormula(blob, length, opts) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce); + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, length - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.118 TODO */ +function parse_SharedParsedFormula(blob, length, opts) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + var rgce = parse_Rgce(blob, cce); + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.1 TODO */ +function parse_ArrayParsedFormula(blob, length, opts, ref) { + var target = blob.l + length; + var rgcb, cce = blob.read_shift(2); // length of rgce + if(cce == 0xFFFF) return [[],parsenoop(blob, length-2)]; + var rgce = parse_Rgce(blob, cce); + if(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts); + return [rgce, rgcb]; +} + +/* 2.5.198.104 */ +function parse_Rgce(blob, length) { + var target = blob.l + length; + var R, id, ptgs = []; + while(target != blob.l) { + length = target - blob.l; + id = blob[blob.l]; + R = PtgTypes[id]; + //console.log("ptg", id, R) + if(id === 0x18 || id === 0x19) { + id = blob[blob.l + 1]; + R = (id === 0x18 ? Ptg18 : Ptg19)[id]; + } + if(!R || !R.f) { ptgs.push(parsenoop(blob, length)); } + else { ptgs.push([R.n, R.f(blob, length)]); } + } + return ptgs; +} + +function mapper(x) { return x.map(function f2(y) { return y[1];}).join(",");} + +/* 2.2.2 + Magic TODO */ +function stringify_formula(formula, range, cell, supbooks, opts) { + if(opts !== undefined && opts.biff === 5) return "BIFF5??"; + var _range = range !== undefined ? range : {s:{c:0, r:0}}; + var stack = [], e1, e2, type, c, ixti, nameidx, r; + if(!formula[0] || !formula[0][0]) return ""; + //console.log("--",cell,formula[0]) + for(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) { + var f = formula[0][ff]; + //console.log("++",f, stack) + switch(f[0]) { + /* 2.2.2.1 Unary Operator Tokens */ + /* 2.5.198.93 */ + case 'PtgUminus': stack.push("-" + stack.pop()); break; + /* 2.5.198.95 */ + case 'PtgUplus': stack.push("+" + stack.pop()); break; + /* 2.5.198.81 */ + case 'PtgPercent': stack.push(stack.pop() + "%"); break; + + /* 2.2.2.1 Binary Value Operator Token */ + /* 2.5.198.26 */ + case 'PtgAdd': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"+"+e1); + break; + /* 2.5.198.90 */ + case 'PtgSub': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"-"+e1); + break; + /* 2.5.198.75 */ + case 'PtgMul': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"*"+e1); + break; + /* 2.5.198.45 */ + case 'PtgDiv': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"/"+e1); + break; + /* 2.5.198.82 */ + case 'PtgPower': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"^"+e1); + break; + /* 2.5.198.43 */ + case 'PtgConcat': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"&"+e1); + break; + /* 2.5.198.69 */ + case 'PtgLt': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<"+e1); + break; + /* 2.5.198.68 */ + case 'PtgLe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<="+e1); + break; + /* 2.5.198.56 */ + case 'PtgEq': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"="+e1); + break; + /* 2.5.198.64 */ + case 'PtgGe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+">="+e1); + break; + /* 2.5.198.65 */ + case 'PtgGt': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+">"+e1); + break; + /* 2.5.198.78 */ + case 'PtgNe': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+"<>"+e1); + break; + + /* 2.2.2.1 Binary Reference Operator Token */ + /* 2.5.198.67 */ + case 'PtgIsect': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+" "+e1); + break; + case 'PtgUnion': + e1 = stack.pop(); e2 = stack.pop(); + stack.push(e2+","+e1); + break; + case 'PtgRange': break; + + /* 2.2.2.3 Control Tokens "can be ignored" */ + /* 2.5.198.34 */ + case 'PtgAttrChoose': break; + /* 2.5.198.35 */ + case 'PtgAttrGoto': break; + /* 2.5.198.36 */ + case 'PtgAttrIf': break; + + + /* 2.5.198.84 */ + case 'PtgRef': + type = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), _range); + stack.push(encode_cell(c)); + break; + /* 2.5.198.88 */ + case 'PtgRefN': + type = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), cell); + stack.push(encode_cell(c)); + break; + case 'PtgRef3d': // TODO: lots of stuff + type = f[1][0]; ixti = f[1][1]; c = shift_cell_xls(f[1][2], _range); + stack.push(supbooks[1][ixti+1]+"!"+encode_cell(c)); + break; + + /* Function Call */ + /* 2.5.198.62 */ + case 'PtgFunc': + /* 2.5.198.63 */ + case 'PtgFuncVar': + /* f[1] = [argc, func] */ + var argc = f[1][0], func = f[1][1]; + if(!argc) argc = 0; + var args = stack.slice(-argc); + stack.length -= argc; + if(func === 'User') func = args.shift(); + stack.push(func + "(" + args.join(",") + ")"); + break; + + /* 2.5.198.42 */ + case 'PtgBool': stack.push(f[1] ? "TRUE" : "FALSE"); break; + /* 2.5.198.66 */ + case 'PtgInt': stack.push(f[1]); break; + /* 2.5.198.79 TODO: precision? */ + case 'PtgNum': stack.push(String(f[1])); break; + /* 2.5.198.89 */ + case 'PtgStr': stack.push('"' + f[1] + '"'); break; + /* 2.5.198.57 */ + case 'PtgErr': stack.push(f[1]); break; + /* 2.5.198.27 TODO: fixed points */ + case 'PtgArea': + type = f[1][0]; r = shift_range_xls(f[1][1], _range); + stack.push(encode_range(r)); + break; + /* 2.5.198.28 */ + case 'PtgArea3d': // TODO: lots of stuff + type = f[1][0]; ixti = f[1][1]; r = f[1][2]; + stack.push(supbooks[1][ixti+1]+"!"+encode_range(r)); + break; + /* 2.5.198.41 */ + case 'PtgAttrSum': + stack.push("SUM(" + stack.pop() + ")"); + break; + + /* Expression Prefixes */ + /* 2.5.198.37 */ + case 'PtgAttrSemi': break; + + /* 2.5.97.60 TODO: do something different for revisions */ + case 'PtgName': + /* f[1] = type, 0, nameindex */ + nameidx = f[1][2]; + var lbl = supbooks[0][nameidx]; + var name = lbl.Name; + if(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name]; + stack.push(name); + break; + + /* 2.5.97.61 TODO: do something different for revisions */ + case 'PtgNameX': + /* f[1] = type, ixti, nameindex */ + var bookidx = f[1][1]; nameidx = f[1][2]; var externbook; + /* TODO: Properly handle missing values */ + if(supbooks[bookidx+1]) externbook = supbooks[bookidx+1][nameidx]; + else if(supbooks[bookidx-1]) externbook = supbooks[bookidx-1][nameidx]; + if(!externbook) externbook = {body: "??NAMEX??"}; + stack.push(externbook.body); + break; + + /* 2.2.2.4 Display Tokens */ + /* 2.5.198.80 */ + case 'PtgParen': stack.push('(' + stack.pop() + ')'); break; + + /* 2.5.198.86 */ + case 'PtgRefErr': stack.push('#REF!'); break; + + /* */ + /* 2.5.198.58 TODO */ + case 'PtgExp': + c = {c:f[1][1],r:f[1][0]}; + var q = {c: cell.c, r:cell.r}; + if(supbooks.sharedf[encode_cell(c)]) { + var parsedf = (supbooks.sharedf[encode_cell(c)]); + stack.push(stringify_formula(parsedf, _range, q, supbooks, opts)); + } + else { + var fnd = false; + for(e1=0;e1!=supbooks.arrayf.length; ++e1) { + /* TODO: should be something like range_has */ + e2 = supbooks.arrayf[e1]; + if(c.c < e2[0].s.c || c.c > e2[0].e.c) continue; + if(c.r < e2[0].s.r || c.r > e2[0].e.r) continue; + stack.push(stringify_formula(e2[1], _range, q, supbooks, opts)); + } + if(!fnd) stack.push(f[1]); + } + break; + + /* 2.5.198.32 TODO */ + case 'PtgArray': + stack.push("{" + f[1].map(mapper).join(";") + "}"); + break; + + /* 2.2.2.5 Mem Tokens */ + /* 2.5.198.70 TODO: confirm this is a non-display */ + case 'PtgMemArea': + //stack.push("(" + f[2].map(encode_range).join(",") + ")"); + break; + + /* 2.5.198.38 TODO */ + case 'PtgAttrSpace': break; + + /* 2.5.198.92 TODO */ + case 'PtgTbl': break; + + /* 2.5.198.71 */ + case 'PtgMemErr': break; + + /* 2.5.198.74 */ + case 'PtgMissArg': + stack.push(""); + break; + + /* 2.5.198.29 TODO */ + case 'PtgAreaErr': break; + + /* 2.5.198.31 TODO */ + case 'PtgAreaN': stack.push(""); break; + + /* 2.5.198.87 TODO */ + case 'PtgRefErr3d': break; + + /* 2.5.198.72 TODO */ + case 'PtgMemFunc': break; + + default: throw 'Unrecognized Formula Token: ' + f; + } + //console.log("::",f, stack) + } + //console.log("--",stack); + return stack[0]; +} + /* [MS-XLSB] 2.5.97.4 CellParsedFormula TODO: use similar logic to js-xls */ -function parse_CellParsedFormula(data, length) { +function parse_XLSBCellParsedFormula(data, length) { var cce = data.read_shift(4); return parsenoop(data, length-4); } +/* [MS-XLS] 2.5.198.44 */ +var PtgDataType = { + 0x1: "REFERENCE", // reference to range + 0x2: "VALUE", // single value + 0x3: "ARRAY" // array of values +}; + +/* [MS-XLS] 2.5.198.4 */ +var Cetab = { + 0x0000: 'BEEP', + 0x0001: 'OPEN', + 0x0002: 'OPEN.LINKS', + 0x0003: 'CLOSE.ALL', + 0x0004: 'SAVE', + 0x0005: 'SAVE.AS', + 0x0006: 'FILE.DELETE', + 0x0007: 'PAGE.SETUP', + 0x0008: 'PRINT', + 0x0009: 'PRINTER.SETUP', + 0x000A: 'QUIT', + 0x000B: 'NEW.WINDOW', + 0x000C: 'ARRANGE.ALL', + 0x000D: 'WINDOW.SIZE', + 0x000E: 'WINDOW.MOVE', + 0x000F: 'FULL', + 0x0010: 'CLOSE', + 0x0011: 'RUN', + 0x0016: 'SET.PRINT.AREA', + 0x0017: 'SET.PRINT.TITLES', + 0x0018: 'SET.PAGE.BREAK', + 0x0019: 'REMOVE.PAGE.BREAK', + 0x001A: 'FONT', + 0x001B: 'DISPLAY', + 0x001C: 'PROTECT.DOCUMENT', + 0x001D: 'PRECISION', + 0x001E: 'A1.R1C1', + 0x001F: 'CALCULATE.NOW', + 0x0020: 'CALCULATION', + 0x0022: 'DATA.FIND', + 0x0023: 'EXTRACT', + 0x0024: 'DATA.DELETE', + 0x0025: 'SET.DATABASE', + 0x0026: 'SET.CRITERIA', + 0x0027: 'SORT', + 0x0028: 'DATA.SERIES', + 0x0029: 'TABLE', + 0x002A: 'FORMAT.NUMBER', + 0x002B: 'ALIGNMENT', + 0x002C: 'STYLE', + 0x002D: 'BORDER', + 0x002E: 'CELL.PROTECTION', + 0x002F: 'COLUMN.WIDTH', + 0x0030: 'UNDO', + 0x0031: 'CUT', + 0x0032: 'COPY', + 0x0033: 'PASTE', + 0x0034: 'CLEAR', + 0x0035: 'PASTE.SPECIAL', + 0x0036: 'EDIT.DELETE', + 0x0037: 'INSERT', + 0x0038: 'FILL.RIGHT', + 0x0039: 'FILL.DOWN', + 0x003D: 'DEFINE.NAME', + 0x003E: 'CREATE.NAMES', + 0x003F: 'FORMULA.GOTO', + 0x0040: 'FORMULA.FIND', + 0x0041: 'SELECT.LAST.CELL', + 0x0042: 'SHOW.ACTIVE.CELL', + 0x0043: 'GALLERY.AREA', + 0x0044: 'GALLERY.BAR', + 0x0045: 'GALLERY.COLUMN', + 0x0046: 'GALLERY.LINE', + 0x0047: 'GALLERY.PIE', + 0x0048: 'GALLERY.SCATTER', + 0x0049: 'COMBINATION', + 0x004A: 'PREFERRED', + 0x004B: 'ADD.OVERLAY', + 0x004C: 'GRIDLINES', + 0x004D: 'SET.PREFERRED', + 0x004E: 'AXES', + 0x004F: 'LEGEND', + 0x0050: 'ATTACH.TEXT', + 0x0051: 'ADD.ARROW', + 0x0052: 'SELECT.CHART', + 0x0053: 'SELECT.PLOT.AREA', + 0x0054: 'PATTERNS', + 0x0055: 'MAIN.CHART', + 0x0056: 'OVERLAY', + 0x0057: 'SCALE', + 0x0058: 'FORMAT.LEGEND', + 0x0059: 'FORMAT.TEXT', + 0x005A: 'EDIT.REPEAT', + 0x005B: 'PARSE', + 0x005C: 'JUSTIFY', + 0x005D: 'HIDE', + 0x005E: 'UNHIDE', + 0x005F: 'WORKSPACE', + 0x0060: 'FORMULA', + 0x0061: 'FORMULA.FILL', + 0x0062: 'FORMULA.ARRAY', + 0x0063: 'DATA.FIND.NEXT', + 0x0064: 'DATA.FIND.PREV', + 0x0065: 'FORMULA.FIND.NEXT', + 0x0066: 'FORMULA.FIND.PREV', + 0x0067: 'ACTIVATE', + 0x0068: 'ACTIVATE.NEXT', + 0x0069: 'ACTIVATE.PREV', + 0x006A: 'UNLOCKED.NEXT', + 0x006B: 'UNLOCKED.PREV', + 0x006C: 'COPY.PICTURE', + 0x006D: 'SELECT', + 0x006E: 'DELETE.NAME', + 0x006F: 'DELETE.FORMAT', + 0x0070: 'VLINE', + 0x0071: 'HLINE', + 0x0072: 'VPAGE', + 0x0073: 'HPAGE', + 0x0074: 'VSCROLL', + 0x0075: 'HSCROLL', + 0x0076: 'ALERT', + 0x0077: 'NEW', + 0x0078: 'CANCEL.COPY', + 0x0079: 'SHOW.CLIPBOARD', + 0x007A: 'MESSAGE', + 0x007C: 'PASTE.LINK', + 0x007D: 'APP.ACTIVATE', + 0x007E: 'DELETE.ARROW', + 0x007F: 'ROW.HEIGHT', + 0x0080: 'FORMAT.MOVE', + 0x0081: 'FORMAT.SIZE', + 0x0082: 'FORMULA.REPLACE', + 0x0083: 'SEND.KEYS', + 0x0084: 'SELECT.SPECIAL', + 0x0085: 'APPLY.NAMES', + 0x0086: 'REPLACE.FONT', + 0x0087: 'FREEZE.PANES', + 0x0088: 'SHOW.INFO', + 0x0089: 'SPLIT', + 0x008A: 'ON.WINDOW', + 0x008B: 'ON.DATA', + 0x008C: 'DISABLE.INPUT', + 0x008E: 'OUTLINE', + 0x008F: 'LIST.NAMES', + 0x0090: 'FILE.CLOSE', + 0x0091: 'SAVE.WORKBOOK', + 0x0092: 'DATA.FORM', + 0x0093: 'COPY.CHART', + 0x0094: 'ON.TIME', + 0x0095: 'WAIT', + 0x0096: 'FORMAT.FONT', + 0x0097: 'FILL.UP', + 0x0098: 'FILL.LEFT', + 0x0099: 'DELETE.OVERLAY', + 0x009B: 'SHORT.MENUS', + 0x009F: 'SET.UPDATE.STATUS', + 0x00A1: 'COLOR.PALETTE', + 0x00A2: 'DELETE.STYLE', + 0x00A3: 'WINDOW.RESTORE', + 0x00A4: 'WINDOW.MAXIMIZE', + 0x00A6: 'CHANGE.LINK', + 0x00A7: 'CALCULATE.DOCUMENT', + 0x00A8: 'ON.KEY', + 0x00A9: 'APP.RESTORE', + 0x00AA: 'APP.MOVE', + 0x00AB: 'APP.SIZE', + 0x00AC: 'APP.MINIMIZE', + 0x00AD: 'APP.MAXIMIZE', + 0x00AE: 'BRING.TO.FRONT', + 0x00AF: 'SEND.TO.BACK', + 0x00B9: 'MAIN.CHART.TYPE', + 0x00BA: 'OVERLAY.CHART.TYPE', + 0x00BB: 'SELECT.END', + 0x00BC: 'OPEN.MAIL', + 0x00BD: 'SEND.MAIL', + 0x00BE: 'STANDARD.FONT', + 0x00BF: 'CONSOLIDATE', + 0x00C0: 'SORT.SPECIAL', + 0x00C1: 'GALLERY.3D.AREA', + 0x00C2: 'GALLERY.3D.COLUMN', + 0x00C3: 'GALLERY.3D.LINE', + 0x00C4: 'GALLERY.3D.PIE', + 0x00C5: 'VIEW.3D', + 0x00C6: 'GOAL.SEEK', + 0x00C7: 'WORKGROUP', + 0x00C8: 'FILL.GROUP', + 0x00C9: 'UPDATE.LINK', + 0x00CA: 'PROMOTE', + 0x00CB: 'DEMOTE', + 0x00CC: 'SHOW.DETAIL', + 0x00CE: 'UNGROUP', + 0x00CF: 'OBJECT.PROPERTIES', + 0x00D0: 'SAVE.NEW.OBJECT', + 0x00D1: 'SHARE', + 0x00D2: 'SHARE.NAME', + 0x00D3: 'DUPLICATE', + 0x00D4: 'APPLY.STYLE', + 0x00D5: 'ASSIGN.TO.OBJECT', + 0x00D6: 'OBJECT.PROTECTION', + 0x00D7: 'HIDE.OBJECT', + 0x00D8: 'SET.EXTRACT', + 0x00D9: 'CREATE.PUBLISHER', + 0x00DA: 'SUBSCRIBE.TO', + 0x00DB: 'ATTRIBUTES', + 0x00DC: 'SHOW.TOOLBAR', + 0x00DE: 'PRINT.PREVIEW', + 0x00DF: 'EDIT.COLOR', + 0x00E0: 'SHOW.LEVELS', + 0x00E1: 'FORMAT.MAIN', + 0x00E2: 'FORMAT.OVERLAY', + 0x00E3: 'ON.RECALC', + 0x00E4: 'EDIT.SERIES', + 0x00E5: 'DEFINE.STYLE', + 0x00F0: 'LINE.PRINT', + 0x00F3: 'ENTER.DATA', + 0x00F9: 'GALLERY.RADAR', + 0x00FA: 'MERGE.STYLES', + 0x00FB: 'EDITION.OPTIONS', + 0x00FC: 'PASTE.PICTURE', + 0x00FD: 'PASTE.PICTURE.LINK', + 0x00FE: 'SPELLING', + 0x0100: 'ZOOM', + 0x0103: 'INSERT.OBJECT', + 0x0104: 'WINDOW.MINIMIZE', + 0x0109: 'SOUND.NOTE', + 0x010A: 'SOUND.PLAY', + 0x010B: 'FORMAT.SHAPE', + 0x010C: 'EXTEND.POLYGON', + 0x010D: 'FORMAT.AUTO', + 0x0110: 'GALLERY.3D.BAR', + 0x0111: 'GALLERY.3D.SURFACE', + 0x0112: 'FILL.AUTO', + 0x0114: 'CUSTOMIZE.TOOLBAR', + 0x0115: 'ADD.TOOL', + 0x0116: 'EDIT.OBJECT', + 0x0117: 'ON.DOUBLECLICK', + 0x0118: 'ON.ENTRY', + 0x0119: 'WORKBOOK.ADD', + 0x011A: 'WORKBOOK.MOVE', + 0x011B: 'WORKBOOK.COPY', + 0x011C: 'WORKBOOK.OPTIONS', + 0x011D: 'SAVE.WORKSPACE', + 0x0120: 'CHART.WIZARD', + 0x0121: 'DELETE.TOOL', + 0x0122: 'MOVE.TOOL', + 0x0123: 'WORKBOOK.SELECT', + 0x0124: 'WORKBOOK.ACTIVATE', + 0x0125: 'ASSIGN.TO.TOOL', + 0x0127: 'COPY.TOOL', + 0x0128: 'RESET.TOOL', + 0x0129: 'CONSTRAIN.NUMERIC', + 0x012A: 'PASTE.TOOL', + 0x012E: 'WORKBOOK.NEW', + 0x0131: 'SCENARIO.CELLS', + 0x0132: 'SCENARIO.DELETE', + 0x0133: 'SCENARIO.ADD', + 0x0134: 'SCENARIO.EDIT', + 0x0135: 'SCENARIO.SHOW', + 0x0136: 'SCENARIO.SHOW.NEXT', + 0x0137: 'SCENARIO.SUMMARY', + 0x0138: 'PIVOT.TABLE.WIZARD', + 0x0139: 'PIVOT.FIELD.PROPERTIES', + 0x013A: 'PIVOT.FIELD', + 0x013B: 'PIVOT.ITEM', + 0x013C: 'PIVOT.ADD.FIELDS', + 0x013E: 'OPTIONS.CALCULATION', + 0x013F: 'OPTIONS.EDIT', + 0x0140: 'OPTIONS.VIEW', + 0x0141: 'ADDIN.MANAGER', + 0x0142: 'MENU.EDITOR', + 0x0143: 'ATTACH.TOOLBARS', + 0x0144: 'VBAActivate', + 0x0145: 'OPTIONS.CHART', + 0x0148: 'VBA.INSERT.FILE', + 0x014A: 'VBA.PROCEDURE.DEFINITION', + 0x0150: 'ROUTING.SLIP', + 0x0152: 'ROUTE.DOCUMENT', + 0x0153: 'MAIL.LOGON', + 0x0156: 'INSERT.PICTURE', + 0x0157: 'EDIT.TOOL', + 0x0158: 'GALLERY.DOUGHNUT', + 0x015E: 'CHART.TREND', + 0x0160: 'PIVOT.ITEM.PROPERTIES', + 0x0162: 'WORKBOOK.INSERT', + 0x0163: 'OPTIONS.TRANSITION', + 0x0164: 'OPTIONS.GENERAL', + 0x0172: 'FILTER.ADVANCED', + 0x0175: 'MAIL.ADD.MAILER', + 0x0176: 'MAIL.DELETE.MAILER', + 0x0177: 'MAIL.REPLY', + 0x0178: 'MAIL.REPLY.ALL', + 0x0179: 'MAIL.FORWARD', + 0x017A: 'MAIL.NEXT.LETTER', + 0x017B: 'DATA.LABEL', + 0x017C: 'INSERT.TITLE', + 0x017D: 'FONT.PROPERTIES', + 0x017E: 'MACRO.OPTIONS', + 0x017F: 'WORKBOOK.HIDE', + 0x0180: 'WORKBOOK.UNHIDE', + 0x0181: 'WORKBOOK.DELETE', + 0x0182: 'WORKBOOK.NAME', + 0x0184: 'GALLERY.CUSTOM', + 0x0186: 'ADD.CHART.AUTOFORMAT', + 0x0187: 'DELETE.CHART.AUTOFORMAT', + 0x0188: 'CHART.ADD.DATA', + 0x0189: 'AUTO.OUTLINE', + 0x018A: 'TAB.ORDER', + 0x018B: 'SHOW.DIALOG', + 0x018C: 'SELECT.ALL', + 0x018D: 'UNGROUP.SHEETS', + 0x018E: 'SUBTOTAL.CREATE', + 0x018F: 'SUBTOTAL.REMOVE', + 0x0190: 'RENAME.OBJECT', + 0x019C: 'WORKBOOK.SCROLL', + 0x019D: 'WORKBOOK.NEXT', + 0x019E: 'WORKBOOK.PREV', + 0x019F: 'WORKBOOK.TAB.SPLIT', + 0x01A0: 'FULL.SCREEN', + 0x01A1: 'WORKBOOK.PROTECT', + 0x01A4: 'SCROLLBAR.PROPERTIES', + 0x01A5: 'PIVOT.SHOW.PAGES', + 0x01A6: 'TEXT.TO.COLUMNS', + 0x01A7: 'FORMAT.CHARTTYPE', + 0x01A8: 'LINK.FORMAT', + 0x01A9: 'TRACER.DISPLAY', + 0x01AE: 'TRACER.NAVIGATE', + 0x01AF: 'TRACER.CLEAR', + 0x01B0: 'TRACER.ERROR', + 0x01B1: 'PIVOT.FIELD.GROUP', + 0x01B2: 'PIVOT.FIELD.UNGROUP', + 0x01B3: 'CHECKBOX.PROPERTIES', + 0x01B4: 'LABEL.PROPERTIES', + 0x01B5: 'LISTBOX.PROPERTIES', + 0x01B6: 'EDITBOX.PROPERTIES', + 0x01B7: 'PIVOT.REFRESH', + 0x01B8: 'LINK.COMBO', + 0x01B9: 'OPEN.TEXT', + 0x01BA: 'HIDE.DIALOG', + 0x01BB: 'SET.DIALOG.FOCUS', + 0x01BC: 'ENABLE.OBJECT', + 0x01BD: 'PUSHBUTTON.PROPERTIES', + 0x01BE: 'SET.DIALOG.DEFAULT', + 0x01BF: 'FILTER', + 0x01C0: 'FILTER.SHOW.ALL', + 0x01C1: 'CLEAR.OUTLINE', + 0x01C2: 'FUNCTION.WIZARD', + 0x01C3: 'ADD.LIST.ITEM', + 0x01C4: 'SET.LIST.ITEM', + 0x01C5: 'REMOVE.LIST.ITEM', + 0x01C6: 'SELECT.LIST.ITEM', + 0x01C7: 'SET.CONTROL.VALUE', + 0x01C8: 'SAVE.COPY.AS', + 0x01CA: 'OPTIONS.LISTS.ADD', + 0x01CB: 'OPTIONS.LISTS.DELETE', + 0x01CC: 'SERIES.AXES', + 0x01CD: 'SERIES.X', + 0x01CE: 'SERIES.Y', + 0x01CF: 'ERRORBAR.X', + 0x01D0: 'ERRORBAR.Y', + 0x01D1: 'FORMAT.CHART', + 0x01D2: 'SERIES.ORDER', + 0x01D3: 'MAIL.LOGOFF', + 0x01D4: 'CLEAR.ROUTING.SLIP', + 0x01D5: 'APP.ACTIVATE.MICROSOFT', + 0x01D6: 'MAIL.EDIT.MAILER', + 0x01D7: 'ON.SHEET', + 0x01D8: 'STANDARD.WIDTH', + 0x01D9: 'SCENARIO.MERGE', + 0x01DA: 'SUMMARY.INFO', + 0x01DB: 'FIND.FILE', + 0x01DC: 'ACTIVE.CELL.FONT', + 0x01DD: 'ENABLE.TIPWIZARD', + 0x01DE: 'VBA.MAKE.ADDIN', + 0x01E0: 'INSERTDATATABLE', + 0x01E1: 'WORKGROUP.OPTIONS', + 0x01E2: 'MAIL.SEND.MAILER', + 0x01E5: 'AUTOCORRECT', + 0x01E9: 'POST.DOCUMENT', + 0x01EB: 'PICKLIST', + 0x01ED: 'VIEW.SHOW', + 0x01EE: 'VIEW.DEFINE', + 0x01EF: 'VIEW.DELETE', + 0x01FD: 'SHEET.BACKGROUND', + 0x01FE: 'INSERT.MAP.OBJECT', + 0x01FF: 'OPTIONS.MENONO', + 0x0205: 'MSOCHECKS', + 0x0206: 'NORMAL', + 0x0207: 'LAYOUT', + 0x0208: 'RM.PRINT.AREA', + 0x0209: 'CLEAR.PRINT.AREA', + 0x020A: 'ADD.PRINT.AREA', + 0x020B: 'MOVE.BRK', + 0x0221: 'HIDECURR.NOTE', + 0x0222: 'HIDEALL.NOTES', + 0x0223: 'DELETE.NOTE', + 0x0224: 'TRAVERSE.NOTES', + 0x0225: 'ACTIVATE.NOTES', + 0x026C: 'PROTECT.REVISIONS', + 0x026D: 'UNPROTECT.REVISIONS', + 0x0287: 'OPTIONS.ME', + 0x028D: 'WEB.PUBLISH', + 0x029B: 'NEWWEBQUERY', + 0x02A1: 'PIVOT.TABLE.CHART', + 0x02F1: 'OPTIONS.SAVE', + 0x02F3: 'OPTIONS.SPELL', + 0x0328: 'HIDEALL.INKANNOTS' +}; + +/* [MS-XLS] 2.5.198.17 */ +var Ftab = { + 0x0000: 'COUNT', + 0x0001: 'IF', + 0x0002: 'ISNA', + 0x0003: 'ISERROR', + 0x0004: 'SUM', + 0x0005: 'AVERAGE', + 0x0006: 'MIN', + 0x0007: 'MAX', + 0x0008: 'ROW', + 0x0009: 'COLUMN', + 0x000A: 'NA', + 0x000B: 'NPV', + 0x000C: 'STDEV', + 0x000D: 'DOLLAR', + 0x000E: 'FIXED', + 0x000F: 'SIN', + 0x0010: 'COS', + 0x0011: 'TAN', + 0x0012: 'ATAN', + 0x0013: 'PI', + 0x0014: 'SQRT', + 0x0015: 'EXP', + 0x0016: 'LN', + 0x0017: 'LOG10', + 0x0018: 'ABS', + 0x0019: 'INT', + 0x001A: 'SIGN', + 0x001B: 'ROUND', + 0x001C: 'LOOKUP', + 0x001D: 'INDEX', + 0x001E: 'REPT', + 0x001F: 'MID', + 0x0020: 'LEN', + 0x0021: 'VALUE', + 0x0022: 'TRUE', + 0x0023: 'FALSE', + 0x0024: 'AND', + 0x0025: 'OR', + 0x0026: 'NOT', + 0x0027: 'MOD', + 0x0028: 'DCOUNT', + 0x0029: 'DSUM', + 0x002A: 'DAVERAGE', + 0x002B: 'DMIN', + 0x002C: 'DMAX', + 0x002D: 'DSTDEV', + 0x002E: 'VAR', + 0x002F: 'DVAR', + 0x0030: 'TEXT', + 0x0031: 'LINEST', + 0x0032: 'TREND', + 0x0033: 'LOGEST', + 0x0034: 'GROWTH', + 0x0035: 'GOTO', + 0x0036: 'HALT', + 0x0037: 'RETURN', + 0x0038: 'PV', + 0x0039: 'FV', + 0x003A: 'NPER', + 0x003B: 'PMT', + 0x003C: 'RATE', + 0x003D: 'MIRR', + 0x003E: 'IRR', + 0x003F: 'RAND', + 0x0040: 'MATCH', + 0x0041: 'DATE', + 0x0042: 'TIME', + 0x0043: 'DAY', + 0x0044: 'MONTH', + 0x0045: 'YEAR', + 0x0046: 'WEEKDAY', + 0x0047: 'HOUR', + 0x0048: 'MINUTE', + 0x0049: 'SECOND', + 0x004A: 'NOW', + 0x004B: 'AREAS', + 0x004C: 'ROWS', + 0x004D: 'COLUMNS', + 0x004E: 'OFFSET', + 0x004F: 'ABSREF', + 0x0050: 'RELREF', + 0x0051: 'ARGUMENT', + 0x0052: 'SEARCH', + 0x0053: 'TRANSPOSE', + 0x0054: 'ERROR', + 0x0055: 'STEP', + 0x0056: 'TYPE', + 0x0057: 'ECHO', + 0x0058: 'SET.NAME', + 0x0059: 'CALLER', + 0x005A: 'DEREF', + 0x005B: 'WINDOWS', + 0x005C: 'SERIES', + 0x005D: 'DOCUMENTS', + 0x005E: 'ACTIVE.CELL', + 0x005F: 'SELECTION', + 0x0060: 'RESULT', + 0x0061: 'ATAN2', + 0x0062: 'ASIN', + 0x0063: 'ACOS', + 0x0064: 'CHOOSE', + 0x0065: 'HLOOKUP', + 0x0066: 'VLOOKUP', + 0x0067: 'LINKS', + 0x0068: 'INPUT', + 0x0069: 'ISREF', + 0x006A: 'GET.FORMULA', + 0x006B: 'GET.NAME', + 0x006C: 'SET.VALUE', + 0x006D: 'LOG', + 0x006E: 'EXEC', + 0x006F: 'CHAR', + 0x0070: 'LOWER', + 0x0071: 'UPPER', + 0x0072: 'PROPER', + 0x0073: 'LEFT', + 0x0074: 'RIGHT', + 0x0075: 'EXACT', + 0x0076: 'TRIM', + 0x0077: 'REPLACE', + 0x0078: 'SUBSTITUTE', + 0x0079: 'CODE', + 0x007A: 'NAMES', + 0x007B: 'DIRECTORY', + 0x007C: 'FIND', + 0x007D: 'CELL', + 0x007E: 'ISERR', + 0x007F: 'ISTEXT', + 0x0080: 'ISNUMBER', + 0x0081: 'ISBLANK', + 0x0082: 'T', + 0x0083: 'N', + 0x0084: 'FOPEN', + 0x0085: 'FCLOSE', + 0x0086: 'FSIZE', + 0x0087: 'FREADLN', + 0x0088: 'FREAD', + 0x0089: 'FWRITELN', + 0x008A: 'FWRITE', + 0x008B: 'FPOS', + 0x008C: 'DATEVALUE', + 0x008D: 'TIMEVALUE', + 0x008E: 'SLN', + 0x008F: 'SYD', + 0x0090: 'DDB', + 0x0091: 'GET.DEF', + 0x0092: 'REFTEXT', + 0x0093: 'TEXTREF', + 0x0094: 'INDIRECT', + 0x0095: 'REGISTER', + 0x0096: 'CALL', + 0x0097: 'ADD.BAR', + 0x0098: 'ADD.MENU', + 0x0099: 'ADD.COMMAND', + 0x009A: 'ENABLE.COMMAND', + 0x009B: 'CHECK.COMMAND', + 0x009C: 'RENAME.COMMAND', + 0x009D: 'SHOW.BAR', + 0x009E: 'DELETE.MENU', + 0x009F: 'DELETE.COMMAND', + 0x00A0: 'GET.CHART.ITEM', + 0x00A1: 'DIALOG.BOX', + 0x00A2: 'CLEAN', + 0x00A3: 'MDETERM', + 0x00A4: 'MINVERSE', + 0x00A5: 'MMULT', + 0x00A6: 'FILES', + 0x00A7: 'IPMT', + 0x00A8: 'PPMT', + 0x00A9: 'COUNTA', + 0x00AA: 'CANCEL.KEY', + 0x00AB: 'FOR', + 0x00AC: 'WHILE', + 0x00AD: 'BREAK', + 0x00AE: 'NEXT', + 0x00AF: 'INITIATE', + 0x00B0: 'REQUEST', + 0x00B1: 'POKE', + 0x00B2: 'EXECUTE', + 0x00B3: 'TERMINATE', + 0x00B4: 'RESTART', + 0x00B5: 'HELP', + 0x00B6: 'GET.BAR', + 0x00B7: 'PRODUCT', + 0x00B8: 'FACT', + 0x00B9: 'GET.CELL', + 0x00BA: 'GET.WORKSPACE', + 0x00BB: 'GET.WINDOW', + 0x00BC: 'GET.DOCUMENT', + 0x00BD: 'DPRODUCT', + 0x00BE: 'ISNONTEXT', + 0x00BF: 'GET.NOTE', + 0x00C0: 'NOTE', + 0x00C1: 'STDEVP', + 0x00C2: 'VARP', + 0x00C3: 'DSTDEVP', + 0x00C4: 'DVARP', + 0x00C5: 'TRUNC', + 0x00C6: 'ISLOGICAL', + 0x00C7: 'DCOUNTA', + 0x00C8: 'DELETE.BAR', + 0x00C9: 'UNREGISTER', + 0x00CC: 'USDOLLAR', + 0x00CD: 'FINDB', + 0x00CE: 'SEARCHB', + 0x00CF: 'REPLACEB', + 0x00D0: 'LEFTB', + 0x00D1: 'RIGHTB', + 0x00D2: 'MIDB', + 0x00D3: 'LENB', + 0x00D4: 'ROUNDUP', + 0x00D5: 'ROUNDDOWN', + 0x00D6: 'ASC', + 0x00D7: 'DBCS', + 0x00D8: 'RANK', + 0x00DB: 'ADDRESS', + 0x00DC: 'DAYS360', + 0x00DD: 'TODAY', + 0x00DE: 'VDB', + 0x00DF: 'ELSE', + 0x00E0: 'ELSE.IF', + 0x00E1: 'END.IF', + 0x00E2: 'FOR.CELL', + 0x00E3: 'MEDIAN', + 0x00E4: 'SUMPRODUCT', + 0x00E5: 'SINH', + 0x00E6: 'COSH', + 0x00E7: 'TANH', + 0x00E8: 'ASINH', + 0x00E9: 'ACOSH', + 0x00EA: 'ATANH', + 0x00EB: 'DGET', + 0x00EC: 'CREATE.OBJECT', + 0x00ED: 'VOLATILE', + 0x00EE: 'LAST.ERROR', + 0x00EF: 'CUSTOM.UNDO', + 0x00F0: 'CUSTOM.REPEAT', + 0x00F1: 'FORMULA.CONVERT', + 0x00F2: 'GET.LINK.INFO', + 0x00F3: 'TEXT.BOX', + 0x00F4: 'INFO', + 0x00F5: 'GROUP', + 0x00F6: 'GET.OBJECT', + 0x00F7: 'DB', + 0x00F8: 'PAUSE', + 0x00FB: 'RESUME', + 0x00FC: 'FREQUENCY', + 0x00FD: 'ADD.TOOLBAR', + 0x00FE: 'DELETE.TOOLBAR', + 0x00FF: 'User', + 0x0100: 'RESET.TOOLBAR', + 0x0101: 'EVALUATE', + 0x0102: 'GET.TOOLBAR', + 0x0103: 'GET.TOOL', + 0x0104: 'SPELLING.CHECK', + 0x0105: 'ERROR.TYPE', + 0x0106: 'APP.TITLE', + 0x0107: 'WINDOW.TITLE', + 0x0108: 'SAVE.TOOLBAR', + 0x0109: 'ENABLE.TOOL', + 0x010A: 'PRESS.TOOL', + 0x010B: 'REGISTER.ID', + 0x010C: 'GET.WORKBOOK', + 0x010D: 'AVEDEV', + 0x010E: 'BETADIST', + 0x010F: 'GAMMALN', + 0x0110: 'BETAINV', + 0x0111: 'BINOMDIST', + 0x0112: 'CHIDIST', + 0x0113: 'CHIINV', + 0x0114: 'COMBIN', + 0x0115: 'CONFIDENCE', + 0x0116: 'CRITBINOM', + 0x0117: 'EVEN', + 0x0118: 'EXPONDIST', + 0x0119: 'FDIST', + 0x011A: 'FINV', + 0x011B: 'FISHER', + 0x011C: 'FISHERINV', + 0x011D: 'FLOOR', + 0x011E: 'GAMMADIST', + 0x011F: 'GAMMAINV', + 0x0120: 'CEILING', + 0x0121: 'HYPGEOMDIST', + 0x0122: 'LOGNORMDIST', + 0x0123: 'LOGINV', + 0x0124: 'NEGBINOMDIST', + 0x0125: 'NORMDIST', + 0x0126: 'NORMSDIST', + 0x0127: 'NORMINV', + 0x0128: 'NORMSINV', + 0x0129: 'STANDARDIZE', + 0x012A: 'ODD', + 0x012B: 'PERMUT', + 0x012C: 'POISSON', + 0x012D: 'TDIST', + 0x012E: 'WEIBULL', + 0x012F: 'SUMXMY2', + 0x0130: 'SUMX2MY2', + 0x0131: 'SUMX2PY2', + 0x0132: 'CHITEST', + 0x0133: 'CORREL', + 0x0134: 'COVAR', + 0x0135: 'FORECAST', + 0x0136: 'FTEST', + 0x0137: 'INTERCEPT', + 0x0138: 'PEARSON', + 0x0139: 'RSQ', + 0x013A: 'STEYX', + 0x013B: 'SLOPE', + 0x013C: 'TTEST', + 0x013D: 'PROB', + 0x013E: 'DEVSQ', + 0x013F: 'GEOMEAN', + 0x0140: 'HARMEAN', + 0x0141: 'SUMSQ', + 0x0142: 'KURT', + 0x0143: 'SKEW', + 0x0144: 'ZTEST', + 0x0145: 'LARGE', + 0x0146: 'SMALL', + 0x0147: 'QUARTILE', + 0x0148: 'PERCENTILE', + 0x0149: 'PERCENTRANK', + 0x014A: 'MODE', + 0x014B: 'TRIMMEAN', + 0x014C: 'TINV', + 0x014E: 'MOVIE.COMMAND', + 0x014F: 'GET.MOVIE', + 0x0150: 'CONCATENATE', + 0x0151: 'POWER', + 0x0152: 'PIVOT.ADD.DATA', + 0x0153: 'GET.PIVOT.TABLE', + 0x0154: 'GET.PIVOT.FIELD', + 0x0155: 'GET.PIVOT.ITEM', + 0x0156: 'RADIANS', + 0x0157: 'DEGREES', + 0x0158: 'SUBTOTAL', + 0x0159: 'SUMIF', + 0x015A: 'COUNTIF', + 0x015B: 'COUNTBLANK', + 0x015C: 'SCENARIO.GET', + 0x015D: 'OPTIONS.LISTS.GET', + 0x015E: 'ISPMT', + 0x015F: 'DATEDIF', + 0x0160: 'DATESTRING', + 0x0161: 'NUMBERSTRING', + 0x0162: 'ROMAN', + 0x0163: 'OPEN.DIALOG', + 0x0164: 'SAVE.DIALOG', + 0x0165: 'VIEW.GET', + 0x0166: 'GETPIVOTDATA', + 0x0167: 'HYPERLINK', + 0x0168: 'PHONETIC', + 0x0169: 'AVERAGEA', + 0x016A: 'MAXA', + 0x016B: 'MINA', + 0x016C: 'STDEVPA', + 0x016D: 'VARPA', + 0x016E: 'STDEVA', + 0x016F: 'VARA', + 0x0170: 'BAHTTEXT', + 0x0171: 'THAIDAYOFWEEK', + 0x0172: 'THAIDIGIT', + 0x0173: 'THAIMONTHOFYEAR', + 0x0174: 'THAINUMSOUND', + 0x0175: 'THAINUMSTRING', + 0x0176: 'THAISTRINGLENGTH', + 0x0177: 'ISTHAIDIGIT', + 0x0178: 'ROUNDBAHTDOWN', + 0x0179: 'ROUNDBAHTUP', + 0x017A: 'THAIYEAR', + 0x017B: 'RTD' +}; +var FtabArgc = { + 0x0002: 1, /* ISNA */ + 0x0003: 1, /* ISERROR */ + 0x000F: 1, /* SIN */ + 0x0010: 1, /* COS */ + 0x0011: 1, /* TAN */ + 0x0012: 1, /* ATAN */ + 0x0014: 1, /* SQRT */ + 0x0015: 1, /* EXP */ + 0x0016: 1, /* LN */ + 0x0017: 1, /* LOG10 */ + 0x0018: 1, /* ABS */ + 0x0019: 1, /* INT */ + 0x001A: 1, /* SIGN */ + 0x001B: 2, /* ROUND */ + 0x001E: 2, /* REPT */ + 0x001F: 3, /* MID */ + 0x0020: 1, /* LEN */ + 0x0021: 1, /* VALUE */ + 0x0026: 1, /* NOT */ + 0x0027: 2, /* MOD */ + 0x0028: 3, /* DCOUNT */ + 0x0029: 3, /* DSUM */ + 0x002A: 3, /* DAVERAGE */ + 0x002B: 3, /* DMIN */ + 0x002C: 3, /* DMAX */ + 0x002D: 3, /* DSTDEV */ + 0x002F: 3, /* DVAR */ + 0x0030: 2, /* TEXT */ + 0x0035: 1, /* GOTO */ + 0x003D: 3, /* MIRR */ + 0x0041: 3, /* DATE */ + 0x0042: 3, /* TIME */ + 0x0043: 1, /* DAY */ + 0x0044: 1, /* MONTH */ + 0x0045: 1, /* YEAR */ + 0x0047: 1, /* HOUR */ + 0x0048: 1, /* MINUTE */ + 0x0049: 1, /* SECOND */ + 0x004B: 1, /* AREAS */ + 0x004C: 1, /* ROWS */ + 0x004D: 1, /* COLUMNS */ + 0x004F: 2, /* ABSREF */ + 0x0050: 2, /* RELREF */ + 0x0053: 1, /* TRANSPOSE */ + 0x0056: 1, /* TYPE */ + 0x005A: 1, /* DEREF */ + 0x0061: 2, /* ATAN2 */ + 0x0062: 1, /* ASIN */ + 0x0063: 1, /* ACOS */ + 0x0069: 1, /* ISREF */ + 0x006F: 1, /* CHAR */ + 0x0070: 1, /* LOWER */ + 0x0071: 1, /* UPPER */ + 0x0072: 1, /* PROPER */ + 0x0075: 2, /* EXACT */ + 0x0076: 1, /* TRIM */ + 0x0077: 4, /* REPLACE */ + 0x0079: 1, /* CODE */ + 0x007E: 1, /* ISERR */ + 0x007F: 1, /* ISTEXT */ + 0x0080: 1, /* ISNUMBER */ + 0x0081: 1, /* ISBLANK */ + 0x0082: 1, /* T */ + 0x0083: 1, /* N */ + 0x0085: 1, /* FCLOSE */ + 0x0086: 1, /* FSIZE */ + 0x0087: 1, /* FREADLN */ + 0x0088: 2, /* FREAD */ + 0x0089: 2, /* FWRITELN */ + 0x008A: 2, /* FWRITE */ + 0x008C: 1, /* DATEVALUE */ + 0x008D: 1, /* TIMEVALUE */ + 0x008E: 3, /* SLN */ + 0x008F: 4, /* SYD */ + 0x00A2: 1, /* CLEAN */ + 0x00A3: 1, /* MDETERM */ + 0x00A4: 1, /* MINVERSE */ + 0x00A5: 2, /* MMULT */ + 0x00AC: 1, /* WHILE */ + 0x00AF: 2, /* INITIATE */ + 0x00B0: 2, /* REQUEST */ + 0x00B1: 3, /* POKE */ + 0x00B2: 2, /* EXECUTE */ + 0x00B3: 1, /* TERMINATE */ + 0x00B8: 1, /* FACT */ + 0x00BD: 3, /* DPRODUCT */ + 0x00BE: 1, /* ISNONTEXT */ + 0x00C3: 3, /* DSTDEVP */ + 0x00C4: 3, /* DVARP */ + 0x00C6: 1, /* ISLOGICAL */ + 0x00C7: 3, /* DCOUNTA */ + 0x00C9: 1, /* UNREGISTER */ + 0x00CF: 4, /* REPLACEB */ + 0x00D2: 3, /* MIDB */ + 0x00D3: 1, /* LENB */ + 0x00D4: 2, /* ROUNDUP */ + 0x00D5: 2, /* ROUNDDOWN */ + 0x00D6: 1, /* ASC */ + 0x00D7: 1, /* DBCS */ + 0x00E5: 1, /* SINH */ + 0x00E6: 1, /* COSH */ + 0x00E7: 1, /* TANH */ + 0x00E8: 1, /* ASINH */ + 0x00E9: 1, /* ACOSH */ + 0x00EA: 1, /* ATANH */ + 0x00EB: 3, /* DGET */ + 0x00F4: 1, /* INFO */ + 0x00FC: 2, /* FREQUENCY */ + 0x0101: 1, /* EVALUATE */ + 0x0105: 1, /* ERROR.TYPE */ + 0x010F: 1, /* GAMMALN */ + 0x0111: 4, /* BINOMDIST */ + 0x0112: 2, /* CHIDIST */ + 0x0113: 2, /* CHIINV */ + 0x0114: 2, /* COMBIN */ + 0x0115: 3, /* CONFIDENCE */ + 0x0116: 3, /* CRITBINOM */ + 0x0117: 1, /* EVEN */ + 0x0118: 3, /* EXPONDIST */ + 0x0119: 3, /* FDIST */ + 0x011A: 3, /* FINV */ + 0x011B: 1, /* FISHER */ + 0x011C: 1, /* FISHERINV */ + 0x011D: 2, /* FLOOR */ + 0x011E: 4, /* GAMMADIST */ + 0x011F: 3, /* GAMMAINV */ + 0x0120: 2, /* CEILING */ + 0x0121: 4, /* HYPGEOMDIST */ + 0x0122: 3, /* LOGNORMDIST */ + 0x0123: 3, /* LOGINV */ + 0x0124: 3, /* NEGBINOMDIST */ + 0x0125: 4, /* NORMDIST */ + 0x0126: 1, /* NORMSDIST */ + 0x0127: 3, /* NORMINV */ + 0x0128: 1, /* NORMSINV */ + 0x0129: 3, /* STANDARDIZE */ + 0x012A: 1, /* ODD */ + 0x012B: 2, /* PERMUT */ + 0x012C: 3, /* POISSON */ + 0x012D: 3, /* TDIST */ + 0x012E: 4, /* WEIBULL */ + 0x012F: 2, /* SUMXMY2 */ + 0x0130: 2, /* SUMX2MY2 */ + 0x0131: 2, /* SUMX2PY2 */ + 0x0132: 2, /* CHITEST */ + 0x0133: 2, /* CORREL */ + 0x0134: 2, /* COVAR */ + 0x0135: 3, /* FORECAST */ + 0x0136: 2, /* FTEST */ + 0x0137: 2, /* INTERCEPT */ + 0x0138: 2, /* PEARSON */ + 0x0139: 2, /* RSQ */ + 0x013A: 2, /* STEYX */ + 0x013B: 2, /* SLOPE */ + 0x013C: 4, /* TTEST */ + 0x0145: 2, /* LARGE */ + 0x0146: 2, /* SMALL */ + 0x0147: 2, /* QUARTILE */ + 0x0148: 2, /* PERCENTILE */ + 0x014B: 2, /* TRIMMEAN */ + 0x014C: 2, /* TINV */ + 0x0151: 2, /* POWER */ + 0x0156: 1, /* RADIANS */ + 0x0157: 1, /* DEGREES */ + 0x015A: 2, /* COUNTIF */ + 0x015B: 1, /* COUNTBLANK */ + 0x015E: 4, /* ISPMT */ + 0x015F: 3, /* DATEDIF */ + 0x0160: 1, /* DATESTRING */ + 0x0161: 2, /* NUMBERSTRING */ + 0x0168: 1, /* PHONETIC */ + 0x0170: 1, /* BAHTTEXT */ + 0x0171: 1, /* THAIDAYOFWEEK */ + 0x0172: 1, /* THAIDIGIT */ + 0x0173: 1, /* THAIMONTHOFYEAR */ + 0x0174: 1, /* THAINUMSOUND */ + 0x0175: 1, /* THAINUMSTRING */ + 0x0176: 1, /* THAISTRINGLENGTH */ + 0x0177: 1, /* ISTHAIDIGIT */ + 0x0178: 1, /* ROUNDBAHTDOWN */ + 0x0179: 1, /* ROUNDBAHTUP */ + 0x017A: 1, /* THAIYEAR */ + 0xFFFF: 0 +}; +/* [MS-XLSX] 2.2.3 Functions */ +var XLSXFutureFunctions = { + "_xlfn.ACOT": "ACOT", + "_xlfn.ACOTH": "ACOTH", + "_xlfn.AGGREGATE": "AGGREGATE", + "_xlfn.ARABIC": "ARABIC", + "_xlfn.AVERAGEIF": "AVERAGEIF", + "_xlfn.AVERAGEIFS": "AVERAGEIFS", + "_xlfn.BASE": "BASE", + "_xlfn.BETA.DIST": "BETA.DIST", + "_xlfn.BETA.INV": "BETA.INV", + "_xlfn.BINOM.DIST": "BINOM.DIST", + "_xlfn.BINOM.DIST.RANGE": "BINOM.DIST.RANGE", + "_xlfn.BINOM.INV": "BINOM.INV", + "_xlfn.BITAND": "BITAND", + "_xlfn.BITLSHIFT": "BITLSHIFT", + "_xlfn.BITOR": "BITOR", + "_xlfn.BITRSHIFT": "BITRSHIFT", + "_xlfn.BITXOR": "BITXOR", + "_xlfn.CEILING.MATH": "CEILING.MATH", + "_xlfn.CEILING.PRECISE": "CEILING.PRECISE", + "_xlfn.CHISQ.DIST": "CHISQ.DIST", + "_xlfn.CHISQ.DIST.RT": "CHISQ.DIST.RT", + "_xlfn.CHISQ.INV": "CHISQ.INV", + "_xlfn.CHISQ.INV.RT": "CHISQ.INV.RT", + "_xlfn.CHISQ.TEST": "CHISQ.TEST", + "_xlfn.COMBINA": "COMBINA", + "_xlfn.CONFIDENCE.NORM": "CONFIDENCE.NORM", + "_xlfn.CONFIDENCE.T": "CONFIDENCE.T", + "_xlfn.COT": "COT", + "_xlfn.COTH": "COTH", + "_xlfn.COUNTIFS": "COUNTIFS", + "_xlfn.COVARIANCE.P": "COVARIANCE.P", + "_xlfn.COVARIANCE.S": "COVARIANCE.S", + "_xlfn.CSC": "CSC", + "_xlfn.CSCH": "CSCH", + "_xlfn.DAYS": "DAYS", + "_xlfn.DECIMAL": "DECIMAL", + "_xlfn.ECMA.CEILING": "ECMA.CEILING", + "_xlfn.ERF.PRECISE": "ERF.PRECISE", + "_xlfn.ERFC.PRECISE": "ERFC.PRECISE", + "_xlfn.EXPON.DIST": "EXPON.DIST", + "_xlfn.F.DIST": "F.DIST", + "_xlfn.F.DIST.RT": "F.DIST.RT", + "_xlfn.F.INV": "F.INV", + "_xlfn.F.INV.RT": "F.INV.RT", + "_xlfn.F.TEST": "F.TEST", + "_xlfn.FILTERXML": "FILTERXML", + "_xlfn.FLOOR.MATH": "FLOOR.MATH", + "_xlfn.FLOOR.PRECISE": "FLOOR.PRECISE", + "_xlfn.FORMULATEXT": "FORMULATEXT", + "_xlfn.GAMMA": "GAMMA", + "_xlfn.GAMMA.DIST": "GAMMA.DIST", + "_xlfn.GAMMA.INV": "GAMMA.INV", + "_xlfn.GAMMALN.PRECISE": "GAMMALN.PRECISE", + "_xlfn.GAUSS": "GAUSS", + "_xlfn.HYPGEOM.DIST": "HYPGEOM.DIST", + "_xlfn.IFNA": "IFNA", + "_xlfn.IFERROR": "IFERROR", + "_xlfn.IMCOSH": "IMCOSH", + "_xlfn.IMCOT": "IMCOT", + "_xlfn.IMCSC": "IMCSC", + "_xlfn.IMCSCH": "IMCSCH", + "_xlfn.IMSEC": "IMSEC", + "_xlfn.IMSECH": "IMSECH", + "_xlfn.IMSINH": "IMSINH", + "_xlfn.IMTAN": "IMTAN", + "_xlfn.ISFORMULA": "ISFORMULA", + "_xlfn.ISO.CEILING": "ISO.CEILING", + "_xlfn.ISOWEEKNUM": "ISOWEEKNUM", + "_xlfn.LOGNORM.DIST": "LOGNORM.DIST", + "_xlfn.LOGNORM.INV": "LOGNORM.INV", + "_xlfn.MODE.MULT": "MODE.MULT", + "_xlfn.MODE.SNGL": "MODE.SNGL", + "_xlfn.MUNIT": "MUNIT", + "_xlfn.NEGBINOM.DIST": "NEGBINOM.DIST", + "_xlfn.NETWORKDAYS.INTL": "NETWORKDAYS.INTL", + "_xlfn.NIGBINOM": "NIGBINOM", + "_xlfn.NORM.DIST": "NORM.DIST", + "_xlfn.NORM.INV": "NORM.INV", + "_xlfn.NORM.S.DIST": "NORM.S.DIST", + "_xlfn.NORM.S.INV": "NORM.S.INV", + "_xlfn.NUMBERVALUE": "NUMBERVALUE", + "_xlfn.PDURATION": "PDURATION", + "_xlfn.PERCENTILE.EXC": "PERCENTILE.EXC", + "_xlfn.PERCENTILE.INC": "PERCENTILE.INC", + "_xlfn.PERCENTRANK.EXC": "PERCENTRANK.EXC", + "_xlfn.PERCENTRANK.INC": "PERCENTRANK.INC", + "_xlfn.PERMUTATIONA": "PERMUTATIONA", + "_xlfn.PHI": "PHI", + "_xlfn.POISSON.DIST": "POISSON.DIST", + "_xlfn.QUARTILE.EXC": "QUARTILE.EXC", + "_xlfn.QUARTILE.INC": "QUARTILE.INC", + "_xlfn.QUERYSTRING": "QUERYSTRING", + "_xlfn.RANK.AVG": "RANK.AVG", + "_xlfn.RANK.EQ": "RANK.EQ", + "_xlfn.RRI": "RRI", + "_xlfn.SEC": "SEC", + "_xlfn.SECH": "SECH", + "_xlfn.SHEET": "SHEET", + "_xlfn.SHEETS": "SHEETS", + "_xlfn.SKEW.P": "SKEW.P", + "_xlfn.STDEV.P": "STDEV.P", + "_xlfn.STDEV.S": "STDEV.S", + "_xlfn.SUMIFS": "SUMIFS", + "_xlfn.T.DIST": "T.DIST", + "_xlfn.T.DIST.2T": "T.DIST.2T", + "_xlfn.T.DIST.RT": "T.DIST.RT", + "_xlfn.T.INV": "T.INV", + "_xlfn.T.INV.2T": "T.INV.2T", + "_xlfn.T.TEST": "T.TEST", + "_xlfn.UNICHAR": "UNICHAR", + "_xlfn.UNICODE": "UNICODE", + "_xlfn.VAR.P": "VAR.P", + "_xlfn.VAR.S": "VAR.S", + "_xlfn.WEBSERVICE": "WEBSERVICE", + "_xlfn.WEIBULL.DIST": "WEIBULL.DIST", + "_xlfn.WORKDAY.INTL": "WORKDAY.INTL", + "_xlfn.XOR": "XOR", + "_xlfn.Z.TEST": "Z.TEST" +}; + var strs = {}; // shared strings var _ssfopts = {}; // spreadsheet formatting options @@ -3151,70 +7583,70 @@ function parse_BrtWsProp(data, length) { var z = {}; /* TODO: pull flags */ data.l += 19; - z.name = parse_CodeName(data, length - 19); + z.name = parse_XLSBCodeName(data, length - 19); return z; } /* [MS-XLSB] 2.4.303 BrtCellBlank */ function parse_BrtCellBlank(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); return [cell]; } function write_BrtCellBlank(cell, val, o) { if(o == null) o = new_buf(8); - return write_Cell(val, o); + return write_XLSBCell(val, o); } /* [MS-XLSB] 2.4.304 BrtCellBool */ function parse_BrtCellBool(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var fBool = data.read_shift(1); return [cell, fBool, 'b']; } /* [MS-XLSB] 2.4.305 BrtCellError */ function parse_BrtCellError(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var fBool = data.read_shift(1); return [cell, fBool, 'e']; } /* [MS-XLSB] 2.4.308 BrtCellIsst */ function parse_BrtCellIsst(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var isst = data.read_shift(4); return [cell, isst, 's']; } /* [MS-XLSB] 2.4.310 BrtCellReal */ function parse_BrtCellReal(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_Xnum(data); return [cell, value, 'n']; } /* [MS-XLSB] 2.4.311 BrtCellRk */ function parse_BrtCellRk(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_RkNumber(data); return [cell, value, 'n']; } /* [MS-XLSB] 2.4.314 BrtCellSt */ function parse_BrtCellSt(data, length) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_XLWideString(data); return [cell, value, 'str']; } /* [MS-XLSB] 2.4.647 BrtFmlaBool */ function parse_BrtFmlaBool(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = data.read_shift(1); var o = [cell, value, 'b']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length-9); + var formula = parse_XLSBCellParsedFormula(data, length-9); o[3] = ""; /* TODO */ } else data.l += length-9; @@ -3223,11 +7655,11 @@ function parse_BrtFmlaBool(data, length, opts) { /* [MS-XLSB] 2.4.648 BrtFmlaError */ function parse_BrtFmlaError(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = data.read_shift(1); var o = [cell, value, 'e']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length-9); + var formula = parse_XLSBCellParsedFormula(data, length-9); o[3] = ""; /* TODO */ } else data.l += length-9; @@ -3236,11 +7668,11 @@ function parse_BrtFmlaError(data, length, opts) { /* [MS-XLSB] 2.4.649 BrtFmlaNum */ function parse_BrtFmlaNum(data, length, opts) { - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_Xnum(data); var o = [cell, value, 'n']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, length - 16); + var formula = parse_XLSBCellParsedFormula(data, length - 16); o[3] = ""; /* TODO */ } else data.l += length-16; @@ -3250,11 +7682,11 @@ function parse_BrtFmlaNum(data, length, opts) { /* [MS-XLSB] 2.4.650 BrtFmlaString */ function parse_BrtFmlaString(data, length, opts) { var start = data.l; - var cell = parse_Cell(data); + var cell = parse_XLSBCell(data); var value = parse_XLWideString(data); var o = [cell, value, 'str']; if(opts.cellFormula) { - var formula = parse_CellParsedFormula(data, start + length - data.l); + var formula = parse_XLSBCellParsedFormula(data, start + length - data.l); } else data.l = start + length; return o; @@ -4044,8 +8476,1382 @@ function write_cc(data, name, opts) { return (name.substr(-4)===".bin" ? write_cc_bin : write_cc_xml)(data, opts); } */ +var attregexg2=/([\w:]+)=((?:")([^"]*)(?:")|(?:')([^']*)(?:'))/g; +var attregex2=/([\w:]+)=((?:")(?:[^"]*)(?:")|(?:')(?:[^']*)(?:'))/; +var _chr = function(c) { return String.fromCharCode(c); }; +function xlml_parsexmltag(tag, skip_root) { + var words = tag.split(/\s+/); + var z = []; if(!skip_root) z[0] = words[0]; + if(words.length === 1) return z; + var m = tag.match(attregexg2), y, j, w, i; + if(m) for(i = 0; i != m.length; ++i) { + y = m[i].match(attregex2); + if((j=y[1].indexOf(":")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2); + else { + if(y[1].substr(0,6) === "xmlns:") w = "xmlns"+y[1].substr(6); + else w = y[1].substr(j+1); + z[w] = y[2].substr(1,y[2].length-2); + } + } + return z; +} +function xlml_parsexmltagobj(tag) { + var words = tag.split(/\s+/); + var z = {}; + if(words.length === 1) return z; + var m = tag.match(attregexg2), y, j, w, i; + if(m) for(i = 0; i != m.length; ++i) { + y = m[i].match(attregex2); + if((j=y[1].indexOf(":")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2); + else { + if(y[1].substr(0,6) === "xmlns:") w = "xmlns"+y[1].substr(6); + else w = y[1].substr(j+1); + z[w] = y[2].substr(1,y[2].length-2); + } + } + return z; +} + +// ---- + +function xlml_format(format, value) { + var fmt = XLMLFormatMap[format] || unescapexml(format); + if(fmt === "General") return SSF._general(value); + return SSF.format(fmt, value); +} + +function xlml_set_custprop(Custprops, Rn, cp, val) { + switch((cp[0].match(/dt:dt="([\w.]+)"/)||["",""])[1]) { + case "boolean": val = parsexmlbool(val); break; + case "i2": case "int": val = parseInt(val, 10); break; + case "r4": case "float": val = parseFloat(val); break; + case "date": case "dateTime.tz": val = new Date(val); break; + case "i8": case "string": case "fixed": case "uuid": case "bin.base64": break; + default: throw "bad custprop:" + cp[0]; + } + Custprops[unescapexml(Rn[3])] = val; +} + +function safe_format_xlml(cell, nf, o) { + try { + if(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; } + else if(nf === "General") { + if(cell.t === 'n') { + if((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v); + else cell.w = SSF._general_num(cell.v); + } + else cell.w = SSF._general(cell.v); + } + else cell.w = xlml_format(nf||"General", cell.v); + if(o.cellNF) cell.z = XLMLFormatMap[nf]||nf||"General"; + } catch(e) { if(o.WTF) throw e; } +} + +function process_style_xlml(styles, stag, opts) { + if(opts.cellStyles) { + if(stag.Interior) { + var I = stag.Interior; + if(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern; + } + } + styles[stag.ID] = stag; +} + +/* TODO: there must exist some form of OSP-blessed spec */ +function parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, o) { + var nf = "General", sid = cell.StyleID, S = {}; o = o || {}; + var interiors = []; + if(sid === undefined && row) sid = row.StyleID; + if(sid === undefined && csty) sid = csty.StyleID; + while(styles[sid] !== undefined) { + if(styles[sid].nf) nf = styles[sid].nf; + if(styles[sid].Interior) interiors.push(styles[sid].Interior); + if(!styles[sid].Parent) break; + sid = styles[sid].Parent; + } + switch(data.Type) { + case 'Boolean': + cell.t = 'b'; + cell.v = parsexmlbool(xml); + break; + case 'String': + cell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml)); + cell.v = xml.indexOf("<") > -1 ? ss : cell.r; + break; + case 'DateTime': + cell.v = (Date.parse(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000); + if(cell.v !== cell.v) cell.v = unescapexml(xml); + else if(cell.v >= 1 && cell.v<60) cell.v = cell.v -1; + if(!nf || nf == "General") nf = "yyyy-mm-dd"; + /* falls through */ + case 'Number': + if(cell.v === undefined) cell.v=+xml; + if(!cell.t) cell.t = 'n'; + break; + case 'Error': cell.t = 'e'; cell.v = RBErr[xml]; cell.w = xml; break; + default: cell.t = 's'; cell.v = xlml_fixstr(ss); break; + } + safe_format_xlml(cell, nf, o); + if(o.cellFormula != null && cell.Formula) { + cell.f = rc_to_a1(unescapexml(cell.Formula), base); + cell.Formula = undefined; + } + if(o.cellStyles) { + interiors.forEach(function(x) { + if(!S.patternType && x.patternType) S.patternType = x.patternType; + }); + cell.s = S; + } + cell.ixfe = cell.StyleID !== undefined ? cell.StyleID : 'Default'; +} + +function xlml_clean_comment(comment) { + comment.t = comment.v; + comment.v = comment.w = comment.ixfe = undefined; +} + +function xlml_normalize(d) { + if(has_buf && Buffer.isBuffer(d)) return d.toString('utf8'); + if(typeof d === 'string') return d; + throw "badf"; +} + +/* TODO: Everything */ +var xlmlregex = /<(\/?)([a-z0-9]*:|)(\w+)[^>]*>/mg; +function parse_xlml_xml(d, opts) { + var str = xlml_normalize(d); + var Rn; + var state = [], tmp; + var sheets = {}, sheetnames = [], cursheet = {}, sheetname = ""; + var table = {}, cell = {}, row = {}, dtag, didx; + var c = 0, r = 0; + var refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} }; + var styles = {}, stag = {}; + var ss = "", fidx = 0; + var mergecells = []; + var Props = {}, Custprops = {}, pidx = 0, cp = {}; + var comments = [], comment = {}; + var cstys = [], csty; + xlmlregex.lastIndex = 0; + while((Rn = xlmlregex.exec(str))) switch(Rn[3]) { + case 'Data': + if(state[state.length-1][1]) break; + if(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]=="Comment"?comment:cell, {c:c,r:r}, styles, cstys[c], row, opts); + else { ss = ""; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; } + break; + case 'Cell': + if(Rn[1]==='/'){ + if(comments.length > 0) cell.c = comments; + if((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) cursheet[encode_col(c) + encode_row(r)] = cell; + if(cell.HRef) { + cell.l = {Target:cell.HRef, tooltip:cell.HRefScreenTip}; + cell.HRef = cell.HRefScreenTip = undefined; + } + if(cell.MergeAcross || cell.MergeDown) { + var cc = c + (parseInt(cell.MergeAcross,10)|0); + var rr = r + (parseInt(cell.MergeDown,10)|0); + mergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}}); + } + ++c; + if(cell.MergeAcross) c += +cell.MergeAcross; + } else { + cell = xlml_parsexmltagobj(Rn[0]); + if(cell.Index) c = +cell.Index - 1; + if(c < refguess.s.c) refguess.s.c = c; + if(c > refguess.e.c) refguess.e.c = c; + if(Rn[0].substr(-2) === "/>") ++c; + comments = []; + } + break; + case 'Row': + if(Rn[1]==='/' || Rn[0].substr(-2) === "/>") { + if(r < refguess.s.r) refguess.s.r = r; + if(r > refguess.e.r) refguess.e.r = r; + if(Rn[0].substr(-2) === "/>") { + row = xlml_parsexmltag(Rn[0]); + if(row.Index) r = +row.Index - 1; + } + c = 0; ++r; + } else { + row = xlml_parsexmltag(Rn[0]); + if(row.Index) r = +row.Index - 1; + } + break; + case 'Worksheet': /* TODO: read range from FullRows/FullColumns */ + if(Rn[1]==='/'){ + if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp; + sheetnames.push(sheetname); + if(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) cursheet["!ref"] = encode_range(refguess); + if(mergecells.length) cursheet["!merges"] = mergecells; + sheets[sheetname] = cursheet; + } else { + refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} }; + r = c = 0; + state.push([Rn[3], false]); + tmp = xlml_parsexmltag(Rn[0]); + sheetname = tmp.Name; + cursheet = {}; + mergecells = []; + } + break; + case 'Table': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else if(Rn[0].slice(-2) == "/>") break; + else { + table = xlml_parsexmltag(Rn[0]); + state.push([Rn[3], false]); + cstys = []; + } + break; + + case 'Style': + if(Rn[1]==='/') process_style_xlml(styles, stag, opts); + else stag = xlml_parsexmltag(Rn[0]); + break; + + case 'NumberFormat': + stag.nf = xlml_parsexmltag(Rn[0]).Format || "General"; + break; + + case 'Column': + if(state[state.length-1][0] !== 'Table') break; + csty = xlml_parsexmltag(Rn[0]); + cstys[(csty.Index-1||cstys.length)] = csty; + for(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = csty; + break; + + case 'NamedRange': break; + case 'NamedCell': break; + case 'B': break; + case 'I': break; + case 'U': break; + case 'S': break; + case 'Sub': break; + case 'Sup': break; + case 'Span': break; + case 'Border': break; + case 'Alignment': break; + case 'Borders': break; + case 'Font': + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") ss += str.slice(fidx, Rn.index); + else fidx = Rn.index + Rn[0].length; + break; + case 'Interior': + if(!opts.cellStyles) break; + stag.Interior = xlml_parsexmltag(Rn[0]); + break; + case 'Protection': break; + + case 'Author': + case 'Title': + case 'Description': + case 'Created': + case 'Keywords': + case 'Subject': + case 'Category': + case 'Company': + case 'LastAuthor': + case 'LastSaved': + case 'LastPrinted': + case 'Version': + case 'Revision': + case 'TotalTime': + case 'HyperlinkBase': + case 'Manager': + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index)); + else pidx = Rn.index + Rn[0].length; + break; + case 'Paragraphs': break; + + case 'Styles': + case 'Workbook': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else state.push([Rn[3], false]); + break; + + case 'Comment': + if(Rn[1]==='/'){ + if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp; + xlml_clean_comment(comment); + comments.push(comment); + } else { + state.push([Rn[3], false]); + tmp = xlml_parsexmltag(Rn[0]); + comment = {a:tmp.Author}; + } + break; + + case 'Name': break; + + case 'ComponentOptions': + case 'DocumentProperties': + case 'CustomDocumentProperties': + case 'OfficeDocumentSettings': + case 'PivotTable': + case 'PivotCache': + case 'Names': + case 'MapInfo': + case 'PageBreaks': + case 'QueryTable': + case 'DataValidation': + case 'AutoFilter': + case 'Sorting': + case 'Schema': + case 'data': + case 'ConditionalFormatting': + case 'SmartTagType': + case 'SmartTags': + case 'ExcelWorkbook': + case 'WorkbookOptions': + case 'WorksheetOptions': + if(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw "Bad state: "+tmp;} + else if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]); + break; + + default: + var seen = true; + switch(state[state.length-1][0]) { + /* OfficeDocumentSettings */ + case 'OfficeDocumentSettings': switch(Rn[3]) { + case 'AllowPNG': break; + case 'RemovePersonalInformation': break; + case 'DownloadComponents': break; + case 'LocationOfComponents': break; + case 'Colors': break; + case 'Color': break; + case 'Index': break; + case 'RGB': break; + case 'PixelsPerInch': break; + case 'TargetScreenSize': break; + case 'ReadOnlyRecommended': break; + default: seen = false; + } break; + + /* ComponentOptions */ + case 'ComponentOptions': switch(Rn[3]) { + case 'Toolbar': break; + case 'HideOfficeLogo': break; + case 'SpreadsheetAutoFit': break; + case 'Label': break; + case 'Caption': break; + case 'MaxHeight': break; + case 'MaxWidth': break; + case 'NextSheetNumber': break; + default: seen = false; + } break; + + /* ExcelWorkbook */ + case 'ExcelWorkbook': switch(Rn[3]) { + case 'WindowHeight': break; + case 'WindowWidth': break; + case 'WindowTopX': break; + case 'WindowTopY': break; + case 'TabRatio': break; + case 'ProtectStructure': break; + case 'ProtectWindows': break; + case 'ActiveSheet': break; + case 'DisplayInkNotes': break; + case 'FirstVisibleSheet': break; + case 'SupBook': break; + case 'SheetName': break; + case 'SheetIndex': break; + case 'SheetIndexFirst': break; + case 'SheetIndexLast': break; + case 'Dll': break; + case 'AcceptLabelsInFormulas': break; + case 'DoNotSaveLinkValues': break; + case 'Date1904': break; + case 'Iteration': break; + case 'MaxIterations': break; + case 'MaxChange': break; + case 'Path': break; + case 'Xct': break; + case 'Count': break; + case 'SelectedSheets': break; + case 'Calculation': break; + case 'Uncalced': break; + case 'StartupPrompt': break; + case 'Crn': break; + case 'ExternName': break; + case 'Formula': break; + case 'ColFirst': break; + case 'ColLast': break; + case 'WantAdvise': break; + case 'Boolean': break; + case 'Error': break; + case 'Text': break; + case 'OLE': break; + case 'NoAutoRecover': break; + case 'PublishObjects': break; + case 'DoNotCalculateBeforeSave': break; + case 'Number': break; + case 'RefModeR1C1': break; + case 'EmbedSaveSmartTags': break; + default: seen = false; + } break; + + /* WorkbookOptions */ + case 'WorkbookOptions': switch(Rn[3]) { + case 'OWCVersion': break; + case 'Height': break; + case 'Width': break; + default: seen = false; + } break; + + /* WorksheetOptions */ + case 'WorksheetOptions': switch(Rn[3]) { + case 'Unsynced': break; + case 'Visible': break; + case 'Print': break; + case 'Panes': break; + case 'Scale': break; + case 'Pane': break; + case 'Number': break; + case 'Layout': break; + case 'Header': break; + case 'Footer': break; + case 'PageSetup': break; + case 'PageMargins': break; + case 'Selected': break; + case 'ProtectObjects': break; + case 'EnableSelection': break; + case 'ProtectScenarios': break; + case 'ValidPrinterInfo': break; + case 'HorizontalResolution': break; + case 'VerticalResolution': break; + case 'NumberofCopies': break; + case 'ActiveRow': break; + case 'ActiveCol': break; + case 'ActivePane': break; + case 'TopRowVisible': break; + case 'TopRowBottomPane': break; + case 'LeftColumnVisible': break; + case 'LeftColumnRightPane': break; + case 'FitToPage': break; + case 'RangeSelection': break; + case 'PaperSizeIndex': break; + case 'PageLayoutZoom': break; + case 'PageBreakZoom': break; + case 'FilterOn': break; + case 'DoNotDisplayGridlines': break; + case 'SplitHorizontal': break; + case 'SplitVertical': break; + case 'FreezePanes': break; + case 'FrozenNoSplit': break; + case 'FitWidth': break; + case 'FitHeight': break; + case 'CommentsLayout': break; + case 'Zoom': break; + case 'LeftToRight': break; + case 'Gridlines': break; + case 'AllowSort': break; + case 'AllowFilter': break; + case 'AllowInsertRows': break; + case 'AllowDeleteRows': break; + case 'AllowInsertCols': break; + case 'AllowDeleteCols': break; + case 'AllowInsertHyperlinks': break; + case 'AllowFormatCells': break; + case 'AllowSizeCols': break; + case 'AllowSizeRows': break; + case 'NoSummaryRowsBelowDetail': break; + case 'TabColorIndex': break; + case 'DoNotDisplayHeadings': break; + case 'ShowPageLayoutZoom': break; + case 'NoSummaryColumnsRightDetail': break; + case 'BlackAndWhite': break; + case 'DoNotDisplayZeros': break; + case 'DisplayPageBreak': break; + case 'RowColHeadings': break; + case 'DoNotDisplayOutline': break; + case 'NoOrientation': break; + case 'AllowUsePivotTables': break; + case 'ZeroHeight': break; + case 'ViewableRange': break; + case 'Selection': break; + case 'ProtectContents': break; + default: seen = false; + } break; + + /* PivotTable */ + case 'PivotTable': case 'PivotCache': switch(Rn[3]) { + case 'ImmediateItemsOnDrop': break; + case 'ShowPageMultipleItemLabel': break; + case 'CompactRowIndent': break; + case 'Location': break; + case 'PivotField': break; + case 'Orientation': break; + case 'LayoutForm': break; + case 'LayoutSubtotalLocation': break; + case 'LayoutCompactRow': break; + case 'Position': break; + case 'PivotItem': break; + case 'DataType': break; + case 'DataField': break; + case 'SourceName': break; + case 'ParentField': break; + case 'PTLineItems': break; + case 'PTLineItem': break; + case 'CountOfSameItems': break; + case 'Item': break; + case 'ItemType': break; + case 'PTSource': break; + case 'CacheIndex': break; + case 'ConsolidationReference': break; + case 'FileName': break; + case 'Reference': break; + case 'NoColumnGrand': break; + case 'NoRowGrand': break; + case 'BlankLineAfterItems': break; + case 'Hidden': break; + case 'Subtotal': break; + case 'BaseField': break; + case 'MapChildItems': break; + case 'Function': break; + case 'RefreshOnFileOpen': break; + case 'PrintSetTitles': break; + case 'MergeLabels': break; + case 'DefaultVersion': break; + case 'RefreshName': break; + case 'RefreshDate': break; + case 'RefreshDateCopy': break; + case 'VersionLastRefresh': break; + case 'VersionLastUpdate': break; + case 'VersionUpdateableMin': break; + case 'VersionRefreshableMin': break; + case 'Calculation': break; + default: seen = false; + } break; + + /* PageBreaks */ + case 'PageBreaks': switch(Rn[3]) { + case 'ColBreaks': break; + case 'ColBreak': break; + case 'RowBreaks': break; + case 'RowBreak': break; + case 'ColStart': break; + case 'ColEnd': break; + case 'RowEnd': break; + default: seen = false; + } break; + + /* AutoFilter */ + case 'AutoFilter': switch(Rn[3]) { + case 'AutoFilterColumn': break; + case 'AutoFilterCondition': break; + case 'AutoFilterAnd': break; + case 'AutoFilterOr': break; + default: seen = false; + } break; + + /* QueryTable */ + case 'QueryTable': switch(Rn[3]) { + case 'Id': break; + case 'AutoFormatFont': break; + case 'AutoFormatPattern': break; + case 'QuerySource': break; + case 'QueryType': break; + case 'EnableRedirections': break; + case 'RefreshedInXl9': break; + case 'URLString': break; + case 'HTMLTables': break; + case 'Connection': break; + case 'CommandText': break; + case 'RefreshInfo': break; + case 'NoTitles': break; + case 'NextId': break; + case 'ColumnInfo': break; + case 'OverwriteCells': break; + case 'DoNotPromptForFile': break; + case 'TextWizardSettings': break; + case 'Source': break; + case 'Number': break; + case 'Decimal': break; + case 'ThousandSeparator': break; + case 'TrailingMinusNumbers': break; + case 'FormatSettings': break; + case 'FieldType': break; + case 'Delimiters': break; + case 'Tab': break; + case 'Comma': break; + case 'AutoFormatName': break; + case 'VersionLastEdit': break; + case 'VersionLastRefresh': break; + default: seen = false; + } break; + + /* Sorting */ + case 'Sorting': + /* ConditionalFormatting */ + case 'ConditionalFormatting': + /* DataValidation */ + case 'DataValidation': switch(Rn[3]) { + case 'Range': break; + case 'Type': break; + case 'Min': break; + case 'Max': break; + case 'Sort': break; + case 'Descending': break; + case 'Order': break; + case 'CaseSensitive': break; + case 'Value': break; + case 'ErrorStyle': break; + case 'ErrorMessage': break; + case 'ErrorTitle': break; + case 'CellRangeList': break; + case 'InputMessage': break; + case 'InputTitle': break; + case 'ComboHide': break; + case 'InputHide': break; + case 'Condition': break; + case 'Qualifier': break; + case 'UseBlank': break; + case 'Value1': break; + case 'Value2': break; + case 'Format': break; + default: seen = false; + } break; + + /* MapInfo (schema) */ + case 'MapInfo': case 'Schema': case 'data': switch(Rn[3]) { + case 'Map': break; + case 'Entry': break; + case 'Range': break; + case 'XPath': break; + case 'Field': break; + case 'XSDType': break; + case 'FilterOn': break; + case 'Aggregate': break; + case 'ElementType': break; + case 'AttributeType': break; + /* These are from xsd (XML Schema Definition) */ + case 'schema': + case 'element': + case 'complexType': + case 'datatype': + case 'all': + case 'attribute': + case 'extends': break; + + case 'row': break; + default: seen = false; + } break; + + /* SmartTags (can be anything) */ + case 'SmartTags': break; + + default: seen = false; break; + } + if(seen) break; + /* CustomDocumentProperties */ + if(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + "|" + state.join("|"); + if(state[state.length-1][0]==='CustomDocumentProperties') { + if(Rn[0].substr(-2) === "/>") break; + else if(Rn[1]==="/") xlml_set_custprop(Custprops, Rn, cp, str.slice(pidx, Rn.index)); + else { cp = Rn; pidx = Rn.index + Rn[0].length; } + break; + } + if(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + "|" + state.join("|"); + } + var out = {}; + if(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets; + out.SheetNames = sheetnames; + out.SSF = SSF.get_table(); + out.Props = Props; + out.Custprops = Custprops; + return out; +} + +function parse_xlml(data, opts) { + fix_read_opts(opts=opts||{}); + switch(opts.type||"base64") { + case "base64": return parse_xlml_xml(Base64.decode(data), opts); + case "binary": case "buffer": case "file": return parse_xlml_xml(data, opts); + case "array": return parse_xlml_xml(data.map(_chr).join(""), opts); + } +} + +function write_xlml(wb, opts) { } + +/* [MS-OLEDS] 2.3.8 CompObjStream */ +function parse_compobj(obj) { + var v = {}; + var o = obj.content; + + /* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */ + var l = 28, m; + m = __lpstr(o, l); + l += 4 + __readUInt32LE(o,l); + v.UserType = m; + + /* [MS-OLEDS] 2.3.1 ClipboardFormatOrAnsiString */ + m = __readUInt32LE(o,l); l+= 4; + switch(m) { + case 0x00000000: break; + case 0xffffffff: case 0xfffffffe: l+=4; break; + default: + if(m > 0x190) throw new Error("Unsupported Clipboard: " + m.toString(16)); + l += m; + } + + m = __lpstr(o, l); l += m.length === 0 ? 0 : 5 + m.length; v.Reserved1 = m; + + if((m = __readUInt32LE(o,l)) !== 0x71b2e9f4) return v; + throw "Unsupported Unicode Extension"; +} + +/* 2.4.58 Continue logic */ +function slurp(R, blob, length, opts) { + var l = length; + var bufs = []; + var d = blob.slice(blob.l,blob.l+l); + if(opts && opts.enc && opts.enc.insitu_decrypt) switch(R.n) { + case 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break; + default: + if(d.length === 0) break; + opts.enc.insitu_decrypt(d); + } + bufs.push(d); + blob.l += l; + var next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]); + while(next != null && next.n === 'Continue') { + l = __readUInt16LE(blob,blob.l+2); + bufs.push(blob.slice(blob.l+4,blob.l+4+l)); + blob.l += 4+l; + next = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]); + } + var b = bconcat(bufs); + prep_blob(b, 0); + var ll = 0; b.lens = []; + for(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; } + return R.f(b, b.length, opts); +} + +function safe_format_xf(p, opts, date1904) { + if(!p.XF) return; + try { + var fmtid = p.XF.ifmt||0; + if(p.t === 'e') { p.w = p.w || BErr[p.v]; } + else if(fmtid === 0) { + if(p.t === 'n') { + if((p.v|0) === p.v) p.w = SSF._general_int(p.v); + else p.w = SSF._general_num(p.v); + } + else p.w = SSF._general(p.v); + } + else p.w = SSF.format(fmtid,p.v, {date1904:date1904||false}); + if(opts.cellNF) p.z = SSF._table[fmtid]; + } catch(e) { if(opts.WTF) throw e; } +} + +function make_cell(val, ixfe, t) { + return {v:val, ixfe:ixfe, t:t}; +} + +// 2.3.2 +function parse_workbook(blob, options) { + var wb = {opts:{}}; + var Sheets = {}; + var out = {}; + var Directory = {}; + var found_sheet = false; + var range = {}; + var last_formula = null; + var sst = []; + var cur_sheet = ""; + var Preamble = {}; + var lastcell, last_cell, cc, cmnt, rng, rngC, rngR; + var shared_formulae = {}; + var array_formulae = []; /* TODO: something more clever */ + var temp_val; + var country; + var cell_valid = true; + var XFs = []; /* XF records */ + var palette = []; + var get_rgb = function getrgb(icv) { + if(icv < 8) return XLSIcv[icv]; + if(icv < 64) return palette[icv-8] || XLSIcv[icv]; + return XLSIcv[icv]; + }; + var process_cell_style = function pcs(cell, line) { + var xfd = line.XF.data; + if(!xfd || !xfd.patternType) return; + line.s = {}; + line.s.patternType = xfd.patternType; + var t; + if((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; } + if((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; } + }; + var addcell = function addcell(cell, line, options) { + if(!cell_valid) return; + if(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line); + lastcell = cell; + last_cell = encode_cell(cell); + if(range.s) { + if(cell.r < range.s.r) range.s.r = cell.r; + if(cell.c < range.s.c) range.s.c = cell.c; + } + if(range.e) { + if(cell.r + 1 > range.e.r) range.e.r = cell.r + 1; + if(cell.c + 1 > range.e.c) range.e.c = cell.c + 1; + } + if(options.sheetRows && lastcell.r >= options.sheetRows) cell_valid = false; + else out[last_cell] = line; + }; + var opts = { + enc: false, // encrypted + sbcch: 0, // cch in the preceding SupBook + snames: [], // sheetnames + sharedf: shared_formulae, // shared formulae by address + arrayf: array_formulae, // array formulae array + rrtabid: [], // RRTabId + lastuser: "", // Last User from WriteAccess + biff: 8, // BIFF version + codepage: 0, // CP from CodePage record + winlocked: 0, // fLockWn from WinProtect + wtf: false + }; + if(options.password) opts.password = options.password; + var mergecells = []; + var objects = []; + var supbooks = [[]]; // 1-indexed, will hold extern names + var sbc = 0, sbci = 0, sbcli = 0; + supbooks.SheetNames = opts.snames; + supbooks.sharedf = opts.sharedf; + supbooks.arrayf = opts.arrayf; + var last_Rn = ''; + var file_depth = 0; /* TODO: make a real stack */ + + /* explicit override for some broken writers */ + opts.codepage = 1200; + set_cp(1200); + + while(blob.l < blob.length - 1) { + var s = blob.l; + var RecordType = blob.read_shift(2); + if(RecordType === 0 && last_Rn === 'EOF') break; + var length = (blob.l === blob.length ? 0 : blob.read_shift(2)), y; + var R = XLSRecordEnum[RecordType]; + if(R && R.f) { + if(options.bookSheets) { + if(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break; + } + last_Rn = R.n; + if(R.r === 2 || R.r == 12) { + var rt = blob.read_shift(2); length -= 2; + if(!opts.enc && rt !== RecordType) throw "rt mismatch"; + if(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT + } + //console.error(R,blob.l,length,blob.length); + var val; + if(R.n === 'EOF') val = R.f(blob, length, opts); + else val = slurp(R, blob, length, opts); + var Rn = R.n; + /* BIFF5 overrides */ + if(opts.biff === 5 || opts.biff === 2) switch(Rn) { + case 'Lbl': Rn = 'Label'; break; + } + /* nested switch statements to workaround V8 128 limit */ + switch(Rn) { + /* Workbook Options */ + case 'Date1904': wb.opts.Date1904 = val; break; + case 'WriteProtect': wb.opts.WriteProtect = true; break; + case 'FilePass': + if(!opts.enc) blob.l = 0; + opts.enc = val; + if(opts.WTF) console.error(val); + if(!options.password) throw new Error("File is password-protected"); + if(val.Type !== 0) throw new Error("Encryption scheme unsupported"); + if(!val.valid) throw new Error("Password is incorrect"); + break; + case 'WriteAccess': opts.lastuser = val; break; + case 'FileSharing': break; //TODO + case 'CodePage': + /* overrides based on test cases */ + if(val === 0x5212) val = 1200; + else if(val === 0x8001) val = 1252; + opts.codepage = val; + set_cp(val); + break; + case 'RRTabId': opts.rrtabid = val; break; + case 'WinProtect': opts.winlocked = val; break; + case 'Template': break; // TODO + case 'RefreshAll': wb.opts.RefreshAll = val; break; + case 'BookBool': break; // TODO + case 'UsesELFs': /* if(val) console.error("Unsupported ELFs"); */ break; + case 'MTRSettings': { + if(val[0] && val[1]) throw "Unsupported threads: " + val; + } break; // TODO: actually support threads + case 'CalcCount': wb.opts.CalcCount = val; break; + case 'CalcDelta': wb.opts.CalcDelta = val; break; + case 'CalcIter': wb.opts.CalcIter = val; break; + case 'CalcMode': wb.opts.CalcMode = val; break; + case 'CalcPrecision': wb.opts.CalcPrecision = val; break; + case 'CalcSaveRecalc': wb.opts.CalcSaveRecalc = val; break; + case 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1 + case 'Uncalced': break; + case 'ForceFullCalculation': wb.opts.FullCalc = val; break; + case 'WsBool': break; // TODO + case 'XF': XFs.push(val); break; + case 'ExtSST': break; // TODO + case 'BookExt': break; // TODO + case 'RichTextStream': break; + case 'BkHim': break; + + case 'SupBook': supbooks[++sbc] = [val]; sbci = 0; break; + case 'ExternName': supbooks[sbc][++sbci] = val; break; + case 'Index': break; // TODO + case 'Lbl': supbooks[0][++sbcli] = val; break; + case 'ExternSheet': supbooks[sbc] = supbooks[sbc].concat(val); sbci += val.length; break; + + case 'Protect': out["!protect"] = val; break; /* for sheet or book */ + case 'Password': if(val !== 0 && opts.WTF) console.error("Password verifier: " + val); break; + case 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/ + + case 'BoundSheet8': { + Directory[val.pos] = val; + opts.snames.push(val.name); + } break; + case 'EOF': { + if(--file_depth) break; + if(range.e) { + out["!range"] = range; + if(range.e.r > 0 && range.e.c > 0) { + range.e.r--; range.e.c--; + out["!ref"] = encode_range(range); + range.e.r++; range.e.c++; + } + if(mergecells.length > 0) out["!merges"] = mergecells; + if(objects.length > 0) out["!objects"] = objects; + } + if(cur_sheet === "") Preamble = out; else Sheets[cur_sheet] = out; + out = {}; + } break; + case 'BOF': { + if(opts.biff !== 8); + else if(val.BIFFVer === 0x0500) opts.biff = 5; + else if(val.BIFFVer === 0x0002) opts.biff = 2; + else if(val.BIFFVer === 0x0007) opts.biff = 2; + if(file_depth++) break; + cell_valid = true; + out = {}; + if(opts.biff === 2) { + if(cur_sheet === "") cur_sheet = "Sheet1"; + range = {s:{r:0,c:0},e:{r:0,c:0}}; + } + else cur_sheet = (Directory[s] || {name:""}).name; + mergecells = []; + objects = []; + } break; + case 'Number': case 'BIFF2NUM': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'BoolErr': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'RK': { + temp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + } break; + case 'MulRk': { + for(var j = val.c; j <= val.C; ++j) { + var ixfe = val.rkrec[j-val.c][0]; + temp_val= {ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'}; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:j, r:val.r}, temp_val, options); + } + } break; + case 'Formula': { + switch(val.val) { + case 'String': last_formula = val; break; + case 'Array Formula': throw "Array Formula unsupported"; + default: + temp_val = {v:val.val, ixfe:val.cell.ixfe, t:val.tt}; + temp_val.XF = XFs[temp_val.ixfe]; + if(options.cellFormula) temp_val.f = "="+stringify_formula(val.formula,range,val.cell,supbooks, opts); + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell(val.cell, temp_val, options); + last_formula = val; + } + } break; + case 'String': { + if(last_formula) { + last_formula.val = val; + temp_val = {v:last_formula.val, ixfe:last_formula.cell.ixfe, t:'s'}; + temp_val.XF = XFs[temp_val.ixfe]; + if(options.cellFormula) temp_val.f = "="+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts); + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell(last_formula.cell, temp_val, options); + last_formula = null; + } + } break; + case 'Array': { + array_formulae.push(val); + } break; + case 'ShrFmla': { + if(!cell_valid) break; + //if(options.cellFormula) out[last_cell].f = stringify_formula(val[0], range, lastcell, supbooks, opts); + /* TODO: capture range */ + shared_formulae[encode_cell(last_formula.cell)]= val[0]; + } break; + case 'LabelSst': + //temp_val={v:sst[val.isst].t, ixfe:val.ixfe, t:'s'}; + temp_val=make_cell(sst[val.isst].t, val.ixfe, 's'); + temp_val.XF = XFs[temp_val.ixfe]; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + break; + case 'Label': case 'BIFF2STR': + /* Some writers erroneously write Label */ + temp_val=make_cell(val.val, val.ixfe, 's'); + temp_val.XF = XFs[temp_val.ixfe]; + if(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904); + addcell({c:val.c, r:val.r}, temp_val, options); + break; + case 'Dimensions': { + if(file_depth === 1) range = val; /* TODO: stack */ + } break; + case 'SST': { + sst = val; + } break; + case 'Format': { /* val = [id, fmt] */ + SSF.load(val[1], val[0]); + } break; + + case 'MergeCells': mergecells = mergecells.concat(val); break; + + case 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break; + case 'TxO': opts.lastobj.TxO = val; break; + + case 'HLink': { + for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR) + for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) + if(out[encode_cell({c:rngC,r:rngR})]) + out[encode_cell({c:rngC,r:rngR})].l = val[1]; + } break; + case 'HLinkTooltip': { + for(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR) + for(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC) + if(out[encode_cell({c:rngC,r:rngR})]) + out[encode_cell({c:rngC,r:rngR})].l.tooltip = val[1]; + } break; + + /* Comments */ + case 'Note': { + if(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */ + cc = out[encode_cell(val[0])]; + var noteobj = objects[val[2]]; + if(!cc) break; + if(!cc.c) cc.c = []; + cmnt = {a:val[1],t:noteobj.TxO.t}; + cc.c.push(cmnt); + } break; + + default: switch(R.n) { /* nested */ + case 'ClrtClient': break; + case 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break; + + case 'NameCmt': break; + case 'Header': break; // TODO + case 'Footer': break; // TODO + case 'HCenter': break; // TODO + case 'VCenter': break; // TODO + case 'Pls': break; // TODO + case 'Setup': break; // TODO + case 'DefColWidth': break; // TODO + case 'GCW': break; + case 'LHRecord': break; + case 'ColInfo': break; // TODO + case 'Row': break; // TODO + case 'DBCell': break; // TODO + case 'MulBlank': break; // TODO + case 'EntExU2': break; // TODO + case 'SxView': break; // TODO + case 'Sxvd': break; // TODO + case 'SXVI': break; // TODO + case 'SXVDEx': break; // TODO + case 'SxIvd': break; // TODO + case 'SXDI': break; // TODO + case 'SXLI': break; // TODO + case 'SXEx': break; // TODO + case 'QsiSXTag': break; // TODO + case 'Selection': break; + case 'Feat': break; + case 'FeatHdr': case 'FeatHdr11': break; + case 'Feature11': case 'Feature12': case 'List12': break; + case 'Blank': break; + case 'Country': country = val; break; + case 'RecalcId': break; + case 'DefaultRowHeight': case 'DxGCol': break; // TODO: htmlify + case 'Fbi': case 'Fbi2': case 'GelFrame': break; + case 'Font': break; // TODO + case 'XFCRC': break; // TODO + case 'Style': break; // TODO + case 'StyleExt': break; // TODO + case 'Palette': palette = val; break; // TODO + case 'Theme': break; // TODO + /* Protection */ + case 'ScenarioProtect': break; + case 'ObjProtect': break; + + /* Conditional Formatting */ + case 'CondFmt12': break; + + /* Table */ + case 'Table': break; // TODO + case 'TableStyles': break; // TODO + case 'TableStyle': break; // TODO + case 'TableStyleElement': break; // TODO + + /* PivotTable */ + case 'SXStreamID': break; // TODO + case 'SXVS': break; // TODO + case 'DConRef': break; // TODO + case 'SXAddl': break; // TODO + case 'DConBin': break; // TODO + case 'DConName': break; // TODO + case 'SXPI': break; // TODO + case 'SxFormat': break; // TODO + case 'SxSelect': break; // TODO + case 'SxRule': break; // TODO + case 'SxFilt': break; // TODO + case 'SxItm': break; // TODO + case 'SxDXF': break; // TODO + + /* Scenario Manager */ + case 'ScenMan': break; + + /* Data Consolidation */ + case 'DCon': break; + + /* Watched Cell */ + case 'CellWatch': break; + + /* Print Settings */ + case 'PrintRowCol': break; + case 'PrintGrid': break; + case 'PrintSize': break; + + case 'XCT': break; + case 'CRN': break; + + case 'Scl': { + //console.log("Zoom Level:", val[0]/val[1],val); + } break; + case 'SheetExt': { + + } break; + case 'SheetExtOptional': { + + } break; + + /* VBA */ + case 'ObNoMacros': { + + } break; + case 'ObProj': { + + } break; + case 'CodeName': { + + } break; + case 'GUIDTypeLib': { + + } break; + + case 'WOpt': break; // TODO: WTF? + case 'PhoneticInfo': break; + + case 'OleObjectSize': break; + + /* Differential Formatting */ + case 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break; + + /* Data Validation */ + case 'Dv': case 'DVal': break; + + /* Data Series */ + case 'BRAI': case 'Series': case 'SeriesText': break; + + /* Data Connection */ + case 'DConn': break; + case 'DbOrParamQry': break; + case 'DBQueryExt': break; + + /* Formatting */ + case 'IFmtRecord': break; + case 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break; + + /* Explicitly Ignored */ + case 'Excel9File': break; + case 'Units': break; + case 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': case 'BuiltInFnGroupCount': + /* View Stuff */ + case 'Window1': case 'Window2': case 'HideObj': case 'GridSet': case 'Guts': + case 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd': + case 'Pane': break; + default: switch(R.n) { /* nested */ + /* Chart */ + case 'Dat': + case 'Begin': case 'End': + case 'StartBlock': case 'EndBlock': + case 'Frame': case 'Area': + case 'Axis': case 'AxisLine': case 'Tick': break; + case 'AxesUsed': + case 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break; + case 'LineFormat': case 'AreaFormat': + case 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break; + case 'PlotArea': case 'PlotGrowth': break; + case 'SeriesList': case 'SerParent': case 'SerAuxTrend': break; + case 'DataFormat': case 'SerToCrt': case 'FontX': break; + case 'CatSerRange': case 'AxcExt': case 'SerFmt': break; + case 'ShtProps': break; + case 'DefaultText': case 'Text': case 'CatLab': break; + case 'DataLabExtContents': break; + case 'Legend': case 'LegendException': break; + case 'Pie': case 'Scatter': break; + case 'PieFormat': case 'MarkerFormat': break; + case 'StartObject': case 'EndObject': break; + case 'AlRuns': case 'ObjectLink': break; + case 'SIIndex': break; + case 'AttachedLabel': case 'YMult': break; + + /* Chart Group */ + case 'Line': case 'Bar': break; + case 'Surf': break; + + /* Axis Group */ + case 'AxisParent': break; + case 'Pos': break; + case 'ValueRange': break; + + /* Pivot Chart */ + case 'SXViewEx9': break; // TODO + case 'SXViewLink': break; + case 'PivotChartBits': break; + case 'SBaseRef': break; + case 'TextPropsStream': break; + + /* Chart Misc */ + case 'LnExt': break; + case 'MkrExt': break; + case 'CrtCoopt': break; + + /* Query Table */ + case 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break; + case 'TxtQry': break; + + /* Filter */ + case 'FilterMode': break; + case 'AutoFilter': case 'AutoFilterInfo': break; + case 'AutoFilter12': break; + case 'DropDownObjIds': break; + case 'Sort': break; + case 'SortData': break; + + /* Drawing */ + case 'ShapePropsStream': break; + case 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break; + case 'ImData': break; + /* Pub Stuff */ + case 'WebPub': case 'AutoWebPub': + + /* Print Stuff */ + case 'RightMargin': case 'LeftMargin': case 'TopMargin': case 'BottomMargin': + case 'HeaderFooter': case 'HFPicture': case 'PLV': + case 'HorizontalPageBreaks': case 'VerticalPageBreaks': + /* Behavioral */ + case 'Backup': case 'CompressPictures': case 'Compat12': break; + + /* Should not Happen */ + case 'Continue': case 'ContinueFrt12': break; + + /* Future Records */ + case 'FrtFontList': case 'FrtWrapper': break; + + /* BIFF5 records */ + case 'ExternCount': break; + case 'RString': break; + case 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break; + + default: switch(R.n) { /* nested */ + /* Miscellaneous */ + case 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt': + case 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData': + case 'Name': break; + default: if(options.WTF) throw 'Unrecognized Record ' + R.n; + }}}} + } else blob.l += length; + } + var sheetnamesraw = opts.biff === 2 ? ['Sheet1'] : Object.keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;}); + var sheetnames = sheetnamesraw.slice(); + wb.Directory=sheetnamesraw; + wb.SheetNames=sheetnamesraw; + if(!options.bookSheets) wb.Sheets=Sheets; + wb.Preamble=Preamble; + wb.Strings = sst; + wb.SSF = SSF.get_table(); + if(opts.enc) wb.Encryption = opts.enc; + wb.Metadata = {}; + if(country !== undefined) wb.Metadata.Country = country; + return wb; +} + +function parse_xlscfb(cfb, options) { +if(!options) options = {}; +fix_read_opts(options); +reset_cp(); +var CompObj, Summary, Workbook; +if(cfb.find) { + CompObj = cfb.find('!CompObj'); + Summary = cfb.find('!SummaryInformation'); + Workbook = cfb.find('/Workbook'); +} else { + prep_blob(cfb, 0); + Workbook = {content: cfb}; +} + +if(!Workbook) Workbook = cfb.find('/Book'); +var CompObjP, SummaryP, WorkbookP; + +if(CompObj) CompObjP = parse_compobj(CompObj); +if(options.bookProps && !options.bookSheets) WorkbookP = {}; +else { + if(Workbook) WorkbookP = parse_workbook(Workbook.content, options, !!Workbook.find); + else throw new Error("Cannot find Workbook stream"); +} + +if(cfb.find) parse_props(cfb); + +var props = {}; +for(var y in cfb.Summary) props[y] = cfb.Summary[y]; +for(y in cfb.DocSummary) props[y] = cfb.DocSummary[y]; +WorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */ +if(options.bookFiles) WorkbookP.cfb = cfb; +WorkbookP.CompObjP = CompObjP; +return WorkbookP; +} + +/* TODO: WTF */ +function parse_props(cfb) { + /* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */ + var DSI = cfb.find('!DocumentSummaryInformation'); + if(DSI) try { cfb.DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI); } catch(e) {} + + /* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/ + var SI = cfb.find('!SummaryInformation'); + if(SI) try { cfb.Summary = parse_PropertySetStream(SI, SummaryPIDSI); } catch(e) {} +} + /* [MS-XLSB] 2.3 Record Enumeration */ -var RecordEnum = { +var XLSBRecordEnum = { 0x0000: { n:"BrtRowHdr", f:parse_BrtRowHdr }, 0x0001: { n:"BrtCellBlank", f:parse_BrtCellBlank }, 0x0002: { n:"BrtCellRk", f:parse_BrtCellRk }, @@ -4868,7 +10674,412 @@ var RecordEnum = { 0xFFFF: { n:"", f:parsenoop } }; -var evert_RE = evert_key(RecordEnum, 'n'); +var evert_RE = evert_key(XLSBRecordEnum, 'n'); + +/* [MS-XLS] 2.3 Record Enumeration */ +var XLSRecordEnum = { + 0x0003: { n:"BIFF2NUM", f:parse_BIFF2NUM }, + 0x0004: { n:"BIFF2STR", f:parse_BIFF2STR }, + 0x0006: { n:"Formula", f:parse_Formula }, + 0x0009: { n:'BOF', f:parse_BOF }, + 0x000a: { n:'EOF', f:parse_EOF }, + 0x000c: { n:"CalcCount", f:parse_CalcCount }, + 0x000d: { n:"CalcMode", f:parse_CalcMode }, + 0x000e: { n:"CalcPrecision", f:parse_CalcPrecision }, + 0x000f: { n:"CalcRefMode", f:parse_CalcRefMode }, + 0x0010: { n:"CalcDelta", f:parse_CalcDelta }, + 0x0011: { n:"CalcIter", f:parse_CalcIter }, + 0x0012: { n:"Protect", f:parse_Protect }, + 0x0013: { n:"Password", f:parse_Password }, + 0x0014: { n:"Header", f:parse_Header }, + 0x0015: { n:"Footer", f:parse_Footer }, + 0x0017: { n:"ExternSheet", f:parse_ExternSheet }, + 0x0018: { n:"Lbl", f:parse_Lbl }, + 0x0019: { n:"WinProtect", f:parse_WinProtect }, + 0x001a: { n:"VerticalPageBreaks", f:parse_VerticalPageBreaks }, + 0x001b: { n:"HorizontalPageBreaks", f:parse_HorizontalPageBreaks }, + 0x001c: { n:"Note", f:parse_Note }, + 0x001d: { n:"Selection", f:parse_Selection }, + 0x0022: { n:"Date1904", f:parse_Date1904 }, + 0x0023: { n:"ExternName", f:parse_ExternName }, + 0x0026: { n:"LeftMargin", f:parse_LeftMargin }, + 0x0027: { n:"RightMargin", f:parse_RightMargin }, + 0x0028: { n:"TopMargin", f:parse_TopMargin }, + 0x0029: { n:"BottomMargin", f:parse_BottomMargin }, + 0x002a: { n:"PrintRowCol", f:parse_PrintRowCol }, + 0x002b: { n:"PrintGrid", f:parse_PrintGrid }, + 0x002f: { n:"FilePass", f:parse_FilePass }, + 0x0031: { n:"Font", f:parse_Font }, + 0x0033: { n:"PrintSize", f:parse_PrintSize }, + 0x003c: { n:"Continue", f:parse_Continue }, + 0x003d: { n:"Window1", f:parse_Window1 }, + 0x0040: { n:"Backup", f:parse_Backup }, + 0x0041: { n:"Pane", f:parse_Pane }, + 0x0042: { n:'CodePage', f:parse_CodePage }, + 0x004d: { n:"Pls", f:parse_Pls }, + 0x0050: { n:"DCon", f:parse_DCon }, + 0x0051: { n:"DConRef", f:parse_DConRef }, + 0x0052: { n:"DConName", f:parse_DConName }, + 0x0055: { n:"DefColWidth", f:parse_DefColWidth }, + 0x0059: { n:"XCT", f:parse_XCT }, + 0x005a: { n:"CRN", f:parse_CRN }, + 0x005b: { n:"FileSharing", f:parse_FileSharing }, + 0x005c: { n:'WriteAccess', f:parse_WriteAccess }, + 0x005d: { n:"Obj", f:parse_Obj }, + 0x005e: { n:"Uncalced", f:parse_Uncalced }, + 0x005f: { n:"CalcSaveRecalc", f:parse_CalcSaveRecalc }, + 0x0060: { n:"Template", f:parse_Template }, + 0x0061: { n:"Intl", f:parse_Intl }, + 0x0063: { n:"ObjProtect", f:parse_ObjProtect }, + 0x007d: { n:"ColInfo", f:parse_ColInfo }, + 0x0080: { n:"Guts", f:parse_Guts }, + 0x0081: { n:"WsBool", f:parse_WsBool }, + 0x0082: { n:"GridSet", f:parse_GridSet }, + 0x0083: { n:"HCenter", f:parse_HCenter }, + 0x0084: { n:"VCenter", f:parse_VCenter }, + 0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 }, + 0x0086: { n:"WriteProtect", f:parse_WriteProtect }, + 0x008c: { n:"Country", f:parse_Country }, + 0x008d: { n:"HideObj", f:parse_HideObj }, + 0x0090: { n:"Sort", f:parse_Sort }, + 0x0092: { n:"Palette", f:parse_Palette }, + 0x0097: { n:"Sync", f:parse_Sync }, + 0x0098: { n:"LPr", f:parse_LPr }, + 0x0099: { n:"DxGCol", f:parse_DxGCol }, + 0x009a: { n:"FnGroupName", f:parse_FnGroupName }, + 0x009b: { n:"FilterMode", f:parse_FilterMode }, + 0x009c: { n:"BuiltInFnGroupCount", f:parse_BuiltInFnGroupCount }, + 0x009d: { n:"AutoFilterInfo", f:parse_AutoFilterInfo }, + 0x009e: { n:"AutoFilter", f:parse_AutoFilter }, + 0x00a0: { n:"Scl", f:parse_Scl }, + 0x00a1: { n:"Setup", f:parse_Setup }, + 0x00ae: { n:"ScenMan", f:parse_ScenMan }, + 0x00af: { n:"SCENARIO", f:parse_SCENARIO }, + 0x00b0: { n:"SxView", f:parse_SxView }, + 0x00b1: { n:"Sxvd", f:parse_Sxvd }, + 0x00b2: { n:"SXVI", f:parse_SXVI }, + 0x00b4: { n:"SxIvd", f:parse_SxIvd }, + 0x00b5: { n:"SXLI", f:parse_SXLI }, + 0x00b6: { n:"SXPI", f:parse_SXPI }, + 0x00b8: { n:"DocRoute", f:parse_DocRoute }, + 0x00b9: { n:"RecipName", f:parse_RecipName }, + 0x00bd: { n:"MulRk", f:parse_MulRk }, + 0x00be: { n:"MulBlank", f:parse_MulBlank }, + 0x00c1: { n:'Mms', f:parse_Mms }, + 0x00c5: { n:"SXDI", f:parse_SXDI }, + 0x00c6: { n:"SXDB", f:parse_SXDB }, + 0x00c7: { n:"SXFDB", f:parse_SXFDB }, + 0x00c8: { n:"SXDBB", f:parse_SXDBB }, + 0x00c9: { n:"SXNum", f:parse_SXNum }, + 0x00ca: { n:"SxBool", f:parse_SxBool }, + 0x00cb: { n:"SxErr", f:parse_SxErr }, + 0x00cc: { n:"SXInt", f:parse_SXInt }, + 0x00cd: { n:"SXString", f:parse_SXString }, + 0x00ce: { n:"SXDtr", f:parse_SXDtr }, + 0x00cf: { n:"SxNil", f:parse_SxNil }, + 0x00d0: { n:"SXTbl", f:parse_SXTbl }, + 0x00d1: { n:"SXTBRGIITM", f:parse_SXTBRGIITM }, + 0x00d2: { n:"SxTbpg", f:parse_SxTbpg }, + 0x00d3: { n:"ObProj", f:parse_ObProj }, + 0x00d5: { n:"SXStreamID", f:parse_SXStreamID }, + 0x00d7: { n:"DBCell", f:parse_DBCell }, + 0x00d8: { n:"SXRng", f:parse_SXRng }, + 0x00d9: { n:"SxIsxoper", f:parse_SxIsxoper }, + 0x00da: { n:"BookBool", f:parse_BookBool }, + 0x00dc: { n:"DbOrParamQry", f:parse_DbOrParamQry }, + 0x00dd: { n:"ScenarioProtect", f:parse_ScenarioProtect }, + 0x00de: { n:"OleObjectSize", f:parse_OleObjectSize }, + 0x00e0: { n:"XF", f:parse_XF }, + 0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr }, + 0x00e2: { n:'InterfaceEnd', f:parse_InterfaceEnd }, + 0x00e3: { n:"SXVS", f:parse_SXVS }, + 0x00e5: { n:"MergeCells", f:parse_MergeCells }, + 0x00e9: { n:"BkHim", f:parse_BkHim }, + 0x00eb: { n:"MsoDrawingGroup", f:parse_MsoDrawingGroup }, + 0x00ec: { n:"MsoDrawing", f:parse_MsoDrawing }, + 0x00ed: { n:"MsoDrawingSelection", f:parse_MsoDrawingSelection }, + 0x00ef: { n:"PhoneticInfo", f:parse_PhoneticInfo }, + 0x00f0: { n:"SxRule", f:parse_SxRule }, + 0x00f1: { n:"SXEx", f:parse_SXEx }, + 0x00f2: { n:"SxFilt", f:parse_SxFilt }, + 0x00f4: { n:"SxDXF", f:parse_SxDXF }, + 0x00f5: { n:"SxItm", f:parse_SxItm }, + 0x00f6: { n:"SxName", f:parse_SxName }, + 0x00f7: { n:"SxSelect", f:parse_SxSelect }, + 0x00f8: { n:"SXPair", f:parse_SXPair }, + 0x00f9: { n:"SxFmla", f:parse_SxFmla }, + 0x00fb: { n:"SxFormat", f:parse_SxFormat }, + 0x00fc: { n:"SST", f:parse_SST }, + 0x00fd: { n:"LabelSst", f:parse_LabelSst }, + 0x00ff: { n:"ExtSST", f:parse_ExtSST }, + 0x0100: { n:"SXVDEx", f:parse_SXVDEx }, + 0x0103: { n:"SXFormula", f:parse_SXFormula }, + 0x0122: { n:"SXDBEx", f:parse_SXDBEx }, + 0x0137: { n:"RRDInsDel", f:parse_RRDInsDel }, + 0x0138: { n:"RRDHead", f:parse_RRDHead }, + 0x013b: { n:"RRDChgCell", f:parse_RRDChgCell }, + 0x013d: { n:"RRTabId", f:parse_RRTabId }, + 0x013e: { n:"RRDRenSheet", f:parse_RRDRenSheet }, + 0x013f: { n:"RRSort", f:parse_RRSort }, + 0x0140: { n:"RRDMove", f:parse_RRDMove }, + 0x014a: { n:"RRFormat", f:parse_RRFormat }, + 0x014b: { n:"RRAutoFmt", f:parse_RRAutoFmt }, + 0x014d: { n:"RRInsertSh", f:parse_RRInsertSh }, + 0x014e: { n:"RRDMoveBegin", f:parse_RRDMoveBegin }, + 0x014f: { n:"RRDMoveEnd", f:parse_RRDMoveEnd }, + 0x0150: { n:"RRDInsDelBegin", f:parse_RRDInsDelBegin }, + 0x0151: { n:"RRDInsDelEnd", f:parse_RRDInsDelEnd }, + 0x0152: { n:"RRDConflict", f:parse_RRDConflict }, + 0x0153: { n:"RRDDefName", f:parse_RRDDefName }, + 0x0154: { n:"RRDRstEtxp", f:parse_RRDRstEtxp }, + 0x015f: { n:"LRng", f:parse_LRng }, + 0x0160: { n:"UsesELFs", f:parse_UsesELFs }, + 0x0161: { n:"DSF", f:parse_DSF }, + 0x0191: { n:"CUsr", f:parse_CUsr }, + 0x0192: { n:"CbUsr", f:parse_CbUsr }, + 0x0193: { n:"UsrInfo", f:parse_UsrInfo }, + 0x0194: { n:"UsrExcl", f:parse_UsrExcl }, + 0x0195: { n:"FileLock", f:parse_FileLock }, + 0x0196: { n:"RRDInfo", f:parse_RRDInfo }, + 0x0197: { n:"BCUsrs", f:parse_BCUsrs }, + 0x0198: { n:"UsrChk", f:parse_UsrChk }, + 0x01a9: { n:"UserBView", f:parse_UserBView }, + 0x01aa: { n:"UserSViewBegin", f:parse_UserSViewBegin }, + 0x01ab: { n:"UserSViewEnd", f:parse_UserSViewEnd }, + 0x01ac: { n:"RRDUserView", f:parse_RRDUserView }, + 0x01ad: { n:"Qsi", f:parse_Qsi }, + 0x01ae: { n:"SupBook", f:parse_SupBook }, + 0x01af: { n:"Prot4Rev", f:parse_Prot4Rev }, + 0x01b0: { n:"CondFmt", f:parse_CondFmt }, + 0x01b1: { n:"CF", f:parse_CF }, + 0x01b2: { n:"DVal", f:parse_DVal }, + 0x01b5: { n:"DConBin", f:parse_DConBin }, + 0x01b6: { n:"TxO", f:parse_TxO }, + 0x01b7: { n:"RefreshAll", f:parse_RefreshAll }, + 0x01b8: { n:"HLink", f:parse_HLink }, + 0x01b9: { n:"Lel", f:parse_Lel }, + 0x01ba: { n:"CodeName", f:parse_XLSCodeName }, + 0x01bb: { n:"SXFDBType", f:parse_SXFDBType }, + 0x01bc: { n:"Prot4RevPass", f:parse_Prot4RevPass }, + 0x01bd: { n:"ObNoMacros", f:parse_ObNoMacros }, + 0x01be: { n:"Dv", f:parse_Dv }, + 0x01c0: { n:"Excel9File", f:parse_Excel9File }, + 0x01c1: { n:"RecalcId", f:parse_RecalcId, r:2}, + 0x01c2: { n:"EntExU2", f:parse_EntExU2 }, + 0x0200: { n:"Dimensions", f:parse_Dimensions }, + 0x0201: { n:"Blank", f:parse_Blank }, + 0x0203: { n:"Number", f:parse_Number }, + 0x0204: { n:"Label", f:parse_Label }, + 0x0205: { n:"BoolErr", f:parse_BoolErr }, + 0x0207: { n:"String", f:parse_String }, + 0x0208: { n:'Row', f:parse_Row }, + 0x020b: { n:"Index", f:parse_Index }, + 0x0221: { n:"Array", f:parse_Array }, + 0x0225: { n:"DefaultRowHeight", f:parse_DefaultRowHeight }, + 0x0236: { n:"Table", f:parse_Table }, + 0x023e: { n:"Window2", f:parse_Window2 }, + 0x027e: { n:"RK", f:parse_RK }, + 0x0293: { n:"Style", f:parse_Style }, + 0x0418: { n:"BigName", f:parse_BigName }, + 0x041e: { n:"Format", f:parse_Format }, + 0x043c: { n:"ContinueBigName", f:parse_ContinueBigName }, + 0x04bc: { n:"ShrFmla", f:parse_ShrFmla }, + 0x0800: { n:"HLinkTooltip", f:parse_HLinkTooltip }, + 0x0801: { n:"WebPub", f:parse_WebPub }, + 0x0802: { n:"QsiSXTag", f:parse_QsiSXTag }, + 0x0803: { n:"DBQueryExt", f:parse_DBQueryExt }, + 0x0804: { n:"ExtString", f:parse_ExtString }, + 0x0805: { n:"TxtQry", f:parse_TxtQry }, + 0x0806: { n:"Qsir", f:parse_Qsir }, + 0x0807: { n:"Qsif", f:parse_Qsif }, + 0x0808: { n:"RRDTQSIF", f:parse_RRDTQSIF }, + 0x0809: { n:'BOF', f:parse_BOF }, + 0x080a: { n:"OleDbConn", f:parse_OleDbConn }, + 0x080b: { n:"WOpt", f:parse_WOpt }, + 0x080c: { n:"SXViewEx", f:parse_SXViewEx }, + 0x080d: { n:"SXTH", f:parse_SXTH }, + 0x080e: { n:"SXPIEx", f:parse_SXPIEx }, + 0x080f: { n:"SXVDTEx", f:parse_SXVDTEx }, + 0x0810: { n:"SXViewEx9", f:parse_SXViewEx9 }, + 0x0812: { n:"ContinueFrt", f:parse_ContinueFrt }, + 0x0813: { n:"RealTimeData", f:parse_RealTimeData }, + 0x0850: { n:"ChartFrtInfo", f:parse_ChartFrtInfo }, + 0x0851: { n:"FrtWrapper", f:parse_FrtWrapper }, + 0x0852: { n:"StartBlock", f:parse_StartBlock }, + 0x0853: { n:"EndBlock", f:parse_EndBlock }, + 0x0854: { n:"StartObject", f:parse_StartObject }, + 0x0855: { n:"EndObject", f:parse_EndObject }, + 0x0856: { n:"CatLab", f:parse_CatLab }, + 0x0857: { n:"YMult", f:parse_YMult }, + 0x0858: { n:"SXViewLink", f:parse_SXViewLink }, + 0x0859: { n:"PivotChartBits", f:parse_PivotChartBits }, + 0x085a: { n:"FrtFontList", f:parse_FrtFontList }, + 0x0862: { n:"SheetExt", f:parse_SheetExt }, + 0x0863: { n:"BookExt", f:parse_BookExt, r:12}, + 0x0864: { n:"SXAddl", f:parse_SXAddl }, + 0x0865: { n:"CrErr", f:parse_CrErr }, + 0x0866: { n:"HFPicture", f:parse_HFPicture }, + 0x0867: { n:'FeatHdr', f:parse_FeatHdr }, + 0x0868: { n:"Feat", f:parse_Feat }, + 0x086a: { n:"DataLabExt", f:parse_DataLabExt }, + 0x086b: { n:"DataLabExtContents", f:parse_DataLabExtContents }, + 0x086c: { n:"CellWatch", f:parse_CellWatch }, + 0x0871: { n:"FeatHdr11", f:parse_FeatHdr11 }, + 0x0872: { n:"Feature11", f:parse_Feature11 }, + 0x0874: { n:"DropDownObjIds", f:parse_DropDownObjIds }, + 0x0875: { n:"ContinueFrt11", f:parse_ContinueFrt11 }, + 0x0876: { n:"DConn", f:parse_DConn }, + 0x0877: { n:"List12", f:parse_List12 }, + 0x0878: { n:"Feature12", f:parse_Feature12 }, + 0x0879: { n:"CondFmt12", f:parse_CondFmt12 }, + 0x087a: { n:"CF12", f:parse_CF12 }, + 0x087b: { n:"CFEx", f:parse_CFEx }, + 0x087c: { n:"XFCRC", f:parse_XFCRC, r:12 }, + 0x087d: { n:"XFExt", f:parse_XFExt, r:12 }, + 0x087e: { n:"AutoFilter12", f:parse_AutoFilter12 }, + 0x087f: { n:"ContinueFrt12", f:parse_ContinueFrt12 }, + 0x0884: { n:"MDTInfo", f:parse_MDTInfo }, + 0x0885: { n:"MDXStr", f:parse_MDXStr }, + 0x0886: { n:"MDXTuple", f:parse_MDXTuple }, + 0x0887: { n:"MDXSet", f:parse_MDXSet }, + 0x0888: { n:"MDXProp", f:parse_MDXProp }, + 0x0889: { n:"MDXKPI", f:parse_MDXKPI }, + 0x088a: { n:"MDB", f:parse_MDB }, + 0x088b: { n:"PLV", f:parse_PLV }, + 0x088c: { n:"Compat12", f:parse_Compat12, r:12 }, + 0x088d: { n:"DXF", f:parse_DXF }, + 0x088e: { n:"TableStyles", f:parse_TableStyles, r:12 }, + 0x088f: { n:"TableStyle", f:parse_TableStyle }, + 0x0890: { n:"TableStyleElement", f:parse_TableStyleElement }, + 0x0892: { n:"StyleExt", f:parse_StyleExt }, + 0x0893: { n:"NamePublish", f:parse_NamePublish }, + 0x0894: { n:"NameCmt", f:parse_NameCmt }, + 0x0895: { n:"SortData", f:parse_SortData }, + 0x0896: { n:"Theme", f:parse_Theme, r:12 }, + 0x0897: { n:"GUIDTypeLib", f:parse_GUIDTypeLib }, + 0x0898: { n:"FnGrp12", f:parse_FnGrp12 }, + 0x0899: { n:"NameFnGrp12", f:parse_NameFnGrp12 }, + 0x089a: { n:"MTRSettings", f:parse_MTRSettings, r:12 }, + 0x089b: { n:"CompressPictures", f:parse_CompressPictures }, + 0x089c: { n:"HeaderFooter", f:parse_HeaderFooter }, + 0x089d: { n:"CrtLayout12", f:parse_CrtLayout12 }, + 0x089e: { n:"CrtMlFrt", f:parse_CrtMlFrt }, + 0x089f: { n:"CrtMlFrtContinue", f:parse_CrtMlFrtContinue }, + 0x08a3: { n:"ForceFullCalculation", f:parse_ForceFullCalculation }, + 0x08a4: { n:"ShapePropsStream", f:parse_ShapePropsStream }, + 0x08a5: { n:"TextPropsStream", f:parse_TextPropsStream }, + 0x08a6: { n:"RichTextStream", f:parse_RichTextStream }, + 0x08a7: { n:"CrtLayout12A", f:parse_CrtLayout12A }, + 0x1001: { n:"Units", f:parse_Units }, + 0x1002: { n:"Chart", f:parse_Chart }, + 0x1003: { n:"Series", f:parse_Series }, + 0x1006: { n:"DataFormat", f:parse_DataFormat }, + 0x1007: { n:"LineFormat", f:parse_LineFormat }, + 0x1009: { n:"MarkerFormat", f:parse_MarkerFormat }, + 0x100a: { n:"AreaFormat", f:parse_AreaFormat }, + 0x100b: { n:"PieFormat", f:parse_PieFormat }, + 0x100c: { n:"AttachedLabel", f:parse_AttachedLabel }, + 0x100d: { n:"SeriesText", f:parse_SeriesText }, + 0x1014: { n:"ChartFormat", f:parse_ChartFormat }, + 0x1015: { n:"Legend", f:parse_Legend }, + 0x1016: { n:"SeriesList", f:parse_SeriesList }, + 0x1017: { n:"Bar", f:parse_Bar }, + 0x1018: { n:"Line", f:parse_Line }, + 0x1019: { n:"Pie", f:parse_Pie }, + 0x101a: { n:"Area", f:parse_Area }, + 0x101b: { n:"Scatter", f:parse_Scatter }, + 0x101c: { n:"CrtLine", f:parse_CrtLine }, + 0x101d: { n:"Axis", f:parse_Axis }, + 0x101e: { n:"Tick", f:parse_Tick }, + 0x101f: { n:"ValueRange", f:parse_ValueRange }, + 0x1020: { n:"CatSerRange", f:parse_CatSerRange }, + 0x1021: { n:"AxisLine", f:parse_AxisLine }, + 0x1022: { n:"CrtLink", f:parse_CrtLink }, + 0x1024: { n:"DefaultText", f:parse_DefaultText }, + 0x1025: { n:"Text", f:parse_Text }, + 0x1026: { n:"FontX", f:parse_FontX }, + 0x1027: { n:"ObjectLink", f:parse_ObjectLink }, + 0x1032: { n:"Frame", f:parse_Frame }, + 0x1033: { n:"Begin", f:parse_Begin }, + 0x1034: { n:"End", f:parse_End }, + 0x1035: { n:"PlotArea", f:parse_PlotArea }, + 0x103a: { n:"Chart3d", f:parse_Chart3d }, + 0x103c: { n:"PicF", f:parse_PicF }, + 0x103d: { n:"DropBar", f:parse_DropBar }, + 0x103e: { n:"Radar", f:parse_Radar }, + 0x103f: { n:"Surf", f:parse_Surf }, + 0x1040: { n:"RadarArea", f:parse_RadarArea }, + 0x1041: { n:"AxisParent", f:parse_AxisParent }, + 0x1043: { n:"LegendException", f:parse_LegendException }, + 0x1044: { n:"ShtProps", f:parse_ShtProps }, + 0x1045: { n:"SerToCrt", f:parse_SerToCrt }, + 0x1046: { n:"AxesUsed", f:parse_AxesUsed }, + 0x1048: { n:"SBaseRef", f:parse_SBaseRef }, + 0x104a: { n:"SerParent", f:parse_SerParent }, + 0x104b: { n:"SerAuxTrend", f:parse_SerAuxTrend }, + 0x104e: { n:"IFmtRecord", f:parse_IFmtRecord }, + 0x104f: { n:"Pos", f:parse_Pos }, + 0x1050: { n:"AlRuns", f:parse_AlRuns }, + 0x1051: { n:"BRAI", f:parse_BRAI }, + 0x105b: { n:"SerAuxErrBar", f:parse_SerAuxErrBar }, + 0x105c: { n:"ClrtClient", f:parse_ClrtClient }, + 0x105d: { n:"SerFmt", f:parse_SerFmt }, + 0x105f: { n:"Chart3DBarShape", f:parse_Chart3DBarShape }, + 0x1060: { n:"Fbi", f:parse_Fbi }, + 0x1061: { n:"BopPop", f:parse_BopPop }, + 0x1062: { n:"AxcExt", f:parse_AxcExt }, + 0x1063: { n:"Dat", f:parse_Dat }, + 0x1064: { n:"PlotGrowth", f:parse_PlotGrowth }, + 0x1065: { n:"SIIndex", f:parse_SIIndex }, + 0x1066: { n:"GelFrame", f:parse_GelFrame }, + 0x1067: { n:"BopPopCustom", f:parse_BopPopCustom }, + 0x1068: { n:"Fbi2", f:parse_Fbi2 }, + + /* These are specified in an older version of the spec */ + 0x0016: { n:"ExternCount", f:parsenoop }, + 0x007e: { n:"RK", f:parsenoop }, /* Not necessarily same as 0x027e */ + 0x007f: { n:"ImData", f:parsenoop }, + 0x0087: { n:"Addin", f:parsenoop }, + 0x0088: { n:"Edg", f:parsenoop }, + 0x0089: { n:"Pub", f:parsenoop }, + 0x0091: { n:"Sub", f:parsenoop }, + 0x0094: { n:"LHRecord", f:parsenoop }, + 0x0095: { n:"LHNGraph", f:parsenoop }, + 0x0096: { n:"Sound", f:parsenoop }, + 0x00a9: { n:"CoordList", f:parsenoop }, + 0x00ab: { n:"GCW", f:parsenoop }, + 0x00bc: { n:"ShrFmla", f:parsenoop }, /* Not necessarily same as 0x04bc */ + 0x00c2: { n:"AddMenu", f:parsenoop }, + 0x00c3: { n:"DelMenu", f:parsenoop }, + 0x00d6: { n:"RString", f:parsenoop }, + 0x00df: { n:"UDDesc", f:parsenoop }, + 0x00ea: { n:"TabIdConf", f:parsenoop }, + 0x0162: { n:"XL5Modify", f:parsenoop }, + 0x01a5: { n:"FileSharing2", f:parsenoop }, + 0x0218: { n:"Name", f:parsenoop }, + 0x0223: { n:"ExternName", f:parse_ExternName }, + 0x0231: { n:"Font", f:parsenoop }, + 0x0406: { n:"Formula", f:parse_Formula }, + 0x086d: { n:"FeatInfo", f:parsenoop }, + 0x0873: { n:"FeatInfo11", f:parsenoop }, + 0x0881: { n:"SXAddl12", f:parsenoop }, + 0x08c0: { n:"AutoWebPub", f:parsenoop }, + 0x08c1: { n:"ListObj", f:parsenoop }, + 0x08c2: { n:"ListField", f:parsenoop }, + 0x08c3: { n:"ListDV", f:parsenoop }, + 0x08c4: { n:"ListCondFmt", f:parsenoop }, + 0x08c5: { n:"ListCF", f:parsenoop }, + 0x08c6: { n:"FMQry", f:parsenoop }, + 0x08c7: { n:"FMSQry", f:parsenoop }, + 0x08c8: { n:"PLV", f:parsenoop }, /* supposedly PLV for Excel 11 */ + 0x08c9: { n:"LnExt", f:parsenoop }, + 0x08ca: { n:"MkrExt", f:parsenoop }, + 0x08cb: { n:"CrtCoopt", f:parsenoop }, + + 0x0000: {} +}; + + /* Helper function to call out to ODS parser */ function parse_ods(zip, opts) { if(typeof module !== "undefined" && typeof require !== 'undefined' && typeof ODS === 'undefined') ODS = require('./od' + 's'); @@ -4898,9 +11109,10 @@ var fix_read_opts = fix_opts_func([ ['bookDeps', false], /* parse calculation chains */ ['bookSheets', false], /* only try to get sheet names (no Sheets) */ ['bookProps', false], /* only try to get properties (no Sheets) */ - ['bookFiles', false], /* include raw file structure (keys, files) */ + ['bookFiles', false], /* include raw file structure (keys, files, cfb) */ ['bookVBA', false], /* include vba raw data (vbaraw) */ + ['password',''], /* password */ ['WTF', false] /* WTF mode (throws errors) */ ]); @@ -5144,13 +11356,23 @@ function write_zip(wb, opts) { zip.file('xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels)); return zip; } -function readSync(data, opts) { +function firstbyte(f,o) { + switch((o||{}).type || "base64") { + case 'buffer': return f[0]; + case 'base64': return Base64.decode(f.substr(0,12)).charCodeAt(0); + case 'binary': return f.charCodeAt(0); + case 'array': return f[0]; + default: throw new Error("Unrecognized type " + o.type); + } +} + +function read_zip(data, opts) { var zip, d = data; var o = opts||{}; if(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? "buffer" : "base64"; switch(o.type) { case "base64": zip = new jszip(d, { base64:true }); break; - case "binary": zip = new jszip(d, { base64:false }); break; + case "binary": case "array": zip = new jszip(d, { base64:false }); break; case "buffer": zip = new jszip(d); break; case "file": zip=new jszip(d=_fs.readFileSync(data)); break; default: throw new Error("Unrecognized type " + o.type); @@ -5158,12 +11380,29 @@ function readSync(data, opts) { return parse_zip(zip, o); } +function readSync(data, opts) { + var zip, d = data, isfile = false, n; + var o = opts||{}; + if(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? "buffer" : "base64"; + if(o.type == "file") { isfile = true; o.type = "buffer"; d = _fs.readFileSync(data); } + switch((n = firstbyte(d, o))) { + case 0xD0: + if(isfile) o.type = "file"; + return parse_xlscfb(CFB.read(data, o), o); + case 0x09: return parse_xlscfb(s2a(o.type === 'base64' ? Base64.decode(data) : data), o); + case 0x3C: return parse_xlml(d, o); + case 0x50: + if(isfile) o.type = "file"; + return read_zip(data, opts); + default: throw new Error("Unsupported file " + n); + } +} + function readFileSync(data, opts) { var o = opts||{}; o.type = 'file'; return readSync(data, o); } - -function writeSync(wb, opts) { +function write_zip_type(wb, opts) { var o = opts||{}; var z = write_zip(wb, o); switch(o.type) { @@ -5175,13 +11414,25 @@ function writeSync(wb, opts) { } } +function writeSync(wb, opts) { + var o = opts||{}; + switch(o.bookType) { + case 'xml': return write_xlml(wb, o); + default: return write_zip_type(wb, o); + } +} + function writeFileSync(wb, filename, opts) { var o = opts||{}; o.type = 'file'; o.file = filename; switch(o.file.substr(-5).toLowerCase()) { + case '.xlsx': o.bookType = 'xlsx'; break; case '.xlsm': o.bookType = 'xlsm'; break; case '.xlsb': o.bookType = 'xlsb'; break; - } + default: switch(o.file.substr(-4).toLowerCase()) { + case '.xls': o.bookType = 'xls'; break; + case '.xml': o.bookType = 'xml'; break; + }} return writeSync(wb, o); } @@ -5287,7 +11538,12 @@ function sheet_to_json(sheet, opts){ for (R = r.s.r + offset; R <= r.e.r; ++R) { rr = encode_row(R); isempty = true; - row = header === 1 ? [] : Object.create({ __rowNum__ : R }); + if(header === 1) row = []; + else { + row = {}; + if(Object.defineProperty) Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false}); + else row.__rowNum__ = R; + } for (C = r.s.c; C <= r.e.c; ++C) { val = sheet[cols[C] + rr]; if(val === undefined || val.t === undefined) continue; @@ -5303,7 +11559,7 @@ function sheet_to_json(sheet, opts){ isempty = false; } } - if(isempty === false) out[outi++] = row; + if(isempty === false || header === 1) out[outi++] = row; } out.length = outi; return out; @@ -5383,11 +11639,16 @@ var utils = { sheet_to_formulae: sheet_to_formulae, sheet_to_row_object_array: sheet_to_row_object_array }; -XLSX.parseZip = parse_zip; -XLSX.read = readSync; -XLSX.readFile = readFileSync; +XLSX.parse_xlscfb = parse_xlscfb; +XLSX.parse_zip = parse_zip; +XLSX.read = readSync; //xlsread +XLSX.readFile = readFileSync; //readFile +XLSX.readFileSync = readFileSync; XLSX.write = writeSync; XLSX.writeFile = writeFileSync; +XLSX.writeFileSync = writeFileSync; XLSX.utils = utils; +XLSX.CFB = CFB; XLSX.SSF = SSF; })(typeof exports !== 'undefined' ? exports : XLSX); +var XLS = XLSX; diff --git a/xlsxworker.js b/xlsxworker.js index 2809446..fed4a76 100644 --- a/xlsxworker.js +++ b/xlsxworker.js @@ -1,4 +1,4 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ /* uncomment the next line for encoding support */ //importScripts('dist/cpexcel.js'); importScripts('jszip.js'); diff --git a/xlsxworker1.js b/xlsxworker1.js index 8e1a756..16a2989 100644 --- a/xlsxworker1.js +++ b/xlsxworker1.js @@ -1,4 +1,4 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ /* uncomment the next line for encoding support */ //importScripts('dist/cpexcel.js'); importScripts('jszip.js'); diff --git a/xlsxworker2.js b/xlsxworker2.js index 13ced1b..1681e23 100644 --- a/xlsxworker2.js +++ b/xlsxworker2.js @@ -1,4 +1,4 @@ -/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */ +/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */ /* uncomment the next line for encoding support */ //importScripts('dist/cpexcel.js'); importScripts('jszip.js');