2016-12-31 08:20:45 +00:00
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
2017-03-05 00:56:31 +00:00
! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) { JSZip = e ( ) ; 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 < r . length ; o ++ ) s ( r [ o ] ) ; return s } ( { 1 : [ function ( _dereq _ , module , exports ) { "use strict" ; var _keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=" ; exports . encode = function ( input , utf8 ) { var output = "" ; var chr1 , chr2 , chr3 , enc1 , enc2 , enc3 , enc4 ; var i = 0 ; while ( i < input . length ) { chr1 = input . charCodeAt ( i ++ ) ; chr2 = input . charCodeAt ( i ++ ) ; chr3 = input . charCodeAt ( i ++ ) ; enc1 = chr1 >> 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 < input . length ) { enc1 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; enc2 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; enc3 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; enc4 = _keyStr . indexOf ( input . charAt ( i ++ ) ) ; chr1 = enc1 << 2 | enc2 >> 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 : "\0\0" , 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 , 1
} return res } ; exports . findCompression = function ( compressionMethod ) { for ( var method in compressions ) { if ( ! compressions . hasOwnProperty ( method ) ) { continue } if ( compressions [ method ] . magic === compressionMethod ) { return compressions [ method ] } } return null } ; exports . isRegExp = function ( object ) { return Object . prototype . toString . call ( object ) === "[object RegExp]" } } , { "./compressions" : 3 , "./nodeBuffer" : 11 , "./support" : 17 } ] , 22 : [ function ( _dereq _ , module , exports ) { "use strict" ; var StringReader = _dereq _ ( "./stringReader" ) ; var NodeBufferReader = _dereq _ ( "./nodeBufferReader" ) ; var Uint8ArrayReader = _dereq _ ( "./uint8ArrayReader" ) ; var utils = _dereq _ ( "./utils" ) ; var sig = _dereq _ ( "./signature" ) ; var ZipEntry = _dereq _ ( "./zipEntry" ) ; var support = _dereq _ ( "./support" ) ; var jszipProto = _dereq _ ( "./object" ) ; function ZipEntries ( data , loadOptions ) { this . files = [ ] ; this . loadOptions = loadOptions ; if ( data ) { this . load ( data ) } } ZipEntries . prototype = { checkSignature : function ( expectedSignature ) { var signature = this . reader . readString ( 4 ) ; if ( signature !== expectedSignature ) { throw new Error ( "Corrupted zip or bug : unexpected signature " + "(" + utils . pretty ( signature ) + ", expected " + utils . pretty ( expectedSignature ) + ")" ) } } , readBlockEndOfCentral : function ( ) { this . diskNumber = this . reader . readInt ( 2 ) ; this . diskWithCentralDirStart = this . reader . readInt ( 2 ) ; this . centralDirRecordsOnThisDisk = this . reader . readInt ( 2 ) ; this . centralDirRecords = this . reader . readInt ( 2 ) ; this . centralDirSize = this . reader . readInt ( 4 ) ; this . centralDirOffset = this . reader . readInt ( 4 ) ; this . zipCommentLength = this . reader . readInt ( 2 ) ; this . zipComment = this . reader . readString ( this . zipCommentLength ) ; this . zipComment = jszipProto . utf8decode ( this . zipComment ) } , readBlockZip64EndOfCentral : function ( ) { this . zip64EndOfCentralSize = this . reader . readInt ( 8 ) ; this . versionMadeBy = this . reader . readString ( 2 ) ; this . versionNeeded = this . reader . readInt ( 2 ) ; this . diskNumber = this . reader . readInt ( 4 ) ; this . diskWithCentralDirStart = this . reader . readInt ( 4 ) ; this . centralDirRecordsOnThisDisk = this . reader . readInt ( 8 ) ; this . centralDirRecords = this . reader . readInt ( 8 ) ; this . centralDirSize = this . reader . readInt ( 8 ) ; this . centralDirOffset = this . reader . readInt ( 8 ) ; this . zip64ExtensibleData = { } ; var extraDataSize = this . zip64EndOfCentralSize - 44 , index = 0 , extraFieldId , extraFieldLength , extraFieldValue ; while ( index < extraDataSize ) { extraFieldId = this . reader . readInt ( 2 ) ; extraFieldLength = this . reader . readInt ( 4 ) ; extraFieldValue = this . reader . readString ( extraFieldLength ) ; this . zip64ExtensibleData [ extraFieldId ] = { id : extraFieldId , length : extraFieldLength , value : extraFieldValue } } } , readBlockZip64EndOfCentralLocator : function ( ) { this . diskWithZip64CentralDirStart = this . reader . readInt ( 4 ) ; this . relativeOffsetEndOfZip64CentralDir = this . reader . readInt ( 8 ) ; this . disksCount = this . reader . readInt ( 4 ) ; if ( this . disksCount > 1 ) { throw new Error ( "Multi-volumes zip are not supported" ) } } , readLocalFiles : function ( ) { var i , file ; for ( i = 0 ; i < this . files . length ; i ++ ) { file = this . files [ i ] ; this . reader . setIndex ( file . localHeaderOffset ) ; this . checkSignature ( sig . LOCAL _FILE _HEADER ) ; file . readLocalPart ( this . reader ) ; file . handleUTF8 ( ) } } , readCentralDir : function ( ) { var file ; this . reader . setIndex ( this . centralDirOffset ) ; while ( this . reader . readString ( 4 ) === sig . CENTRAL _FILE _HEADER ) { file = new ZipEntry ( { zip64 : this . zip64 } , this . loadOptions ) ; file . readCentralPart ( this . reader ) ; this . files . push ( file ) } } , readEndOfCentral : function ( ) { var offset = this . reader . lastIndexOfSignature ( sig . CENTRAL _DIRECTORY _END ) ; if ( offset === - 1 ) { throw new Error ( "Corrupted zip : can't find end of central directory" ) } this . reader . setIndex ( offset ) ; this . checkSignature ( sig . CENTRAL _DIRECTORY _END ) ; this . readBlockEndOfCentral ( ) ; if ( this . diskNumber === utils . MAX _VALUE _16BITS || this . diskWithCentralDirStart === utils . MAX _VALUE _16BITS || this . centralDirRecordsOnThisDisk === utils . MAX _VALUE _16BITS || this . centralDirRecords === utils . MAX _VALUE _16BITS || this . centralDirSize === utils . MAX _VALUE _32BITS || this . centralDirOffset === utils . MAX _VALUE _32BITS ) { this . zip64 = true ; offset = this . reader . lastIndexOfSignature ( sig . ZIP64 _CENTRAL _DIRECTORY _LOCATOR ) ; if ( offset === - 1 ) { throw new Error ( "Corrupted zip : can't find the ZIP64 end of central directory locator" ) } this . reader . setIndex ( offset ) ; this . checkSignature ( sig . ZIP64 _CENTRAL _D
2016-12-31 08:20:45 +00:00
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 << s . w _bits ; s . w _mask = s . w _size - 1 ; s . hash _bits = memLevel + 7 ; s . hash _size = 1 << s . hash _bits ; s . hash _mask = s . hash _size - 1 ; s . hash _shift = ~ ~ ( ( s . hash _b
2017-03-20 21:42:12 +00:00
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 < codes ; sym ++ ) { count [ lens [ lens _index + sym ] ] ++ } root = bits ; for ( max = MAXBITS ; max >= 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 ; min < max ; min ++ ) { if ( count [ min ] !== 0 ) { break } } if ( root < min ) { root = min } left = 1 ; for ( len = 1 ; len <= MAXBITS ; len ++ ) { left <<= 1 ; left -= count [ len ] ; if ( left < 0 ) { return - 1 } } if ( left > 0 && ( type === CODES || max !== 1 ) ) { return - 1 } offs [ 1 ] = 0 ; for ( len = 1 ; len < MAXBITS ; len ++ ) { offs [ len + 1 ] = offs [ len ] + count [ len ] } for ( sym = 0 ; sym < codes ; sym ++ ) { if ( lens [ lens _index + sym ] !== 0 ) { work [ offs [ lens [ lens _index + sym ] ] ++ ] = sym } } if ( type === CODES ) { base = extra = work ; end = 19 } else if ( type === LENS ) { base = lbase ; base _index -= 257 ; extra = lext ; extra _index -= 257 ; end = 256 } else { base = dbase ; extra = dext ; end = - 1 } huff = 0 ; sym = 0 ; len = min ; next = table _index ; curr = root ; drop = 0 ; low = - 1 ; used = 1 << root ; mask = used - 1 ; if ( type === LENS && used > ENOUGH _LENS || type === DISTS && used > ENOUGH _DISTS ) { return 1 } var i = 0 ; for ( ; ; ) { i ++ ; here _bits = len - drop ; if ( work [ sym ] < end ) { here _op = 0 ; here _val = work [ sym ] } else 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 << len - drop ; fill = 1 << curr ; min = fill ; do { fill -= incr ; table [ next + ( huff >> drop ) + fill ] = here _bits << 24 | here _op << 16 | here _val | 0 } while ( fill !== 0 ) ; incr = 1 << len - 1 ; while ( huff & incr ) { incr >>= 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 << curr ; while ( curr + drop < max ) { left -= count [ curr + drop ] ; if ( left <= 0 ) { break } curr ++ ; left <<= 1 } used += 1 << curr ; if ( type === LENS && used > 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
if ( r = fmt . match ( dec1 ) ) { 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*)\.(#*)$/ ) ) { return sign + ( "" + aval ) . replace ( /\.(\d*[1-9])0*$/ , ".$1" ) . replace ( /^(-?\d*)$/ , "$1." ) . replace ( /^0\./ , r [ 1 ] . length ? "0." : "." ) } if ( r = fmt . match ( /^#,##0(\.?)$/ ) ) return sign + commaify ( "" + aval ) ; if ( r = fmt . match ( /^#,##0\.([#0]*0)$/ ) ) { return val < 0 ? "-" + write _num _int ( type , fmt , - val ) : commaify ( "" + val ) + "." + fill ( "0" , r [ 1 ] . length ) } if ( r = fmt . match ( /^#,#*,#0/ ) ) return write _num _int ( type , fmt . replace ( /^#,#*,/ , "" ) , val ) ; if ( r = fmt . match ( /^([0#]+)(\\?-([0#]+))+$/ ) ) { 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 < o . length ? o [ ri ++ ] : x === "0" ? "0" : "" } ) ) } if ( fmt . match ( phone ) ) { o = write _num _int ( type , "##########" , val ) ; return "(" + o . substr ( 0 , 3 ) + ") " + o . substr ( 3 , 3 ) + "-" + o . substr ( 6 ) } var oa = "" ; if ( r = fmt . match ( /^([#0?]+)( ?)\/( ?)([#0?]+)/ ) ) { ri = Math . min ( r [ 4 ] . length , 7 ) ; ff = frac ( aval , Math . pow ( 10 , ri ) - 1 , false ) ; o = "" + sign ; oa = write _num ( "n" , r [ 1 ] , ff [ 1 ] ) ; if ( oa [ oa . length - 1 ] == " " ) oa = oa . substr ( 0 , oa . length - 1 ) + "0" ; o += oa + r [ 2 ] + "/" + r [ 3 ] ; oa = rpad _ ( ff [ 2 ] , ri ) ; if ( oa . length < r [ 4 ] . length ) oa = hashq ( r [ 4 ] . substr ( r [ 4 ] . length - oa . length ) ) + oa ; o += oa ; return o } if ( r = fmt . match ( /^# ([#0?]+)( ?)\/( ?)([#0?]+)/ ) ) { ri = Math . min ( Math . max ( r [ 1 ] . length , r [ 4 ] . length ) , 7 ) ; ff = frac ( aval , Math . pow ( 10 , ri ) - 1 , true ) ; return sign + ( ff [ 0 ] || ( ff [ 1 ] ? "" : "0" ) ) + " " + ( ff [ 1 ] ? pad _ ( ff [ 1 ] , ri ) + r [ 2 ] + "/" + r [ 3 ] + rpad _ ( ff [ 2 ] , ri ) : fill ( " " , 2 * ri + 1 + r [ 2 ] . length + r [ 3 ] . length ) ) } if ( r = fmt . match ( /^[#0?]+$/ ) ) { o = "" + val ; if ( fmt . length <= o . length ) return o ; return hashq ( fmt . substr ( 0 , fmt . length - o . length ) ) + o } if ( r = fmt . match ( /^([#0]+)\.([#0]+)$/ ) ) { o = "" + val . toFixed ( Math . min ( r [ 2 ] . length , 10 ) ) . replace ( /([^0])0+$/ , "$1" ) ; ri = o . indexOf ( "." ) ; var lres = fmt . indexOf ( "." ) - ri , rres = fmt . length - o . length - lres ; return hashq ( fmt . substr ( 0 , lres ) + o + fmt . substr ( fmt . length - rres ) ) } if ( r = fmt . match ( /^00,000\.([#0]*0)$/ ) ) { return val < 0 ? "-" + write _num _int ( type , fmt , - val ) : commaify ( "" + val ) . replace ( /^\d,\d{3}$/ , "0$&" ) . replace ( /^\d*$/ , function ( $$ ) { return "00," + ( $$ . length < 3 ? pad0 ( 0 , 3 - $$ . length ) : "" ) + $$ } ) + "." + pad0 ( 0 , r [ 1 ] . length ) } switch ( fmt ) { case "#,###" : var x = commaify ( "" + aval ) ; return x !== "0" ? sign + x : "" ; default : } throw new Error ( "unsupported format |" + fmt + "|" ) } return function write _num ( type , fmt , val ) { return ( val | 0 ) === val ? write _num _int ( type , fmt , val ) : write _num _flt ( type , fmt , val ) } } ( ) ; function split _fmt ( fmt ) { var out = [ ] ; var in _str = false , cc ; for ( var i = 0 , j = 0 ; i < fmt . length ; ++ i ) switch ( cc = fmt . charCodeAt ( i ) ) { case 34 : in _str = ! in _str ; break ; case 95 : case 42 : case 92 : ++ i ; break ; case 59 : out [ out . length ] = fmt . substr ( j , i - j ) ; j = i + 1 } out [ out . length ] = fmt . substr ( j ) ; if ( in _str === true ) throw new Error ( "Format |" + fmt + "| unterminated string " ) ; return out } SSF . _split = split _fmt ; var abstime = /\[[HhMmSs]*\]/ ; function eval _fmt ( fmt , v , opts , flen ) { var out = [ ] , o = "" , i = 0 , c = "" , lst = "t" , q , dt , j , cc ; var hr = "H" ; while ( i < fmt . length ) { switch ( c = fmt . charAt ( i ) ) { case "G" : if ( ! isgeneral ( fmt , i ) ) throw new Error ( "unrecognized character " + c + " in " + fmt ) ; out [ out . length ] = { t : "G" , v : "General" } ; i += 7 ; break ; case '"' : for ( o = "" ; ( cc = fmt . charCodeAt ( ++ i ) ) !== 34 && i < fmt . length ; ) o += String . fromCharCode ( cc ) ; out [ out . length ] = { t : "t" , v : o } ; ++ i ; break ; case "\\" : var w = fmt [ ++ i ] , t = w === "(" || w === ")" ? w : "t" ; out [ out . length ] = { t : t , v : w } ; ++ i ; break ; case "_" : out [ out . length ] = { t : "t" , v : " " } ; i += 2 ; break ; case "@" : out [ out . length ] = { t : "T" , v : v } ; ++ i ; break ; case "B" : case "b" : if ( fmt [ i + 1 ] === "1" || fmt [ i + 1 ] === "2" ) { if ( dt == null ) { dt = parse _date _code ( v , opts , fmt [ i + 1 ] === "2" ) ; if ( dt == null ) return "" } out [ out . length ] = { t : "X" , v : fmt . substr ( i , 2 ) } ; lst = c ; i += 2 ; break } case "M" : case "D" : case "Y" : case "H" : case "S" : case "E" : c = c . toLowerCase ( ) ; case "m" : case "d" : case "y" : case "h" : case "s" : case "e" : case "g" : if ( v < 0 ) return "" ; if ( dt == null ) { dt = parse _date _code ( v , opts ) ; if ( dt == null ) return "" } o = c ; while ( ++ i < fmt . length && fmt [ i ] . toLowerCase ( ) === c ) o += c ; if ( c === "m" && lst . toLowerCase ( ) === "h" ) c = "M" ; if ( c === "h" ) c = hr ; out [ out . length ] = { t : c , v : o } ; lst = c ; break ; case "A" : q = { t : c , v : "A" } ; if ( dt == null ) dt = parse _date _code ( v , opts ) ; if ( fmt . substr ( i , 3 ) === "A/P" ) { if ( dt != null )
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 "wstr" : if ( typeof cptable !== "undefined" ) o = cptable . utils . decode ( current _codepage , this . slice ( this . l , this . l + 2 * size ) ) ; else return ReadShift . call ( this , size , "dbcs" ) ; size = 2 * 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 ] == "\0" ) 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 ; 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 } var _ _writeUInt16LE = function ( b , val , idx ) { b [ idx ] = val & 255 ; b [ idx + 1 ] = val >>> 8 & 255 } ; var _ _writeUInt32LE = function ( b , val , idx ) { b [ idx ] = val & 255 ; b [ idx + 1 ] = val >>> 8 & 255 ; b [ idx + 2 ] = val >>> 16 & 255 ; b [ idx + 3 ] = val >>> 24 & 255 } ; var _ _writeInt32LE = function ( b , val , idx ) { b [ idx ] = val & 255 ; b [ idx + 1 ] = val >> 8 & 255 ; b [ idx + 2 ] = val >> 16 & 255 ; b [ idx + 3 ] = val >> 24 & 255 } ; function WriteShift ( t , val , f ) { var size = 0 , i = 0 ; if ( f === "dbcs" ) { for ( i = 0 ; i != val . length ; ++ i ) _ _writeUInt16LE ( this , val . charCodeAt ( i ) , this . l + 2 * i ) ; size = 2 * val . length } else if ( f === "sbcs" ) { for ( i = 0 ; i != val . length ; ++ i ) this [ this . l + i ] = val . charCodeAt ( i ) & 255 ; size = val . length } else switch ( t ) { case 1 : size = 1 ; this [ this . l ] = val & 255 ; break ; case 2 : size = 2 ; this [ this . l ] = val & 255 ; val >>>= 8 ; this [ this . l + 1 ] = val & 255 ; break ; case 3 : size = 3 ; this [ this . l ] = val & 255 ; val >>>= 8 ; this [ this . l + 1 ] = val & 255 ; val >>>= 8 ; this [ this . l + 2 ] = val & 255 ; break ; case 4 : size = 4 ; _ _writeUInt32LE ( this , val , this . l ) ; break ; case 8 : size = 8 ; if ( f === "f" ) { write _double _le ( this , val , this . l ) ; break } case 16 : break ; case - 4 : size = 4 ; _ _writeInt32LE ( this , 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 ) { if ( ! data ) return ; var tmpbyte , cntbyte , length ; prep _blob ( data , data . l || 0 ) ; while ( data . l < data . length ) { var RT = data . read _shift ( 1 ) ; if ( RT & 128 ) RT = ( RT & 127 ) + ( ( data . read _shift ( 1 ) & 127 ) << 7 ) ; var R = XLSBRecordEnum [ RT ] || XLSBRecordEnum [ 65535 ] ; tmpbyte = data . read _shift ( 1 ) ; length = tmpbyte & 127 ; for ( cntbyte = 1 ; cntbyte < 4 && tmpbyte & 128 ; ++ cntbyte ) length += ( ( tmpbyte = data . read _shift ( 1 ) ) & 127 ) << 7 * cntbyte ; var d = R . f ( data , length , opts ) ; if ( cb ( d , R , RT ) ) return } } function buf _array ( ) { var bufs = [ ] , blksz = 2048 ; var newblk = function ba _newblk ( sz ) { var o = new _buf ( sz ) ; prep _blob ( o , 0 ) ; return o } ; var curbuf = newblk ( blksz ) ; var endbuf = function ba _endbuf ( ) { if ( ! curbuf ) return ; if ( curbuf . length > curbuf . l ) curbuf = curbuf . slice ( 0 , curbuf . l ) ; if ( cu
t = "dateTime.tz" ; m = m . toISOString ( ) } else m = String ( m ) ; o . push ( writextag ( escapexmltag ( k ) , m , { "dt:dt" : t } ) ) } ) ; return "<" + T + ' xmlns="' + XLMLNS . o + '">' + o . join ( "" ) + "</" + T + ">" } 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 ) + "." + Stri
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 ; function parse _BIFF5String ( blob ) { var len = blob . read _shift ( 1 ) ; return blob . read _shift ( len , "sbcs-cont" ) } function parse _BIFF2STR ( blob , length , opts ) { var cell = parse _XLSCell ( blob , 6 ) ; ++ blob . l ; var str = parse _XLUnicodeString2 ( blob , length - 7 , opts ) ; cell . t = "str" ; 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 . t = "n" ; cell . val = num ; return cell } function parse _BIFF2INT ( blob , length ) { var cell = parse _XLSCell ( blob , 6 ) ; ++ blob . l ; var num = blob . read _shift ( 2 ) ; cell . t = "n" ; cell . val = num ; return cell } function parse _BIFF2STRING ( blob , length ) { var cch = blob . read _shift ( 1 ) ; if ( cch === 0 ) { blob . l ++ ; return "" } return blob . read _shift ( cch , "sbcs-cont" ) } function parse _BIFF2FONTXTRA ( blob , length ) { blob . l += 6 ; blob . l += 2 ; blob . l += 1 ; blob . l += 3 ; blob . l += 1 ; blob . l += length - 9 } function parse _RString ( blob , length , opts ) { var end = blob . l + length ; var cell = parse _XLSCell ( blob , 6 ) ; var cch = blob . read _shift ( 2 ) ; var str = parse _XLUnicodeStringNoCch ( blob , cch , opts ) ; blob . l = end ; cell . t = "str" ; cell . val = str ; return cell } 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 = /<(?:\w+:)?r>/g , rend = /<\/(?:\w+:)?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 "<condense" : break ; case "<extend" : break ; case "<shadow" : case "<shadow>" : case "<shadow/>" : break ; case "<charset" : if ( y . val == "1" ) break ; cp = CS2CP [ parseInt ( y . val , 10 ) ] ; break ; case "<outline" : case "<outline>" : case "<outline/>" : break ; case "<rFont" : font . name = y . val ; break ; case "<sz" : font . sz = y . val ; break ; case "<strike" : if ( ! y . val ) break ; case "<strike>" : case "<strike/>" : font . strike = 1 ; break ; case "</strike>" : break ; case "<u" : if ( y . val == "0" ) break ; case "<u>" : case "<u/>" : font . u = 1 ; break ; case "</u>" : break ; case "<b" : if ( y . val == "0" ) break ; case "<b>" : case "<b/>" : font . b = 1 ; break ; case "</b>" : break ; case "<i" : if ( y . val == "0" ) break ; case "<i>" : case "<i/>" : font . i = 1 ; break ; case "</i>" : break ; case "<color" : if ( y . rgb ) font . color = y . rgb . substr ( 2 , 6 ) ; break ; case "<family" : font . family = y . val ; break ; case "<vertAlign" : break ; case "<scheme" : break ; default : if ( y [ 0 ] . charCodeAt ( 1 ) !== 47 ) throw "Unrecognized rich format " + y [ 0 ] } } var style = [ ] ; if ( font . b ) style . push ( "font-weight: bold;" ) ; if ( font . i ) style . push ( "font-style: italic;" ) ; intro . push ( '<span style="' + style . join ( "" ) + '">' ) ; outro . push ( "</span>" ) ; 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 , "<br/>" ) + terms [ 2 ] . join ( "" ) } return function parse _rs ( rs ) { return rs . replace ( rregex , "" ) . split ( rend ) . map ( parse _r ) . join ( "" ) } } ( ) ; var sitregex = / < ( ? : \ w + : )
o [ o . length ] = '<a:font script="Telu" typeface="Gautami"/>' ; o [ o . length ] = '<a:font script="Taml" typeface="Latha"/>' ; o [ o . length ] = '<a:font script="Syrc" typeface="Estrangelo Edessa"/>' ; o [ o . length ] = '<a:font script="Orya" typeface="Kalinga"/>' ; o [ o . length ] = '<a:font script="Mlym" typeface="Kartika"/>' ; o [ o . length ] = '<a:font script="Laoo" typeface="DokChampa"/>' ; o [ o . length ] = '<a:font script="Sinh" typeface="Iskoola Pota"/>' ; o [ o . length ] = '<a:font script="Mong" typeface="Mongolian Baiti"/>' ; o [ o . length ] = '<a:font script="Viet" typeface="Arial"/>' ; o [ o . length ] = '<a:font script="Uigh" typeface="Microsoft Uighur"/>' ; o [ o . length ] = '<a:font script="Geor" typeface="Sylfaen"/>' ; o [ o . length ] = "</a:minorFont>" ; o [ o . length ] = "</a:fontScheme>" ; o [ o . length ] = '<a:fmtScheme name="Office">' ; o [ o . length ] = "<a:fillStyleLst>" ; o [ o . length ] = '<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>' ; o [ o . length ] = '<a:gradFill rotWithShape="1">' ; o [ o . length ] = "<a:gsLst>" ; o [ o . length ] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs>' ; o [ o . length ] = '<a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod val="300000"/></a:schemeClr></a:gs>' ; o [ o . length ] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs>' ; o [ o . length ] = "</a:gsLst>" ; o [ o . length ] = '<a:lin ang="16200000" scaled="1"/>' ; o [ o . length ] = "</a:gradFill>" ; o [ o . length ] = '<a:gradFill rotWithShape="1">' ; o [ o . length ] = "<a:gsLst>" ; o [ o . length ] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="100000"/><a:shade val="100000"/><a:satMod val="130000"/></a:schemeClr></a:gs>' ; o [ o . length ] = '<a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="50000"/><a:shade val="100000"/><a:satMod val="350000"/></a:schemeClr></a:gs>' ; o [ o . length ] = "</a:gsLst>" ; o [ o . length ] = '<a:lin ang="16200000" scaled="0"/>' ; o [ o . length ] = "</a:gradFill>" ; o [ o . length ] = "</a:fillStyleLst>" ; o [ o . length ] = "<a:lnStyleLst>" ; o [ o . length ] = '<a:ln w="9525" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln>' ; o [ o . length ] = '<a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>' ; o [ o . length ] = '<a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln>' ; o [ o . length ] = "</a:lnStyleLst>" ; o [ o . length ] = "<a:effectStyleLst>" ; o [ o . length ] = "<a:effectStyle>" ; o [ o . length ] = "<a:effectLst>" ; o [ o . length ] = '<a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw>' ; o [ o . length ] = "</a:effectLst>" ; o [ o . length ] = "</a:effectStyle>" ; o [ o . length ] = "<a:effectStyle>" ; o [ o . length ] = "<a:effectLst>" ; o [ o . length ] = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw>' ; o [ o . length ] = "</a:effectLst>" ; o [ o . length ] = "</a:effectStyle>" ; o [ o . length ] = "<a:effectStyle>" ; o [ o . length ] = "<a:effectLst>" ; o [ o . length ] = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw>' ; o [ o . length ] = "</a:effectLst>" ; o [ o . length ] = '<a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d>' ; o [ o . length ] = '<a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d>' ; o [ o . length ] = "</a:effectStyle>" ; o [ o . length ] = "</a:effectStyleLst>" ; o [ o . length ] = "<a:bgFillStyleLst>" ; o [ o . length ] = '<a:solidFill><a:schemeClr val="phClr"/></a:solidFill>' ; o [ o . length ] = '<a:gradFill rotWithShape="1">' ; o [ o . length ] = "<a:gsLst>" ; o [ o . length ] = '<a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs>' ; o [ o . length ] = '<a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs>' ; o [ o . length ] = ' < a : gs pos = "100000" > < a : scheme
last _sp = - 1 } } if ( stack . length > 1 && opts . WTF ) throw new Error ( "bad formula stack" ) ; return stack [ 0 ] } function parse _XLSBParsedFormula ( data , length , opts ) { var end = data . l + length ; var cce = data . read _shift ( 4 ) ; var rgce = parse _Rgce ( data , cce , opts ) ; var cb = data . read _shift ( 4 ) ; var rgcb = cb > 0 ? parse _RgbExtra ( data , cb , rgce , opts ) : null ; return [ rgce , rgcb ] } var parse _XLSBArrayParsedFormula = parse _XLSBParsedFormula ; var parse _XLSBCellParsedFormula = parse _XLSBParsedFormula ; var parse _XLSBNameParsedFormula = parse _XLSBParsedFormula ; var parse _XLSBSharedParsedFormula = parse _XLSBParsedFormula ; var PtgDataType = { 1 : "REFERENCE" , 2 : "VALUE" , 3 : "ARRAY" } ; var Cetab = { 0 : "BEEP" , 1 : "OPEN" , 2 : "OPEN.LINKS" , 3 : "CLOSE.ALL" , 4 : "SAVE" , 5 : "SAVE.AS" , 6 : "FILE.DELETE" , 7 : "PAGE.SETUP" , 8 : "PRINT" , 9 : "PRINTER.SETUP" , 10 : "QUIT" , 11 : "NEW.WINDOW" , 12 : "ARRANGE.ALL" , 13 : "WINDOW.SIZE" , 14 : "WINDOW.MOVE" , 15 : "FULL" , 16 : "CLOSE" , 17 : "RUN" , 22 : "SET.PRINT.AREA" , 23 : "SET.PRINT.TITLES" , 24 : "SET.PAGE.BREAK" , 25 : "REMOVE.PAGE.BREAK" , 26 : "FONT" , 27 : "DISPLAY" , 28 : "PROTECT.DOCUMENT" , 29 : "PRECISION" , 30 : "A1.R1C1" , 31 : "CALCULATE.NOW" , 32 : "CALCULATION" , 34 : "DATA.FIND" , 35 : "EXTRACT" , 36 : "DATA.DELETE" , 37 : "SET.DATABASE" , 38 : "SET.CRITERIA" , 39 : "SORT" , 40 : "DATA.SERIES" , 41 : "TABLE" , 42 : "FORMAT.NUMBER" , 43 : "ALIGNMENT" , 44 : "STYLE" , 45 : "BORDER" , 46 : "CELL.PROTECTION" , 47 : "COLUMN.WIDTH" , 48 : "UNDO" , 49 : "CUT" , 50 : "COPY" , 51 : "PASTE" , 52 : "CLEAR" , 53 : "PASTE.SPECIAL" , 54 : "EDIT.DELETE" , 55 : "INSERT" , 56 : "FILL.RIGHT" , 57 : "FILL.DOWN" , 61 : "DEFINE.NAME" , 62 : "CREATE.NAMES" , 63 : "FORMULA.GOTO" , 64 : "FORMULA.FIND" , 65 : "SELECT.LAST.CELL" , 66 : "SHOW.ACTIVE.CELL" , 67 : "GALLERY.AREA" , 68 : "GALLERY.BAR" , 69 : "GALLERY.COLUMN" , 70 : "GALLERY.LINE" , 71 : "GALLERY.PIE" , 72 : "GALLERY.SCATTER" , 73 : "COMBINATION" , 74 : "PREFERRED" , 75 : "ADD.OVERLAY" , 76 : "GRIDLINES" , 77 : "SET.PREFERRED" , 78 : "AXES" , 79 : "LEGEND" , 80 : "ATTACH.TEXT" , 81 : "ADD.ARROW" , 82 : "SELECT.CHART" , 83 : "SELECT.PLOT.AREA" , 84 : "PATTERNS" , 85 : "MAIN.CHART" , 86 : "OVERLAY" , 87 : "SCALE" , 88 : "FORMAT.LEGEND" , 89 : "FORMAT.TEXT" , 90 : "EDIT.REPEAT" , 91 : "PARSE" , 92 : "JUSTIFY" , 93 : "HIDE" , 94 : "UNHIDE" , 95 : "WORKSPACE" , 96 : "FORMULA" , 97 : "FORMULA.FILL" , 98 : "FORMULA.ARRAY" , 99 : "DATA.FIND.NEXT" , 100 : "DATA.FIND.PREV" , 101 : "FORMULA.FIND.NEXT" , 102 : "FORMULA.FIND.PREV" , 103 : "ACTIVATE" , 104 : "ACTIVATE.NEXT" , 105 : "ACTIVATE.PREV" , 106 : "UNLOCKED.NEXT" , 107 : "UNLOCKED.PREV" , 108 : "COPY.PICTURE" , 109 : "SELECT" , 110 : "DELETE.NAME" , 111 : "DELETE.FORMAT" , 112 : "VLINE" , 113 : "HLINE" , 114 : "VPAGE" , 115 : "HPAGE" , 116 : "VSCROLL" , 117 : "HSCROLL" , 118 : "ALERT" , 119 : "NEW" , 120 : "CANCEL.COPY" , 121 : "SHOW.CLIPBOARD" , 122 : "MESSAGE" , 124 : "PASTE.LINK" , 125 : "APP.ACTIVATE" , 126 : "DELETE.ARROW" , 127 : "ROW.HEIGHT" , 128 : "FORMAT.MOVE" , 129 : "FORMAT.SIZE" , 130 : "FORMULA.REPLACE" , 131 : "SEND.KEYS" , 132 : "SELECT.SPECIAL" , 133 : "APPLY.NAMES" , 134 : "REPLACE.FONT" , 135 : "FREEZE.PANES" , 136 : "SHOW.INFO" , 137 : "SPLIT" , 138 : "ON.WINDOW" , 139 : "ON.DATA" , 140 : "DISABLE.INPUT" , 142 : "OUTLINE" , 143 : "LIST.NAMES" , 144 : "FILE.CLOSE" , 145 : "SAVE.WORKBOOK" , 146 : "DATA.FORM" , 147 : "COPY.CHART" , 148 : "ON.TIME" , 149 : "WAIT" , 150 : "FORMAT.FONT" , 151 : "FILL.UP" , 152 : "FILL.LEFT" , 153 : "DELETE.OVERLAY" , 155 : "SHORT.MENUS" , 159 : "SET.UPDATE.STATUS" , 161 : "COLOR.PALETTE" , 162 : "DELETE.STYLE" , 163 : "WINDOW.RESTORE" , 164 : "WINDOW.MAXIMIZE" , 166 : "CHANGE.LINK" , 167 : "CALCULATE.DOCUMENT" , 168 : "ON.KEY" , 169 : "APP.RESTORE" , 170 : "APP.MOVE" , 171 : "APP.SIZE" , 172 : "APP.MINIMIZE" , 173 : "APP.MAXIMIZE" , 174 : "BRING.TO.FRONT" , 175 : "SEND.TO.BACK" , 185 : "MAIN.CHART.TYPE" , 186 : "OVERLAY.CHART.TYPE" , 187 : "SELECT.END" , 188 : "OPEN.MAIL" , 189 : "SEND.MAIL" , 190 : "STANDARD.FONT" , 191 : "CONSOLIDATE" , 192 : "SORT.SPECIAL" , 193 : "GALLERY.3D.AREA" , 194 : "GALLERY.3D.COLUMN" , 195 : "GALLERY.3D.LINE" , 196 : "GALLERY.3D.PIE" , 197 : "VIEW.3D" , 198 : "GOAL.SEEK" , 199 : "WORKGROUP" , 200 : "FILL.GROUP" , 201 : "UPDATE.LINK" , 202 : "PROMOTE" , 203 : "DEMOTE" , 204 : "SHOW.DETAIL" , 206 : "UNGROUP" , 207 : "OBJECT.PROPERTIES" , 208 : "SAVE.NEW.OBJECT" , 209 : "SHARE" , 210 : "SHARE.NAME" , 211 : "DUPLICATE" , 212 : "APPLY.STYLE" , 213 : "ASSIGN.TO.OBJECT" , 214 : "OBJECT.PROTECTION" , 215 : "HIDE.OBJECT" , 216 : "SET.EXTRACT" , 217 : "CREATE.PUBLISHER" , 218 : "SUBSCRIBE.TO" , 219 : "ATTRIBUTES" , 220 : "SHOW.TOOLBAR" , 222 : "PRINT.PREVIEW" , 223 : "EDIT.COLOR" , 224 : "SHOW.LEVELS" , 225 : "FORMAT.MAIN" , 226 : "FORMAT.OVERLAY" , 227 : "ON.RECALC" , 228 : "EDIT.SERIES" , 229 : "DEFINE.STYLE" , 240 : "LINE.PRINT" , 243 : "ENTER.DATA" , 249 : "GALLERY.RADAR" , 250 : "MERGE.STYLES" , 251 : " ED
function write _BrtCellIsst ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 12 ) ; write _XLSBCell ( ncell , o ) ; o . write _shift ( 4 , ncell . v ) ; return o } function parse _BrtCellReal ( data , length ) { var cell = parse _XLSBCell ( data ) ; var value = parse _Xnum ( data ) ; return [ cell , value , "n" ] } function write _BrtCellReal ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 16 ) ; write _XLSBCell ( ncell , o ) ; write _Xnum ( cell . v , o ) ; return o } function parse _BrtCellRk ( data , length ) { var cell = parse _XLSBCell ( data ) ; var value = parse _RkNumber ( data ) ; return [ cell , value , "n" ] } function write _BrtCellRk ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 12 ) ; write _XLSBCell ( ncell , o ) ; write _RkNumber ( cell . v , o ) ; return o } function parse _BrtCellSt ( data , length ) { var cell = parse _XLSBCell ( data ) ; var value = parse _XLWideString ( data ) ; return [ cell , value , "str" ] } function write _BrtCellSt ( cell , ncell , o ) { if ( o == null ) o = new _buf ( 12 + 4 * cell . v . length ) ; write _XLSBCell ( ncell , o ) ; write _XLWideString ( cell . v , o ) ; return o . length > o . l ? o . slice ( 0 , o . l ) : o } function parse _BrtFmlaBool ( data , length , opts ) { var end = data . l + length ; var cell = parse _XLSBCell ( data ) ; cell . r = opts [ "!row" ] ; var value = data . read _shift ( 1 ) ; var o = [ cell , value , "b" ] ; if ( opts . cellFormula ) { data . l += 2 ; var formula = parse _XLSBCellParsedFormula ( data , end - data . l , opts ) ; o [ 3 ] = stringify _formula ( formula , null , cell , opts . supbooks , opts ) } else data . l = end ; return o } function parse _BrtFmlaError ( data , length , opts ) { var end = data . l + length ; var cell = parse _XLSBCell ( data ) ; cell . r = opts [ "!row" ] ; var value = data . read _shift ( 1 ) ; var o = [ cell , value , "e" ] ; if ( opts . cellFormula ) { data . l += 2 ; var formula = parse _XLSBCellParsedFormula ( data , end - data . l , opts ) ; o [ 3 ] = stringify _formula ( formula , null , cell , opts . supbooks , opts ) } else data . l = end ; return o } function parse _BrtFmlaNum ( data , length , opts ) { var end = data . l + length ; var cell = parse _XLSBCell ( data ) ; cell . r = opts [ "!row" ] ; var value = parse _Xnum ( data ) ; var o = [ cell , value , "n" ] ; if ( opts . cellFormula ) { data . l += 2 ; var formula = parse _XLSBCellParsedFormula ( data , end - data . l , opts ) ; o [ 3 ] = stringify _formula ( formula , null , cell , opts . supbooks , opts ) } else data . l = end ; return o } function parse _BrtFmlaString ( data , length , opts ) { var end = data . l + length ; var cell = parse _XLSBCell ( data ) ; cell . r = opts [ "!row" ] ; var value = parse _XLWideString ( data ) ; var o = [ cell , value , "str" ] ; if ( opts . cellFormula ) { data . l += 2 ; var formula = parse _XLSBCellParsedFormula ( data , end - data . l , opts ) ; o [ 3 ] = stringify _formula ( formula , null , cell , opts . supbooks , opts ) } else data . l = end ; return o } var parse _BrtMergeCell = parse _UncheckedRfX ; var write _BrtMergeCell = write _UncheckedRfX ; function write _BrtBeginMergeCells ( cnt , o ) { if ( o == null ) o = new _buf ( 4 ) ; o . write _shift ( 4 , cnt ) ; return o } 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 _BrtArrFmla ( data , length , opts ) { var end = data . l + length ; var rfx = parse _RfX ( data , 16 ) ; var fAlwaysCalc = data . read _shift ( 1 ) ; var o = [ rfx ] ; o [ 2 ] = fAlwaysCalc ; if ( opts . cellFormula ) { var formula = parse _XLSBArrayParsedFormula ( data , end - data . l , opts ) ; o [ 1 ] = formula } else data . l = end ; return o } function parse _BrtShrFmla ( data , length , opts ) { var end = data . l + length ; var rfx = parse _UncheckedRfX ( data , 16 ) ; var o = [ rfx ] ; if ( opts . cellFormula ) { var formula = parse _XLSBSharedParsedFormula ( data , end - data . l , opts ) ; o [ 1 ] = formula ; data . l = end } else data . l = end ; return o } function parse _ws _bin ( data , opts , rels , wb , themes , styles ) { if ( ! data ) return data ; if ( ! rels ) rels = { "!id" : { } } ; var s = { } ; var ref ; var refguess = { s : { r : 2e6 , c : 2e6 } , e : { r : 0 , c : 0 } } ; var pass = false , end = false ; var row , p , cf , R , C , addr , sstr , rr ; var mergecells = [ ] ; if ( ! opts ) opts = { } ; opts . biff = 12 ; opts [ "!row" ] = 0 ; var ai = 0 , af = false ; var array _formulae = [ ] ; var shared _formulae = { } ; var supbooks = [ [ ] ] ; supbooks . sharedf = shared _formulae ; supbooks . arrayf = array _formulae ; opts . supbooks = supbooks ; for ( var i = 0 ; i < wb . Names [ "!names" ] . length ; ++ i ) supbooks [ 0 ] [ i + 1 ] = wb . Names [ wb . Names [ "!names" ] [ i ] ] ; var colinfo = [ ] , rowinfo = [ ] ; var defwidth = 0 , defheight = 0 ; var seencol = false ; recordhopper ( data , function ws _parse ( val , Record ) { if ( end ) return ; switch ( Record . n ) { case "BrtWsDim" : ref = val ; break ; case "BrtRowHdr" : row = val ; if ( opts . she
case "ExcelWorkbook" : case "WorkbookOptions" : case "WorksheetOptions" : if ( Rn [ 1 ] === "/" ) { if ( ( tmp = state . pop ( ) ) [ 0 ] !== Rn [ 3 ] ) throw new Error ( "Bad state: " + tmp . join ( "|" ) ) } else if ( Rn [ 0 ] . charAt ( Rn [ 0 ] . length - 2 ) !== "/" ) state . push ( [ Rn [ 3 ] , true ] ) ; break ; default : if ( state . length == 0 && Rn [ 3 ] == "document" ) return parse _fods ( str , opts ) ; if ( state . length == 0 && Rn [ 3 ] == "UOF" ) return parse _fods ( str , opts ) ; 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 ; defaul
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 : par
} , 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 : " Dime
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 ] . slice ( - 3 ) == "bin" ) xlsb = true ; if ( xlsb ) set _cp ( 1200 ) ; var themes = { } ; var styles = { } ; if ( ! opts . bookSheets && ! opts . bookProps ) { strs = [ ] ; if ( dir . sst ) strs = parse _sst ( getzipdata ( zip , dir . sst . replace ( /^\// , "" ) ) , dir . sst , opts ) ; if ( opts . cellStyles && dir . themes . length ) themes = parse _theme ( getzipstr ( zip , dir . themes [ 0 ] . replace ( /^\// , "" ) , true ) || "" , dir . themes [ 0 ] , opts ) ; if ( dir . style ) styles = parse _sty ( getzipdata ( zip , dir . style . replace ( /^\// , "" ) ) , dir . style , themes , opts ) } var wb = parse _wb ( getzipdata ( zip , dir . workbooks [ 0 ] . replace ( /^\// , "" ) ) , dir . workbooks [ 0 ] , opts ) ; var props = { } , propdata = "" ; if ( dir . coreprops . length !== 0 ) { propdata = getzipstr ( zip , dir . coreprops [ 0 ] . replace ( /^\// , "" ) , true ) ; if ( propdata ) props = parse _core _props ( propdata ) ; if ( dir . extprops . length !== 0 ) { propdata = getzipstr ( 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 = getzipstr ( 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 ( opts . bookSheets && 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 ( getzipstr ( 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 && wbrels [ i ] ) 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 , wb , themes , styles ) } 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 ] . replace ( /^\// , "" ) , true ) ; else if ( dir . defaults && 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 ( opts . bookType == "ods" ) return write _ods ( 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 . ce