2016-12-31 08:20:45 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */ 
							 
						 
					
						
							
								
									
										
										
										
											2017-03-28 22:03:03 +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  $ && $ . 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 , 2 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								} 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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								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 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰<E7AB88> 窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆<E7B3BA> <E7B486> <EFBFBD> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷<E7B983> 縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋<E884AF> <E8858B> <EFBFBD> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤<E8899F> 艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈<E89598> <E89588> <EFBFBD> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬<E89BA9> 蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞<E8A5A0> <E8A59E> <EFBFBD> " . 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 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧 <EFBFBD> 諤諱謔諠諢 <EFBFBD> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸<E88BB6> 苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐<E8AEAB> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮<E88EAD> 莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠<E9A9B1> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉<E89188> 葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁<E4B889> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗<E89395> 蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳<E58D87> " . 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 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕 <EFBFBD> 蕗蕘蕚蕛蕜 <EFBFBD> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲<EC8CB1> <EC8CB2> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍<EC8D8C> <EC8D8D> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚<EC8F97> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾<EC8FBD> <EC8FBE> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚<EC9099> <EC909A> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩<EC92A8> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅<EC9384> <EC9385> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟<EC939E> <EC939F> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔<EC9693> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶<EC96B3> <EC96B6> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧<EC97A6> <EC97A7> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦<EC9AA3> " . 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 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 웳웴웵웶 <EFBFBD> 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫<E7B8B1> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只<E4B98B> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯<E7B79D> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策<E69FB5> " . 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 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-21 22:02:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
										 
									
								 
							
							
								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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓<E98B91> <E98B93> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮<E599A0> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺<E6878C> <E686BA> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸<E6BEBF> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙<E79E95> <E79E99> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘<E895A1> " . 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 ] = "<22> <> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠<E8A7B1> <E8ABA0> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌<E98C94> " . 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 ] = " <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕 <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> <EFBFBD> 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-09 04:03:19 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								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 ( / ^ 
							 
						 
					
						
							
								
									
										
										
										
											2017-04-21 22:02:02 +00:00 
										
									 
								 
							 
							
								
									
										 
									 
								
							 
							
								 
							 
							
								
									
								 
							
							
								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 ) { var  epoch = v . getTime ( ) ; if ( date1904 ) epoch += 1462 * 24 * 60 * 60 * 1e3 ; return ( epoch + 22091616e5 ) / ( 24 * 60 * 60 * 1e3 ) } function  numdate ( v ) { var  date = SSF . parse _date _code ( v ) ; var  val = new  Date ; if ( date == null ) throw  new  Error ( "Bad Date Code: " + v ) ; val . setUTCDate ( date . d ) ; val . setUTCMonth ( date . m - 1 ) ; val . setUTCFullYear ( date . y ) ; val . setUTCHours ( date . H ) ; val . setUTCMinutes ( date . M ) ; val . setUTCSeconds ( date . S ) ; return  val } function  parse _isodur ( s ) { var  sec = 0 , mt = 0 , time = false ; var  m = s . match ( /P([0-9\.]+Y)?([0-9\.]+M)?([0-9\.]+D)?T([0-9\.]+H)?([0-9\.]+M)?([0-9\.]+S)?/ ) ; if ( ! m ) throw  new  Error ( "|" + s + "| is not an ISO8601 Duration" ) ; for ( var  i = 1 ; i != m . length ; ++ i ) { if ( ! m [ i ] ) continue ; mt = 1 ; if ( i > 3 ) time = true ; switch ( m [ i ] . substr ( m [ i ] . length - 1 ) ) { case "Y" : throw  new  Error ( "Unsupported ISO Duration Field: " + m [ i ] . substr ( m [ i ] . length - 1 ) ) ; case "D" : mt *= 24 ; case "H" : mt *= 60 ; case "M" : if ( ! time ) throw  new  Error ( "Unsupported ISO Duration Field: M" ) ; else  mt *= 60 ; case "S" : break } sec += mt * parseInt ( m [ i ] , 10 ) } return  sec } var  good _pd _date = new  Date ( "2017-02-19T19:06:09.000Z" ) ; var  good _pd = good _pd _date . getFullYear ( ) == 2017 ; function  parseDate ( str ) { if ( good _pd ) return  new  Date ( str ) ; if ( str  instanceof  Date ) return  str ; var  n = str . match ( /\d+/g ) || [ "2017" , "2" , "19" , "0" , "0" , "0" ] ; return  new  Date ( Date . UTC ( + n [ 0 ] , + n [ 1 ] - 1 , + n [ 2 ] , + n [ 3 ] , + n [ 4 ] , + n [ 5 ] ) ) } function  cc2str ( arr ) { var  o = "" ; for ( var  i = 0 ; i != arr . length ; ++ i ) o += String . fromCharCode ( arr [ i ] ) ; return  o } function  str2cc ( str ) { var  o = [ ] ; for ( var  i = 0 ; i != str . length ; ++ i ) o . push ( str . charCodeAt ( i ) ) ; return  o } function  dup ( o ) { if ( typeof  JSON != "undefined" && ! Array . isArray ( o ) ) return  JSON . parse ( JSON . stringify ( o ) ) ; if ( typeof  o != "object" || o == null ) return  o ; var  out = { } ; for ( var  k  in  o ) if ( o . hasOwnProperty ( k ) ) out [ k ] = dup ( o [ k ] ) ; return  out } function  fill ( c , l ) { var  o = "" ; while ( o . length < l ) o += c ; return  o } function  getdatastr ( data ) { if ( ! data ) return  null ; if ( data . data ) return  debom ( data . data ) ; if ( data . asNodeBuffer && has _buf ) return  debom ( data . asNodeBuffer ( ) . toString ( "binary" ) ) ; if ( data . asBinary ) return  debom ( data . asBinary ( ) ) ; if ( data . _data && data . _data . getContent ) return  debom ( cc2str ( Array . prototype . slice . call ( data . _data . getContent ( ) , 0 ) ) ) ; return  null } function  getdatabin ( data ) { if ( ! data ) return  null ; if ( data . data ) return  char _codes ( data . data ) ; if ( data . asNodeBuffer && has _buf ) return  data . asNodeBuffer ( ) ; if ( data . _data && data . _data . getContent ) { var  o = data . _data . getContent ( ) ; if ( typeof  o == "string" ) return  str2cc ( o ) ; return  Array . prototype . slice . call ( o ) } return  null } function  getdata ( data ) { return  data && data . name . slice ( - 4 ) === ".bin" ? getdatabin ( data ) : getdatastr ( data ) } function  safegetzipfile ( zip , file ) { var  k = keys ( zip . files ) ; var  f = file . toLowerCase ( ) , g = f . replace ( /\//g , "\\" ) ; for ( var  i = 0 ; i < k . length ; ++ i ) { var  n = k [ i ] . toLowerCase ( ) ; if ( f == n || g == n ) return  zip . files [ k [ i ] ] } 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 } } function  getzipstr ( zip , file , safe ) { if ( ! safe ) return  getdatastr ( getzipfile ( zip , file ) ) ; if ( ! file ) return  null ; try { return  getzipstr ( 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 ( typeof  jszip === "undefined" ) jszip = require ( "./jszip.js" ) ; _fs = require ( "fs" ) } } function  resolve _path ( path , base ) { var  result = base . split ( "/" ) ; if ( base . slice ( - 1 ) != "/" ) result . pop ( ) ; var  target = path . split ( "/" ) ; while ( target . length !== 0 ) { var  step = target . sh 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								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.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.openxmlformats-officedocument.spreadsheetml.customProperty" : "TODO" , "application/vnd.ms-excel.pivotTable" : "TODO" , "application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml" : "TODO" , "application/vnd.ms-office.chartcolorstyle+xml" : "TODO" , "application/vnd.ms-office.chartstyle+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.openxmlformats-officedocument.themeOverride+xml" : "TODO" , "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" , " appli 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								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 , opts ) { blob . l += 4 ; length -= 4 ; var  l = blob . l + length ; var  udfName = parse _ShortXLUnicodeString ( blob , length , opts ) ; var  cb = blob . read _shift ( 2 ) ; l -= blob . l ; if ( cb !== l ) throw  new  Error ( "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 < 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 ; return  fts } var  parse _FontIndex = parseuint16 ; function  parse _BOF ( blob , length ) { var  o = { BIFFVer : 0 , dt : 0 } ; o . BIFFVer = blob . read _shift ( 2 ) ; length -= 2 ; if ( length >= 2 ) { o . dt = blob . read _shift ( 2 ) ; blob . l -= 2 } switch ( o . BIFFVer ) { case  1536 : case  1280 : case  2 : case  7 : break ; default : if ( length > 6 ) throw  new  Error ( "Unexpected BIFF Ver " + o . BIFFVer ) } blob . read _shift ( length ) ; return  o } function  parse _InterfaceHdr ( blob , length ) { if ( length === 0 ) return  1200 ; var  q ; if ( ( q = blob . read _shift ( 2 ) ) !== 1200 ) { } return  1200 } function  parse _WriteAccess ( blob , length , opts ) { if ( opts . enc ) { blob . l += length ; return "" } var  l = blob . l ; var  UserName = parse _XLUnicodeString ( blob , 0 , opts ) ; blob . read _shift ( length + l - blob . l ) ; return  UserName } function  parse _BoundSheet8 ( blob , length , opts ) { var  pos = blob . read _shift ( 4 ) ; var  hidden = blob . read _shift ( 1 ) & 3 ; 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 } } 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 } function  parse _ExtSST ( blob , length ) { var  extsst = { } ; extsst . dsst = blob . read _shift ( 2 ) ; blob . l += length - 2 ; return  extsst } 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 ) ; var  flags = blob . read _shift ( 1 ) ; blob . read _shift ( 1 ) ; blob . read _shift ( 2 ) ; return { r : rw , c : col , cnt : Col - col } } function  parse _ForceFullCalculat 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								break ; case "s" : push _value ( o , 1 , 0 , cell . v ) ; break ; default : push _value ( o , 1 , 0 , "" ) } } } push _value ( o , - 1 , 0 , "EOD" ) ; var  RS = "\r\n" ; var  oo = o . join ( RS ) ; return  oo } } ( ) ; return { to _workbook : dif _to _workbook , to _sheet : dif _to _sheet , from _sheet : sheet _to _dif } } ( ) ; var  PRN = function ( ) { function  set _text _arr ( data , arr , R , C ) { if ( data === "TRUE" ) arr [ R ] [ C ] = true ; else  if ( data === "FALSE" ) arr [ R ] [ C ] = false ; else  if ( data === "" ) { } else  if ( + data == + data ) arr [ R ] [ C ] = + data ; else  arr [ R ] [ C ] = data } function  prn _to _aoa _str ( f , opts ) { var  arr = [ ] ; if ( ! f || f . length === 0 ) return  arr ; var  lines = f . split ( /[\r\n]/ ) ; var  L = lines . length - 1 ; while ( L >= 0 && lines [ L ] . length === 0 ) -- L ; var  start = 10 , idx = 0 ; var  R = 0 ; for ( ; R <= L ; ++ R ) { idx = lines [ R ] . indexOf ( " " ) ; if ( idx == - 1 ) idx = lines [ R ] . length ; else  idx ++ ; start = Math . max ( start , idx ) } for ( R = 0 ; R <= L ; ++ R ) { arr [ R ] = [ ] ; var  C = 0 ; set _text _arr ( lines [ R ] . slice ( 0 , start ) . trim ( ) , arr , R , C ) ; for ( C = 1 ; C <= ( lines [ R ] . length - start ) / 10 + 1 ; ++ C ) set _text _arr ( lines [ R ] . slice ( start + ( C - 1 ) * 10 , start + C * 10 ) . trim ( ) , arr , R , C ) } return  arr } function  dsv _to _sheet _str ( str , opts ) { var  o = opts || { } ; var  sep = "" ; if ( DENSE != null && o . dense == null ) o . dense = DENSE ; var  ws = o . dense ? [ ] : { } ; var  range = { s : { c : 0 , r : 0 } , e : { c : 0 , r : 0 } } ; if ( str . substr ( 0 , 4 ) == "sep=" && str . charCodeAt ( 5 ) == 10 ) { sep = str . charAt ( 4 ) ; str = str . substr ( 6 ) } if ( str . substr ( 0 , 1024 ) . indexOf ( "\t" ) == - 1 ) sep = "," ; else  sep = "\t" ; var  R = 0 , C = 0 , v = 0 ; var  start = 0 , end = 0 , sepcc = sep . charCodeAt ( 0 ) , instr = false , cc = 0 ; str = str . replace ( /\r\n/g , "\n" ) ; for ( ; end < str . length ; ++ end ) switch ( cc = str . charCodeAt ( end ) ) { case  34 : instr = ! instr ; break ; case  sepcc : case  10 : if ( instr ) break ; var  s = str . slice ( start , end ) ; var  cell = { } ; if ( s . charCodeAt ( 0 ) == 61 ) { cell . t = "n" ; cell . f = s . substr ( 1 ) } else  if ( s == "TRUE" ) { cell . t = "b" ; cell . v = true } else  if ( s == "FALSE" ) { cell . t = "b" ; cell . v = false } else  if ( ! isNaN ( v = parseFloat ( s ) ) ) { cell . t = "n" ; cell . w = s ; cell . v = v } else { cell . t = "s" ; cell . v = s . replace ( /^"/ , "" ) . replace ( /"$/ , "" ) . replace ( /""/g , '"' ) } if ( o . dense ) { if ( ! ws [ R ] ) ws [ R ] = [ ] ; ws [ R ] [ C ] = cell } else  ws [ encode _cell ( { c : C , r : R } ) ] = cell ; start = end + 1 ; if ( range . e . c < C ) range . e . c = C ; if ( range . e . r < R ) range . e . r = R ; if ( cc == sepcc ) ++ C ; else { C = 0 ; ++ R } break ; default : break } ws [ "!ref" ] = encode _range ( range ) ; return  ws } function  prn _to _sheet _str ( str , opts ) { if ( str . substr ( 0 , 4 ) == "sep=" ) return  dsv _to _sheet _str ( str , opts ) ; if ( str . indexOf ( "\t" ) >= 0 || str . indexOf ( "," ) >= 0 ) return  dsv _to _sheet _str ( str , opts ) ; return  aoa _to _sheet ( prn _to _aoa _str ( str , opts ) , opts ) } function  prn _to _sheet ( d , opts ) { switch ( opts . type ) { case "base64" : return  prn _to _sheet _str ( Base64 . decode ( d ) , opts ) ; case "binary" : return  prn _to _sheet _str ( d , opts ) ; case "buffer" : return  prn _to _sheet _str ( d . toString ( "binary" ) , opts ) ; case "array" : return  prn _to _sheet _str ( cc2str ( d ) , opts ) } throw  new  Error ( "Unrecognized type " + opts . type ) } function  prn _to _workbook ( str , opts ) { return  sheet _to _workbook ( prn _to _sheet ( str , opts ) , opts ) } function  sheet _to _prn ( ws , opts ) { var  o = [ ] ; var  r = decode _range ( ws [ "!ref" ] ) , cell ; var  dense = Array . isArray ( ws ) ; for ( var  R = r . s . r ; R <= r . e . r ; ++ R ) { var  oo = [ ] ; for ( var  C = r . s . c ; C <= r . e . c ; ++ C ) { var  coord = encode _cell ( { r : R , c : C } ) ; cell = dense ? ( ws [ R ] || [ ] ) [ C ] : ws [ coord ] ; if ( ! cell || cell . v == null ) { oo . push ( "          " ) ; continue } var  w = ( cell . w || ( format _cell ( cell ) , cell . w ) || "" ) . substr ( 0 , 10 ) ; while ( w . length < 10 ) w += " " ; oo . push ( w + ( C == 0 ? " " : "" ) ) } o . push ( oo . join ( "" ) ) } return  o . join ( "\n" ) } return { to _workbook : prn _to _workbook , to _sheet : prn _to _sheet , from _sheet : sheet _to _prn } } ( ) ; var  WK _ = function ( ) { function  lotushopper ( data , cb , opts ) { if ( ! data ) return ; prep _blob ( data , data . l || 0 ) ; var  Enum = opts . Enum || WK1Enum ; while ( data . l < data . length ) { var  RT = data . read _shift ( 2 ) ; var  R = Enum [ RT ] || Enum [ 255 ] ; var  length = data . read _shift ( 2 ) ; var  tgt = data . l + length ; var  d = R . f ( data , length , opts ) ; data . l = tgt ; if ( cb ( d , R . n , RT ) ) return } } function  lotus _to _workbook ( d , opts ) { switch ( opts . type ) { case "base64" : return  lotus _to _workbook _buf ( s2a ( Base64 . decode ( d ) ) , opts ) ; case "binary" : return  lotus _to _workbook _buf ( s2a ( d ) , opts ) ; case "buffer" : case "array" : return  lotus _to _workbook _buf ( d , opts ) } throw "Unsupported type " + opts . type } function  lotus _to _workbook _buf ( d , opts ) { if ( ! d ) return  d ; var  o = opts || { } ; if ( DENSE != null && o . dense == null ) o . dense = DENSE ; var  s = o . dense ? [ ] : { } , n = "Sheet1" , sidx = 0 ; var  sheets = { } , snames = [ n ] ; var  refguess = { s : { r : 0 , c : 0 } , e : { r : 0 , c : 0 } } ; if ( d [ 2 ] == 2 ) o . Enum = WK1Enum ; else  if ( d [ 2 ] == 26 ) o . Enum = WK3Enum ; else  if ( d [ 2 ] == 14 ) { o . Enum = W 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								count : o . length - 2 } ) . replace ( "/>" , ">" ) ; return  o . join ( "" ) } var  parse _sty _xml = function  make _pstyx ( ) { var  numFmtRegex = /<numFmts([^>]*)>.*<\/numFmts>/ ; var  cellXfRegex = /<cellXfs([^>]*)>.*<\/cellXfs>/ ; var  fillsRegex = /<fills([^>]*)>.*<\/fills>/ ; var  fontsRegex = /<fonts([^>]*)>.*<\/fonts>/ ; var  bordersRegex = /<borders([^>]*)>.*<\/borders>/ ; return  function  parse _sty _xml ( data , themes , opts ) { var  styles = { } ; if ( ! data ) return  styles ; var  t ; if ( t = data . match ( numFmtRegex ) ) parse _numFmts ( t , styles , opts ) ; if ( t = data . match ( fontsRegex ) ) parse _fonts ( t , styles , themes , opts ) ; if ( t = data . match ( fillsRegex ) ) parse _fills ( t , styles , themes , opts ) ; if ( t = data . match ( bordersRegex ) ) parse _borders ( t , styles , themes , opts ) ; if ( t = data . match ( cellXfRegex ) ) parse _cellXfs ( t , styles , 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 ( wb . SSF && ( w = write _numFmts ( wb . SSF ) ) != null ) o [ o . length ] = w ; o [ o . length ] = '<fonts count="1"><font><sz val="12"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts>' ; o [ o . length ] = '<fills count="2"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill></fills>' ; o [ o . length ] = '<borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders>' ; o [ o . length ] = '<cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs>' ; if ( w = write _cellXfs ( opts . cellXfs ) ) o [ o . length ] = w ; o [ o . length ] = '<cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles>' ; o [ o . length ] = '<dxfs count="0"/>' ; o [ o . length ] = '<tableStyles count="0" defaultTableStyle="TableStyleMedium9" defaultPivotStyle="PivotStyleMedium4"/>' ; if ( o . length > 2 ) { o [ o . length ] = "</styleSheet>" ; 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 , themes , opts ) { var  styles = { } ; styles . NumberFmt = [ ] ; for ( var  y  in  SSF . _table ) styles . NumberFmt [ y ] = SSF . _table [ y ] ; styles . CellXf = [ ] ; styles . Fonts = [ ] ; var  state = [ ] ; var  pass = false ; recordhopper ( data , function  hopper _sty ( val , R _n , RT ) { switch ( RT ) { case  44 : styles . NumberFmt [ val [ 0 ] ] = val [ 1 ] ; SSF . load ( val [ 1 ] , val [ 0 ] ) ; break ; case  43 : styles . Fonts . push ( val ) ; break ; case  1025 : break ; case  45 : break ; case  46 : break ; case  47 : if ( state [ state . length - 1 ] == "BrtBeginCellXFs" ) { styles . CellXf . push ( val ) } break ; case  48 : case  507 : case  572 : case  475 : break ; case  1171 : case  2102 : case  1130 : case  512 : case  2095 : break ; case  35 : pass = true ; break ; case  36 : pass = false ; break ; case  37 : state . push ( R _n ) ; break ; case  38 : state . pop ( ) ; break ; default : if ( ( R _n || "" ) . indexOf ( "Begin" ) > 0 ) state . push ( R _n ) ; else  if ( ( R _n || "" ) . indexOf ( "End" ) > 0 ) state . pop ( ) ; else  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 , themes , opts ) { themes . themeElements . clrScheme = [ ] ; var  co 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								var  ptg = blob [ blob . l ] & 31 ; var  type = ( blob [ blob . l ] & 96 ) >> 5 ; blob . l += 1 ; var  iftab = blob . read _shift ( opts && opts . biff <= 3 ? 1 : 2 ) ; return [ FtabArgc [ iftab ] , Ftab [ iftab ] , type ] } function  parse _PtgFuncVar ( blob , length , opts ) { blob . l ++ ; var  cparams = blob . read _shift ( 1 ) , tab = opts && opts . biff <= 3 ? [ 0 , blob . read _shift ( 1 ) ] : 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 ) & 32767 ] } function  parse _PtgAttrSum ( blob , length , opts ) { blob . l += opts && opts . biff == 2 ? 3 : 4 ; return } var  parse _PtgConcat = parseread1 ; function  parse _PtgExp ( blob , length , opts ) { blob . l ++ ; if ( opts && opts . biff == 12 ) return [ blob . read _shift ( 4 , "i" ) , 0 ] ; var  row = blob . read _shift ( 2 ) ; var  col = blob . read _shift ( opts && opts . biff == 2 ? 1 : 2 ) ; return [ row , col ] } function  parse _PtgErr ( blob , length ) { blob . l ++ ; return  BErr [ blob . read _shift ( 1 ) ] } function  parse _PtgInt ( blob , length ) { blob . l ++ ; return  blob . read _shift ( 2 ) } function  parse _PtgBool ( blob , length ) { blob . l ++ ; return  blob . read _shift ( 1 ) !== 0 } function  parse _PtgNum ( blob , length ) { blob . l ++ ; return  parse _Xnum ( blob , 8 ) } function  parse _PtgStr ( blob , length , opts ) { blob . l ++ ; return  parse _ShortXLUnicodeString ( blob , length - 1 , opts ) } function  parse _SerAr ( blob , biff ) { var  val = [ blob . read _shift ( 1 ) ] ; if ( biff == 12 ) switch ( val [ 0 ] ) { case  2 : val [ 0 ] = 4 ; break ; case  4 : val [ 0 ] = 16 ; break ; case  0 : val [ 0 ] = 1 ; break ; case  1 : val [ 0 ] = 2 ; break } switch ( val [ 0 ] ) { case  4 : val [ 1 ] = parsebool ( blob , 1 ) ? "TRUE" : "FALSE" ; blob . l += 7 ; break ; case  16 : val [ 1 ] = BErr [ blob [ blob . l ] ] ; blob . l += 8 ; break ; case  0 : blob . l += 8 ; break ; case  1 : val [ 1 ] = parse _Xnum ( blob , 8 ) ; break ; case  2 : val [ 1 ] = parse _XLUnicodeString2 ( blob , 0 , { biff : biff > 0 && biff < 8 ? 2 : biff } ) ; break } return  val } 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 } function  parse _PtgExtraArray ( blob , length , opts ) { var  rows = 0 , cols = 0 ; if ( opts . biff == 12 ) { rows = blob . read _shift ( 4 ) ; cols = blob . read _shift ( 4 ) } else { cols = 1 + blob . read _shift ( 1 ) ; rows = 1 + blob . read _shift ( 2 ) } if ( opts . biff >= 2 && opts . biff < 8 ) { -- rows ; if ( -- cols == 0 ) cols = 256 } for ( var  i = 0 , o = [ ] ; i != rows && ( o [ i ] = [ ] ) ; ++ i ) for ( var  j = 0 ; j != cols ; ++ j ) o [ i ] [ j ] = parse _SerAr ( blob , opts . biff ) ; return  o } function  parse _PtgName ( blob , length , opts ) { var  type = blob . read _shift ( 1 ) >>> 5 & 3 ; var  w = ! opts || opts . biff >= 8 ? 4 : 2 ; var  nameindex = blob . read _shift ( w ) ; switch ( opts . biff ) { case  2 : blob . l += 5 ; break ; case  3 : case  4 : blob . l += 8 ; break ; case  5 : blob . l += 12 ; break } return [ type , 0 , nameindex ] } function  parse _PtgNameX ( blob , length , opts ) { if ( opts . biff == 5 ) return  parse _PtgNameX _BIFF5 ( blob , length , opts ) ; var  type = blob . read _shift ( 1 ) >>> 5 & 3 ; var  ixti = blob . read _shift ( 2 ) ; var  nameindex = blob . read _shift ( 4 ) ; return [ type , ixti , nameindex ] } function  parse _PtgNameX _BIFF5 ( blob , length , opts ) { var  type = blob . read _shift ( 1 ) >>> 5 & 3 ; var  ixti = blob . read _shift ( 2 , "i" ) ; blob . l += 8 ; var  nameindex = blob . read _shift ( 2 ) ; blob . l += 12 ; return [ type , ixti , nameindex ] } function  parse _PtgMemArea ( blob , length , opts ) { var  type = blob . read _shift ( 1 ) >>> 5 & 3 ; blob . l += opts && opts . biff == 2 ? 3 : 4 ; var  cce = blob . read _shift ( opts && opts . biff == 2 ? 1 : 2 ) ; return [ type , cce ] } function  parse _PtgMemFunc ( blob , length , opts ) { var  type = blob . read _shift ( 1 ) >>> 5 & 3 ; var  cce = blob . read _shift ( opts && opts . biff == 2 ? 1 : 2 ) ; return [ type , cce ] } function  parse _PtgRefErr ( blob , length , opts ) { var  type = blob . read _shift ( 1 ) >>> 5 & 3 ; blob . l += 4 ; if ( opts . biff == 12 ) blob . l += 2 ; return [ type ] } function  parse _PtgRefErr3d ( blob , length , opts ) { var  type = ( blob [ blob . l ++ ] & 96 ) >> 5 ; var  ixti = blob . read _shift ( 2 ) ; var  w = 4 ; if ( opts ) switch ( opts . biff ) { case  5 : throw  new  Error ( "PtgRefErr3d -- 5" ) ; case  12 : w = 6 ; break } blob . l += w ; return [ type , ixti ] } var  parse _PtgAdd = parseread1 ; var  parse _PtgDiv = parseread1 ; var  parse _PtgEq = parseread1 ; var  parse _PtgGe = parseread1 ; var  parse _PtgGt = parseread1 ; var  parse _PtgIsect = parseread1 ; var  parse _PtgLe = parseread1 ; var  parse _PtgLt = parseread1 ; var  parse _PtgMissArg = parseread1 ; var  parse _PtgMul = parseread1 ; var  parse _PtgNe = parseread1 ; var  parse _PtgParen = parseread1 ; var  parse _PtgPercent = parseread1 ; var  parse _PtgPower = parseread1 ; var  parse _PtgRange = parseread1 ; var  parse _PtgSub = parseread1 ; var  parse _PtgUminus = parseread1 ; var  parse _PtgUnion = parseread1 ; var  parse _PtgUplus = parseread1 ; var  parse _PtgMemErr = parsenoop ; var  parse _PtgMemNoMem = parsenoop ; var  parse _PtgTbl = parsenoop ; var  PtgTypes = { 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								"_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" } ; function  ods _to _csf _formula ( f ) { if ( f . substr ( 0 , 3 ) == "of:" ) f = f . substr ( 3 ) ; if ( f . charCodeAt ( 0 ) == 61 ) { f = f . substr ( 1 ) ; if ( f . charCodeAt ( 0 ) == 61 ) f = f . substr ( 1 ) } f = f . replace ( /COM\.MICROSOFT\./g , "" ) ; f = f . replace ( /\[((?:\.[A-Z]+[0-9]+)(?::\.[A-Z]+[0-9]+)?)\]/g , function ( $$ , $1 ) { return  $1 . replace ( /\./g , "" ) } ) ; f = f . replace ( /\[.(#[A-Z]*[?!])\]/g , "$1" ) ; return  f . replace ( /[;~]/g , "," ) . replace ( /\|/g , ";" ) } function  csf _to _ods _formula ( f ) { var  o = "of:=" + f . replace ( crefregex , "$1[.$2$3$4$5]" ) . replace ( /\]:\[/g , ":" ) ; return  o . replace ( /;/g , "|" ) . replace ( /,/g , ";" ) } function  ods _to _csf _range _3D ( r ) { var  a = r . split ( ":" ) ; var  s = a [ 0 ] . split ( "." ) [ 0 ] ; return [ s , a [ 0 ] . split ( "." ) [ 1 ] + ":" + a [ 1 ] . split ( "." ) [ 1 ] ] } var  strs = { } ; var  _ssfopts = { } ; RELS . WS = [ "http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" , "http://purl.oclc.org/ooxml/officeDocument/relationships/worksheet" ] ; function  get _sst _id ( sst , str ) { for ( var  i = 0 , len = sst . length ; i < len ; ++ i ) if ( sst [ i ] . t === str ) { sst . Count ++ ; return  i } sst [ len ] = { t : str } ; sst . Count ++ ; sst . Unique ++ ; return  len } function  col _obj _w ( C , col ) { var  p = { min : C + 1 , max : C + 1 } ; var  width = - 1 ; if ( col . MDW ) MDW = col . MDW ; if ( col . width != null ) p . customWidth = 1 ; else  if ( col . wpx != null ) width = px2char ( col . wpx ) ; else  if ( col . wch != null ) width = col . wch ; if ( width > - 1 ) { p . width = char2width ( width ) ; p . customWidth = 1 } else  p . width = col . width ; return  p } function  default _margins ( margins , mode ) { if ( ! margins ) return ; var  defs = [ . 7 , . 7 , . 75 , . 75 , . 3 , . 3 ] ; if ( mode == "xlml" ) defs = [ 1 , 1 , 1 , 1 , . 5 , . 5 ] ; if ( margins . left == null ) margins . left = defs [ 0 ] ; if ( margins . right == null ) margins . right = defs [ 1 ] ; if ( margins . top == null ) margins . top = defs [ 2 ] ; if ( margins . bottom == null ) margins . bottom = defs [ 3 ] ; if ( margins . header == null ) margins . header = defs [ 4 ] ; if ( margins . footer == null ) margins . footer = defs [ 5 ] } function  get _cell _style ( styles , cell , opts ) { var  z = opts . revssf [ cell . z != null ? cell . z : "General" ] ; for ( var  i = 0 , len = styles . length ; i != len ; ++ i ) if ( styles [ i ] . numFmtId === z ) return  i ; styles [ len ] = { numFmtId : z , fontId : 0 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								ws [ "!legacy" ] = rId } } function  write _AUTOFILTER ( ba , ws ) { if ( ! ws [ "!autofilter" ] ) return ; write _record ( ba , "BrtBeginAFilter" , write _UncheckedRfX ( decode _range ( ws [ "!autofilter" ] . ref ) ) ) ; write _record ( ba , "BrtEndAFilter" ) } function  write _SHEETPROTECT ( ba , ws ) { if ( ! ws [ "!protect" ] ) return ; write _record ( ba , "BrtSheetProtection" , write _BrtSheetProtection ( ws [ "!protect" ] ) ) } function  write _ws _bin ( idx , opts , wb , rels ) { var  ba = buf _array ( ) ; var  s = wb . SheetNames [ idx ] , ws = wb . Sheets [ s ] || { } ; var  r = safe _decode _range ( ws [ "!ref" ] || "A1" ) ; ws [ "!links" ] = [ ] ; ws [ "!comments" ] = [ ] ; write _record ( ba , "BrtBeginSheet" ) ; write _record ( ba , "BrtWsProp" , write _BrtWsProp ( s ) ) ; write _record ( ba , "BrtWsDim" , write _BrtWsDim ( r ) ) ; write _COLINFOS ( ba , ws , idx , opts , wb ) ; write _CELLTABLE ( ba , ws , idx , opts , wb ) ; write _SHEETPROTECT ( ba , ws ) ; write _AUTOFILTER ( ba , ws ) ; write _MERGECELLS ( ba , ws ) ; write _HLINKS ( ba , ws , rels ) ; if ( ws [ "!margins" ] ) write _record ( ba , "BrtMargins" , write _BrtMargins ( ws [ "!margins" ] ) ) ; write _LEGACYDRAWING ( ba , ws , idx , rels ) ; write _record ( ba , "BrtEndSheet" ) ; return  ba . end ( ) } function  parse _numCache ( data ) { var  col = [ ] ; ( data . match ( /<c:pt idx="(\d*)">(.*?)<\/c:pt>/gm ) || [ ] ) . forEach ( function ( pt ) { var  q = pt . match ( /<c:pt idx="(.*?)"><c:v>(.*)<\/c:v><\/c:pt>/ ) ; if ( ! q ) return ; col [ + q [ 1 ] ] = + q [ 2 ] } ) ; var  nf = unescapexml ( ( data . match ( /<c:formatCode>(.*?)<\/c:formatCode>/ ) || [ "" , "General" ] ) [ 1 ] ) ; return [ col , nf ] } function  parse _chart ( data , name , opts , rels , wb , csheet ) { var  cs = csheet || { "!type" : "chart" } ; if ( ! data ) return  csheet ; var  C = 0 , R = 0 , col = "A" ; var  refguess = { s : { r : 2e6 , c : 2e6 } , e : { r : 0 , c : 0 } } ; ( data . match ( /<c:numCache>.*?<\/c:numCache>/gm ) || [ ] ) . forEach ( function ( nc ) { var  cache = parse _numCache ( nc ) ; refguess . s . r = refguess . s . c = 0 ; refguess . e . c = C ; col = encode _col ( C ) ; cache [ 0 ] . forEach ( function ( n , i ) { cs [ col + encode _row ( i ) ] = { t : "n" , v : n , z : cache [ 1 ] } ; R = i } ) ; if ( refguess . e . r < R ) refguess . e . r = R ; ++ C } ) ; if ( C > 0 ) cs [ "!ref" ] = encode _range ( refguess ) ; return  cs } RELS . CS = "http://schemas.openxmlformats.org/officeDocument/2006/relationships/chartsheet" ; var  CS _XML _ROOT = writextag ( "chartsheet" , null , { xmlns : XMLNS . main [ 0 ] , "xmlns:r" : XMLNS . r } ) ; function  parse _cs _xml ( data , opts , rels , wb , themes , styles ) { if ( ! data ) return  data ; if ( ! rels ) rels = { "!id" : { } } ; var  s = { "!type" : "chart" , "!chart" : null , "!rel" : "" } ; var  m ; if ( m = data . match ( /drawing r:id="(.*?)"/ ) ) s [ "!rel" ] = m [ 1 ] ; if ( rels [ "!id" ] [ s [ "!rel" ] ] ) s [ "!chart" ] = rels [ "!id" ] [ s [ "!rel" ] ] ; return  s } function  write _cs _xml ( idx , opts , wb , rels ) { var  o = [ XML _HEADER , CS _XML _ROOT ] ; o [ o . length ] = writextag ( "drawing" , null , { "r:id" : "rId1" } ) ; add _rels ( rels , - 1 , "../drawings/drawing" + ( idx + 1 ) + ".xml" , RELS . DRAW ) ; if ( o . length > 2 ) { o [ o . length ] = "</chartsheet>" ; o [ 1 ] = o [ 1 ] . replace ( "/>" , ">" ) } return  o . join ( "" ) } function  parse _cs _bin ( data , opts , rels , wb , themes , styles ) { if ( ! data ) return  data ; if ( ! rels ) rels = { "!id" : { } } ; var  s = { "!type" : "chart" , "!chart" : null , "!rel" : "" } ; var  state = [ ] ; var  pass = false ; recordhopper ( data , function  cs _parse ( val , R _n , RT ) { switch ( RT ) { case  550 : s [ "!rel" ] = val ; break ; case  562 : case  652 : case  651 : case  669 : case  679 : case  551 : case  552 : case  476 : break ; case  35 : pass = true ; break ; case  36 : pass = false ; break ; case  37 : state . push ( R _n ) ; break ; case  38 : state . pop ( ) ; break ; default : if ( ( R _n || "" ) . indexOf ( "Begin" ) > 0 ) state . push ( R _n ) ; else  if ( ( R _n || "" ) . indexOf ( "End" ) > 0 ) state . pop ( ) ; else  if ( ! pass || opts . WTF ) throw  new  Error ( "Unexpected record " + RT + " " + R _n ) } } , opts ) ; if ( rels [ "!id" ] [ s [ "!rel" ] ] ) s [ "!chart" ] = rels [ "!id" ] [ s [ "!rel" ] ] ; return  s } function  write _cs _bin ( idx , opts , wb , rels ) { var  ba = buf _array ( ) ; write _record ( ba , "BrtBeginSheet" ) ; 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 = [ ] ; var  CalcPrDef = [ [ " calcComple 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								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 ] . slice ( - 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 ; ou 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								f : parsenoop } , 158 : { n : "BrtBookView" , f : parsenoop } , 159 : { n : "BrtBeginSst" , f : parse _BrtBeginSst } , 160 : { n : "BrtEndSst" , f : parsenoop } , 161 : { n : "BrtBeginAFilter" , f : parse _UncheckedRfX } , 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 : " BrtBeginPN 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								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 } , 518 : { n : "Formula" , f : parse _Formula } , 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 } , 1030 : { n : "Formula" , f : par 
							 
						 
					
						
							
								
							 
							
								
							 
							
								 
							 
							
								
									
								 
							
							
								o . push ( "    <office:spreadsheet>\n" ) ; for ( var  i = 0 ; i != wb . SheetNames . length ; ++ i ) o . push ( write _ws ( wb . Sheets [ wb . SheetNames [ i ] ] , wb , i , opts ) ) ; o . push ( "    </office:spreadsheet>\n" ) ; o . push ( "  </office:body>\n" ) ; if ( opts . bookType == "fods" ) o . push ( "</office:document>" ) ; else  o . push ( "</office:document-content>" ) ; return  o . join ( "" ) } } ( ) ; function  write _obj _str ( factory ) { return  function  write _str ( wb , o ) { var  idx = 0 ; for ( var  i = 0 ; i < wb . SheetNames . length ; ++ i ) if ( wb . SheetNames [ i ] == o . sheet ) idx = i ; if ( idx == 0 && ! ! o . sheet && wb . SheetNames [ 0 ] != o . sheet ) throw  new  Error ( "Sheet not found: " + o . sheet ) ; return  factory . from _sheet ( wb . Sheets [ wb . SheetNames [ idx ] ] , o ) } } var  write _htm _str = write _obj _str ( HTML _ ) ; var  write _csv _str = write _obj _str ( { from _sheet : sheet _to _csv } ) ; var  write _slk _str = write _obj _str ( SYLK ) ; var  write _dif _str = write _obj _str ( DIF ) ; var  write _prn _str = write _obj _str ( PRN ) ; var  write _txt _str = write _obj _str ( { from _sheet : sheet _to _txt } ) ; function  parse _ods ( zip , opts ) { opts = opts || { } ; var  ods = ! ! safegetzipfile ( zip , "objectdata" ) ; if ( ods ) var  manifest = parse _manifest ( getzipdata ( zip , "META-INF/manifest.xml" ) , opts ) ; var  content = getzipstr ( zip , "content.xml" ) ; if ( ! content ) throw  new  Error ( "Missing content.xml in " + ( ods ? "ODS" : "UOF" ) + " file" ) ; return  parse _content _xml ( ods ? content : utf8read ( content ) , opts ) } function  parse _fods ( data , opts ) { return  parse _content _xml ( data , opts ) } function  write _ods ( wb , opts ) { if ( opts . bookType == "fods" ) return  write _content _xml ( wb , opts ) ; var  zip = new  jszip ; var  f = "" ; var  manifest = [ ] ; var  rdf = [ ] ; f = "mimetype" ; zip . file ( f , "application/vnd.oasis.opendocument.spreadsheet" ) ; f = "content.xml" ; zip . file ( f , write _content _xml ( wb , opts ) ) ; manifest . push ( [ f , "text/xml" ] ) ; rdf . push ( [ f , "ContentFile" ] ) ; f = "manifest.rdf" ; zip . file ( f , write _rdf ( rdf , opts ) ) ; manifest . push ( [ f , "application/rdf+xml" ] ) ; f = "META-INF/manifest.xml" ; zip . file ( f , write _manifest ( manifest , opts ) ) ; return  zip } 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 ] , [ "cellText" , true ] , [ "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" ] , [ "compression" , false ] , [ "WTF" , false ] ] ) ; function  get _sheet _type ( n ) { if ( RELS . WS . indexOf ( n ) > - 1 ) return "sheet" ; if ( RELS . CS && n == RELS . CS ) return "chart" ; if ( RELS . DS && n == RELS . DS ) return "dialog" ; if ( RELS . MS && n == RELS . MS ) return "macro" ; if ( ! n || ! n . length ) return "sheet" ; return  n } function  safe _parse _wbrels ( wbrels , sheets ) { if ( ! wbrels ) return  0 ; try { wbrels = sheets . map ( function  pwbr ( w ) { if ( ! w . id ) w . id = w . strRelID ; return [ w . name , wbrels [ "!id" ] [ w . id ] . Target , get _sheet _type ( wbrels [ "!id" ] [ w . id ] . Type ) ] } ) } catch ( e ) { return  null } return ! wbrels || wbrels . length === 0 ? null : wbrels } function  safe _parse _sheet ( zip , path , relsPath , sheet , sheetRels , sheets , stype , opts , wb , themes , styles ) { try { sheetRels [ sheet ] = parse _rels ( getzipstr ( zip , relsPath , true ) , path ) ; var  data = getzipdata ( zip , path ) ; switch ( stype ) { case "sheet" : sheets [ sheet ] = parse _ws ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; break ; case "chart" : var  cs = parse _cs ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; sheets [ sheet ] = cs ; if ( ! cs || ! cs [ "!chart" ] ) break ; var  dfile = resolve _path ( cs [ "!chart" ] . Target , path ) ; var  drelsp = get _rels _path ( dfile ) ; var  draw = parse _drawing ( getzipstr ( zip , dfile , true ) , parse _rels ( getzipstr ( zip , drelsp , true ) , dfile ) ) ; var  chartp = resolve _path ( draw , dfile ) ; var  crelsp = get _rels _path ( chartp ) ; cs = parse _chart ( getzipstr ( zip , chartp , true ) , chartp , opts , parse _rels ( getzipstr ( zip , crelsp , true ) , chartp ) , wb , cs ) ; break ; case "macro" : sheets [ sheet ] = parse _ms ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; break ; case "dialog" : sheets [ sheet ] = parse _ds ( data , path , opts , sheetRels [ sheet ] , wb , themes , styles ) ; break } } catch ( e ) { if ( opts . WTF ) throw  e } } var  nodirs = function  nodirs ( x ) { return  x . slice ( - 1 ) != "/" } ; function  parse _zip ( zip , opts ) { make _ssf ( SSF ) ; opts = opts || { } ; fix _read _opts ( opts ) ; reset _cp ( ) ; if ( safe